Запитання 31. Кеш-пам’ять. Принцип функціонування кеш-пам’яті.

Назва роботи: Кеш-пам'ять. Принцип функціонування кеш-пам'яті

Предметна область: Інформатика, кібернетика та програмування

Опис: Кешпам'ять. Принцип функціонування кешпам'яті. Кешування даних. Кешпам'ять.

Дата завантаження: 2013-08-09

Розмір файлу: 127.2 KB

Роботу завантажили: 31 чол.

Запитання 31. Кеш-пам'ять. Принцип функціонування кеш-пам'яті.

§5.4.1. Кешування даних.

Кешування ( кеш-пам'ять ) Це спосіб спільного функціонування двох типів запам'ятовуючих пристроїв (ЗУ), що відрізняються часом доступу, при якому за рахунок динамічного копіювання інформації, що найчастіше використовується, з "повільного" ЗУ в "швидке" ЗУ зменшується середній час доступу до даних.

Кешування є універсальним методом для прискорення доступу до оперативної пам'яті, дисків, компакт-дисків та інших ЗУ. Механізм кеш-пам'яті реалізується автоматично системними засобами.

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

Необхідність у кеш-пам'яті обумовлена ​​наступним: що вища швидкодія ЗУ, то менше його максимальний обсяг (ємність) і навпаки. При цьому, чим вища швидкодія пам'яті, тим технічно складніше досягається і дорожче обходиться збільшення її обсягу.

Пам'ять обчислювальної машини являє собою ієрархію пристроїв, що відрізняються середнім часом доступу до даних, обсягом і вартістю зберігання одного біта (рис. 5.14).

функціонування
Мал. 5.14. Ієрархічна структура пам'яті

На верхній сходинці ієрархії знаходяться внутрішні регістри процесора. Час доступу до регістрівзалежить від швидкодії процесора та становить кілька наносекунд. Загальний обсяг регістрів може становити десятки чи сотні байт.

Для підвищення продуктивності при обміні даними між процесором та основною пам'яттю використовується швидкодіюча пам'ять статичного типу, звана КЕШ-пам'яттю. Швидкодія КЕШ-пам'яті вища за швидкодію оперативної пам'яті. Як правило, в комп'ютерах використовується два рівні КЕШ-пам'яті (Level 1 та Level 2). Обсяг КЕШ-пам'яті 1-го рівня становить від кількох десятків Кбайт до сотень Кбайт. Об'єм КЕШ-пам'яті 2-го рівня становить від кількох сотень Кбайт до кількох Мбайт.

Оперативна або основна пам'ять служить для зберігання програм та даних. Її швидкодія нижче, ніж у КЕШ-пам'яті, а обсяг становить від сотень Мбайт до кількох Гбайт. Частина ОЗУ може використовуватися як КЕШ для зовнішніх пристроїв.

Обсяг інформації, що зберігається в зовнішньому запам'ятовуючому пристрої становить:

- 0,7 Гбайт CD; 5…17 Гбайт DVD; 25 ... 200 Гбайт Blu - ray ;

- сотні Гбайт | жорсткі диски;

- десятки Тбайт | накопичувачі на магнітній стрічці (використовуються для резервного копіювання інформації).

Час доступу до даних для жорстких дисків становить близько 10мс, для оптичних дисків 50 ... 100мс, для накопичувачів на магнітній стрічці секунди або навіть хвилини, оскільки на них реалізована пам'ять з послідовним доступом.

Таким чином, можна дійти невтішного висновку, що зі збільшенням швидкодії пам'яті (зменшенні часу доступу) збільшується вартість зберігання даних для одного біт. Використання КЕШ-пам'яті є компромісним рішенням з метою збільшення продуктивності системи без різкого збільшення її вартості.

Структура дворівневої КЕШ-пам'ятімікропроцесора показано на рис. 5.15. У мікропроцесорі використовується розділена КЕШ-пам'ять 1 рівня для команд і даних, що дозволяє практично подвоїти пропускну здатність підсистеми пам'яті. Між КЕШ-пам'яттю 1 рівня та оперативною пам'яттю всередині корпусу мікросхеми процесора розташовується КЕШ-пам'ять 2 рівня. На материнській платі між КЕШ-пам'яттю 2-го рівня та оперативною пам'яттю може розташовуватися і КЕШ-пам'ять 3-го рівня, але в більшості персональних комп'ютерів вона відсутня. Зазвичай, весь вміст КЕШ-пам'яті 1-го рівня знаходиться в КЕШ-пам'яті 2-го рівня і т.д.

даних

Мал. 5.15. Структура КЕШ-пам'яті мікропроцесора

Розглянемо одну із можливих схем кешування (рис. 5.16).

Вміст КЕШ-пам'яті є сукупністю записів про всі завантажені в неї елементи даних з основної пам'яті. Кожен запис про елемент даних містить:

- Значення елемента даних (дані);

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

Мал. 5.16. Схема функціонування КЕШ-пам'яті

- якщо дані виявляються в КЕШ-пам'яті, то сталося КЕШ-попадання (cash - hit), дані з неї зчитуються та передаються джерелу запиту;

- якщо потрібні дані відсутні в КЕШ-пам'яті, то стався КЕШ-промах (cash-miss), дані зчитуються з основної пам'яті, передаються джерелу запиту і одночасно копіюються в КЕШ-пам'ять.

Ефективність кешування залежить від ймовірності попадання до КЕШ.

Середній час доступу до даних t у системі з КЕШ-пам'яттю:

де t 1 | середній час доступу до основної пам'яті;

t 2 | середній час доступу до КЕШ-пам'яті (t 2 t 1);

p Імовірність КЕШ-попадань.

Отже, середній час доступу до даних лінійно залежить від ймовірності КЕШ-попадань і може змінюватися від t1 при p=0 до t2 при p=1. Звідси випливає, що використання КЕШ-пам'яті має сенс за високої ймовірності КЕШ-попадань.

У реальних системах ймовірність потрапляння до кешу перевищує 90%. Таке високе значення ймовірності пояснюється використанням таких об'єктивних властивостей даних, як часова та просторова локальність.

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

Наявність у системі двох копій даних в основної пам'яті та в КЕШ-пам'яті породжує проблему узгодження даних, для вирішення якої використовується два основних підходи: наскрізний і зворотний запис.

Наскрізний запис (write through). При кожному запиті до основної пам'яті (під час читання та запису) переглядається КЕШ. Якщо дані в КЕШ відсутні, запис виконується тільки в основну пам'ять, якщо присутні, то запис виконується одночасно в КЕШ і основну пам'ять.

Зворотній запис (write back). Якщо дані в КЕШ відсутні, запис виконується тільки в основну пам'ять. В іншому випадку запис виконується тільки в КЕШ пам'ять, але при цьому встановлюється ознака модифікації даних, який при витісненні даних з КЕШ вказує на те, що ці дані необхідно переписати в пам'ять.

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

">