(57)【要約】【課題】  アクセス要求を発行する側のハードウェア（クライアント）を複雑にすることなく、クライアントに要求される処理能力に応じた頻度でアクセス要求を発行する。【解決手段】  本発明の画像処理装置は、アクセス要求処理を行なう画像データのサイズ及びその処理の完了に許容される処理時間により、アクセス要求の頻度を規定の期間内に分散させることにより、メモリへのアクセス要求におけるバンド幅要求を最適化するクロック間引き制御ブロック１０を設けたものである。【選択図】        図１
2006072658.tif 000002
【特許請求の範囲】
【請求項１】
画像データを記憶したメモリに対してアクセス要求処理を行なう画像処理装置において、
上記アクセス要求処理を行なう画像データのサイズ及びその処理の完了に許容される処理時間により、上記アクセス要求の頻度を規定の期間内に分散させることにより、上記メモリへのアクセス要求におけるバンド幅要求を最適化する最適化手段を設けた
ことを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
上記最適化手段は、処理データ量が最も多く最もバンド幅要求が高い最高処理能力を発揮できる状態を満たすクロック周波数が供給される
ことを特徴とする画像処理装置。
【請求項３】
請求項２記載の画像処理装置において、
上記最適化手段は、上記最高処理能力を発揮できる状態を下回る状態でのバンド幅要求の最適化を行うものであって、供給されるクロック周波数の制御を行なう
ことを特徴とする画像処理装置。
【請求項４】
請求項３記載の画像処理装置において、
上記最適化手段の上記クロック周波数の制御は、供給されるクロック周波数を変動させることなく間引き制御を行なう
ことを特徴とする画像処理装置。
【請求項５】
請求項４記載の画像処理装置において、
上記最適化手段の上記クロック周波数の制御は、予め設定された間引き率に応じて上記クロック周波数の間引き制御を行なう
ことを特徴とする画像処理装置。
【請求項６】
請求項５記載の画像処理装置において、
上記最適化手段は、上記クロック周波数に対して予め設定された間引き率に応じた上記クロック周波数の間引きを行なう制御パルスを生成することにより上記間引き制御を行なう
ことを特徴とする画像処理装置。
【請求項７】
請求項１記載の画像処理装置において、
上記最適化手段は、供給されるクロック周波数をカウントするカウンターと、予め設定された間引き率に応じて上記カウンターからのカウント出力を組み合わせることによりクロックイネーブル信号を生成する組み合わせ回路と、上記組み合わせ回路からのクロックイネーブル信号により上記供給されるクロック周波数を有効にするクロックイネーブラーとを備えた
ことを特徴とする画像処理装置。
【請求項８】
請求項７記載の画像処理装置において、
上記間引き率の設定は、ある決まった単位時間当たりのアクセスデータ量、間引き前のクロック周波数に基づいて決定される
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを記憶したメモリに対してアクセス要求処理を行なう画像プロセッサなどの画像処理装置に関する。
【背景技術】
【０００２】
従来においては、メモリに対してアクセス要求処理を行なう場合には、メモリコントローラ側で各アクセス要求に対してプライオリティ付けして、そのアクセス要求を待たせるようにして、各アクセス要求間でアービトレーションを行い、アクセス要求を発行している個々のクライアントの処理が破綻をきたす前にアクセス要求を受け付けるようにして、タイミングと容量を制御するようにしていた。
【０００３】
また、特許文献１に示されるように、並列に存在するメモリアクセスを要求するクライアントから不定期に発生するリクエストに対しデータ供給を行なう場合、メモリコントローラ側の処理の問題であった。
【０００４】
例えば特許文献２では、一時的なアクセスの集中を避ける解決手段としては、「メモリに対する複数のアクセスを、該各アクセスの優先順位をその時の状態に応じて変更し、該変更された優先順位に応じてメモリアクセスの調停およびスケジューリングを行って、特定のメモリアクセスへの集中や無効期間の発生等を防止するように構成する。」と提示している。
【０００５】
つまり上記特許文献２では、メモリコントローラ側で持っているアクセス調停（アービトレーション）側の機能によってバンド幅の増加を抑制しようとしたもので、「クライアント側の方にも、特定のメモリアクセスへの集中を避けるような工夫を施す。」というようなことはしていなかった。
【０００６】
また、特許文献３においては、処理に応じて画像プロセッサに入力されるクロック周波数を制御するものであるが、その生成方法は、複数種類供給されるクロックの元の周波数と、それら複数のクロック入力を選択する回路を制御することにより、画像プロセッサに供給するクロック周波数を制御できるようにするものであった。
【特許文献１】特開平8-50651号公報
【特許文献２】特開平8-314793号公報
【特許文献３】特開平7-5864号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述したように従来の技術では、一時的なアクセスの集中を避けるように、平均的な時間間隔でリクエストが発生するような機能をクライアント側に持たせるような構成にはなっていなかった。
【０００８】
さらに、クロックの供給元、つまり発振子やPLL（Phase Locked Loop）でクロック周波数を変更した場合、変更後のクロック出力が安定するまでの過渡期間を要するのが一般的で、これが経過するまでは所望のクロック周波数が得られない可能性がある。
【０００９】
そこで、本発明では、元となるクロックは常に最高処理能力を発揮できる設定としておき、その後段部分のクロックイネーブラーに間引きの制御を与えることで、結果的に最適な周波数が画像プロセッサに供給されるようにする。このメリットとしては、まず供給元のクロックを変更することは無いので、発振子やPLLのクロック周波数を変更する際に発生する、周波数変更後のクロック出力が安定するまでの過渡期間というものを考慮する必要がなくなる。つまり、処理しようとする画像1枚ごとに、連続的に画像プロセッサへ供給するクロックの周波数（元クロックに対する間引き率）が変更されたとしても何等問題なく処理することができる。
【００１０】
本発明は、メモリインターフェースを経由したメモリバスに複数のブロックが接続され、それぞれが個別のメモリアクセス要求を持つようなシステムにおいて、動作状態に応じたバンド幅の最適化を実現するための施策として、アクセス要求を発行する側のハードウェア（クライアント）を複雑にすることなく、クライアントに要求される処理能力に応じた頻度でアクセス要求を発行することが可能な、画像処理装置としてのハードウェア構成を提供するものである。
以降、メモリコントローラに対してアクセス要求を発行する個々のハードウェアモジュールを「クライアント」と定義する。
【課題を解決するための手段】
【００１１】
上記課題を解決し、本発明の目的を達成するため、本発明の画像処理装置は、アクセス要求処理を行なう画像データのサイズ及びその処理の完了に許容される処理時間により、アクセス要求の頻度を規定の期間内に分散させることにより、メモリへのアクセス要求におけるバンド幅要求を最適化する最適化手段を設けたものである。
【００１２】
アクセス要求の頻度を分散させることにより、例えば、「30msというような時間間隔で見た場合のアクセスレートは低いものの、ある時間、例えば１msで見た場合にはそこにアクセス要求が集中してしまい、システムとして確保する必要のあるバンド幅が高まる。」というような自体を回避することが可能となる。
【００１３】
上記機能の実現にあたっては、画像プロセッサである画像処理装置自身の構成は、最高処理能力を発揮できる状態（処理データ量が最も多い、すなわち、最もバンド幅要求が高い状態）を満たすように設計されており、大元から供給されるクロック周波数も、この要求に対応できる周波数となっている。
【００１４】
上述のように、画像プロセッサ自身および供給されるクロック周波数は、ピーク時に合わせて設計されている。ピークを下回る状態でのバンド幅要求の最適化、即ち、アクセス要求の平均化は、「画像のサイズ」「許容される処理時間」に応じて、画像プロセッサへ供給するクロック周波数の制御を行なうことで実現する。
【００１５】
クロック周波数の制御は、クロックを供給する原発振、たとえば、外部からの入力クロック、発振子、PLLの出力クロック、を変動させるのではなく、これらからの原発振周波数は、最高処理能力を満足できる周波数が供給されている。
【００１６】
クロック周波数の制御は、例えば、供給されるクロックに対し、クロックイネーブラー（ゲーテッドクロック）を挟むことにより行なう。すなわち供給されるクロックからクロックを間引くような構成としている。クロックの間引き制御は、ソフトウェアにより制御可能なレジスタに設定値を書き込むことで行なう。ハードウェアは設定された値（間引き率）に応じ、クロック間引きを行なう制御パルスを生成する。
【００１７】
クロック周波数を落とす制御によりメモリへのアクセス頻度を低減することで、メモリコントローラ側のアービトレーション（メモリへのアクセス振り分けと、アクセス要求を出してきているソースモジュール(クライアント)同士の調停）を簡素化できる。
【００１８】
ここで、クロック間引き率の設定は、ある決まった単位時間（例えば、1/60秒）あたりのアクセスデータ量、間引き前のクロック周波数による計算式で決定される。 
【発明の効果】
【００１９】
本発明によれば、クロック周波数を落とす制御によりメモリへのアクセス頻度を平均化することで、メモリコントローラ側のアービトレーション（メモリへのアクセス振り分けと、アクセス要求を出してきているソースモジュール(クライアント］同士の調停）を簡素化することができる。
【００２０】
また、メモリコントローラは、1回のリクエストに対し、データのアンダーフロー または オーバーフローが起こらないようなバッファを備えておくことで、アンダーフロー や オーバーフローが発生した際に必要となるクライアントとのハンドシェイクを排除できる。これにより、メモリコントローラとクライアント間のI/F仕様を簡略化できるが、その容量は、各クライアントが要求するデータI/Fに耐えられるだけの大きさを持つ必要がある。
【００２１】
また、各画像プロセッサである画像処理装置からメモリコントローラに対して発行されるアクセス要求は、その画像プロセッサに許容される処理時間内に分散・平均化されることによって、システム上に複数個存在する他のクライアントに対し、アクセス要求が発生した際にウエイトさせる期間を低減させることが可能なため、ウエイト期間中のデータI/Fを保証するためのバッファメモリを削減することができる。
【００２２】
さらに、アクセス頻度の平均化はクロックの間引き制御で行なっているが、この制御のための複雑な設定は不要で、間引き率を決めるパラメータ“N”を設定するだけで良い。“N”は、供給されるクロック（CLKIN）の周波数、単位時間（例えば1/60秒）で処理しなければいけないデータ数、から算出できる値であり、制御側はこの算出式を実装するだけでよい。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明の実施の形態について、適宜、図面を参照しながら説明する。
図２は、システム構成図である。具体的な構成図として、まず図２は、本実施の形態のクロック間引き制御ブロック１０の盛り込まれた画像プロセッサ１３を含む、全体システムの例である。システム内には、画像プロセッサ３の他にも、機能ブロック１４〜１８が含まれており、これらはいずれも大容量メモリ１１とのデータI/Fのためのアクセス要求を出す可能性を持っている。
【００２４】
１３〜１８の各機能ブロック（クライアント）は、いずれも不定期にリード又はライトのアクセス要求を発行する。１２のメモリコントローラは、これらの不定期に発生するアクセス要求を受け、各クライアントへのデータ送出（メモリ１１からのリード要求だった場合）及びデータ受領（メモリへのライト要求だった場合）を行なうためのバッファメモリを持っており、それぞれのアクセス要求に答えるのと並行して、入ってきたアクセス要求に応じた、メモリ１１へのアクセス（リード/ライト）を順次行なってゆく。
【００２５】
ここで、本実施の形態の対象である３の画像プロセッサの詳細を説明すると、このブロックは、様々なサイズの画像を扱うことが要求されている。たとえばそれは、MPEG2  MP@HLに含まれる画像サイズである。またこれらは1/60秒単位または1/30単位で決まったデータ量の処理を完了するのが必須となっている。本件の画像プロセッサで1/60秒以内に処理しなければならない画像サイズとしては、1280×720、1920×540、720×480、720×240などが、代表的なものとして挙げられる。（これらは例であり、上記以外にもある。）
【００２６】
この例に則って説明を続けると、本件の画像プロセッサでは、上記サイズの画像データを、Y/C それぞれ8bitずつのデータとして取り扱うので、1/60あたりのデータアクセス量としては、
・1280×720×16＝14745600[bit]
・1920×540×16＝16588800[bit]
・720×480×16＝5529600[bit]
・720×240×16＝2764800[bit]
となる。
【００２７】
上記の例では、画像プロセッサ自体としては、最高処理能力としては1/60秒で16588800[bit]のデータを扱えるようになっており、必然的に、メモリコントローラへのアクセス要求も、上記データ量のリード/ライト要求を発行することになる。
また、画像プロセッサへは、この最高処理能力＆アクセスを満足できるような周波数のクロックが供給されていなければならない。
【００２８】
図１は、本発明のクロック間引き制御ブロックを示す図である。
図１において、クロック間引き制御ブロック１０は、端子７に供給されるクロック周波数をカウントするカウンター１と、端子６に予め設定された間引き率に応じてカウンター１からのカウント出力を組み合わせることによりクロックイネーブル信号を生成する組み合わせ回路２と、組み合わせ回路２からのクロックイネーブル信号により供給されるクロック周波数を有効にして端子８にクロックを出力するクロックイネーブラー３とを備えて構成される。ここで、クロックイネーブラー３は、ラッチ４とアンド回路５とを備えている。
【００２９】
以下に、本発明のクロック間引き制御ブロックの動作を説明する。
図３は、アクセス要求頻度を示す図であり、図３Ａは1920×540処理時のアクセス要求イメージ、図３Ｂは720×240処理時のアクセス要求イメージである。
メモリコントローラ１２へのライト要求の発行頻度を図示したものが図３であるが、上記の、最高処理能力を発揮しているとき（以降、「ピーク時」と表現する）のイメージが、図中のＡとなる。ここでは、1920×540のサイズを扱う場合、Ｔ０時点で処理を開始して、Ｔ１~処理を終了するＴ３６まで、1/60秒間で３６回のアクセス要求を示している。
【００３０】
次に、720×240のサイズを扱う場合、単純に画像プロセッサ１３に与える画像サイズの条件のみ変更、つまり、供給するクロック周波数はピーク時のスペックのまま処理を行なった場合のイメージが図中のＢとなる。ここでは、Ｔ０時点で処理を開始して、Ｔ１~処理を終了するＴ６まで、1/360秒間で６回のアクセス要求を示している。図３Ｂでわかるように、画像プロセッサ１３としては処理すべきデータ量が1/6となっているので、図３Ａに比べて1/6の時間で処理を終える。
【００３１】
しかしながら、この図３Ｂの処理の場合、まさに処理を行なっている最中（図中の1/360秒の期間内）のデータ転送レートは図３Ａと変わりなく、つまりこれは、その先のアクセス制御を行なっているメモリコントローラから見れば、この1/360秒間のバンド幅は、ピーク時の状態と全く変わっていない。
【００３２】
一方で、他の機能ブロック１４〜１８も、画像プロセッサ１３と同様に、メモリ１１へのアクセス要求を有している。ここで、他の機能ブロック１４〜１８の要求がリアルタイム性を持たないものであれば、画像プロセッサ１３の処理が終わるまでデータI/Fを待たせておくことができるが、リアルタイム性を保証しなければいけない機能ブロックである場合、画像プロセッサ１３と並列して、データI/Fを行なう必要がある。ここで例えば、システム的にメモリコントローラ１２が処理できるデータレートが画像プロセッサ１３のピーク時と同等だったとするならば、他の機能ブロック１４〜１８からのアクセスリクエストを待たせている間、その機能ブロックとのデータI/Fを吸収するようなバッファメモリが必要となる。
【００３３】
図４は、アクセス要求平均化を示す図であり、図４Ａは1920×540処理時のアクセス要求イメージ、図４Ｂは720×240処理時のアクセス要求イメージである。
そこで、図３ＢのＴ１~Ｔ６までのアクセス要求を、図４ＢのようにＴ１、Ｔ８、Ｔ１５、Ｔ２２、Ｔ２９、Ｔ３６に分散化させた場合、ピーク時の処理能力を発揮している時に比べアクセス要求の間隔（実線矢印）が広がることによって、画像プロセッサ１３の処理のために確保しておかなければいけないバンド幅が、平均的に1/6となっている。この結果、余裕の出たアクセス要求を受け入れられる分を、他の機能ブロック１４〜１８からのリクエストに割り当てることができる。（点線の矢印）
【００３４】
他の機能ブロック１４〜１８としては、図３Ｂの場合に比べ、リクエストが待機させられる時間が減っているため、データI/Fを保証するためのバッファメモリを少なくすることができる。
【００３５】
つまり、画像プロセッサ１３のアクセス要求の発生頻度を、画像プロセッサ１３が処理するデータ量に応じて平均化して出すようにすることで、他の機能ブロック１４〜１８のリクエストに割り振ることができ、その結果として、バッファメモリの低減を図ることができる。
【００３６】
画像プロセッサ１３のアクセス要求の発生頻度を平均化する手段には様々な手法が考えられるが、本発明では、画像プロセッサ１３に供給するクロックを制御することで、アクセス要求の発生頻度を制御できるようにしている。
【００３７】
図５は、アクセス要求発生タイミング及びクロック数を示す図であり、図５Ａはアクセス要求、図５Ｂは供給クロックである。
画像プロセッサ１３は、図５Ａに示されるように、処理中にアクセス要求が発生する際の間隔は、図５Ｂに示す画像プロセッサ１３に供給されているクロック数で何クロックなのかが概ね決まっている。図５の例では、ピーク時の例であり、クロックは間引かれていない状態で供給されており、この例では、６クロック毎に、Ｔ１、Ｔ７、Ｔ１３、Ｔ１９時点でアクセス要求が発生している。
【００３８】
図６は、アクセス要求発生タイミング及びクロック制御を示す図であり、図６Ａはアクセス要求、図６Ｂは供給クロックである。
これに対し図６Ｂでは、Ｔ２~Ｔ４、Ｔ４~Ｔ６、Ｔ９~Ｔ１１、Ｔ１１~Ｔ１３、Ｔ１３~Ｔ１５、Ｔ１６~Ｔ１８、Ｔ１８~Ｔ１９時点で供給されているクロックに間引き制御を加えて、画像プロセッサ１３の処理能力を落とした状態である。Ｔ１、Ｔ１１時点でアクセス要求が発生しているのは６クロック毎、というのは、図５のピーク時と変わらないが、クロックが間引かれていることにより、アクセス要求の発生頻度が下がっていることがわかる。
【００３９】
最高処理能力を発揮できるスペックのクロック供給に対し、クロックイネーブラーによるクロックの間引き、間引き率の設定、間引き率の制御、を行なっている具体例を示したものが、上述した図１の構成である。
【００４０】
また、このクロック間引き制御ブロック１０でのクロックの間引き制御のタイミングチャートの例を、図７に示す。図７Ａは入力クロック、図７Ｂはクロック間引きカウンター、図７Ｃはクロック間引き率設定値、図７Ｄは組み合わせ回路出力、図７Ｅは出力クロックである。
【００４１】
図１に示したクロック間引き制御ブロック１０の端子７に入力された図７Ａに示すクロックCLKINは、本実施の形態の例であれば、画像プロセッサ１３に要求されている最高処理能力を満たす周波数で供給されている。
【００４２】
図７Ａに示すクロック・CLKINは、図１のクロックイネーブラー３により、クロックの間引き制御が行なわれ、図７Ｅに示す出力クロックCLKOUT として後段に出力されている。本実施の形態の例では、この先に画像プロセッサ１３の本体となる回路が構成されている。
【００４３】
クロックイネーブラー３でのクロック間引きは、図７Ｄに示す組み合わせ回路出力であるクロックイネーブル制御信号DDA_CKENによって制御される。この信号は、図１の組み合わせ回路２というブロックで生成されている。組み合わせ回路２は、図７Ｃに示すクロック間引き率設定値M,N および この2つの数値に対し比較を行なうカウンター値を入力することで、平均的にN/M の割合となるパルスを発生するモジュールである。本実施の形態の例では、M,N の上限を255（8bit幅）とし、M は255固定、N をレジスタ設定として外部から設定可能な値としている。
【００４４】
そして、図１のカウンター１は、比較に用いるカウンター値を生成するカウンターで、図７Ｂに示すクロック間引きカウンターから出力されたカウンター値が組み合わせ回路２に入力されている。図７Ｄに示す組み合わせ回路２から出力されるパルスは、図７Ａに示すクロックCLKINクロックに対する間引き制御のパルスであるので、図１のカウンター１は、図７Ａに示すクロックCLKINで駆動されている。
【００４５】
上記のクロック間引き制御ブロック１０の回路構成により画像プロセッサ１３は、処理すべきデータ量に応じた、「間引かれたクロック」が供給されることになり、結果的に、メモリコントローラ１２に発行されるアクセス要求が、処理状態に応じて等間隔に発行することが可能となる。
【００４６】
また、間引き制御は、レジスタからの設定値“N”を設定するだけで可能となっている。
例えば、N/256 の N を設定した時、N の値に応じて平均的にクロックを発生できる
ようにイネーブルパルスを生成するための例として、図８のような「“設定値”８１対“イネーブルパルスを発生するカウンター値”８２」のイネーブル信号生成用テーブルを作成し、これを、組み合わせ回路２が、図７Ａに示すクロックCLKINの0〜255中にN個クロックを均等に出力させるための図７Ｄに示すイネーブル信号を作るために用いるようにすれば良い。
【００４７】
なお、N が129〜255 の値の際には、上記のN が0~128のテーブルを利用し、例えば、N=2 の時は、カウンター値が 0、128の場合に、イネーブルパルスを“H”とするが、N=254 の時は、カウンター値が 0、128の場合に、イネーブルパルスを“L”とするように、生成したイネーブル信号を反転すればよい。                                
【００４８】
これは、単純にこの例のような「テーブルに従って“H”を出すような回路」は、ゲート規模が著しく増大してしまうためである。
【００４９】
なお、上述した本発明の実施の形態に限らず、本発明の特許請求の範囲内であれば、適宜、その構成を変更してよいことは言うまでもない。
【図面の簡単な説明】
【００５０】
【図１】本発明のクロック間引き制御ブロックを示す図である。
【図２】システム構成図である。
【図３】アクセス要求頻度を示す図であり、図３Ａは1920×540処理時のアクセス要求イメージ、図３Ｂは720×240処理時のアクセス要求イメージである。
【図４】アクセス要求平均化を示す図であり、図４Ａは1920×540処理時のアクセス要求イメージ、図４Ｂは720×240処理時のアクセス要求イメージである。
【図５】アクセス要求発生タイミング及びクロック数を示す図であり、図５Ａはアクセス要求、図５Ｂは供給クロックである。
【図６】アクセス要求発生タイミング及びクロック制御を示す図であり、図６Ａはアクセス要求、図６Ｂは供給クロックである。
【図７】クロックの間引き制御のタイミングチャートであり、図７Ａは入力クロック、図７Ｂはクロック間引きカウンター、図７Ｃはクロック間引き率設定値、図７Ｄは組み合わせ回路出力、図７Ｅは出力クロックである。
【図８】イネーブル信号生成用テーブルである。
【符号の説明】
【００５１】
１…カウンター、２…組み合わせ回路、３…クロックイネーブラー、１０…クロック間引き制御ブロック、１１…メモリ、１２…メモリコントローラ、１３…画像プロセッサ、１４〜１８…他の機能ブロック
【図１】
2006072658.tif 000003
【図２】
2006072658.tif 000004
【図３】
2006072658.tif 000005
【図４】
2006072658.tif 000006
【図５】
2006072658.tif 000007
【図６】
2006072658.tif 000008
【図７】
2006072658.tif 000009
【図８】
2006072658.tif 000010