Вплив кеш-пам'яті на продуктивність мікропроцесорів. Вплив кеш-пам'яті на продуктивність комп'ютера

Усі процесори з кінця 1990-х мають внутрішню кеш-пам'ять (чи навіть кеш). Кеш - це швидкодіюча пам'ять, в яку переносяться команди та дані, що безпосередньо обробляються процесором.

У сучасних процесорах вбудована кеш-пам'ять двох рівнів – першого (L1) та другого (L2). З вмістом кешу L1 процесор працює дещо швидше, а об'єм кешу L2 зазвичай дещо більший. Звернення до кеш-пам'яті відбувається без очікування, тобто. кеш-пам'ять першого рівня (вбудований кеш) працює на частоті процесора.

Це означає, якщо дані, необхідні процесору, перебувають у кеш-пам'яті, то затримок з обробкою немає. В іншому випадку процесор повинен отримати дані з основної пам'яті, що суттєво зменшує швидкодію системи.

Щоб якісно розібратися з принципом роботи кешпам'яті обох рівнів, розглянемо з прикладу побутову ситуацію.

Ви приходите в кафе пообідати щодня, в один і той же час, і сідайте завжди за один і той самий столик. Завжди замовляєте стандартний набір із трьох страв.

Офіціант бігає на кухню, кухар їх розкладає на тацю і потім вам приносять замовлення. І ось, скажімо, на третій день офіціант, щоб зайвий раз не бігати на кухню, до призначеного часу зустрічає вас із готовим гарячим обідом на підносі.

Ви не чекаєте на замовлення і заощадили масу часу. Піднос із вашими стравами – це і є кеш першого рівня. Але на четвертий день вам раптом захотілося додати ще одну страву, скажімо, десерт.

Хоча на вас у призначений час уже чекав піднос із замовленням, але за десертом офіціантові все одно довелося бігти на кухню.

А на п'ятий — знову меню із трьох найменувань. На шостий знову десерт, але відрізняється від попереднього. І офіціант, не знаючи, що ви з десерту захочете замовити (та й взагалі не знаючи, чи будете ви щось замовляти), вирішується на наступний крок: поряд з вашим столиком ставить шафку з декількома найменуваннями десерту.

І якщо ви виявіте бажання, все під рукою, на кухню бігти не треба. Шафка з десертом - це кеш другого рівня.

Від обсягу кешу L1 (від 16 до 128 Кбайт) та L2 (від 64 Кбайт до 512 Кбайт, у Pentium III Хеоп та AMD Opteron до 4 Мбайт) істотно залежить продуктивність процесора.

У процесорів Intel Pentium III та процесорів Celeron на його основі розмір кешу L1 становить 32 Кбайт. Intel Pentium 4, а також на його базі Celeron і Хеоп-версій — всього 20 Кбайт. Процесори AMD Duron, Athlon (включаючи ХР/МР) та Opteron, а також VIA СЗ містять 128 Кбайт L1 кешу.

Сучасні двоядерні процесори мають кеш першого рівня кожного ядра окремо, тому іноді в описі кешу ми можемо зустріти цифру 128×2. Це означає, що кожне ядро ​​процесора має 128 Кбайт кеш-пам'яті першого рівня.

Розмір кешу L1 важливий для отримання високої продуктивності у більшості поширених завдань (офісні програми, ігри, більшість серверних програм тощо). Особливо сильно його ефективність проявляється для потокових обчислень (наприклад обробка відеозображення).

Це одна з причин того, що Pentium 4 є відносно малоефективним для більшості поширених застосувань (хоча це компенсується високою тактовою частотою). Кеш L1 завжди працює (обмінюється інформацією з ядром процесора) на внутрішній частоті процесора.

На відміну від нього, кеш L2 у різних моделях процесорів працює з різною частотою (і відповідно продуктивністю). Починаючи з Intel Pentium II у багатьох процесорах застосовувався кеш L2, що працює на частоті, наполовину меншій, ніж внутрішня частота процесора.

Таке рішення використано в застарілих процесорах Intel Pentium III (до 550 МГц) та застарілих AMD Athlon (у деяких із них внутрішній кеш L2 працював на третині частоти ядра процесора). Об'єм кешу L2 також різний для різних процесорів.

У застарілих, а також деяких нових процесорах Intel Pentium III обсяг кешу L2 становить 512 Кбайт, в інших Pentium III - 256 Кбайт. Процесор Intel Celeron на основі Pentium III випускався зі 128 і 256 Кбайт кешу L2, а на основі Pentium 4 – лише зі 128 Кбайт. У різних варіантах Xeon-версії Intel Pentium 4 є до 4 Мбайт кеш-пам'яті L2.

У нових процесорах Pentium 4 (деякі серії з частотою 2000 МГц і всі – для частот вище) є 512 Кбайт кешу L2, у решті Pentium 4 -256 Кбайт. У процесорах Хеоп (з урахуванням Pentium 4) буває 256 чи 512 Кбайт кешу L2.

Крім того, в них є ще кеш-пам'ять третього рівня L3. Інтегрована кеш-пам'ять L3 у поєднанні зі швидкою системною шиною формує високошвидкісний канал обміну даними із системною пам'яттю.

Як правило, кеш-пам'яттю третього рівня L3 комплектуються лише процесори для серверних рішень або спеціальні моделі настільних процесорів. Кеш-пам'яттю L3 мають, наприклад, такі лінійки процесорів, як Xeon DP, Itanium 2, Xeon MP.

Процесор AMD Duron має 128 Кбайт кешу L1 та 64 Кбайт кешу L2. У процесорах Athlon (крім найстаріших), Athlon MP і більшості варіантів Athlon ХР присутній 128 Кбайт кешу L1 і 256 Кбайт кешу L2, а новітніх Athlon ХР (2500+, 2800+, 3000+ і ша) — 51 AMD Opteron містить 1 Мбайт кеш-пам'яті L2.

Останні моделі процесорів Intel Pentium D, Intel Pentium M, Intel Core 2 Duo випускаються з 6 Мбайт кеш-пам'яті L2, а Core 2 Quad – 12 Мбайт кеш-пам'яті L2.

Останній на момент написання цієї книги процесор фірми Intel Core i7 має 64 Кбайт кеш-пам'яті L1 для кожного з 4 ядер, а також 256 Кбайт пам'яті L2 для кожного ядра. Крім кеш пам'яті першого та другого рівнів процесор має і загальну для всіх ядер кеш-пам'ять третього рівня, що дорівнює 8 Мбайт.

Для процесорів, у яких можливий різний розмір кешу L2 (або Intel Xeon MP - L3) в однієї і тієї ж моделі, цей розмір повинен бути вказаний при продажі (від нього, зрозуміло, залежить ціна процесора). Якщо процесор продається в "коробковій" упаковці (постачання In-Box), на ній зазвичай вказується розмір кеш-пам'яті.

Для звичайних завдань користувача (у тому числі ігор) важливіше швидкість кешу L2, ніж його обсяг; для серверних завдань, навпаки, важливішим є обсяг. Найбільш продуктивні сервери, особливо з великим обсягом оперативної пам'яті (кілька гігабайт), потребують максимального обсягу та максимальної швидкості кешу L2.

Неперевершеними за цими параметрами залишаються Хеоп-версії процесорів Pentium III. (Процесор Xeon MP виявляється все ж таки більш продуктивні в серверних задачах, ніж Pentium III Xeon, за рахунок вищої тактової частоти самого процесора і шини обміну інформацією з пам'яттю.) З викладеного вище зробимо висновок: кеш-пам'ять покращує взаємодію між швидким процесором і більше повільною оперативною пам'яттю, а також дозволяє мінімізувати періоди очікування, що виникають під час обробки даних. Вирішальну роль цьому грає кеш-пам'ять другого рівня, розташована в кристалі процесора.

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

Ряд моделей центральних процесорів (ЦП) мають власний кеш, щоб мінімізувати доступ до оперативної пам'яті (ОЗУ), яка повільніше, ніж регістри. Кеш-пам'ять може давати значний виграш у продуктивності, якщо тактова частота ОЗУ значно менше тактової частоти ЦП. Тактова частота для кеш-пам'яті зазвичай набагато менше частоти ЦП.

Рівні кешу

Кеш центрального процесора поділено на кілька рівнів. В універсальному процесорі в даний час число рівнів може досягати 3. Кеш-пам'ять рівня N+1 зазвичай більше за розміром і повільніше швидкості доступу і передачі даних, ніж кеш-пам'ять рівня N.

Найшвидшою пам'яттю є кеш першого рівня - L1-cache. По суті вона є невід'ємною частиною процесора, оскільки розташована на одному з ним кристалі і входить до складу функціональних блоків. У сучасних процесорах зазвичай кеш L1 розділений на два кеші, кеш команд (інструкцій) та кеш даних (Гарвардська архітектура). Більшість процесорів без кешу L1 не можуть функціонувати. L1 кеш працює на частоті процесора, і, у випадку, звернення до нього може проводитися кожен такт. Найчастіше є можливим виконувати кілька операцій читання/запису одночасно. Латентність доступу зазвичай дорівнює 2×4 тактам ядра. Обсяг зазвичай невеликий - трохи більше 384 Кбайт.

Другим за швидкодією є L2-cache - кеш другого рівня, зазвичай він розташований на кристалі, як і L1. У старих процесорах – набір мікросхем на системній платі. Об'єм L2 кешу від 128 Кбайт до 1×12 Мбайт. У сучасних багатоядерних процесорах кеш другого рівня, перебуваючи тому ж кристалі, є пам'яттю роздільного користування -- за загального обсягу кешу в nM Мбайт на кожне ядро ​​посідає nM/nC Мбайта, де nC кількість ядер процесора. Зазвичай латентність кешу L2, розташованого на кристалі ядра, становить від 8 до 20 тактів ядра.

Кеш третього рівня найменш швидкодіючий, але він може бути дуже значного розміру - більше 24 Мбайт. L3 кеш повільніший за попередні кеші, але все одно значно швидше, ніж оперативна пам'ять. У багатопроцесорних системах знаходиться у загальному користуванні та призначений для синхронізації даних різних L2.

Іноді існує і 4 рівень кешу, зазвичай він розташований в окремій мікросхемі. Застосування кешу 4 рівня виправдане лише для високопродуктивних серверів та мейнфреймів.

Проблема синхронізації між різними кешами (як одного, так і множини процесорів) вирішується когерентністю кеша. Існує три варіанти обміну інформацією між кеш-пам'яттю різних рівнів, або, як кажуть, кеш-архітектури: інклюзивна, ексклюзивна та неексклюзивна.

Першим процесором, який вироблявся з кешем L2, став Pentium Pro у 1995 році. Він мав 256 або 512 кбайт кешу другого рівня на кристалі, що давало істотну перевагу над звичайними процесорами Pentium, чий кеш розташовувався на материнській платі. З появою Pentium II у модулі Slot 1 виділена кеш-пам'ять "оселилася" поруч із процесором. Але лише у другого покоління Pentium III для Socket 370 кеш-пам'ять перейшла на кристал процесора. Так триває і донині, але є процесори з невеликою кількістю кешу, а є з більшим. Чи варто витрачати гроші на модель із великим кешем? У минулому додаткова кеш-пам'ять не завжди відчутно впливала на продуктивність.

Хоча завжди можна знайти різниці між двома процесорами з різними розмірами кешу, для економії коштів цілком можна було купувати процесори з меншим кешем. Але жоден процесор до появи Core 2 Duo був доступний з трьома різними варіантами кеша.

Pentium 4 у своєму першому поколінні (Willamette, 180 нм) оснащувався 256 кбайт кешу, а успішнішому другому поколінні (Northwood, 130 нм) - вже 512 кбайт кешу. Тоді дешеві процесори Celeron з меншим кешем вироблялися тих самих обчислювальних ядрах. Celeron відносяться до першого покоління продуктів з однією технологічною базою для high-end та дешевих моделей, що відрізняються лише доступним розміром кешу та частотами FSB/ядра. Пізніше було додано і різниця у функціях, щоб помітніше розділити сегменти ринку.

З випуском 90-нм ядра Prescott обсяг кешу L2 виріс до 1 Мбайт, і цей процесор став основою лінійки настільних процесорів Intel до появи 2-Мбайт 65-нм Cedar Mill. Intel навіть використовувала два таких ядра для створення процесорів Pentium D 900 другого покоління. Втім, більш швидкі тактові частоти та більший обсяг кешу навіть тоді не означали дуже багато. Сьогодні ситуація змінилася: краща продуктивність Core 2 Duo (Conroe, 65 нм) та менше енергоспоживання чимало завдячують розміру кешу.

AMD дуже стримано ставилася до збільшення обсягу кешу. Швидше за все це пов'язано з площею кристала (бюджетом транзисторів), оскільки кількість 65-нм процесорів не може задовольнити попит на ринку, а у менш вигідних 90-нм моделей це питання стоїть ще гостріше. У Intel, з іншого боку, є перевага у вигляді виробництва всіх масових процесорів по 65-нм техпроцесу, та й ємність кешу L2 ще зростатиме. Наприклад, наступне покоління Core 2 на 45-нм ядрі Penryn оснащуватиметься до 6 Мбайт кешу L2. Чи можна розглядати це як маркетинговий крок, чи збільшення ємності L2 справді дасть приріст продуктивності? Давайте подивимося.

Великий кеш L2: маркетинг чи зростання продуктивності?

Кеші процесора грають цілком певну роль: вони зменшують кількість звернень до пам'яті, буферизуючи дані, що часто використовуються. Сьогодні ємність ОЗУ становить від 512 Мбайт до 4 Гбайт, а об'єм кешу – від 256 кбайт до 8 Мбайт, залежно від моделі. Втім, навіть невеликого обсягу кешу в 256 або 512 кбайт достатньо, щоб забезпечити високу продуктивність, яку сьогодні сприймають само собою зрозумілою.

Існують різні способи організації ієрархії кешу. У більшості сучасних комп'ютерів встановлені процесори з невеликим кешем першого рівня (L1, до 128 Кбайт), який зазвичай поділяється на кеш даних та кеш інструкцій. Кеш L2 більшого розміру зазвичай використовується для зберігання даних, він є загальним для двох процесорних ядер Core 2 Duo, хоча Athlon 64 X2 або Pentium D мають окремі кеші на ядро. Кеш L2 може працювати ексклюзивно або інклюзивно, тобто він може або зберігати копію вмісту L1 кешу, або ні. AMD незабаром представить процесори з третім рівнем кешу, який буде загальним для чотирьох ядер у процесорах AMD Phenom. Те саме очікується і для архітектури Nehalem, яку Intel представить у 2008 році на заміну поточним Core 2.

Кеш L1 завжди був у складі процесора, але спочатку кеш L2 встановлювався на материнські плати, як було у випадку багатьох комп'ютерів 486DX та Pentium. Для кеш-пам'яті першого рівня використовувалися прості чіпи статичної пам'яті (SRAM, Static RAM). Вони незабаром були замінені на конвеєрний пакетний кеш (pipelined burst cache) у процесорів Pentium, поки не з'явилася можливість встановлювати кеш на кристал. Pentium Pro на 150 – 200 МГц став першим процесором, що містить 256 кбайт кеш-пам'яті L2 на кристалі, побивши рекорд за розміром керамічної упаковки для настільних ПК та робочих станцій. Pentium III для Socket 370, що працює на частотах від 500 МГц до 1,13 ГГц, став першим процесором з 256 кбайт кеш-пам'яті на кристалі L2, що давало перевагу зниження затримок, оскільки кеш працює на частоті CPU.

Вбудований кеш L2 дав суттєвий приріст продуктивності практично у будь-яких додатках. Збільшення продуктивності виявилося настільки суттєвим, що поява інтегрованого кеша L2 можна назвати найважливішим фактором продуктивності процесорів x86. Відключення кешу L2 зменшить продуктивність сильніше, ніж відключення другого ядра у двоядерного процесора.

Однак кеш-пам'ять впливає не лише на продуктивність. Вона стала потужним інструментом, що дозволяє створювати різні моделі процесорів для low-end, масового та high-end сегментів, оскільки виробник може гнучко відбирати процесори з відбраковування та тактових частот. Якщо кристалі немає дефектів, можна включити весь кеш L2, та й частоти виходять високі. Якщо ж бажаних тактових частот досягти не вдасться, кристал може стати моделлю початкового рівня в high-end лінійці, наприклад, Core 2 Duo 6000 з 4 Мбайт кешу і низькими частотами. Якщо дефекти присутні в кеші L2, то виробник має можливість відключити його частину і створити модель початкового рівня з меншим об'ємом кешу, наприклад, Core 2 Duo E4000 з 2 Мбайт кешу L2 або навіть Pentium Dual Core лише з 1 Мбайт кешу. Все це справді так, але питання полягає в наступному: наскільки різниця в обсязі кешу впливає на продуктивність?



ЗМІСТ

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

Розрізняють кеш пам'ять 1-, 2- та 3-го рівнів (маркуються L1, L2і L3).

Кеш пам'ять першого рівня (L1)- Найшвидший, але за обсягом менший, ніж у інших. З ним працює ядро ​​процесора. Кеш пам'ять 1-го рівня має найменшу латентність (час доступу).
Кеш пам'ять другого рівня (L2)- Об'єм цієї пам'яті значно більше, ніж кеш пам'ять першого рівня.
Кеш пам'ять третього рівня (L3)– кеш пам'ять з більшим об'ємом та повільніший ніж L2.

У традиційному варіанті існувало два рівні кеш-пам'яті - перший і другий рівень. Третій рівень по організації відрізняється від кеш пам'яті другого рівня. Якщо дані не оброблялися або процесор повинен обробити термінові дані, для звільнення кеш пам'ять 2-го рівня дані переміщаються в кеш пам'ять 3-го рівня. Кеш пам'ять L3 більше за розміром, однак, і повільніше, ніж L2 (шина між L2 і L3 більш вузька, ніж шина між L1 і L2), але все ж таки його швидкість, набагато вище швидкість системної пам'яті.

У кеш пам'ять другого рівня спочатку передаються всі дані, для обробки центральним процесором, дані частково декодуються і переходять далі в ядро.

У кеш пам'ять 2-го рівня даних будуються ланцюжок інструкцій, а кеші 1-го рівня «дзеркально» будуються внутрішні команди процесора, які враховують особливості процесора, регістри тощо. Число внутрішніх команд центрального процесора не дуже багато тому величина кеша 1-го рівня не має великого значення (у сучасних процесорах кеш пам'ять 1-го рівня L1 може бути з 64 Кб, 128Кб на кожне з ядер). На відміну від кеш пам'яті 1-го рівня, кеш пам'ять 2-го рівня для процесора має величезне значення, саме тому процесори з найбільшим обсягом кеша 2-го рівня показують високу продуктивність.

У організації структури Кеш пам'яті для процесорів є відмінності. Наприклад, процесори AMD чітко розділені між ядрами кеш пам'яті, і маркуються відповідно - 512х2 ( Athlon 5200і нижче) або 1024х2 (у Athlon 5200і вище). А у процесорів Intel Core2Duoкеш строго не поділений, а значить для кожного з ядер можна використовувати необхідну кількість пам'яті загального кешу, це добре підходить для систем, що не підтримують багатоядерність. Якщо використовувати всі ядра, кеш пам'ять поділяється на кожне ядер динамічно, залежно від навантаження кожного з ядер.

Всім користувачам добре відомі такі елементи комп'ютера, як процесор, що відповідає за обробку даних, а також оперативна пам'ять (ОЗУ або RAM), що відповідає за їхнє зберігання. Але далеко не всі, напевно, знають, що існує і кеш-пам'ять процесора (Cache CPU), тобто оперативна пам'ять самого процесора (так звана супероперативна пам'ять).

У чому полягає причина, яка спонукала розробників комп'ютерів використовувати спеціальну пам'ять для процесора? Чи можливостей ОЗУ для комп'ютера недостатньо?

Дійсно, довгий час персональні комп'ютери обходилися без кеш-пам'яті. Але, як відомо, процесор – це найшвидший пристрій персонального комп'ютера і його швидкість зростала з кожним новим поколінням CPU. Нині його швидкість вимірюється мільярдами операцій на секунду. У той самий час стандартна оперативна пам'ять менш значно збільшила свою швидкодію під час своєї еволюції.

Взагалі, існують дві основні технології мікросхем пам'яті – статична пам'ять та динамічна пам'ять. Не заглиблюючись у подробиці їх устрою, скажемо лише, що статична пам'ять, на відміну динамічної, вимагає регенерації; крім того, у статичній пам'яті для одного біта інформації використовується 4-8 транзисторів, у той час як у динамічній – 1-2 транзистори. Відповідно динамічна пам'ять набагато дешевша статичної, але в той же час і набагато повільніша. Нині мікросхеми ОЗУ виготовляються з урахуванням динамічної пам'яті.

Приблизна еволюція співвідношення швидкості роботи процесорів та ОЗП:

Таким чином, якби процесор брав весь час інформацію з оперативної пам'яті, то йому довелося б чекати повільну динамічну пам'ять, і він весь час простоював. У тому випадку, якби як ОЗУ використовувалася статична пам'ять, то вартість комп'ютера зросла б у кілька разів.

Саме тому було розроблено розумний компроміс. Основна частина ОЗП так і залишилася динамічною, тоді як у процесора з'явилася своя швидка кеш-пам'ять, заснована на мікросхем статичної пам'яті. Її обсяг порівняно невеликий – наприклад, обсяг кеш-пам'яті другого рівня становить лише кілька мегабайт. Втім, тут варто згадати, що вся оперативна пам'ять перших комп'ютерів IBM PC становила менше 1 МБ.

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

Історія кеш-пам'яті

До того, як кеш-пам'ять перебралася на персоналки, вона вже кілька десятиліть успішно використовувалася в суперкомп'ютерах.

Вперше кеш-пам'ять обсягом всього 16 КБ з'явилася в ПК на базі процесора i80386. Сьогодні сучасні процесори використовують різні рівні кешу, від першого (найшвидший кеш найменшого обсягу – зазвичай, 128 КБ) до третього (найповільніший кеш найбільшого обсягу – до десятків МБ).

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

Довгий час у процесорах існувало лише два рівні кешу, але в CPU Intel Itanium вперше з'явилася кеш-пам'ять третього рівня, загальна для всіх ядер процесора. Існують і розробки процесорів із чотирирівневим кешем.

Архітектури та принципи роботи кешу

На сьогоднішній день відомі два основні типи організації кеш-пам'яті, які беруть свій початок від перших теоретичних розробок у галузі кібернетики – принстонська та гарвардська архітектури. Принстонська архітектура має на увазі єдине місце пам'яті для зберігання даних і команд, а гарвардська - роздільне. Більшість процесорів персональних комп'ютерів лінійки x86 використовують окремий тип кеш-пам'яті. Крім того, у сучасних процесорах з'явився також третій тип кеш-пам'яті – так званий буфер асоціативної трансляції, призначений для прискорення перетворення адрес віртуальної пам'яті операційної системи на адреси фізичної пам'яті.

Спрощено схему взаємодії кеш-пам'яті та процесора можна описати так. Спочатку відбувається перевірка наявності потрібної процесору інформації в найшвидшому – кеші першого рівня, потім – у кеші другого рівня, і.т.д. Якщо ж потрібної інформації в якомусь рівні кешу не виявилося, то говорять про помилку, або промах кеша. Якщо інформації в кеші немає взагалі, то процесору доводиться брати її із ОЗУ або навіть із зовнішньої пам'яті (з жорсткого диска).

Порядок пошуку процесором інформації у пам'яті:

Саме таким чином процесор здійснює пошук інформації

Для керування роботою кеш-пам'яті та її взаємодії з обчислювальними блоками процесора, а також ОЗУ існує спеціальний контролер.

Схема організації взаємодії ядра процесора, кешу та ОЗП:

Кеш-контролер є ключовим елементом зв'язку процесора, ОЗУ та Кеш-пам'яті

Слід зазначити, що кешування даних – це складний процес, у ході якого використовують безліч технологій і математичних алгоритмів. Серед базових понять, що застосовуються під час кешування, можна виділити методи запису кешу та архітектуру асоціативності кеш-пам'яті.

Методи запису кешу

Існує два основних методи запису інформації в кеш-пам'ять:

  1. Метод write-back (зворотний запис) - запис даних проводиться спочатку в кеш, а потім, при настанні певних умов, та в ОЗУ.
  2. Метод write-through (наскрізний запис) - запис даних проводиться одночасно в ОЗУ та в кеш.

Архітектура асоціативності кеш-пам'яті

Архітектура асоціативності кеша визначає спосіб, з якого дані з ОЗУ відображаються в кеші. Існують такі основні варіанти архітектури асоціативності кешування:

  1. Кеш із прямим відображенням – певна ділянка кешу відповідає за певну ділянку ОЗУ
  2. Повністю асоціативний кеш – будь-яка ділянка кешу може асоціюватись з будь-якою ділянкою ОЗУ
  3. Змішаний кеш (набірно-асоціативний)

На різних рівнях кешу зазвичай можна використовувати різні архітектури асоціативності кеша. Кешування з прямим відображенням ОЗУ є найшвидшим варіантом кешування, тому ця архітектура зазвичай використовується для великих кешів. У свою чергу, повністю асоціативний кеш має меншу кількість помилок кешування (промахів).

Висновок

У цій статті ви познайомилися з поняттям кеш-пам'яті, архітектурою кеш-пам'яті та методами кешування, дізнались, як вона впливає на продуктивність сучасного комп'ютера. Наявність кеш-пам'яті дозволяє значно оптимізувати роботу процесора, зменшити час його простою, а отже, і збільшити швидкодію всієї системи.