Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
"Вступ до спеціальності" Лекція 12.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
657.41 Кб
Скачать

Лекція 12

Рівень архітектури набору команд процесора. Типи машинних команд. Інтегральні схеми процесора. Паралельні архітектури. Мікропроцесори фірми Intel. Покоління мікропроцесорів.

12.1. Рівень архітектури набору команд процесора.

Набір команд є найбільш суттєвою ознакою архітектури комп’ютера, бо саме він в першу чергу визначає сумісність з програмним забезпеченням. Набір команд є зв’язуючою ланкою між прикладним програмним забезпеченням та апаратурою комп’ютера. Безумовно, можна було б зробити так, щоб машина безпосередньо виконувала програми написані на мовах C, C++ або Java, але в цьому випадку втрачалась би багатомовність комп’ютерів.

Для того, щоб на комп’ютері можливо було ставити програми, написані на різних мовах, більшість розробників вважають найкращим шляхом трансляцію програми, написаної на мові високого рівня в загальну для всіх мав проміжну форму – рівень архітектури команд даної машини (Рис.12.1 ). Цей процес називається компіляцією.

.

Рис. 12.1

Головні вимоги до набору команд машини такі:

  • скорочення прикладних програм

  • швидкодія програмного забезпечення

  • набір команд повинен враховувати перспективу розвитку техніки і стати основою для розробки цілого покоління комп’ютерів. Наприклад, невдалий набір команд може вимагати складної апаратури чи великих обсягів пам’яті для реалізації програми і таким чином бути непридатним для подальшого розвитку.

  • набір команд повинен надавати максимальну зручність для створення компіляторів (регулярність та повнота варіантів).

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

В принципі рівень архітектури команд – це той рівень, що дає програмісту повне уявлення про машину, коли він пише програму на машинній мові. Такий програміст має знати всі подробиці архітектури комп’ютера: модель пам’яті, призначення регістрів, типи даних, перелік і особливості команд і т.д. Вся ця інформація і визначає рівень архітектури команд.

Головною особливістю рівня архітектури команд є сам набір команд. Вони управляють всіма процесами в машині. В цьому наборі завжди в той чи іншій формі присутні команди типу LOAD і STORE призначені для переміщення даних між пам’яттю і регістрами і команд, MOVE, що служить для копіювання даних з одного регістра в другий. Обов’язково присутні команди арифметичні і логічні, команди порівняння даних, а також команди переходу в залежності від результатів. В Pentium 4 всього біля 250 команд і їх модифікацій.

Pentium 4 розвивався на протязі багатьох років. Його історія починається з самих перших мікропроцесорів. Основна архітектура команд забезпечує виконання програм, написаних ще для процесорів 8086 і 8088. Pentium 4 може працювати в реальному режимі процесора 8086, а також в повній якості – в режимі Pentium 4.

З точки зору архітектури команд всі мікропроцесори можна розділити на групи:

  1. мікропроцесори типа CISC з повним набором системи команд;

  2. мікропроцесори типа RISC з усіченим набором системи команд;

  3. мікропроцесори типа VLIW з надвеликим командним словом;

  4. мікропроцесори типа MISC з мінімальним набором системи команд і вельми високою швидкодією та інш.

Суперскалярні процесори зазвичай асоціюються з RISC-архітектурами (Reduced Instruction Set Computers – спрощена система команд). Це спрощена система потужних команд (приблизно 50), які керують машинними словами великої довжини (не менше 64 біта). Враховуючи велику КЕШ-пам'ять RISC-процесори забезпечують багатократне підвищення швидкодії і використовуються в потужних комп’ютерах – серверах.

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

Спрощення набору команд покликане скоротити конвеєр, що дозволяє уникнути затримок на операціях умовних і безумовних переходів. Однорідний набір регістрів спрощує роботу компілятора при оптимізації виконуваної програмної коди. Крім того, RISC-процесорі відрізняються меншим енергоспоживанням і тепловиділенням.

Серед перших реалізацій цієї архітектури були процесори MIPS, PowerPC, SPARC, Alpha, PA-RISC

Мікропроцесори для персональних комп’ютерів відносяться до СISC-архітектур (Complex Instruction Set Computers – з повною системою команд, до 250 одиниць).

Complex Instruction Set Computer — вычисления со сложным набором команд. Процессорная архитектура, основанная на усложнённом наборе команд. Типичными представителями CISC являются микропроцессоры семейства x86 (хотя уже много лет эти процессоры являются CISC только по внешней системе команд: в начале процесса исполнения сложные команды разбиваются на более простые микрооперации (МОП'ы), исполняемые RISC-ядром).

VLIM – процессоры (Very Long Instruction Word ) — сверхдлинное командное слово. Архитектура процессоров с явно выраженным параллелизмом вычислений, заложенным в систему команд процессора. Ключевым отличием от суперскалярных CISC-процессоров является то, что для последних загрузкой исполнительных устройств занимается часть процессора (планировщик), на что отводится достаточно малое время, в то время как загрузкой вычислительных устройств для VLIW-процессора занимается компилятор, на что отводится существенно больше времени (качество загрузки и, соответственно, производительность теоретически должны быть выше). Примером VLIW-процессора является Intel Itanium.

MISC – процессоры (Minimum Instruction Set Computer)— вычисления с минимальным набором команд. Дальнейшее развитие RISC архитектуры. В пылу борьбы за максимальное быстродействие, RISC догнал и перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой вычислительной модели с ограниченным числом команд (примерно 20-30 команд).

В архітектурі ММХ (мультимедійне розширення) додано 57 спеціальних команд для ефективної обробки відео, звукових і графічних даних. Ці команди часто зустрічаються при роботі з мультимедійними програмами.

Формат команди складається з коду операції і з інформації, що дозволяє визначити звідки поступають операнди і куди треба її відіслати. На Рис. 12.2 наведено декілька можливих форматів команд.

Рис. 12.2.

При виборі формату команд треба взяти до уваги ряд факторів. Перш за все має велике значення можливість додавати нові команди і другі елементи на

протязі деякого часу, щоб підтримувати конкурентну здатність архітектуру комп’ютера якомога довше.

Також постійно йде пошук оптимальної довжини команд. Сильна мінімізація довжина команд ускладнює їх декодування, а в той же час скорочує час їх виконання. Однозначного рішення тут немає. Першим шляхом (побайтна адресація) пішли розробники машини Burroughs 1700, другим шляхом розробники машини Cyber (фірма CDC), в якій пам'ять містить 60-розрядні слова.

Більшість сучасних обчислювальних машин (в тому числі Pentium 4) прийшли до компромісу: вони вимагають, щоб адреси були у окремих байтів і в той самий час при звертанні до пам’яті зчитують інформацію у вигляді одного, двох, а іноді чотирьох слів.

Формати команд процесора Pentium 4 не можуть служити класичним прикладом, вони дуже складні і обтяжені різними вимушеними доробками за всю історію розвитку Intel- процесорів.

12.2. Типи машинних команд.

Команди можна розділити на декілька груп, які хоча і можуть відрізнятися в деталях, але практично присутні в кожній машині.

Команди переміщення даних – одні з самих розповсюджених. Термін “переміщення” в комп’ютерах дещо відрізняються від звичайного побутового поняття. Команди переміщення даних краще було б назвати дублюванням, бо дані з комірки А переписуються в комірку В, але оригінал залишається і в А. Існують команди переміщення даних різного обсягу – від одного біта до всієї пам’яті.

Бінарні операції – це такі операції, які отримують результат на основі значення двох операндів. Це перш за все всі арифметичні операції. В наступну групу входять булеві команди, основні з яких “І”, “АБО”, “НЕ”. Важливим використанням цих операцій є виділення бітів із слів, та запис бітів в слово.

Унарні операції – це операції над одним операндом, наприклад зсув коду, циклічний зсув, інверсія коду.

Операції порівняння і умовні переходи.

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

Команди виклику процедур.

Процедурою називається група команд, яка розв’язує певну задачу і яку можливо визвати з різних місць програми. Замість терміна “процедура” часто використовується термін “підпрограма”. Коли процедура закінчує розв’язування задачі вона повинна повернутися до операнду наступного по відношенню до того, який визвав процедуру.

Команди введення-виведення.

В сучасних персональних комп’ютерах використовується три різні схеми введення-виведення:

  • програмоване введення-виведення;

  • введення-виведення з управління за перериванням;

  • введення-виведення з прямим доступом до пам’яті;

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

Введення-виведення з управлінням за перериванням – це великий крок вперед по відношенню до попереднього випадку. Але в цьому варіанті також витрачається багато часу для генерування переривання для кожного символу.

Рішення проблеми лежить в використанні контролера прямого доступу до пам’яті (ПДП), Рис. 12.3, який бере її на себе.

Рис. 12.3. Контролер прямого доступу

Мікросхема ПДП має в своєму складі мінімум 4 регістра, які завантажуються з центрального процесора. Перший регістр містить адресу пам’яті яку треба зчитати, або записати. Другий регістр містить кількість байтів, що треба передати. Третій – номер пристрою введення-виведення і адресу в адресному просторі пристрою введення-виведення. Четвертий регістр повідомляє, повинні дані зчитуватися чи записуватися. На рис 8.8 відображена ситуація, коли треба передати (1) на дисплей (4) блок з 32 байтів, починаючи з адреси 100.