Už je to přes dva týdny, co Intel zavelel zastavit distribuci aktualizací mikrokódu CPU, které se měly stát součástí obrany proti chybě Spectre. Jak už je asi široce známo, byly u nich hlášeny problémy s náhodnými restarty a potenciálně snad i obecnou nestabilitou systému. Nyní máme k tomuto problému nějaké nové informace.
Už v lednu Intel hlásil, že nalezl příčinu, která v aktualizaci mikrokódu způsobovala ony chyby, nebylo ale jasné, jak dlouho řešení potrvá. Nyní hlásí, že oprava zřejmě prošla alespoň rychlými testy (mnoho dní od té doby neuplynulo) a v tuto chvíli už je dostupná finální „produkční“ verze nového mikrokódu pro část procesorů. To ještě neznamená okamžitou dostupnost pro uživatele, neboť nejprve budou muset mikrokód začlenit výrobci desek nebo PC do svých vlastních firmwarů a až tyto aktualizace se dostanou k nám. Nicméně na cestě už jsou.
Ona finální (zatím) oprava je takto hotová zatím pro procesory s architekturou Skylake, tedy generaci „6000“. Vývoj oprav pro Kabylake, Coffee Lake a starší CPU je zatím stále ve stádiu „beta“ nebo ještě ranějším, takže dostupnost na těchto platformách bude trvat déle. V betě je zatím také serverová verze Skylake – jak velké Xeony Platinum/Gold/atd, Xeony W, tak právě vydané Xeony D-2100. A také desktopové Skylake-X. V informacích od Intelu se mluví o tom, že by další platformy měly následovat „v nadcházejících dnech“, takže čekání by snad nemělo být příliš dlouhé. Kromě Skylake je jinak finální oprava zdá se dostupná ještě pro Atomová jádra Silvermont, Airmont, Goldmont a Goldmont+ a různé čipy na nich založené.
Intel zaktualizuje i stará CPU. Skoro všechna, na nichž ještě záleží
K těmto aktualizacím máme jinak ještě jednu dobrou zprávu. Intel zdá se chce mikrokódy sloužící k obraně před chybou Spectre vydat pro velkou množinu starších CPU, ačkoliv chvílemi to vypadalo, že štěstí asi budou mít jen architektury Haswel a novější, nebo maximálně Ivy Bridge a Sandy Bridge. Podle dokumentu, v kterém Intel uvádí status oprav a aktualizací, to ale skončí o dost lépe. Podle tabulek má Intel aktualizaci pro mikrokód již v přípravě pro Ivy Bridge a Sandy Bridge, kde se jedná o rané stádium před beta verzí („pre-beta“). Ovšem Intel v tabulce uvádí, že oprava se snad poté chystá i pro předchozí architektury Nehalem/Westmere/Lynnfield, tedy populární procesory jako Core i7-920 nebo Core i5-750. U těchto je uvedeno „planning“, tedy že na opravě se ještě nepracuje, ale existuje záměr ji vyrobit.
A stejné „planning“ je uvedené dokonce u procesorů Core 2, tedy minimálně u jejich části. Intel uvádí, že aktualizace je plánována pro verze Core 2 (nebo Celeronů, Pentií, Xeonů…) založené na čipech Penryn, Yorkfield, Wolfdale a Harpertown, což jsou 45nm čipy, tedy druhá generace Core 2. Čipy první 65nm generace (Kentsfield, Conroe), kam spadají například velepopulární Core 2 Quad 6600, v seznamu chybí. Možná je to proto, že pocházejí ještě z roku 2006 a Intel mohl zvolit jako „deadline“ rok 2007, tedy dobu deseti let před odhalením chyby.
![45nm Core 2 by zřejmě měla dostat aktualizovaný mikrokód umožňující operačním systémům zapnout ochrany před chybou Spectre](https://i.iinfo.cz/images/176/Intel-aktualizace-mikrokodu-Spectre-Core-2-Penryn-large.png)
Pokud by aktualizace vyšly i pro 65nm Core 2, byla by situace prakticky ideální. Lze asi říci, že Core 2 Duo či od něj odvozené lowendové dvoujádro je dnes stále procesor použitelný na běžné činnosti a naopak, starší CPU (jako Pentium 4) už jaksi spadla pod onu pomyslnou hranici užitečnosti. Zejména v kombinaci s tím, že i počítače s Core 2 se již dnes vyhazují, a tedy by čistě teoreticky mělo být celkem snadné jimi starší PC nahradit. Pokud se aktualizace dostane jen 45nm čipům, bude to škoda, ale stále jde o poměrně dobrou situaci. Doposud jsme nepočítali ani s opravami pro generaci Nehalem, takže ještě Penryn k tomu je příjemné překvapení.
Mikrokódy pro stará CPU by asi musel distribuovat Microsoft
Co zde ovšem vyvolává obavy, je distribuce těchto aktualizací. Obávám se, že u takto starých CPU nebudou výrobci desek ochotní vydávat aktualizované BIOSy desek, kterými by se k nám nový mikrokód mohl dostat (zčásti je to pochopitelné, protože pro řadu z nich už možná dávno neexistuje infrastruktura pro vývoj a testování BIOSů a zaměstnanci, kteří by tyto doby pamatovali, mohli odejít). Možnost instalovat mikrokód jen skrze operační systém mají uživatelé Linuxu, kteří tedy budou v suchu. Bohužel Microsoft aktualizace mikrokódu tímto stylem běžně nedistribuuje. Bylo by skvělé, kdyby v tomto případě udělal výjimku a situaci na platformě Windows zachránil. Zda se na to ale můžeme upínat, to je otázka. Jak jsme psali v článku k chybě Spectre, existuje ovladač pro aktualizaci mikrokódu vyvinutý lidmi z Vmware, jenže ten zřejmě mikrokód nahrává příliš pozdě na to, aby operační systém Windows obranu proti Spectre založenou na dotyčných nových funkcích (IBPB, IBRS, STIBP) aktivoval.
Cannon Lake má skutečně verzi bez GPU. A Spectre
Mimochodem, ve stejném dokumentu se dá nalézt ještě něco pozoruhodného. Seznam procesorů, pro které se chystají aktualizace mikrokódu, totiž obsahuje také čipy Cannon Lake. To znamená, že ani tato architektura zatím nemá chybu Spectre vyřešenou nějakým pokročilejším způsobem. Letos má Intel uvést nějaká CPU s hardwarovými obranami, ale Cannon Lake mezi nimi evidentně není a bude používat stejné techniky pro ochranu jako Skylake, Kaby Lake a Coffee Lake.
Kromě toho také seznam potvrzuje jinou věc. Řádek v tabulce potvrzuje informaci, kterou jsme tu měli na nový rok. Tedy že první 10nm procesor, který Intel koncem roku dostal do výrobyschopného stavu, neměl funkční GPU. To znělo dosti nepravděpodobně, protože čipy Cannon Lake jsou určené pro notebooky (jde o řadu U/Y), kde by bez GPU moc nepochodily. Podle dokumentu Intelu existuje dvoujádrová verze s grafikou GT2 (2+2), ale vedle ní skutečně i varianta 2+0, což se označuje také jako GT0. Přesně takto hovořily i o grafikyprostém Cannon Lake také ony zvěsti z přelomu roku. Zdá se tedy, že měly pravdu a Intel skutečně z nějakého důvodu Cannon Lake bez grafiky validoval. Pravděpodobně proto, aby byl oficiálně nějaký čip dokončen před koncem roku, kdežto s funkčním GPU se to zřejmě nepodařilo.