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

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

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

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

Добавлен: 24.12.2021

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

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

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

188

шляхом об'єднання адреси команди переходу та вмісту регістру глобальної історії. Для такого об'єднання використовується або операція конкатенації (зчеплення) (рис. 5.19в), або операція додавання за модулем 2. При цьому можуть використовуватися як всі роз­ряди адреси команди переходу та вмісту регістру глобальної історії, так і лише деяка 'їх кількість.

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

Наведені схеми названі однорівневими, оскільки в них задіяно один рівень таблиць. Такі схеми передбачення використані в наступних комп'ютерах: Alpha 21064 та 21064, AMD K5, R10000, Power PC620, UltraSPARC та інших.

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

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


189

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

5.4. Покращена структура комп'ютера із спрощеною системою команд

На основі проведеного вище аналізу конфліктів у конвеєрі та способів їх мініміза­ції можна провести покращання структури комп'ютера із спрощеною системою команд. В якості прикладу на рис. 5.22 подано покращену структуру тракту виконання команд комп'ютера DLX.


190

Структура додатково містить:

  • суматор ADD, який прискорено, вже на сходинці ID, обраховує цільову адресу пе­реходу;

  • вузол Zero перенесено на один ярус вперед, щоб прискорити реакцію конвеєра на команду умовного переходу та синхронізувати цю реакцію з обрахуванням цільової адреси переходу. В результаті зменшено на такт затримку переходу;

  • введено додаткові інформаційні шини, що дозволяють прискорено надсилати до вузлів процесора коди операндів при реалізації випередження. При цьому кількість вхо­дів мультиплексорів АЛП збільшено.

Кольорами відтінені відповідності станів вузлів конвеєра командам, які цей конвеєр опрацьовує.

5.5. Особливості запобігання конфліктам в суперскалярних процесорах

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

Під впорядкованим поступленням команд та впорядкованим завершенням команд розуміють таким чином впорядковану черговість поступлення команд на виконання та черговість завершення команд, яка визначена програмою. В іншому випадку говорять про невпорядковане поступлення команд та невпорядковане завершення команд.

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

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

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


197

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

Буферна пам'ять, яка називається вікном команд, може бути реалізована двома спо­собами - як інтегрована та як розподілена.

Інтегрована буферна пам'ять реалізується на основі асоціативної пам'яті. Вона опе­ративно виявляє і подає на виконання команди, для виконання яких є всі необхідні опе-ранди та ресурси. Для кожної команди в цій пам'яті виділяється одна комірка. В цій ко­мірці зберігається декодована команда, яка має наступні поля: декодоване поле операції (О), поля операндів (ПО), які вміщують або самі операнди, або адреси їх знаходження, поле, яке вказує місце розміщення результату (ПР), а також поле розрядів достовірності (РД). Для аналізу доступності та виконання розподілу команд до вільних функціональ­них пристроїв (ФП) в процесорі використовується пристрій диспетчеризації, в якому є регістр зайнятості функціональних пристроїв процесора (рис. 5.23).

Команда зчитується з інтегрованої буферної пам'яті на виконання лише після того, коли в полях операндів ПО1 та П02 присутні значення операндів або їх адрес (тобто в полі розрядів достовірності Рді та РД2 записані одиниці), та коли потрібні для її ви­конання функціональні пристрої є вільними (тобто в регістрі зайнятості записані оди­ниці). Результат виконання команди записується до відповідного регістру регістрово­го файла. Оновлення інформації про зайнятість функціональних пристроїв процесора здійснюється в кожному його циклі.

Якщо вікно команд реалізується як розподілена буферна пам'ять, то на вході кожно­го функціонального блоку розміщується буфер декодованих команд, який називається блоком резервування (БР). Після вибірки та декодування команди поступають до того блоку резервування, в якому вони будуть виконуватися (рис. 5.24). Робота кожного


192

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

Оскільки метод резервування орієнтований на подання на опрацювання одночасно декількох команд, використання розподіленої буферної пам'яті (вікна команд) для забез­печення перевпорядкуванням команд є значно простішим порівняно з використанням багатопортової інтегрованої буферної пам'яті. Подібну розподілену буферну пам'ять вперше запропонував Р. Томасуло в комп'ютерній системі ІВМ360/91 у 1967 році, тому описаний метод резервування носить його ім'я.

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

5.6. Комп'ютери з довгим форматом команди

Раніше розглянуті суперскалярні процесори характеризуються високою продуктив­ністю при забезпеченні безконфліктного виконання команд. Але це вимагає значних до­даткових затрат обладнання. На рис. 5. 25 показано кристал суперскалярного процесора MIPS R10000, на якому позначені вузли процесора та виділено апаратні засоби пристрою керування, які забезпечують невпорядковане виконання команд. Видно, що ці засоби зайняли більше ЗО відсотків площі кристала.