AMD 29000
出典: フリー百科事典『ウィキペディア(Wikipedia)』
AMD 29000(29000、29kとも)は、AMDのRISCベース32ビットマイクロプロセッサのシリーズである。
このシリーズは一時期、様々なメーカーのレーザープリンタに搭載されるなどRISCチップ市場で最も人気を誇ったことがある。1995年、AMDは29000シリーズの開発チームを他に回し、結果として開発をやめた。AMDが現在組み込み市場用に揃えているのは80186から派生した186ファミリである。AMDのリソースは高性能なx86互換チップに集中され、29kの様々なアイデアや回路がAMD K5の開発に使われた。
目次 |
[編集] 特長
[編集] レジスタ・ウィンドウ
29000はサン・マイクロシステムズのSPARCやIntel i960と同様にバークレーのRISCに基づいて生み出された。バークレー系統の設計では共通してレジスタ・ウィンドウというトリックが使われている。これはプロシージャコールを劇的に高速化する技法である。基本的なアイデアは大きなレジスタセットをスタックのように使うものである。
元のバークレーの設計もSPARCもi960もレジスタウィンドウのサイズは固定である。SPARCでは、ローカル変数をひとつしか使用しないルーチンに対しても8本のレジスタが固定的に割り当てられていて、リソースを無駄遣いしていた。29000はそれらとは異なり、ウィンドウサイズを可変にして効率を向上させている。例えば、2本のレジスタをウィンドウとして、ひとつをローカル変数として使い、もうひとつをリターンアドレス格納に使う。それ以外にも、レジスタ・ウィンドウ用の128本とは別の64本のグローバルレジスタを持っていて、どこからでもアクセスできる。SPARCでは全体で128本のレジスタを持ち、グローバル用には通常のウィンドウと同じく8本のレジスタを使っている。このようなレジスタ構成でそれなりに賢いコンパイラを使うことで性能を向上させた。29000はレジスタ・ウィンドウ・スタックをメモリにまで拡張している。プロシージャコールをするときにレジスタを使い切っていると自動的にメモリ上のスタックにレジスタを退避し、戻ってくるときにメモリから戻すようになっている。29000のレジスタの使い方は他のバークレー系統の設計と比較して、最も進んでいた。
[編集] ステータスの格納
もうひとつの特長はそれほど奇抜なものではなく、29000は条件分岐などに使うための固定のステータスレジスタを持たない。どのレジスタでもこの用途に使うことができ、簡単に条件をセーブできる。
[編集] 命令プリフェッチ・バッファ
命令プリフェッチバッファは16個の命令を格納し、これにより分岐の際の性能を向上させる。29000は分岐予測機構を持たないので、分岐する際には遅延が避けられない(スーパースケーラでもないので、分岐の両方を同時に実行することもできない)。そのバッファは分岐する場合のアドレスから4命令を持ってきて格納する機能があり、これによって分岐による遅延をなるべく起こさないようになっている。(訳注:一部のマイクロプロセッサでは branch target cacheと呼ばれていた機能)
[編集] シリーズ
- マイクロプロセッサ
- マイクロコントローラ
- 29200
- 29205
[編集] その後
29050の一部の高速化機能はx86互換プロセッサであるK5に受け継がれた。FPUはそのまま使われ、x86の命令をマイクロコードでそのFPUの命令に変換して使用された。
AMDのCPUリスト |
---|
Am2900 | Am29000 | Am286 | Am386 | Am486 | Am5x86 | K5 | K6 | K6-2 | K6-III | Athlon | Duron | Athlon 64 | Sempron | Athlon 64 X2 | Turion 64 | Turion 64 X2 | Opteron |