22596

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

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

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

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

Украинкский

2013-08-03

97.5 KB

7 чел.

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

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

  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


 

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

35772. Творческий проект. Тема: Табуретка 171 KB
  Табуреты это стулья без спинок или короткие скамьи для только исключительно одного человека. Римляне делали крепления подвижными – так появляются складываемые табуреты. Сейчас табуреты – практически любые сиденья без спинок и подлокотников. Актуальность: табуреты очень пригодятся в жизни потому – что они компактны в отличии от стульев и их удобнее переносить.
35773. КУКЛА-КОРМИЛКА (или ХОЗЯЮШКА). Творческий проект 140 KB
  Историческая справка Наиболее распространенной игрушкой в России еще в первые десятилетия ХХ века была тряпичная кукла. Кукла была предметом полным внутреннего значения и смысла. Кукла была неотъемлемой частью праздников русской деревни: сева жатвы уборки урожая многочисленных ритуалов и обрядов.
35774. Рисунок «Капитан Джек Воробей». Творческий проект 6.12 MB
  После долгих размышлений я решила что Джонни Депп подходящая кандидатура так как он очень известный актер с красивой внешностью.Мне очень нравится его роль капитана Джека Воробья в фильме Пираты Карибского моря поэтому я решила нарисовать его именно в этом образе. Обоснование выбора цветовой гаммы и использования материалов Так как на стенах школы уже висят две работы нарисованные простыми карандашами я решила на этот раз сделать рисунок цветным.
35775. Маркетинговый анализ компании 39 KB
  Ваша задача – проанализировать маркетинговую деятельность компании и найти новое направление развития компании. Маркетинговый анализ компании. Описание компании Название принадлежность к бизнесу малый средний крупный Давайте примем принадлежность к бизнесу по вашим представлением т. Сфера деятельности компании принадлежность к отрасли определение по категориям географические ценовые границы классификация товаров и или услуг Домашнее задание 1.
35777. Комнатные растения. Творческий проект 51 KB
  Drcen род растений семейства Спаржевые деревья или суккулентные кустарники. Ранее в ботанической классификации Драцена а также роды Кордилина и Юкка принадлежали к семейству Агавовые gvcee но после было выделено отдельное семейство Драце́новые Drcencee. Название Научное название рода Drcen в переводе означает самка дракона. Яркокрасная смола драконья кровь производится из Drcen drco а в древности из Drcen cinnbri.
35780. Шкатулка для золота. Творческий проект 74 KB
  Работа над формой шкатулки варианты 8. Орнамент шкатулки 9. Технологическая последовательность изготовления шкатулки 13. Вспомнив уроки технологии на которых учитель показывал нам образцы различных изделий после недолгих раздумий я остановил свой выбор на изготовлении шкатулки.