Hlavní navigace

Chyba v procesorech Intel Skylake a novějších, nový microcode a nové zpomalení

Sdílet

Jan Fikar
Procesor rozbitý Intel

Intel v úterý zveřejnil detaily chyby v procesorech Skylake a novějších JCC Erratum (Jump Conditional Code). Problém je v asemblerových instrukcích podmíněných skoků, které překročí 32bajtovou hranici a zároveň jsou v ICache. Pokud se tak stane, procesor se chová nepředvídatelně. Nejde tedy o bezpečnostní problém, ale bylo by možné takové instrukce zneužít k DoS.

Mezi postižené procesory patří Amber Lake, Cascade Lake, Coffee Lake, Comet Lake, Kaby Lake, Skylake a Whiskey Lake. Intel opravil chybu vydáním nového microcode (pro Skylake 0×02000064, pro Cascade Lake 0×0500002b). Nový microcode nedává skoky do cache, pokud překračují 32bajtovou hranici. To má negativní vliv na výkon, podle Intelu mezi 0 – 4 %. Podle měření Phoronixu je často dopad větší, třeba 9 % pro PHP (opravený as 4 – 5 %) v testu prohlížeče Firefox pak 6 – 7 %.

Výkonnostní propad lze do určité míry kompenzovat opravou assembleru, kdy podmíněné skoky budou zarovnány na 32 bajtů. Napřiklad GNU Assembler již patřičné opravy zařadil. Zapínají se v příkazové řádce parametrem   -mbranches-within-32B-boundaries. Vypadá to, že takové zarovnání nemá negativní vliv na procesory AMD.

(zdroj: phoronix)

Našli jste v článku chybu?
Ochrana proti spamovacím robotům. Odpovězte prosím na následující otázku: Jaký je letos rok?