(57)【要約】【課題】各処理ブロックのプライオリティを設定するために有用な情報を取得することができるバス帯域モニタ装置およびバス帯域モニタ方法を提供する。【解決手段】共通バスに接続され、共通バスを介して入力されたデータを記憶するバッファ部と、バッファ部に記憶されたデータに基づいて予め定められた処理を行う処理部と、バッファ部に共通バスを介して入力されるデータの記憶の状態に基づいて、共通バス上のデータの帯域を検出する検出部と、を備える。【選択図】図２
2012043053.tif 000002
【特許請求の範囲】
【請求項１】
共通バスに接続され、前記共通バスを介して入力されたデータを記憶するバッファ部と、
前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理部と、
前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、
を備える、
ことを特徴とするバス帯域モニタ装置。
【請求項２】
予め定められた処理を行い、該処理した後のデータを出力する処理部と、
共通バスに接続され、前記処理部が出力した前記データを記憶し、記憶されている前記データを前記共通バスに出力するバッファ部と、
前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、
を備える、
ことを特徴とするバス帯域モニタ装置。
【請求項３】
前記検出部は、
前記データが前記共通バスを介して前記バッファ部に入力されてから、前記バッファ部内の全ての記憶領域に前記データが記憶されるまでの期間を計測するカウンタ部、
を備え、
前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項１に記載のバス帯域モニタ装置。
【請求項４】
前記検出部は、
前記共通バスを介して前記バッファ部に記憶されている前記データを出力してから、前記バッファ部内の全ての記憶領域から前記データが読み出されるまでの期間を計測するカウンタ部、
を備え、
前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項２に記載のバス帯域モニタ装置。
【請求項５】
前記検出部は、
前記カウンタ部が計測した前記期間の内、最大の期間の情報を記憶する最大値記憶部と、
前記カウンタ部が計測した前記期間の内、最小の期間の情報を記憶する最小値記憶部と、
を備え、
前記最大値記憶部に記憶した最大の期間の情報と、前記最小値記憶部に記憶した最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項３または請求項４に記載のバス帯域モニタ装置。
【請求項６】
前記バッファ部は、
前記第１のデータを記憶する複数のバッファ回路、
を備え、
前記検出部は、
前記複数のバッファ回路を切り替え、
前記カウンタ部によって、前記複数のバッファ回路のそれぞれの前記期間を計測し、
前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最大の期間の情報を記憶し、
前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最小の期間の情報を記憶し、
前記最大値記憶部に記憶した１つの最大の期間の情報と、前記最小値記憶部に記憶した１つの最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項５に記載のバス帯域モニタ装置。
【請求項７】
前記バッファ部は、
前記第１のデータを記憶する複数のバッファ回路、
を備え、
前記検出部は、
前記カウンタ部によって、前記複数のバッファ回路の前記期間を、前記バッファ回路毎に計測し、
前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最大の期間の情報をそれぞれ記憶し、
前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最小の期間の情報をそれぞれ記憶し、
前記最大値記憶部に記憶したそれぞれの最大の期間の情報と、前記最小値記憶部に記憶したそれぞれの最小の期間の情報とを、それぞれ前記複数のバッファ回路に対応づけて、前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項５に記載のバス帯域モニタ装置。
【請求項８】
共通バスを介して入力されたデータを、前記共通バスに接続されたバッファ部に記憶するステップと、
前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理ステップと、
前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、
を含む、
ことを特徴とするバス帯域モニタ方法。
【請求項９】
予め定められた処理を行い、該処理した後のデータを出力する処理ステップと、
前記処理ステップによって出力された前記データを、共通バスに接続されたバッファ部に記憶し、前記バッファ部に記憶されている前記データを前記共通バスに出力するステップと、
前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、
を含む、
ことを特徴とするバス帯域モニタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス帯域モニタ装置およびバス帯域モニタ方法に関する。
【背景技術】
【０００２】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの画像処理装置に搭載されるシステムＬＳＩなど、多くのシステムＬＳＩでは、接続された１つのＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を、内蔵する複数の処理ブロックが共有している。このようなシステムＬＳＩにおいては、内蔵している複数の処理ブロックが、システムＬＳＩ内部のデータバスに接続され、各処理ブロックは、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によってＤＲＡＭへのアクセスを行う。このとき、バスコントローラが、それぞれの処理ブロックから発せられるＤＲＡＭへのアクセス要求を適切に調停しながら、ＤＲＡＭへのアクセスを制御している。このバスコントローラによるアクセス要求の調停においては、システムとしての性能（パフォーマンス）を満足するように、各処理ブロックからのアクセス要求が調停されることが求められる。
【０００３】
アクセス要求を調停する方法としては、固定優先方式や、ラウンドロビン方式などがある。固定優先方式は、予めそれぞれの処理ブロック毎に固定した優先順位（プライオリティ）を設定し、設定されたプライオリティの高い処理ブロックからのアクセス要求を優先して受け付ける方式である。また、ラウンドロビン方式は、アクセス要求が受け付けられた処理ブロックはプライオリティの設定を低くし、アクセス要求が受け付けられなかった処理ブロックのプライオリティの設定を高くすることによって、各処理ブロックのアクセス要求が均等に受け付けられるようにする方式である。
【０００４】
しかしながら、固定優先方式や、ラウンドロビン方式などのアクセス要求の調停方法では、各処理ブロックのプライオリティを、例えば、画像処理装置の動作モードに応じて細かく設定することができない。このため、例えば、特許文献１に開示された技術のように、各処理ブロックのアクセス要求が受け付けられた回数をカウントしてプライオリティを変更する技術が開示されている。
【０００５】
また、固定優先方式とラウンドロビン方式とを組み合わせて、例えば、特許文献２または特許文献３に開示された技術のように、各処理ブロックのプライオリティを動的に変更するアクセス要求の調停方法も提案されている。特許文献２に開示された技術は、アクセス要求が予め定められた時間以上受け付けられていない処理ブロックのプライオリティを高くするなど、各処理ブロックから発せられるアクセス要求の頻度に応じて、各処理ブロックのプライオリティを動的に変更するという技術である。また、特許文献３に開示された技術は、複数の処理ブロックからのアクセス要求が競合したときに、予め定められた量だけプライオリティを高くすることによって、プライオリティを動的に変更するという技術である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−６１８１８号公報
【特許文献２】特開２００７−１１４９１８号公報
【特許文献３】特開２００４−１７８０５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に開示されているようなアクセス要求の調停方法においては、予め定められた計測範囲の時間内における各処理ブロックのアクセス要求の回数を測定することによって、各処理ブロックのＤＲＡＭへのアクセスにおけるデータバス上のデータ量を表すバス帯域の平均値（平均帯域）を測定している。そして、測定した平均帯域の情報に基づいて、各処理ブロックのプライオリティを変更している。
【０００８】
しかしながら、実際の各処理ブロックの動作においては、データバスの平均帯域が同じ場合であっても、アクセス要求の頻度がばらつくことによって、処理時間が長くなってしまったり、過剰にデータバスを占有してしまったり、という問題がある。
【０００９】
以下にアクセス要求の頻度と、処理時間およびデータバスの占有の関係について説明する。図７は、１つの処理ブロックにおけるデータバスのアクセスと処理時間の関係の一例を模式的に示した図である。図７は、２回のバスアクセス毎に内部処理が行われる処理ブロックの場合を示している。そして、図７（ａ）の例は、バスアクセスが集中することにより、ある程度の時間の間、ＤＲＡＭへのアクセスを占有する場合、図７（ｂ）の例は、バスアクセスを集中せず、分散してＤＲＡＭにアクセスする場合を、それぞれ示している。図７において、データバスの平均帯域の測定結果は、図７（ａ）に示したバスアクセスと、図７（ｂ）に示したバスアクセスとで同じである。しかし、図７をみてわかるように、図７（ａ）の場合は、ＤＲＡＭへのアクセスを占有することはできるが、内部処理が終了した後に、次の処理を行うためのデータの準備がされていないことによって、内部処理が中断されている時間が長く、結果として処理時間も長くなってしまっている。
【００１０】
図８は、２つの処理ブロックにおけるデータバスのアクセスの関係の一例を模式的に示した図である。図８は、図７と同様に、２回のバスアクセス毎に内部処理が行われる処理ブロックの場合を示している。そして、図８（ａ）は、図７（ａ）と同様に、１つの処理ブロックのバスアクセスを集中して行った場合のバスアクセスと処理時間の関係の例、図８（ｂ）は、図７（ｂ）と同様に、１つの処理ブロックのバスアクセスを分散して行った場合のバスアクセスと処理時間の関係の例を、それぞれ示している。図８（ａ）と図８（ｂ）とに示した例においては、図７（ａ）および図７（ｂ）と同様に、データバスの平均帯域の測定結果は同じである。さらに、図８（ａ）と図８（ｂ）とに示した例においては、図７（ａ）および図７（ｂ）と異なり、処理ブロックの処理時間も同じである。そして、図８（ｃ）および図８（ｄ）は、２つの処理ブロックが同時に動作している場合を示している。図８（ｃ）に示した例は、図８（ａ）のようにバスアクセスを集中して行う処理ブロックＡと、図８（ｂ）のようにバスアクセスを分散して行う処理ブロックＢとが同時に動作している場合を示している。また、図８（ｄ）は、図８（ｂ）のようにバスアクセスを分散して行う処理ブロックＡと処理ブロックＢとが同時に動作している場合を示している。
【００１１】
図８（ｃ）および図８（ｄ）をみてわかるように、１つの処理ブロックＡにおける平均帯域および処理時間が同じ場合であっても、同時に２つの処理ブロックが動作している場合には、全体の処理時間に差がでてしまう。すなわち、図８（ｄ）においては、２つの処理ブロックが互いに干渉せずにＤＲＡＭにアクセスすることができるが、図８（ｃ）においては、期間Ｘにおけるデータバスの競合によって処理ブロックＢがＤＲＡＭにアクセスすることができない時間が発生し、結果として全体の処理時間が長くなってしまっている。この期間Ｘにおけるデータバスの競合は、処理ブロックＢがＤＲＡＭにアクセスするときに、処理ブロックＡがＤＲＡＭへのアクセスを占有していることにより発生したものである。
【００１２】
このように、各処理ブロックがデータバスを使用する際の平均帯域のみでは、システムとしての性能（パフォーマンス）を判断することはできず、各処理ブロックからのアクセス要求を適切に調停することは困難である。
【００１３】
また、特許文献２や特許文献３に開示されているような、プライオリティを動的に変更する技術においては、多くの場合、各処理ブロックから発せられるアクセス要求におけるデータバスの平均帯域、各処理ブロックに備えているバッファの容量、システムの各動作モードにおける各処理ブロックの重要度などに応じて、システムとして破綻が起きないように、各処理ブロックのプライオリティを設定することが必要となる。
【００１４】
しかしながら、各処理ブロックのプライオリティを設定する際に必要な指針となる情報を取得する方法がなく、例えば、システムとして破綻していた場合に、どの処理ブロックがシステム破綻の要因となっているのか、プライオリティの設定をどの程度変更すれば、破綻なくシステムが動作するのかというようなことを確認する方法がなかった。そのため、従来、各処理ブロックのプライオリティを設定する際には、プライオリティの設定を行った上で実際にシステムを動作させ、システムとして破綻が起こらない設定を見つけだす作業が行われており、システム開発の効率が悪いという問題がある。
【００１５】
本発明は、上記の課題認識に基づいてなされたものであり、各処理ブロックのプライオリティを設定するために有用な情報を取得することができるバス帯域モニタ装置およびバス帯域モニタ方法を提供することを目的としている。
【課題を解決するための手段】
【００１６】
上記の課題を解決するため、本発明のバス帯域モニタ装置は、共通バスに接続され、前記共通バスを介して入力されたデータを記憶するバッファ部と、前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理部と、前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、を備える、ことを特徴とする。
【００１７】
また、本発明のバス帯域モニタ装置は、予め定められた処理を行い、該処理した後のデータを出力する処理部と、共通バスに接続され、前記処理部が出力した前記データを記憶し、記憶されている前記データを前記共通バスに出力するバッファ部と、前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、を備える、ことを特徴とする。
【００１８】
また、本発明の前記検出部は、前記データが前記共通バスを介して前記バッファ部に入力されてから、前記バッファ部内の全ての記憶領域に前記データが記憶されるまでの期間を計測するカウンタ部、を備え、前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【００１９】
また、本発明の前記検出部は、前記共通バスを介して前記バッファ部に記憶されている前記データを出力してから、前記バッファ部内の全ての記憶領域から前記データが読み出されるまでの期間を計測するカウンタ部、を備え、前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【００２０】
また、本発明の前記検出部は、前記カウンタ部が計測した前記期間の内、最大の期間の情報を記憶する最大値記憶部と、前記カウンタ部が計測した前記期間の内、最小の期間の情報を記憶する最小値記憶部と、を備え、前記最大値記憶部に記憶した最大の期間の情報と、前記最小値記憶部に記憶した最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【００２１】
また、本発明の前記バッファ部は、前記第１のデータを記憶する複数のバッファ回路、を備え、前記検出部は、前記複数のバッファ回路を切り替え、前記カウンタ部によって、前記複数のバッファ回路のそれぞれの前記期間を計測し、前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最大の期間の情報を記憶し、前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最小の期間の情報を記憶し、前記最大値記憶部に記憶した１つの最大の期間の情報と、前記最小値記憶部に記憶した１つの最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【００２２】
また、本発明の前記バッファ部は、前記第１のデータを記憶する複数のバッファ回路、を備え、前記検出部は、前記カウンタ部によって、前記複数のバッファ回路の前記期間を、前記バッファ回路毎に計測し、前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最大の期間の情報をそれぞれ記憶し、前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最小の期間の情報をそれぞれ記憶し、前記最大値記憶部に記憶したそれぞれの最大の期間の情報と、前記最小値記憶部に記憶したそれぞれの最小の期間の情報とを、それぞれ前記複数のバッファ回路に対応づけて、前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【００２３】
また、本発明のバス帯域モニタ方法は、共通バスを介して入力されたデータを、前記共通バスに接続されたバッファ部に記憶するステップと、前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理ステップと、前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、を含む、ことを特徴とする。
【００２４】
また、本発明のバス帯域モニタ方法は、予め定められた処理を行い、該処理した後のデータを出力する処理ステップと、前記処理ステップによって出力された前記データを、共通バスに接続されたバッファ部に記憶し、前記バッファ部に記憶されている前記データを前記共通バスに出力するステップと、前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、を含む、ことを特徴とする。
【発明の効果】
【００２５】
本発明によれば、各処理ブロックのプライオリティを設定するために有用な情報を取得することができるという効果が得られる。
【図面の簡単な説明】
【００２６】
【図１】本発明の実施形態における画像処理装置の概略構成を示したブロック図である。
【図２】本実施形態における処理ブロックの概略構成を示したブロック図である。
【図３】本実施形態の処理ブロックにおいて、プライオリティを設定するために必要な指針となる情報を取得するための概略構成と方法とを説明する図である。
【図４】本実施形態の処理ブロックにおいて、プライオリティを設定するために必要な指針となる情報を取得するための概略構成と方法とを説明する図である。
【図５】本実施形態の処理ブロックにおけるバス帯域モニタ回路の構成を示したブロック図である。
【図６】本実施形態のバス帯域モニタ回路が取得した結果に応じて処理ブロックの優先順位を変更する量を変える例を説明する図である。
【図７】１つの処理ブロックにおけるデータバスのアクセスと処理時間の関係の一例を模式的に示した図である。
【図８】２つの処理ブロックにおけるデータバスのアクセスの関係の一例を模式的に示した図である。
【発明を実施するための形態】
【００２７】
以下、本発明の実施形態について、図面を参照して説明する。図１は、本実施形態における画像処理装置の概略構成を示したブロック図である。図１に示した画像処理装置１は、システム制御部１０と、ＤＲＡＭ２０と、イメージャ３０と、表示部４０と、を備えている。
【００２８】
イメージャ３０は、図示しないレンズによって結像された被写体の光学像を光電変換する固体撮像素子を備え、被写体光に応じた画像信号（以下、「入力画像データ」という）をシステム制御部１０に出力する。
表示部４０は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）などの表示装置を備え、システム制御部１０から出力された表示用の画像信号（以下、「出力画像データ」という）に基づいた画像を表示する。
ＤＲＡＭ２０は、システム制御部１０によってアクセス制御され、システム制御部１０の処理過程における様々なデータを記憶する。
【００２９】
システム制御部１０は、画像処理装置１における様々な処理を行うシステムＬＳＩである。システム制御部１０は、バスコントローラ１２と、撮像インタフェース１３１と、画像処理部１３２と、ビデオインタフェース１３６とを備えている。システム制御部１０内の各構成要素は、データバス１１を介してそれぞれ接続され、ＤＭＡアクセスによってＤＲＡＭ２０からのデータの読み出し、およびＤＲＡＭ２０へのデータの書き込みを行う。このとき、バスコントローラ１２は、データバス１１に接続されている各構成要素から発せられるＤＲＡＭ２０へのＤＭＡアクセス要求を調停し、実際にＤＲＡＭ２０へのアクセスを行う。
【００３０】
バスコントローラ１２は、システム制御部１０内の構成要素からＤＭＡアクセス要求が入力されると、現在データバス１１を使用してＤＲＡＭ２０のＤＭＡアクセスを行っている他の構成要素があるか否かを確認する。現在データバス１１を使用している他の構成要素がある場合には、ＤＭＡアクセス要求を受け付けない。また、現在データバス１１を使用している他の構成要素がない場合には、ＤＭＡアクセス要求を受け付け、ＤＭＡアクセス要求を出力した構成要素によるＤＭＡアクセスに応じた、ＤＲＡＭ２０の制御を行う。また、バスコントローラ１２は、システム制御部１０内の複数の構成要素からＤＭＡアクセス要求が入力されている場合には、各構成要素のプライオリティに基づいて、ＤＭＡアクセス要求をしている構成要素の内、最もプライオリティが高い構成要素のＤＭＡアクセス要求を受け付け、他の構成要素のＤＭＡアクセス要求を受け付けない。このように、バスコントローラ１２は、システム制御部１０内の構成要素のプライオリティに基づいて、ＤＭＡアクセス要求を調停する。
【００３１】
撮像インタフェース１３１は、イメージャ３０から入力された入力画像データを、ＤＲＡＭ２０に書き込む（記憶する）ための処理ブロックである。撮像インタフェース１３１は、イメージャ３０から入力された入力画像データを一時記憶する。そして、入力画像データをＤＲＡＭ２０に書き込む際に、ＤＲＡＭ２０へのＤＭＡアクセス要求をバスコントローラ１２に出力する。そして、撮像インタフェース１３１は、ＤＭＡアクセス要求がバスコントローラ１２に受け付けられた後に、一時記憶した入力画像データを、バスコントローラ１２を介してＤＲＡＭ２０に出力する。
【００３２】
画像処理部１３２は、ＤＲＡＭ２０に記憶している入力画像データを読み出し、各種の画像処理を行った後、表示用に処理した出力画像データをＤＲＡＭ２０に書き込む（記憶する）ための処理ブロックである。画像処理部１３２は、入力ＤＭＡ部１３３と、画像処理モジュール（画像処理モジュール１３４−１〜画像処理モジュール１３４−３）と、出力ＤＭＡ部１３５とを備えている。画像処理部１３２は、各構成要素を直列に接続し、複数の画像処理をパイプライン処理することによって、少ないバス帯域での複数の画像処理を実現している。
【００３３】
入力ＤＭＡ部１３３は、ＤＲＡＭ２０に記憶している入力画像データを読み出し、読み出した入力画像データを画像処理モジュール１３４−１に出力するための処理ブロックである。入力ＤＭＡ部１３３は、入力画像データをＤＲＡＭ２０から読み出す際に、ＤＲＡＭ２０へのＤＭＡアクセス要求をバスコントローラ１２に出力する。そして、入力ＤＭＡ部１３３は、ＤＭＡアクセス要求がバスコントローラ１２に受け付けられた後に、バスコントローラ１２を介してＤＲＡＭ２０から入力画像データを読み出し、読み出した入力画像データを一時記憶する。そして、入力ＤＭＡ部１３３は、一時記憶した入力画像データを、画像処理モジュール１３４−１に出力する。
【００３４】
画像処理モジュール１３４−１〜画像処理モジュール１３４−３は、それぞれ入力された画像信号に対して種々のデジタル的な画像処理を行って、次段の処理ブロックに出力する。画像処理モジュール１３４−１〜画像処理モジュール１３４−３による画像処理には、例えば、画像信号を記録するための記録用の画像処理や、被写体の画像を表示部４０に表示させるための表示用の画像処理が含まれる。以下の説明においては、画像処理モジュール１３４−１〜画像処理モジュール１３４−３によって、入力ＤＭＡ部１３２から入力された入力画像データが、表示用の画像信号に変換（画像処理）され、画像処理モジュール１３４−３から出力画像データとして、出力ＤＭＡ部１３５に出力されるものとして説明する。
【００３５】
出力ＤＭＡ部１３５は、画像処理モジュール１３４−３から入力された出力画像データを、ＤＲＡＭ２０に書き込む（記憶する）ための処理ブロックである。出力ＤＭＡ部１３５は、画像処理モジュール１３４−３から入力された出力画像データを一時記憶する。そして、出力画像データをＤＲＡＭ２０に書き込む際に、ＤＲＡＭ２０へのＤＭＡアクセス要求をバスコントローラ１２に出力する。そして、出力ＤＭＡ部１３５は、ＤＭＡアクセス要求がバスコントローラ１２に受け付けられた後に、一時記憶した出力画像データを、バスコントローラ１２を介してＤＲＡＭ２０に出力する。
【００３６】
ビデオインタフェース１３６は、ＤＲＡＭ２０に記憶している出力画像データを読み出し、読み出した出力画像データを表示部４０に出力するための処理ブロックである。ビデオインタフェース１３６は、出力画像データをＤＲＡＭ２０から読み出す際に、ＤＲＡＭ２０へのＤＭＡアクセス要求をバスコントローラ１２に出力する。そして、ビデオインタフェース１３６は、ＤＭＡアクセス要求がバスコントローラ１２に受け付けられた後に、バスコントローラ１２を介してＤＲＡＭ２０から出力画像データを読み出し、読み出した出力画像データを一時記憶する。そして、ビデオインタフェース１３６は、一時記憶した出力画像データを、表示部４０に出力する。
【００３７】
このように、システム制御部１０内の各処理ブロックは、それぞれの処理ブロック内に備える一時記憶領域（バッファ）にデータを一時記憶し、バスコントローラ１２にＤＭＡアクセス要求が受け付けられた後に、一時記憶しているデータを、データバス１１およびバスコントローラ１２を介して、ＤＲＡＭ２０に書き込む、またはＤＲＡＭ２０から読み出す。
【００３８】
そして、システム制御部１０内の各処理ブロックは、ビデオインタフェース１３６および入力ＤＭＡ部１３３のように、ＤＭＡアクセスによってＤＲＡＭ２０からデータを読み出す処理ブロック（以下「リードプロキシ」という）と、撮像インタフェース１３１および出力ＤＭＡ部１３５のように、ＤＭＡアクセスによってＤＲＡＭ２０にデータを書き込む処理ブロック（以下「ライトプロキシ」という）と、に分けることができる。
【００３９】
次に、システム制御部１０内の各処理ブロックについて説明する。図２は、本実施形態における処理ブロックの概略構成を示したブロック図である。図２（ａ）は、リードプロキシの概略構成を示し、図２（ｂ）は、ライトプロキシの概略構成を示している。以下の説明においては、リードプロキシとして入力ＤＭＡ部１３３を説明し、ライトプロキシとして出力ＤＭＡ部１３５を説明する。そして、入力ＤＭＡ部１３３を、リードプロキシ１３６ともいう。また、出力ＤＭＡ部１３５を、ライトプロキシ１３５ともいう。
【００４０】
図２（ａ）に示したように、リードプロキシ１３３は、バスリードインタフェース１３３１と、リードバッファ１３３２と、内部処理回路１３３３と、出力インタフェース１３３４と、バス帯域モニタ回路１３７と、を備えている。
【００４１】
バスリードインタフェース１３３１は、ＤＭＡアクセスによってＤＲＡＭ２０からデータバス１１に読み出されているデータを、リードプロキシ１３３内に取り込むインタフェース回路である。
リードバッファ１３３２は、バスリードインタフェース１３３１が取り込んだデータバス１１のデータを一時記憶するバッファ回路である。
内部処理回路１３３３は、リードバッファ１３３２に一時記憶されたデータを、リードプロキシ１３３の機能として処理する処理回路である。
出力インタフェース１３３４は、内部処理回路１３３３が処理したデータをリードプロキシ１３３に接続されている他のブロック（例えば、リードプロキシ１３３が入力ＤＭＡ部１３３である場合は、画像処理モジュール１３４−１）に出力するインタフェース回路である。
バス帯域モニタ回路１３７は、リードプロキシ１３３のプライオリティを設定するために必要な指針となる情報（以下、「プライオリティ指針情報」という）を取得するモニタ回路である。
【００４２】
また、図２（ｂ）に示したように、ライトプロキシ１３５は、入力インタフェース１３５１と、内部処理回路１３５２と、ライトバッファ１３５３と、バスライトインタフェース１３５４と、バス帯域モニタ回路１３７と、を備えている。
【００４３】
入力インタフェース１３５１は、ライトプロキシ１３５に接続されている他のブロック（例えば、ライトプロキシ１３５が出力ＤＭＡ部１３５である場合は、画像処理モジュール１３４−３）から入力されたデータを、ライトプロキシ１３５内に入力するインタフェース回路である。
内部処理回路１３５２は、入力インタフェース１３５１を介して入力されたデータを、ライトプロキシ１３５の機能として処理する処理回路である。
ライトバッファ１３５３は、内部処理回路１３５２が処理したデータをＤＭＡアクセスによってＤＲＡＭ２０に出力するために一時記憶するバッファ回路である。
バスライトインタフェース１３５４は、ライトバッファ１３５３に一時記憶されたデータをデータバス１１に出力してＤＲＡＭ２０に書き込むインタフェース回路である。
バス帯域モニタ回路１３７は、ライトプロキシ１３５のプライオリティ指針情報を取得するモニタ回路である。
【００４４】
次に、システム制御部１０内の各処理ブロックのプライオリティ指針情報を取得する構成について説明する。図３および図４は、本実施形態の処理ブロックにおいて、プライオリティ指針情報を取得するための概略構成と方法とを説明する図である。そして、図３は、リードプロキシ１３３の場合を示し、図４は、ライトプロキシ１３５の場合を示している。まず、図３に示したリードプロキシ１３３について説明する。図３（ａ）は、リードプロキシ１３３においてプライオリティ指針情報の取得に係わる構成要素のブロック図を示し、図３（ｂ）は、プライオリティ指針情報を取得する方法を説明する図を示している。なお、図３（ａ）は、処理ブロック内に一時記憶することができるデータ量が多量である、すなわち、リードバッファ１３３２が大容量バッファであるリードプロキシ１３３においてプライオリティ指針情報を取得するためのブロック図を示している。
【００４５】
システム制御部１０では、各処理ブロックがデータバス１１に接続され、各処理ブロックがデータバス１１を共有している。そして、リードプロキシ１３３は、内部処理回路１３３３がデータバス１１を介してＤＲＡＭ２０から取得したデータを処理する。
【００４６】
ここで、リードプロキシ１３３に備えるリードバッファ１３３２について説明する。図３（ａ）に示すように、リードバッファ１３３２は、２つのバッファ（バッファＡとバッファＢ）と、バッファを切り替えるバッファ管理部３２０とを備える。バッファ管理部３２０は、データバス１１を介してＤＲＡＭ２０から取得したデータをバッファに記憶する際、バッファＡまたはバッファＢのいずれか１つのバッファを選択し、ＤＲＡＭ２０から取得したデータを記憶させる。また、バッファ管理部３２０は、バッファに記憶されているデータを内部処理回路１３３３に出力する際、データ記憶されているバッファＡまたはバッファＢのいずれか１つのバッファを選択し、記憶しているデータを内部処理回路１３３３に出力する。
【００４７】
また、バッファ管理部３２０は、バッファＡおよびバッファＢにデータが記憶されているか否かを示すエンプティ信号を出力する。なお、図３（ａ）に示したエンプティ＿Ａ信号は、バッファＡにデータが記憶されているか否かを表す信号であり、バッファＡの全ての記憶領域にデータが記憶されていないときに、“Ｈｉｇｈ”レベルとなり、バッファＡの全ての記憶領域にデータが記憶されているときに“Ｌｏｗ”レベルとなる信号である。なお、エンプティ＿Ａ信号は、バッファＡの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。また、同様に、エンプティ＿Ｂ信号は、バッファＢにデータが記憶されているか否かを表す信号であり、バッファＢの全ての記憶領域にデータが記憶されていないときに、“Ｈｉｇｈ”レベルとなり、バッファＢの全ての記憶領域にデータが記憶されているときに“Ｌｏｗ”レベルとなる信号である。また、同様に、エンプティ＿Ｂ信号は、バッファＢの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。
【００４８】
図３（ｂ）を用いてリードバッファ１３３２のより具体的な動作を説明する。リードプロキシ１３３のＤＭＡ動作が開始されると、バッファ管理部３２０は、バッファＡにデータが記憶されていない状態、すなわち、エンプティ＿Ａ信号が“Ｈｉｇｈ”レベルであることを確認し、バスリードインタフェース１３３１を介して入力されたデータバス１１からのデータをバッファＡに記憶させる。そして、バッファＡの全ての記憶領域にデータが記憶されると、エンプティ＿Ａ信号を“Ｌｏｗ”レベルにする。続いて、バッファ管理部３２０は、バッファＢにデータが記憶されていない状態、すなわち、エンプティ＿Ｂ信号が“Ｈｉｇｈ”レベルであることを確認し、バスリードインタフェース１３３１を介して入力されたデータバス１１からのデータをバッファＢに記憶させる。そして、バッファＢの全ての記憶領域にデータが記憶されると、エンプティ＿Ｂ信号を“Ｌｏｗ”レベルにする。続いて、バッファＡへのデータの記憶を行う。このように、リードバッファ１３３２がデータを記憶する際には、バッファＡとバッファＢとが交互に選択されて、入力されたデータが記憶される。
【００４９】
また、リードバッファ１３３２におけるデータの出力では、エンプティ＿Ａ信号が“Ｌｏｗ”レベルとなった後、内部処理回路１３３３からのデータ要求に応じて、バッファＡに記憶しているデータを、内部処理回路１３３３に出力する。そして、バッファＡに記憶されている全てのデータが内部処理回路１３３３に出力されると、バッファ管理部３２０は、エンプティ＿Ａ信号を“Ｈｉｇｈ”レベルにする。続いて、エンプティ＿Ｂ信号が“Ｌｏｗ”レベルとなった後、内部処理回路１３３３からのデータ要求に応じて、バッファＢに記憶しているデータを、内部処理回路１３３３に出力する。そして、バッファＢに記憶されている全てのデータが内部処理回路１３３３に出力されると、バッファ管理部３２０は、エンプティ＿Ｂ信号を“Ｈｉｇｈ”レベルにする。続いて、バッファＡに記憶されているデータの出力を行う。このように、リードバッファ１３３２がデータを出力する際には、バッファＡとバッファＢとが交互に選択されて、選択されたバッファに記憶されているデータが、内部処理回路１３３３に出力される。
【００５０】
上記に述べたように、システム制御部１０では、各処理ブロックが共有のデータバス１１に接続され、リードプロキシ１３３は、データバス１１を介してＤＲＡＭ２０から取得したデータをリードバッファ１３３２に一時記憶した後に、内部処理回路１３３３がリードバッファ１３３２に記憶されたデータを処理する。リードプロキシ１３３は、ＤＭＡアクセスによってＤＲＡＭ２０からデータを取得するが、リードプロキシ１３３に備えたリードバッファ１３３２は大容量であり、上記に述べたように、２つのバッファを交互に動作させている。このため、例えば、リードプロキシ１３３から発せられたＤＭＡアクセス要求がバスコントローラ１２に受け付けられて、リードプロキシ１３３によるＤＭＡアクセスが一旦開始されると、２つのバッファにデータが記憶されるまで他の処理ブロックからのＤＭＡアクセス要求を受け付けない、すなわち、リードプロキシ１３３がデータバス１１を占有してしまうこととなる。しかし、リードプロキシ１３３内の内部処理回路１３３３の処理によっては、リードプロキシ１３３がデータバス１１を占有する必要がない、すなわち、内部処理回路１３３３によって処理されるタイミングまでに必要なデータが準備されていればよい場合もある。このため、バス帯域モニタ回路１３７は、リードプロキシ１３３のＤＭＡ動作が開始された後、それぞれのバッファにデータバス１１からのデータが記憶される時間を計測する。
【００５１】
図３（ａ）に示すように、バス帯域モニタ回路１３７は、バッファ管理部３２０から出力されるエンプティ＿Ａ信号およびエンプティ＿Ｂ信号に基づいて、バッファＡおよびバッファＢにデータバス１１からのデータが記憶される時間（クロックサイクル数）を計測（カウント）する。
【００５２】
バス帯域モニタ回路１３７は、リードプロキシ１３３のＤＭＡ動作が開始された後、リードバッファ１３３２内のバッファＡまたはバッファＢにデータを記憶する時間をカウントする。より具体的には、図３（ｂ）に示したように、エンプティ＿Ａ信号またはエンプティ＿Ｂ信号が“Ｈｉｇｈ”レベルである期間Ａのクロックサイクル数をカウントする。そして、カウントした期間Ａのクロックサイクル数を、プライオリティ指針情報として出力する。
【００５３】
続いて、図４に示したライトプロキシ１３５について説明する。図４（ａ）は、ライトプロキシ１３５においてプライオリティ指針情報の取得に係わる構成要素のブロック図を示し、図４（ｂ）は、プライオリティ指針情報を取得する方法を説明する図を示している。なお、図４（ａ）は、処理ブロック内に一時記憶することができるデータ量が多量である、すなわち、ライトバッファ１３５３が大容量バッファであるライトプロキシ１３５においてプライオリティ指針情報を取得するためのブロック図を示している。
【００５４】
システム制御部１０では、各処理ブロックがデータバス１１に接続され、各処理ブロックがデータバス１１を共有している。そして、ライトプロキシ１３５は、内部処理回路１３５２が処理したデータを、データバス１１を介してＤＲＡＭ２０に書き込む。
【００５５】
ここで、ライトプロキシ１３５に備えるライトバッファ１３５３について説明する。図４（ａ）に示すように、ライトバッファ１３５３は、２つのバッファ（バッファＡとバッファＢ）と、バッファを切り替えるバッファ管理部５３０とを備える。バッファ管理部５３０は、内部処理回路１３５２が処理したデータをバッファに記憶する際、バッファＡまたはバッファＢのいずれか１つのバッファを選択して、内部処理回路１３５２の処理後のデータを記憶させる。また、バッファ管理部５３０は、バッファに記憶されているデータをＤＲＡＭ２０に出力する際、データ記憶されているバッファＡまたはバッファＢのいずれか１つのバッファを選択し、記憶しているデータを、データバス１１を介してＤＲＡＭ２０に出力する。
【００５６】
また、バッファ管理部５３０は、バッファＡおよびバッファＢにデータが記憶されているか否かを示すフル信号を出力する。なお、図４（ａ）に示したフル＿Ａ信号は、バッファＡにデータが記憶されているか否かを表す信号であり、バッファＡの全ての記憶領域にデータが記憶されているときに、“Ｈｉｇｈ”レベルとなり、バッファＡの全ての記憶領域にデータが記憶されていないときに“Ｌｏｗ”レベルとなる信号である。なお、フル＿Ａ信号は、バッファＡの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。また、同様に、フル＿Ｂ信号は、バッファＢにデータが記憶されているか否かを表す信号であり、バッファＢの全ての記憶領域にデータが記憶されているときに、“Ｈｉｇｈ”レベルとなり、バッファＢの全ての記憶領域にデータが記憶されていないときに“Ｌｏｗ”レベルとなる信号である。また、同様に、フル＿Ｂ信号は、バッファＢの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。
【００５７】
図４（ｂ）を用いてライトバッファ１３５３のより具体的な動作を説明する。ライトプロキシ１３５のＤＭＡ動作が開始されると、バッファ管理部５３０は、バッファＡにデータが記憶されていない状態、すなわち、フル＿Ａ信号が“Ｌｏｗ”レベルであることを確認し、内部処理回路１３５２が処理したデータをバッファＡに記憶させる。そして、バッファＡの全ての記憶領域にデータが記憶されると、フル＿Ａ信号を“Ｈｉｇｈ”レベルにする。続いて、バッファ管理部５３０は、バッファＢにデータが記憶されていない状態、すなわち、フル＿Ｂ信号が“Ｌｏｗ”レベルであることを確認し、内部処理回路１３５２が処理したデータをバッファＢに記憶させる。そして、バッファＢの全ての記憶領域にデータが記憶されると、フル＿Ｂ信号を“Ｈｉｇｈ”レベルにする。続いて、バッファＡへのデータの記憶を行う。このように、ライトバッファ１３５３がデータを記憶する際には、バッファＡとバッファＢとが交互に選択されて、内部処理回路１３５２が処理したデータが記憶される。
【００５８】
また、ライトバッファ１３５３におけるデータの出力では、フル＿Ａ信号が“Ｈｉｇｈ”レベルとなった後、バスライトインタフェース１３５４からのデータ要求に応じて、バッファＡに記憶しているデータを、バスライトインタフェース１３５４を介してデータバス１１に出力する。そして、バッファＡに記憶されている全てのデータがバスライトインタフェース１３５４を介してデータバス１１に出力されると、バッファ管理部５３０は、フル＿Ａ信号を“Ｌｏｗ”レベルにする。続いて、フル＿Ｂ信号が“Ｈｉｇｈ”レベルとなった後、バスライトインタフェース１３５４からのデータ要求に応じて、バッファＢに記憶しているデータを、バスライトインタフェース１３５４を介してデータバス１１に出力する。そして、バッファＢに記憶されている全てのデータがバスライトインタフェース１３５４を介してデータバス１１に出力されると、バッファ管理部５３０は、フル＿Ｂ信号を“Ｌｏｗ”レベルにする。続いて、バッファＡに記憶されているデータの出力を行う。このように、ライトバッファ１３５３がデータを出力する際には、バッファＡとバッファＢとが交互に選択されて、選択されたバッファに記憶されているデータが、バスライトインタフェース１３５４を介してデータバス１１に出力される。
【００５９】
上記に述べたように、システム制御部１０では、各処理ブロックが共有のデータバス１１に接続され、ライトプロキシ１３５は、内部処理回路１３５２が処理したデータをライトバッファ１３５３一時記憶した後に、ライトバッファ１３５３に記憶されたデータを、データバス１１を介してＤＲＡＭ２０に書き込む。ライトプロキシ１３５は、ＤＭＡアクセスによってＤＲＡＭ２０にデータを書き込むが、ライトプロキシ１３５に備えたライトバッファ１３５３は大容量であり、上記に述べたように、２つのバッファを交互に動作させている。このため、例えば、ライトプロキシ１３５から発せられたＤＭＡアクセス要求がバスコントローラ１２に受け付けられて、ライトプロキシ１３５によるＤＭＡアクセスが一旦開始されると、２つのバッファに記憶されているデータが出力されるまで他の処理ブロックからのＤＭＡアクセス要求を受け付けない、すなわち、ライトプロキシ１３５がデータバス１１を占有してしまうこととなる。しかし、ライトプロキシ１３５内の内部処理回路１３５２の処理によっては、ライトプロキシ１３５がデータバス１１を占有する必要がない、すなわち、内部処理回路１３５２が処理したデータが準備された後に、ＤＲＡＭ２０に書き込めばよい場合もある。このため、バス帯域モニタ回路１３７は、ライトプロキシ１３５のＤＭＡ動作が開始された後、それぞれのバッファからデータバス１１にデータが出力される時間を計測する。
【００６０】
図４（ａ）に示すように、バス帯域モニタ回路１３７は、バッファ管理部５３０から出力されるフル＿Ａ信号およびフル＿Ｂ信号に基づいて、バッファＡおよびバッファＢからデータバス１１にデータが出力される時間（クロックサイクル数）を計測（カウント）する。
【００６１】
バス帯域モニタ回路１３７は、ライトプロキシ１３５のＤＭＡ動作が開始された後、ライトバッファ１３５３内のバッファＡまたはバッファＢにデータが記憶されている、すなわち、記憶されているデータがデータバス１１に出力される時間をカウントする。より具体的には、図４（ｂ）に示したように、フル＿Ａ信号またはフル＿Ｂ信号が“Ｈｉｇｈ”レベルである期間Ｂのクロックサイクル数をカウントする。そして、カウントした期間Ｂのクロックサイクル数を、プライオリティ指針情報として出力する。
【００６２】
次に、バス帯域モニタ回路１３７についてさらに詳細に説明する。図５は、本実施形態の処理ブロックにおけるバス帯域モニタ回路１３７の構成を示したブロック図である。なお、図５は、図３および図４に示したカウンタ回路１３７０の構成をより詳細に示したブロック図である。図５に示したカウンタ回路１３７０は、セレクタ１３７１と、立ち下がり検出回路１３７２と、カウンタ１３７３と、最大値比較部１３７４と、最大値保持部１３７５と、最小値比較部１３７６と、最小値保持部１３７７と、を備えている。なお、以下の説明においては、入力ＤＭＡ部１３３であるリードプロキシ１３３に備えたバス帯域モニタ回路１３７の例を説明する。
【００６３】
セレクタ１３７１は、リードバッファ１３３２内のバッファ管理部３２０から出力されるエンプティ＿Ａ信号またはエンプティ＿Ｂ信号のいずれか１つの信号を、カウンタ１３７３がカウントする期間を表すイネーブル信号として選択する。セレクタ１３７１による、エンプティ＿Ａ信号またはエンプティ＿Ｂ信号の選択は、立ち下がり検出回路１３７２から出力される選択信号に基づいて行われる。
【００６４】
カウンタ１３７３は、セレクタ１３７１から出力されたイネーブル信号（エンプティ＿Ａ信号またはエンプティ＿Ｂ信号）が“Ｈｉｇｈ”レベルの期間の処理ブロックの動作クロックの数（クロックサイクル数）をカウントする。これにより、カウンタ１３７３が、バッファＡまたはバッファＢにデータバス１１からのデータが記憶される時間をカウントすることとなる。なお、カウンタ１３７３は、立ち下がり検出回路１３７２からリセット信号が入力されると、カウントしている値（カウント値）を初期化（リセット）する。
【００６５】
立ち下がり検出回路１３７２は、セレクタ１３７１から出力されたイネーブル信号の立ち下がりのタイミング（“Ｈｉｇｈ”レベルから“Ｌｏｗ”レベルに変化するタイミング）、すなわち、バッファＡまたはバッファＢの記憶領域に全てのデータが記憶されるタイミングを検出し、このイネーブル信号の立ち下がりのタイミングでカウンタ１３７３をリセットするためのリセット信号を出力する。また、立ち下がり検出回路１３７２は、リセット信号の出力と同じタイミングで、セレクタ１３７１に選択信号を出力する。この選択信号によって、セレクタ１３７１は、エンプティ＿Ａ信号またはエンプティ＿Ｂ信号のいずれか１つの信号を選択する。例えば、現在エンプティ＿Ａ信号がイネーブル信号として選択されていた場合には、イネーブル信号（エンプティ＿Ａ信号）の立ち下がりのタイミングで、選択信号を出力する。これにより、セレクタ１３７１は、イネーブル信号をエンプティ＿Ｂ信号に切り替える。
【００６６】
最大値比較部１３７４は、現在カウンタ１３７３がカウントしているカウント値と、最大値保持部１３７５に保持しているカウント値とを比較し、いずれか大きい方のカウント値を最大値保持部１３７５に出力する。
【００６７】
最大値保持部１３７５は、立ち下がり検出回路１３７２がリセット信号を出力したタイミング、すなわち、バッファＡまたはバッファＢの記憶領域に全てのデータが記憶されたタイミングで、最大値比較部１３７４から入力されたカウント値を、カウンタ最大値として保持する。この最大値保持部１３７５が保持したカウンタ最大値が、バス帯域モニタ回路１３７が取得するプライオリティ指針情報に含まれる情報となる。
【００６８】
最小値比較部１３７６は、現在カウンタ１３７３がカウントしているカウント値と、最小値保持部１３７７に保持しているカウント値とを比較し、いずれか小さい方のカウント値を最小値保持部１３７７に出力する。
【００６９】
最小値保持部１３７７は、立ち下がり検出回路１３７２がリセット信号を出力したタイミング、すなわち、バッファＡまたはバッファＢの記憶領域に全てのデータが記憶されたタイミングで、最小値比較部１３７６から入力されたカウント値を、カウンタ最小値として保持する。この最小値保持部１３７７が保持したカウンタ最小値も、バス帯域モニタ回路１３７が取得するプライオリティ指針情報に含まれる情報となる。
【００７０】
上記に述べたように、処理ブロックに備えるバス帯域モニタ回路１３７によって、図５に示した例では、リードプロキシ１３３の処理において、ＤＲＡＭ２０から読み出したデータがリードバッファ１３３２に記憶されるときの最大の時間と最小の時間とを、プライオリティ指針情報として取得することができる。そして、取得したプライオリティ指針情報に基づいて、処理ブロックのプライオリティを設定することができる。
【００７１】
なお、図５においては、バッファＡとバッファＢとを区別せずに、リードバッファ１３３２に記憶されるときの最大の時間と最小の時間とを、プライオリティ指針情報として取得するバス帯域モニタ回路１３７の構成について説明したが、バス帯域モニタ回路１３７の構成は、図５に示した構成のみに限定されるものではない。例えば、リードバッファ１３３２内のバッファＡとバッファＢとを区別し、それぞれのバッファにおける最大の時間と最小の時間とを、プライオリティ指針情報として取得する構成とすることもできる。
【００７２】
また、図５においては、入力ＤＭＡ部１３３であるリードプロキシ１３３に備えたバス帯域モニタ回路１３７の例を説明したが、出力ＤＭＡ部１３５であるライトプロキシ１３５に備えるバス帯域モニタ回路１３７は、図５におけるエンプティ＿Ａ信号およびエンプティ＿Ｂ信号を、フル＿Ａ信号およびフル＿Ｂ信号に置き換えることによって説明することができる。
【００７３】
次に、取得したプライオリティ指針情報に基づいて、システム制御部１０内の各処理ブロックのプライオリティを設定する方法について説明する。画像処理装置１においては、画像処理装置１の各動作モードにおける各処理ブロックの動作の重要度に応じて、各処理ブロックのプライオリティを設定する。以下の説明においては、システム制御部１０内のバスコントローラ１２が、各処理ブロックから出力されるプライオリティ指針情報に基づいて、システム制御部１０内のプライオリティを設定し、各処理ブロックからのＤＭＡアクセス要求の調停を行うものとして説明する。
【００７４】
画像処理装置１の各動作モードにおける各処理ブロックの動作の重要度は、例えば、以下のように分類され、それぞれの動作の重要度に応じて、以下のような考え方に基づいて、プライオリティを設定する。なお、バスコントローラ１２は、各処理ブロックの内部処理回路がバッファＡまたはバッファＢに記憶されたデータに基づいて処理する処理時間を予め分かっているものとする。これにより、バスコントローラ１２は、処理ブロック内の１つのバッファにデータを記憶するための許容記憶時間、または１つのバッファに記憶しているデータを出力するための許容出力時間を、当該処理ブロックにおける許容時間とし、プライオリティ指針情報に基づいて、プライオリティを設定する。
【００７５】
（重要度１）：例えば、撮像インタフェース１３１やビデオインタフェース１３６などは、画像処理装置１において最も重要度の高い処理ブロックであるため、プライオリティを高く設定する必要がある。このとき、バスコントローラ１２は、撮像インタフェース１３１およびビデオインタフェース１３６から出力されるプライオリティ指針情報のカウンタ最大値とカウンタ最小値との差が少なく、さらに、カウンタ最大値およびカウンタ最小値に基づいて算出した処理ブロックの処理時間が、当該処理ブロックの許容時間に予め定めた余裕（マージン）を含んだ時間以下となるように、プライオリティを設定する。なお、カウンタ最大値に基づいた処理ブロックの処理時間の算出は、例えば、カウンタ最大値に処理ブロックの動作クロックを乗算することによって求めることができる。また、同様に、カウンタ最小値に処理ブロックの動作クロックを乗算することによって、カウンタ最小値に基づいた処理ブロックの処理時間を算出することができる。このように、カウンタ最大値とカウンタ最小値との差を少なくすることによって、当該処理ブロックによるＤＭＡアクセス要求が平準化（分散）された上で、許容時間以下で当該処理ブロックの処理が完了することとなる。なお、同様のプライオリティの設定がされる処理ブロックが複数存在する場合には、上記の条件を満足し、かつプライオリティの設定が低くなるようにする。これは、最も重要度が高い処理ブロックであるが、この処理ブロックによるＤＭＡアクセスが、データバス１１を占有してしまうことを回避するためである。
【００７６】
（重要度２）：画像処理装置１において最も高い重要度ではないが、処理ブロックが処理を完了するまでの処理時間（許容処理時間）が予め決まっている処理ブロックは、許容処理時間内に処理を完了する必要がある。このとき、バスコントローラ１２は、プライオリティ指針情報のカウンタ最大値に基づいて、処理ブロックの処理時間を算出し、予め定められた許容処理時間以下の時間で処理ブロックの処理が完了するように、プライオリティを設定する。なお、カウンタ最大値に基づいた処理ブロックの処理時間は、上記に述べた算出方法と同様に算出することができる。そして、バスコントローラ１２は、算出した処理時間が許容処理時間以上である場合には、当該処理ブロックのプライオリティを高く設定する。また、算出した処理時間が許容処理時間以下である場合には、当該処理ブロックのプライオリティを低く設定する。なお、処理ブロックのプライオリティは、当該処理ブロックの処理時間に予め定めた余裕（マージン）を含んだ時間が、許容処理時間と同等になるように設定する。これにより、当該処理ブロックのプライオリティを、必要以上に高く設定しないようにすることができる。
【００７７】
（重要度３）：画像処理装置１において重要度が低く、許容処理時間が決まっていない処理ブロックは、特に最初に設定されているプライオリティを変更しない。ただし、結果的に重要度１または重要度２である処理ブロックよりもプライオリティが高く設定されてしまう場合には、例えば、重要度１または重要度２である処理ブロックよりも、さらにプライオリティを低く設定することもできる。
【００７８】
上記に述べたように、処理ブロックに備えるバス帯域モニタ回路１３７が取得したプライオリティ指針情報に基づいて、システム制御部１０内の各処理ブロックのプライオリティを設定することにより、画像処理装置１の各動作モードにおいて、システムとして破綻が起きないように、各処理ブロックのプライオリティを設定することができる。なお、処理ブロックに備えるバス帯域モニタ回路１３７が取得したバッファＡとバッファＢとを区別したプライオリティ指針情報に基づいて、システム制御部１０内の各処理ブロックのプライオリティを設定することもできる。
【００７９】
なお、各処理ブロックのプライオリティの設定方法の説明においては、システム制御部１０内のバスコントローラ１２が、プライオリティの設定とＤＭＡアクセス要求の調停とを行うものとして説明したが、この形式に限定されるものではない。例えば、図示しないシステム制御部１０内の制御部、または図示しない画像処理装置１全体の制御部が、システム制御部１０内の各処理ブロックのプライオリティを設定し、システム制御部１０内のバスコントローラ１２が、設定されたプライオリティに基づいてＤＭＡアクセス要求の調停を行う構成とすることもできる。
【００８０】
なお、システム制御部１０内の各処理ブロックのプライオリティを、動的に変更する場合は、例えば、プライオリティ指針情報に基づいて、プライオリティを変更する量を変えることができる。図６は、本実施形態のバス帯域モニタ回路が取得した結果（プライオリティ指針情報）に応じて処理ブロックの優先順位を変更する量を変える例を説明する図である。図６は、プライオリティ指針情報の内、カウンタ最大値に基づいてプライオリティを変更する重要度２の処理ブロックの優先順位を動的に変更する場合を示している。
【００８１】
図６に示した例では、プライオリティ指針情報であるカウンタ最大値が、予め定められた許容値以下である場合には、当該処理ブロックのプライオリティを変更せず、カウンタ最大値が予め定められた許容値よりも大きい場合に、プライオリティの変更量を多くしている。このように制御することによって、例えば、特定の処理ブロック内の内部処理回路の待ち時間が許容値よりも長い場合に、プライオリティを高く設定する場合の変更幅を、内部処理回路の待ち時間に応じて変えることができる。これにより、ＤＭＡアクセス要求がバスコントローラ１２に受け付けられる確率が低い処理ブロックにおいても、ＤＭＡアクセス要求が受け付けられる確率を上昇させることができる。
【００８２】
上記に述べたとおり、本発明を実施するための形態によれば、各処理ブロックにバス帯域モニタ回路を備えることによって、データバスからのデータがバッファに記憶される、または、バッファに記憶されたデータがデータバスに出力される時間を、プライオリティ指針情報として取得することができる。そして、各処理ブロックが取得したプライオリティ指針情報に基づいて、例えば、各処理ブロックからのＤＭＡアクセス要求を平準化させるように、各処理ブロックのプライオリティを調整することができる。また、例えば、各処理ブロックの処理性能を落とさない範囲で、データバスのバス帯域を圧迫しないように、プライオリティ指針情報が許容値に近づくように、各処理ブロックのプライオリティを調整することができる。このように、本発明を実施するための形態によれば、各処理ブロックのプライオリティを効率的に設定することができる。これにより、システムとして破綻が起こらないプライオリティの設定を早期に見つけだすことができ、システム開発の効率を向上させることができる。
【００８３】
なお、本実施形態においては、バス帯域モニタ回路１３７が取得するプライオリティ指針情報として、図５に示したように、カウンタ最大値およびカウンタ最小値を取得する構成について説明したが、プライオリティ指針情報としてその他の情報を取得する構成とすることもできる。例えば、図５に示したカウンタ１３７３のカウント値を複数取得することによって、現状のプライオリティの設定におけるバッファへのデータ記憶時間、またはバッファからのデータ出力時間の変動に基づいて、バス帯域の変動を確認することもできる。また、例えば、カウンタ最大値が予め定めた値以上となる回数、およびカウンタ最小値が予め定めた値以下となる回数を取得することによって、プライオリティの設定を変更したことによって、処理ブロックの処理時間が短くなっているのか、長くなっているのかというような、システム開発に有用な情報とすることができる。
【００８４】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【００８５】
１・・・画像処理装置
１０・・・システム制御部
１１・・・データバス（共通バス）
１２・・・バスコントローラ
１３１・・・撮像インタフェース（バスアクセス装置）
１３２・・・画像処理部
１３３・・・入力ＤＭＡ部，リードプロキシ（バスアクセス装置）
１３３１・・・バスリードインタフェース
１３３２・・・リードバッファ（バッファ部）
１３３３・・・内部処理回路
１３３４・・・出力インタフェース
１３４−１，１３４−２，１３４−３・・・画像処理モジュール
１３５・・・出力ＤＭＡ部，ライトプロキシ（バスアクセス装置）
１３５１・・・入力インタフェース
１３５２・・・内部処理回路
１３５３・・・ライトバッファ（バッファ部）
１３５４・・・バスライトインタフェース
１３６・・・ビデオインタフェース（バスアクセス装置）
１３７・・・バス帯域モニタ回路（検出部）
１３７０・・・カウンタ回路（カウンタ部）
１３７１・・・セレクタ
１３７２・・・立ち下がり検出回路
１３７３・・・カウンタ（カウンタ部）
１３７４・・・最大値比較部
１３７５・・・最大値保持部（最大値記憶部）
１３７６・・・最小値比較部
１３７７・・・最小値保持部（最小値記憶部）
２０・・・ＤＲＡＭ
３０・・・イメージャ
４０・・・表示部
３２０，３５０・・・バッファ管理部（バッファ部）
Ａ，Ｂ・・・バッファ（バッファ回路）
【図１】
2012043053.tif 000003
【図２】
2012043053.tif 000004
【図３】
2012043053.tif 000005
【図４】
2012043053.tif 000006
【図５】
2012043053.tif 000007
【図６】
2012043053.tif 000008
【図７】
2012043053.tif 000009
【図８】
2012043053.tif 000010