Запобігання конфліктів в конвеєрі команд

Розділ 5

Учебное пособие

ОТЕЧЕСТВЕННАЯ ИСТОРИЯ

Ахметова Анна Валинуровна, Романюк Ольга Анатольевна

РЕШЕНИЕ ТРЕНИРОВОЧНЫХ ЗАДАНИЙ

Раздел 1

1. A1, Б4, В2, Г3;

2. 4;

3. 1б, 2г, 3а, 4в;

4. 4;

5. 4.

Раздел 2

1. 1;

2. 2;

3. 3;

4. 1;

5. 3.

Раздел 3

1. 3;

2. 4;

3. 2;

4. 2;

5. 1Г; 2В; 3А; 4Б.

Раздел 4

1. 2;

2. 3;

3. 2;

4. 4;

5. 2;

6. 1;

7. 3;

8. 4;

9. 4;

10. 4.

 


 

 

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

1. Вернадский, Г.В. Русская история: учебник / Г.В. Вернадский. – Тверь: ЛЕАН, М.: АГРАФ, 1997.

2. Верт, Н. История советского государства. 1900 – 1991 / Н. Верт. – М.: Прогресс, 1992.

3. Зуев, М.Н. История России / М.Н. Зуев. – М.: Дрофа, 2000.

4. История России (Россия в мировой цивилизации): учеб. пособие для вузов / под ред. А.А. Радугина. – М.: Центр, 1997.

5. История России в контексте мировой истории: учеб. пособие / под ред.
В.А. Бердинских и др. – Киров: Изд-во ГПУ, 1999.

6. История России с древнейших времен до 1861 года / под ред.
Н.И. Павленко. – М.: Мысль, 1996.

7. История России с древнейших времен до конца ХVII века / отв. ред. А.Н. Сахаров, А.П. Новосельцев. – М.: Изд-во АСТ, 1997.

8. История России. ХХ век / под ред. А.Н. Боханова, М.М. Горинова, В.П. Дмитренко. – М.: АСТ, 1998.

9. История России: учеб. пособие: в 2 т. / под ред. С.В. Леонова. – М.: Высш. шк., 1997.

10. Новейшая история Отечества ХХ век: учебник для вузов: в 2 т. / под ред.
А.Ф. Киселева, Э.М. Щагина. – М.: Гуманит. изд. центр «ВЛАДОС», 1998.

11. Пушкарев, С.Г. Обзор русской истории / С.Г. Пушкарев. – СПб.: Лань, 2002.

12. Соколов, А.К. Курс советской истории. 1917 – 1940 / А.К. Соколов. – М.: Высш. шк., 1999.

13. Соколов, А.К. Курс советской истории. 1941 – 1991 / А.К. Соколов, В.С. Тяжельникова. – М.: Высш. шк., 1999.

 

 


Учебное издание

 

 

 

Редактор Г.Н. Горькавая

 

ЛР № 020825 от 21.09.93

 

 

Подписано в печать 02.04.08.

Формат 60 х 84 1/8. Бумага 80 г/м2. Отпечатано на ризографе.

Усл. печ. л. 17,77. Уч.-изд. л. 12,13. Тираж 400. Заказ 21706.

 

Институт новых информационных технологий Государственного образовательного учреждения высшего профессионального образования

«Комсомольский-на-Амуре государственный технический университет»

681013, Комсомольск-на-Амуре, пр. Ленина, 27.

 

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

- addf f6,f5,f4

- xor rl,r3,r4

- and r5,r6,r7,

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

 

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

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

cvti2f fl, fl

cvti2f f2, f2

multf f5, f4, f8

multf f6, f3, f4.

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

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

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

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

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