logo
AOM / Мельник А

4.2.5.1. Конвеєрний процесор

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

152

  1. IF- вибірка команди (за адресою, заданою лічильником команд, із пам'яті зчиту­ється команда).

  2. ID- декодування команди/вибірка операндів з регістрів.

  3. ЕХ - виконання операції та обчислення ефективної адреси пам'яті.

  4. MEM - звернення до пам'яті.

  5. WB - запам'ятовування результату.

На рис. 4.6 представлена схема процесора, що виконує вказані вище фази виконання команд без перекриття. Щоб конвеєризувати цю схему, можна просто розбити виконан­ня команд на вказані вище фази, відвівши для виконання кожної фази один такт синхро­нізації, і починати в кожному такті виконання нової команди. Природно, для зберігання проміжних результатів кожної фази необхідно використовувати конвеєрні регістри. На рис. 4.9 показана схема процесора з конвеєрними регістрами, які забезпечують переда­чу даних і керуючих кодів з одного ярусу конвеєра на наступний. Хоча загальний час виконання однієї команди в такому конвеєрі складатиме п'ять тактів, у кожному такті апаратура виконуватиме в суміщеному режимі п'ять різних команд.

Конвеєрний процесор комп'ютера DLXструктуровано наступними ярусами конве­єра: IF,ID,EX,MEM,WB.Апаратура кожного ярусу реалізує притаманні їй мікроопе-рації. Наприклад, на першому ярусі виконується вибирання команди з пам'яті команд ЇМ за вмістом програмного лічильника PC,приріст (інкремент) на +4 (з врахуванням логічного байтового адресування нам'яті команд) поточної адреси за допомогою ком­бінаційного суматора ADDта занесення значення наступної адреси до поля NPC(NextPC),інтегрованого до конвеєрного регістра IF/ID.Мультиплексор Mux,що керується відповідним однобітним полем конвеєрного регістра ЕХ/MEM,визначає джерело запи­су до NPC- або наступна за чергою адреса, або цільова адреса умовного чи безумовного переходу. Важливо, що обов'язок змінювати природне адресування послідовності виби­рання команд з пам'яті команд покладено на вміст команди, яка пройшла фазу конвеєра MEM,

153

Конвеєрні регістри виконують функцію збереження вмісту інтегрованих до них регі­стра команди IR,робочих регістрів А, В тощо. Конвеєрні регістри розташовано на межах ярусів. Вони мають назви, відповідні граничним ярусам, наприклад IF/ID.Тоді поле А конвеєрного регістра позначається як ЕХ/МЕМ.А.

До апаратури другого ярусу ID належать регістровий файл Regs, який містить множину про­грамно-доступних регістрів, та поширювач знаку Signextend,що конвертує 16-бітові безпосе­редні знакові константи у 32-бітові стандартні операнди формату з фіксованою комою.

Апаратура третього ярусу містить комбінаційний ALUіз мультиплексорами на кож­ному вході і схему (Zero?)визначення істинності чи хибності умови команди умовного переходу.

Призначення інших вузлів є зрозумілим з рисунка. Можна на додачу зауважити, що регістровий файл має два порти на читання і один на запис. Ця особливість є прямим наслідком запроваджених в комп'ютері DLXсистеми команд і конвеєрного принципу роботи. Регістровий файл Regsпрацює у кожній команді на двох ярусах конвеєра - ID(два читання) та WB(один запис). Означені фази двох різних команд можуть збігатися у часі. Аби запобігти колізії, потрібна реалізація одночасного читання та подвійного запису до цього файла. Крім того, необхідно запобігати запису даних до того ж самого регістра.

Роботу конвеєра можна умовно представити у вигляді часової діаграми суміщеного в часі виконання фаз команди, як це було показано раніше, або у вигляді зміщених в часі схем тракту даних комп'ютера DLX(рис. 4.10), де кожна схема зображає ту ж саму фазу команди. Тут ССі - тактові інтервали, ЇМ - пам'ять команд, REG -- регістровий файл, ALU - арифметико логічний пристрій, DM - пам'ять даних.

Цей рисунок добре відображає поєднання в часі виконання різних етапів команд. Тут перша опрацьована команда знаходиться вгорі, остання - знизу, СС - тактовий ін­тервал. Проте частіше для представлення роботи конвеєра використовуються часові діа­грами (рис. 4.11), на яких зазвичай зображаються виконувані команди, номери тактів і етапи виконання команд.

Номер

команди

Номер такту

1

2

3

4

5

6

7

8

9

І

IF

ID

EX

MEM

WB

154

i+1

IF

ID

EX

MEM

WB

i+2

IF

ID

EX

MEM

WB

i+3

IF

ID

EX

MEM

WB

i+4

IF

ID

EX

MEM

WB

Рис. 4.11. Часова діаграма роботи конвеєра

З приведеної часової діаграми стає зрозуміло, для чого потрібні дві незалежні пам'яті - команд та даних. Це дозволить на тому ж самому тактовому інтервалі без колізії по­єднувати виконання фаз IFта MEMдвох команд. При цьому, безперечно, зростають ви­моги до швидкодії запам'ятовуючих пристроїв. Такі пристрої повинні відпрацьовувати звертання за один цикл (в нашому випадку за один тактовий імпульс), що обумовлює раціональність застосування відокремлених кеш пам'ятей команд та даних.

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

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

Як приклад розглянемо скалярний комп'ютер із п'ятьма етапами виконання опера­цій, які мають тривалість 50, 50, 60, 50 і 50 не відповідно (рис. 4.12).

7 55

Хай накладні витрати на організацію конвеєрної обробки складають 5 нс. Тоді серед­ній час виконання команди в скалярному процесорі буде рівний 260 нс. Якщо ж вико­ристовується конвеєрна організація, тривалість такту буде рівна тривалості найповіль-нішої фази обробки плюс накладні витрати, тобто 65 нс. Цей час відповідає середньому часу виконання команди в конвеєрі. Таким чином, маємо чотирикратне прискорення, одержане в результаті конвеєризації.

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