Кеш, його рівні.Різниця
Кеш — це пам'ять з більшою швидкістю доступу, призначена для прискорення звернення до даних, що містяться постійно в пам'яті з меншою швидкістю доступу. Кешування застосовується ЦПУ, жорсткими дисками, браузерамі і веб-сервером-серверами.
Кеш (Cache) — спеціальний вид пам'яті або частина ОЗП, де зберігаються копії часто використовуваних даних. Забезпечує до них швидкий доступ. Кеш пам'ять зберігає вміст і адресу ділянки ОЗП, до якої часто звертається процесор. При звертанні процесора до адреси пам'яті, кеш перевіряє наявність у себе цієї адреси. Якщо він її знаходить, обмін даними виконується між процесором і кешем; якщо ні — між процесором і ОЗП. Кеш ефективний, коли швидкість роботи пам'яті менша за швидкість роботи процесора.
Принцип дії
Кеш — це швидка буферна пам'ять невеликої місткості, що розташована поміж процесором і основною пам'яттю. Кеш працює на повній швидкості процесора і не пригальмовує його роботу. Кеш (cache в перекладі з англ. — тайник) лишається прозорим для програміста, тому що система інструкцій процесора, як правило, не містить команд роботи з кешем. При поясненні роботи кеша можна прийняти, що процесор також не «бачить» кеш і генерує адреси пам'яті так, ніби кеша немає. Проте кеш, як правило, існує, і на апаратному рівні перехоплює сигнали процесора читання/запис, а коли треба, то надає процесору швидкі копії інформаційних кодів, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш спроможний підмінити собою пам'ять (у понад 96-98 відсотків випадків), тоді він за рахунок власних ресурсів задовольняє запит процесора. Процесор не пригальмовується і залишається працювати на повній швидкості. Коли «підміна» пам'яті неможлива (менше від двох-чотирьох відсотків випадків), тоді кеш залучає до роботи пам'ять, обмін з якою суттєво пригальмовує процесор.
Усі завдання, пов'язані з перехопленням запитів від процесора на роботу із пам'яттю, вирішує частина апаратури кешу під назвою контролер кешу. Друга частина апаратури кешу містить невелику робочу пам'ять, де зберігають вміст копій комірок головної пам'яті, що брали участь в обслуговуванні останніх, тобто «найсвіжіших» запитів процесора. Важливо, що вміст комірок головної пам'яті копіюється до пам'яті кешу разом зі своїми адресами. Саме ці копійовані адреси і дозволяють контролеру кешу приймати рішення про спроможність буферної пам'яті задовольнити конкретний процесорний запит без залучення до обміну повільної головної пам'яті.
Рівні кеша
1. Кеш першого рівня (L1) - найшвидший, але маленький за об'ємом. З L1 працює безпосередньо ядро процесора.
2. Кеш другого рівня - дещо більше першого за об'ємом, але повільніше за швидкістю передачі даних.
3. Кеш третього рівня (L3). Цей кеш ще більше за розміром, хоча і трохи повільніше, ніж L2. Об'єми кешів L2 і L3 - дуже важливі характеристики. Чим вони більші, тим вище продуктивність процесора.
У багатоядерних процесорах об'єми 1 і 2 рівнів кеша діляться на кількість ядер. Тобто якщо в описі, наприклад, до четирех'ядерному процесора об'єм кеша другого рівня вказаний як «1 Мб», під цим мається на увазі 256 х 4 Кб. Справедливо і зворотна вказівка.Кеш L3 є загальним для всіх ядер