Čilejší cache, původ vyššího IPC Ryzenu 2000, měl částečně i Threadripper
Cache lze v tomto kontextu stručně definovat jako relativně rychlou a relativně malou paměť, která existuje proto, aby rychlé procesorové jádro nemuselo stále čekat na data z pomalé systémové / operační paměti. Aby toto vyrovnávání bylo co nejefektivnější, bývají cache víceúrovňové. Nejblíže procesorovému jádru je nejrychlejší a nejmenší L1 cache, za ní větší a pomalejší L2 a mezi L2 cache a řadičem pamětí může být největší a nejpomalejší L3 cache (teoreticky i L4 cache, L5 cache atd., ale to je mimo náplň článku).
Často se objevuje dotaz, proč není rovnou použita L1 cache o kapacitě L3 cache, čímž by odpadly požadavky na cache nižších úrovní. Ke hlavním důvodům patří vyšší požadavky na plochu křemíku pro rychlejší cache (=vyšší cena) a vyšší energetické nároky rychleji taktované cache (=vyšší spotřeba).
Latence cache, tedy prodleva, která nastává mezi vznesením požadavku na datový přenos a jeho zahájením, je jednou ze základních charakteristik této paměti. Udává se obvykle v taktech či cyklech (cl, clocks), které jsou relativní, protože se vztahují k taktovací frekvenci, případně v časových jednotkách (např. ns). Nakonec lze latenci vyjádřit i v procentech - ovšem tam již záleží, jak si nadefinujeme 100 %. To obvykle záleží na kontextu a na tom, co chceme vyjádřit, vůči čemu srovnáváme.
S jádry Zen+ a procesory Ryzen 2000 se opakovaně zmiňovalo snížení latencí cache a paměťového řadiče. AMD se oproti Zen / Ryzen 1000 podařilo snížit latence pro všechny úrovně cache i řadiče, takže se urychlily datové přenosy na všech stupních mezi procesorovým jádrem a operační pamětí. Ta navíc může běžet na vyšších taktech. O čem se mluví méně, je fakt, že dílčí vylepšení byla přítomna již na procesorech Threadripper. Je známo a AMD se tím netajila, že pro ně používala novější revizi jádra, ale že jedna z hlavních změn spočívala ve snížení latencí L2 cache, při vydání Threadripperu neuvedla.
Ryzen 7 1800X | Ryzen Threadripper | Ryzen G Raven Ridge | Ryzen 7 2700X | |
---|---|---|---|---|
období | Q1 2017 | Q3 2017 | Q4 2017 | Q2 2018 |
jádro | Zen | Zen | Zen+ | Zen+ |
proces | 14nm | 14nm | 14nm+ | 12nm |
L1 | ? cl 1,1 ns | ? | ? | ? cl 0,95 ns (-13 %) |
L2 | 17 cl 4,6 ns | 12 cl | 11 cl (?) | 11 cl 3,0 ns (-34 %) |
L3 | 39 cl 11 ns | ? | ? | 30 cl 9,2 ns (-16 %) |
řadič | ? cl 74 ns | ? | ? | ? cl 66 ns (-11 %) |
RAM | DDR4-2667 | DDR4-2667 | DDR4-2933 | DDR4-2933 |
Protože nejsou známé všechny údaje, zůstávají některé chlívečky vyplněné otazníkem. Údaje v nanosekundách / procentech jsou výsledky konkrétních měření, které reflektují metodiku a takt konkrétního produktu. V tabulce (výše) uvedené údaje pocházejí z měření AMD; paradoxně mnohé recenze naměřily i lepší výsledky - pro ilustraci přikládám výsledky naměřené redakcí ComputerBase:
Latence Ryzen 7 2700X vs. Ryzen 7 1800X | ||
---|---|---|
rozdíl podle AMD | rozdíl podle ComputerBase | |
L1 | -13 % | -11 % |
L2 | -34 % | -50 % |
L3 | -16 % | -25 % |
řadič | -11 % | -11 % |
Zajímavý vývoj proběhl u L2 cache. Původní Ryzen 7 1800X měl nastavených 17 cl, již Threadripper snížil na 12 cl a Ryzen 7 2700X dále snížil na 11 cl. U Raven Ridge není oficiální hodnota známá, ale na základě měření webu Tomshardware si troufám tvrdit, že je to stejný 11 cl jako u Ryzen 7 2700X. Latence naměřená v nanosekundách je totiž nižší než u ThreadRipperu a byť je mírně vyšší než už Ryzenu 7 2700X, je tento drobný rozdíl daný rozdílnými takty.
Už jen jako hrubý odhad berte informaci, že zatímco se u Threadripperu patrně jiné latence než latence L2 cache nesnížily (nebo jen kosmeticky), u Raven Ridge byly sníženy latence i na ostatních úrovních. Jestli byly sníženy stejnou měrou nebo o něco méně než u Ryzen 7 2700X, si netroufám tvrdit, ale dá se říct, že velmi podobnou měrou. Přesto je zjevné, že určitá vylepšení provádí AMD od vydání Ryzenu 7 1800X prakticky kontinuálně a každý novější produkt přinesl určitý posun, i když nebyl ve specifikacích uveden.
AMD, ComputerBase, Tomshardware (1, 2), Anandtech