асоціативна пам'ять. Уміст кеш-пам'яті являє собою сукупність записів про всіх завантажених у неї елементах даних. Кожен запис про елемент даних містить у собі адреса, що цей елемент даних має в ОП, і керуючу інформацію: ознака модифікації й ознака звертання до даних за деякий останній період часу.
Пошук
Оперативна пам'ять
Предмет:
Тип роботи:
Реферат
К-сть сторінок:
41
Мова:
Українська
6.2 Принцип кешування пам'яті
Кешування – це універсальний метод, придатний для прискорення доступу до ОП, до диска і до інших видів ЗП. Якщо кешування застосовується для зменшення середнього часу доступу до ОП, то в якості кеша використовують швидкодіючу статичну пам'ять. Якщо кешування використовується системою в/в для прискорення доступу до даних, що зберігається на диску, то в цьому випадку роль кеш-пам'яті виконують буфери в ОП, у яких осідають найбільше активно використовувані дані. ВП також можна вважати одним з варіантів реалізації принципу кешувания даних, при якому ОП виступає в ролі кеша стосовно зовнішньої пам'яті – жорсткому диску.
У системах, оснащених кеш-пам'яттю, кожен запит до ОП виконується у відповідності з наступним алгоритмом:
1. Проглядається вміст кеш-пам'яті з метою визначення, чи не знаходяться потрібні дані в кеш-пам'яті; кеш-пам'ять не є адресованою, тому пошук потрібних даних здійснюється по вмісту – значенню поля чи «адресу в ОП», взятому з запиту.
2. Якщо дані виявляються в кеш-пам'яті, то вони зчитуються з її, і результат передається в процесор.
3. Якщо потрібних даних, то вони разом зі своєю адресою копіюються з ОП в кеш-пам'ять, і результат виконання запиту передається в процесор. При копіюванні даних може виявитися, що в кеш-пам'яті немає вільного місця, тоді вибираються дані, до яких в останній період було найменше звертань, для витиснення з кеш-пам'яті. Якщо витіснені дані були модифіковані за час перебування в кеш-пам'яті, то вони листуються в ОП. Якщо ж ці дані не були модифіковані, то їхнє місце в кеш-пам'яті з'являється вільним.
На практиці в кеш-пам'ять зчитується не один елемент даних, до якого відбулося звертання, а цілий блок даних, це збільшує імовірність так називаного «влучення в кеш», тобто перебування потрібних даних у кеш-пам'яті.
Покажемо, як середній час доступу до даних залежить від імовірності влучення в кеш. Нехай мається основні ЗП із середнім часом доступу до даних t1 і кеш-пам'ять, що має час доступу t2, мабуть, що t2<t1. Позначимо через t середній час доступу до даних у системі з кеш-пам'яттю, а через p -імовірність влучення в кэш. По формулі повної імовірності маємо:
t = t1 ((1 – p) + t2 (p
З її видно, що середній час доступу до даних у системі з кеш-пам'яттю лінійно залежить від імовірності влучення в кеш і змінюється від середнього часу доступу в основний ЗП (при р=0) до середнього часу доступу безпосередньо в кеш-пам'ять (при р=1).
У реальних системах імовірність влучення в кеш складає приблизно 0, 9. Високе значення імовірності перебування даних у кеш-пам'яті зв'язано з наявністю в даних об'єктивних властивостей: просторової і тимчасової локальності.
- Просторова локальність. Якщо відбулося звертання по деякій адресі, то з високим ступенем імовірності найближчим часом відбудеться звертання до сусідніх адрес.
- Тимчасова локальність. Якщо відбулося звертання по деякій адресі, то наступне звертання по цій же адресі з великою імовірністю відбудеться найближчим часом.
Усі попередні міркування справедливі і для інших пар ЗП, наприклад, для ОП і зовнішньої пам'яті. У цьому випадку зменшується середній час доступу до даних, розташованим на диску, і роль кеш-пам'яті виконує буфер в ОП.
6.3 Узгодження швидкостей обміну і кешування даних
При обміні даними завжди виникає задача узгодження швидкості. Узгодження швидкості звичайно досягається за рахунок буферизації даних в ОП і синхронізації доступу процесів до буфера.
У підсистемі в/в для узгодження швидкостей обміну також широко використовується буферизація даних в ОП. У тих спеціалізованих ОС, у яких забезпечення високої швидкості в/в є першочерговою задачею (керування в реальному часі, послуги мережної файлової служби і т. п.), велика частина ОП виділяється не під коди прикладних програм, а під буферизацію даних. Однак буферизація тільки на основі ОП в підсистемі в/в виявляється недостатньою – різниця між швидкістю обміну з ОП, куди процеси поміщають дані для обробки, і швидкістю роботи зовнішнього пристрою часто стає занадто значної, щоб як тимчасовий буфер можна було б використовувати ОП – її обсягу може просто не вистачити. Для таких випадків необхідно передбачити особливі міри, і часто як буфер використовується дисковий файл, названий також спул-файлом (від spool – шпулька, теж буфер, тільки для ниток). Типовий приклад застосування спулинга дає організація виводу даних на принтер. Для документів, що друкуються, обсяг у кілька десятків мегабайт – не рідкість, тому для їхнього тимчасового збереження (а печатка кожного документа займає від декількох хвилин до десятків хвилин) обсягу ОП явно недостатньо.
Буферизація даних дозволяє не тільки погодити швидкості роботи процесора і зовнішнього пристрою, але і вирішити іншу задачу – скоротити кількість реальних операцій в/в за рахунок кешування даних. Дисковий кеш є неодмінним атрибутом підсистем в/в практично всіх ОП, значно скорочуючи час доступу до збережених даних.