IA-32
出典: フリー百科事典『ウィキペディア(Wikipedia)』
IA-32(あいえーさんじゅうに、Intel Architecture 32)はインテルが開発した32ビットマイクロプロセッサのアーキテクチャである。
[編集] 概要
Intelが開発し8086およびその廉価版8088に最初に実装し、それ以後、(80186)、80286、80386(Intel386)、Intel486と後継製品の名称から、x86アーキテクチャとも呼ばれている。そのx86アーキテクチャに32bit拡張命令を追加した80386以降の製品がIA-32である。
しかし80386の発表時にIA-32と命名されたわけではない。Intelは旧来からの互換性を重視するあまり冗長になってきたx86命令の置き換えとしてヒューレット・パッカードと共同で全く新たな64bit命令セットとそれを実装したプロセッサItaniumの開発に踏み切り、Itaniumと64bit命令セットをIA-64と定義した。Itaniumには従来製品との命令に事実上互換性はなく、しかし普及への弾みを期待して市場の事実上の標準のIntelが開発している64bitアーキテクチャであることを印象付ける目的があったと考えられる。IA-64が成立したことにより、従来の32bit拡張命令を持ったx86アーキテクチャを後付でIA-32と呼ぶことになった。
IA-64アーキテクチャはIA-32アーキテクチャと互換性がなく、市場であらゆる面で価格がこなれているIA-32アーキテクチャと互換性がある64bit命令拡張を市場からは望まれていた。IntelはIA-32の64bit拡張を検討していたと思われるが、IA-64の普及を目指していた手前Intelは対外的には公表しておらず、AMDが先んじて64bit拡張であるx86-64の計画を発表。後にAMD64と改称して正式発表を行った。これは、80286を80386に拡張したように、IA-32アーキテクチャをベースに64bit命令を追加するなど拡張したものである。 それに対しIntelは、市場占有率など優位な立場を利用してのAMD64と互換性の無い命令の拡張は反トラスト法に抵触する恐れがあることや、基本ソフトの事実上の標準的立場にあるMicrosoftからの一本化の圧力もあり、IntelはAMD64と互換性のあるIntel 64テクノロジを発表するにいたった。 AMD64もIntel 64もIA-32の64bit命令拡張であり、共にIA-32に分類する場合もある。しかしながら、80386の命令互換であればIA-32のカテゴリに入るにもかかわらず、Intel製以外のプロセッサをIA-32と呼ぶことは多くはない。IA-32マイクロプロセッサは数多く存在し、2006年1月現在でi386DXからIntel Coreまでがこのアーキテクチャが採用されている。
なお、IntelはIntel 64対応プロセッサを"64bit Processors"に分類した(Intelのwebサイトで見る事ができる。プレスリリース等は無い)。
[編集] 性質
IA-32のインストラクションセットは他の32bitアーキテクチャに比べて非常に密度が高く、頻繁に使用される命令の多くは1バイトで表現される。これはi8086と互換性を継承してきた事に由来する。また命令自体そのものが複雑な動作をする(CISCアーキテクチャ)。Intel社から提供されるリファレンスマニュアルに記載されている、命令動作を表現する擬似コードにおいてif文が3個も出現する、非常に複雑な命令もある。
密度の高さは一度のメモリアクセスサイクルでi386において同時に最大4命令、Pentiumにおいて最大8命令を取り込むことができ、命令発行系統を複数もつスーパースカラ構造においてIPCを高くする事ができる。命令の複雑さは、高速に動作するマイクロコードでの実行比率を高め、目標を達成するのにかかる時間を短縮した。
しかし、可変長かつ複雑な命令は後に命令デコードに必要な回路規模の巨大化を招き、またその処理にかかる時間が大きなウエイトを占めるようになった。マイクロコードを排し、ワイヤードロジックで実行する際、複雑な命令は回路規模を非現実的なものにし、マイクロコードを完全に排除する事が困難になった。
Intelはこの問題に対しP6マイクロアーキテクチャという新しい設計によって解決を図った。高密度かつ複雑な命令を、単純かつ複数の命令に分割し、RISCプロセッサとして動作できるようにしたのである。これにより、RISCプロセッサではコード長が長い、複雑な命令が実行できないという欠点を克服しながらも、さらに従来のIA-32ソフトウエア資源を継承しつつ、新しい世代のプロセッサを開発する道筋を切り開いた。なおこのアイディアはIntelが最初に考案したものではない。NexGen社(現在AMD社に吸収された)のNexGenプロセッサーが最初である。Intelはそのアイディアを貪欲に吸収し、P6マイクロアーキテクチャの開発に役立てたと言われる。
現在のIA-32プロセッサはP6マイクロアーキテクチャと、P6マイクロアーキテクチャの命令発行部と命令実行部を分離した・NetBurstマイクロアーキテクチャ、そして設計プロファイルを大きく見直した新しいマイクロアーキテクチャ・Coreマイクロアーキテクチャの3つによって実装されている。いずれもSIMDによるベクトル演算機構が拡張され、IA-32の弱点であった浮動小数点演算能力の低さを解消し、いくらか世代の古いスーパーコンピューターに匹敵する演算能力を獲得している。
IA-32プロセッサのFSBはPentium Pro時に大きな発展を遂げ、以降のプロセッサのFSBも基本的にPentium Pro時のプロトコルを継承している。但し世代ごとに若干の修正が加えられており、例えばPentium4世代においては、アドレス系バスが基本バスクロックの2倍、データ系バスが4倍の速度で転送が行われるようになった。この際同時に、キャッシュラインサイズが32Byteから64Byteに引き上げられた。またエラープロトコルにも若干の修正が加えられ、バスの使用効率が高まるよう変更された。さらにハイエンドプロセッサのXeon MP(4-Way以上をサポート)においては、IA-64のFSBプロトコルに似た大きな拡張がなされており、複数のFSBを有する大規模なサーバ向けチップセットで、効率的にデータ転送が行えるようになっている。このように、IA-32プロセッサのハードウェア観点では、PC/ワークステーションなどの1-Way向け、ローエンドからミッドレンジ領域の2-Way向け、ハイエンドサーバ領域の4-Way以上向けの3種類が存在しており、それぞれでFSBプロトコルも互換性が無くなってきている。
[編集] メモリ搭載の限界
セレクタを使用せず、オフセットのみを用いるFLAT MODELが多くのx86向けオペレーティングシステムに採用されている。このメモリモデルの場合、オフセットに使えるアドレス範囲は32bitで、全てのセレクタが同一の仮想アドレス空間を参照していた場合1プロセスに許されるメモリ空間は4GB以下となる。
4GB未満の論理アドレス空間上に、任意の64bit長アドレス指定で物理メモリへのウインドウを開く事が出来るOSはあるが、インメモリデータベースのような広大でリニアなメモリ空間が必要なソフトウェアにとっては64bitアーキテクチャIA-64およびx64のような技術が必須となりえる。
x64により仮想アドレス空間は設計上では256TBまでリニアにアクセスする事ができるようになり、またWindows、NetBSD、FreeBSD、OpenBSD、Linux、Solarisはこれに対応し、また32bitアーキテクチャで懸念事項であったカーネル空間の置き場所という問題も解決した(この問題は深刻であり、オペレーティングシステムのスケーラビリティを著しく制限するものであった)。
IA-32プロセッサの物理仕様上は40bitアドレスをサポートしており、4-Way以上をサポートするXeon MPにおいては、MCHなどのチップセット側の制限はあるものの1TBの物理メモリをサポート可能である。但し、Xeon DP(2-Wayまで)やPC用の廉価CPUの領域においては、物理アドレスバスは36bitである為、物理アドレス空間は64GBまでとなっている。このアドレス空間の制限は、その世代において現実的に搭載可能な物理メモリの量を基準に決定されている。
近年の高速DDR SDRAMにおいては、1チャネルに実装可能なDIMMは電気的制限から4枚程度が限界とされている。このためメモリ搭載量を増やそうとした場合、必然的に多チャンネルをサポートする必要がある。しかし従来のDIMMは1チャネルあたり信号/GNDを合わせると150ピン前後を必要とするため、MCHなどのチップセット側の負担が大きく、多ピン化は即座にコストアップに跳ね返る。この問題を解決するためIntel社主導でFBDIMM (Fully Buffered DIMM)と呼ばれる、シリアル転送に似た少ピンの高速インタフェースを有するDIMMを規格化した。2006年現在、既にDRAM各社はFBDIMMの生産を開始しており、FBDIMMサポートのサーバも出荷されている。FBDIMMではチップセット側で従来の半分以下のピン数しか必要としないため、少ピン数で多チャンネル化が可能である。またデイジーチェーンのようなトポロジを採用したため、1チャネルあたり8枚のDIMMをサポートすることが可能であり、今後サーバにおける搭載可能物理メモリ量も飛躍的に増大していくであろう。
FBDIMMの立ち上げに成功したIntel社は、競合するAMD社のOpteronに対抗する意味も含め、次世代XeonにおいてはDP領域のプロセッサに対しても40bitのアドレスバスを持たせる事を計画している。
カテゴリ: コンピュータアーキテクチャ | マイクロプロセッサ | インテル | コンピュータ関連のスタブ項目