В прошлом некоторые системы позволяли настраивать размер сектора кэша во время загрузки (используя терминологию Intel, где строка кэша — это единица когерентности, а сектор кэша — это единица адресной маркировки). Например, PowerPC 7410 поддерживал до 2 МБ кэш-памяти L2, из которых часть этой внешней SRAM могла использоваться вместо области памяти с прямым отображением. Увеличение размера сектора кэша позволило встроенной в процессор памяти тегов фиксированного размера поддерживать большие кэши L2, но размер внешней SRAM был установлен во время упаковки / производства. Выделив, например, половину емкости памяти с прямым отображением, размер сектора можно было бы уменьшить вдвое.
Если в реализации достаточно места для хранения тегов, чтобы покрыть всю емкость с использованием заданного размера сектора кэша, преимущество большего размера сектора очень ограничено. Эффект предварительной выборки может быть тривиально обеспечен путем выборки соседних секторов (с преимуществом игнорирования такой предварительной выборки при высокой загрузке полосы пропускания и других условиях). Способ предсказания и способы запоминания также могут быть эмулированы при умеренных затратах.
Если бы у дополнительного хранилища тегов было другое применение, конфигурируемость размеров секторов кэша могла бы быть привлекательной. Такое использование может включать сжатие в кэше (где хранилище данных может вместить больше строк/секторов при сжатии данных), выделение хранилища тегов или хранения данных для других целей (например, если половина хранилища данных L3 была выделена для отслеживания фильтр, размер сектора кеша можно было бы уменьшить вдвое, чтобы увеличить значимое использование емкости или уменьшить конфликтные промахи, если бы половина тегов использовалась для метаданных предварительной выборки, размер сектора кеша можно было бы удвоить, чтобы позволить использовать все хранилище данных), или дополнительное использование механизма кэша V-way (где количество наборов удваивается относительно фактической емкости кэша: см. Мойнуддин К. Куреши и др. The V-Way Cache: Demand-Based Associativity via Global Replacement, PDF), где отключение V-way позволит вдвое уменьшить размер сектора кэша.
(Можно также спроектировать кеш с неравномерной задержкой, в котором удвоение размера сектора кеша позволяет одинаково быстро проверять теги, но поскольку доступ к данным медленнее, это принесет пользу поэтапному доступу к кешу данных тегов, как это обычно бывает в L2 и внешнем кеше, и преимущество будет быть скромным. Частичный выбор пути тега / обнаружение промаха обеспечили бы большую часть этого преимущества.)
С 64-битными строками кэша и примерно 36-битными адресными тегами снижение накладных расходов на хранение при использовании 128-битных секторов кэш-памяти является скромным. (Преимущество увеличивается, если для хранения данных используется более плотный механизм, такой как DRAM. Если хранилище данных находится вне кристалла, а теги находятся на кристалле, более крупные сектора могут стать привлекательными, поскольку внутреннее хранилище более ограничено.)
Что касается ширины передачи, то даже до памяти DDR, с ее длиной пакета в два, требующей более узкого интерфейса, чем линия кэш-памяти (DDR4 имеет длину пакета в восемь, хотя пакетная отсечка вдвое меньше), предоставление интерфейса полной ширины было бы оказались чрезмерно дорогими. Даже высокопроизводительная версия Alpha 21064 (Википедия) использовала только 128-битную шину данных с 32B строк кэша. (Обратите внимание, что перед встроенными контроллерами памяти внешний контроллер памяти мог использовать другую ширину, чем шина данных процессора.)
Что касается реализации политики замены, то она выполняется на специализированном оборудовании. (Замена, управляемая программным обеспечением, была предложена академическими кругами: поиск Google Scholar.) TLB, управляемые программным обеспечением, были реализованы, но даже управление TLB сейчас чаще всего осуществляется аппаратно.
person
Paul A. Clayton
schedule
26.11.2020