AMD Am29000

asano に投稿

テーマ

カテゴリー

先日の80960SAと一緒にいくつか他のものも買っています。今回はその一つです。


AMDのAm29000-25GC、専用の保護ケースに入った状態で送られてきました。

Am29000ファミリもi960ファミリと同様に1980年後半から1990年代中頃まで製造されていた32ビットのRISCマイクロプロセッサです。汎用コンピュータとして成功せず、組み込みメインだった点も似ていますね。

これも初めて絡むのでアーキテクチャの特徴を見てみます。

  1. レジスタ
    共通のレジスタとサブルーチンコールで切り替わるレジスタに分かれている点ではi960に似ていますがもうちょっと複雑です。gr0からいくつかは特殊なレジスタで、gr64gr127が共通(グローバル)レジスタになっています。gr128gr255がローカルレジスタになりますが、128個が複数セットあるのではなく、命令のレジスタフィールドで指定した番号とgr1の値が加算されて対象のレジスタが決定されます。
  2. 3オペランド
    Am29000ファミリもi960ファミリ同様に演算命令は3オペランドになっています。命令によってはソースオペランドの片方に0~255の定数が使えるのが便利そうです。
  3. 遅延分岐
    JMP, CALLといった分岐命令では分岐先を実行する前に直後の命令が実行されます。
  4. サブルーチン呼び出し
    CALL命令によるサブルーチン呼び出しの際に戻りアドレスはレジスタに保存されますが、保存先のレジスタは自由に選択できます。RET相当の命令は無く、JMPI(Jump Indirect)命令を使用します。i960とは異なりローカルレジスタの切り替えは自動では行なわれないのでgr1を更新するのはプログラマの責任です。逆にいうとローカルレジスタを必要な分だけ確保することができます。
  5. 比較と条件分岐
    比較命令も3オペランドで結果はステータスレジスタではなく通常のレジスタに入ります。条件分岐もレジスタの値(最上位ビット)によって行われます。
  6. 即値
    前述のように8ビットまではそのまま使える命令が多くありますが、それ以上が必要な場合は一旦レジスタに入れる必要があります。CONST命令はレジスタの下位16ビットに値をセットし上位をクリアします。CONSTN命令はCONST同様ですが上位16ビットを1で埋めます。負の値に使います。16ビットを超えた値が必要な時はまずCONST命令で下位16ビットをセットし、続けてCONSTH命令で上位16ビットをセットします。順番を逆にすると正しく動作しません。

実際に書き始めるともっといろいろ出てくると思います。

命令フォーマットは結構シンプルで、32ビットを8ビットずつに分けて上(ビット31~24)が命令の種類を表します。残りが3つのオペランドを表すのが基本で、16ビットの定数を必要とする場合はビット23~16とビット7~0を繋げて用います。

余談ですが、AVRのフォーマットと似ているなと思いました。あれの命令長は16ビットで、8ビットの値はビット11~8とビット3~0に分かれて入っています。

さて、アーキテクチャについてはこのくらいにしてパッケージをよく見てみます。

ケースの左右突起部分を押せば外すことができます。


ファミリのトップバッターAm29000、型番からわかる通り25MHz品です。

右下に京セラのマークがあるのは面白いですね。パッケージのメーカがここまで自己主張するんですねぇ。

バースト転送時は1クロックでメモリからデータを読まなくてはならないので今のEMILY Boardでは25MHz動作は無理です。DPSRAMをもっと高速なものに替えるか、バースト転送を禁止するかが必要になります。

あと誤算だったのはこのAm29000はハーバードアーキテクチャで命令バスとデータバスが分かれて(アドレスは共通)いることに後から気付いたことなんです。32ビットのバスを2本配線して、しかもモニタを動かして遊ぶためには命令の書き換えが出来なくては面白くないですから両バスを接続しなくてはならず……

バスが共通になってるAm29030あたりを買い直した方が良いのかもしれません。

参考文献・関連図書
Am29000 and Am29005データシート, Advanced Micro Devices.
Daniel Mann, "Evaluating and Programming the 29K RISC Family", Third Edition, Advanced Micro Devices.
"Am29000 User's Manual", Advanced Micro Devices.
関連項目

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。