SimpleProcessorは,単純なRISCプロセッサのシミュレータである. 四則演算や論理演算,メモリアクセス命令をもつ. また内部にスタックを持ちpop/push命令を使用できる.
SimpleProcessorは,16bit幅のレジスタを32個持っている.レジスタの構成は,次の通り.
r0〜r28
r29
r30
r31
レジスタは,全てユーザプログラムから自由に操作することができる.
SimpleProcessorには,プログラム用の内部メモリの大きさおよび,接続するChannelを設定することができる. 最も簡単なSimpleProcessorの構成は次のようになる.
<element id="proc0" class="net.wasamon.mics.SimpleProcessor" memory="2048"/>
他のデバイスと接続するためのチャネルは,そのアクセスするメモリ番地のoffsetを指定して設定することができる.たとえばChannel,bus0とbus1に2048ずつオフセットをずらして接続する場合には,次のような設定になる.
<element id="proc0" class="net.wasamon.mics.SimpleProcessor" memory="2048">
<channel id="bus0" offset="2048"/>
<channel id="bus1" offset="4096"/>
ここで,Channelは接続先のDataBufferの大きさについての保証をしない.つまり,bus0の先に接続しているDataBufferの大きさが,2048に満たない,たとえば1024で場合,SimpleProcessorから,3072から4095番地にアクセスした場合,それは不正なメモリアクセエス例外を発生する.また逆にbus0の先のDataBufferのサイズが2048を越える場合,bus1へのアクセスエリアとの重なりが生じる.この場合,SimpleProcessorでは,より大きいoffsetで指定した方,つまりbus1へのアクセスとする.