説明

バス帯域モニタ装置およびバス帯域モニタ方法

【課題】各処理ブロックのプライオリティを設定するために有用な情報を取得することができるバス帯域モニタ装置およびバス帯域モニタ方法を提供する。
【解決手段】共通バスに接続され、共通バスを介して入力されたデータを記憶するバッファ部と、バッファ部に記憶されたデータに基づいて予め定められた処理を行う処理部と、バッファ部に共通バスを介して入力されるデータの記憶の状態に基づいて、共通バス上のデータの帯域を検出する検出部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス帯域モニタ装置およびバス帯域モニタ方法に関する。
【背景技術】
【0002】
静止画用カメラ、動画用カメラ、医療用内視鏡カメラ、または産業用内視鏡カメラなどの画像処理装置に搭載されるシステムLSIなど、多くのシステムLSIでは、接続された1つのDRAM(Dynamic Random Access Memory)を、内蔵する複数の処理ブロックが共有している。このようなシステムLSIにおいては、内蔵している複数の処理ブロックが、システムLSI内部のデータバスに接続され、各処理ブロックは、DMA(Direct Memory Access)によってDRAMへのアクセスを行う。このとき、バスコントローラが、それぞれの処理ブロックから発せられるDRAMへのアクセス要求を適切に調停しながら、DRAMへのアクセスを制御している。このバスコントローラによるアクセス要求の調停においては、システムとしての性能(パフォーマンス)を満足するように、各処理ブロックからのアクセス要求が調停されることが求められる。
【0003】
アクセス要求を調停する方法としては、固定優先方式や、ラウンドロビン方式などがある。固定優先方式は、予めそれぞれの処理ブロック毎に固定した優先順位(プライオリティ)を設定し、設定されたプライオリティの高い処理ブロックからのアクセス要求を優先して受け付ける方式である。また、ラウンドロビン方式は、アクセス要求が受け付けられた処理ブロックはプライオリティの設定を低くし、アクセス要求が受け付けられなかった処理ブロックのプライオリティの設定を高くすることによって、各処理ブロックのアクセス要求が均等に受け付けられるようにする方式である。
【0004】
しかしながら、固定優先方式や、ラウンドロビン方式などのアクセス要求の調停方法では、各処理ブロックのプライオリティを、例えば、画像処理装置の動作モードに応じて細かく設定することができない。このため、例えば、特許文献1に開示された技術のように、各処理ブロックのアクセス要求が受け付けられた回数をカウントしてプライオリティを変更する技術が開示されている。
【0005】
また、固定優先方式とラウンドロビン方式とを組み合わせて、例えば、特許文献2または特許文献3に開示された技術のように、各処理ブロックのプライオリティを動的に変更するアクセス要求の調停方法も提案されている。特許文献2に開示された技術は、アクセス要求が予め定められた時間以上受け付けられていない処理ブロックのプライオリティを高くするなど、各処理ブロックから発せられるアクセス要求の頻度に応じて、各処理ブロックのプライオリティを動的に変更するという技術である。また、特許文献3に開示された技術は、複数の処理ブロックからのアクセス要求が競合したときに、予め定められた量だけプライオリティを高くすることによって、プライオリティを動的に変更するという技術である。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−61818号公報
【特許文献2】特開2007−114918号公報
【特許文献3】特開2004−178056号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示されているようなアクセス要求の調停方法においては、予め定められた計測範囲の時間内における各処理ブロックのアクセス要求の回数を測定することによって、各処理ブロックのDRAMへのアクセスにおけるデータバス上のデータ量を表すバス帯域の平均値(平均帯域)を測定している。そして、測定した平均帯域の情報に基づいて、各処理ブロックのプライオリティを変更している。
【0008】
しかしながら、実際の各処理ブロックの動作においては、データバスの平均帯域が同じ場合であっても、アクセス要求の頻度がばらつくことによって、処理時間が長くなってしまったり、過剰にデータバスを占有してしまったり、という問題がある。
【0009】
以下にアクセス要求の頻度と、処理時間およびデータバスの占有の関係について説明する。図7は、1つの処理ブロックにおけるデータバスのアクセスと処理時間の関係の一例を模式的に示した図である。図7は、2回のバスアクセス毎に内部処理が行われる処理ブロックの場合を示している。そして、図7(a)の例は、バスアクセスが集中することにより、ある程度の時間の間、DRAMへのアクセスを占有する場合、図7(b)の例は、バスアクセスを集中せず、分散してDRAMにアクセスする場合を、それぞれ示している。図7において、データバスの平均帯域の測定結果は、図7(a)に示したバスアクセスと、図7(b)に示したバスアクセスとで同じである。しかし、図7をみてわかるように、図7(a)の場合は、DRAMへのアクセスを占有することはできるが、内部処理が終了した後に、次の処理を行うためのデータの準備がされていないことによって、内部処理が中断されている時間が長く、結果として処理時間も長くなってしまっている。
【0010】
図8は、2つの処理ブロックにおけるデータバスのアクセスの関係の一例を模式的に示した図である。図8は、図7と同様に、2回のバスアクセス毎に内部処理が行われる処理ブロックの場合を示している。そして、図8(a)は、図7(a)と同様に、1つの処理ブロックのバスアクセスを集中して行った場合のバスアクセスと処理時間の関係の例、図8(b)は、図7(b)と同様に、1つの処理ブロックのバスアクセスを分散して行った場合のバスアクセスと処理時間の関係の例を、それぞれ示している。図8(a)と図8(b)とに示した例においては、図7(a)および図7(b)と同様に、データバスの平均帯域の測定結果は同じである。さらに、図8(a)と図8(b)とに示した例においては、図7(a)および図7(b)と異なり、処理ブロックの処理時間も同じである。そして、図8(c)および図8(d)は、2つの処理ブロックが同時に動作している場合を示している。図8(c)に示した例は、図8(a)のようにバスアクセスを集中して行う処理ブロックAと、図8(b)のようにバスアクセスを分散して行う処理ブロックBとが同時に動作している場合を示している。また、図8(d)は、図8(b)のようにバスアクセスを分散して行う処理ブロックAと処理ブロックBとが同時に動作している場合を示している。
【0011】
図8(c)および図8(d)をみてわかるように、1つの処理ブロックAにおける平均帯域および処理時間が同じ場合であっても、同時に2つの処理ブロックが動作している場合には、全体の処理時間に差がでてしまう。すなわち、図8(d)においては、2つの処理ブロックが互いに干渉せずにDRAMにアクセスすることができるが、図8(c)においては、期間Xにおけるデータバスの競合によって処理ブロックBがDRAMにアクセスすることができない時間が発生し、結果として全体の処理時間が長くなってしまっている。この期間Xにおけるデータバスの競合は、処理ブロックBがDRAMにアクセスするときに、処理ブロックAがDRAMへのアクセスを占有していることにより発生したものである。
【0012】
このように、各処理ブロックがデータバスを使用する際の平均帯域のみでは、システムとしての性能(パフォーマンス)を判断することはできず、各処理ブロックからのアクセス要求を適切に調停することは困難である。
【0013】
また、特許文献2や特許文献3に開示されているような、プライオリティを動的に変更する技術においては、多くの場合、各処理ブロックから発せられるアクセス要求におけるデータバスの平均帯域、各処理ブロックに備えているバッファの容量、システムの各動作モードにおける各処理ブロックの重要度などに応じて、システムとして破綻が起きないように、各処理ブロックのプライオリティを設定することが必要となる。
【0014】
しかしながら、各処理ブロックのプライオリティを設定する際に必要な指針となる情報を取得する方法がなく、例えば、システムとして破綻していた場合に、どの処理ブロックがシステム破綻の要因となっているのか、プライオリティの設定をどの程度変更すれば、破綻なくシステムが動作するのかというようなことを確認する方法がなかった。そのため、従来、各処理ブロックのプライオリティを設定する際には、プライオリティの設定を行った上で実際にシステムを動作させ、システムとして破綻が起こらない設定を見つけだす作業が行われており、システム開発の効率が悪いという問題がある。
【0015】
本発明は、上記の課題認識に基づいてなされたものであり、各処理ブロックのプライオリティを設定するために有用な情報を取得することができるバス帯域モニタ装置およびバス帯域モニタ方法を提供することを目的としている。
【課題を解決するための手段】
【0016】
上記の課題を解決するため、本発明のバス帯域モニタ装置は、共通バスに接続され、前記共通バスを介して入力されたデータを記憶するバッファ部と、前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理部と、前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、を備える、ことを特徴とする。
【0017】
また、本発明のバス帯域モニタ装置は、予め定められた処理を行い、該処理した後のデータを出力する処理部と、共通バスに接続され、前記処理部が出力した前記データを記憶し、記憶されている前記データを前記共通バスに出力するバッファ部と、前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、を備える、ことを特徴とする。
【0018】
また、本発明の前記検出部は、前記データが前記共通バスを介して前記バッファ部に入力されてから、前記バッファ部内の全ての記憶領域に前記データが記憶されるまでの期間を計測するカウンタ部、を備え、前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【0019】
また、本発明の前記検出部は、前記共通バスを介して前記バッファ部に記憶されている前記データを出力してから、前記バッファ部内の全ての記憶領域から前記データが読み出されるまでの期間を計測するカウンタ部、を備え、前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【0020】
また、本発明の前記検出部は、前記カウンタ部が計測した前記期間の内、最大の期間の情報を記憶する最大値記憶部と、前記カウンタ部が計測した前記期間の内、最小の期間の情報を記憶する最小値記憶部と、を備え、前記最大値記憶部に記憶した最大の期間の情報と、前記最小値記憶部に記憶した最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【0021】
また、本発明の前記バッファ部は、前記第1のデータを記憶する複数のバッファ回路、を備え、前記検出部は、前記複数のバッファ回路を切り替え、前記カウンタ部によって、前記複数のバッファ回路のそれぞれの前記期間を計測し、前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最大の期間の情報を記憶し、前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最小の期間の情報を記憶し、前記最大値記憶部に記憶した1つの最大の期間の情報と、前記最小値記憶部に記憶した1つの最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【0022】
また、本発明の前記バッファ部は、前記第1のデータを記憶する複数のバッファ回路、を備え、前記検出部は、前記カウンタ部によって、前記複数のバッファ回路の前記期間を、前記バッファ回路毎に計測し、前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最大の期間の情報をそれぞれ記憶し、前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最小の期間の情報をそれぞれ記憶し、前記最大値記憶部に記憶したそれぞれの最大の期間の情報と、前記最小値記憶部に記憶したそれぞれの最小の期間の情報とを、それぞれ前記複数のバッファ回路に対応づけて、前記共通バス上の前記データの帯域の情報として出力する、ことを特徴とする。
【0023】
また、本発明のバス帯域モニタ方法は、共通バスを介して入力されたデータを、前記共通バスに接続されたバッファ部に記憶するステップと、前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理ステップと、前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、を含む、ことを特徴とする。
【0024】
また、本発明のバス帯域モニタ方法は、予め定められた処理を行い、該処理した後のデータを出力する処理ステップと、前記処理ステップによって出力された前記データを、共通バスに接続されたバッファ部に記憶し、前記バッファ部に記憶されている前記データを前記共通バスに出力するステップと、前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、を含む、ことを特徴とする。
【発明の効果】
【0025】
本発明によれば、各処理ブロックのプライオリティを設定するために有用な情報を取得することができるという効果が得られる。
【図面の簡単な説明】
【0026】
【図1】本発明の実施形態における画像処理装置の概略構成を示したブロック図である。
【図2】本実施形態における処理ブロックの概略構成を示したブロック図である。
【図3】本実施形態の処理ブロックにおいて、プライオリティを設定するために必要な指針となる情報を取得するための概略構成と方法とを説明する図である。
【図4】本実施形態の処理ブロックにおいて、プライオリティを設定するために必要な指針となる情報を取得するための概略構成と方法とを説明する図である。
【図5】本実施形態の処理ブロックにおけるバス帯域モニタ回路の構成を示したブロック図である。
【図6】本実施形態のバス帯域モニタ回路が取得した結果に応じて処理ブロックの優先順位を変更する量を変える例を説明する図である。
【図7】1つの処理ブロックにおけるデータバスのアクセスと処理時間の関係の一例を模式的に示した図である。
【図8】2つの処理ブロックにおけるデータバスのアクセスの関係の一例を模式的に示した図である。
【発明を実施するための形態】
【0027】
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態における画像処理装置の概略構成を示したブロック図である。図1に示した画像処理装置1は、システム制御部10と、DRAM20と、イメージャ30と、表示部40と、を備えている。
【0028】
イメージャ30は、図示しないレンズによって結像された被写体の光学像を光電変換する固体撮像素子を備え、被写体光に応じた画像信号(以下、「入力画像データ」という)をシステム制御部10に出力する。
表示部40は、LCD(Liquid Crystal Display)などの表示装置を備え、システム制御部10から出力された表示用の画像信号(以下、「出力画像データ」という)に基づいた画像を表示する。
DRAM20は、システム制御部10によってアクセス制御され、システム制御部10の処理過程における様々なデータを記憶する。
【0029】
システム制御部10は、画像処理装置1における様々な処理を行うシステムLSIである。システム制御部10は、バスコントローラ12と、撮像インタフェース131と、画像処理部132と、ビデオインタフェース136とを備えている。システム制御部10内の各構成要素は、データバス11を介してそれぞれ接続され、DMAアクセスによってDRAM20からのデータの読み出し、およびDRAM20へのデータの書き込みを行う。このとき、バスコントローラ12は、データバス11に接続されている各構成要素から発せられるDRAM20へのDMAアクセス要求を調停し、実際にDRAM20へのアクセスを行う。
【0030】
バスコントローラ12は、システム制御部10内の構成要素からDMAアクセス要求が入力されると、現在データバス11を使用してDRAM20のDMAアクセスを行っている他の構成要素があるか否かを確認する。現在データバス11を使用している他の構成要素がある場合には、DMAアクセス要求を受け付けない。また、現在データバス11を使用している他の構成要素がない場合には、DMAアクセス要求を受け付け、DMAアクセス要求を出力した構成要素によるDMAアクセスに応じた、DRAM20の制御を行う。また、バスコントローラ12は、システム制御部10内の複数の構成要素からDMAアクセス要求が入力されている場合には、各構成要素のプライオリティに基づいて、DMAアクセス要求をしている構成要素の内、最もプライオリティが高い構成要素のDMAアクセス要求を受け付け、他の構成要素のDMAアクセス要求を受け付けない。このように、バスコントローラ12は、システム制御部10内の構成要素のプライオリティに基づいて、DMAアクセス要求を調停する。
【0031】
撮像インタフェース131は、イメージャ30から入力された入力画像データを、DRAM20に書き込む(記憶する)ための処理ブロックである。撮像インタフェース131は、イメージャ30から入力された入力画像データを一時記憶する。そして、入力画像データをDRAM20に書き込む際に、DRAM20へのDMAアクセス要求をバスコントローラ12に出力する。そして、撮像インタフェース131は、DMAアクセス要求がバスコントローラ12に受け付けられた後に、一時記憶した入力画像データを、バスコントローラ12を介してDRAM20に出力する。
【0032】
画像処理部132は、DRAM20に記憶している入力画像データを読み出し、各種の画像処理を行った後、表示用に処理した出力画像データをDRAM20に書き込む(記憶する)ための処理ブロックである。画像処理部132は、入力DMA部133と、画像処理モジュール(画像処理モジュール134−1〜画像処理モジュール134−3)と、出力DMA部135とを備えている。画像処理部132は、各構成要素を直列に接続し、複数の画像処理をパイプライン処理することによって、少ないバス帯域での複数の画像処理を実現している。
【0033】
入力DMA部133は、DRAM20に記憶している入力画像データを読み出し、読み出した入力画像データを画像処理モジュール134−1に出力するための処理ブロックである。入力DMA部133は、入力画像データをDRAM20から読み出す際に、DRAM20へのDMAアクセス要求をバスコントローラ12に出力する。そして、入力DMA部133は、DMAアクセス要求がバスコントローラ12に受け付けられた後に、バスコントローラ12を介してDRAM20から入力画像データを読み出し、読み出した入力画像データを一時記憶する。そして、入力DMA部133は、一時記憶した入力画像データを、画像処理モジュール134−1に出力する。
【0034】
画像処理モジュール134−1〜画像処理モジュール134−3は、それぞれ入力された画像信号に対して種々のデジタル的な画像処理を行って、次段の処理ブロックに出力する。画像処理モジュール134−1〜画像処理モジュール134−3による画像処理には、例えば、画像信号を記録するための記録用の画像処理や、被写体の画像を表示部40に表示させるための表示用の画像処理が含まれる。以下の説明においては、画像処理モジュール134−1〜画像処理モジュール134−3によって、入力DMA部132から入力された入力画像データが、表示用の画像信号に変換(画像処理)され、画像処理モジュール134−3から出力画像データとして、出力DMA部135に出力されるものとして説明する。
【0035】
出力DMA部135は、画像処理モジュール134−3から入力された出力画像データを、DRAM20に書き込む(記憶する)ための処理ブロックである。出力DMA部135は、画像処理モジュール134−3から入力された出力画像データを一時記憶する。そして、出力画像データをDRAM20に書き込む際に、DRAM20へのDMAアクセス要求をバスコントローラ12に出力する。そして、出力DMA部135は、DMAアクセス要求がバスコントローラ12に受け付けられた後に、一時記憶した出力画像データを、バスコントローラ12を介してDRAM20に出力する。
【0036】
ビデオインタフェース136は、DRAM20に記憶している出力画像データを読み出し、読み出した出力画像データを表示部40に出力するための処理ブロックである。ビデオインタフェース136は、出力画像データをDRAM20から読み出す際に、DRAM20へのDMAアクセス要求をバスコントローラ12に出力する。そして、ビデオインタフェース136は、DMAアクセス要求がバスコントローラ12に受け付けられた後に、バスコントローラ12を介してDRAM20から出力画像データを読み出し、読み出した出力画像データを一時記憶する。そして、ビデオインタフェース136は、一時記憶した出力画像データを、表示部40に出力する。
【0037】
このように、システム制御部10内の各処理ブロックは、それぞれの処理ブロック内に備える一時記憶領域(バッファ)にデータを一時記憶し、バスコントローラ12にDMAアクセス要求が受け付けられた後に、一時記憶しているデータを、データバス11およびバスコントローラ12を介して、DRAM20に書き込む、またはDRAM20から読み出す。
【0038】
そして、システム制御部10内の各処理ブロックは、ビデオインタフェース136および入力DMA部133のように、DMAアクセスによってDRAM20からデータを読み出す処理ブロック(以下「リードプロキシ」という)と、撮像インタフェース131および出力DMA部135のように、DMAアクセスによってDRAM20にデータを書き込む処理ブロック(以下「ライトプロキシ」という)と、に分けることができる。
【0039】
次に、システム制御部10内の各処理ブロックについて説明する。図2は、本実施形態における処理ブロックの概略構成を示したブロック図である。図2(a)は、リードプロキシの概略構成を示し、図2(b)は、ライトプロキシの概略構成を示している。以下の説明においては、リードプロキシとして入力DMA部133を説明し、ライトプロキシとして出力DMA部135を説明する。そして、入力DMA部133を、リードプロキシ136ともいう。また、出力DMA部135を、ライトプロキシ135ともいう。
【0040】
図2(a)に示したように、リードプロキシ133は、バスリードインタフェース1331と、リードバッファ1332と、内部処理回路1333と、出力インタフェース1334と、バス帯域モニタ回路137と、を備えている。
【0041】
バスリードインタフェース1331は、DMAアクセスによってDRAM20からデータバス11に読み出されているデータを、リードプロキシ133内に取り込むインタフェース回路である。
リードバッファ1332は、バスリードインタフェース1331が取り込んだデータバス11のデータを一時記憶するバッファ回路である。
内部処理回路1333は、リードバッファ1332に一時記憶されたデータを、リードプロキシ133の機能として処理する処理回路である。
出力インタフェース1334は、内部処理回路1333が処理したデータをリードプロキシ133に接続されている他のブロック(例えば、リードプロキシ133が入力DMA部133である場合は、画像処理モジュール134−1)に出力するインタフェース回路である。
バス帯域モニタ回路137は、リードプロキシ133のプライオリティを設定するために必要な指針となる情報(以下、「プライオリティ指針情報」という)を取得するモニタ回路である。
【0042】
また、図2(b)に示したように、ライトプロキシ135は、入力インタフェース1351と、内部処理回路1352と、ライトバッファ1353と、バスライトインタフェース1354と、バス帯域モニタ回路137と、を備えている。
【0043】
入力インタフェース1351は、ライトプロキシ135に接続されている他のブロック(例えば、ライトプロキシ135が出力DMA部135である場合は、画像処理モジュール134−3)から入力されたデータを、ライトプロキシ135内に入力するインタフェース回路である。
内部処理回路1352は、入力インタフェース1351を介して入力されたデータを、ライトプロキシ135の機能として処理する処理回路である。
ライトバッファ1353は、内部処理回路1352が処理したデータをDMAアクセスによってDRAM20に出力するために一時記憶するバッファ回路である。
バスライトインタフェース1354は、ライトバッファ1353に一時記憶されたデータをデータバス11に出力してDRAM20に書き込むインタフェース回路である。
バス帯域モニタ回路137は、ライトプロキシ135のプライオリティ指針情報を取得するモニタ回路である。
【0044】
次に、システム制御部10内の各処理ブロックのプライオリティ指針情報を取得する構成について説明する。図3および図4は、本実施形態の処理ブロックにおいて、プライオリティ指針情報を取得するための概略構成と方法とを説明する図である。そして、図3は、リードプロキシ133の場合を示し、図4は、ライトプロキシ135の場合を示している。まず、図3に示したリードプロキシ133について説明する。図3(a)は、リードプロキシ133においてプライオリティ指針情報の取得に係わる構成要素のブロック図を示し、図3(b)は、プライオリティ指針情報を取得する方法を説明する図を示している。なお、図3(a)は、処理ブロック内に一時記憶することができるデータ量が多量である、すなわち、リードバッファ1332が大容量バッファであるリードプロキシ133においてプライオリティ指針情報を取得するためのブロック図を示している。
【0045】
システム制御部10では、各処理ブロックがデータバス11に接続され、各処理ブロックがデータバス11を共有している。そして、リードプロキシ133は、内部処理回路1333がデータバス11を介してDRAM20から取得したデータを処理する。
【0046】
ここで、リードプロキシ133に備えるリードバッファ1332について説明する。図3(a)に示すように、リードバッファ1332は、2つのバッファ(バッファAとバッファB)と、バッファを切り替えるバッファ管理部320とを備える。バッファ管理部320は、データバス11を介してDRAM20から取得したデータをバッファに記憶する際、バッファAまたはバッファBのいずれか1つのバッファを選択し、DRAM20から取得したデータを記憶させる。また、バッファ管理部320は、バッファに記憶されているデータを内部処理回路1333に出力する際、データ記憶されているバッファAまたはバッファBのいずれか1つのバッファを選択し、記憶しているデータを内部処理回路1333に出力する。
【0047】
また、バッファ管理部320は、バッファAおよびバッファBにデータが記憶されているか否かを示すエンプティ信号を出力する。なお、図3(a)に示したエンプティ_A信号は、バッファAにデータが記憶されているか否かを表す信号であり、バッファAの全ての記憶領域にデータが記憶されていないときに、“High”レベルとなり、バッファAの全ての記憶領域にデータが記憶されているときに“Low”レベルとなる信号である。なお、エンプティ_A信号は、バッファAの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。また、同様に、エンプティ_B信号は、バッファBにデータが記憶されているか否かを表す信号であり、バッファBの全ての記憶領域にデータが記憶されていないときに、“High”レベルとなり、バッファBの全ての記憶領域にデータが記憶されているときに“Low”レベルとなる信号である。また、同様に、エンプティ_B信号は、バッファBの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。
【0048】
図3(b)を用いてリードバッファ1332のより具体的な動作を説明する。リードプロキシ133のDMA動作が開始されると、バッファ管理部320は、バッファAにデータが記憶されていない状態、すなわち、エンプティ_A信号が“High”レベルであることを確認し、バスリードインタフェース1331を介して入力されたデータバス11からのデータをバッファAに記憶させる。そして、バッファAの全ての記憶領域にデータが記憶されると、エンプティ_A信号を“Low”レベルにする。続いて、バッファ管理部320は、バッファBにデータが記憶されていない状態、すなわち、エンプティ_B信号が“High”レベルであることを確認し、バスリードインタフェース1331を介して入力されたデータバス11からのデータをバッファBに記憶させる。そして、バッファBの全ての記憶領域にデータが記憶されると、エンプティ_B信号を“Low”レベルにする。続いて、バッファAへのデータの記憶を行う。このように、リードバッファ1332がデータを記憶する際には、バッファAとバッファBとが交互に選択されて、入力されたデータが記憶される。
【0049】
また、リードバッファ1332におけるデータの出力では、エンプティ_A信号が“Low”レベルとなった後、内部処理回路1333からのデータ要求に応じて、バッファAに記憶しているデータを、内部処理回路1333に出力する。そして、バッファAに記憶されている全てのデータが内部処理回路1333に出力されると、バッファ管理部320は、エンプティ_A信号を“High”レベルにする。続いて、エンプティ_B信号が“Low”レベルとなった後、内部処理回路1333からのデータ要求に応じて、バッファBに記憶しているデータを、内部処理回路1333に出力する。そして、バッファBに記憶されている全てのデータが内部処理回路1333に出力されると、バッファ管理部320は、エンプティ_B信号を“High”レベルにする。続いて、バッファAに記憶されているデータの出力を行う。このように、リードバッファ1332がデータを出力する際には、バッファAとバッファBとが交互に選択されて、選択されたバッファに記憶されているデータが、内部処理回路1333に出力される。
【0050】
上記に述べたように、システム制御部10では、各処理ブロックが共有のデータバス11に接続され、リードプロキシ133は、データバス11を介してDRAM20から取得したデータをリードバッファ1332に一時記憶した後に、内部処理回路1333がリードバッファ1332に記憶されたデータを処理する。リードプロキシ133は、DMAアクセスによってDRAM20からデータを取得するが、リードプロキシ133に備えたリードバッファ1332は大容量であり、上記に述べたように、2つのバッファを交互に動作させている。このため、例えば、リードプロキシ133から発せられたDMAアクセス要求がバスコントローラ12に受け付けられて、リードプロキシ133によるDMAアクセスが一旦開始されると、2つのバッファにデータが記憶されるまで他の処理ブロックからのDMAアクセス要求を受け付けない、すなわち、リードプロキシ133がデータバス11を占有してしまうこととなる。しかし、リードプロキシ133内の内部処理回路1333の処理によっては、リードプロキシ133がデータバス11を占有する必要がない、すなわち、内部処理回路1333によって処理されるタイミングまでに必要なデータが準備されていればよい場合もある。このため、バス帯域モニタ回路137は、リードプロキシ133のDMA動作が開始された後、それぞれのバッファにデータバス11からのデータが記憶される時間を計測する。
【0051】
図3(a)に示すように、バス帯域モニタ回路137は、バッファ管理部320から出力されるエンプティ_A信号およびエンプティ_B信号に基づいて、バッファAおよびバッファBにデータバス11からのデータが記憶される時間(クロックサイクル数)を計測(カウント)する。
【0052】
バス帯域モニタ回路137は、リードプロキシ133のDMA動作が開始された後、リードバッファ1332内のバッファAまたはバッファBにデータを記憶する時間をカウントする。より具体的には、図3(b)に示したように、エンプティ_A信号またはエンプティ_B信号が“High”レベルである期間Aのクロックサイクル数をカウントする。そして、カウントした期間Aのクロックサイクル数を、プライオリティ指針情報として出力する。
【0053】
続いて、図4に示したライトプロキシ135について説明する。図4(a)は、ライトプロキシ135においてプライオリティ指針情報の取得に係わる構成要素のブロック図を示し、図4(b)は、プライオリティ指針情報を取得する方法を説明する図を示している。なお、図4(a)は、処理ブロック内に一時記憶することができるデータ量が多量である、すなわち、ライトバッファ1353が大容量バッファであるライトプロキシ135においてプライオリティ指針情報を取得するためのブロック図を示している。
【0054】
システム制御部10では、各処理ブロックがデータバス11に接続され、各処理ブロックがデータバス11を共有している。そして、ライトプロキシ135は、内部処理回路1352が処理したデータを、データバス11を介してDRAM20に書き込む。
【0055】
ここで、ライトプロキシ135に備えるライトバッファ1353について説明する。図4(a)に示すように、ライトバッファ1353は、2つのバッファ(バッファAとバッファB)と、バッファを切り替えるバッファ管理部530とを備える。バッファ管理部530は、内部処理回路1352が処理したデータをバッファに記憶する際、バッファAまたはバッファBのいずれか1つのバッファを選択して、内部処理回路1352の処理後のデータを記憶させる。また、バッファ管理部530は、バッファに記憶されているデータをDRAM20に出力する際、データ記憶されているバッファAまたはバッファBのいずれか1つのバッファを選択し、記憶しているデータを、データバス11を介してDRAM20に出力する。
【0056】
また、バッファ管理部530は、バッファAおよびバッファBにデータが記憶されているか否かを示すフル信号を出力する。なお、図4(a)に示したフル_A信号は、バッファAにデータが記憶されているか否かを表す信号であり、バッファAの全ての記憶領域にデータが記憶されているときに、“High”レベルとなり、バッファAの全ての記憶領域にデータが記憶されていないときに“Low”レベルとなる信号である。なお、フル_A信号は、バッファAの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。また、同様に、フル_B信号は、バッファBにデータが記憶されているか否かを表す信号であり、バッファBの全ての記憶領域にデータが記憶されているときに、“High”レベルとなり、バッファBの全ての記憶領域にデータが記憶されていないときに“Low”レベルとなる信号である。また、同様に、フル_B信号は、バッファBの一部の記憶領域にデータが記憶されている場合には、以前の出力レベルを維持する。
【0057】
図4(b)を用いてライトバッファ1353のより具体的な動作を説明する。ライトプロキシ135のDMA動作が開始されると、バッファ管理部530は、バッファAにデータが記憶されていない状態、すなわち、フル_A信号が“Low”レベルであることを確認し、内部処理回路1352が処理したデータをバッファAに記憶させる。そして、バッファAの全ての記憶領域にデータが記憶されると、フル_A信号を“High”レベルにする。続いて、バッファ管理部530は、バッファBにデータが記憶されていない状態、すなわち、フル_B信号が“Low”レベルであることを確認し、内部処理回路1352が処理したデータをバッファBに記憶させる。そして、バッファBの全ての記憶領域にデータが記憶されると、フル_B信号を“High”レベルにする。続いて、バッファAへのデータの記憶を行う。このように、ライトバッファ1353がデータを記憶する際には、バッファAとバッファBとが交互に選択されて、内部処理回路1352が処理したデータが記憶される。
【0058】
また、ライトバッファ1353におけるデータの出力では、フル_A信号が“High”レベルとなった後、バスライトインタフェース1354からのデータ要求に応じて、バッファAに記憶しているデータを、バスライトインタフェース1354を介してデータバス11に出力する。そして、バッファAに記憶されている全てのデータがバスライトインタフェース1354を介してデータバス11に出力されると、バッファ管理部530は、フル_A信号を“Low”レベルにする。続いて、フル_B信号が“High”レベルとなった後、バスライトインタフェース1354からのデータ要求に応じて、バッファBに記憶しているデータを、バスライトインタフェース1354を介してデータバス11に出力する。そして、バッファBに記憶されている全てのデータがバスライトインタフェース1354を介してデータバス11に出力されると、バッファ管理部530は、フル_B信号を“Low”レベルにする。続いて、バッファAに記憶されているデータの出力を行う。このように、ライトバッファ1353がデータを出力する際には、バッファAとバッファBとが交互に選択されて、選択されたバッファに記憶されているデータが、バスライトインタフェース1354を介してデータバス11に出力される。
【0059】
上記に述べたように、システム制御部10では、各処理ブロックが共有のデータバス11に接続され、ライトプロキシ135は、内部処理回路1352が処理したデータをライトバッファ1353一時記憶した後に、ライトバッファ1353に記憶されたデータを、データバス11を介してDRAM20に書き込む。ライトプロキシ135は、DMAアクセスによってDRAM20にデータを書き込むが、ライトプロキシ135に備えたライトバッファ1353は大容量であり、上記に述べたように、2つのバッファを交互に動作させている。このため、例えば、ライトプロキシ135から発せられたDMAアクセス要求がバスコントローラ12に受け付けられて、ライトプロキシ135によるDMAアクセスが一旦開始されると、2つのバッファに記憶されているデータが出力されるまで他の処理ブロックからのDMAアクセス要求を受け付けない、すなわち、ライトプロキシ135がデータバス11を占有してしまうこととなる。しかし、ライトプロキシ135内の内部処理回路1352の処理によっては、ライトプロキシ135がデータバス11を占有する必要がない、すなわち、内部処理回路1352が処理したデータが準備された後に、DRAM20に書き込めばよい場合もある。このため、バス帯域モニタ回路137は、ライトプロキシ135のDMA動作が開始された後、それぞれのバッファからデータバス11にデータが出力される時間を計測する。
【0060】
図4(a)に示すように、バス帯域モニタ回路137は、バッファ管理部530から出力されるフル_A信号およびフル_B信号に基づいて、バッファAおよびバッファBからデータバス11にデータが出力される時間(クロックサイクル数)を計測(カウント)する。
【0061】
バス帯域モニタ回路137は、ライトプロキシ135のDMA動作が開始された後、ライトバッファ1353内のバッファAまたはバッファBにデータが記憶されている、すなわち、記憶されているデータがデータバス11に出力される時間をカウントする。より具体的には、図4(b)に示したように、フル_A信号またはフル_B信号が“High”レベルである期間Bのクロックサイクル数をカウントする。そして、カウントした期間Bのクロックサイクル数を、プライオリティ指針情報として出力する。
【0062】
次に、バス帯域モニタ回路137についてさらに詳細に説明する。図5は、本実施形態の処理ブロックにおけるバス帯域モニタ回路137の構成を示したブロック図である。なお、図5は、図3および図4に示したカウンタ回路1370の構成をより詳細に示したブロック図である。図5に示したカウンタ回路1370は、セレクタ1371と、立ち下がり検出回路1372と、カウンタ1373と、最大値比較部1374と、最大値保持部1375と、最小値比較部1376と、最小値保持部1377と、を備えている。なお、以下の説明においては、入力DMA部133であるリードプロキシ133に備えたバス帯域モニタ回路137の例を説明する。
【0063】
セレクタ1371は、リードバッファ1332内のバッファ管理部320から出力されるエンプティ_A信号またはエンプティ_B信号のいずれか1つの信号を、カウンタ1373がカウントする期間を表すイネーブル信号として選択する。セレクタ1371による、エンプティ_A信号またはエンプティ_B信号の選択は、立ち下がり検出回路1372から出力される選択信号に基づいて行われる。
【0064】
カウンタ1373は、セレクタ1371から出力されたイネーブル信号(エンプティ_A信号またはエンプティ_B信号)が“High”レベルの期間の処理ブロックの動作クロックの数(クロックサイクル数)をカウントする。これにより、カウンタ1373が、バッファAまたはバッファBにデータバス11からのデータが記憶される時間をカウントすることとなる。なお、カウンタ1373は、立ち下がり検出回路1372からリセット信号が入力されると、カウントしている値(カウント値)を初期化(リセット)する。
【0065】
立ち下がり検出回路1372は、セレクタ1371から出力されたイネーブル信号の立ち下がりのタイミング(“High”レベルから“Low”レベルに変化するタイミング)、すなわち、バッファAまたはバッファBの記憶領域に全てのデータが記憶されるタイミングを検出し、このイネーブル信号の立ち下がりのタイミングでカウンタ1373をリセットするためのリセット信号を出力する。また、立ち下がり検出回路1372は、リセット信号の出力と同じタイミングで、セレクタ1371に選択信号を出力する。この選択信号によって、セレクタ1371は、エンプティ_A信号またはエンプティ_B信号のいずれか1つの信号を選択する。例えば、現在エンプティ_A信号がイネーブル信号として選択されていた場合には、イネーブル信号(エンプティ_A信号)の立ち下がりのタイミングで、選択信号を出力する。これにより、セレクタ1371は、イネーブル信号をエンプティ_B信号に切り替える。
【0066】
最大値比較部1374は、現在カウンタ1373がカウントしているカウント値と、最大値保持部1375に保持しているカウント値とを比較し、いずれか大きい方のカウント値を最大値保持部1375に出力する。
【0067】
最大値保持部1375は、立ち下がり検出回路1372がリセット信号を出力したタイミング、すなわち、バッファAまたはバッファBの記憶領域に全てのデータが記憶されたタイミングで、最大値比較部1374から入力されたカウント値を、カウンタ最大値として保持する。この最大値保持部1375が保持したカウンタ最大値が、バス帯域モニタ回路137が取得するプライオリティ指針情報に含まれる情報となる。
【0068】
最小値比較部1376は、現在カウンタ1373がカウントしているカウント値と、最小値保持部1377に保持しているカウント値とを比較し、いずれか小さい方のカウント値を最小値保持部1377に出力する。
【0069】
最小値保持部1377は、立ち下がり検出回路1372がリセット信号を出力したタイミング、すなわち、バッファAまたはバッファBの記憶領域に全てのデータが記憶されたタイミングで、最小値比較部1376から入力されたカウント値を、カウンタ最小値として保持する。この最小値保持部1377が保持したカウンタ最小値も、バス帯域モニタ回路137が取得するプライオリティ指針情報に含まれる情報となる。
【0070】
上記に述べたように、処理ブロックに備えるバス帯域モニタ回路137によって、図5に示した例では、リードプロキシ133の処理において、DRAM20から読み出したデータがリードバッファ1332に記憶されるときの最大の時間と最小の時間とを、プライオリティ指針情報として取得することができる。そして、取得したプライオリティ指針情報に基づいて、処理ブロックのプライオリティを設定することができる。
【0071】
なお、図5においては、バッファAとバッファBとを区別せずに、リードバッファ1332に記憶されるときの最大の時間と最小の時間とを、プライオリティ指針情報として取得するバス帯域モニタ回路137の構成について説明したが、バス帯域モニタ回路137の構成は、図5に示した構成のみに限定されるものではない。例えば、リードバッファ1332内のバッファAとバッファBとを区別し、それぞれのバッファにおける最大の時間と最小の時間とを、プライオリティ指針情報として取得する構成とすることもできる。
【0072】
また、図5においては、入力DMA部133であるリードプロキシ133に備えたバス帯域モニタ回路137の例を説明したが、出力DMA部135であるライトプロキシ135に備えるバス帯域モニタ回路137は、図5におけるエンプティ_A信号およびエンプティ_B信号を、フル_A信号およびフル_B信号に置き換えることによって説明することができる。
【0073】
次に、取得したプライオリティ指針情報に基づいて、システム制御部10内の各処理ブロックのプライオリティを設定する方法について説明する。画像処理装置1においては、画像処理装置1の各動作モードにおける各処理ブロックの動作の重要度に応じて、各処理ブロックのプライオリティを設定する。以下の説明においては、システム制御部10内のバスコントローラ12が、各処理ブロックから出力されるプライオリティ指針情報に基づいて、システム制御部10内のプライオリティを設定し、各処理ブロックからのDMAアクセス要求の調停を行うものとして説明する。
【0074】
画像処理装置1の各動作モードにおける各処理ブロックの動作の重要度は、例えば、以下のように分類され、それぞれの動作の重要度に応じて、以下のような考え方に基づいて、プライオリティを設定する。なお、バスコントローラ12は、各処理ブロックの内部処理回路がバッファAまたはバッファBに記憶されたデータに基づいて処理する処理時間を予め分かっているものとする。これにより、バスコントローラ12は、処理ブロック内の1つのバッファにデータを記憶するための許容記憶時間、または1つのバッファに記憶しているデータを出力するための許容出力時間を、当該処理ブロックにおける許容時間とし、プライオリティ指針情報に基づいて、プライオリティを設定する。
【0075】
(重要度1):例えば、撮像インタフェース131やビデオインタフェース136などは、画像処理装置1において最も重要度の高い処理ブロックであるため、プライオリティを高く設定する必要がある。このとき、バスコントローラ12は、撮像インタフェース131およびビデオインタフェース136から出力されるプライオリティ指針情報のカウンタ最大値とカウンタ最小値との差が少なく、さらに、カウンタ最大値およびカウンタ最小値に基づいて算出した処理ブロックの処理時間が、当該処理ブロックの許容時間に予め定めた余裕(マージン)を含んだ時間以下となるように、プライオリティを設定する。なお、カウンタ最大値に基づいた処理ブロックの処理時間の算出は、例えば、カウンタ最大値に処理ブロックの動作クロックを乗算することによって求めることができる。また、同様に、カウンタ最小値に処理ブロックの動作クロックを乗算することによって、カウンタ最小値に基づいた処理ブロックの処理時間を算出することができる。このように、カウンタ最大値とカウンタ最小値との差を少なくすることによって、当該処理ブロックによるDMAアクセス要求が平準化(分散)された上で、許容時間以下で当該処理ブロックの処理が完了することとなる。なお、同様のプライオリティの設定がされる処理ブロックが複数存在する場合には、上記の条件を満足し、かつプライオリティの設定が低くなるようにする。これは、最も重要度が高い処理ブロックであるが、この処理ブロックによるDMAアクセスが、データバス11を占有してしまうことを回避するためである。
【0076】
(重要度2):画像処理装置1において最も高い重要度ではないが、処理ブロックが処理を完了するまでの処理時間(許容処理時間)が予め決まっている処理ブロックは、許容処理時間内に処理を完了する必要がある。このとき、バスコントローラ12は、プライオリティ指針情報のカウンタ最大値に基づいて、処理ブロックの処理時間を算出し、予め定められた許容処理時間以下の時間で処理ブロックの処理が完了するように、プライオリティを設定する。なお、カウンタ最大値に基づいた処理ブロックの処理時間は、上記に述べた算出方法と同様に算出することができる。そして、バスコントローラ12は、算出した処理時間が許容処理時間以上である場合には、当該処理ブロックのプライオリティを高く設定する。また、算出した処理時間が許容処理時間以下である場合には、当該処理ブロックのプライオリティを低く設定する。なお、処理ブロックのプライオリティは、当該処理ブロックの処理時間に予め定めた余裕(マージン)を含んだ時間が、許容処理時間と同等になるように設定する。これにより、当該処理ブロックのプライオリティを、必要以上に高く設定しないようにすることができる。
【0077】
(重要度3):画像処理装置1において重要度が低く、許容処理時間が決まっていない処理ブロックは、特に最初に設定されているプライオリティを変更しない。ただし、結果的に重要度1または重要度2である処理ブロックよりもプライオリティが高く設定されてしまう場合には、例えば、重要度1または重要度2である処理ブロックよりも、さらにプライオリティを低く設定することもできる。
【0078】
上記に述べたように、処理ブロックに備えるバス帯域モニタ回路137が取得したプライオリティ指針情報に基づいて、システム制御部10内の各処理ブロックのプライオリティを設定することにより、画像処理装置1の各動作モードにおいて、システムとして破綻が起きないように、各処理ブロックのプライオリティを設定することができる。なお、処理ブロックに備えるバス帯域モニタ回路137が取得したバッファAとバッファBとを区別したプライオリティ指針情報に基づいて、システム制御部10内の各処理ブロックのプライオリティを設定することもできる。
【0079】
なお、各処理ブロックのプライオリティの設定方法の説明においては、システム制御部10内のバスコントローラ12が、プライオリティの設定とDMAアクセス要求の調停とを行うものとして説明したが、この形式に限定されるものではない。例えば、図示しないシステム制御部10内の制御部、または図示しない画像処理装置1全体の制御部が、システム制御部10内の各処理ブロックのプライオリティを設定し、システム制御部10内のバスコントローラ12が、設定されたプライオリティに基づいてDMAアクセス要求の調停を行う構成とすることもできる。
【0080】
なお、システム制御部10内の各処理ブロックのプライオリティを、動的に変更する場合は、例えば、プライオリティ指針情報に基づいて、プライオリティを変更する量を変えることができる。図6は、本実施形態のバス帯域モニタ回路が取得した結果(プライオリティ指針情報)に応じて処理ブロックの優先順位を変更する量を変える例を説明する図である。図6は、プライオリティ指針情報の内、カウンタ最大値に基づいてプライオリティを変更する重要度2の処理ブロックの優先順位を動的に変更する場合を示している。
【0081】
図6に示した例では、プライオリティ指針情報であるカウンタ最大値が、予め定められた許容値以下である場合には、当該処理ブロックのプライオリティを変更せず、カウンタ最大値が予め定められた許容値よりも大きい場合に、プライオリティの変更量を多くしている。このように制御することによって、例えば、特定の処理ブロック内の内部処理回路の待ち時間が許容値よりも長い場合に、プライオリティを高く設定する場合の変更幅を、内部処理回路の待ち時間に応じて変えることができる。これにより、DMAアクセス要求がバスコントローラ12に受け付けられる確率が低い処理ブロックにおいても、DMAアクセス要求が受け付けられる確率を上昇させることができる。
【0082】
上記に述べたとおり、本発明を実施するための形態によれば、各処理ブロックにバス帯域モニタ回路を備えることによって、データバスからのデータがバッファに記憶される、または、バッファに記憶されたデータがデータバスに出力される時間を、プライオリティ指針情報として取得することができる。そして、各処理ブロックが取得したプライオリティ指針情報に基づいて、例えば、各処理ブロックからのDMAアクセス要求を平準化させるように、各処理ブロックのプライオリティを調整することができる。また、例えば、各処理ブロックの処理性能を落とさない範囲で、データバスのバス帯域を圧迫しないように、プライオリティ指針情報が許容値に近づくように、各処理ブロックのプライオリティを調整することができる。このように、本発明を実施するための形態によれば、各処理ブロックのプライオリティを効率的に設定することができる。これにより、システムとして破綻が起こらないプライオリティの設定を早期に見つけだすことができ、システム開発の効率を向上させることができる。
【0083】
なお、本実施形態においては、バス帯域モニタ回路137が取得するプライオリティ指針情報として、図5に示したように、カウンタ最大値およびカウンタ最小値を取得する構成について説明したが、プライオリティ指針情報としてその他の情報を取得する構成とすることもできる。例えば、図5に示したカウンタ1373のカウント値を複数取得することによって、現状のプライオリティの設定におけるバッファへのデータ記憶時間、またはバッファからのデータ出力時間の変動に基づいて、バス帯域の変動を確認することもできる。また、例えば、カウンタ最大値が予め定めた値以上となる回数、およびカウンタ最小値が予め定めた値以下となる回数を取得することによって、プライオリティの設定を変更したことによって、処理ブロックの処理時間が短くなっているのか、長くなっているのかというような、システム開発に有用な情報とすることができる。
【0084】
以上、本発明の実施形態について、図面を参照して説明してきたが、具体的な構成はこの実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲においての種々の変更も含まれる。
【符号の説明】
【0085】
1・・・画像処理装置
10・・・システム制御部
11・・・データバス(共通バス)
12・・・バスコントローラ
131・・・撮像インタフェース(バスアクセス装置)
132・・・画像処理部
133・・・入力DMA部,リードプロキシ(バスアクセス装置)
1331・・・バスリードインタフェース
1332・・・リードバッファ(バッファ部)
1333・・・内部処理回路
1334・・・出力インタフェース
134−1,134−2,134−3・・・画像処理モジュール
135・・・出力DMA部,ライトプロキシ(バスアクセス装置)
1351・・・入力インタフェース
1352・・・内部処理回路
1353・・・ライトバッファ(バッファ部)
1354・・・バスライトインタフェース
136・・・ビデオインタフェース(バスアクセス装置)
137・・・バス帯域モニタ回路(検出部)
1370・・・カウンタ回路(カウンタ部)
1371・・・セレクタ
1372・・・立ち下がり検出回路
1373・・・カウンタ(カウンタ部)
1374・・・最大値比較部
1375・・・最大値保持部(最大値記憶部)
1376・・・最小値比較部
1377・・・最小値保持部(最小値記憶部)
20・・・DRAM
30・・・イメージャ
40・・・表示部
320,350・・・バッファ管理部(バッファ部)
A,B・・・バッファ(バッファ回路)

【特許請求の範囲】
【請求項1】
共通バスに接続され、前記共通バスを介して入力されたデータを記憶するバッファ部と、
前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理部と、
前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、
を備える、
ことを特徴とするバス帯域モニタ装置。
【請求項2】
予め定められた処理を行い、該処理した後のデータを出力する処理部と、
共通バスに接続され、前記処理部が出力した前記データを記憶し、記憶されている前記データを前記共通バスに出力するバッファ部と、
前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出部と、
を備える、
ことを特徴とするバス帯域モニタ装置。
【請求項3】
前記検出部は、
前記データが前記共通バスを介して前記バッファ部に入力されてから、前記バッファ部内の全ての記憶領域に前記データが記憶されるまでの期間を計測するカウンタ部、
を備え、
前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項1に記載のバス帯域モニタ装置。
【請求項4】
前記検出部は、
前記共通バスを介して前記バッファ部に記憶されている前記データを出力してから、前記バッファ部内の全ての記憶領域から前記データが読み出されるまでの期間を計測するカウンタ部、
を備え、
前記カウンタ部が計測した前記期間の情報を前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項2に記載のバス帯域モニタ装置。
【請求項5】
前記検出部は、
前記カウンタ部が計測した前記期間の内、最大の期間の情報を記憶する最大値記憶部と、
前記カウンタ部が計測した前記期間の内、最小の期間の情報を記憶する最小値記憶部と、
を備え、
前記最大値記憶部に記憶した最大の期間の情報と、前記最小値記憶部に記憶した最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項3または請求項4に記載のバス帯域モニタ装置。
【請求項6】
前記バッファ部は、
前記第1のデータを記憶する複数のバッファ回路、
を備え、
前記検出部は、
前記複数のバッファ回路を切り替え、
前記カウンタ部によって、前記複数のバッファ回路のそれぞれの前記期間を計測し、
前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最大の期間の情報を記憶し、
前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記期間の内、最小の期間の情報を記憶し、
前記最大値記憶部に記憶した1つの最大の期間の情報と、前記最小値記憶部に記憶した1つの最小の期間の情報とを、それぞれ前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項5に記載のバス帯域モニタ装置。
【請求項7】
前記バッファ部は、
前記第1のデータを記憶する複数のバッファ回路、
を備え、
前記検出部は、
前記カウンタ部によって、前記複数のバッファ回路の前記期間を、前記バッファ回路毎に計測し、
前記最大値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最大の期間の情報をそれぞれ記憶し、
前記最小値記憶部に、前記カウンタ部が計測したそれぞれの前記バッファ回路における最小の期間の情報をそれぞれ記憶し、
前記最大値記憶部に記憶したそれぞれの最大の期間の情報と、前記最小値記憶部に記憶したそれぞれの最小の期間の情報とを、それぞれ前記複数のバッファ回路に対応づけて、前記共通バス上の前記データの帯域の情報として出力する、
ことを特徴とする請求項5に記載のバス帯域モニタ装置。
【請求項8】
共通バスを介して入力されたデータを、前記共通バスに接続されたバッファ部に記憶するステップと、
前記バッファ部に記憶された前記データに基づいて予め定められた処理を行う処理ステップと、
前記バッファ部に前記共通バスを介して入力される前記データの記憶の状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、
を含む、
ことを特徴とするバス帯域モニタ方法。
【請求項9】
予め定められた処理を行い、該処理した後のデータを出力する処理ステップと、
前記処理ステップによって出力された前記データを、共通バスに接続されたバッファ部に記憶し、前記バッファ部に記憶されている前記データを前記共通バスに出力するステップと、
前記バッファ部から前記共通バスに出力する前記データの読み出しの状態に基づいて、前記共通バス上のデータの帯域を検出する検出ステップと、
を含む、
ことを特徴とするバス帯域モニタ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−43053(P2012−43053A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2010−181611(P2010−181611)
【出願日】平成22年8月16日(2010.8.16)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】