Konečně pročištění architektury procesorů x86? Intel navrhuje legacy-free platformu x86-S

23. 5. 2023

Sdílet

Historický procesor Intel Pentium Autor: Intel
Historický procesor Intel Pentium
Architektura x86-64 letos oslavila 20 let, během nichž stále držela zpětnou kompatibilitu. Intel teď chce část legacy „bagáže“ odstranit, což by mohlo mít pozitiva, ale také rozbije kompatibilitu s některým softwarem.

Mnoho let už se spekuluje nad tím, zda by jednoho dne Intel nemohl zahodit zpětnou kompatibilitu a vytvořit novou verzi procesorů x86 okřesanou o různou „legacy zátěž“. Opět to bylo oživeno diskuzemi okolo procesorů ARM a domnělých či skutečných výhod, které těží z toho, že podobnou „bagáž“ nenesou. Teď Intel přestavil projekt zjednodušené čistě 64bitové architektury x86-S, která by takovou revoluci mohla přinést.

Intel teď vydal dokumenty navrhující architekturu označenou x86-S, což je do budoucna plánovaná revize instrukční sady a platformy procesorů x86, zatím ovšem stále ve fázi navrhování. Nemusí tedy jít o nic definitivního. Ono označení by mělo znamenat „simplified“ čili zjednodušená. Nejde tedy o zcela novou instrukční sadu, ale nějaké změny, které přeruší desetiletí dlouhou kompatibilitu, v ní budou učiněné.

Architektura x86-S by měla být pouze 64bitová, nebo aspoň zčásti. Dnešní procesory x86 jsou sice 64bitové, ale mají zachovanou kompletní kompatibilitu nejen s 32bitovým, ale i 16bitovým režimem. Při spuštění (resetu) nabíhají v 16bitovém režimu a až poté je firmware při zavádění přepíná do 64bitů. Toto by architektura x86-S odstranila, procesory by již nativně pracovaly jen jako 64bitové.

Nešlo by ale o úplnou eliminaci 32bitové kompatibility, jakou provedli výrobci procesorů ARM. Čipy založené na architektuře x86-S by již nebyly schopné provozovat nativně 32bitový operační systém, zůstane ale zachována podpora pro běh 32bitového softwaru v uživatelském prostoru nad 64bitovým systémem. Jde o to, že by úroveň privilegií ring 0 už nebyla pro 32bitový režim dostupná.

Zjednodušené bootování procesoru přímo v 64bitovém režimu Zjednodušené bootování procesoru přímo v 64bitovém režimu (zdroj: Intel)

Kompatibilitu s legacy 32bitovými OS (jako třeba Windows XP nebo ještě staršími systémy) by ovšem mělo být možné realizovat na úrovni virtualizace. Přímo na hardwaru by tedy 32bitový OS nefungoval, ale měl by jít spustit s vhodným hypervizorem, který nekompatibilitu x86-S s původní platformou x86 překlene.

Podle toho, co Intel říká, nicméně budou muset být upravené i 64bitové operační systémy, takže na x86-S nejspíš budou potřeba nové verze Windows a aktualizace Linuxu. I zde ale přinejhorším má pomoci virtualizace, s níž starší 64bitové OS poběží. Naopak se úplně ztratí schopnost provozu jakéhokoli 16bitového kódu přímo na hardwaru. Takovéto aplikace se tedy již budou muset jen a pouze emulovat.

Tyto změny pomohou o něco zjednodušit návrh procesoru a ušetří nějaké tranzistory a teoreticky i spotřebu. Nepůjde asi o příliš velké úspory, ale zjednoduší se velmi náročná validace (ověřování správného fungování) CPU. Také se eliminují některé chyby, které mohou do těchto obskurnějších částí procesorů být zaneseny. Intel podotýká, že tyto legacy režimy a funkcionalita bývají v praxi jen velmi málo využívány mimo onu krátkou dobu při bootování.

Spolu s 16bitovým a 32bitovým režimem Intel navrhuje odstranit další věci. Eliminovány mají být například úrovně privilegií ring 1 a ring 2 (moderním softwarem nepoužívané) a přístup k I/O portům z uživatelského prostoru (ringu 3 – to by znamenalo, že některý software by musel být přepsán na použití MMIO). Také by zřejmě mělo dojít na změny ve zpracování přerušení. V architektuře x86-S by také bylo možné přepnout mezi čtyřúrovňovou a pětiúrovňovou tabulkou stránek bez toho, aby se CPU muselo přepnout do unpaged módu (nyní to nutné je).

Navrhované změny v architektuře x86 S Navrhované změny v architektuře x86-S (zdroj: Intel)

Dříve se při úvahách o eventuálním překopání platformy x86 procesorů předpokládalo, že by Intel mohl zrušit například podporu pro instrukce MMX a x87 (a jejich registry), což by také návrh procesorů zjednodušilo. Tímto by ale přestalo fungovat velké množství zkompilovaných aplikací na úrovni uživatelského prostoru, nejen a úrovni OS. Návrh x86-S snad proto zatím nic takového neobsahuje. Vypadá to, že čistě usermode softwaru by se nemusel dotknout moc, a tudíž by rozbitých starších programů nemuselo být tak moc.

Procesory AMD a Intel retro ilustrace 1600 Historické x86 procesory AMD a Intel (foto: Cnews)

Navrhované změny vypadají méně radikálně, než k čemu přistoupil ARM u architektur ARMv8 a ARMv9, které také začaly tím, že umožnily běh 32bitového softwaru jen v uživatelském prostoru (usermode), ale již ne 32bitových OS, aby pak zcela zpětnou kompatibilitu opustily. Ovšem 64bitová instrukční sada ARM je zcela separátní nová sada proti 32bitové. Naopak u x86 byla 64bitová verze vytvořena jako rozšíření 32bitového režimu, takže pokud by se řezalo hlouběji, vzniknou dalekosáhlé nekompatibility s existujícím i 64bitovým softwarem.

bitcoin_skoleni

Každopádně je tento návrh asi zatím otevřený k diskusi a Intel chce mimo jiného získat nějakou zpětnou vazbu a podněty od uživatelů. Tudíž se finální verze „legacy-free“ architektury x86 nakonec může lišit i v dalších věcech.

Zdroje: Tom's Hardware, Intel (1, 2)