(57)【要約】【課題】演算装置によるメモリアクセスの優先度判断において、処理の種類毎に異なる優先度の判断を可能とすること。【解決手段】ＲＡＭ１０２へのアクセスを制御するアドレスデコータ１１１であって、ＲＡＭ１０２へのアクセス要求を取得するアクセス要求取得部１１１ａと、複数の入出力ポート毎に設定された優先度に応じてＲＡＭ１０２へのアクセスを調停するアービタ１１５に対して、取得されたアクセス要求を出力するアクセス要求出力部１１１ｃと、アクセス要求の内容に応じて複数の入出力ポートのいずれかを選択するためのアドレス領域設定テーブルを参照し、取得されたアクセス要求に基づいて入出力ポートを選択するポート選択部１１１ｂとを含むことを特徴とする。【選択図】図５
2013131139.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置へのアクセスを制御するアクセス制御装置であって、
前記主記憶装置へのアクセス要求を取得するアクセス要求取得部と、
複数の入出力ポート毎に設定された優先度に応じて前記主記憶装置へのアクセスを調停するアービタに対して、取得された前記アクセス要求を出力するアクセス要求出力部と、
前記アクセス要求の内容に応じて前記複数の入出力ポートのいずれかを選択するためのポート選択情報を参照し、取得された前記アクセス要求に基づいて前記複数の入出力ポートのいずれかを選択するポート選択部とを含み、
前記アクセス要求出力部は、選択された入出力ポートに対して前記アクセス要求を出力することを特徴とするアクセス制御装置。
【請求項２】
前記アクセス要求は、前記主記憶装置における記憶領域を指定するアドレスの情報を含み、
前記ポート選択情報は、前記主記憶装置における記憶領域の範囲を特定する情報を含み、
前記ポート選択部は、前記ポート選択情報において特定される前記主記憶装置における記憶領域の範囲と前記アクセス要求において特定される前記主記憶装置における記憶領域とに基づいて前記複数の入出力ポートのいずれかを選択することを特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記ポート選択情報は、前記主記憶装置における記憶領域と前記複数の入出力ポートのいずれかとが関連付けられた情報を含み、
前記ポート選択部は、前記アクセス要求において特定される前記主記憶装置における記憶領域に関連付けられた入出力ポートを選択することを特徴とする請求項２に記載のアクセス制御装置。
【請求項４】
前記ポート選択情報において、割込みハンドラが格納される前記主記憶装置上の領域が、他の入出力ポートよりも優先度の高い入出力ポートと関連付けられていることを特徴とする請求項３に記載のアクセス制御装置。
【請求項５】
前記ポート選択情報において、等時性が要求される処理を行うプログラムが格納される前記主記憶装置上の領域が、他の入出力ポートよりも優先度の高い入出力ポートと関連付けられていることを特徴とする請求項３または４に記載のアクセス制御装置。
【請求項６】
前記ポート選択情報において、複数の演算装置の間でやりとりされる情報が格納される前記主記憶装置上の領域が、他の入出力ポートよりも優先度の高い入出力ポートと関連付けられていることを特徴とする請求項３乃至５のいずれか１項に記載のアクセス制御装置。
【請求項７】
前記アクセス要求は、前記主記憶装置へのアクセスの要求元を識別する情報を含み、
前記ポート選択情報は、前記主記憶装置へのアクセスの要求元を特定する情報を含み、
前記ポート選択部は、前記ポート選択情報において特定されるアクセスの要求元と前記アクセス要求において特定されるアクセスの要求元とに基づいて前記複数の入出力ポートのいずれかを選択することを特徴とする請求項１乃至６のいずれか１項に記載のアクセス制御装置。
【請求項８】
前記ポート選択情報は、前記主記憶装置へのアクセスの要求元と前記複数の入出力ポートのいずれかとが関連付けられた情報を含み、
前記ポート選択部は、前記アクセス要求において特定されるアクセスの要求元に関連付けられた入出力ポートを選択することを特徴とする請求項７に記載のアクセス制御装置。
【請求項９】
請求項１乃至８いずれか１項に記載のアクセス制御装置を含むことを特徴とする画像処理装置。
【請求項１０】
主記憶装置へのアクセスを制御するアクセス制御方法であって、
前記主記憶装置へのアクセス要求を取得し、
複数の入出力ポート毎に設定された優先度に応じて前記主記憶装置へのアクセスを調停するアービタの前記複数の入出力ポートのいずれかを前記アクセス要求に基づいて選択するためのポート選択情報を参照し、
取得された前記アクセス要求及び前記ポート選択情報に基づいて前記複数の入出力ポートのいずれかを選択し、
選択された入出力ポートに対して前記アクセス要求を出力することを特徴とするアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御装置、画像処理装置及びアクセス制御方法に関し、特に、メモリアクセス優先度の制御に関する。
【背景技術】
【０００２】
ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）等のマスタがＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリを共用する場合、各マスタからのアクセス要求を調停してメモリへのアクセス権をマスタに付与するアービタが用いられる。
【０００３】
従来のアービタは、ＣＰＵ及び複数のＤＭＡの夫々について優先度が設定されており、夫々の優先度に応じてメモリへのアクセス権をマスタに付与する。このようなアービタにおいて、動的なアービトレーションを可能とするため、アービトレーションテーブルを切り替える方法が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された技術においては、装置の動作状態に応じてマスタ毎のアクセス優先度を設定することは可能である。他方、装置において複数のソフトウェア・プログラムが動作している場合、ＣＰＵによるメモリアクセスは、夫々のソフトウェア・プログラム毎に発生する。
【０００５】
そして、メモリアクセス優先度はマスタ毎に判断されるため、特許文献１において開示された技術を用いたとしても、同一のタイミングにおいてＣＰＵから発生した複数のメモリアクセスは、同一のマスタであるＣＰＵからのメモリアクセスであるため、同一の優先度で扱われる。
【０００６】
しかしながら、同一マスタであるＣＰＵからのアクセスであっても、メモリアクセス元となるソフトウェア・プログラムによっては優先度が異なる。即ち、優先させるべき処理と後回しでもよい処理とがあり、優先させるべき処理が後回しにされないように、ＣＰＵのアクセス優先度は高く設定されることが一般的である。その結果、ＣＰＵによる優先度の低い処理によるメモリアクセスが、優先させるべきＤＭＡＣのメモリアクセスよりも優先されてしまうようなことが起こり得る。
【０００７】
例えば、スキャナ機能及びプロッタ機能を含む複合機においては、スキャナ、プロッタ等のエンジンやハードウェアアクセラレータ等に搭載されるＤＭＡＣのメモリアクセスと、ＣＰＵによって処理される画像処理等のメモリアクセスとがアービタによって調停される。
【０００８】
そして、スキャン機能やプロッタ機能に関係するＣＰＵによる画像処理は、スキャナの線速やプロッタの線速に間に合わせる必要があるため、高い優先度が求められる。他方、ＣＰＵによって実行される処理には優先度の低い処理もあるが、上述したような画像処理によるメモリアクセスの優先度を上げるためにＣＰＵのアクセス優先度が高く設定されているため、優先度の低い処理までが、他のＤＭＡＣによるメモリアクセスよりも優先されてしまうこととなる。
【０００９】
このような課題は、上述した複合機に限らず、ＣＰＵ及びＤＭＡＣによるメモリアクセスの調停が必要な情報処理装置において同様に課題となり得る。
【００１０】
本発明は、上記実情を考慮してなされたものであり、演算装置によるメモリアクセスの優先度判断において、処理の種類毎に異なる優先度の判断を可能とすることを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明の一態様は、主記憶装置へのアクセスを制御するアクセス制御装置であって、前記主記憶装置へのアクセス要求を取得するアクセス要求取得部と、複数の入出力ポート毎に設定された優先度に応じて前記主記憶装置へのアクセスを調停するアービタに対して、取得された前記アクセス要求を出力するアクセス要求出力部と、前記アクセス要求の内容に応じて前記複数の入出力ポートのいずれかを選択するためのポート選択情報を参照し、取得された前記アクセス要求に基づいて前記複数の入出力ポートのいずれかを選択するポート選択部とを含み、前記アクセス要求出力部は、選択された入出力ポートに対して前記アクセス要求を出力することを特徴とする。
【００１２】
また、本発明の他の態様は、画像処理装置であって、上記アクセス制御装置を含むことを特徴とする。
【００１３】
また、本発明の更に他の態様は、主記憶装置へのアクセスを制御するアクセス制御方法であって、前記主記憶装置へのアクセス要求を取得し、複数の入出力ポート毎に設定された優先度に応じて前記主記憶装置へのアクセスを調停するアービタの前記複数の入出力ポートのいずれかを前記アクセス要求に基づいて選択するためのポート選択情報を参照し、取得された前記アクセス要求及び前記ポート選択情報に基づいて前記複数の入出力ポートのいずれかを選択し、選択された入出力ポートに対して前記アクセス要求を出力することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、演算装置によるメモリアクセスの優先度判断において、処理の種類毎に異なる優先度の判断を可能とすることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図２】本発明の実施形態に係るメモリアクセス要求に含まれる情報を示す図である。
【図３】本発明の実施形態に係るメモリ領域マップを示す図である。
【図４】本発明の実施形態に係るアドレス領域設定テーブルを示す図である。
【図５】本発明の実施形態に係るアドレスデコータの機能構成を示す図である。
【図６】本発明の実施形態に係る優先度設定情報の例を示す図である。
【図７】本発明の他の実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図８】本発明の他の実施形態に係るメモリ領域マップを示す図である。
【図９】本発明の他の実施形態に係るアドレス監視部が保持している情報を示す図である。
【図１０】本発明の他の実施形態に係るコントローラチップの動作を示すフローチャートである。
【図１１】本発明の他の実施形態に係る画像処理装置の全体構成を示すブロック図である。
【図１２】本発明の他の実施形態に係るコア設定情報を示す図である。
【図１３】本発明の他の実施形態に係るアドレス領域設定記憶部が保持している情報を示す図である。
【発明を実施するための形態】
【００１６】
実施の形態１．
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、プリンタ、スキャナ、複写機等の機能を含む複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）としての画像処理装置において、ＣＰＵによるメモリアクセス優先度を処理の内容に応じて制御する機能について説明する。
【００１７】
図１は、本実施形態に係る画像処理装置１の全体構成を示すブロック図である。図１に示すように、本実施形態に係る画像処理装置１は、コントローラボード１００、エンジンボード２００、スキャナ２１０及びプロッタ２２０を含む。スキャナ２１０は、画像処理装置１がスキャン動作、複写動作及びファックス送信動作を実行する際に原稿を読み取る読取装置である。プロッタ２２０は、画像処理装置１がプリントアウト動作、複写動作及びファックス受信動作を実行する際に画像形成出力を実行する印刷装置である。
【００１８】
エンジンボード２００は、スキャナ２１０及びプロッタ２２０を制御する制御基板であり、画像処理ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）２０１を含む。画像処理ＡＳＩＣ２０１は、スキャナ２１０によって原稿が読み取られて生成された画像情報を処理する機能や、プロッタ２２０が紙面上に形成するべき画像の情報を処理する機能を含む。
【００１９】
コントローラボード１００は、画像処理装置１の全体を制御する制御部であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２及びコントローラチップ１１０を含む。ＣＰＵ１０１は演算装置であり、ＲＡＭ１０２にロードされたソフトウェア・プログラムに従って演算を行うことにより、夫々のプログラムに従った処理を実行する。
【００２０】
ＲＡＭ１０２は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＯＵ１０１を動作させるためのソフトウェア・プログラムがロードされる他、ＣＰＵ１０１が処理を実行する際の作業領域として用いられる主記憶装置である。ＲＡＭ１０２へのアクセス権の優先度の判断が本実施形態に係る要旨である。
【００２１】
コントローラチップ１１０は、コントローラボード１００に搭載される機能が実装された集積回路であり、本実施形態の要旨に係る機能として、ＣＰＵ１０１によるＲＡＭ１０２へのアクセスに際して優先度を判断する際に、処理の内容に応じて異なる判断を行う機能を有する。
【００２２】
ここで、ＣＰＵ１０１からＲＡＭ１０２へのメモリアクセス要求に含まれる情報の例を図２に示す。図２に示すように、ＣＰＵ１０１からＲＡＭ１０２へのメモリアクセス要求には、“ｒｅａｄ／ｗｒｉｔｅ識別子”、“アクセス先アドレス”、“アクセス範囲”及び“アクセス元マスタ”の情報が含まれる。
【００２３】
“ｒｅａｄ／ｗｒｉｔｅ識別子”は、メモリへの情報の書込み命令であるか、読出し命令であるかを識別する識別子である。“アクセス先アドレス”は、メモリアクセスする対象のアドレスを示す情報であり、本実施形態においてはアクセス範囲の開始アドレスを示す。“アクセス範囲”は、上記開始アドレスから情報を読み出し若しくは書き込む範囲を示す情報である。“アクセス元マスタ”は、メモリアクセスを要求したマスタを示す情報であり、ＣＰＵ１０１や、ＰＣＩｅインタフェース１１７及びＤＭＡＣ１１８等のマスタを識別する情報である。
【００２４】
このように、ＣＰＵ１０１からＲＡＭ１０２へのメモリアクセス要求には、メモリアクセスの主体である処理、即ちソフトウェア・プログラムを判別可能な情報は含まれず、メモリアクセスにおいて必要最低限の情報のみが含まれる。そのため、ＣＰＵ１０１からＲＡＭ１０２へのメモリアクセス要求に含まれる情報のみに基づいて、メモリアクセスの処理の元となっているプログラムを判断することはできない。
【００２５】
これに対して、本実施形態に係るコントローラチップ１１０を含む画像処理装置１においては、ＲＡＭ１０２のメモリ領域を図３に示すように優先度別に区切った仕様を前提とする。そして、ＣＰＵ１０１を動作させるためのソフトウェア・プログラムを作成する際に、上記優先度に従ったメモリ領域を用いるようにプログラムを作成する。そして、図２に示すようなアクセス要求に含まれる“アクセス先アドレス”に基づいて処理の優先度を判断する。
【００２６】
次に、コントローラチップ１１０の構成について説明する。図１に示すように、本実施形態に係るコントローラチップ１１０は、アドレスデコーダ１１１、アドレス領域設定記憶部１１２、第１ポート１１３、第２ポート１１４、アービタ１１５、メモリコントローラ１１６、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｆａｃｅ−Ｅｘｐｒｅｓｓ）インタフェース１１７及びＤＭＡＣ（Ｃｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１１８ａ、１１８ｂ、１１８ｃ（以降、総じてＤＭＡＣ１１８とする）を含む。
【００２７】
アドレスデコータ１１１は、ＣＰＵ１０１からのメモリアクセス要求に基づいてアクセス優先度を判断する。具体的に、アドレスデコーダ１１１は、第１ポート１１３及び第２ポート１１４の２つのポートを介してアービタ１１５と接続されており、図２に示すようなアクセス要求に含まれる“アクセス先アドレス”に応じて、第１ポート１１３及び第２ポート１１４のいずれかを選択してアービタにメモリアクセス要求を行う。即ち、アドレスデコータ１１１が、主記憶装置であるＲＡＭ１０２へのアクセスをアービタ１１５の前段において制御するアクセス制御装置として機能する。
【００２８】
この際、アドレスデコータ１１１は、アドレス領域設定記憶部１１２に格納されているアドレス領域設定テーブルを参照する。アドレス領域設定記憶部１１２は、図３に示すようなメモリ領域マップに対応する情報として、図４に示すような、アドレス領域と選択ポートとが関連付けられたアドレス領域設定テーブルを記憶している。アドレスデコータ１１１は、図４に示すような情報に基づき、メモリアクセス要求に含まれる“アクセス先アドレス”に基づいて第１ポート及び第２ポートのいずれかを選択する。
【００２９】
即ち、本実施形態においては、図４に示すアドレス領域設定テーブルが、アクセス要求の内容に応じて複数の入出力ポートのいずれかを選択するためのポート選択情報として用いられる。図４における“アドレス領域”の情報が、ＲＡＭ１０２における記憶領域の範囲を特定する情報であり、夫々の範囲に対して入出力ポートのいずれかが関連付けられている。
【００３０】
図３に示すメモリ領域マップ及び図４に示すアドレス領域設定テーブルの関係について更に説明する。図３に示すメモリ領域マップの構成例として、例えば、割込みハンドラが格納されるメモリ領域の優先度を高くすることが考えられる。この場合、図４に示すアドレス領域設定テーブルにおいて、割込みハンドラが格納されるアドレス領域を優先度の高いポートに関連付ける。これにより、ＣＰＵ以外のマスタであって高い優先度が求められる他のマスタの処理を優先させ、割込み応答性を向上させることができる。
【００３１】
また、スキャナ２１０によるスキャン動作に関連する画像処理や、プロッタ２２０による画像形成出力動作に関連する画像処理を行うアプリケーションが格納されるメモリ領域や、処理対象の画像データが格納されるメモリ領域の優先度を高くすることが考えられる。この場合、図４に示すアドレス領域設定テーブルにおいて、上記アプリケーションや処理対象の画像データが格納される領域を優先度の高いポートに関連付ける。これにより、スキャナ２１０及びプロッタ２２０のライン線速に間に合うように画像処理を行い、欠陥画像の発生を防ぐことができる。
【００３２】
図５は、アドレスデコータ１１１内部の機能構成を示すブロック図である。図５に示すように、アドレスデコータ１１１は、ＣＰＵ１０１からメモリアクセス要求を取得するアクセス要求取得部１１１ａと、アドレス領域設定テーブルを参照して第１ポート１１３及び第２ポート１１４のいずれかを選択するポート選択部１１１ｂと、選択されたポートにメモリアクセス要求を出力するアクセス要求出力部１１１ｃとを含む。
【００３３】
第１ポート１１３、第２ポート１１４は、夫々アドレスデコータ１１１がＣＰＵ１０１からの要求に基づいてアービタ１１５に対してメモリアクセス要求を行うためのポートである。アービタ１１５は、第１ポート１１３及び第２ポート１１４に対応するポートの他、複数のＤＭＡＣ１１８やＰＣＩｅインタフェース１１７に対応するポートも含めて、複数のポートを有する。本実施形態に係るアドレスデコータ１１１には、アービタ１１５が元々有している複数のポートのうちの２つが割り当てられ、第１ポート１１３及び第２ポート１１４として選択的に用いられる。
【００３４】
アービタ１１５は、アドレスデコータ１１１を介したＣＰＵ１０１の他、ＤＭＡＣ１１８等の各種のマスタからのメモリアクセス要求を調停する。上述したしたように、アービタ１１５は夫々のマスタと接続されるための複数のポートを有し、夫々のポート毎に優先度が設定されている。夫々のポート毎に設定された優先度は、アービタ１１５において優先度設定情報として記憶されている。
【００３５】
メモリコントローラ１１６は、アービタ１１５の要求に応じてＲＡＭ１０２への情報の書込み及び情報の読み出しを行う。ＰＣＩｅインタフェース１１７は、メモリアクセスのマスタの１つであり、ＰＣＩｅバスを介して画像処理ＡＳＩＣ２０１と接続されている。ＤＭＡＣ１１８は、メモリアクセスのマスタの１つであり、ＣＰＵ１０１によるレジスタ設定に従って、ダイレクトメモリアクセスを行うコントローラである。
【００３６】
このような構成において、本実施形態に係る要旨は、アドレスデコータ１１１を介したＣＰＵ１０１によるメモリアクセスの処理にある。以下、ＣＰＵ１０１によるメモリアクセスの詳細について説明する。図６は、アービタ１１５が記憶している優先度設定情報の例を示す図である。図６に示すように、アービタ１１５に搭載されているポート毎に優先度が設定されており、アービタ１１５は、図６に示すようなテーブルに従って、ＣＰＵ１０１やＤＭＡＣ１１８及びＰＣＩｅインタフェース１１７からのメモリアクセス要求を調停する。
【００３７】
アドレスデコータ１１１とアービタ１１５とを接続する第１ポート１１３及び第２ポート１１４は、アービタ１１５において夫々異なるポートに接続されている。従って、アドレスデコータ１１１においてアドレス領域に応じて第１ポート及び第２ポートのいずれかが選択されてアービタ１１５に対してメモリアクセス要求が行われると、アービタ１１５においては、選択されたポートに応じた優先度の判断が行われる。
【００３８】
上述したように、第１ポート１１３及び第２ポート１１４の選択は、図４に示すようにアクセス先のアドレスに応じて行われる。そして、図３において説明したように、ＣＰＵ１０１に演算を行わせるためのプログラムを作成する際に、夫々のプログラムによって実行される処理の重要度に応じて、夫々のプログラムがアクセスする先のアドレスが指定される。
【００３９】
即ち、ＣＰＵ１０１の処理の内容に応じて、アクセス先のアドレスが指定され、アクセス先のアドレスに応じてアービタ１１５のポートが選択され、アービタ１１５においてポートに応じた優先度でメモリアクセスが処理されるため、結果的にＣＰＵ１０１の処理の内容に応じた優先度が適用されることとなる。
【００４０】
以上、説明したように、本実施形態に係るコントローラチップ１１０を含む画像処理装置１においては、ＣＰＵ１０１を動作させるためのプログラムを作成する際に、図３のように予め想定されたメモリ領域マップに従い、プログラム毎の処理の優先度に応じた領域を使用するようにプログラムを構築する。
【００４１】
そして、アドレスデコータ１１１は、図４に示すように、メモリ領域マップに対応したアドレス領域設定テーブルを参照して、ＣＰＵ１０１からのメモリアクセス要求に含まれるアクセス先アドレスに応じたポートを選択する。アービタ１１５においては、従来から用いられているアービタと同様に、複数のポート夫々に対応した優先度が設定されており、夫々のポートの優先度に応じてメモリアクセス権を付与するように調停を行う。
【００４２】
従って、本実施形態に係るコントローラチップ１１０を含む画像処理装置１においては、演算装置によるメモリアクセスの優先度判断において、処理の種類毎に異なる優先度の判断が可能となる。
【００４３】
尚、上記実施形態においては、複合機である画像処理装置１を例として説明した。上述したように、画像処理装置１においては、ＣＰＵ１０１によって実行される処理として、スキャナ２１０、プロッタ２２０と連動した画像処理のように、線速に応じた処理が求められる重要度の高い処理や、表示部、操作部に関連する処理のように、比較的優先度の低い処理があり、夫々について同一の優先度を適用することは好ましくない。
【００４４】
従って、本実施形態に係るコントローラチップ１１０及び図３に示すようなメモリ領域マップの仕様を画像処理装置１に適用することにより、本件発明に係る効果をより有効に得ることができる。しかしながら、画像処理装置１への適用は一例であり、ＣＰＵ１０１のような演算装置が複数種類のプログラムに従って動作し、メモリアクセスを行う情報処理装置であれば同様に適用することが可能である。
【００４５】
また、上記実施形態においては、図４に示すように、アドレス領域設定テーブルが、全アドレス領域について第１ポート１１３及び第２ポート１１４のいずれかと関連付けられた情報である場合を例として説明した。しかしながら、第１ポート１１３及び第２ポート１１４のように２つのポートのいずれかを選択する場合であれば、いずれか一方のポートを選択するアドレス領域のみを設定しておき、それ以外のアドレス領域に対するアクセスであれば他方のポートを選択するようにしても良い。これにより、アドレス領域設定テーブルの情報量を削減することができる。
【００４６】
また、上記実施形態においては、アドレスデコータ１１１とアービタ１１５との接続ポートとして第１ポート１１３及び第２ポート１１４の２つを設ける場合を例として説明した。そのため、ＣＰＵ１０１からのメモリアクセスの優先度は、処理の内容に応じて２つの優先度が適用される。しかしながら、これは一例であり、３種類以上の優先度を切り替えて用いるために、アドレスデコータ１１１とアービタ１１５の接続ポートを３つ以上設けても良い。
【００４７】
この場合、図３において説明したメモリ領域マップは、アドレスデコータ１１１とアービタ１１５との接続ポートの数に応じた優先度毎に領域分けされ、その領域分けに応じて図４に示すアドレス領域設定テーブルを生成することにより、上記と同様に実現可能である。
【００４８】
また、上記実施形態においては、同一マスタによるメモリアクセス優先度を処理の内容に応じて変える実施例として、ＣＰＵ１０１が実行する処理の内容に応じた優先度を変える場合を例として説明した。ＣＰＵ１０１は様々なプログラムに従って演算を行い、処理の種類が多岐にわたるため、本実施形態を適用する意義が大きい。
【００４９】
しかしながら、メモリアクセス主体はＣＰＵ１０１に限られるものではなく、ＤＭＡＣ１１８であっても同様に適用可能である。ＤＭＡＣ１１８がメモリアクセス要求を行う際には、ＣＰＵ１０１によってアクセス先アドレス及びアクセス範囲がレジスタ設定され、ＤＭＡＣ１１８はレジスタ設定に従ってメモリアクセスを行う。
【００５０】
従って、ＤＭＡＣ１１８が本実施形態に係るアドレスデコータ１１１を介してアービタ１１５に接続されており、ＣＰＵ１０１がＤＭＡＣ１１８にメモリアクセスを実行させる際のアクセス先アドレスを、図３において説明したようなメモリ領域マップに従って変えることにより、ＤＭＡＣ１１８によるメモリアクセスであっても上記と同様の効果を得ることが可能である。
【００５１】
また、上記実施形態においては、アドレスデコータ１１１がアドレス領域設定記憶部１１２に格納されているアドレス領域設定テーブルに基づいてポートを選択する場合を例として説明した。このアドレス領域設定はレジスタによって実現することが可能であり、画像処理装置１の動作状態、動作条件等に応じて設定を変更することが可能である。また、アドレス領域設定記憶部１１２が、予め複数のアドレス領域設定テーブルを記憶しており、適用するアドレス領域設定テーブルを条件に応じて切り替えるようにしても良い。
【００５２】
実施の形態２．
実施の形態１においては、ＣＰＵ１０１が１つの場合を例として説明した。これに対して、近年ではマルチプロセッサ構成の情報処理装置や、１つのプロセッサ内に複数のコアが含まれるマルチコアプロセッサ等、演算主体が複数である情報処理装置が広く用いられている。本実施形態においては、このような演算主体が複数の場合を例として説明する。
【００５３】
図７は、本実施形態に係る画像処理装置１の全体構成を示すブロック図である。図７に示すように、本実施形態に係る画像処理装置１は、実施の形態１に係る画像処理装置１と略同一の構成を有する。以下、本実施形態に係る画像処理装置１の構成について、実施の形態１との相違点について説明する。
【００５４】
図７に示すように、本実施形態に係る画像処理装置１は、ＣＰＵ１０１ａ、ＣＰＵ１０１ｂの２つのＣＰＵを有する。２つのＣＰＵ１０１ａ、１０１ｂは、夫々が独立して演算を行い、独立してアドレスデコータ１１１と接続されている。尚、２つのＣＰＵ１０１ａ、１０１ｂは、プロセッサとして完全に独立した構成であっても良いし、１つのプロセッサ内に２つのコアが含まれる構成であっても良い。
【００５５】
このように２つのプロセッサが含まれる情報処理装置においては、一方のプロセッサと他方のプロセッサとの間で情報をやり取りするＣＰＵ間通信が行われる場合がある。このＣＰＵ間通信は、一方のプロセッサからＲＡＭ１０２に情報が書き込まれた上で、他方のプロセッサがその情報を読み出すことによって実行される。このＣＰＵ間通信に対応することが本実施形態に係る要旨である。
【００５６】
そのため、本実施形態においては、図８に示すように、メモリ領域マップの構成においてＣＰＵ間通信を行うための領域が設定され、ＣＰＵ間通信の際には図７に示すように設定されたアドレスの領域が用いられる。そして、図４において説明したアドレス領域設定テーブルにおいて、ＣＰＵ間通信において用いられる領域を優先度の高いポートに関連付ける。これにより、ＣＰＵ間通信が優先して処理され、マルチプロセッサ構成の情報処理においてプロセッサ間の連携性を高めることができる。
【００５７】
本実施形態に係るアドレスデコータ１１１とアービタ１１５は、実施の形態１と同様に２つのポートを介して接続されているが、その一方のポートは、アドレス監視部１１９を介して、第１出力ポート１１３ａ、１１３ｂによって接続されている。また、アドレス監視部１１９には、ＣＰＵ１０１ａ、１０１ｂへの割込みを制御するＩＮＴＣ（ＩＮＴｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）１２０が接続されている。
【００５８】
アドレス監視部１１９は、第１ポート１１３ａ、１１３ｂを介してアービタ１１５に通知されるメモリアクセス要求のアクセス先アドレスを監視し、ＣＰＵ１０１ａとＣＰＵ１０１ｂとの間の通信、即ちＣＰＵ間通信であるか否かを判断する。そのため、アドレス監視部１１９は、図９に示すような“先頭アドレス”及び“終点アドレス”の情報を記憶しており、第１ポート１１３ａを介して入力されるメモリアクセス要求の“アクセス先アドレス”が上記“先頭アドレス”及び“終点アドレス”によって特定されるアドレス範囲に含まれる場合は、ＣＰＵ間通信の発生を検知してＩＮＴＣ１２０にＣＰＵ間通信の発生を通知する。
【００５９】
アドレス監視部１１９からＩＮＴＣ１２０への通知には、ＣＰＵ間通信の発生検知を示す識別子に加えて、ＣＰＵ間通信の検知対象となったメモリアクセス要求の情報、即ち、図２に示す情報が含まれる。ＩＮＴＣ１２０は、アドレス監視部１１９からＣＰＵ間通信の通知を受けると、“アクセス元マスタ”とは異なる側のＣＰＵ（以降、受け側ＣＰＵとする）に対して割込みを発生させると共に“アクセス先アドレス”及び“アクセス範囲”を通知する。
【００６０】
受け側ＣＰＵは、ＣＰＵ間通信の割込みが発生すると、同時に通知された“アクセス先アドレス”及び“アクセス範囲”から情報を読み出すメモリアクセス要求を行い、情報を取得する。このような処理により、実施の形態１と同様の効果を得ると共に、ＣＰＵ間通信についても任意の優先度によって実現することが可能となる。
【００６１】
図１０を参照して、本実施形態に係る動作について説明する。図１０に示すように、ＣＰＵ１０１ａ、１０１ｂいずれかによるメモリアクセスが発生すると（Ｓ１００１）、アドレスデコーダ１１１は、メモリアクセス要求に含まれる“アクセス先アドレス”に基づき、図４に示すアドレス領域設定テーブルを参照して第１ポート、第２ポートのいずれかを選択する（Ｓ１００２）。
【００６２】
アドレスデコータ１１１は、第１ポートを選択した場合（Ｓ１００２／ＹＥＳ）第１ポート１１３ａを介してアドレス監視部１１９にメモリアクセス要求を転送する。アドレス監視部１１９は、メモリアクセス要求を受け付けると、図９において説明した情報を参照し、メモリアクセス要求に含まれる“アクセス先アドレス”に基づいてＣＰＵ間通信であるか否かを判断する（Ｓ１００３）。
【００６３】
Ｓ１００３の判断の結果、ＣＰＵ間通信であった場合（Ｓ１００３／ＹＥＳ）、アドレス監視部１１９は第１ポート１１３ｂを介してメモリアクセス要求を転送することにより、第１ポートでメモリアクセスを行うと共に、ＩＮＴＣ１２０にＣＰＵ間通信の発生を通知することにより、ＩＮＴＣ１２０に割込みを発生させる（Ｓ１００４）。
【００６４】
割込みが発生したＣＰＵ１０１ａ又はＣＰＵ１０１ｂは、Ｓ９０４のメモリアクセスによってＲＡＭ１０２の所定領域にデータが書き込まれると、メモリアクセス要求によりそのデータを読み出してＣＰＵ間通信を完了する（Ｓ１００７）。尚、Ｓ１００４の第１ポートメモリアクセスが完了したことは、アドレス監視部１１９及びＩＮＴＣ１２０の機能によって通知される。
【００６５】
Ｓ１００３の判断においてＣＰＵ間通信ではなかった場合（Ｓ１００３／ＮＯ）、アドレス監視部１１９は第１ポート１１３ｂを介してメモリアクセス要求を転送することにより、第１ポートでメモリアクセスを行い（Ｓ１００５）、処理を終了する。また、Ｓ１００２の判断において第２ポートを選択した場合（Ｓ１００２／ＮＯ）、アドレスデコータ１１１は、第２ポート１１４を介してアービタ１１５にメモリアクセス要求を行う。
【００６６】
このような処理により、本実施形態のようなマルチプロセッサ構成の装置において、ＣＰＵによって実行される処理の内容に応じた優先度によるメモリアクセスの調停制御を、ＣＰＵ間通信のためのメモリアクセスの優先度も考慮して行うことが可能となる。
【００６７】
尚、図７の構成は、マルチプロセッサ構成の場合を示す例であるが、上述したように、１つのプロセッサ内の複数のコアが含まれるマルチコアプロセッサが近年主流となっている。そのようなマルチコアプロセッサの場合の構成例を図１１に示す。マルチコアプロセッサを用いる場合、図１１に示すように、ＣＰＵ１０１以外の構成は図１の構成と略同一である。
【００６８】
図１１の構成におけるＣＰＵ１０１は、夫々が独立した演算装置として機能するコアＡ１０１Ａ及びコアＢ１０１Ｂに加えて、ＧＩＣ（Ｇｅｎｅｒａｌ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）１０１Ｃを含む。コアＡ１０１Ａ及びコアＢ１０１Ｂは、図７において説明したＣＰＵ１０１ａ、１０１ｂと同様に、夫々独立してアドレスデコータ１１１と接続されている。
【００６９】
ＧＩＣ１０１Ｃは、コアＡ１０１ＡとコアＢ１０１Ｂとの間のコア間通信が発生した場合の割込み制御を行う。即ち、ＧＩＣ１０１Ｃは、図７の例においてＣＰＵ間通信が発生した場合のＩＮＴＣ１２０に相当する機能を担う。
【００７０】
図１１に示す画像処理装置１において例えば、コアＡ１０１ＡからコアＢ１０１Ｂへの情報の受け渡しによるコア間通信が発生すると、コアＡ１０１Ａは、受け渡すべきデータをＲＡＭ１０２に書き込むためのメモリアクセス要求を行うと共に、ＧＩＣ１０１Ｃに対してコア間通信の発生を通知する。ＧＩＣ１０１Ｃは、コア間通信が発生した通知を受けると、コアＢ１０１Ｂに対して割込みを発生させる。
【００７１】
コアＢ１０１Ｂは、ＧＩＣ１０１Ｃの機能より割込みが発生すると、コア間通信におけるデータの受け渡しよう領域として予め定められているメモリ領域に対して、メモリアクセス要求を行い、コアＡ１０１Ａによって書き込まれた受け渡し用のデータを読み込む。このような処理により、コア間通信が完了する。
【００７２】
このような態様は、図８において説明したメモリ領域マップと同様に、コア間通信に用いられるメモリ領域が予め定められていれば、アドレスデコータ１１１は、特に複数のコアが存在することを意識することなく、図１において説明した態様と同様の処理を実行するのみで実現することが可能である。
【００７３】
実施の形態３．
実施の形態１、２においては、図３及び図８において説明したようなメモリ領域マップに従ってＲＡＭ１０２の記憶領域を利用し、アドレスデコータ１１１においてアドレス領域に応じたポートを選択することによって、ＣＰＵによるメモリアクセスの優先度を処理の内容に応じて変化させる場合について説明した。
【００７４】
本実施形態においては、図７及び図１１のような、独立して演算を行う複数のプロセッサ若しくは複数のコアがある場合におけるアドレスデコータ１１１によるポート選択の態様として、実施の形態２とは異なる態様について説明する。尚、以下の説明においては、図１１の構成を例として説明するが、図７の構成においても同様である。
【００７５】
図２において説明したように、メモリアクセス要求にはメモリアクセスの要求元得御特定する“アクセス元マスタ”の情報が含まれるため、アドレスデコータ１１１は、コアＡ１０１Ａによるメモリ要求か、コアＢ１０１Ｂによるメモリ要求かを判断することができる。そして、マルチコアプロセッサを用いる情報処理装置１においては、処理の内容に応じてコアＡ１０１ＡとコアＢ１０１Ｂとのいずれのコアによって演算を行うかが予め定められている場合がある。
【００７６】
従って、画像処理装置１の動作を制御するためのソフトウェア・プログラムを構築する際に、優先度の高い処理と優先度の低い処理とで、処理させるコアを予め定めておくことにより、アドレスデコータ１１１において、メモリアクセスの要求元のマスタを示す“アクセス元マスタ”の情報に基づいて優先度を判断することが可能となる。
【００７７】
そのため、本実施形態に係るアドレスデコータ１１１は、図４に示すようなドレス領域設定テーブルに替えて、図１２に示すように、“アクセス元マスタ”と選択するべきポートとが関連付けられたコア設定情報に基づいて、コアＡ１０１Ａ及びコアＢ１０１Ｂからのメモリアクセス要求を第１ポート１１３、第２ポート１１４のいずれかに振り分ける。
【００７８】
このような態様により、マルチコアプロセッサを用いる装置やマルチプロセッサ構成の装置において、コアやプロセッサに基づいたメモリアクセス優先度の判断が可能となる。
【００７９】
尚、図２において説明したようなアドレス領域設定テーブルを用いて、“アクセス先アドレス”に基づいてポートを判断する態様と、本実施形態に係る態様とを組み合わせて利用することも可能である。即ち、ＣＰＵ１０１に演算を行わせるためのプログラムの構築に際して、図７に示すようなメモリ領域マップに対応したプログラムを構築すると共に、上述したように、処理の内容に応じて演算を行うコアを定めておく。
【００８０】
そして、アドレス領域設定記憶部１１２は、図１３に示すように、アドレス領域と“アクセス元マスタ”であるコアの種類との組み合わせ毎に、選択するべきポートが関連付けられた情報を記憶しておく。このような構成において、アドレスデコータ１１１は、図１３に示すようアドレス領域設定記憶部１１２に記憶された情報を参照し、メモリアクセス要求に含まれる“アクセス先アドレス”及び“アクセス元マスタ”に関連付けられているポートを選択する。このような態様により、メモリアクセス要求に含まれる限られた情報に基づいてより詳細な優先度の判断が可能となる。
【符号の説明】
【００８１】
１  画像処理装置
１００  コントローラボード
１０１  ＣＰＵ
１０２  ＲＡＭ
１１０  コントローラチップ
１１１  アドレスデコータ
１１１ａ  アクセス要求取得部
１１１ｂ  ポート選択部
１１１ｃ  アクセス要求出力部
１１２  アドレス領域設定記憶部
１１３  第１ポート
１１４  第２ポート
１１５  アービタ
１１６  メモリコントローラ
１１７  ＰＣＩｅインタフェース
１１８、１１８ａ、１１８ｂ、１１８ｃ  ＤＭＡＣ
１１９  アドレス監視部
１２０  ＩＮＴＣ
２００  エンジンボード
２０１  画像処理ＡＳＩＣ
２１０  スキャナ
２２０  プロッタ
【先行技術文献】
【特許文献】
【００８２】
【特許文献１】特開２０１０−２１８１７０号公報
【図１】
2013131139.tif 000003
【図２】
2013131139.tif 000004
【図３】
2013131139.tif 000005
【図４】
2013131139.tif 000006
【図５】
2013131139.tif 000007
【図６】
2013131139.tif 000008
【図７】
2013131139.tif 000009
【図８】
2013131139.tif 000010
【図９】
2013131139.tif 000011
【図１０】
2013131139.tif 000012
【図１１】
2013131139.tif 000013
【図１２】
2013131139.tif 000014
【図１３】
2013131139.tif 000015