1 / 25

Архитектуры с параллелизмом на уровне команд

Архитектуры с параллелизмом на уровне команд. Два класса. Суперскалярные процессоры Процессоры с длинным командным словом. Динамическое исполнение команд в суперскалярном процессоре. Предсказание ветвлений (переходов) ( branch prediction ).

adanne
Download Presentation

Архитектуры с параллелизмом на уровне команд

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Архитектуры с параллелизмом на уровне команд

  2. Два класса • Суперскалярные процессоры • Процессоры с длинным командным словом

  3. Динамическое исполнение командв суперскалярном процессоре • Предсказание ветвлений (переходов) (branch prediction). • Переименование регистров, чтобы удалить зависимости между данными и регистрами, невидимые компилятору (register renaming). • Спекулятивноеисполнениепредсказанныхпереходов (speculativeexecution of predicted branches) • Исполнениекомандвнепорядка (out-of-order instruction execution)

  4. Как реализован конвейер? • Устройство предварительной обработки инструкций в порядке их следования в программном коде (front end). • Исполнение вне порядка (Out-Of-Order execution). • Блок упорядоченного завершения (In-order retirement).

  5. Упрощенная схема процессора

  6. Устройство front end • Предсказание следующей инструкции. Используются два алгоритма предсказания переходов. Динамический алгоритм работает на стадии выборки. Статический алгоритм работает на стадии декодирования. Статическийалгоритм использует правила: -- безусловные переходы выполняются, -- условные переходы назад выполняются, -- переходы вперед не выполняются (это соответствует обычному циклу).

  7. Предсказание следующей инструкции История поведения условных переходов хранятся в таблицах • BHT (Branch History Table) и • BTB (Branch Target Buffer). Устройства аналогично устройству КЭШа, только вместо данных в BHT хранится история поведения условных переходов, а в BTB хранится результат предсказания.

  8. Двубитный предсказатель

  9. История локального поведения (BHT) 1024 х 10bit Локальный предсказатель 1024 х 3bit Глобальный предсказатель 4096 х 2bit Выбор предсказателя Program Counter История работы Предсказание Гибридный предсказатель

  10. Устройство front end • Выборка потока инструкций. • Декодирование инструкций в микрооперации. • Переименование внешних регистров. • Размещение ВУ и запоминание статуса каждоймикрооперации в переупорядочивающем буфере (Reorder buffer (ROB)) в исходном порядке инструкций.

  11. Переименования регистров • Переименование регистров основано на динамическом отображении логических ресурсов в физические (аппаратные) ресурсы процессора. Отображение номеров логических регистров в номера физических регистров хранится в таблице подстановки (lookup table) ((таблица псевдонимов регистров (RAT))). Строки таблицы обновляются после декодирования каждой команды. Очередной результат записывается в новый физический регистр, но значение каждого логического регистра запоминается, чтобы легко восстановиться в случае неправильного предсказания направления условного перехода или прерывания команды из-за возникновения исключительной ситуации. • Когда команда создает новое значение для логического регистра, физический ресурс, в который помещается это значение, получает имя. Последующие команды, использующие это значение, снабжаются именем физического ресурса. Эта процедура называется переименованием регистров. Таким образом, в результате переименования с одним логическим ресурсом может быть связано несколько значений в различных физических ресурсах.

  12. Пример переименования регистров (1) a = x + f; a = x + f; (2) b = a * z; b = a * z; (3) a = a + v; a1 = a + v; (4) d = a * b; d = a1 * b;

  13. Каждый МОП может проходить через следующиестадии: 1 --находится в очереди планировщика, но ещё не готов к исполнению; 2 -- готов к исполнению (все аргументы операции вычислены); 3 -- запущен на исполнение (диспетчеризован); 4 -- исполнен и ждёт отставки либо отмены спекулятивной ветви; 5 -- находится в процессе отставки.

  14. Устройство Out-Of-Order execution • Планирование и распределение микроопераций • Выполнение микроопераций и запоминание их результатов временно в буфере ROB.

  15. Блок упорядоченного завершения • Запись результатов обратно во внешние архитектурные регистры, постоянная запись данных, если это необходимо. • Изъятие микроопераций из буфера ROB.

  16. Блок упорядоченного завершения • Блок упорядоченного завершенияотражаетрезультатывыполнения микроопераций в изменениях состояния архитектурных (логичес-ких) регистров, внешней памяти и портов. Назначение блока – сохранение последователь-ной модели исполненияпрограммыпри реальном параллельном выполнении команд и условном выполнении команд ветвления. • Рассматриваются логическое и физическоесостояния процессора. Физическое состояние изменяется немедленно по завершении очередной команды. Логическое состояние изменяется, когда ясен результат условно исполненных команд.

  17. Pentium III

  18. Alpha 21264

  19. Athlon

  20. Opteron

  21. Гипертранспорт

More Related