English
HARDWARE ManualSCUユーザーズマニュアル3.1 レジスタ一覧
戻る進む
SCUユーザーズマニュアル/第3章 レジスタ詳細

■3.2 DMA制御レジスタ

 DMA制御レジスタは、以下のレジスタから構成されています。

 ◆レベル2-0DMAセットレジスタ

 DMAのレベルは優先順位の最も高いレベル2から最も低いレベル0までの3種類あります。

●読み込みアドレス
 図3.1に、読み込みアドレスレジスタ詳細を示します。DMAのモードは、直接モードと間接モードがありますが、それぞれのモードで値の持つ意味が変わります。

図3.1 レベル2-0読み込みアドレス(レジスタ:D0R , D1R , D2R) 初期値不定
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0000(レベル0)
25FE0020(レベル1)
25FE0040(レベル2)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

 読み込みアドレス(図3.1中、1〜27[bit 26〜0])
DxR26-0[x=2-0](R/W)  DMA level 2-0 Read address bit26-0
 直接モードの時、格納されている値は転送元アドレスです。それに対し、間接モードの時は、意味を持っていません。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。アドレス値はいずれもバイト単位で表します。

●書き出しアドレス
 図3.2に、書き出しアドレスレジスタ詳細を示します。DMAのモードは、直接モードと間接モードがありますが、それぞれのモードで値の持つ意味が変わります。

図3.2 レベル2-0書き出しアドレス(レジスタ:D0W , D1W , D2W) 初期値不定
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0004(レベル0)
25FE0024(レベル1)
25FE0044(レベル2)
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

 書き出しアドレス(図3.2中、1〜27[bit 26〜0])
DxW26-0[x=2-0](R/W)  DMA level 2-0 Write address bit26-0
 直接モードの時、格納されている値は転送先アドレスです。それに対し、間接モードの時は、1回目に実行されるDMA転送の転送元アドレスが入っているところのアドレスを格納しています。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。 アドレス値はいずれもバイト単位で表します。

●転送バイト数
 DMAで転送するバイト数を格納します。図3.3に、レベル0の転送バイト数詳細を、図3.4に、レベル2-1の転送バイト数詳細を示します。

図3.3 レベル0転送バイト数(レジスタ:D0C) 初期値不定
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0008(レベル0)
10 11 12 13 14 15 16 17 18 19 20

 レベル0転送バイト数(図3.3中、1〜20[bit 19〜0])
D0C19-0(W)  DMA level 0 Count bit19-0
 レベル0で動作するDMA転送のバイト数を格納します。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。このレジスタは1MByteまで設定可能です。

図3.4 レベル2-1転送バイト数(レジスタ:D1C,D2C)初期値不定
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0028(レベル1)
25FE0048(レベル2)
10 11 12

 レベル2-1転送バイト数(図3.4中、1〜12[bit 11〜0])
DxC11-0[x=2-1](W)  DMA level 2-1 Count bit11-0
 レベル2あるいは1で動作するDMA転送のバイト数を格納します。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。このレジスタは、4KByteまで設定可能です。

DMA転送レジスタの転送バイト数の読み込み禁止

 DMA転送レジスタの転送バイト数を読み込んだ値は保証されません。このレジスタの読み込みはできません。 ライトオンリのレジスタになります。

■DMA転送バイト数の‘0’設定時の動作
 SCU-DMAの転送バイト数を'0'に設定したときの転送数は、各設定での最大値となります。

 詳 細:
Developer's Information STN-39/SCU-DMAの転送バイト数についての補足

●加算値レジスタ
 図3.5に、加算値レジスタの詳細を示します。

図3.5 レベル2-0アドレス加算値(レジスタ:D0AD,D1AD,D2AD)初期値 00000101H
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE000C(レベル0)
25FE002C(レベル1)
25FE004C(レベル2)

 読み込みアドレス加算値(図3.5中、1[bit 8])
DxRA[x=2-0](W)  DMA level 2-0 Read address Addition data bit
 読み込みアドレスの加算バイト数を指定します。表3.2に読み込みアドレス加算値を示します。これは、A-BusのCS2空間のみ有効なもので、それ以外は1Bをセットしてください。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。

表3.2 読み込みアドレス加算値
DxRA(x=2−0)
内   容
0
加算しない。
1
4Byte加算する。

 書き出しアドレス加算値(図3.5中、2〜4[bit 2〜0])
DxWA3-0[x=2-0](W)  DMA level 2-0 Write address Addition data bit3-0
 書き出しアドレスの加算バイト数を指定します。表3.3に書き出しアドレス加算値を示します。 これは、B-Busに書き込むときにはすべて有効、A-BusのCS2空間に書き込むときには、データの000Bあるいは010Bのみセット可能となります。A-BusやB-Bus以外に書き込む時、データは010Bにセットしてください。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。

表3.3 書き出しアドレス加算値
DxWA(x=2−0)
内   容
000B
加算しない
001B
2Byte加算する
010B
4Byte加算する
011B
8Byte加算する
100B
16Byte加算する
101B
32Byte加算する
110B
64Byte加算する
111B
128Byte加算する

 この書き出しアドレス加算値について、図3.6のような規定があります。この図にあるようにSCUとB-Busの間は32bit単位で通信していますが、B-Busとプロセッサの間は16bit単位で通信します。よって、図3.7に示すようにA〜DのデータをSCUから プロセッサに転送するとき、SCUはB-Busに対しA〜Dを1度に転送することができますが、B-Busはプロセッサに対しA〜BとC〜Dに分割して転送するしかありません。このことから、B-Busの書き出しアドレス加算値は2Byte単位となりますので、 図3.8に示すようにアドレス2とアドレス1の差を書き出しアドレス加算値として指定することができます。

図3.6 SCU-プロセッサ間の通信単位

図3.7 SCU-プロセッサ間の転送具体例

図3.8 書き出しアドレス加算値の指定

アドレス1−アドレス2を『書き出しアドレス加算値』で指定できる

<加算値レジスタに関する制限事項>

 DMAの読み込みアドレス加算値のアクセスするアドレスによる制限
 読み込みアドレス加算値に設定できる値が、アクセスするアドレスにより変わります。 これは、DSPのDMA命令にも該当します。

外部エリア4領域(A-Bus I/Oエリア)→0b,1b の設定が可能です
その他 →1b の設定のみ可能です

 DMAの読み込みアドレス更新ビット設定時のアドレス加算値ビットの設定値
 読み込みアドレス更新ビットが「1b」の時には、読み込みアドレス加算値ビットは「1b」でなけらばなりません。

 DMAの書き出し加算値のアクセスするアドレスによる制限
書き出しアドレス加算値に設定できる値が、アクセスするアドレスにより変わります。 これは、DSPのDMA命令にも該当します。

WORKRAM-H →010b の設定が可能です
外部エリア1〜3領域 →010b の設定が可能です
外部エリア4領域(A-Bus I/Oエリア)→000b,010b の設定が可能です
VDP1,VDP2,SCSP →すべての設定が可能です

 DMAの書き出しアドレス更新ビット設定時のアドレス加算値ビットの設定値
 DMAの書き出しアドレス更新ビットが「1b」の時には、書き出しアドレス加算値ビットはアクセス するバス空間によって以下のように設定しなければいけません。

外部エリア1〜4領域(A-Bus) →010b の設定が可能です
VDP1,VDP2,SCSP(B-Bus) →001b の設定が可能です
WORKRAM-H(C-Bus) →010b の設定が可能です

 ◆DMA許可レジスタ

 DMAの実行を許可するレジスタです。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。図3.9に、このレジスタのフォーマットを示します。

図3.9 レベル2-0 DMA許可ビット(レジスタ:D0EN,D1EN,D2EN)初期値 00000000H
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0010(レベル0)
25FE0030(レベル1)
25FE0050(レベル2)

 DMA許可ビット(図3.9中、1[bit 8])
DxEN[x=2-0](W)  DMA level 2-0 ENable bit
 DMAの実行を許可するビットです。DMAを許可する場合、このフラグを1にします。この後、DMAが起動可能となるので、他の必要なデータは事前にセットしておいてください。

 DMA起動ビット(図3.9中、2[bit 0])
DxGO[x=2-0](W)  DMA level 2-0 GO bit
 DMAの実行を開始させるビットです。起動要因ビットが111Bの時にのみ有効なビットで、DMAを起動する場合このビットに1をセットします。1セットにより、1回DMAが起動されます。

 ◆DMAモード、アドレス更新、起動要因選択レジスタ

 DMAのモード(直接または間接モード)、アドレス更新(設定値の保持または更新)、起動要因の選択を指定するレジスタです。図3.10にこのレジスタの詳細を示します。DMAが動作中、そのレベルのレジスタは書き込み禁止となります。

図3.10 レベル2-0DMAモード,アドレス更新,起動要因選択レジスタ(レジスタ:D0MD,D1MD,D2MD) 初期値 00000007H
bit
31
  
  
  
  
  
  
24
23
  
  
  
  
  
  
16
15
  
  
  
  
  
  
8 
7 
  
  
  
  
  
  
0 
25FE0014(レベル0)
25FE0034(レベル1)
25FE0054(レベル2)

 DMAモードビット(図3.10中、1[bit 24])
DxMOD[x=2-0](W)  DMA level 2-0 MODe bit
 DMAのモードを決定します。0の時は直接モード、1の時は間接モードを表しています。

 読み込みアドレス更新ビット(図3.10中、2[bit 16])
DxRUP[x=2-0](W)  DMA level 2-0 Read address renewal UP bit
 読み込みアドレスに対し、設定時の値を保持するか更新するかを決定します。0の時は保持、1の時は更新を意味します。動作の詳細は、2.1項『DMA転送』の具体的使用例を参照してください。

 書き出しアドレス更新ビット(図3.10中、3[bit 8])
DxWUP[x=2-0](W)  DMA level 2-0 Write address renewa UP bit
 書き出しアドレスに対し、設定時の値を保持するか更新するかを決定します。0の時は保持、1の時は更新を意味します。動作の詳細は、2.1項『DMA転送』の具体的使用例を参照してください。

 DMA起動要因選択ビット(図3.10中、4〜6[bit 2〜0])
DxFT2-0[x=2-0](W)  DMA level 2-0 starting FacTor bit2-0
 DMAは、DMA許可ビットをセットし、起動要因選択ビットで選択された外部信号を受信することによって起動します。ただし、起動要因ビットが111Bの時には、DMA起動ビットをセットすることによりDMAが起動します。

表3.4 起動要因詳細
起動要因ビット(x=2−0)
起 動 要 因
DxFT2
DxFT1
DxFT0
0
0
0
許可ビットのセット and V-ブランク-IN信号受信
0
0
1
許可ビットのセット and V-ブランク-OUT信号受信
0
1
0
許可ビットのセット and H-ブランク-IN信号受信
0
1
1
許可ビットのセット and タイマ0信号受信
1
0
0
許可ビットのセット and タイマ1信号受信
1
0
1
許可ビットのセット and サウンド-Req信号受信
1
1
0
許可ビットのセット and スプライト描画終了信号受信
1
1
1
許可ビットのセット and DMA起動ビットのセット


戻る進む
HARDWARE ManualSCUユーザーズマニュアル3.1 レジスタ一覧
Copyright SEGA ENTERPRISES, LTD., 1997