CPU architektury Excavator budou umět AVX2, RdRand a další nové instrukce

12. 10. 2013

Sdílet

 Autor: Redakce

Toho, jak bude vypadat ještě nezveřejněný nebo teprve vyvíjený hardware, se často dá dopátrat z vývojářských programů pro něj určených. Například v kompilátorech se podpora pro nová CPU často objevuje se značným předstihem. Touto cestou nyní vypluly na povrch informace, které budou velmi zajímavé pro příznivce značky AMD. V kódu softwaru GNU binutils se totiž objevila podpora pro architekturu Excavator a ze změn lze vyčíst leccos důležitého.

Patch pochází přímo od AMD a zaslán byl 30. září (septembra). Přidává do binutils první definice architektury Excavator pod označením bdver4 (tedy v návaznosti na bdver1 až bdver3 pro Bulldozer, Piledriver a Steamroller). Nejzásadnější jsou pro nás změny viditelné v souboru opcodes/i386-gen.c, kde patch definuje, která rozšíření instrukční sady Excavator bude podporovat. Oproti Steamrolleru přibyly čtyři položky: CpuAVX2, CpuMovbe, CpuBMI2, CpuRdRnd.

Je tedy zřejmé, že Excavator již bude umět instrukční rozšíření AVX2. To Intel uvedl v procesorech Haswell a jde o 256bitové instrukce typu SIMD pro operace s celočíselnými hodnotami (takže budou mít význam zejména v multimédiích), doplňující dřívější AVX. S Excavatorem se tedy AMD dostane na stejnou úroveň instrukční výbavy.

Architektura AMD Excavator (GNU binutils)

Je nicméně třeba upozornit, že samotná podpora instrukcí nemusí znamenat, že budou mít v praxi výkonnostní přínos. Bulldozer například počítá instrukce AVX jako dvě 128bitové operace a v praxi tedy nedosahuje zrychlení oproti kódu s instrukcemi typu SSE. Stejná situace může být i u Excavatoru: zatím nevíme o tom, že by již měl 256bitové jednotky SIMD. Podpora AVX2 tak bude mít význam hlavně z hlediska kompatibility (podobně jako podpora AVX v Jaguaru).

Kompatibilitu s Haswellem doplňuje i další přídavek, a to instrukce BMI2 (bit manipulation isntructions). Ty se přidají k instrukcím BMI1, které mělo AMD v Piledriveru o rok dříve, než Intel v Haswellu. Instrukci Movbe naopak Excavator přebírá od Atomů a architektury Jaguar – tato operace je užitečná pro konverzi dat z formátu big-endian.

Architektura AMD Excavator (GNU binutils)

Zatímco Movbe a BMI2 příliš důležité nejsou, zajímavé je čtvrté rozšíření, a sice RdRand (RdRnd). Pokud se nemýlím, mělo by znamenat, že Excavator bude mít na čipu jednotku pro generování náhodných čísel s vysokou mírou entropie (tedy nikoliv jen „pseudonáhodných“). To byla jedna z vymožeností architektury Ivy Bridge; význam generátoru spočívá v tom, že produkuje náhodná čísla rychle a ve velkém objemu, zatímco z ostatních zdrojů a „softwarově“ lze entropii vyrábět jen v omezeném množství. Hardwarový generátor je tedy přínosem pro kryptografické úlohy.

 

Nicméně je také třeba připomenout, že v poslední době byl hardwarový generátor náhodných čísel v procesorech Intel terčem kritiky. V praxi totiž nelze zkontrolovat, zda funguje správně a neobsahuje zranitelnosti, včetně záměrně vložených „zadních vrátek“ (vědci dokonce publikovali exploit, kterým by se dala zadní vrátka do generátoru v čipech Ivy Bridge vpravit při výrobě).

Ilustrační foto (Zdroj: Pavel Ševela / Wikimedia Commons)
Ilustrační foto (Zdroj: Pavel Ševela / Wikimedia Commons)

bitcoin_skoleni

Na to, až nějaký ten bagr (Excavator) potkáte v provozu, si ještě dlouho počkáte. Až začátkem příštího roku má přijít na trh APU Kaveri, v kterém bude debutovat ještě předcházející generace jader – architektura Steamroller. Excavator by se měl objevit až v následníku s označením Carrizo. Toto APU se snad objeví v roce 2015 (pokud nedojde k zpoždění) a přinést by již mohlo například také paměti DDR4.

Zdroj: GNU binutils (1, 2)