2013-12-07 3 views
2

Я хотел бы моделировать поведение кэшей в архитектурах Intel (LRU, включительно, K-Way Associative и т. Д.). Я читал wikipedia, большую статью Ульриха Дреппера по памяти и Intel Ручной том 3A: Руководство по системному программированию (глава 11, но это не очень полезно, потому что они объясняют только то, что можно манипулировать на уровне программного обеспечения). Я также прочитал кучу академических документов, но, как обычно, они не делают свой код доступным для тиражирования ... даже после его запроса. Мой вопрос: существует ли уже общедоступная структура для моделирования поведения кэша? Если нет, есть ли документ, подробно описывающий поведение кэшей от Intel на самых глубоких уровнях? Я не мог найти его.Внедрение структуры моделирования кэша

ответ

2

Существует множество симуляторов кэша, Dinero, например. (каламбур явно предназначенный) должен быть довольно простым и часто используется в образовательных целях.
Обратите внимание, что этот симулятор управляемый трассировкой, это означает, что он передает список адресов доступа к памяти, он не знает, как запустить двоичный файл. Вы можете создавать такие следы, эмулируя их с помощью инструментов для двоичных инструментов, например.

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

Другие симуляторы могут имитировать полное поведение CPU/системы, а не только кешировать, и поэтому могут поддерживать запуск двоичного файла. Большинство из них включают в себя имитированную систему кэширования. Для например .:

и многие другие

С другой стороны, создание собственного симулятора кэша довольно просто - если вы можете работать с трассировкой памяти (запись фактического fronend является более сложной). Вы не сможете получить слишком подробную спецификацию в реальных кэшах в продуктах Intel/AMD, но основные функции подробно описаны в любом учебнике по компьютерной архитектуре или даже в википедии, параметры (размер, ассоциативность, политика согласованности) в основном документируются в опубликованные руководства и часто могут меняться между поколениями продуктов.Вы всегда можете спросить здесь, если вы столкнулись с какой-либо конкретный вопрос :)

Edit:

Что касается второй части вопроса - нет никакого общедоступной документации точной реализации кэш-памяти процессоров Intel, но сухие «функции »(размер, ассоциативность, политика) находятся в optimization guide: Haswell caches Теперь, моделирование этих кешей должно быть простым, но могут быть некоторые скрытые предостережения, такие как функции выключения питания или специализированное поведение LRU. Один из таких приведенных примеров можно найти здесь: http://blog.stuffedcow.net/2013/01/ivb-cache-replacement/ (если это так, его можно было бы оправдать с точки зрения точности), но помимо этого я считаю, что эти данные слишком сильно влияют на общее поведение для любого практического использования.

+1

Проверьте другие ан. –

+0

@BhargavRao, спасибо за уведомление, хотя это на самом деле новый вопрос – Leeor

+0

Ah Fine. Тогда нам нужно отметить это как NAA. ;) –

Смежные вопросы