Alpha 21164

Alpha 21164は、ディジタル・イクイップメント・コーポレーション (DEC) が開発・製造したマイクロプロセッサであり、Alpha命令セットアーキテクチャ (ISA) を実装している。コード名 EV5 でも知られている。1995年1月、Alpha 21064A の後継として登場した。1998年には後継の Alpha 21264 に取って代わられた。 1994年2月、最初の試作品が完成し、OpenVMS、Digital UNIX、Windows NT というオペレーティングシステムのブートに成功した。1994年末にはサンプル出荷が開始され、1995年1月に266MHz版が登場した。300MHz版は1995年3月に登場。最後の333MHz版は1995年10月2日に発表され、同時にサンプル出荷が開始された。1996年に 21164A の400MHz版が量産出荷開始され、DECの最速マイクロプロセッサの座を明け渡した。 DECは様々な動作周波数の 21164 をサーバ AlphaServer やワークステーション AlphaStation で採用している。また、ワンボードマイコンの Alpha VME 5/352 と Alpha VME 5/480、OEM向けマザーボード AlphaPC 164 と AlphaPC 164LX でも採用している。パートナーだったクレイ・リサーチは、スーパーコンピュータ T3E-600 で300MHz版の21164を採用している。サードパーティでは DeskStation などがワークステーションに21164を採用した。 世界最速のマイクロプロセッサの座を275MHz版 Alpha 21064A から引き継いだが、1995年11月にインテルの Pentium Pro が200MHz動作で300MHzの21164に（SPECint95_baseの値で）勝ったため、最速の座を奪われることになった。ただし、浮動小数点演算性能では21164のリードが続いた。翌年333MHz版21164が登場し、Pentium Pro に勝ったが、同年中にミップス・テクノロジーズのR10000やヒューレット・パッカードのPA-8000（英語版）に追い抜かれた。 Alpha 21164 はクロックサイクル毎に最大4個の命令を同時発行できるスーパースケーラ型マイクロプロセッサである。整数演算ユニットを2つ、浮動小数点演算ユニットを2つ備えている。整数パイプラインは7段、浮動小数点パイプラインは10段である。仮想アドレスは43ビット、物理アドレスは40ビットを実装している。したがって、仮想アドレス空間は8TB、物理メモリ空間は1TBまでアドレッシング可能である。 2つの整数パイプラインと整数レジスタファイルで構成されている。2つのパイプラインは同一ではなく、加算パイプラインと乗算パイプラインに分かれており、実行できる命令も異なる。しかし、一般的な加算、論理演算、ロード、比較、条件付き転送命令などはどちらのパイプラインでも実行できる。乗算パイプラインだけが実行できる命令としては、シフト、ストア、乗算命令がある（乗算器そのものはパイプライン化されていない）。加算パイプラインだけが実行できる命令は、分岐命令である。 分岐、条件付き転送、乗算命令を除いた全命令は第5ステージで実行され、1サイクルのレイテンシで実行完了する。分岐と条件付き転送の実行は第6ステージになっており、比較命令を並行して実行し、その結果を使って動作可能になっている。 整数レジスタファイルは40本の64ビットレジスタを持ち、そのうち32本がAlphaアーキテクチャの規定するレジスタであり、残る8本はPALcode（英語版）がスクラッチパッド・メモリとして利用する。レジスタファイルには4つのリードポートと2つのライトポートがあり、2本のパイプラインに同数のポートが割り当てられている。 2つの浮動小数点パイプラインと浮動小数点レジスタファイルから構成されている。2つのパイプラインは同一ではなく、加算パイプラインは乗算以外のあらゆる浮動小数点命令を実行し、もう1つは乗算命令専用である。どちらのパイプラインも4段となっている。加算パイプラインにはパイプライン化されていない浮動小数点除算ユニットが接続されている。除算以外の浮動小数点命令は4サイクルのレイテンシである。除算のレイテンシは、単精度か倍精度かでも異なるし、除数や被除数の具体的な値によっても変化する。オーバーヘッドも含めると、単精度の除算は15サイクルから31サイクルのレイテンシ、倍精度の除算は22サイクルから60サイクルのレイテンシである。 キャッシュは3レベルとなっていて、二次キャッシュまでを内蔵し、三次キャッシュをオプションで外付けできる。キャッシュと関連論理回路だけで720万個のトランジスタを使用している。 一次キャッシュは命令とデータで分かれており、それぞれ8KB、ダイレクトマップ方式、ラインサイズは32バイトである。一次データキャッシュはデュアルポートで性能向上を図っており、二重化されて実装されている。ライトスルー方式でリード時に割り当てる方針を採用している。 二次キャッシュの容量は96KBである。21164では外付け二次キャッシュの帯域幅では命令やデータの供給能力が不十分と判断され、容量が制限されても内蔵するという方針になった。二次キャッシュは大きいため、アクセスに2サイクルを必要とする。性能を向上させるためキャッシュがパイプライン化されている。二次キャッシュを内蔵するもう1つの利点は、マルチウェイの構成を容易に実現できる点であり、実際3ウェイ・セットアソシアティブで実装してヒット率を向上させている。 三次キャッシュはSRAMを使って外付けで実装できる。オプションであるため、三次キャッシュを実装していないシステムもある。容量は1MBから64MBで、最小容量が1MBと大きいのは、二次キャッシュを内蔵しているため、小さい三次キャッシュは性能面で意味がないからである。ダイレクトマップでライトバック方式であり、ライト時に割り当てる方針を採用している。21064では外付けキャッシュの制御には外付けのキャッシュコントローラを必要としたが、21164では内蔵の外部インタフェース回路が外付けキャッシュを制御する。使用するSRAMは同期式でも非同期式でもよく、システムバス経由でアクセスする。 外部インタフェースは128ビットのシステムバスである。システムバスの駆動周波数は内部クロック周波数の3分の1から15分の1で、例えば内部動作周波数が300MHzなら、システムバスは20MHzから100MHzとなる。システムバス用のクロック信号はマイクロプロセッサが発信する。 内部クロック周波数は、外部から供給するクロック信号を分周した半分の周波数の信号として生成される。したがって、300MHz版の Alpha 21164 には外部から600MHzのクロック信号を供給する必要がある。 総トランジスタ数は930万個、寸法は 16.5mm × 18.1mm、面積は 299 mm2 であり、製造プロセスの限界に近い規模である。DECの第5世代CMOSプロセス CMOS-5 で製造されており、0.50μmルール、4層アルミニウム配線である。電源電圧は3.3ボルト (V)、消費電力は、266MHzで46W、300MHzで51W、333MHzで56Wである。 499ピンのセラミック製で千鳥配置のpin grid array (IPGA) であり、寸法は 57.40mm × 57.40mm である。パッケージにはヒートスプレッダがあり、2つのスタッドが突き出ていて、そこにヒートシンクを固定する。 コード名 EV56 で 21164 のさらなる開発が行われた。当初は Alpha 21164A とされる予定だったが、実際には Alpha 21164 のままで製品化されている。クロック周波数としては、366/433/500/533/600/666MHz がある。 1995年10月の Microprocessor Forum で初めて発表された。1995年11月13日、DECは同月中にサンプル出荷を開始すると発表。最初の366MHz版は1996年に量産出荷となった。1996年7月8日、433MHz版の量産出荷と500MHz版のサンプル出荷を発表し、同時に500MHz版の量産開始を9月とした。433MHz版は1,000個注文時で単価1,492ドル。600MHz版は1997年3月31日に量産出荷を開始した。1996年6月、サムスン電子はDECとセカンドソース契約を結んだ。666MHz版を生産したのは同社だけである。1996年11月11日、366MHz版から500MHz版までのサンプル出荷を開始し、1997年には量産出荷を開始した。Alpha 21164A を製造したのはDECのマサチューセッツ州ハドソンのファウンドリとサムスンの韓国国内のファウンドリである。 採用企業としては、クレイ・リサーチ、DEC、Network Appliance、DeskStation がある。クレイ・リサーチはスーパーコンピュータ T3E で450/600/675MHz版を使用した。DECは、AlphaServer、AlphaStation、Celebris XL、Digital Personal Workstation で使用している。ネットアップはストレージシステム、DeskStationはワークステーション Raptor Reflex で使用した。 最大の改良点はバイトワード拡張 (BWX) の追加で、これはバイト（8ビット）およびワード（16ビット）単位のアクセスを強化する Alpha ISA の拡張である。これらの命令は乗算パイプラインで実行する。総トランジスタ数は966万個で、寸法は 14.4mm × 14.5mm、面積は 209 mm2 である。DECは第6世代のCMOSプロセス CMOS-6 で製造し、0.35μmルール、4層配線である。サムスン電子は1996年初めに0.3μmプロセスを開発し、それに基づいて0.35μmルール、4層配線で製造した。電源電圧は3.3Vで、消費電力は366MHzで31.0W、433MHzで36.0W、500MHzで41.0W、533MHzで43.5W、600MHzで48.5Wである。 Alpha 21164PC（コード名 PCA56）は21164Aの低価格版で、1997年3月17日に登場した。DECと三菱電機の共同開発で、両社で製造した。1998年初め、三菱電機はDECとの開発提携関係を打ち切ることを決め、同年中ごろには21164PCの製造もやめ、Alphaから手を引いた。 動作周波数は、400MHz、466MHz、533MHz である。二次キャッシュの内蔵をやめ、マルチメディア拡張命令 (MVI) のために一次命令キャッシュを大きくした。MVIはAlpha ISA の拡張命令セットで、MPEGのエンコード性能などを強化するSIMD命令群である。二次キャッシュはトランジスタ数を削減するために削除され、その結果チップサイズとコストが縮小した。一次命令キャッシュは8KBから16KBに倍増されている。外付けキャッシュの容量は512KBから4MBまでと縮小されている。仮想アドレスは43ビット、物理アドレスは33ビットに制限されている。 総トランジスタ数は350万個で、寸法は 8.65mm × 16.28mm、面積は 141 mm2 である。DECは従来と同じ CMOS-5 プロセスで製造した。パッケージは413ピンのIPGAで、寸法は 49.78mm × 49.78mm である。電源電圧は3.3Vで、消費電力は400MHzで26.5W、466MHzで30.5W、533MHzで35.0Wである。 DECはマザーボード AlphaPC 164SX に採用した。 PCA57 は PCA56 からの派生で、サムスン電子が設計し、0.28μm CMOS プロセスで製造した。1998年後半に登場し、533MHz、600MHz、666MHz で動作した。一次キャッシュ容量を倍増させ、命令キャッシュは32KB、データキャッシュは16KBとなっている。570万個のトランジスタを使い、寸法は 6.7mm × 15mm で、面積は 101 mm2 である。電源電圧は2.5Vで、消費電力は533MHzで18W、600MHzで20W、666MHzで23Wである。 DECではマザーボード AlphaPC 164RX に採用している。 DECと VLSI Technology は、21164および派生チップ用のチップセットを開発した。DEC自身はAlphaServerのハイエンド機種では特注のASICを使っている。 21171 別名 Alcor。21164用の最初のチップセットで、1995年1月の21164登場と同時に発売された。DECが開発・生産した。21064用の DECchip 21071 のアップグレードであり、21164の新たなシステムバス・プロトコルに対応している。メモリコントローラ、PCIコントローラ、データバス・スライス×4 で構成され、256ビットのメモリバスと64ビット33MHzのPCIバスをサポートしている。 21172 別名 Alcor2。21164Aをサポートするよう 21171 をアップグレードした版である。 Pyxis 別名 21174。21164Aと21164PCをサポート。それまでのチップセットとは異なり、低価格システム向けである。そのためシングルチップ化されており、474ピンのセラミック製BGAでパッケージされている。DECではエントリレベルのワークステーション（Digital Personal Workstation の a-シリーズ）や AlphaPC 164LX や 164SX といったマザーボードで採用された。当初の価格は1,000個注文で単価142ドルだった。 メモリコントローラとPCIコントローラが内蔵されている。メモリコントローラは最大512MBのSDRAMをサポートし、メモリバスは128ビットである。ECCまたはパリティを使用可能。PCIコントローラはPCIまたはPCI-Xを制御する。 Polaris VLSI Technology が21164Aや21164PCを採用したパーソナルコンピュータ用に開発した。1997年6月16日発表。最大768MBまでの EDO DRAM か、512MBまでのSDRAMをサポート。メモリバスは128ビット。32ビット33MHzのPCIをサポートしている。 DECでもマザーボード AlphaPC 164RX で採用した。 ^ Gwennap 1996 ^ Bowhill 1995, p. 124 ^ Bowhill 1995, p. 111 ^ Gwennap 1994, p. 1 ^ Gwennap 1994, pp. 1–2 ^ Gwennap 1994 ^ Bowhill 1995, pp. 100–101 ^ Alpha 21164 Microprocessor Data Sheet, August 1998, p. 113. ^ Digital Semiconductor 21164 Alpha Microprocessor Product Brief, 31 March 1997, p. 2. ^ Bouchard 1996, pp. 3–5 ^ Foremski 1998a ^ Foremski 1998b ^ Schumann 1997 ^ Gwennap 1997 ^ VLSI Technology 1997 ジム・ケラー：開発者の1人。 Bouchard, Gregg (1996-08), Design objectives of the 0.35 µm Alpha 21164 Microprocessor, IEEE Hot Chips Symposium, IEEE Computer Society, http://www.hotchips.org/archives/hc8/2_Mon/HC8.S1/HC8.1.2.pdf  Bowhill, William J. et al. (1995). “Circuit Implementation of a 300-MHz 64-bit Second-generation CMOS Alpha CPU”. Digital Technical Journal 7 (1): 100-118.  Foremski, Tom (1998年2月10日). “Mitsubishi steps back from Alpha”. Electronics Weekly. http://www.electronicsweekly.com/Articles/1998/02/10/6285/mitsubishi-steps-back-from-alpha.htm  Foremski, Tom (1998年7月10日). “Mitsubishi Electric stops Alpha microprocessor manufacture”. Electronics Weekly. http://www.electronicsweekly.com/Articles/1998/07/10/8039/mitsubishi-electric-stops-alpha-microprocessor-manufacture.htm  Gwennap, Linley (1994-09-12). “Digital Leads the Pack with 21164”. Microprocessor Report 8 (12).  Gwennap, Linley (1996-07-08). “Digital’s 21164 Reaches 500 MHz”. Microprocessor Report 10 (9).  Gwennap, Linley (1997-03-31). “Digital's 21164PC Aimed at PC Market”. Microprocessor Report 11 (4).  Schumann, Reinhard C. (1997). “Design of the 21174 memory controller for Digital Personal Workstations”. Digital Technical Journal 9 (2): 57-70. http://www.hpl.hp.com/hpjournal/dtj/vol9num2/vol9num2art5.pdf.  VLSI Technology (1997-06-16), Polaris, VLSI's New Alpha System Controller, Breaks the Gigabyte/Second Memory Transfer Barrier. End-Users Gain Full Performance on Alpha Systems, Press release  Bannon, P., Saito, Y. (1997). "The Alpha 21164PC microprocessor". Proceedings of Compcon '97, pp. 20–27. Bhandarkar, Dileep P. (1995). Alpha Architecture and Implementations. Digital Press. Carlson, D. et al. (1998). "A 667 MHz RISC microprocessor containing a 6.0 ns 64 b integer multiplier". ISSCC Digest of Technical Papers, pp. 294–295. Carlson, D.A.; Castelino, R.W.; Mueller, R.O. (November 1997). "Multimedia extensions for a 550-MHz RISC microprocessor". IEEE Journal of Solid-State Circuits 32 (11): pp. 1618–1624. Jain, A.K. et al. (1997). "1.38 cm2 550 MHz microprocessor with multimedia extensions". ISSCC Digest of Technical Papers, pp. 174–175, 451. Gronowski, Paul E. et al. (May 1998). "High-performance microprocessor design". IEEE Journal of Solid-State Circuits 33 (5): pp. 676–686. Kobayashi, S. et al. (1997). "A 550 MHz Alpha microprocessor targeted at PC applications". Proceedings of the 1997 International Symposium on VLSI Technology, Systems, and Applications, pp. 203–207. Edmondson, John H. et al. (1995). "Internal Organization of the Alpha 21164, a 300-MHz 64-bit Quad-issue CMOS RISC Microprocessor". Digital Technical Journal, Volume 7, Number 1, 1995. pp. 119–135. Edmondson, John H. et al. (1995). "Superscalar Instruction Execution in the 21164 Alpha Microprocessor". IEEE Micro. pp. 33–43. Ryan, Bob (October 1994). "Alpha Rides High". Byte. Samsung Semiconductor, Inc. (11 November 1996). "Samsung Introduces 500MHz Alpha 21164 Microprocessor; First product resulting from the Digital/Samsung licensing agreement to begin mass production by Q2 1997". Press release.