Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6803

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

119





Для наочності використання різних типів описаних вище форматів команд, аналізу їх переваг та недоліків розглянемо кілька характерних прикладів форматів команд, які використовувалися раніше в різних поколіннях комп'ютерів та які використовуються в сучасних комп'ютерах.

3.5.1. Формати команд комп'ютерної системи IBM 370


В системі IBM 370 використо­вувалися три варіанти довжини команди: двобайтова, чотирибай-това, шестибайтова. Також вико­ристовувалися два варіанти довжи­ни коду операції: однобайтовий та двобайтовий. В сумі це складає десять різних форматів команд. На рис. 3.40 наведено формати команд комп'ютерної системи IBM 370.

Тип формату команди вказу­ється першими двома розрядами коду операції КОП: 00 - RR; 01 -RX; 10 - RRE, RS, RX, S, SI; 11 - SS, SSE. Коротко опишемо кожен тип команди.

Команда регістр-регістр RR. Цей формат команди є двобайто-вим. В адресній частині звернення відбувається до регістрів. Оскіль­ки багато операцій виконується з використанням регістрів, такий формат при своїй компактності є досить ефективним.


120

Розширена команда регістр-регістр RRE (Е - Extended). Цей формат використовуєть­ся для декількох спеціальних привілейованих команд операційної системи. Розширений код операції дозволяє виконання додаткових операцій. Поле після коду операції не ви­користовується.

Команда регістр-індексована пам'ять RX. За цією командою перший операнд зна­ходиться в регістрі, а другий операнд обчислюється шляхом додавання 12-розрядного зміщення D2 до вмісту регістра бази В2 та індексного регістра Х.2. Обидва регістри на­лежать до регістрів загального призначення.

Команда регістр-пам'ять RS. Ця команда має триадресний формат. Тут також є три звернення до регістрів, але вони вказують на три різних операнди. Третій регістр вико­ристовується як регістр бази, до якого додається зміщення.

Команда пам'ять-безпосередній операнд SI (І - Immediate). Тут адреса першого опе-ранда вираховується шляхом додавання зміщення до бази, а другий операнд знаходить­ся безпосередньо в 8-розрядному полі адреси.

Команда пам'ять S. Це привілейована команда, яка використовується для введення-виведення або системою контролю функцій. Тут використовується розширений 16-роз-рядний код операції. Адреса другого операнда вираховується шляхом додавання змі­щення до бази. Адреса ж першого операнда, якщо він є, вказується кодом операції.

Команда пам'ять-пам'ять SS. Ця команда займає б байт і вказує на два операнди, роз­міщені в пам'яті. Наступні після коду операції 8 біт можуть бути використані трьома варіантами: в форматі одиночної довжини (OL) поле L вказує кількість байт, які будуть оброблені; в форматі подвійної довжини (EL) поле L вказує довжину двох операндів у байтах (цей формат використовується для команд десяткової арифметики; третій варі­ант (RS) використовується в декількох привілейованих командах, в яких другий байт вказує на два регістри загального призначення. Ці регістри вміщують покажчики або іншу керуючу інформацію.

Розширена команда пам'ять-пам'ять SSE. Цей формат також використовується в де­кількох привілейованих командах з розширеним кодом операції. Адреса першого та дру­гого операндів вираховується шляхом додавання зміщення до бази.

3.5.2. Формати команд комп'ютера Cyber-70

Розглянемо іще одну систему команд, яка використовувалась в комп'ютері Cyber-70 (рис. 3.41). її відмінністю від інших є нестандартна довжина розрядної сітки, кратна трьом.


121

Тут А - адреса пам'яті, R - адреса регістра, L - довжина операнда, С - номер симво­лу в складному слові, N - число. Також використовуються дві довжини коду операції: шести- та дев'ятирозрядний. В сумі використовується п'ять різних форматів команди. Перший дозволяє одночасно адресувати три регістри, другий адресує один регістр та вміщує число, що підлягає обробці, третій адресує два регістри та пам'ять і є в два рази довший, так само, як і четвертий формат, який адресує один регістр і пам'ять, але має довший код операції. Іще в два рази довшим є п'ятий формат команди, який вказує дві адреси пам'яті та параметри відповідних чисел - довжину і номер в складному слові.

3.5.3. Формати команд сучасного комп'ютера

Формати команд сучасного комп'ютера на прикладі комп'ютера DLX, який є узагаль­ненням цілого спектра сучасних комп'ютерів, подано на рис. 3.42.

Дамо коротке пояснення щодо наведених на рисунку форматів команд.

  • Команда типу І опрацьовує безпосередній операнд (Immediate).

  • Команда типу R отримує пару операндів із джерельних регістрів (Registers) регі­стрового файла процесора та повертає результат знов таки до регістра призначення цьо­го файла.

  • Команда типу J є командою безумовного переходу (Jump).

  • Opcode є полем коду операції КОП, довжина якого становить 6 бітів.

  • rsl, rs2 є полями з довжиною 5 бітів, що визначають номери регістрів-джерел опе­рандів (register of source) та програмно вибираються серед регістрів R0...R31 регістрово­го файла.

  • rd є п'ятибітовим полем номера регістра призначення, приймача результату дії (register of destination). Регістр призначення також вибирають із множини R0...R31 регі­стрового файла.

  • Immediate - це 16-бітове поле, що містить безпосередній операнд. При цьому лівий розряд immediate розглядають як знаковий. При використанні безпосередній операнд розширюють вліво за правилами доповняльного коду до 32-х бітів.

  • Function - це поле, що визначає функцію, яка розширює на 211 - 1 = 2047 комбінацій обмежену кількість дозволених кодів операції.

  • Offset added to PC - це 26-бітова константа, яку додають до вмісту регістра на­ступної адреси при виконанні команди безумовного переходу.

Особливості форматів команд комп'ютера DLX:

  • Довжина усіх форматів - 32 біти.

  • Реалізовано тип архітектури регістр-регістр.


122

  • Реалізовано фіксовану систему поділу форматів на поля.

  • Усі команди з погляду 'їхньої обробки поділено на три групи: операції АЛП, опера­ції зчитування/запису, операції керування виконанням програми.

Формати команд АЛП є триадресними, а саме, OP RX,RY,RZ. Вони є майже збіжними з форматами команд мікропроцесора М88Х00 фірми Motorola. Останній, разом із мікро­процесорами ІВМ801 та AMD29000 у середині 80-х років склав історично першу трійку серійних комп'ютерів з архітектурою RISC.

3.6. Вплив технологи компілювання на систему команд комп'ютера

В перших поколіннях комп'ютерів програми писались на асемблерній мові. Тому архітектура системи команд часто будувалась виходячи з потреби спрощення програ­мування на асемблері. Сьогодні переважна частина програм пишеться на мовах високо­го рівня. Для їх перекладу в машинні команди використовуються спеціальні програми, які називаються компіляторами. Перші компілятори створювались для вже існуючих комп'ютерів з конкретною системою команд. Оскільки від компілятора значною мірою залежить продуктивність комп'ютера, розуміння технології компілювання сьогодні є вкрай необхідним для проектування ефективної системи команд. Тому в подальшому розглянемо питання вибору складу системи команд комп'ютера з точки зору ефективно­го компілювання та виконання на ньому програм мовами високого рівня.

Структура сучасного компілятора показана на рис. 3.43. Перша процедура передба­чає перехід з мови програмування високого рівня до деякої простої проміжної мови і є залежною від мови програмування та незалежною від апаратних засобів комп'ютера.

Під час виконання другої процедури здійснюється оптимізація коду представленого про­міжною мовою, зокрема розкриваються звернення до підпрограм та циклів. Ця процедура також залежить від типу проміжної мови та не залежить від апаратних засобів комп'ютера.

На третій процедурі виконується глобальна оптимізація з врахуванням базових ар­хітектурних принципів побудови комп'ютера. Тут здійснюється прив'язка до конкрет­них типів комп'ютерних пристроїв. На останній процедурі здійснюється детальний ви­бір команд та машинно-залежна оптимізація.


123

3.7. Архітектура системи команд комп'ютера

3.7.1. Класифікація архітектури комп'ютера за складом системи команд

Як вже було відмічено, розгляд архітектури комп'ютера на рівні системи команд встановлює межу між апаратурою і програмним забезпеченням і дозволяє побачити комп'ютер на рівні, який видимий програмісту, що працює на мові асемблера, або роз­робнику компіляторів.

За складом системи команд комп'ютери можуть бути поділені на наступні типи:

  • комп'ютери із складною (комплексною) системою команд (КССК, Complex Instruc­tion Set Computers - CISC);

  • комп'ютери з простою (спрощеною) системою команд (КПСК, Reduced Instruction Set Computers - RISC);

  • комп'ютери з доповненою системою команд (КДСК, Supplemented Instruction Set Computers - SISC). В таких комп'ютерах складна або проста система команд доповню­ється командами, орієнтованими на конкретну область використання. До таких комп'ю­терів, зокрема, відносяться програмовані процесори обробки сигналів (Programmable Digital Signal Processors);

  • комп'ютери з орієнтованою (спеціалізованою) системою команд (КОСК, Applicati­on Specific Instruction Set Computers - ASISC).

Далі ці архітектури будуть розглянуті детально.

3.7.2. Комп'ютери із складною та з простою системами команд

Двома основними архітектурами, які розрізняються за складом системи команд, а відповідно і за іншими елементами, що буде показано в подальшому, та які найширше ви­користовуються комп'ютерною промисловістю на сучасному етапі, є архітектури КССК та КПСК (CISC і RISC). Основоположником архітектури КССК можна вважати компанію IBM з її базовою архітектурою ІВМ/360, ядро якої використовується з 1964 року і дійшло до наших днів, наприклад, в таких сучасних мейнфреймах, як IBM ES/9000.

Лідером в розробці мікропроцесорів на основі архітектури КССК є компанія Intel зі сво­їми серіями х86 і Pentium. Ця архітектура де-факто є стандартом для ринку мікрокомп'ю-терів. Для архітектури КССК характерне порівняно невелике число регістрів загального призначення; велика кількість машинних команд, деякі з яких семантично навантажені аналогічно операторам мов програмування високого рівня і виконуються за багато тактів; велика кількість методів адресації; велика кількість форматів команд різної розрядності; переважання двоадресного формату команд; наявність команд типу регістр-пам'ять.

Основою архітектури сучасних робочих станцій і серверів є архітектура комп'ютера з простою системою команд КПСК. Зачатки цієї архітектури йдуть своїм корінням до комп'ютерів CDC 6600, розробники яких (Торнтон, Крей та ін.) усвідомили важливість спрощення набору команд для побудови швидких обчислювальних машин. Цю тради­цію спрощення архітектури С. Крей з успіхом застосував при створенні широко відомої серії суперкомп'ютерів компанії Cray Research. Проте остаточно поняття комп'ютера з простою системою команд в сучасному його розумінні сформувалося на базі трьох до­слідницьких проектів комп'ютерів: процесора 801 компанії IBM, процесора RISC універ­ситету Берклі та процесора MIPS Стенфордського університету.