Pozor na zvýšené procesorové nároky Windows 8.1 x64
Potřeboval jsem zkrátka rozběhat pár testů pro srovnání na starším počítači s Pentiem 4 630. To je procesor, který má Hyper-Threading, takže se tváří jako dva logické CPU. Má také x64 rozšíření, stejně tak má PAE i NX bit a samozřejmě SSE2 (má i SSE3). Splňuje tedy všechny předpoklady pro běh Windows 8 tak, jak to Microsoft svého času definoval, přičemž tuto definici ponechal i v základním přehledu pro Windows 8.1.
Samozřejmě jednou z podmínek, aby tyto věci běhaly, je i podpora na straně BIOSu. Ta tam skutečně je, sestava je originál HP Compaq dx6120 (čipset Intel 915G, osadil jsem ji 2,5 GiB RAM), flashnul jsem do ní poslední BIOS (1.09A) a zapnul v něm podporu Data Executiion Prevention (ta je u řady dx6100 s čipsetem Intel 915 standardně vypnutá).
Abych konečně přešel k jádru pudla: na tomto počítači mi v pohodě běhá Windows 8.1 v x86 verzi, ale odmítá se rozběhnout x64 verze. Rád bych zmínil, že jsem systém na daný počítač neinstaloval, prostě jsem si přinesl hotovou instalaci na flešce v režimu Windows To Go.
Vtip je i v tom, jak se chyba projevuje. Není to takové to klasické „nemáte 64bitový procesor“ (0xC000035A), jako se to objevuje např. na ASUS Transformer Booku s procesorem Atom z rodiny Bay Trail, kde se ASUS rozhodl zmršit firmware tak, že jinou než 32bitovou binárku nenabootuje (a ta pak omezuje spouštěný operační systém tak, že ten skutečně x64 rozšíření procesoru nevidí, přestože ho procesor má).
Namísto toho dostávám chybu typickou pro symptom „nepodporovaný procesor“ alias „chybí podpora nějakých instrukcí“, zkrátka chybu 0x5D. K té jsem navíc schopen se dostat jen přes upřesněné spuštění volbou Debug. Standardně se totiž objeví modrá chyba 0x1 pojednávající o tom, že se prostě nepodařilo počítač spustit.
Přiznám se, že jsem o zvýšených nárocích na procesor pro x64 verzi Windows 8.1 nevěděl. Je mi jasné, že s tímhle se běžný smrtelník běžně nesetká, přesto je snazší setkat se s tímto problémem než s problémem, že máte x64 procesor, ale nerozběháte na něm ani Windows 8 kvůli absenci podpory některých instrukcí. Microsoft totiž pro Windows 8.1 x64 zpřísnil požadavky tak, že se vám, stejně jako mě, může stát, že máte x64 procesor, na kterém v pohodě běží 32bitová verze operačního systému, ale 64bitová nikoli. Konkrétní požadavky jsou uvedeny na výše zmíněné stránce (Požadavky na systém Windows 8), avšak o něco níže v detailech:
Právě v tom je zakopán pes. Procesor Intel Pentium 4 630 tyto instrukce nemá. Přesněji řečeno nemá je všechny (má jen CMPXCHG16b, další dvě nikoli).
Bohužel takových procesorů je vícero a nejsmutnější na tom je, že jsem nenašel nikde žádný seznam, kde by byly vyjmenované. Prý se to týká některých prvních procesorů z rodiny AMD K8, u počítačů s procesory Core 2 (Duo/Quad) a některými čipsety (P35) můžete občas narazit na situaci, kdy procesor sice umí všechno, ale BIOS podporu nepřiznává, takže bude potřeba upgradovat, je-li to možné.
Pokud už narazíte na situaci jako já, pak na takových sestavách můžete z x64 Windows provozovat nejvýše Windows 8. Windows 8.1 jedině v 32bitové verzi. Věřím, že takových případů bude minimum, ale kdyby se náhodou objevily, víte, čím to je.
Jak si ověřit, zda zrovna váš procesor tyto požadavky splňuje?
Jsou dvě možnosti. Ta jednodušší je stáhnout si Pomocníka při upgradu na Windows 8.1, spustit ho v x64 verzi Windows a hned vám řekne, pokud procesor patřičné požadavky nesplňuje.
Druhá je stáhnout a spustit nějaký program, který vám o vašem procesoru řekne vše potřebné. Přímo Microsoft na to má (od kdysi koupeného Marka Russinoviche) program Coreinfo, který vám toho řekne až moc, budete muset hledat sami patřičné informace ve výpisu (spouštějte z příkazové řádky, jinak typicky neuvidíte nic, protože program za sebou zavře okno).
Potřebné věci jsem na obrázku vybarvil. Bledě modrozelenou je samozřejmě vyznačena podpora x64 rozšíření, která je úplným základem pro provoz jakéhokoli x64 systému. Pro Windows 8 (32bit. i 64bit. verzi) je pak nezbytná podpora NX bitu, PAE a SSE2 (vyznačeno žlutě), o čemž byla řeč již dříve.
No, a konečně nové požadavky pro chod Windows 8.1 x64, ty jsou vyznačeny zeleně. Je asi zřejmé, že hvězdičkou je označeno to, co procesor podporuje, pomlčkou to, co nepodporuje. Pokud procesor nepodporuje některou ze zeleně vyznačených věcí, ale zbytek ano, můžete na něm provozovat 32bitovou verzi Windows 8.1. Pokud budete chtít provozovat x64 verzi Windows, pak poslední funkční jsou Windows 8.
Jen připomenu, že pokud někde najdete zmínku o procesoru AMD , který podporuje i PREFETCHW (je to součást instrukční sady 3DNow!). U nových procesorů už AMD 3DNow! nepodporuje, nicméně instrukce PREFETCH a PREFETCHW zachovala.
Na některých prvních AMD64 procesorech (K8) se můžete setkat s absencí podpory CMPXCHG16B. Naopak u prvních EM64T procesorů Intelu (Pentium 4) se můžete setkat s absencí podpory NX bitu, tam nepoběží žádná verze Windows vyšší než Windows 7. Stejně tak se můžete u starších EM64T procesorů Intelu setkat s absencí LAHF-SAHF. Všechno novější by mělo být OK a pokud náhodou není, bývá to problém na straně BIOSu, který je potřeba upgradovat, je-li možnost.
Nakonec pokud by vás zajímalo, proč že jsem to měl potřebu cpát Windows 8.1 na takovouto plečku, pak vězte, že jsem si prostě jen potřeboval srovnat výkon 3GHz Prescotta s novým Atomem Bay Trail. Možná budete výsledky překvapeni. Ale o tom až jindy.