Malá exkurze do nitra architektury K10

Nových Opteronů, prvních procesorů AMD s architekturou K10, známých jako Barcelona, se dočkáme už 10. září.

Nová architektura AMD K10 je pokračováním předchozí 64bitové architektury s integrovaným paměťovým řadičem AMD K8, kterou známe z procesorů Athlon 64 a Sempron. Dlouho očekávané nové jádro pro serverové procesory Opteron je známé pod kódovým označením Barcelona, pro stolní počítače přijde jádro Phenom. Následovat bude ještě řada dalších jader postavených na architektuře K10.

Podíváme se na některé zajímavé změny, které s sebou nová architektura přináší.

1.jpg

2.jpg

Šířka instrukční L1 cache se od architektury K8 zdvojnásobila na 256bitů (32B). Technologie Wide floating-point accelerator ve zkratce znamená oproti architektuře K8 dvojnásobnou, tedy 128bitovou šířku datových cest pro výpočty s plovoucí desetinnou čárkou, takže delší 128bitové instrukce již není nutné dělit na dvě 64bitové operace, jako tomu bylo v případě K8. Přibyly i 128 bitové SEE instrukce a instrukční soubor. Vylepšeno je i předpovídání větvení (branch prediction), díky čemu by měly programy napsané ve vysokoúrovňovém objektově orientovaném kódu běžet mnohem rychleji. Pokud vás zajímá, co všechno se změnilo z programátorského hlediska, doporučujeme prostudovat anglický článek zveřejněný na serveru X-bit Laboratories, kde tuto problematiku probírají podrobněji.

Každé jádro má mít vlastní L2 cache o velikosti 512 kB (u pozdějších modelů i 1 024 kB). Oproti sdílené L2 cache to má své výhody i nevýhody. Výhodou je, že se vytížená jádra procesorů nemusí o cache přetahovat a nedochází ke konfiktům, jako v případě Core 2 Duo, nevýhodou ale je, že v případě, že některé z jader L2 cache nevyužívá, nemůže ji přenechat k dispozici těm ostatním.

Oproti předcházejícím generacím procesorů navíc přibyla sdílená L3 cache o velikosti 2 MB, která může být dále zvětšena. Například pro 45nm výrobní proces už se uvažuje o velikosti až 6 MB. Vyrovnávací paměť třetí úrovně slouží ke sdílení dat mezi jednotlivými jádry a k výměně dat mezi L2 cache jednotlivých jader. Jakmile si jedno z jader vyžádá data od jiného, příslušné jádro zkopíruje modifikovaná data do L3 cache, ze které je možné je přečíst rychleji, než při přenosu přes paměťovou sběrnici. Latence L3 cache bude určitě větší než u L2 cache, a má se měnit v závislosti na zatížení procesoru. V případě, že zátěž nebude příliš vysoká, by měla být nižší, a při vytížení procesoru poroste. Zatím není jasné, jak se to má s frekvencí L3 cache v případě, neboť jednotlivá jádra mohou běžet na různých frekvencích, jak se dočtete dále.

Rozdíly mezi používanými zapojeními L1, L2 a L3 cache u dvou a čtyřjádrových procesorů AMD a Intel jsou zřejmé z následujícíh schémat.

Starší dvoujádrová Pentia postavená na architektuře Netburst vznikla umístěním dvou jednojádrových procesorů do jediné patice. Obě jádra spolu komunikovala přes pomalou sběrnici. Současné dvoujádrové procesory AMD Athlon 64 X2 a Opterony fungují podobně. 

S architekturou Intel Core přišla sdílená L2 cache.

sch1.png

Podobně jako v případě dvoujádrových Pentií se u čtyřjádrových Core 2 Quad a Core 2 Extreme QX využívá spojení dvou tentokrát už dvoujádrových procesorů v jedné patici. Jádra spolu opět musí komunikovat přes pomalou systémovou sběrnici. 

sch2.png

Dvoujádrové procesory postavené na architektuře K10 mají sdílenou vyrovnávací paměť podobně, jako dvoujádrové Core 2 Duo, navíc má ale každé jádro k dispozici vlastní 512kB L2 cache.

sch3.png

U čtyřjádrových procesorů, které AMD označuje jako nativní, neboť nejsou „slepené“ ze dvou nezávislých procesorů, jsou pak spolu všechna jádra na jediném kousku křemíku a krom 512kB L2 cache pro každé jádro sdílejí taktéž společnou L3 cache. Vzájemná komunikace mezi jádry nemusí probíhat přes systémovou sběrnici.

sch4.png

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,