3.6.8.21 l1bmd-結合
この際、 4 長語ごとに異なるMABから送られた値が書き込まれることになるが、送り元のMAB番号をラウンドロビンにずらすことができる。 なお 2 長語動作の結合命令は存在しない。
code:文法
l1bmd[] $lb <addr_b>
[(+|-)n]は+か-の後に 0 から 15 の整数を付け、MAB番号をずらす量を指定する。正の場合でも符号は必須である。 n番分ずれたアドレスに、未指定であれば送信されるはずだったデータが送られるという対応関係になる。 code:効果
for cycle= 0:4
forall group,l2b,l1b
LongWord data_turnaround64 forall mab,pe
uint_t dst_mab = (mab+ mabdiff) % 16
cycle)
uint_t dst_addr=addr_b +cycle* 64
code:txt
例
l1bmd+1 $lr0v $lb0
l1bmd $lr0v $lb256
nop/2
l1bmd $lb0 $ls0v
l1bmd+1 $lb256 $ls8v
この例では$ls0から 4 長語の範囲に書き込まれる値と、$ls8から 4 長語の範囲に書き込まれる値は等しくなる。 つまり、あるの値を結合時に指定するのと分配時に指定するのは等価になるような定義になっている。