Конвейерные вычисления

advertisement
Конвейерные
вычисления
Что такое конвейеризация?
Конвейеризация – это техника, в результате
которой задача или команда разбивается на некоторое
число подзадач, которые выполняются последовательно.
Каждая подкоманда выполняется на своем логическом
устройстве. Все логические устройства (ступени)
соединяются последовательно таким образом, что выход
i-ой ступени связан с входом (i+1)-ой ступени, все
ступени работают одновременно. Множество ступеней
называется конвейером. Выигрыш во времени
достигается при выполнении нескольких задач за счет
параллельной работы ступеней, вовлекая на каждом
такте новую задачу или команду.
Работа конвейера
Ступени
Все ступени конвейера
активны
Латентность конвейера
Запись результата
1
2
3
4
5
2
3
4
5
6
2
3
4
5
6
2
3
4
5
6
3
4
5
6
1
Вычисление операции
1
Выборка операндов
1
Выборка команды
1
2
8
8
7
7
7
7
7
6
8
8
8
9
9
9
9
9
Время
Пример
Пример
Что тормозит работу
конвейера?
• Зависимости по данным
• Конфликты по ресурсам
• Зависимости по управлению,
вызванные командами
перехода
Зависимости по данным
• Существенные зависимости
(RAW) (data forwarding)
• Несущественные зависимости
(WAW, WAR) (динамическое
отображение логических
ресурсов на физические)
Конвейер
Пример. Статическое
состояние конвейера
Зависимость RAW
Что происходит на
конвейере?
Forwarding
Зависимости по управлению
• Вычисление исполнительного адреса
на степени декодирования.
• Использование буфера адреса
перехода (BTB, Branch Target Buffer).
• Буферы предвыборки.
• Предсказание переходов (статический и
динамический способы).
Аппаратная сложность
конвейера
•
G
– аппаратная сложность
неконвейеризованного
устройства
•
L – сложность фиксатора
•
k – количество ступеней
Cost pipe  kL  G
Временная сложность
конвейера
•
•
•
T – временная сложность
неконвейеризованного
устройства
S – задержка фиксатора и
накладные расходы
k – количество ступеней
T
nk
Speed  up  
Tk k  (n  1)
BW pipe
1

s T
k
Какова должна быть длина
конвейера?
Оптимальная длина
конвейера
Download