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

3. Конфлікти й прискорені пересилання в довгих конвеєрах

Є кілька різних аспектів виявлення конфліктів і організації прискореного пересилання даних у конвеєрах, подібних представленому на рис. 3

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

  2. Оскільки пристрої мають різні часи виконання, кількість записів у регістровий файл у кожному такті може бути більше 1.

  3. Можливі конфлікти типу WAW, оскільки команди більше не надходять на щабель WB у порядку їхньої видачі для виконання. Помітимо, що конфлікти типу WAR неможливі, оскільки читання регістрів завжди здійснюється на щаблі ID.

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

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

Якщо припустити, що файл регістрів із ПК має тільки один порт запису, то послідовність операцій із ПК, а також операція завантаження ПК разом з операціями ПК може викликати конфлікти по порту запису в регістровий файл. Розглянемо послідовність команд, представлену на рис. 4. У такті 10 всі три команди досягнуть щабля WB і повинні зробити запис у регістровий файл. При наявності тільки одного порту запису в регістровий файл машина повинна забезпечити послідовне завершення команд. Цей єдиний регістровий порт є джерелом структурних конфліктів. Щоб вирішити цю проблему, можна збільшити кількість портів у регістровому файлі, але таке рішення може виявитися неприйнятним, оскільки ці додаткові порти запису швидше за все будуть рідко використатися. Однак у сталому стані максимальна кількість необхідних портів запису дорівнює 1. Тому в реальних машинах розроблювачі воліють відслідковувати звертання до порту запису в регістри й розглядати одночасне до нього звернення як структурний конфлікт.

Команда

Номер такта

1

2

3

45678910

MULTD F0,F4,F6

IF

ID

EX11

EX12EX13EX21EX22EX23MEMWB

...

IF

ID

EXMEMWB

ADDD F2,F4,F6

IF

IDEX11EX12EX21EX22MEMWB

...

IFIDEXMEMWB

...

IFIDEXMEMWB

LD F8,0(R2)

IFIDEXMEMWB

Рис. 4. Приклад конфлікту по запису в регістровий файл

Є два способи для обходу цього конфлікту. Перший полягає у відстеженні використання порту запису на щаблі ID конвеєра й припиненню видачі команди як при структурному конфлікті. Схема виявлення такого конфлікту звичайно реалізується за допомогою регістра зсуву. Альтернативна схема припускає припинення конфліктуючої команди, коли вона намагається потрапити на щабель MEM конвеєра. Перевагою такої схеми є те, що вона не вимагає виявлення конфлікту до входу на щабель MEM, де це легше зробити. Однак подібна реалізація ускладнює керування конвеєром, оскільки припинення в цьому випадку можуть виникати у двох різних місцях конвеєра.

Іншою проблемою є можливість конфліктів типу WAW. Можна розглянути той же приклад, що й на рис. 4. Якби команда LD була видана на один такт раніше й мала як місцерозташування результату регістр F2, то виник би конфлікт типу WAW, оскільки ця команда виконувала б запис у регістр F2 на один такт раніше команди ADDD. Є два способи обробки цього конфлікту типу WAW. Перший підхід полягає в затримці видачі команди завантаження до моменту передачі команди ADDD на щабель MEM. Другий підхід полягає в придушенні результату операції додавання при виявленні конфлікту й зміні керування таким чином, щоб команда додавання не записувала свій результат. Тоді команда LD може видаватися для виконання відразу ж. Оскільки такий конфлікт є рідким, обидві схеми будуть працювати досить добре. У кожному разі конфлікт може бути виявлений на ранній стадії ID, коли команда LD видається для виконання. Тоді припинення команди LD або установка блокування запису результату командою ADDD реалізуються досить просто.

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

  1. Перевірка наявності структурних конфліктів. Очікування звільнення функціонального пристрою й порту запису в регістри, якщо він буде потрібно.

  2. Перевірка наявності конфліктів за даними типу RAW. Очікування доти, поки регістри-джерела операндів зазначені як регістри результату на конвеєрних станціях ID/EX (яка відповідає команді, виданої в попередньому такті), EX1/EX2 або EX/MEM.

  3. Перевірка наявності конфліктів типу WAW. Перевірка того, що команди, котрі перебувають на конвеєрних станціях EX1 і EX2, не мають як місцезнаходження результату регістр результату виданої для виконання команди. В іншому випадку видача команди, що перебуває на щаблі ID, припиняється.

Хоча логіка виявлення конфліктів для багатотактних операцій ПК більш складна, концептуально вона не відрізняється від такої ж логіки для цілочисельного конвеєра. Те ж саме стосується логіки для прискореного пересилання даних. Логіка прискореного пересилання даних може бути реалізована за допомогою перевірки того, що зазначений на конвеєрних станціях EX/MEM і MEM/WB регістр результату є регістром операнда команди ПК. Якщо відбувається такий збіг, для пересилання даних дозволяється прийом по відповідному вході мультиплексора. Багатотактні операції ПК створюють також нові проблеми для механізму переривання.

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