3.5.8.16DRAM→L2BMグループ間分配放送命令
この命令は複雑なのでまず具体的に、単位動作であるL2BM側 64 長語書き込みの動作を説明する。各グ
ループのDRAMから 32 長語ずつ読み、前半 16 長語をグループ順に並べた 64 長語を全グループの 0 番目の
L2BMに放送する。後半 16 長語を同様に並べた 64 長語を全グループの 1 番目のL2BMに放送する。
code:txt
単位動作でない場合はこれを繰り返す。
スループットはDRAM側 8 長語/サイクル、L2BM側 16 長語/サイクルである。
文法
mvb4/n<size><tag> $d<addr_d>$lc<addr_c>
code:txt
効果
uint_t n=size / 64
for i= 0:n
uint_t src_offset= addr_d+ 32 * i
uint_t dst_addr=addr_c + 64 *i
LongWord buf264
forall group,l2b
uint_t src_addr=src_offset +l2b* 16
uint_t buf_addr=group* 16
bufl2bbuf_addr:buf_addr+16 = MEMgroup.dramsrc_addr:src_addr+16
code:txt
forall group,l2b
MEMgroupl2b.l2bmdst_addr:dst_addr+64 = bufl2b0:64
code:txt
エラー
sizeが単位動作 64 の倍数でないとエラーになる。
code:txt
例
mvb4/n64 $d0 $lc0
code:txt
本節冒頭で延べた単位動作である。