English
HARDWARE ManualSCUユーザーズマニュアル
戻る進む
SCUユーザーズマニュアル/第4章 DSP制御

■4.3 オペランド実行方法

 DSPは、以下の命令に対しては、実際にレジスタをこのように制御し、実行しています。

◆JUMP命令の実行

 ジャンプ先アドレス(Immediate Data)をプログラム制御ポートのプログラムRAMアドレスに格納することで実現します。但し、プリフェッチされた命令は実行されますので注意してください。 条件付きのJUMP命令は、まずプログラム制御ポートのフラグの状態を調査し、条件を満たしていれば、プログラム制御ポートのプログラムRAMアドレスにジャンプ先アドレスを格納します。 命令のフォーマットは、4.5項『命令』のJUMP命令部を参照してください。図4.2に、JUMP命令実行フローを示します。

図4.2 JUMP命令の実行

◆LOOPプログラムの実行

 トップアドレスレジスタ([TOP])で指定されたアドレスと、DSPのBTM命令(4.5項『命令』、LOOP BOTTOM命令参照)の間のプログラムがループカウンタ([LOP])で指定された回数だけ繰り返し実行されます。 よって、この処理を実現させるためには、トップアドレスレジスタやループカウンタに、あらかじめ値を設定してから実行させるようにしてください。 値の設定は、DSPのLoad immediate命令(4.5項『命令』、Load immediate命令参照)にて行うことができます。 図4.3に、LOOPプログラムの実行フローを示します。

図4.3 LOOPプログラムの実行

◆DMA命令の実行

 DSPからDMAコントローラのレジスタを設定して、実際にDMA転送を行う過程を説明します。 DMA命令は、転送方向(読み込み/書き出し)により、次の2種類に分けられます。

  1. D0バスからDSPへのデータ転送
  2. DSPからD0バスへのデータ転送

●D0バスからDSPへのデータ転送

 DSPデータRAM転送開始アドレスと、外部メモリ転送開始アドレスをレジスタ([CT0-3]と[RA0])に設定し、DMA命令により転送が開始されます。DMA命令までの命令フォーマットは以下のようになります。
詳細は、4.5項『命令詳細』を参照してください。

MOV	SImm,[CT0]     ; DSPデータRAM0転送開始アドレスセット
MVI	Imm,[RA0]      ; 外部メモリ転送開始アドレスセット
DMA	D0,[MD0],SImm  ; D0バスを使用し、DMA転送開始

 表4.6に、このDMA転送での特徴をまとめます。DMA転送は、1ロングワード単位で実行されますので、 転送ワード数の設定(上記、DMA命令のSImm)は、ロングワード単位で設定してください。

表4.1 D0バスからDSPへのデータ転送の特徴
項  目
特    徴
フラグのセット
プログラム制御ポートのTOフラグがセットされる。
起動と終了
 外部からのデータレディ信号に従う。この信号により、1ロングワード単位で
転送される。また、外部からのエンド信号によりDMA転送を終了し、このタイミ
ングでプログラム制御ポートのTOフラグがリセットされる。
アドレス更新
 1ロングワード転送される毎に、DSPデータRAM転送アドレス([CTO-3])は1加
算され、外部メモリ転送アドレス([RA0])はアドレス加算数に従って加算され
る。
ホールド状態
 DMA命令のHoldビット(4.5項「命令」DMA命令の部参照)を1にセットすると、
転送ワード数([TN0])や外部メモリ転送アドレス([RA0])は転送開始時の値が保
持される。

●DSPからD0バスへのデータ転送

 DSPデータRAM転送開始アドレスと、外部メモリ転送開始アドレスをレジスタ([CT0-3]と[WA0])に設定し、DMA命令により転送が開始されます。DMA命令までの命令フォーマットは以下のようになります。 詳細は、4.5項『命令詳細』を参照してください。

MOV	SImm,[CT0]     ; DSPデータRAM0転送開始アドレスセット
MVI	Imm,[WA0]      ; 外部メモリ転送開始アドレスセット
DMA	[MD0],D0,SImm  ; D0バスを使用し、DMA転送開始

 表4.7に、このDMA転送での特徴をまとめます。DMA転送は、1ロングワード単位で実行されますので、 転送ワード数の設定(上記、DMA命令のSImm)は、ロングワード単位で設定してください。

表4.2 DSPからD0バスへのデータ転送の特徴
項  目
特    徴
フラグのセット
プログラム制御ポートのTOフラグがセットされる。
起動と終了
 外部からのデータレディ信号に従う。この信号により、1ロングワード単位で
転送される。また、外部からのエンド信号によりDMA転送を終了し、このタイミ
ングでプログラム制御ポートのTOフラグがリセットされる。
アドレス更新
 1ロングワード転送される毎に、DSPデータRAM転送アドレス([CTO-3])は1加
算され、外部メモリ転送アドレス([WAO])はアドレス加算数に従って加算され
る。
ホールド状態
 DMA命令のHoldビット(4.5項「命令」DMA命令の部参照)を1にセットすると、
転送ワード数([TN0])や外部メモリ転送アドレス([WA0])は転送開始時の値が保
持される。

◆END命令の実行

 END命令を認識すると、プログラム制御ポートのプログラムRAMアドレスの加算処理が停止され、 プログラム実行制御ビット(EXフラグ)がリセットされます。これによって、DSPのプログラムの実行は停止します。 但し、DMA命令によるデータ転送は、このEND命令とは無関係に転送完了まで実行が継続されます。 プログラムが停止したときのプログラムアドレスの値は、END命令の格納されているアドレスの次のアドレスで停止します。


戻る進む
HARDWARE ManualSCUユーザーズマニュアル
Copyright SEGA ENTERPRISES, LTD., 1997