Slides_OEVM_final
.pdfЛекция 4. |
Конвейерная обработка |
||||||||||||
|
|
|
машинных команд |
|
|
||||||||
Конвейеризация вычислений |
|
|
|
|
|
||||||||
Время (такты конвейера) |
|
|
|
|
|
|
|
|
|
|
|
||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Команда 1 ИК |
ДК |
АО ИО |
ВК |
ЗР |
|
|
|
|
|
|
|
6 этапов, |
|
Команда 2 |
ИК |
ДК |
АО |
ИО |
ВК |
ЗР |
|
|
|
|
|
|
|
Команда 3 |
|
ИК |
ДК АО ИО ВК ЗР |
|
|
|
|
|
9 команд: |
||||
Команда 4 |
|
|
ИК ДК |
АО |
ИО |
ВК |
ЗР |
|
|
|
|
1) 54 |
|
Команда 5 |
|
|
|
ИК ДК |
АО |
ИО |
ВК |
ЗР |
|
|
|
такта |
|
Команда 6 |
|
|
|
|
ИК ДК |
АО |
ИО |
ВК |
ЗР |
|
|
2) 14 |
|
Команда 7 |
|
|
|
|
|
ИК ДК АО ИО ВК ЗР |
|
тактов |
|||||
Команда 8 |
|
|
|
|
|
|
ИК ДК |
АО |
ИО |
ВК |
ЗР |
|
|
Команда 9 |
|
|
|
|
|
|
|
ИК ДК АО ИО ВК ЗР |
|||||
ИК – извлечение команды; ДК – декодирование команды; |
|||||||||||||
АО – вычисление адресов операндов; ИО – извлечение операндов; |
|||||||||||||
ВК – выполнение команды; ЗР – запись результатов. |
101 |
||||||||||||
© С. Г. Мосин, 2007 |
|
|
|
|
|
|
|
|
|
|
|
|
Лекция 4. Конвейерная обработка
машинных команд
Конфликты в конвейере
Причины возникновения (риски):
Структурный риск – попытка нескольких команд одновременно обратиться к одному и тому же ресурсу ВМ;
Риск по данным – взаимосвязь команд по данным;
Риск по управлению – неоднозначность при выборке следующей команды в случае команд условного перехода.
102
© С. Г. Мосин, 2007
Лекция 4. |
Конвейерная обработка |
|
|||||||||||
|
машинных команд |
|
|
|
|||||||||
Конфликты в конвейере |
|
|
|
|
|
|
|
|
|||||
Время (такты конвейера) |
|
|
|
|
|
|
Штраф |
|
|
|
|||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Команда 1 ИК |
ДК АО ИО ВК ЗР |
|
|
|
|
|
|
|
|
||||
Команда 2 |
ИК ДК АО ИО ВК |
ЗР |
|
|
|
|
|
|
|
||||
Команда 3 |
|
ИК |
ДК |
АО |
ИО |
ВК |
ЗР |
|
|
|
|
|
|
Команда 4 |
|
|
ИК |
ДК |
АО |
ИО |
|
|
|
|
|
|
|
Команда 5 |
|
|
|
ИК |
ДК |
АО |
|
|
|
|
|
|
|
Команда 6 |
|
|
|
|
ИК |
ДК |
|
|
|
|
|
|
|
Команда 7 |
|
|
|
|
|
ИК |
|
|
|
|
|
|
|
Команда 8 |
|
|
|
|
|
|
ИК ДК |
АО |
ИО |
ВК |
ЗР |
|
|
Команда 9 |
|
|
|
|
|
|
|
ИК ДК АО ИО ВК |
ЗР |
||||
3-я команда – условный переход, передающий управление 15-й |
|||||||||||||
команде. Загрузка на 8-м такте. С 9 по 12 такты ни одна команда |
|||||||||||||
не вышла из конвейера – штраф. |
|
|
|
|
|
|
|
103 |
|||||
© С. Г. Мосин, 2007 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Лекция 4. |
Конвейерная обработка |
|||
|
машинных команд |
|||
Алгоритм управления конвейером |
||||
|
|
|
Извлечение |
|
|
|
|
команды |
|
|
|
|
Обновление |
|
|
Извлечение |
|
СчАК |
|
|
|
Декодирование |
||
|
операндов |
|
||
|
|
команды |
||
|
|
|
||
|
|
|
Очистка |
|
|
Выполнение |
|
конвейера |
|
|
|
Вычисление |
||
|
команды |
|
||
|
|
адресов |
||
|
|
|
||
|
|
|
операндов |
|
|
Запись |
|
|
|
|
результата |
Нет |
|
|
|
|
Безусловный |
||
|
|
|
переход |
|
Нет |
Переход, |
Да |
|
|
запрос на |
Да |
|||
|
|
|||
|
прерывание |
|
|
|
© С. Г. Мосин, 2007 |
|
|
104 |
|
|
|
|
Лекция 4. Конвейерная обработка
машинных команд
Метрики производительности конвейера
Ускорение – отношение времени обработки без конвейера и при его использовании (S).
Время обработки потока из N команд на конвейере с K позициями и тактом конвейера τ:
TK = (K + (N −1))τ
Время обработки потока из N команд без конвейера: NKτ
S = |
NKτ |
= |
NK |
|
(K + (N −1))τ |
(K + (N −1)) |
|
105
© С. Г. Мосин, 2007
Лекция 4. Конвейерная обработка
машинных команд
Метрики производительности конвейера
Эффективность – доля ускорения, приходящаяся на одну позицию конвейера (Е)
E = |
S |
= |
N |
|
K |
K + (N −1) |
|
Пропускная способность – эффективность, деленная на длительность такта конвейера (Р)
P = ( + (N − ))τ
K N 1
106
© С. Г. Мосин, 2007
Лекция 4. |
Конвейерная обработка |
|||
|
машинных команд |
|||
Методы решения проблемы условного перехода: |
||||
буферы предвыборки |
|
|||
|
|
Основной буфер |
|
|
|
|
|
Остаток конвейера |
|
Память |
Ступень выборки |
Блок |
команд |
|
... |
||||
перехода |
||||
|
||||
|
|
|||
|
|
Дополнительный буфер |
|
|
© С. Г. Мосин, 2007 |
|
|
107 |
|
|
|
|
Лекция 4. |
Конвейерная обработка |
|||
|
машинных команд |
|||
Методы решения проблемы условного перехода: |
||||
множественные потоки |
|
|||
|
|
Продолжение |
|
|
|
|
конвейера |
|
|
|
|
... |
Остаток конвейера |
|
|
|
|
||
Память |
Ступень выборки |
Блок |
команд |
|
... |
||||
перехода |
||||
|
||||
|
|
|||
|
|
... |
|
|
|
|
Продолжение |
|
|
|
|
конвейера |
|
|
© С. Г. Мосин, 2007 |
|
|
108 |
|
|
|
|
Лекция 4. Конвейерная обработка
машинных команд
Методы решения проблемы условного перехода: задержанный переход
Безусловное продолжение выполнения команд, следующих за командой условного перехода. В качестве таких команд должны быть «полезные команды», на результат выполнения которых не влияет условный переход, т.е. независящие от перехода.
109
© С. Г. Мосин, 2007
Лекция 4. Конвейерная обработка
машинных команд
Методы решения проблемы условного перехода: предсказание перехода
До момента выполнения команды условного перехода делается предположение о наиболее вероятном исходе этой команды. Последующие команды поступают на конвейер в соответствии с предсказанием.
Различают статические, когда прогнозируемое направление перехода не изменяется, и динамические, когда
прогнозируемое направление зависит от истории выполнения программы, способы предсказания.
110
© С. Г. Мосин, 2007