Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

A_O_Melnik_Arkhitektura_komp_39_yuteriv

.pdf
Скачиваний:
362
Добавлен:
12.02.2016
Размер:
6.8 Mб
Скачать

162

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

Для вияснення базових принципів побудови процесорів векторних комп'ютерів роз­ глянемо структуру та систему команд процесора векторного варіанта комп'ютера БЬХ, а саме комп'ютера ЭЬХУ. До складу процесора, структура якого приведена на рис. 4.18, входять пристрій векторного читання запису, регістрові файли з векторними та ска­ лярними регістрами, а також операційний пристрій з набором конвеєрних операційних пристроїв додавання, множення та ділення з рухомою комою та виконання арифметич­ них і логічних операцій над цілими числами.

Конвеєрні операційні пристрої

,элаваннр з рухом сю комо

Г/нохсння з рухомою комою

Ділення з рухомою комою

ераші над цілими числами!

Логічні сперацТ

 

Рис. 4.18. Структура процесора комп'ютера DLXV

Цей комп'ютер має векторні команди, які наведено в табл. 4.4.

 

 

 

Таблиця 4.4

Команда

Операнди

Операція

Коментар

 

 

 

 

A D D V

V1.V2.V3

V1=V2+V3

VECTOR+VECTOR

ADDSV

V1.F0.V2

V1=F0+V2

SCALAR+VECTOR

M U L T V

V1.V2.V3

Vl=V2xV3

VECTORxVECTOR

MULSV

V I , F0.V2

V1=F0XV2

SCALAR x VECTOR

LV

V I , R l

Vl=M[Rl..Rl+63]

LOAD, STRIDE=1

LVWS

V1.R1.R2

V1=[R1..R1+63*R2]

LOAD, STRIDE=R2

LVI

V1.R1.V2

V1=[R1+V2i,i=0..63

indirect ("gather")

CeqV

VM.V1.V2

VMASKi=(Vl I=V2I)

comp. Set mask

M O V

VLR . Rl

Vec. Len. Reg = Rl

set vector length

M O V

V M , Rl

Vec. Mask=Rl

set vector mask

Приведений процесор є процесором комп'ютера з простою системою команд. До цього типу належать усі векторні суперкомп'ютери: Cray, Convex, Fujitsu, Hitachi, N E C .

163

Хоча потрібно зауважити, що існують і векторні комп'ютери з архітектурою «иам'ятьпам'ять», коли всі векторні операції є операціями типу пам'ять-пам'ять наприклад, CDC-6600.

Подібно до приведеного на рис. 4.18, процесори векторних комп'ютерів містять на­ ступні основні компоненти

Векторні регістри; це регістрий файл фіксованої ємності що вміщує вектор даних. Цей файл має як мінімум 2 порти на читання і один порт на запис та зазвичай включає 8-32 векторних регістри, кожний з яких є 64 - 128розрядним

Конвеєрні операційні пристрої. Зазвичай застосовують 4-8 операційних пристро­ їв, а саме: додавання, множення і ділення з фіксованою та рухомою комою, зсуву тощо

Векторний вузол читання-запису, також конвеєрний, який опрацьовує вектори да­ них. Водночас застосовують декілька таких вузлів

Скалярні регістри, які містять один скаляр з рухомою комою або адресу

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

Перші векторні комп'ютери STAR-100 фірми C D C та A S C фірми ТІ були створені в 1972 році. Це були векторні комп'ютери з архітектурою типу пам'ять-пам'ять

Значний внесок в теорію побудови векторних комп'ютерів зробив видатний амери­ канський конструктор векторних суперкомп'ютерів Сеймур Крей. На рис. 4.19 зображе­ но його перший векторний суперкомп'ютер Сгау-1 та векторні суперкомп'ютери Сгау-2 і Cray-YMP.

Рис. 4.19. Векторні суперкомп'ютери Сгау-1, Сгау-2 і Cray-YMP

Комп'ютер CRAY-1 був створений в 1976 році і мав архітектуру типу «регістр-ре- гістр», тому він був найшвидшим серед векторних та скалярних комп'ютерів свого часу. В 1981 році на ринку з'явився значно потужніший векторний комп'ютер CYBER-205 фір­ ми C D C з тією ж базовою архітектурою, що і STAR-100, але більшою кількістю вектор­ них функціональних блоків. Це були векторні комп'ютери з архітектурою типу "пам'ятьпам'ять". В 1983 році фірма Cray Research поставила на ринок векторний суперкомп'ютер CRAY Х-МР, а через кілька років - CRAY - 2, який мав вищу тактову частоту та іще біль­ ший рівень конвеєризації. В 1988 році фірма Cray Research створила значно швидший, ніж Х-МР суперкомп'ютер C R A Y Y-MP, котрий мав 8 конвеєрних процесорів, кожний з яких працював з тактом 6 не.

Одночасно потужні векторні суперкомп'ютери почали створюватись і в інших дер­ жавах. Зокрема, в середині 80-х років в Японії були створені суперкомп'ютери Fujitsu

164

VP100 і VP200, за ними Hitachi S810 і N E C SX/2, які за технічними характеристиками не поступалися комп'ютерам фірми Cray Research

Протягом наступних 20 років векторні комп'ютери мали швидкий розвиток і з екзо­ тичних перетворились в широковживаний клас потужних комп'ютерів.

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

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

за відсутністю та наявністю конвеєра команд: комп'ютери без конвеєра команд та комп'ютери з конвеєром команд

за відсутністю та наявністю конвеєра даних: комп'ютери без конвеєра даних та комп'ютери з конвеєром даних

за кількістю послідовно виконуваних фаз команд в конвеєрі: конвеєрні та суперконвеєрні

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

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

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

Проведений вище аналіз названих архітектур дозволяє зробити висновок про те, що для побудови високопродуктивних комп'ютерів потрібно, щоб вони мали суперконвеєрну суперскалярну та супервекторну архітектуру

4.7. Короткий зміст розділу

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

Виділено особливості побудови процесора комп'ютера із складною системою команд та сформовано вимоги до процесора комп'ютера з простою системою команд. Описані базові принципи побудови процесора комп'ютера з простою системою команд, а також взаємодія процесора з основною пам'яттю в комп'ютері з простою системою команд

Розглянуто фази виконання команд в процесорі комп'ютера з простою системою ко­ манд: вибирання та декодування команди, виконання та формування ефективної адре­ си, звернення до пам'яті/завершення умовного переходу, зворотного запису. Описана конвеєрна структура процесора з простою системою команд на прикладі процесора комп'ютера D L X . Розглянуто принципи побудови суперконвеєрним та суперскалярних процесорів, а також процесорів векторних комп'ютерів. Виходячи з вищенаведеного розгляду різних принципів побудови процесорів, зроблено класифікацію архітектури комп'ютера за рівнем суміщення в ньому опрацювання команд та даних.

165

4.8. Література для подальшого читання

Питання побудови процесорів комп'ютерів з складною системою команд детально розглянуті в багатьох підручниках та наукових працях, зокрема [1-4, 7, 8]. Вимоги до процесора комп'ютера з простою системою команд та базові принципи його побудо­ ви детально описані в роботах [5, 6]. Там же, а також в роботах [7-8] запропоновано принципи побудови процесора комп'ютера D L X і процесора векторних комп'ютерів, а в роботах [9-10] розглянуті принципи побудови суперконвеєрним та суперскалярних процесорів.

4.9. Література до розділу 4

1.Каган Б.М. Электронные вычислительные машины и системы. - М.: Энергия, 1979. - 528 с.

2.Каган Б. М., Каневский М. М. Цифровые вычислительные машины и системы. - М.: Энер­ гия, 1974. - 680 с.

3.Tanenbaum, A. Structured Computer Organization, 4t h ed. Upper Saddle River, NTJ: Prentice Hall,

1999.

4.Stallings, W. Computer Organization and Architecture, 5th ed., New York, NY: Macmillan Publis­ hing Company, 2000.

5.D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann Publishers, Inc. 1996.

6.Patterson, D. A., 8c Hennessy, J. L. Computer Organization and Design, The Hardware/Software Interface, 2nd ed., San Mateo, С A: Morgan Kaufmann, 1997.

7.AGERWALA, T. A N D J. COCKE [1987]. "High performance reduced instruction set processors", IBM Tech. Rep. (March).

8.Bakoglu, H. В., G. F. Grohoski, L E. Thatcher, J. A. Kahle, С R. Moore, D. P. Tuttle, W. E. Maule, W. R. Hardell, D. A. Hicks, M. Nguyen phu, R. K. Montoye, W. T. Glover, and S. Dhawan [1989]. «ІВМ second-generation RISC processor organization,» Proc. Int'l Conf. on Computer Design, IEEE (Octob­ er), Rye, N.Y., 138-142.

9.Johnson, M. [1990]. Superscalar Microprocessor Design, Prentice Hall, Englewood Cliffs, N.J.

10.JOUPPI, N. P. A N D D. W. WALL [1989]. "Available instruction-level parallelism for superscalar and superpipelined processors", Proc. Third Conf. on Architectural Support for Programming Languages and Operating Systems, IEEE/ACM (April), Boston, 272-282.

4.10.Питання до розділу 4

1.Місце процесора в комп'ютері та його функції.

2.Що таке командний цикл?

3.Дві основні фази командного циклу.

4.Основні вузли процесора.

5.Одношинна структура процесора комп'ютера із складною системою команд і його зв'язки з іншими пристроями комп'ютера.

6.Виконання процесором операції "Вибірка слова з пам'яті".

7.Виконання процесором операції "Запам'ятовування слова в пам'яті".

8.Виконання процесором операції обміну між регістрами.

9.Виконання процесором арифметичних і логічних операцій.

10.Порівняння одношинної та багатошинної структур процесора комп'ютера із складною системою команд.

766

11.Чому в процесорі комп'ютера із складною системою команд команда виконується за ба­ гато тактів?

12.Чому в процесорі комп'ютера із складною системою команд потрібна складна система розпізнавання команди?

13.Чому в процесорі комп'ютера із складною системою команд організація конвеєризації ви­ конання команд складніша, ніж у процесорі комп'ютера з простою системою команд?

14.Основні вимоги до процесора комп'ютера з простою системою команд.

15.Сформуйте правила вибору системи команд комп'ютера з простою системою команд.

16.Чому в системі команд комп'ютера з простою системою команд відносно небагато опера­ цій та способів адресації?

17.Чому в комп'ютері з простою системою команд команди обробки даних мають реалізува­ тися лише у формі "регістр-регістр"?

18.Чому в комп'ютері з простою системою команд обміни з основною пам'яттю виконуються лише за допомогою команд завантаження/запису?

19.Чому в процесорі комп'ютера з простою системою команд дешифрування команд із спро­ щеними форматами має виконуватися лише апаратно?

20.Що є основою проектування структури процесора комп'ютера з простою системою ко­

манд?

21.Як будується процесор для того, щоб команда виконувалася за один такт?

22.Поясніть принципи роботи процесора комп'ютера DLX.

23.Опишіть фази виконання команди в процесорі комп'ютера DLX.

24.Поясніть роботу конвеєрного процесора комп'ютера DLX.

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

DLX.

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

DLX.

27.Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера DLX при виконанні команди АЛП.

28.Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера DLX при виконанні команд завантаження і збереження (load/store).

29.Проаналізуйте та поясніть мікродії, що виконуються на сходинці ЕХ конвеєра комп'ютера DLX при виконанні команди умовного переходу (branch).

30.Проаналізуйте та поясніть мікродії, що виконуються на сходинці M E M конвеєра комп'ю­ тера DLX при виконанні команд АЛП.

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

32.Проаналізуйте та поясніть мікродії, що виконуються на сходинці WB конвеєра комп'ю­ тера DLX при виконанні команд АЛП.

33.Проаналізуйте та поясніть мікродії, що виконуються на сходинці WB конвеєра комп'ю­ тера DLX при виконанні команди load.

34.Основна ідея суперконвеєрних процесорів.

35.Суперскалярні процесори - структура та принцип роботи.

36.Процесори векторних комп'ютерів - структура та принцип роботи.

37.Наведіть класифікацію архітектури комп'ютера за рівнем суміщення в ньому опрацю­ вання команд та даних.

Розділ 5

Запшшштя/ конфліктам/ & кші&еєрі команд

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

Існує три класи конфліктів:

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

Конфлікти за даними, що виникають у разі, коли виконання наступної команди залежить від результату виконання попередньої команди.

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

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

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

5. 7. Структурні конфлікти

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

168

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

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

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

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

Поява структурних конфліктів першої групи викликає необхідність призупинення роботи конвеєра до закінчення роботи функціонального пристрою, звернення до якого викликало конфлікт. Кількість тактів простою конвеєра рівна відношенню часу вико­ нання операції в функціональному пристрої до величини такту конвеєра. На рис. 5.1 наведено діаграму виконання на симуляторі W i n D L X нижче приведеного фрагмента де­ якої програми

addff6,f5,f4 xor rl,r3,r4 and r5,r6,r7,

у якій виник структурний конфлікт першої групи, викликаний наявністю в програмі команди додавання чисел з рухомою комою addf. Фаза виконання ЕХ цієї команди є дов­ шою в три рази, ніж такт роботи конвеєра. Тому фази M E M команд addf та and співпали, тобто вимагається одночасний доступ до ресурсів фази M E M , що і стало причиною кон­ флікту. Через те виконання команди and призупиняється (Stall - зупинка). Час призупинен­ ня визначається алгоритмом та структурою пристрою додавання чисел з рухомою комою.

Instructions I Cycles

•8

-7

-6

•5

-4

-2

 

•1

0

addf fG,f5,f4

IF I

ID

I

faddEX(l)

 

| MEM |

WB~]

 

 

xor r1 ,r3,r4

і

IF

I ID

[ J r t & T M l M T W B ~ l

 

 

 

 

and г5,г6,г7

 

 

 

 

 

 

 

 

 

 

Рис. 5.1. Структурний конфлікт першої групи

169

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

На рис. 5.2 показано приклад такого конфлікту для наступного фрагмента програми: cvti2ffl . fi

суй 2 £ £ 2, £ 2

ггаЛГ &, Н, а

т и Ш б , г З , ґ 4 .

Структурний конфлікт виникає на такті -8, коли відбувається звернення до при­ строю множення для виконання фази ЕХ команди т и п і f6.f3.f4. В цей час пристрій множення зайнятий виконанням фази ЕХ попередньої команди множення, яка триває 5 тактів. Щоб зняти цей конфлікт, потрібно просто призупинити конвеєр на 4 такти, поки відбувається одночасне звернення до пристрою множення (Б-Бїаіі - структурна зу­ пинка). Подібне призупинення часто називається конвеєрною булькою, оскільки булька проходить по конвеєру, займаючи місце, але не виконуючи ніякої корисної роботи. По­ трібно відзначити, що якби множення виконувалось за один такт, структурний конфлікт­ не виникнув би.

Instructioro 1 Cycles

і

- 1 3

-12

-11

 

-10

 

- 9 - 8

 

 

і 1.7

•є

-5

 

 

- 1 1 3

.9

•1

cvli2fMi1

1

 

 

1

1

 

 

!

 

 

 

і

 

1

1

1

 

 

і

IF

ID

• B S МЕМ І

 

WB

!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cvti2f f2J2

 

 

 

 

 

 

 

MEM | WB |

 

 

 

 

 

 

 

 

muM f5,f4,f8

 

 

 

l JF І

ID

|

 

 

 

tmuEXm

 

" | MEM | WB |

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

muH f6,f3.f4

 

 

 

 

|

IF

|

ID

|

 

 

 

S-Stall

"

|

 

 

ImulEXD)

[

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.2. Приклад структурного конфлікту при зверненні до пристрою множення

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

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

170

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

5.2. Конфлікти за даними

5.2.1. Типи конфліктів за даними

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

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

Відомі три можливі конфлікти за даними залежно від порядку операцій читання і запису. Розглянемо дві команди - і та j, при цьому команда і передує команді j. Можливі наступні конфлікти:

1. W A R (write after read) - читання після запису. Команда) намагається прочитати ще не оновлений командою і операнд (рис. 5.3). Якби не було конвеєра, то спочатку поперед­ ня команда і записала б до комірки X операнд, який пізніше був би зчитаний командою). У випадку використання конвеєрного опрацювання команд, як це видно з рисунка, фаза читання команди j виконується раніше фази запису команди і. Таким чином, команда j може некоректно набути старого значення.

Фази виконання

 

 

 

 

 

Запис до

 

команди і

 

 

 

 

 

комірки X

 

Фази виконання

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Читання з

 

 

 

команди j

 

 

 

комірки X

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.3. Конфлікт "запис після читання"

 

2. R A W (read after write) - запис після читання . Команда j намагається записати опе­ ранд до регістра призначення ще до того, як попередній вміст цього регістра прочитає команда і (рис. 5.4). Якби не було конвеєра, то спочатку попередня команда і прочитала

777

б з комірки X операнд, а пізніше до цієї комірки був би записаний інший операнд коман­ дою ]. У випадку використання конвеєрного опрацювання команд, як це видно з рисун­ ка, фаза запису команди ] виконується раніше фази читання команди і. Таким чином, команда і може набути некоректного нового значення.

Фази виконання

 

 

 

Читання з

 

 

 

команди і

 

 

 

комірки X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фази виконання

 

 

Запис до

 

 

 

 

команди j

 

 

комірки X

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.4. Конфлікт "читання після запису"

 

3. W A W (write after write) - запис після запису. Команда j намагається записати операнд до регістра призначення ще до того, як цей запис провела команда і, тобто записи закінчуються в неправильному порядку (рис. 5.5). Якби не було конвеєра, то спочатку попередня команда і записала б до комірки X операнд, а пізніше до цієї комірки був би записаний інший операнд командою j. У випадку використання конвеєрного опрацю­ вання команд, як це видно з рисунка, фаза запису команди j виконується раніше фази запису команди і. В результаті комірка тимчасово отримує некоректний вміст, чим може «скористатися» проміжна k-та команда.

Фази виконання

 

 

 

 

 

Запис до

 

команди і

 

 

 

 

 

комірки X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Фази виконання

 

 

 

Запис до

 

 

 

команди j

 

 

 

комірки X

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.5. Конфлікт "запис після запису"

 

Можливий також випадок R A R (read affer read) - читання після читання, але він не­ безпеки не створює, і тому не розглядається. Означення, класифікацію та перші методи скасування конфліктів за даними (в оригіналі - data hazards) запропонував Роберт Келлер в 1975 році.

5.2.2. Методи зменшення впливу конфліктів за даними на роботу

конвеєра команд

Застосовуються наступні методи зменшення впливу зазначених вище залежностей між даними на роботу конвеєра команд:

Призупинення виконання команди, тобто затримка з переходом від виконання операції декодування ID до виконання операції виконання ЕХ в конвеєрі доти, доки за­ лежність даних не вичерпується плином часу.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]