JPH0736820A - I/o制御装置 - Google Patents
I/o制御装置Info
- Publication number
- JPH0736820A JPH0736820A JP20261793A JP20261793A JPH0736820A JP H0736820 A JPH0736820 A JP H0736820A JP 20261793 A JP20261793 A JP 20261793A JP 20261793 A JP20261793 A JP 20261793A JP H0736820 A JPH0736820 A JP H0736820A
- Authority
- JP
- Japan
- Prior art keywords
- dma
- transfer
- data
- chain operation
- input
- 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.)
- Pending
Links
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 DMAチェイン動作の途中からの再開を可能
とする。 【構成】 DMAコントローラ23のCDAR210及
びNDAR211にはDMAチェイン動作を開始する最
初のデータと次のデータのアドレス及びカウントが設定
される。このとき、CPU32はマスクフリップフロッ
プ12をセットし、ゲート11を閉じる。NDAR21
1の設定値は自動的にCDAR210に転送される。そ
して、入出力装置31が最初のデータをメモリ22に転
送する間にCPU32はNDAR211に更に次のデー
タのアドレス及びカウントを設定する。CPU32によ
るこの設定処理が遅れるとDMAコントローラ23はD
MAチェイン動作が終了したとみなし、転送終了通知を
入出力装置31に向けて出力する。このとき、ゲート1
1により転送終了通知がI/O処理部16に入力される
ことが阻止される。
とする。 【構成】 DMAコントローラ23のCDAR210及
びNDAR211にはDMAチェイン動作を開始する最
初のデータと次のデータのアドレス及びカウントが設定
される。このとき、CPU32はマスクフリップフロッ
プ12をセットし、ゲート11を閉じる。NDAR21
1の設定値は自動的にCDAR210に転送される。そ
して、入出力装置31が最初のデータをメモリ22に転
送する間にCPU32はNDAR211に更に次のデー
タのアドレス及びカウントを設定する。CPU32によ
るこの設定処理が遅れるとDMAコントローラ23はD
MAチェイン動作が終了したとみなし、転送終了通知を
入出力装置31に向けて出力する。このとき、ゲート1
1により転送終了通知がI/O処理部16に入力される
ことが阻止される。
Description
【0001】
【産業上の利用分野】本発明は、マイクロコンピュータ
システムでのダイレクトメモリアクセス(以下、DMA
という)において、メモリ上に分散されたデータを1回
の転送処理により連続してアクセスするデータチェイン
動作を行なうI/O制御装置に関するものである。
システムでのダイレクトメモリアクセス(以下、DMA
という)において、メモリ上に分散されたデータを1回
の転送処理により連続してアクセスするデータチェイン
動作を行なうI/O制御装置に関するものである。
【0002】
【従来の技術】DMAは、マイクロコンピュータシステ
ムの高速入出力方式として広く使用されているものであ
り、入出力制御装置が入出力に使われるメモリのアドレ
スやバイト数を管理し、メモリに直接アクセスして入出
力を行なう方式である。このようなDMAにおいては、
メモリ上に分散されたデータを1回の転送処理により連
続してアクセスすることもできる。これを、DMAチェ
イン動作という。図2は、従来のDMAチェイン動作を
行なうコンピュータシステムの構成を示すブロック図で
ある。図示のコンピュータシステムは、CPU21、メ
モリ22、DMAコントローラ(DMAC)23、入出
力装置(I/O)24から成る。
ムの高速入出力方式として広く使用されているものであ
り、入出力制御装置が入出力に使われるメモリのアドレ
スやバイト数を管理し、メモリに直接アクセスして入出
力を行なう方式である。このようなDMAにおいては、
メモリ上に分散されたデータを1回の転送処理により連
続してアクセスすることもできる。これを、DMAチェ
イン動作という。図2は、従来のDMAチェイン動作を
行なうコンピュータシステムの構成を示すブロック図で
ある。図示のコンピュータシステムは、CPU21、メ
モリ22、DMAコントローラ(DMAC)23、入出
力装置(I/O)24から成る。
【0003】CPU21は、プロセッサやレジスタ等か
ら成り、入出力装置24に格納されたデータをメモリ2
2に転送し、メモリ22上で当該データを加工し、メモ
リ22から入出力装置24に転送する等のデータ処理を
行なう。メモリ22は、DRAM等の半導体メモリから
成り、入出力装置24に格納されているデータを一時的
に格納する。DMAコントローラ23は、入出力装置2
4がメモリ22とデータ転送をしようとするとき、その
制御を行なう。即ち、DMAコントローラ23は、入出
力装置24からDMA要求信号25を入力すると、バス
29の使用権を確保し、入出力装置24に対してDMA
許可信号26を返す。この後、入出力装置24は、メモ
リ22とのデータ転送を行なう。入出力装置24は、例
えば、フロッピディスク等から成り、各種のデータやC
PU21で実行されるプログラムを格納している。
ら成り、入出力装置24に格納されたデータをメモリ2
2に転送し、メモリ22上で当該データを加工し、メモ
リ22から入出力装置24に転送する等のデータ処理を
行なう。メモリ22は、DRAM等の半導体メモリから
成り、入出力装置24に格納されているデータを一時的
に格納する。DMAコントローラ23は、入出力装置2
4がメモリ22とデータ転送をしようとするとき、その
制御を行なう。即ち、DMAコントローラ23は、入出
力装置24からDMA要求信号25を入力すると、バス
29の使用権を確保し、入出力装置24に対してDMA
許可信号26を返す。この後、入出力装置24は、メモ
リ22とのデータ転送を行なう。入出力装置24は、例
えば、フロッピディスク等から成り、各種のデータやC
PU21で実行されるプログラムを格納している。
【0004】DMAコントローラ23内には、2つのレ
ジスタが設けられている。1つは、現在転送中のDMA
アドレスを計数するためのCDAR(カレントDMAア
ドレス・カウント・レジスタ)210である。もう1つ
は、次に転送するDMAアドレスを計数するためのND
AR(ネクストDMAアドレス・カウント・レジスタ)
211である。図3は、メモリと入出力装置間のデータ
関連の一例を示す。図3は、以下の2つの場合を意味す
る。1つは、メモリ22上のアドレスa、b、c、dに
分散して格納されたデータA、B、C、Dが入出力装置
24上で連続して格納される場合である。もう1つは、
入出力装置24上で連続して格納されたデータA、B、
C、Dがメモリ22上のアドレスa、b、c、dに分散
して格納される場合である。
ジスタが設けられている。1つは、現在転送中のDMA
アドレスを計数するためのCDAR(カレントDMAア
ドレス・カウント・レジスタ)210である。もう1つ
は、次に転送するDMAアドレスを計数するためのND
AR(ネクストDMAアドレス・カウント・レジスタ)
211である。図3は、メモリと入出力装置間のデータ
関連の一例を示す。図3は、以下の2つの場合を意味す
る。1つは、メモリ22上のアドレスa、b、c、dに
分散して格納されたデータA、B、C、Dが入出力装置
24上で連続して格納される場合である。もう1つは、
入出力装置24上で連続して格納されたデータA、B、
C、Dがメモリ22上のアドレスa、b、c、dに分散
して格納される場合である。
【0005】次に、上述した従来のDMAチェイン動作
を説明する。図4は、従来のDMAチェイン動作の説明
図である。まず、DMAチェイン動作を行なう場合、D
MAコントローラ23内のCDAR210に図3に示す
最初のメモリアドレスaとカウントAを設定する(時点
T1)。そして、NDAR211に次のメモリアドレス
bとカウントBを設定する(時点T1)。その後、入出
力装置(I/O)24を起動する(時点T2)。これに
より、入出力装置24はDMAコントローラ23にDM
A要求信号(DREQ)25を出力し、これに対し、D
MAコントローラ23は入出力装置24にDMA許可信
号(DACK)26を返す。この後、入出力装置24に
よるDMA転送が開始される。
を説明する。図4は、従来のDMAチェイン動作の説明
図である。まず、DMAチェイン動作を行なう場合、D
MAコントローラ23内のCDAR210に図3に示す
最初のメモリアドレスaとカウントAを設定する(時点
T1)。そして、NDAR211に次のメモリアドレス
bとカウントBを設定する(時点T1)。その後、入出
力装置(I/O)24を起動する(時点T2)。これに
より、入出力装置24はDMAコントローラ23にDM
A要求信号(DREQ)25を出力し、これに対し、D
MAコントローラ23は入出力装置24にDMA許可信
号(DACK)26を返す。この後、入出力装置24に
よるDMA転送が開始される。
【0006】この場合、DMAコントローラ23は、C
DAR210に設定されたデータ転送が完了すると、N
DAR211の設定値を自動的にCDAR210に転送
する(時点T3)。そして、図3に示す次のデータBの
転送を開始する。このとき、DMAコントローラ23
は、図2に示すように、CPU21に対して割込み信号
28を発生する。割込み信号28を受付けたCPU21
は、現在のデータBのDMA転送が終了する前にNDA
R211に図3に示す次のメモリアドレスcとカウント
Cを設定する(時点T4)。そして、データBの転送が
終了した時点で上述したようにNDAR211の内容を
CDAR210に転送し(時点T5)、CPU21に対
しての割込み信号28を発生し、DMAチェイン動作を
繰り返す(時点T6)。
DAR210に設定されたデータ転送が完了すると、N
DAR211の設定値を自動的にCDAR210に転送
する(時点T3)。そして、図3に示す次のデータBの
転送を開始する。このとき、DMAコントローラ23
は、図2に示すように、CPU21に対して割込み信号
28を発生する。割込み信号28を受付けたCPU21
は、現在のデータBのDMA転送が終了する前にNDA
R211に図3に示す次のメモリアドレスcとカウント
Cを設定する(時点T4)。そして、データBの転送が
終了した時点で上述したようにNDAR211の内容を
CDAR210に転送し(時点T5)、CPU21に対
しての割込み信号28を発生し、DMAチェイン動作を
繰り返す(時点T6)。
【0007】このようなDMAチェイン動作の最後で
は、CPU21は割込み信号28を受けても、NDAR
211に次の転送アドレス及びカウントを設定しない
(時点T7)。従って、DMAコントローラ23はND
AR211に新しいアドレス及びカウントが設定されて
いないことを判別すると、CDAR210に設定された
データの転送終了時点で入出力装置24に転送終了通知
(TC)27を出力する(時点T7)。
は、CPU21は割込み信号28を受けても、NDAR
211に次の転送アドレス及びカウントを設定しない
(時点T7)。従って、DMAコントローラ23はND
AR211に新しいアドレス及びカウントが設定されて
いないことを判別すると、CDAR210に設定された
データの転送終了時点で入出力装置24に転送終了通知
(TC)27を出力する(時点T7)。
【0008】NDAR211に新しいアドレス及びカウ
ントが設定されたか否かの判別は、例えば、以下のよう
にして行なう。DMAコントローラ23は、NDAR2
11からCDAR210に自動的に設定値を転送したと
き、その転送した旨の情報を記憶しておく。そして、C
PU21によりNDAR211に新しいアドレス及びカ
ウントを設定する際、その情報を消去する。従って、そ
のような設定値を転送した旨の情報が残されていること
を検出した場合には、NDAR211に新しいアドレス
及びカウントが設定されていないことを検出することが
できる。
ントが設定されたか否かの判別は、例えば、以下のよう
にして行なう。DMAコントローラ23は、NDAR2
11からCDAR210に自動的に設定値を転送したと
き、その転送した旨の情報を記憶しておく。そして、C
PU21によりNDAR211に新しいアドレス及びカ
ウントを設定する際、その情報を消去する。従って、そ
のような設定値を転送した旨の情報が残されていること
を検出した場合には、NDAR211に新しいアドレス
及びカウントが設定されていないことを検出することが
できる。
【0009】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような問題があった。即ち、D
MAコントローラ23からの割込み信号28を受けたC
PU21が他の割込み処理等により割込み信号28によ
って要求された処理をすぐに行なえないことがある。そ
うすると、CDAR210に設定されたデータの転送が
終了する前にNDAR211への設定ができない場合が
あった。その場合、DMAコントローラ23は、データ
転送が終了したものとみなして転送終了通知27を出力
してしまう。この関係を図5に示す。
た従来の技術には、次のような問題があった。即ち、D
MAコントローラ23からの割込み信号28を受けたC
PU21が他の割込み処理等により割込み信号28によ
って要求された処理をすぐに行なえないことがある。そ
うすると、CDAR210に設定されたデータの転送が
終了する前にNDAR211への設定ができない場合が
あった。その場合、DMAコントローラ23は、データ
転送が終了したものとみなして転送終了通知27を出力
してしまう。この関係を図5に示す。
【0010】CDAR210がデータBの転送を実行し
ている間にNDAR211の設定ができないとき、CD
AR210に設定されたデータBの転送が終了した時点
で入出力装置24に転送終了通知(TC)27を出力し
ている(時点T8)。この転送終了通知27を受けた入
出力装置24は、DMAチェイン動作の終了処理をして
しまう。従って、それ以後のデータC、DのDMA転送
はできなくなる。このような障害から回復するために
は、入出力装置24を初期化し、DMA転送を最初から
やり直すことが必要となる。従って、データ処理の性能
の低下を招くという問題があった。
ている間にNDAR211の設定ができないとき、CD
AR210に設定されたデータBの転送が終了した時点
で入出力装置24に転送終了通知(TC)27を出力し
ている(時点T8)。この転送終了通知27を受けた入
出力装置24は、DMAチェイン動作の終了処理をして
しまう。従って、それ以後のデータC、DのDMA転送
はできなくなる。このような障害から回復するために
は、入出力装置24を初期化し、DMA転送を最初から
やり直すことが必要となる。従って、データ処理の性能
の低下を招くという問題があった。
【0011】本発明は、以上の点に着目してなされたも
ので、DMAチェイン動作が途中でとぎれてしまった場
合にもDMA転送を最初からやり直す必要がなく、デー
タがとぎれたところからDMA転送を再開できるように
したI/O制御装置を提供することを目的とするもので
ある。
ので、DMAチェイン動作が途中でとぎれてしまった場
合にもDMA転送を最初からやり直す必要がなく、デー
タがとぎれたところからDMA転送を再開できるように
したI/O制御装置を提供することを目的とするもので
ある。
【0012】
【課題を解決するための手段】第1の発明のI/O制御
装置は、分散したデータを1回の転送処理により連続し
てアクセスするDMAチェイン動作の終了時に、当該D
MAチェイン動作を制御するDMAコントローラから出
力される転送終了通知を阻止するゲートと、当該ゲート
をCPUの指示に従って開閉するマスクフリップフロッ
プと、当該マスクフリップフロップを前記DMAチェイ
ン動作の起動時にセットし、前記DMAコントローラか
らの割込み信号の入力時に当該DMAチェイン動作が終
了する場合に前記マスクフリップフロップをリセットす
るDMA割込み処理部とから成ることを特徴とするもの
である。
装置は、分散したデータを1回の転送処理により連続し
てアクセスするDMAチェイン動作の終了時に、当該D
MAチェイン動作を制御するDMAコントローラから出
力される転送終了通知を阻止するゲートと、当該ゲート
をCPUの指示に従って開閉するマスクフリップフロッ
プと、当該マスクフリップフロップを前記DMAチェイ
ン動作の起動時にセットし、前記DMAコントローラか
らの割込み信号の入力時に当該DMAチェイン動作が終
了する場合に前記マスクフリップフロップをリセットす
るDMA割込み処理部とから成ることを特徴とするもの
である。
【0013】第2の発明のI/O制御装置は、分散した
データを1回の転送処理により連続してアクセスするD
MAチェイン動作の終了時に、当該DMAチェイン動作
を制御するDMAコントローラから出力される転送終了
通知を阻止するゲートと、当該ゲートをCPUの指示に
従って開閉するマスクフリップフロップと、当該マスク
フリップフロップを前記DMAチェイン動作の起動時に
セットするとともに前記DMAチェイン動作のデータ総
転送数を出力するDMA割込み処理部と、当該DMA割
込み処理部が出力するデータ総転送数を設定し、データ
転送の際にデータ転送数を計数し、前記データ総転送数
に等しいデータの転送の終了後、前記マスクフリップフ
ロップをリセットするマスクカウンタとから成ることを
特徴とするものである。
データを1回の転送処理により連続してアクセスするD
MAチェイン動作の終了時に、当該DMAチェイン動作
を制御するDMAコントローラから出力される転送終了
通知を阻止するゲートと、当該ゲートをCPUの指示に
従って開閉するマスクフリップフロップと、当該マスク
フリップフロップを前記DMAチェイン動作の起動時に
セットするとともに前記DMAチェイン動作のデータ総
転送数を出力するDMA割込み処理部と、当該DMA割
込み処理部が出力するデータ総転送数を設定し、データ
転送の際にデータ転送数を計数し、前記データ総転送数
に等しいデータの転送の終了後、前記マスクフリップフ
ロップをリセットするマスクカウンタとから成ることを
特徴とするものである。
【0014】
【作用】第1の発明のI/O制御装置においては、入出
力装置からのDMA要求時にCPUによりDMAコント
ローラのCDAR及びNDARにDMAチェイン動作を
開始する最初のデータのアドレス及びカウントと、次の
データのアドレス及びカウントが設定される。このと
き、CPUはマスクフリップフロップをセットし、ゲー
トを閉じる。DMAコントローラは最初のデータの転送
開始とともにNDARの設定値をCDARに転送する。
そして、入出力装置が最初のデータをメモリに転送する
間にCPUはNDARに更に次のデータのアドレス及び
カウントを設定する。CPUによるこの設定処理が遅れ
るとDMAコントローラはDMAチェイン動作が終了し
たとみなし、転送終了通知を入出力装置に向けて出力す
る。このとき、ゲートにより転送終了通知がI/O処理
部に入力されることが阻止される。CPUのDMA割込
み処理部は、DMAチェイン動作において次のデータ転
送がないことを判別すると、所定のコマンドを出力し、
マスクフリップフロップをリセットしてゲートを開き、
転送終了通知をI/O処理部に入力させる。これによ
り、DMAチェイン動作が終了する。
力装置からのDMA要求時にCPUによりDMAコント
ローラのCDAR及びNDARにDMAチェイン動作を
開始する最初のデータのアドレス及びカウントと、次の
データのアドレス及びカウントが設定される。このと
き、CPUはマスクフリップフロップをセットし、ゲー
トを閉じる。DMAコントローラは最初のデータの転送
開始とともにNDARの設定値をCDARに転送する。
そして、入出力装置が最初のデータをメモリに転送する
間にCPUはNDARに更に次のデータのアドレス及び
カウントを設定する。CPUによるこの設定処理が遅れ
るとDMAコントローラはDMAチェイン動作が終了し
たとみなし、転送終了通知を入出力装置に向けて出力す
る。このとき、ゲートにより転送終了通知がI/O処理
部に入力されることが阻止される。CPUのDMA割込
み処理部は、DMAチェイン動作において次のデータ転
送がないことを判別すると、所定のコマンドを出力し、
マスクフリップフロップをリセットしてゲートを開き、
転送終了通知をI/O処理部に入力させる。これによ
り、DMAチェイン動作が終了する。
【0015】第2の発明のI/O制御装置においては、
DMAチェイン動作の開始時にマスクカウンタにデータ
の総転送数を設定し、I/O処理部によるデータ転送の
都度この総転送数をデクリメントする。そして、すべて
のデータの転送を終了したことを検出した後、自動的に
マスクフリップフロップをリセットし、ゲートを開く。
これにより、CPUからの操作なしにDMAチェイン動
作が終了する。
DMAチェイン動作の開始時にマスクカウンタにデータ
の総転送数を設定し、I/O処理部によるデータ転送の
都度この総転送数をデクリメントする。そして、すべて
のデータの転送を終了したことを検出した後、自動的に
マスクフリップフロップをリセットし、ゲートを開く。
これにより、CPUからの操作なしにDMAチェイン動
作が終了する。
【0016】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、第1の発明のI/O制御装置の一
実施例のブロック図である。図示の装置は、入出力装置
31、CPU32、メモリ22、DMAコントローラ2
3から成る。図1において、図2に示す従来の装置と対
応する同一の構成の部分については同一の符号を付して
いる。入出力装置31及びCPU32も、基本的には、
入出力装置24及びCPU21と同様の構成であり、以
下の部分のみが異なる。入出力装置31内には、アンド
型のゲート11と、マスクフリップフロップ12とが設
けられている。また、CPU32内には、DMA割込み
処理部33が設けられている。
に説明する。図1は、第1の発明のI/O制御装置の一
実施例のブロック図である。図示の装置は、入出力装置
31、CPU32、メモリ22、DMAコントローラ2
3から成る。図1において、図2に示す従来の装置と対
応する同一の構成の部分については同一の符号を付して
いる。入出力装置31及びCPU32も、基本的には、
入出力装置24及びCPU21と同様の構成であり、以
下の部分のみが異なる。入出力装置31内には、アンド
型のゲート11と、マスクフリップフロップ12とが設
けられている。また、CPU32内には、DMA割込み
処理部33が設けられている。
【0017】DMAコントローラ23が出力する転送終
了通知27は、ゲート11の一方の入力端子に入力され
る。また、デコーダ13のマスク設定命令14は、マス
クフリップフロップ12のクロック端子に入力される。
そして、マスクフリップフロップ12の入力端子には、
バス29のデータ信号が入力され、マスクフリップフロ
ップ12の出力端子は、ゲート11の他の入力端子に接
続されている。更に、ゲート11の出力端子は、I/O
処理部16のTC入力に接続されている。DMA割込み
処理部33は、DMAチェイン動作の次のデータ転送の
開始時にDMAコントローラ23から出力される割込み
信号を入力する毎に起動される。そして、DMA起動時
にマスクフリップフロップ12をセットする。その後、
DMAチェイン動作において次のデータ転送の要求がな
いときは、マスクフリップフロップ12をリセットす
る。また、次のデータ転送の要求があるときは、DMA
チェイン動作が途中でとぎれているかどうかを調べる。
そして、DMAチェイン動作が途中でとぎれているとき
は、CDAR210及びNDAR211を再設定する。
一方、DMAチェイン動作が途中でとぎれていないとき
は、従来と同様に次のアドレス及びカウントをNDAR
211に設定する。この部分の詳細については、図6及
び図7を参照して説明する。
了通知27は、ゲート11の一方の入力端子に入力され
る。また、デコーダ13のマスク設定命令14は、マス
クフリップフロップ12のクロック端子に入力される。
そして、マスクフリップフロップ12の入力端子には、
バス29のデータ信号が入力され、マスクフリップフロ
ップ12の出力端子は、ゲート11の他の入力端子に接
続されている。更に、ゲート11の出力端子は、I/O
処理部16のTC入力に接続されている。DMA割込み
処理部33は、DMAチェイン動作の次のデータ転送の
開始時にDMAコントローラ23から出力される割込み
信号を入力する毎に起動される。そして、DMA起動時
にマスクフリップフロップ12をセットする。その後、
DMAチェイン動作において次のデータ転送の要求がな
いときは、マスクフリップフロップ12をリセットす
る。また、次のデータ転送の要求があるときは、DMA
チェイン動作が途中でとぎれているかどうかを調べる。
そして、DMAチェイン動作が途中でとぎれているとき
は、CDAR210及びNDAR211を再設定する。
一方、DMAチェイン動作が途中でとぎれていないとき
は、従来と同様に次のアドレス及びカウントをNDAR
211に設定する。この部分の詳細については、図6及
び図7を参照して説明する。
【0018】図6は、第1の発明の装置の動作タイミン
グを示し、図7は、第1の発明の装置のプログラム動作
を示す。CPU32のDMA割込み処理部33は、DM
Aの起動時に図7(a)の処理手順に従って動作する。
まず、ステップS1でCDAR210にアドレスa及び
カウントAを設定し、NDAR211にアドレスb及び
カウントBを設定する(図6時点T11)。そして、ス
テップS2でマスクフリップフロップ12をセットする
(時点T12)。これにより、ゲート11が閉じ、転送
終了通知27がI/O処理部16のTC入力に入力され
なくなる。その後、ステップS3でDMAコントローラ
23及び入出力装置31を起動させる(時点T13)。
グを示し、図7は、第1の発明の装置のプログラム動作
を示す。CPU32のDMA割込み処理部33は、DM
Aの起動時に図7(a)の処理手順に従って動作する。
まず、ステップS1でCDAR210にアドレスa及び
カウントAを設定し、NDAR211にアドレスb及び
カウントBを設定する(図6時点T11)。そして、ス
テップS2でマスクフリップフロップ12をセットする
(時点T12)。これにより、ゲート11が閉じ、転送
終了通知27がI/O処理部16のTC入力に入力され
なくなる。その後、ステップS3でDMAコントローラ
23及び入出力装置31を起動させる(時点T13)。
【0019】また、DMAコントローラ23からCPU
32に対して割込み信号が発生したときも、DMA割込
み処理部33が起動される。このとき、DMA割込み処
理部33は、図7(b)の処理手順に従って動作する。
この場合、DMAチェイン動作が途中でとぎれ、DMA
コントローラ23から転送終了通知27が出力されて
も、その転送終了通知27はゲート11により阻止さ
れ、I/O処理部16へは入力されない。
32に対して割込み信号が発生したときも、DMA割込
み処理部33が起動される。このとき、DMA割込み処
理部33は、図7(b)の処理手順に従って動作する。
この場合、DMAチェイン動作が途中でとぎれ、DMA
コントローラ23から転送終了通知27が出力されて
も、その転送終了通知27はゲート11により阻止さ
れ、I/O処理部16へは入力されない。
【0020】図7(b)において、まず、ステップS1
1でDMAチェイン動作における次のデータ転送の要求
があるか否かを判別する。そして、次のデータ転送の要
求があるときは、ステップS12でCDAR210のカ
ウント値が“0”であるか否かを判別する。次のデータ
転送の要求があるのに、CDAR210のカウント値が
“0”であるときは、DMAチェイン動作が途中でとぎ
れたと判定する(時点T14)。そして、ステップS1
3でCDAR210、NDAR211に次のアドレス及
びカウントを設定する(時点T15)。即ち、図6に示
す例では、CDAR210にアドレスc及びカウントC
を設定し、NDAR211にアドレスd及びカウントD
を設定する。その後、ステップS14でDMAコントロ
ーラ23を起動する(時点T16)。
1でDMAチェイン動作における次のデータ転送の要求
があるか否かを判別する。そして、次のデータ転送の要
求があるときは、ステップS12でCDAR210のカ
ウント値が“0”であるか否かを判別する。次のデータ
転送の要求があるのに、CDAR210のカウント値が
“0”であるときは、DMAチェイン動作が途中でとぎ
れたと判定する(時点T14)。そして、ステップS1
3でCDAR210、NDAR211に次のアドレス及
びカウントを設定する(時点T15)。即ち、図6に示
す例では、CDAR210にアドレスc及びカウントC
を設定し、NDAR211にアドレスd及びカウントD
を設定する。その後、ステップS14でDMAコントロ
ーラ23を起動する(時点T16)。
【0021】そして、最後の割込み処理において次のデ
ータ転送の要求がない場合、ステップS11を経てステ
ップS15でマスクフリップフロップ12をリセットす
る(時点T17)。これにより、図1に示すゲート11
が開き、転送終了通知27がI/O処理部16に通知さ
れるようになる。従って、CDAR210に設定された
データの転送が終了した時点でDMAコントローラ23
からの転送終了通知27が出力され、I/O処理部16
に通知される。一方、ステップS11で次のデータ転送
の要求があると判別され、ステップS12でCDAR2
10のカウント値が“0”でないと判定されたときは、
DMAチェイン動作がとぎれることなく、正常に続いて
いる。従って、ステップS16で従来と同様にNDAR
211に次のアドレス及びカウントを設定する。このよ
うに、第1の発明によれば、CPU32により転送終了
通知27のI/O処理部16への入力を制御し、DMA
チェイン動作のとぎれによる異常の発生を防止できる。
ータ転送の要求がない場合、ステップS11を経てステ
ップS15でマスクフリップフロップ12をリセットす
る(時点T17)。これにより、図1に示すゲート11
が開き、転送終了通知27がI/O処理部16に通知さ
れるようになる。従って、CDAR210に設定された
データの転送が終了した時点でDMAコントローラ23
からの転送終了通知27が出力され、I/O処理部16
に通知される。一方、ステップS11で次のデータ転送
の要求があると判別され、ステップS12でCDAR2
10のカウント値が“0”でないと判定されたときは、
DMAチェイン動作がとぎれることなく、正常に続いて
いる。従って、ステップS16で従来と同様にNDAR
211に次のアドレス及びカウントを設定する。このよ
うに、第1の発明によれば、CPU32により転送終了
通知27のI/O処理部16への入力を制御し、DMA
チェイン動作のとぎれによる異常の発生を防止できる。
【0022】図8は、第2の発明のI/O制御装置の一
実施例を示す。図8の第2の発明の装置において、図1
の第1の発明の装置と対応する同一の構成の部分につい
ては、同一の符号を付す。図8の装置では、入出力装置
24′にマスクカウンタ17を設けているところが図1
の装置と異なる部分である。これに伴ない、CPU(図
示省略)のDMA割込み処理部の処理が図10に示すよ
うに変更される。図8において、転送終了通知27は、
ゲート11の一方の入力端子に入力されており、デコー
ダ13のマスク設定命令14はマスクフリップフロップ
12のクロック端子に入力されている。また、マスクフ
リップフロップ12の入力端子にはバス29のデータ信
号が入力され、マスクフリップフロップ12の出力端子
はゲート11の他方の入力端子に接続されている。そし
て、ゲート11の出力はI/O処理部16のTC入力に
入力されている。
実施例を示す。図8の第2の発明の装置において、図1
の第1の発明の装置と対応する同一の構成の部分につい
ては、同一の符号を付す。図8の装置では、入出力装置
24′にマスクカウンタ17を設けているところが図1
の装置と異なる部分である。これに伴ない、CPU(図
示省略)のDMA割込み処理部の処理が図10に示すよ
うに変更される。図8において、転送終了通知27は、
ゲート11の一方の入力端子に入力されており、デコー
ダ13のマスク設定命令14はマスクフリップフロップ
12のクロック端子に入力されている。また、マスクフ
リップフロップ12の入力端子にはバス29のデータ信
号が入力され、マスクフリップフロップ12の出力端子
はゲート11の他方の入力端子に接続されている。そし
て、ゲート11の出力はI/O処理部16のTC入力に
入力されている。
【0023】一方、マスクフリップフロップ12のリセ
ット入力Rには、マスクカウンタ17のアンダフロー出
力UFが接続されており、デコーダ13からのロード命
令18はマスクカウンタ17のロード端子Lに入力され
ている。I/O処理部16からの転送信号20はマスク
カウンタ17のダウンクロック端子に入力され、マスク
カウンタ17のD入力にはバス29のデータ信号が入力
されている。これにより、CPUからのマスク設定命令
14によりマスクフリップフロップ12のセット及びリ
セットが行なえ、その状態によりゲート11の開閉が行
なえる。また、CPUからのロード命令によりマスクカ
ウンタ17へのカウントの設定を行ない、I/O処理部
16からのDMA転送毎に発生する転送信号20により
マスクカウンタ17がデクリメントされる。そして、マ
スクカウンタ17のアンダフローの発生時、マスクフリ
ップフロップ12のクリア信号19を出力し、マスクフ
リップフロップ12をリセットする。
ット入力Rには、マスクカウンタ17のアンダフロー出
力UFが接続されており、デコーダ13からのロード命
令18はマスクカウンタ17のロード端子Lに入力され
ている。I/O処理部16からの転送信号20はマスク
カウンタ17のダウンクロック端子に入力され、マスク
カウンタ17のD入力にはバス29のデータ信号が入力
されている。これにより、CPUからのマスク設定命令
14によりマスクフリップフロップ12のセット及びリ
セットが行なえ、その状態によりゲート11の開閉が行
なえる。また、CPUからのロード命令によりマスクカ
ウンタ17へのカウントの設定を行ない、I/O処理部
16からのDMA転送毎に発生する転送信号20により
マスクカウンタ17がデクリメントされる。そして、マ
スクカウンタ17のアンダフローの発生時、マスクフリ
ップフロップ12のクリア信号19を出力し、マスクフ
リップフロップ12をリセットする。
【0024】図9は、第2の発明の装置の動作タイミン
グを示し、図10は、第2の発明の装置のプログラム動
作を示す。CPUのDMA割込み処理部は、DMA転送
の起動時に図10(a)の処理手順に従って動作する。
まず、ステップS21でCDAR210及びNDAR2
11を設定する(図9時点T21)。そして、ステップ
S22でマスクフリップフロップ12をセットし(時点
T22)、さらにステップS23でマスクカウンタ17
に“総転送数−1”の値をセットする(時点T23)。
図9に示す例では、“A+B+C+D−1”の値をセッ
トする。その後、ステップS23でDMAコントローラ
23及び入出力装置24を起動する(時点T24)。
グを示し、図10は、第2の発明の装置のプログラム動
作を示す。CPUのDMA割込み処理部は、DMA転送
の起動時に図10(a)の処理手順に従って動作する。
まず、ステップS21でCDAR210及びNDAR2
11を設定する(図9時点T21)。そして、ステップ
S22でマスクフリップフロップ12をセットし(時点
T22)、さらにステップS23でマスクカウンタ17
に“総転送数−1”の値をセットする(時点T23)。
図9に示す例では、“A+B+C+D−1”の値をセッ
トする。その後、ステップS23でDMAコントローラ
23及び入出力装置24を起動する(時点T24)。
【0025】通常の転送は、従来と同様に行なわれる
が、I/O処理部16からの転送信号20によりデータ
転送毎にマスクカウンタ17のカウント値はデクリメン
トされる。ここで、DMAチェイン動作が途中でとぎ
れ、DMAコントローラ23から転送終了通知27が出
力されても、その転送終了通知27はゲート11により
阻止され、I/O処理部16には入力されない。図10
(b)の割込み処理においては、ステップS31で次の
データ転送の要求があると判別された後、ステップS3
2でCDAR210のカウント値が“0”であれば、D
MAチェイン動作が途中でとぎれたと判定し(時点T2
5)、ステップS33でCDAR210及びNDAR2
11に次のアドレス及びカウントを設定する(時点T2
6)。図9に示す例では、CDAR210にアドレスc
及びカウントCを設定し、NDAR211にアドレスd
及びカウントDを設定する。その後、ステップS34で
DMAコントローラ23を起動する(時点T27)。ま
た、CDAR210のカウント値が“0”でなければ、
ステップS35で従来と同様にNDAR211に次のア
ドレス及びカウントを設定する。
が、I/O処理部16からの転送信号20によりデータ
転送毎にマスクカウンタ17のカウント値はデクリメン
トされる。ここで、DMAチェイン動作が途中でとぎ
れ、DMAコントローラ23から転送終了通知27が出
力されても、その転送終了通知27はゲート11により
阻止され、I/O処理部16には入力されない。図10
(b)の割込み処理においては、ステップS31で次の
データ転送の要求があると判別された後、ステップS3
2でCDAR210のカウント値が“0”であれば、D
MAチェイン動作が途中でとぎれたと判定し(時点T2
5)、ステップS33でCDAR210及びNDAR2
11に次のアドレス及びカウントを設定する(時点T2
6)。図9に示す例では、CDAR210にアドレスc
及びカウントCを設定し、NDAR211にアドレスd
及びカウントDを設定する。その後、ステップS34で
DMAコントローラ23を起動する(時点T27)。ま
た、CDAR210のカウント値が“0”でなければ、
ステップS35で従来と同様にNDAR211に次のア
ドレス及びカウントを設定する。
【0026】一方、マスクカウンタ17は、最後の処理
の直前にアンダフローとなり、マスクフリップフロップ
12をリセットする。これにより、ゲート11が開き、
DMAコントローラ23が出力した転送終了通知27が
I/O処理部16に通知される。これにより、I/O処
理部16でI/O終了処理を行なう。このようにして、
第2の発明の装置では、CPUからのマスクフリップフ
ロップ12のリセット操作によらなくても、DMAチェ
イン動作を終了することができる。尚、第1及び第2の
発明は、上述した各実施例に限定されるものではなく、
種々の変形が可能であることはいうまでもない。例え
ば、ゲート11は、アンドゲートとしたが、オアゲート
にしてもよく、マスクカウンタ17は、ダウンカウンタ
としたが、アップカウンタとしても差し支えない。
の直前にアンダフローとなり、マスクフリップフロップ
12をリセットする。これにより、ゲート11が開き、
DMAコントローラ23が出力した転送終了通知27が
I/O処理部16に通知される。これにより、I/O処
理部16でI/O終了処理を行なう。このようにして、
第2の発明の装置では、CPUからのマスクフリップフ
ロップ12のリセット操作によらなくても、DMAチェ
イン動作を終了することができる。尚、第1及び第2の
発明は、上述した各実施例に限定されるものではなく、
種々の変形が可能であることはいうまでもない。例え
ば、ゲート11は、アンドゲートとしたが、オアゲート
にしてもよく、マスクカウンタ17は、ダウンカウンタ
としたが、アップカウンタとしても差し支えない。
【0027】
【発明の効果】以上説明したように、本発明のI/O制
御装置によれば、DMAコントローラから入出力装置に
入力される転送終了通知を阻止するゲートを設けるよう
にしたので、DMAチェイン動作が途中でとぎれること
に起因してDMAコントローラから転送終了通知が出力
された場合には、終了処理が行なわれることがなく、D
MAチェイン動作を途中から再開させることができる。
従って、CPUの処理が間に合わずにDMAチェイン動
作がとぎれた場合にもデータ処理能力が低下することを
回避することができる。また、DMAチェイン動作によ
る転送データ数を計数するマスクカウンタを設けること
により、所定数のデータが転送された後はCPUからゲ
ートを制御するコマンド等を出力しなくても自動的にゲ
ートが開かれるようにすることができる。
御装置によれば、DMAコントローラから入出力装置に
入力される転送終了通知を阻止するゲートを設けるよう
にしたので、DMAチェイン動作が途中でとぎれること
に起因してDMAコントローラから転送終了通知が出力
された場合には、終了処理が行なわれることがなく、D
MAチェイン動作を途中から再開させることができる。
従って、CPUの処理が間に合わずにDMAチェイン動
作がとぎれた場合にもデータ処理能力が低下することを
回避することができる。また、DMAチェイン動作によ
る転送データ数を計数するマスクカウンタを設けること
により、所定数のデータが転送された後はCPUからゲ
ートを制御するコマンド等を出力しなくても自動的にゲ
ートが開かれるようにすることができる。
【図1】第1の発明のI/O制御装置の一実施例のブロ
ック図である。
ック図である。
【図2】従来のDMAチェイン動作を行なうコンピュー
タシステムのブロック図である。
タシステムのブロック図である。
【図3】メモリと入出力装置間のデータ関連の説明図で
ある。
ある。
【図4】従来のDMAチェイン動作の説明図である。
【図5】DMAチェイン動作のとぎれの説明図である。
【図6】第1の発明の装置の動作タイミングの説明図で
ある。
ある。
【図7】第1の発明の装置のプログラム動作を説明する
フローチャートである。
フローチャートである。
【図8】第2の発明のI/O制御装置の一実施例のブロ
ック図である。
ック図である。
【図9】第1の発明の装置の動作タイミングの説明図で
ある。
ある。
【図10】第2の発明の装置のプログラム動作を説明す
るフローチャートである。
るフローチャートである。
11 ゲート 12 マスクフリップフロップ 17 マスクカウンタ 22 メモリ 23 DMAコントローラ 31 入出力装置 32 CPU 33 DMA割込み処理部
Claims (2)
- 【請求項1】 分散したデータを1回の転送処理により
連続してアクセスするDMAチェイン動作の終了時に、
当該DMAチェイン動作を制御するDMAコントローラ
から出力される転送終了通知を阻止するゲートと、 当該ゲートをCPUの指示に従って開閉するマスクフリ
ップフロップと、 当該マスクフリップフロップを前記DMAチェイン動作
の起動時にセットし、前記DMAコントローラからの割
込み信号の入力時に当該DMAチェイン動作が終了する
場合に前記マスクフリップフロップをリセットするDM
A割込み処理部とから成ることを特徴とするI/O制御
装置。 - 【請求項2】 分散したデータを1回の転送処理により
連続してアクセスするDMAチェイン動作の終了時に、
当該DMAチェイン動作を制御するDMAコントローラ
から出力される転送終了通知を阻止するゲートと、 当該ゲートをCPUの指示に従って開閉するマスクフリ
ップフロップと、 当該マスクフリップフロップを前記DMAチェイン動作
の起動時にセットするとともに前記DMAチェイン動作
のデータ総転送数を出力するDMA割込み処理部と、 当該DMA割込み処理部が出力するデータ総転送数を設
定し、データ転送の際にデータ転送数を計数し、前記デ
ータ総転送数に等しいデータの転送の終了後、前記マス
クフリップフロップをリセットするマスクカウンタとか
ら成ることを特徴とするI/O制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20261793A JPH0736820A (ja) | 1993-07-23 | 1993-07-23 | I/o制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20261793A JPH0736820A (ja) | 1993-07-23 | 1993-07-23 | I/o制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0736820A true JPH0736820A (ja) | 1995-02-07 |
Family
ID=16460352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20261793A Pending JPH0736820A (ja) | 1993-07-23 | 1993-07-23 | I/o制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0736820A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698473B2 (en) | 2005-01-05 | 2010-04-13 | Sony Computer Entertainment Inc. | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
WO2012014400A1 (ja) * | 2010-07-27 | 2012-02-02 | パナソニック株式会社 | データ転送制御装置及びデータ転送制御方法 |
-
1993
- 1993-07-23 JP JP20261793A patent/JPH0736820A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7698473B2 (en) | 2005-01-05 | 2010-04-13 | Sony Computer Entertainment Inc. | Methods and apparatus for list transfers using DMA transfers in a multi-processor system |
WO2012014400A1 (ja) * | 2010-07-27 | 2012-02-02 | パナソニック株式会社 | データ転送制御装置及びデータ転送制御方法 |
US8996913B2 (en) | 2010-07-27 | 2015-03-31 | Panasonic Intellectual Property Management Co., Ltd. | Data transfer control device and data transfer control method |
JP5834182B2 (ja) * | 2010-07-27 | 2015-12-16 | パナソニックIpマネジメント株式会社 | データ転送制御装置及びデータ転送制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5542076A (en) | Method and apparatus for adaptive interrupt servicing in data processing system | |
US5497501A (en) | DMA controller using a predetermined number of transfers per request | |
JPH06314205A (ja) | 割り込み源間の優先順位確立方法及びデータ処理システム | |
JPS6122333B2 (ja) | ||
US7426728B2 (en) | Reducing latency, when accessing task priority levels | |
JP2002073527A (ja) | Dmaコントローラ | |
US20030070049A1 (en) | Memory control method, memory control circuit using the control method, and integrated circuit device with the memory control circuit | |
JPH06161952A (ja) | アクセス要求仲裁装置 | |
US5974479A (en) | System for executing, canceling, or suspending a DMA transfer based upon internal priority comparison between a DMA transfer and an interrupt request | |
JPH0736820A (ja) | I/o制御装置 | |
JP3105554B2 (ja) | 割込みコントローラ | |
JP2000293480A (ja) | Dma転送装置 | |
JP2613986B2 (ja) | 情報処理装置 | |
JPS63293660A (ja) | 通信制御装置 | |
JPH09167117A (ja) | マイクロコンピュータおよびこれを用いたリアルタイムシステム | |
JP2871171B2 (ja) | マイクロコンピュータ | |
JP2765267B2 (ja) | ダイレクトメモリアクセス転送制御装置 | |
JP2635863B2 (ja) | 中央処理装置 | |
JP2837698B2 (ja) | ダイレクト・メモリ・アクセス制御装置 | |
JP2619124B2 (ja) | パイプラインアクセスメモリ | |
JPS61165172A (ja) | メモリアクセス制御方式 | |
JP4062478B2 (ja) | デバイスアクセス方法 | |
JPS60142450A (ja) | 記憶システム | |
JPH05324871A (ja) | マイクロコンピュータ | |
JPH0531772B2 (ja) |