Кеш (від англ. cache — схованка) — особлива швидкісна пам'ять або частина оперативної пам'яті, де зберігаються копії часто використовуваних даних. Забезпечує до них швидкий доступ.
Процесорна кеш-пам'ять зберігає вміст і адресу даних, до яких часто звертається процесор. Під час чергового звертання процесора до адреси пам'яті, перевіряється наявність цієї адреси у кеші. Якщо відповідні дані наявні, вони передаються процесору з кешу. Це дозволяє скоротити тривалість обміну, оскільки швидкодія кешу більша за швидкодію звичайної пам'яті. Вибір даних зі звичайної (повільнішої) пам'яті здійснюється лише тоді, коли потрібні процесору дані в кеші відсутні.
Слід зазначити, що кеш може бути не лише процесорний, а й входити до складу інших компонентів комп'ютера (наприклад, кеш жорсткого диску, SSD-накопичувачів особливих видів). Більш того, кеш ще й може бути програмним рішенням, наприклад в ОС Android він використовується для пришвидшеного доступу до часто використовуваних даних для застосунків чи мережевих даних. Програмні кеші широко застосовуються у браузерах та мультимедійних програмах. Розраховуючи швидкодію та розміри програмних кешів слід брати до уваги категорію програми, фрагментацію, тип накопичувача і фрагментацію файлової системи. Чистка програмних кешів може іноді допомагати у пришвидшенні роботи та звільненні місця на накопичувачі, але кеші часто запрограмовані збалансовано.
Історія
Використання слова «кеш» у контексті комп'ютерів походить від 1967 року, коли готувалась стаття для публікації в журналі 'IBM Systems Journal'. Стаття стосувалася вдосконалення пам'яті в Моделі 85, наступної в лінії (IBM System/360). Редактор журналу, Lyle R. Johnson, попрохав ужити більш описовий термін, ніж «швидкохідний буфер», але іншого слова не було знайдено, тоді він запропонував «кеш». Статтю було опубліковано на початку 1968 року, автори були нагороджені IBM, їх робота широко схвалювалась і згодом була поліпшена, та назва «кеш» швидко стала стандартно вживаною в комп'ютерній літературі.
Цей розділ потребує доповнення. |
Принципи дії кешу
Процесорний кеш — це швидка проміжна (у деякому сенсі, буферна) пам'ять невеликої місткості, що розташована поміж процесором з його регістрами, й основною пам'яттю (здебільшого ОЗП). Операції обміну даними між процесором і кешем виконуються швидше, ніж звернення процесора безпосередньо до основної пам'яті, тим самим прискорюється робота процесора з пам'яттю. Найчастіше кеш залишається прозорим для програміста, тому що система команд процесора, зазвичай, не містить команд роботи з кешем. При поясненні роботи кешу можна вважати, що процесор також його «не бачить» і звертається до пам'яті так, ніби кешу немає. Проте кеш, як правило, існує, і на апаратному рівні перехоплює сигнали процесора читання/запис, а коли треба, то надає процесору швидкі копії інформаційних кодів, які тимчасово зберігає у власній робочій пам'яті. Якщо кеш спроможний підмінити собою пам'ять (це називається «попадання в кеш», англ. Cache hit), тоді він за рахунок власних ресурсів задовольняє запит процесора. Отож, процесор не пригальмовується і продовжує працювати на великій швидкості. Коли «підміна» пам'яті неможлива, тоді до роботи залучається основна пам'ять, обмін з якою може суттєво пригальмовувати процесор у більшості задачах.
Усі завдання, пов'язані з перехопленням запитів від процесора на роботу із пам'яттю, вирішує частина апаратури кешу під назвою . Друга частина апаратури кешу містить невелику швидку робочу пам'ять, де зберігається копія комірок головної пам'яті, до яких нещодавно були звернення, тобто результати «найсвіжіших» запитів процесора. Важливо, що вміст комірок головної пам'яті копіюється до пам'яті кешу разом зі своїми адресами. Саме ці скопійовані адреси і дозволяють контролеру кешу ухвалювати рішення про спроможність буферної пам'яті задовольнити конкретний процесорний запит без залучення до обміну повільної основної пам'яті.
В різних обчислювальних системах одночасно може використовуватись (чи бути наявними) декілька процесорних кешів різного функціонального призначення, наприклад:
- кеш даних — виконує буферизації всіх запитів процесора до ОП;
- кеш команд — зберігає наперед вибрані команди процесора, що з великою ймовірністю будуть виконані наступними;
- буфер швидкої переадресації — забезпечує зберігання елементів таблиць сегментів та сторінок для перетворення (трансляції) віртуальних адрес у фізичні без звернення до ОП.
Більшість сучасних мікропроцесорів для комп'ютерів і серверів мають як мінімум три незалежних кеші: кеш інструкцій для прискорення завантаження машинного коду, кеш даних для прискорення читання і запису даних і буфер асоціативної трансляції (TLB) для прискорення трансляції віртуальних (математичних) адрес у фізичні, як для інструкцій, так і для даних. Кеш даних часто реалізується у вигляді багаторівневого кешу (L1, L2, L3).
Питання продуктивності
Збільшення розміру апаратної кеш-пам'яті центрального процесора позитивно впливає на продуктивність багатьох комп'ютерних програм. Це особливо помітно при зміні процесорів, котрі мають однакові або майже однакові характеристики, проте різну кількість кеш-пам'яті.
Збільшення ж розміру програмних кешів задля продуктивності оцінити важко (особливо для системних розділів), бо, наприклад, практичне розташування файлів та особливості роботи файлових систем можуть бути дуже різними.
Багаторівневі кеші
Багаторівневі кеші зазвичай працюють у послідовності від менших кешів до великих. Спочатку відбувається перевірка найменшого та найшвидшого кешу першого рівня (L1), у разі попадання процесор продовжує роботу на високій швидкості. Якщо менший кеш дав промах, перевіряється наступний, трохи більший і більш повільний кеш другого рівня (L2), і так далі, поки не відбудеться запит до основної оперативної чи постійної пам'яті.
Див. також
Примітки
- . support.google.com. Архів оригіналу за 30 Липня 2021. Процитовано 30 липня 2021.
- . Архів оригіналу за 30 Липня 2021. Процитовано 30 Липня 2021.
- Зависимость производительности процессора от размера кэша L2 [ 3 Червня 2013 у Wayback Machine.](рос.)
Література
- G. C. Stierhoff and A. G. Davis. A History of the IBM Systems Journal. IEEE Annals of the History of Computing, Vol. 20, No. 1 (Jan. 1998), pages 29-35.(англ.)
Посилання
Вікіпідручник має книгу на тему Термінологічний словник з інформатики |
У Вікісловнику є сторінка кеш. |
- http://it-cute.blogspot.com/2007/09/blog-post_25.html [ 5 Березня 2016 у Wayback Machine.]
- Cacheme — PHP5 клас для роботи з кешом, підтримує файловий кеш, SQLite, memcahed, Xcache, APC, eAccelerator [ 6 Червня 2008 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Kesh znachennya Kesh vid angl cache shovanka osobliva shvidkisna pam yat abo chastina operativnoyi pam yati de zberigayutsya kopiyi chasto vikoristovuvanih danih Zabezpechuye do nih shvidkij dostup Procesorna kesh pam yat zberigaye vmist i adresu danih do yakih chasto zvertayetsya procesor Pid chas chergovogo zvertannya procesora do adresi pam yati pereviryayetsya nayavnist ciyeyi adresi u keshi Yaksho vidpovidni dani nayavni voni peredayutsya procesoru z keshu Ce dozvolyaye skorotiti trivalist obminu oskilki shvidkodiya keshu bilsha za shvidkodiyu zvichajnoyi pam yati Vibir danih zi zvichajnoyi povilnishoyi pam yati zdijsnyuyetsya lishe todi koli potribni procesoru dani v keshi vidsutni Slid zaznachiti sho kesh mozhe buti ne lishe procesornij a j vhoditi do skladu inshih komponentiv komp yutera napriklad kesh zhorstkogo disku SSD nakopichuvachiv osoblivih vidiv Bilsh togo kesh she j mozhe buti programnim rishennyam napriklad v OS Android vin vikoristovuyetsya dlya prishvidshenogo dostupu do chasto vikoristovuvanih danih dlya zastosunkiv chi merezhevih danih Programni keshi shiroko zastosovuyutsya u brauzerah ta multimedijnih programah Rozrahovuyuchi shvidkodiyu ta rozmiri programnih keshiv slid brati do uvagi kategoriyu programi fragmentaciyu tip nakopichuvacha i fragmentaciyu fajlovoyi sistemi Chistka programnih keshiv mozhe inodi dopomagati u prishvidshenni roboti ta zvilnenni miscya na nakopichuvachi ale keshi chasto zaprogramovani zbalansovano IstoriyaVikoristannya slova kesh u konteksti komp yuteriv pohodit vid 1967 roku koli gotuvalas stattya dlya publikaciyi v zhurnali IBM Systems Journal Stattya stosuvalasya vdoskonalennya pam yati v Modeli 85 nastupnoyi v liniyi IBM System 360 Redaktor zhurnalu Lyle R Johnson poprohav uzhiti bilsh opisovij termin nizh shvidkohidnij bufer ale inshogo slova ne bulo znajdeno todi vin zaproponuvav kesh Stattyu bulo opublikovano na pochatku 1968 roku avtori buli nagorodzheni IBM yih robota shiroko shvalyuvalas i zgodom bula polipshena ta nazva kesh shvidko stala standartno vzhivanoyu v komp yuternij literaturi Cej rozdil potrebuye dopovnennya Principi diyi keshuProcesornij kesh ce shvidka promizhna u deyakomu sensi buferna pam yat nevelikoyi mistkosti sho roztashovana pomizh procesorom z jogo registrami j osnovnoyu pam yattyu zdebilshogo OZP Operaciyi obminu danimi mizh procesorom i keshem vikonuyutsya shvidshe nizh zvernennya procesora bezposeredno do osnovnoyi pam yati tim samim priskoryuyetsya robota procesora z pam yattyu Najchastishe kesh zalishayetsya prozorim dlya programista tomu sho sistema komand procesora zazvichaj ne mistit komand roboti z keshem Pri poyasnenni roboti keshu mozhna vvazhati sho procesor takozh jogo ne bachit i zvertayetsya do pam yati tak nibi keshu nemaye Prote kesh yak pravilo isnuye i na aparatnomu rivni perehoplyuye signali procesora chitannya zapis a koli treba to nadaye procesoru shvidki kopiyi informacijnih kodiv yaki timchasovo zberigaye u vlasnij robochij pam yati Yaksho kesh spromozhnij pidminiti soboyu pam yat ce nazivayetsya popadannya v kesh angl Cache hit todi vin za rahunok vlasnih resursiv zadovolnyaye zapit procesora Otozh procesor ne prigalmovuyetsya i prodovzhuye pracyuvati na velikij shvidkosti Koli pidmina pam yati nemozhliva todi do roboti zaluchayetsya osnovna pam yat obmin z yakoyu mozhe suttyevo prigalmovuvati procesor u bilshosti zadachah Usi zavdannya pov yazani z perehoplennyam zapitiv vid procesora na robotu iz pam yattyu virishuye chastina aparaturi keshu pid nazvoyu Druga chastina aparaturi keshu mistit neveliku shvidku robochu pam yat de zberigayetsya kopiya komirok golovnoyi pam yati do yakih neshodavno buli zvernennya tobto rezultati najsvizhishih zapitiv procesora Vazhlivo sho vmist komirok golovnoyi pam yati kopiyuyetsya do pam yati keshu razom zi svoyimi adresami Same ci skopijovani adresi i dozvolyayut kontroleru keshu uhvalyuvati rishennya pro spromozhnist bufernoyi pam yati zadovolniti konkretnij procesornij zapit bez zaluchennya do obminu povilnoyi osnovnoyi pam yati V riznih obchislyuvalnih sistemah odnochasno mozhe vikoristovuvatis chi buti nayavnimi dekilka procesornih keshiv riznogo funkcionalnogo priznachennya napriklad kesh danih vikonuye buferizaciyi vsih zapitiv procesora do OP kesh komand zberigaye napered vibrani komandi procesora sho z velikoyu jmovirnistyu budut vikonani nastupnimi bufer shvidkoyi pereadresaciyi zabezpechuye zberigannya elementiv tablic segmentiv ta storinok dlya peretvorennya translyaciyi virtualnih adres u fizichni bez zvernennya do OP Bilshist suchasnih mikroprocesoriv dlya komp yuteriv i serveriv mayut yak minimum tri nezalezhnih keshi kesh instrukcij dlya priskorennya zavantazhennya mashinnogo kodu kesh danih dlya priskorennya chitannya i zapisu danih i bufer asociativnoyi translyaciyi TLB dlya priskorennya translyaciyi virtualnih matematichnih adres u fizichni yak dlya instrukcij tak i dlya danih Kesh danih chasto realizuyetsya u viglyadi bagatorivnevogo keshu L1 L2 L3 Pitannya produktivnosti Zbilshennya rozmiru aparatnoyi kesh pam yati centralnogo procesora pozitivno vplivaye na produktivnist bagatoh komp yuternih program Ce osoblivo pomitno pri zmini procesoriv kotri mayut odnakovi abo majzhe odnakovi harakteristiki prote riznu kilkist kesh pam yati Zbilshennya zh rozmiru programnih keshiv zadlya produktivnosti ociniti vazhko osoblivo dlya sistemnih rozdiliv bo napriklad praktichne roztashuvannya fajliv ta osoblivosti roboti fajlovih sistem mozhut buti duzhe riznimi Bagatorivnevi keshiDokladnishe Iyerarhiya pam yati Bagatorivnevi keshi zazvichaj pracyuyut u poslidovnosti vid menshih keshiv do velikih Spochatku vidbuvayetsya perevirka najmenshogo ta najshvidshogo keshu pershogo rivnya L1 u razi popadannya procesor prodovzhuye robotu na visokij shvidkosti Yaksho menshij kesh dav promah pereviryayetsya nastupnij trohi bilshij i bilsh povilnij kesh drugogo rivnya L2 i tak dali poki ne vidbudetsya zapit do osnovnoyi operativnoyi chi postijnoyi pam yati Div takozhKomp yuterna pam yat Kesh procesora Procesor Mikroarhitektura Nosij danih Arhitektura sistemi komand Tom komp yuter Primitki support google com Arhiv originalu za 30 Lipnya 2021 Procitovano 30 lipnya 2021 Arhiv originalu za 30 Lipnya 2021 Procitovano 30 Lipnya 2021 Zavisimost proizvoditelnosti processora ot razmera kesha L2 3 Chervnya 2013 u Wayback Machine ros LiteraturaG C Stierhoff and A G Davis A History of the IBM Systems Journal IEEE Annals of the History of Computing Vol 20 No 1 Jan 1998 pages 29 35 angl PosilannyaVikipidruchnik maye knigu na temu Terminologichnij slovnik z informatiki U Vikislovniku ye storinka kesh http it cute blogspot com 2007 09 blog post 25 html 5 Bereznya 2016 u Wayback Machine Cacheme PHP5 klas dlya roboti z keshom pidtrimuye fajlovij kesh SQLite memcahed Xcache APC eAccelerator 6 Chervnya 2008 u Wayback Machine