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


 

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

29014. Глубинное уплотнение грунтов с помощью песчаных и грунтовых свай. Область применения указанных методов 51.5 KB
  Песчаные сваи применяют для уплотнения сильно сжимаемых пылеватоглинистых грунтов рыхлых песков и заторфованных грунтов на глубину до 18. Песчаные сваи изготовляют следующим образом. Вокруг песчаной сваи грунт также находится в уплотнённом состоянии рис. Уплотнение грунта песчаными сваями обычно производится под всем сооружением Сваи располагаются в шахматном порядке как это показано на рис.
29015. Уплотнение грунтов основания водопонижением. Ускорение процесса уплотнения с помощью электроосмоса 33.5 KB
  Площадь основания где намечено уплотнение грунтов окружается иглофильтрами или колодцами из которых производится откачка воды водопонизительными установками рис. Понижение уровня подземных вод приводит к тому что в пределах зоны водопонижения снимается взвешивающее действие воды на скелет грунта. При пропускании через грунт постоянного электрического тока происходит передвижение воды к иглофильтрукатоду и эффективный коэффициент фильтрации увеличивается в 10.
29016. Закрепление грунтов инъекциями цементных или силикатных растворов, битума, синтетических смол. Область применения указанных методов 34 KB
  Закрепление грунтов инъекциями цементных или силикатных растворов битума синтетических смол. Закрепление грунтов заключается в искусственном преобразовании строительных свойств грунтов в условиях их естественного залегания разнообразными физикохимическими методами. Это обеспечивает увеличение прочности грунтов снижение их сжимаемости уменьшение водопроницаемости и чувствительности к изменению внешней среды особенно влажности. Цементация грунтов.
29017. Термическое закрепление грунтов. Область применения и методы контроля качества работ 33.5 KB
  В результате этого образуются прочные водостойкие структурные связи между частицами и агрегатами грунта. Отметим что температура газов которыми производится обработка грунта не должна превышать 750.12 суток в результате чего получается упрочнённый конусообразный массив грунта диаметром поверху 15. Образуется как бы коническая свая из обожжённого непросадочного грунта с прочностью до 10 МПа.
29018. Что называется грунтом, его составные элементы 25 KB
  Структурные связи между частицами грунта. Грунтами называют любые горные породы коры выветривания земли сыпучие или связные прочность связей у которых между частицами во много раз меньше чем прочность самих минеральных частиц или эти связи между частицами отсутствуют вовсе. Вода и газы находятся в порах между твердыми частицами минеральными и органическими. Газообразные включения пары газы всегда в том или ином количестве содержатся в грунтах и могут находиться в следующих состояниях: замкнутом или защемленном располагаясь в...
29019. Назовите виды давления грунта на подпорную стенку в зависимости от ее поступательного движения. Какой вид имеет диаграмма давления грунта на стенку в зависимости от ее перемещения 31.5 KB
  Какой вид имеет диаграмма давления грунта на стенку в зависимости от ее перемещения В зависимости от поступательного движения подпорной стенки на нее могут действовать следующие виды давления грунта: активное давление; пассивное давление; давление покоя. Активным называется минимальное из всех возможных для данной стенки давление на нее грунта проявляющееся в том случае если стенка имеет возможность переместиться в сторону от засыпки рис. Активное давление иногда называют распором. Пассивным называется максимальное из всех возможных...
29020. Напряжения, возникающие в массиве грунта от действия сооружения, накладываются на поле начальных напряжений, к которым относятся напряжения от собственного веса грунта 28 KB
  Напряжения возникающие в массиве грунта от действия сооружения накладываются на поле начальных напряжений к которым относятся напряжения от собственного веса грунта. Как вычислить вертикальные напряжения в массиве грунта от его собственного веса в следующих случаях: однородное основание; многослойное основание; при наличии в толще грунта уровня подземных вод; при наличии ниже уровня подземных вод водоупорного слоя. Вертикальное напряжение от собственного веса грунта σz представляют собой вес столба грунта над рассматриваемой точкой...
29021. От чего зависит глубина заложения фундамента 31.5 KB
  Глубина заложения фундаментов является одним из основных факторов обеспечивающих необходимую несущую способность и деформации основания не превышающие предельных по условиям нормальной эксплуатации здания или сооружения. От чего зависит глубина заложения фундамента Допускается ли закладывать подошвы соседних фундаментов на разных отметках Глубина заложения фундамента определяется: инженерногеологическими условиями площадки строительства физикомеханические свойства грунтов характер напластования и пр.; гидрогеологическими условиями...
29022. В чем заключается метод вытрамбовывания котлованов 32.5 KB
  В чем заключается метод вытрамбовывания котлованов Приведите несколько наиболее распространенных конструкций и способов устройства фундаментов в вытрамбованных котлованах. Рекомендуемая область применения способов устройства фундаментов в вытрамбованных котлованах. Применяется несколько конструкций и способов устройства фундаментов в вытрамбованных котлованах. Фундаменты в вытрамбованных котлованах используются при строительстве каркасных и бескаркасных зданий в первом случае обычно располагают один фундамент под каждой колонной.