IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

特許7625802メモリ・アクセス・システムおよび情報処理装置
<>
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図1
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図2
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図3
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図4
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図5
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図6
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図7
  • 特許-メモリ・アクセス・システムおよび情報処理装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-27
(45)【発行日】2025-02-04
(54)【発明の名称】メモリ・アクセス・システムおよび情報処理装置
(51)【国際特許分類】
   G06F 12/00 20060101AFI20250128BHJP
   G06F 13/28 20060101ALI20250128BHJP
   G06F 13/362 20060101ALI20250128BHJP
【FI】
G06F12/00 571A
G06F13/28 310G
G06F13/28 310Y
G06F13/362 510D
【請求項の数】 8
(21)【出願番号】P 2020119174
(22)【出願日】2020-07-10
(65)【公開番号】P2022015964
(43)【公開日】2022-01-21
【審査請求日】2023-06-21
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【弁理士】
【氏名又は名称】尾形 文雄
(74)【代理人】
【識別番号】100166981
【弁理士】
【氏名又は名称】砂田 岳彦
(72)【発明者】
【氏名】橋本 貴之
(72)【発明者】
【氏名】高澤 大樹
(72)【発明者】
【氏名】ヌデ島 正起
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2006-189919(JP,A)
【文献】特開2014-160341(JP,A)
【文献】特開2019-212027(JP,A)
【文献】特開2018-120490(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 13/28
G06F 13/362
(57)【特許請求の範囲】
【請求項1】
メモリへのアクセス主体の一つであり、リアルタイム処理を行う第1の処理装置と、
前記メモリへのアクセス主体の一つであり、非リアルタイム処理を行う第2の処理装置と、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
何れかの前記第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が第1の閾値よりも小さい場合、当該第1の処理装置と同一のポートを使用する特定の前記第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記特定の第2の処理装置に割り当てられた帯域を制限した状態で当該特定の第2の処理装置と同一のポートを使用する前記第1の処理装置に割り当てられた帯域が第2の閾値よりも小さい場合、当該特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、メモリ・アクセス・システム。
【請求項2】
前記帯域制御装置は、前記特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項1に記載のメモリ・アクセス・システム。
【請求項3】
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項1に記載のメモリ・アクセス・システム。
【請求項4】
前記帯域制御装置は、帯域制御の対象である前記第2の処理装置の処理が一時的に止まる際に、当該第2の処理装置における前記データの転送に要するクロック数の変更を行うことを特徴とする、請求項3に記載のメモリ・アクセス・システム。
【請求項5】
メモリと、
同一のポートから前記メモリにアクセスするアクセス主体である一または複数の処理装置を含み、当該一または複数の処理装置が、リアルタイム処理を行う第1の処理装置および非リアルタイム処理を行う第2の処理装置のいずれか一方または両方である複数のブロックと、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
前記第1の処理装置および前記第2の処理装置の両方を含む前記ブロックにおいて、当該第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が予め定められた第1の閾値よりも小さい場合に、当該ブロックに含まれる当該第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記第1の処理装置を含む前記ブロックにおいて、当該ブロックに含まれる処理装置が使用するポートに対して伝送可能に割り当てられた帯域が予め定められた第2の閾値よりも小さい場合に、当該ブロックとは異なるブロックに含まれる前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、情報処理装置。
【請求項6】
前記帯域制御装置は、前記第1の処理装置を含む前記ブロックとは異なるブロックに含まれる前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項5に記載の情報処理装置。
【請求項7】
個々の前記ブロックは、当該ブロックに含まれる一または複数の前記処理装置により特定の機能を実現し、
前記帯域制御装置は、前記特定の機能における処理が一時的に止まる際に、前記第2の処理装置に割り当てられた帯域の制御を行うことを特徴とする、請求項5に記載の情報処理装置。
【請求項8】
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項7に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ・アクセス・システムおよび情報処理装置に関する。
【背景技術】
【0002】
情報処理システムにおいて、メモリに対するアクセス主体としての複数の装置(マスター)が、各々直接メモリにアクセス(DMA:Direct Memory Access)する構成が取られる場合がある。かかるメモリへのアクセス主体の装置には、リアルタイム性が要求される処理(以下、「リアルタイム処理」と呼ぶ)を行う装置と、リアルタイム性が要求されない処理(以下、「非リアルタイム処理」と呼ぶ)を行う装置とがある。リアルタイム処理とは、一度動作を開始すると一定の処理が完了するまで動作速度を変更したり停止したりすることができない処理である。このようなシステムでは、各装置によるメモリへのアクセスを監視し、リアルタイム処理を行う装置(以下、「リアルタイム系装置」と呼ぶ)のメモリ・アクセスにおける転送帯域が不足しないように、帯域制御が行われる。
【0003】
特許文献1には、メモリと複数のマスターとの間で使用される所定時間あたりのデータ量を監視し、監視されたデータ量に関する所定の条件を満たすことに従って、監視された複数のマスターのうち優先度の低いマスター(非リアルタイムでのメモリへのアクセスによるデータ転送を実行するマスター)によるメモリへのアクセスを減少させるメモリ・アクセス・システムが開示されている。
【0004】
特許文献2には、メモリに記憶されたデータにアクセスする第1マスター(リアルタイム性を確保されたマスター)および第2マスターによるアクセスを調停する第1サブアービタと、第1マスターおよび第2マスター以外の複数のマスターによるメモリに対するアクセスを調停する第2サブアービタと、第1サブアービタからメモリに対するアクセスを、第2サブアービタからメモリに対するアクセスより優先させるメインアービタと、第2マスターによるメモリに対するアクセス量を予め設定された範囲内に制限する制限部と、を備えるデータ処理装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2018-120490号公報
【文献】特開2014-160341号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
メモリとアクセス主体の装置との間の接続構造において、例えば一の機能を担う装置ごとに複数の装置の伝送路がまとめられ、一のポートを共用してメモリに接続される構成を取る場合がある。このような構成では、ポート単位でデータ転送のボトルネックが発生する場合がある。この場合、ポートごとの接続関係に関わらず、単純に非リアルタイム処理を行う装置(以下、「非リアルタイム系装置」と呼ぶ)の転送帯域を制限したとしても、システム全体として有効な帯域調整が実現できるとは限らない。
【0007】
本発明は、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、効率の良い帯域制御を実現することを目的とする。
【課題を解決するための手段】
【0008】
請求項1に係る本発明は、
メモリへのアクセス主体の一つであり、リアルタイム処理を行う第1の処理装置と、
前記メモリへのアクセス主体の一つであり、非リアルタイム処理を行う第2の処理装置と、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
何れかの前記第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が第1の閾値よりも小さい場合、当該第1の処理装置と同一のポートを使用する特定の前記第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記特定の第2の処理装置に割り当てられた帯域を制限した状態で当該特定の第2の処理装置と同一のポートを使用する前記第1の処理装置に割り当てられた帯域が第2の閾値よりも小さい場合、当該特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、メモリ・アクセス・システムである。
請求項2に係る本発明は、
前記帯域制御装置は、前記特定の第2の処理装置とは異なるポートを使用する前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項1に記載のメモリ・アクセス・システムである。
請求項3に係る本発明は、
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項1に記載のメモリ・アクセス・システムである。
請求項4に係る本発明は、
前記帯域制御装置は、帯域制御の対象である前記第2の処理装置の処理が一時的に止まる際に、当該第2の処理装置における前記データの転送に要するクロック数の変更を行うことを特徴とする、請求項3に記載のメモリ・アクセス・システムである。
請求項5に係る本発明は、
メモリと、
同一のポートから前記メモリにアクセスするアクセス主体である一または複数の処理装置を含み、当該一または複数の処理装置が、リアルタイム処理を行う第1の処理装置および非リアルタイム処理を行う第2の処理装置のいずれか一方または両方である複数のブロックと、
帯域制御を行う帯域制御装置と、を備え、
前記帯域制御装置は、
前記第1の処理装置および前記第2の処理装置の両方を含む前記ブロックにおいて、当該第1の処理装置において前記メモリにアクセスするために当該第1の処理装置に割り当てられた帯域が予め定められた第1の閾値よりも小さい場合に、当該ブロックに含まれる当該第2の処理装置において前記メモリにアクセスするために当該第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行い、
前記第1の処理装置を含む前記ブロックにおいて、当該ブロックに含まれる処理装置が使用するポートに対して伝送可能に割り当てられた帯域が予め定められた第2の閾値よりも小さい場合に、当該ブロックとは異なるブロックに含まれる前記第2の処理装置に割り当てられた帯域を制限し、当該第1の処理装置に割り当てる帯域を増加させる帯域制御を行うことを特徴とする、情報処理装置である。
請求項6に係る本発明は、
前記帯域制御装置は、前記第1の処理装置を含む前記ブロックとは異なるブロックに含まれる前記第2の処理装置が複数存在する場合、予め定められた順番で当該複数の第2の処理装置の一つを選択しながら、順次、選択した第2の処理装置に割り当てられた帯域を制限することを特徴とする、請求項5に記載の情報処理装置である。
請求項7に係る本発明は、
個々の前記ブロックは、当該ブロックに含まれる一または複数の前記処理装置により特定の機能を実現し、
前記帯域制御装置は、前記特定の機能における処理が一時的に止まる際に、前記第2の処理装置に割り当てられた帯域の制御を行うことを特徴とする、請求項5に記載の情報処理装置である。
請求項8に係る本発明は、
前記帯域制御装置は、前記第2の処理装置と前記メモリとの間でのデータの転送に要するクロック数を変更することにより、当該第2の処理装置に割り当てられた帯域を制御することを特徴とする、請求項7に記載の情報処理装置である。
【発明の効果】
【0009】
請求項1の発明によれば、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、同一ポートを使用する装置間での帯域調整のみでは第1の処理装置の帯域不足を解消し得ない場合に、さらに帯域調整を行うことができる。
請求項2の発明によれば、不特定の第2の処理装置の使用帯域を制限する場合と比較して、システム全体への影響を低減させることができる。
請求項3の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、無駄なアクセスも生じさせずに帯域制御することができる。
請求項4の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、帯域調整を要するタイミングで制御することができる。
請求項5の発明によれば、メモリとアクセス主体の装置との接続構造に関わらず個々の装置の設定や動作状況に基づいて帯域制御を行う場合と比較して、同一ブロック間での帯域調整のみでは第1の処理装置の帯域不足を解消し得ない場合に、さらに帯域調整を行うことができる。
請求項6の発明によれば、不特定の第2の処理装置の使用帯域を制限する場合と比較して、システム全体への影響を低減させることができる。
請求項7の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、帯域調整を要するタイミングで制御することができる。
請求項8の発明によれば、第2の処理装置を停止したりバースト長を短くしたりする手法と比較して、第2の処理装置を稼働しながら、無駄なアクセスも生じさせずに帯域制御することができる。
【図面の簡単な説明】
【0010】
図1】本実施形態によるメモリ・アクセス・システムが適用される情報処理装置の構成を示す図である。
図2】本実施形態のメモリ・アクセス・システムのシステム構成を示す図である。
図3】監視装置の構成を示す図である。
図4】帯域制御装置の構成を示す図である。
図5図5は、ゲート部の構成を示す図である。
図6】帯域制御装置による帯域制御の手順を示すフローチャートである。
図7】制限対象装置の選択順の設定例を示す図である。
図8】リアルタイム系装置と非リアルタイム系装置の区別のみに基づく処理装置とメモリとの接続構造を示す図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<対象装置の構成>
図1は、本実施形態によるメモリ・アクセス・システムが適用される情報処理装置の構成を示す図である。この情報処理装置1は、複数の機能ブロック10(図1に示す構成例では10A、10B、10C)を備える。また、情報処理装置1は、CPU(Central Processing Unit)20と、キャッシュ・コヒーレンシ・インターコネクト30と、メモリコントローラ40と、メモリ50とを備える。
【0012】
機能ブロック10は、一または複数の処理装置11、12を備え、個別に特定の機能を実現する。処理装置11、12は、リアルタイム処理を実行するリアルタイム系装置としての処理装置11と、非リアルタイム処理を実行する非リアルタイム系装置としての処理装置12とに分けられる。各機能ブロック10には、リアルタイム系装置および非リアルタイム系装置の両方が含まれる場合と、リアルタイム系装置のみが含まれる場合と、非リアルタイム系装置のみが含まれる場合とがある。なお、図1には記載していないが、各機能ブロック10には、処理装置11、12ごとにDMAを実行するためのDMAC(DMA Controller)が設けられている。
【0013】
各機能ブロック10に含まれる処理装置11、12は、各々がDMAによりメモリ50にアクセスするアクセス主体である。各処理装置11、12は、CPU20を介さずに直接メモリ50にアクセスしてデータを読み書きする。一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12のメモリ・アクセス用の伝送路は、インターコネクト13(図1に示す構成例では13A、13B、13C)によりまとめられる。言い換えれば、一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12は、機能ブロック10ごとにメモリ・アクセス用の伝送路を共有する。ただし、各機能ブロック10のメモリ・アクセス用の伝送路は、1本とは限らない。例えば、図1に示す構成例において、機能ブロック10Cは、3個の処理装置11、12の伝送路をインターコネクト13Cによりまとめ、2本の伝送路としている。
【0014】
CPU20は、メモリ50に対するアクセス主体の一つである。CPU20は、情報処理装置1全体の動作を制御する。CPU20のメモリ・アクセス用の伝送路は、必要に応じて、他のアクセス主体の伝送路とまとめられる。例えば、図1に示す構成例では、CPU20の伝送路と機能ブロック10Cの伝送路の1本とが、キャッシュ・コヒーレンシ・インターコネクト30によりまとめられている。なお、CPU20は、リアルタイム系装置の一種であり、単独で一つの機能ブロック10(一つのリアルタイム系装置のみを含む機能ブロック10)を構成すると把握しても良い。
【0015】
キャッシュ・コヒーレンシ・インターコネクト30は、複数のキャッシュの一貫性(キャッシュ・コヒーレンシ)を保持しながら複数の伝送路をまとめるインターコネクトである。例えば、図1に示す構成例では、CPU20のキャッシュと、機能ブロック10Cに含まれる何れかの処理装置11、12のキャッシュとの一貫性を保持してメモリ・アクセスが実行される。
【0016】
メモリコントローラ40は、メモリ50のインターフェイスを統括する制御装置である。メモリコントローラ40は、複数のポートを有し、このポートを介してメモリ50に対するアクセス主体であるCPU20および各処理装置11、12と接続される。上述したように、各処理装置11、12のメモリ・アクセス用の伝送路は機能ブロック10ごとにまとめられているので、各処理装置11、12は、機能ブロック10単位でポートに接続される。したがって、一の機能ブロック10に複数の処理装置11、12が含まれる場合、各処理装置11、12は、メモリコントローラ40の同一のポートを使用してメモリ50にアクセスする。
【0017】
図1に示す構成例では、機能ブロック10Aの伝送路および機能ブロック10Bの伝送路は、それぞれメモリコントローラ40の一つのポートを使用している。また、CPU20の伝送路と、機能ブロック10Cの伝送路の1本とが、キャッシュ・コヒーレンシ・インターコネクト30によりまとめられて、メモリコントローラ40の一つのポートを使用している。そして、機能ブロック10Cの他方の伝送路は、メモリコントローラ40の他の一つのポートを使用している。
【0018】
メモリ50は、情報処理装置1の主記憶装置(メインメモリ)である。メモリ50としては、例えばDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等が用いられる。
【0019】
情報処理装置1は、機能ブロック10により種々の機能を実現する装置である。機能ブロック10により実現される機能は、情報処理装置1の種類に応じて特定される。一例として、図1を参照し、本実施形態の情報処理装置1を、用紙等に記録された画像を読み取る画像読み取り機能や用紙等に画像を印刷する印刷機能等を複合的に備えた画像処理装置に適用した場合の機能構成例を説明する。
【0020】
この例では、画像処理装置(情報処理装置1)の機能ブロック10として、画像読み取り(SCAN)ブロック10Aと、画像処理ブロック10Bと、印刷(PRINT)ブロック10Cとが設けられている。このうち、画像読み取りブロック10Aと印刷ブロック10Cとは、リアルタイム系装置である処理装置11および非リアルタイム系装置である処理装置12の両方を備える。画像処理ブロック10Bは、非リアルタイム系装置である処理装置12のみを備える。
【0021】
画像読み取りブロック10Aは、リアルタイム系装置であり処理装置11である画像読み取り装置11a(図1では「SCAN」と記載)と、非リアルタイム系装置である処理装置12a(図1では「IP」と記載)とを備える。画像読み取り装置11aは、用紙の反射光を受光素子で受光して得られた電気信号から画像データを読み取る装置(スキャナのコントローラ)である。この画像データを読み取る処理は、リアルタイム処理である。処理装置12aは、いわゆるIP(Intellectual Property)コアであり、画像読み取り装置11aによる処理に伴う動作設定等の非リアルタイム処理を実行する装置である。なお、上位概念的には処理装置11もIPコアの一種であり、以下では、処理装置11、12を区別せずにIPと記すことがある。画像読み取り装置11aおよび処理装置12aのメモリ・アクセス用の伝送路は、インターコネクト13Aによりまとめられ、画像読み取りブロック10Aにおける1本の伝送路となっている。この伝送路は、メモリコントローラ40の一つのポートに接続されている。
【0022】
画像処理ブロック10Bは、非リアルタイム系装置である処理装置12bおよび処理装置12c(図1では何れも「IP」と記載)を備える。処理装置12bおよび処理装置12cは、いわゆるIPコアであり、画像読み取りブロック10Aにより読み取られた画像や印刷ブロック10Cの印刷対象の画像に対し、フィルタ処理や画像変換等の種々の画像処理を実行する装置である。この画像処理は、非リアルタイム処理である。画像処理ブロック10Bは、リアルタイム処理を実行する処理装置11を備えていない。処理装置12bおよび処理装置12cのメモリ・アクセス用の伝送路は、インターコネクト13Bによりまとめられ、画像処理ブロック10Bにおける1本の伝送路となっている。この伝送路は、メモリコントローラ40の一つのポートに接続されている。
【0023】
印刷ブロック10Cは、リアルタイム系装置であり処理装置11である表示装置11b(図1では「LCD」と記載)と、リアルタイム系装置であり処理装置11である印刷装置11c(図1では「PRINT」と記載)と、非リアルタイム系装置である処理装置12d(図1では「IP」と記載)とを備える。表示装置11bは、用紙に印刷される画像等を表示する装置(LCDのコントローラ)である。この画像等を表示する処理は、リアルタイム処理である。印刷装置11cは、処理対象の画像データに基づき用紙等の記録媒体に画像を印刷する装置である。この画像を印刷する処理は、リアルタイム処理である。処理装置12dは、いわゆるIPコアであり、表示装置11bおよび印刷装置11cによる処理に伴う動作設定等の非リアルタイム処理を実行する装置である。表示装置11b、印刷装置11cおよび処理装置12dのメモリ・アクセス用の伝送路は、インターコネクト13Cによりまとめられ、印刷ブロック10Cにおける2本の伝送路となっている。この伝送路のうち1本は、キャッシュ・コヒーレンシ・インターコネクト30により、CPU20の伝送路とまとめられてメモリコントローラ40の一つのポートに接続されている。また、他の1本は、メモリコントローラ40の他の一つのポートに直接接続されている。
【0024】
<機能ブロックにおける伝送帯域不足に対する対応>
図8は、本実施形態とは異なり、リアルタイム系装置と非リアルタイム系装置の区別のみに基づく処理装置11、12とメモリ50との接続構造を示す図である。図8に示す構成例において、情報処理装置2は、図1に示した情報処理装置1と同様に、リアルタイム系装置である3個の処理装置(SCAN、LCD、PRINT)11と、非リアルタイム系装置である4個の処理装置(IP)12とを備える。また、情報処理装置2は、CPU20と、メモリコントローラ40と、メモリ50とを備える。
【0025】
図8に示す構成例において、処理装置11、12は、図1に示した情報処理装置1と異なり、機能ごとのブロックに分けられていない。ただし、各処理装置11は、図1に示した処理装置11a~11cに対応し、各処理装置12は、図1に示した処理装置12a~12dに対応する。したがって、個々の機能における動作では、図1に示した機能ブロック10A~10Cと同様に、機能ごとに各処理装置11、12が動作する。
【0026】
図8に示す構成例では、リアルタイム系装置である処理装置11およびCPU20のメモリ・アクセス用の伝送路は、各々個別に、メモリコントローラ40のポートに接続されている。そして、非リアルタイム系装置である4個の処理装置12のメモリ・アクセス用の伝送路は、インターコネクト13により1本にまとめられて、メモリコントローラ40のポートに接続されている。この構成では、何れかの処理装置11においてメモリ・アクセスにおける使用帯域が不足する場合、処理装置12の使用帯域を制限し、該当する処理装置11において使用帯域の割り当てを増加させる。このとき、何れの処理装置12に対して使用帯域をどれだけ制限するかは、例えば、各処理装置12の動作状態等に基づいて予め定められた規則に従って決定される。この場合、何れの処理装置11において使用帯域が不足する場合でも、この規則にしたがって処理装置12の使用帯域が制限され、処理装置11に割り当てられる。
【0027】
ここで、図1に示す本実施形態の構成において、上記と同様の帯域制御を行う場合を考える。一例として、何れかの処理装置11の使用帯域が不足する場合、処理装置12a、12b、12c、12dの順で使用帯域が制限され、処理装置11に割り当てられるものとする。この場合、処理装置11のうち機能ブロック(印刷ブロック)10Cに含まれる処理装置(印刷装置)11cの使用帯域が不足する場合であっても、この順で処理装置12の使用帯域が制限される。しかしながら、処理装置11cの使用帯域が不足する場合、情報処理装置1の全体では、メモリ・アクセスにおける伝送帯域の不足(いわゆるボトルネック)は、機能ブロック10Cの内部で発生している。このため、処理装置11cの使用帯域不足を解消するには、機能ブロック10Cに含まれる処理装置11、12の間で使用帯域を融通する必要がある。具体的には、機能ブロック10Cに含まれる処理装置12dの使用帯域を制限して処理装置11cの使用帯域を増加させなければならない。言い換えれば、上記の規則に基づき、処理装置12dに先立って、機能ブロック10Aの処理装置12aや、機能ブロック10Bの処理装置12b、12cの使用帯域を制限しても、処理装置11cの使用帯域を増加させることができない。
【0028】
次に、処理装置12dの使用帯域を制限して処理装置11cに割り当てても、処理装置11cの使用帯域の不足が解消されない場合を考える。この場合、情報処理装置1において機能ブロック10Cに割り当てられた伝送帯域が不足している。このため、上記のように機能ブロック10Cに含まれる処理装置11、12の間で使用帯域を融通しても、機能ブロック10C自体の伝送帯域の不足は解消されない。そこで、このときは、機能ブロック10Aの処理装置12aや、機能ブロック10Bの処理装置12b、12cの使用帯域を制限することにより、機能ブロック10Aや機能ブロック10Bに割り当てた伝送帯域を減少させ、機能ブロック10Cの伝送帯域の割り当てを増加させる。そして、割り当てが増加された機能ブロック10Cの伝送帯域に基づいて、処理装置11cの使用帯域をさらに増加させる。
【0029】
このように、本実施形態では、機能ブロック10ごとに、その機能を実現するために用いられる処理装置11、12をまとめてメモリ・アクセスを行う装置構成を考慮し、第1段階の帯域制御として、機能ブロック10内で使用帯域を融通する。そして、この第1段階の帯域制御では対象の機能ブロック10の伝送帯域の不足を解消できない場合に、第2段階の帯域制御として、他の機能ブロック10との間で伝送帯域の割り当てを変更する。
【0030】
<メモリ・アクセス・システム100の構成>
図2は、本実施形態のメモリ・アクセス・システムのシステム構成を示す図である。メモリ・アクセス・システム100は、監視装置110と、帯域制御装置120と、処理装置11、12ごとに設けられたゲート部130とを備える。図2では、一つの機能ブロック10と、その機能ブロック10に含まれる処理装置11、12とを制御対象として示しているが、実際には図1に示したように、情報処理装置1における各機能ブロック10の各処理装置11、12に対して制御を行う。
【0031】
監視装置110は、メモリコントローラ40の各ポートの入出力(アクセス信号)を分岐して取り込み、各アクセス主体によるメモリ50へのアクセスを監視する装置である。なお、図1を参照して説明したように、メモリ50に対するアクセス主体は、処理装置11、12およびCPU20であるが、以下では、CPU20をリアルタイム系装置である処理装置11の一種として説明する。監視装置110は、特に、リアルタイム系装置である処理装置11によるメモリ50へのアクセス状況を把握する。このため、メモリ50に対するアクセス主体とメモリ50とを接続するバスには、アクセス主体を個別に識別可能なバスが用いられる。そのようなバスとしては、例えば、AXI(Advanced eXtensible Interface)に対応したバス等がある。
【0032】
帯域制御装置120は、監視装置110による監視結果に基づき、帯域制御における使用帯域の制限の対象である処理装置12に対する制御情報を設定する。本実施形態では、処理装置12の使用帯域の制限は、処理装置12のスループットを制御することにより実現する。したがって、帯域制御装置120は、制御情報として、制御対象の処理装置12に対するスループット設定値を生成する。
【0033】
本実施形態では、上述したように、第1段階の帯域制御として同一の機能ブロック10内の処理装置11、12どうしの間で使用帯域を融通し、第2段階の帯域制御として異なる機能ブロック10の間で使用帯域を融通する。したがって、帯域制御装置120は、ある処理装置11の使用帯域不足に対応する制御を行う場合、まず、その処理装置11と同じ機能ブロック10に含まれる処理装置12を対象として、スループットを低下させるスループット設定値を生成する。このスループット制御によっても処理装置11の使用帯域不足が解消されない場合、次に帯域制御装置120は、処理装置11が含まれる機能ブロック10とは異なる機能ブロック10に含まれる処理装置12を対象として、スループットを低下させるスループット設定値を制御する。
【0034】
ゲート部130は、帯域制御装置120により生成されたスループット設定値で制御対象の処理装置12のスループットを設定する装置である。ゲート部130は、各処理装置11、12と、各処理装置11、12に対応するDMAC14との間に設けられる。DMAC14は、各処理装置11、12からメモリ50へのDMAを実行するDMAコントローラである。
【0035】
<監視装置110の構成>
図3は、監視装置110の構成を示す図である。監視装置110は、フィルタ111と、ポート別カウンタ112と、リアルタイム系装置別カウンタ113と、全体帯域カウンタ114と、カウンタ情報送信部115とを備える。監視装置110に入力されたメモリコントローラ40のポートごとのアクセス信号は、各ポートに対応して設けられたカウンタ群に送られ、アクセス数を計数される。
【0036】
フィルタ111は、メモリコントローラ40のポートごとのアクセス信号から、リアルタイム系装置である各処理装置11のアクセス信号を識別し、抽出する。図1を参照して説明したように、本実施形態では、各処理装置11、12は、機能ブロック10ごとにまとめられ、メモリコントローラ40の一つのポートに接続されている。このため、メモリコントローラ40のポートごとのアクセス信号は、機能ブロック10ごとの処理装置11、12によるアクセス信号である。したがって、フィルタ111は、機能ブロック10ごとのアクセス信号の中から、各機能ブロック10に含まれる各処理装置11のアクセス信号を識別して抽出する。情報処理装置1においてメモリ50にアクセスするためのバスとしてAXIに対応するバスが用いられている場合、バスを通るアクセス信号には、そのアクセス信号を出力したアクセス主体の識別情報が付されている。フィルタ111は、この識別情報により、アクセス主体としての処理装置11のアクセス信号を識別する。
【0037】
ポート別カウンタ112は、メモリコントローラ40のポートごとのアクセス信号に基づき、各ポートに接続された機能ブロック10ごとのアクセス数を計数する。リアルタイム系装置別カウンタ113は、メモリコントローラ40のポートごとのアクセス信号から各フィルタ111により抽出されたアクセス信号に基づき、フィルタ111に対応する処理装置11ごとのアクセス数を計数する。全体帯域カウンタ114は、メモリコントローラ40の各ポートにおいて入出力される全てのアクセス信号に基づき、情報処理装置1の全てのアクセス主体によるメモリ50へのアクセス数を計数する。
【0038】
図3に示す例では、メモリコントローラ40のポート0、ポート1、……、ポートnの入出力が監視装置110に取り込まれる。また、特に図示していないが、メモリコントローラ40には、図1に示したように複数の機能ブロック10に分かれたm+1個の処理装置11が接続されているものとする。監視装置110に取り込まれたアクセス信号は、ポートごとに、各ポートを使用する機能ブロック10に対応して設けられたカウンタ群に送られる。ここで、図3に示す例において、ポート0を使用する機能ブロック10には二つの処理装置11が含まれ、これらの処理装置11をIP0、IP1とする。また、ポート1を使用する機能ブロック10には処理装置11が存在しない(処理装置12のみが存在する)ものとする。また、ポートnを使用する機能ブロック10には一つの処理装置11が含まれ、この処理装置11をIPmとする。
【0039】
図3に示す例において、ポート0から取り込まれたアクセス信号は、ポート0に対応するポート別カウンタ112(図3では「ポート0カウンタ」と記載)に送られると共に、分岐してIP0、IP1に対応する二つのフィルタ111(図3では「IP0フィルタ」、「IP1フィルタ」と記載)に送られる。そして、IP0に対応するフィルタ111によりIP0のアクセス信号が抽出され、IP0に対応するリアルタイム系装置別カウンタ113(図3では「IP0カウンタ」と記載)に送られる。また、IP1に対応するフィルタ111によりIP1のアクセス信号が抽出され、IP1に対応するリアルタイム系装置別カウンタ113(図3では「IP1カウンタ」と記載)に送られる。ポート0に対応するポート別カウンタ112は、ポート0を使用する機能ブロック10の全ての処理装置11、12からのアクセス数を計数する。また、IP0に対応するリアルタイム系装置別カウンタ113は、ポート0を使用する機能ブロック10の処理装置11、12のうち、IP0からのアクセス数を計数する。ポート1に対応するポート別カウンタ112は、ポート1を使用する機能ブロック10の全ての処理装置12からのアクセス数を計数する。
【0040】
同様に、ポート1から取り込まれたアクセス信号は、ポート1に対応するポート別カウンタ112(図3では「ポート1カウンタ」と記載)に送られる。ポート1を使用する機能ブロック10には処理装置11が存在しないので、ポート1から取り込まれたアクセス信号を受け付けるフィルタ111およびリアルタイム系装置別カウンタ113は設けられていない。ポート1に対応するポート別カウンタ112は、ポート1を使用する機能ブロック10の全ての処理装置12からのアクセス数を計数する。
【0041】
また、ポートnから取り込まれたアクセス信号は、ポートnに対応するポート別カウンタ112(図3では「ポートnカウンタ」と記載)に送られると共に、分岐してIPmに対応する一つのフィルタ111(図3では「IPmフィルタ」と記載)に送られる。そして、IPmに対応するフィルタ111によりIPmのアクセス信号が抽出され、IPmに対応するリアルタイム系装置別カウンタ113(図3では「IPmカウンタ」と記載)に送られる。ポートnに対応するポート別カウンタ112は、ポートnを使用する機能ブロック10の全ての処理装置11、12からのアクセス数を計数する。また、IPmに対応するリアルタイム系装置別カウンタ113は、ポートnを使用する機能ブロック10の処理装置11、12のうち、IPmからのアクセス数を計数する。
【0042】
カウンタ情報送信部115は、各カウンタ112、113、114により計数された各種の計数値(アクセス数)をデバイス間通信により帯域制御装置120へ送信する。カウンタ情報送信部115は、例えば、監視装置110と帯域制御装置120とを接続するバスに対応するバス・インターフェイスにより実現される。
【0043】
上記のように、本実施形態では、非リアルタイム系装置である処理装置12のアクセス数については直接計数していない。しかしながら、ポート別カウンタ112の計数値とリアルタイム系装置別カウンタ113の計数値とから、各ポートを使用する機能ブロック10に含まれる処理装置12によるアクセス数の合計を算出することができる。また、リアルタイム系装置のみを含む機能ブロック10が使用するポートに対応するカウンタ群は、ポート別カウンタ112とリアルタイム系装置別カウンタ113とを含む。そして、ポート別カウンタ112の計数値とリアルタイム系装置別カウンタ113の計数値の総和とが同じ値となる。なお、図3を参照して説明した監視装置110の構成は例示に過ぎず、例えば、非リアルタイム系装置である処理装置12のアクセス信号を抽出するフィルタおよび処理装置12のアクセス数を計数するカウンタを備える構成としても良い。
【0044】
<帯域制御装置120の構成>
図4は、帯域制御装置120の構成を示す図である。帯域制御装置120は、複数の動作フラグ格納部121と、カウンタ情報受信部122と、帯域計算部123と、設定判定部124と、閾値情報格納部125と、設定値送信部126と、設定値格納部127とを備える。
【0045】
動作フラグ格納部121は、メモリ50に対するアクセス主体であって帯域制御の対象であるリアルタイム系装置の処理装置11(IP)の動作状態を表す動作フラグを格納する。動作フラグ格納部121は、各処理装置11に対し、個別に対応付けて設けられる。図4に示す例では、処理装置11の数をm+1とし、IP0、IP1、……、IPmにそれぞれ対応する動作フラグ格納部121(図では「IP0動作フラグ格納部」、「IP1動作フラグ格納部」、「IPm動作フラグ格納部」と記載)が示されている。
【0046】
動作フラグは、対応する処理装置11が稼働状態か否かを示す。処理装置11の使用帯域の変更は、リアルタイム系装置である処理装置11の処理の実行中には行うことができない。そのため、帯域制御装置120は、動作フラグ格納部121に格納された動作フラグにより処理装置11が処理を実行中か否かを判断し、処理装置11による処理が一時的に止まるタイミングで帯域制御を実行する。具体例を挙げると、画像読み取り(スキャン)処理や印刷(プリント)処理において、走査線の行(主走査)ごとに処理を実行し(アクティブ)、次の行へ移行(副走査)するために処理が止まる(非アクティブ)場合、非アクティブとなった時に帯域制御を実行する。
【0047】
カウンタ情報受信部122は、監視装置110から処理装置11、12のアクセス情報をデバイス間通信により受信する。帯域計算部123は、カウンタ情報受信部122により取得した処理装置11、12のアクセス情報を用いて、制御対象の処理装置11、12の使用帯域を計算する。具体的には、例えば、情報処理装置1の全てのアクセス主体によるメモリ50へのアクセス数と、メモリコントローラ40のポートごとのアクセス数とに基づいて、各ポートを使用する各機能ブロック10の伝送帯域が得られる。そして、メモリコントローラ40のポートごとのアクセス数および各機能ブロック10の伝送帯域と、各処理装置11のアクセス数とに基づいて、各処理装置11の使用帯域が得られる。また、機能ブロック10ごとの伝送帯域と、各機能ブロック10に含まれる各処理装置11の使用帯域とに基づいて、機能ブロック10ごとの処理装置12の総使用帯域が得られる。
【0048】
設定判定部124は、帯域計算部123により計算された各処理装置11の使用帯域および各機能ブロック10の伝送帯域に基づき、各処理装置11および各機能ブロック10の現在の帯域設定を判定する。帯域設定の判定は、各処理装置11の使用帯域および各機能ブロック10の伝送帯域の計算値を予め定められた閾値と比較することにより行う。また、設定判定部124は、何れかの処理装置11に関して使用帯域が不足していると判定した場合、処理装置12の使用帯域を制限して処理装置11の使用帯域不足を解消するための処理装置12の処理におけるスループット設定値を生成する。スループット設定値の生成の詳細については後述する。
【0049】
また、設定判定部124は、動作フラグ格納部121に格納された動作フラグを参照して、帯域制御の対象である処理装置11の稼働状態を判断する。そして、設定判定部124は、制御対象の処理装置11による処理が非アクティブとなるタイミングで、この処理装置11の帯域制御を行うために適用される処理装置12のスループット設定値を切り替えるための切り替え信号を出力する。
【0050】
閾値情報格納部125は、設定判定部124が各処理装置11および各機能ブロック10の現在の帯域設定を判定するのに用いる閾値を保持する。閾値としては、同一の機能ブロック10内の処理装置11、12どうしの間で帯域制御を行う場合に処理装置11の使用帯域を判定するのに用いる第1の閾値と、異なる機能ブロック10の間で帯域制御を行う場合に機能ブロック10の伝送帯域を判定するのに用いる第2の閾値とが設けられる。閾値情報格納部125は、例えば、ROM(Read Only Memory)により実現される。
【0051】
設定値送信部126は、設定判定部124により生成されたスループット設定値を、使用帯域の制限対象の処理装置12に付加されたゲート部130へデバイス間通信により送信する。また、設定値送信部126は、設定判定部124から出力された切り替え信号を制御対象の処理装置12へ送信する。設定値格納部127は、設定判定部124により生成されたスループット設定値を保持する。
【0052】
帯域制御装置120において、動作フラグ格納部121および設定値格納部127は、例えば、SRAM(Static Random Access Memory)により実現される。カウンタ情報受信部122は、例えば、監視装置110と帯域制御装置120とを接続するバスに対応するバス・インターフェイスにより実現される。帯域計算部123および設定判定部124は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のプロセッサにより実現される。閾値情報格納部125は、例えば、ROM(Read Only Memory)により実現される。設定値送信部126は、例えば、帯域制御装置120とゲート部130とを接続するバスに対応するバス・インターフェイスにより実現される。
【0053】
<ゲート部130の構成>
図5は、ゲート部130の構成を示す図である。図5には、ゲート部130と他の装置との物理的な接続関係ではなく、非リアルタイム系装置である処理装置12による処理およびDMAC14によるDMA制御の動作に対するゲート部130の位置付けを示している。図5に示す例では、処理装置12は、処理対象のデータを読み込み、読み込んだデータに対し、処理1~処理nを順次実行する。ここで、処理1~処理nの各々は、処理対象のデータの最小単位(以下、「処理単位」と呼ぶ)ごとに行われる。また、処理1~処理nは、例えばパイプライン処理等により並列に実行しても良い。そして、処理装置12は、処理結果のデータをメモリ50に書き込む。
【0054】
具体例を挙げると、処理装置12が画像処理(画像に対するフィルタ処理等)を実行する場合、図5に示す処理装置12は、n画素分のデータを読み込み、1画素(ピクセル)ずつn画素分の画像処理(処理1~処理n)を行う。この場合、1画素のデータが処理単位である。
【0055】
処理装置12におけるデータの読み込みは、DMAC14の制御により行われる(図5では、左端のDMAC14から処理1への矢印で示されている)。また、処理装置12からメモリ50へのデータの書き込みは、DMAC14の制御により行われる(図5では、処理nからゲート部130を経て右端のDMAC14に至る矢印で示されている)。したがって、図5に示す二つのDMAC14は、実際には、メモリ50に対してデータの読み書きを行う一つのDMAC14(図2参照)である。
【0056】
図5に示すように、ゲート部130は、処理装置12とDMAC14との間に介在し、処理装置12の処理結果を、スループットを制御して、DMAC14へ送る。ゲート部130は、情報格納部131と、制御タイマ132とを備える。ゲート部130は、帯域制御装置120により生成されたスループット設定値を受信し、受信したスループット設定値にしたがって処理装置12による処理結果のデータの出力タイミングを制御する。これにより、処理装置12のメモリ・アクセスにおける使用帯域が制御される。また、ゲート部130には、帯域制御装置120から出力された切り替え信号が入力されている。ゲート部130は、この切り替え信号を入力したタイミングで、スループットの切り替えを実行する。
【0057】
情報格納部131は、帯域制御装置120から受信したスループット設定値を格納し保持する。情報格納部131は、例えば、SRAMにより実現される。情報格納部131に格納されたスループット設定値は、処理装置12の処理結果の出力間隔をクロック数で示す情報である。制御タイマ132は、情報格納部131に格納されたスループット設定値およびクロック信号に基づいて、処理装置12の処理結果の出力間隔を制御するための時間(クロック数)を計測する。
【0058】
図5に示す例において、情報格納部131に格納されたスループット設定値が、1処理単位あたりのクロック数をNクロック(clk)に設定するものとする。そして、処理1~処理nの各処理が、1処理単位あたり1クロックで実行されるものとする。この場合、DMAC14、処理1、処理2、……、処理nおよびゲート部130の各々の間の各データ転送では、それぞれ、1クロックごとに1処理単位のデータが転送される。そして、ゲート部130からDMAC14へのデータ転送は、Nクロックごとに1処理単位のデータが転送される。これにより、処理装置12のメモリ・アクセスにおける使用帯域は、スループット設定値による制御を行わない場合の1/Nとなる。
【0059】
<帯域制御装置120の動作>
図6は、帯域制御装置120による帯域制御の手順を示すフローチャートである。帯域制御装置120は、まず、情報処理装置1を構成する複数の処理装置11の一つに着目し、着目した処理装置11が動作中か否かを調べる。以下の動作の説明において、着目した処理装置11を「IP(x)」と呼ぶ。なお、IP(x)の「x」は、0≦x≦mとなる値である。そして、IP(x)は、図3および図4を参照して説明した処理装置11であるIP0~IPmの何れかであることを示す。
【0060】
着目した処理装置11であるIP(x)が動作中でない場合(S601でNO)、帯域制御を行う必要はないため、現在の帯域設定を維持する(S602)。一方、IP(x)が動作中である場合(S601でYES)、帯域制御装置120は、現在のIP(x)の使用帯域が第1の閾値よりも大きいか否かを調べる。第1の閾値は、IP(x)に対する帯域制御のためにIP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するか否かを判定するために設定された閾値である。処理装置11のメモリ・アクセスにおける使用帯域に対して設定される第1の閾値は、個別制御条件の一例である。
【0061】
IP(x)の使用帯域が第1の閾値よりも大きい場合(S603でYES)、IP(x)の使用帯域を増加させる必要はない。したがって、現在の帯域設定を維持する(S602)。一方、IP(x)の使用帯域が第1の閾値以下である場合(S603でNO)、IP(x)の使用帯域をさらに増加させる必要がある。そこで、帯域制御装置120は、次に現在のIP(x)の使用帯域が第2の閾値よりも大きいか否かを調べる。第2の閾値は、IP(x)に対する帯域制御のためにIP(x)と異なる機能ブロック10の伝送帯域を制限するか否かを判定するために設定された閾値である。第2の閾値は、第1の閾値よりも小さい値である。処理装置11のメモリ・アクセスにおける使用帯域に対して設定される第2の閾値は、全体制御条件の一例である。
【0062】
IP(x)の使用帯域が第2の閾値よりも大きい場合(S604でYES)、IP(x)の使用帯域を増加させるために、IP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するだけで足りる。そこで、帯域制御装置120は、IP(x)と同一の機能ブロック10内の処理装置12のうち、使用帯域を制限する処理装置12を選択し、選択した処理装置12に対してスループットを低下させるためのスループット設定値を生成する。これにより、IP(x)を含む機能ブロック10内での帯域制御が行われる(S605)
【0063】
IP(x)の使用帯域が第2の閾値以下である場合(S604でNO)、IP(x)の使用帯域を増加させるために、IP(x)と同一の機能ブロック10内の処理装置12の使用帯域を制限するだけでは足りず、異なる機能ブロック10の伝送帯域を制限する必要がある。そこで、帯域制御装置120は、IP(x)と同一の機能ブロック10内の処理装置12を制限対象装置とする帯域制御に加え、IP(x)と異なる機能ブロック10の処理装置12のうち、使用帯域を制限する処理装置12を選択し、選択した処理装置12に対してスループットを低下させるためのスループット設定値を生成する。これにより、機能ブロック10間で使用帯域を融通する、情報処理装置1のシステム全体での帯域制御が行われる(S606)。
【0064】
なお、上記の動作例では、S604において、IP(x)の使用帯域と第1の閾値および第2の閾値とを比較し、比較結果に応じて、IP(x)を含む機能ブロック10内での帯域制御またはシステム全体での帯域制御を行った。これに対し、使用帯域が不足するIP(x)に対し、まず同一の機能ブロック10内での帯域制御を行い、それでもIP(x)の使用帯域不足を解消しない場合に、改めてIP(x)と異なる機能ブロック10を対象とする帯域制御を行うようにしても良い。また、上記の動作例では、第1の閾値および第2の閾値を何れもIP(x)の使用帯域に対して設定した。これに対し、第2の閾値は、IP(x)を含む機能ブロック10自体の伝送帯域に対して設定し、機能ブロック10が接続されたメモリコントローラ40のポートの伝送帯域が第2の閾値以下である場合にシステム全体での帯域制御を行うようにしても良い。
【0065】
<使用帯域を制限する対象となる処理装置12の選択方法の具体例>
帯域制御装置120は、図6のS605およびS606の動作において、使用帯域を制限する処理装置12(以下、「制限対象装置」と呼ぶ)を選択してスループット設定値を生成した。この制限対象装置の選択方法の例を説明する。ここでは、図1に示した装置構成で、画像読み取りブロック10Aの処理装置11である画像読み取り装置11aの使用帯域が不足する場合と、印刷ブロック10Cの処理装置11である印刷装置11cの使用帯域が不足する場合について、制限対象装置を選択する例を説明する。
【0066】
一例として、使用帯域が不足する処理装置11の種類に応じて、制限対象装置として選択する処理装置12の順番(選択順)を予め定めておくものとする。本実施形態では、第1段階の帯域制御として、機能ブロック10内で使用帯域を融通し、第2段階の帯域制御として、他の機能ブロック10との間で伝送帯域の割り当てを変更することとした。したがって、第1段階の帯域制御において、使用帯域が不足する処理装置11と同一の機能ブロック10に複数の処理装置12がある場合、この複数の処理装置12に対して制限対象装置としての選択順を定めておく。また、第2段階の帯域制御において、使用帯域が不足する処理装置11とは異なる機能ブロック10に複数の処理装置12がある場合、この複数の処理装置12に対して制限対象装置としての選択順を定めておく。なお、制限対象装置の選択順の決定方法は特に限定しない。例えば、機能ブロック10の動作時に付加の低い処理装置12から順に制限対象装置とするように選択順を定めても良い。
【0067】
また、使用帯域が不足する処理装置11とは異なる機能ブロック10が複数ある場合、何れの機能ブロック10から制限対象装置を選択するかを特定するため、制限対象装置の選択対象となる機能ブロック10の選択順を定めておいても良い。この場合、リアルタイム系装置である処理装置11を有しない機能ブロック10が先に選択されるように選択順を定めても良い。また、使用帯域が不足する処理装置11が含まれる機能ブロック10の動作時に並列に実行されることの無い機能ブロック10が先に選択されるように選択順を定めても良い。
【0068】
図7は、制限対象装置の選択順の設定例を示す図である。帯域制御装置120は、図7に示すようなテーブルを保持しておき、制限対象装置の選択時に参照しても良い。図7に示す例では、図1に示した画像読み取りブロック10Aの画像読み取り装置11aに対して第1段階の帯域制御を行う場合、印刷ブロック10Cの印刷装置11cに対して第1段階の帯域制御を行う場合、第2段階の帯域制御を行う場合の各々に関して、制限対象装置の選択順が示されている。図7に示す例において、図1に示した処理装置12a~12dの符号に付した添え字a~dを用い、各処理装置12を「IP(a)」、「IP(b)」、「IP(c)」、「IP(d)」と記載している。例えば、図7のIP(a)は、図1に示した処理装置12aに対応する。
【0069】
また、この例では、第2段階の帯域制御を行う場合、リアルタイム系装置である処理装置11を有しない画像処理ブロック10Bの処理装置12b、12c(図7ではIP(b)、IP(c))が先に制限対象装置として選択される。画像処理ブロック10Bには二つの処理装置12b、12cがあるため、これらの処理装置12b、12cに対しても制限対象装置としての選択順が定められる。また、図7に示す例では、処理装置12b(IP(b))、処理装置12c(IP(c))の順で制限対象装置に選択される。
【0070】
図1および図7に示す例において、画像読み取りブロック10Aの処理装置11である画像読み取り装置11aの使用帯域が不足する場合、帯域制御装置120は、まず画像読み取りブロック10Aを対象として第1段階の帯域制御を行う。この場合、帯域制御装置120は、画像読み取り装置11aと同じ画像読み取りブロック10Aの処理装置12a(IP(a))を制限対象装置として選択する。
【0071】
第1段階の帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、画像処理ブロック10Bを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、画像処理ブロック10Bの処理装置12b、12cのうち、図7に示す選択順に従い、まず処理装置12b(IP(b))を制限対象装置として選択する。処理装置12bを制限対象装置とした帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、処理装置12c(IP(c))を制限対象装置として選択する。
【0072】
処理装置12cを制限対象装置とした帯域制御によっても画像読み取り装置11aの使用帯域不足が解消しない場合、帯域制御装置120は、残りの機能ブロック10である印刷ブロック10Cを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、印刷ブロック10Cの処理装置12d(IP(d))を制限対象装置として選択する。
【0073】
また、図1および図7に示す例において、印刷ブロック10Cの処理装置11である印刷装置11cの使用帯域が不足する場合、帯域制御装置120は、まず印刷ブロック10Cを対象として第1段階の帯域制御を行う。この場合、帯域制御装置120は、印刷装置11cと同じ印刷ブロック10Cの処理装置12d(IP(d))を制限対象装置として選択する。
【0074】
第1段階の帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、画像処理ブロック10Bを対象として第2段階の帯域制御を行う。この場合、画像読み取り装置11aの使用帯域不足に対する帯域制御の場合と同様に、帯域制御装置120は、まず処理装置12b(IP(b))を制限対象装置として選択する。そして、処理装置12bを制限対象装置とした帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、処理装置12c(IP(c))を制限対象装置として選択する。
【0075】
処理装置12cを制限対象装置とした帯域制御によっても印刷装置11cの使用帯域不足が解消しない場合、帯域制御装置120は、残りの機能ブロック10である画像読み取りブロック10Aを対象として第2段階の帯域制御を行う。この場合、帯域制御装置120は、画像読み取りブロック10Aの処理装置12a(IP(a))を制限対象装置として選択する。
【0076】
図1および図7に示す例では、リアルタイム系装置である処理装置11を有する画像読み取りブロック10Aおよび印刷ブロック10Cのどちらも非リアルタイム装置である処理装置12を一つのみ有している。そのため、第1段階の帯域制御では、何れも制限対象装置として選択される処理装置12が特定されていた。これに対し、使用帯域が不足する処理装置11と同一の機能ブロック10に複数の処理装置12が存在する場合、図7に示した処理装置12b、12cと同様に、制限対象装置としての選択順が予め設定される。
【0077】
また、図1および図7に示す例では、リアルタイム系装置である処理装置11を有する機能ブロック10が二つのみであり、処理装置11を有しない機能ブロック10が一つのみであった。このため、第2段階の帯域制御を行う場合に、まず処理装置11を有しない機能ブロック10を対象として制限対象装置を選択し、さらに帯域制御を行う場合に、残りの処理装置11を有する機能ブロック10を対象として制限対象装置を選択した。これに対し、処理装置11を有しない機能ブロック10が複数ある場合、帯域制御装置120が制御対象装置を選択する機能ブロック10の順番を予め決めておく。同様に、処理装置11を有する機能ブロック10が三つ以上ある場合も、帯域制御装置120が制御対象装置を選択する機能ブロック10の順番を予め決めておく。また、第2段階の帯域制御を行う際に、機能ブロック10ごとに制限対象装置を選択するのではなく、使用帯域が不足する処理装置11とは異なる全ての機能ブロック10の処理装置12を対象として制限対象装置の選択順を決めておいても良い。
【0078】
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施形態には限定されない。例えば、上記の実施形態では、図7に示すテーブルを参照して制限対象装置の選択順を説明したが、帯域制御装置120は、図7に示すようなテーブルを参照して制限対象装置を選択しても良いし、そのようなテーブルを用意せず、予め定められた規則に従って制限対象装置を選択しても良い。また、図1に示した構成例では、本実施形態を画像処理装置に本実施形態を適用した例を示したが、本実施形態は、図1に示す例には限定されず、機能ごとに設けられた複数の機能ブロック10を有する種々の情報処理装置に対して適用し得る。その他、本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
【符号の説明】
【0079】
1、2…情報処理装置、10…機能ブロック、11、12…処理装置、13…インターコネクト、14…DMAC、20…CPU、30…キャッシュ・コヒーレンシ・インターコネクト、40…メモリコントローラ、50…メモリ、100…メモリ・アクセス・システム、110…監視装置、111…フィルタ、112…ポート別カウンタ、113…リアルタイム系装置別カウンタ、114…全体帯域カウンタ、115…カウンタ情報送信部、120…帯域制御装置、121…動作フラグ格納部、122…カウンタ情報受信部、123…帯域計算部、124…設定判定部、125…閾値情報格納部、126…設定値送信部、127…設定値格納部、130…ゲート部、131…情報格納部、132…制御タイマ
図1
図2
図3
図4
図5
図6
図7
図8