Алгоритм Томасуло
-
Основные характеристики алгоритма Томасуло
- Разработан Робертом Томасуло в IBM в 1967 году.
- Позволяет выполнять команды не по порядку, повышая эффективность использования исполнительных блоков.
- Включает переименование регистров, станции резервирования и общую шину данных для улучшения параллелизма.
-
Концепции внедрения и жизненный цикл инструкции
- Общая шина данных (CDB) соединяет станции резервирования с функциональными блоками, обеспечивая приоритет и параллелизм.
- Станции резервирования контролируют выполнение команд, распределяя контроль над опасностями.
- Команды выдаются последовательно, но эффекты последовательности выполняются в том же порядке, что и в процессоре, работающем по порядку.
- Переименование регистров позволяет корректно выполнять операции, выполненные не по порядку.
-
Исключения и жизненный цикл инструкции
- Могут возникать неточные исключения, которые не могут быть перезапущены или выполнены повторно.
- Три этапа: выпуск, выполнение и запись результатов, с описанием каждого этапа и его функций.
-
Усовершенствования и приложения
- Станции резервирования и переименования регистров улучшают производительность и терпимость к промахам в кэше.
- Алгоритм легко расширяется для поддержки спекуляции ветвлениями.
- В 1990-х годах использование алгоритма возросло из-за улучшения кэширования и увеличения количества инструкций.
- Алгоритм может работать с любой архитектурой конвейера и не требует значительных изменений в программном обеспечении.
-
Наследие и рекомендации
- Многие современные процессоры используют динамическое планирование, производное от алгоритма Томасуло.
- Для дальнейшего чтения и моделирования алгоритма предлагается использовать Java-апплет.