(57)【要約】【課題】メモリへのアクセス形態が異なる複数のメモリマスタに与えるアクセス許可のバランスを向上する。【解決手段】電子回路２は、メモリ３にアクセスするメモリマスタ１０〜１３と、メモリマスタ１０〜１３によるメモリ３へのアクセスを調停する調停回路１４を備える。調停回路１４は、メモリマスタ１０〜１３のうちいずれかのメモリマスタがメモリ３へのアクセスに成功した場合に、このメモリマスタの優先度を下げて他のメモリマスタの優先度を上げる処理と、メモリマスタ１０〜１３毎に過去の所定期間に行ったメモリ３へのアクセス回数に応じて優先度の補正量を定める処理と、補正量が加算された優先度に従って選択したメモリマスタにメモリ３へのアクセスを許可する処理を行う。【選択図】図１
2013196321.tif 000002
【特許請求の範囲】
【請求項１】
メモリにアクセスする複数のメモリマスタと、
前記複数のメモリマスタによる前記メモリへのアクセスを調停する調停回路と、
を備え、
前記調停回路は、
前記複数のメモリマスタのうちいずれかのメモリマスタが前記メモリへのアクセスに成功した場合に、前記いずれかのメモリマスタの優先度を下げて、他のメモリマスタの優先度を上げる処理と、
前記複数のメモリマスタ毎に、過去の所定期間に行った前記メモリへのアクセス回数に応じて前記優先度の補正量を定める処理と、
前記補正量が加算された前記優先度に従って選択したメモリマスタに前記メモリへのアクセスを許可する処理と、
を行うことを特徴とする電子回路。
【請求項２】
前記調停回路が、前記メモリマスタ毎に定めた閾値と前記所定期間におけるアクセス数との比較結果に応じて前記補正量を定める処理を実行する請求項１に記載の電子回路。
【請求項３】
前記調停回路が、前記閾値、大小関係を示すフラグ及び補正量情報を記憶する記憶回路を備え、前記閾値と前記アクセス数とが前記フラグが示す大小関係を満たす場合に前記補正量情報が示す値を前記優先度の補正量として使用する処理を特徴とする請求項２に記載の電子回路。
【請求項４】
前記調停回路が、前記所定期間を分割した複数の単位期間毎に各単位期間に発生したアクセス数を記憶する第２の記憶回路を備え、前記第２の記憶回路に記憶されるアクセス数を前記単位期間毎に更新する処理と、前記複数の単位期間のアクセス数を合計することにより前記所定期間におけるアクセス数を算出する処理と、を実行することを特徴とする請求項１〜３のいずれか一項に記載の電子回路。
【請求項５】
複数のメモリマスタによるメモリへのアクセスを調停する調停方法であって、
前記複数のメモリマスタのうちいずれかのメモリマスタが前記メモリへのアクセスに成功した場合に、前記いずれかのメモリマスタの優先度を下げて他のメモリマスタの優先度を上げ、
前記複数のメモリマスタ毎に、過去の所定期間に行った前記メモリへのアクセス回数に応じて前記優先度の補正量を定め、
前記補正量が加算された前記優先度に従って選択したメモリマスタに前記メモリへのアクセスを許可する、ことを特徴とする調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で論じられる実施態様は、複数のメモリマスタによるメモリアクセスの調停に関する。
【背景技術】
【０００２】
複数のメモリマスタが共有のメモリリソースを利用する場合、複数のメモリマスタによる競合するメモリアクセスの調停処理が行われる。なお、以下の説明においてメモリマスタを単に「マスタ」又は「マスタ装置」と表記することがある。
【０００３】
メモリアクセスを調停する従来の技術として、共有メモリに対するアクセスを所定のバンド幅で各マスタ装置に行わせるよう、マスタ装置間の調停を行う調停装置が知られている。協定装置は、特定のマスタ装置から共有メモリに対するアクセス要求を受け付ける受付手段とアクセス制御手段と備える。アクセス制御手段は、受付手段が予め割り当てられているバンド幅以上のアクセス要求を特定のマスタ装置から受け付けた場合、予め設定した第１期間においてその要求を許可し、第１期間が終了すれば、第１期間に続く第２期間において特定のマスタ装置からのアクセス要求をマスクする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２７１９４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来の技術のように、予め割り当てたバンド幅以上のアクセス要求を受け付けたマスタからのアクセス要求を第２期間でマスクする調停処理によると、メモリアクセス形態が異なるマスタの間で、許可される平均データ転送量に不平等が生じる恐れがある。例えば、メモリとのデータ転送量の揺らぎがあるマスタは、揺らぎがないマスタに比べて予め割り当てたバンド幅を超える可能性が高くなる。このため両マスタの平均データ転送量が同じであっても、データ転送量の揺らぎがあるマスタのほうがマスクされやすくなる。
【０００６】
また、上述の従来の技術では、予め割り当てたバンド幅をアクセス要求が超えるまでマスクを行わない。このため、一時的に集中してメモリアクセスを行うマスタと、一定速度でメモリとのデータ転送を行うマスタとが混在すると、前者の集中的なアクセスによって、後者の転送データの取りこぼしが生じる恐れがある。
【０００７】
また、上述の従来の技術では、アクセス要求がマスクされると、他のマスタからのアクセス要求がなくてもメモリにアクセスできないため、マスタの信号処理能力が不必要に制限される恐れがある。このように従来の技術では、メモリへのアクセス形態が異なる複数の種類のマスタが共有メモリにアクセスする場合、各マスタの特性に応じたアクセス許可を与えることができなかった。
【０００８】
本明細書に記載される装置及び方法は、メモリへのアクセス形態が異なる複数のメモリマスタに与えるアクセス許可のバランスを向上することを目的とする。
【課題を解決するための手段】
【０００９】
装置の一観点によれば、メモリにアクセスする複数のメモリマスタと、複数のメモリマスタによるメモリへのアクセスを調停する調停回路を備える電子回路が与えられる。調停回路は、複数のメモリマスタのうちいずれかのメモリマスタがメモリへのアクセスに成功した場合に、このメモリマスタの優先度を下げて、他のメモリマスタの優先度を上げる処理と、複数のメモリマスタ毎に、過去の所定期間に行ったメモリへのアクセス回数に応じて優先度の補正量を定める処理と、補正量が加算された優先度に従って選択したメモリマスタにメモリへのアクセスを許可する処理を行う。
【００１０】
方法の一観点によれば、複数のメモリマスタによるメモリへのアクセスを調停する調停方法が与えられる。調停方法は、複数のメモリマスタのうちいずれかのメモリマスタがメモリへのアクセスに成功した場合に、このメモリマスタの優先度を下げて他のメモリマスタの優先度を上げることと、複数のメモリマスタ毎に、過去の所定期間に行ったメモリへのアクセス回数に応じて優先度の補正量を定めることと、補正量が加算された優先度に従って選択したメモリマスタにメモリへのアクセスを許可することを含む。
【発明の効果】
【００１１】
本明細書に記載される装置及び方法によれば、メモリへのアクセス形態が異なる複数のメモリマスタに与えるアクセス許可のバランスが向上する。
【図面の簡単な説明】
【００１２】
【図１】画像読取装置の一例のハードウエア構成図である。
【図２】調停回路の機能構成例の説明図である。
【図３】優先度補正部の機能構成例の説明図である。
【図４】（Ａ）はアクセス回数の測定方法の一例の説明図であり、（Ｂ）はアクセス履歴情報の例の説明図である。
【図５】アクセス履歴更新処理の一例の説明図である。
【図６】閾値記憶部に記憶される閾値設定情報の一例の説明図ある。
【図７】補正量決定処理の一例の説明図である。
【図８】調停方法の一例の説明図である。
【発明を実施するための形態】
【００１３】
＜１．ハードウエア構成＞
以下、添付する図面を参照して好ましい実施例について説明する。以下、２次元の原稿を読み取って画像信号を生成する画像読取装置に使用される信号処理回路の例示を用いて、本明細書に記載される電子回路を説明する。しかし、この例示は、本明細書に記載される電子回路が、画像読取装置に使用される信号処理回路に限定して適用されることを意図するものではない。本明細書に記載される電子回路は、複数のマスタが共有メモリにアクセスする電子回路に広く適用可能である。
【００１４】
図１は、画像読取装置の一例のハードウエア構成図である。画像読取装置１は、例えば、複数の光源で露光された２次元原稿を走査して読み取る画像読取装置であってよい。このような、例えば画像読取装置の例として、例えばフィーダスキャナ、フラットベッドスキャナ、ハンディスキャナ等の各種スキャナ装置が挙げられる。以下、フィーダスキャナの例によって実施例の説明を行う。なお、図１に示すハードウエア構成は、本明細書に記載される画像読取装置のハードウエア構成の例示である。以下に記載される動作を実行するものであれば、他のどのようなハードウエア構成が採用されてもよい。
【００１５】
画像読取装置１は、信号処理回路２と、共有メモリ３と、イメージセンサ４と、ＡＦＥ（Analog Front-End Processor）５と、搬送機構６と、入力デバイス７と、出力デバイス８を備える。イメージセンサ４は、２次元の原稿を撮像して、原稿に対応する画像信号を出力する。イメージセンサ４は、例えば、１次元又は２次元に配列されたＣＣＤ（Charge Coupled Device）センサやＣＭＯＳ（Complementary Metal Oxide Semiconductor）センサ等の撮像素子と、この撮像素子に原稿の像を結像する光学系を備える。ＡＦＥ５は、イメージセンサ４から出力される画像信号に対して増幅やその他の信号処理を施した後、処理された画像信号を信号処理回路２へ入力する。
【００１６】
搬送機構６は、画像読取装置１の原稿トレイからイメージセンサ４による原稿読み取り位置まで原稿を搬送する。入力デバイス７は、ユーザによる入力操作を受け付ける入力装置である。入力デバイス７は、例えば、ボタン、スクロールホイール、キーパッド、キーボード、ポインティングデバイス、タッチパネル等であってよい。出力デバイス８は、画像読取装置１から各種情報をユーザに提示するための出力装置である。例えば、出力デバイス８は、ユーザに提示する情報を利用者に可視的に表示する表示デバイスであってよい。出力デバイス８は、発光素子や、液晶ディスプレイ、有機エレクトロルミネッセンスディスプレイ等の表示装置であってよい。または、出力デバイス８は、音声信号を出力するスピーカやその駆動回路であってよい。
【００１７】
信号処理回路２は、画像読取装置１の制御、イメージセンサ４で読み取られた画像データの入力、画像データの画像処理を行う。また、信号処理回路２は、入力デバイス７及び出力デバイス８を用いた画像読取装置１のユーザインタフェースの制御、並びに画像読取装置１に接続される情報処理装置やネットワークとの通信処理を行う。
【００１８】
このため信号処理回路２は、第１プロセッサ１０と、第２プロセッサ１１と、画像入力インタフェース回路１２と、画像処理エンジン１３を備える。なお、以下の説明及び添付する図面においてインタフェースを「Ｉ／Ｆ」と表記することがある。第１プロセッサ１０は、共有メモリ３に記憶されたコンピュータプログラムとデータに従って画像読取装置１の制御を行う制御プロセッサである。
【００１９】
第２プロセッサ１１は、共有メモリ３に記憶されたコンピュータプログラムとデータに従って、入力デバイス７及び出力デバイス８を用いた画像読取装置１のユーザインタフェースの制御を行うアプリケーションプロセッサである。また、第２プロセッサ１１は、共有メモリ３に記憶されたコンピュータプログラムとデータに従って、画像読取装置１に接続される情報処理装置やネットワークとの通信処理を行う。画像入力Ｉ／Ｆ回路１２は、イメージセンサ４で読み取られた画像データを取得して共有メモリ３へ転送する論理回路である。画像処理エンジン１３は、共有メモリ３に格納された画像データの画像処理を行う論理回路である。
【００２０】
第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３の各々は、共有メモリ３にアクセスするマスタである。以下の説明では、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３を総称して「マスタ」と表記することがある。本実施例は、４個のマスタが共有メモリ３にアクセスするが、本明細書に記載される電子回路は、３個以下のマスタが共有メモリにアクセスする電子回路や、５個以上のマスタが共有メモリにアクセスする場合にも広く適用可能である。
【００２１】
信号処理回路２は、調停回路１４と、メモリコントローラ１５と、Ｉ／Ｆ回路１６を備える。調停回路１４は、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３による共有メモリ３へのアクセスを調停する。メモリコントローラ１５は、調停回路１４によって調停されたアクセス要求に従って、共有メモリ３の書込動作及び読出動作を制御する。また、メモリコントローラ１５は、共有メモリ３が備えるＤＲＡＭ（Dynamic Random Access Memory）のリフレッシュ動作を行う。
【００２２】
Ｉ／Ｆ回路１６は、第１プロセッサ１０による制御にしたがって、搬送機構６が備えるモータやアクチュエータを駆動する。また、Ｉ／Ｆ回路１６は、第２プロセッサ１１による制御にしたがって、入力デバイス７及び出力デバイス８を駆動する。また、Ｉ／Ｆ回路１６は、有線及び／又は無線により、他の情報処理装置やネットワークと第２プロセッサ１１と間の通信信号を送受信する。
【００２３】
信号処理回路２は、例えば、上記の構成要素１０〜１６を１チップ上に集積したシステムLSI(Large Scale Integration)であってよい。他の実施例では、構成要素１０〜１６の一部又は全部が別々のチップ上に集積されていてもよい。
【００２４】
＜２．調停回路の機能構成＞
続いて、調停回路１４について説明する。第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３は、それぞれのデータ転送帯域や、処理内容、キャッシュの容量や構成などの相違によって、共有メモリ３へのメモリアクセス形態が異なる。メモリアクセス形態は、例えばメモリアクセスの際のメモリ帯域や、アクセス間隔、１回のアクセスのデータサイズによって定まる。
【００２５】
例えば、第１プロセッサ１０が行う画像読取装置１の制御や、第２プロセッサ１１が行うユーザインタフェースの制御は、リアルタイム処理を伴い散発的にメモリアクセスが集中するが、データ転送量の時間平均は小さい。また、画像入力Ｉ／Ｆ回路１２から共有メモリ３へ画像データを入力する際には、入力画像の取りこぼしを防ぐために一定の転送レートが確保されることが望ましい。これに対して、画像処理エンジン１３が画像処理を行う場合には共有メモリ３に読み書きするデータ量が時間的に変動するため、状況に応じて転送レートを適応させることが望ましい。第２プロセッサ１１がネットワーク通信を行う場合も同様である。
【００２６】
調停回路１４は、複数のメモリマスタのそれぞれが過去の一定期間に行った共有メモリ３へのアクセス回数に応じて、マスタのアクセス優先度を補正することで、メモリアクセス形態が異なるマスタ間におけるアクセス許可のバランスを向上する。図２は、調停回路１４の機能構成例の説明図である。調停回路１４は、優先度補正部２０ａ〜２０ｄと、優先度指定部２１ａ〜２１ｄと、選択部２２を備える。なお、図２は、以下の説明に関係する機能を中心として示している。図２を参照して機能構成が説明されるハードウエアは、図示の機能構成以外の機能構成を含んでいてもよい。図３に示す機能構成図についても同様である。
【００２７】
優先度補正部２０ａは、第１プロセッサ１０に共有メモリ３へのアクセスを選択部２２が許可する許可信号を入力する。優先度補正部２０ａは、許可信号をカウントすることにより、過去の所定期間内に第１プロセッサ１０が行ったメモリアクセス回数を測定する。優先度補正部２０ａは、メモリアクセス回数と閾値とを比較して、第１プロセッサ１０の共有メモリ３へのアクセス優先度の補正量を決定する。これら所定期間や閾値の値は、第１プロセッサ１０によってマスタ毎に設定される。優先度補正部２０ｂ、２０ｃ及び２０ｄも同様に、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のアクセス優先度の補正量を決定する。
【００２８】
優先度指定部２１ａは、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３が、共有メモリ３へのアクセスを選択部２２に要求する要求信号と、それに対する許可信号を入力する。優先度指定部２１ｂ、２１ｃ及び２１ｄも同様である。また、優先度指定部２１ａ、２１ｂ、２１ｃ及び２１ｄは、優先度補正部２０ａ、２０ｂ、２０ｃ及び２０ｄから、それぞれ第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のアクセス優先度の補正量を入力する。
【００２９】
優先度指定部２１ａ〜２１ｄは、各マスタのアクセス優先度を、例えばラウンドロビン方式で決定する。例えば優先度指定部２１ａは、第１プロセッサ１０によるアクセスが許可された場合には、第１プロセッサ１０のアクセス優先度を最低の優先度「０」にリセットする。第１プロセッサ１０によるアクセス要求が許可されず、他のプロセッサ許可信号を受信した場合には、第１プロセッサ１０のアクセス優先度の現在値から１つ増加する。優先度指定部２１ｂ〜２１ｄも同様に、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のアクセス優先度を決定する。
【００３０】
優先度指定部２１ａ〜２１ｄは、優先度補正部２０ａ〜２０ｄから入力した補正量を加算することにより、それぞれ第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のアクセス優先度を補正する。優先度指定部２１ａ〜２１ｄは、補正したアクセス優先度を選択部２２へ出力する。
【００３１】
選択部２２は、優先度指定部２１ａ〜２１ｄから、補正されたアクセス優先度を入力する。また、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３から、共有メモリ３へのアクセスを要求する要求信号を受信する。選択部２２は、要求信号を送信したマスタに対して共有メモリ３へのアクセスを許可する許可信号を送信する。
【００３２】
選択部２２は、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のうちの複数のマスタから要求信号を受信した場合には、優先度指定部２１ａ〜２１ｄから受信したアクセス優先度がより高いマスタを選択する。選択部２２は、要求信号を送信したマスタのうち、アクセス優先度にしたがって選択したマスタにのみ許可信号を送信する。選択部２２は、アクセスを許可したマスタからのメモリアクセス信号をメモリコントローラ１５へ出力する。
【００３３】
なお、以下の説明において、優先度補正部２０ａ〜２０ｄを総称して「優先度補正部２０」と表記することがある。優先度指定部２１ａ〜２１ｄを総称して「優先度指定部２１」と表記することがある。また、第１プロセッサ１０、第２プロセッサ１１、画像入力Ｉ／Ｆ回路１２及び画像処理エンジン１３のうちのいずれかのマスタについて記述する場合に、このマスタを「第ｉマスタ」と表記し、個々のマスタを識別するための添字ｉを使用することがある。
【００３４】
続いて、図３を参照してアクセス優先度の補正量を決定する優先度補正部２０の機能構成の一例を説明する。優先度補正部２０は、単位期間記憶部３０と、タイマ３１と、カウンタ３２と、アクセス履歴記憶部３３と、閾値記憶部３４と、比較部３５と、補正量決定部３６を備える。
【００３５】
単位期間記憶部３０には、単位期間Ｔｉの設定値が記憶される。単位期間Ｔｉは、第ｉマスタのメモリアクセス回数の測定期間である所定期間Ｔｍｉをｎ個に分割した期間である。単位期間Ｔｉの値は、第１プロセッサ１０によってマスタ毎に設定される。タイマ３１は、単位期間Ｔｉを計時する。カウンタ３２は、各単位期間Ｔｉ内に発生した第ｉマスタのメモリアクセス回数を単位期間Ｔｉ毎にカウントする。
【００３６】
図４の（Ａ）は、カウンタ３２によるアクセス回数の測定方法の一例の説明図である。時刻ｔ０、ｔ１、ｔ２、…ｔｎ−１及びｔｎは、所定期間Ｔｍｉをｎ等分した単位期間Ｔｉの区切りの時刻である。図の例では、単位期間ｔ０〜ｔ１、ｔ１〜ｔ２、…ｔｎ−１〜ｔｎのｎ個の単位期間Ｔｉにおいて、それぞれｃ１回、ｃ２回及びｃｎ回のアクセス回数が発生している。
【００３７】
カウンタ３２は、各単位期間Ｔｉに測定したアクセス回数をアクセス履歴記憶部３３にそれぞれ個別に記憶する。アクセス履歴記憶部３３には、ｎ個の連続する単位期間Ｔｉに測定されたアクセス回数データを、アクセス履歴情報としてそれぞれ別個に記憶するｎ個の記憶領域が用意される。図４の（Ｂ）は、アクセス履歴情報の例の説明図である。図のアクセス履歴情報では、単位期間ｔ０〜ｔ１で測定された最も古いアクセス回数ｃ１が第１記憶領域に、続けて単位期間ｔ１〜ｔ２で測定された２番目に古いアクセス回数ｃ２が第２記憶領域に記憶されている。単位期間ｔｎ−１〜ｔｎで測定された最も新しいアクセス回数ｃｎは第ｎ記憶領域に記憶される。
【００３８】
アクセス履歴記憶部３３には、最も古い単位期間に測定された記憶領域を示すポインタが記憶される。カウンタ３２は、最新のアクセス回数を測定するとアクセス履歴情報を更新する。アクセス履歴情報を更新する際にカウンタ３２は、ポインタが示す記憶領域の内容を最新のアクセス回数で上書きし、上書きされたアクセス回数よりも１つ新しいアクセス回数が格納される記憶領域にポインタの指定先を進める。カウンタ３２は、第ｎ記憶領域に新しいアクセス回数を格納したら、ポインタが指す記憶領域を第１記憶領域に変更する。
【００３９】
図５を参照して、カウンタ３２によるアクセス履歴更新処理の一例を説明する。ステップＳ１０１においてカウンタ３２は、第ｉマスタのメモリアクセスのカウント数ｃの値を「０」にリセットする。ステップＳ１０２においてカウンタ３２は、単位期間Ｔｉが経過してタイマ３１による単位期間Ｔｉの計時が完了したか否かを判断する。単位期間Ｔｉが経過した場合（ステップＳ１０２：Ｙ）に処理はステップＳ１０５へ進む。単位期間Ｔｉが経過していない場合（ステップＳ１０２：Ｎ）に処理はステップＳ１０３へ進む。
【００４０】
ステップＳ１０３においてカウンタ３２は、第ｉマスタのアクセスが許可されたか否かを判断する。第ｉマスタのアクセスが許可された場合（ステップＳ１０３：Ｙ）に処理はステップＳ１０４へ進む。第ｉマスタのアクセスが許可されない場合（ステップＳ１０３：Ｎ）に処理はステップＳ１０２へ戻る。ステップＳ１０４においてカウンタ３２は、カウント数ｃを１つ増加させて、処理をステップＳ１０２へ戻す。
【００４１】
ステップＳ１０５においてカウンタ３２は、最も古い単位期間に測定された記憶領域の内容をカウント数ｃの値に更新する。ステップＳ１０６においてカウンタ３２は、ポインタの指定先を２番目に古いアクセス回数が格納されている記憶領域に更新する。
【００４２】
図３を参照する。閾値記憶部３４には、カウンタ３２が測定した第ｉマスタのメモリアクセス回数と比較される閾値を含む閾値設定情報値が記憶される。図６は、閾値記憶部３４に記憶される閾値設定情報の一例の説明図ある。閾値設定情報は、閾値記憶部３４が有する複数のレジスタに記憶される。図の例ではレジスタ番号１〜４のレジスタに、それぞれ異なる閾値設定情報が記憶される。他の実施例では、レジスタ数すなわち閾値設定情報の数は４より少なくとも多くてもよい。
【００４３】
各閾値設定情報は、情報要素「閾値」、「大小関係」、「補正量」を含む。情報要素「閾値」は、メモリアクセス回数と比較される閾値を示す。情報要素「大小関係」は、大小関係を示すフラグである。情報要素「補正量」は、第ｉマスタのメモリアクセス回数が、情報要素「閾値」で指定された値と情報要素「大小関係」で指定された大小関係を満たす場合に適用される補正量を示す。
【００４４】
例えば、第１番目のレジスタの閾値設定情報によれば、メモリアクセス回数が、閾値１０００より大きい場合には、補正量「−２」が適用される。第３番目のレジスタの閾値設定情報によれば、メモリアクセス回数が、閾値１００より小さい場合には、補正量「＋１」が適用される。
【００４５】
図３を参照する。比較部３５は、閾値設定情報によって指定される閾値、大小関係及び補正量と、アクセス履歴情報に記憶されるｎ個のアクセス回数の測定値を入力する。比較部３５は、ｎ個のアクセス回数の合計と各閾値設定情報によって指定された閾値とを比較し、アクセス回数の合計と閾値のいずれかとの関係が、指定された大小関係に該当するか否かを判断する。補正量決定部３６は、アクセス回数の合計と閾値との関係が、指定された大小関係に該当する場合に、この閾値設定情報によって指定された補正量を、第ｉマスタのアクセス優先度の補正量ａｉとして選択し、優先度指定部２１へ出力する。
【００４６】
図７を参照して、図６の例示の閾値設定情報が与えられた場合の比較部３５及び補正量決定部３６による補正量決定処理の一例を説明する。ステップＳ２０１において比較部３５は、ｎ個のアクセス回数の合計と第１番目のレジスタの閾値とを比較する。第１番目のレジスタの閾値設定情報は、ｎ個のアクセス回数の合計が閾値「１０００」よりも大きい大小関係を指定する。なお、以下の説明において、ｎ個のアクセス回数の合計を単に「アクセス回数」と表記する。
【００４７】
アクセス回数が閾値「１０００」より大きい場合（ステップＳ２０１：Ｙ）に処理はステップＳ２０２へ進む。アクセス回数が閾値「１０００」以下の場合（ステップＳ２０１：Ｎ）に処理はステップＳ２０３へ進む。ステップＳ２０２において補正量決定部３６は、第１番目のレジスタで指定される補正量「−２」をアクセス優先度の補正量ａｉとして優先度指定部２１へ出力する。
【００４８】
ステップＳ２０３において比較部３５は、アクセス回数と第２番目のレジスタの閾値とを比較する。第２番目のレジスタの閾値設定情報は、アクセス回数の合計が閾値「５００」よりも大きい大小関係を指定する。アクセス回数が閾値「５００」より大きい場合（ステップＳ２０３：Ｙ）に処理はステップＳ２０４へ進む。アクセス回数が閾値「５００」以下の場合（ステップＳ２０３：Ｎ）に処理はステップＳ２０５へ進む。ステップＳ２０４において補正量決定部３６は、第２番目のレジスタで指定される補正量「−１」を優先度指定部２１へ出力する。
【００４９】
ステップＳ２０５において比較部３５は、アクセス回数と第３番目のレジスタの閾値とを比較する。第３番目のレジスタの閾値設定情報は、アクセス回数の合計が閾値「１００」よりも小さい大小関係を指定する。アクセス回数が閾値「１００」より大きい場合（ステップＳ２０５：Ｙ）に処理はステップＳ２０６へ進む。アクセス回数が閾値「１００」以下の場合（ステップＳ２０５：Ｎ）に処理はステップＳ２０７へ進む。ステップＳ２０６において補正量決定部３６は、第３番目のレジスタで指定される補正量「０」を優先度指定部２１へ出力する。
【００５０】
ステップＳ２０７において比較部３５は、アクセス回数と第４番目のレジスタの閾値とを比較する。第４番目のレジスタの閾値設定情報は、アクセス回数の合計が閾値「５０」よりも小さい大小関係を指定する。アクセス回数が閾値「５０」より大きい場合（ステップＳ２０７：Ｙ）に処理はステップＳ２０８へ進む。アクセス回数が閾値「５０」以下の場合（ステップＳ２０７：Ｎ）に処理はステップＳ２０９へ進む。ステップＳ２０８において補正量決定部３６は、第４番目のレジスタで指定される補正量「＋１」を優先度指定部２１へ出力する。ステップＳ２０９において補正量決定部３６は、補正量「＋２」を優先度指定部２１へ出力する。
【００５１】
＜３．調停方法＞
続いて、図８のフローチャートを参照して本明細書に記載される調停方法の一例を説明する。以下の処理では、マスタ毎にアクセス優先度を定めるため、処理の対象となるマスタを識別するための添字ｉを使用して個々のマスタを「第ｉマスタ」と表記する。
【００５２】
ステップＳ３０１において添字ｉの値が「１」に初期化される。ステップＳ３０２において優先度指定部２１は、第ｉマスタのアクセスが選択部２２に許可されたか否かを判断する。第ｉマスタのアクセスが許可された場合（ステップＳ３０２：Ｙ）に処理はステップＳ３０３へ進む。第ｉマスタのアクセスが許可されない場合（ステップＳ３０２：Ｎ）に処理はステップＳ３０４へ進む。ステップＳ３０３において優先度指定部２１は、第ｉマスタのアクセス優先度ｐｉを「０」にする。その後に処理はステップＳ３０６へ進む。
【００５３】
ステップＳ３０４において優先度指定部２１は、第ｉマスタがアクセスを要求していたか否かを判断する。第ｉマスタがアクセスを要求していた場合（ステップＳ３０４：Ｙ）に処理はステップＳ３０５へ進む。第ｉマスタがアクセスを要求していない場合（ステップＳ３０４：Ｎ）に処理はステップＳ３０６に進む。ステップＳ３０５において優先度指定部２１は、第ｉマスタのアクセス優先度ｐｉを１つ増加する。その後に処理はステップＳ３０６へ進む。
【００５４】
ステップＳ３０６において比較部３５及び補正量決定部３６は、図７を参照して説明した補正量決定処理によって第ｉマスタのアクセス優先度ｐｉの補正量ａｉを決定する。ステップＳ３０７において優先度指定部２１は、第ｉマスタのアクセス優先度ｐｉに補正量ａｉを加算することによって、アクセス優先度ｐｉを補正する。
【００５５】
ステップＳ３０８において添字の値が１つ増加する。ステップＳ３０９において添字ｉがマスタの総数「４」を超えたか否かが判断される。マスタの総数「４」を超えた場合、すなわち全マスタについてアクセス優先度ｐｉの決定及び補正が完了した場合（ステップＳ３０９：Ｙ）に処理はステップＳ３１０に進む。マスタの総数「４」を超えない場合に処理はステップＳ３０２へ戻る。
【００５６】
ステップＳ３１０において選択部２２は、アクセス要求を行うマスタのうち、補正されたアクセス優先度ｐｉが最も大きなマスタのアクセスを許可する。その後に処理はＳ３０１へ戻る。なお、図８に示すフローチャートでは、４個のマスタの優先度の決定及び補正処理を逐次実行したが、優先度補正部２０ａ〜２０ｄ及び優先度指定部２１ａ〜２１ｄは、それぞれ４個のマスタの優先度の決定及び補正処理を並列に実行してもよい。また、マスタの総数は３個以下でもよく５個以上でもよい。
【００５７】
＜４．実施例の効果＞
本実施例によれば、アクセス履歴情報に記憶された過去の所定期間のアクセス回数が閾値より小さなマスタについてアクセス優先度を高めることができる。このため、例えば散発的にメモリアクセスが集中するマスタのアクセスを優先して許可される。このように散発的にメモリアクセスが集中するマスタを優先して、安定したデータ転送速度でアクセスを行うマスタに比べてアクセスが拒否されやすくなることを回避することで、マスタ間のアクセス許可のバランスが向上される。例えば、第１プロセッサ１０や第２プロセッサ１１のように、散発的にリアルタイム処理を行うマスタのアクセスを優先させることができる。
【００５８】
同様に、メモリとのデータ転送量の揺らぎがあるマスタのアクセスが、揺らぎがないマスタに比べて拒否されやすくなることが回避され、マスタ間のアクセス許可のバランスが向上される。例えば、画像処理エンジン１３や第２プロセッサ１１のように、共有メモリ３に読み書きするデータ量が時間的に変動するマスタのアクセスが、一定の転送レートでアクセスする画像入力Ｉ／Ｆ回路１２のアクセスに比べて拒否されやすくなることが回避される。
【００５９】
一方で、マスタ毎に閾値設定情報を設定することで、一定の転送レートのメモリアクセスが確保されることが望ましいマスタに高い優先度を与えることができる。例えば、画像入力Ｉ／Ｆ回路１２によるメモリアクセスに高い優先度を与えることで、画像入力Ｉ／Ｆ回路１２は安定した転送レートで共有メモリ３へ画像データを入力することができ、入力画像の取りこぼしを防ぐことができる。
【００６０】
また、過去の所定期間のアクセス回数が閾値を超えるマスタについては、優先度を下げる補正を行って他のマスタのアクセスの帯域を確保することができる。しかし、完全にアクセスをマスクしないため、アクセス回数が閾値を超えるマスタからのアクセスであっても、他のマスタのアクセスがなければ許可される。この結果、アクセス回数が閾値を超えるマスタの信号処理能力の不必要な制限が回避される。
【００６１】
また、過去の所定期間Ｔｍｉをｎ個の単位期間Ｔｉに分割して、単位期間Ｔｉ毎に測定したアクセス回数を別個にアクセス履歴情報に記憶することで、アクセス履歴情報の更新周期を、所定期間Ｔｍｉより短い単位期間Ｔｉに短縮することができる。この結果、より長い所定期間Ｔｍｉで測定したアクセス履歴情報に基づいて補正量が決定できるようになる一方で、アクセス履歴情報の更新周期を短くしてより新しい測定結果を補正量の決定に使用できるようになる。
【符号の説明】
【００６２】
１    画像読取装置
２    信号処理回路
３    共有メモリ
１０    第１プロセッサ
１１    第２プロセッサ
１２    画像入力インタフェース回路
１３    画像処理エンジン
１４    調停回路
１５    メモリコントローラ
２０、２０ａ〜２０ｄ    優先度補正部
２１、２１ａ〜２１ｄ    優先度指定部
２２    選択部
３０    単位期間記憶部
３１    タイマ
３２    カウンタ
３３    アクセス履歴記憶部
３４    閾値記憶部
３５    比較部
３６    補正量決定部
【図１】
2013196321.tif 000003
【図２】
2013196321.tif 000004
【図３】
2013196321.tif 000005
【図４】
2013196321.tif 000006
【図５】
2013196321.tif 000007
【図６】
2013196321.tif 000008
【図７】
2013196321.tif 000009
【図８】
2013196321.tif 000010