JPH0736821A - Dma転送制御装置 - Google Patents
Dma転送制御装置Info
- Publication number
- JPH0736821A JPH0736821A JP18296093A JP18296093A JPH0736821A JP H0736821 A JPH0736821 A JP H0736821A JP 18296093 A JP18296093 A JP 18296093A JP 18296093 A JP18296093 A JP 18296093A JP H0736821 A JPH0736821 A JP H0736821A
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- dma
- register
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 238000012856 packing Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 データパック/アンパック転送途中でDMA
転送要求停止になった場合、速やかにバスの制御を解放
し、かつ、DMA転送の再開の場合、残っていたデータ
を確実に継続転送が可能なDMA転送制御装置の提供。 【構成】 入力アライナで配置変えされたデータをチャ
ネル毎に保持する容量を有するDNA内部データレジス
タ104と、チャネル毎に保持されたデータの保持状態
をバスサイクル毎に更新して記憶する有効ビットレジス
タ124と、DMA転送要求が停止されると次のバスサ
イクルでバス制御を解放する手段と、中断されたチャネ
ルのDMA転送の再開の要求が発生すると、中断されて
保持されているデータの転送を再開する手段を有する。
転送要求停止になった場合、速やかにバスの制御を解放
し、かつ、DMA転送の再開の場合、残っていたデータ
を確実に継続転送が可能なDMA転送制御装置の提供。 【構成】 入力アライナで配置変えされたデータをチャ
ネル毎に保持する容量を有するDNA内部データレジス
タ104と、チャネル毎に保持されたデータの保持状態
をバスサイクル毎に更新して記憶する有効ビットレジス
タ124と、DMA転送要求が停止されると次のバスサ
イクルでバス制御を解放する手段と、中断されたチャネ
ルのDMA転送の再開の要求が発生すると、中断されて
保持されているデータの転送を再開する手段を有する。
Description
【0001】
【産業上の利用分野】データ転送装置に関し、特に直接
メモリアクセス転送(以下DMA転送と称す)に関す
る。
メモリアクセス転送(以下DMA転送と称す)に関す
る。
【0002】
【従来の技術】CPUの性能向上の一方でI/O装置の
処理転送速度が向上されないため、データ転送を専門に
行なうDMA転送方式に、そのデータ転送処理速度の違
いを緩衡する機能を持たせた、データパック/アンパッ
ク方式がある。
処理転送速度が向上されないため、データ転送を専門に
行なうDMA転送方式に、そのデータ転送処理速度の違
いを緩衡する機能を持たせた、データパック/アンパッ
ク方式がある。
【0003】データパック方式を図3に、データアンパ
ック方式を図4に示す。
ック方式を図4に示す。
【0004】データパック方式は、DMA転送制御装置
がデータバス幅の狭い転送元装置(ソース側)から、デ
ータバス幅の広い転送先装置(デスティネーション側)
へデータを転送しようとするときに、DMA転送制御装
置のバス制御権の専有時間をできるだけ短くする目的を
有する。
がデータバス幅の狭い転送元装置(ソース側)から、デ
ータバス幅の広い転送先装置(デスティネーション側)
へデータを転送しようとするときに、DMA転送制御装
置のバス制御権の専有時間をできるだけ短くする目的を
有する。
【0005】図3は、8ビットのデータバス幅をもつI
/O装置から32ビットのデータバス幅を持つメモリ装
置へデータを転送する例を示す図である。DMA転送制
御装置はI/O側からの転送要求を受け付けるとバスマ
スタとなって、最初のバスサイクルで、バス制御信号の
『(ソース側である)I/O装置に対する読み出し』信
号を出力し、ソース側であるI/O装置からデータを出
力させ、その8ビットのデータをDMA転送制御装置内
部の32ビットレジスタへ取り込む。続くバスサイクル
でも同様のバスサイクルを駆動し、これをデスティネー
ション側のデータバス幅である32ビットのデータを取
り込むまで4回行なわれる。そして、最後にDMA制御
装置はバスマスタとして、バス制御信号『(デスティネ
ーション側である)メモリに対する書き込み』信号を出
力し、DMA転送装置が取り込んだデータを出力して、
メモリに32ビットの転送データを書き込む、という手
順を踏む。以降は予め設定したカウント数が0になるま
で繰り返す。特に、本転送の場合、残り転送バイト数が
3バイト以下の時、残りカウント数分の読み込みバスサ
イクル発生後、強制的にDMA内部のデータをデスティ
ネーション側に書き込みを行なわせてかつ、有効なデー
タをバイト単位にバイトイネーブル信号等で示す。
/O装置から32ビットのデータバス幅を持つメモリ装
置へデータを転送する例を示す図である。DMA転送制
御装置はI/O側からの転送要求を受け付けるとバスマ
スタとなって、最初のバスサイクルで、バス制御信号の
『(ソース側である)I/O装置に対する読み出し』信
号を出力し、ソース側であるI/O装置からデータを出
力させ、その8ビットのデータをDMA転送制御装置内
部の32ビットレジスタへ取り込む。続くバスサイクル
でも同様のバスサイクルを駆動し、これをデスティネー
ション側のデータバス幅である32ビットのデータを取
り込むまで4回行なわれる。そして、最後にDMA制御
装置はバスマスタとして、バス制御信号『(デスティネ
ーション側である)メモリに対する書き込み』信号を出
力し、DMA転送装置が取り込んだデータを出力して、
メモリに32ビットの転送データを書き込む、という手
順を踏む。以降は予め設定したカウント数が0になるま
で繰り返す。特に、本転送の場合、残り転送バイト数が
3バイト以下の時、残りカウント数分の読み込みバスサ
イクル発生後、強制的にDMA内部のデータをデスティ
ネーション側に書き込みを行なわせてかつ、有効なデー
タをバイト単位にバイトイネーブル信号等で示す。
【0006】データアンパック方式は、DMA転送装置
がデータバス幅の広い転送元装置(ソース側)から、デ
ータバス幅の狭い転送先装置(デスディネーション側)
へデータを転送しようとするときに、DMA転送制御装
置のバス制御権の専有時間をできるだけ短くする目的を
有する。
がデータバス幅の広い転送元装置(ソース側)から、デ
ータバス幅の狭い転送先装置(デスディネーション側)
へデータを転送しようとするときに、DMA転送制御装
置のバス制御権の専有時間をできるだけ短くする目的を
有する。
【0007】図4は、32ビットのデータバス幅を持つ
メモリ装置から、16ビットのデータバス幅をもつI/
O装置へデータを転送する例を示す図である。DMAは
I/O側からの転送要求を受け付けるとバスマスタとな
り、最初のバスサイクルで、バス制御信号『(ソース側
である)メモリ装置に対する読み出し』信号を出力し、
ソース側であるメモリ装置からデータを出力させ、その
32ビットのデータをDMA転送制御装置内部の32ビ
ットレジスタへ取り込む。続くバスサイクルではデータ
パック方式とは異なり、デスティネーション側のバス幅
の方が狭いので、16ビットずつエンディアン方向に合
わせて、バス制御信号『(デスティネーション側であ
る)I/O装置に対する書き込み』信号を出力し、DM
A転送制御装置が取り込んだデータを出力して、I/O
装置に16ビットの転送データを書き込む、という手順
を踏み、以降は予め設定したカウント数が0になるまで
繰り返す。特に、本転送の場合、残り転送バイト数が3
バイト以下の時、最後の読み込みバスサイクル発生後、
強制的にDMA内部のデータをデスティネーション側に
2度書き込みを行なわせかつ、有効なデータをバイト単
位にバイトイネーブル信号で示す。
メモリ装置から、16ビットのデータバス幅をもつI/
O装置へデータを転送する例を示す図である。DMAは
I/O側からの転送要求を受け付けるとバスマスタとな
り、最初のバスサイクルで、バス制御信号『(ソース側
である)メモリ装置に対する読み出し』信号を出力し、
ソース側であるメモリ装置からデータを出力させ、その
32ビットのデータをDMA転送制御装置内部の32ビ
ットレジスタへ取り込む。続くバスサイクルではデータ
パック方式とは異なり、デスティネーション側のバス幅
の方が狭いので、16ビットずつエンディアン方向に合
わせて、バス制御信号『(デスティネーション側であ
る)I/O装置に対する書き込み』信号を出力し、DM
A転送制御装置が取り込んだデータを出力して、I/O
装置に16ビットの転送データを書き込む、という手順
を踏み、以降は予め設定したカウント数が0になるまで
繰り返す。特に、本転送の場合、残り転送バイト数が3
バイト以下の時、最後の読み込みバスサイクル発生後、
強制的にDMA内部のデータをデスティネーション側に
2度書き込みを行なわせかつ、有効なデータをバイト単
位にバイトイネーブル信号で示す。
【0008】次に、従来のDMA転送制御装置のパック
/アンパック制御について説明する。
/アンパック制御について説明する。
【0009】図2は従来のDMA転送装置の一実施例を
示す図である。
示す図である。
【0010】この従来例では4チャンネルのDMA転送
ができ、CPUからアクセスできるカウントレジスタ1
08およびモードレジスタ114は選択チャンネル情報
信号118により、転送しようとする単一チャンネルの
転送バイト数や転送モードが指定される。すなわち、D
MA転送を行なう前に、CPUにより、転送モードをモ
ードレジスタ114へ、転送バイト数をカウントレジス
タ108へ、使用するチャンネルに対応して設定する。
ができ、CPUからアクセスできるカウントレジスタ1
08およびモードレジスタ114は選択チャンネル情報
信号118により、転送しようとする単一チャンネルの
転送バイト数や転送モードが指定される。すなわち、D
MA転送を行なう前に、CPUにより、転送モードをモ
ードレジスタ114へ、転送バイト数をカウントレジス
タ108へ、使用するチャンネルに対応して設定する。
【0011】I/O装置よりDMA転送要求入力端子1
17を介してDMA転送要求処理部116にDMA転送
要求が入力されると、DMA転送要求処理部116で、
各チャンネルのマスクの有無や他チャンネルの転送要求
状況に合わせた優先度判定等を行なって、DMA転送制
御部204へDMA転送の有無や、転送要求チャンネル
のカウント数チェック、優先度チェックの結果選択され
たチャンネル情報信号118を出力する。
17を介してDMA転送要求処理部116にDMA転送
要求が入力されると、DMA転送要求処理部116で、
各チャンネルのマスクの有無や他チャンネルの転送要求
状況に合わせた優先度判定等を行なって、DMA転送制
御部204へDMA転送の有無や、転送要求チャンネル
のカウント数チェック、優先度チェックの結果選択され
たチャンネル情報信号118を出力する。
【0012】DMA転送制御部204はシーケンサで、
現在の状況に対して、取り込まれるDMA内部レジスタ
201のバイト毎の妥当性を示すDMA内部レジスタ有
効ビット21の状況や、転送モード112、選択チャン
ネル情報信号118の示す入力情報により次のクロック
に同期して状態遷移を行なう。
現在の状況に対して、取り込まれるDMA内部レジスタ
201のバイト毎の妥当性を示すDMA内部レジスタ有
効ビット21の状況や、転送モード112、選択チャン
ネル情報信号118の示す入力情報により次のクロック
に同期して状態遷移を行なう。
【0013】内部レジスタ有効ビット制御部122は、
DMA内部レジスタ201のバイト毎にデータの妥当性
(DMA内部に読み込まれたが、まだ外部に書き込みが
行なわれていないデータを妥当とする)を4ビットの信
号で有効ビットレジスタ202上に保持させ、データパ
ック/アンパックのバスサイクルが走る度に更新する。
DMA内部レジスタ201のバイト毎にデータの妥当性
(DMA内部に読み込まれたが、まだ外部に書き込みが
行なわれていないデータを妥当とする)を4ビットの信
号で有効ビットレジスタ202上に保持させ、データパ
ック/アンパックのバスサイクルが走る度に更新する。
【0014】例えば、図3のデータパック方式では、転
送開始前は有効ビットレジスタ202の値は’000
0’だが、LSBが最下位バイトに対応するものとし
て、(1)のバスサイクルにより’0001’、(2)
のバスサイクルにより’0011’と更新され、転送途
中のDMA内部レジスタ201の使用状況を示してい
る。図3の転送モードの場合、DMA転送制御部204
は、有効ビットレジスタ202が’1111’となった
時にライトサイクルへ状態遷移させている。図4のデー
タアンパック方式においても、同様に有効ビットレジス
タ202が’1111’になった後、’0000’にな
るまでライトサイクルを繰り返す。
送開始前は有効ビットレジスタ202の値は’000
0’だが、LSBが最下位バイトに対応するものとし
て、(1)のバスサイクルにより’0001’、(2)
のバスサイクルにより’0011’と更新され、転送途
中のDMA内部レジスタ201の使用状況を示してい
る。図3の転送モードの場合、DMA転送制御部204
は、有効ビットレジスタ202が’1111’となった
時にライトサイクルへ状態遷移させている。図4のデー
タアンパック方式においても、同様に有効ビットレジス
タ202が’1111’になった後、’0000’にな
るまでライトサイクルを繰り返す。
【0015】DMA転送要求があると、それが、パック
/アンパック方式であった場合、システムのデータバス
に接続されるデータ入力端子101から入力された32
ビットデータは、DMA転送前にモードレジスタ114
に予め設定された転送モードに従って、入力アライナ1
02でデータのバイト単位で配置換えを行なう。これに
より、例えば図3のデータパック方式の(1)から
(4)のようにI/O装置のLSB側8ビットバスのみ
でDMA内部32ビットレジスタ201へデータの書き
込みが可能となる。
/アンパック方式であった場合、システムのデータバス
に接続されるデータ入力端子101から入力された32
ビットデータは、DMA転送前にモードレジスタ114
に予め設定された転送モードに従って、入力アライナ1
02でデータのバイト単位で配置換えを行なう。これに
より、例えば図3のデータパック方式の(1)から
(4)のようにI/O装置のLSB側8ビットバスのみ
でDMA内部32ビットレジスタ201へデータの書き
込みが可能となる。
【0016】入力アライナ102でデータの配置換えが
行なわれると、入力データ用内部データバス103から
単一のパック/アンパック用32ビットデータレジスタ
であるDMA内部レジスタ201へ、DMA内部32ビ
ットレジスタ制御信号203により書き込み/読み込み
が行なわれる。
行なわれると、入力データ用内部データバス103から
単一のパック/アンパック用32ビットデータレジスタ
であるDMA内部レジスタ201へ、DMA内部32ビ
ットレジスタ制御信号203により書き込み/読み込み
が行なわれる。
【0017】DMA内部レジスタから出力されたデータ
は、出力データ用内部データバス105より出力アライ
ナ106へ接続される。出力アライナ106は内部レジ
スタ有効ビット121と転送モード112により出力さ
れた出力アライナ制御信号132により出力データの配
置換えを行ない、データ出力端子107より出力され
る。
は、出力データ用内部データバス105より出力アライ
ナ106へ接続される。出力アライナ106は内部レジ
スタ有効ビット121と転送モード112により出力さ
れた出力アライナ制御信号132により出力データの配
置換えを行ない、データ出力端子107より出力され
る。
【0018】カウントレジスタ108で設定された転送
バイト数がデクリメントされ、0になったことを転送終
了検出部111で検出すると、その旨をDMA転送制御
部204に出力する一方、転送最終サイクルでTC信号
125をアクティブにする。
バイト数がデクリメントされ、0になったことを転送終
了検出部111で検出すると、その旨をDMA転送制御
部204に出力する一方、転送最終サイクルでTC信号
125をアクティブにする。
【0019】以上述べたDMA転送制御装置では、DM
A内部レジスタを使用するDMA転送途中にDMA転送
要求が無くなった時、DMA内部レジスタのデータの処
理方法は、以下のようになる。
A内部レジスタを使用するDMA転送途中にDMA転送
要求が無くなった時、DMA内部レジスタのデータの処
理方法は、以下のようになる。
【0020】データパック転送時は、DMA転送要求が
無くなった時点で、選択チャンネル情報信号118より
DMA転送制御部204で、有効ビットレジスタ202
が’0000’になるまで、転送モード112に依存し
てライトサイクルを一回以上遷移を繰り返す。この時、
DMA内部レジスタ201へ取り込んだデータがメモリ
装置からではなくI/O装置からのものである時のみ、
I/O装置からのデータは再びリードサイクルを駆動し
てもデータが失われている可能性があるので、必ずDM
A内部レジスタ201のデータはこの時強制的に外部に
書き込ませ、また、メモリ装置からのデータは捨てる場
合もある。
無くなった時点で、選択チャンネル情報信号118より
DMA転送制御部204で、有効ビットレジスタ202
が’0000’になるまで、転送モード112に依存し
てライトサイクルを一回以上遷移を繰り返す。この時、
DMA内部レジスタ201へ取り込んだデータがメモリ
装置からではなくI/O装置からのものである時のみ、
I/O装置からのデータは再びリードサイクルを駆動し
てもデータが失われている可能性があるので、必ずDM
A内部レジスタ201のデータはこの時強制的に外部に
書き込ませ、また、メモリ装置からのデータは捨てる場
合もある。
【0021】図5には、8ビットデータバスを有するI
/O装置からデータを読み込み、パック転送途中でDM
A転送要求が無くなり、DMA内部レジスタ201内部
のデータを32ビットデータバスを有するメモりへ書き
込む場合の様子をタイミングチャートで示す。
/O装置からデータを読み込み、パック転送途中でDM
A転送要求が無くなり、DMA内部レジスタ201内部
のデータを32ビットデータバスを有するメモりへ書き
込む場合の様子をタイミングチャートで示す。
【0022】DMA転送は(1)〜(4)までで、ソー
ス側からDMA内部レジスタ201内にデータを取り込
んでから、デスティネーション側へDMA転送を行なう
一連の転送サイクルである。
ス側からDMA内部レジスタ201内にデータを取り込
んでから、デスティネーション側へDMA転送を行なう
一連の転送サイクルである。
【0023】Ti,Ta,Tb,はDMAがバスマスタ
となった時の、DMA転送制御装置で規定するバスステ
ートで、本例のDMA転送装置では1バスサイクルは最
低2クロックで完了する。Tiステートは、DMA転送
装置がバスマスタではないステートで、CPUまたは他
のバスマスタがバス使用権を保持している状態である。
またTaステートは、BCYST(−)信号を出力し、
そのバスサイクルのアドレスやその他バス制御信号を出
力し始めるステートで、TbステートはDA(−)信号
をアクティブにして、外部にその立ち上がりでデータを
ラッチすることができる。バス制御信号のBCYST
(−)信号は負論理でバスサイクルの最初の1クロック
を規定し、DA(−)信号は負論理でTaステートの次
のステートを規定し、MRQ(−)信号は負論理でその
バスサイクルがメモリアクセスであることを規定し、R
W(−)信号は負論理でそのバスサイクルがライトサイ
クルであることを規定する。また、データバスに出力さ
れたデータのうち妥当なバイトを知らせるために、各バ
スサイクル毎にBE(3−0)(−)信号を出力する。
毎Taサイクルのクロックの立ち下がりでサンプリング
されるDMARQ信号がアクティブになってDMA転送
要求が認識されると、、DMA転送が開始される。DM
A転送中はDMAAK信号をアクティブにして、転送元
あるいは転送先装置に知らせる。
となった時の、DMA転送制御装置で規定するバスステ
ートで、本例のDMA転送装置では1バスサイクルは最
低2クロックで完了する。Tiステートは、DMA転送
装置がバスマスタではないステートで、CPUまたは他
のバスマスタがバス使用権を保持している状態である。
またTaステートは、BCYST(−)信号を出力し、
そのバスサイクルのアドレスやその他バス制御信号を出
力し始めるステートで、TbステートはDA(−)信号
をアクティブにして、外部にその立ち上がりでデータを
ラッチすることができる。バス制御信号のBCYST
(−)信号は負論理でバスサイクルの最初の1クロック
を規定し、DA(−)信号は負論理でTaステートの次
のステートを規定し、MRQ(−)信号は負論理でその
バスサイクルがメモリアクセスであることを規定し、R
W(−)信号は負論理でそのバスサイクルがライトサイ
クルであることを規定する。また、データバスに出力さ
れたデータのうち妥当なバイトを知らせるために、各バ
スサイクル毎にBE(3−0)(−)信号を出力する。
毎Taサイクルのクロックの立ち下がりでサンプリング
されるDMARQ信号がアクティブになってDMA転送
要求が認識されると、、DMA転送が開始される。DM
A転送中はDMAAK信号をアクティブにして、転送元
あるいは転送先装置に知らせる。
【0024】8ビットのデータバスをもつソース側のI
/O装置から、32ビットのデータバスをもつデスティ
ネーション側のメモリ装置へDMA転送する転送モード
時に、I/O装置からデータを読むパック転送途中のT
aステートのクロックの立ち下がりでDMA転送要求で
あるDMARQ信号がLOWになっていれば、DMA転
送制御部204で選択チャンネル情報118により、次
のバスサイクルのための状態遷移を行なうが、このバス
サイクルについてはI/O装置からデータを読み込むサ
イクルを駆動する。
/O装置から、32ビットのデータバスをもつデスティ
ネーション側のメモリ装置へDMA転送する転送モード
時に、I/O装置からデータを読むパック転送途中のT
aステートのクロックの立ち下がりでDMA転送要求で
あるDMARQ信号がLOWになっていれば、DMA転
送制御部204で選択チャンネル情報118により、次
のバスサイクルのための状態遷移を行なうが、このバス
サイクルについてはI/O装置からデータを読み込むサ
イクルを駆動する。
【0025】なお、図5ではDMA内部レジスタ201
内の3バイトのデータをデスティネーション側(図5で
はメモリ)へDMA転送を行なうDMA転送サイクルを
駆動して、DMA内部レジスタ201内の未転送のデー
タを確実に転送転送させた後、バスを開放する。
内の3バイトのデータをデスティネーション側(図5で
はメモリ)へDMA転送を行なうDMA転送サイクルを
駆動して、DMA内部レジスタ201内の未転送のデー
タを確実に転送転送させた後、バスを開放する。
【0026】または、『特開平3−157748』(参
考文献)のように、シリアル受信の場合で転送バイト数
が不明のとき、DMA内部レジスタ内の残留データを検
出でき、かつ転送終了を検出できた時に、ソフトウェア
的あるいはハードウェア的に残留データをDMA転送さ
せる方法もある。しかし、これはデータパックでのみ可
能である。
考文献)のように、シリアル受信の場合で転送バイト数
が不明のとき、DMA内部レジスタ内の残留データを検
出でき、かつ転送終了を検出できた時に、ソフトウェア
的あるいはハードウェア的に残留データをDMA転送さ
せる方法もある。しかし、これはデータパックでのみ可
能である。
【0027】データアンパック転送時も、DMA転送要
求がなくなった時、データパック転送時と同様に、DM
A内部レジスタ201内のデータが無くなるまでライト
サイクルへの遷移を繰り返す。図6には、32ビットデ
ータバスを有するI/O装置からデータを読み込み、ア
ンパック転送途中にDMA転送要求が無くなり、DMA
内部レジスタ201内のデータを16ビットデータバス
を有するメモリへ書き込む様子をタイミングチャートで
示す。
求がなくなった時、データパック転送時と同様に、DM
A内部レジスタ201内のデータが無くなるまでライト
サイクルへの遷移を繰り返す。図6には、32ビットデ
ータバスを有するI/O装置からデータを読み込み、ア
ンパック転送途中にDMA転送要求が無くなり、DMA
内部レジスタ201内のデータを16ビットデータバス
を有するメモリへ書き込む様子をタイミングチャートで
示す。
【0028】I/O装置からデータを読み込む(1)の
バスサイクルのTaステートのクロックの立ち下がりで
DMARQ信号がインアクティブであれば、I/O装置
からのデータを確実にDMA転送するためにDMA転送
制御部204で強制的にデスティネーション側(図6で
はメモリ)へのDMA転送サイクルを駆動した後、バス
を解放する。
バスサイクルのTaステートのクロックの立ち下がりで
DMARQ信号がインアクティブであれば、I/O装置
からのデータを確実にDMA転送するためにDMA転送
制御部204で強制的にデスティネーション側(図6で
はメモリ)へのDMA転送サイクルを駆動した後、バス
を解放する。
【0029】図6では、DMARQ信号がインアクティ
ブになったバスサイスルから、さらに2バスサイクルが
強制的に駆動されるが、極端には32ビットのデータバ
ス幅をもつI/O装置から、8ビットのデータバス幅を
持つメモリへのデータアンパック転送時、I/O装置か
らのデータ読み込みバスサイクルでDMA転送要求が無
くなったことを認識しても、さらにメモリへ4バスサイ
クルを要してDMA転送を行なう可能性もある。
ブになったバスサイスルから、さらに2バスサイクルが
強制的に駆動されるが、極端には32ビットのデータバ
ス幅をもつI/O装置から、8ビットのデータバス幅を
持つメモリへのデータアンパック転送時、I/O装置か
らのデータ読み込みバスサイクルでDMA転送要求が無
くなったことを認識しても、さらにメモリへ4バスサイ
クルを要してDMA転送を行なう可能性もある。
【0030】
【発明が解決しようとする課題】上述した従来のDMA
転送制御装置は、ソース側とデスティネーション側のバ
ス幅が異なるデータ転送をDMA転送で行なう場合、ソ
ース側およびデスティネーション側のデータ転送速度の
違いの緩衡の役目をするDMA内部データレジスタを使
用してデータパック方式やデータアンパック転送を行な
うので、DMA転送要求が無くなっても、DMA内部デ
ータレジスタ内のデータを全て外部にDMA転送させる
まで、DMAがバスを専有してしまうという欠点があ
る。
転送制御装置は、ソース側とデスティネーション側のバ
ス幅が異なるデータ転送をDMA転送で行なう場合、ソ
ース側およびデスティネーション側のデータ転送速度の
違いの緩衡の役目をするDMA内部データレジスタを使
用してデータパック方式やデータアンパック転送を行な
うので、DMA転送要求が無くなっても、DMA内部デ
ータレジスタ内のデータを全て外部にDMA転送させる
まで、DMAがバスを専有してしまうという欠点があ
る。
【0031】また、DMA転送の転送バイト数が不明の
場合、データパックおよびデータアンパック転送の途中
で内部データレジスタにデータを保持して外部にDMA
転送されないまま、DMA転送要求が無くなった場合、
転送データを失うという致命的な事故を発生させる場合
もあった。
場合、データパックおよびデータアンパック転送の途中
で内部データレジスタにデータを保持して外部にDMA
転送されないまま、DMA転送要求が無くなった場合、
転送データを失うという致命的な事故を発生させる場合
もあった。
【0032】また、あるチャンネルのデータパック転送
あるいはデータアンパック転送のDMA転送を実行中、
他の優先度の高いチャンネルのDMA転送要求があった
時、やはり、それまで使用していたDMA内部データレ
ジスタ内のデータを全て外部にDMA転送させるまで、
DMA転送チャンネルの切り替えが行なわれないという
問題も発生し、DMA転送装置のバス専有率が大きくな
ることによって、システム全体のスループットを低下さ
せ、さらには、転送データの損失によりシステムの信頼
性をも低下させる原因となるという欠点が明らかになっ
た。
あるいはデータアンパック転送のDMA転送を実行中、
他の優先度の高いチャンネルのDMA転送要求があった
時、やはり、それまで使用していたDMA内部データレ
ジスタ内のデータを全て外部にDMA転送させるまで、
DMA転送チャンネルの切り替えが行なわれないという
問題も発生し、DMA転送装置のバス専有率が大きくな
ることによって、システム全体のスループットを低下さ
せ、さらには、転送データの損失によりシステムの信頼
性をも低下させる原因となるという欠点が明らかになっ
た。
【0033】本発明の目的は、データパック転送あるい
はデータアンパック転送時に制御権切替の応答性を高
め、かつ転送すべきデータを確実に転送することを可能
にし、システム性能を向上させるDMA転送制御装置の
提供である。
はデータアンパック転送時に制御権切替の応答性を高
め、かつ転送すべきデータを確実に転送することを可能
にし、システム性能を向上させるDMA転送制御装置の
提供である。
【0034】
【課題を解決するための手段】本発明のDMA転送制御
装置は、複数のチャネルを有し、チャネル内データの組
立が可能であり、組立前の入力データを配置替えする手
段と、チャネル情報およびチャネルモードを記憶する手
段と、チャネル内データを保持するレジスタと、レジス
タに保持されているデータの転送済みか未転送かを示す
情報を表示するレジスタと、出力データを最終配列する
手段を有するデータパック転送とデータアンパック転送
が可能な、直接メモリアクセス転送を制御するDMA転
送制御装置において、 組立前に配置替えされたデータ
をチャネル毎に転送データとしてラッチするレジスタ
と、チャネル毎にチャネル内データの転送状態を示すレ
ジスタと、DMA転送の転送要求の停止を検出すると、
直に該DMA転送を中断する手段と、前記転送データを
ラッチするレジスタに未転送のデータが残っていること
を検出する手段と、前記検出手段により検出された未転
送のデータをDMA転送の再開指示によりチャネル毎に
強制的にDMA転送する制御手段を有している。
装置は、複数のチャネルを有し、チャネル内データの組
立が可能であり、組立前の入力データを配置替えする手
段と、チャネル情報およびチャネルモードを記憶する手
段と、チャネル内データを保持するレジスタと、レジス
タに保持されているデータの転送済みか未転送かを示す
情報を表示するレジスタと、出力データを最終配列する
手段を有するデータパック転送とデータアンパック転送
が可能な、直接メモリアクセス転送を制御するDMA転
送制御装置において、 組立前に配置替えされたデータ
をチャネル毎に転送データとしてラッチするレジスタ
と、チャネル毎にチャネル内データの転送状態を示すレ
ジスタと、DMA転送の転送要求の停止を検出すると、
直に該DMA転送を中断する手段と、前記転送データを
ラッチするレジスタに未転送のデータが残っていること
を検出する手段と、前記検出手段により検出された未転
送のデータをDMA転送の再開指示によりチャネル毎に
強制的にDMA転送する制御手段を有している。
【0035】また、前記未転送のデータが残っているこ
とを検出する手段が転送状態を示すレジスタから検出す
る手段であるものも本発明に含まれる。
とを検出する手段が転送状態を示すレジスタから検出す
る手段であるものも本発明に含まれる。
【0036】
【作用】チャネル内データを全てラッチできる内部レジ
スタを複数有しており、あるチャネルの転送において、
ラッチされたバイト毎のデータの前記内部レジスタ内に
おける保持状態が検出されているので、転送サイクルの
途中で転送要求が停止されても、該サイクルまでの転送
結果に引き続く転送サイクルを再開して転送を完了する
ことができる。
スタを複数有しており、あるチャネルの転送において、
ラッチされたバイト毎のデータの前記内部レジスタ内に
おける保持状態が検出されているので、転送サイクルの
途中で転送要求が停止されても、該サイクルまでの転送
結果に引き続く転送サイクルを再開して転送を完了する
ことができる。
【0037】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
て説明する。
【0038】図1は本発明のDMA転送制御装置の一実
施例のブロック図である。
施例のブロック図である。
【0039】このDMA転送制御装置は、従来のDMA
制御装置のDMA内部レジスタ104が32ビット容量
の複数の領域を有しそれぞれの領域にチャネル毎のデー
タを保持する構成となっている。また、有効ビットレジ
スタ202はDMA内部レジスタ104の領域数に対応
する領域を有してそれぞれのバイト毎データの有効性を
表示する。さらに、掃き出しレジスタ115を有し、C
PUを介して行なわれるDMA転送の再開指示によりチ
ャネル毎に未転送のデータを検出し、ORゲート119
の出力情報信号により該当するチャネルのデータの転送
を起動する。
制御装置のDMA内部レジスタ104が32ビット容量
の複数の領域を有しそれぞれの領域にチャネル毎のデー
タを保持する構成となっている。また、有効ビットレジ
スタ202はDMA内部レジスタ104の領域数に対応
する領域を有してそれぞれのバイト毎データの有効性を
表示する。さらに、掃き出しレジスタ115を有し、C
PUを介して行なわれるDMA転送の再開指示によりチ
ャネル毎に未転送のデータを検出し、ORゲート119
の出力情報信号により該当するチャネルのデータの転送
を起動する。
【0040】また、このDMA転送制御装置は4チャネ
ルの DMA転送ができ、CPUでアクセスできるカウ
ントレジスタ108やモードレジスタ114は、選択チ
ャネル信号118により単一チャネルの転送バイト数や
モードが指定されている。
ルの DMA転送ができ、CPUでアクセスできるカウ
ントレジスタ108やモードレジスタ114は、選択チ
ャネル信号118により単一チャネルの転送バイト数や
モードが指定されている。
【0041】DMA転送モードレジスタ114には、転
送方向(I/O装置からメモリへ、またはメモリからI
/O装置へ)やDMA転送要求の受付方法およびソース
側とデスティネーション側のバス幅の設定をする必要が
あるが、特にDMA転送の受付方法は、RSフリップフ
ロップでDMA転送要求パルスをラッチする方法(ブロ
ック転送)と、DMA転送要求のある限りDMA転送を
行う方法(ディマンド転送)などがある。
送方向(I/O装置からメモリへ、またはメモリからI
/O装置へ)やDMA転送要求の受付方法およびソース
側とデスティネーション側のバス幅の設定をする必要が
あるが、特にDMA転送の受付方法は、RSフリップフ
ロップでDMA転送要求パルスをラッチする方法(ブロ
ック転送)と、DMA転送要求のある限りDMA転送を
行う方法(ディマンド転送)などがある。
【0042】以下に、DMA転送要求のある限りDMA
転送を継続するディマンド転送について述べる。
転送を継続するディマンド転送について述べる。
【0043】DMA転送を行う前に、使用するチャネル
に対するモードレジスタ114や転送バイト数がカウン
トレジスタ108へCPUより設定される。I/O装置
よりDMA転送要求入力端子117へDMA転送要求が
入力されると、DMA転送要求処理部116で、各チャ
ネルのDMA転送要求をマスクするマスクレジスタ12
7内の信号の有無と、MSBをチャネル0、LSBをチ
ャネル3とする固定優先順位に合わせて単一の転送チャ
ネルを選択し、選択チャネル情報信号118として出力
される。
に対するモードレジスタ114や転送バイト数がカウン
トレジスタ108へCPUより設定される。I/O装置
よりDMA転送要求入力端子117へDMA転送要求が
入力されると、DMA転送要求処理部116で、各チャ
ネルのDMA転送要求をマスクするマスクレジスタ12
7内の信号の有無と、MSBをチャネル0、LSBをチ
ャネル3とする固定優先順位に合わせて単一の転送チャ
ネルを選択し、選択チャネル情報信号118として出力
される。
【0044】また、DMA内部データ掃き出しレジスタ
115は、他のDMA内部レジスタと同様にチャネル単
位でCPUからの書込みのみを可能とし、CPUからこ
のレジスタへ書込み動作をすることにより、2入力論理
和119の出力情報信号129によりDNA内部データ
レジスタの内容を外部に転送するためのDMA転送を駆
動することができる。
115は、他のDMA内部レジスタと同様にチャネル単
位でCPUからの書込みのみを可能とし、CPUからこ
のレジスタへ書込み動作をすることにより、2入力論理
和119の出力情報信号129によりDNA内部データ
レジスタの内容を外部に転送するためのDMA転送を駆
動することができる。
【0045】DMA転送制御部110はシーケンサー
で、現在の状況に対して入力されるDMA内部レジスタ
104のバイトごとの妥当性を示すDMA内部レジスタ
有効ビット121の状況や転送モード112、選択チャ
ネル情報129の入力情報により次のクロックに同期し
て状態遷移を行う。
で、現在の状況に対して入力されるDMA内部レジスタ
104のバイトごとの妥当性を示すDMA内部レジスタ
有効ビット121の状況や転送モード112、選択チャ
ネル情報129の入力情報により次のクロックに同期し
て状態遷移を行う。
【0046】DMA内部レジスタ104は各チャネル毎
に32ビットのレジスタを有しており、DMA転送中は
選択チャネル信号129でDMA転送チャネルに対応し
たレジスタのみを使用する。したがって、図2の従来例
のように動作中のDMA転送を途中で中断して、別のチ
ャネルの転送が発生する可能性があるということでデー
タパックの途中でDMA内部レジスタ201の内容を全
てDMA転送させる必要はない。
に32ビットのレジスタを有しており、DMA転送中は
選択チャネル信号129でDMA転送チャネルに対応し
たレジスタのみを使用する。したがって、図2の従来例
のように動作中のDMA転送を途中で中断して、別のチ
ャネルの転送が発生する可能性があるということでデー
タパックの途中でDMA内部レジスタ201の内容を全
てDMA転送させる必要はない。
【0047】さらに、DMA内部レジスタ内にパッキン
グ途中のデータを保持したままDMA制御装置がバスを
解放することができるので、DMA転送装置のバス専有
率は益々小さくすることができるようになる。
グ途中のデータを保持したままDMA制御装置がバスを
解放することができるので、DMA転送装置のバス専有
率は益々小さくすることができるようになる。
【0048】内部レジスタ有効ビット制御部122は、
DMA内部レジスタ104のバイト毎にデータの妥当性
を4ビットの信号で示し、データパック/アンパックの
バスサイクルが走る度に更新される。例えば、図3のデ
ータパック方式では、転送開始前は有効ビットレジスタ
124の値は”0000”だが、LSBが最下位バイト
に対応するものとして(1)のバスサイクルにより”0
001”、(2)のバスサイクルにより”0011”と
更新され、選択されているチャネルの転送途中のDMA
内部レジスタ104の使用状況を示している。
DMA内部レジスタ104のバイト毎にデータの妥当性
を4ビットの信号で示し、データパック/アンパックの
バスサイクルが走る度に更新される。例えば、図3のデ
ータパック方式では、転送開始前は有効ビットレジスタ
124の値は”0000”だが、LSBが最下位バイト
に対応するものとして(1)のバスサイクルにより”0
001”、(2)のバスサイクルにより”0011”と
更新され、選択されているチャネルの転送途中のDMA
内部レジスタ104の使用状況を示している。
【0049】有効ビットレジスタ124は、各チャネル
毎に4ビットのレジスタを有しており、DMA転送中は
選択チャネル信号129でDMA転送チャネルに対応し
たレジスタのみを使用する。
毎に4ビットのレジスタを有しており、DMA転送中は
選択チャネル信号129でDMA転送チャネルに対応し
たレジスタのみを使用する。
【0050】また、有効ビットレジスタ124は、DM
A転送中、DMA転送の現況を示していると言える。つ
まり、デスティネーション側がバス幅が32ビットのデ
ータバスを有していれば、有効ビットレジスタ124の
値が”1111”になるまで、ソース側にデータを求め
るリードサイクルをDMA制御部110で駆動すればよ
く、16ビットのデータバス幅を有していれば、DMA
内部レジスタ104の下位バイトの方から順に使用する
ものとして、有効ビットレジスタ124の値が”001
1”になるまで、リードサイクルを駆動すればよいこと
になる。
A転送中、DMA転送の現況を示していると言える。つ
まり、デスティネーション側がバス幅が32ビットのデ
ータバスを有していれば、有効ビットレジスタ124の
値が”1111”になるまで、ソース側にデータを求め
るリードサイクルをDMA制御部110で駆動すればよ
く、16ビットのデータバス幅を有していれば、DMA
内部レジスタ104の下位バイトの方から順に使用する
ものとして、有効ビットレジスタ124の値が”001
1”になるまで、リードサイクルを駆動すればよいこと
になる。
【0051】従って、各チャネル毎に、上記のDMAデ
ータレジスタ104に加えて、有効ビットレジスタ12
4を持つことによって、転送を途中で中断しても、再び
DMA転送要求が入力されてDMA転送が再開されたと
き、データパック/アンパックの途中から再開すること
が可能となる。
ータレジスタ104に加えて、有効ビットレジスタ12
4を持つことによって、転送を途中で中断しても、再び
DMA転送要求が入力されてDMA転送が再開されたと
き、データパック/アンパックの途中から再開すること
が可能となる。
【0052】また、CPUから読み込み専用のステータ
スレジスタ126は、上記のDMA転送がDMA内部デ
ータレジスタ104を使用するデータパック/アンパッ
ク転送の途中である場合、データ転送を確実にするため
に、各チャネルのDMA内部データレジスタ104に転
送データがまだ残されていることを示すビットを有す
る。これは、有効ビットレジスタ124内の値を各チャ
ネル毎の4ビットの論理和で実現することができ、1で
あれば転送すべきデータが残っていることを、0であれ
ば転送すべきデータがないことがわかる。
スレジスタ126は、上記のDMA転送がDMA内部デ
ータレジスタ104を使用するデータパック/アンパッ
ク転送の途中である場合、データ転送を確実にするため
に、各チャネルのDMA内部データレジスタ104に転
送データがまだ残されていることを示すビットを有す
る。これは、有効ビットレジスタ124内の値を各チャ
ネル毎の4ビットの論理和で実現することができ、1で
あれば転送すべきデータが残っていることを、0であれ
ば転送すべきデータがないことがわかる。
【0053】従って、ステータスレジスタ126でしめ
されたビットのうち、1であるチャネルに対してDMA
内部データ掃き出しレジスタ115をアクセスすれば、
パック/アンパック途中の転送データを外部にDMA転
送することができる。これは、パック/アンパックDM
A転送途中にDMA転送サイクルが中断して、そのまま
転送チャネルのDMA内部レジスタに転送データが残っ
ている状況でもソフトウエア的に外部に転送できること
を意味する。
されたビットのうち、1であるチャネルに対してDMA
内部データ掃き出しレジスタ115をアクセスすれば、
パック/アンパック途中の転送データを外部にDMA転
送することができる。これは、パック/アンパックDM
A転送途中にDMA転送サイクルが中断して、そのまま
転送チャネルのDMA内部レジスタに転送データが残っ
ている状況でもソフトウエア的に外部に転送できること
を意味する。
【0054】図7は本発明のDMA転送制御装置による
データのパック転送のタイミングチャート、図8はその
アンパック転送のタイミングチャートである。
データのパック転送のタイミングチャート、図8はその
アンパック転送のタイミングチャートである。
【0055】このパック転送は、ソース側が8ビットの
データバスを有するI/O装置からデスティネーション
側が32ビットのデータバスを有するメモリ装置へのパ
ック転送であり、アンパック転送はソース側が32ビッ
トのデータバスを有するI/O装置からデスティネーシ
ョン側が16ビットのデータバスを有するメモリ装置へ
のアンパック転送である。
データバスを有するI/O装置からデスティネーション
側が32ビットのデータバスを有するメモリ装置へのパ
ック転送であり、アンパック転送はソース側が32ビッ
トのデータバスを有するI/O装置からデスティネーシ
ョン側が16ビットのデータバスを有するメモリ装置へ
のアンパック転送である。
【0056】DMA転送要求が入力されてDMA転送が
始まるまでのシーケンスは、DMA内部データレジスタ
104や有効ビットレジスタ124の値が選択チャネル
信号129で転送中常にDMA転送チャネルに選択され
ている以外は、従来のシーケンスと同じである。つま
り、DMA転送要求を認識すると、優先順位やマスク状
況に応じて転送要求が承認されると、CPUやバスアー
ビタに対してバスの解放を要求するHLDRQ(ー)信
号をアクチブにする。バスの解放がそれまでのバスマス
タに承認されると、HLDAK(−)信号の入力を待っ
て、DMA転送バスサイクルを開始する。DMAバスサ
イクル期間、DMA転送要求が承認されたことをソース
側に知らせるために、DMAAK信号をアクティブにす
る。
始まるまでのシーケンスは、DMA内部データレジスタ
104や有効ビットレジスタ124の値が選択チャネル
信号129で転送中常にDMA転送チャネルに選択され
ている以外は、従来のシーケンスと同じである。つま
り、DMA転送要求を認識すると、優先順位やマスク状
況に応じて転送要求が承認されると、CPUやバスアー
ビタに対してバスの解放を要求するHLDRQ(ー)信
号をアクチブにする。バスの解放がそれまでのバスマス
タに承認されると、HLDAK(−)信号の入力を待っ
て、DMA転送バスサイクルを開始する。DMAバスサ
イクル期間、DMA転送要求が承認されたことをソース
側に知らせるために、DMAAK信号をアクティブにす
る。
【0057】DMA転送バスサイクル中は、Taステー
トでソース側に対してリード信号を出力し、ウエイトで
バスサイクルが延長しても最後のTbステートと次のク
ロックの立ち上がりでデータをサンプリングし、入力ア
ライナ102へ入力する。入力アライナ102は、デー
タパック転送に対応し、図9のようなバイト単位の32
ビットデータの配置変えタイプを有する。入力アライナ
102のバイト配置変えタイプ制御はDMA転送制御部
110で行われる。
トでソース側に対してリード信号を出力し、ウエイトで
バスサイクルが延長しても最後のTbステートと次のク
ロックの立ち上がりでデータをサンプリングし、入力ア
ライナ102へ入力する。入力アライナ102は、デー
タパック転送に対応し、図9のようなバイト単位の32
ビットデータの配置変えタイプを有する。入力アライナ
102のバイト配置変えタイプ制御はDMA転送制御部
110で行われる。
【0058】転送モードにより、データのバイト単位の
配置変えが行われて入力用データバス103を経由し、
各チャネルに対応した内部データレジスタ104にラッ
チ後、有効ビットレジスタ124の値によりDMA転送
制御部110でライトサイクルへ遷移すると、出力用内
部データバス105にデータを乗せる。
配置変えが行われて入力用データバス103を経由し、
各チャネルに対応した内部データレジスタ104にラッ
チ後、有効ビットレジスタ124の値によりDMA転送
制御部110でライトサイクルへ遷移すると、出力用内
部データバス105にデータを乗せる。
【0059】また出力アライナ106でも、転送モード
によりバイト単位の配置変えが行われ、データを外部に
出力する。出力アライナ106は、データアンパック転
送に対応し、図10に示すようなバイト単位の32ビッ
トデータの配置変えのタイプを有する。
によりバイト単位の配置変えが行われ、データを外部に
出力する。出力アライナ106は、データアンパック転
送に対応し、図10に示すようなバイト単位の32ビッ
トデータの配置変えのタイプを有する。
【0060】本実施例の従来例と著しく異なるのは、D
MA転送制御装置がDMA転送を止めて、バスを解放し
ようとするときである。
MA転送制御装置がDMA転送を止めて、バスを解放し
ようとするときである。
【0061】図7に示すタイミングチャートでは、パッ
ク転送のI/O装置からのデータ読み込み途中で、各D
MAサイクルのTaサイクルのクロック立ち下がりでサ
ンプリングし、DMARQ信号がインアクティブであれ
ば、そのDMAバスサイクルでDMA転送制御装置がバ
スを解放する様子を示している。データパックのDMA
転送途中であっても、内部データレジスタ104と有効
ビットレジスタ124にその途中経過を保持させて、転
送を中断させることができる。これは、DMARQ信号
をサンプリングしたときに、DMA要求が無いと、直ち
にDMA転送を中断し、バスを解放することができ、再
びそのチャネルのDMA転送要求が発生したとき、その
転送を継続できることを意味する。また、あるチャネル
のDMA転送中に別の優先度の高いDMA転送要求があ
ると、その途中経過を保持させたままバスを解放し、よ
り優先度の高いチャネルのDMA転送サービスを従来よ
り早く開始できることを意味する。
ク転送のI/O装置からのデータ読み込み途中で、各D
MAサイクルのTaサイクルのクロック立ち下がりでサ
ンプリングし、DMARQ信号がインアクティブであれ
ば、そのDMAバスサイクルでDMA転送制御装置がバ
スを解放する様子を示している。データパックのDMA
転送途中であっても、内部データレジスタ104と有効
ビットレジスタ124にその途中経過を保持させて、転
送を中断させることができる。これは、DMARQ信号
をサンプリングしたときに、DMA要求が無いと、直ち
にDMA転送を中断し、バスを解放することができ、再
びそのチャネルのDMA転送要求が発生したとき、その
転送を継続できることを意味する。また、あるチャネル
のDMA転送中に別の優先度の高いDMA転送要求があ
ると、その途中経過を保持させたままバスを解放し、よ
り優先度の高いチャネルのDMA転送サービスを従来よ
り早く開始できることを意味する。
【0062】図8は、アンパック転送のI/O装置から
のデータの読み込み途中(あるいはデータ読み込み後
の、データ書込みサイクルでも同じ)に、各DMAサイ
クルのTaサイクルのクロックの立ち下がりでサンプリ
ングし、DMARQ信号がインアクティブであれば、そ
のDMAバスサイクルでDMA転送制御装置がバスを解
放する様子を示す。
のデータの読み込み途中(あるいはデータ読み込み後
の、データ書込みサイクルでも同じ)に、各DMAサイ
クルのTaサイクルのクロックの立ち下がりでサンプリ
ングし、DMARQ信号がインアクティブであれば、そ
のDMAバスサイクルでDMA転送制御装置がバスを解
放する様子を示す。
【0063】データアンパックのDMA転送途中であっ
ても、内部データレジスタ104と有効ビットレジスタ
124にその途中経過を保持させて、転送を中断させる
ことができる。これは、DMARQ信号をサンプリング
した時に、DMA転送要求が無いと、直ちにDMA転送
を中断し、バスを解放することができ、再びそのチャネ
ルのDMA転送要求が発生したとき、その転送を継続で
きることを意味する。また、あるチャネルのDMA転送
途中に別の優先度の高いDMA転送要求があってもその
途中経過を保持させたままバスを解放し、より優先度の
高いチャネルのDMA転送サービスを従来よりも早く開
始できることを意味する。
ても、内部データレジスタ104と有効ビットレジスタ
124にその途中経過を保持させて、転送を中断させる
ことができる。これは、DMARQ信号をサンプリング
した時に、DMA転送要求が無いと、直ちにDMA転送
を中断し、バスを解放することができ、再びそのチャネ
ルのDMA転送要求が発生したとき、その転送を継続で
きることを意味する。また、あるチャネルのDMA転送
途中に別の優先度の高いDMA転送要求があってもその
途中経過を保持させたままバスを解放し、より優先度の
高いチャネルのDMA転送サービスを従来よりも早く開
始できることを意味する。
【0064】データのパック/アンパック転送において
は、転送終了時、転送終了検出部111よりTC信号を
出力することによって、これまで転送していたチャネル
の転送終了を外部にしらせることができる。
は、転送終了時、転送終了検出部111よりTC信号を
出力することによって、これまで転送していたチャネル
の転送終了を外部にしらせることができる。
【0065】
【発明の効果】以上説明したように本発明は、チャネル
毎にチャネル内データを保持できる容量を有するDMA
内部データレジスタと、それらレジスタに保持されたチ
ャネル毎のデータの転送状況を保持する有効ビットレジ
スタを有し、データパック/アンパック転送の途中でD
MA転送要求が無くなったり、優先度の高いDMA転送
要求が発生した時点で、それまで転送していたデータの
転送状況を保持してバスを直ちに解放し、その後転送要
求が再発したときに継続してDMA転送を再開できるの
で、バス制御権の切り換えが極めて早くなり、割り込み
に対する対応が速やかに行われ、かつ、中断されたDM
A転送の再開も確実に行われてデータの消滅のおそれも
なくなるという効果がある。
毎にチャネル内データを保持できる容量を有するDMA
内部データレジスタと、それらレジスタに保持されたチ
ャネル毎のデータの転送状況を保持する有効ビットレジ
スタを有し、データパック/アンパック転送の途中でD
MA転送要求が無くなったり、優先度の高いDMA転送
要求が発生した時点で、それまで転送していたデータの
転送状況を保持してバスを直ちに解放し、その後転送要
求が再発したときに継続してDMA転送を再開できるの
で、バス制御権の切り換えが極めて早くなり、割り込み
に対する対応が速やかに行われ、かつ、中断されたDM
A転送の再開も確実に行われてデータの消滅のおそれも
なくなるという効果がある。
【図1】本発明のDMA転送制御装置の一実施例のブロ
ック図である。
ック図である。
【図2】従来のDMA転送制御装置の一実施例のブロッ
ク図である。
ク図である。
【図3】データパック方式の概念図で、(a)〜(d)
は1バイトずつ読み込まれた状態を示し、(e)は4バ
イトがパックされてメモリに書込まれた状態を示す図あ
る。
は1バイトずつ読み込まれた状態を示し、(e)は4バ
イトがパックされてメモリに書込まれた状態を示す図あ
る。
【図4】データアンパック方式の概念図で、(a)はメ
モリから32ビットのデータが読み取られ(b)、
(c)は2バイトずつ16ビット幅のI/Oに書き込ま
れた状態を示す図である。
モリから32ビットのデータが読み取られ(b)、
(c)は2バイトずつ16ビット幅のI/Oに書き込ま
れた状態を示す図である。
【図5】図2に示すDMA転送制御装置によるデータパ
ック転送のタイミングチャートである。
ック転送のタイミングチャートである。
【図6】図2に示すDMA転送制御装置によるデータア
ンパック転送のタイミングチャートである。
ンパック転送のタイミングチャートである。
【図7】図1に示すDMA転送制御装置によるデータパ
ック転送のタイミングチャートである。
ック転送のタイミングチャートである。
【図8】図1に示すDMA転送制御装置によるデータア
ンパック転送のタイミングチャートである。
ンパック転送のタイミングチャートである。
【図9】図1および図2に示す入力アライナ101のバ
イト単位のデータアラインのタイプを示す図で(a)は
第4のバイトを4バイト配置し、(b)は第3と第4の
バイトをシリースに繰り返して配置し、(c)は入力順
に4バイト配列するタイプを示す図である。
イト単位のデータアラインのタイプを示す図で(a)は
第4のバイトを4バイト配置し、(b)は第3と第4の
バイトをシリースに繰り返して配置し、(c)は入力順
に4バイト配列するタイプを示す図である。
【図10】図1および図2に示す出力アライナ106の
バイト単位のデータアラインのタイプで(a)は入力順
にバイト単位で配列し、(b)は第1から第3バイトま
でを入力順に、かつ、第3のバイトを第4の位置に配置
し、(c)は入力された4バイトデータの第1と第2の
データを繰り返してシリースに配列し、(d)は第1か
ら第3までのバイトを入力順に配列し、かつ、4番目に
第1のバイトを配置するタイプを示す図である。
バイト単位のデータアラインのタイプで(a)は入力順
にバイト単位で配列し、(b)は第1から第3バイトま
でを入力順に、かつ、第3のバイトを第4の位置に配置
し、(c)は入力された4バイトデータの第1と第2の
データを繰り返してシリースに配列し、(d)は第1か
ら第3までのバイトを入力順に配列し、かつ、4番目に
第1のバイトを配置するタイプを示す図である。
101 データ入力端子 102 入力アライナ 103 入力データ用内部データバス 104 DMA内部データレジスタ 105 出力データ用内部データバス 106 出力アライナ 107 データ出力端子 108 カウントレジスタ 109 入力アライナ制御信号 110 DMA転送制御部 111 転送終了検出部 112 転送モード信号 113 転送終了検出信号 114 モードレジスタ 115 DMA内部データ掃き出しレジスタ 116 DMA転送要求処理部 117 DMARQ信号入力端子 118 選択チャネル情報信号 119 2入力ORゲート 120 DMA内部データレジスタ制御信号 121 DMA内部レジスタ有効ビット 122 DMA内部レジスタ有効ビット 123 転送選択内部有効ビット 124 有効ビットレジスタ 125 TC信号 126 ステータスレジスタ 127 マスクレジスタ 128 DMAAK信号出力端子 129 選択チャネル信号 130 バス譲渡制御信号端子 131 バス制御信号 132 出力アライナ制御信号 201 DMA内部レジスタ 202 有効ビットレジスタ 203 DMA内部データレジスタ制御信号 204 DMA転送制御部
Claims (2)
- 【請求項1】 複数のチャネルを有し、チャネル内デー
タの組立が可能であり、組立前の入力データを配置替え
する手段と、チャネル情報およびチャネルモードを記憶
する手段と、チャネル内データを保持するレジスタと、
レジスタに保持されているデータの転送済みか未転送か
を示す情報を表示するレジスタと、出力データを最終配
列する手段を有するデータパック転送とデータアンパッ
ク転送が可能な、直接メモリアクセス転送を制御するD
MA転送制御装置において、 組立前に配置替えされたデータをチャネル毎に転送デー
タとしてラッチするレジスタと、 DMA転送の転送要求の停止を検出すると、直に該DM
A転送を中断する手段と、 チャネル毎にチャネル内データの転送状態を示すレジス
タと、 前記転送データをラッチするレジスタに未転送のデータ
が残っていることを検出する手段と、 前記検出手段により検出された未転送のデータをDMA
転送の再開指示によりチャネル毎に強制的にDMA転送
する制御手段を有することを特徴とするDMA転送制御
装置。 - 【請求項2】 前記未転送のデータが残っていることを
検出する手段が転送状態を示すレジスタから検出する手
段である請求項1記載のDMA転送制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5182960A JP2536415B2 (ja) | 1993-07-23 | 1993-07-23 | Dma転送制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5182960A JP2536415B2 (ja) | 1993-07-23 | 1993-07-23 | Dma転送制御装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0736821A true JPH0736821A (ja) | 1995-02-07 |
| JP2536415B2 JP2536415B2 (ja) | 1996-09-18 |
Family
ID=16127351
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5182960A Expired - Lifetime JP2536415B2 (ja) | 1993-07-23 | 1993-07-23 | Dma転送制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2536415B2 (ja) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0991243A (ja) * | 1995-09-25 | 1997-04-04 | Nec Corp | データ転送制御装置 |
| US6615291B1 (en) | 1999-03-08 | 2003-09-02 | Minolta Co., Ltd. | DMA controller with dynamically variable access priority |
| US6633926B1 (en) | 1998-11-30 | 2003-10-14 | Matsushita Electric Industrial Co., Ltd. | DMA transfer device capable of high-speed consecutive access to pages in a memory |
| JP2005333481A (ja) * | 2004-05-20 | 2005-12-02 | Nec Electronics Corp | データ転送装置及び通信データ処理システム |
| JP2007188357A (ja) * | 2006-01-13 | 2007-07-26 | Fujitsu Ltd | データ転送装置 |
| CN100369023C (zh) * | 2004-02-25 | 2008-02-13 | 中国科学院计算技术研究所 | 直接存储器访问传输装置及其方法 |
| JP2012137844A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Semiconductor Ltd | 半導体装置及び制御方法 |
-
1993
- 1993-07-23 JP JP5182960A patent/JP2536415B2/ja not_active Expired - Lifetime
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0991243A (ja) * | 1995-09-25 | 1997-04-04 | Nec Corp | データ転送制御装置 |
| US6633926B1 (en) | 1998-11-30 | 2003-10-14 | Matsushita Electric Industrial Co., Ltd. | DMA transfer device capable of high-speed consecutive access to pages in a memory |
| US6615291B1 (en) | 1999-03-08 | 2003-09-02 | Minolta Co., Ltd. | DMA controller with dynamically variable access priority |
| CN100369023C (zh) * | 2004-02-25 | 2008-02-13 | 中国科学院计算技术研究所 | 直接存储器访问传输装置及其方法 |
| JP2005333481A (ja) * | 2004-05-20 | 2005-12-02 | Nec Electronics Corp | データ転送装置及び通信データ処理システム |
| JP2007188357A (ja) * | 2006-01-13 | 2007-07-26 | Fujitsu Ltd | データ転送装置 |
| JP2012137844A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Semiconductor Ltd | 半導体装置及び制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2536415B2 (ja) | 1996-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6829660B2 (en) | Supercharge message exchanger | |
| KR920007905B1 (ko) | 다이렉트 메모리 액세스 제어장치 | |
| JP4883824B2 (ja) | デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置 | |
| US6609163B1 (en) | Multi-channel serial port with programmable features | |
| JPH02227765A (ja) | デジタル・コンピユータのデータ転送装置 | |
| JPH05274259A (ja) | シリアル入力インタフェース回路 | |
| JPH11238028A (ja) | 入出力プロセッサ | |
| JP2536415B2 (ja) | Dma転送制御装置 | |
| US6115767A (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
| JP3773574B2 (ja) | データ処理システムにおいてデータ・ストリーム内にアドレスを挿入する装置および方法 | |
| KR920002830B1 (ko) | 다이렉트 메모리 액세스 제어장치 | |
| US5708852A (en) | Apparatus for serial port with pattern generation using state machine for controlling the removing of start and stop bits from serial bit data stream | |
| JPH0991243A (ja) | データ転送制御装置 | |
| JP3151832B2 (ja) | Dmaコントローラ | |
| JP2990800B2 (ja) | 割込み処理装置 | |
| JPH0736806A (ja) | Dma方式 | |
| JP3082384B2 (ja) | 先入れ先出し記憶装置 | |
| SU1182534A1 (ru) | Устройство для сопряжения процессора с внешними абонентами | |
| JP2531207B2 (ja) | チャネル装置 | |
| JPH0283779A (ja) | ベクトル処理装置の命令実行制御方式 | |
| JPH05197609A (ja) | ストアバッファ管理方式 | |
| JPH04255056A (ja) | Dmaコントローラ | |
| JP2004206241A (ja) | データ転送制御方法及びその回路 | |
| JPH11288378A (ja) | マスク不可能インタ―ラプトを保護する機能を備えたデ―タプロセッサ | |
| JPS63225847A (ja) | 入出力アダプタ |