Спекуляции на основе оборудования
Выполнять инструкции по предсказанным путям выполнения, но фиксировать результаты только в том случае, если предсказание было правильным.
Фиксация инструкции: разрешение инструкции обновлять регистровый файл, когда инструкция больше не является спекулятивной.
Нужна дополнительная аппаратная часть для предотвращения любых необратимых действий, пока инструкция не будет зафиксирована. т.е. обновление состояния или выполнение.
Буфер переупорядочивания
Буфер переупорядочивания - содержит результат инструкции между завершением и фиксацией
Четыре поля:
Тип поручения: филиал/магазин/регистр
Поле назначения: регистрационный номер
Поле значения: выходное значение
Готовое поле: завершено выполнение?
Изменить станции бронирования:
Источником операнда теперь является буфер переупорядочения, а не функциональный блок.
Значения регистров и значения памяти не записываются до тех пор, пока инструкция не зафиксируется
О неверном предсказании:
Предполагаемые записи в ROB очищаются
Исключения:
Множественная проблема и статическое планирование
Чтобы достичь CPI < 1, необходимо выполнять несколько инструкций за такт.
Решения:
Статически запланированные суперскалярные процессоры
Процессоры VLIW (очень длинное командное слово)
динамически планируемые суперскалярные процессоры
Ограничения ILP
Поток инструкций должен выполняться на идеальном процессоре без существенных ограничений.
Идеальный процессор всегда правильно предсказывает переходы, не имеет структурных опасностей.
Это устраняет все зависимости управления и имени. (только зависимости данных)
Теоретически последняя динамически выполняемая инструкция в программе может быть запланирована на первый цикл.
Do'stlaringiz bilan baham: |