AMD Am29000(Am29k)シリーズ:RISCプロセッサの先駆者
AMD Am29000(通称Am29kまたは29k)は、AMDが開発した
32ビットRISCマイクロプロセッサおよびその派生製品群です。1980年代から1990年代にかけて、特に
レーザープリンターの
PostScriptインタプリタとして広く採用され、
RISCチップ市場で高い人気を誇りました。しかし、1995年にAMDはAm29kの開発チームをx86互換チップの開発に移行させ、Am29kシリーズはその歴史を終えることとなりました。Am29kで培われた様々なアイデアや回路は、後のAMD K5の開発に活かされました。
特徴
レジスタウィンドウ
Am29kは、バークレー
RISCの影響を受けたレジスタウィンドウ機構を採用しています。これは、
サン・マイクロシステムズの
SPARCやIntel i960と同様に、プロシージャコールを高速化する技術です。大きなレジスタセットをコールスタックのように使用することで、関数呼び出し時のオーバーヘッドを削減します。
従来の固定サイズレジスタウィンドウとは異なり、Am29kでは可変サイズのウィンドウを採用することで効率を向上させています。128本のレジスタは、必要に応じてプロシージャごとに割り当てられ、ローカル変数やリターンアドレスの格納に使用されます。さらに、64本のグローバルレジスタも備えており、すべてのプロシージャからアクセス可能です。
SPARCなどでは、レジスタウィンドウのオーバーフローが発生して性能が低下する問題がありましたが、Am29kでは、レジスタウィンドウが不足すると自動的にメモリ上のスタックに退避させることで、コールスタックのキャッシュとして機能し、効率的なレジスタ管理を実現しました。
ステータスの格納
一般的なCPUでは、条件分岐の判断にステータスレジスタを使用しますが、Am29kでは、汎用レジスタの内容を直接使用して条件判断を行うことができます。これにより、より柔軟なプログラミングが可能となりました。
遅延実行とブランチターゲットキャッシュ
多くの初期の
RISCプロセッサと同様に、Am29kは遅延実行方式を採用しています。さらに、ブランチターゲットキャッシュ(BTC)と呼ばれる512バイトの命令キャッシュを搭載し、過去に分岐したアドレスをキャッシュすることで、分岐処理の高速化を実現しています。このBTCのサイズは、Am29005では未実装、Am29050では1024バイトに増量されました。
ハーバードアーキテクチャ
Am29kは、命令バスとデータバスを分離したハーバードアーキテクチャを採用しています。これにより、メモリ帯域の競合を避け、スループットの向上が期待できます。自己書き換えコードの問題も生じますが、Am29kの主な用途である
組み込みシステムでは、自己書き換えコードは一般的ではなかったため、大きな問題にはなりませんでした。
シリーズ
Am29kシリーズには、様々な用途に対応した多くの派生製品が存在します。以下に主な製品を挙げます。
Am29000: MMU内蔵、FPUは別チップ(Am29027)
Am29005: ローコスト版(MMUなし、ブランチターゲットキャッシュなし)
Am29030: 4Kバイト命令キャッシュ内蔵
Am29035: 8Kバイト命令キャッシュ内蔵
Am29040: 8Kバイト命令キャッシュ内蔵、4Kバイトデータキャッシュ内蔵
Am29050:
FPU内蔵、1024バイトブランチターゲットキャッシュ内蔵、4エントリ物理アドレスキャッシュ内蔵
Am29200: 32ビットマイクロコントローラ
Am29202: ローコスト版(IEEE-1284パラレルI/F内蔵)
Am29205: ローコスト版(16ビットバスインターフェース)
Am29240: 4Kバイト命令キャッシュ内蔵、4Kバイトデータキャッシュ内蔵
Am29243: DRAMパリティ機能内蔵
Am29245: ローコスト版、4Kバイト命令キャッシュ内蔵
その後
Am29050の後継プロセッサでは、スーパースカラ、
アウト・オブ・オーダー実行、レジスタリネーミングといった、その後の
マイクロプロセッサで標準となる機能が計画されていました。しかし、この計画は実現せず、その技術はx86互換プロセッサであるK5に引き継がれました。K5では、
FPUがそのまま使われ、x86命令はマイクロコードによってAm29000ファミリに似た命令に変換されて実行されました。
まとめ
AMD Am29000シリーズは、1980年代から1990年代にかけて、
RISCプロセッサの先駆者として重要な役割を果たしました。レジスタウィンドウやハーバードアーキテクチャなどの先進的な技術は、その後のプロセッサ設計に大きな影響を与えました。Am29kの開発終了は、x86アーキテクチャへの移行という時代の流れを象徴する出来事であり、その技術は後のAMD製品に受け継がれ、今日のAMDの発展に貢献しています。