3.6.7.9l2bmi-L1BM間内部マルチキャスト
L2BM-L1BM間のパスを利用して、L2BM内部のL1BM同士の間で 16 長語/サイクルの転送を行う。読
み出し元も書き込み先も複数にできるのでマルチキャストと呼ばれる。
code:txt
文法
l2bmb@<l1bset> $lb<addr0>$lb<addr1>
@以降は第3.6.7.1節で定めたL1B集合の指定であり、これに含まれるL1Bのみから読み出しが行われる。
L1B集合指定におけるをi、L1B番号をbとして、読み出し元とb&iが一致するL1Bに書き込み
が行われる。ここで&は論理積である。例えばが 0 ならば、b&iは常に 0 なので、番の
L1Bから読み出された値が他のすべてのL1Bに送られる。また、が 0 、が6 (=0b110)で
あれば、 2 進L1B番号の上 2 桁でグループ化され、0,2,4,6番のL1Bから読み出された値が、それぞれ1,3,5,7
番のL1Bに送られる。は 7 にできず、L1B集合を直接指定する形式で全L1Bからなる集合を指定
することもできない。
読み出しアドレスと書き込みアドレスはいずれも 16 長語アラインである必要がある。
効果
for cycle= 0:4
forall group,l2b
uint_t src_addr=addr0+ cycle* 16
uint_t dst_addr=addr1+ cycle* 16
LongWord data16
for l1b_src in l1bset
data0:16 =MEMgroupl2bl1b_src.l1bmsrc_addr:src_addr+16
for l1b_dst = 0:8
if l1b_dst& immode== l1b_src& immode
MEMgroupl2bl1b_dst.l1bmdst_addr:dst_addr+16 = data0:16
code:txt
例
l2bmi@0/4$lb0 $lb0
0 番L1BMから読み出した計 64 長語を1,2,3番L1BMの同じアドレスに放送し、 4 番L1BMと5,6,7番
L1BMについて同じことをする。