(57)【要約】【課題】バスマスタのメモリ帯域制限設定値を動的に設定する。【解決手段】各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブル３６に基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部３８と、複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタのデータ転送を制限するバス調停部３０と、前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、を備えることを特徴とする画像処理装置が提供される。【選択図】図１
2013196667.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御する画像処理装置であって、
各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブルに基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部と、
複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタの画像データを含むデータの転送を制限するバス調停部と、
前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記バス調停部に対するレジスタアクセスバスであり、該レジスタアクセスバスとＣＰＵからのレジスタアクセスバスとを選択的にアクセス可能であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記帯域制限テーブルを初期化するときバースト転送することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記帯域制限保持部は、前記複数のバスマスタのうちのエンジン転送のバスマスタによるデータのライン転送の帰線期間においてエンジン転送のバスマスタの動作ステータスをオフと判定することを特徴とする請求項１〜３のいずれか一項に記載の画像処理装置。
【請求項５】
前記帯域制限テーブルに記憶される各バスマスタの動作ステータスの組み合わせは可逆圧縮された符号であることを特徴とする請求項１〜４のいずれか一項に記載の画像処理装置。
【請求項６】
前記帯域制限保持部は、圧縮符号化された帯域制限設定値を有することを特徴とする請求項１〜５のいずれか一項に記載の画像処理装置。
【請求項７】
前記制御手段は、前記帯域制限テーブルを初期化するとき、前記各バスマスタのメモリ帯域制限設定値をメモリ領域からダイレクトメモリアクセスにより転送することを特徴とする請求項１〜６のいずれか一項に記載の画像処理装置。
【請求項８】
前記帯域制限保持部は、前記帯域制限テーブルに前記各バスマスタの優先順位情報を記憶し、
前記バス調停部は、前記帯域制限テーブルに記憶された優先順位情報に基づき、優先順位の高いバスマスタのデータ転送を優先順位の低いバスマスタのデータ転送より優先することを特徴とする請求項１〜７のいずれか一項に記載の画像処理装置。
【請求項９】
前記各バスマスタは、前記バス調停部に設定された前記各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するバースト長をデフォルト値よりも低くすることを特徴とする請求項１〜８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記各バスマスタは、前記バス調停部に設定された前記各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するリクエスト数の上限をデフォルト値よりも低くすることを特徴とする請求項１〜９のいずれか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリへのデータ転送を調整可能な画像処理装置に関する。
【背景技術】
【０００２】
プリンタ等の画像処理装置には、画像処理をハードウエアで行うための特定用途向け半導体集積回路（ＡＳＩＣ：Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が実装されている。
【０００３】
メインメモリをＡＳＩＣ等のカスタムチップに集約した画像処理装置では、さまざまな転送がメモリに集中する。転送の例としては、「エンジン転送」、「画像処理転送」、「ＣＰＵ転送」、「ＩＯ転送」等が挙げられる。「エンジン転送」は、スキャナやプロッタなどに代表され、ライン単位での等時性が要求される。「画像処理転送」は、ＨＤＤや圧縮伸長や回転に代表され、ページ単位での等時性が要求される。「ＣＰＵ転送」では、システムとしての性能が要求される。「ＩＯ転送」は、ネットワークやＵＳＢなどに代表され、外部ＩＦ（ＩｎｔｅｒＦａｃｅ）の性能が要求される。
【０００４】
メモリ側の利用可能帯域は有限である。このため、メモリアービタあるいはメモリコントローラにて、転送に優先順位だけでなく帯域制限機能を付加することによって、各々の転送の要求性能を満たす技術が考えられ、既に知られている。
【０００５】
例えば、特許文献１には、優先順位が低いペリフェラル転送の帯域を確保する目的で、バス調停部に各転送元のメモリのアクセス時間を測定するカウンタを設け、各々の転送に対して測定されたカウンタ値と所定の設定値との比較に基づいて、「エンジン転送」や「画像処理転送」等の各転送元の優先順位を変更したり、アクセス要求を受け付けないようにしたりする構成が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、今までの帯域制限付きのメモリコントローラでは、静的に帯域制限を設けているにすぎなかった。具体的に説明すると、例えばエンジン転送には予め所定の帯域制限が設定されているため、エンジン転送を行っていない場合でもそのエンジン転送分の帯域は、エンジン転送以外の転送で利用することができなかった。これによれば、エンジン転送分のメモリ帯域を無駄にしており、データの転送状況に応じてメモリ帯域を有効に利用しきれていないという問題があった。
【０００７】
例えば、特許文献１では、ＣＰＵ転送のカウンタが設定値に達するとＣＰＵのアクセス要求は受け付けられない。その結果、メモリ帯域に余裕があるにも関わらず、そのメモリ帯域を利用できなくなり、メモリ帯域を有効に使い切れていないという問題が生じていた。
【０００８】
これに対して、エンジン転送、画像処理転送、ＣＰＵ転送、ＩＯ転送が一つのメインメモリに集中する画像処理装置で、そのメモリ帯域を今まで以上に効率的に利用し、転送処理時間の短縮や効率化を図ることが求められていた。
【０００９】
上記課題に鑑み、本発明の目的とするところは、複数のバスマスタのメモリ帯域制限設定値を動的に設定可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明のある観点によれば、
複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御する画像処理装置であって、
各バスマスタの動作状態を示す動作ステータスの前記複数のバスマスタ分の組み合わせ毎に該各バスマスタのメモリ帯域制限設定値を記憶する帯域制限テーブルに基づき、前記複数のバスマスタの動作状態の監視の結果得られる前記各バスマスタの動作ステータスの組み合わせに対応した前記各バスマスタのメモリ帯域制限設定値を算出する帯域制限保持部と、
複数のバスマスタとメモリとに接続され、複数のバスマスタの動作状態の監視の結果得られるメモリ帯域利用率が前記メモリ帯域制限設定値に達したバスマスタのデータ転送を制限するバス調停部と、
前記算出された前記各バスマスタの前記メモリ帯域制限設定値を前記バス調停部に動的に設定する制御手段と、
を備えることを特徴とする画像処理装置が提供される。
【発明の効果】
【００１１】
本発明によれば、複数のバスマスタのメモリ帯域制限設定値を動的に設定し、画像処理装置のメモリ効率を高めることができる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る画像処理装置（ＡＳＩＣ）のハードウエア構成図。
【図２】一実施形態に係るバス調停部の内部構成図。
【図３】一実施形態に係る帯域制限保持部の内部構成図。
【図４】一実施形態に係る帯域制限テーブルの内部構成図。
【図５】一実施形態に係る帯域制限制御の一例を示した図。
【図６】一実施形態に係る各バスマスタからの要求信号の一例を示した図。
【図７】一実施形態に係る画像転送制御処理を示すフローチャート。
【図８】一実施形態に係る画像処理装置の起動時処理を示すフローチャート。
【発明を実施するための形態】
【００１３】
以下、本発明の好適な実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１４】
［全体構成］
ます、本発明の一実施形態に係る画像処理装置について、図１を参照しながら説明する。画像処理装置は、複数のバスマスタとメモリとに接続され、メモリへの画像データを含むデータの転送を制御し、所定の場合にデータ転送を抑止する。
【００１５】
図１は、本実施形態に係る画像処理装置に内蔵されるコントローラＡＳＩＣ１０を示す。本実施形態に係る画像処理装置の一例としては、プリンタやスキャナが挙げられる。ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）とは、ある算出の用途のために設計、製造される専用ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）チップを意味し、カスタムチップなどとも呼ばれる。
【００１６】
コントローラＡＳＩＣ１０は、バス調停部３０と、メモリ３２を有するメモリコントローラ３４と、帯域制限テーブル３６を保持する帯域制限保持部３８と、割り込み制御部４０と、複数のバスマスタとを有する。
【００１７】
（バス調停部）
バス調停部３０は、複数のバスマスタとメモリ３２とに接続され、メモリ３２とのデータ転送を調停する。本実施形態では、バスにおいて通信を開始できるバスマスタを複数持つ仕組みを有する(マルチバスマスタ)。バスの通信をＣＰＵのみから開始するシングルバスマスタ機能のみ有する装置では、演算中などでＣＰＵがバスへアクセスしていない間、バスは停止している。複数のバスマスタを持つことで、ＣＰＵに頼らなくてもデータが転送可能となり，バスを効率良く使用できる。複数のバスマスタが同時にバスにアクセスする場合は，バス調停部３０で調停する。
【００１８】
（バスマスタ群）
本実施形態では、複数のバスマスタがバス調停部３０を経由してメモリコントローラ３４内のメモリ３２にデータを転送する。全てのデータはメモリ３２を経由して外部から内部へ又は内部から外部へ転送される。
【００１９】
エンジン転送用のバスマスタ（エンジンバスマスタ２２）はスキャナやプロッタ等のエンジン２１に接続される。エンジンバスマスタ２２は、ライン等時性を満たす必要があるバスマスタである。エンジン転送では、その機種特有の読み取り／書き込みのための機械(メカ)的な要件によって必要なメモリ帯域が決まる。必要な帯域を保証できない場合でも機械的動作(メカ動作)は進むので、その結果、異常画像となってしまう。図１では、エンジンバスマスタ２２の動作状況は、「ＶＩ０」、「Ｖ０１」、「Ｖ０２」、「Ｖ０３」、「Ｖ０４」の各動作状況の組み合わせとして示される。
【００２０】
画像処理転送用のバスマスタ（画像処理バスマスタ２４）は、ＨＤＤ２３や圧縮伸長などに接続される。画像処理バスマスタ２４は、ページ等時性を満たす必要があるバスマスタである。画像処理転送では、その機種の速度（毎分＊＊枚）のスペックによって必要なメモリ帯域が決まる。また、通常時は利用しない画像回転や画像編集などのオプション動作が課されると、その分必要なメモリ帯域は多くなる。必要な帯域を保証できない場合、読み取り／書き込みのページ間隔が伸びるのでその機械の速度が低下する。図１では、画像処理バスマスタ２４の動作状況は、「ＨＤＤ」、「ＥＮＣ」、「ＤＥＣ」、「ＲＯＴ」、「ＥＤＴ」の各動作状況の組み合わせとして示される。
【００２１】
ＣＰＵ転送用のバスマスタ（ＣＰＵバスマスタ２６）は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２５やＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などに接続される。ＣＰＵバスマスタ２６は、その画像処理装置の処理性能を左右するバスマスタである。ＣＰＵ転送は、ソフトウエア実装によるため、必要な帯域を定義することは難しい。重い処理を行うために、ＣＰＵは無尽蔵にメモリ帯域を必要とする場合がある。必要な帯域を保証できない場合、機械の速度が低下する。図１では、ＣＰＵバスマスタ２６の動作状況は、「ＣＰＵＩＦ」、「ＧＰＵ」の各動作状況の組み合わせとして示される。
【００２２】
ＩＯ（Ｉｎｐｕｔ  Ｏｕｔｐｕｔ）転送用のバスマスタ（ＩＯバスマスタ２８）は、ネットワーク２７ａ、ＵＳＢ２７ｂ、ＳＤカード２７ｃ、その他のオプショナル機能(オプション２７ｄ)に接続される。ＩＯバスマスタ２８は、外部インターフェイスＩＦの転送性能を成立させるためのバスマスタである。ＩＯ転送では、外部デバイスとのデータ転送にエラーが生じないために、必要なメモリ帯域を維持する必要がある。数多くのＩＯデバイスが接続される場合は、個々の必要帯域は少なくても、必要なメモリ帯域は多くなる。必要な帯域を保証できない場合、外部インターフェイスＩＦの転送性能は低下する。図１では、ＩＯバスマスタ２８の動作状況は、「ＭＡＣ」、「ＵＳＢ」、「ＳＤ」、「ＰＣＩ」の各動作状況の組み合わせとして示される。
【００２３】
なお、図１では図示を一部省略しているが、ＣＰＵ２５からのレジスタアクセス(レジスタ設定)は、コントローラＡＳＩＣ１０内の全てのレジスタに対してアクセス可能とすることができる。また、同様に図１には図示していないが、帯域制限テーブル３６には、全てのバスマスタの動作状況が入力されている。
【００２４】
（バス調停部の帯域制限）
バス調停部３０は、バスマスタ毎にデータ転送をカウントするカウンタを持っている。カウンタは、直近の１０００クロックを測定範囲とした場合、直近の１０００クロックのうち何クロックの間データ転送を行っていたかを測定する。これにより、バスマスタ毎にデータ転送時のメモリ帯域利用率を＊＊．＊％の精度で算出できる。
【００２５】
また、バス調停部３０は、バスマスタ毎にＣＰＵ２５で設定可能な帯域制限レジスタ３１を持っており、バスマスタ毎に使用可能な上限帯域として、各バスマスタのメモリ帯域制限設定値を設定できる。具体的には、帯域制限レジスタ３１には、エンジンバスマスタ用の帯域制限設定値３１ａ、画像処理バスマスタ用の帯域制限設定値３１ｂ、ＣＰＵバスマスタ用の帯域制限設定値３１ｃ、ＩＯバスマスタ用の帯域制限設定値３１ｄが設定される。
【００２６】
したがって、バス調停部３０は、各カウンタへの転送のカウント値と帯域制限レジスタ３１への各帯域制限設定値とによって、あるバスマスタのデータ転送がメモリの上限帯域に達すると、そのバスマスタからの転送要求を受け付けなくする。これは転送カウンタがメモリの上限帯域を下回らない限り継続する。
【００２７】
（バス調停部の動的制御）
ＣＰＵ２５は、バス調停部３０内の帯域制限レジスタ３１を動的に制御することにより、他のバスマスタが動作していない又はほとんど動作していない間、動作しているバスマスタがメモリ帯域を有効に利用できるようにする。動作していなかったバスマスタが再び動作するときには、帯域制限レジスタ３１の各バスマスタの帯域制限設定値を各バスマスタの通常時の帯域配分の設定に戻すように再制御される。例えば、「エンジン転送」が発生していない間、エンジン転送に割り当てられていた帯域を、「画像処理転送」や「ＣＰＵ転送」にて有効に利用できるように、帯域制限レジスタ３１の各バスマスタの帯域制限設定値３１ａ〜３１ｄを変更する。その後、再び「エンジン転送」が発生した場合には、帯域制限レジスタ３１の各帯域制限設定値を通常時の帯域配分の設定に戻して、「エンジン転送」の帯域を確保する。
【００２８】
通常、ＣＰＵ２５が帯域制限レジスタをソフトウエアにより制御することによってメモリ帯域の制御を行う。しかしながら、ＣＰＵ２５によるソフトウエア制御では制御が煩雑になる。障壁となっているソフト制御の煩雑さの例を２点挙げる。まず１点目として、バスマスタ数が多い場合、各バスマスタの動作状況の組み合わせはバスマスタ数の２のべき乗に比例する。このため、各バスマスタの動作状況の組み合わせ毎に帯域制御レジスタの帯域制限設定値を管理することは難しい。次に２点目として、ＣＰＵ上で動くコピーやプリンタなどのアプリケーションは、バスマスタの起動を意識していない。このため、各ソフトウエアによるアプリケーション制御で帯域制限レジスタを制御することは難しい。
【００２９】
上記制御の煩雑さを回避するために、本実施形態では、コントローラＡＳＩＣ１０の回路上に帯域制限テーブル３６を持った帯域制限保持部３８を設ける。コントローラＡＳＩＣ１０は、帯域制限テーブル３６に予め定められたメモリ帯域制限設定値に基づき、帯域制限レジスタ３１をハードウエアにより制御することによってメモリ帯域の制御を行う。
【００３０】
したがって、帯域制限テーブル３６は、予めＣＰＵ２５により設定された全バスマスタの動作状況に応じた帯域制限設定値を保持している。帯域制限保持部３８は、バスマスタの動作状況に従い帯域制限レジスタ３１の帯域制限設定値を変更する。その際、割り込み制御部４０は、ＣＰＵ２５に対して割り込み信号を発生する。ＣＰＵ２５は、高速にレスポンスするために、予め割り込み信号に対する優先度を高くしている。よって、ＣＰＵ２５は、割り込み信号により帯域制限レジスタ３１の設定変更が要求されると、帯域制限テーブル３６に保持されている、複数のバスマスタの動作状況に応じた帯域制限設定値を読み出し、それをバス調停部３１の帯域制限レジスタ３１に設定する（レジスタ設定）。
【００３１】
図２を参照しながら、バス調停部３０について詳述する。図２は、バス調停部３０の内部構成を示す。バス調停部３０は、帯域制限レジスタ３１、有効転送カウンタ３３、帯域制限判定部３５及び有効転送カウンタ値シフトレジスタ３７をバスマスタ毎に有する。
【００３２】
帯域制限レジスタ３１には、図１のエンジンバスマスタの帯域制限設定値３１ａ、画像処理バスマスタの帯域制限設定値３１ｂ、ＣＰＵバスマスタの帯域制限設定値３１ｃ、ＩＯバスマスタの帯域制限設定値３１ｄがＣＰＵ２５により設定される。
【００３３】
有効転送カウンタ３３は、バスマスタ毎のデータ転送をカウントする。本実施形態では、有効転送カウンタ３３は１００クロック間の有効転送クロック数（すなわち、要求クロック数及び許可のクロック数の合計）をカウントする。
【００３４】
有効転送カウンタ値シフトレジスタ３７（ＦＩＦＯ：Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）は、有効転送カウンタ３３による有効転送クロック数のカウント結果を直近の１０回分だけ保持する。
【００３５】
帯域制限判定部３５は、メモリ３２の帯域制限が必要であるかを判定する。帯域制限判定部３５は、帯域制限が必要と判定すると、バスマスタ側からのデータ転送要求信号、メモリコントローラ３４側からの転送許可信号を無効とする（マスクする）。これにより、そのバスマスタからの転送は成立しなくなる。バス調停部３０は、このシフトレジスタ内の有効転送クロック数をトータルの１０００クロックで割ることによりメモリ帯域利用率を求めることができる。帯域制限レジスタ３１には、メモリ３２の帯域制限が必要かを判定するための条件となるメモリ帯域利用率である帯域制限設定値が設定される。無制限の場合（メモリ３２の帯域制限が不要の場合）には、１００％を設定すればよい。
【００３６】
このように、バス調停部３０は、複数のバスマスタの動作状態の監視の結果から各バスマスタのメモリ帯域利用率を算出し、算出された各バスマスタのメモリ帯域利用率のうち、ＣＰＵ２５により帯域制限レジスタ３１に設定された各バスマスタのメモリ帯域制限設定値に達したメモリ帯域利用率のデータ転送を無効とする。
【００３７】
以上に説明したように、バス調停部３０に設定するメモリ帯域制限設定値を各バスマスタの動作状況に応じて動的に変更することにより、画像処理装置のメモリ利用効率を高めることができる。
【００３８】
（帯域制限保持部／帯域制限テーブル）
本実施形態では、帯域制限保持部３８は、帯域制限テーブル３６を保持する。図３は、帯域制限保持部３８の内部構成を示す。バスマスタ動作状況を示す入力信号がバスマスタ毎に帯域制限保持部３８に入力される。例えば、エンジンバスマスタ２２では、「ＶＩ０」、「Ｖ０１」、「Ｖ０２」、「Ｖ０３」、「Ｖ０４」の各動作状況を示す入力信号が、随時帯域制限保持部３８に入力される。入力信号に応じて、帯域制限テーブル３６は、バスマスタの動作状況を示す動作ステータスを更新する。
【００３９】
図４は、帯域制限テーブル３６に記憶された情報の一例を示す。帯域制限テーブル３６には、各バスマスタの動作状態を示す動作ステータス３６ａが複数のバスマスタ分記憶される。帯域制限テーブル３６には、動作ステータス３６ａが複数のバスマスタ分組み合わされた組み合わせ毎に各バスマスタのメモリ帯域制限設定値３６ｂを記憶する。メモリ帯域制限設定値３６ｂは、メモリ帯域の全体を１００％とした場合、バスマスタ動作状況（動作ステータス３６ａ）の組み合わせ毎の帯域制限設定値を示す。
【００４０】
１行目〜５行目の各バスマスタの動作状態の組み合わせに係る帯域制限設定値３６ｂと具体的動作環境との関係は以下の通りである。
１行目の帯域制限設定値                                    動作環境
エンジン２０％，画像処理４０％，ＣＰＵ３０％，ＩＯ１０％：通常時
２行目の帯域制限設定値
エンジン０％，画像処理５０％，ＣＰＵ４０％，ＩＯ１０％  ：紙間
３行目の帯域制限設定値
エンジン０％，画像処理０％，ＣＰＵ７０％，ＩＯ３０％    ：エンジンオフ時
４行目の帯域制限設定値
エンジン０％，画像処理０％，ＣＰＵ１００％，ＩＯ０％    ：アイドル時
５行目の帯域制限設定値
エンジン１５％，画像処理３５％，ＣＰＵ４０％，ＩＯ１０％：プリンタ動作時
バスマスタの動作の有無の組み合わせは無限に近くあるので、帯域制限設定値３６ｂのデフォルト値を設定することができる。例えば、図４の帯域制限テーブル３６の最終行には、下記１行目〜５行目の動作状態以外の場合の帯域制限設定値３６ｂが、以下のようにデフォルト値として設定されている。
最終行の帯域制限設定値
エンジン２０％，画像処理４０％，ＣＰＵ３０％，ＩＯ１０％：デフォルト
なお、以上の帯域制限設定値３６ｂは一例であり、他の値をとることも可能である。また、帯域制限設定値３６ｂは、学習可能であり、学習の結果に応じてより適正な値に設定を変更され得る。
【００４１】
帯域制限保持部３８は、複数のバスマスタの動作状態の監視の結果、入力信号に基づきその時点での動作状況を示す各バスマスタの動作ステータスの組み合わせを取得する。そして、帯域制限保持部３８は、帯域制限テーブル３６に基づき、取得した動作ステータスの組み合わせに対応する各バスマスタのメモリ帯域制限設定値を算出する。所望の組み合わせに対応する帯域制限設定値３６ｂの情報が記憶されていない場合、帯域制限保持部３８は、デフォルト値を帯域制限設定値３６ｂとして算出する。
【００４２】
このようにして、帯域制限保持部３８は、各バスマスタの動作ステータス３６ａの組み合わせ毎の帯域制限設定値３６ｂを算出し、算出された帯域制限設定値３６ｂに変化が発生すると割り込みを発生する。割り込み制御部４０は、割り込み信号をＣＰＵ２５に通知する。
【００４３】
ＣＰＵ２５は、ＣＰＵのインターフェイスＩ／Ｆ（レジスタＩＦ）を有し、帯域制限テーブル３６から、算出された帯域制限設定値３６ｂを読み出す。また、ＣＰＵ２５は、帯域制限テーブル３６の初期化のために、帯域制限テーブル３６に初期情報を書き込むことができる。
【００４４】
また、別の一例として、ＣＰＵ２５による割り込み処理時間や帯域制限テーブル３６の読み出し時間を削減するために、割り込みではなく、ＣＰＵ２５のインターフェイスＩ／Ｆ（ＣＰＵＩＦ）に直接、帯域制限レジスタ３１への書き込みのためのアクセス（レジスタライトアクセス）を発生させることもできる。この場合、ブロック図のＣＰＵ２５のインターフェイスＩ／Ｆモジュール（ＣＰＵＩＦ）には、ＣＰＵ２５からのレジスタアクセスと帯域制限保持部３８からのレジスタアクセスを選択する機構が加わる。
【００４５】
また、別の一例として、ＣＰＵ２５は、帯域制限テーブル３６の初期化時、帯域制限テーブル３６への書き込み（テーブルライト）をレジスタに書き込む（レジスタライト）のではなく、メモリのようにバースト転送することもできる。これにより、帯域制限テーブル３６を初期化するための時間を短縮することができ、ユーザが画像処理装置を利用できるまでの時間を短縮できる。
【００４６】
また、別の一例として、帯域制限テーブル３６の容量を削減するために、帯域制限保持部３８中にバスマスタ動作状況（動作ステータス３６ａ）と帯域制限設定値３６ｂとを可逆圧縮・伸長する機構を導入することもできる。この場合、各バスマスタの動作ステータス３６ａの組み合わせは可逆圧縮された符号として帯域制限テーブル３６に記憶される。これによれば、帯域制限テーブル３６のデータ量を圧縮することができるため、メモリの削減が可能となり、コスト削減を図ることができる。また、帯域制限保持部３８は、圧縮符号化された帯域制限設定値３６ｂを有することもできる。この場合、バスマスタ動作状況（動作ステータス３６ａ）を圧縮して帯域制限テーブル３６内で一致するものを選択し、圧縮された帯域制限設定値３６ｂを伸長してＣＰＵ２５側へ返す。この場合、バスマスタ動作状況（動作ステータス３６ａ）と帯域制限設定値３６ｂとは必ずしも同じ圧縮方式である必要はない。
【００４７】
なお、ＣＰＵ２５は、帯域制限保持部３８により算出された各バスマスタのメモリ帯域制限設定値をバス調停部４０に動的に設定する制御手段の一例である。制御手段は、バス調停部３０に対するレジスタアクセスバスであってもよく、該レジスタアクセスバスとＣＰＵ２５からのレジスタアクセスバスとを選択的にアクセス可能である。これによれば、ハードウエアにより処理が行われるため、ＣＰＵ２５によるソフトウエア制御に比べて、メモリ帯域制限設定値をバス調停部４０に動的に設定する処理スピードを高速化することができる。これにより、装置性能の向上を図ることができる。
【００４８】
（ライン周期信号を加味した帯域制限制御）
次に、別の一例として、ライン周期信号を加味した帯域制限制御について、図５を参照しながら説明する。エンジン転送は１ページの画像を転送する際にライン転送を繰り返すため、エンジン転送の帰線期間中、エンジンバスマスタの転送は発生しない。このため、帯域制限保持部３８中の帯域制限判定部３５に、エンジンバスマスタの転送が発生しないエンジン転送の帰線期間を検出する機能を有することもできる。
【００４９】
具体的には、バスマスタの１ライン転送終了時点Ａから次のラインのライン周期信号発生時点Ｂまでを起算期間として、バスマスタ動作信号とアンド（ＡＮＤ）を取る。このようにしてエンジンバスマスタの転送が発生しないエンジン転送の帰線期間を検出し、検出信号を帯域制限保持部３８（帯域制限判定部３５）へのバスマスタ動作信号として出力する。
【００５０】
帯域制限保持部３８は、バスマスタ動作信号を入力すると、エンジン転送のバスマスタによるデータのライン転送の帰線期間中、エンジン転送のバスマスタ（エンジンバスマスタ２２）の動作ステータスをオフと判定する。これにより、エンジンバスマスタ２２の転送が発生しないエンジン転送の帰線期間には、エンジンバスマスタ２２用に確保されたメモリ帯域を他のバスマスタに開放して、他のバスマスタに利用させることによりメモリの有効利用を図ることができる。この結果、装置全体の処理速度を向上させることができる。
【００５１】
［画像転送動作］
次に、画像処理装置が画像転送を行うときの動作について、図６〜図８を参照しながら説明する。図６は、本実施形態に係る各バスマスタからの要求信号の一例を示す。図７は、本実施形態に係る画像転送制御処理を示すフローチャートである。図８は、本実施形態に係る画像処理装置の起動時処理を示すフローチャートである。
【００５２】
まず、図６を参照しながら、画像処理装置が画像転送を行うときの動作を簡単に説明する。画像処理装置が画像転送を行うとき、ＣＰＵ２５は複数のバスマスタを起動する。起動されたバスマスタは、メモリ３２からデータをリード（読み込み）したり、あるいは外部からの入力データに所定の処理を施してメモリ３２へライト（書き込み）したり、あるいはデータをメモリ３２を介して外部へ出力する。
【００５３】
データ処理手順に従ってデータフローが発生するため、一連の動作の間、バス調停部３０へ通知されるバスマスタからのデータ転送要求は常に同じではなく、図６に一例を示したようにデータ転送要求は随時変化する。
【００５４】
次に、図７を参照しながら、画像転送制御処理について説明する。画像転送制御処理が開始されると、ＣＰＵ２５は、複数のバスマスタを起動し、複数のバスマスタのそれぞれの制御とバス調停部３０の制御とを並行に処理する。図７のフローチャートの左から３つのラインには、ＣＰＵ２５によるＶ０１、ＶＩ０、＊＊の各バスマスタの制御が図示され、最も右のラインには、ＣＰＵ２５によるバス調停部３０の制御が図示されている。
【００５５】
ＣＰＵ２５は、通常のバスマスタの起動及び終了処理と、バス調停部３０の制御処理とを並行して行う。具体的には、ＣＰＵ２５は、通常のバスマスタの設定処理（Ｓ７０，Ｓ７６，Ｓ８２）を制御後、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）起動処理（Ｓ７２，Ｓ７８，Ｓ８４）を制御し、更に割り込み信号に基づく終了処理（Ｓ７４，Ｓ８０，Ｓ８６）と、バス調停部３０の制御（Ｓ８８，Ｓ９０，Ｓ９２，Ｓ９４）を並行して行う。
【００５６】
バス調停部３０の制御（Ｓ８８，Ｓ９０，Ｓ９２，Ｓ９４）について説明する。帯域制限保持部３８は、常に各バスマスタの動作状況を監視し（図３参照）、帯域制限テーブル３６に基づき算出された帯域制限設定値に変化があると、割り込みを発生する。
【００５７】
ＣＰＵ２５は、帯域制限設定値に変化があり、割り込み信号が発生されると（ステップＳ８８）、帯域制限テーブル３６に基づき算出された帯域制限設定値を帯域制限テーブル３６から読み込み（ステップＳ９０）、読み込んだ帯域制限設定値をバス調停部３０の帯域制限レジスタ３１にライトする（ステップＳ９２）。ＣＰＵ２５は、すべてのＤＭＡ転送が終了したかを判定し（ステップＳ９４）、すべてのＤＭＡ転送が終了するまでステップＳ８８，Ｓ９０，Ｓ９２，Ｓ９４の処理を繰り返し、すべてのＤＭＡ転送が終了したら画像転送制御処理を終了する。これにより、ＣＰＵ２５は、割り込み処理を高速に実行することができる。
【００５８】
バス調停部３０は、新たに設定された帯域制限レジスタ３１の帯域制限設定値に基づいて、各バスマスタからのデータ転送を制限する。
【００５９】
なお、ＣＰＵ２５は、電源オン時や省エネ復帰時にシステムを初期化する際、帯域制限テーブル３６の初期化を行う。初期化のためのデータはＲＯＭやＨＤＤなどの不揮発媒体に格納されており、そこから読み出して帯域制限テーブル３６に設定する。このようにＣＰＵ２５が帯域制限テーブル３６を初期化する際、ＣＰＵ２５は、各バスマスタのメモリ帯域制限設定値をメモリ領域からＤＭＡ転送することができる。これにより、帯域制限テーブル３６の初期化時間を短縮することができる。
【００６０】
［効果］
以上、本実施形態に係る画像処理装置は、帯域制限テーブル３６と、帯域制限保持部３８と、バス調停部３０の帯域制限機能と、ＣＰＵ２５により随時行われる帯域制限設定制御とを有する。そして、本実施形態に係る画像処理装置は、バス調停部３０の各バスマスタの帯域制限の条件となる帯域制限レジスタ３１への帯域制限設定値の設定において以下の特徴を有する。
【００６１】
すなわち、バス調停部３０は、バスマスタの組み合わせ毎の各バスマスタの帯域制限設定値を帯域制限レジスタ３１に保持する。そして、バス調停部３０は、複数のバスマスタの動作状況を常時監視し、複数のバスマスタの動作状況に応じて帯域制限設定値の変更が必要になったとき、随時、帯域制限レジスタ３１が動的に変更される。
【００６２】
これによれば、メモリ３２の利用可能帯域は常に１００％近くになり、メモリの帯域利用率を常に１００％近くに保持し続けることができる。これにより、画像処理装置の処理速度の向上、操作レスポンスの向上、外部デバイスの転送速度の向上などの効果を得ることができ、画像処理装置を利用するユーザの利便性を高めることができる。
【００６３】
（変形例）
最後に取り得る変形例について簡単に説明する。上記実施形態の変形例では、帯域制限保持部３８は、帯域制限テーブル３６に各バスマスタの優先順位情報を記憶してもよい。この場合、バス調停部３０は、帯域制限テーブル３６に記憶された優先順位情報に基づき、優先順位の高いバスマスタのデータ転送を優先順位の低いバスマスタのデータ転送より優先するようにメモリ帯域制限を調整してもよい。これにより、バスマスタの動作状況に応じて優先順位を変更できるため、一般に優先順位が低いデバイスの転送性能を向上させる等、デバイスの転送性能の適正化を測ることができる。
【００６４】
＜おわりに＞
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明の技術的範囲はかかる例に限定されない。本発明の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属する。
【００６５】
例えば、帯域制限テーブルは、帯域制限保持部に保持されてもよいし、帯域制限保持部以外に保持されてもよい。また、帯域制限テーブルの情報は、ＡＳＩＣ内の記憶領域に記憶されていることが好ましいが、ＡＳＩＣ外の記憶領域に記憶されてもよい。
【００６６】
また、各バスマスタは、バス調停部３０に設定された各バスマスタのメモリの帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するバースト長をデフォルト値よりも低くしてもよい。これにより、１バスマスタあたりの帯域が低下しているときに、複数のバスマスタ間で残されたメモリ帯域をより均等にシェアすることができる。これにより、特定のバスマスタのみが過度にメモリ帯域を制限されることを避け、極端な性能劣化を回避できる。
【００６７】
また、各バスマスタは、バス調停部３０に設定された各バスマスタのメモリ帯域制限設定値がデフォルト値よりも低い場合、自バスマスタから要求するリクエスト数（アウトスタンディングリクエスト数）の上限をデフォルト値よりも低くしてもよい。これによっても、１バスマスタあたりの帯域が低下しているときに、複数のバスマスタ間で残されたメモリ帯域をより均等にシェアすることができる。これにより、特定のバスマスタのみが過度にメモリ帯域を制限されることを避け、極端な性能劣化を回避できる。
【００６８】
なお、ＣＰＵ２５により実行される各機能を実現するためのプログラムは、はじめから図示しないコンピュータに備えられた図示しないＲＯＭあるいはＨＤＤ等の記憶手段に格納されてもよいし、記録媒体であるＣＤ−ＲＯＭあるいはフレキシブルディスク，ＳＲＡＭ，ＥＥＰＲＯＭ，メモリカード等の不揮発性記録媒体（メモリ）に記録され、メモリに記録されたプログラムをコンピュータにインストールしてＣＰＵ２５に実行させるか、又はＣＰＵ２５にそのメモリからこのプログラムを読み出して実行させてもよい。さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードすることもできる。
【符号の説明】
【００６９】
１０    コントローラＡＳＩＣ
２２    エンジンバスマスタ
２４    画像処理バスマスタ
２６    ＣＰＵバスマスタ
２８    ＩＯバスマスタ
３０    バス調停部
３１    帯域制限レジスタ
３２    メモリ
３３    有効転送カウンタ
３４    メモリコントローラ
３５    帯域制限判定部
３６    帯域制限テーブル
３６ａ  動作ステータス（バスマスタ動作状況）
３６ｂ  帯域制限設定値
３７    有効転送カウンタ値
３８    帯域制限保持部
４０    割り込み制御部
【先行技術文献】
【特許文献】
【００７０】
【特許文献１】特開２００５−５６２３９号公報
【図１】
2013196667.tif 000003
【図２】
2013196667.tif 000004
【図３】
2013196667.tif 000005
【図４】
2013196667.tif 000006
【図５】
2013196667.tif 000007
【図６】
2013196667.tif 000008
【図７】
2013196667.tif 000009
【図８】
2013196667.tif 000010