(57)【要約】【課題】  複数ポートのＤＭＡ転送を実行する優先順位を決定し、優先順位の高いポートのＤＭＡ転送を割り込み実行するとともに、割り込まれた優先順位の低いポートのＤＭＡ転送も完全に中断されることなく継続して実行可能とする調停回路を有するＤＭＡ制御装置を提供する。【解決手段】  各ポートで受信したデータのデータ転送を選択的に制御する複数のＤＭＡ制御部を有するＤＭＡ制御装置において、複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中に他のＤＭＡ制御部に対応するポートからのデータ受信があった場合に、他のＤＭＡ制御部に対応するポートからのデータのデータ転送を優先する場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を所定の間隔で該他のＤＭＡ制御部によるデータ転送制御に割り込ませて継続させる。【選択図】  図１
2005267251.tif 000002
【特許請求の範囲】
【請求項１】
各ポートで受信したデータのデータ転送を選択的に制御する複数のＤＭＡ制御部を有するＤＭＡ制御装置において、
前記複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中に他のＤＭＡ制御部に対応するポートからのデータ受信があった場合に、該他のＤＭＡ制御部に対応するポートからのデータのデータ転送を優先する場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を所定の間隔で該他のＤＭＡ制御部によるデータ転送制御に割り込ませて継続させる調停回路
を設けたことを特徴とするＤＭＡ制御装置。
【請求項２】
前記調停回路は、
各ポートに対応して優先順位を設定する優先順位設定手段と、
前記複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中における他のＤＭＡ制御部に対応するポートからのデータ受信を監視する監視手段と、
前記監視手段により他のＤＭＡ制御部に対応するポートからのデータ受信が検出され場合に該受信データのデータ転送を優先するかを解析する解析手段と、
前記解析手段により前記他のＤＭＡ制御部に対応するポートからのデータの転送制御を優先すると解析された場合は、該他のＤＭＡ制御部に対応するポートからのデータのデータ転送制御を優先するように前記優先順位設定手段に設定された優先順位を書き換える優先順位書換手段と、
前記優先順位書換手段により前記優先順位を書き換えた場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を該他のＤＭＡ制御部によるデータ転送制御に所定の間隔で割り込ませて継続させる切換制御手段と
を具備することを特徴とする請求項１記載のＤＭＡ制御装置。
【請求項３】
前記切換制御手段は、
前記他のＤＭＡ制御部に対応して設けられたタイマ手段と、
前記優先順位書換手段により前記優先順位を書き換えた後に前記タイマ手段を動作させ、該タイマ手段の設定した時間間隔で前記他のＤＭＡ制御部からのＤＭＡリクエストをマスクするマスク制御手段と
を具備することを特徴とする請求項２記載のＤＭＡ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（＝Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）制御装置に関し、特に、複数ポートのＤＭＡ転送を実行する優先順位を決定し、優先順位の高いポートのＤＭＡ転送を割り込み実行するとともに、割り込まれた優先順位の低いポートのＤＭＡ転送も完全に中断されることなく継続して実行可能とする調停回路を有するＤＭＡ制御装置に関する。
【背景技術】
【０００２】
近年、装置に搭載されているＣＰＵ（中央演算処理装置）の負荷を軽減し、データ転送の処理速度を向上させるために、メモリ・デバイス（記憶装置）と入出力装置間、またはメモリ・デバイスとメモリ・デバイス間のデータ転送をＣＰＵを介することなく、直接データ転送を行うようなＤＭＡ転送方式が広く普及し使用されている。
【０００３】
ＤＭＡ転送の制御を行うＤＭＡ制御装置には、ＤＭＡ転送が可能な複数のチャンネルを有し、各チャンネル毎に固定のＤＭＡ転送を実行する優先順位を設定し、チャンネル固定の調停制御を行うことで複数のチャンネルを優先度に対応してＤＭＡ転送を可能とするよなＤＭＡ制御装置が提供されている。
【０００４】
ところで、各チャンネル毎に固定のＤＭＡ転送の優先順位が設定されたＤＭＡ制御装置を用いてＤＭＡ転送を制御する場合は、一方のチャンネルのＤＭＡ転送実行中に、優先順位の高い他のＤＭＡ転送の要求があったとしても、現在実行中のＤＭＡ転送が終了するまで、優先順位の高い他のＤＭＡ転送を実行することができないという課題があった。
【０００５】
このような課題を解決するために、例えば、特許文献１には、一方のチャンネルのＤＭＡ転送実行中に、他のＤＭＡ転送の要求があった場合は、ＤＭＡ転送の優先順位を判定し、優先順位の低いＤＭＡ転送を中断して優先順位の高いＤＭＡ転送を開始させるようなデータ転送装置の提案がなされている。
【特許文献１】特開平０６−１３１２９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上記提案の特許文献１は、優先順位の低いＤＭＡ転送中に優先順位の高いＤＭＡ転送の要求があった場合は、優先順位の高いＤＭＡ転送が割り込み実行されるように構成されたものであり、割り込まれた優先順位の低いＤＭＡ転送は、割り込んだ優先順位の高いＤＭＡ転送の処理が終了するまで中断させられるという問題がある。
【０００７】
そこで、本発明は、複数ポートのＤＭＡ転送を実行する優先順位を決定し、優先順位の高いポートのＤＭＡ転送を割り込み実行するとともに、割り込まれた優先順位の低いポートのＤＭＡ転送も完全に中断されることなく継続して実行可能とする調停回路を有するＤＭＡ制御装置を提供する。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１の発明は、各ポートで受信したデータのデータ転送を選択的に制御する複数のＤＭＡ制御部を有するＤＭＡ制御装置において、前記複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中に他のＤＭＡ制御部に対応するポートからのデータ受信があった場合に、該他のＤＭＡ制御部に対応するポートからのデータのデータ転送を優先する場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を所定の間隔で該他のＤＭＡ制御部によるデータ転送制御に割り込ませて継続させる調停回路を設けたことを特徴とする。
【０００９】
また、請求項２の発明は、請求項１の発明において、前記調停回路は、各ポートに対応して優先順位を設定する優先順位設定手段と、前記複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中における他のＤＭＡ制御部に対応するポートからのデータ受信を監視する監視手段と、前記監視手段により他のＤＭＡ制御部に対応するポートからのデータ受信が検出され場合に該受信データのデータ転送を優先するかを解析する解析手段と、前記解析手段により前記他のＤＭＡ制御部に対応するポートからのデータの転送制御を優先すると解析された場合は、該他のＤＭＡ制御部に対応するポートからのデータのデータ転送制御を優先するように前記優先順位設定手段に設定された優先順位を書き換える優先順位書換手段と、前記優先順位書換手段により前記優先順位を書き換えた場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を該他のＤＭＡ制御部によるデータ転送制御に所定の間隔で割り込ませて継続させる切換制御手段とを具備することを特徴とする。
【００１０】
また、請求項３の発明は、請求項２の発明において、前記切換制御手段は、前記他のＤＭＡ制御部に対応して設けられたタイマ手段と、前記優先順位書換手段により前記優先順位を書き換えた後に前記タイマ手段を動作させ、該タイマ手段の設定した時間間隔で前記他のＤＭＡ制御部からのＤＭＡリクエストをマスクするマスク制御手段とを具備することを特徴とする。
【発明の効果】
【００１１】
この発明のＤＭＡ制御装置によれば、各ポートで受信したデータのデータ転送を選択的に制御する複数のＤＭＡ制御部を有するＤＭＡ制御装置において、前記複数のＤＭＡ制御部のいずれかのＤＭＡ制御部を用いたデータの転送制御中に他のＤＭＡ制御部に対応するポートからのデータ受信があった場合に、該他のＤＭＡ制御部に対応するポートからのデータのデータ転送を優先する場合は、該他のＤＭＡ制御部によるデータ転送制御を優先するとともに、該データの転送制御中のＤＭＡ制御部のデータ転送制御を所定の間隔で該他のＤＭＡ制御部によるデータ転送制御に割り込ませて継続させる調停回路を設けるように構成したので、優先順位の高いポートのＤＭＡ転送を割り込み実行した場合であっても割り込まれた優先順位の低いポートのＤＭＡ転送の完全な中断を回避し、より効率的なＤＭＡ転送が実行できるという効果を奏する。
【発明を実施するための最良の形態】
【００１２】
この発明に係わるＤＭＡ制御装置は、例えばＤＭＡ転送が可能な複数のポートを有し、各ポートのＤＭＡ転送を実行する優先順位を決定し、優先順位の高いポートのＤＭＡ転送を割り込み実行するとともに、割り込まれた優先順位の低いポートのＤＭＡ転送も完全に中断されることなく継続して実行可能とする調停回路を有する。
【００１３】
以下の実施例では、本発明に係わるＤＭＡ制御装置をプリンタ装置に搭載し、プリンタ装置に送られてくる印刷データを効率良くデータ転送することが可能なプリンタ装置のＤＭＡ制御装置として用いる場合を想定して説明する。
【実施例１】
【００１４】
本発明に係わるＤＭＡ（＝Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）制御装置の一実施例について添付図面を参照して詳細に説明する。
【００１５】
図１は、プリンタ装置に搭載された本発明に係わるＤＭＡ制御装置の構成例を示したブロック図である。
【００１６】
図１に示すように、本発明に係わるＤＭＡ制御装置１は、データをＤＭＡ転送することが可能な複数の図示せぬポート（０）、ポート（１）、ポート（２）（以下、「ポート（ｎ）」という。）を有しており、各ポート（ｎ）のＤＭＡ転送の制御を行うＤＭＡ制御部（０）３−０、制御部（１）３−１、制御部（２）３−２（以下、「ＤＭＡ制御部（ｎ）３−ｎ」という。）と、各ＤＭＡ制御部（ｎ）３−ｎからのＤＭＡ要求等の情報を受けて、何れのＤＭＡ制御部（ｎ）３−ｎのＤＭＡ転送を優先して実行させるかを調停する調停回路２（一点鎖線で囲まれた部分）を備えている。
【００１７】
なお、調停回路２は、各ポート（０）、（１）、（２）にデータの受信要求が発生した場合において、何れのポート（ｎ）でのＤＭＡ転送によるデータ受信を優先して実行するかを調停制御するととも、優先度の高いポート（ｎ）での受信要求によって一時中断された優先度の低いポート（ｎ）のデータ受信処理も所定の時間間隔で優先して実行可能とするように調停制御を行う。
【００１８】
各ＤＭＡ制御部（ｎ）３−ｎと各ポート（ｎ）とは１対１で対応しており、例えばポート（０）のＤＭＡ制御はＤＭＡ制御部（０）３−０、ポート（１）のＤＭＡ制御はＤＭＡ制御部（１）３−１、ポート（２）のＤＭＡ制御はＤＭＡ制御部（２）３−２によってそれぞれＤＭＡ制御するように構成されている。
【００１９】
また、各ＤＭＡ制御部（ｎ）３−ｎは、各ポート（ｎ）でデータをＤＭＡ転送するためのＤＭＡスタートアドレス、転送データ等のＤＭＡ情報が設定可能なように構成されており、各ＤＭＡ制御部（ｎ）３−ｎは、各ＤＭＡ制御部（ｎ）３−ｎに設定されたＤＭＡスタートアドレス、転送データ等のＤＭＡ情報に基づいてＤＭＡ制御を行う。
【００２０】
調停回路２は、タイマ（０）２５−０及びタイマ（１）２５−１と、リクエスト切替部２２と、ＡＣＫ切替部２３と、優先順位設定レジスタ２１と、ＡＣＫタイミングパルス生成部２４と、ＡＣＫ判定部２０を備えており、優先順位設定レジスタ２１は、各ポート（ｎ）のＤＭＡ制御部（ｎ）３−ｎからのＤＭＡ要求に対して何れのポートのＤＭＡ制御部（ｎ）３−ｎのＤＭＡ転送を優先して実行させるか等の優先順位情報を設定し記憶するように構成されている。
【００２１】
具体的には、優先順位設定レジスタ２１は、複数ビットで構成されており、各ＤＭＡ制御部（ｎ）３−ｎからのＤＭＡ要求の受付け及びＤＭＡ許可の優先順位が設定可能なように、例えば内部要求「２」、「１」、「０」の順序の優先順位でＤＭＡ要求を受付け、内部許可「２」、「１」、「０」の順序の優先順位でＤＭＡを許可するように各内部要求「２」、「１」、「０」及び内部許可「２」、「１」、「０」に対応する各ビットが優先順位設定レジスタ２１の複数ビットにそれぞれ対応付けられている。
【００２２】
例えば、複数のポート（ｎ）でデータの受信要求が発生した場合は、優先順位設定レジスタ２１の内部要求「２」に対応付けられたＤＭＡ制御部（ｎ）３−ｎのＤＭＡ要求及びＤＭＡ許可が最優先に実行され、次に内部要求「１」に対応付けられたＤＭＡ制御部（ｎ）３−ｎのＤＭＡ要求及びＤＭＡ許可の実行、そして内部要求「０」に対応付けられたＤＭＡ制御部（ｎ）３−ｎのＤＭＡ要求及びＤＭＡ許可の実行の優先順位でＤＭＡ転送が実行される。
【００２３】
リクエスト切替部２２は、優先順位設定レジスタ２１に設定された優先順位情報及びタイマ（０）２５−０もしくはタイマ（１）２５−１から入力される時間信号に基づいてＤＭＡ要求を受付けるＤＭＡ制御部（ｎ）３−ｎへ切り替え制御を行う。
【００２４】
また、リクエスト切替部２２は、リクエスト切替部２２で切り替え制御した情報、例えば、現在のＤＭＡ要求が受付けられているＤＭＡ制御部（ｎ）３−ｎの情報等をＡＣＫ判定部２０へ出力する。
【００２５】
タイマ（０）２５−０は、ＤＭＡ要求の受付け及びＤＭＡ許可の最も優先順位の低い内部要求「０」に対応付けられたポートのＤＭＡ制御部（ｎ）３−ｎがＤＭＡ転送実行中に優先順位の高い内部要求「１」または「２」に対応付けられたＤＭＡ制御部（ｎ）３−ｎのＤＭＡ要求によって割り込まれてＤＭＡ転送の実行が一時中断させられた場合に、タイマ（０）２５−０に設定された時間間隔で一時中断したＤＭＡ転送の実行を優先して実行させるための時間計測装置である。
【００２６】
また、タイマ（１）２５−１は、ＤＭＡ要求の受付け及びＤＭＡ許可の優先順位が内部要求「０」の次に高い内部要求「１」に対応付けられたポートのＤＭＡ制御部（ｎ）３−ｎがＤＭＡ転送実行中に優先順位の高い内部要求「２」に対応付けられたＤＭＡ制御部（ｎ）３−ｎのＤＭＡ要求によって割り込まれてＤＭＡ転送の実行が一時中断させられた場合に、タイマ（１）２５−１に設定された時間間隔で一時中断したＤＭＡ転送の実行を優先して実行させるための時間計測装置である。
【００２７】
ＡＣＫ判定部２０は、リクエスト切替部２２から入力された情報、例えば、現在のＤＭＡ要求が受付けられているＤＭＡ制御部（ｎ）３−ｎの情報等に基づき現在の内部要求「ｎ」がアクティブ（有効）なビット（ＤＭＡ要求が受付けられているＤＭＡ制御部（ｎ）３−ｎに対応付けされた内部要求「ｎ」）に対して優先順位のより高いビットに対応する内部許可（ｎ）をアクティブにするように判定し、判定結果をＡＣＫ切替部２３へ入力する。
【００２８】
ＡＣＫ切替部２３は、優先順位設定レジスタ２１に設定された優先順位情報とＡＣＫ判定部２０から入力された判定結果に基づきＡＣＫタイミングパルス生成部２４で生成した許可開始パルス信号または許可終了パルス信号を送出するＤＭＡ制御部（ｎ）３−ｎに切り替え制御する。
【００２９】
ＡＣＫタイミングパルス生成部２４は、各ポート（ｎ）からのＤＭＡ要求の有無を監視し、ＤＭＡ要求があった場合は、メモリの使用状況を確認し、ＤＭＡ転送の実行を行うためのメモリが使用可能な状態であればＤＭＡの許可開始パルス信号を生成してＡＣＫ切替部２３へ出力する。
【００３０】
また、ＤＭＡ転送によるデータ転送が終了した場合は、ＤＭＡの許可終了パルス信号を生成してＡＣＫ切替部２３へ出力する。
【００３１】
なお、この実施例では、説明の便宜上、ポート（０）、ポート（１）、ポート（２）の３ポートでＤＭＡ転送の実行を行う場合を例として示してあるが、ポート数は増減可能であり、ポート数の増減に対応してＤＭＡ制御部（ｎ）３−ｎの数及びタイマの数を増減させた構成とする。
【００３２】
このように構成されたＤＭＡ制御装置１の動作について、図２、図３に示すフローチャート及び図４に示す優先順位情報を参照しながら詳細に説明する。
【００３３】
なお、図２乃至図４においては、優先順位設定レジスタ２１にポート（２）、ポート（１）、ポート（０）の順序の優先順位でＤＭＡ転送を実行するように優先順位情報が設定された状態において、ポート（２）で印刷データ受信中にポート（１）での印刷データの受信要求が発生し、ポート（１）のＤＭＡ転送によるデータ受信を最優先させるような場合を想定して説明する。
【００３４】
優先順位設定レジスタ２１は、前述に説明したように各ポート（０）、ポート（１）、ポート（２）からのＤＭＡ転送の実行要求及びＤＭＡ要求に対するＤＭＡ転送を許可する優先順位が設定された優先順位情報が図４（ａ）に示すように設定されている。
【００３５】
図４（ａ）に示した優先順位情報４０１は、例えば、次のように各ポート（ｎ）のＤＭＡ転送実行の優先順位が設定されている。
【００３６】
内部要求「２」＝ポート（２）（ＤＭＡ要求２）、内部要求「１」＝ポート（１）（ＤＭＡ要求１）、内部要求「０」＝ポート（０）（ＤＭＡ要求０）、内部許可「２」＝ポート（２）（ＤＭＡ許可２）、内部許可「１」＝ポート（１）（ＤＭＡ許可１）、内部許可「０」＝ポート（０）（ＤＭＡ許可０）。
【００３７】
この優先順位情報は、内部要求「２」、「１」、「０」の順序の優先順位で各内部要求「２」、「１」、「０」と対応付けられたＤＭＡ制御部（ｎ）３−ｎからのＤＭＡ要求を受付け、内部許可「２」、「１」、「０」の順序の優先順位で各内部許可「２」、「１」、「０」と対応付けられたＤＭＡ制御装置（ｎ）へのＤＭＡ転送を許可するように構成されている。
【００３８】
具体的には、ポート（２）からのＤＭＡ要求２、ポート（１）からのＤＭＡ要求１、ポート（０）からのＤＭＡ要求０の順序でＤＭＡ要求を受付け、ポート（２）へのＤＭＡ許可２、ポート（１）へのＤＭＡ許可１、ポート（０）へのＤＭＡ許可０の順序でＤＭＡ許可を送出するように設定されている。
【００３９】
このように、優先順位設定レジスタ２１に設定された優先順位情報に基づきポート（２）で印刷データを受信中にポート（１）での印刷データの受信要求が発生すると（ステップＳ２０１）、ポート（１）に受信要求があった印刷データの優先度に応じてＤＭＡ転送を実行するポート（ｎ）の優先順位を決定し、必要に応じて優先順位情報の内容を変更する。
【００４０】
本実施例においては、例えばポート（１）へ受信要求のあった印刷データの印刷枚数等を算出する印刷枚数解析処理を行い、印刷枚数解析処理の結果に基づいてＤＭＡ転送を実行するポート（ｎ）の優先順位を決定する。
【００４１】
例えば、印刷枚数の多い印刷データのポート（ｎ）のＤＭＡ転送の実行優先順位を低くし、印刷枚数の少ない印刷データのポート（ｎ）の優先順位を高くするように優先順位を決定し設定する。
【００４２】
ポート（１）に受信要求があった印刷データの印刷枚数解析処理を行い（ステップＳ２０２）、印刷枚数解析処理の結果に基づきポート（１）の優先度が優先順位設定レジスタ２１に設定されている優先順位の最上位の優先順位に変更が必要と判断した場合は（ステップＳ２０３でＹＥＳ）、優先順位設定レジスタ２１に設定された図４（ａ）に示した現在の優先順位情報をポート（１）、ポート（２）、ポート（０）の順の優先順位でＤＭＡ転送を実行するような優先順位へ変更する（ステップＳ２０６）。
【００４３】
ステップＳ２０３において、ポート（１）に受信要求があった印刷データのＤＭＡ転送実行を最優先的に実行する必要があると判定しなかった場合は（ステップＳ２０３でＮＯ）、ポート（２）でのＤＭＡ転送をポート（２）でのデータ転送が終了するまで継続して実行する（ステップＳ２０４、ステップＳ２０５）。
【００４４】
本実施例で想定された場合のように、ポート（１）、ポート（２）、ポート（０）の順序の優先順位でＤＭＡ転送を実行するような優先順位への変更は、具体的には、図４（ｂ）に示すような優先順位情報４０２の内容へ変更し設定する。
【００４５】
図４（ｂ）に示した優先順位情報４０２は、次のようなＤＭＡ転送実行の優先順位が設定されている。
【００４６】
内部要求「２」＝ポート（１）（ＤＭＡ要求１）、内部要求「１」＝ポート（２）（ＤＭＡ要求２）、内部要求「０」＝ポート（０）（ＤＭＡ要求０）、内部許可「２」＝ポート（１）（ＤＭＡ許可１）、内部許可「１」＝ポート（２）（ＤＭＡ許可２）、内部許可「０」＝ポート（０）（ＤＭＡ許可０）。
【００４７】
この設定は、内部要求「２」、「１」、「０」の優先順位の順序に従って、例えばポート（１）からのＤＭＡ要求１、ポート（２）からのＤＭＡ要求２、ポート（０）からのＤＭＡ要求０の順序でＤＭＡ要求を受付け、内部許可「２」、「１」、「０」の優先順位の順序に従って、ポート（１）へのＤＭＡ許可１、ポート（２）へのＤＭＡ許可２、ポート（０）へのＤＭＡ許可０の順序でＤＭＡ許可を送出するように設定される。
【００４８】
優先順位設定レジスタ２１の優先順位情報が変更されると、ポート（１）のＤＭＡ転送を制御するＤＭＡ制御部（１）３−１にポート（１）のＤＭＡ転送を実行可能とするポート（１）の印刷データのＤＭＡスタートアドレスや転送データ等の情報を設定し、タイマ（１）２５−１に設定された時間間隔で内部要求「２」に対応付けられたポート（１）のＤＭＡ転送の実行をマスク処理する図示せぬマスク用フラグ（１）をアクティブに設定するとともにタイマ（１）２５−１を起動する（ステップＳ２０７）。
【００４９】
ＤＭＡ制御部（１）３−１へのＤＭＡ設定、マスク用フラグ（１）のアクティブ設定、タイマ（１）２５−１の起動が行われると、ポート（２）のＤＭＡ転送を一時中断し（ステップＳ２０８）、ＤＭＡ制御部（１）３−１に設定されたＤＭＡ情報に基づいてＤＭＡを起動し、ポート（１）のＤＭＡ転送の要求受付、ポート（１）でのＤＭＡ転送の許可及びＤＭＡ転送が開始される（ステップＳ２０９）。
【００５０】
なお、マスク用フラグ（１）をアクティブに設定することで優先順位設定レジスタ２１に設定された優先順位情報の内部要求「１」に対応付けられたポート（２）のＤＭＡ転送がタイマ（１）２５−１に設定された時間間隔で優先して実行されるように優先順位の最も高い内部要求「２」に対応付けられたポート（１）のＤＭＡ転送実行を一時中断するようなマスク処理を行う。
【００５１】
ポート（１）でのＤＭＡ転送が開始され、タイマ（１）２５−１に設定された時間間隔に達すると（ステップＳ２１０でＹＥＳ）、タイマ（１）２５−１からの時間信号がリクエスト切替部２２へ入力されるとともに図４（ｃ）に示すように優先順位設定レジスタ２１に設定された優先順位情報の内部要求「２」＝ポート１（ＤＭＡ要求１）のマスク処理を行う。
【００５２】
このマスク処理により内部要求「２」に対応付けられたポート１のＤＭＡ転送を一時中断し（ステップＳ２１１）、ＤＭＡ転送実行中にポート（１）の割り込み受信要求によってＤＭＡ転送が一時中断させられポート（２）のＤＭＡ転送を優先して実行する（ステップＳ２１２）。
【００５３】
ポート（２）を優先したＤＭＡ転送中に、ポート（２）のデータ転送が終了すると（ステップＳ２１３でＹＥＳ）、マスク用フラグ（１）のアクティブ設定を解除してインアクティブ（無効）に設定し、タイマ（１）２５−１をクリアするとともに（ステップＳ２１９）、ポート（１）でのＤＭＡ転送をＤＭＡ転送が終了するまで実行する（ステップＳ２２０、ステップＳ２２１）。
【００５４】
ステップＳ２１４において、ポート（２）を優先したＤＭＡ転送中に、時間間隔がタイマ（１）２５−１に設定された時間に達すると（ステップＳ２１４でＹＥＳ）、図４（ｃ）で示した優先順位情報４０３でマスク処理された内部要求「２」に対応付けられたポート（１）のＤＭＡ転送の一時中断を解除するように図４（ｄ）に示すような優先順位情報４０４の内容へ変更し、変更された優先順位情報４０４に基づいて内部要求「１」に対応付けられたポート（２）を優先したＤＭＡ転送を一時中断してポート（１）を優先したＤＭＡ転送を実行する（ステップＳ２１５、ステップＳ２１６）。
【００５５】
ステップＳ２１７において、ポート（１）でのＤＭＡ転送によるデータ転送が終了すると（ステップＳ２１７でＹＥＳ）、各ポート（ｎ）での印刷データの受信要求の待ち状態となり（ステップＳ２２２）、各ポート（ｎ）での受信発生に応じて前述に示したような処理動作を繰り返す。
【００５６】
ステップＳ２１８において、時間間隔がタイマ（１）２５−１に設定された時間に達すると（ステップＳ２１８でＹＥＳ）、内部要求「２」に対応付けられたポート（１）のＤＭＡ転送を一時中断し、ポート（２）を優先したＤＭＡ転送を実行し、以降は、タイマ（１）２５−１に設定された時間間隔毎にポート（１）とポート（２）とを交互に優先して実行し、ポート（１）とポート（２）との何れかのＤＭＡ転送によるデータ転送が終了するまで繰り返す。
【００５７】
次に、調停回路２の各部の処理動作について図５及び図６を参照しながら詳細に説明する。
【００５８】
図５は、ＡＣＫタイミングパルス生成部２４が許可開始パルス信号及び許可終了パルス信号を出力する動作フローを示した図であり、図６は、リクエスト切替部２２、ＡＣＫ切替部２３及びＡＣＫ判定部２０の動作フローを示す図である。
【００５９】
ＡＣＫタイミングパルス生成部２４は、図５に示すように、各ポート（ｎ）からのＤＭＡ制御部（ｎ）を介したＤＭＡ転送実行の要求があると（ステップＳ５０１でＹＥＳ）、メモリの使用状況を確認し、ＤＭＡ転送を可能とするようなメモリの領域確保が可能であると判断した場合は（ステップＳ５０２でＹＥＳ）、許可開始パルス信号を発生させ、ＡＣＫ切替部２３へ出力する（ステップＳ５０３）。
【００６０】
ＡＣＫタイミングパルス生成部２４によって発生させた許可開始パルス信号は、ＡＣＫ切替部２３を介してＤＭＡ転送実行を要求したＤＭＡ制御部（ｎ）へ入力され、ＤＭＡ制御部（ｎ）が入力された許可開始パルス信号に基づいてＤＭＡ制御を行うポート（ｎ）のＤＭＡ転送によるデータ受信を実行する。
【００６１】
ＤＭＡ転送によるデータ受信が終了すると（ステップＳ５０４でＹＥＳ）、ＡＣＫタイミングパルス生成部２４は、許可終了パルス信号を発生させ、ＡＣＫ切替部２３へ出力する（ステップＳ５０５）。
【００６２】
ＡＣＫタイミングパルス生成部２４によって発生させた許可終了パルス信号は、ＡＣＫ切替部２３を介してＤＭＡ転送を実行したＤＭＡ制御部（ｎ）へ入力され、ＤＭＡ制御部（ｎ）が許可終了パルス信号に基づいてＤＭＡ制御を行っているポート（ｎ）のＤＭＡ転送の実行を終了する。
【００６３】
リクエスト切替部２２、ＡＣＫ切替部２３及びＡＣＫ判定部２０は、図６に示すように、優先順位設定レジスタ２１に記憶管理された優先順位情報に優先順位の変更が発生すると（ステップＳ６０１でＹＥＳ）、リクエスト切替部２２が変更後の優先順位情報に基づく切替え制御に先立ち、既にＤＭＡ実行中のポート（ｎ）のＤＭＡ実行を一時中断する必要がある場合には（ステップＳ６０２でＹＥＳ）、当該ポート（ｎ）に対応付けられた優先順位情報（変更後）の内部要求を所定の時間間隔で優先してＤＭＡ実行するようにタイマ（０）２５−０またはタイマ（１）２５−１の起動するとともに、マスク用フラグ（０）またはマスク用フラグ（１）をアクティブに設定する（ステップＳ６０３）。
【００６４】
リクエスト切替部２２及びＡＣＫ切替部２３は、変更された優先順位情報に基づいて最も優先順位の高いポート（ｎ）のＤＭＡ制御部（ｎ）のＤＭＡ要求の受付け及びＤＭＡ許可を実行可能とするように切替え制御する（ステップＳ６０４）。
【００６５】
リクエスト切替部２２及びＡＣＫ切替部２３によって最も優先順位の高いポート（ｎ）のＤＭＡ制御部（ｎ）のＤＭＡ要求の受付け及びＤＭＡ許可を実行可能とするように切替え制御後、マスク用フラグ（０）またはマスク用フラグ（１）が有効に設定されていると（ステップＳ６０５でＹＥＳ）、タイマ（０）２５−０またはタイマ（１）２５−１に設定された時間間隔で内部要求の優先順位が上位側をマスク処理する（ステップＳ６０６）。
【００６６】
具体的には、マスク用フラグ（０）がアクティブに設定されている場合は、タイマ（０）２５−０に設定された時間間隔で内部要求「０」よりも優先順位が上位の内部要求「１」または「２」がマスク処理されて内部要求「０」に対応付けられたポート（ｎ）のＤＭＡ転送が優先して実行され、内部許可「０」に対応する許可終了パルス信号が内部許可「０」に対応付けられたＤＭＡ制御部（ｎ）へ入力された時にマスク用フラグ（０）をインアクティブに設定し、内部要求「１」または「２」のマスク処理が解除される。
【００６７】
また、マスク用フラグ（１）がアクティブに設定されている場合は、タイマ（１）２５−１に設定された時間間隔で内部要求「１」よりも優先順位が上位の内部要求「２」がマスク処理されて内部要求「１」に対応付けられたポート（ｎ）のＤＭＡ転送が優先して実行され、内部許可「１」に対応する許可終了パルス信号が内部許可「１」に対応付けられたＤＭＡ制御部（ｎ）へ入力された時に、マスク用フラグ（１）をインアクティブに設定し、内部要求「２」のマスク処理が解除される。
【００６８】
ＡＣＫ判定部２０は、優先順位の最も高いＤＭＡ実行の内部要求「ｎ」に対応する内部許可「ｎ」をアクティブに設定し、アクティブに設定された内部許可「ｎ」に対応付けられたポート（ｎ）のＤＭＡ転送が実行される。
【００６９】
具体的には、例えば内部要求「２」がアクティブならば内部許可「２」をアクティブとし、内部要求「１」がアクティブならば内部許可「１」をアクティブとし、内部要求「０」がアクティブならば内部許可「０」をアクティブとし、内部要求「２」、「１」、「０」がインアクティブならば内部許可「２」、「１」、「０」もインアクティブとする（ステップＳ６０７）。
【００７０】
以上説明したように、本発明に係わるＤＭＡ制御装置は、複数ポートのＤＭＡ転送を実行する優先順位を決定し、優先順位の高いポートのＤＭＡ転送を割り込み実行するとともに、割り込まれた優先順位の低いポートのＤＭＡ転送も完全に中断されることなく継続して実行するように調停制御を行うので優先順位の高いポートのＤＭＡ転送を割り込み実行した場合であっても割り込まれた優先順位の低いポートのＤＭＡ転送の完全な中断を回避し、より効率的なＤＭＡ転送を実行することができる。
【図面の簡単な説明】
【００７１】
【図１】本発明に係わるＤＭＡ制御装置の構成例を示した構成図
【図２】本発明に係わるＤＭＡ制御装置の動作フローを示す図
【図３】本発明に係わるＤＭＡ制御装置の動作フローを示す図
【図４】優先順位情報の設定内容を示す図
【図５】ＡＣＫタイミングパルス生成部２４の動作フローを示す図
【図６】リクエスト切替部２２、ＡＣＫ切替部２３及びＡＣＫ判定部２０の動作フローを示す図
【符号の説明】
【００７２】
１        ＤＭＡ制御装置
２        調停回路
３−０    ＤＭＡ制御部（０）
３−１    ＤＭＡ制御部（１）
３−２    ＤＭＡ制御部（２）
２０      ＡＣＫ判定部
２１      優先順位設定レジスタ
２２      リクエスト切替部
２３      ＡＣＫ切替部
２４      ＡＣＫタイミングパルス生成部
２５−０  タイマ（０）
２５−１  タイマ（１）
【図１】
2005267251.tif 000003
【図２】
2005267251.tif 000004
【図３】
2005267251.tif 000005
【図４】
2005267251.tif 000006
【図５】
2005267251.tif 000007
【図６】
2005267251.tif 000008