DEC Alpha

DEC Alpha アーキテクチャの詳細



DEC Alpha(別名:Alpha AXP)は、ディジタル・イクイップメント・コーポレーション (DEC) が開発した64[[ビット]]RISC命令セットアーキテクチャ (ISA) です。これは、32[[ビット]]のVAX CISC ISAを置き換えるために設計されました。Alphaは、DECがマイクロプロセッサとして実装および製造を行い、主にワークステーションサーバーで使用されました。また、サードパーティもAlpha搭載システムを製造し、PCフォームファクタのマザーボードも登場しました。

サポートされたオペレーティングシステム



Alphaは、当初DEC版UNIX (Tru64 UNIX) やVMSをサポートしていました。その後、Linux(Debian GNU/Linux、Gentoo Linux、Red Hat Linux)や一部のBSD(NetBSDOpenBSD、FreeBSD)などのオープンソースOSも動作するようになりました。MicrosoftもWindows NT 4.0 SP6までAlphaをサポートしていましたが、Windows 2000 RC2を最後にサポートを打ち切りました。

歴史的背景



Alphaは、PRISMという初期のRISCプロジェクトから派生しました。PRISMは、Epicodeというユーザープログラム可能なマイクロコードのサポートが特徴でしたが、より早く市場投入可能なMIPS R2000を使ったUnix専用ワークステーション (DECstation 2100) が優先され、プロジェクトは中止されました。

しかし、VAXシリーズよりも優れた価格性能比を持つSPARCやMIPSなどの第2世代RISCチップが登場し、さらに第3世代チップはあらゆる面でVAXを上回ることが明らかになったため、VMSを直接サポートする新しいRISCアーキテクチャの研究が始まりました。これがAlphaの誕生につながります。

PRISMの基本コンセプトを踏襲しつつ、VMSとそのプログラムを変換せずに実行できるように設計され、32[[ビット]]から完全な64[[ビット]]実装に変更されました。Alphaの命令セットの設計者は、リチャード・L・サイツとリチャード・T・ウィテクです。PRISMのEpicodeは、AlphaのPALcodeとなり、プラットフォーム固有およびプロセッサ実装固有の機能への抽象化されたインターフェースを提供しました。

Alphaの成功は、アーキテクチャ自体よりも優れた実装によるものでした。DECのチップ設計チームは、複雑なVAXアーキテクチャを扱うために、高度な手動回路設計を追求していました。シンプルなAlphaアーキテクチャに適用されたこの手動設計は、自動化された設計システムよりも高い動作周波数を実現しました。このことは、マイクロプロセッサ設計コミュニティにカスタム回路設計のルネサンスをもたらしました。

プロセッサの進化



Alphaプロセッサは当初、DECchip 21x64シリーズと呼ばれていましたが、後に「Alpha」に変更されました。番号の「21」は21世紀を、「64」は64[[ビット]]を意味しています。Alphaは当初から64[[ビット]]設計であり、32[[ビット]]版は存在しません。内部では、EV番号(Extended VAXの略)でも識別されました。

最初のバージョンである21064 (EV4) は、高性能なECLミニコンピュータメインフレームに匹敵する動作周波数を誇る初のCMOSマイクロプロセッサでした。21164 (EV5) は、大容量の2次キャッシュを内蔵した最初のマイクロプロセッサで、21264 (EV6) は、高い動作周波数とアウト・オブ・オーダー実行を組み合わせた最初のマイクロプロセッサでした。21364 (EV7) は、オンチップのメモリコントローラを搭載した初の高性能プロセッサでした。

Alphaの命名と商標



Alphaという名称は、「ARA (Advance RISC Architecture)」という案が一部の国で不適切とされた後に決定されました。商標上の問題から、当初はAlpha AXPという名称になりましたが、最終的にはAlphaに戻りました。AXPには諸説ありますが、商標コンサルティング会社が考案したもので、特別な意味はないとされています。

設計原則



Alphaアーキテクチャは、性能を最優先に設計されました。DECは25年間で1000倍の性能向上を目標とし、分岐遅延スロットや命令の抑制、バイト単位のロード/ストア命令、条件コードを排除しました。条件コードの排除は、ステータスレジスタがボトルネックになる可能性を排除します。整数演算では、オーバーフローが発生しても、下位ビットだけをレジスタに書き込みます。キャリーが必要な場合は、比較演算で確認します。

レジスタ



Alphaアーキテクチャでは、32本の整数レジスタと32本の浮動小数点レジスタが定義されています。また、プログラムカウンタ、ロックレジスタ、浮動小数点コントロールレジスタ (FPCR) があります。PALcode用のレジスタも定義されています。整数レジスタはR0からR31、浮動小数点レジスタはF0からF31で表され、R31とF31は常にゼロです。レジスタファイルは整数用と浮動小数点用に分離され、同時発行命令時のポート数を減らし、実装の自由度を高めました。レジスタ本数も検討され、最終的に32本が選択されました。

データ型



Alphaでは、1バイトを8[[ビット]]とし、16[[ビット]]をワード32[[ビット]]をロングワード64[[ビット]]をクワッドワード、128[[ビット]]をオクタワードと定義します。当初から、クワッドワード整数、ロングワード整数、IEEE倍精度/単精度浮動小数点数が定義され、VAXとの互換性のため、VAX倍精度/単精度浮動小数点数も含まれています。将来の拡張で128[[ビット]]のデータ型のサポートも考慮されていました。

メモリ



Alphaは64[[ビット]]の平坦な仮想アドレス空間を持ち、実装上は最小仮想アドレス幅を43ビットとすることが許容されています。未使用ビットはハードウェアでチェックされ、ゼロである必要があります。

命令フォーマット



Alpha ISAの命令長は32[[ビット]]固定です。命令フォーマットには、整数演算、リテラル整数演算、浮動小数点演算、ロード/ストア、分岐、CALL_PALの6種類があります。各フォーマットは、オペコード、オペランド、機能フィールド、レジスタ指定などの要素で構成されています。

命令セット



制御命令


制御命令には、条件分岐、無条件分岐、ジャンプ命令があります。条件分岐は、レジスタの最下位ビットやゼロとの比較によって分岐します。無条件分岐は、指定されたアドレスにジャンプし、戻りアドレスをレジスタに保存します。ジャンプ命令は、別のレジスタのアドレスにジャンプします。

整数演算


整数演算命令には、ロングワードおよびクワッドワードの加算/乗算/減算、クワッドワードの比較があります。除算命令は存在せず、ハードウェアの単純さを優先しています。加減算命令には、シフトしてから加減算するスケール版があり、乗算命令は積の下位64[[ビット]]をレジスタに格納します。オーバーフロー検出機能を持つ命令も用意されています。比較命令は、レジスタ同士またはレジスタとリテラルを比較し、条件が成立するかどうかをレジスタに格納します。

論理演算とシフト


論理演算命令には、AND、NAND、NOR、OR、XNOR、XORがあります。条件付き転送命令は、指定した条件が満たされる場合にレジスタの内容を別のレジスタに転送します。シフト命令には、算術右シフトと論理左シフトがあります。

拡張命令セット


バイト/ワード拡張 (BWX): 8[[ビット]]および16[[ビット]]のデータ型を操作する命令セットで、x86コードのエミュレーションを容易にしました。
マルチメディア拡張 (MVI): SIMD拡張として、整数データ型を既存の整数レジスタで処理します。
浮動小数点拡張 (FIX): 平方根計算命令や整数レジスタと浮動小数点レジスタ間の転送命令を追加しました。
カウント拡張 (CIX): ビットをカウントする命令を3種類追加しました。

バージョン



Alphaは、1992年に最初のバージョンであるAlpha 21064 (EV4) が登場しました。その後、21164 (EV5)、21264 (EV6)、21364 (EV7) と進化しました。DECは、性能向上のために回路設計にこだわり、他のRISCチップよりも高速な動作を実現しました。

1996年には、Alphaチップの生産がサムスン電子にライセンスされました。コンパックによるDECの買収後、Alphaの資産はAPI NetWorks, Inc.に移管され、最終的にインテルに売却されました。HPは、コンパック買収後もAlphaシリーズのサポートを継続しましたが、2004年に最後のAlphaモデルがリリースされ、その歴史に幕を閉じました。

ISA拡張



Alpha ISAには、R (丸め処理)、B (BWX)、M (MVI)、F (FIX)、C (CIX)、T (ロック獲得性能向上) の拡張があります。

性能



Alphaは、同時代のHP-PAやインテルベースのシステムと比較して、整数演算性能では肩を並べていましたが、浮動小数点演算性能では大きな差がありました。

Alphaベースのシステム



DECは、ワークステーションサーバーとして、DEC 3000 AXP、4000 AXP、7000 AXP、10000 AXPシリーズを開発しました。また、PC風のAlphaワークステーションや組み込み用VMEバス向けワンボードマイコンも提供しました。1994年以降は、AlphaStationとAlphaServerシリーズを展開しました。OEM向けのマザーボードも製造され、サードパーティもAlphaマザーボードを開発しました。ネットアップやクレイも、Alphaプロセッサを様々なシステムに採用しました。

スーパーコンピュータ



Alphaプロセッサを採用した最も高性能なスーパーコンピュータは、ロスアラモス国立研究所の ASCI Q で、4096個のAlphaプロセッサを搭載し、7.727TFLOPSの性能を誇りました。

まとめ



DEC Alphaは、優れたアーキテクチャと実装技術によって、高性能なプロセッサとして一時代を築きました。しかし、企業の買収や戦略変更により、その歴史は幕を閉じました。それでもなお、Alphaはマイクロプロセッサ設計において重要な役割を果たし、業界に多大な影響を与えました。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。