オペレーティング システムは ISA に基づいて異なりますか、それともマイクロアーキテクチャに基づいて異なりますか?

オペレーティング システムは ISA に基づいて異なりますか、それともマイクロアーキテクチャに基づいて異なりますか?

たとえば「Linux」などのオペレーティング システムが開発される場合、異なるマイクロアーキテクチャ (Intel Pentium および AMD Athlon) に合わせて、必要に応じて (プロファイルして) ​​若干異なる記述が行われるでしょうか?

Stack Exchangeのスレッドの1つから、AMDのx64用のLinuxバイナリはIntel x64アーキテクチャでも実行できることがわかった。 ここにリンクの説明を入力してください

つまり、同じ ISA (x86) を共有しているにもかかわらず、Intel Pentium と AMD Athlon には異なる Linux ソース コードが存在するべきではないでしょうか。その理由は、ISA の実装が異なり、異なる制御レジスタとデータ レジスタのセットを使用しているためです。

答え1

概念の核心には到達できませんでしたが、オペレーティング システムはマイクロアーキテクチャ (Intel Pentium と AMD Athlon) ではなく ISA (例: x86 と x64) に基づいて異なることを納得させるのに十分な情報を収集しました。

簡単な例えはこうです -

ISAのようなものですC言語; 「標準」、何かをするときに従うべきもの。

一方マイクロアーキテクチャのようなものですCコンパイラ; これらのルールまたは標準を強制するための「実装」。

ウィキからの抜粋 -マイクロアーキテクチャ

特定の ISA は、異なるマイクロアーキテクチャで実装される場合があります。実装は、特定の設計の異なる目標やテクノロジの変化によって異なる場合があります。

ISA は、アセンブリ言語プログラマーやコンパイラー作成者から見たプロセッサのプログラミング モデルとほぼ同じです。ISA には、実行モデル、プロセッサ レジスタ、アドレス、データ形式などが含まれます。マイクロアーキテクチャには、プロセッサの構成要素と、これらが相互接続して相互運用し、ISA を実装する方法が含まれます。

異なるマイクロアーキテクチャを持つマシンは同じ命令セットアーキテクチャを持つ場合があり、同じプログラムを実行できます。新しいマイクロアーキテクチャや回路ソリューション、および半導体製造の進歩により、新しい世代のプロセッサは同じ ISA を使用しながらより高いパフォーマンスを実現できるようになりました。

同じ ISA を実装しながらも異なるマイクロアーキテクチャを区別する要因は次のとおりです。

実行ユニットもマイクロアーキテクチャに不可欠です。実行ユニットには、算術論理ユニット (ALU)、浮動小数点ユニット (FPU)、ロード/ストア ユニット、分岐予測、および SIMD が含まれます。これらのユニットは、プロセッサの操作または計算を実行します。実行ユニットの数、そのレイテンシ、およびスループットの選択は、マイクロアーキテクチャ設計の中心的なタスクです。システム内のメモリのサイズ、レイテンシ、スループット、および接続性も、マイクロアーキテクチャの決定事項です。

メモリ コントローラなどの周辺機器を含めるかどうかなどのシステム レベルの設計決定は、マイクロアーキテクチャ設計プロセスの一部と見なすことができます。これには、これらの周辺機器のパフォーマンス レベルと接続性に関する決定が含まれます。

関連情報