(57)【要約】【課題】  転送速度の異なる複数のクライアントからのデータを効率的に取得することができるデータ転送制御装置を提供する。【解決手段】  複数のＤＭＡ５１〜５５のデータ転送要求を受け付けて、当該ＤＭＡのデータを転送先に転送制御する要求先パス制御部７２と、優先順位の高い第１グループのクライアントのデータ転送回数又はデータ転送量が、所定回数又は所定量となると、第１グループのクライアントからのデータ転送要求をマスクし、優先順位の低い第２グループのクライアントからのデータ転送要求を要求先パス制御部７２に出力するタイミングコントローラ７１とを有している。従って、転送速度の異なる複数のクライアントからのデータを効率的に取得することができる。【選択図】        図６
2006053613.tif 000002
【特許請求の範囲】
【請求項１】
優先順位を高く設定された第１グループのクライアントからのデータ転送要求と、前記優先順位を低く設定された第２グループのクライアントからのデータ転送要求とを調停するデータ転送制御装置であって、
複数のクライアントからのデータ転送要求を受け付けて、当該クライアントのデータを転送先に転送制御する制御回路と、
前記第１グループのクライアントのデータ転送回数又はデータ転送量が、所定回数又は所定量となると、前記第１グループのクライアントからのデータ転送要求をマスクし、前記第２グループのクライアントからのデータ転送要求を前記制御回路に出力するマスク回路とを有することを特徴とするデータ転送制御装置。
【請求項２】
前記マスク回路は、前記第２グループのクライアントのデータ転送が終了すると、前記第１グループのクライアントからの前記データ転送要求に対するマスクを解除することを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記制御回路は、前記第１グループのクライアントに対し、固定優先順位法又はラウンドロビン法によって優先順位を設定することを特徴とする請求項１又は２記載のデータ転送制御装置。
【請求項４】
前記マスク回路は、外部から設定される前記データ転送回数又は前記データ転送量に従って、前記第１グループのクライアントからの転送要求をマスクすることを特徴とする請求項１から３のいずれか一項に記載のデータ転送制御装置。
【請求項５】
前記第１グループのクライアントは、転送速度の速いクライアントであり、前記第２のグループのクライアントは、転送速度の遅いクライアントであることを特徴とする請求項１から４のいずれか一項に記載のデータ転送制御装置。
【請求項６】
優先順位を高く設定された第１グループのクライアントからのデータ転送要求と、前記優先順位を低く設定された第２グループのクライアントからのデータ転送要求とを調停するデータ転送制御方法であって、
前記第１グループのクライアントのデータ転送回数又はデータ転送量を監視するステップと、
前記第１グループのクライアントのデータ転送回数又はデータ転送量となると、前記第１グループのクライアントからのデータ転送要求をマスクし、前記第２グループのクライアントからのデータ転送要求を受け付けるステップとを有することを特徴とするデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のクライアントから出力されるＤＭＡ（Direct Memory Access）転送要求を処理するデータ転送制御装置及びデータ転送制御方法に関する。
【背景技術】
【０００２】
複数のクライアントからのデータ転送要求に対する調停方法として、固定優先順位法とラウンドロビン法が知られている。
【０００３】
固定優先順位法は、例えば、４つのクライアントＡ，Ｂ，Ｃ，Ｄがあった場合に、クライアントＡ〜Ｄのメモリアクセス要求が競合すると、図１に示すように必ず予め決められた優先順位で処理を行う。
【０００４】
この固定優先順位法は、クライアントＡ〜Ｄが同程度の転送スピードの場合には有効であるが、転送スピードが極端に異なるクライアントが混在した場合に、クライアントＡ〜Ｄのすべてのデータが揃ってからメモリに対し次の要求を開始するような場合に効率が悪い。
【０００５】
例えば、転送スピードが極端に遅いクライアントがＢで、転送スピードが早いクライアントがＡ，Ｃ，Ｄだとすると、必ずクライアントＢからのデータ転送を待ってからクライアントＣ，Ｄのデータ転送を行うので、図２に示すようにクライアントＢによりクライアントＡ，Ｃ，Ｄが待たされる可能性がある。
【０００６】
ラウンドロビン法は、平等に優先権を与える方法である。例えば、クライアントＡ〜Ｄのメモリアクセス要求が同時に競合すると、クライアントＡ，クライアントＢ，クライアントＣ，クライアントＤの優先順位の処理になる。また一旦アクセス要求を獲得したクライアントは、優先順位が最下位になる。
【０００７】
このラウントロビン法も、クライアントＡ〜Ｄが同程度の転送スピードの場合には有効だが、転送スピードが極端に異なるクライアントが混在した場合に、クライアントＡ〜Ｄのすべてのデータが揃ってからメモリに対し次の要求を開始するような場合に効率が悪い。
【０００８】
例えば、転送スピードが極端に早いクライアントがＡで、他は同等の速度のクライアントＢ，Ｃ，Ｄであるとする。アクセス要求に多少の時間差があると、図３に示すようにクライアントＡの要求が連続して行われ、ＡによりＢ，Ｃ，Ｄが待たされる可能性がある。
【０００９】
また特許文献１には、バッファ残量に基づいた調停方法が開示されている。この方法は、複数のクライアントからのメモリアクセス要求が競合した場合に、各クライアントに設けられているデータバッファへのデータの蓄積状況を示すバッファ残量に基づいて、アクセス権の調停を行う。
【００１０】
この方法も、複数のクライアントが同程度の転送スピードの場合には有効であるが、転送スピードが極端に異なるクライアントが混在した場合に、クライアントＡ〜Ｄのすべてのデータが揃ってからメモリに対し次の要求を開始するような場合に効率が悪い。
【００１１】
また特許文献２には、共有資源からデータを読み出す第１デバイスと、共有資源にデータを書き込む第２デバイスとの資源アクセス要求を調停する方法が開示されている。第１デバイスと第２デバイスとのアクセス要求回数をカウントして比較し、比較結果に応じて第１デバイスのアクセス要求をマスクすることで、第１デバイスが無駄なデータを読み出すことがないようにしている。
【００１２】
【特許文献１】特開２００２−１３２７０７号公報
【特許文献２】特開平７−２９５８７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述したアクセス権の調停方法は、複数のクライアントからのデータが揃ってからメモリに対し次の要求を開始するような場合に効率が悪い。図２〜図４に示すように転送スピードの極端に遅いクライアントや極端に速いクライアントがあった場合に、複数のクライアントからデータを効率的に取得することができない。特許文献２の開示技術もこの問題点を解消しているとは言えない。
【００１４】
本発明は上記事情に鑑みてなされたものであり、転送速度の異なる複数のクライアントからのデータを効率的に取得することができるデータ転送制御装置及びデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
かかる目的を達成するために本発明のデータ転送制御装置は、優先順位を高く設定された第１グループのクライアントからのデータ転送要求と、前記優先順位を低く設定された第２グループのクライアントからのデータ転送要求とを調停するデータ転送制御装置であって、複数のクライアントからのデータ転送要求を受け付けて、当該クライアントのデータを転送先に転送制御する制御回路と、前記第１グループのクライアントのデータ転送回数又はデータ転送量が、所定回数又は所定量となると、前記第１グループのクライアントからのデータ転送要求をマスクし、前記第２グループのクライアントからのデータ転送要求を前記制御回路に出力するマスク回路とを有する構成としている。１グループのクライアントのデータ転送回数又はデータ転送量が、所定回数又は所定量となると、第２グループのクライアントからのデータ転送要求を優先するようになるため、転送速度の異なる複数のクライアントからのデータを効率的に取得することができる。従って、第１グループと第２グループからのデータセットが揃わないと次の処理に移行できないような場合に、効果的な転送制御となる。
【００１６】
上記のデータ転送制御装置において、前記マスク回路は、前記第２グループのクライアントのデータ転送が終了すると、前記第１グループのクライアントからの前記データ転送要求に対するマスクを解除するとよい。第２グループのデータ転送が終了すると、第１グループからのデータ転送要求に対するマスクを解除するので、優先順位を高く設定された第１グループのクライアントからのデータ転送が優先的に行われることになる。
【００１７】
上記のデータ転送制御装置において、前記制御回路は、前記第１グループのクライアントに対し、固定優先順位法又はラウンドロビン法によって優先順位を設定するとよい。固定優先順位法又はラウンドロビン法によって設定された優先順位に従って、第１グループのクライアントからのデータを転送することができる。
【００１８】
上記のデータ転送制御装置において、前記マスク回路は、外部から設定される前記データ転送回数又は前記データ転送量に従って、前記第１グループのクライアントからの転送要求をマスクするとよい。外部からデータ転送回数又は前記データ転送量を設定可能なので、設定の変更が容易になる。
【００１９】
上記のデータ転送制御装置において、前記第１グループのクライアントは、転送速度の速いクライアントであり、前記第２のグループのクライアントは、転送速度の遅いクライアントであるとよい。転送速度の遅い第２のグループのクライアントのデータ転送を保護することができる。
【００２０】
本発明のデータ転送制御方法は、優先順位を高く設定された第１グループのクライアントからのデータ転送要求と、前記優先順位を低く設定された第２グループのクライアントからのデータ転送要求とを調停するデータ転送制御方法であって、前記第１グループのクライアントのデータ転送回数又はデータ転送量を監視するステップと、前記第１グループのクライアントのデータ転送回数又はデータ転送量となると、前記第１グループのクライアントからのデータ転送要求をマスクし、前記第２グループのクライアントからのデータ転送要求を受け付けるステップとを有している。１グループのクライアントのデータ転送回数又はデータ転送量が、所定回数又は所定量となると、第２グループのクライアントからのデータ転送要求を優先するようになるため、転送速度の異なる複数のクライアントからのデータを効率的に取得することができる。従って、第１グループと第２グループからのデータセットが揃わないと次の処理に移行できないような場合に、効果的な転送制御となる。
【発明の効果】
【００２１】
本発明は、転送速度の異なる複数のクライアントからのデータを効率的に取得することができる。
【発明を実施するための最良の形態】
【００２２】
添付図面を参照しながら本発明の最良の実施例を説明する。
【実施例１】
【００２３】
本発明を画像形成装置１０に適用した構成を図５に示す。図５に示すように本実施例は、システムバス９に、ＣＰＵ１と、メモリ２と、スキャナユニット６と、画像処理ユニット８とが接続されている。メモリ２はメモリコントローラ３を介してシステムバス９に接続されている。スキャナユニット６は、データ転送制御装置５とインタフェース４とを介してシステムバス９に接続されている。画像処理ユニット８は、インタフェース７を介してシステムバス９に接続されている。
【００２４】
メモリコントローラ３は、ＣＰＵ１の制御により動作して、メモリ２に対してデータの読み書き制御を実行する。メモリ２は、メモリコントローラ３に接続され、その制御にしたがい例えば、画像データ等を格納する。システムバス９はメモリコントローラ３と、データ転送制御装置５とを接続して画像データ等のデータを転送する。
【００２５】
データ転送装置４は、スキャナユニット６によって読み取ったＹ（イエロ），Ｍ（マゼンタ），Ｃ（シアン），Ｋ（ブラック）の画像データをメモリ２に転送して格納する制御を行う。また、データ転送制御装置５は、ＣＰＵ１によってデータ転送に必要な設定等がなされる。この画像データの他に、転送済みバイト数等のステータスデータ（属性情報）がデータ転送制御装置５よりメモリ２に出力される。
【００２６】
画像処理ユニット８は、メモリ２に蓄積された画像データを読み出して、印刷のための画像処理を行う。処理後の画像データは、図示しない印刷エンジンに出力され印刷が行われる。
【００２７】
図６に、データ転送制御装置５の詳細な構成を示す。図６に示すようにデータ転送制御装置５は、インタフェース４との間でデータのＤＭＡ転送を行う複数のＤＭＡコントローラ（ＤＭＡＣとも表記する）５０と、ＤＭＡコントローラ５０からの入出力要求に対するアービトレーションを行い、インタフェース４との間でデータを転送する調停回路７０とを備えている。
【００２８】
ＤＭＡコントローラ５０は、第１ＤＭＡ５１、第２ＤＭＡ５２、第３ＤＭＡ５３、第４ＤＭＡ５４、第５ＤＭＡ５５と、各ＤＭＡ５１〜５５に対応して設けられたＦＩＦＯ（First-In First-Out）メモリ５６、５７、５８、５９、６０とを備えている。
【００２９】
ＤＭＡコントローラ５０は、スキャナユニット６より出力されるＹ，Ｍ，Ｃ，Ｋの画像データを、第１ＤＭＡ５１、第２ＤＭＡ５２、第３ＤＭＡ５３、第４ＤＭＡ５４に入力する。第５ＤＭＡ５５には、これらの画像データのステータスデータが入力される。各ＤＭＡ５１〜５５は、入力した画像データやステータスデータをＦＩＦＯメモリ５６〜６０に一次蓄積する。各ＤＭＡ５１〜５５は、ＦＩＦＯメモリ５６〜６０にデータが格納されると、タイミングコントローラ７１に転送リクエスト（ＲＥＱ）を発行する。また、各ＤＭＡ５１〜５５はタイミングコントローラ７１によって転送を許可されると、ＦＩＦＯメモリ５６〜６０からデータを読み出してＤＭＡ転送を行う。
【００３０】
調停回路７０は、図６に示すようにタイミングコントローラ７１と要求先パス制御部７２とを備えている。タイミングコントローラ７１には、ＣＰＵ１からの設定信号が入力される。タイミングコントローラ７１は、ＣＰＵ１によって設定された条件を満たすと、優先順位の高いクライアントからの転送要求をマスクし、優先順位の低いクライアントからの転送要求を優先させる。
【００３１】
本実施例では、第１ＤＭＡ５１〜第４ＤＭＡ５４が画像データを転送するクライアントとなるので、データの転送速度が速く、タイミングコントローラ７１において優先順位が高く設定されている（第１グループ）。第５ＤＭＡ５５は、画像データのステータスを転送するクライアントなので、第１ＤＭＡ５１〜第４ＤＭＡ５４よりも優先順位が低くデータの転送速度も遅く設定されている（第２グループ）。
【００３２】
ＣＰＵ１からタイミングコントローラ７１には、転送回数又は転送バイト数の設定情報が入力される。この設定情報は、優先順位の高い第１ＤＭＡ５１から第４ＤＭＡ５４に対して設定されるもので、第１ＤＭＡ５１から第４ＤＭＡ５４に共通に設定してもよいし、第１ＤＭＡ５１〜第４ＤＭＡ５４でそれぞれ異なる値を設定してもよい。タイミングコントローラ７１は、優先順位の高い第１ＤＭＡ５１〜第４ＤＭＡ５４の転送回数又は転送バイト数が、ＣＰＵ１により設定された設定条件を満たすまでは、第１ＤＭＡ５１〜第５ＤＭＡ５５からの転送要求をそのまま要求先パス制御部７２に出力する。
【００３３】
また、第１ＤＭＡ５１〜第４ＤＭＡ５４のデータ転送が、ＣＰＵ１によって設定された転送回数又は転送バイト数を満たすと、タイミングコントローラ７１は第１ＤＭＡ５１〜第４ＤＭＡ５４の転送要求をマスクし、優先順位を低く設定されている第５ＤＭＡ５５のデータ転送要求を要求先パス制御部７２に出力する。これによって、優先順位の高い第１ＤＭＡ５１〜第４ＤＭＡ５４と転送要求が重なりデータの転送ができない第５ＤＭＡ５５が、優先的にデータの転送ができるようになる。従って、第１ＤＭＡ５１〜第５ＤＭＡ５５によって転送されるデータセットが揃わないと次の処理に移行できないような場合に、効果的な転送制御となる。
【００３４】
またタイミングコントローラ７１は、優先順位の低い第５ＤＭＡ５５が転送イネーブル信号をネゲートすることで、転送の終了を検知する。タイミングコントローラ７１は転送の終了を検知すると、優先順位の高い第１ＤＭＡ５１〜第４ＤＭＡ５４までのリクエストに対するマスクを解除する。
【００３５】
要求先パス制御部７２は、バスマスタであるＣＰＵ１に対してバス使用権の要求を行い、転送要求のあったクライアント（第１ＤＭＡ５１〜第５ＤＭＡ５５）からのデータを所定の転送相手、ここではシステムバス９に接続されたメモリコントローラ３に転送する。この時のデータ転送には、固定優先順位法を用いてもよいし、ラウンドロビン法を用いてもよい。
【００３６】
次に、図７に示すタイミングチャートを参照しながら本実施例の動作を説明する。まず、優先順位の高い第１ＤＭＡ５１によってリクエスト信号（図７に示すＲｅｑ１）が調停回路７０に出力される。リクエスト信号を入力した要求先パス制御部７２は、データ転送を許可する信号（図７に示すＡｃｋ１）を第１ＤＭＡ５１に出力する。第１ＤＭＡ５１は、ＦＩＦＯメモリ５６から画像データを読み出してＤＭＡ転送を行う。この画像データは、調停回路７０、インタフェース４によってシステムバス９上に出力され、メモリコントローラ３に取り込まれてメモリ２に記録される。
【００３７】
次に、リクエスト信号を出力し、待機していた第２ＤＭＡ５２のデータ転送が要求先パス制御部７２によって許可され、メモリ２に記録される。以下、同様の手順で第３ＤＭＡ５３、第４ＤＭＡ５４のデータ転送が行われる。
【００３８】
タイミングコントローラ７１は、優先順位の高い第１ＤＭＡ５１〜第４ＤＭＡ５４のデータ転送が、ＣＰＵ１により設定された転送回数を満たした段階で（ここでは、第１ＤＭＡ５１〜第４ＤＭＡ５４がそれぞれ１回のデータ転送を行った場合）、各ＤＭＡ５１〜５４からのリクエスト信号をマスクし、要求先パス制御部７２にリクエスト信号が出力されないようにする（図７に示すマスク）。なお、図７には、第１ＤＭＡ５１に対するマスクしか図示していないが、転送回数を満たしたＤＭＡに対してそれぞれマスクを行う。
【００３９】
優先順位の高い第１ＤＭＡ５１〜第４ＤＭＡ５４が決められた回数のデータ転送を行うと、第１ＤＭＡ５１〜第４ＤＭＡ５４のリクエスト信号は、タイミングコントローラ７１によってマスクされるので、要求先パス制御部７２には、第５ＤＭＡ５５からのリクエスト信号だけが入力される（図７に示すＲｅｑ５）。要求先パス制御部７２は、第５ＤＭＡ５５に対しデータ転送を許可する信号（図７に示すＡｃｋ５）を出力し、ＦＩＦＯメモリ６０に蓄積されていたステータスデータがメモリ２に転送され記録される。
【００４０】
なお、上述した実施例は本発明の好適な実施例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【図面の簡単な説明】
【００４１】
【図１】固定優先法の優先順位を示す図である。
【図２】固定優先法の問題点を説明するための図である。
【図３】ラウンドロビン法の問題点を説明するための図である。
【図４】バッファ残量に基づいた調停方法の問題点を説明するための図である。
【図５】本発明の全体構成を示す図である。
【図６】データ転送制御装置１の構成を示す図である。
【図７】データ転送制御装置１の転送制御手順を示す図である。
【符号の説明】
【００４２】
１  ＣＰＵ                        ２  メモリ
３  メモリコントローラ            ４、７  インターフェース
５  データ転送制御装置            ６  スキャナユニット
８  画像処理ユニット              ９  システムバス
５０  ＤＭＡコントローラ          ５１  第１ＤＭＡ
５２  第２ＤＭＡ                  ５３  第３ＤＭＡ
５４  第４ＤＭＡ                  ５５  第５ＤＭＡ
５６、５７、５８、５９、６０  ＦＩＦＯメモリ
７０  調停回路                    ７１  タイミングコントローラ
７２  要求先パス制御部
【図１】
2006053613.tif 000003
【図２】
2006053613.tif 000004
【図３】
2006053613.tif 000005
【図４】
2006053613.tif 000006
【図５】
2006053613.tif 000007
【図６】
2006053613.tif 000008
【図７】
2006053613.tif 000009