Я хотел бы моделировать поведение кэшей в архитектурах Intel (LRU, включительно, K-Way Associative и т. Д.). Я читал wikipedia, большую статью Ульриха Дреппера по памяти и Intel Ручной том 3A: Руководство по системному программированию (глава 11, но это не очень полезно, потому что они объясняют только то, что можно манипулировать на уровне программного обеспечения). Я также прочитал кучу академических документов, но, как обычно, они не делают свой код доступным для тиражирования ... даже после его запроса. Мой вопрос: существует ли уже общедоступная структура для моделирования поведения кэша? Если нет, есть ли документ, подробно описывающий поведение кэшей от Intel на самых глубоких уровнях? Я не мог найти его.Внедрение структуры моделирования кэша
ответ
Существует множество симуляторов кэша, Dinero, например. (каламбур явно предназначенный) должен быть довольно простым и часто используется в образовательных целях.
Обратите внимание, что этот симулятор управляемый трассировкой, это означает, что он передает список адресов доступа к памяти, он не знает, как запустить двоичный файл. Вы можете создавать такие следы, эмулируя их с помощью инструментов для двоичных инструментов, например.
и т.д .. Обратите внимание, что некоторые из них предлагают внутренние симуляторы кэш уже, и возможно играть.
Другие симуляторы могут имитировать полное поведение CPU/системы, а не только кешировать, и поэтому могут поддерживать запуск двоичного файла. Большинство из них включают в себя имитированную систему кэширования. Для например .:
и многие другие
С другой стороны, создание собственного симулятора кэша довольно просто - если вы можете работать с трассировкой памяти (запись фактического fronend является более сложной). Вы не сможете получить слишком подробную спецификацию в реальных кэшах в продуктах Intel/AMD, но основные функции подробно описаны в любом учебнике по компьютерной архитектуре или даже в википедии, параметры (размер, ассоциативность, политика согласованности) в основном документируются в опубликованные руководства и часто могут меняться между поколениями продуктов.Вы всегда можете спросить здесь, если вы столкнулись с какой-либо конкретный вопрос :)
Edit:
Что касается второй части вопроса - нет никакого общедоступной документации точной реализации кэш-памяти процессоров Intel, но сухие «функции »(размер, ассоциативность, политика) находятся в optimization guide: Теперь, моделирование этих кешей должно быть простым, но могут быть некоторые скрытые предостережения, такие как функции выключения питания или специализированное поведение LRU. Один из таких приведенных примеров можно найти здесь: http://blog.stuffedcow.net/2013/01/ivb-cache-replacement/ (если это так, его можно было бы оправдать с точки зрения точности), но помимо этого я считаю, что эти данные слишком сильно влияют на общее поведение для любого практического использования.
- 1. Внедрение полного ассоциативного кэша
- 2. Внедрение кэша Django
- 3. Внедрение кэша приложения в android
- 4. Структуры данных выравнивания кэша
- 5. Реализация кэша с использованием структуры кэша
- 6. внедрение структуры данных
- 7. Термин для структуры данных моделирования
- 8. Внедрение кэша с использованием Spring Security
- 9. Внедрение реализации структуры в Swift
- 10. Структуры Dapper и Entity для классов моделирования
- 11. Проди для моделирования структуры белка python
- 12. Внедрение именованной структуры как анонимной структуры в другую структуру
- 13. Внедрение структуры данных без блокировки на диске
- 14. Внедрение структуры объектов общего назначения (мешок свойств)
- 15. Внедрение структуры базы данных для общих объектов
- 16. Внедрение структуры данных с использованием уровней абстракции
- 17. Внедрение специализированной структуры в ER диаграмме
- 18. Внедрение структуры данных несвязанного набора в Python
- 19. Внедрение структуры N-уровня в .net
- 20. C++: Внедрение структуры «ясень» Entity framework
- 21. Внедрение кэша базы данных с открытым исходным кодом в Java
- 22. Каково формальное имя структуры данных/алгоритма моделирования частиц, представленного здесь?
- 23. Должен ли я использовать ORM для моделирования большой древовидной структуры?
- 24. Тестирование программы моделирования моделирования Тьюринга
- 25. Внедрение общего репозитория с использованием кода структуры Entity first
- 26. Внедрение heapsort без использования отдельной структуры данных кучи
- 27. Внедрение стандарта MPEG-4 Part 16 (Расширение анимационной структуры)
- 28. Подходы моделирования JSON
- 29. Сохранение времени моделирования события в цикле управления и моделирования
- 30. Внедрение Github библиотека
Проверьте другие ан. –
@BhargavRao, спасибо за уведомление, хотя это на самом деле новый вопрос – Leeor
Ah Fine. Тогда нам нужно отметить это как NAA. ;) –