кеш називається повністю асоціативним (fully associative);
· якщо деякий блок основної пам'яті може розташовуватися на обмеженій множині місць в кеш-пам'яті, то кеш називається множинно-асоціативним (set associative).
Блок може розміщуватися на будь-якому місці даної множини.
Як знайти блок, що знаходиться в кеш-пам'яті? У кожного блоку в кеш-пам'яті є адресний тег, який вказує, який блок в основній пам'яті даний блок кеш-пам'яті представляє. Ці теги зазвичай одночасно порівнюються з виробленим процесором адресою блока пам'яті. Крім того, необхідний спосіб визначення того, що блок кеш-пам'яті містить достовірну або придатну для використання інформацію.
Який блок кеш-пам'яті повинен бути заміщений при промаху? При виникненні промаху контролер кеш-пам'яті повинен вибрати підлягає заміщенню блок. Як правило, для заміщення блоків застосовуються дві основні стратегії: випадкова і Least-Recently Used (LRU). У першому випадку, щоб мати рівномірний розподіл, блоки-кандидати вибираються випадково. У деяких системах, щоб отримати відтворюване поведінку, яка особливо корисно але час налагодження апаратури, використовують псевдовипадковий алгоритм заміщення.
У другому випадку, щоб зменшити ймовірність викидання інформації, яка скоро може знадобитися, всі звернення до блокам фіксуються. Замінюється той блок, що не використовувався довше за всіх.
Гідність випадкового способу полягає в тому, що його простіше реалізувати в апаратурі. Коли число блоків для підтримки траси збільшується, алгоритм LRU стає все більш дорогим і часто тільки наближеним. У табл. 5 показані відмінності в частках промахів при використанні алгоритму заміщення LRU і випадкового алгоритму.
Таблиця 2Доля промахів при використанні алгоритму заміщення LRU і випадкового алгоритму (Random) Розмір, кеш-пам'яті, КбайтАссоціатівность, %2-канальная4-канальная8-канальнаяLRURandomLRURandomLRURandom165,185,694,675,294,394,96641,882,011,541,661,391,532561,151,171,131,131,121,12
Дуже часто організація кеш-пам'яті в різних машинах відрізняється саме стратегією виконання запису. Коли виконується запис в кеш-пам'ять, є дві базові можливості:
· наскрізна запис (write through, store through) - інформація записується в два місця (в блок кеш-пам'яті і блок більш низького рівня пам'яті);
· запис із зворотним копіюванням (write back, copy back, store in) - інформація записується тільки в блок кеш-пам'яті. Модифікований блок кеш-пам'яті записується в основну пам'ять тільки тоді, коли він заміщається. Для скорочення частоти копіювання блоків при заміщенні зазвичай з кожним блоком кеш-пам'яті зв'язується так званий біт модифікації (dirty bit). Цей біт стану показує, чи був модифікований блок, що знаходиться в кеш-пам'яті. Якщо він не модифікувався, то зворотне копіювання скасовується, оскільки більш низький рівень містить ту ж саму інформацію, що і кеш-пам'ять.
При промаху під час запису є дві додаткові можливості: розмістити запис в кеш-пам'яті і не розміщувати запис в кеш-пам'яті.
Розмістити запис в кеш-пам'яті (write allocate) (називається також вибіркою при записі (fetch on write)) означає, що блок завантажується в кеш-пам'ять, услід за чим виконуються дії, аналогічні виконувати при виконанні записи з попаданням. Це схоже на промах при читанні.
Не розміщувати запис в кеш-пам'яті (називається також записом в оточення (write around)), означає, що блок модифікується на більш низькому рівні і не завантажується в кеш-пам'ять.
Зазвичай в кеш-пам'яті, що реалізує запис із зворотним копіюванням, використовується розміщення запису в кеш-пам'яті (в надії, що подальша запис в цей блок буде перехоплена), а в кеш-пам'яті з наскрізним записом розміщення записи в кеш-пам'яті часто не використовується (оскільки подальша запис в цей блок все одно піде в пам'ять).
. 7.3 Організація основної пам'яті
Основна пам'ять в сучасних комп'ютерах являє собою наступний рівень ієрархії пам'яті. Основна пам'ять задовольняє запити кеш-пам'яті і служить в якості інтерфейсу введення (виведення), оскільки є місцем призначення для введення і джерелом для виводу. Для оцінки продуктивності основної пам'яті використовуються два основних параметри: затримка і смуга пропускання.
Затримка пам'яті традиційно оцінюється двома параметрами: часом доступу (access time) і тривалістю циклу пам'яті (cycle time). Час доступу являє собою проміжок часу між видачею запиту на читання і моментом надходження запитаного слова з пам'яті. Тривалість циклу пам'яті визначається мінімальним часом між двома послідовними зверненнями до пам'яті.