PC向けCPUの主流な命令セットアーキテクチャであるx86は、Intel 8086プロセッサに起源を持ち、46年の長きにわたって使われてきました。そんなx86は近い未来に滅んでしまうだろうと、技術系ブログのHackadayが主張しています。

Why X86 Needs To Die | Hackaday

https://hackaday.com/2024/03/21/why-x86-needs-to-die/



x86を採用する現代のCPUは、複雑な命令セットコンピューターであるCISC、1クロックサイクルあたり複数の命令を実行可能な「スーパースカラー」、命令を高速化するため順序を変更して実行する「アウト・オブ・オーダー実行」、分岐先の命令を条件が満たされるか不明な状態で実行する「投機的実行」を特徴とする、フォン・ノイマン型アーキテクチャの一部分です。x86はもともとは16bitプロセッサであるIntel 8086の命令セットですが、32bitプロセッサ、さらに64bitプロセッサに対応するために機能が拡張されていきました。



46年にわたって機能が拡張されていった結果、x86の命令セットは非常に複雑なものとなり、命令のフェッチやデコードに多くの時間とリソースを必要とするようになりました。

例えば、「mpsadbw」という命令は6〜7バイトの長さがあり、4バイトのシーケンスを11バイトのシーケンス内の複数の位置で比較します。通常、命令はレジスタ上のデータを操作しますが、「mpsadbw」という命令には、メモリ上のデータを直接操作するバージョンも存在します。つまり、この命令には、レジスタ操作版とメモリアクセス版の2つのバリエーションがあるということになりますが、レジスタ操作版の命令ではレジスタの番号を指定するだけでよいのに対し、メモリアクセス版の命令ではメモリアドレスの計算方法まで指定する必要があるため、メモリアクセス版は命令のデコードを複雑化します。

現代のx86 CPUは「mpsadbw」のような命令もサポートしていますが、実際のプログラムではあまり使われていません。x86には複雑で使用頻度の低い命令が多数存在し、これがx86アーキテクチャの効率性を下げる一因となっているとHackadayは主張しています。



近年はArmやRISC-Vというアーキテクチャも登場しています。ArmはイギリスのArm社が開発したRISCベースのプロセッサアーキテクチャで、低消費電力と高いコストパフォーマンスを特徴としており、主にスマートフォンなどのモバイル端末や組み込みシステムで使用されています。また、近年ではAppleがMacBookやMacに組み込んでいるApple Siliconや、Amazon Web Services(AWS)のインスタンス用プロセッサ「Graviton」で、Armアーキテクチャが採用されています。

AmazonがAWS向けのプロセッサ「Graviton4」とAIトレーニング用チップ「Trainium2」を発表 - GIGAZINE



RISC-Vは、カリフォルニア大学バークレー校で開発された命令セットアーキテクチャです。シンプルで効率的な設計が特徴で、ロイヤリティフリーなので誰でも自由に使用・修正・再配布が可能です。また、RISC-Vはカスタマイズ性が高く、必要な機能を選択し、独自の拡張命令を追加することができます。さらに、オープンソースであるため、教育機関での利用が広がっており、次世代のコンピュータ技術者にとって重要なアーキテクチャになると予想されています。

RISC-Vはマイコンや組み込みシステムで使われていますが、高性能なプラットフォームにも徐々に採用されつつあります。例えば、ヨーロッパの次世代スパコン開発プロジェクトである「European Processor Initiative(EPI)」では、RISC-Vベースのプロセッサを採用することが決まっています。

ArmとRISC-Vは、x86と比べてシンプルで効率的な設計を特徴とし、特定の市場で強みを発揮しています。これらのアーキテクチャが成長を続ける一方で、x86は複雑性の負担に直面しており、将来的にはシェアを失う可能性があると指摘されています。



x86は比較的古い命令セットのルーツに縛られ、46年前のようなコードサイズの小ささというメリットを失ってしまいました。スーパースカラ、投機的実行、アウトオブオーダー実行の複雑さは、定義上すでに非常に複雑な命令セットにとって重い負担となっています。さらにArmやRISC-Vが徐々にシェアを拡大しています。Hackadayは「誤解しないでください。私はx86を嫌っているわけではありませんし、今日にでもx86が死ぬべきだと言っているわけでもありません。しかし、一つだけ明らかなことがあります。x86の時代は限られているのです」と述べています。

なお、ハードウェア関連のレビューやニュースを扱うChips and CheeseはHackadayの主張に対し、「Hackadayの議論は数十年前から無意味になっています。現代のCPUは命令セットにかかわらず、スーパースカラー、アウト・オブ・オーダー実行、レジスタリネームなどの高度な技術を使用しており、命令セットよりもアーキテクチャ設計と実装の方がはるかに重要です。また、x86のリアルモードのようなレガシーサポートは、ソフトウェアの互換性を維持するために必要不可欠であり、Armベースのスマートフォンのように断片化を避けることができます」と反論しています。

Why x86 Doesn’t Need to Die - Chips and Cheese

https://chipsandcheese.com/2024/03/27/why-x86-doesnt-need-to-die/