Суперскалярный процессор

Содержание

Слайд 2

Типы суперскалярных процессоров Статический. Выполняет инструкции по порядку (in-order) Динамический. Выполняет

Типы суперскалярных процессоров

Статический.
Выполняет инструкции по порядку (in-order)
Динамический.
Выполняет инструкции вне порядка (out

of order), кроме инструкций условного перехода.
Спекулятивный.
Выполняет все инструкции вне порядка (out of order).
Спекулирует над инструкциями условного перехода и инструкциями загрузки/сохранения.
Слайд 3

Статический суперскалярный процессор Схож с классическим конвейерным скалярным процессором. Все инструкции

Статический суперскалярный процессор

Схож с классическим конвейерным скалярным процессором.
Все инструкции выполнятся в

рамках одного конвейера.
Появилась дополнительная стадия планирования и группировки инструкций.
Целочисленные и вещественные части конвейера выравниваются по длине с использованием пустых стадий.
Слайд 4

Стадия планирования и группировки инструкций. Проверяет группу из n инструкций на

Стадия планирования и группировки инструкций.

Проверяет группу из n инструкций на наличие

конфликтов внутри группы и с инструкциями, которые уже находятся на исполнении.
Если внутри группы инструкций обнаружен конфликт, то на исполнение отправляются инструкции, которые предшествуют первой конфликтной инструкции в программном порядке, а остальные инструкции ждут разрешения конфликта.
Также стадия отвечает за распределение инструкций между устройствами.
Слайд 5

Достоинства и недостатки Достоинства: Относительная аппаратная простота. Высокая пиковая производительность. Возможно

Достоинства и недостатки

Достоинства:
Относительная аппаратная простота.
Высокая пиковая производительность.
Возможно достижения высокой рабочей частоты.
Недостатки:
Требуется

перекомпиляция кода, для достижение высокого реального быстродействия.
Слайд 6

Модели статический суперскалярных процессоров. Sun Ultra Sparc III / IV IBM POWER 6

Модели статический суперскалярных процессоров.

Sun
Ultra Sparc III / IV
IBM
POWER 6

Слайд 7

Динамический суперскалярный процессор. Для планирования использует алгоритм Тамасуло. Усовершенствована стадия планирования,

Динамический суперскалярный процессор.

Для планирования использует алгоритм Тамасуло.
Усовершенствована стадия планирования, которая может

планировать более 2 инструкций за такт.
Инструкции после инструкции условного перехода планируются, но не исполняются, до исполнения инструкции условного перехода
Слайд 8

Что быстрее динамического суперскалярного процессора? Динамический суперскалярный процессор использует параллелизм инструкций

Что быстрее динамического суперскалярного процессора?

Динамический суперскалярный процессор использует параллелизм инструкций

только в одном базовом блоке.
Следующим шагом является процессор, который использует параллелизм нескольких базовых блоков.
Слайд 9

Спекулятивный суперскалярный процессор. (ССП) Спекуляция - выполнение некоторой операции, необходимость выполнения

Спекулятивный суперскалярный процессор. (ССП)

Спекуляция - выполнение некоторой операции, необходимость выполнения которой

носит вероятностный характер.
ССП способен выполнять инструкции, которые следуют за невыполненной инструкцией условного перехода, основываясь на данных предсказателя ветвления, и в случае неверного предсказания выполнять откат.
Слайд 10

Этапы исполнения инструкции Алгоритм Тамасуло Выборка инструкции Планирование инструкции Ожидание готовности

Этапы исполнения инструкции

Алгоритм Тамасуло
Выборка инструкции
Планирование инструкции
Ожидание готовности операндов
Исполнение
Сохранение результата

ССП
Выборка инструкции
Планирование

инструкции
Ожидание готовности операндов
Исполнение
Запись результата
Завершения (commit)
Слайд 11

Стадии записи результата и завершения На стадии записи результата результат работы

Стадии записи результата и завершения

На стадии записи результата результат работы инструкции

помещается в промежуточное хранилище, а не в основной регистровый файл.
На стадии завершения производиться проверка корректности исполнения инструкции, генерируются исключения, происходит запись результатов из временного хранилища в основной регистровый файл.
Слайд 12

Изменения в аппаратной схеме Добавлен: буфер упорядочивания (reorder buffer) Используется для:

Изменения в аппаратной схеме

Добавлен: буфер упорядочивания (reorder buffer)
Используется для:
Хранения результатов работы

инструкций между стадией записи результата и стадией завершения.
Поддержание программного порядка инструкция на стадии завершения.
Элемент БУ содержат:
Выполняемую инструкцию: арифметическая, загрузка, сохранение, условный переход.
Адрес результата инструкции
Поля для временного хранения результата инструкции.
Удален: буфер сохранения.
Слайд 13

Схема ССП

Схема ССП

Слайд 14

Описание работы схемы. Этап планирования. Планирование инструкций осуществляется с вершины очереди

Описание работы схемы. Этап планирования.

Планирование инструкций осуществляется с вершины очереди планирования.
Для

выполнения планирования должна быть доступна СР на требуемом ФУ и ячейка на БУ, если хотя бы один из ресурсов не доступен, то инструкция ожидает в очереди.
Выборка операндов состоит из трех стадий:
Проверяются есть ли данные в регистровом файле, если есть переписываются в СР, если нет, то
Проверяются есть ли данные в БУ, если есть переписываются в СР, если нет, то
В СР записывается номер ячейки БУ которая содержит инструкцию, которая вычислит этот операнд.
В файл переименования для результирующего регистра инструкции помещается номер ячейки БУ, которая ее содержит.
Слайд 15

Описание работы схемы. Этап исполнения и записи результат. Инструкции запускаются на

Описание работы схемы. Этап исполнения и записи результат.

Инструкции запускаются на

исполнении по мере готовности их операндов и доступности ФУ.
По общей шине передается результат инструкции и номер ячейки БУ, которая ее содержит.
Запись результата производится одновременно во все ожидающие СР и БУ.
Инструкция загрузки выполняется в две стадии:
Вычисление адреса.
Чтение из памяти. Запускается если нет конфликтов с предыдущими инструкциями загрузки и сохранения.
Инструкция сохранения на этапе исполнения вычисляет адрес операнда и ожидает готовности результат, запись в память произойдет на стадии завершения.
Слайд 16

Описание работы схемы. Этап завершения. Инструкция после вычисления результата ожидает в

Описание работы схемы. Этап завершения.

Инструкция после вычисления результата ожидает в

БУ своего завершения.
Завершаются инструкции, которые находятся на вершину БУ. БУ поддерживает поведение очереди FIFO.
На этапе завершения:
Для арифметических инструкции и инструкции загрузки проверяется наличия исключений и если исключений нет, то результат записывается регистровый файл.
Для инструкции сохранения проверяется наличия исключений и если исключений нет, то результат записывается в память.
Для инструкции условного перехода проверяется правильно она была предсказана или нет, если да, то инструкция удаляется из БУ, если нет, происходит сброс процессора: очищаются все стадии, на планирование отправляется первая инструкция из правельной ветви.
Слайд 17

Пример 1. L.D F6,34(R2) 2. L.D F2,45(R3) 3. MUL.D F0,F2,F4 4.

Пример

1. L.D F6,34(R2)
2. L.D F2,45(R3)
3. MUL.D F0,F2,F4
4. SUB.D F8,F2,F6
5. DIV.D F10,F0,F6
6.

ADD.D F6,F8,F2

Допущения
Латентность загрузки/сохранения : 2
Латентность сложения/вычитания : 2
Латентность умножения : 10
Латентность деления: 40
СР для загрузки/сохранения: 3
СР для простых арифм. орпер. : 2
СР для сложных арифм. орпер. : 1
Reorder Buffer: 3
Plan: 2
Retain: 2

Слайд 18

Такт 0

Такт 0

Слайд 19

Такт 1

Такт 1

Слайд 20

Такт 2

Такт 2

Слайд 21

Такт 3

Такт 3

Слайд 22

Такт 4

Такт 4

Слайд 23

Такт 5

Такт 5

Слайд 24

Такт 6

Такт 6

Слайд 25

Такт 7

Такт 7

Слайд 26

Такт 8

Такт 8

Слайд 27

Такт 9

Такт 9

Слайд 28

Такт 10

Такт 10

Слайд 29

Такт 11

Такт 11

Слайд 30

Такт 17

Такт 17

Слайд 31

Такт 18

Такт 18

Слайд 32

Такт 19

Такт 19

Слайд 33

Такт 20

Такт 20

Слайд 34

Такт 21

Такт 21

Слайд 35

Такт 22

Такт 22

Слайд 36

Такт 23

Такт 23

Слайд 37

Такт 24

Такт 24

Слайд 38

Такт 59

Такт 59

Слайд 39

Такт 60

Такт 60

Слайд 40

Такт 61

Такт 61

Слайд 41

Что произойдет если будет сгенерировано исключение? Если в процессе завершения инструкции

Что произойдет если будет сгенерировано исключение?

Если в процессе завершения инструкции выяснится,

что она сгенерировала исключение, то произойдет сброс конвейера, как при ошибке предсказания перехода.
Слайд 42

Что обеспечивает выполнение критериев корректного исполнения программы? Сохранения потока данных происходит

Что обеспечивает выполнение критериев корректного исполнения программы?

Сохранения потока данных происходит за

счет использование СР и БУ, для восстановления явных связей между инструкциями по данным.
Сохранение поведения исключений происходит:
За счет использования отложенной генерации исключений. Исключение генерируется не на стадии исполнения, когда обнаруживается, а на стадии завершения.
За счет отставки инструкции в программном порядке.
Слайд 43

Ограничения спекуляции. Если инструкция в спекулятивном режиме вызвало кэш промах стоит

Ограничения спекуляции.

Если инструкция в спекулятивном режиме вызвало кэш промах стоит его

обрабатывать или нет?
Обрабатываются обычно только самые легкие события, такие как промах в кэш первого уровня, остальные события откладываются до выхода инструкции из спекулятивного режима.
Ошибочная спекуляция приводит к выполнению бессмысленной работы и трате энергии.
Количество инструкций условного перехода над которыми производится спекуляция может быть ограничена.
Слайд 44

Ограничения планирования инструкций условного перехода. За один такт может быть запланирована

Ограничения планирования инструкций условного перехода.

За один такт может быть запланирована только

одна инструкция условного перехода, которая предсказана как выполненная.
Это объясняется тем, что только на следующем такте будут доступны инструкции из выбранной ветви.
Если инструкция предсказана как пропущенная, то одновременно с ней может быть запланированы последующие инструкции, и предсказана следующая инструкция условного перехода.
Указанное ограничение является серьезным фактором который ограничивает рост производительности ССП при увеличение кол-ва одновременно завершаемых инструкций.
Слайд 45

Альтернативный подход к ССП Переименование регистров. Вычисленные значения инструкций до стадии

Альтернативный подход к ССП Переименование регистров.

Вычисленные значения инструкций до стадии завершения хранятся

в основном регистровом файле во вне архитектурных регистрах, вместо БУ.
На стадии завершение нужный теневой регистр переименовывается в архитектурный.
Такой подход позволяет упростить структуру процессора, так как все данные хранятся в одном месте.