Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Консп_АПЗ_ПК_10_укр.doc
Скачиваний:
46
Добавлен:
10.02.2016
Размер:
2.7 Mб
Скачать

Лекція 13. Системні технології кешування та Plug & Play

13.1. Кешування інструкцій та даних

У перекладі слово «кеш» (cache) означає склад. Він є додатковим швидкодіючим сховищем копій блоків більшої, але відносно повільної пам'яті, до яких, імовірно, найближчим часом буде звернення.

Кешування - ефективний спосіб підвищення пікової продуктивності системи за рахунок використання буферної пам'яті високої швидкодії.

Рис. 13.1. Послідовність кешування даних

Статична пам'ять ядра процесора кешує ОЗП комп'ютера. ОЗП, у свою чергу, кешує звертання до жорсткого диска, а останній використовується для кешування запису на оптичний диск. Для збереження прийнятної вартості системи використовується кеш-пам'ять невеликого обсягу.

Архітектура кеш. Кеш CPU складається з комірок статичної пам'яті для досягнення максимальної швидкодії, а також контролера пам'яті, що вирішує завдання переміщення даних та інструкцій (Cache=Tag+Data).

Існують наступні архітектури кеш:

 Принстонська, що використовує загальну пам'ять для команд та даних;

 Гарвардська з розділеною областю інструкцій та даних;

 Супергарвардська, що дозволяє обмінюватися даними між областями кеш.

Для багатоядерних процесорів кеш другого L2 та третього L3 рівнів буває роздільним для кожного ядра (Athlon X2), загальним для декількох ядер (Conroe), загальним (L3).

У наш час кеш центрального процесора функціонує з частотою процесорного ядра. При цьому зустрічаються два його типи:

 Інклюзивний (поглинаючий). L1 - 2 такти, L2 - також 2 такти (Pentium).

 Ексклюзивний (доповнюючий) L1 - 2 такти, L2 - 4 такти (Athlon).

Існують також два основних алгоритми запису даних з кеш в основну пам'ять: наскрізний запис WT (Write Through) та зворотний запис WB (Write Back).

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

Алгоритм WB дозволяє зменшити кількість операцій запису на шині основної пам'яті. Якщо блок пам'яті, у який необхідно зроблити запис, відображений в кеш, то фізичний запис спочатку буде зроблений в цей дійсний рядок кеш, і рядок буде відзначений як брудний (dirty) або модифікований, тобто потребуючий вивантаження в основну пам'ять. Тільки після цього вивантаження (запису в основну пам'ять) рядок стане чистим (clean), і його можна буде використовувати для кешування інших блоків без втрати цілісності даних. В основну пам'ять дані переносяться тільки цілим рядком (після заповнення всіх його секторів у випадку секторованого кеш) або безпосередньо перед їх заміщенням у кеш новими даними. Даний алгоритм складніше в реалізації, але істотно ефективніше, ніж WT.

Залежно від способу визначення взаємної відповідності рядка кеш та області основної пам'яті розрізняють три способи побудови кеш-пам'яті: кеш прямого відображення (direct-mapped cache), повністю асоціативний кеш (fully associative cache) та їхня комбінація - частково або набірно-асоціативний кеш (set-associative cache).