22596

Імітаційна модель процесора

Лабораторная работа

Информатика, кибернетика и программирование

Команда як послідовність деяких дій над даними виконується по тактам мікропрограма команди. Команда має вигляд: Код команди 1й операнд 2й операнд . Найчастіше результат команди заноситься за місцем першого операнда. Формат операндів закладається у формат команди.

Украинкский

2013-08-03

97.5 KB

9 чел.

Архітектура ЕОМ

Лабораторна робота   "Імітаційна модель процесора"

  1.  Теоретичні відомості

Структура процесора

Зпрощено будь-який процесор може бути представлений як пристрій, що виконує фіксовану кількість операцій над фіксованим форматом даних.

Операції, будучи обмеженими заданими форматами, називаються командами. Послідовність команд утворює програму в кодах конкретного процесора (або об’єктна програма).

Команда, як послідовність деяких дій над даними, виконується по тактам (мікропрограма команди). І, у залежності від формату операндів, кількість тактів може бути різна. Процесор працює з командами та даними, де дані є не просто масивами бітових рядків, а операндами команд. Тобто доступ процесора до пам’яті виконується у вигляді звернення (зчитування/запис) до операндів. По суті, нічого іншого процесор не робить. Команда має вигляд:

Код команди

1-й операнд

2-й операнд

........

N-й операнд

З максимальною кількістю операндів для команд пов’язується поняття адресності процесора. Типові реалізації: 1адресні, 2-адресні та 2.5-адресні (коли третій операнд неявний, або один чи декілька операндів задають діапазон фактично задіяних операндів). Найчастіше результат команди заноситься за місцем першого операнда. Таким чином, процесор вирізняє у оперативній пам’яті (ОП)  коди і дані, які за формою співпадають між собою (це бітові рядки заданих форматів). Формат операндів закладається у формат команди. Зафіксовану множину команд, їх формати та формати даних відносять до програмної моделі процесора.

Абсолютно повноцінно може виконуватися програма використача, коли всі операнди є полями в ОП. Але типово у програмах ланцюжки команд готують проміжні результати для наступних за ними команд, тобто частина даних постійно потрібна на протязі деякого сегменту команд, Тому якщо такі дані зберігати в ОП, щоб зразу їх викликати для наступного вираза, недоцільно, бо швидкість роботи процесора перевищує швидкості всіх інших пристроїв, включно із ОП, яка є звичайним пристроєм на шині системи. З метою оптимізації переміщення даних процесори завжди мають свою власну невелику пам’ять у вигляді регістрів. Останні, як правило, спеціалізують під конкретні формати даних: 32-бітні цілі, 32/64-бітні з плаваючою точкою тощо, і кількісно їх – від десятків до декількох сотень. Також регістрам присвоюється власне ім’я чи номер. Відповідно, компілятори оптимізують код генеруємих програм для максимального використання регістрів. Серед команд є обов’язково команди переміщення даних, зокрема, і занесення даних з ОП у регістри та обміну кодами між регістрами. В одноадресних процесорах для виконання бінарних операцій вводиться, як правило, регістр суматор для неявного представлення одного з операндів, він же і приймає результат.

Розглянемо основний склад структур представлення внутрішніх даних будь-якого універсального процесора (без реалізації конвейєра команд).

  1.  Регістри даних: цілих та адрес, даних з плаваючою точкою. Цілочисельні регістри часто іменують регістрами загального використання.
  2.  Регістр команди, яка в даний момент інтерпретується. Процес інтерпретації полягає у занесенні операндів до регістра команди або регістра процесора у формі фактичного операнда, бо на рівні команди операнди можуть представлятися: а) явно у команді (літералом, константою); б) номером/ім’ям регістра; в) адресою у ОП; г) косвеною адресою, тобто адресою поля ОП чи регістра, в якому зберігається адреса значення операнда.
  3.  Регістр стану, в якому фіксується бітовими комбінаціями, зокрема:
  •  знак попередньої арифметичної операції (мінус, нуль чи плюс);
  •  виникнення переповнення;
  •  втрата значимості (коли у числі з плаваючою точкою при ненульовому порядку мантиса стала нульовою);
  •  превілевійовані режими, деякі аварійні ситуації;
  •  ключ захисту пам’яті (маска пам’яті) тощо.
  1.  Регістр адреси поточної чи наступної команди.

Представлення цілочисельної інформації в процесорах та пам’яті

Для представлення цілих зі знаком є багато кодів, проте найчастіше використовується прямий та додатковий коди. У прямому коді серед N бітів числа виділяється один знаковий біт (0- плюс, 1 –мінус), а інші біти представляють число 2-й системі числення за модулем:

біт N-1

біт знаку

біт N-2 числа

(старший)

біт N-3 числа

…………

біт 1 числа

біт 0 числа

(молодший)

Наприклад, у форматі із 8 бітів число –5 матиме у прямому коді вигляд 10000101, а +5 таке: 00000101.

Додатковий код був задуманий для того, щоб команду додавання та віднімання реалізувати на апаратному рівні як одну команду, проте на рівні програмної моделі процесора залишається і команда додавання, і віднімання. Побітовий формат числа аналогічний наведеному вище, а біти числа кодуються дещо по-іншому.

Додатнє число у додатковому коді співпадає з формою прямого коду. Від’ємне ж число будується так:

Крок

Дія

Коментар

1

Представляємо число у прямому коді і як додатнє

Представимо, наприклад, –5 у додатковому коді (знаковий біт – зліва):         00000101

2

Інвертуємо всі біти

   11111010

3

До отриманого числа додаємо 1

   11111010

+

   00000001

4

Отримуємо число у додатковому коді

   11111011

Наприклад, число –1 у додатковому коді у всіх бітах формату буде мати 1. Тепер, коли всі операнди представлені у додатковому коді, ми можемо виконувати лише операцію додавання. Знакові біти приймають участь у операції і приймають біти переносу від молодших розрядів. Для прикладу складемо (+5)+(-5), маючи до послуг вже отримане представлення у форматі з 8 біт:

   00000101

+

   11111011

1’00000000

де апострофом відокремлений біт переносу в результаті переповнення у знаковому біті, тобто це вже мав бути 9-й біт, але для 8-бітного формату він втрачається, - отже в результаті отримуємо 00000000.

  1.  Постановка задачі

Необхідно розробити програмну модель процесора та реалізувати його імітаційну модель.

Виконавець самостійно вибирає:

  1.  бітність процесора (шини даних, мінімум 8 біт);
  2.  набір команд, що підтримує процесор, їх кодування (мнемоніку), число операндів;
  3.  мікропрограму для кожної команди;
  4.  кількість тактів для виконання кожної команди;
  5.  систему адресації (фактично форму задання і кількість операндів);
  6.  структуру оперативної пам’яті.

Має бути реалізовано:

  1.  мінімум 2 команди (одна з них - занесення значення у регістр);
  2.  програма мінімум із 3-х інструкцій з можливістю коректування (достатньо в тексті програми);
  3.  робота із додатніми та від’ємними цілими (у прямому чи додатковому коді) з представленням у 2-му вигляді;
  4.  фіксація у регістрі стану  як мінімум знаку результату;
  5.  потактове виконання команд (відрахунок тактів).

  1.  Рекомендації щодо виконання роботи
  2.  Щодо вибору кількості тактів для команд - мінімально достатньо двох: 1-й) занесення поточної команди у регістр команди; 2-й) виконання команди.
  3.  Щодо реалізації ОП -  можна обмежитися роботою лише з загальними регістрами, початкові дані на які заносяться програмно.
  4.  Для відрахунку тактів найзручніше брати клік будь-якої клавіші чи фіксованої групи клавіш клавіатури. Доцільно завжди мати можливість вийти із стану інтерпретації програми процесором за допомогою, наприклад, Esc. Реалізавція програмної затримки для кожного такта недоцільна у порівнянні із "тактуванням" за допомогою миші чи клавіатури, бо вибраний вами темп може перешкоджати аналізу виконуваних дій. Можливий, звичайно, і режим автоматичного виконання (без "ручних" тактів).
  5.  Інтерпретуєма програма може бути заданою у тексті програми (символьний масив тощо) чи у вхідному текстовому файлі. Але має бути передбаченою можливість зміни програми.
  6.  На екрані (достатньо в режимі скролінгу тексту і без рамок для даних) для кожного такту повинні бути представлені такі структурні елементи процесору із даними на них:

Зауваження: якщо вибрати одноадресну модель команд, то ще потрібний суматор.

Приклад інтерпретуємої програми (ланцюжка команд):

  •  Нехай процесор має чотири загальних регістри: R1, R2, R3, R4 довжиною 8 біт. Спочатку у регістрах будь-яке значення.
  •  Для представлення даних використовується додатковий код.
  •  Всі інші регістри – як на схемі вище. Власні імена регістрів виконавець може змінювати і вибирати сам.
  •  Регістр стану із одного біта – знакового біта із значенням 0 для '+' та 1 для '-'.
  •  Програма у прикладі складається із 4 таких інструкцій (команд) процесора:

Load R2, -5

Load R1, 3

Add  R1, R2

Add  R2, R3

  •  Розшифровка виконання програми наведена у наступній таблиці (фактично те, що видно на екрані, знаходиться у 3-й колонці, коментар тактів, взятий у (…) на екрані не потрібний).

Команда

Коментар

Демонстрація дій процесора

Load R2, -5

Завантаження у R2 константи –5

(Подаємо ззовні 1-й такт – це 1-й такт 1-ї команди)

Команда = Load R2,-5

R1 = 0101 0011     Ins = Load | R2  | 1111 1011

R2 = 0111 0011      PC = 1

R3 = 1100 0111      TC = 1

R4 = 0111 1011      PS = 0

(Подаємо ззовні 2-й такт – це 2-й такт 1-ї команди)

Команда = Load R2,-5

R1 = 0101 0011     Ins = Load | R2  | 1111 1011

R2 = 1111 1011      PC = 1

R3 = 1100 0111      TC = 2

R4 = 0111 1011      PS = 1

Load R1, 3

Завантаження у R1 константи 3

(Подаємо ззовні 3-й такт – це 1-й такт 2-ї команди)

Команда = Load R1, 3

R1 = 0101 0011     Ins = Load | R1  | 0000 0011

R2 = 1111 1011      PC = 2

R3 = 1100 0111      TC = 1

R4 = 0111 1011      PS = 1

(Подаємо ззовні 4-й такт – це 2-й такт 2-ї команди)

Команда = Load R1, 3

R1 = 0000 0011     Ins = Load | R1  | 0000 0011

R2 = 1111 1011      PC = 2

R3 = 1100 0111      TC = 2

R4 = 0111 1011      PS = 0

Add R1, R2

Скласти R1 та R2, результат у 1-му регістрі. Регістр R2 отримав значення -210.

(Подаємо ззовні 5-й такт – це 1-й такт 3-ї команди)

Команда = Add R1, R2

R1 = 0000 0011     Ins = Add  | R1  | R2       

R2 = 1111 1011      PC = 3

R3 = 1100 0111      TC = 1

R4 = 0111 1011      PS = 0

(Подаємо ззовні 6-й такт – це 2-й такт 3-ї команди)

Команда = Add R1, R2

R1 = 1111 1110     Ins = Add  | R1  | R2       

R2 = 1111 1011      PC = 3

R3 = 1100 0111      TC = 2

R4 = 0111 1011      PS = 0

Add R2, R3

Скласти R2 та R3, результат у 2-му регістрі. У регістрі R3 значення довільне, а саме –5710, на момент запуску програми. Регістр R2 отримав значення -6210.

(Подаємо ззовні 7-й такт – це 1-й такт 4-ї команди)

Команда = Add R2, R3

R1 = 1111 1110     Ins = Add  | R2  | R3       

R2 = 1111 1011      PC = 4

R3 = 1100 0111      TC = 1

R4 = 0111 1011      PS = 0

(Подаємо ззовні 8-й такт – це 2-й такт 4-ї команди)

Команда = Add R2, R3

R1 = 1111 1110     Ins = Add  | R2  | R3       

R2 = 1100 0010      PC = 4

R3 = 1100 0111      TC = 2

R4 = 0111 1011      PS = 1


 

А также другие работы, которые могут Вас заинтересовать

73806. Русская философия 104.5 KB
  Исследователи неоднократно отмечали что самое оригинальное и значительное было создано русскими мыслителями в области философии истории историософия и социальной философии. Высокая духовность обоснование нравственности как необходимого условия человеческого бытия важнейшая черта русской философии неизменный вектор многовековой социокультурной традиции. Кажется что грани этой вечной проблемы во многом определяют напряженное поле отечественной культуры и философии стремящихся определить свое собственное место в лоне мировой цивилизации....
73807. Учение о бытии (онтология) 84.5 KB
  Исторические корни возникновения понятия бытия. В европейской культуре первые определения бытия возникли еще в Древней Греции что исторически совпало со становлением философского знания переходом от образномифологического к теоретикологическому мышлению. Понятие бытия отвлекается от бесконечного многообразия свойств и качеств конкретных предметов кроме одного быть существующими. Исторические корни возникновения понятия бытия Бытие производное от слов быть есть весьма распространенных во многих языках мира имеет свое...
73808. Учение о развитии. Диалектика 113 KB
  Диалектика – теория и метод познания действительности, учение о всеобщей связи и развитии. Представления об изменчивости и взаимосвязанности всего сущего возникли в глубокой древности.
73809. Сознание. Современные представления о сознательной деятельности 95 KB
  Историческое развитие понятия сознания. Проблема сознания во все века привлекала внимание философов ибо она рассматривает одну из наиболее значимых и специфических сторон человеческой жизнедеятельности. В истории философии существуют различные иногда диаметрально противоположные точки зрения объясняющие сущность сознания его происхождение и роль в обществе. В современной отечественной философии возобладающим является понимание сознания как идеальной формы деятельности направленной на отражение и преобразование действительности.
73810. Познание. Познавательные способности человека 95.5 KB
  Теория истины. Центральной проблемой гносеологии является проблема истины под которой понимается соответствие знаний действительности. В качестве основного критерия истины признак по которому определяется достоверность знания выступает деятельность человека понятая как общественно-историческая практика. Интуиция это способность постижения истины без развернутого логического обоснования в ее непосредственности как единство чувственного и рационального.
73812. Человек как объект философского осмысления 100.5 KB
  Историческое развитие взглядов на человека. При всем различии взглядов на сущность человека его личностные качества анализируются подавляющим большинством философов через деятельность индивида направленную на окружающий мир. Историческое развитие взглядов на человека Размышления о человеке возможностях его деятельности ценностносмысловой ориентации надеждах на будущее составляют основное содержание философии. Начиная с древнейших времен возникает проблема человека заключающая неисчерпаемое многообразие аспектов и подходов своего...
73813. Культура Цивилизация Будущее человечества 128 KB
  Феномен культуры. Уровень культуры содержание особенности проявляются в объектах материальных и духовных создаваемых людьми в процессе этой деятельности. Понятие культуры означает специфический способ жизнедеятельности человека направленной на преобразование природы общества самого себя и представленной предметами материального и духовного труда. Понятие цивилизация часто используется для обозначения материальной культуры и особенно техникотехнологической основы современные орудия производства технологии компьютерноинформационные...
73814. ИССЛЕДОВАНИЕ ПРОСТЕЙШИХ ЭЛЕКТРОННЫХ СХЕМ 4.68 MB
  В схемах постоянного тока в которых ток обычно имеет фиксированное значение определяемое сопротивлениями и напряжениями катушки индуктивности обычно имеют лишь незначительный эффект или вообще не имеют никакого эффекта как в нашем случае с использованием идеальной катушки.