
2 Принцип кешування даних
Пам'ять обчислювальної машини є ієрархією запам'ятовуючих пристроїв (внутрішні регістри процесора, різні типи надоперативної і оперативної пам'яті, диски, стрічки), відрізняються середнім часом доступу і вартістю зберігання даних з розрахунку на один біт. Користувачеві хотілося б мати і недорогу і швидку пам'ять. Кеш-пам'ять представляє деяке компромісне вирішення цієї проблеми.
Кеш-пам'ять - це спосіб організації сумісного функціонування двох типів запам'ятовуючих пристроїв, що відрізняються часом доступу і вартістю зберігання даних, який дозволяє зменшити середній час доступу до даних за рахунок динамічного копіювання в "швидкий" ЗП найбільш часто використовуваний даних з "повільного" ЗП.
Кеш-пам'яттю часто називають не тільки спосіб організації роботи двох типів ЗП, але і один з пристроїв - "швидкий" ЗП. Він коштує дорожче і, як правило, має порівняно невеликий об'єм.
У системах, оснащених кеш-пам'яттю, кожен запит до оперативної пам'яті виконується відповідно до наступного алгоритму:
- Є видимим вміст кеш-пам'яті з метою визначення, чи не знаходяться потрібні дані в кеш-пам'яті; кеш-пам'ять не є такою, що адресується, тому пошук потрібних даних здійснюється по вмісту - значенню поля "адреса в оперативній пам'яті", узятому із запиту.
- Якщо дані виявляються в кеш-пам'яті, то вони прочитуються з неї, і результат передається в процесор.
- Якщо потрібних даних немає, то вони разом зі своєю адресою копіюються з оперативної пам'яті в кеш-пам'ять, і результат виконання запиту передається в процесор. При копіюванні даних може опинитися, що в кеш-пам'яті немає вільного місця, тоді вибираються дані, до яких в останній період було менше всього звернень, для витіснення з кеш-пам'яті. Якщо дані, що витісняються, були модифіковані за час знаходження в кеш-пам'яті, то вони переписуються в оперативну пам'ять. Якщо ж ці дані не були модифіковані, то їх місце в кеш-пам'яті оголошується вільним.
Просторова локальність. Якщо відбулося звернення за деякою адресою, то з високим ступенем вірогідності найближчим часом відбудеться звернення до сусідніх адрес.
Тимчасова локальність. Якщо відбулося звернення за деякою адресою, то наступне звернення за цією ж адресою з великою вірогідністю відбудеться найближчим часом.
Всі попередні міркування справедливі і для інших пар пристроїв, що запам'ятовують, наприклад, для оперативної пам'яті і зовнішньої пам'яті. В цьому випадку зменшується середній час доступу до даним, розташованим на диску, і роль кеш-пам'яті виконує буфер в оперативній пам'яті.
Контрольні питання:
1. Що таке віртуальна пам'ять і які завдання вона виконує?
2. Коротко опишіть метод сторінкового розподілу пам'яті?
3. Що таке сегмент програми?
4. Чим відрізняється свопінг від сторінково-сегментного способу розподілу
пам'яті?
5. Опишіть алгоритм по якому виконуються запити до оперативної пам'яті в
системах оснащених кеш-пам'яттю?