演算とデュアル・ロード

命令形式

<alu_op>, <xdst> = DM(<ireg1>+=<mreg1>), <ydst> = PM(<ireg2>+=<mreg2>;
<mac_op>, <xdst> = DM(<ireg1>+=<mreg1>), <ydst> = PM(<ireg2>+=<mreg2>;

AR = AX0 + AY0, AX0 = DM( I0+=M1 ), AY0 = PM( I4+=M7 );
MR = MR + MX0 * MY1(SS), MX0 = DM( I2+=M1 ), MY1 = PM( I4+=M6 );

説明

演算を実行しながらDMバスとPMバスを使って二つのオペランドを同時にロードします。

演算はALU演算とMAC演算命令のうち、基本形式のものに限ります。

デスティネーションはDMバス転送側がAXnとMXn、PMバス転送側がAYnとMYnです。また、DMバス転送はDAG1レジスタを使用し、PMバス転送はDAG2を使用します。アドレッシングはポスト・モディファイなので循環バッファ・アクセスが可能です。条件実行はできません。

循環バッファに関しては循環バッファ・アクセスを参照してください。DAG1、DAG2に関する詳細とデュアル・アクセス時の衝突に関してはDAGを参照してください。また、DM/PMバスによる16/24ビット転送に関しては後更新DM転送後更新PM転送を参照してください。

文法要素

<alu_op>::= ALU演算命令のうち、基本形式のもの
<mac_op>::= MAC演算命令のうち、基本形式のもの
<xdst>  ::= AX0, AX1, MX0, MX1
<ydst>  ::= AY0, AY1, MY0, MY1
<ireg1> ::= I0, I1, I2, I3
<mreg1> ::= M0, M1, M2, M3
<ireg2> ::= I4, I5, I6, I7
<mreg2> ::= M4, M5, M6, M7
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |