(57)【要約】【課題】本発明は、スプリット・トランザクション型バスを採用する画像処理装置において、転送レートの保証値を最大化することを目的とする。【解決手段】本発明の画像処理装置は、階層化された複数のレジスタを含むバス権調停用レジスタと、レジスタを参照してバス権を調停するバスアービタとを含み、レジスタの各フィールドには、デバイスを示す値および下位の階層を示す値の少なくとも一方が格納され、レジスタのポインタは、レジスタが参照されるたびに循環的にシフトする。バスアービタは、最初に最上位階層のレジスタを参照し、参照先のポインタが階層を示す場合、その階層のレジスタを参照し、参照先のポインタがデバイスを示し、且つ、当該デバイスからバス権の要求があった場合に、当該デバイスに対してバス権を付与する。【選択図】図３
2013239048.tif 000002
【特許請求の範囲】
【請求項１】
階層化された複数のレジスタを含むバス権調停用レジスタと、
前記レジスタを参照してバス権を調停するバスアービタと
を含み、
前記レジスタの各フィールドには、デバイスを示す値および該レジスタの階層より一つ下位の階層を示す値の少なくとも一方が格納され、
前記レジスタのポインタは、該レジスタが参照されるたびに循環的にシフトし、
前記バスアービタは、
最初に最上位階層の前記レジスタを参照し、
参照先の前記レジスタのポインタが示すフィールドの値が前記階層を示す値であった場合に、該値が示す階層のレジスタを参照し、
参照先の前記レジスタのポインタが示すフィールドの値が前記デバイスを示す値であり、且つ、該デバイスからバス権の要求があった場合に、該デバイスに対してバス権を付与する、
画像処理装置。
【請求項２】
前記バス権は、スピリット・トランザクション型バスのバス権である、請求項１に記載の画像処理装置。
【請求項３】
前記スピリット・トランザクション型バスは、PCI Express規格のシリアルバスである、請求項２に記載の画像処理装置。
【請求項４】
前記バス権調停用レジスタは、代替先決定用レジスタを含み、
前記バスアービタは、
参照先の前記レジスタのポインタが示すフィールドの値が前記デバイスを示す値であり、且つ、該デバイスからバス権の要求がない場合に、前記代替先決定用レジスタのポインタが示すデバイスに対してバス権を付与する、請求項１〜３のいずれか一項に記載の画像処理装置。
【請求項５】
前記バス権調停用レジスタは、リード・アクセス用のレジスタとライト・アクセス用のレジスタを別個に備える、請求項１〜４のいずれか一項に記載の画像処理装置。
【請求項６】
各前記デバイスにつき、該デバイスを示す値が格納される前記レジスタの階層および該レジスタにおける格納回数を設定するための第１のレジスタを備える調停レート設定用レジスタをさらに含み、
前記バス権調停用レジスタは、前記第１のレジスタに設定された内容に基づいて生成される、請求項１〜５のいずれか一項に記載の画像処理装置。
【請求項７】
前記調停レート設定用レジスタは、さらに、各前記階層につき、該階層のレジスタに該階層より一つ下位の階層を示す値が格納される回数を設定するための第２のレジスタを備え、
前記バス権調停用レジスタは、前記第１のレジスタおよび前記第２のレジスタに設定された内容に基づいて生成される、請求項６に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
デジタル複合機（ＭＦＰ：Multi Function Peripheral）等の画像処理装置が備える画像処理用ＡＳＩＣには複数のデバイスが搭載されており、これらのデバイスのメモリ・アクセスは競合する。各デバイスは、メモリ・アクセスが必要となった時点で、ＡＳＩＣ内のバス権調停手段に対してメモリ・バス権の要求を発行し、これを受けてバス権調停手段は、予め決められた優先順位に従って各デバイスにバス権を付与する。
【０００３】
一方、ＭＦＰに代表される、高速・高画質の画像形成が要求される画像処理装置においては、画像処理に関与するデバイス間で所定周期内に大量のデータを転送する必要があり、それが出来ない場合は異常画像が発生する。この点につき、近年、十分な転送レートを確保する必要があるデバイス間のインターフェースとしてPCI Express（登録商標）規格の高速シリアルバスを採用する画像処理装置が提供されている。
【０００４】
ここで、スキャナ・データ／プロッタ・データ入出力用のＤＭＡＣのように、画像の品質に直結するデバイスに関しては、高い転送レートを保証する必要があるため、バス権調停において、これらのデバイスの優先順位を高く設定することになるが、トータルのメモリ・アクセス・レートの上限値は決まっているため、転送レートの保証値（最悪値）はいきおい低くならざるを得ない。
【０００５】
この問題は、PCI Express（登録商標）のように要求コマンドとそれに対する応答とが分離されているスプリット・トランザクション型バスを採用する装置において特に深刻となる。すなわち、スプリット・トランザクション型バスにおいては、高い発行レートで連続して要求コマンドを発行し続けると、キューが一杯になってしまい、新規要求が発行できない状態が発生するため、転送レートにばらつきが生じやすく、このばらつきを吸収するために十分なマージンを取るとなると、保証できる転送レートの値はますます低くなってしまう。
【０００６】
この点につき、特開２００７−２４９８１６号公報（特許文献１）は、PCI Express（登録商標）のシリアル通信路を常時モニタし、実際に転送されたパケットデータの転送量に応じて動的にアービトレーションテーブルを変更することによって、トランザクション層の送信バッファが介在している場合であっても、実際のトラフィックのプライオリティの整合性を維持しつつ、適切なバス権調停を行うことができるデータ通信回路を開示する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、PCI Express（登録商標）のように要求コマンドとそれに対する応答とが分離されているスプリット・トランザクション型バスを採用する画像処理装置において、転送レートの保証値を最大化することを目的とする。
【課題を解決するための手段】
【０００８】
本発明者は、スプリット・トランザクション型バスを採用する画像処理装置において、転送レートの保証値を最大化する方法につき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【０００９】
すなわち、本発明によれば、階層化された複数のレジスタを含むバス権調停用レジスタと、前記レジスタを参照してバス権を調停するバスアービタとを含み、前記レジスタの各フィールドには、デバイスを示す値および該レジスタの階層より一つ下位の階層を示す値の少なくとも一方が格納され、前記レジスタのポインタは、該レジスタが参照されるたびに循環的にシフトし、前記バスアービタは、最初に最上位階層の前記レジスタを参照し、参照先の前記レジスタのポインタが示すフィールドの値が前記階層を示す値であった場合に、該値が示す階層のレジスタを参照し、参照先の前記レジスタのポインタが示すフィールドの値が前記デバイスを示す値であり、且つ、該デバイスからバス権の要求があった場合に、該デバイスに対してバス権を付与する、画像処理装置が提供される。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の画像処理装置の概念図。
【図２】本実施形態の画像処理装置に搭載されたコントローラＡＳＩＣの内部ブロック図。
【図３】本実施形態におけるバス権調停用レジスタの構成を示す概念図。
【図４】本実施形態におけるバス権調停用レジスタを説明するための概念図。
【図５】本実施形態におけるバス権調停用レジスタを説明するための概念図。
【図６】本実施形態におけるバス権調停用レジスタを説明するための概念図。
【図７】本実施形態におけるバスアービタによる調停結果を示す図。
【図８】本実施形態における調停レート設定用レジスタを示す概念図。
【発明を実施するための形態】
【００１１】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【００１２】
図１は、本発明の実施形態である画像処理装置１０００の概念図を示す。ＭＦＰなどとして参照される画像処理装置１０００は、原稿を読み取るためのスキャナユニット２００と、画像データを印字出力するためのプロッタユニット３００と、スキャナユニット２００およびプロッタユニット３００を制御するためのエンジン制御用ＡＳＩＣ４００と、コントローラＡＳＩＣ１００と、画像処理装置１０００全体を制御するためのＣＰＵ５００と、各種プログラムおよびデータを記憶するためのメモリ６００とを含んで構成されている。
【００１３】
エンジン制御用ＡＳＩＣ４００とコントローラＡＳＩＣ１００の間は、PCI Express規格の高速シリアルバス７００（以下、PCI Express７００として参照する）によって接続されており、コントローラＡＳＩＣ１００とＣＰＵ５００の間は、PCI Express規格の高速シリアルバス８００（以下、PCI Express８００として参照する）によって接続されている。一方、メモリ６００は、ＣＰＵ５００に内蔵された図示しないメモリコントローラによって制御されており、SSTL規格でインターフェースされている。
【００１４】
ここでは、まず、画像処理装置１０００におけるコピー時のデータの流れを説明する。スキャナユニット２００で読み取られた画像は、エンジン制御用ＡＳＩＣ４００において画像処理が施された後、コントローラＡＳＩＣ１００に渡される。コントローラＡＳＩＣ１００は、ＣＰＵ５００に対して、処理後の画像データをメモリ６００に格納する要求を発行し、ＣＰＵ５００は当該要求に応答して該当する画像データをメモリ６００に格納する。
【００１５】
メモリ６００に格納された画像データは、コントローラＡＳＩＣ１００からの要求で、メモリ６００から読み出され、エンジン制御用ＡＳＩＣ４００を経由してプロッタユニット３００に渡される。プロッタユニット３００は受領した画像データを印字出力する。
【００１６】
次に、コピーに並行してプリンタデータの作成が行われる場合のデータの流れを説明する。まず、ネットワーク等を経由して外部からプリンタ出力要求（プリンタ言語データ）がコントローラＡＳＩＣ１００に入力される。コントローラＡＳＩＣ１００は、ＣＰＵ５００に対して、入力されたプリンタ言語データをメモリ６００に格納する要求を発行し、ＣＰＵ５００は当該要求に応答して該当するプリンタ言語データをメモリ６００に格納する。その後、ＣＰＵ５００は、プリンタ言語データを解釈し、その内容に応じた画像データをメモリ６００上に作成する。このとき、画像データは、メモリ容量の消費を抑制すべく、コントローラＡＳＩＣ１００に搭載される圧縮器を用いて圧縮データとして作成される。
【００１７】
プロッタユニット３００がコピーに係る印字出力処理から開放された時点で、メモリ６００に格納された画像データ（圧縮データ）が、コントローラＡＳＩＣ１００からの要求に応じてメモリ６００から読み出される。読み出された画像データ（圧縮データ）は、エンジン制御用ＡＳＩＣ４００の伸張器で伸張処理を施された後、プロッタユニット３００に渡される。プロッタユニット３００は受領した画像データを印字出力する。
【００１８】
図２は、本実施形態の画像処理装置１０００に搭載されたコントローラＡＳＩＣ１００の内部ブロック図を示す。コントローラＡＳＩＣ１００は、エンジン制御用ＡＳＩＣ４００側のPCI Express７００を制御するPCI Expressルートコントローラ１０２と、ＣＰＵ５００側のPCI Express８００を制御するPCI Expressエンドポイントコントローラ１０４と、プロセスカラー（ＣＭＹＫ）の色ごとに用意された４つのビデオ出力制御ユニット１１０ａ，１１０ｂ，１１０ｃ，１１０ｄならびに４つのイメージ処理ユニット１２０ａ，１２０ｂ，１２０ｃ，１２０ｄと、圧縮ユニット１３０と、スキャナ・データ用のラインバッファ１４０と、ラインバッファ１４０を制御するためのビデオ入力コントローラ１５０と、バスアービタ１６０と、コントローラＡＳＩＣ１００全体を制御するための全体コントローラ１７０を備えている。
【００１９】
ビデオ出力制御ユニット１１０ａ〜１１０ｄは、それぞれ、ビデオ出力コントローラと、スタンプＤＭＡＣと、ビデオ出力ＤＭＡＣを備える。なお、図２においては、ビデオ出力コントローラ、スタンプＤＭＡＣおよびビデオ出力ＤＭＡＣを、それぞれ、Vout、Stp DMACおよびVout DMACと標記する。
【００２０】
ビデオ出力コントローラ（Vout）は、ビデオ出力制御ユニット１１０全体を制御し、エンジン制御用ＡＳＩＣ４００にプロッタ・データを送るための処理を実行する。ビデオ出力ＤＭＡＣは、印字出力するプロッタ・データを用意するためのＤＭＡＣ（Direct Memory Access Controller）であり、スタンプＤＭＡＣ（Stp DMAC）は、印字出力するプロッタ・データに重畳するスタンプ印字のデータを用意するＤＭＡＣである。
【００２１】
イメージ処理ユニット１２０ａ〜１２０ｄは、それぞれ、イメージ処理コントローラと２つの汎用ＤＭＡＣを備える。なお、図２においては、イメージ処理コントローラおよび汎用ＤＭＡＣを、それぞれ、IMPおよびGDMACと標記する。イメージ処理ユニット１２０ａに基づいて説明すれば、イメージ処理コントローラ（IMP_0）は、汎用ＤＭＡＣ（GDMAC10）でデータを読み出してイメージ処理を実行し、もう一つの汎用ＤＭＡＣ（GDMAC11）で実行結果をメモリ６００に書き込む。
【００２２】
圧縮ユニット１３０は、圧縮器と２つの汎用ＤＭＡＣを備える。なお、図２においては、圧縮器および汎用ＤＭＡＣを、それぞれ、ENC_0およびGDMAC_00、GDMAC_01と標記する。圧縮器（ENC_0）は、汎用ＤＭＡＣ（GDMAC_00）で生データを読み出し、圧縮結果を汎用ＤＭＡＣ（GDMAC_01）でメモリ６００に書き込む。
【００２３】
ラインバッファ１４０は、スキャナ・データを複数ライン分蓄積することが可能となっており、ビデオ入力コントローラ１５０は、ラインバッファ１４０を制御する。なお、図２においては、ラインバッファ１４０およびビデオ入力コントローラ１５０を、それぞれ、Line BuffおよびVIcntと標記する。
【００２４】
バスアービタ１６０は、バス権調停手段であり、ビデオ出力制御ユニット１１０ａ〜１１０ｄ、イメージ処理ユニット１２０ａ〜１２０ｄおよび圧縮ユニット１３０の各々からＣＰＵ５００に対して発行されるメモリアクセスの要求の調停を実行する。ここで、全体コントローラ１７０は、制御レジスタ１７２を備えており、ＣＰＵ５００は、制御レジスタ１７２に所定の値をセットすることができるように構成されている。全体コントローラ１７０は、制御レジスタ１７２にセットされた調停条件に係る設定値に基づいてバスアービタ１６０を制御する。
【００２５】
次に、コントローラＡＳＩＣ１００のバスアービタ１６０が実行するバス権調停の内容について、具体例に基づいて説明する。
【００２６】
本実施形態におけるバスアービタ１６０は、バス権調停用レジスタを参照してバス権調停を実行する。図３は、本実施形態が採用する新規なバス権調停用レジスタの構成を示す概念図である。図３に例示するバス権調停用レジスタは、５つのレジスタから構成されている。レジスタの各フィールドには、バスアービタ１６０に対してバス権を要求するデバイスを示す値および当該レジスタの階層より一つ下の階層を示す値の少なくとも一方が格納され、余ったフィールドにはノーオペレーション命令（以下、ＮＯＰとして参照する）が格納される。
【００２７】
本実施形態においては、５つのレジスタのうち、４つのレジスタが基本設定用レジスタとして使用され、４段階に階層化されている。そして、５つのレジスタのうち、２つのレジスタは、２段階に階層化されており、代替先決定用レジスタとして機能する。デバイスを示す値は、そのデバイスの優先度に応じた階層のレジスタにセットされる。なお、図３において、「VIcnt」は、ビデオ入力コントローラ１５０を示し、「Vout_0〜3」は４個のビデオ出力ＤＭＡＣを示し、「Stp_0〜3」は４個のスタンプＤＭＡＣを示し、「G00〜G41」は１０個の汎用ＤＭＡＣを示す（以下、他の図において同様）。
【００２８】
基本設定用レジスタの第１階層には、先頭から順番に、要求元デバイスを示す「VIcnt」、第２階層の参照を示す「2nd」がセットされ、余った１１個のフィールドにノーオペレーション命令（ＮＯＰ）がセットされている。
【００２９】
基本設定用レジスタの第２階層には、先頭から順番に要求元デバイスを示す「Vout_0」、「Vout_1」、「Vout_2」、「Vout_3」がセットされ、これに続いて、第３階層を示す「3rd」が４回連続してセットされ、余った５個のフィールドにＮＯＰがセットされている。
【００３０】
基本設定用レジスタの第３階層には、先頭から順番に要求元デバイスを示す「Stp_0」、「Stp_1」、「Stp_2」、「Stp_3」がセットされ、これに続いて、第４階層の参照を示す「4th」が２回連続してセットされ、余った７個のフィールドにＮＯＰがセットされている。
【００３１】
第４階層のレジスタには、先頭から順番に要求元デバイスを示す「Vout_0」、「Vout_1」、「Vout_2」、「Vout_3」、「Stp_0」、「Stp_1」、「Stp_2」、「Stp_3」、「VIcnt」がセットされ、余った４個のフィールドにＮＯＰがセットされている。
【００３２】
基本設定用レジスタにおいては、最上位階層に優先度の最も高いデバイスを示す値がセットされ、階層が下るにつれて、より低い優先度のデバイスを示す値がセットされる。図３に示す例の場合、異常画像を防止するために転送レートの最悪値を保証する必要のあるビデオ入力コントローラ１５０「VIcnt」が第１階層にセットされており、第２階層には、ビデオ入力コントローラ１５０「VIcnt」の次に転送レートを保証しなければならないビデオ出力ＤＭＡＣ「Vout_0〜3」がセットされている。
【００３３】
なお、上述した第４階層のレジスタは、同時に、代替先決定用レジスタの第１階層としても機能するものであり、代替先決定用レジスタの第２階層のレジスタには、先頭から順番に要求元デバイス「G00」、「G01」、「G10」、「G11」、「G20」、「G21」、「G30」、「G31」、「G40」、「G41」がセットされ、余った３個のフィールドにＮＯＰがセットされている。
【００３４】
バス権調停用レジスタを構成する各レジスタのポインタは、初期状態においては、図３に示すように、先頭位置（左端）にセットされる。バスアービタ１６０は、レジスタのポインタが示す値を判断し、その値が示すデバイスに対してバス権を付与する。レジスタのポインタは、当該レジスタがバスアービタ１６０に参照されるたびに循環的にシフトする。すなわち、レジスタのポインタは、当該レジスタがバスアービタ１６０に参照されるたびに１つ右側にシフトし、ポインタがレジスタの右端に至った場合または次のシフト先がＮＯＰである場合は、ポインタの位置がレジスタの先頭位置（左端）にシフトするように構成されている。以下、図３に示すバス権調停用レジスタを使用してバスアービタ１６０が実行するバス権調停処理について、具体的に説明する。
【００３５】
バスアービタ１６０は、バス権の付与先を決定するにあたり、一番最初に、最上位階層（すなわち、第１階層）を参照し、そのポインタが示す値を判断する。図３に示す初期状態においては、第１階層のポインタは、「VIcnt」を指している。この場合、バスアービタ１６０は、「VIcnt」からバス権の要求が発行されているか否かを判断し、「VIcnt」からバス権の要求が発行されている場合は、予め設定された所定の割り当て期間（ｔ）にわたって「VIcnt」にバス権を付与する。
【００３６】
その後、所定の割り当て期間（ｔ）の終了に同期して、図４（ａ）に示すように、第１階層のポインタが「2nd」にシフトする。バスアービタ１６０は、再び、第１階層のポインタが示す値を判断する。図４（ａ）に示す状態においては、第１階層のポインタは、「2nd」を指しているので、バスアービタ１６０は、階層を下って第２階層を参照し、そのポインタが示す値を判断する。このとき、第２階層のポインタは、「Vout_0」を指している。この場合、バスアービタ１６０は、「Vout_0」からバス権の要求が発行されているか否かを判断し、「Vout_0」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Vout_0」にバス権を付与する。
【００３７】
その後、割り当て期間（ｔ）の終了に同期して、図４（ｂ）に示すように、第１階層のポインタが「VIcnt」にシフトすると同時に、第２階層のポインタが右側に１つシフトする（すなわち、「Vout_0」から「Vout_1」にシフトする）。バスアービタ１６０は、再び、第１階層のポインタが示す値を判断する。図４（ｂ）に示す状態においては、第１階層のポインタは、「VIcnt」を指しているので、バスアービタ１６０は、「VIcnt」からバス権の要求が発行されているか否かを判断し、「VIcnt」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「VIcnt」にバス権を付与する。
【００３８】
その後、割り当て期間（ｔ）の終了に同期して、図４（ｃ）に示すように、第１階層のポインタが「2nd」にシフトする。バスアービタ１６０は、再び、第１階層を参照し、そのポインタが示す値を判断する。図４（ｃ）に示す状態においては、第１階層のポインタは、「2nd」を指しているので、バスアービタ１６０は、階層を下って第２階層を参照し、そのポインタが示す値を判断する。このとき、第２階層のポインタは、「Vout_1」を指している。この場合、バスアービタ１６０は、「Vout_1」からバス権の要求が発行されているか否かを判断し、「Vout_1」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Vout_1」にバス権を付与する。
【００３９】
その後、第１および第２階層の各ポインタは、図４（ｄ）、図４（ｅ）、図５（ｆ）、図５（ｇ）に示すような態様でにシフトする。バスアービタ１６０は、その都度、「VIcnt」、「Vout_2」、「VIcnt」、「Vout_3」の各々からバス権の要求が発行されているか否かを判断し、各デバイスからバス権の要求が発行されている場合は、「VIcnt」→「Vout_2」→「VIcnt」→「Vout_3」の順番でバス権を付与する。
【００４０】
ここで、割り当て期間（ｔ）は転送レートを決定するパラメータであり、１回の調停で128Byteの転送を実施するものとし、第１階層１コマ分の設定で200MB/sの転送レートを保証するためには、割り当て期間（ｔ）≧128/（200*1024*1024）＝610ｎsに設定すればよい。
【００４１】
続いて、図５（ｈ）に示すように、第１階層のポインタが「VIcnt」にシフトすると同時に、第２階層のポインタが右側に１つシフトする（すなわち、「Vout_3」から「3rd」にシフトする）。そして、バスアービタ１６０は、再び、第１階層を参照し、そのポインタが示す値を判断する。図５（ｈ）に示す状態においては、第１階層のポインタは、「VIcnt」を指しているので、「VIcnt」からバス権の要求が発行されているか否かを判断し、「Vout_1」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Vout_1」にバス権を付与する。
【００４２】
続いて、図５（ｉ）に示すように、第１階層のポインタが「2nd」にシフトする。バスアービタ１６０は、再び、第１階層を参照し、そのポインタが示す値を判断する。図５（ｉ）に示す状態においては、第１階層のポインタは、「2nd」を指しているので、バスアービタ１６０は、階層を下って第２階層を参照し、そのポインタが示す値を判断する。このとき、第２階層のポインタは、「3rd」を指している。バスアービタ１６０は、さらに階層を下り、第３階層を参照し、そのポインタが示す値を判断する。このとき、第３階層のポインタは、「Stp_0」を指しているので、「Stp_0」からバス権の要求が発行されているか否かを判断し、「Stp_0」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Stp_0」にバス権を付与する。
【００４３】
以降、同様に第１〜第３階層のレジスタが逐次シフトを繰り返し、図６（ｊ）に示す状態を経て、図６（ｋ）に示す状態に至る。このとき、バスアービタ１６０は、再び、第１階層を参照し、そのポインタが示す値を判断する。図６（ｋ）に示す状態においては、第１階層のポインタは、「2nd」を指しているので、バスアービタ１６０は、階層を下って第２階層を参照し、そのポインタが示す値を判断する。このとき、第２階層のポインタは、「3rd」を指しているので、バスアービタ１６０は、さらに階層を下り、第３階層を参照し、そのポインタが示す値を判断する。このとき、第３階層のポインタは、「4th」を指しているので、バスアービタ１６０は、さらに階層を下り、第４階層を参照し、そのポインタが示す値を判断する。このとき、第４階層のポインタは、「Vout_0」を指しているので、バスアービタ１６０は、「Vout_0」からバス権の要求が発行されているか否かを判断し、「Vout_0」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Vout_0」にバス権を付与する。以降、同様の調停処理が繰り返される。
【００４４】
図７に、バスアービタ１６０による調停結果を例示する。図７においては、バスアービタ１６０がバス権を付与したデバイスを時系列的に並べて示している。図３から図６を参照して説明したように、初期状態から１７回の調停を経て、「VIcnt」→「Vout_0」→「VIcnt」→「Vout_1」→「VIcnt」→「Vout_2」→「VIcnt」→「Vout_3」→「VIcnt」→「Stp_0」→「VIcnt」→「Stp_1」→「VIcnt」→「Stp_2」→「VIcnt」→「Stp_3」→「VIcnt」→「Vout_0」(図６（ｋ）に示す状態)の順にバス権を付与する。その後も同様の手順でバス権調停が実行され、その結果、図７に示す順番で各デバイスにバス権が付与されることになる。
【００４５】
なお、これまで、各階層のポインタが示すデバイスからバス権の要求が発行されている場合について説明してきたが、実際には、必ずしも、ポインタが示すデバイスからバス権の要求が発行されているとは限らない。この点につき、本実施形態におけるバスアービタ１６０は、ポインタが示すデバイスからバス権の要求が発行されていないと判断した場合、代替先決定用レジスタを参照し、そのポインタが示す値を判断する。
【００４６】
例えば、図３に示す初期状態においては、第１階層のポインタは、「VIcnt」を指しているので、バスアービタ１６０は、「VIcnt」からバス権の要求が発行されているか否かを判断する。その結果、「VIcnt」からバス権の要求が発行されていないと判断した場合、バスアービタ１６０は、代替先決定用レジスタの第１階層を参照し、そのポインタが示す値を判断する。この場合、代替先決定用レジスタの第１階層のポインタは、「Vout_0」を指しているので、バスアービタ１６０は、「Vout_0」からバス権の要求が発行されているか否かを判断し、「Vout_0」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「Vout_0」にバス権を付与する。「Vout_0」にバス権を付与した場合、代替先決定用レジスタの第１階層のポインタは「Vout_0」から「Vout_1」へシフトする。
【００４７】
一方、「Vout_0」からバス権の要求が発行されていないと判断した場合、バスアービタ１６０は、代替先決定用レジスタの第２階層を参照し、そのポインタが示す値を判断する。この場合、代替先決定用レジスタの第２階層のポインタは、「G00」を指しているので、バスアービタ１６０は、「G00」からバス権の要求が発行されているか否かを判断し、「G00」からバス権の要求が発行されている場合は、所定の割り当て期間（ｔ）にわたって「G00」にバス権を付与する。「G00」にバス権を付与した場合、代替先決定用レジスタの第２階層のポインタは「G00」から「G01」へシフトする。
【００４８】
以上、本実施形態におけるバスアービタ１６０が実行するバス権調停について、リード・アクセスとライト・アクセスを１つのバス権調停用レジスタを使用して調停する形態を例にとって説明してきたが、他の実施形態では、リード・アクセス用のレジスタとライト・アクセス用のレジスタを別個に用意し、各レジスタを使用した２つの調停結果のＯＲ結果に基づいて、メモリ・アクセスを調停するように構成してもよい。
【００４９】
最後に、調停レート設定用レジスタについて説明する。図２において説明したように、コントローラＡＳＩＣ１００に搭載された全体コントローラ１７０は、制御レジスタ１７２を備えており、制御レジスタ１７２は、調停レート設定レジスタを含んで構成されている。調停レート設定レジスタの値は、ＣＰＵ５００から設定され、全体コントローラ１７０は、調停レート設定レジスタに設定された値に基づいて、バスアービタ１６０が使用するバス権調停用レジスタを設定する。
【００５０】
図８（ａ）は、調停レート設定用レジスタを概念的に示す図である。図８（ａ）に示す調停レート設定用レジスタは、各デバイスについて、当該デバイスを示す値が格納される基本設定用レジスタの「階層」と、当該階層（レジスタ）における当該デバイスを示す値の「格納回数」とを設定するための第１のレジスタと、各階層につき、当該階層のレジスタに当該階層より一つ下位の階層を示す値の「格納回数」を設定するための第２のレジスタを含んで構成される。
【００５１】
図８（ａ）に例示する第１のレジスタには、「VIcnt」を第１階層に１回格納し、「Vout_0」、「Vout_1」、「Vout_2」、「Vout_3」の各々を第２階層に２回格納し、「Stp_0」、「Stp_1」、「Stp_2」、「Stp_3」の各々を第３階層に１回格納する旨が設定されている。一方、その他のデバイス（G00〜G41）については、階層が「0」に設定されているが、これは、デバイス（G00〜G41）を示す値を第１〜第３階層に格納しないことを意味している。
【００５２】
また、図８（ａ）に例示する第２のレジスタには、第１階層に対して下位の階層を示す値を１回格納し、第２階層に対して下位の階層を示す値を４回格納し、第３階層に対して下位の階層を示す値を２回格納する旨が設定されている。
【００５３】
全体コントローラ１７０は、図８（ａ）に示す調停レート設定レジスタ（第１および第２のレジスタ）の値に基づいてバスアービタ１６０が使用するバス権調停用レジスタを設定する。調停レート設定レジスタの値が図８（ａ）に示すように設定されていた場合、全体コントローラ１７０は、図８（ｂ）に示す階層構造を持ったバス権調停用レジスタを生成する。
【００５４】
以上、説明したように、本実施形態によれば、調停結果のマイナス方向へのばらつきが自動的に排除されるので、転送レートの最悪値を保証しなければならない要求元の保証レートを最大化することができる。また、本実施形態によれば、休止中等の理由でバス権調停に参加する必要が無いＤＭＡＣがあった場合、当該ＤＭＡＣへの割り当て期間が自動的に他のＤＭＡＣに割り当てられるので、調停結果のプラス方向へのばらつき（予定の転送レートよりも高い転送レートの確保）を発生させることができる。さらに、本実施形態によれば、専用レジスタを使用して調停レートを簡単に設定することができる。
【００５５】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００５６】
１００…コントローラＡＳＩＣ
１０２…ルートコントローラ
１０４…エンドポイントコントローラ
１１０…ビデオ出力制御ユニット
１２０…イメージ処理ユニット
１３０…圧縮ユニット
１４０…ラインバッファ
１５０…ビデオ入力コントローラ
１６０…バスアービタ
１７０…全体コントローラ
１７２…制御レジスタ
２００…スキャナユニット
３００…プロッタユニット
４００…エンジン制御用ＡＳＩＣ
５００…ＣＰＵ
６００…メモリ
７００，８００…高速シリアルバス
１０００…画像処理装置
【先行技術文献】
【特許文献】
【００５７】
【特許文献１】特開２００７−２４９８１６号公報
【図１】
2013239048.tif 000003
【図２】
2013239048.tif 000004
【図３】
2013239048.tif 000005
【図４】
2013239048.tif 000006
【図５】
2013239048.tif 000007
【図６】
2013239048.tif 000008
【図７】
2013239048.tif 000009
【図８】
2013239048.tif 000010