Слайд 2Два класса
Суперскалярные процессоры
Процессоры с длинным командным словом
![Два класса Суперскалярные процессоры Процессоры с длинным командным словом](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-1.jpg)
Слайд 4Динамическое исполнение команд в суперскалярном процессоре
Предсказание ветвлений (переходов) (branch prediction).
Переименование регистров, чтобы
![Динамическое исполнение команд в суперскалярном процессоре Предсказание ветвлений (переходов) (branch prediction). Переименование](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-3.jpg)
удалить зависимости между данными и регистрами, невидимые компилятору (register renaming).
Спекулятивное исполнение предсказанных переходов (speculative execution of predicted branches)
Исполнение команд вне порядка (out-of-order instruction execution)
Слайд 5Как реализован конвейер?
Устройство предварительной обработки инструкций в порядке их следования в программном
![Как реализован конвейер? Устройство предварительной обработки инструкций в порядке их следования в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-4.jpg)
коде (front end).
Исполнение вне порядка (Out-Of-Order execution)
Блок упорядоченного завершения (In-order retirement)
Слайд 6Устройство front end
Предсказание следующей инструкции. Используются два алгоритма предсказания переходов. Динамический
![Устройство front end Предсказание следующей инструкции. Используются два алгоритма предсказания переходов. Динамический](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-5.jpg)
алгоритм работает на стадии выборки. Статический алгоритм работает на стадии декодирования, использует правила: безусловные переходы выполняются, условные переходы назад выполняются, переходы вперед не выполняются, это соответствует обычному циклу.
Выборка потока инструкций.
Декодирование инструкций в микрооперации.
Переименование внешних регистров.
Размещение (назначение) вычислительных устройств и запоминание статуса каждой микрооперации в переупорядочивающем буфере (Reorder buffer (ROB)) в исходном порядке инструкций
Слайд 7Пример переименования регистров
(1) a = x + f; a = x + f;
(2) b =
![Пример переименования регистров (1) a = x + f; a = x](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-6.jpg)
a * z; b = a * z;
(3) a = a + v; a1 = a + v;
(4) d = a * b; d = a1 * b;
Слайд 8Каждый МОП может проходить через следующие стадии:
1. находится в очереди планировщика, но
![Каждый МОП может проходить через следующие стадии: 1. находится в очереди планировщика,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-7.jpg)
ещё не готов к исполнению;
2. готов к исполнению (все аргументы операции вычислены);
3. запущен на исполнение (диспетчеризован);
4. исполнен и ждёт отставки либо отмены спекулятивной ветви;
5. находится в процессе отставки.
Слайд 9Устройство Out-Of-Order execution
Планирование и распределение микроопераций
Выполнение микроопераций и запоминание их результатов
![Устройство Out-Of-Order execution Планирование и распределение микроопераций Выполнение микроопераций и запоминание их](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-8.jpg)
временно в буфере ROB.
Слайд 10Блок упорядоченного завершения
Запись результатов обратно во внешние архитектурные регистры, постоянная запись
![Блок упорядоченного завершения Запись результатов обратно во внешние архитектурные регистры, постоянная запись](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436243/slide-9.jpg)
данных, если это необходимо.
Изъятие микроопераций из буфера ROB.