English
HARDWARE ManualSCUユーザーズマニュアル
戻る進む
SCUユーザーズマニュアル

第2章 動作説明


■2.1 DMA転送

 ◆DMAの基本動作

 図2.1に、DMAの基本動作を示します。本DMAは、DMAコントローラのバッファを介して、 基本的にロングワードアクセスになっていますが、開始アドレスや終了アドレスがロングワード境界になかった場合、 バイト単位で読み書きし、DMA転送を実行することができます。
 図2.1は、転送元アドレス1H〜50Hから転送先アドレス6H〜55HへのDMA転送を実行している例ですが、 転送元では、ロングワード境界が4Hですので、1H〜3Hをバイト単位で読み込みます。 一方、転送先では、ロングワード境界が8Hですので、読み込んだデータの最初の2Byteをバイト単位で6H〜7Hへ書き出します。 さらに、転送元終了アドレスは50Hですが、ロングワード境界は4FHまでですので、50Hのデータはバイト単位で読み込みます。 一方、転送先終了アドレスは、55Hですが、ロングワード境界は53Hまでですので、読み込んだ最後の2Byteを54H〜55Hへバイト単位で書き出します。

図2.1 DMA転送基本動作

 SCUのDMA転送制御には、2通りの起動方法があります。

  1. メインCPUからのDMA起動
  2. DSPからのDMA起動

 図2.2に、メインCPUから起動をかけたときのDMA転送可能エリアを、図2.3に、DSPから起動をかけたときのDMA転送可能エリアを示します。

図2.2 メインCPUから起動された時のDMA転送可能エリア

図2.3 DSPから起動された時のDMA転送可能エリア

DMAに関する注意事項

 ●A-BusへのSCU-DMAによる書き込み禁止
 A-BusへのSCU-DMAによる書き込みは使用できません。

 ●VDP2領域からのSCU-DMAによる書き込み禁止
 VDP2領域からのSCU-DMAによる書き込みは使用できません。

 ●WORKRAM-LへのSCU-DMA使用不可
 WORKRRAMでSCU-DMAが使用できるのはWORKRAM-HI(SDRAM:1Mbyte)のみです。

 ●A-Bus←→B-BusのDMA動作中のCPUからA-Bub、B-Busへのアクセス禁止
 A-BusからB-Bus、B-BusからA-BusのDMA動作中には、CPUからのA-Bus、B-Busに対するアクセスは禁止します。 ウエイト中に、SDRAMに対してリフレッシュが発生しなくなりハングアップする場合があるからです。

 ●A-Bus、B-BusへCPUによるライト時のA-Bus←→B-BusのSCU-DMAの起動の待機
 A-Bus、B-BusへのCPUによるライト処理は、A-BusとB-BusのSCU-DMAの起動よりも優先されます。
例えば、VDP1(B-Bus)に対してCPUで連続ライトを実行しているときに、A-BusからVDP2(B-Bus)に対して SCU-DMAの起動をかけても、連続ライトが終了するまでSCU-DMAは起動されません。
 ただし、SCU-DMA起動中には、A-Bus、B-Busに対するCPUアクセスは待機されます。

 ●DMAの同時使用可能チャンネルは、2チャンネル
 DMAの優先順位を保証した同時使用可能チャンネル数は、2チャンネルまでです。
3チャンネル同時に使用すると優先順位が無視されます。(DSPのDMA命令も1チャンネルと数えられます)

 ●DMAレベル1の実行中にDMAレベル2の起動は禁止
 DMAをレベル1で起動中にDMAのレベル2を起動すると誤動作を起こす場合があります。
対応として、DMAレベル1で起動中にDMAレベル2の起動をしないでください。

 ●DMA起動中にその対応するレベルの書き込み禁止
 DMAモード、アドレス更新、起動要因選択レジスタおよび加算値レジスタは、そのレベルのDMA起動中は内容の書き換えをしてはいけません。
書き換えをするとハングアップします。

 ●SCU-DMA間接モードの禁止事項
 CDバッファからの読み出しに、SCU-DMAの間接モードの使用を禁止します。
SCU-DMAの直接モードか、CPU-DMA又はソフトウェアによる転送を行ってください。
 CDバッファだけでなく、A-BUS空間をソースとする転送には、ソースの読み込みアドレス加算値に、 「4バイト加算」のみが指定可能で「加算しない」の設定は禁止です。
SCU-DMAの直接モードについてはこの制限はありません。


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