(57)【特許請求の範囲】
【請求項１】
優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する調停装置であって、
前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける転送要求受付手段と、
前記複数のＤＭＡコントローラのうち、優先順位の最も高いＤＭＡコントローラにより順次発行される転送要求毎に入力されるデータの累積転送量を算出する累積転送量算出手段と、
前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する転送レート保存手段と、
前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する必要転送時間算出手段と、
前記転送要求毎に入力されるデータの転送に要する経過時間を計測する経過時間計測手段と、
前記経過時間と前記必要転送時間とを比較する比較手段と、
前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断手段と、を備え、
前記判断手段は、前記複数のＤＭＡコントローラのうち優先順位が最も高く設定されているＤＭＡコントローラからの転送要求である場合に、前記比較した結果に応じて該転送要求に対する処理の実行または待機を決定することを特徴とする調停装置。
【請求項２】
優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する調停装置であって、
前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける転送要求受付手段と、
前記複数のＤＭＡコントローラにより発行される転送要求毎に入力されるデータの累積転送量を各ＤＭＡコントローラに対して算出する累積転送量算出手段と、
前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを各ＤＭＡコントローラに対して保持する転送レート保存手段と、
前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を各ＤＭＡコントローラに対して算出する必要転送時間算出手段と、
前記転送要求毎に入力されるデータの転送に要する経過時間を計測する経過時間計測手段と、
前記経過時間と前記必要転送時間とを各ＤＭＡコントローラに対して比較する比較手段と、
前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断手段と、を備え、
前記判断手段は、前記複数のＤＭＡコントローラからの転送要求に対する前記比較手段での比較結果に応じて、前記複数のＤＭＡコントローラからの転送要求に対する処理の実行または待機を決定することを特徴とする調停装置。
【請求項３】
請求項１又は２に記載の調停装置において、
前記必要転送時間算出手段は、前記累積転送量を前記転送レートで除算することにより前記必要転送時間を得ることを特徴とする調停装置。
【請求項４】
請求項１記載の調停装置において、
前記判断手段は、前記経過時間が前記必要転送時間よりも長い場合は、優先順位が最も高く設定されているＤＭＡコントローラからの転送要求による処理を実行させ、前記経過時間が前記必要転送時間以内の場合は、当該転送要求による処理を待機させることを特徴とする調停装置。
【請求項５】
請求項４記載の調停装置において、
前記判断手段は、前記経過時間が前記必要転送時間以内の場合で、かつ優先順位が最も高く設定されているＤＭＡコントローラ以外のＤＭＡコントローラから転送要求がある場合は、その転送要求による処理を実行させることを特徴とする調停装置。
【請求項６】
請求項２記載の調停装置において、
前記判断手段は、転送要求による処理を待機させるためのウェイト要求信号を発生した後、当該転送要求による処理を完了した処理完了信号を受けたとき、前記ウェイト要求信号をネゲートすることを特徴とする調停装置。
【請求項７】
請求項２記載の調停装置において、
複数のＤＭＡコントローラの転送要求を待機させている場合、一つの待機処理が終了した際に、他にも待機させているＤＭＡコントローラの有無を判断し、ある場合にはその処理を監視しながら、他のＤＭＡコントローラからの転送要求を処理することを特徴とする調停装置。
【請求項８】
請求項１乃至７のいずれか１項に記載の調停装置を備えていることを特徴とする画像形成装置。
【請求項９】
優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する画像形成装置の調停方法であって、
前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける工程と、
前記複数のＤＭＡコントローラのうち、優先順位の最も高いＤＭＡコントローラにより順次発行される転送要求毎に入力されるデータの累積転送量を算出する工程と、
前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する工程と、
前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する工程と、
前記転送要求毎に入力されるデータの転送に要する経過時間を計測する工程と、
前記必要転送時間と前記経過時間とを比較する工程と、
前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断工程と、を備え、
前記判断工程は、前記複数のＤＭＡコントローラのうち優先順位が最も高く設定されているＤＭＡコントローラからの転送要求である場合に、前記比較した結果に応じて該転送要求に対する処理の実行または待機を決定することを特徴とする調停方法。
【請求項１０】
請求項９に記載の画像形成装置の調停方法における各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先順位の異なる複数のＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ、ＤＭＡコントローラ）からの転送要求を調停する調停装置（アービタ）、画像形成装置、調停方法及びプログラムに関し、より詳しくは、優先順位の高いＤＭＡＣからの転送要求を適宜制限することにより、システム全体のパフォーマンスを向上させるようにした調停装置、画像形成装置、調停方法及びプログラムに関する。
【背景技術】
【０００２】
従来、ＣＰＵと複数のモジュールとを備えたシステムにおいて、それらのモジュールとＣＰＵバス上のメモリとの間などのデータ転送を高速で行う手法として、ＣＰＵの介入なしでデータ転送を行うＤＭＡ転送が知られている。各モジュールはＤＭＡ転送を行う際、ＤＭＡＣがアービタに対し転送要求（リクエスト）を発行し、アービタから転送許可を受けた後に、メモリに対する転送（リード又はライト）を行う。このとき、複数のＤＭＡＣの転送要求が競合した場合、アービタは予め設定されている優先順位に基づいて転送順序を決定する（特許文献１参照）。
【０００３】
このような、複数のモジュールとＣＰＵバス上のメモリ間でＤＭＡ転送を行うシステムとして、文献に記載されたものではないが、図８に示すマルチファンクションプリンタ（以下、ＭＦＰと言う）がある。
【０００４】
このＭＦＰは、ＡＳＩＣ（Application Specific Integrated Circuit：特定用途向けＩＣ）１と、ＣＰＵ２と、メモリ３と、スキャナ４とを備えている。ＡＳＩＣ１とＣＰＵ２とはＰＣＩ  Express  Ｉ／Ｆ（インタフェース）５により接続され、ＣＰＵ２とメモリ３とはＤＤＲ（Double Data Rate）２  Ｉ／Ｆ６により接続されている。
【０００５】
第１の画像処理モジュール11は、スキャナ４から入力された画像データに対し、シェーディング補正、ライン間補正などの補正処理を施す機能を有する。また、補正処理後の画像データをメモリ３に書き込むための制御を行う第１のライトＤＭＡＣ（ＷＤＭＡＣ１）15を備えている。
【０００６】
第２の画像処理モジュール12は、メモリ３から読み出された画像データに対し、変倍処理、階調処理などの画像処理を施す機能を有する。また、メモリ３から画像データを読み出すための第１のリードＤＭＡＣ（ＲＤＭＡＣ１）16、画像処理を施した画像データをメモリに書き込むための第２のライトＤＭＡＣ（ＲＤＭＡＣ２）17を備えている。
【０００７】
アービタ13は、第１及び第２のライトＤＭＡＣ15及び17、並びに第１のリードＤＭＡＣ16からの転送要求を調停する。アービタ13から転送の許可を受けたＤＭＡＣは、アービタ13、ＰＣＩ  Express  ＥＮＤＰ（エンドポイント）14、ＰＣＩ  Express  Ｉ／Ｆ５、及びＤＤＲ２  Ｉ／Ｆ６を介してメモリ３にアクセスする（ＣＰＵ２は介在しない）。
【０００８】
このＭＦＰによれば、スキャナ４からＡＳＩＣ１の第１の画像処理モジュール11に入力された画像データを第１のライトＤＭＡＣ15により一旦メモリ３に書き込み、その後、第１のリードＤＭＡＣ16によりメモリ３から読み出し、第２の画像処理モジュール12で画像処理を行い、第２のライトＤＭＡＣ17により再びメモリ３に書き込むことにより、スキャナ入力と、画像処理の速度差を吸収することができるように構成されている。この構成により、例えば拡大変倍時など、入力データ数に対して処理するデータ数が多くなる場合、スキャナ４からの入力に対し、拡大変倍処理が間に合わなくなり、システムが破綻してしまう事態を防止することができる。
【０００９】
図９は、図８に示す第１及び第２のライトＤＭＡＣ15及び17、並びに第１のリードＤＭＡＣ16の動作に関連して、アービタ13とＰＣＩ  Express  ＥＮＤＰ14との間を流れるデータを示すタイミングチャートの一例である。ここで、３つのＤＭＡＣの優先順位は、第１のライトＤＭＡＣ15が一位、第１のリードＤＭＡＣ16が二位、第２のライトＤＭＡＣ17が三位である。
【００１０】
第１のライトＤＭＡＣ15は、スキャナ４から第１の画像処理モジュール11に入力され、そこで処理された１ライン分の18ブロックの画像データ（W1〜W18）をメモリ３に転送するとき、個々の画像データの先頭のタイミングでアービタ13に転送要求を送出し、直ちに画像データを送出する。アービタ13は優先順位が一位である第１のライトＤＭＡＣ15からの転送要求を６回続けて処理した後、優先順位が二位である第１のリードＤＭＡＣ16の転送要求を２回続けて処理する（R1，R2）。第１のリードＤＭＡＣ16の転送要求の処理により、メモリ３から画像データC1，C2が読み出される。転送要求のタイミングと、画像データが転送されるタイミングとの間には、遅延（Read Delay）がある。このため、第１のライトＤＭＡＣ15が画像データW9，W10を書き込んでいるときと、第１のリードＤＭＡＣ16が画像データC1，C2を読み出しているときとが重なっており、この重複期間はＰＣＩ  Express  Ｉ／Ｆ５上の双方向に画像データが流れる。
【００１１】
以上の処理を繰り返し、第１のライトＤＭＡＣ15が１ライン分の画像データの転送を終了した後に、優先順位が三位である第２のライトＤＭＡＣ17からの転送要求を許可する。
【００１２】
しかしながら、図９に示すタイミングチャートの場合、スキャナ４の１ライン時間（図のlsync期間）より短時間で第１のＷＤＭＡＣ15は１ライン分の画像データ（W1〜W18）をメモリ３に転送しているのに対し、第１のリードＤＭＡＣ16は略半分しか転送していないし、第２のライトＤＭＡＣ17は1/3しか転送していない。つまり、第１のＷＤＭＡＣ15のパフォーマンスが必要以上に高い反面、他のＤＭＡＣのパフォーマンスが不十分である。
【００１３】
そこで、第１のリードＤＭＡＣ16の優先順位を上げることが考えられる。しかし、これには以下の問題がある。ライトＤＭＡＣとリードＤＭＡＣの動作を比較すると、リードＤＭＡＣは転送要求が受け付けられてからその応答（画像データ）が返ってくるまでのレイテンシ（遅延）が大きい。このため、第１のリードＤＭＡＣ16の優先順位を上げたとしても、第１のリードＤＭＡＣ16の転送要求を処理する間に隙間なく第１のライトＤＭＡＣ15から転送要求が発行されるため、第１のライトＤＭＡＣ15の転送要求を処理する回数が増加し、必要以上のパフォーマンスとなってしまう。また、第１のライトＤＭＡＣ15の転送
要求の処理を終了してから第１のリードＤＭＡＣ16の転送要求を受け付けるという動作になってしまうため、結果的に要求するパフォーマンスを満たせない状況になってしまう。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明は、このような問題を解決するためになされたものであり、その目的は、優先順位の異なる複数のＤＭＡＣからの転送要求を調停するときに、システム全体のパフォーマンスを向上させることである。
【課題を解決するための手段】
【００１５】
本願の第１の発明は、優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する調停装置であって、前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける転送要求受付手段と、前記複数のＤＭＡコントローラのうち、優先順位の最も高いＤＭＡコントローラにより順次発行される転送要求毎に入力されるデータの累積転送量を算出する累積転送量算出手段と、前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する転送レート保存手段と、前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する必要転送時間算出手段と、前記転送要求毎に入力されるデータの転送に要する経過時間を計測する経過時間計測手段と、前記経過時間と前記必要転送時間とを比較する比較手段と、前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断手段と、を備え、前記判断手段は、前記複数のＤＭＡコントローラのうち優先順位が最も高く設定されているＤＭＡコントローラからの転送要求である場合に、前記比較した結果に応じて該転送要求に対する処理の実行または待機を決定することを特徴とする。
本願の第２の発明は、優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する調停装置であって、前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける転送要求受付手段と、前記複数のＤＭＡコントローラにより発行される転送要求毎に入力されるデータの累積転送量を各ＤＭＡコントローラに対して算出する累積転送量算出手段と、前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを各ＤＭＡコントローラに対して保持する転送レート保存手段と、前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を各ＤＭＡコントローラに対して算出する必要転送時間算出手段と、前記転送要求毎に入力されるデータの転送に要する経過時間を計測する経過時間計測手段と、前記経過時間と前記必要転送時間とを各ＤＭＡコントローラに対して比較する比較手段と、前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断手段と、を備え、前記判断手段は、前記複数のＤＭＡコントローラからの転送要求に対する前記比較手段での比較結果に応じて、前記複数のＤＭＡコントローラからの転送要求に対する処理の実行または待機を決定することを特徴とする。
本願の第３の発明は、優先順位の異なる複数のＤＭＡコントローラからの転送要求を調停する画像形成装置の調停方法であって、前記複数のＤＭＡコントローラにより発行される転送要求を受け付ける工程と、前記複数のＤＭＡコントローラのうち、優先順位の最も高いＤＭＡコントローラにより順次発行される転送要求毎に入力されるデータの累積転送量を算出する工程と、前記累積転送量に対応するデータを所定時間内に転送完了するために必要な転送レートを保持する工程と、前記累積転送量および前記転送レートに基づいて、前記累積転送量に対応するデータを転送するための必要転送時間を算出する工程と、前記転送要求毎に入力されるデータの転送に要する経過時間を計測する工程と、前記必要転送時間と前記経過時間とを比較する工程と、前記複数のＤＭＡコントローラからの転送要求に対する対応を判断する判断工程と、を備え、前記判断工程は、前記複数のＤＭＡコントローラのうち優先順位が最も高く設定されているＤＭＡコントローラからの転送要求である場合に、前記比較した結果に応じて該転送要求に対する処理の実行または待機を決定することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、優先順位の異なる複数のＤＭＡＣからの転送要求を調停するときに、優先順位の高いＤＭＡＣからの転送要求を適宜制限することにより、システム全体のパフォーマンスを向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第１の実施形態のＭＦＰにおけるアービタの構成を示すブロック図である。
【図２】図１の必要転送時間計算部の内部構成を示すブロック図である。
【図３】本発明の第１の実施形態のアービタの動作を示すフローチャートである。
【図４】本発明の第１の実施形態のアービタの動作を示すタイミングチャートである。
【図５】本発明の第１の実施形態のアービタの動作を示す別のタイミングチャートである。
【図６】本発明の第２の実施形態のＭＦＰにおけるアービタの構成を示すブロック図である。
【図７】本発明の第２の実施形態のアービタの動作を示すフローチャートである。
【図８】従来のＭＦＰの構成を示すブロック図である。
【図９】図８におけるアービタの動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態について図面を参照しながら説明する。
［第１の実施形態］
図１は本発明の第１の実施形態のＭＦＰにおけるアービタの構成を示すブロック図である。本実施形態のＭＦＰの全体の構成は図８と同じであり、アービタ113は図８に示すアービタ13と同様、ＭＦＰ内のＡＳＩＣ１内に設けられている。
【００１９】
アービタ113は、必要転送時間計算部121及びリクエスト調停部122を備えている。必要転送時間計算部121には、第１のライトＤＭＡＣ15から、転送要求発行時にデータのバースト長が入力される。また、ラインスタート信号、及びラインエンド信号が入力される。さらに、必要転送レート保持部123から必要転送レート情報Raが入力される。バースト長及び必要転送レートはシステムを検討した段階で、予め分かっている必要がある値である。リクエスト調停部122には、第１のライトＤＭＡＣ15及び第２のライトＤＭＡＣ17並びに第１のリードＤＭＡＣ16から転送要求が入力され、必要転送時間計算部121からウェイト要求信号が入力される。ここで、３つのＤＭＡＣの優先順位は、第１のライトＤＭＡＣ15が一位、第１のリードＤＭＡＣ16が二位、第２のライトＤＭＡＣ17が三位である。
【００２０】
必要転送レート保持部123はＡＳＩＣ１内に設けられている。必要転送レート情報Raは、第１のリードＤＭＡＣ15が必ずデータ転送を完了しなければならない時間であるlsync期間の80％程度に設定する。若しくは一回の転送要求で処理する時間の最大値を加味した値を設定することが望ましい。その理由は、第１のリードＤＭＡＣ15からの１ライン内の最後の転送要求に対して、後述するウェイト処理を行った場合でも、lsync期間を超えることなく転送を完了させるためである。
【００２１】
図２は、図１の必要転送時間計算部121の内部構成を示すブロック図である。必要転送時間計算部121は、必要転送時間T2演算部及び時間比較部1211、タイマー1212、並びにウェイト要求信号生成部1213を備えている。
【００２２】
タイマー1212にはラインスタート信号及びラインエンド信号が入力される。そして、ラインスタート信号により起動され、ラインエンド信号によりリセットされるまでの間、ラインスタート信号からの経過時間T1をカウント（計測）する。
【００２３】
必要転送時間T2演算部及び時間比較部1211には、バースト長BL及び経過時間T1が入力される。必要転送時間T2演算部及び時間比較部1211は、第１のライトＤＭＡＣ15とアービタ113との間のバス幅DWの情報を保持している。
【００２４】
必要転送時間T2演算部及び時間比較部1211は以下のように動作する。
転送要求の発行時に受け取ったバースト長BLと、保持しているバス幅DWとに基づいて、まず下記式［１］により転送データ量BW(k)を算出する。この式において、kは１ライン内の転送要求の順番を示す。
BW(k)＝BL(k)×DW・・・式［１］
【００２５】
次いでこの転送データ量BW(k)を１ライン内で転送要求毎に累積し、下記式［２］に示す累積転送量BW’(n)を算出する。
BW’(n) ＝BW(1)＋BW(2)＋・・・BW(n)・・・式［２］
【００２６】
次に下記式［３］により、累積転送量BW’(n)のデータ転送が完了していなければならない時間である必要転送時間T2を算出する。
T2＝BW’(n)／Ra・・・式［３］
【００２７】
次いで必要転送時間T2と経過時間T1とを比較し、その長短関係をウェイト要求信号生成部1213に出力する。
【００２８】
ウェイト要求信号生成部1213は、T1の方がT2より長ければ、T1とT2が等しくなるまで、第１のライトＤＭＡＣ15からの転送要求に対して、ウェイト要求信号をアサートし、リクエスト調停部122へ出力する。リクエスト調停部122は、ウェイト要求信号がアサートされている間は、第１のライトＤＭＡＣ15からの転送要求に対してウェイト処理（転送要求の発行を制限する）を実行する。
【００２９】
次にアービタ113の動作について、図３に示すフローチャートを参照しながら説明する。
データ転送が開始されると、図３のステップST1にて、リクエスト調停部122がリクエスト（転送要求）を受け付ける。次いで、ステップST2にて、リクエスト調停部122は優先順位が一位である第１のライトＤＭＡＣ15からのリクエストの有無を判断し、ある場合は（ST2：Yes）、ステップST3にて、必要転送時間計算部121が必要転送時間T2を算出する。ここで、リクエスト調停部122は、各ＤＭＡＣから転送要求時に送出されるＤＭＡＣＩＤ等から、ステップST2の判断が可能である。
【００３０】
次にステップST4にて、必要転送時間計算部121は、経過時間T1が必要転送時間T2より長いか否かを判断し、長い場合は（ST4：Yes）、ステップST7にて、リクエスト調停部122は第１のライトＤＭＡＣ15からのリクエストを処理する。
【００３１】
一方、経過時間T1が必要転送時間T2以内の場合は（ST4：No）、ステップST5にて、その他のＤＭＡＣ（ここでは第１のリードＤＭＡＣ16、第２のライトＤＭＡＣ17）からのリクエストの有無を判断する。そして、ある場合は（ST5：Yes）、ステップST6にてその他のＤＭＡＣからのリクエストを処理した後にステップST4に戻る。ない場合は（ST5：No）、ステップST7にて第１のライトＤＭＡＣ15からのリクエストを処理する。
【００３２】
第１のライトＤＭＡＣ15からのリクエストの有無を判断し、ない場合は（ST2：No）、リクエストを発行した第１のリードＤＭＡＣ16又は第２のライトＤＭＡＣ17に対して、通常のアービトレーション及びリクエスト処理を行う（ステップST8）。
【００３３】
ステップST9で全データの転送が完了したと判断するまで、以上の処理を繰り返す。
【００３４】
以上説明した図３のフローチャートの処理を要約すると以下のようになる。
ＤＭＡＣからリクエストが発行されると、アービタ113は、どのＤＭＡＣからのリクエストであるかを判断する。判断の結果、第１のライトＤＭＡＣ15からのリクエストでなければ、通常のアービトレーション及びリクエスト処理を行う。第１のライトＤＭＡＣ15からのリクエストであった場合は必要転送時間T2を算出する。そして、現在のラインのスタートからの経過時間T1と比較し、T1の方がT2よりも長い場合は、そのまま第１のライトＤＭＡＣ15からのリクエストを処理する。T2の方が長い場合は、その間は他のＤＭＡＣからのリクエストがあればそれを優先して処理し、なければ第１のライトＤＭＡＣ15からのリクエストを処理し、全データの転送が完了していれば終了、そうでなければ次のリクエストを待つ。
【００３５】
次に図４に示すタイミングチャートに基づいて説明する。
第１のライトＤＭＡＣ15は、１ライン分の18ブロックの画像データ（W1〜W18）をメモリ３に転送するとき、個々の画像データの先頭のタイミングでアービタ113に転送要求を発行する。画像データW1〜W4のそれぞれの転送要求を受け付けた時点では、他のＤＭＡＣからの転送要求がないため、図３のステップST7により、第１のライトＤＭＡＣ15からの処理（画像データW1〜W4の転送）を実行する。
【００３６】
画像データW５の転送要求を受け付けた時点では、第１のリードＤＭＡＣ16も転送要求R1を発行している。このとき、T1がT2より短いため、ステップST4：No →ST5：Yes→ST6と進み、第１のリードＤＭＡＣ16の転送要求を処理し、第１のライトＤＭＡＣ15からの画像データW5の転送要求は待機させる。同様にして、第１のリードＤＭＡＣ16からの転送要求R2を処理する。これにより、メモリ３から画像データC1，C2が読み出される。
【００３７】
次の転送要求R3を受け付けた時点では、第１のライトＤＭＡＣ15からの画像データW5の転送要求を待機させ続けた結果、T1がT2以上となったため、ステップST4：Yes →ST7と進み、第１のライトＤＭＡＣ15からの画像データW5の転送要求を処理し、第１のリードＤＭＡＣ16からの転送要求R3は待機させる。同様にして、第１のライトＤＭＡＣ15からの画像データW6〜W8の転送要求を処理する。そして、画像データW8の転送が完了すると、ステップST2：No →ST8と進み、第１のリードＤＭＡＣ16からの転送要求R3を処理する。
【００３８】
その後、第１のリードＤＭＡＣ16からの転送要求R4の処理が完了した時点で、第１のライトＤＭＡＣ15からの画像データW9の転送要求が発行される。以後、アービタ113は、第１のライトＤＭＡＣ15及び第１のリードＤＭＡＣ16からの転送要求の有無、及びT1とT2との長短関係に応じて、第１のライトＤＭＡＣ15及び第１のリードＤＭＡＣ16からの転送要求の一方を処理するときは他方を待機させる処理を行う。
【００３９】
第１のライトＤＭＡＣ15が１ライン分の画像データW1〜W18の転送を完了すると、1sync時間の終わり（ラインエンド信号のタイミング）までは、第１のライトＤＭＡＣ15は転送要求を発行しない。1sync時間の終わりから、第２のライトＤＭＡＣ17の転送要求の処理を開始するとともに、引き続き第１のリードＤＭＡＣ16からの転送要求を処理する。
【００４０】
図５は、図４のタイミングチャートに示されているデータをアービタ113とＰＣＩ  Express  ＥＮＤＰ14との間で見た場合、即ち図９に対応するタイミングチャートを示している。
【００４１】
図５に示すように、本実施形態では、優先順位が一位である第１のライトＤＭＡＣ15からの転送要求を４回続けて処理した後、優先順位が二位である第１のリードＤＭＡＣ16の転送要求を２回続けて処理する。このため、第１のライトＤＭＡＣ15が１ライン分の画像データW1〜W18の転送を完了するタイミングは図９の場合より遅れる。しかし、第１のリードＤＭＡＣ16及び第２のライトＤＭＡＣ17からの転送要求に対しては、1sync時間の終わりの時点にて、本実施形態の方がより多くのデータの転送を完了していることが分かる。
【００４２】
つまり、本実施形態は、優先順位が最高である第１のライトＤＭＡＣ15の転送要求に適宜制限をかけることにより、第１のライトＤＭＡＣ15のパフォーマンスが過剰となることを防止するとともに、第１のリードＤＭＡＣ16及び第２のライトＤＭＡＣ17のパフォーマンスを向上させ、その結果、システム全体のパフォーマンスを向上させている。
【００４３】
以上のように、本発明の第１の実施形態のアービタ113は、下記（１）、（２）の効果を有する。
（１）必要転送時間計算部121と必要転送レート保持部123とを持つことによって、優先度の最も高い第１のライトＤＭＡＣ15からのデータの転送状況を把握し、適宜ウェイト要求を発生させることが可能である。
（２）優先順位の最も高い第１のライトＤＭＡＣ15からの厳守しなければならないデータ転送量は間違いなく転送しつつ、他のＤＭＡＣからのリクエストも処理可能にすることによって、全体としてのデータ転送量を増加させ効率的なデータ転送が可能となる。
【００４４】
［第２の実施形態］
図６は本発明の第２の実施形態のＭＦＰにおけるアービタの構成を示すブロック図である。本実施形態のＭＦＰの全体の構成は図９と同じであり、アービタ213は図９に示すアービタ13と同様、ＭＦＰ内のＡＳＩＣ１内に設けられている。
【００４５】
アービタ213は、第１の必要転送時間計算部（必要転送時間計算部１）2211、第２の必要転送時間計算部（必要転送時間計算部２）2212、第３の必要転送時間計算部（必要転送時間計算部３）2213、及びリクエスト調停部222を備えている。
【００４６】
第１の必要転送時間計算部2211には、第１のライトＤＭＡＣ15から、転送要求発行時にデータの第１のバースト長（バースト長１）が入力される。また、ラインスタート信号、及びラインエンド信号が入力される。さらに、必要転送レート保持部123から必要転送レート情報Ra1が入力される。同様に第２の必要転送時間計算部2212には、第１のリードＤＭＡＣ16から、データの第２のバースト長（バースト長２）、ラインスタート信号、及びラインエンド信号が入力され、必要転送レート保持部123から必要転送レート情報Ra2が入力される。また、第３の必要転送時間計算部2213には、第２のライトＤＭＡＣ17から、データの第３のバースト長（バースト長３）、ラインスタート信号、及びラインエンド信号が入力され、必要転送レート保持部123から必要転送レート情報Ra3が入力される。
【００４７】
リクエスト調停部222には、第１のライトＤＭＡＣ15及び第２のライトＤＭＡＣ17並びに第１のリードＤＭＡＣ16から転送要求が入力される。また、第１の必要転送時間計算部2211、第２の必要転送時間計算部2212、及び第３の必要転送時間計算部2213から、それぞれ第１のウェイト要求信号（ウェイト要求信号１）S1、第２のウェイト要求信号（ウェイト要求信号２）S2、及び第３のウェイト要求信号（ウェイト要求信号３）S3が入力される。さらに、第１の必要転送時間計算部2211、第２の必要転送時間計算部2212、及び第３の必要転送時間計算部2213に対し、それぞれ第１のリクエスト処理完了信号（リクエスト処理完了信号１）S4、第２のリクエスト処理完了信号（リクエスト処理完了信号２）S5、及び第３のリクエスト処理完了信号（リクエスト処理完了信号３）S6を送出する。
【００４８】
ここで、第１の必要転送時間計算部2211、第２の必要転送時間計算部2212、及び第３の必要転送時間計算部2213は、それぞれ第１の実施形態における必要転送時間計算部121と同様な構成を有しており、それぞれ式［１］〜［３］と同様な式を用いて、それぞれ必要転送時間T21、T22、T23を算出する。
【００４９】
つまり、第１の実施形態のアービタ113では第１のライトＤＭＡＣ15に対してのみ必要転送時間計算部を設けたが、本実施形態では全てのＤＭＡＣに対して必要転送時間計算部を設け、各ＤＭＡＣに対する必要転送時間計算部に必要な転送レート情報Ra1、Ra2、Ra3を供給し、各ＤＭＡＣが必要転送レートを守ることができるようにアービトレーションを実施する。
【００５０】
ここでも、第１の実施形態と同じく、３つのＤＭＡＣの優先順位は、第１のライトＤＭＡＣ15が一位、第１のリードＤＭＡＣ16が二位、第２のライトＤＭＡＣ17が三位である。そして、各ＤＭＡＣに対して転送レートを計算し、それが必要転送レートを超えていた場合には、各ＤＭＡＣに対してウェイト要求信号をアサート可能である。
【００５１】
次にアービタ213の動作について、図７に示すフローチャートを参照しながら説明する。
まずステップST11にて、リクエスト調停部222がリクエストを受け付ける。次いで、ステップST12にて、リクエスト調停部122は優先順位が一位である第１のライトＤＭＡＣ15からのリクエストの有無を判断し、ある場合は（ST12：Yes）、ステップST13にて、第１の必要転送時間計算部2211が必要転送時間T21を算出する。
【００５２】
次にステップST14にて、第１の必要転送時間計算部2211は、経過時間T1が必要転送時間T21より長いか否かを判断し、長い場合は（ST14：Yes）、ステップST16にて、リクエスト調停部222が第１のライトＤＭＡＣ15からのリクエストを処理する。
【００５３】
一方、経過時間T1が必要転送時間T21以内の場合は（ST14：No）、ステップST15にて、その他のＤＭＡＣからのリクエストの有無を判断する。そして、ない場合は（ST15：No）、ステップST16にて、第１のライトＤＭＡＣ15からのリクエストを処理する。
【００５４】
一方、その他のＤＭＡＣからのリクエストがある場合は（ST15：Yes）、ステップST19に進んで、優先順位が二位である第１のリードＤＭＡＣ16からのリクエストの有無を判断する。先のステップST12にて、第１のライトＤＭＡＣ15からのリクエストがないと判断した場合も（ST12：No）、ステップST19を実行する。
【００５５】
そして、第１のリードＤＭＡＣ16からのリクエストが有ると判断した場合は、ステップST20にて、第２の必要転送時間計算部2212が必要転送時間T22を算出する。次にステップST21にて、第２の必要転送時間計算部2211は、経過時間T1が必要転送時間T22より長いか否かを判断し、長い場合は（ST21：Yes）、ステップST22にて、リクエスト調停部222は第１のリードＤＭＡＣ16からのリクエストを処理する。
【００５６】
一方、経過時間T1が必要転送時間T22以内の場合は（ST21：No）、ステップST23にて、経過時間T1が必要転送時間T21より長いか否かを判断する。判断の結果、長い場合はステップST16に進んで、第１のライトＤＭＡＣ15からのリクエストを処理する。また、長くない場合は、ステップST24にてその他（第１のライトＤＭＡＣ15及び第１のリードＤＭＡＣ16以外）のＤＭＡＣからのリクエストの有無を判断する。判断の結果、ない場合は（ST24：No）、ステップST22にて第１のリードＤＭＡＣ16からのリクエストを処理する。
【００５７】
その他のＤＭＡＣからのリクエストがある場合は（ST24：Yes）、ステップST25に進んで、優先順位が三位である第２のライトＤＭＡＣ17に対して設けた第３の必要転送時間計算部2213が必要転送時間T23を算出する。先のステップST19にて、第１のリードＤＭＡＣ16からのリクエストがないと判断した場合も（ST19：No）、ステップST25を実行する。
【００５８】
次にステップST26にて、第３の必要転送時間計算部2213は、経過時間T1が必要転送時間T23より長いか否かを判断し、長い場合は（ST26：Yes）、ステップST27にて、リクエスト調停部222が第２のライトＤＭＡＣ17からのリクエストを処理する。
【００５９】
一方、経過時間T1が必要転送時間T23以内の場合は（ST26：No）、ステップST28にて、経過時間T1が必要転送時間T21より長いか否かを判断する。そして、長い場合は、ステップST16に進んで、第１のライトＤＭＡＣ15からのリクエストを処理する。また、長くない場合は、ステップST29にて、経過時間T1が必要転送時間T22より長いか否かを判断する。そして、長い場合は、ステップST22に進んで、第１のリードＤＭＡＣ16からのリクエストを処理する。
【００６０】
第１のライトＤＭＡＣ15からのリクエストの処理（ステップST16）、第１のリードＤＭＡＣ16からのリクエストの処理（ステップST22）、或いは第２のライトＤＭＡＣ17からのリクエストの処理（ステップST27）を実行した後、ステップST17で、待機させている（ウェイト処理中）リクエストの有無を判断し、なければ、ステップST18で全データの転送が完了したと判断するまで、ステップST11から繰り返す。
【００６１】
待機させているリクエストがある場合は（ST17：Yes）、それが第１のライトＤＭＡＣ15からのリクエストであれば（ST30：Yes）、ステップST14に進み、第１のライトＤＭＡＣ15ではなく第１のリードＤＭＡＣ16からのリクエストであれば（ST30：No→ST31：Yes）、ステップST21に進む。
【００６２】
以上説明した図７のフローチャートの処理を要約すると以下のようになる。
ＤＭＡＣからリクエストが発行されると、アービタ213は、まず第１のライトＤＭＡＣ15からのリクエストか否かを判断する。判断の結果、そうであった場合は必要転送時間T2を算出する。そして、T2を現在のラインのスタートからの経過時間T1と比較し、T1の方がT2よりも長い場合は、そのまま第１のライトＤＭＡＣ15からのリクエストを処理する。T2の方が長い場合は、その間は他のＤＭＡＣからのリクエストがあればそれを優先して処理し、なければ第１のライトＤＭＡＣ15からのリクエストを処理し、全データの転送が完了していれば終了、そうでなければ次のリクエストを待つ。
【００６３】
リクエストの発行元が第１のライトＤＭＡＣ15でなかった場合は、優先順位が次に高い第１のリードＤＭＡＣ16が発行元か否かを判断し、そうであれば第１のライトＤＭＡＣ15と同様な必要転送時間を計算し、ウェイトが必要であればウェイト処理を行う。リクエストの発行元が第１のリードＤＭＡＣ16でなかった場合は、残りは第２のライトＤＭＡＣ17のみであるから、第２のライトＤＭＡＣ17について同様の計算を実行する。
【００６４】
第１のライトＤＭＡＣ15に対するウェイト処理中に、他のＤＭＡＣからのリクエストが発行された場合は、「第１のリードＤＭＡＣ16からの処理か否か」の判定処理に移る。そこからは必要転送時間の計算となり、第１のリードＤＭＡＣ16でウェイト処理が必要と判断され、それが実行されると、第１のライトＤＭＡＣ15のウェイト時間が経過していないか否かを確認する処理を実行する。確認の結果、ウェイト期間が終了しているか若しくは他のＤＭＡＣからのリクエストがなければ、第１のライトＤＭＡＣ15からのリクエストを処理する。
【００６５】
この処理が終了すると、他にウェイト中のＤＭＡＣがないかどうかを判別する処理を行う。この判別はウェイト要求信号（“１”でウェイト要求有り）に基づいて行うことができる。各ＤＭＡＣに対するウェイト要求信号の論理を確認し、ウェイト中のＤＭＡＣがあれば、そのリクエストの処理に移る。ウェイト中のＤＭＡＣがなければ、全データ転送完了か否かを判断し、完了していれば終了、そうでなければ次のリクエストの受け付けへと移る。ウェイト要求信号は一旦アサートされると、そのリクエストが処理されるまでネゲートされない。リクエストが処理されると、リクエスト調停部222よりリクエスト処理完了信号がアサートされ、それを受けてウェイト要求信号がネゲートされる。
【００６６】
以上のように、本発明の第２の実施形態のアービタ113は、下記（１）〜（４）の効果を有する。
（１）全てのＤＭＡＣに対して、データ転送状況を把握できるとともに、適宜ウェイト要求を発生させることができる。
（２）全てのＤＭＡＣのデータ転送量を監視しながらアービトレーションすることによって、より精度よく効率的にデータ転送を行うことができる。
（３）ウェイト処理中のＤＭＡＣを放置することなく、確実に処理することができる。
（４）複数のＤＭＡＣに対してウェイト状態にあっても、正常に監視し、かつ確実にリクエストを処理することができる。
【符号の説明】
【００６７】
15・・・第１のライトＤＭＡＣ、16・・・第１のリードＤＭＡＣ、17・・・第２のライトＤＭＡＣ、113，213・・・アービタ、121・・・必要転送時間計算部、122，222・・・リクエスト調停部、123，223・・・必要転送レート保持部、1211，2211，2212，2213・・・必要転送時間T2演算部及び時間比較部、1212・・・タイマー、1213・・・ウェイト要求信号生成部。
【先行技術文献】
【特許文献】
【００６８】
【特許文献１】特開平７−１３９２３号公報
【図１】
0005424138.tif 000002
【図２】
0005424138.tif 000003
【図３】
0005424138.tif 000004
【図４】
0005424138.tif 000005
【図５】
0005424138.tif 000006
【図６】
0005424138.tif 000007
【図７】
0005424138.tif 000008
【図８】
0005424138.tif 000009
【図９】
0005424138.tif 000010