Тема 5. Кеш- пам'ять

2. Принцип дії

Кеш - це швидка проміжна (буферна) пам'ять невеликої місткості, що розташована поміж процесором і основною пам'яттю. Операції обміну даними між процесором і кешем виконуються швидше, ніж звернення процесора безпосередньо до основної пам'яті, тим самим прискорюється робота процесора з пам'яттю. Найчастіше кеш залишається прозорим для програміста, тому що система команд процесора, зазвичай, не містить команд роботи з кешем. При поясненні роботи кеша можна вважати, що процесор також його «не бачить» і звертається до пам'яті так, ніби кеша немає. Проте кеш, як правило, існує, і на апаратному рівні перехоплює сигнали процесора читання/запис, а коли треба, то надає процесору швидкі копії інформаційних кодів, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш спроможний підмінити собою пам'ять (це називається «попадання в кеш», англ. Cache hit), тоді він за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і продовжує працювати на великій швидкості. Коли «підміна» пам'яті неможлива, тоді до роботи залучається основна пам'ять, обмін з якою суттєво пригальмовує процесор.

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

Рис.1

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

В окремих обчислювальних системах одночасно може використовуватись декілька кешів різного функціонального призначення, в тому числі:

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

Більшість сучасних мікропроцесорів для комп'ютерів і серверів мають як мінімум три незалежних кеші:

  1. кеш інструкцій для прискорення завантаження машинного коду
  2. кеш даних для прискорення читання і запису даних
  3. буфер асоціативної трансляції (TLB) для прискорення трансляції віртуальних (математичних) адрес у фізичні, як для інструкцій, так і для даних. Кеш даних часто реалізується у вигляді багаторівневого кешу (L1, L2, L3).
Доступність

Шрифти Шрифти

Розмір шрифта Розмір шрифта

1

Колір тексту Колір тексту

Колір тла Колір тла

Кернінг шрифтів Кернінг шрифтів

Видимість картинок Видимість картинок

Інтервал між літерами Інтервал між літерами

0

Висота рядка Висота рядка

1.2

Виділити посилання Виділити посилання

Вирівнювання тексту Вирівнювання тексту

Ширина абзацу Ширина абзацу

0