A modern CPU-k hihetetlenül gyorsan működnek; jelentősen felülmúlhatják a rendszer RAM-át. A CPU és a memória közötti sebesség-kiegyensúlyozatlanság miatt a processzor gyakran tétlenül vár, hogy adatokat küldjenek neki, hogy folytathassa a folyamatot. Ennek elkerülése érdekében, hogy a CPU-k továbbra is gyorsabban és gyorsabban futhassanak, CPU-gyorsítótárat használnak.
Hogyan gyorsítja a CPU gyorsítótár a CPU-t?
A CPU gyorsítótárat úgy tervezték, hogy a lehető leggyorsabb legyen, és a CPU által kért adatokat tárolja. A CPU gyorsítótár sebességét háromféleképpen optimalizálták: késleltetés, sávszélesség és közelség. A CPU gyorsítótár nagyon alacsony késleltetéssel működik, minimálisra csökkentve az eredmény visszaküldéséhez szükséges időt. Például az Intel i9-9900k gyorsítótár késleltetése 0,8, 2,4 és 11,1 nanoszekundum az L1, L2 és L3 gyorsítótár esetében. Ehhez képest a modern nagy sebességű RAM késleltetése 14 nanoszekundum nagyságrendű.
Tipp: A gyorsítótár szintjeit később részletesebben magyarázzuk el, de egyszerűen fogalmazva, a gyorsítótár alsó rétegei gyorsabbak, de drágábbak, így kisebb a kapacitásuk. A nanoszekundum a másodperc milliárdod része, tehát a 0,8 másodperces késleltetés azt jelenti, hogy kevesebb, mint egy milliárdod másodpercre van szükség az eredmény visszaadásához.
Ami a sávszélességet illeti, a CPU gyorsítótár jelentős teljesítménynövekedést kínál a hagyományos tárhelyhez és RAM-hoz képest. Az L1 és L3 gyorsítótár olvasási sebessége 2,3 TB/s, illetve 370 GB/s lehet, míg a RAM sávszélessége jellemzően 40 GB/s körül mozog. Ez a megnövekedett sávszélesség azt jelenti, hogy a CPU gyorsítótár sokkal gyorsabban tud adatokat továbbítani a CPU-nak, mint a RAM.
A lehető legnagyobb sebesség elérése érdekében a CPU gyorsítótár valójában magába a CPU tömb szilíciumába van beépítve. Ez minimalizálja azt a távolságot, amelyet az elektromos jeleknek meg kell tenniük, így a késleltetés a lehető legalacsonyabb szinten marad. Például amikor az L3 gyorsítótárat először helyezték át az alaplapról a CPU-be, az akkori processzor (Pentium 4 EE) 10-20%-os teljesítményjavulást tudott elérni.
CPU gyorsítótár architektúra
A modern CPU-k általában három rétegű, L1-3 címkével ellátott CPU-gyorsítótárat használnak, az alacsonyabb számú gyorsítótárak pedig közelebb vannak a CPU-magokhoz, gyorsabbak és drágábbak. A többmagos CPU minden egyes CPU magja saját L1 gyorsítótárral rendelkezik. Általában két részre oszlik, az L1I-re és az L1D-re. Az L1I a CPU utasításainak gyorsítótárazására, míg az L1D azon adatok gyorsítótárazására szolgál, amelyeken ezeket az utasításokat végre kell hajtani.
Mindegyik CPU magnak jellemzően saját L2 gyorsítótára is van egy modern CPU-n. Az L2 gyorsítótár nagyobb és lassabb, mint az L1 gyorsítótár, és elsősorban olyan adatok tárolására szolgál, amelyek egyébként nem férnének el az L2 gyorsítótárban. A dedikált L2 gyorsítótárral magonként elkerülhető a gyorsítótár-verseny. A gyorsítótár-versenyben a különböző magok küzdenek azért, hogy gyorsítótárterületet igényeljenek saját munkaterheléseikhez, ami a fontos adatok törléséhez vezethet a gyorsítótárból.
Az L3 gyorsítótár általában meg van osztva a processzor összes CPU magja között. Az L3 gyorsítótár lassabb, mint az L2 gyorsítótár, de olcsóbb és nagyobb. A megosztott gyorsítótár biztosításával csökkenthető a megkettőzött adatok mennyisége a magonkénti gyorsítótár alacsonyabb szintjén.
Tipp: Például a gyorsítótár méretében az Intel i9-9900K 64 KB L1 és 256 KB L2 gyorsítótárral rendelkezik magonként (összesen 512 KB L1 és 2 MB L2), emellett 16 MB megosztott L3 gyorsítótárral is rendelkezik.
Hogyan használják a CPU gyorsítótárat?
A CPU gyorsítótárának minden szintjét a processzor teljesítményének felgyorsítására használják az adatok gyorsítótárazásával a RAM-ból. Amikor egy CPU adatokat kér, általában először a gyorsítótár rétegeiben keres, hogy a lehető leggyorsabban megkapja az adatokat. Ha az adatok a gyorsítótárban találhatók, akkor a CPU folytathatja a feldolgozást. Ha az adatok nincsenek a gyorsítótárban, az úgynevezett cache miss-ben, akkor a CPU-nak ellenőriznie kell a RAM-ot, majd a merevlemezt, ha az adatok nincsenek ott. A maximális teljesítmény érdekében először mindig a gyorsabb rétegeket ellenőrzik.
Annak érdekében, hogy a CPU-nak a szükséges adatok a gyorsítótárban legyenek, amikor szüksége van rá, a gyorsítótár megpróbálja megelőzni, hogy a CPU-nak milyen adatokra lehet szüksége legközelebb. Például, ha a CPU kért néhány adatot egy képhez, akkor a gyorsítótár renderelője megpróbálhatja előre gyorsítótárba helyezni a képadatok nagyobb részét, hogy azokat a lehető leggyorsabban be lehessen táplálni a CPU-ba.