ニュース

16bit/32bitサポートの“終息”でより高性能なCPUを――Intelが64bitオンリーの「X86-Sアーキテクチャ」の仕様を初公開 意見募集中32bitアプリは64bitモードで動作

Intelが、16bit/32bitサポートを省いた「X86-Sアーキテクチャ」の仕様書の初版を公開した。16bit/32bitサポートを省くことで、CPUの純粋な性能向上にリソースを割くことが主な目的だ。しかし、従来にない大規模な仕様変更となるため、開発者から意見を募集している。

 Intelが、開発者向けサイトにおいて新しいCPUアーキテクチャ「X86-S」の仕様書の初版(リビジョン1.0)を公開した。ハードウェアとソフトウェア(主にUEFIやOS)双方のシンプル化を推進すべく、このアーキテクチャでは16bit/32bitで動作する機能を省略しており、電源が投入された当初から64bitモードで稼働する。

 同社では今後、CPUをX86-Sアーキテクチャに移行する方針を示しており、本アーキテクチャ(仕様書)に対する意見も募集している。


Intelが公開した「X86-S External Architectual Specification」の初版(PDF形式

X86-Sの概要

 Intelは2004年、64bit命令(x64/Intel 64)をサポートするx86 CPUを初めてリリースした(参考記事)。それ以来、64bit命令に対応するCPUのラインアップは広がっていき、現行のx86 CPUで64bit命令に対応“しない”ものは存在しない。

advertisement

 主要な一般PC向けOSでも、2005年に64bit命令をサポートする「Windows XP x64 Edition」が登場した。それ以来、Windowsは32bit版と64bit版の2本立てでリリースされてきたが、2021年にリリースされた「Windows 11」では、ついに32bit版が“廃止”された。


現行のx86 CPUは、全て64bit命令をサポートしている。そして最新のWindowsであるWindows 11は、64bit版のみのリリースとなった

 一方で、過去のx86アーキテクチャ向けOSやアプリケーションとの互換性を確保する観点から、現行のx86 CPUは16bit/32bit命令を引き続きサポートしている。16bit命令はx86アーキテクチャのルーツである「8086プロセッサ」から約45年、32bit命令は「80386プロセッサ」から約38年間“残存”し続けていることになる。

 厳密にいうと、2004年に64bit命令に対応したCPU以降は「仮想86モード(VM386)」をサポートしておらず、2008年以降にリリースされたCPUは「A20ゲート」を備えていない。そのため、これらに依存するOSやアプリケーションは、原則としてエミュレーターを介さないと動作しない。

 さらに、Intelが2020年以降に提供している各種ファームウェアは、16bit/32bit動作をサポートせず、UEFIブートできない(≒BIOSまたはCSMでのみブートできる)OSをサポートしない。


x86アーキテクチャの大まかな歴史(Intel史観となるため、AMDなど他社のx86 CPUには言及がない)。64bit命令をサポートするタイミングで「仮想86モード」(複数の8086プロセッサがあるように見せかけることでマルチタスクを実現する機能)が非サポートとされ、2008年以降にリリースされたCPUでは「A20ゲート(8086/80186プロセッサとの互換性を高める機能)」が非搭載となっている

 このように、20年近くかかったが、PCは「64bitオンリー」でも困らない環境が整いつつある。そしてx86プロセッサにおける16bit/32bit命令のサポートは“不要”な状態となった。

 CPU自体の性能向上もあり、16bit/32bit CPU(や旧来のBIOS)が必要なOSやアプリを動かす場合は、基本的にはエミュレーターを介せば何とかなる面もある。

 そこで、X86-SアーキテクチャではCPUが16bit/32bitで動作するモードを省く。そのため、電源を入れた(リセットした)瞬間から64bitモードで稼働する

 従来は電源を入れた(リセットした)直後のx86 CPUは16bitモードで稼働し、そこから32bitモードに切り替えてからさらに64bitモードへと切り替え、あるいは16bitモードから64bitモードに切り替えという動作が必要だった。

 X86-Sアーキテクチャでは、このようなモード切り替えが不要となるため、CPUの構造や命令をシンプルにできる。その分だけ、CPUの純粋な性能アップに注力しやすくもなる。


現行の64bit対応x86 CPUは、電源投入時(リセット時)は16bitモードで動作し、そこから64bitモードに切り替えるという2~3段構えとなっている。X86-Sアーキテクチャはでは、電源を入れた瞬間から64bitモードで動作するように改められる

 その他、X86-Sアーキテクチャでは、主に以下の仕様変更が行われる見通しだ。

  • 32bitアプリの部分サポートに、64bit向けの簡略化された部分モデルを利用する
  • 最近のアプリではほとんど使われないリングプロテクション(リング1/リング2)と、「ゲート」のような旧来のセグメンテーション機能を削除
  • 16bitアドレッシング機能を削除
  • リングプロテクション(リング3)を使った入出力ポートへのアクセス機能を廃止
  • CPU I/Oモデルに基づくストリングポート入出力の廃止
  • APIC(割り込みコントローラー)を利用する場合は「X2APIC」限定とする(Intel 8259を廃止)
  • OSモードビットのうち、使われなくなったものを削除

X86-Sアーキテクチャにおける主な変更(予定)ポイント。詳細は、公開された仕様書で確認できる

Copyright © ITmedia, Inc. All Rights Reserved.