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


 

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

27635. Нормы статей 83 KB
  Ее целями являются: защита уголовноправовыми средствами правил охраны окружающей среды установленного нормативноправовыми актами порядка деятельности связанной с использованием природных ресурсов или воздействием на состояние и качество окружающей среды защита экологических прав и интересов граждан обеспечение экологической безопасности населения и территорий предотвращение уничтожения гибели объектов природы ухудшения качества окружающей среды. В главе 26 УК установлена ответственность за посягательства которые заключаются ...
27636. Объект преступления - неприкосновенность компьютерной информации 46.5 KB
  информации на машинном носителе в электронновычислительной машине ЭВМ системе ЭВМ или их сети если это деяние повлекло уничтожение блокирование модификацию либо копирование информации нарушение работы ЭВМ системы ЭВМ или их сети. Под компьютером понимается электронновычислительная машина ЭВМ или в переводе на русский язык вычислитель. Под компьютеризацией понимается широкое внедрение ЭВМ компьютеров в различные сферы человеческой деятельности. Специалисты в области компьютерной техники могут незаконно вмешиваться в созданные...
27638. Общие начала назначения уголовного наказания. Обстоятельства, смягчающие и отягчающие наказание. Назначение наказания при наличии смягчающих обстоятельств 152.5 KB
  Общие начала назначения уголовного наказания. Назначение наказания при наличии смягчающих обстоятельств. Общие начала назначения наказания это принципиальные основные положения которыми должен руководствоваться суд при назначении наказания лицу признанному виновным в совершении преступления. Законодатель выделяет следующие основные начала назначения наказания: 1 наказание должно быть справедливымт.
27640. Понятие и характеристика убийства при отягчающих обстоятельствах (ч.2 ст. 105 УК) 32 KB
  Убийство при отягчающих обстоятельствах характеризуется наличием квалифицирующих признаков того или иного элемента состава преступления объекта субъективной объективной сторон. Квалифицирующие признаки объекта: это пункты а б в г ст. Для квалификации по п. Квация по п.
27641. Понятие квалификации преступлении, ее этапы. Конкуренция уголовно-правовых норм, ее виды 30 KB
  Квалифицировать преступления значит дать ему юридическую оценку указать уголовноправовую норму предусматривающую это деяние. В юридических документах квалификация преступления выражается в виде ссылки на соответствующую статью УК или несколько статей. Квалификация преступления это точная уголовноправовая оценка конкретного общественно опасного деяния. Понятие квалификации имеет два взаимосвязанных значения: 1 процесс установления признаков состава преступления в деянии лица; 2 результат этого процесса т.
27643. Понятие некорыстных преступлений против собственности, их виды и юридическая характеристика 32.5 KB
  167 УК РФ Объект преступления отношения собственности. Объективная сторона преступления характеризуется: уничтожением или повреждением чужого имущества; причинением значительного ущерба собственнику владельцу. Субъективная сторона – прямой мотивы и цель – могут быть разнообразными; могут выражаться например в стремлении скрыть следы совершенного ранее преступления или из мести из ревности за исключением тех которые превращают деяние в преступление иного рода терроризм организация и участие в массовых беспорядках диверсия...