Що таке кеш-пам’ять і навіщо ЦП, ГП та іншим типам процесорів він є? Ось усе, що вам потрібно знати.
Швидкі посилання
- Кеш: невелика кількість високошвидкісної пам'яті
- Рівні кеш-пам'яті та ієрархія пам'яті
- Кеш необхідний, але сам по собі не покращує продуктивність
Хоча про кеш говорять не так багато, як про ядра, ОЗП (оперативна пам'ять), або VRAM, ви, мабуть, чули про це раніше, особливо останнім часом. AMD з гордістю рекламує ігрову продуктивність для своїх Процесори Ryzen з 3D V-Cache в результаті використання кешу, а одним із найбільших удосконалень Intel із процесорами Raptor Lake 13-го покоління стало додавання більшої кількості кешу.
Але як кеш може підвищити продуктивність, коли він вимірюється в мегабайтах? Сьогодні навіть найдешевші комплекти оперативної пам’яті мають 16 ГБ, тож як додавання лише кількох додаткових мегабайт кешу може так сильно змінити продуктивність? Ну, кеш не є звичайним типом пам’яті.
Кеш: невелика кількість високошвидкісної пам'яті
Джерело: AMD
Насправді кеш-пам’ять — це нещодавня розробка процесорів, що датується 1990-ми роками, і її винайшли завдяки оперативній пам’яті. Оперативна пам’ять є ключовим компонентом комп’ютерів, який зберігає значну кількість даних, які, як очікується, досить часто знадобляться процесорам (наприклад, центральним і графічним процесорам). Довгий час підвищення продуктивності оперативної пам’яті йшло в ногу з підвищенням продуктивності ЦП, але до 1990-х років це стало очевидно, що оперативна пам'ять не зможе встигати за останніми процесорами. Оперативна пам’ять мала велику ємність, але швидкість передачі надто висока повільний.
Тут на допомогу приходить кеш. Він не такий великий, як оперативна пам’ять, ні фізично, ні за обсягом, але він знаходиться всередині самого процесора і може передавати дані дуже швидко та з дуже низькою затримкою. Поки кеш-пам’ять зберігає дані, які насправді потрібні процесору, це може заощадити час, оскільки запит на ті самі дані в оперативній пам’яті виконується у багато разів повільніше. Це було чудове вирішення проблеми оперативної пам’яті та дозволило розробникам ЦП продовжувати створювати швидші ЦП Розробники оперативної пам’яті продовжують збільшувати ємність оперативної пам’яті, не турбуючись про це продуктивність. Сьогодні кеш-пам’ять є практично в кожному типі процесора.
Можливо, вам буде цікаво, чому кеш-пам’ять такий малий. Ну, здебільшого це пов’язано з простором і грошима. Навіть 32 МБ кеш-пам’яті можуть зайняти досить багато місця на процесорі, а сучасні мікросхеми мають загальну площу приблизно 600 мм2, яку потрібно використовувати з розумом. Це означає, що виділення більшої площі для кешу може коштувати досить дорого ця ситуація насправді погіршується, а не покращується. Останні виробничі процеси призводять до все менших і менших покращень щільності кешу, і TSMC взагалі не вдалося зменшити розмір кешу під час першої ітерації свого 3-нм процесу.
Рівні кеш-пам'яті та ієрархія пам'яті
Джерело: Карлос Карвалью
Винахід кешу означав, що з’явився новий рівень для всіх пристроїв зберігання даних у комп’ютері. Ці шари утворюють так звану ієрархію пам’яті, яку ви можете побачити на зображенні вище та деталях яка пам’ять куди йде в типовій системі в ЦП (хоча інші типи процесорів виглядатимуть дуже подібний). Сьогодні сучасна ієрархія пам’яті включає не лише кеш-пам’ять, оперативну пам’ять і пристрої постійної пам’яті, а й ієрархію пам’яті в самому кеші.
Більшість процесорів мають різні рівні кешу для різних цілей. Перший і найменший рівень кеш-пам’яті – L1, якому надаються окремі ядра для обробки даних, які потрібні негайно. Кеш L1 часто вимірюється в кілобайтах, причому останні процесори Ryzen 7000 мають 64 КБ кешу L1 на ядро. Крім того, сучасний кеш L1 часто поділяють на L1I (для інструкцій) і L1D (для даних).
Далі йде L2, який призначений для групи ядер, а не для окремих. Звичайно, кеш-пам’ять L2 більша за кеш-пам’ять L1, часто на порядок, але набагато більший об’єм і необхідність обслуговування більшої кількості ядер означає, що він повільніший і має вищу затримку. Деякі процесори, зокрема графічні процесори та повільніші процесори, будуть використовувати лише кеш L2.
Наступний крок — L3, який зазвичай використовується всіма ядрами чіпа. Залежно від процесора його розмір може варіюватися від кількох разів більших за L2-кеш до більш ніж на порядок. Це означає, що він навіть повільніший, ніж кеш L2, але все одно перевершує оперативну пам’ять. Крім того, кеш L3 також часто діє як «кеш-жертва», куди потрапляють дані, видалені з кешу L1 і L2. Він може бути вилучений із кешу третього рівня, якщо він непотрібний. Сьогодні кеш L3 особливо важливий для AMD через його технологію мікросхем. Чіпи Ryzen 3D V-Cache містять 64 МБ кешу L3, а RX 7000 Memory Cache Dies (або MCD) містять 16 МБ кешу L3 кожен.
Найвищий рівень кеш-пам’яті, який можна побачити на більшості процесорів, – L4, який часто настільки великий, що фактично є оперативною пам’яттю. Насправді, найновіші процесори, які використовують кеш-пам’ять L4, — це чіпи Intel Sapphire Rapids Xeon, які використовують HBM2 як кеш-пам’ять L4 у топових моделях. AMD, з іншого боку, ніколи не використовувала кеш-пам’ять L4 і замість цього задоволена збільшенням кешу L3 до високої ємності, додавши більше чіплетів CPU та V-Cache. Кеш-пам’ять L4 зазвичай приносить більше переваг інтегрованим графічним процесорам, оскільки це вбудоване рішення, яке може обмінюватися даними між ЦП та інтегрованим графічним процесором.
У деяких чіпсетах, в першу чергу мобільних, існує ще один тип кеша: системний кеш (SLC). Потім цей кеш використовується для всього чіпсета, наприклад GPU, NPU і CPU. Кеш може замінити потребу в запитах до основної пам’яті, тому SLC приносить користь усьому SoC.
Кеш необхідний, але сам по собі не покращує продуктивність
Незважаючи на весь ажіотаж навколо нещодавніх інновацій у кеш-пам’яті, це не ідеальний засіб для підвищення продуктивності. Зрештою, у кеші немає можливості обробки; він просто зберігає дані, і все. Хоча кожен процесор може виграти від збільшення кеш-пам’яті, часто надто дорого додавати більше, ніж потрібно. Додавання додаткового кешу може навіть не підвищити продуктивність залежно від робочого навантаження, що є додатковим стимулом не навантажувати процесор.
З огляду на це, можливість додати великий обсяг кешу може бути бажаною в певних ситуаціях. Процесори з великою кількістю кешу, як правило, працюють краще в іграх, наприклад. Процесори AMD Ryzen із 3D V-Cache досить швидкі для ігор, незважаючи на нижчу частоту, ніж мікросхеми без V-Cache, і Процесори Intel 13-го покоління значно швидші, ніж чіпи 12-го покоління, і єдиним значним покращенням є збільшена кеш.
Зрештою, кеш-пам’ять існує, щоб процесори могли обходити оперативну пам’ять якомога частіше, а продуктивність може бути максимально необмеженою. Розробникам процесорів доводиться збалансувати ємність кешу з розміром і, як наслідок, вартістю, що стає все складніше з кожним поколінням нових виробничих процесів. Навіть незважаючи на те, що нові способи додавання кешу в процесори впроваджуються через десятиліття після винаходу кешу, важко уявити, що призначення цього ключового компонента процесорів коли-небудь зміниться.