キーワード

Itanium
【アイテニアム】

2000/05/22

 インテルの次世代64bitプロセッサ向けの命令セット アーキテクチャ「IA-64」を採用する最初の製品のブランド名。Mercedという開発コード名で呼ばれていたもの。PentiumやCeleron、Xeonなどのネーミングを担当した米Lexicon Branding(レキシコン ブランディング)社が命名した。製品は、2000年下半期にサーバ、ハイエンドワークステーション向けに出荷される予定。

 Itaniumは、米Intel社とHewlett-Packard社によって提唱されている、次世代の64bitプロセッサのための命令セットアーキテクチャ、IA-64を採用する最初の製品となる。マイクロソフトは、このItaniumをターゲットとするWindows 2000の64bit化対応作業を進めており、すでに開発者向けにSDK(Software Development Kit)やDDK(Device Driver Development Kit)の配布を行っている(米Microsoftの「64-Bit Windows Overview」のページ)。また、Itanium対応のLinuxなども提供される予定だ。

 80386以降続いているIntel社の32bitプロセッサアーキテクチャであるIA-32は、典型的なCISCプロセッサであり、RISC系のプロセッサと比べると、性能向上が難しいとされている。それでもPentium Pro以降やx86互換構成のプロセッサなどでは、フェッチした命令をRISC風の命令に変換して、RISCプロセッサなどで使われている数々の高速化手法(投機実行、パイプライン化、スーパースカラー、アウトオブオーダー実行、レジスタリネーミング、高度な分岐予測など)を駆使して高速化を図ってきた。しかしここにきてそのようなアプローチによる性能向上にも限界が見え始めてきた。

 さらに高速化を行うには、同時に実行する命令実行モジュールやレジスタリソースなどを増加させたり、分岐予測精度を高めたり、キャッシュなどを大容量化したりする必要があるが、これは、設計の複雑化、デバッグの困難化、製造技術の高度化、人的・資金的リソースの大規模化など、開発にかかる手間や資金、時間などのリソースが膨大になるという問題がある。また、いくら分岐予測精度をあげて、さらに並列に実行できる命令の数を増やしても、実際のプログラムでは相互に干渉せずに同時・並列に実行できる命令の数は2〜4命令といわれており、投入したリソースの割には得られる効果が少なくなってきている。

 そこで、従来の逐次実行的なアーキテクチャを改め、まったく新しい、そして将来の性能向上も十分見込めるようなアーキテクチャの開発がIntel社とHP社の共同作業によって進められた。この結果開発されたのがIA-64アーキテクチャである。

 IA-64における64という名称は、レジスタ幅や演算データ幅が64bitであるところから付けられている。IA-32アーキテクチャでは、フラットにアクセスできる最大アドレス空間は32bit(4Gbytes)しかなく、すでに大規模アプリケーションなどでは、アドレス空間が不足している。そこで64bitプロセッサや64bitオペレーティングシステムが求められ、すでに実用化が始まっている。IA-64では、プロセッサ構造の抜本的な改革を行うと同時に、データ処理幅の64bit化も行い、これからの需要にも十分応えられるようにしている。

 IA-64では、EPIC(Explicitly Parallel Instruction Computing、明示的並列命令コンピューティング)と呼ばれる技術が核になっている。これは、あらかじめプログラミング時に、並列に実行できる命令を明示的に、静的にプログラム中に記述しておいて、実行時にはそれらの命令をすべて同時に実行する、という技術である。また、データの投機的なロード(データのロード開始と、データの使用を分離する)や、分岐成立時と不成立時の命令ストリームを並列に記述しておき、条件に応じてどちらかしか実行しないということも行う。これにより、プロセッサが持つ演算ユニットを最大限並列に動作させて、さらにメモリロードの遅延によるパイプラインのストールや、分岐によるペナルティなどをなくして、性能を向上させることができる。

 最初のItaniumは、厚さ1cm程度のタバコの箱とほぼ同じサイズのパッケージで提供される。2次キャッシュを同梱したCPUコアのほか、Pentium IIIの2次キャッシュと同様、パッケージ内に4Mbytesの3次キャッシュを実装している。基板との接続用として、パッケージの底面には信号線用のピンが配置されており、これはソケットに差すようになっている。電源は、パッケージの側面に用意された専用のコネクタから供給する。

 一番最初のItaniumは、800MHzの動作クロックで出荷される予定。システム バスの動作クロックは、133MHzのDDR(Double Data Rate:クロックの立ち上がりと立ち下がりを使ってデータを転送する)と言われている。

インテルItaniumプロセッサ

IntelとHPが共同開発した64ビットアーキテクチャのIA-64を初めて搭載したマイクロプロセッサ。2000年後半の出荷が予定されている。 写真手前のコネクタは、電源供給用のもの。

 IA-64は命令セットアーキテクチャであり、実際にインプリメントされるプロセッサにおける演算ユニットの数や、同時に実行可能な命令数などは、IA-64では定義されていない。Itaniumでは、分岐ユニット×3、整数/メモリ演算ユニット×4、浮動小数点演算ユニット×2を持ち、同時に最大で6命令まで発行可能となっている。

 IA-64には、64bitの汎用整数レジスタが128本、82bitの浮動小数点レジスタが128本、1bitのプリディケーション(述語)レジスタが64本、分岐先レジスタ(間接分岐に使用)が8本ある。汎用レジスタや浮動小数点レジスタが128本もあるのは、並列に実行できる命令の数を多くするためと、関数呼び出し間でのパラメータの受け渡しなどにも使う(SPARCのレジスタウィンドウのように使う)ためである。また、ループ命令の実行時には、ループ内で使うレジスタを自動的にローテーションさせる機能(自動的なループアンローリング機能)も持っており、そのためにも大量のレジスタが必要になる(ローテーションさせないと、ループの繰り返しによって同じレジスタばかりが使用されることになり、リソースが衝突して、パイプラインがストールしてしまう)。

 IA-64では、1つの命令語は128bitとかなり長いが(これをバンドルという)、この中には41bit長の命令が3つ(3スロット)と、「テンプレート」と呼ばれる5bitの情報が含まれている。1つのバンドルには、3つの命令が含まれているが、実際にいくつの命令を同時に実行するのかは、テンプレート部で指示することになる。つまり、バンドルの長さと、実際に並列に実行される命令の数は異なっており、必要ならば2つ以上のバンドルにまたがる命令をすべて同時に実行することも可能だ。Itaniumでは前述のように最大で6命令分(2バンドル)を同時に発行することができる。パイプラインの段数は10段で、インオーダー(命令記述された順番通り)に実行される。1クロックで20命令が実行可能だ。

 41bitの命令コードの内訳は、命令の種類や演算長の指定のほか、ソース1、ソース2、ディスティネーションの各レジスタの指定、プリディケーションレジスタの指定、などが含まれている。プリディケーションレジスタには条件比較の結果を入れておき、このレジスタの内容が1ならその命令を実行するが、0なら命令を実行しないというふうに使う(プリディケーションレジスタ0を指定すると、無条件で常に実行される)。従来のアーキテクチャにおける分岐命令を、プリディケーションレジスタを使った条件付き命令に変換して実行すれば、分岐に伴うペナルティを避けることができる。

 IA-64はまったく新しい命令セットアーキテクチャであるが、実際には過去のプロセッサ(x86アーキテクチャ)との互換性も考慮して、従来の32bit x86プロセッサに実装されているIA-32アーキテクチャもサポートされる。Itaniumの場合、IA-32用のデコード、制御ユニットを内蔵しており、実行ユニットはIA-64と共用するような方法を採用している。なお、IA-32命令は、オウトオブオーダー(記述された命令の順番とは異なる順序)で実行される。

 つまり、IA-64はIA-32のスーパーセットであり、従来のx86のプログラム(MMXや、Pentium IIIのStreaming SIMD Extension機能も含む)もモードを変えればそのままダイレクトに実行することができる(HPのPA-RISCにはエミュレーションで対応)。IA-32モードで実行する場合、IA-64の汎用レジスタや浮動小数点レジスタの一部が、IA-32の各レジスタなどを格納するために使われることになっている。

インテルによれば、ItaniumのIA-32命令の実行性能は、同時期に販売されている最も高速なIA-32プロセッサと比べると、それよりも遅くなるという。記事の終わり

インテルItaniumプロセッサのブロック図

IA-64を初めて実装するItaniumプロセッサのブロック図。IA-32用のデコードが別に設けられていることがわかる。また、1次キャッシュ、2次キャッシュ、3次キャッシュの各データ転送にはECCが採用されており、信頼性の向上を実現している。

 

「PC Insider キーワード」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間