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


 

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

80245. Основы саморегулирования рыночной экономики 134 KB
  Объективные факторы: экономические: базовый уровень развития производства; объём реальных потребностей и уровень их удовлетворения; средний уровень денежных доходов населения; рыночные цены; уровень цен товаровзаменителейи взаимодополняемых товаров; принципы распределения доходов; условия предоставления кредитов качество товара. Он отражает причинноследственную связь между изменением цены и изменением величины спроса. Рост цены при прочих неизменных условиях вызывает снижение спроса что способствует разрешению противоречия...
80246. Экономическая роль государства в рыночной экономике 74.5 KB
  Необходимость и сущность государственного регулирования рыночной экономики. Формы государственного регулирования рыночной экономики. Необходимость и сущность государственного регулирования рыночной экономики. Государственное регулирование экономики сложилось не сразу.
80247. Доходы и их распределение. Заработная плата 81.5 KB
  Марксистская теория исходит из того что новая стоимость товара созданная трудом наемных работников проходя через сферу обращения в ходе конкурентной борьбы распределяется и перераспределяется принимая различные формы: заработной платы наемных работников; прибыль капиталистов; процентов ссудных капиталистов банкиров; ренты владельцев земли и других природных факторов объектов добывающей промышленности и строительства. Объективное распределение доходов зависит от того что вновь созданная стоимость слагается из необходимого продукта...
80248. ОСОБЕННОСТИ ФОРМИРОВАНИЯ ЦЕН В ЗАВИСИМОСТИ ОТ МОДЕЛИ РЫНКА 55.5 KB
  Рынок совершенной конкуренции: характерные черты и механизм ценообразования. Особенности рынка несовершенной конкуренции. Механизм рыночных цен позволяет стимулировать рациональное использование ограниченных и редких ресурсов добиваться эффективного хозяйствования решать триаду экономических проблем: что как и для кого производить На решение этих проблем направлен и механизм конкуренции. Монополия вырастая из конкуренции на определенном этапе своего развития уничтожает конкуренцию но рыночная конкуренция как известно неотъемлемый...
80249. Особенности предпринимательства в агропромышленном комплексе 65.5 KB
  Аграрные отношения это составная часть экономических отношений которые складываются в сельском хозяйстве в связи с владением и использованием земли как главного средства производства в сельскохозяйственной отросли. Это обусловлено использованием в производстве земли как специфического искусственно невоспроизводимого средства производства различающегося по плодородию места расположению. Эти свойства наоборот даже могут улучшаться что приведет к росту ценности земли. Тесная зависимость земли от природноклиматических условий сезонный...
80250. ДЕНЕЖНОЕ ОБРАЩЕНИЕ. ФИНАНСОВАЯ СИСТЕМА И ФИСКАЛЬНАЯ ПОЛИТИКА 78 KB
  Особенности рынка денег. Особенности рынка денег. Сущность денег состоит в том что они: обладают всеобщей обмениваемостью; представляют собой кристаллизацию меновой стоимости; являются воплощением всеобщего рабочего времени. С развитием общества изменялись функции и виды денег.
80251. МИРОВОЕ ХОЗЯЙСТВО И ЕГО ЭВОЛЮЦИЯ 73.5 KB
  Постсоциалистические страны переходят от плановораспределительной к рыночной экономике. В соответствии с этими критериями в мировой системе хозяйства выделяется промышленноразвитые и новые индустриальные страны; высокодоходные государства экспортирующие сырье и энергоносители; наименее развитые и бедные страны мира. Кроме того различают страны с развитой развивающейся рыночной экономикой и страны с нерыночной экономикой. Используя абсолютные преимущества в специализации производства страны обмениваются избыточной продукцией и...
80252. МИРОВАЯ ВАЛЮТНАЯ СИСТЕМА 71.5 KB
  Международные валютные отношения – это совокупность экономических отношений между странами юридическими и частными лицами международными экономическими и финансовокредитными организациями по поводу образования и движения валюты. в этот период имели место стабильные золотые валюты и другие международные ликвидные ресурсы в большинстве развитых стран был четкий механизм определения взаимных валютных паритетов курсов международный валютный рынок согласованный порядок взаимных международных платежей на основе вексельного обращения оно...
80253. ЭКОНОМИЧЕСКИЕ АСПЕКТЫ ГЛОБАЛЬНЫХ ПРОБЛЕМ 73.5 KB
  Причины возникновения и сущность глобальных проблем Основные пути демилитаризации экономики Пути решения глобальных проблем Причины возникновения и сущность глобальных проблем Понятие глобальные проблемы происходит от франц. К таким проблемам относятся предотвращение мировой ядерной войны и обеспечение стабильного мира необходимость эффективной и комплексной охраны окружающей среды ликвидация отсталости развивающихся стран преодоление болезней рациональное использование глубин Мирового...