Hlavní navigace

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

15. 11. 2019

Sdílet

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?
  • Aktualita je stará, nové názory již nelze přidávat.

Byl pro vás článek přínosný?

Autor zprávičky

První linux nainstaloval kolem roku 1994 a u něj zůstal. Později vystudoval fyziku a získal doktorát.