DEC Alpha


DEC_Alpha

Alphaは、もともとAlpha AXPとして知られており、 Digital Equipment Corporation(DEC)によって開発された64ビット 縮小命令セットコンピューティング(RISC)命令セットアーキテクチャ(ISA)です。Alphaは、32ビットVAX複雑命令セットコンピューター(CISC)に取って代わるように設計されており、 Unixワークステーションおよび同様の市場向けの非常に競争力のあるRISCプロセッサーです。
アルファ
Digitalが使用する「AlphaGeneration」ロゴ
デザイナー
デジタルイクイップメント株式会社
ビット
64ビット
紹介された
1992 ; 30年前 (1992)
設計 RISC タイプ
登録-登録
エンコーディング
修理済み
エンディアンネス Bi 拡張機能
バイト/ワード拡張(BWX)、平方根および浮動小数点変換拡張(FIX)、カウント拡張(CIX)、モーションビデオ命令(MVI)
開ける
はい
レジスター
一般的用途
31プラス常にゼロR31
浮動小数点
31プラス常に-0.0F31
DEC Alpha AXP21064マイクロプロセッサダイ写真
DEC Alpha AXP21064マイクロプロセッサ用パッケージ
いくつかの統計情報を含む名刺にマウントされたAlphaAXP21064ベアダイ
Compaq Alpha 21264C
Alphaは、元々 DECによって開発および製造された一連のマイクロプロセッサに実装されています。これらのマイクロプロセッサは、さまざまなDECワークステーションおよびサーバーで最も顕著に使用されており、最終的には中規模から大規模のラインナップのほぼすべての基盤を形成しました。いくつかのサードパーティベンダーも、PCフォームファクターマザーボードを含むAlphaシステムを製造しました。
Alphaをサポートするオペレーティングシステムには、 OpenVMS(以前はOpenVMS AXPと呼ばれていました)、Tru64 UNIX(以前はDEC OSF / 1AXPおよびDigitalUNIXと呼ばれていました)、Windows NT ( NT4.0以降は廃止されました。Windows2000RC2 のプレリリース)、 Linux(Debian、SUSE、 GentooおよびRedHat)、BSD UNIX(NetBSD、OpenBSDおよびFreeBSDから6.xまで)、 BellLabsのPlan9、およびL4Ka :: Pistachioカーネル。
Alphaアーキテクチャは、DECのほとんどの部分とともに1998年にCompaqに販売されました。 すでにIntel x86の顧客であるCompaqは、Alphaを段階的に廃止し、次のHewlett-Packard / IntelItaniumアーキテクチャを採用すると発表しました。 2001年にすべてのAlpha知的財産をIntelに売却し、製品を効果的に殺害した。Hewlett-Packardは2002年にCompaqを購入し、2004年まで既存の製品ラインの開発を続け、2007年4月まで主に既存の顧客ベースにAlphaベースのシステムを販売しました。

コンテンツ
1 歴史
1.1 プリズム 1.2 RISCy VAX 1.3 アルファ 1.4 改良されたモデル
2 設計原則
2.1 条件コード
3 レジスター
4 データ型
5 メモリー
6 命令フォーマット
7 指図書
7.1 制御手順 7.2 整数演算 7.3 論理的およびシフト
8 拡張機能
8.1 バイトワード拡張子(BWX) 8.2 モーションビデオインストラクション(MVI) 8.3 浮動小数点拡張(FIX) 8.4 カウント拡張(CIX)
9 実装
9.1 モデル履歴
10 パフォーマンス
11 アルファベースのシステム
11.1 スーパーコンピューター
12 ノート
13 参考文献
14 外部リンク

歴史

プリズム DEC PRISM Alphaは、 PRISM(P arallel R educed I nstruction S et Machine )という名前の初期のRISCプロジェクトから生まれました。これは、それ自体がいくつかの初期のプロジェクトの成果です。PRISMは、マイナーな変換後、UnixライクなアプリケーションとDigitalの既存のVAX / VMSソフトウェアの両方をサポートする柔軟な設計を目的としていました。MICAと呼ばれる新しいオペレーティングシステムは、共通のカーネル上でULTRIXとVAX / VMSの両方のインターフェイスをサポートし、両方のプラットフォームのソフトウェアをPRISMアーキテクチャに簡単に移植できるようにします。
1985年に開始されたPRISMの設計は、コンピューター市場の変化に対応して開発中に継続的に変更され、導入が大幅に遅れました。マイクロプロセッサ形式の最も初期のそのような設計の中で、それが64ビット設計であることが決定されたのは1987年の夏まででした。1987年10月、Sun Microsystemsは、新しいSPARCプロセッサを使用した最初のワークステーションであるSun-4を発表しました。Sun-4は、 Motorola 68020、およびDECが提供するUnix製品を使用した最新のSun-3設計の約3〜4倍の速度で動作します。計画は再び変更されました。PRISMは再び32ビット部分として再編成され、Unix市場を直接対象としました。これにより、設計がさらに遅れました。
PRISMの納期が遅れ続けるのを見て、さらに遅れる可能性に直面して、パロアルトオフィスのチームは別のRISCプロセッサを使用して独自のワークステーションを設計することにしました。デューデリジェンスの後、彼らはMIPS R2000を選択し、90日間でUltrixを実行する作業用ワークステーションを構築しました。これは、1988年7月の経営会議で頭に浮かんだ社内での激しい議論を引き起こした。PRISMはR2000よりも高速であるように見えましたが、R2000マシンは、PRISMより1年早い1989年1月までに市場に出る可能性がこの提案が受け入れられたとき、PRISMの2つの本来の役割のうちの1つは姿を消しました。VMS PRISMを作成する決定はこの時点ですでに終了しているため、残りの役割はありませんでした。PRISMは会議でキャンセルされました。

RISCy VAX
会議が解散したとき、BobSupnikはKenOlsenから連絡を受けました。彼は、RISCチップがVAXラインに対する将来の脅威であると述べました。彼はSupnikに、将来のRISCシステムとの競争力を維持するためにVAXで何ができるかを検討するように依頼しました。
これが「RISCyVAX」チームの結成につながりました。彼らは当初、3つの概念を検討しました。1つは、RISCのようなシステムで実行され、より複雑なVAX命令をシステムサブルーチンに任せるVAX命令セットアーキテクチャ(ISA)の縮小版でした。もう1つの概念は、既存のVAXコードをオンザフライで独自のISAに変換し、CPUキャッシュに保存する純粋なRISCシステムでした。最後に、完全なVAXISAを実行するはるかに高速なCISCプロセッサの可能性がまだありました。残念ながら、これらのアプローチはすべてオーバーヘッドをもたらし、ネイティブRISCコードを実行する純粋なRISCマシンと競合することはありません。
次に、グループは、既存のVAXシングルチップソリューションの1つと、高性能のニーズに使用されるコプロセッサとしてRISCチップを組み合わせたハイブリッドシステムを検討しました。これらの研究は、システムが必然的に性能の低い部分によって妨げられ、説得力のある利点を提供しないことを示唆しました。この時点で、ナンシークローネンバーグは、人々がVAXではなくVMSを実行していること、およびVMSには割り込みとメモリページングのモデリングに基づくハードウェアの依存関係がわずかしかないことを指摘しました。モデルのこれらの小さなビットが保持されている限り、VMSをRISCチップに移植できなかった理由はないようです。この概念に関するさらなる研究は、これが実行可能なアプローチであることを示唆しました。
Supnikは、結果として得られたレポートを1989年2月に戦略タスクフォースに提出しました。2つの質問が提起されました。結果として得られたRISC設計は、Unix市場のパフォーマンスリーダーでもあり、マシンはオープンスタンダードである必要がありますか。そしてそれとともに、適切な修正を加えたPRISMアーキテクチャを採用することが決定されました。これが「EVAX」のコンセプトとなり、成功したCMOSCVAX実装に続くものとなりました。経営陣が調査結果を受け入れたとき、彼らはプロジェクトにもっと中立的な名前を付け、「VAX」を削除し、最終的にアルファに落ち着くことに決めました。その後すぐに、新しいアーキテクチャへのVMSの移植に関する作業が開始されました。

アルファ
新しい設計では、PRISMの基本的な概念のほとんどが使用されていますが、VMSおよびVMSプログラムが変換なしで妥当な速度で実行できるように再調整されました。主なAlpha命令セットアーキテクトは、Richard L.SitesとRichardT.Witekでした。 PRISMのEpicodeはAlphaのPALcodeに開発され、プラットフォームおよびプロセッサの実装固有の機能への抽象化されたインターフェイスを提供します。
マイクロプロセッサ業界へのAlphaの主な貢献、およびそのパフォーマンスの主な理由は、アーキテクチャではなく、その実装です。当時(現在のように)、マイクロチップ業界は自動化された設計およびレイアウトツールによって支配されていました。Digitalのチップ設計者は、複雑なVAXアーキテクチャに対処するために、洗練された手動回路設計を追求し続けました。Alphaチップは、よりシンプルでクリーンなアーキテクチャに手動回路設計を適用すると、より自動化された設計システムで可能な動作周波数よりもはるかに高い動作周波数が可能になることを示しています。これらのチップは、マイクロプロセッサ設計コミュニティ内でカスタム回路設計のルネッサンスを引き起こしました。
当初、AlphaプロセッサはDECchip 21×64シリーズと呼ばれ、1990年代半ばに「DECchip」が「Alpha」に置き換えられました。最初の2桁の「21」は21世紀を意味し、最後の2桁の「64」は64ビットを意味します。 Alphaは最初から64ビットとして設計されており、32ビットバージョンはありません。真ん中の数字は、Alphaアーキテクチャの生成に対応しています。内部的には、AlphaプロセッサはEV番号によっても識別され、EVは正式には「ExtendedVAX」の略ですが、「Electric Vlasic 」という別のユーモラスな意味を持ち、 Western ResearchLabでのElectricPickle実験に敬意を表しています。

改良されたモデル
Alphaチップの最初の数世代は、当時最も革新的なものでした。
最初のバージョンであるAlpha21064またはEV4は、動作周波数が高出力のECLミニコンピューターおよびメインフレームに匹敵する最初のCMOSマイクロプロセッサーです。
2番目の21164またはEV5は、大きなセカンダリキャッシュをオンチップに配置した最初のマイクロプロセッサです。
3番目の21264またはEV6は、高い動作周波数とより複雑なアウトオブオーダー実行マイクロアーキテクチャの両方を組み合わせた最初のマイクロプロセッサです。
21364またはEV7は、オンチップメモリコントローラを搭載した最初の高性能プロセッサです。
未生産の21464またはEV8は、同時マルチスレッディングを最初に組み込んだものでしたが、このバージョンは、DECがCompaqに売却された後にキャンセルされました。タランチュラの研究プロジェクトは、おそらくEV9と呼ばれていましたが、ベクトルユニットを備えた最初のAlphaプロセッサでした。
DECの内部関係者に起因する永続的なレポートは、プロセッサのAXPタグの選択が、 VAXの商標の大失敗からまだ賢明であったDECの法務部門によって行われたことを示唆しています。長時間の検索の後、タグ「AXP」は完全に邪魔されていないことがわかりました。コンピュータ業界では、頭字語AXPが「ほぼ正確にPRISM」を意味するというジョークが始まりました。

設計原則
Alphaアーキテクチャは、高性能設計を目的としていました。Digitalは、このアーキテクチャが25年間でパフォーマンスの1000倍の向上をサポートすることを目的としていました。これを確実にするために、複数の命令の問題、クロックレート、またはマルチプロセッシングを妨げるアーキテクチャ上の機能はすべて削除されました。その結果、Alphaには次のものがありません。
分岐遅延スロット
抑制された指示
バイトロードまたはストア命令(後でバイトワード拡張(BWX)で追加)

条件コード
Alphaには、条件ステータスレジスタの潜在的なボトルネックを取り除くための整数命令の条件コードがありません。結果が64ビットに収まらない2つの数値を加算するなど、オーバーフローが発生する命令は、32または64の最下位ビットをデスティネーションレジスタに書き込みます。キャリーは、結果がいずれかのオペランドよりも小さいかどうかを確認するために、いずれかのオペランドを使用して結果に対して符号なし比較を実行することによって生成されます。テストが真の場合、値1がデスティネーションレジスタの最下位ビットに書き込まれ、状態を示します。

レジスター
DECAlphaレジスタ 6 3 。。。 4 7 。。。 3 1 。。。 1 5 。。。01 _ 00 _(ビット位置)
汎用レジスタR0 R0 R1 R1 R2 R2 •• ••
••R29 R29 R30 R30(ゼロ) R31(ゼロ)
R31、常にゼロ
浮動小数点レジスタF0 F0 F1 F1 F2 F2 •• ••
••F29 F29 F30 F30(ゼロ) F31(ゼロ)
F31、常にゼロ
プログラムカウンター PC0 0 プログラムカウンター_ _
制御レジスタ LR0 ロックレジスタ0 _ LR1 ロックレジスタ1 _ FPCR FP コントロールレジスタ_ _
このアーキテクチャは、プログラムカウンタ、2つのロックレジスタ、および浮動小数点制御レジスタ(FPCR)に加えて、32個の整数レジスタのセットと32個の浮動小数点レジスタのセットを定義します。また、実装で必要な場合にのみ実装される、オプションのレジスタも定義します。最後に、PALcodeのレジスタが定義されます。
整数レジスタはR0〜R31で示され、浮動小数点レジスタはF0〜F31で示されます。R31およびF31レジスタはゼロに配線されており、命令によるこれらのレジスタへの書き込みは無視されます。Digitalは結合レジスタファイルの使用を検討しましたが、2チップ実装では各チップにレジスタファイルを配置でき、整数のみの実装では浮動小数点レジスタファイルを省略できるため、分割レジスタファイルの方が優れていると判断されました。浮動小数点レジスタ。スプリットレジスタファイルは、読み取りポートと書き込みポートの数が減ったため、複数の命令の問題に適していると判断されました。レジスタファイルあたりのレジスタ数も考慮され、32と64が競合しました。Digitalは、必要なダイスペースが少なくて済み、クロック周波数が向上するため、32レジスタの方が適していると結論付けました。この数のレジスタは、32個のレジスタが少なくとも8方向の命令の問題をサポートできるため、パフォーマンスと将来の成長に関して大きな問題ではないと見なされました。
プログラムカウンタは64ビットレジスタであり、ロングワードアラインされた仮想バイトアドレスが含まれています。つまり、プログラムカウンタの下位2ビットは常にゼロです。命令がデコードされると、PCは次の命令のアドレスまで4インクリメントされます。ロックフラグとロックされた物理アドレスレジスタは、マルチプロセッサをサポートするためのロードロックおよびストア条件付き命令によって使用されます。浮動小数点制御レジスタ(FPCR)は、 IEEE754準拠の浮動小数点ハードウェアを使用したAlpha実装での使用を目的としたアーキテクチャによって定義された64ビットレジスタです。

データ型
Alphaアーキテクチャでは、バイトは8ビット データム(オクテット)、ワードは16ビットデータム、ロングワードは32ビットデータム、クアッドワードは64ビットデータム、オクタワードは次のように定義されます。 128ビットのデータ。
Alphaアーキテクチャは、もともと6つのデータ型を定義していました。
クアッドワード(64ビット)整数
ロングワード(32ビット)整数
IEEE T-浮動小数点(倍精度、64ビット)
IEEE S-浮動小数点(単精度、32ビット)
Alphaに先行する32ビットアーキテクチャであるVAXとの互換性のレベルを維持するために、他の2つの浮動小数点データ型が含まれています。
VAX G-浮動小数点(倍精度、64ビット)
VAX F-浮動小数点(単精度、32ビット)
VAX H浮動小数点(四倍精度、128ビット)はサポートされていませんでしたが、別の128ビット浮動小数点オプションであるX浮動小数点はAlphaで使用できますが、VAXでは使用できません。 HとXは類似していると説明されていますが、同一ではありません。H-floatingのソフトウェアエミュレーションは、DECmigrateという名前のソースコードレベルコンバータと同様に、DECから入手できます。

メモリー
Alphaには、メモリセグメンテーションのない64ビットの線形仮想アドレス空間が実装では、最小サイズが43ビットのより小さな仮想アドレス空間を実装できます。未使用のビットはTLBなどのハードウェアに実装されていませんが、アーキテクチャでは、より大きな(または完全な)仮想アドレス空間を持つ実装とのソフトウェア互換性を確保するために、それらがゼロかどうかをチェックする実装が必要でした。

命令フォーマット
AlphaISAの命令長は32ビットに固定されています。6つの命令フォーマットが
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形式
整数演算形式は整数命令で使用されます。これには、6ビットのオペコードフィールドが含まれ、その後に、第1オペランドを含むレジスタを指定するRaフィールドと、第2オペランドを含むレジスタを指定するRbフィールドが続きます。次は、未使用で予約されている3ビットフィールドです。1ビットフィールドには「0」が含まれ、この形式を整数リテラル形式と区別します。7ビットの関数フィールドが続きます。これは、演算を指定するためにオペコードと組み合わせて使用​​されます。最後のフィールドはRcフィールドで、計算結果を書き込むレジスタを指定します。レジスタフィールドはすべて5ビット長で、32個の一意の位置(32個の整数レジスタ)をアドレス指定するために必要です。
整数リテラル形式は、オペランドの1つとしてリテラルを使用する整数命令で使用されます。形式は整数演算形式と同じですが、5ビットのRbフィールドと3ビットの未使用スペースが64ビットのオペランドにゼロ拡張された8ビットのリテラルフィールドに置き換えられている点が異なります。
浮動小数点演算形式は、浮動小数点命令で使用されます。整数演算形式に似ていますが、整数演算形式で予約されているリテラルビットと未使用ビットを使用することで11ビットの関数フィールドが可能になります。
メモリフォーマットは、主にロードおよびストア命令によって使用されます。これには、6ビットのオペコードフィールド、5ビットのRaフィールド、5ビットのRbフィールド、および16ビットの変位フィールドが
分岐命令には、6ビットのオペコードフィールド、5ビットのRaフィールド、および21ビットの変位フィールドがRaフィールドは、条件付き分岐命令によってテストされるレジスタを指定し、条件が満たされた場合、プログラムカウンターは、変位フィールドの内容をプログラムカウンターに追加することによって更新されます。変位フィールドには符号付き整数が含まれ、整数の値が正の場合、分岐が行われると、プログラムカウンターがインクリメントされます。整数の値が負の場合、分岐が行われるとプログラムカウンターがデクリメントされます。したがって、分岐の範囲は±1 Mi命令、つまり±4MiBです。Alpha Architectureは、アーキテクチャの将来を見据えた目標の一部として、広範囲にわたって設計されました。
CALL_PAL形式は、 PALcodeサブルーチンCALL_PALを呼び出すために使用される命令によって使用されます。このフォーマットはオペコードフィールドを保持しますが、他のフィールドを26ビットの関数フィールドに置き換えます。このフィールドには、PALサブルーチンを指定する整数が含まれています。

指図書

制御手順
制御命令は、条件付きおよび無条件の分岐とジャンプで構成されます。条件付きおよび無条件の分岐命令は分岐命令形式を使用し、ジャンプ命令はメモリ命令形式を使用します。
条件分岐は、レジスタの最下位ビットが設定またはクリアされているかどうかをテストするか、符号付きクワッドワードとしてレジスタをゼロと比較し、指定された条件が真の場合に分岐します。レジスタをゼロと比較するために使用できる条件は、等式、不等式、より小さい、以下、以上、およびより大きいです。新しいアドレスは、ロングワードアラインメントと21ビット変位の符号拡張によって計算され、条件分岐に続く命令のアドレスに追加されます。
無条件分岐は、条件分岐と同じ方法で計算された新しいアドレスでプログラムカウンターを更新します。また、無条件分岐に続く命令のアドレスをレジスタに保存します。そのような命令は2つあり、分岐予測ハードウェアに提供されるヒントのみが異なります。
4つのジャンプ命令がこれらはすべて同じ操作を実行し、ジャンプに続く命令のアドレスを保存し、プログラムカウンターにレジスタからの新しいアドレスを提供します。それらは、分岐予測ハードウェアに提供されるヒントが異なります。未使用の変位フィールドは、この目的で使用されます。

整数演算
整数算術命令は、ロングワードとクアドワードに対して加算、乗算、および減算を実行します。とクアドワードの比較。アーキテクトはハードウェアでの除算の実装は単純さに不利であると考えていたため、除算の指示はありません。標準の加算および減算命令に加えて、スケーリングされたバージョンがこれらのバージョンは、加算または減算する前に、2番目のオペランドを2ビットまたは3ビット左にシフトします。MultiplyLongwordおよびMultiplyQuadword命令は、64ビットまたは128ビットの結果の最下位32ビットまたは64ビットをそれぞれ宛先レジスタに書き込みます。最上位の半分を取得すると便利なため、Unsigned Multiply Quadword High(UMULH)命令が提供されています。UMULHは、多倍長演算および除算アルゴリズムを実装するために使用されます。結果の最も重要な半分を返す乗算用の個別の命令の概念は、PRISMから採用されました。
ロングワードで動作する命令は、レジスタの最上位半分を無視し、32ビットの結果は宛先レジスタに書き込まれる前に符号拡張されます。デフォルトでは、加算、乗算、および減算の命令は、UMULHおよびスケーリングされたバージョンの加算および減算を除いて、オーバーフローをトラップしません。このような機能が必要な場合は、オーバーフロー検出とオーバーフローのトラップを実行するこれらの命令のバージョンが提供されます。
比較命令は、2つのレジスタまたはレジスタとリテラルを比較し、指定された条件が真の場合は宛先レジスタに「1」を書き込み、そうでない場合は「0」を書き込みます。条件は、等式、不等式、以下、および未満です。前の2つの条件を指定する命令を除いて、符号付きと符号なしの比較を実行するバージョンが
整数算術命令は、整数演算命令フォーマットを使用します。

論理的およびシフト
論理命令は、整数レジスタでビット単位の論理演算と条件付き移動を実行するための命令で構成されています。ビット単位の論理命令は、2つのレジスタ間またはレジスタとリテラル間でAND、NAND、NOR、OR、XNOR、およびXORを実行します。条件付き移動命令は、レジスタを符号付きクワッドワードとしてゼロにテストし、指定された条件が真の場合に移動します。指定された条件は、等式、不等式、以下、以下、以上、および以上です。シフト命令は、算術右シフト、および論理左シフトと右シフトを実行します。シフト量は、レジスタまたはリテラルによって指定されます。論理命令とシフト命令は、整数演算命令形式を使用します。

拡張機能

バイトワード拡張子(BWX)
後のアルファには、バイトワード拡張子、8ビットおよび16ビットのデータ型を操作するための一連の命令が含まれています。これらの命令は、21164A(EV56)マイクロプロセッサで最初に導入され、その後のすべての実装に存在します。これらの命令は、以前は複数の命令を実装する必要があった操作を実行します。これにより、コード密度と特定のアプリケーションのパフォーマンスが向上します。BWXを使用すると、x86マシンコードのエミュレーションとデバイスドライバーの作成も簡単になります。
ニモニック 命令
LDBU ゼロ拡張バイトをメモリからレジスタにロード
LDWU ゼロ拡張ワードをメモリからレジスタにロード
SEXTB 符号拡張バイト
SEXTW 符号拡張ワード
STB レジスタからメモリへのバイトの格納
STW レジスタからメモリへのワードの保存

モーションビデオインストラクション(MVI)
モーションビデオ命令(MVI)は、Alpha ISAの命令セット拡張であり、単一命令、複数データ(SIMD)操作の命令を追加しました。 MVIを時系列で実装するAlpha実装は、Alpha 21164PC(PCA56およびPCA57)、Alpha 21264(EV6)、およびAlpha 21364(EV7)です。MIPSのMDMXやSPARCのビジュアル命令セットなど、同じ期間の他のほとんどのSIMD命令セットとは異なり、PA -RISCのMultimedia Acceleration eXtensions(MAX-1、MAX-2)と同様に、MVIは単純な命令セットでした。既存の整数レジスタに格納されている整数データ型を操作するいくつかの命令で構成されています。
MVIの単純さは、2つの理由によるものです。まず、Digitalは、Alpha 21164がすでにソフトウェアを介してDVDデコードを実行できるため、その目的のためにハードウェアのプロビジョニングを必要としないと判断しましたが、 MPEG-2エンコーディングでは非効率的でした。2番目の理由は、実装の高速サイクル時間を維持する必要があることです。多くの命令を追加すると、命令デコードロジックが複雑になり、拡大して、実装のクロック周波数が低下します。
MVIは13の命令で構成されています。
ニモニック 命令
MAXSB8 ベクトル符号付きバイトの最大値
MAXSW4 ベクトル署名された単語の最大値
MAXUB8 ベクトル符号なしバイトの最大値
MAXUW4 ベクトル符号なしワードの最大値
MINSB8 ベクトル符号付きバイトの最小値
MINSW4 ベクトル署名された単語の最小値
MINUB8 ベクトル符号なしバイトの最小値
MINUW4 ベクトル符号なしワード最小
PERR ピクセルエラー
PKLB ロングワードをバイトにパック
PKWB 単語をバイトにパック
UNPKBL バイトをロングワードに解凍
UNPKBW バイトをワードに解凍

浮動小数点拡張(FIX)
浮動小数点拡張(FIX)は、Alphaアーキテクチャの拡張です。浮動小数点平方根と、整数レジスタおよび浮動小数点レジスタとの間でデータを転送するための9つの命令を紹介します。Alpha 21264(EV6)は、これらの命令を実装した最初のマイクロプロセッサです。
ニモニック 命令
FTOIS 浮動小数点から整数レジスタへの移動、S_floating
FTOIT 浮動小数点から整数レジスタへの移動、T_floating
ITOFF 整数から浮動小数点レジスタへの移動、F_floating
ITOFS 整数から浮動小数点レジスタへの移動、S_floating
ITOFT 整数から浮動小数点レジスタへの移動、T_floating
SQRTF 平方根F_floating
SQRTG 平方根G_floating
SQRTS 平方根S_floating
SQRTT 平方根T_floating

カウント拡張(CIX)
カウント拡張(CIX)は、ビットをカウントするための3つの命令を導入するアーキテクチャの拡張です。これらの命令は、整数演算命令として分類されます。これらは、 Alpha 21264A(EV67)に最初に実装されました。
ニモニック 命令
CTLZ 先行ゼロを数える
CTPOP 人口を数える
CTTZ 後続ゼロをカウント

実装
その発表の時点で、Alphaは次の25年間のアーキテクチャとして予告されていました。これはそうではありませんでしたが、それでもアルファはかなり長い寿命を持っていました。最初のバージョンであるAlpha21064(別名EV4 )は、1992年11月に最大192MHzで動作するように導入されました。ダイのわずかな収縮(EV4S、0.75 µmから0.675 µmに収縮)は、数か月後に200MHzで実行されました。64ビットプロセッサは、他のRISC設計と同様に、スーパーパイプラインおよびスーパースカラー設計でしたが、それでもすべてを上回り、DECはそれを世界最速のプロセッサとして宣伝しました。回路設計に細心の注意を払うことで、ハドソン設計チームの特徴は、巨大な集中型クロック回路のように、マイクロアーキテクチャが他のRISCチップとかなり似ていたとしても、CPUをより高速で実行できるようにしました。それに比べて、より安価なIntel Pentiumは、翌年の春に発売されたときに66MHzで動作していました。
Alpha 21164またはEV5は、最大333MHzのプロセッサ周波数で1995年に利用可能になりました。1996年7月に回線の速度が500MHzに、1998年3月に666MHzにバンプされました。また、1998年にAlpha 21264(EV6)が450 MHzでリリースされ、最終的に(2001年に21264C / EV68CBで)1.25GHzに達しました。2003年に、Alpha21364またはEV7Marvel が発売されました。これは、1または1.15 GHzで動作する、マルチプロセッサシステムのパフォーマンスを向上させるための4つの1.6 GB / s プロセッサ間通信リンクを備えたEV68コアです。
1996年に、Alphaチップの製造はSamsung ElectronicsCompanyにライセンス供与されました。CompaqによるDigitalの購入後、Alpha製品の大部分は、 SamsungとCompaqが資金提供する民間企業であるAPI NetWorks、Inc。(以前のAlpha Processor Inc.)に配置されました。2001年10月、Microwayは、APINetWorksのAlphaベースの製品ラインの独占的な販売およびサービスプロバイダーになりました。
2001年6月25日、Compaqは、Alphaが2004年までに段階的に廃止され、IntelのItaniumを支持し、計画されていたEV8チップをキャンセルし、Alphaのすべての知的財産をIntelに売却すると発表しました。 Hewlett-Packardは2002年にCompaqと合併しました。HPは、 EV7zと呼ばれる1.3 GHz EV7バリアントのリリースを含め、Alphaシリーズの開発がさらに数年間続くと発表しました。これはAlphaの最後の反復であり、0.13 µmEV79もキャンセルされます。
Alphaは、西部研究所およびシステム研究センターのCompaqの企業研究およびノンストップハードウェア開発グループによって開発された研究プロトタイプであるPiranhaにも実装されています。Piranhaは、 8つの単純なコアを含むトランザクション処理ワークロード用のマルチコア設計です。これは、2000年6月に開催された第27回コンピュータアーキテクチャに関する国際シンポジウムで説明されました。

モデル履歴
モデル
モデル番号 年 周波数
プロセス
トランジスタ
ダイサイズ
IOピン
パワー
電圧Dcache Icache
スキャッシュBcache SA EV4 21064 1992 100〜200 0.75
1.68234 290 303.3 8
8– 128 KB〜16 MBEV4S 21064 1993年 100〜200 0.675
1.68186 290 273.3 8
8– 128 KB〜16 MBEV45 21064A 1994年 200〜300 0.5
2.85164 333.3 16
16– 256 KB〜16 MBLCA4 21066 1993年 100〜166 0.675
1.75209 213.3 8
8– LCA4 210681994年 66 0.675
1.75209 93.3 8
8– LCA45 21066A1994年 100〜266 0.5
1.8161 233.3 8
8– LCA45 21068A1994年 100 0.5 1.8 161 3.3 8
8– EV5 211641995年 266〜500 0.5
9.3299 296 56
3.3 / 2.58 8 96 KB 最大64MBR EV56 21164A 1996年
366–666 0.35 9.66 209 31–55
3.3 / 2.5 8 8 96 KB 最大64MBR、B PCA56 21164PC 1997年 400〜533 0.35
3.5141 264 26〜35 3.3 / 2.5 8 16– 512 KB〜4 MB
R、B、MPCA57 21164PC 600〜666 0.28
5.7101 283 18〜23 2.5 / 2.0 16 32 – 512 KB〜4 MB
R、B、MEV6 21264 1998年 450〜600 0.35
15.2314 389 732.0 64
64– 2〜8 MB
R、B、M、FEV67 21264A 1999年 600〜750 0.25
15.2210 3892.0 64
64– 2〜8 MB
R、B、M、F、CEV68AL 21264B 2001年 800〜833 0.18 15.2 125 1.7 64 64– 2〜8 MB
R、B、M、F、C、TEV68CB 21264C 2001年 1000〜1250 0.18 15.2 125 65〜751.65 64
64– 2〜8 MB
R、B、M、F、C、TEV68CX 21264D 1.65 64
64– 2〜8 MB
R、B、M、F、C、TEV7 21364 2003年 1000〜1150
0.18130 397 125
1.564 64
1.75 MB– R、B、M、F、C、TEV7z 21364 2004年 1300
0.18130 397 125
1.564 64
1.75 MB– R、B、M、F、C、T
キャンセル
EV78 / EV79 21364A
2004年に予定 1700 0.13152 300 120
1.264 64
1.75 MB– R、B、M、F、C、T EV8 21464 2003年に予定 1200〜2000 0.125250 420 1800 ?? 1.264 64
3 MB– R、B、M、F、C、T
モデル
モデル番号 年 周波数
プロセス
トランジスタ
ダイサイズ
IOピン
パワー
電圧Dcache Icache
スキャッシュBcache SA
ISA拡張機能
R –無限大および負の無限大への丸めのハードウェアサポート。
B – BWX、「バイト/ワード拡張」、メモリおよびI / Oからの8ビットおよび16ビット操作を可能にする命令を追加
M – MVI、「マルチメディア」命令
F – FIX、整数レジスタと浮動小数点レジスタの間、および平方根のデータを移動するための命令
C – CIX、ビットをカウントおよび検索するための命令
T –ロックを取得する最初の試行のパフォーマンスを向上させるための変更インテントによるプリフェッチのサポート

パフォーマンス
Alphaベースのシステムのパフォーマンスの比較を説明するために、いくつかのSPECパフォーマンス数値(SPECint95、SPECfp95)を以下に示します。SPECの結果は、CPUだけでなく、コンピューターシステム全体(CPU、バス、メモリ、コンパイラオプティマイザ)の測定されたパフォーマンスを報告すると主張していることに注意してまた、ベンチマークとスケールが1992年から1995年に変更されたことにも注意してただし、これらの数値は、現在のHP(64ビット)およびIntelベースの製品(64ビット)と比較したAlphaアーキテクチャ(64ビット)のパフォーマンスの大まかな印象を示しています。 32ビット)。おそらく最も明白な傾向は、Intelは整数パフォーマンスでは常にAlphaにかなり近づくことができましたが、浮動小数点パフォーマンスではその差がかなり大きかったということです。一方、HP(PA-RISC)もAlphaにかなり近いですが、これらのCPUは大幅に低いクロックレート(MHz)で実行されています。これらの表には、消費電力とCPUの価格という2つの重要な値がありません。
システムCPU MHz
整数
浮動小数点
SPECベンチマーク1995のパフォーマンス比較( SPECint95および
SPECfp95の結果
を使用)
AlphaServer 8400 5/350
21164(EV5)350 10.1 14.2
Intel Alderシステム(200 MHz、256 KB L2)Pentium Pro 200 8.9 6.75
HP 9000 C160PA 8000 160 10.4 16.3
システムCPU MHz
整数
浮動小数点
2000年のパフォーマンス比較( SPECint95および
SPECfp95の結果を使用)
AlphaServer ES40 6/833
21264(EV6)833 50.0 100.0
IntelVC820マザーボードPentium III 1000 46.8 31.9
HP 9000 C3600PA-8600 552 42.1
64.0

アルファベースのシステム
DEC Alphaベースのシステムの第1世代は、DEC 3000 AXPシリーズワークステーションとローエンドサーバー、DEC 4000 AXPシリーズミッドレンジサーバー、およびDEC 7000AXPと10000AXPシリーズハイエンドサーバーで構成されています。DEC 3000 AXPシステムは以前のMIPSベースのDECstationモデルと同じTURBOchannelバスを使用しますが、4000はFutureBus +に基づいており、 7000/10000は対応するVAXモデルとアーキテクチャを共有しています。
DECは、 EISAバスを備えたPCのようなAlphaワークステーションであるDECpc AXP 150(コードネーム「Jensen」、別名DEC 2000 AXP)も製造しました。これは、 WindowsNTをサポートする最初のAlphaシステムです。DECは後に、21164プロセッサを搭載したCelebrisXLおよびDigitalPersonal WorkstationPCラインのAlphaバージョンを製造しました。
Digitalは、組み込みおよび産業用のVMEbusをベースにしたシングルボードコンピューターも製造しました。第1世代には、21068ベースのAXPvme64とAXPvme64LC、および21066ベースのAXPvme 160が含まれます。これらは1994年3月1日に導入されました。AXPvme100、AXPvme 166、AXPvme230などの後のモデルは21066Aプロセッサに基づいています。 、Alpha VME4 / 224およびAlphaVME4 / 288は21064Aプロセッサに基づいています。最後のモデルであるAlphaVME5 / 352およびAlphaVME 5/480は、21164プロセッサに基づいています。
21066チップは、DEC Multia VX40 / 41/42コンパクトワークステーションおよびTadpoleTechnologyのALPHAbook1ラップトップで使用されています。
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(部門サーバー)、ES(エンタープライズサーバー)、またはGS(グローバルサーバー)ファミリに分類されます。
最後の21364チップは、AlphaServer ES47、ES80、GS1280モデル、およびAlphaStationES47で使用されます。
多くのOEM マザーボードがDECによって製造されました。たとえば、21066および21068ベースのAXPpci 33 “NoName”は、同社によるOEM市場への主要なプッシュの一部であり、 21164ベースのAlphaPC164およびAlphaPCです。 164LX、21164PCベースのAlphaPC164SXとAlphaPC164RX、および21264ベースのAlphaPC264DP。SamsungやAPIなどのいくつかのサードパーティも、APIUP1000やUP2000などのOEMマザーボードを製造していました。
サードパーティがプラットフォーム用のハードウェアとソフトウェアを開発するのを支援するために、DECは、Alpha21064Aおよび21164マイクロプロセッサ用のEB64 +およびEB164などの評価ボードをそれぞれ製造しました。
21164および21264プロセッサは、さまざまなネットワーク接続ストレージシステムでNetAppによって使用され、21064および21164プロセッサは、T3DおよびT3E超並列スーパーコンピュータでCrayによって使用されました。

スーパーコンピューター
アルファプロセッサをベースにした最速のスーパーコンピュータは、ロスアラモス国立研究所のASCIQです。マシンは、HP AlphaServer SC45 / GSクラスターとして構築されました。4096個のAlpha(21264 EV-68、1.25 GHz)CPUを搭載し、Rmaxが7.727TFLOPSに達しました。

ノート
^ データ転送のコンテキストでは、1GBは10億バイトを意味するために使用されます ^ キャッシュメモリのコンテキストでは、1 KB = 1024バイト; 1 MB = 1024 KB

参考文献
^ Paul V. Bolotoff(2007年4月21日)。「アルファ:事実とコメントの歴史」。2013年12月3日にオリジナルからアーカイブされました。
^ アーロンサコビッチ(2001)。「Windows2000?」。AlphaNTソース。2008年7月8日にオリジナルからアーカイブされました。
^ 「SUSELinux7.0 AlphaEdition」。SUSE。2000 。
^ 「DECAlphaのゴーストは、Windowsがファイル圧縮でゴミになる理由です」。TheRegister.co.uk。2016年11月2日。
^ ポポビッチ、ケン(2001-06-28)。「AlphaはCompaqにとってコストがかかることが証明されました」。www.zdnet.com。ZDNet 。
^ 「AlphaServer環境の変革」。HP。2007年2月8日にオリジナルからアーカイブされました。
^ キャサリンリチャードソン; テリーモリス; ロッキーモーガン; リードブラウン; ドナ・メイクル(1987年3月)。「MICAソフトウェア事業計画」(PDF)。bitsavers.org 。2021-01-04を取得。
^ Supnik、Bob(2008年2月24日)。「MicroPrism」。コンピュータ歴史シミュレーションプロジェクト。
^ Bolotoff、Paul V(2007-04-22)。「アルファ:事実とコメントの歴史」。2019-09-09を取得しました。
^ マークスマザーマン。「DECPRISMのスケッチ」。PRISM(並列縮小命令セットマシン)… 1985年8月のPRISMアーキテクチャの最初のドラフト。DECは、MIPSベースを支持して1988年にプロジェクトをキャンセルします…
^ Comerford、Richard(1992年7月)。「DECがAlphaを開発した方法」。IEEEスペクトラム。29(7): 28。doi :10.1109 /6.144508。
^ Supnik、Bob(1992)。「序文」。デジタルテクニカルジャーナル。4(4)。
^ 「技術的飛躍の管理:DECのアルファ設計チームの研究」(PDF)。1993年4月。
^ リチャードL.サイト; リチャードT.ウィテック(2014-05-16)。AlphaAXPアーキテクチャリファレンスマニュアル-第2版。ISBN
 978-1-4831-8403-6。
^ Warner、W。(2004年12月22日)。「マイクロプロセッサの歴史における素晴らしい瞬間」。IBM。
^ “cpu-collection.de –DEC AlphaAXP”。Alphaファミリの最初のプロセッサは、DECchip 21064シリーズ(21世紀を意味する「21」)に指定されました。
^ ビルハンバーゲン; ジェフ・モーグル; ブライアンリード; アランユースタス; リチャードスワン; メアリージョードハティ; ジョエルバートレット(1989)。「WRLテクニカルノートTN-13:有機照明システムの特性評価」(PDF)。Digital EquipmentCorporation 。
^ ジョンH.エドモンドソン; ポールI.ルービンフェルド; ピーターJ.バノン; ブラッドリーJ.ベンシュナイダー; デブラバーンスタイン; ルーベンW.カステリーノ; エリザベスM.クーパー; Daniel E. Dever; デールR.ドンチン; ティモシーC.フィッシャー; アニル・K・ジャイン; シェカーメッタ; ジャンヌE.マイヤー; ロナルドP.プレストン; Vidya Rajagopalan; チャンドラセカラソマナサン; スコットA.テイラー; ギルバートM.ウォルリッヒ(1995)。「Alpha21164、300 MHz64ビットクアッドイシューCMOSRISCマイクロプロセッサの内部構成」。デジタルテクニカルジャーナル。7(1):119–135。CiteSeerX10.1.1.38.9551。_ 大規模なオンチップの第2レベルのライトバックキャッシュ
^ レビュー、CTI(2016)。構造化されたコンピュータ組織。ISBN
 978-1478426738。21364 …オンチップメモリ​​コントローラーを搭載した最初の高性能プロセッサー。
^ ロジャーエスパサ; フェデリコ・アルダナズ; フリオガゴ; Roger Gramunt; アイザックエルナンデス; トニファン; ジョエルエマー; スティーブンフェリックス; ジェフ・ローニー; マシューマティーナ; アンドレ・セズネック(2002)。「タランチュラ:アルファアーキテクチャへのベクトル拡張」。ダニエルC.マーティン(編)。議事録:コンピュータアーキテクチャに関する第29回年次国際シンポジウム(ISCA ’02)。コンピュータアーキテクチャに関する第29回国際シンポジウム(ISCA ’02)。ジョーデイグル/スタジオプロダクション。カリフォルニア州ロスアラミトス:IEEE ComputerSociety。pp。ページ:281–292。土井:10.1109 /ISCA.2002.1003586。ISBN
 0-7695-1605-X。
^ 「VAXバキューム」。…法的に、DECがその前に米国でVAXを使用したことがある場合、…..「合理的な人」は2つの使用を区別するのに問題はありません。
^ 「AlphaAXP、パート8:メモリアクセス、バイトとワードの保存」。2017年8月16日。AlphaAXPでアラインされていないメモリを処理するのは非常に面倒です。
^ 「Alpha21264マイクロプロセッサデータシート」(PDF)。BWX拡張機能を構成する命令は…
^ 「MIPS命令」。DEC Alpha …、整数条件コードなし。
^ 「アルファビット-未来への移行」。DECProfessional。1992年8月。p。62.Hフローティングデータ型はAlphaでは使用できません
^ 「OpenVMSVAXからOpenVMSAlphaへのアプリケーションの移行」。
^ Gronowski、PE; ボウヒル、WJ; ドンチン、DR; ブレイク-カンポス、RP; カールソン、DA; エクイ、ER; Loughlin、BJ; Mehta、S。; ミューラー、RO; オレシン、A。; Noorlag、DJW; プレストン、RP(1996)。「433MHz64bクワッドイシューRISCマイクロプロセッサ」。IEEE Journal of Solid-StateCircuits。31(11):1687–1696。Bibcode:1996IJSSC..31.1687G。土井:10.1109 /JSSC.1996.542313。S2CID39280205。_
^ グウェンナップ、リンリー(1996年11月18日)。「デジタル、MIPSマルチメディア拡張機能の追加」。マイクロプロセッサレポート。
^ ルイスアンドレバローゾ; Kourosh Gharachorloo; ロバートマクナマラ; Andreas Nowatzyk; シャズ・カディール; バートン佐野; スコットスミス; ロバート・ステッツ; ベン・ベルギーズ(2000)。Piranha:シングルチップマルチプロセッシングに基づくスケーラブルなアーキテクチャ。コンピュータアーキテクチャに関する第27回年次国際シンポジウム。土井:10.1145 /339647.339696。
^ デビッド・モスバーガー。「アルファファミリーの概要」。
^ ラインハルトクラウス。「DECがアルファボードプッシュを開始」。電子ニュース、1994年4月4日。
^ ロスアラモス国立研究所(2002)。「ASCIQシステム:ロスアラモス国立研究所での30のTeraOPS機能」(PDF)。2011年1月12日にオリジナル(PDF)からアーカイブされました。

外部リンク
アルファアーキテクチャハンドブック、バージョン4
アルファアーキテクチャハンドブック、バージョン3
Digital Technical Journal、Volume 4、Number 4、Special Issue 1992 Alpha AXP Architecture and Systemsこの号には、Alpha’sArchitectsからのいくつかの記事が含まれています。
アーカイブされた技術文書ライブラリこのリンクには、Alphaマイクロプロセッサ、チップセット、およびOEMマザーボードのハードウェアリファレンスマニュアルとデータシートが掲載されています。Alpha ArchitectureHandbookとさまざまなプログラミングマニュアルが含まれています。
ダン・ドバープルとの会話(2003年10月1日)
ブルースハットン博士のコンピュータアーキテクチャに関する講義ノート