Що таке кеш-пам'ять
Далеко не всі власники комп`ютерів знають, що таке кеш-пам`ять, хоча вона активно використовується абсолютно всіма виробниками, як процесорів, так і програм. Деякі користувачі, лише недавно почали освоювати персональний комп`ютер, іноді на тематичних форумах в глобальній Мережі скаржаться на низьку швидкодію своїх електронних помічників. Наприклад, якщо між запуском ярлика офісної програми і появою її вікна проходить 5 секунд, то це вважається колосальним часом. Або стверджується, що ті 10-15 секунд, які необхідні для завантаження операційної системи з жорсткого диска на магнітних пластинах - марна втрата часу. Дивно: всього десяток років тому запуск програми міг займати майже половину хвилини, і це вважалося швидко. Очевидно одне - продуктивність комп`ютерів істотно зросла і в цьому далеко не останню роль зіграла кеш-пам`ять процесора.
Використовувані в комп`ютерній техніці модулі оперативної пам`яті ґрунтуються на технології DRAM (динамічна пам`ять з довільним доступом). Особливості цієї технології в низькій вартості, високої надійності і ... відносно низькому швидкодії. DRAM застосовувалася вже десять років тому, правда, ще більш повільні її модифікації. Якщо в той час доступ до комірок пам`яті здійснювався із затримками близько 200 наносекунд, то зараз це значення подолало рубіж в 20 нс. Здавалося б - швидкість повинна бути просто фантастичною! Проте паралельно з удосконаленням DRAM також збільшувалася пропускна здатність шин процесора, тому загальне співвідношення змінилося не так, як могло б. Ось ми і підійшли до питання про те, що таке кеш-пам`ять. Як можна збільшити продуктивність підсистеми пам`яті комп`ютера? Відповідь очевидна - можна замінити морально застарілу DRAM чимось більш прогресивним. Але сумнозвісний досвід Intel з дорогими планками Rambus підказав, що заміна не повинна істотно збільшувати підсумкову вартість.
Не будь цього обмеження, ніхто ніколи б і не замислювався, що таке кеш-пам`ять, тому що в подібному механізмі не було б особливого сенсу. Досить замінити DRAM більш досконалої SRAM (пам`ять з довільним статичним доступом) і проблема була б вирішена. Але це спричинило б значне збільшення вартості. Тому був запропонований компромісний варіант, який опинився настільки вдалим, що застосовується ще з часів перших 80286. Для збільшення продуктивності системи між відносно повільними модулями оперативної пам`яті і швидкодіючим процесором розміщуються блоки швидкісної пам`яті. Щодо кількості осередків DRAM їх обсяг вкрай незначний, складаючи від 8 кб (перший рівень L1) до десятків мегабайт (рівень L3). Спеціальний контролер пропускає через себе двонаправлений потік даних і копіює їх частина в швидку пам`ять. При наступних запитах процесора до DRAM контролер перевіряє, чи немає «в запасі» потрібних данни, і якщо вони знайдені, то передача процесору йде саме з кеша. Як видно, принцип роботи досить простий. Складнощі виникають в способах реалізації: розробникам доводиться вирішувати, які саме дані дублювати, як їх оновлювати, як підвищити ефективність роботи та ін. Але це дуже об`ємна тема, тому докладніше про неї можна прочитати в спеціалізованих джерелах.
Таким чином, відповідь на питання про те, що таке кеш-пам`ять, може бути сформульовано таким чином: кеш-пам`ять є своєрідним буфером, в який контролером записуються / зчитуються дані, збільшуючи продуктивність підсистеми пам`яті.
А щодо мережевих додатків що таке кеш? Браузер користувача при перегляді сторінок в Інтернеті використовує таке ж рішення. При першому відкриванні будь-якої сторінки багато її елементи (зображення, дані) зберігаються в папці на диску, а при наступних зверненнях ці дані не завантажуються з повільної Мережі, а підставляються з папки, збільшуючи швидкість серфінгу. Прискорення особливо помітно при низьких швидкостях Інтернету.