идкодії виходить від до n разів.
Реальний виграш у швидкодії виявляється завжди менше, ніж зазначений вище, оскільки:
1) деякі операції, наприклад, над цілими, можуть виконуватися за меншу кількість етапів, ніж інші арифметичні операції. Тоді окремі станції конвеєра будуть простоювати.
2) при виконанні деяких операцій на певних етапах можуть вимагатися результати пізніших, ще невиконаних етапів попередніх операцій. Доводиться призупиняти конвеєр.
3) потік команд породжує недостатня кількість операцій для повного завантаження конвеєра [3].
Розглянемо принципи конвеєрної обробки інформації на прикладі п'ятиступінчастого конвеєра, в якому виконання команди складається з наступних етапів:
IF (Instruction Fetch) - зчитування команди в процесор;
ID (Instruction Decoding) - декодування команди;
OR (Operand Reading) - зчитування операндів;
EX (Executing) - виконання команди;
WB (Write Back) - запис результату.
Виконання команд в такому конвеєрі представлено в таблиці 2.1.
Так як в кожному такті можуть виконуватися різні стадії обробки команд, то тривалість такту вибирається виходячи з максимального часу виконання всіх стадій. Крім того, слід враховувати, що для передачі команди з однієї стадії на іншу потрібен певний додатковий час (Дt), пов'язане із записом проміжних результатів обробки в буферні регістри.
Таблиця 2.1
Команда
Такт
1
2
3
4
5
6
7
8
9
i
IF
ID
OR
EX
WB
i +1
IF
ID
OR
EX
WB
i +2
IF
ID
OR
EX
WB
i +3
IF
ID
OR
EX
WB
i +4
IF
ID
OR
EX
WB
Нехай для виконання окремих стадій обробки потрібні такі витрати часу (у деяких умовних одиницях):
TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20. p> Тоді, припускаючи, що додаткові витрати часу становлять Дt = 5 одиниць, отримаємо час такту:
T = max {TIF, TID, TOR, TEX, TWB} + Дt = 30. p> Оцінимо час виконання однієї команди і деякої групи команд при послідовній і конвеєрної обробці.
При послідовній обробці час виконання N команд складе:
Tпосл = N * (TIF + TID + TOR + TEX + TWB) = 100N.
Аналіз таблиці 2.1 показує, що при конвеєрної обробці після того, як отримано результат виконання першої команди, результат чергової команди з'являється в наступному такті роботи процесора. Отже,
Tконв = 5T + (N-1) * T.
Приклади тривалості виконання деякої кількості команд при послідовній і конвеєрної обробці наведені в таблиця 2.2.
Таблиця 2.2
Кількість команд
Час
при послідовному виконанні
при конвеєрному виконанні
1
100
150
2
200
240
<...