

AMD Am29000 (一般的に29kと略される)は、 Advanced Micro Devices (AMD)が開発・製造した32ビットRISCマイクロプロセッサおよびマイクロコントローラのファミリーです。画期的なBerkeley RISCをベースに、29kは数々の重要な改良を加えました。当時の複数のメーカーのレーザープリンターで広く使用され、初代モデルColor LaserJet(Am29030)からAm29040を搭載したHP Color LaserJet 5に至るまで、ハイエンドのHP Color LaserJetシリーズで使用されていたことがよく知られています。
1984年から1985年にかけて開発され、1987年3月に発表され、1988年5月に発売された[ 1 ] [ 2 ] [ 3 ]。最初のAm29000に続いていくつかのバージョンが発売され、1995年にAm29040で終了した。[ 4 ] 29050は、1サイクルあたり1つの乗算加算演算を実行できる浮動小数点ユニットをいち早く搭載したことで注目された。
AMDは1995年後半までスーパースカラー版を設計していましたが、設計チームがPC(x86)事業のサポートに異動したため、29kの開発を中止しました。AMDの組み込み事業で残っていた部分は、 80186派生型の組み込み向け186ファミリーへと再編されました。当時、AMDのリソースの大部分はデスクトップPC向けの高性能x86プロセッサに集中しており、29k設計の多くのアイデアと個々の部品を用いてAMD K5が開発されました。
デザイン
29k は、 Sun SPARC、Intel i960、ARM、RISC-Vにもつながった同じBerkeley RISC設計から進化しました。
バークレーRISC由来の設計要素の一つに、レジスタウィンドウの概念があります。これは、プロシージャ呼び出しを大幅に高速化する手法です。この考え方は、多数のレジスタをスタックとして利用し、呼び出し時にローカルデータをレジスタ群にロードし、プロシージャから戻る際にそれらのレジスタを「デッド」としてマークするというものです。ルーチンから返される値は、「グローバルページ」、例えばSPARCでは上位8つのレジスタに配置されます。スタンフォード大学が開発した競合する初期のRISC設計であるStanford MIPSもこの概念を採用しましたが、改良されたコンパイラであれば、ハードワイヤードウィンドウよりも汎用レジスタをより効率的に使用できると判断しました。
オリジナルのバークレー設計、SPARC、そしてi960では、ウィンドウのサイズは固定されていました。SPARCでは、ローカル変数を1つしか使用しないルーチンでも8つのレジスタが使用され、この高価なリソースが無駄になっていました。29kはこの点でこれらの初期の設計とは異なり、可変ウィンドウサイズを採用しました。この例では、ローカル変数用と戻りアドレス用の2つのレジスタのみが使用されました。また、プロシージャスタック用の128個のレジスタに加え、グローバルアクセス用に64個のレジスタが追加されました。比較すると、SPARCには合計128個のレジスタがあり、グローバルセットは標準ウィンドウの8つでした。この変更により、29000では様々なワークロードにおいてレジスタの使用効率が大幅に向上しました。
29kはレジスタウィンドウスタックをメモリ内(理論上はキャッシュ内)スタックに拡張しました。ウィンドウがいっぱいになると、呼び出しはレジスタスタックの末尾からメモリにプッシュされ、ルーチンが戻った際に必要に応じて復元されます。一般的に、29kのレジスタ利用は、バークレーのコンセプトに基づく競合設計よりもかなり先進的でした。

バークレー設計とのもう一つの違いは、29kでは条件コードの使用を避けた点です。29kは算術演算と論理演算の後に標準的なNZVCフラグを生成しますが、それらはキャリー付き加算命令と減算命令でのみ使用されます。条件分岐は汎用レジスタの最上位ビット(符号ビット)に基づく分岐に限定され、このビットは一連の比較命令(「符号付きより大きい」や「等しい」など)のいずれかによって設定できます。任意のレジスタをこの目的に使用できるため、条件は簡単に保存できますが、その代償としてコードが多少複雑になります。分岐ターゲットキャッシュ(29000では512バイト、29050では1024バイト)は、分岐先アドレスにある4つまたは2つの連続した命令セットを格納し、分岐成立時の命令フェッチレイテンシを削減します。29000には分岐予測システムが搭載されていなかったため、分岐成立時には遅延が発生していました。つまり、29000には分岐遅延スロットが1つしかありません。[ 5 ]バッファは分岐のターゲットアドレスから4つまたは2つの命令を保存することでこれを緩和し、フェッチバッファがメモリからの新しい命令で再充填される間に即座に実行できるようにしました。[ 6 ]
仮想アドレス変換のサポートは、MIPSアーキテクチャと同様のアプローチを採用しました。64エントリのトランスレーション・ルックアサイド・バッファ(TLB)が仮想アドレスから物理アドレスへのマッピングを保持し、未変換アドレスに遭遇すると、TLBミスが発生し、プロセッサは物理メモリへの適切なマッピングを提供するソフトウェアルーチンにトラップします。TLBミス発生時に置換するTLBエントリを選択するためにランダムレジスタを採用したMIPSのアプローチとは対照的に、29000は専用のlru(最長未使用時間)レジスタを提供しました。[ 7 ] 29000ファミリの一部製品では、シリコンの一部を周辺機器専用にするため、TLBエントリを16個しか提供していませんでした。これを補うため、マッピングに使用される最大ページサイズは8KBから16MBに増加しました。[ 8 ] : 305–306
バージョン
最初のAm29000は1988年に発売され、 MMUを内蔵していましたが、浮動小数点演算機能はAm29027 FPUにオフロードされていました。MMUまたは分岐ターゲットキャッシュに障害が発生したユニットは、 Am29005として販売されました。[ 6 ]
1991年にこのラインは拡張され、それぞれ8KBと 4KBの命令キャッシュを搭載したAm29030とAm29035が追加された。 [ 9 ]その頃[ 10 ]には、オンチップキャッシュはないが、完全にパイプライン化された積和演算を行う浮動小数点ユニット、ヒット率80%を謳う1KBの大容量分岐ターゲットキャッシュ、4エントリのTLBのような物理アドレスキャッシュによって高速化された、パイプライン化されたロード演算を備えたAm29050も利用可能になった。スーパースカラープロセッサではないが、浮動小数点演算と整数演算を同じサイクルで完了することができる。整数側と浮動小数点側には、それぞれレジスタへの書き込みポートがある。[ 11 ] 428,000個のトランジスタ[ 12 ]を1ミクロンプロセス[ 13 ]で製造し、0.8ミクロンの有効チャネル長[ 11 ]を有し、20、25、33、40MHzで動作した。後にAm29040が33、40、50MHzでリリースされた。これはAm29030とほぼ同じだが、4KBのデータキャッシュ、乗算ユニット、その他いくつかの機能強化が施されている。[ 14 ] 119 mm 2 のAm29040は120万個のトランジスタを0.7ミクロンプロセスで製造した。[ 15 ] [ 16 ]
29Kのスーパースカラー版が設計されていたが、x86が優先され中止された。コードネームはJaguar [ 3 ]で、1994年11月と1995年8月に発表された。[ 17 ] [ 18 ]これは、6つの予約ステーションへの4方向ディスパッチと、 4方向リタイアによる命令の投機的アウトオブオーダー実行が可能な先進的な設計であった。レジスタファイルは、一度に4回の読み取りと2回の書き込みが可能であった。命令とデータのキャッシュはそれぞれ8KBであった。キャッシュからのロードはストアをバイパスできた。コスト上の理由と対象市場のため、オンチップFPUは搭載されていなかった。0.4ミクロンプロセスで100MHzの周波数を達成することが期待されていた。[ 17 ] [ 19 ]
AMDは、未発表の29Kマイクロアーキテクチャを、 x86互換プロセッサK5シリーズのベースとして使用しました。ALUとリオーダーバッファは、若干の修正を加えてそのまま継承されました。FPUは29050から継承されましたが、80ビット精度に拡張されました。K5は、キャッシュされた命令のプリデコード情報を利用して、x86命令をデコード時に「RISC-OP」に変換しました。AMDは、スーパースカラ29KはK5よりもわずかに性能が劣るものの、サイズの違いによりコストは大幅に削減されると主張しました。[ 20 ] [ 17 ]
Honeywell 29KII は AMD 29050 をベースにした CPU であり、リアルタイム航空電子機器で広く使用されていました。
- ダイの写真
- Am29000
- Am29030
- Am29040
- Am29050
製品とアプリケーション
29000は、Unixワークステーションでの使用を想定した「中高性能組み込みアプリケーション」向け製品として位置付けられ、[ 7 ] 、 X端末、レーザープリンタコントローラカード、グラフィックスアクセラレータカード、光学式文字認識ソリューション、ネットワークブリッジなど、さまざまな製品に使用されました。[ 21 ] 29000のメモリアーキテクチャは、製品設計者にとって特に魅力的でした。外部キャッシュメモリを必要とせず、許容できるパフォーマンスを維持しながらダイナミックRAMを直接使用できるためです。[ 21 ] : 1プログラム命令とデータを保持するために使用するメモリテクノロジの選択に、ある程度の柔軟性が与えられました。[ 22 ]
29kは、特にMacintoshおよびIBM PC互換機において、計算アクセラレータまたはコプロセッサとしてある程度使用されました。例えば、Yarc Systems Corporationは、Macintosh IIおよびPC ATシステム向けに29kベースの「RISCコプロセッサ」カードを製造しました。また、Motorola 68020および68030プロセッサを搭載した「 CISCコプロセッサ」カード、T800トランスピュータプロセッサを搭載した「並列コプロセッサ」カードも製造しました。[ 23 ]同社のNuSuper(当初はMcCray [ 24 ]という名称でした)およびAT-Superカードは、Am29000 CPUとAm29027浮動小数点アクセラレータを搭載していました。[ 23 ]その後、CPUをAm29050にアップグレードしたMacRageousが発売されました。 [ 25 ]このようなアクセラレータカードはMacintosh II本体の数倍の性能を発揮し、DECstation 3100などのRISCワークステーションとベンチマークで競合した。複数のカードをシステムに搭載することもできた。しかし、このようなカードを搭載したMacintosh IIシステムのコストは、Unixが動作する既存のRISCワークステーションのコストに近づいた。[ 26 ] AT-Superは約4,600ドルで、Unixが動作し、Intelのi860プロセッサを搭載した類似製品と競合したと報告されている。[ 27 ]
29kを採用した注目すべき製品の一つは、AppleのMacintosh IIfx用Macintosh Display Card 8.24 GCである。30MHzのAm29000プロセッサ、64KBのスタティックRAMキャッシュ、2MBのビデオRAMを搭載し、オプションでQuickDrawグラフィックツールキット用に2MBのダイナミックRAMを追加できる。29kの搭載により、このカードはAppleの他のバージョンと差別化され、 24ビット/ピクセルの画像処理におけるパフォーマンスが大幅に向上した。[ 28 ]
参照
参考文献
- ^ Martin, James A. (1987年3月23日). 「同社、32ビットチップは17 MIPSの処理能力を持つと発表」 . Computerworld . 第21巻第12号. 14ページ.
- ^ Cole, Bernard C. (1988年4月28日). 「RISC Slugfest: パフォーマンスよりもマーケティングの方が重要か?」(PDF) . Electronics . p. 66 (.pdf の p. 68).
- ^ a b「ウィリアム・マイケル・マイク・ジョンソンの口述歴史」(PDF)。コンピュータ歴史博物館(インタビュー)。ケビン・クルーウェルによるインタビュー。2014年5月9日。
ええ、それは1985年に始まりました。そして、実際に機能するまでに約3年、おそらく4回の改訂が必要でした。
- ^ Betker, Michael R.; Fernando, John S.; Whalen, Shaun P. (1997年秋). 「マイクロプロセッサの歴史」(PDF) . Bell Labs Technical Journal : 48.
- ^ 「29K RISCファミリーの評価とプログラミング 第3版 - ドラフト」(PDF) p. 54。2023年12月20日閲覧。
- ^ a b Stewart, Brett (1990). 「29 Kファミリーソリューションの新世代」.論文ダイジェスト Compcon Spring '90 . 第35回 IEEE Computer Society 国際知的レバレッジ会議. pp. 295– 298. doi : 10.1109/CMPCON.1990.63690 .
- ^ a b Mann, Daniel (1991年10月). 「UnixとAm29000マイクロプロセッサ」 . IEEE Micro . pp. 23– 31. ISSN 0272-1732 . 2023年5月19日閲覧。
- ^ Mann, Daniel (1995). 「29K RISCファミリーの評価とプログラミング」 Advanced Micro Devices . 2023年5月19日閲覧。
- ^ Fickel, Louise (1991年5月13日). 「Advanced Micro Devices、2つのRISC CPUを搭載した29000ファミリーを強化」 . InfoWorld . 第13巻第19号. 28ページ.
- ^ 「フラッシュメモリ発表」。Computer Business Review、Tech Monitorのアーカイブ。1990年10月9日。
- ^ a b「Am29050マイクロプロセッサユーザーズマニュアル」 . archive.org . 1991年。
- ^ Ganapathy, Gopi; Abraham, Jacob A.ハードウェアアクセラレーションだけではULSIのフォールトグレーディングは実現できない。国際テストカンファレンス1991。
- ^リンチ、トーマス・ウォーカー、シュワルツランダー(ジュニア)、アール・E.(1991年7月)。「冗長セル加算器」。第10回IEEEコンピュータ算術シンポジウム議事録。doi:10.1109 /ARITH.1991.145553。
- ^ 「Am29040 命令キャッシュとデータキャッシュを備えた高性能RISCマイクロプロセッサ」(PDF) . chipdb.org . 2022年9月18日閲覧。
- ^ Gwennap, Linley. 「Digital、MIPSがマルチメディア拡張機能を追加」(PDF) .マイクロプロセッサレポート. 10 (15): 24– 28.
- ^マイクロプロセッサフォーラムフォルダ。1994年。
- ^ a b c McMinn, Brian (1995年8月14日). 「スーパースカラー29Kファミリーの最初のメンバー」(PDF) . Hot Chips .
- ^ 「初のスーパースカラーAm29000が発表」。Computer Business Review、Tech Monitorのアーカイブ。1994年11月28日。
- ^ Detar, Jim (1994年10月31日). 「AMDがSuperscalar 29Kを発表」. Electronic News .
- ^スレーター、マイケル (1994年10月24日). 「AMDのK5はPentiumを追い抜くように設計されている」(PDF) .マイクロプロセッサレポート. 8 (14): 1– 7.
- ^ a b FUSIONews 29K . Advanced Micro Devices. 1990年夏. 2023年5月20日閲覧。
- ^ Marshall, Trevor (1988年5月). 「Real-World RISCs」 . Byte . pp. 263– 268. 2023年5月20日閲覧。
- ^ a b YARC、ソリューション会社。Yarc Systems Corporation。
- ^ 「YARC、Mac IIブースターボードの50MHz動作を主張」 Byte誌、1988年8月、16ページ。 2023年5月20日閲覧。
- ^ MacRageous Macintosh-II RISCコプロセッサシステム. Yarc Systems Corporation. 1990.
- ^ Varhol, Peter D. (1989年10月). 「YARCのNuSuperがMacをパワーアップ」 . MIPS . pp. 81– 83. 2023年5月20日閲覧。
- ^ Pastore, Richard (1990年9月3日). 「Intel PCとRISCの融合」Computerworld . p. 37. 2024年3月3日閲覧。
- ^スミス、バド・E. (1990年5月). 「RISCグラフィックスを搭載した大きくて速いMacintosh」 .パーソナルワークステーション. pp. 46– 50. 2023年5月20日閲覧。
外部リンク
- AMD 29k(Streamlined Instruction Processor)IDガイド
- Mann, Daniel (1995), Evaluating and Programming the 29K RISC Family (PDF) , Advanced Micro Devices, 2007年9月27日アーカイブ(PDF)29kファミリーに関するPDFブック
- chipdb.orgさまざまな Am29000 プロセッサの画像