На данный момент нам известно, что у разных типов элементов иерархии памяти имеется много общего. Хотя многие из аспектов элементов иерархии памяти отличаются количественно, многое в стратегии и свойствах, определяющих их функционирование, имеет качественные сходства. В показано, как могут отличаться друг от друга некоторые количественные характеристики элементов иерархии памяти. Далее в этом разделе будут рассмотрены общие действующие альтернативы для элементов иерархии памяти и то, как ими определяется поведение этих элементов. Их поведение будет исследовано с помощью серии из четырех вопросов, которые возникают между любыми двумя уровнями иерархии памяти, хотя для упрощения нашей задачи будет преимущественно использоваться терминология, применимая к кэш-памяти.
Основные количественные конструктивные параметры, характеризующие основные элементы иерархии памяти, имеющиеся в компьютере. Это типичные значения для представленных уровней.
Вопрос 1: Куда может быть помещен блок?
Мы уже видели, что для размещения блока в верхнем уровне иерархии может использоваться ряд схем, от непосредственного отображения до множественной и полной ассоциативности. Как уже ранее упоминалось, весь этот ряд схем может рассматриваться как вариации множественно-ассоциативной схемы.
Преимуществом увеличения степени ассоциативности является то, что при этом обычно снижается коэффициент промахов. Уменьшение коэффициента промахов получается за счет снижения промахов при конкуренции за одно и то же место. Вскоре мы рассмотрим данный вопрос более подробно.
Наибольший прирост получен при переходе непосредственного отображения к двухканальной ассоциативности, что привело к снижению коэффициента промахов между 20% и 30%. По мере роста размера кеш-памяти относительное улучшение от повышения степени ассоциативности прыгнет незначительно. Поскольку общий коэффициент промахов в более крупной кеш-памяти будет ниже, возможности улучшения коэффициента промахов уменьшится, и абсолютное улучшение коэффициента промахов от повышения степени ассоциативности существенно сужается. Потенциальным недостатком повышения степени ассоциативности, как уже ранее упоминалось, является повышение стоимости и увеличение времени доступа.
Вопрос 2: Как определяется местоположение блока?
Способ обнаружения блока зависит от схемы размещения блоков, поскольку этим диктуется количество возможных мест его нахождения.
Выбор между непосредственным отображением, множественной и полной ассоциативностью в любой иерархии памяти будет зависеть от цены промаха по сравнению с ценой реализации ассоциативности, как во времени, так и в необходимости использования дополнительного оборудования. Наличие на микросхеме кэш-памяти L2 позволяет использовать более высокую степень ассоциативности, поскольку время попадания становится не таким критичным, и разработчикам не нужно зависеть от стандартных модулей SRAM в качестве строительных элементов. Полностью ассоциативные устройства кэш-памяти обходятся слишком дорого, за исключением устройств кэш памяти небольших размеров, где стоимость компараторов не слишком большая и где абсолютное снижение коэффициент промахов имеет наивысшее значение.
В системах виртуальной памяти отдельная страница отображения – таблица страниц – ведется для индексирования памяти. Кроме запоминающего устройства, необходимого для таблицы, использование индексной таблицы требует дополнительных обращений к памяти. Вариант полной ассоциативности для размещения страниц и наличие дополнительной таблицы мотивируются следующими фактами:
1. Полная ассоциативность дает преимущества, поскольку промахи обходятся слишком дорого.
2. Полная ассоциативность позволяет программному обеспечению использовать довольно сложные схемы замены, разрабатываемые для уменьшения коэффициента промахов.
3. Полное отображение может быть легко проиндексировано без использования дополнительного оборудования, поиск при этом не потребуется.
Именно поэтому системы виртуальной памяти почти всегда используют полностью ассоциативное размещение.
Размещение с множественной ассоциативностью часто используется для устройств кэш-памяти и буферов TLB, где при обращении сочетаются индексирование и поиск в небольших наборах данных. Устройства кэш-памяти с непосредственным отображением используются только в небольшом количестве систем из-за их преимуществ во времени доступа и в простоте. Преимущества во времени обращения возникают из-за того, что поиск нужного блока не зависит от сравнения. Выбор такой конструкции зависит от множества деталей реализации, например от того, находится ли устройство кэш-памяти на самом кристалле микропроцессора, от того, какая технология используется для реализации кэш-памяти, и от критичности времени доступа при определении продолжительности тактового цикла процессора.