Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VPKS_v2_UKR_new.doc
Скачиваний:
21
Добавлен:
11.09.2019
Размер:
2.31 Mб
Скачать

3. Структурні конфлікти й способи їхньої мінімізації

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

Структурні конфлікти виникають, наприклад, і в машинах, у яких є єдиний конвеєр пам'яті для команд і даних (рис. 4). У цьому випадку, коли одна команда містить звертання до пам'яті за даними, воно буде конфліктувати із вибіркою більш пізньої команди з пам'яті. Щоб дозволити цю ситуацію, можна просто призупинити конвеєр на один такт, коли відбувається звертання до пам'яті за даними. Подібне припинення часто називаються "конвеєрною бульбашкою" (pipeline bubble) або просто бульбашкою, оскільки бульбашка проходить по конвеєрі, займаючи місце, але не виконуючи ніякої корисної роботи.

При всіх інших обставинах, машина без структурних конфліктів буде завжди мати більш низький CPI (середнє число тактів на видачу команди). Виникає питання: чому розроблювачі допускають наявність структурних конфліктів? Для цього є дві причини: зниження вартості й зменшення затримки пристрою. Конвеєризація всіх функціональних пристроїв може виявитися занадто дорогою. Машини, що допускають два звертання до пам'яті в одному такті, повинні мати подвоєну пропускну здатність пам'яті, наприклад, шляхом організації роздільних кешей для команд і даних. Аналогічно, повністю конвеєрний пристрій розподілу із плаваючою крапкою вимагає величезної кількості вентилів. Якщо структурні конфлікти не будуть виникати занадто часто, то може бути й не варто платити за те, щоб їх обійти. Як правило, можна розробити неконвеєрне, або не повністю конвеєрний пристрій, що має меншу загальну затримку, чим повністю конвеєрне. Наприклад, розроблювачі пристроїв із плаваючою крапкою комп'ютерів CDC7600 і MIPS R2010 зволіли мати меншу затримку виконання операцій замість повної їхньої конвеєризації.

Рис. 4. а. Приклад структурного конфлікту при реализації пам’яті з одним портом

Команда

Номер такта

1

2

3

45678910

Команда загрузки

IF

ID

EX

MEMWB

Команда 1

IF

ID

EXMEMWB

Команда 2

IF

IDEXMEMWB

Команда 3

stallIFIDEXMEMWB

Команда 4

IFIDEXMEMWB

Команда 5

IFIDEXMEM

Команда 6

IFIDEX

Рис. 4. б. Діаграма роботи конвеєра при структурному конфлікті

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