(57)【特許請求の範囲】
【請求項１】
ＣＰＵの介在なく、所定回路または所定デバイスからデータを受け取りこれをメモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを所定回路または所定デバイスに送るＤＭＡ転送機能、および、ＣＰＵからデータを受け取りこれを前記メモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを前記ＣＰＵに送るＤＭＡ転送装置経由ＣＰＵメモリアクセスによる転送機能を備えたＤＭＡ転送装置であって、
メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセスによる転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段と、
ＤＭＡ転送サイクル連続数の設定値を設定するＤＭＡ転送サイクル数設定値設定手段とを備え、
前記メモリアクセス優先順位決定手段は、前記ＤＭＡ転送サイクル連続数検出手段による前記連続数の検出値がＤＭＡ転送サイクル数設定値設定手段により設定された前記設定値に達したときは、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を下げることを特徴とするＤＭＡ転送装置。
【請求項２】
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備え、前記ＤＭＡ待機検出手段が前記ＤＭＡ転送待機状態を検出したときは、前記メモリアクセス優先順位決定手段は前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を初期状態に戻すことを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項３】
ＣＰＵの介在なく、所定回路または所定デバイスからデータを受け取りこれをメモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを所定回路または所定デバイスに送るＤＭＡ転送機能、および、ＣＰＵからデータを受け取りこれを前記メモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを前記ＣＰＵに送るＤＭＡ転送装置経由ＣＰＵメモリアクセスによる転送機能を備えたＤＭＡ転送装置であって、
メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段と、
ＤＭＡ連続サイクル数設定値を設定するＤＭＡ転送サイクル数設定値設定手段と、
ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクするＣＰＵメモリアクセス要求マスク手段とを備え、
前記ＣＰＵメモリアクセス要求マスク手段は、前記ＤＭＡ転送サイクル連続数検出手段による前記連続数の検出値がＤＭＡ転送サイクル数設定値設定手段により設定された前記設定値に達したときは、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサンプリングをマスクすることを特徴とするＤＭＡ転送装置。
【請求項４】
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備え、前記ＤＭＡ待機検出手段が前記ＤＭＡ転送待機状態を検出したときは、前記ＣＰＵメモリアクセス要求マスク手段は、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除することを特徴とする請求項３に記載のＤＭＡ転送装置。
【請求項５】
前記ＤＭＡ転送サイクル連続数検出手段における前記ＤＭＡ転送サイクルの計数初期値は、プログラマブルであることを特徴とする請求項１から４の何れか１つに記載のＤＭＡ転送装置。
【請求項６】
ＣＰＵの介在なく、所定回路または所定デバイスからデータを受け取りこれをメモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを所定回路または所定デバイスに送るＤＭＡ転送機能、および、ＣＰＵからデータを受け取りこれを前記メモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを前記ＣＰＵに送るＤＭＡ転送装置経由ＣＰＵメモリアクセスによる転送機能を備えたＤＭＡ転送装置であって、
メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセスが開始されたときに、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクル数の計数を開始するＤＭＡ転送サイクル計数手段と、
ＤＭＡ転送装置経由ＣＰＵメモリアクセスが開始されたときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクし、前記ＤＭＡ転送サイクル計数手段による計数結果が所定値に達したときに前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の前記マスクを解除するＣＰＵメモリアクセス要求マスク手段と、を備えたことを特徴とするＤＭＡ転送装置。
【請求項７】
前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備え、前記ＤＭＡ待機検出手段が前記ＤＭＡ転送待機状態を検出したときは、前記ＣＰＵメモリアクセス要求マスク手段は前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除することを特徴とする請求項６に記載のＤＭＡ転送装置。
【請求項８】
前記ＤＭＡ転送サイクル計数手段における前記ＤＭＡ転送サイクル数の計数初期値または前記マスクを解除するための前記所定値はプログラマブルであることを特徴とする請求項６または７に記載のＤＭＡ転送装置。
【請求項９】
前記メモリアクセス優先順位決定手段は、現実行サイクル中に現実行サイクルのリクエストをサンプリングしないことを特徴とする請求項７または８に記載のＤＭＡ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵからデータを受け取りこれをメモリデバイスに書き込みまたは前記メモリデバイスからデータを読み出しこれを前記ＣＰＵに送ることができるＤＭＡ転送装置に関し、具体的には、ＣＰＵによる前記ＤＭＡ転送装置を介したメモリアクセス要求の優先順位が高い場合において、通常のＤＭＡ転送が頻繁に生じるような場合には、当該通常のＤＭＡ転送を前記ＤＭＡ転送装置を介したＣＰＵによるメモリアクセス転送よりも優先させて処理することができるＤＭＡ転送装置に関する。
【０００２】
【従来の技術】
一般に、ＤＭＡ転送装置は、ＣＰＵにバス使用権の要求を発行しＣＰＵから返されるバス使用許可を待って、ＣＰＵを介することなくメモリデバイスとのアクセスを行う。もちろん、ＣＰＵはＤＭＡ転送装置によることなくメモリデバイスとのアクセスを行うこともできる。
【０００３】
【発明が解決しようとする課題】
ところで、ＣＰＵがＤＭＡ転送装置経由でメモリデバイスにアクセスする技術が提案されている。ＣＰＵがＤＭＡ転送装置経由でメモリデバイスにアクセス（本明細書では、「ＤＭＡ転送装置経由ＣＰＵメモリアクセス」と言う）ができるデータ転送システムでは、ＤＭＡ転送装置はメモリアクセス用データバスを介してＤＲＡＭ等のメモリデバイスにアクセスし、ＣＰＵもメモリアクセス用データバスを介してＤＭＡ転送装置とデータのやり取りを行う。
【０００４】
ＤＭＡ転送装置経由ＣＰＵメモリアクセスを行うことができる転送システムでは、たとえば、メモリデバイスが同期式ＤＲＡＭの場合は、そのクロックの速さがＣＰＵのクロックの範囲と異なることがある。このような場合において、ＤＲＡＭのクロックを極力速くしたいときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセス機能を持つＤＭＡ転送装置は有効となる。たとえばＣＰＵのクロックが最大４０ＭＨｚ、ＤＲＡＭのクロックが最大１００ＭＨｚの場合に、ＣＰＵ周辺回路は４０ＭＨｚで作成し、ＤＲＡＭインターフェイスを含むＤＭＡコントローラは１００ＭＨｚで作成することで、ＤＲＡＭのスピードを遅くすることなく、ＤＲＡＭインターフェイスを１つにできる。
【０００５】
ＤＭＡ転送装置経由ＣＰＵメモリアクセスを行うことができるＤＭＡ転送装置では、ＣＰＵ周辺回路からのＤＭＡ転送装置経由ＣＰＵメモリアクセス要求、ＣＰＵ周辺回路以外の回路からの通常のメモリアクセス用データバス側の各種デバイスやＣＰＵ周辺回路からのデバイスメモリアクセス要求を円滑に処理して、それらの各種デバイスからのメモリアクセス要求に応える必要がある。
【０００６】
しかし、ＣＰＵがＤＭＡ転送装置経由でメモリにアクセスすると言った特殊性に故に、既存のメモリアクセスの調停技術（特開平０７−３１９７５６号公報参照）をＤＭＡ転送装置経由ＣＰＵメモリアクセスにそのまま転用することはできない。
たとえば、ＤＭＡ転送装置経由ＣＰＵメモリアクセス以外のアクセスが頻繁に生じた場合、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求にも平均してサービスしてまうと、通常のＤＭＡ要求（ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求）に応じきれずにＤＭＡ転送システムが破綻してしまう場合がある。また、特に、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を、通常のＤＭＡ要求（すなわち、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡ要求）の優先順位よりも高く設定する場合もあるが、この場合には、上記したＤＭＡ転送システムの破綻が生じる蓋然性が高くなる。
【０００７】
本発明の目的は、ＤＭＡ転送装置経由ＣＰＵメモリアクセス以外のアクセスが頻繁に生じる場合に、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求に対するデータ転送およびＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡ要求に対するデータ転送を円滑に行うことができるＤＭＡ転送装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明は、ＣＰＵの介在なく、所定回路または所定デバイスからデータを受け取りこれをメモリデバイスに書き込み、または前記メモリデバイスからデータを読み出しこれを所定回路または所定デバイスに送るデータ転送機能（ＤＭＡ転送機能）、および、ＣＰＵからデータを受け取りこれを前記メモリデバイスに書き込み、または前記メモリデバイスからデータを読み出しこれを前記ＣＰＵに送るＤＭＡ転送装置経由ＣＰＵメモリアクセスによる転送機能（ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送機能）を備えたＤＭＡ転送装置に適用される。
【０００９】
本明細書において、「メモリアクセス要求」は、ＣＰＵ（あるいはＣＰＵ周辺回路）からのメモリアクセス要求（すなわち、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求）およびＣＰＵ（あるいはＣＰＵ周辺回路）以外の所定回路または所定デバイスからのＤＭＡ要求を含む。
【００１０】
本発明の第１態様のＤＭＡ転送装置は、メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセスの転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段と、前記ＤＭＡ転送サイクル連続数の設定値を設定するＤＭＡ転送サイクル数設定値設定手段とを備えたもので、前記メモリアクセス優先順位決定手段は、前記ＤＭＡ転送サイクル連続数検出手段による前記連続数の検出値がＤＭＡ転送サイクル数設定値設定手段により設定された前記設定値に達したときは、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を下げることを特徴とする。ここで、メモリアクセス用データバスとは、具体的には、たとえばメモリアクセスに係るデータが専用にやり取りされるメモリアクセス専用データバス（ＤＭＡ転送専用バス）である。
【００１１】
第１態様のＤＭＡ転送装置によれば、ＤＭＡチャネルを、ＤＭＡ転送装置経由ＣＰＵメモリアクセス（ＤＭＡの１チャネル）と、その他の複数のＤＭＡチャネルの２つのグループに分け、後者のチャネルのメモリアクセス（通常の、ＤＭＡ）が頻繁に発生したときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の当該優先順位は低く設定される。したがって、ＤＭＡ転送チャネルが頻繁に動作し一定時間内に転送を終了しなくはならないような場合に、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求によるメモリアクセスは、たとえその優先順位が最も高く設定されていたとしても制限される。したがって、ＤＭＡ転送システムの破綻、すなわち通常のＤＭＡ転送がなかなか実行されないといった事態の発生を防ぐことができる。
【００１２】
第１態様のＤＭＡ転送装置では、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態（ＤＭＡ要求「なし」状態）を検出するＤＭＡ待機検出手段を更に備えることができる。この場合、ＤＭＡ待機検出手段により、前記ＤＭＡ転送待機状態（ＤＭＡ要求「なし」状態）が検出されたときには、前記メモリアクセス優先順位決定手段における前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を初期状態に戻すことができる。したがって、通常のＤＭＡ転送の頻度が減ったときには、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求を優先させることで、ＣＰＵワークエリア等のアクセス遅延時間への影響を最小限に抑えることができる。
【００１３】
本発明の第２態様のＤＭＡ転送装置は、データ転送に係るデータやり取りされるメモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段と、ＤＭＡ連続サイクル数設定値を設定するＤＭＡ転送サイクル数設定値設定手段と、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクするＣＰＵメモリアクセス要求マスク手段とを備えたもので、前記ＣＰＵメモリアクセス要求マスク手段は、前記ＤＭＡ転送サイクル連続数検出手段による前記連続数の検出値がＤＭＡ転送サイクル数設定値設定手段により設定された前記設定値に達したときは、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサンプリングをマスクすることを特徴とする。
【００１４】
第２態様のＤＭＡ転送装置によれば、ＤＭＡ転送チャネルが頻繁に動作し一定時間内に転送を終了しなくてはならないような場合に、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求はマスクにより制限される。したがって、ＤＭＡ転送システムの破綻、すなわち通常のＤＭＡ転送がなされないといった事態の発生を防ぐことができる。
【００１５】
第２態様のＤＭＡ転送装置では、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備えることができる。この場合、そのＤＭＡ待機検出手段により、前記ＤＭＡ転送待機状態が検出された際には、前記ＣＰＵメモリアクセス要求マスク手段における、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除することができる。これにより、第１態様におけると同様、ＤＭＡ転送頻度が減ったときには、たとえば当該要求の優先順位を予め高くしておき、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求を優先させてＣＰＵワークエリア等のアクセス遅延時間への影響を最小限に抑えることができる。
【００１６】
本発明のＤＭＡ転送装置では、メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段と、ＤＭＡ連続サイクル数設定値を設定するＤＭＡ転送サイクル数設定値設定手段と、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサイクル占有率を制限するＣＰＵサイクル占有率制限手段とを備えることができる。このＣＰＵサイクル占有率制限手段は、前記ＤＭＡ転送サイクル連続数検出手段による前記連続数の検出値がＤＭＡ転送サイクル数設定値設定手段により設定された前記設定値に達したときは、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサイクル占有率を小さくすることができる。上記のＤＭＡ転送装置では、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備えることができる。この場合、そのＤＭＡ待機検出手段により、前記ＤＭＡ転送待機状態が検出された際には、前記ＣＰＵサイクル占有率制限手段における、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサイクル占有率を初期状態に戻すことができる。これにより、第１態様，第２態様と同様、ＤＭＡ転送頻度が減ったときには、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求を優先させてＣＰＵワークエリア等のアクセス遅延時間への影響を最小限に抑えることができる。
【００１７】
前記ＤＭＡ転送サイクル連続数検出手段における前記ＤＭＡ転送サイクルの計数初期値は、プログラマブルとすることができる。これにより、第１，第２態様のＤＭＡ転送装置が組み込まれたシステムの動作環境等に応じたＤＭＡ転送のパフォーマンスを達成できる。
【００１８】
本発明の第３態様のＤＭＡ転送装置は、メモリアクセス用データバスと、複数のメモリアクセス要求をサンプリングして優先順位に従ってそれらのメモリアクセス要求のうちの１つを選択するメモリアクセス優先順位決定手段と、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセスが開始されたときに、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクル数の計数を開始するＤＭＡ転送サイクル計数手段と、ＤＭＡ転送装置経由ＣＰＵメモリアクセスが開始されたときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクし、前記ＤＭＡ転送サイクル計数手段による計数結果が所定値に達したときに前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の前記マスクを解除するＣＰＵメモリアクセス要求マスク手段とを備えたことを特徴とする。
【００１９】
第３態様では、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外の要求についてＤＭＡ転送待機状態を検出するＤＭＡ待機検出手段を更に備えることができる。この場合、前記ＤＭＡ待機検出手段が前記ＤＭＡ転送待機状態を検出したときは、前記ＣＰＵメモリアクセス要求マスク手段は前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除することができる。
【００２０】
第３態様では、前記ＤＭＡ転送サイクル計数手段における前記ＤＭＡ転送サイクル数の計数初期値または前記マスクを解除するための前記所定値はプログラマブルであることを特徴とする。また、前記メモリアクセス優先順位決定手段は、現実行サイクル中に現実行サイクルのリクエストをサンプリングしないようにできる。これにより、最も優先順位が高いＤＭＡサイクルについても、他のアクセス要求がない場合を除き、最大２サイクルに１回のサイクルに制限し、実質上優先順位を低くしたＤＭＡチャネルをサービスすることができる。
【００２１】
上述した各態様のＤＭＡ転送装置では、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位は、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡ要求の優先順位と比較して高くなるように初期設定することができる。これにより、前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求についての上記した制限が加えられていない場合には、当該前記ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求が優先されるので、ＣＰＵワークエリア等のアクセス時間の遅延を最小限に抑えることができる。
【００２２】
【発明の実施の形態】
以下、添付図面を参照しながら、本発明の実施の形態を詳細に説明する。
図１に、本発明の第１実施形態に係るＤＭＡ転送装置１１３およびＤＭＡ転送装置１１３を適用したデータ処理装置１１のブロック構成を示す。図１において、ＣＰＵ１１２は、システム全体を制御するものである。ＤＭＡ転送装置１１３は、ＤＭＡアドレスの生成を行うＤＭＡアドレス生成手段１１４、ＤＭＡ転送サイクル数設定値設定手段としてのレジスタ１１５ａを含むＤＭＡ制御レジスタ群１１５、データ転送のタイミング制御やＣＰＵ１１２またはＤＭＡ転送装置１１３がメモリ１１９に対してアクセスする際のストローブ信号の生成等を行うタイミング生成部１１６、ＣＰＵ１１２の周辺回路（図示せず）や外部回路（当該周辺回路以外の回路やデバイス）からの複数のメモリアクセス要求のサンプリングを行い、その結果に対して優先順位を決定し決定結果をタイミング生成部１１６に出力するメモリアクセス優先順位決定手段１１８、およびＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル以外のＤＭＡ転送サイクルの連続数を検出するＤＭＡ転送サイクル連続数検出手段１１７により構成されている。なお、図２（Ａ）に、ＤＭＡサイクル数設定値が設定されたレジスタ１１５ａを含むレジスタ群１１５のモデルを示す。
【００２３】
メモリ１１９，ＤＭＡ転送装置１１３間のデータ転送、ＤＭＡ転送装置１１３，ＣＰＵ１１２間のデータ転送は、本実施形態ではメモリアクセス専用データバス１１１を介して行われる。メモリ１１９は、ＤＭＡ転送装置経由ＣＰＵメモリアクセスおよびＤＭＡに際しての転送先または転送元となるデバイスである。ＲＯＭ１２０は、ＣＰＵ１１２のための制御プログラムやデータが書き込まれたプログラムドメモリであり、ＣＰＵ専用データバス１１２を介してＣＰＵ１１２によりデータの読み出しが行われる。
【００２４】
図３により、上記構成のＤＭＡ転送装置１１３によるＤＭＡ転送制御処理を説明する。第１実施形態では、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求（ＣＰＵ１１２によるＤＭＡ転送装置１１３経由のメモリアクセス要求）の優先順位は、ＣＰＵ１１２の周辺回路以外のデバイスや回路からのＤＭＡ要求の優先順位よりも高くなるように設定されているものとする。
【００２５】
図３において、先ず、ＤＭＡ制御レジスタ１１５群に所定の値をセットする（Ｓ１０１）。このとき、図２（Ａ）に示したレジスタ１１５ａには上限サイクル数がセットされる。次に、ＤＭＡ連続サイクル数の計数のためのカウンタＣＹＣを「０」にリセットする（Ｓ１０２）。そして、メモリアクセス優先順位決定手段１１８は、メモリアクセス要求があるかを監視し（Ｓ１０３の「Ｎｏ」のループ）、メモリアクセス要求が入ると（Ｓ１０３の「Ｙｅｓ」）、ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル、またはＣＰＵ１２の周辺回路以外のデバイスや回路からのＤＭＡ要求に基づくＤＭＡ転送サイクルが開始する（Ｓ１０４）。なお、第１実施形態では、メモリアクセス優先順位決定手段１１８は、メモリアクセス要求のサンプリングを行うことで当該要求を受け付ける。また、第１実施形態では、メモリアクセス優先順位決定手段１１８は、優先順位変更手段１１８１およびＤＭＡ待機検出手段１１８２を含むように描かれているが、これら優先順位変更手段１１８１，ＤＭＡ待機検出手段１１８２は、メモリアクセス優先順位決定手段１１８に含まれなくてもよく、ソフトウェア的および／またはハードウェア的に実現される。
【００２６】
データ転送サイクルが開始されると、実行サイクル（現サイクル）がＤＭＡ転送装置経由ＣＰＵメモリアクセスであるか否かを判定し（Ｓ１０５）、ＤＭＡ転送装置経由ＣＰＵメモリアクセスでないときには（Ｓ１０５の「Ｎｏ」）、カウンタＣＹＣをインクリメントして（Ｓ１０６）、処理をＳ１０７に移す。ＤＭＡ転送装置経由ＣＰＵメモリアクセスであるときには（Ｓ１０５の「Ｙｅｓ」）、何もしないでＳ１０７に処理を移す。
【００２７】
Ｓ１０７では、カウンタＣＹＣが、Ｓ１０１で設定したＤＭＡ上限サイクル数設定値に達したか否かを判定し、当該設定値に達した場合には（Ｓ１０７の「Ｙｅｓ」）、ＣＰＵメモリアクセス制限処理を行ったうえで（Ｓ１０８）、Ｓ１０９に処理を移し、まだ、達していない場合には（Ｓ１０７の「Ｎｏ」）、何もしないで、Ｓ１０９に処理を移す。
【００２８】
Ｓ１０８のＣＰＵメモリアクセス制限処理としては、具体的には、図４（Ａ−１）に示す処理手順を行う。すなわち、メモリアクセス優先順位決定手段１１８におけるＤＭＡ転送装置経由ＣＰＵメモリアクセスの優先順位を下げる制御を行う。
【００２９】
第１実施形態では、前述したようにＤＭＡ転送装置経由ＣＰＵメモリアクセス要求が、ＣＰＵ１１２の周辺回路以外のデバイスや回路からのＤＭＡ要求よりも優先順位が高く設定されているが、ＣＰＵ１１２の周辺回路以外のデバイスや回路からのＤＭＡ要求に基づくアクセス転送サイクルが頻繁に生じた場合には、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位がＳ１０８により下げられる。したがって、Ｓ１０８の処理（ＤＭＡ転送装置経由ＣＰＵメモリアクセスの制限処理）を行うことで、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求よりも、当該要求以外の他のメモリアクセス要求（通常のＤＭＡ要求）が優先的に処理される。これにより、ＤＭＡ転送装置経由ＣＰＵメモリアクセスにかかるチャネル以外のＤＭＡ転送チャネルが頻繁に動作し一定時間内にＤＭＡによる転送を終了しなくはならないような場合において、ＤＭＡ転送システムの破綻を防ぐことができる。
【００３０】
つぎに、データ転送サイクル内で次サイクルのメモリアクセス要求をサンプリングし（Ｓ１０９）、メモリアクセス要求があるときには（Ｓ１１０の「Ｙｅｓ」）、Ｓ１０４に戻ってデータ転送サイクルを開始し、Ｓ１０５〜Ｓ１０９の処理を繰り返す。メモリアクセス要求がないときには（Ｓ１１０の「Ｎｏ」）、待機状態に移行し（Ｓ１１１）、この後カウンタＣＹＣを０にリセットする（Ｓ１１２）。そして、データ転送がまだ終了していない場合には（Ｓ１１３の「Ｎｏ」）、Ｓ１０３に戻って、次のメモリアクセス要求の有無を監視する。
【００３１】
次に、本発明の第２実施形態を説明する。第１実施形態では、メモリアクセス優先順位決定手段１１８は、優先順位変更手段１１８１およびＤＭＡ待機検出手段１１８２を含んでいる。第２実施形態では、図２（Ｂ）に示すように、メモリアクセス優先順位決定手段１１８は、ＣＰＵメモリアクセス要求マスク手段１１８３を含んでいる。ＣＰＵメモリアクセス要求マスク手段１１８３は、ＤＭＡ転送サイクル連続数検出手段１１７によるＤＭＡ転送サイクル連続数（ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡサイクルの連続数）の検出値がレジスタ１１５ａ（ＤＭＡ転送サイクル数設定値設定手段）により設定された値に達したときは、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサンプリングをマスクすることができる。この場合にもＣＰＵメモリアクセス要求マスク手段は、ソフトウェア的および／またはハードウェア的に実現される。この場合の、図３に示したＣＰＵアクセス制限処理Ｓ１０８を図４（Ｂ−１）に示し、図３に示したＳ１１４の初期化処理を図４（Ｂ−２）に示す。
【００３２】
なお、図２（Ｃ）に示すように、メモリアクセス優先順位決定手段１１８が、ＣＰＵサイクル占有率制限手段１１８４およびＤＭＡ待機検出手段１１８２を含むように構成できる。ＣＰＵサイクル占有率制限手段１１８４は、ＤＭＡ転送サイクル連続数検出手段１１７によるＤＭＡ転送サイクル連続数の検出値がレジスタ１１５ａにより設定された値に達したときは、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサイクル占有率を小さくすることができる。この場合にもＣＰＵサイクル占有率制限手段１１８４は、ソフトウェア的および／またはハードウェア的に実現される。この場合の、図３に示したＣＰＵアクセス制限処理１０８を図４（Ｃ−１）に示し、図３に示したＳ１１４の初期化処理を図４（Ｃ−２）に示す。
【００３３】
第２実施形態でも、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求よりも、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のメモリアクセス要求（ＤＭＡ要求）が優先的に処理されることになるため、ＤＭＡ転送チャネルが頻繁に動作し一定時間内に転送を終了しなくはならないような場合に、ＤＭＡシステムの破綻を防ぐことができるようになる。
【００３４】
次に、本発明の第３実施形態を、図５および図６により説明する。図５は、第３実施形態に係るＤＭＡ転送装置２１３およびＤＭＡ転送装置２１３を適用したデータ処理装置２１のブロック構成図である。図５では、ＤＭＡ転送装置２１３が図１と異なる。ＤＭＡ転送装置２１３は、ＤＭＡアドレス生成手段２１４、ＤＭＡ制御レジスタ群２１５、タイミング生成部２１６、ＤＭＡ転送サイクル計数手段２１７、メモリアクセス優先順位決定手段２１８を含んで構成されている。ＤＭＡアドレス生成手段２１４およびタイミング生成部２１６は、基本的に図１のＤＭＡアドレス生成手段１１４、タイミング生成部１１６と同じである。ＤＭＡ制御レジスタ群２１５はＤＭＡ転送サイクル数設定値設定手段としてのレジスタ２１５ａを有しているが、この値はプログラマブルに設定（たとえば設定値Ｎ）が可能である。ＤＭＡ転送サイクル計数手段２１７は、ＤＭＡ転送装置経由ＣＰＵメモリアクセスがあると、上記設定値Ｎを設定値として計数を開始する。メモリアクセス優先順位決定手段２１８は、ＣＰＵメモリアクセス要求マスク手段２１８１およびＤＭＡ待機検出手段２１８２を含むように描かれているが、これらＣＰＵメモリアクセス要求マスク手段２１８１，ＤＭＡ待機検出手段２１８２は、メモリアクセス優先順位決定手段２１８に含まれなくてもよく、ソフトウェア的および／またはハードウェア的に実現される。ＣＰＵメモリアクセス要求マスク手段２１８１は、ＤＭ転送装置経由ＣＰＵメモリアクセスがあると、ＤＭ転送装置経由ＣＰＵメモリアクセス要求をマスクする。ＤＭＡ待機検出手段２１８２は、設定値Ｎを計数すると、ＤＭ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除する。
【００３５】
以下、図６のフローチャートにより説明する。第３実施形態では、最初にＤＭＡ制御レジスタ群２１５の各レジスタの値をセットする。この中にはカウンタＣＹＣの初期値セットも含まれることもあるし、含まれないこともある（Ｓ２０１）。そして、メモリアクセス優先順位決定手段２１８に対してＤＭＡ要求があるかを監視し（Ｓ２０２の「Ｎｏ」のループ）、ＣＰＵ１１２の図示しない周辺回路からのメモリアクセス要求、またはＣＰＵ周辺回路以外の回路またはデバイスからのＤＭＡ要求が入ると（すなわち、メモリアクセス要求のサンプリングを行うことで要求を受け付けると）（Ｓ２０２の「Ｙｅｓ」）、ＤＭＡ転送装置経由ＣＰＵメモリアクセス転送サイクル、またはＣＰＵ１１２の周辺回路以外のデバイスや回路からの要求に基づくＤＭＡ転送サイクルが開始する（Ｓ２０３）。
【００３６】
データ転送サイクルでは、実行サイクル（現サイクル）がＤＭＡ転送装置経由ＣＰＵメモリアクセスであるか否かを判定し（Ｓ２０４）、ＤＭＡ転送装置経由ＣＰＵメモリアクセスであるときには（Ｓ２０４の「Ｙｅｓ」）、その実行サイクル内でＤＭＡ転送サイクル数カウント手段のカウンタに初期値（＝Ｎ）をロードし、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクする（Ｓ２０５）。ＤＭＡ転送装置経由ＣＰＵメモリアクセスで無いときには（Ｓ２０４の「Ｎｏ」）、ステップＳ２０６の処理に移行する。ステップＳ２０６では、サイクル数カウント手段のカウンタ値ＣＹＣが「０」であるか否かを判定し、ＣＹＣ＝０であればＤＭＡ転送装置経由ＣＰＵメモリアクセスのリクエストマスクを解除する（Ｓ２０９）。
【００３７】
ＣＹＣ≠０のときには、ＤＭＡ実行サイクル内でＤＭＡ転送サイクル計数手段２１７のカウンタＣＹＣの値をデクリメント（−１）する（Ｓ２０７）。Ｓ２０６〜Ｓ２０９の処理を行った後、次のデータ転送のメモリアクセス要求をサンプリングする（Ｓ２１０）。メモリアクセス要求があるときには、ステップＳ２０３からの処理を繰り返し（Ｓ２１１の「Ｙｅｓ」）、メモリアクセス要求がないときには（Ｓ２１１の「Ｎｏ」）、待機状態となる（Ｓ２１２）。
【００３８】
ここで、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡ要求（通常のＤＭＡ要求）が無いときには、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクを解除する（Ｓ２１３）。そして、データ転送が終了したか否かを判定し（Ｓ２１４）、終了していないときには（Ｓ２１４の「Ｎｏ」）Ｓ２０２から処理を繰り返し、終了したときには（Ｓ２２４の「Ｙｅｓ」）、処理を終了する。
第３実施形態では、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位が、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求以外のＤＭＡ要求の優先順位より高く設定してある。したがって、Ｓ２１３でＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のマスクが解除された後に、そのＤＭＡ転送装置経由ＣＰＵメモリアクセス要求がある場合は、次の実行サイクルに置いて、直ちに当該要求にかかるＤＭＡ転送装置経由ＣＰＵメモリアクセスを実行することができる。なお、Ｓ２１３の処理を省略することもできる。
【００３９】
また、メモリアクセス優先順位決定手段２１８は、現実行サイクル中に現実行サイクルのリクエストをサンプリングしないようにできる。これにより、最も優先順位が高いＤＭＡサイクルについても、他のアクセス要求がない場合を除き、最大２サイクルに１回のサイクルに制限し、実質上優先順位を低くしたＤＭＡチャネルをサービスすることができる。
【００４０】
以上の第１〜第３実施形態で説明したように本発明では、一定時間内にＤＭＡサービスを行わなければ、システム自体が破綻するＤＭＡチャネルにおいて、一時的にその実行を優先させＤＭＡが要因となるシステム破綻を防ぐ効果がある。一定時間内にＤＭＡ転送を終了しなくてはならない例としては、プリンタ、ＦＡＸ、コピー機などの書き込みデータのＤＭＡなどがある。たとえば、記録紙を搬送し始めてから一度も記録紙を止めることなく書き込みを行うため、その搬送スピードに対してＤＭＡが遅れると破綻する。したがって、この種のシステムや装置に本発明は有効である。
【００４１】
【発明の効果】
本発明では、ＤＭＡ転送装置経由ＣＰＵメモリアクセス以外のメモリアクセス、すなわち通常のＤＭＡが頻繁に発生したときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセス要求の優先順位を下げ、あるいはＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクするようにした。したがって、ＤＭＡ転送チャネルが頻繁に動作し、一定時間内にデータ転送を終了しなくはならないようなＤＭＡ転送において、ＤＭＡ転送装置経由ＣＰＵメモリアクセスにバスが占有され続けてしまうといった不都合が生じることはなく、よってＤＭＡシステム破綻を防ぐことが可能となる。
【００４２】
また、（ａ）ＤＭＡ転送装置経由ＣＰＵメモリアクセスサイクル以外のメモリアクセスサイクル（通常のＤＭＡサイクル）の連続計数値が設定値となったときにＤＭＡ転送装置経由ＣＰＵメモリアクセス要求をマスクし、その後に通常のＤＭＡ転送要求がなくなったときにマスクを解除するパターン、あるいは（ｂ）ＤＭＡ転送装置経由ＣＰＵメモリアクセスサイクルが発生したときに、ＤＭＡ転送装置経由ＣＰＵメモリアクセスをマスクし、所定回数ＤＭＡサイクルが生じたときをマスク解除の条件とするパターンの何れをも採用できるので、ＤＭＡ転送装置が組み込まれるシステムへの応用が拡張される。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るＤＭＡ転送装置およびそのＤＭＡ転送装置を適用したデータ処理装置のブロック構成図である。
【図２】（Ａ）本発明の第１実施形態に係るＤＭＡ転送装置のＤＭＡ制御レジスタ群について示す図、（Ｂ）は本発明の第２実施形態に係るＤＭＡ転送装置の部分図、（Ｃ）はＤＭＡ転送装置経由ＣＰＵメモリアクセス要求のサイクル占有率を制限する実施形態を示す図である。
【図３】本発明の第１，第２実施形態に係るＤＭＡ転送装置におけるＤＭＡ転送制御処理を示すフローチャートである。
【図４】本発明の第１，第２実施形態におけるフローチャートの一部をそれぞれ示す図である。
【図５】本発明の第３実施形態に係るＤＭＡ転送装置およびそのＤＭＡ転送装置を適用したデータ処理装置のブロック構成図である。
【図６】本発明の第３実施形態に係るＤＭＡ転送装置におけるＤＭＡ転送制御処理を示すフローチャートである。
【符号の説明】
１１  データ処理装置
１１１  メモリアクセス専用データバス
１１２  ＣＰＵ
１１３，２１３  ＤＭＡ転送装置
１１４，２１４  アドレス生成手段
１１５，２１５  ＤＭＡ制御レジスタ群
１１６，２１６  タイミング生成部
１１７  ＤＭＡ転送サイクル連続数検出手段
１１８，２１８  メモリアクセス優先順位決定手段
１１９  メモリ
１２０  ＲＯＭ
２１７  ＤＭＡ転送サイクル計数手段
１１８１  優先順位変更手段
１１８２，２１６２  ＤＭＡ待機検出手段
１１８３，２１８１  ＣＰＵメモリアクセス要求マスク手段
１１８４  ＣＰＵサイクル占有率制限手段
【図１】
0003923299.tif 000002
【図２】
0003923299.tif 000003
【図３】
0003923299.tif 000004
【図４】
0003923299.tif 000005
【図５】
0003923299.tif 000006
【図６】
0003923299.tif 000007