Alpha 開発者
DEC ビット数
64ビット 発表
1992年 デザイン
RISC タイプ
レジスタ-レジスタ エンコード
固定 エンディアン
バイエンディアン 拡張
バイト/ワード拡張 (BWX)、平方根と浮動小数点数変換拡張 (FIX)、カウント拡張 (CIX)、マルチメディア拡張 (MVI) オープン
Yes[ 1] レジスタ 汎用
32本 浮動小数点
32本
DEC Alpha AXP 21064 のダイ
DEC Alpha AXP 21064 のパッケージ
Alpha AXP 21064 のダイを埋め込んだ名刺
Compaq Alpha 21264C
Alphaを複数のチップで実装した初期のマルチチップモジュール
DEC Alpha は、Alpha AXP としても知られ、ディジタル・イクイップメント・コーポレーション (DEC) の64ビット RISC 命令セットアーキテクチャ (ISA) であり、32ビット VAX CISC ISA とその実装を置換すべく設計された。AlphaはDECがマイクロプロセッサ として実装し生産 した。Alphaマイクロプロセッサは特にDECのワークステーション やサーバ に使用され、ミッドレンジ以上のあらゆるコンピュータで採用された。サードパーティもAlphaを使ったシステムを製造しており、PCのフォームファクタ のマザーボード なども作られた。
オペレーティングシステム (OS) としてはDEC版UNIX (Tru64 UNIX ) やVMS をサポートした。後に、Linux (Debian GNU/Linux , Gentoo Linux , Red Hat Linux ) や一部のBSD (NetBSD , OpenBSD , FreeBSD ) のようなオープンソース のOSもAlpha上で動作するようになった。マイクロソフト もWindows NT 4.0 SP6までAlphaをサポートしたが、Windows 2000 RC2を最後にサポートは打ち切られた。
1998年、DECがコンパック に買収されると、Alphaアーキテクチャもコンパックのものとなった。コンパックはインテル の顧客でもあり、予定されていたHP /インテルのItanium アーキテクチャを採用するためAlphaを徐々にフェーズアウトさせることにし、Alpha関連の知的財産権 を2001年にインテルに売却し、実質的に製品として見切りをつけた。2002年HPがコンパックを買収し、2004年まで既存製品の開発を継続し、既存顧客向けに2006年10月までAlphaベースのシステムの販売継続を約束した(その後2007年4月に延長)[ 2] 。
歴史
Alphaは、それ自体以前の複数のプロジェクトの最終生成物である、PRISM (英語版 ) という初期のRISCプロジェクトから生まれた。パロアルトの設計チームが MIPS R2000 を使ったUnix専用ワークステーション (DECstation 2100) を提案し、そちらの方が早く市場に出せることから PRISM はキャンセルされた。PRISMと他のRISCプロセッサの違いの中でも、Epicode と呼ばれるユーザープログラム可能なマイクロコード のサポートがPRISMの特徴である。PRISMは Mica と呼ばれる新オペレーティングシステム が動作するよう設計されていた。Micaは「ネイティブ」なプログラムはフルスピードで実行でき、同時にVAX 向けの既存のVMS プログラムを若干変換して実行することができる。DEC経営陣は既存の稼ぎ頭を新しいマシンで置き換える必要性を理解せず、結局1988年 にプロジェクトは中止された。
しかし、中止の時点でより新しいSPARC やMIPSといった第2世代のRISCチップはすでにVAXシリーズよりずっと良い価格性能比を誇っていた。第3世代のチップは価格だけでなく、全ての面においてVAXを完全に上回るであろうことは明らかだった。そのため、VMSを直接サポートする新しいRISCアーキテクチャが可能かどうかを調べる別の研究が始まった。新しいデザインはほとんどのPRISMの基本コンセプトを踏襲したが、VMSとVMSのプログラムを適度なスピードで全く変換せずに実行できるように、方針が転換された。主なRISCベンダと同様に、PRISMの32ビット から完全な64ビットの実装に設計を変更する決定もなされた。結果として、新しいアーキテクチャがAlphaとなった。Alphaの命令セットのアーキテクトはリチャード・L・サイツとリチャード・T・ウィテクである。PRISMのEpicodeは、AlphaのPALcode (英語版 ) となった。PALcodeはプラットフォーム固有およびプロセッサ実装固有の機能への抽象化されたインタフェースを提供する。PALcodeは、表面的にはマイクロコードそのものであるが、実体は「割り込み不可能なサブルーチン 」であり、特権モードの生成などに使われた。VMSはCPU の動作モードとしてカーネル、エグゼクティブ、スーパバイザ、ユーザーの4種類を必要とするが、UNIXはカーネルとユーザーの2つでよい。モード切り替えの機能をPALcodeとして分離することで、RISCの単純さを保ちつつ、アーキテクチャ の異なるOSのサポートを可能にしたのである。
Alphaのマイクロプロセッサ業界への主な貢献と、その優秀な性能の主な理由は、アーキテクチャというよりはむしろ優れた実装 によるものである。当時(現在も同じだが)、マイクロチップ産業は自動化された設計およびレイアウトツールが中心となっていた。DECのチップ設計陣は過度に複雑なVAXアーキテクチャを扱うために、人手による洗練された回路設計を追求し続けた。シンプルでクリーンなアーキテクチャに適用された人手による回路設計は、自動化された設計システムによるものよりもずっと高い動作周波数を可能にするということを、Alphaチップは示した。これらのチップは、マイクロプロセッサ設計コミュニティにカスタム回路設計というルネッサンスをもたらした。
Alphaのプロセッサは当初 DECchip 21x64 シリーズと呼ばれていたが、1990年代中ごろに "DECchip" から "Alpha" に変更した。番号の先頭2桁である "21" は21世紀を意味し、最後の2桁 "64" は64ビットであることを意味している。Alphaは当初から64ビットとして設計されており、32ビットのバージョンは存在しない。真ん中の数字はAlphaアーキテクチャの世代を表す。社内では EV 番号でも識別され、EVは公式には "Extended VAX" の略とされていた。
Alphaチップの最初の頃の世代のものは、当時もっとも革新的なものであった。最初のバージョンである 21064 (EV4 ) は、より高性能なECL ミニコンピュータ やメインフレーム に匹敵する動作周波数を誇る最初のCMOS マイクロプロセッサである。2代目の21164 (EV5 ) は、大容量の2次キャッシュ をチップの中に持つ最初のマイクロプロセッサであった。3代目の21264 (EV6 ) は、高い動作周波数とより複雑なアウト・オブ・オーダー実行 を組み合わせた最初のマイクロプロセッサであった。21364 (EV7 ) はオンチップのメモリコントローラ を持つ最初の高性能プロセッサだった。21464 (英語版 ) (EV8 ) は初の同時マルチスレッディング をサポートしていたが、コンパック によるDEC買収後にキャンセルされた。コード名 Tarantula はEV9 と呼ばれるはずの研究プロジェクトで、ベクターユニット をAlphaに搭載する計画だった[ 3] 。
Alphaのコード名はEVAX (Extended VAX) であったが、実際の製品名の決定は難航した。最後に「ARA (Advance RISC Architecture)」が残ったが、一部の国で「不適切な言葉」とされたため白紙に戻った。最終的に「Alpha」という名前が決まってからも、商標 上の問題からAlpha AXPとなった。実際には、この追加は必要なかったようで、最終的にAlphaに戻ったようである。AXPの意味には諸説あるが、真相は商標コンサルティング会社が考えたもので意味はないそうである。DEC社内に流れた文書によると「覚えやすい3文字」「Xを含むと先進的なイメージがある」「他社の商標権を侵害しない」ということで決まったということだ。DEC社内では "Acronym eXpert is Paid too much"(略語の専門家に多額の金が払われた)の略というジョークがささやかれていた。
余談だがAMD 社のAthlon プロセッサで採用されたEV6バス は21264 (EV6 )のバスと同じものであり、信号レベルでは互換性がある。実際にAthlonプロセッサ用チップセット をAlphaプロセッサ用マザーボードに使用した例もある。
設計原則
Alphaアーキテクチャは性能を最重要として設計されている。DECは25年で1000倍の性能向上を達成することを意図していた。そのため、複数命令の発行、クロック周波数向上、マルチプロセッシングといった方向性を妨げるアーキテクチャ上の特質は徹底的に取り除かれた。結果としてAlphaでは、以下のような特質を持たない。
分岐遅延スロット
命令の抑制
バイト単位のロード/ストア命令。ただし後にバイト/ワード拡張 (BWX) として追加した。
条件コード
Alphaでは整数命令に条件コードが存在せず、ステータスレジスタ の条件コードがボトルネックとなる可能性を排除している。例えば加算命令でオーバーフローとなるような場合、和の下位64ビット(あるいは32ビット加算なら下位32ビット)をレジスタに書き込み、あふれた部分を無視する。キャリーが発生したかどうかが必要なら、加算結果と加算前の2つの数値を符号なし数値として比較する。
レジスタ
アーキテクチャでは整数用レジスタ が32本、浮動小数点用レジスタが32本定義されており、さらにプログラムカウンタ 、2本のロックレジスタ、1本の浮動小数点コントロールレジスタ (FPCR) がある。他にも実装上必要な場合にのみ実装されるオプションのレジスタ群が定義されている。また、PALcode (英語版 ) 用のレジスタ群が定義されている。
整数レジスタは R0 から R31 と表記され、浮動小数点レジスタは F0 から F31 と表記される。R31とF31は常にゼロであり、それらに書き込もうとしても無視される。DECは統合レジスタファイル も検討したが、整数レジスタファイルと浮動小数点レジスタファイルを分離した方が実装の自由度が上がり、FPU を別チップにすることも可能になるということで、分離することにした。また、複数命令を同時発行する場合、分離した方がレジスタファイルのリード/ライトのポート数を減らせるという利点もある。レジスタファイル内のレジスタ本数も32本と64本を候補として検討した。DECは32本の方がチップ上の面積が小さくなり、クロック周波数を上げやすいということでそちらを選択した。32本のレジスタがあれば少なくとも8命令同時発行までサポートできるため、このレジスタ本数は性能や将来の発展の観点からも大きな問題とはならないと考えられた。
プログラムカウンタ は64ビットでロングワード(32ビットのこと。データ型 も参照のこと)境界の仮想バイトアドレスを保持する。従って、下位2ビットは常にゼロであり、逐次的に命令を実行する際は4ずつインクリメントされる。マルチプロセッシング をサポートするため、ロックフラグとロックされた物理アドレスを格納するレジスタを使い、load-locked/store-conditional 命令を実装している。浮動小数点コントロールレジスタ (FPCR) は64ビットのレジスタで、IEEE 754 準拠の浮動小数点演算機能をハードウェアで実装するのに使われる。
データ型
Alphaでは1バイト が8ビット データとして定義されており、16ビット データを1ワード 、32ビット データをロングワード 、64ビット データをクワッドワード 、128ビット データをオクタワード と称する。
Alphaアーキテクチャには当初から以下の6種類のデータ型が定義されていた。
クワッドワード(64ビット)整数
ロングワード(32ビット)整数
IEEE 倍精度 浮動小数点数(T-floating-point、64ビット)
IEEE 単精度 浮動小数点数(S-floating-point、32ビット)
VAX との互換性のため、次の2種類も含まれる。
VAX 倍精度浮動小数点数(G-floating point、64ビット)
VAX 単精度浮動小数点数(F-floating point、32ビット)
命令セットの将来の拡張で128ビットのデータ型をサポートすることが考慮されていた。
メモリ
64ビットの平坦な仮想アドレス 空間を持つ。実装においては仮想空間を小さく実装してもよいことになっていて、最小仮想アドレス幅は43ビットとされている。未使用ビットはTLB などのハードウェアでは実装されないが、ソフトウェアの互換性を保証するため、未使用ビットがゼロであることをハードウェアでチェックすることを要求している。
命令フォーマット
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
種類
オペコード
Ra
Rb
未使用
0
機能
Rc
整数演算
オペコード
Ra
リテラル
1
機能
Rc
リテラル付き整数演算
オペコード
Ra
Rb
機能
Rc
浮動小数点演算
オペコード
Ra
Rb
ディスプレースメント
ロード/ストア
オペコード
Ra
ディスプレースメント
分岐
オペコード
機能
CALL_PAL
Alpha ISA の命令長は32ビット固定である。命令フォーマットは6種類ある。
整数演算命令のフォーマットでは、オペコード6ビットの後に第1オペランド を指定するRaフィールドと第2オペランドを指定するRbフィールドがある。続く3ビットは未使用で予約されている。その次の1ビットは常に "0" で、リテラルを使用する整数演算命令のフォーマットとの区別に使われている。次に7ビットの機能フィールドがあり、オペコードとの組み合わせで具体的に何をするのかを指定する。最後のRcフィールドは演算結果を書き込むレジスタを指定する。レジスタを指定するフィールドはそれぞれ5ビットで、32種類の値が32本の整数レジスタに対応している。
リテラル整数演算フォーマットでは、オペランドの一方にリテラル を使用する。整数演算命令のフォーマットのうち、5ビットのRbフィールドと3ビットの未使用フィールドを合わせた8ビットをリテラルフィールドとして使用し、リテラルは符号拡張 ではなくゼロ拡張で64ビットの値に変換して使用する。
浮動小数点演算フォーマットは整数演算フォーマットと似ているが、機能フィールドが11ビットに拡大している。
ロード/ストア用フォーマットでは、16ビットのディスプレースメント・フィールドで命令の後半が占められている。
分岐用フォーマットには21ビットのディスプレースメント・フィールドがある。Raフィールドは条件分岐 の際に調べるレジスタを指定する。条件が成立している場合、プログラムカウンタにディスプレースメントを加算して更新する。ディスプレースメントは符号付き整数であり、正の場合は前方への分岐、負の場合は後方への分岐となる。分岐可能な範囲は 1,048,576 である。設計原則に従い、分岐可能範囲を広くとってある。
CALL_PALフォーマットはCALL_PAL
命令で使うもので、PALcode (英語版 ) サブルーチン呼び出しに使われる。オペコード以外は26ビットの機能フィールドとなっており、PALcodeサブルーチンを指定する整数を示す。
命令セット
制御命令
制御 命令とは、条件分岐/無条件分岐とジャンプ命令である。条件分岐命令と無条件分岐命令は分岐用フォーマットを使い、ジャンプ命令はロード/ストア用フォーマットを使っている。
条件分岐では、指定されたレジスタの最下位ビット が1か0か(奇数/偶数)の判定、あるいは指定されたレジスタとゼロとの大小比較の判定を行い、指定された条件が成立していれば分岐する。分岐する場合は、21ビットのディスプレースメントを符号拡張 し、4倍してロングワード境界にし、プログラムカウンタに加算する。このときのプログラムカウンタは実行中命令の次の命令を指している(更新済み)。
無条件分岐では、条件分岐と同様に計算したアドレスでプログラムカウンタを更新する。また、このとき実行中の無条件分岐命令の次にある命令のアドレスをRaフィールドで指定したレジスタにセーブする。分岐予測 ハードウェアに提供するヒントが異なる2種類の無条件分岐命令がある。
ジャンプ命令は4種類ある(正確にはオペコードは1種類で、ディスプレースメント・フィールドに4種類の値を設定する)。Raフィールドが指定するレジスタに次の命令のアドレスをセーブし、Rbフィールドが指定するレジスタの内容をプログラムカウンタに書き込む。ディスプレースメント・フィールドに書き込むのは分岐予測ハードウェアに提供するヒント情報である。
整数演算
整数演算命令としては、ロングワードおよびクワッドワードの加算/乗算/減算、クワッドワードの比較がある。除算命令は存在せず、ハードウェアの単純さを優先している。加算/減算命令にはスケール版があり、第2オペランドを2ビットまたは3ビット左にシフトしてから加減算を行う。乗算命令は積の下位64ビット(または32ビット)を指定されたレジスタに書き込む。64ビット乗算で積の上位64ビットを得るための命令 Unsigned Multiply Quadword High (MULH) もあり、任意精度演算 の実装や除算アルゴリズムで使用する。積の上位半分を得る命令という考え方は PRISM (英語版 ) で生まれた。
ロングワード(32ビット)の整数演算命令は、レジスタの上位32ビットを無視して演算を行い、計算結果を符号拡張 してレジスタに書き込む。UMULH命令とスケール版加減算命令以外の加算/乗算/減算命令はデフォルトではオーバーフローを検出しない。オーバーフローを検出するバージョンの命令も用意されている。
比較命令はレジスタ同士を比較するか、レジスタとリテラルを比較し、指定された条件が成立する場合はRcフィールドで指定したレジスタに '1' を、条件が成立しない場合は '0' を書き込む。条件としては、等しい、小さいか等しい、小さい、の3種類がある。等しいか否かの判定以外には符号付き数値として比較するか符号なし数値として比較するかでさらに2種類に分かれる。
論理演算とシフト
論理演算命令としては、ビット単位 の論理演算と整数レジスタ間の条件付き転送命令がある。ビット単位の論理演算には、AND 、NAND 、NOR 、OR 、XNOR 、XOR があり、レジスタ間またはレジスタとリテラル間で演算を行う。条件付き転送命令はRaレジスタの内容について条件が成立する場合、Rbレジスタの内容をRcで指定したレジスタに書き込む。条件としては、ゼロとの比較(等しい、大小)と最下位ビット の値(奇数/偶数)がある。シフト命令には、算術右シフトと論理左シフトがある。シフトするビット数はレジスタまたはリテラルで指定できる。論理演算命令とシフト命令は整数演算用フォーマットを使用する。
拡張命令セット
バイトワード拡張 (BWX)
バイト/ワード拡張 (byte-word extensions, BWX) は8ビットおよび16ビットのデータ型を操作する命令セットである。21164A (EV56) マイクロプロセッサで初めて導入され、その後の実装では必ず存在している。BWXがない実装では複数の命令を必要としていた操作を1命令で実現可能となり、コード密度を高め、用途によっては性能も向上している。BWXによってx86 の機械語コードのエミュレーションを可能にし、デバイスドライバ も書きやすくなった[ 4] 。
ニーモニック
命令
LDBU
Load Zero-Extended Byte from Memory to Register
LDWU
Load Zero-Extended Word from Memory to Register
SEXTB
Sign Extend Byte
SEXTW
Sign Extend Word
STB
Store Byte from Register to Memory
STW
Store Word from Register to Memory
マルチメディア拡張 (MVI)
Alpha ISA のマルチメディア拡張またはSIMD 拡張を Motion Video Instructions (MVI) と呼ぶ[ 5] 。MVIを搭載した実装としては、時系列順に Alpha 21164PC (PCA56, PCA57)、Alpha 21264 (EV6)、Alpha 21364 (EV7) がある。同時期の他のISAのSIMD拡張としてMIPSのMDMXやサン・マイクロシステムズ の Visual Instruction Set などとは異なり、MVIは整数データ型を既存の整数レジスタに格納して処理する単純な少数の命令セットである。
MVIの単純さには2つの理由がある。第一に、DECは 21164 で既にDVD のデコード処理をソフトウェアで実行可能だと判断していたため、そのためにSIMD命令を追加する必要はないと考えていたが、MPEG-2 のエンコードにはSIMD命令が必要だと判断した。第二に、実装におけるサイクルタイムの高速性を保持しようとした。多数の命令を追加すると命令デコード論理回路が複雑化・巨大化するので、クロック周波数の低下にもつながる。
MVIには13の命令が含まれる。
ニーモニック
命令
MAXSB8
Vector Signed Byte Maximum
MAXSW4
Vector Signed Word Maximum
MAXUB8
Vector Unsigned Byte Maximum
MAXUW4
Vector Unsigned Word Maximum
MINSB8
Vector Signed Byte Minimum
MINSW4
Vector Signed Word Minimum
MINUB8
Vector Unsigned Byte Minimum
MINUW4
Vector Unsigned Word Minimum
PERR
Pixel Error
PKLB
Pack Longwords to Bytes
PKWB
Pack Words to Bytes
UNPKBL
Unpack Bytes to Longwords
UNPKBW
Unpack Bytes to Words
浮動小数点拡張 (FIX)
浮動小数点 拡張 (floating-point extensions, FIX) は Alpha ISA の拡張であり、平方根を計算する命令と整数レジスタと浮動小数点レジスタの間の転送命令を含む。21264 (EV6) で初めて実装した。
ニーモニック
命令
FTOIS
Floating-point to Integer Register Move, S_floating
FTOIT
Floating-point to Integer Register Move, T_floating
ITOFF
Integer to Floating-point Register Move, F_floating
ITOFS
Integer to Floating-point Register Move, S_floating
ITOFT
Integer to Floating-point Register Move, T_floating
SQRTF
Square root F_floating
SQRTG
Square root G_floating
SQRTS
Square root S_floating
SQRTT
Square root T_floating
カウント拡張 (CIX)
カウント拡張 (Count Extensions, CIX) とは、ビット数をカウントする3種類の命令からなる拡張である。それらの命令は整数演算命令に分類される。21264A (EV76) で初めて実装された。例えばCTLZ命令は、指定したレジスタの最上位ビット から"0"となっている連続ビットをカウントし、ビット数を別の指定したレジスタに書き込む。CTPOP命令は"1"になっているビットをカウントし、CTTZは最下位ビット から"0"となっている連続ビットをカウントする。
ニーモニック
命令
CTLZ
Count Leading Zero
CTPOP
Count Population
CTTZ
Count Trailing Zero
バージョン
最初の発表時、Alphaは今後25年間続くアーキテクチャになるとされた。これは真実にはならなかったが、Alphaはそれなりに長寿命だったと言える。最初のバージョンであるAlpha 21064 (EV4 ) は1992年 11月に導入され、192MHzで動作し、(0.75μmから0.675μmへ)ダイを若干縮小した EV4S は数カ月後に登場し、200MHzで動作した。64ビットプロセッサであるAlphaは、他のRISC設計と同様にスーパーパイプライン 化されスーパースケーラ であったが、にもかかわらずそれらの性能を凌駕し、DECは世界最速のプロセッサと喧伝した。Hudson設計チームのお家芸である回路設計へのこだわりにより、他のRISCチップとよく似たマイクロアーキテクチャであったにもかかわらず、Alphaはより高速で動作することができた。比較すると、次の春に発売されたインテル Pentium は66MHzで動作した。
Alpha 21164 (EV5 ) は333MHzで1995年 に市販された。1996年 7月 には500MHzに引き上げられ、1998年 3月 には666MHzとなった。また、1998年に450MHzで登場した Alpha 21264 (EV6 ) は、2001年 には1.25GHz版 (21264C /EV68CB ) がリリースされた。2003年に登場した Alpha 21364 (EV7 ) は、EV68コアに1.6GB/sのインターコネクトを4本追加したもので、マルチプロセッシング のためのプロセッサ間通信機能を強化している。クロック周波数は1GHzまたは1.15GHzである。
1996年、Alphaチップの生産はサムスン電子 にライセンスされた。コンパック によるDEC の買収により、Alphaの資産の大部分はサムスンとコンパックが出資したAPI NetWorks, Inc. (以前はAlpha Processor Inc.) に移管された。
2001年6月25日、コンパックはインテル Itanium に移行するため2004年 までにAlphaチップの開発を終了すると発表し、計画されていた EV8 (英語版 ) はキャンセルし、Alphaの知的資産をインテル に売却するとした[ 6] 。コンパックを買収したヒューレット・パッカード (HP) は、Alphaシリーズのサポートは数年間継続し、1.3GHz版のEV7であるEV7zチップをリリースするが、これが最後のAlphaシリーズになることを発表した。0.13μmルールを予定していた EV79 もキャンセルとなった。HPは Tru64 UNIX のメンテナンスと販売を2006年 まで継続し、サポートは2011年 まで延長された。
皮肉にも、Alphaがフェイズアウトする間際の2003年中盤に、米国 で1番と2番に速いコンピューターは共にAlphaプロセッサを使用していた。前者は4096個のAlphaプロセッサのクラスタである。
2004年8月16日 に、HPは1.3GHzのEV7zのリリースを発表し、これが生産される最後のAlphaモデルとなった。
モデル名
モデル番号
登場年
周波数 [MHz]
プロセス [µm]
トランジスタ数 [百万]
ダイサイズ [mm2 ]
ピン数
電力 [W]
電圧
一次データキャッシュ [KB][ 7]
一次命令キャッシュ [KB]
内蔵二次キャッシュ
外付けキャッシュ
ISA
EV4
21064
1992
100–200
0.75
1.68
234
290
30
3.3
8
–
128 KB–16 MB
EV4S
1993
0.675
186
27
EV45
21064A
1994
200–300
0.5
2.85
164
33
16
256 KB–16 MB
LCA4
21066
1993
100–166
0.675
1.75
209
21
8
LCA4
21068
1994
66
9
LCA45
21066A
100–266
0.5
1.8
161
23
LCA45
100
1.8
EV5
21164
1995
266–500
9.3
299
296
56
3.3/2.5
96 KB
最大64 MB
R
EV56
21164A
1996
366–666[ 8]
0.35
9.66[ 8]
209
31–55[ 8]
3.3/2.5[ 8]
R,B
PCA56
21164PC
1997[ 9]
400–533[ 9]
3.5[ 9]
141
264
26–35
3.3/2.5
8[ 9]
16[ 9]
–
512 KB–4 MB
R,B,M
PCA57
600–666
0.28
5.7
101
283
18–23
2.5/2.0
16
32[ 8]
EV6
21264
1998
450–600
0.35
15.2
314
389
73
2.0
64
2–8 MB
R,B,M,F
EV67
21264A
1999
600–750
0.25
210
R,B,M,F,C
EV68AL
21264B
2001
800–833
0.18
125
1.7
R,B,M,F,C,T
EV68CB
21264C
1000–1250
65–75
1.65
EV68CX
21264D
EV7
21364
2003
1000–1150
0.18
130
397
125
1.5
1.75 MB
–
EV7z
2004
1300
キャンセルされたモデル
EV78/EV79
21364A
2004(予定)
1700
0.13
152
300
120
1.2
64
1.75 MB
–
R,B,M,F,C,T
EV8
21464 (英語版 )
2003(予定)
1200–2000
0.125
250
420
1800
??
3 MB
モデル名
モデル番号
登場年
周波数 [MHz]
プロセス [µm]
トランジスタ数 [millions]
ダイサイズ [mm2 ]
ピン数
電力 [W]
電圧
一次データキャッシュ [KB]
一次命令キャッシュ [KB]
内蔵二次キャッシュ
外付けキャッシュ
ISA
ISA 拡張
R – 正負の無限大方向への丸めをハードウェアでサポート[ 10]
B – BWX、バイト/ワード拡張。8ビットと16ビットの操作命令を追加
M – MVI、マルチメディア拡張
F – FIX、平方根を求める命令と整数レジスタと浮動小数点レジスタ間の転送命令
C – CIX、ビットをカウントしビット位置を求める命令
T – ロック獲得の試みにおける性能改善のためのプリフェッチサポート
性能
Alphaベースのシステムでの性能を比較するため、以下にSPEC 性能値 (SPECint95, SPECfp95) の一覧を示す。SPECはコンピュータシステム全体(CPU、バス、メモリ、コンパイラ)の性能を測定するものとされていて、CPUだけの性能を示すものではない。また、1992年から1995年にかけて、このベンチマーク には変更が加えられている。それでも、Alphaアーキテクチャ(64ビット)と同時代のHP-PA(64ビット)やインテルベースのシステム(32ビット)との相対的な性能を大まかに比べることができる。最も明らかな傾向は、インテルとAlphaの整数演算性能は肩を並べているが、浮動小数点演算性能は大きな差があるという点である。一方、PA-RISC とAlphaはほぼ似たような性能だが、クロック周波数 (MHz) はHPの方がずっと低い。
システム
CPU
MHz
SPECint95
SPECfp95
1995年の性能比較 (SPEC CPU95[ 11] )
AlphaServer 8400 5/350
21164 (EV5)
350
10.1
14.2
Intel Alder System (200 MHz, 256KB L2)
Pentium Pro
200
8.9
6.75
HP 9000 C160
PA 8000
160
10.4
16.3
システム
CPU
MHz
SPECint95
SPECfp95
2000年の性能比較 (SPEC CPU95)
AlphaServer ES40 6/833
21264 (EV6)
833
50.0
100.0
Intel VC820 マザーボード
Pentium III
1000
46.8
31.9
HP 9000 C3600
PA-8600
552
42.1
64.0
Alphaベースのシステム
DEC Alpha ベースのシステムの第一世代として、DEC 3000 AXP (英語版 ) シリーズのワークステーションおよびサーバ、DEC 4000 AXP (英語版 ) シリーズのミッドレンジ・サーバ、DEC 7000 AXP および 10000 AXP (英語版 ) シリーズのハイエンド・サーバがある。DEC 3000 AXP システムでは以前のMIPS ベースのDECstation でも使っていたTURBOchannel を採用しているが、4000 ではFutureBus+ (英語版 ) を採用し、7000/10000ではVAX と似たようなアーキテクチャを採用している。
PC 風のAlphaワークステーション DECpc AXP 150 (英語版 ) もあり、EISA バスを採用していた。Windows NT をサポートした最初のAlphaシステムである。また、インテルベースのワークステーションのCPUをAlphaに置き換えたもの(Digital Personal Workstation (英語版 ) や Alpha XL/Alpha XLT)もある。
DECは組み込み用としてVMEバス 向けのワンボードマイコン も用意した。第一世代は21068ベースの AXPvme 64 と AXPvme 64LC、21066ベースの AXPvme 160 で、1994年3月1日に登場した。その後21066Aベースの AXPvme 100、AXPvme 166、AXPvme 230、21064Aベースの Alpha VME 4/224 と Alpha VME 4/288 と続いた。最後のモデルは21164ベースの Alpha VME 5/352 と Alpha VME 5/480 である。
21066はコンパクト・ワークステーションと称した DEC Multia (英語版 ) VX40/41/42 や、Tadpole Technology のラップトップ機 ALPHAbook 1 にも採用された。
1994年、DECは新たなファミリとして AlphaStation (英語版 ) と AlphaServer (英語版 ) を立ち上げた。21064または21164を使い、PCI バス、VGA 互換フレームバッファ 、PS/2 接続のキーボードとマウスを採用している。AlphaServer 8000 シリーズは DEC 7000/10000 AXP の後継で、XMIとFutureBus+を採用している。
AlphaStation XP1000 でワークステーションとして初めて21264を採用。その後21264を採用した AlphaServer/Station は DS (departmental server)、ES (enterprise server)、GS (global server) の3つに分類された。
最後の21364は AlphaServer ES47/ES80/GS1280 という3モデルと AlphaStation ES47 で採用された。
DECはOEM 用マザーボード もいくつか製造した。21066および21068ベースの AXPpci 33 "NoName" がOEM市場向けに出荷され[ 12] 、21164ベースの AlphaPC 164 と AlphaPC 164LX、21164PCベースの AlphaPC 164SX と AlphaPC 164RX、21264ベースの AlphaPC 264DP が続いた。SamsungやAPIといったサードパーティも API UP1000/UP2000 といったOEM用マザーボードを生産した。
サードパーティでのハードウェアおよびソフトウェア開発を助けるため、DECは EB64+ や EB164 といった評価ボードをプロセッサのモデル毎に製造した。
ネットアップ は21164と21264を様々なネットワークアタッチトストレージ システムで採用した。また、クレイ は超並列型 スーパーコンピュータ T3D と T3E でAlphaを採用している。
スーパーコンピュータ
Alphaプロセッサを採用した最も高性能なスーパーコンピュータ は、ロスアラモス国立研究所 の ASCI Q である。AlphaServer SC45/GS のクラスタ構成で、CPUは 21264 (EV68) 1.25GHz を4096個使用し、7.727TFLOPS (Rmax) という性能だった[ 13] 。
脚注
^ Bolotoff, Paul V. (14 April 2005). “Alpha: The History in Facts and Comments ”. Alasir. 2012年5月16日 閲覧。
^ “Alpha RetainTrust products ”. HP. 2012年5月16日 閲覧。
^ Espasa, Roger; Ardanaz, Federico; Gago, Julio; Gramunt, Roger; Hernandez, Isaac; Juan, Toni; Emer, Joel; Felix, Stephen; Lowney, Geoff; Mattina, Matthew; Seznec, Andre (2002). "Tarantula: A Vector Extension to the Alpha Architecture". In Danielle C. Martin (ed.). Proceedings: 29th Annual International Symposium on Computer Architecture (ISCA '02) . 29th Annual International Symposium on Computer Architecture (ISCA '02) . Joe Daigle/Studio Productions. Los Alamitos, Calif: IEEE Computer Society. pp. Page(s): 281–292. doi :10.1109/ISCA.2002.1003586 . ISBN 0-7695-1605-X 。
^ Gronowski, et al. ; Bowhill, W.J.; Donchin, D.R.; Blake-Campos, R.P.; Carlson, D.A.; Equi, E.R.; Loughlin, B.J.; Mehta, S. et al. (1996). “A 433-MHz 64-b quad-issue RISC microprocessor”. IEEE Journal of Solid-State Circuits 31 (11): 1687–1696. doi :10.1109/JSSC.1996.542313 .
^ Gwennap, Linley (18 November 1996). "Digital, MIPS Add Multimedia Extensions". Microprocessor Report .
^ Popovich, Ken (2001年6月28日). “Alpha proved costly for Compaq ”. www.zdnet.co.uk . ZDNet . 2009年5月1日 閲覧。
^ In the context of cache memory, 1 KB = 1024 bytes ; 1 MB = 1024 KB
^ a b c d e Paul V. Bolotoff (21st of April 2007). “Alpha: The History in Facts and Comments ”. 2008年11月22日 閲覧。
^ a b c d e “三菱電機とDEC、共同でパソコン向け低価格Alphaプロセッサを開発、6月より出荷 ”. PC Watch (1997年3月19日). 2012年8月23日 閲覧。
^ David Mosberger. “Overview of Alpha Family ”. 2009年12月9日 閲覧。
^ SPEC CPU95 Results
^ Reinhardt Krause. "DEC launching Alpha board push". Electronic News, April 4, 1994.
^ Los Alamos National Laboratories (2002年). “The ASCI Q System: 30 TeraOPS Capability at Los Alamos National Laboratory ”. 2010年6月6日 閲覧。
外部リンク