I když se o mezipaměti (neboli cache) nemluví tolik jako operační paměti nebo videopaměti, určitě jste o ní už slyšeli, ať už v souvislosti s Androidem, nebo třeba počítači. V tomto článku se dozvíte, co to mezipaměť je a k čemu slouží.
Vznik mezipaměti si vynutila RAM
Mezipaměť vznikla v 90. letech minulého století, a to kvůli operační paměti (RAM). RAM je klíčovou součástí počítačů, která ukládá značné množství dat, u nichž se očekává, že je budou procesory celkem často potřebovat. Dlouhou dobu drželo zlepšování výkonu RAM krok se zlepšováním výkonu procesorů, v 90. letech však bylo zřejmé, že RAM nejnovější procesory ve výkonu nedožene. RAM sice měla hodně kapacity, přenosové rychlosti však byly příliš pomalé.
A právě zde přichází na řadu mezipaměť. Není fyzicky ani z hlediska kapacity zdaleka tak velká jako RAM, je však uvnitř samotného procesoru a dokáže přenášet data velmi rychle a s velmi nízkou latencí. Dokud mezipaměť ukládá data, která procesor skutečně potřebuje, může ušetřit čas, protože požadavek RAM na stejná data je mnohokrát pomalejší. Byla skvělým řešením problému s RAM a umožnila návrhářům procesorů pokračovat ve výrobě rychlejších procesorů a návrhářům RAM zase vytvářet větší kapacitu, aniž by se museli tolik starat o výkon. Cache se dnes nachází téměř ve všech typech procesorů, včetně těch mobilních.
Možná se ptáte, proč je cache tak malá. To z větší části souvisí s místem prostorem a náklady. I mezipaměť o velikosti 32 MB může v procesoru zabrat poměrně hodně místa. Moderní procesory jsou z hlediska plochy omezeny přibližně na 600 mm2, takže je třeba s ji využívat. To znamená, že vyhrazení větší oblasti mezipaměti se může prodražit, a tato situace se ve skutečnosti zhoršuje, nikoli zlepšuje. Nejnovější výrobní procesy vedou k menším a menším vylepšením hustoty mezipaměti a polovodičovému obrovi TSMC se v rámci první generace jeho 3nm procesu nepodařilo velikost mezipaměti vůbec zmenšit.
Objev mezipaměti znamenal, že všechna zařízení pro ukládání dat v počítači mají novou vrstvu. Tyto vrstvy tvoří to, čemu se říká hierarchie paměti, a která podrobně popisuje, kam se paměť v typickém systému v rámci procesoru ukládá. Dnešní moderní hierarchie paměti nezahrnuje pouze mezipaměť, RAM a interní úložná zařízení, ale také hierarchii paměti uvnitř samotné mezipaměti.
Úrovně mezipaměti a hierarchie paměti
Většina procesorů má různé úrovně mezipaměti pro různé účely. První a nejmenší úrovní je L1, která dostává jednotlivá jádra pro zpracování dat, jež jsou potřeba okamžitě. Mezipaměť L1 často měří v kilobajtech, přičemž nejnovější procesory řady Ryzen 7000 mají k dispozici 64 KB mezipaměti L1 na jádro. Moderní mezipaměť L1 se navíc často dále dělí na L1I (pro instrukce) a L1D (pro data).
Další úrovní mezipaměti je L2, který je určená spíše pro skupinu jader než pro jednotlivá jádra. Mezipaměť L2 cache je samozřejmě než L1, často o řád, avšak to, že je větší a že musí obsluhovat více jader, znamená, že je pomalejší a má vyšší latenci. Některé procesory, například ty pomalejší nebo ty v grafických kartách, končí na této úrovni mezipaměti.
Pak je tu mezipaměť L3, kterou obecně používají všechna procesorová jádra. V závislosti na procesoru může být až o řád větší než mezipaměť L2. To znamená, že je ještě pomalejší než mezipaměť L2, stále je však rychlejší než RAM.
Nejvyšší úroveň mezipaměti je L4, která je často tak velká, že je to v podstatě RAM. Využívají ji nejnovější procesory Intelu Sapphire Rapids Xeon. AMD mezipaměť čtvrté úrovně ve svých procesorech nikdy nepoužívalo a místo toho se spokojilo s rozšiřováním své mezipaměti L3 (pomocí dalších čipletů procesoru a technologie V-Cache). Z mezipaměti L4 obvykle více těží integrované grafické čipy, protože se jedná o tzv. on-die řešení, které může sdílet data mezi CPU a integrovaným GPU.
Zejména v mobilních čipsetech se nachází další typ mezipaměti: SLC neboli mezipaměť na úrovni systému. Tato mezipaměť se používá napříč celou čipovou sadou, jako je procesorová jednotka, grafická jednotka a neurální jednotka. Mezipaměť může nahradit potřebu požadavků na hlavní paměť, takže ze SLC má užitek celý čipset.
Mezipaměť sama výkon zvýšit neumí
Přes veškerý humbuk kolem nedávných inovací v oblasti mezipaměti není mezipaměť univerzálním řešením pro zvýšení výkonu. Koneckonců mezipaměť data nezpracovává, jen je ukládá, nic jiného. I když každý procesor těžit z toho, že má více mezipaměti, je často příliš drahé přidat více, než kolik je přesně potřeba. Přidání další mezipaměti nemusí v závislosti na pracovní zátěži zlepšit výkon vůbec.
Mezipaměť nakonec existuje jen proto, aby procesory mohly obcházet RAM tak často, jak je to jen možné, a výkon byl co nejméně omezený. I když se nové způsoby přidávání mezipaměti do procesorů zavádějí i desítky let poté, co byla mezipaměť vynalezena, je těžké si představit, že se účel této klíčové komponenty procesorů někdy změní.
Super článek, díky!