Принципи кешування

Схеми запису та оновлення інформації в кеш та ОП
Основна пам'ять реалізовувалася на відносно повільній динамічній памяті і звернення до неї процесора призводить до збоїв. Статична пам'ять яка побудована на тригерах, тому працює на рівні з процесором за швидкістю. В сучасному ПК кеш будується на 2 або 3 рівневій системі, перевищений кеш вбудований процесором і має невеликий обсяг,і для організації великого кешу є 2 ар-ри:Гарвардська і Принстонська. Кеш 3 рівня розташовується в картриджі. Дані з ОП невеликими обсягами завантажуються в кеш, звідки знищуються.

 

 

 


а). наскрізний запис б). буферизований наскрізний запис в). зворотній запис

 

В залежності від способу визначення відповідності рядку кеша в ділянці основної памяті розроблено 3 форми кеш памяті:

1. Прямого відображення

2. Набірно-асоціативний

3. Повністю асоціативний

Кеш прямого відображення
а). відображення основної пам’яті на кеш-память б). читання даних

 


В цій ар-рі основна пам'ять умовно розбивається на сторінки, розмір яких співпадає з розміром КЕШ. Кеш і умовні сторінки основної пам’яті поділяються на рядки і кожен рядок кешу відображає відповідний рядок зі сторінки основної пам’яті, але оскільки об’єм основної пам’яті значно більшої за кеш. На кожну сторінку кеша може претендувати кілька блоків основної пам’яті з однаковою частиною молодшої адреси. Кожна сторінка мала містити в кожен момент лише 1 блок і кожен рядок цієї сторінки могла містити 1 рядок основної пам’яті. № цієї сторінки визначається індексом, а теж містить інф-ю про те який блок ОП знаходиться в кеші. Такий кеш має досить просту програмну реалізацію і використовується в кушах 2 і 3 рівня, але він має 1 суттєвий недолік, якщо в процесі виконання програми процесору треба блоки основної пам’яті, зміщення 1 відносно 1 на величину кратну сторінці, то виникне череда кеш промахів і також перемикання сторінок з більшою ймовірністю кеш промахів при

а). відображення основної пам’яті на кеш-память б). читання даних  
використанні багатопроцесорних систем.

Набірно-асоціативний кеш


НАбірно-асоціативна ар-ра дозволяє кожному блоку основної памяті претендувати на 1 з кількох рядків кеш, які об’єднується в набори. В кожному наборі є к-сть рядків кратна 2-ом і ця ар-ра містить кілька каналів прямого відображення, яка працює паралельно та погодженням і рішення про те, який блок даних розміщувати в якому рядку приймає контролер кешу. № набору визначає № блоку з якого дані завантажені, а необхідний рядок в цьому блоці визначається порівнянням № тегів, завдяки цьому в кеші могли зберігати кілька однойменних рядків з різних сторінок. Зазначена ар-ра потребує невеликих апаратних затрат, є більш гнучкою ніж кеш прямого відображення, і тому досить розповсюджена в кешах 1 рівня.

 

 


Асоціативний кеш

Цей кеш є найбільш універсальним з точки зору зберігання в ньому будь – яких блоків ін.-ції. Навідміну від всіх інших ар-р будь-який рядок асоціативного кешу могла зберігати будь-який блок з основної памяті,що значно підвищує продуктивність. № блоку визначається старшими розрядами тега, № рядка-молодшими розрядами тега, зміщення означає розміщення даних в рядку. В ньому для знаходження потрібних даних порівнюється старші адреси всіх тегів, це робиться паралельно для зменшення часу доступу, але не дивлячись на те, що він дуже ефективний, йому притаманна складність організації, через це він дуже дорогий, тому використовується в процесорах Intel,Pentium3 I Pentium 4.

Архітектура засобів кешування
Керування кешуванням

 

 


Первинний кеш є розподілений, кеш інструкцій тісно пов'язаний з блоком попередньої вибірки, а кеш даних з виконавчим блоком процесора. Кеш 2 і 3 рівня є спільним, підключається до вн. Шини кеш памяті. В деяких проц. Celeron кеш 1 і 2 рівня відсутній.

TLB-буфер асоціативної трансляції, зберігається і-ція про сторінки до яких були звертання за останній час. TLB даних і інструкцій є об’єднаними в більш дорогих розподілених. Буфер запису пов'язаний з виконавчим блоком процесора і вони дозволяють припинити обмін між кешем і основною пам’яттю, щоб на невеликий час змінити шину процесорів для інших обмінів.

Кеш пам'ять побудована з можливістю організації багатопроцесорних систем. За станом кешу 1 рівня стежить той ЦП до якого цей кеш належить і інші ЦП до цього кешу звертання не мають.

Для стеження за станами кешів 2 і 3 рівня використовують протокол MESI-протокол підтримки когерентності памяті, і стан рядків кушу для кожного ЦП визначається так:

1. М-стан(рядок наявний тільки в кеші процесора і запис в цей рядок не призведе до генерації зовнішнього циклу звертання до шини ЦП)

2. Е-рядок наявний тільки в кеші цього процесора і запис в нього приведе його в М-стан.

3. S-рядок наявний в кешах кількох ЦП, запис в нього супроводжується наскрізним записом в основну пам'ять, а тому при зміні рядка в 1 кеші

і-ція в усіх інших рядках анолюється.

4. І-рядок в кеші відсутній, запис в нього є наскрізним записом в основну пам'ять і це призведе до генерації зовнішнього запиту до шини процесора.