dsPICは Microchip社の製品で、 Digital Signal Controllers (DSCs) と称しています。 有名な PIC マイコン (microcontrollers, MCUs) の姉妹品です。 dsPIC30Fシリーズや dsPIC33Fシリーズがあります。 dsPICの特徴としては、
dsPICの構成を簡略化すると、下図のようになります。 簡単のために、 プログラムメモリ、制御部、一部の演算器 (除算、シフト) 等は省略してあります。
代表的なディジタル信号処理向け命令に、
MAC
(Multiply ACcumulation, 積和演算) があります。
この命令は、同時に多くの処理を行うことができます。
MAC Wm*Wn,Acc {,Wx,Wxd} {,Wy,Wyd} {,AWB}
{…}: 省略可能
MAC Wm*Wn,Acc: 積和演算 Acc = Wm * Wn
Wm, Wn: W4〜W7の一つ。
Acc: アキュムレータA, Bのいずれか。
Wx,Wxd: Xデータメモリからの読み出し Wxd = Wx
Wxd: 読み出したデータを格納するレジスタ。W4〜W7の一つ。
Wx: Xデータメモリのアドレス。下記のいずれか。
[W8]+=6, [W8]+=4, [W8]+=2, [W8], [W8]-=2, [W8]-=4, [W8]-=6,
[W9]+=6, [W9]+=4, [W9]+=2, [W9], [W9]-=2, [W9]-=4, [W9]-=6,
[W9+W12]
[Wi]+=j: レジスタWiで指定されたアドレスからデータを読み出す。
読み出し後、Wiにjを加える。「-=」ならば減ずる。
Wy,Wyd: Yデータメモリからの読み出し Wyd = Wy
Wyd: 読み出したデータを格納するレジスタ。W4〜W7の一つ。
Wy: Yデータメモリのアドレス。下記のいずれか。
[W10]+=6, [W10]+=4, [W10]+=2, [W10], [W10]-=2, [W10]-=4, [W10]-=6,
[W11]+=6, [W11]+=4, [W11]+=2, [W11], [W11]-=2, [W11]-=4, [W11]-=6,
[W11+W12]
AWB: AWB = ConvertTo16Bit(Other Acc)
積和演算に使わなかったアキュムレータの内容を保存する。
(Accumulator Write-Back)16bitに変換してから保存する。
保存先はW13, [W13]+=2のいずれか。
例えば、
MAC W4*W5,A,[W8]+=2,W6,[W10]-=2,W7,[W13]+=2
は、以下の処理を行います。
A = W4 * W5
W6 = [W8]
W8 = W8 + 2
W7 = [W10]
W10 = W10 - 2
[W13] = ConvertTo16Bit(B)
W13 = W13 + 2
あまりにも煩雑になるので省略してありますが、
dsPICもリングバッファ
を使用することができるので、
その場合にはさらに処理が増えています。
[上へ]
[戻る Blackfin DSP]
[目次]
[次へ
ADSP-21369 SHARC Ez-Kit Lite DSPボード]