前回拡張命令の説明をしたのは連載25回なので、14年ぶり(!)である……と書いて、この連載がもう10年を軽く超えたことにあらためて気がついた。そりゃ筆者も年をとるわけだ。
それはともかく、今回紹介するのは相次いでインテルが発表したx86(というよりx64)の拡張命令である。具体的にはX86-SとAPX、それとAVX10である。これらについて順に説明していきたい。
16bitモードを廃止して64bitモードに移行する提案「X86-S」
X86-Sは2023年4月に発表された、インテルによる16bitモード廃止に関する提案(Proposal)である。あくまで提案であって、今すぐ具体的に実装するという話ではないのだが、長期的にインテルとしては16bitモードを廃止したい、という意向を示したものだ。
そもそも現状のWindowsの場合、64bit版では16bitバイナリーが一切動作しない。マイクロソフトでは1993年からWindows NT系列向けにNTVDM(NT Virtual DOS Machine)を提供しているが、これを稼働させられるのは32bitのWindowsのみである。
もちろん抜け道というか、なりふり構わなければ方法はあって、旧称VMware Player、今ならVMWare Workstation Playerをインストールし、ここで古い16bit Windows(Windows 95や98など)やMS-DOSを稼働させ、その上で古い16bitバイナリーを稼働させるというのが1つ。もう1つはOTVDMというエミュレーターを利用するという方法である。
ほかにもあるかもしれないが、基本16bit環境をエミュレーターの形で動かすという話で、少なくとも正規にサポートされた方法ではないし、実際よほど古いアプリケーションをどうしても使いたいというニーズを持つユーザー以外は、16bit環境とは無縁の状況になっている。
それにもかかわらず、実はほぼすべてのユーザーが16bit環境を利用しているのである。というのは、80286や80386では8086との互換性を保つために、電源投入時にはまず16bitモードで立ち上がる仕組みになっており、この仕組みをその後のx86プロセッサーはすべて引き継いだからだ。
80286はIBM-PC/ATで、80386はCOMPAQのDeskPro 386でそれぞれ初採用されたが、当時のOSはMS-DOSであり、どちらのCPUも「高速な8086」として扱われたから、電源を投入したら16bitモードで稼働してくれないとMS-DOSがロードできないことになる。これは当時としては当然の実装なのだが、もうすでに16bit OSなんて影も形もなくなったにも関わらず、ブートの時だけは無駄に16bitモードが動作するという仕組みになっている。
今回の提案はこの無駄な16bitモードでの起動を、最初から64bitモードにしてしまおうというものだ。すでに64bitモードの環境を利用しているユーザーの場合、この影響は一切ない。OSやファームウェア(UEFI)側にはこのX64-Sへの対応作業が必要になるが、アプリケーション稼働には一切関係ないからだ。
問題は32bit OSをまだ利用している場合で、こちらは稼働しなくなってしまう(後述)。まだ32bit OSは出荷されているという状況を考えると、X86-Sを今すぐ実装するのはやや厳しいものがある。
ちなみにこのX86-Sでの変更項目一覧が下の画像だ。16bitモードでの動作を許容していた動作モードをすべて廃止しているし、アドレッシングに関しても16bitモードはすべて廃している。加えて言えば、Intel 8259(IBM-PCで採用された割り込みコントローラー)のサポートも廃されている。
単に16bitモードのアドレッシングを排除するだけでなく、32bitのring 0モードも廃止される。したがって64bit ring 0モードを利用する必要があり、これが32bit OS稼働時のネックとなる(もちろんブートローダーを64bitで記述する必要があるという問題もある)。余談だが“removing APIC support for 8529”は“removing APIC support for 8259”が正しい
これが仮に実装されたとするとどうなるか? というと、すでに64bitのWindowsなりLinuxを利用しているユーザーにはほぼ影響がない。ブートシーケンスが異なるので、古いバージョンのOSは利用できなくなるという問題はあるが、それだけである。
32bit OSのユーザーは? というと、これはブートできなくなる(X86-Sに対応した32bit OSというのは登場しないだろう)から、64bit環境への移行を余儀なくされることになる。そしてなにかの理由でまだ16bit環境を利用しているユーザーは、このX86-Sは利用不可能になるので、X86-S未対応のCPU(とそれが動作するハードウェア環境)をストックしておく必要があるだろう。
※お詫びと訂正:漢字表記に一部誤りがりました。記事を訂正してお詫びします。(2023年8月8日)

この連載の記事
-
第852回
PC
Google最新TPU「Ironwood」は前世代比4.7倍の性能向上かつ160Wの低消費電力で圧倒的省エネを実現 -
第851回
PC
Instinct MI400/MI500登場でAI/HPC向けGPUはどう変わる? CoWoS-L採用の詳細も判明 AMD GPUロードマップ -
第850回
デジタル
Zen 6+Zen 6c、そしてZen 7へ! EPYCは256コアへ向かう AMD CPUロードマップ -
第849回
PC
d-MatrixのAIプロセッサーCorsairはNVIDIA GB200に匹敵する性能を600Wの消費電力で実現 -
第848回
PC
消えたTofinoの残響 Intel IPU E2200がつなぐイーサネットの未来 -
第847回
PC
国産プロセッサーのPEZY-SC4sが消費電力わずか212Wで高効率99.2%を記録! 次世代省電力チップの決定版に王手 -
第846回
PC
Eコア288基の次世代Xeon「Clearwater Forest」に見る効率設計の極意 インテル CPUロードマップ -
第845回
PC
最大256MB共有キャッシュ対応で大規模処理も快適! Cuzcoが実現する高性能・拡張自在なRISC-Vプロセッサーの秘密 -
第844回
PC
耐量子暗号対応でセキュリティ強化! IBMのPower11が叶えた高信頼性と高速AI推論 -
第843回
PC
NVIDIAとインテルの協業発表によりGB10のCPUをx86に置き換えた新世代AIチップが登場する? -
第842回
PC
双方向8Tbps伝送の次世代光インターコネクト! AyarLabsのTeraPHYがもたらす革新的光通信の詳細 - この連載の一覧へ














