1.2 機械語命令概観
機械語命令は上位記憶間データ転送を制御するデータ移動命令(以下MV命令)と、L2B以下を制御するPE命令からなる*^1 。
PE命令
MV命令は発行後、後続の命令とは非同期に実行される。
ただし、PE命令はwaitを含むことができ*^4 、その場合指定したMV命令の完了まで、そのPE命令の発行直前で命令ストリームを待機させることができる。
つまりあるPE命令の発行後にあるMV命令を発行したい場合はその順番に命令ストリームを記述すればよく、逆にMV命令の完了後にPE命令を発行したい場合はwait命令を用いればよい。
PE命令とMV命令いずれでも、データ転送には基本的に、それと対称な逆方向の転送が可能である。
例えば上位階層から下位階層への分配(データを等分割して送信)のモードがある場合、基本的には下位から上位への結合(データを等サイズで読み出して送信し、繋げて書き込み)のモードが存在し、分配したデータをそのまま結合するとレイアウトを含めて同一のデータが上位階層に完成するようになっている。
これによりデータレイアウトの一貫性を保つことができる。
PE命令の構造
命令ストリームの構造と、PE命令およびMV命令の制御範囲
code:txt
*^3 L1BMはL1Bに備わったメモリの名前でもあるが、PEとデータをやり取りするユニットという意味でここでは演算器としてもこう呼ぶこととする。実際に縮約演算を行う回路も備わっている。
*^4 命令は固定ビット幅なので、正確にはwait命令は常にPE命令に含まれており、オプションでどのMV命令に対しても待機しないことを指定できる。