Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы 2008-2009.doc
Скачиваний:
20
Добавлен:
17.09.2019
Размер:
4.36 Mб
Скачать

64 Логическая и функциональная организация полностью ассоциативной кэш-памяти.

Н аиболее гибкая кэш система это полностью ассоциативный кэш. В подсистеме полностью ассоциативного КЭШа кэш контроллер может поместить блок байт в любую строку кэш памяти. Пока эта самая гибкая и дорогая система. В такой кэш-памяти не существует однозначного соответствия между всеми адресами блоков, и поэтому в ней должны храниться полный адрес каждого блока так же, как и сам блок. Когда процессору нужны данные из основной памяти, то кэш-контроллер сравнивает адреса этих данных с каждым из адресов в кэш-памяти. Это относительно медленно и дорого и нарушает основной принцип ограничения количества требуемых сравнений адресов.

65 Логическая и функциональная организация множественно-ассоциативной кэш-памяти.

Различные строки основной памяти конкурируют за право занять одну и ту же область кэша. Если программе, использующей кэш-память, изображенную на предыдущем рисунке, часто требуются слова с адресами 0 и 65 536, то будут иметь место постоянные конфликты, поскольку каждое обращение потенциально повлечет за собой вытеснение из кэш-памяти той или иной строки. Чтобы разрешить эту проблему, нужно сделать так, чтобы в каждом элементе кэш-памяти помещалось по две и более строки. Кэш-память с возможными элементами для каждого адреса называется n-входовой ассоциативной кэш-памятью. 4-входовая ассоциативная кэш-память изображена на рисунке.

А ссоциативная кэш-память с множественным доступом по сути гораздо сложнее, чем кэш-память прямого отображения, поскольку, хотя элемент кэш-памяти и можно вычислить по адресу основной памяти, требуется проверить n элементов кэш-памяти, чтобы узнать, есть ли там нужная нам строка. Тем не менее практика показывает, что 2- или 4-входовая ассоциативная кэш-память дает хороший результат, поэтому внедрение этих дополнительных схем вполне оправданно.

Использование ассоциативной кэш-памяти с множественным доступом ставит разработчика перед выбором. Если нужно поместить новый элемент в кэш-память, какой именно из старых элементов удалить? Для большинства задач хорошо подходит алгоритм обработки элемента, который дольше всего не использовался (Least Recently Used, LRU). Имеется определенный порядок каждого набора ячеек, доступных из данной ячейки памяти. Всякий раз, когда осуществляется доступ к любой строке, в соответствии с алгоритмом LRU список обновляется, и маркируется элемент, к которому произведено последнее обращение. Когда требуется заменить какой-нибудь элемент, удаляется тот, который находится в конце списка, то есть тот, который использовался раньше других.

Интересно, что кэш-память с большим числом входов далеко не всегда

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

четырех встречается редко.

66 Алгоритмы замещения информационных блоков в кэш-памяти: назначение, виды, реализация.

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

«Коэффициент попадания» КЭШа показывает, как часто искомая строка фактически найдена в КЭШе. Более эффективные стратегии замещения отслеживают наиболее часто используемые данные, чтобы увеличить коэффициент попадания (для данного размера КЭШа).

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

Каждая стратегия замещения это компромисс между уровнем попаданий и задержкой.

Least Recently Used (LRU): отбрасывает строку не использованную дольше всех. Общая реализация этого алгоритма требует сохранять дополнительные «биты актуальности» для строк кэша и на их основании отслеживать «наименее часто используемые» строки. Такая реализация предполагает, что при каждом обращении к строке кэша соответствующие биты всех остальных строк будут обновляться. Алгоритм наиболее эффективен, если данные гарантированно будут повторно использованы в ближайшее время.

Most Recently Used (MRU): в отличие от LRU отбрасывает последнюю использованную строку. В моделях с произвольным доступом к данным, а также при повторных сканированиях больших объемов данных MRU алгоритмы дают больше попаданий, чем LRU благодаря тенденции к хранению более старых данных. MRU алгоритмы наиболее эффективны, если данные гарантированно не будут повторно использованы в ближайшее время.

LFU (Least Frequently Used) — вытесняется буфер, использованный реже всех;

ARC (англ.) (Adaptive Replacement Cache) — алгоритм вытеснения, комбинирующий LRU и LFU, запатентованный IBM.

Случайный выбор - Достоинство случайного способа заключается в том, что его проще реализовать в аппаратуре. Когда количество блоков увеличивается, алгоритм LRU становится все более дорогим и часто только приближенным.