PIC (コントローラ)
命令はバイト (B=1) および16ビット形態 (B=0) をとる
スタックはRAMの中にとられる(W15がスタックポインタ); ハードウェアスタックは存在しない
W14はフレームポインタ
ROMに格納されたデータは直接参照できる(プログラム空間が読める)
異なる割り込みソースからの割り込みベクタがサポートされる
いくつかの特長:
ハードウェア積和演算
バレルシフタ
ビット反転
16x16ビットの1サイクルでの積算およびその他のDSP命令
ハードウェア除算支援(16/32ビット除算で19サイクル)
ループ処理に対するハードウェア支援(ゼロオーバーヘッドループ)
ダイレクトメモリアクセス
dsPICではマイクロチップXC16コンパイラ(C30と呼ばれる)を使用することでC言語でプログラミングできる。これはGCCの一種である。
プログラム用ROMは24ビット幅である。ソフトウェアは16ビット幅でこのROMにアクセスできる。16ビット2ワードとして読み込むと、1ワード目は16ビット、2ワード目は8ビットであり、上位8ビットは0が設定される。プログラムカウンタは23ビット幅であるが、最下位ビットは常に0であり、実質的には22ビットである。
命令は大きく2種類ある。 一つはクラシックなPIC命令であり、W0および指定されたfレジスタ(例えば最初の8KBのRAM)の間の処理である。出力先はビット設定により選択され、処理結果として書き換えられる。Wレジスタはメモリマップである。つまりfオペランドはあらゆるWレジスタであるといえるだろう。