Přeskočit na obsah
Tech-Blog Chatujme.cz Chatujme.cz
Počítače

Do konference linux-kernel dorazil popis procesoru x86 bez 32bitových režimů

Zpráva ze 7. září popisuje procesor, ve kterém není segmentace, reálný režim ani režim kompatibility. Autor píše, že takový čip se ve velkém používá déle než rok. Jméno výrobce v textu není.

· 18 zhlédnutí

Do e-mailové konference linux-kernel přišla 7. září zpráva s předmětem „x86 evolution for segmentation and paging“. Napsal ji Christian Ludloff, autor stránek sandpile.org, které přes dvacet let vedou technický popis architektury x86. Hned v úvodu stojí věta, kvůli které si textu všimla odborná média: „Byl jsem požádán, abych zdokumentoval chování x86 u implementace jen s PM64 a jen s PML5, s FRED a APX, která se ve velkém používá déle než rok“ (přeloženo).

PM64 je 64bitový chráněný režim, PML5 pětiúrovňové stránkování paměti. Popsaný procesor tedy nemá nic dalšího: žádný reálný režim, žádný 16bitový ani 32bitový chráněný režim a žádný režim kompatibility, ve kterém dnešní 64bitové systémy spouštějí 32bitové programy. Kdo ten čip postavil, zpráva neříká.

Křemíkový čip procesoru Intel 80486DX vyfocený pod mikroskopem
Odkrytý čip procesoru Intel A80486DX-33 pod mikroskopem, u pravého okraje je vyleptané označení 80486. Foto: John McMaster & Digshadow, Wikimedia Commons (CC BY 4.0)

Segmentace zmizela celá

Nejdelší oddíl zprávy se jmenuje Segmentation Extinction a je to výčet toho, co v procesoru není. Zmizely selektory i deskriptory, segmentové registry ES, CS, SS, DS, FS a GS, tabulkové registry GDTR, IDTR, LDTR a TR a s nimi i samotné tabulky GDT, IDT a LDT a struktura TSS. Pryč jsou výjimky #TS a #NP.

Se strukturami padly instrukce, které s nimi pracují: přesuny do segmentových registrů a z nich, PUSH a POP pro FS a GS, dále LSS, LFS a LGS, plnicí LGDT, LIDT, LLDT a LTR i ukládací SGDT, SIDT, SLDT a STR. Skončily také LAR, LSL, VERR a VERW a vzdálené skoky a návraty RETF, IRET a daleké CALL a JMP. Jediný rámec zásobníku, který přežil, je ten od FRED, jen bez položek CS.sel a SS.sel.

Na sandpile.org je to vidět na první pohled. Stránka o segmentových registrech nese oranžovou značku EXTINCT.

FS a GS zůstaly, ale s novým vypínačem

Dva registry z té šestice vyvázly. FS a GS slouží jako ukazatele na data vlákna a na data jádra, takže jejich bázové adresy v registrech MSR i instrukce RDFSBASE a WRFSBASE zůstávají. Přibyl k nim protějšek k dosavadnímu MSR s bází jádra pro GS: nový MSR s bází jádra pro FS na adrese C000_00FFh.

Patří k němu řídicí registr FSGS_CTRL. Čtyři bity v něm určují, jestli se FS a GS prohodí při doručení události z uživatelské úrovně PL3 a při návratu instrukcí ERETU zpátky do PL3. Ve výchozím nastavení se prohazuje GS, FS ne. Další čtyři bity říkají, jak se FS a GS uplatní v režimu jádra a v uživatelském režimu: výchozí volba je „platí ten poslední“, na výběr jsou ještě „platí ten první“, „uplatní se oba“ a „neuplatní se ani jeden“. Instrukce LKGS, kterou Intel přidal současně s FRED, tím ztratila smysl a v popisu není.

Stránkování jen pětiúrovňové a se dvěma novými velikostmi

Dvou-, tří- a čtyřúrovňové stránkování ve zprávě chybí, zbývá PML5. Vedle stránek o 4 KB, 2 MB a 1 GB k němu přibyly dvě velikosti, které dnešní x86 nezná: 512 GB na úrovni PML4E a 256 TB na úrovni PML5E. Ludloff pro ně používá přezdívky half tera a quarter peta.

Druhá novinka je jednodušší. Při vypnutém stránkování, tedy s PG=0, procesor nepřepne do jiného režimu, ale mapuje adresy samy na sebe, takže virtuální adresa se rovná fyzické.

Tady si ale prameny neodpovídají. Zpráva do konference tvrdí, že starší stránkování mizí. Přehled režimů na sandpile.org označuje pětiúrovňové stránkování s pěti velikostmi stránek za výchozí, ale čtyřúrovňové se čtyřmi velikostmi vede jako volitelné. Který z těch dvou zápisů popisuje konkrétní čip, se z textu nedá poznat.

Systémový režim správy a virtualizace jdou jinam

Segmentací a stránkováním zpráva nekončí. Podle Ludloffa je pryč i systémový režim správy SMM, dvojice letitých vad kolem potlačení přerušení a potlačení ladicí výjimky #DB a pevné registry MTRR pro první megabajt paměti. U strojových kontrol a u virtualizace pak stojí věta, která napovídá víc než zbytek textu: „x86 není nic než host běžící na nativním hostiteli, který x86 není“ (přeloženo), takže obojí patří na toho hostitele.

Doporučení na konci jsou čtyři věty. Připravte se na svět jen s PM64 a PML5. Přesuňte svou složitost do softwarové emulace x86. Odmítněte kult x86. A odložte lepicí pásku.

Intel to vzdal, někdo jiný pokračoval

Návrh na x86 bez staré zátěže není nový. Intel zveřejnil první specifikaci x86S v květnu 2023, v červnu 2024 ji povýšil na revizi 1.2 a v prosinci 2024 potvrdil serveru Tom's Hardware, že na ní dál nepracuje. Mluvčí to tehdy odůvodnil vznikem poradní skupiny x86 Ecosystem Advisory Group, ve které vedle Intelu sedí i AMD a Google. Ludloff klade konec x86S do poloviny roku 2024 a dodává, že to bylo předčasné.

S dalšími dvěma zkratkami ze zprávy je to podobné. FRED, tedy pružnější doručování událostí a návrat z nich, má Intel v prvních prodávaných čipech a u AMD se čeká. APX zdvojnásobuje počet obecných registrů z šestnácti na dvaatřicet, specifikace je v revizi 009 z 25. srpna 2026 a ani jeden z obou výrobců ho zatím neprodává. Popsaná implementace má podle Ludloffa obojí uvnitř už teď.

Kdo za tím stojí, se neví

Ludloff jméno neuvádí ani v jedné ze svých čtyř zpráv. Phoronix, který text jako první přebral, nabízí tři možnosti a u všech tří přiznává, že jde o dohad: čínské firmy Zhaoxin a Hygon a startup RosaicLabs, který podle něj dostal přístup k návrhům jader Atom od Intelu.

Zářijový text je v pořadí čtvrtý. Předchozí tři popisují přidělování opkódů, hodnot CPUID a registrů MSR (říjen 2025), rozšíření maticových instrukcí AMX na víc než osm dlaždic (červenec 2026) a prefixy instrukce WBINVD (srpen 2026). Na ten zářijový se do 13. září v archivu konference neobjevila jediná odpověď.

Popis architektury je tedy veřejný celý a Ludloff na konci nabízí, že odpoví na technické dotazy. Chybí u něj jen to, co by z něj dělalo zprávu o výrobku: jméno, čip a datum.

Zdroje

Počítače

Linux procesory x86 Intel

← zpět na výpis