Предсказание зависимости от памяти
-
Основы прогнозирования зависимости от памяти
- Прогнозирование зависимости от памяти используется в высокопроизводительных микропроцессорах для оптимизации доступа к памяти.
- Прогнозирование позволяет процессору предсказать, какие загрузки и сохранения могут выполняться не по порядку, избегая нарушений зависимости от памяти.
-
Методы устранения неоднозначности в памяти
- На более позднем этапе разработки используются методы устранения неоднозначности для проверки правильности выполнения загрузок и сохранений.
-
Преимущества и ограничения спекуляции памятью
- Прогнозирование зависимости от памяти повышает производительность, сокращая количество очисток конвейера.
- Спекуляция памятью может быть успешной, если две операции с памятью независимы друг от друга, но может привести к ошибкам при перекрытии доступа.
- Наивные предположения о зависимости от памяти могут быть неэффективными при большом объеме выполнения не по порядку.
-
Современные подходы к предсказанию зависимости от памяти
- Выборочное предсказание зависимости от памяти может задерживать загрузки до тех пор, пока не станет ясно, что нарушений не произойдет.
- Точное предсказание зависимости от памяти позволяет предсказывать точное хранилище, которое должно ожидать загрузку.
- Предиктор синонимов группирует зависимости, которые совместно используют одну инструкцию загрузки или сохранения.
- Предиктор наборов хранилищ эффективно представляет множество потенциальных зависимостей.
- Предиктор store barrier рассматривает определенные инструкции по хранению как барьеры, предотвращая обход конкретных хранилищ.
-
Другие применения предсказания зависимости от памяти
- Спекулятивное маскирование памяти и спекулятивный обход памяти используют предсказание зависимости от памяти для оптимизации передачи значений через память.
-
Аналогия с предсказанием ветвлений
- Прогнозирование зависимости от памяти для загрузок и хранилищ аналогично предсказанию переходов для инструкций условного перехода.
Полный текст статьи: