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

4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів

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

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

.

ADD

R1,R2,R3

IF

ID

EXMEMWB

SUB

R4,R1,R5

IF

IDEXMEMWB

AND

R6,R1,R7

IFIDEXMEMWB

OR

R8,R1,R9

IFIDEXMEMWB

XOR

R10,R1,R11

IFIDEXMEMWB

Рис. 5. а. Послідовність команд в конвеєреі та прискорена пересилка даних

(data forwarding, data bypassing, short circuiting)

ADD

R1,R2,R3

IF

ID

EXMEMWB

R

W

SUB

R4,R1,R5

IF

IDEXMEMWB

R

W

AND

R6,R1,R7

IFIDEXMEMWB

R

W

OR

R8,R1,R9

IFIDEXMEMWB

R

W

XOR

R10,R1,R11

IFIDEXMEMWB

R

W

Рис. 5. б. Сполучення читання й запису регістрів в одному такті

У цьому прикладі всі команди, що випливають за командою ADD, використовують результат її виконання. Команда ADD записує результат у регістр R1, а команда SUB читає це значення. Якщо не почати ніяких мір для того, щоб запобігти цьому конфлікту, команда SUB прочитає неправильне значення й спробує його використати. Насправді значення, що використовуэться командою SUB, є навіть невизначеним: хоча логічно припустити, що SUB завжди буде використати значення R1, що було привласнено якою-небудь командою, що передувала ADD, це не завжди так. Якщо відбудеться переривання між командами ADD і SUB, то команда ADD завершиться, і значення R1 у цій крапці буде відповідати результату ADD. Таке непрогнозоване поводження очевидно неприйнятно.

Проблема, поставлена в цьому прикладі, може бути дозволена за допомогою досить простої апаратної техніки, що називається пересиланням або просуванням даних (data forwarding), обходом (data bypassing), іноді закороткою (short-circuiting). Ці апаратури працює в такий спосіб. Результат операції АЛУ з його вихідного регістра завжди знову подається назад на входи АЛУ. Якщо апаратури виявляє, що попередня операція АЛУ записує результат у регістр, що відповідає джерелу операнда для наступної операції АЛУ, то логічні схеми керування вибирають як вхід для АЛУ результат, що надходить по ланцюзі "обходу" , а не значення, прочитане з регістрового файлу (рис. 6).

Рис. 6 АЛУ з ланцюгами обходу й прискореного пересилання

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

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