(57)【要約】【課題】画像処理装置における回路規模の増加を抑えつつ、画像処理装置に接続されたデバイスによるメモリリードのレイテンシを削減すること。【解決手段】画像記憶媒体から画像データを取得して処理する画像処理部を複数含む画像処理装置であって、読出命令に従って画像記憶媒体から画像データを読み出し、該画像データを格納する処理対象画像記憶媒体に、読み出した該画像データを記憶させるデータ記憶処理部と、複数の画像処理部の１つが取得するべき画像データの画像記憶媒体における記憶領域を示す所定の制御情報を格納する制御情報記憶媒体に、所定の制御情報を記憶させる記憶媒体制御部と、複数の画像処理部の動作状況に応じて、複数の画像処理部のうち、所定の制御情報において示されている記憶領域から画像データを取得するべき画像処理部に処理対象画像記憶媒体から画像データを取得させるように切り替える切替制御部とを含むことを特徴とする。【選択図】図１４
2015233235.tif 000002
【特許請求の範囲】
【請求項１】
画像データを格納する画像記憶媒体から画像データを取得して処理する画像処理部を複数含む画像処理装置であって、
処理されるべき画像データを読み出す読出命令に従って前記画像記憶媒体から画像データを読み出し、該画像データを格納する記憶媒体である処理対象画像記憶媒体に、読み出した該画像データを記憶させるデータ記憶処理部と、
前記複数の画像処理部の１つが取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報を格納する記憶媒体である制御情報記憶媒体に、前記所定の制御情報を記憶させる記憶媒体制御部と、
前記複数の画像処理部の動作状況に応じて、前記複数の画像処理部のうち、前記所定の制御情報において示されている記憶領域から画像データを取得するべき画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える切替制御部と
を含むことを特徴とする画像処理装置。
【請求項２】
前記複数の画像処理部それぞれには、前記処理対象画像記憶媒体からの画像データの取得について優先順位が設定されており、
前記記憶媒体制御部は、前記優先順位の異なる前記画像処理部それぞれが取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報それぞれを、複数の前記制御情報記憶媒体に記憶させ、
前記切替制御部は、前記複数の制御情報記憶媒体それぞれに記憶されている前記所定の制御情報において示されている記憶領域から画像データを取得するべき画像処理部うちの１つである対象画像処理部が新たに前記画像データを取得する際、前記対象画像処理部よりも優先順位の高い他の画像処理部が前記処理対象画像記憶媒体から画像データを取得中である場合を除いて、前記複数の制御情報記憶媒体それぞれに記憶されている複数の所定の制御情報のうち、前記対象画像処理部が取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報が用いられるように切り替え、前記対象画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記前記切替制御部は、
優先順位の高い前記他の画像処理部が前記処理対象画像記憶媒体から画像データを取得中である場合、前記複数の所定の制御情報のうち、前記他の画像処理部が取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報が用いられるように切り替え、前記他の画像処理部に前記処理対象画像記憶媒体から画像データを取得させ前記対象画像処理部に前記画像記憶媒体から画像データを取得させるように切り替え、
前記対象画像処理部による画像データの取得が完了する前に前記他の画像処理部による画像データの取得が完了すると、前記複数の所定の制御情報のうち、前記対象画像処理部が取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報が用いられるように切り替え、前記対象画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記切替制御部は、
前記対象画像処理部による画像データの取得が完了する前に前記他の画像処理部による画像データの取得が完了すると、前記対象画像処理部により処理される画像データが取得すべき残りのデータ量を算出し、
算出された前記残りのデータ量に応じて、前記複数の所定の制御情報のうち、前記対象画像処理部が取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報が用いられるように切り替え、前記対象画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記切替制御部は、前記対象画像処理部が前記処理対象画像記憶媒体から画像データを取得中に前記他の画像処理部による前記画像記憶媒体からの画像データの読出命令が発行された場合、前記複数の所定の制御情報のうち、前記他の画像処理部が取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報が用いられるように切り替え、前記他の画像処理部に前記処理対象画像記憶媒体から画像データを取得させ前記対象画像処理部に前記画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする請求項２〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記複数の画像処理部それぞれには、前記処理対象画像記憶媒体からの画像データの取得について優先順位が設定されており、
前記記憶媒体制御部は、前記複数の画像処理部のうちの１つが新たに前記画像データを取得する際、新たに前記画像データを取得する画像処理部である対象画像処理部よりも優先順位の高い他の画像処理部が前記処理対象画像記憶媒体から画像データを取得中である場合を除いて、前記所定の制御情報を前記制御情報記憶媒体に記憶させ、
前記切替制御部は、優先順位の高い前記他の画像処理部が前記処理対象画像記憶媒体から画像データを取得中である場合を除いて、前記対象画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記優先順位は、前記画像処理部において実行される処理の種類に応じて設定される
ことを特徴とする請求項１〜６のいずれか１項に記載の画像処理装置。
【請求項８】
前記優先順位は、前記画像処理部に対応するバスの種別に応じてさらに設定される
ことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
画像データを格納する画像記憶媒体から画像データを取得して処理する画像処理部を複数含む画像処理装置の制御方法であって、
前記画像処理装置は、処理されるべき画像データを読み出す読出命令に従って前記画像記憶媒体から画像データを読み出し、該画像データを格納する記憶媒体である処理対象画像記憶媒体に、読み出した該画像データを記憶させるデータ記憶処理部を含み、
前記複数の画像処理部の１つが取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報を格納する記憶媒体である制御情報記憶媒体に、前記所定の制御情報を記憶させ、
前記複数の画像処理部の動作状況に応じて、前記複数の画像処理部のうち、前記所定の制御情報において示されている記憶領域から画像データを取得するべき画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える
ことを特徴とする画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理装置の制御方法に関し、特に、メモリリードのレイテンシ削減のための処理に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ及び書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。
【０００３】
このような画像処理装置においては、プリント処理やスキャナ処理等のライン等時性を確保する必要がある処理もあれば、画像処理装置に蓄積された画像データのフォーマットを変換してＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）に送信する等のライン及びページの等時性の確保を必要としない処理もある。ライン及びページの等時性の確保を必要としない処理は、オプション機能として別デバイス（以下、「オプションデバイス」とする）で構成される場合があり、必要に応じてオプションデバイスが画像処理装置のメインチップのバスに接続されて用いられる場合がある。
【０００４】
画像処理装置のメインチップは、近年高速シリアルＩ／Ｆに置き換わっている一方、上述のようなオプションデバイスは、過去に開発されたパラレルバスＩ／Ｆのデバイスのままである場合も多い。この場合、オプションデバイスをメインチップのバスに接続するためには、オプションデバイスとメインチップのバスとの間に、高速シリアルＩ／ＦとパラレルバスＩ／Ｆとを変換する変換ブリッジを設ける必要がある。また、複数のオプションデバイスがメインチップのバスに接続される場合は、変換ブリッジの他にスイッチを設ける必要がある。
【０００５】
このようなオプションデバイスを、変換ブリッジ及びスイッチを介してメインチップのバスに接続する場合、オプションデバイスとメインメモリとの距離が遠いので、リードアクセスのレイテンシがさらに大きくなり、メモリリードのパフォーマンスが悪化する。
【０００６】
メモリリードレイテンシを増加させることなくデバイスによるメモリアクセスを効率良く実行可能にすることを目的として、アクセス履歴またはアクセス特性情報を参照し、連続メモリ領域をアクセスする傾向にある場合にのみ、メモリリード要求で指定されたメモリ領域に加え、該メモリ領域に連続するメモリ領域のデータを先行して読出す制御を行い、連続メモリ領域をアクセスする傾向にない場合は、指定されたメモリ領域のみのデータ読出しを実行することが開示されている（例えば、特許文献１を参照）。
【０００７】
また、データの等時性と複数のアプリケーションの生産性の向上を図ることを目的として、画像データの主走査サイズが格納可能な複数のラインメモリの状態を監視して、データの格納されるメモリへのアクセス要求を調停するアービタに対するメモリリード要求の発行を、該ラインメモリの監視結果に基づいて制御することが開示されている（例えば、特許文献２を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のような画像処理装置におけるリードアクセスのレイテンシを削減するために、メインメモリとメインチップのバスに接続されている各オプションデバイスとの間にそれぞれバッファを設けて、メインメモリのデータをバッファに予め転送しておくことが考えられる。これにより、オプションデバイスは、メインメモリに直接アクセスするのではなく、バッファに転送されたデータをリードすることで、レイテンシを削減することが考えられる。しかしながら、この場合、オプションデバイスそれぞれに対してバッファやバッファにデータを転送するためのＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）を設ける必要があるので、回路規模が増加してしまう。
【０００９】
特許文献１及び特許文献２に開示された技術では、ＤＭＡＣ及びバッファを使用することによる回路規模の増加については考慮されていない。
【００１０】
本発明は、このような課題を解決するためになされたものであり、画像処理装置における回路規模の増加を抑えつつ、画像処理装置に接続されたデバイスによるメモリリードのレイテンシを削減することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様は、画像データを格納する画像記憶媒体から画像データを取得して処理する画像処理部を複数含む画像処理装置であって、処理されるべき画像データを読み出す読出命令に従って前記画像記憶媒体から画像データを読み出し、該画像データを格納する記憶媒体である処理対象画像記憶媒体に、読み出した該画像データを記憶させるデータ記憶処理部と、前記複数の画像処理部の１つが取得するべき画像データの前記画像記憶媒体における記憶領域を示す所定の制御情報を格納する記憶媒体である制御情報記憶媒体に、前記所定の制御情報を記憶させる記憶媒体制御部と、前記複数の画像処理部の動作状況に応じて、前記複数の画像処理部のうち、前記所定の制御情報において示されている記憶領域から画像データを取得するべき画像処理部に前記処理対象画像記憶媒体から画像データを取得させるように切り替える切替制御部とを含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、画像処理装置における回路規模の増加を抑えつつ、画像処理装置に接続されたデバイスによるメモリリードのレイテンシを削減することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係る画像処理装置の従来からの構成を例示するブロック図である。
【図２】本発明の実施形態に係る画像処理装置におけるメモリリードアクセスの態様を例示する図である。
【図３】本発明の実施形態に係る画像処理装置におけるメインメモリ２０とオプションデバイスとを接続する経路を例示する図である。
【図４】本発明の実施形態に係る画像処理装置における動作の比較例としてオプションデバイス及びエンジンＡＳＩＣそれぞれがメインメモリに記憶されている画像データを読み出す場合のパスを例示する図である。
【図５】本発明の実施形態に係る画像処理装置における動作の比較例としてオプションデバイスがメインメモリに記憶されている画像データを読み出す場合の従来の動作例を示すシーケンス図である。
【図６】本発明の実施形態に係る画像処理装置においてエンジンＡＳＩＣがメインメモリに記憶されている画像データを読み出す場合の動作例を示すシーケンス図である。
【図７】本発明の実施形態に係る画像処理装置におけるエンジンＡＳＩＣのＤＭＡＣレジスタに設定されているリードアクセスのアドレスの位置を例示する図である。
【図８】本発明の実施形態に係る画像処理装置の構成を例示するブロック図である。
【図９】本発明の実施形態に係るオプションデバイスに関する情報を例示するテーブルである。
【図１０】本発明の実施形態に係るレジスタ制御部によるレジスタ制御を例示するフローチャートである。
【図１１】本発明の実施形態に係るＴＬＰのメモリリードコマンドのヘッダ構造を例示する図である。
【図１２】本発明の実施形態に係るアクセス制御部の処理を例示するフローチャートである。
【図１３】本発明の実施形態に係る画像処理装置におけるオプションデバイスがメインメモリに記憶されている画像データを読み出す場合のパスを例示する図である。
【図１４】本発明の実施形態に係る画像処理装置における動作例を示すシーケンス図である。
【図１５】本発明の実施形態に係る画像処理装置における動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、オプションデバイスがバスを介してメインチップに接続されている画像処理装置を例として説明する。また、本実施形態においては、オプションデバイスが行う処理は、画像データのフォーマットを変換してＰＣに送信する等のライン及びページの等時性の確保を必要としない処理であり、以降「オプション処理」とする。
【００１５】
図１は、本実施形態に係る画像処理装置１の従来からの構成を例示するブロック図である。図１に示すように、画像処理装置１は、メインチップであるコントローラＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１００、オプション処理を行う画像処理部であるオプションデバイス１２０（以降、「オプションＡ」とする）、オプション処理を行う画像処理部であるオプションデバイス１３０（以降、「オプションＢ」とする）、ＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−Ｃｈｉｐ）１０、メインメモリ２０、スイッチ３０、ブリッジ４０、プリンタ処理やスキャナ処理等のライン等時性の確保を必要とする処理を行う画像処理部であるエンジンＡＳＩＣ１４０及びエンジンＡＳＩＣ１４０を制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０を含む。
【００１６】
ＳｏＣ１０は、コントローラＡＳＩＣ１００、オプションＡ及びオプションＢを制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメインメモリ２０のインタフェース、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）やＥｔｈｅｒｎｅｔ（登録商標）等のデータ入出力のインタフェースを備える。メインメモリ２０は、画像処理装置１を制御するためのプログラム、画像データを格納するとともに、ＣＰＵのワーク領域として用いられる。すなわち、メインメモリ２０は、画像データを格納する記憶媒体である画像記憶媒体として機能する。
【００１７】
スイッチ３０は、１つのシリアルバスＩ／Ｆを分岐させて、複数のシリアルバスＩ／ＦのデバイスとコントローラＡＳＩＣ１００との接続を切り替える。ブリッジ４０は、パラレルバスＩ／Ｆによる接続とシリアルバスＩ／Ｆによる接続とを変換する。例えば、オプションＡは、パラレルバスＩ／Ｆによる接続に対応しているので、パラレルバスＩ／Ｆによる接続１５４がブリッジ４０を介してシリアルバスＩ／Ｆによる接続に変換されてスイッチ３０に接続されることにより、コントローラＡＳＩＣ１００と接続される。一方、オプションＢは、シリアルバスＩ／Ｆによる接続に対応しているので、スイッチ３０とシリアルバス接続１５５により直接接続されることにより、コントローラＡＳＩＣ１００と接続される。
【００１８】
コントローラＡＳＩＣ１００は、シリアル通信部１０１、１０２、１０３、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）レジスタ１０４、リードＤＭＡＣ１０５、出力画像編集部１０６及び出力データバッファ１０７を含む。また、シリアル通信部１０１、シリアル通信部１０２、ＤＭＡＣレジスタ１０４、リードＤＭＡＣ１０５は、内部バス１０８を介して互いに接続されている。
【００１９】
シリアル通信部１０１は、コントローラＡＳＩＣ１００とＳｏＣ１０とを接続するインタフェースであり、これによりシリアルバス接続１５１が確立される。シリアル通信部１０２は、コントローラＡＳＩＣ１００とスイッチ３０とを接続するインタフェースであり、これにより、シリアルバス接続１５２が確立される。シリアル通信部１０３は、コントローラＡＳＩＣ１００と後述するエンジンＡＳＩＣ１４０のシリアル通信部１４１とを接続するインタフェースであり、これによりシリアルバス接続１５６が確立される。
【００２０】
ＤＭＡＣレジスタ１０４は、後述するリードＤＭＡＣ１０５を制御するための制御情報を格納する記憶媒体（制御情報記憶媒体）であり、ＳｏＣ１０によりシリアルバス接続１５１を介して制御情報が設定される。制御情報は、例えば、メインメモリ２０から読み出す画像データの開始アドレス、画像データのイメージ幅、ライン数である。すなわち、制御情報は、オプションＡ、オプションＢ及びエンジンＡＳＩＣ１４０等の画像処理部が取得するべき画像データのメインメモリ２０における記憶領域を示す所定の制御情報である。
【００２１】
リードＤＭＡＣ１０５は、ＳｏＣ１０からの制御により起動し、リードコマンドＤＭＡＣレジスタ１０４に記憶されている制御情報に従ってメインメモリ２０に記憶されている画像データを読み出し、後段のブロックへ出力する。出力画像編集部１０６は、必要に応じて、リードＤＭＡＣ１０５により読み出された画像データの端部の削除や追加等の編集処理を行い、出力データバッファ１０７に対して出力する。すなわち、リードＤＭＡＣ１０５は、読出命令に従ってメインメモリ２０から画像データを読み出して、出力データバッファに記憶させるデータ記憶処理部として機能する。
【００２２】
出力データバッファ１０７は、出力画像編集部１０６から出力された画像データを格納する記憶媒体である。すなわち、出力データバッファ１０７は、リードＤＭＡＣ１０５によりメインメモリ２０から読み出された処理されるべき画像データを予め格納する処理対象画像記憶媒体として機能する。出力データバッファ１０７に記憶された画像データは、シリアルバス接続１５６を介して、後述するエンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３により読み出される。
【００２３】
オプションＡは、パラレル通信部１２１、ＤＭＡＣレジスタ１２２、リードＤＭＡＣ１２３、オプション処理部１２４及びライトＤＭＡＣ１２５を含む。パラレル通信部１２１は、パラレルバス接続を行うためのインタフェースである。ＤＭＡＣレジスタ１２２は、後述するリードＤＭＡＣ１２３を制御するための制御情報を格納する記憶媒体であり、ＳｏＣ１０によりコントローラＡＳＩＣ１００（シリアルバス接続１５１）、スイッチ３０（シリアルバス接続１５２）及びブリッジ４０（パラレルバス接続１５４）を介して設定される。
【００２４】
リードＤＭＡＣ１２３は、ＳｏＣ１０からの制御により起動し、ＤＭＡＣレジスタ１２２に記憶されている制御情報に従ってメインメモリ２０に記憶されている画像データを読み出し、オプション処理部１２４に対して出力する。オプション処理部１２４は、リードＤＭＡＣ１２３により読み出された画像データに対してオプション処理を行い、ライトＤＭＡＣ１２５に対して出力する。オプション処理は、例えば、画像のフォーマット変換（ＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）及びＣＭＹＫ（Ｃｙａｎ，Ｍａｇｅｎｔａ，Ｙｅｌｌｏｗ，ｂｌａｃＫ）相互の色変換）、圧縮、伸長、縮小、拡大である。
【００２５】
ライトＤＭＡＣ１２５は、オプション処理部１２４により処理された画像データを、メインメモリ２０に書き込む。なお、オプションＢは、スイッチ３０とシリアルバス接続されるので、オプションＡのパラレル通信部１２１がシリアル通信部に置換される以外は、オプションＡの構成と同様の構成である。
【００２６】
エンジンＡＳＩＣ１４０は、シリアル通信部１４１、ＤＭＡＣレジスタ１４２及びリードＤＭＡＣ１４３を含む。シリアル通信部１４１は、エンジンＡＳＩＣ１４０とコントローラＡＳＩＣ１００とを接続するためのインタフェースであり、これによりシリアルバス接続１５６が確立される。
【００２７】
ＤＭＡＣレジスタ１４２は、後述するリードＤＭＡＣ１４３を制御するための制御情報を格納する記憶媒体であり、エンジンＣＰＵ５０から設定される。リードＤＭＡＣ１４３は、エンジンＣＰＵ５０からの制御により起動し、ＤＭＡＣレジスタ１４２に記憶されている制御情報に従って、メインメモリ２０又は出力データバッファ１０７に記憶されている画像データを読み出す。
【００２８】
なお、リードＤＭＡＣ１４３により読み出された画像データは、例えば、エンジンＡＳＩＣ１４０に含まれる図示しない処理部によりプリント処理、スキャナ処理、スキャナ処理により読み取られた画像の補正処理等が行われる。また、エンジンＡＳＩＣ１４０に含まれる処理部により処理された画像（例えば、スキャナ処理により生成された読取画像）は、図示しないライトＤＭＡＣによりメインメモリ２０に書き込まれてもよい。
【００２９】
上述したリードＤＭＡＣ１０５、１２３、１４３は、リードコマンドを発行することにより、メインメモリ２０からバスを介してリードコマンドに従って転送されるリードデータ（読出しデータ）を取得する（以降、このような処理を「メモリリードアクセス」とする）。メモリリードアクセスには、スプリットトランザクション型及びインターロック型がある。
【００３０】
図２は、メモリリードアクセスの態様を例示する図である。図２（ａ）は、スプリットトランザクション型のメモリリードアクセスの態様を例示する図であり、図２（ｂ）は、インターロック型のメモリリードアクセスの態様を例示する図である。
【００３１】
スプリットトランザクション型のメモリリードアクセスでは、リードコマンドに従ってリードデータの転送が完了する前に、次のリードコマンドを発行することができる。例えば、図２（ａ）に示すように、まず、リードコマンド０（ＲＣ０）に従って転送されるリードデータ０（ＲＤ０）の転送が完了する前に、リードコマンド１（ＲＣ１）及びリードコマンド２（ＲＣ２）が順に発行される。以降、ＲＣ０に従いＲＤ０の転送が完了すると、先に発行したすべてのリードコマンドに対するリードデータの転送が完了する前に、ＲＣ３が発行される。同様に、ＲＣ１に従いＲＤ１の転送が完了するとＲＣ４が発行され、ＲＣ２に従いＲＤ２の転送が完了するとＲＣ５が発行される。
【００３２】
このように、スプリットトランザクション型のメモリリードアクセスでは、リードデータの転送が完了する前に、複数のリードコマンドを先行して発行することができるので、メモリリードアクセスのレイテンシＴが大きい場合であっても、効率よくリードデータを転送することができ、メモリリードのパフォーマンスが向上する。
【００３３】
一方、インターロック型のメモリリードアクセスでは、リードコマンドに従ってリードデータの転送が完了するまでバスが使用できず、次のリードコマンドを発行することができない。例えば、図２（ｂ）に示すように、リードコマンド０（ＲＣ０）に従ってリードデータ０（ＲＤ０）の転送が完了した後に、リードコマンド１（ＲＣ１）が発行される。そして、ＲＣ１に従ってリードデータ１（ＲＤ１）の転送が完了した後に、リードコマンド（ＲＣ２）が発行される。そして、ＲＣ２に従ってリードデータ２（ＲＤ２）の転送が完了する。
【００３４】
このように、インターロック型のメモリリードアクセスでは、メモリリードアクセスのレイテンシＴが大きい場合、メモリリードの帯域が落ちてしまう場合があり、スプリットトランザクション型のメモリリードアクセスに比べて、リードデータの転送効率が悪い。
【００３５】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）−Ｅｘｐｒｅｓｓ等の高速シリアルＩ／ＦやＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）、ＯＣＰ（Ｏｐｅｎ  Ｃｏｒｅ  Ｐｒｏｔｏｃｏｌ）等のＡＳＩＣの内部バスは、スプリットトランザクション型のメモリリードアクセスに対応しているが、レガシＰＣＩはインターロック型のメモリリードアクセスに対応している。
【００３６】
なお、図１に示した画像処理装置１においては、内部バス１０８及びシリアルバス接続１５１、１５２、１５３、１５５、１５６がスプリットトランザクション型のメモリリードアクセスに対応し、パラレルバス接続１５４がスプリットトランザクション型に非対応のインターロック型メモリリードアクセス対応である。
【００３７】
図１に示した画像処理装置１の構成においては、コントローラＡＳＩＣ１００がシリアルバス接続に対応している。ここで、図１に示した画像処理装置１のようにコントローラＡＳＩＣ１００がシリアルバス接続に対応している場合と、パラレルバス接続に対応している場合との違いを説明する。
【００３８】
図３は、メインメモリ２０とオプションＡ及びオプションＢとを接続する経路を例示する図である。図３（ａ）は、コントローラＡＳＩＣ１００がパラレルバス接続に対応している場合の接続経路を例示する図であり、図３（ｂ）は、コントローラＡＳＩＣ１００がシリアルバス接続に対応している場合の接続経路を例示する図である。
【００３９】
図３（ａ）に示すように、コントローラＡＳＩＣ１００がパラレルバス接続に対応している場合、１つのパラレルバス上に複数のオプションデバイスを接続することができる。そのため、例えば、オプションＡは、メインメモリ２０から、ＳｏＣ１０、コントローラＡＳＩＣ１００を介してデータを読み出すことができる。
【００４０】
しかしながら、近年は、バスの高速化やピン数を削減するためにＬＳＩ（Ｌｅｇａｌ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の外部Ｉ／Ｆとしてシリアルバスが主流となっている。コントローラＡＳＩＣ１００がシリアルバス接続（高速シリアルＩ／Ｆ）に対応している場合、接続はポイントツーポイントである。そのため、複数のオプションデバイスを接続するためには、複数のシリアルバスＩ／Ｆを設けるか、スイッチ３０を使用して１つのシリアルバスＩ／Ｆを分岐させる必要がある。
【００４１】
オプションデバイスは、必要に応じて画像処理装置１のメインチップにバスを介して接続されるので、接続される数が変動する場合も多い。そのため、コントローラＡＳＩＣ１００にオプションデバイスの数に応じて複数のシリアルバスＩ／Ｆを設けるよりは、スイッチ３０が使用されることが多い。また、パラレルバス接続に対応するオプションデバイスは、ブリッジ４０を介してスイッチ３０に接続される。
【００４２】
このような場合、例えば、オプションＡは、図３（ｂ）に示すようにメインメモリ２０から、ＳｏＣ１０、コントローラＡＳＩＣ１００、スイッチ３０及びブリッジ４０を介してデータを読み出すことができる。このように、コントローラＡＳＩＣ１００がシリアルバス接続に対応する場合、パラレルバス接続に対応する場合に比べて、メインメモリ２０からオプションＡまでの経路が長くなり、レイテンシが大きくなる。
【００４３】
オプションデバイスは、過去に開発されたものをそのまま使用することも多いので、上述したレガシＰＣＩ等のインターロック型のパラレルバスＩ／Ｆを有する場合も多い。インターロック型のパラレルバスＩ／Ｆを有するオプションデバイスを画像処理装置１のメインチップに接続する場合、図３（ｂ）に示した接続経路となるため、レイテンシが大きくなり、メモリリードのパフォーマンスが悪い。
【００４４】
これが本実施形態において解決するべき根本的な課題である。このような課題を解決するために、図１に示したリードＤＭＡＣ１０５及び出力データバッファ１０７と同様のリードＤＭＡＣ及びバッファを、コントローラＡＳＩＣ１００に接続されているインターロック型のパラレルバスＩ／Ｆを有するオプションデバイスの数分設けることが考えられる。
【００４５】
これにより、メインメモリ２０に記憶されている画像データが一旦バッファに記憶され、オプションデバイスはバッファに記憶された画像データを読み出せばよいので、レイテンシを小さくできると考えられる。しかしながら、このようなオプションデバイスが接続される数は変動し、接続されている数の分リードＤＭＡＣ及び出力データバッファを設けなければならないので、コントローラＡＳＩＣ１００の回路規模が増加する。
【００４６】
本実施形態に係る要旨は、インターロック型のパラレルバスＩ／Ｆを有するオプションデバイスが接続される画像処理装置１において、回路規模の増加を抑えつつ、このようなオプションデバイスによるメモリリードのレイテンシを削減することにある。
【００４７】
ここで、本実施形態に係る画像処理装置１における動作の比較例として、図１に示した画像処理装置１における従来の動作を図４〜図７を参照して説明する。図４は、画像処理装置１において、オプションＡ、オプションＢ及びエンジンＡＳＩＣ１４０それぞれのリードＤＭＡＣがメインメモリ２０に記憶されている画像データを読み出す場合のパスを例示する図である。
【００４８】
なお、本実施形態においては、オプションＡがインターロック型のパラレルバスＩ／Ｆを有するデバイスであり、オプションＢ及びエンジンＡＳＩＣ１４０がストリップトランザクション型のシリアルＩ／Ｆを有するデバイスである。
【００４９】
図４において太い点線矢印で示すように、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出す場合のパスは、メインメモリ２０から順にＳｏＣ１０、シリアル通信部１０１、シリアル通信部１０２、スイッチ３０、ブリッジ４０、パラレル通信部１２１、リードＤＭＡＣ１２３を通る。
【００５０】
上述したように、インターロック型のパラレルバスＩ／Ｆを有するオプションＡは、複数のリードコマンドを先行して発行することができずレイテンシが大きくなる。その上、オプションＡがメインメモリ２０に記憶されている画像データを読み出すためには、スイッチ３０及びブリッジ４０を介する必要があり、メインメモリ２０までの距離がオプションＢやエンジンＡＳＩＣ１４０よりも遠くなるので、さらにレイテンシが大きくなる。
【００５１】
また、図４において太い実線矢印で示すように、オプションＢの図示しないリードＤＭＡＣがメインメモリ２０に記憶されている画像データを読み出す場合のパスは、メインメモリ２０から順にＳｏＣ１０、シリアル通信部１０１、シリアル通信部１０２、スイッチ３０、オプションＢの図示しないシリアル通信部、リードＤＭＡＣを通る。
【００５２】
スプリットトランザクション型のシリアルバスＩ／Ｆを有するオプションＢは、複数のリードコマンドを先行して発行することができるので、オプションＡの場合よりもレイテンシは小さくなる。また、オプションＢがメインメモリ２０に記憶されている画像データを読み出す場合は、ブリッジ４０を介する必要がないので、オプションＡの場合よりもメインメモリ２０までの距離が近くレイテンシも小さい。
【００５３】
また、図４において太い一点鎖線の矢印で示すように、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３がメインメモリ２０に記憶されている画像データを読み出す場合のパスは２段階に分けられる。まず第１段階目では、コントローラＡＳＩＣ１００のリードＤＭＡＣ１０５がメインメモリ２０に記憶されている画像データを読み出して出力データバッファ１０７に出力する。第２段階目では、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３が出力データバッファ１０７に出力された画像データを、シリアル通信部１０３及びシリアル通信部１４１を介して読み出す。
【００５４】
このような２段階のパスの場合、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３は、メインメモリ２０に直接アクセスしないので、直接アクセスする場合よりもレイテンシを小さくすることができる。エンジンＡＳＩＣ１４０は、プリント処理やスキャナ処理等を行うので画像データのライン等時性を確保する必要があり、特にレイテンシを抑える必要があるので、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３によるメモリリードは、このような構成になっている。
【００５５】
図５は、本実施形態に係る画像処理装置１における動作の比較例として、オプションＡがメインメモリ２０に記憶されている画像データを読み出す場合の従来の動作例を示すシーケンス図である。なお、図５に示した各部の間の実線矢印はソフトウェアによる動作を示し、点線矢印はハードウェアによる動作を示す。図５に示すように、ＳｏＣ１０は、オプションＡのＤＭＡＣレジスタ１２２に対してレジスタの設定（制御情報の設定）を行う（Ｓ５０１）。
【００５６】
レジスタの設定を行ったＳｏＣ１０は、オプションＡのリードＤＭＡＣ１２３を起動させる（Ｓ５０２）。ＳｏＣ１０の制御により起動したリードＤＭＡＣ１２３は、ＤＭＡＣレジスタ１２２に設定されている制御情報に従い、メインメモリ２０にアクセスして画像データを読み出す（Ｓ５０３）。画像データの読み出しが完了したリードＤＭＡＣ１２３は、ＳｏＣ１０に対してデータの転送完了を通知して処理を終了する（Ｓ５０４）。
【００５７】
なお、オプションＢがメインメモリ２０に記憶されている画像データを読み出す場合の動作例も図５に示した動作例と同様である。
【００５８】
図６は、本実施形態に係る画像処理装置１においてエンジンＡＳＩＣ１４０がメインメモリ２０に記憶されている画像データを読み出す場合の動作例を示すシーケンス図である。なお、図６に示した各部の間の実線矢印はソフトウェアによる動作を示し、点線矢印はハードウェアによる動作を示す。図６に示すように、ＳｏＣ１０は、コントローラＡＳＩＣ１００のＤＭＡＣレジスタ１０４に対してレジスタの設定を行う（Ｓ６０１）。
【００５９】
また、エンジンＣＰＵ５０は、エンジンＡＳＩＣ１４０のＤＭＡＣレジスタ１４２に対してレジスタの設定を行う（Ｓ６０２）。ＤＭＡＣレジスタ１０４及びＤＭＡＣレジスタ１４２に対してレジスタの設定を行ったＳｏＣ１０は、コントローラＡＳＩＣ１００のリードＤＭＡＣ１０５を起動させる（Ｓ６０３）。
【００６０】
ＳｏＣ１０の制御により起動したリードＤＭＡＣ１０５は、ＤＭＡＣレジスタ１０４に設定されている制御情報に従い、メインメモリ２０にアクセスして画像データを読み出す（Ｓ６０４）。そして、リードＤＭＡＣ１０５は、メインメモリ２０から読み出した画像データを出力データバッファ１０７に対して出力する（Ｓ６０５）。
【００６１】
エンジンＣＰＵ５０は、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３を起動させる（Ｓ６０６）。エンジンＣＰＵ５０の制御により起動したリードＤＭＡＣ１４３は、ＤＭＡＣレジスタ１４２に設定されている制御情報に従い、出力データバッファ１０７にアクセスして画像データを読み出す（Ｓ６０７）。
【００６２】
図７は、ＤＭＡＣレジスタ１４２に設定されているリードアクセスのアドレスの位置を例示する図である。図７において斜線のハッチングで示すように、ＤＭＡＣレジスタ１４２に設定されているリードアクセスのアドレスは固定である。シリアル通信部１０３は、リードＤＭＡＣ１４３からのリードアクセスを監視し、アドレスが出力データバッファ１０７にアクセスするためのアドレスである場合、メインメモリ２０ではなく出力データバッファ１０７にアクセスしてリードＤＭＡＣ１４３に対してデータを転送する。このような構成により、リードＤＭＡＣ１４３から出力データバッファ１０７へのアクセスが実現される。
【００６３】
リードＤＭＡＣ１０５は、メインメモリ２０からの画像データの読み出しと出力データバッファ１０７への画像データの出力とが完了すると、ＳｏＣ１０に対して転送完了を通知する（Ｓ６０８）。なお、Ｓ６０８の処理はＳ６０７の処理の後に限定されるわけではなく、Ｓ６０７の処理前や処理中に実行されてもよい。また、リードＤＭＡＣ１４３は、出力データバッファからの画像データの読み出しが完了すると、ＳｏＣ１０に対して転送完了を通知して処理を終了する（Ｓ６０９）。
【００６４】
コントローラＡＳＩＣ１００にオプションＡ用のリードＤＭＡＣ及び出力データバッファを設けて、図６に示したエンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３による画像データの読み出し処理と同様な処理を行うことにより、オプションＡのリードＤＭＡＣ１２３が画像データを読み出す場合もメモリリードのレイテンシを小さくできると考えられる。しかしながら、必要に応じて使用されるオプション機能であり接続数も定まらないオプションデバイス用に個々にリードＤＭＡＣ及び出力データバッファを増設することは回路規模の増大にもつながり好ましくない。以下、回路規模の増大を抑えつつメモリリードのレイテンシを削減することを目的とした本発明の実施形態に係る画像処理装置１について説明する。
【００６５】
図８は、本実施形態に係る画像処理装置１の構成を例示するブロック図である。図８に示すように、本実施形態に係る画像処理装置１は、図１に示した構成にレジスタ制御部１０９、ＤＭＡＣレジスタ１１０、アクセス元特定部１１１、アクセス制御部１１２、セレクタ１１３（以降、「ＳＥＬ１」とする）及びセレクタ１１４（以降、「ＳＥＬ２」とする）が追加された構成をとる。
【００６６】
レジスタ制御部１０９は、ＳｏＣ１０からシリアル通信部１０１を介して行われるレジスタ設定に応じて、ＳｏＣ１０からのレジスタ設定をＤＭＡＣ１１０にも行う。すなわち、レジスタ制御部１０９は、制御情報記憶媒体であるＤＭＡＣレジスタ１１０に制御情報を記憶させる記憶媒体制御部として機能する。以下、レジスタ制御部１０９の処理の具体例を図９及び図１０を参照して説明する。
【００６７】
図９は、オプションデバイスに関する情報を例示するテーブルである。図９に示すように、テーブルは、例えば、“オプションデバイス名”、オプションデバイスのＤＭＡＣレジスタのアドレスを示す“レジスタアドレス”及びオプションデバイスのバス種別を示す“バス種別”から構成される。レジスタ制御部１０９は、図９に示したテーブルを参照できるものとする。
【００６８】
図１０は、レジスタ制御部１０９によるレジスタ制御を例示するフローチャートである。図１０に示すように、レジスタ制御部１０９は、ＳｏＣ１０からシリアル通信部１０１を介して行われるレジスタ設定を監視して、レジスタ設定において指定されているレジスタのアドレスを取得する（Ｓ１００１）。
【００６９】
レジスタのアドレスを取得したレジスタ制御部１０９は、図９に示したテーブルを参照して、取得したレジスタのアドレスと一致する“レジスタアドレス”に関連付けられたオプションデバイスの“バス種別”を取得する（Ｓ１００２）。“バス種別”を取得したレジスタ制御部１０９は、取得した“バス種別”が“インターロック型のパラレルバスＩ／Ｆ”であるか否かを判定する（Ｓ１００３）。
【００７０】
“インターロック型のパラレルＩ／Ｆ”であると判定した場合（Ｓ１００３／ＹＥＳ）、レジスタ制御部１０９は、ＳｏＣ１０からのレジスタ設定をＤＭＡＣレジスタ１１０にも設定する（Ｓ１００４）。一方、“インターロック型のパラレルＩ／Ｆ”ではないと判定した場合（Ｓ１００３／ＮＯ）、レジスタ制御部１０９は、ＤＭＡＣレジスタ１１０にレジスタ設定を行うことなく処理を終了する。
【００７１】
例えば、本実施形態において、レジスタ制御部１０９は、ＳｏＣ１０からのレジスタ設定において指定されたレジスタアドレスがオプションＡのＤＭＡＣレジスタ１２２のアドレスである場合、オプションＡのバス種別はインターロック型のパラレルバスＩ／Ｆなので、ＤＭＡＣレジスタ１２２のレジスタ設定をＤＭＡＣレジスタ１１０にも設定する。
【００７２】
ＤＭＡＣレジスタ１１０は、リードＤＭＡＣ１０５を制御するための制御情報を格納する記憶媒体（制御情報記憶媒体）であり、上述したようにレジスタ制御部１０９によりレジスタ設定される。リードＤＭＡＣ１０５は、後述するＳＥＬ１のレジスタ切替に応じてＤＭＡＣレジスタ１１０に記憶されている制御情報に従ってメインメモリ２０に記憶されている画像データを読み出す。
【００７３】
アクセス元特定部１１１は、リードコマンドを発行したオプションデバイス、すなわちシリアル通信部１０２にアクセスしたアクセス元のオプションデバイスを特定する。以下、アクセス元特定部１１１の処理の具体例を、図１１を参照して説明する。なお、ここでは、シリアル通信部１０１、１０２、１０３、１４１としてＰＣＩ−Ｅｘｐｒｅｓｓが用いられ、パラレル通信部１２１としてＰＣＩが用いられるとする。
【００７４】
図１１は、ＰＣＩ−ＥｘｐｒｅｓｓのＴＬＰ（Ｔｒａｎｓａｃｔｉｏｎ  Ｌａｙｅｒ  Ｐａｃｋｅｔ）のメモリリードコマンドのヘッダ構造を例示する図である。図１１に示すように、ＴＬＰヘッダには、“Ｂｕｓ  Ｎｕｍｂｅｒ”及び“Ｄｅｖｉｃｅ  Ｎｕｍｂｅｒ”が含まれる。“Ｂｕｓ  Ｎｕｍｂｅｒ”及び“Ｄｅｖｉｃｅ  Ｎｕｍｂｅｒ”は、ＰＣＩ−ＥｘｐｒｅｓｓやＰＣＩのシステムにおいてコンフィギュレーション時に各バス及びバスに接続されているデバイスに割り振られる情報である。アクセス元特定部１１１は、シリアル通信部１０２を介して取得したＴＬＰヘッダに含まれる“Ｂｕｓ  Ｎｕｍｂｅｒ”及び“Ｄｅｖｉｃｅ  Ｎｕｍｂｅｒ”を取得して、アクセス元のオプションデバイスを特定する。
【００７５】
アクセス制御部１１２は、アクセス元特定部１１１により特定されたオプションデバイス及びリードＤＭＡＣ１０５の動作状況に応じてＳＥＬ１及びＳＥＬ２を制御して、リードコマンドを発行したオプションデバイスの画像データの取得先を制御する。ＳＥＬ１は、リードＤＭＡＣ１０５と接続するレジスタを、ＤＭＡＣレジスタ１０４及びＤＭＡＣレジスタ１１０のいずれかに切り替える。ＳＥＬ２は、シリアル通信部１０２との接続先を、メインメモリ２０及び出力データバッファ１０７のいずれかに切り替える。すなわち、ＳＥＬ２は、オプションデバイスによる画像データの取得先を、シリアル通信部１０１を介したメインメモリ２０及び出力データバッファ１０７のいずれかに切り替える。
【００７６】
以下、アクセス制御部１１２の処理の具体例を、図１２を参照して説明する。図１２は、アクセス制御部１１２の処理を例示するフローチャートである。なお、本実施形態においては、初期設定としては、ＳＥＬ１がリードＤＭＡＣ１０５とＤＭＡＣレジスタ１０４とを接続するように制御されており、ＳＥＬ２が画像データの取得先をメインメモリ２０とするように制御されている。
【００７７】
図１２に示すように、アクセス制御部１１２は、アクセス元特定部１１１により特定されたオプションデバイス（対象画像処理部）のバス種別がインターロック型のパラレルバスＩ／Ｆであるか否かを判定する（Ｓ１２０１）。オプションデバイスのバス種別は、例えば、図９に示したテーブルから、アクセス元特定部１１１により特定されたオプションデバイスに関連付けられた“バス種別”である。
【００７８】
バス種別がインターロック型のパラレルバスＩ／Ｆ以外（本実施形態においてはオプションＢのバス）である場合（Ｓ１２０１／ＮＯ）、アクセス制御部１１２は、初期設定のまま処理を終了する。すなわち、この場合、本実施形態においては、リードコマンドを発行したオプションデバイスがインターロック型のパラレルバスＩ／ＦではないオプションＢであるので、ＳＥＬ１及びＳＥＬ２が初期設定のままでオプションＢの画像データの取得先がメインメモリ２０となる。
【００７９】
一方、バス種別がインターロック型のパラレルバスＩ／Ｆ（本実施形態においてはオプションＡのバス）である場合（Ｓ１２０１／ＹＥＳ）、アクセス制御部１１２は、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中であるか否かを判定する（Ｓ１２０２）。具体的には、アクセス制御部１１２は、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３がメインメモリ２０に記憶されている画像データを取得するために、リードＤＭＡＣ１０５がメインメモリ２０に記憶されている画像データを読み出して出力データバッファ１０７に予め出力している状態であるか否かを判定する。
【００８０】
すなわち、Ｓ１２０２の処理は、エンジンＡＳＩＣ１４０が出力データバッファ１０７からデータを取得している状態か否かを判定することを意味し、リードＤＭＡＣ１０５の動作状況は複数の画像処理部のうちの１つであるエンジンＡＳＩＣ１４０の動作状況ともいえる。アクセス制御部１１２は、例えば、ＳｏＣ１０による動作制御状態を監視することにより、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中であるかを判定することができる。
【００８１】
動作中であると判定した場合（Ｓ１２０２／ＹＥＳ）、アクセス制御部１１２は、シリアル通信部１０２とメインメモリ２０とが接続されるようにＳＥＬ２を制御する（Ｓ１２０３）。
【００８２】
エンジンＡＳＩＣ１４０は、プリント処理やスキャナ処理等を行うので画像データのライン等時性を確保する必要があり、特にレイテンシを抑える必要がある。そのため、出力データバッファ１０７から画像データを取得する優先順位は、エンジンＡＳＩＣ１４０のほうがライン及びページの等時性を確保する必要のないオプションデバイスよりも高い。すなわち、優先順位は、エンジンＡＳＩＣ１４０やオプションデバイスで行われる処理の種類に応じて設定される。そして、ＤＭＡＣレジスタ１０４及びＤＭＡＣレジスタ１１０には、優先順位の異なる画像処理部それぞれがメインメモリ２０から画像データを取得するための制御情報がそれぞれ記憶されていることになる。
【００８３】
上述の処理により、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中である場合は、リードＤＭＡＣ１４３が出力データバッファ１０７に記憶されている画像データを読み出し、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出すことになる。
【００８４】
ＳＥＬ１及びＳＥＬ２を制御したアクセス制御部１１２は、Ｓ１２０２の処理に戻り、リードＤＭＡＣ１０５の動作状況を監視する。
【００８５】
一方、動作中ではないと判定した場合（Ｓ１２０２／ＮＯ）、アクセス制御部１１２は、リードＤＭＡＣ１０５とＤＭＡＣレジスタ１１０とが接続されるようにＳＥＬ１を制御する（Ｓ１２０４）。また、アクセス制御部１１２は、シリアル通信部１０２と出力データバッファ１０７とが接続されるようにＳＥＬ２を制御する（Ｓ１２０５）。
【００８６】
リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作していない場合は、出力データバッファ１０７を使用することができる。そこで、上述の処理により、リードコマンドを発行したオプションＡのＤＭＡＣレジスタ１２２と同じレジスタ設定であるＤＭＡＣレジスタ１１０に記憶されている制御情報に従って、リードＤＭＡＣ１０５がメインメモリ２０から画像データを読み込み出力データバッファ１０７に出力する。そして、オプションＡのリードＤＭＡＣ１２３は、出力データバッファ１０７から画像データを読み出すことができるので、メモリリードのレイテンシが従来よりも削減される。
【００８７】
ＳＥＬ１及びＳＥＬ２を制御したアクセス制御部１１２は、オプションＡからＳｏＣ１０に対してデータの転送完了が通知されるまで（Ｓ１２０６／ＹＥＳ）、Ｓ１２０２の処理に戻り、リードＤＭＡＣ１０５の動作状況を監視する。オプションＡからＳｏＣ１０に対してデータの転送完了が通知されると（Ｓ１２０６／ＹＥＳ）、アクセス制御部１１２は、ＳＥＬ１及びＳＥＬ２を初期設定の状態に制御して処理を終了する（Ｓ１２０７）。
【００８８】
また、上述のように、アクセス制御部１１２は、ＳＥＬ１及びＳＥＬ２の接続を制御した後も、リードＤＭＡＣ１０５の動作状況を監視する。これにより、オプションＡがリードコマンドを発行した当初は、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中であっても、その動作が完了すると、途中でオプションＡによる画像データの取得先を出力データバッファ１０７に切り替えることができる。
【００８９】
この場合、アクセス元特定部１１１は、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０からどのアドレスまで画像データを読み出したかを記録しておく。リードＤＭＡＣ１０５のエンジンＡＳＩＣ１４０の動作が完了すると、アクセス制御部１１２は、アクセス元特定部１１１により記録されているアドレスから読み出しが未完了である画像データの開始アドレスをＤＭＡＣレジスタ１１０に設定する。
【００９０】
なお、図１２においては示していないが、アクセス制御部１１２は、オプションＡによる画像データの取得先を出力データバッファ１０７に切り替えていても、途中でエンジンＡＳＩＣ１４０がリードコマンドを発行すると、オプションＡによる画像データの取得先をメインメモリ２０に切り替えることもできる。このように、アクセス制御部１１２は、オプションＡ、オプションＢ及びエンジンＡＳＩＣ１４０等の複数の画像処理部の動作状況に応じて、複数の画像処理部のうち、ＤＭＡＣ１１０に記憶されている制御情報において示されている記憶領域から画像データを取得するべき画像処理部に出力データバッファ１０７から画像データを取得させるように切り替える切替制御部として機能する。
【００９１】
図１３は、本実施形態に係る画像処理装置１におけるオプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出す場合のパスを例示する図である。なお、ここでは、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中ではない場合のパスを説明する。
【００９２】
図１３において太い実線矢印で示すように、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出す場合のパスは２段階に分けられる。まず第１段階目では、ＤＭＡＣレジスタ１１０に記憶されている制御情報に従って、コントローラＡＳＩＣ１００のリードＤＭＡＣ１０５がメインメモリ２０に記憶されている画像データを読み出して出力データバッファ１０７に出力する。
【００９３】
第２段階目では、オプションＡのリードＤＭＡＣ１２３が出力データバッファ１０７に出力された画像データを、ＳＥＬ２、シリアル通信部１０２、スイッチ３０、ブリッジ４０及びパラレル通信部１２１を介して読み出す。なお、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３及びオプションＢのリードＤＭＡＣがメインメモリ２０に記憶されている画像データを読み出す場合のパスは、図４を示して説明したパスと同様である。
【００９４】
図１４は、本実施形態に係る画像処理装置１における動作例を示すシーケンス図である。ここでは、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中ではない場合（エンジンＡＳＩＣ１４０により処理される画像データをメインメモリ２０から読み出し中以外の場合）に、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出す場合の動作例を説明する。なお、図１４に示した各部の間の実線矢印はソフトウェアによる動作を示し、点線矢印はハードウェアによる動作を示す。
【００９５】
図１４に示すように、ＳｏＣ１０は、オプションＡのＤＭＡＣレジスタ１２２に対してレジスタの設定を行う（Ｓ１４０１）。ＳｏＣ１０によりレジスタの設定が行われると、レジスタ制御部１０９によりＤＭＡＣレジスタ１２２に設定されたレジスタの設定がコントローラＡＳＩＣ１００のＤＭＡＣレジスタ１１０にも反映される（Ｓ１４０２）。
【００９６】
レジスタ設定を行ったＳｏＣ１０は、コントローラＡＳＩＣ１００のリードＤＭＡＣ１０５を起動させる（Ｓ１４０３）。ＳｏＣ１０の制御により起動したリードＤＭＡＣ１０５は、アクセス制御部１１２によりＳＥＬ１が切り替えられて接続されたＤＭＡＣレジスタ１１０に設定されている制御情報に従い、メモリの開始アドレスから設定サイズ分のメインメモリ２０にアクセスして画像データを読み出す（Ｓ１４０４）。そして、リードＤＭＡＣ１０５は、メインメモリ２０から読み出した画像データを出力データバッファ１０７に対して出力する（Ｓ１４０５）。
【００９７】
また、オプションＡのリードＤＭＡＣ１２３は、ＤＭＡＣレジスタ１２２に設定されている制御情報に従い画像データを読み出す（Ｓ１４０６）。ただし、アクセス制御部１１２によりＳＥＬ２が切り替えられて画像データの取得先が出力データバッファ１０７になっている。そのため、リードＤＭＡＣ１２３は、ＤＭＡＣレジスタ１２２に設定されている開始アドレスを無視して、出力データバッファ１０７に記憶されている画像データを読み出すことになる。
【００９８】
コントローラＡＳＩＣ１００のリードＤＭＡＣ１０５は、メインメモリ２０からの画像データの読み出しと出力データバッファ１０７への画像データの出力とが完了すると、ＳｏＣ１０に対して転送完了を通知する（Ｓ１４０７）。なお、Ｓ１４０７の処理はＳ１４０６の処理の後に限定されるわけではなく、Ｓ１４０６の処理前や処理中に実行されてもよい。また、リードＤＭＡＣ１２３は、出力データバッファからの画像データの読み出しが完了すると、ＳｏＣ１０に対して転送完了を通知して処理を終了する（Ｓ１４０８）。
【００９９】
なお、本実施形態においては、リードＤＭＡＣ１０５がＳｏＣ１０に対して転送完了を通知する（Ｓ１４０７）場合を例として説明した。しかしながら、図５を示して説明したように、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０から直接画像データを読み出した場合、ＳｏＣ１０はリードＤＭＡＣ１０５から転送完了通知を受けることはない。そのため、ＳｏＣ１０における制御を従来と同等とするために、ＤＭＡＣレジスタ１１０に記憶されている制御情報に従ってリードＤＭＡＣ１０５が動作している場合は、ＳｏＣ１０に対して転送完了を通知しないような構成としてもよい。
【０１００】
図１５は、本実施形態に係る画像処理装置１における動作例を示すシーケンス図である。ここでは、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作中である場合に、オプションＡのリードＤＭＡＣ１２３がメインメモリ２０に記憶されている画像データを読み出す場合の動作例を説明する。なお、図１５に示した各部の間の実線矢印はソフトウェアによる動作を示し、点線矢印はハードウェアによる動作を示す。
【０１０１】
また、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３がメインメモリ２０に記憶されている画像データを読み出す動作は、図６に示した動作と同様であるので、図１５においては途中までの動作の記載を省略し、図６に示したＳ６０７の処理を図１５に示したＳ１５０１の処理として説明する。
【０１０２】
図１５に示すように、エンジンＡＳＩＣ１４０のリードＤＭＡＣ１４３は、ＤＭＡＣレジスタ１４２に設定されている制御情報に従い、出力データバッファ１０７にアクセスして画像データを読み出す（Ｓ１５０１）。
【０１０３】
ＳｏＣ１０は、オプションＡのＤＭＡＣレジスタ１２２に対してレジスタの設定を行う（Ｓ１５０２）。ＳｏＣ１０によりレジスタの設定が行われると、レジスタ制御部１０９によりＤＭＡＣレジスタ１２２に設定されたレジスタの設定がコントローラＡＳＩＣ１００のＤＭＡＣレジスタ１１０にも反映される（Ｓ１５０３）。
【０１０４】
レジスタ設定を行ったＳｏＣ１０は、コントローラＡＳＩＣ１００のリードＤＭＡＣ１２３を起動させる（Ｓ１４０３）。アクセス制御部１１２によりＳＥＬ２が制御されてシリアル通信部１０２とメインメモリ２０とが接続されているので、ＳｏＣ１０の制御により起動したリードＤＭＡＣ１２３は、ＤＭＡＣレジスタ１２２に設定されている制御情報に従い、メインメモリ２０にアクセスして画像データを読み出す（Ｓ１５０５）。
【０１０５】
リードＤＭＡＣ１０５は、リードＤＭＡＣ１２３がメインメモリ２０から画像データを読み出している間に、メインメモリ２０からの画像データの読み出しと出力データバッファ１０７への画像データの出力とが完了すると、ＳｏＣ１０に対して転送完了を通知する（Ｓ１５０６）。また、リードＤＭＡＣ１４３は、出力データバッファからの画像データの読み出しが完了すると、ＳｏＣ１０に対して転送完了を通知して処理を終了する（Ｓ１５０７）。
【０１０６】
転送完了を通知したリードＤＭＡＣ１０５は、アクセス制御部１１２によりＳＥＬ１が切り替えられて接続されたＤＭＡＣレジスタ１１０に設定されている制御情報に従い、読み出し未完了の画像データの開始アドレスからメインメモリ２０にアクセスして画像データを読み出す（Ｓ１５０８）。そして、リードＤＭＡＣ１０５は、メインメモリ２０から読み出した画像データを出力データバッファ１０７に対して出力する（Ｓ１５０９）。
【０１０７】
これ以降、図１４に示したＳ１４０６〜Ｓ１４０８と同様な処理を行う（Ｓ１５１０〜Ｓ１５１２）。また、図１５に示した動作においても、図１４に示した動作と同様に、Ｓ１５１１の処理であるＳｏＣ１０に対する転送完了の通知を行わないような構成としてもよい。
【０１０８】
以上説明したように、本実施形態に係る画像処理装置１においては、メインメモリ２０から読み出された画像データを格納する出力データバッファ１０７及びメインメモリ２０から予め画像データを読み出して出力データバッファ１０７に格納するリードＤＭＡＣ１０５が、エンジンやオプションデバイス等の複数の画像処理部により共有される。そして、インターロック型のパラレルバスＩ／Ｆを有するオプションＡがメインメモリ２０から画像データを読み出す際には、リードＤＭＡＣ１０５の動作状況に応じて、リードＤＭＡＣ１０５がメインメモリ２０から読み出された画像データを出力データバッファ１０７に読み出し、オプションＡのリードＤＭＡＣ１２３が出力データバッファ１０７から画像データを読み出す。
【０１０９】
これにより、オプションＡのリードＤＭＡＣ１２３は、メインメモリ２０から直接画像データを読み出す必要がないので、メモリリードのレイテンシが従来よりも削減される。また、このような構成を実現するためのリードＤＭＡＣ１０５及び出力データバッファ１０７はエンジンや複数のオプションデバイスで共有され、オプションデバイスの接続数に応じて個々にリードＤＭＡＣ及び出力データバッファを設ける必要がないので、回路規模の増大を抑えることができる。したがって、このような構成により、画像処理装置における回路規模の増加を抑えつつ、画像処理装置に接続されたデバイスによるメモリリードのレイテンシを削減することが可能になる。
【０１１０】
なお、上記実施形態においては、リードＤＭＡＣ１０５によるエンジンＡＳＩＣ１４０用の動作が完了すると、オプションＡのリードＤＭＡＣ１２３による画像データの取得先が出力データバッファ１０７に切り替わる場合を例として説明した。その他、リードＤＭＡＣ１０５によるエンジンＡＳＩＣ１４０用の動作が完了した場合であっても、リードＤＭＡＣが読み取るべき残りの画像データ量に応じて取得先が出力データバッファ１０７に切り替わらないようにしてもよい。
【０１１１】
この場合、リードＤＭＡＣ１０５によるエンジンＡＳＩＣ１４０用の動作が完了すると、例えば、アクセス制御部１１２は、アクセス元特定部１１１が記録している読取済の画像データ量及びＤＭＡＣレジスタ１１０のレジスタ設定から求められる総画像データ量から、読み取るべき残りの画像データ量を算出する。そして、アクセス制御部１１２は、算出した残りの画像データ量が予め定められた閾値よりも小さい場合は、ＳＥＬ１及びＳＥＬ２を制御してリードＤＭＡＣ１２３による画像データの読取先が出力データバッファ１０７に切り替わらないようにする。読み取るべき残りの画像データ量が少ない場合、読取先を出力データバッファ１０７に切り替えるよりも、そのままメインメモリ２０から読取処理を行ったほうが処理の効率がよい可能性があるためである。
【０１１２】
また、上記実施形態においては、インターロック型のパラレルバスＩ／Ｆを有するオプションデバイスのリードＤＭＡＣがメインメモリ２０から画像データを読み出す場合に、リードＤＭＡＣ１０５の動作状況に応じて、画像データの読取先が出力データバッファ１０７に切り替えられる場合を例として説明した。その他、インターロック型のパラレルバスＩ／Ｆを有するオプションデバイスに限らず、インターロック型又はスプリットトランザクション型のシリアルバスＩ／Ｆを有するオプションデバイスのリードＤＭＡＣがメインメモリ２０から画像データを読み出す場合にこのような切替処理が行われてもよい。
【０１１３】
この場合、オプションデバイスのバス種別に応じて出力データバッファ１０７をデータの取得先として使用する優先順位が設定される。例えば、パラレルバスＩ／Ｆを有するデバイスは、シリアルバスＩ／Ｆを有するデバイスよりもブリッジ４０を介する必要がある分、メインメモリ２０からオプションデバイスまでの距離が長くレイテンシが大きくなるので、パラレルバスＩ／Ｆを有するデバイスのほうがシリアルバスＩ／Ｆを有するデバイスよりも出力データバッファ１０７の使用優先順位が高く設定される。
【０１１４】
また、インターロック型のデバイスはスプリットトランザクション型のデバイスよりもメモリリードのレイテンシが大きくなるので、インターロック型のデバイスのほうがスプリットトランザクション型のデバイスよりも出力データバッファ１０７の使用優先順位が高く設定される。アクセス制御部１１２は、このような使用優先順位に基づいていずれのオプションデバイスの画像データの取得先を出力データバッファ１０７に切り替えるかを決定する。このような構成により、インターロック型のパラレルバスＩ／Ｆを有するオプションデバイス以外のデバイスにおいてもメモリリードのレイテンシが削減される。
【０１１５】
また、上記実施形態においては、インターロック型のパラレルバスＩ／Ｆを有するオプションＡ及びスプリットトランザクション型のシリアルバスＩ／Ｆを有するオプションＢがコントローラＡＳＩＣ１００に接続される場合を例として説明した。しかしながら、これは一例であり、このようなオプションデバイスが３つ以上、コントローラＡＳＩＣ１００に接続されていてもよい。
【０１１６】
また、上記実施形態においては、コントローラＡＳＩＣ１００が２つのＤＭＡＣレジスタ１０４及びＤＭＡＣレジスタ１１０を含む場合を例として説明した。しかしながら、これは一例であり、１つのＤＭＡＣレジスタ１０４をエンジンＡＳＩＣ１４０及び複数のオプションデバイスで共有してもよい。この場合、ＳＥＬ１は不要であり、レジスタ制御部１０９は、オプションＡがメインメモリ２０に記憶されている画像データを取得する際に、リードＤＭＡＣ１０５がエンジンＡＳＩＣ１４０用に動作していない場合に、ＤＭＡＣレジスタ１２２のレジスタ設定をＤＭＡＣレジスタ１０４にも設定する。
【０１１７】
また、オプションＡによるメインメモリ２０からの画像データの取得が完了する前に、エンジンＡＳＩＣ１４０による画像データの取得が完了した場合、レジスタ制御部１０９は、オプションＡが取得すべき残りの画像データの開始アドレスをＤＭＡＣ１０４に対して設定する。また、オプションＡによるメインメモリ２０からの画像データの取得中に、エンジンＡＳＩＣ１４０による読出命令が発行された場合、レジスタ制御部１０９は、エンジンＡＳＩＣ１４０が取得すべき残りの画像データの開始アドレスをＤＭＡＣ１０４に対して設定し、オプションＡは、取得すべき残りの画像データをメインメモリ２０から取得する。
【０１１８】
２つのＤＭＡＣレジスタ１０４及び１１０が設けられている場合はＤＭＡＣレジスタ１０４の書き換えが不要である点で処理効率がよいが、１つのＤＭＡＣ１０４を共有させた場合回路規模はより小さくなる。また、その他、コントローラＡＳＩＣ１００が３つ以上のＤＭＡＣレジスタを含んでもよい。この場合回路規模は多少大きくなるが、各画像処理部の制御情報を管理する点では効率がよくなる。
【０１１９】
また、上記実施形態においては、レジスタ制御部１０９、アクセス元特定部１１１及びアクセス制御部１１２は、ＡＳＩＣとして構成されるハードウェアで実現される場合を例として説明した。しかしながら、これは一例であり、これらの構成部がソフトウェアで実現されてもよい。この場合、図示しないＲＯＭやＨＤＤ若しくは光学ディスク等の記録媒体に格納されたプログラムがＲＡＭに読み出され、ＣＰＵがそれらのプログラムに従って演算を行うことにより、ソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係るレジスタ制御部１０９、アクセス元特定部１１１及びアクセス制御部１１２の機能を実現する機能ブロックが構成される。
【０１２０】
また、上記実施形態においては、画像処理装置１を例として説明し、エンジンやオプションデバイスがメインメモリ２０から画像データを読み出す場合を例として説明した。しかしながら、本実施形態は画像処理装置１に限らず、メインメモリに格納されたデータを処理する情報処理装置における専用エンジンやオプションデバイスがメインメモリに記憶されているデータを読み出す場合であっても同様に適用可能である。
【符号の説明】
【０１２１】
１  画像処理装置
１０  ＳｏＣ
２０  メインメモリ
３０  スイッチ
４０  ブリッジ
５０  エンジンＣＰＵ
１００  コントローラＡＳＩＣ
１０１、１０２、１０３、１４１  シリアル通信部
１０４、１１０、１２２、１４２  ＤＭＡＣレジスタ
１０５、１２３、１４３  リードＤＭＡＣ
１０６  出力画像編集部
１０７  出力データバッファ
１０８  内部バス
１０９  レジスタ制御部
１１１  アクセス元特定部
１１２  アクセス制御部
１１３、１１４  セレクタ
１２０、１３０  オプションデバイス
１２１  パラレル通信部
１２４  オプション処理部
１２５  ライトＤＭＡＣ
１４０  エンジンＡＳＩＣ
【先行技術文献】
【特許文献】
【０１２２】
【特許文献１】特開平９−１９８３００号公報
【特許文献２】特開２０１２−０３４２５４号公報
【図１】
2015233235.tif 000003
【図２】
2015233235.tif 000004
【図３】
2015233235.tif 000005
【図４】
2015233235.tif 000006
【図５】
2015233235.tif 000007
【図６】
2015233235.tif 000008
【図７】
2015233235.tif 000009
【図８】
2015233235.tif 000010
【図９】
2015233235.tif 000011
【図１０】
2015233235.tif 000012
【図１１】
2015233235.tif 000013
【図１２】
2015233235.tif 000014
【図１３】
2015233235.tif 000015
【図１４】
2015233235.tif 000016
【図１５】
2015233235.tif 000017