(Translated by https://www.hiragana.jp/)
DEC Alpha - Wikipedia コンテンツにスキップ

DEC Alpha

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
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買収ばいしゅうにキャンセルされた。コードめい TarantulaEV9ばれるはずの研究けんきゅうプロジェクトで、ベクターユニットを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種類しゅるいかれる。

論理ろんり演算えんざんとシフト

[編集へんしゅう]

論理ろんり演算えんざん命令めいれいとしては、ビット単位たんい論理ろんり演算えんざん整数せいすうレジスタあいだ条件じょうけん転送てんそう命令めいれいがある。ビット単位たんい論理ろんり演算えんざんには、ANDNANDNORORXNORXOR があり、レジスタあいだまたはレジスタとリテラルあいだ演算えんざんおこなう。条件じょうけん転送てんそう命令めいれいは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のほうがずっとひくい。

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を様々さまざまネットワークアタッチトストレージシステムで採用さいようした。また、クレイちょう並列へいれつがたスーパーコンピュータ T3DT3E でAlphaを採用さいようしている。

スーパーコンピュータ

[編集へんしゅう]

Alphaプロセッサを採用さいようしたもっと高性能こうせいのうスーパーコンピュータは、ロスアラモス国立こくりつ研究所けんきゅうじょASCI Q である。AlphaServer SC45/GS のクラスタ構成こうせいで、CPUは 21264 (EV68) 1.25GHz を4096使用しようし、7.727TFLOPS (Rmax) という性能せいのうだった[13]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ Bolotoff, Paul V. (2005ねん4がつ14にち). “Alpha: The History in Facts and Comments”. Alasir. 2012ねん5がつ16にち閲覧えつらん
  2. ^ Alpha RetainTrust products”. HP. 2012ねん5がつ16にち閲覧えつらん
  3. ^ 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
  4. ^ 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. 
  5. ^ Gwennap, Linley (18 November 1996). "Digital, MIPS Add Multimedia Extensions". Microprocessor Report.
  6. ^ Popovich, Ken (2001ねん6がつ28にち). “Alpha proved costly for Compaq”. www.zdnet.co.uk. ZDNet. 2009ねん5がつ1にち閲覧えつらん
  7. ^ In the context of cache memory, 1 KB = 1024 bytes; 1 MB = 1024 KB
  8. ^ a b c d e Paul V. Bolotoff (21st of April 2007). “Alpha: The History in Facts and Comments”. 2008ねん11月22にち閲覧えつらん
  9. ^ a b c d e 三菱電機みつびしでんきとDEC、共同きょうどうでパソコンてい価格かかくAlphaプロセッサを開発かいはつ、6月より出荷しゅっか”. PC Watch (1997ねん3がつ19にち). 2012ねん8がつ23にち閲覧えつらん
  10. ^ David Mosberger. “Overview of Alpha Family”. 2009ねん12月9にち閲覧えつらん
  11. ^ SPEC CPU95 Results
  12. ^ Reinhardt Krause. "DEC launching Alpha board push". Electronic News, April 4, 1994.
  13. ^ Los Alamos National Laboratories (2002ねん). “The ASCI Q System: 30 TeraOPS Capability at Los Alamos National Laboratory”. 2010ねん6がつ6にち閲覧えつらん

外部がいぶリンク

[編集へんしゅう]