IM-528_CADR.pdfからLispマシーンCADRの命令フォーマットをまとめました。CADRの命令長は48bit+奇パリティで、以下の部分が全命令で共通の仕様になっています。
bit | 機能 |
---|---|
IR[48] | 奇パリティビット |
IR[47] | 未使用 |
IR[46] | 統計用bit(Statistics)。特定エリアのマイクロコードの実行された回数を数えたり、マイクロコードブレークポイントを実装したり、一定の時間でマシーンを止めるのに使用できる。 |
IR[45] | ILONG 1で遅いクロックを意味する |
IR[44:43] | オペコード 0:ALU 1:JUMP 2:DISPATCH 3:BYTE |
IR[42] | POPJ Transfer。追加の1命令を実行した後、マイクロサブルーチンからリターンする。 |
IR[11:10] | その他の機能。0:Normal、1:未使用、2:オペコードがDISPATCHの時、ディスパッチメモリへの書き込み、3:ロケーションカウンタ(LC)によるM-ROTATEフィールドの修正イネーブル。 |
パリティやクロックの制御が命令フォーマットに入っている点が、最近のプロセッサとは違う所です。42bit目のPOPJ Transferが、1命令を実行した後に関数から戻る仕様になっており、スタック専用のメモリと合わせて関数の呼び出しとリターンに専用の仕組みがありそうです。