(57)【特許請求の範囲】
【請求項１】
バスに接続され、画像データに係る処理を行う第１のイニシエータと、
該第１のイニシエータよりも前記バスに対する優先順位の低い第２のイニシエータと、
前記第１のイニシエータ及び第２のイニシエータによるデータアクセスが可能になされた共有メモリと、
前記第２のイニシエータから前記共有メモリへアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、前記第２のイニシエータによる前記共有メモリへの次のアクセスが優先的に行われるように調停される調停手段と
を有することを特徴とするデータ処理装置。
【請求項２】
前記調停手段が、前記所定時間が経過した後に、前記第２のイニシエータに設定される優先度は、第１の優先順位に設定される
ことを特徴とする請求項１に係るデータ処理装置。
【請求項３】
撮像により画像データを得る撮像手段を更に有し、前記第１のイニシエータは、前記撮像手段により得られた画像データに対してデータ処理を行い、前記第２のイニシエータは、システムコントローラを含んでなることを特徴とする請求項１に係るデータ処理装置。
【請求項４】
バスに接続された第１のイニシエータ及び該第１のイニシエータよりも前記バスに対するアクセス優先順位の低い第２のイニシエータと、前記第１及び第２のイニシエータによるデータアクセスが可能にされた共有メモリと、前記第１及び第２のイニシエータの前記共有メモリへのアクセスを調停する手段とを有するデータ処理装置におけるアクセス調停方法において、
前記第２のイニシエータから前記共有メモリへアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、該第２のイニシエータによる前記共有メモリへの次のアクセスを優先的に行われるように調停する
ことを特徴とするアクセス調停方法。
【請求項５】
前記所定時間が経過した後に、前記第２のイニシエータに設定される優先度は、第１の優先順位に設定される
ことを特徴とする請求項４に係るアクセス調停方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バスに対する優先順位の高いイニシエータのバンド幅を確保しながら優先順位の低いイニシエータの共用メモリへのアクセスタイムを短縮できるようにしたデータ処理装置及びその装置におけるアクセス調停方法に関する。
【０００２】
【従来の技術】
最近のバスアーキテクチャ構造においては、バスにＣＰＵの他に多数の回路ブロック（ＣＰＵを含め、これらはイニシエータと呼ばれている）、並びにメモリが接続されていて、それらでバスを共有していて、それぞれバスに接続されている回路ブロックが、独立して個別にデータの入出力等の要求を出せるようになっている。これにより、それぞれの回路ブロックを同様に構成してバスに接続することにより、容易にシステムを作成できるという利点が得られている。
【０００３】
このような構成のバスアーキテクチャ構造において問題になるのは、各回路ブロックが独立して個別にアクセス要求を出せるようになっているので、そのままでは混乱が生じることである。そのため、アービタ（調停回路）を設けて、いずれの回路ブロックに対して優先してデータの入出力のアクセスを許可するかを調停しなければならない。
【０００４】
その場合の調停方式としては、ＣＰＵ並びに回路ブロックに対してアクセスの優先度の順位をつけ、アービタがその優先順位にしたがって調停を行う方式と、ＣＰＵ並びに回路ブロックには何も優先度の順位をつけずに、要求の順番にアクセスを許可するというラウンドロビン方式がある。また、上記優先度の順位を付して調停を行わせる方式では、優先度の低い回路ブロックは長時間に亘ってバスへのアクセスが与えられないという事態が発生するため、これを防止する手法として、優先度の順位と共に最大待ち時間を設定してやる手法が知られている。この調停方式によれば、優先度の低いイニシエータであっても、最大待ち時間を経過すると優先度の最高のものに変換されるので、それにより優先度の低いものに対して長時間に亘ってアクセス権が付与されないという事態の発生は回避される。
【０００５】
また、このような調停方法に関連する先行技術として、特開平１１−１９１０７５号公報には、複数の装置によりメモリのような共有資源へのアクセスを制御する共有資源アクセス・システムであって、記憶した基準優先順位の数値、待ち時間の数値、帯域幅の数値及び処理能力の数値の中の一つを含む変数に基づいて、資源アクセス要求への優先順位の数値をコード化する優先順位エンコーダと、待ち状態の資源アクセス要求の優先順位の数値を解読して比較し選出要求を決定する優先順位デコーダと、待機中の資源アクセス要求に対する共有資源の少なくとも一つのアドレスを解読するアドレス・デコーダと、現在アクティブな資源アクセス要求と優先順位デコーダからの選出要求との間で調停し出力を供給する調停装置と、該調停装置からの出力に基づいて共有資源へのアクセスを制御する資源コントローラとを備えたものについて開示がなされている。
【０００６】
【発明が解決しようとする課題】
ところで、上記のように共有メモリへのアクセスの優先度と共に最大待ち時間を設定した場合には、主にＣＰＵの共有メモリへのデータアクセスに問題が生じる。この点について詳述すると、まずＣＰＵは一つの処理を終了しなければ、基本的に次の処理へ進めない構造となっている。これに対し、その他の回路ブロック（イニシエータ）はバッファを設けることにより、バスへのアクセスの“待ち”を吸収することができる。
【０００７】
すなわち、カメラシステム等においては、ＣＰＵに最高の優先度をもたせると、常にＣＰＵばかりバスにアクセスするという事態が生じるので、他のＣＣＤＩ／Ｆなどの一定のレートで出力するイニシエータが、その出力を止められてしまい問題となる。そこで、ＣＰＵ以外のＣＣＤＩ／Ｆなどのイニシエータのそれぞれに対し、最大待ち時間を設定してやらなければならなくなる。しかしながら、これらのイニシエータに対する最大待ち時間の設定は非常に複雑になり、その設定は困難である。この問題を回避するため、非常にデータが混み一定のデータレートを確保しなければならないＣＣＤＩ／Ｆなどのイニシエータに対して優先度を高く設定し、そうではないＣＰＵに対して優先度をそれより下位に設定している。
【０００８】
したがって、このように優先順位を割り当てた態様のバスアーキテクチャ構造において、優先順位の低いＣＰＵに最大待ち時間を設定してやると、ＣＰＵがバス要求をした時点で直ちにバスにアクセスすることができ、バス権が渡されることができる状態になっているにも拘わらず、バス要求アクセスをした時点から設定された最大待ち時間を経過しないとアクセス許可が得られないという事態が発生し、ＣＰＵの処理性能を上げられないという問題が生じる。
【０００９】
本発明は、バスアーキテクチャ構造に対して従来の優先順位と共に最大待ち時間を設定するという方式を適用した場合における上記問題点を解消するためになされたもので、優先順位の高いイニシエータには一定のバンド幅を確保させながら、優先順位の低いイニシエータにはアクセスタイムを短縮して高速に処理させることができるようにしたデータ処理装置及びその装置におけるアクセス調停方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上記問題点を解決するため、請求項１に係る発明は、バスに接続され、画像データに係る処理を行う第１のイニシエータと、該第１のイニシエータよりも前記バスに対する優先順位の低い第２のイニシエータと、前記第１のイニシエータ及び第２のイニシエータによるデータアクセスが可能になされた共有メモリと、前記第２のイニシエータから前記共有メモリへアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、前記第２のイニシエータによる前記共有メモリへの次のアクセスが優先的に行われるように調停される調停手段とでデータ処理装置を構成するものであり、更に、請求項４に係る発明は、バスに接続された第１のイニシエータ及び該第１のイニシエータよりも前記バスに対するアクセス優先順位の低い第２のイニシエータと、前記第１及び第２のイニシエータによるデータアクセスが可能にされた共有メモリと、前記第１及び第２のイニシエータの前記共有メモリへのアクセスを調停する手段とを有するデータ処理装置におけるアクセス調停方法において、前記第２のイニシエータから前記共有メモリへアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、該第２のイニシエータによる前記共有メモリへの次のアクセスを優先的に行われるように調停することを特徴とするものである。
【００１１】
このように構成されたデータ処理装置及びそれにおけるアクセス調停方法においては、優先順位の低い第２のイニシエータから共有メモリへのアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、該第２のイニシエータによる共有メモリへの次のアクセスが優先的に行われるように調停される、つまり優先順位の低い第２のイニシエータに対しては、前回のアクセスからの所定の待ち時間を経過した後に次のアクセスが行われるように調停がなされるので、第２のイニシエータがバス要求した瞬間にバス権が渡される確率が高くなり、これにより優先順位の高い第１のイニシエータのバンド幅を確保しながら、且つＣＰＵなどの優先順位の低い第２のイニシエータが不要な待ち時間を要することのない高速アクセスの可能な、データ処理装置及びその装置におけるアクセス調停方法を実現することができる。
【００１２】
また、このように調停手段を構成することにより、ＣＣＤＩ／Ｆなどの第２のイニシエータの出力に余計なバッファを要することなく効率的に、第１及び第２のイニシエータのメモリアクセスが可能となる。
【００１３】
請求項３に係る発明は、請求項１に係るデータ処理装置において、撮像により画像データを得る撮像手段を更に有し、前記第１のイニシエータは、前記撮像手段により得られた画像データに対してデータ処理を行い、前記第２のイニシエータは、システムコントローラを含んでなることを特徴とするものである。このように構成することにより、ＣＣＤなどの撮像手段で得られた画像データを処理する第１のイニシエータが共有メモリへアクセスする場合でも、ＣＰＵなどの優先順位の低い第２のイニシエータが無駄な待ち時間を要することなくアクセス可能となる。
【００１４】
【発明の実施の形態】
次に、実施の形態について説明する。図１は、本発明に係るデータ処理装置及びその装置におけるアクセス調停方法の実施の形態を、デジタルカメラシステムに適用した場合の構成例を示すブロック構成図である。図１において、１は共有バス、２はＣＰＵ、３は図示しないＣＣＤ撮像素子からの画像データを出力するためのＦＩＦＯなどのバッファ等からなるＣＣＤＩ／Ｆ、４はＣＣＤ画像データを記憶するＳＤＲＡＭなどからなる共有メモリ、５，６は共有メモリに記憶された画像データを読み出して画像処理する第１及び第２の画像処理部、７は画像処理され再度共有メモリ４に記憶されている画像データを読み出して、ビデオ信号として出力するためのＦＩＦＯなどのバッファ等からなるビデオＩ／Ｆ、８は共有バス１にそれぞれ接続されているＣＰＵ２，ＣＣＤＩ／Ｆ３，第１及び第２の画像処理部５，６，ビデオＩ／Ｆ７からなる各イニシエータからの個別のメモリアクセス要求への優先順位、並びに前回のアクセスからの待ち時間を設定して、各イニシエータからのアクセスを調停し出力するアービタ（調停回路）、９はアービタ８の出力に基づいて共有メモリ４へのアクセスを制御するメモリコントローラである。
【００１５】
ここで、ＣＰＵ２のバス要求に対する優先順位は、ＣＰＵ２以外のＣＣＤＩ／Ｆ３やビデオＩ／Ｆ７などの他のイニシエータの優先順位より低く設定されており、このＣＰＵ２は請求項１に係る発明における第２のイニシエータに対応するものであり、ＣＰＵ以外の他のイニシエータは優先順位がＣＰＵ２より高い第１のイニシエータに対応するものである。
【００１６】
次に、上記のように構成されている実施の形態の動作について説明する。まず説明の都合上、本発明に係る実施の形態の説明に先立ち、従来の優先度と最大待ち時間を設定する方式を適用した場合における動作を、図２の（Ａ）に基づいて説明する。優先順位がＣＣＤＩ／Ｆ３やビデオＩ／Ｆ７より低く設定されているＣＰＵ２が、該ＣＰＵ２のプログラムに従ってデータリードのために時点ｔ11においてバス要求を行った場合、バス要求時点ｔ11から最大待ち時間ＴM 経過した時点ｔ12において、アービタ８からＣＰＵ２に対して第１の優先順位が与えられバス１にアクセス可能となり、データリード動作を開始する。ＣＰＵ２によるデータリード動作が終了後、再びＣＰＵ２以外の本来優先順位の高いＣＣＤＩ／Ｆ３やビデオＩ／Ｆ７などの第１のイニシエータがバス権を取得する。同様にして、時点ｔ13において再びＣＰＵ２がバス要求を行うと、バス要求時点の時点ｔ13から最大待ち時間ＴM 経過する時点ｔ14で、ＣＰＵ２が第１の優先順位に切り替わり、バス権が与えられてデータライト動作を実行する。
【００１７】
この場合、ＣＰＵ２に対して設定される最大待ち時間ＴM は、他の優先順位の高いイニシエータの処理との関係上、かなり余裕をもって設定されている。したがって、例えば、ＣＰＵ２からバス要求が行われた時点ｔ11において、優先順位の高いＣＣＤＩ／Ｆ３やビデオＩ／Ｆ７におけるバッファに空きがあって処理に余裕がある場合には、直ちにＣＰＵ２にバス権を渡すことが可能である。しかしながら、この方式では、ＣＰＵ２に対しては最大待ち時間ＴM が設定されているため、その時間ＴM の間ＣＰＵ２は待たされることになり、ＣＰＵ２の処理が遅れてしまうという問題点があった。
【００１８】
これに対して、本発明においては、“最大待ち時間”ではなく、“前回アクセスからの待ち時間”を設定するものである。そして、ＣＰＵ２の前回アクセスした時点からその設定時間が経過すれば、ＣＰＵ２を第１の優先順位とするものであり、次にその動作を図２の（Ｂ）に基づいて説明する。時点ｔ0 において、前回のＣＰＵ２のバスへのアクセスが開始されたものとし、それ以降時点ｔ1 において、予め設定されている“前回アクセスからの待ち時間”ＴO が経過し、アービタ８からＣＰＵ２に対して第１の優先順位が与えられる。しかし、この動作例においては、この時点ｔ1 では未だＣＰＵ２からバス要求が出されておらず、引き続き本来優先順位の高いＣＣＤＩ／Ｆ３又はビデオＩ／Ｆ７がバス権を保持している。
【００１９】
次いで、時点ｔ2 （従来方式の時点ｔ11に対応する）において、ＣＰＵ２からバス要求がなされた場合は、ＣＰＵ２は既に第１の優先順位に切り替えられているため、瞬時にバス権が与えられデータ転送が実行される。ＣＰＵ２によるデータ転送動作の終了後、再びＣＰＵ２以外の本来優先順位の高いＣＣＤＩ／Ｆ３やビデオＩ／Ｆ７などのイニシエータがバス権を取得し、処理を実行する。
【００２０】
続いて、時点ｔ3 において、ＣＰＵ２の前回アクセス開始から所定の待ち時間ＴO が経過し、同様にＣＰＵ２に対して第１の優先順位が与えられる。この時点ｔ3 においては、この動作例では未だＣＰＵ２からバス要求が出されておらず、引き続きＣＣＤＩ／Ｆ３又はビデオＩ／Ｆ７がバス権を保持している。次いで、時点ｔ4 （従来方式の時点ｔ13に対応する）において、ＣＰＵ２からバス要求がなされた場合は、ＣＰＵ２は既に第１の優先順位に切り替えられているため、瞬時にバス権が与えられデータ転送が実行される。
【００２１】
このように、前回のバスアクセス開始から所定の待ち時間ＴO が経過している場合は、バス要求と同時にＣＰＵ２には第１の優先順位が与えられ、バス権を取得することになり、ＣＰＵ２は待たされることなく、バスにアクセスすることが可能となる。なお、当然のことながら、前回アクセス開始から所定の待ち時間ＴO 経過前、図示例では時点ｔ1 又はｔ3 以前にＣＰＵ２からバス要求がなされた場合は、待ち時間ＴO が経過するまで、すなわち図示例では時点ｔ1 又はｔ3 まで、ＣＰＵのバスアクセスは待たされる。
【００２２】
次に、アービタ８において予め設定される“前回アクセスからの待ち時間”ＴO の設定について説明する。この待ち時間ＴO の期間内に、ＣＰＵ２のアクセス処理の他に、ＣＰＵ２より優先順位の高いＣＣＤＩ／ＦやビデオＩ／Ｆなどのイニシエータにおけるオーバーフローの発生しないデータのバス転送処理を完了させることが必要である。したがって、この待ち時間ＴO は少なくとも、ＣＰＵ２の処理の他に、上記ＣＣＤＩ／ＦやビデオＩ／Ｆなどの他のイニシエータの処理をオーバーフローさせずに完了させる時間に設定しなければならない。そして、このような待ち時間ＴO を設定することにより、ＣＰＵ２以外の他のイニシエータに対してオーバーフローさせずにデータのバス転送処理の可能な一定のバンド幅を確保させることができ、余分のバッファを設けることなく効果的にメモリアクセスが可能となる。
【００２３】
なお、上記実施の形態では、前回アクセスからの待ち時間の設定においては、前回アクセスの開始時点からの待ち時間を設定したものを示したが、この前回アクセスからの待ち時間は、前回アクセスの終了時点からの時間として設定してもよい。このように待ち時間を設定した場合は、この待ち時間内にＣＣＤＩ／ＦやビデオＩ／Ｆなどの他のイニシエータの処理をオーバーフローさせずに完了させる時間に設定すればよい。
【００２４】
また、上記実施の形態では、ＣＰＵ２からアクセスする場合について説明をしたが、これに限らず、データキャッシュを介してアクセスする場合にも同様な効果が得られる。更に、データとしては、上記実施の形態の画像データに限らず、一定のデータレートを保証することを要する処理を行う場合にも利用できるものである。
【００２５】
【発明の効果】
以上実施の形態に基づいて説明したように、本発明によれば、アクセス優先順位の低い第２のイニシエータから共有メモリへのアクセスを行ったときを基準として、所定時間が経過する前は、前記第２のイニシエータの優先度は前記第１のイニシエータよりも低い優先順位に設定され、前記所定時間が経過した後に、前記第２のイニシエータの優先度が高い優先順位に設定されることを、前記第２のイニシエータから前記共有メモリへアクセス毎に行うことによって、該第２のイニシエータへの次のアクセスが優先的に行われるように調停される構成とされているので、第２のイニシエータがバス要求した瞬間にバス権が渡される確率が高くなり、優先順位の高い第１のイニシエータのバンド幅を確保しながら、ＣＰＵなどのアクセス優先順位の低い第２のイニシエータの高速アクセスを可能にするデータ処理装置及びその装置におけるアクセス調停方法を実現することができる。また、ＣＣＤＩ／Ｆなどの第２のイニシエータの出力に余分なバッファを要することなく、効率的な第１及び第２のイニシエータのメモリアクセスが可能となる。また、ＣＣＤなどの撮像手段で得られた画像データが共有メモリへアクセスする場合でも、ＣＰＵなどの優先順位の低い第２のイニシエータが無駄な待ち時間を要することなく、アクセス可能となる。
【図面の簡単な説明】
【図１】本発明に係るデータ処理装置及びその装置におけるアクセス調停方法をデジタルカメラシステムに適用した場合の構成例を示すブロック図である。
【図２】図１に示した構成例における本発明の動作及び比較のため従来の方式を適用した場合の動作を説明するためのタイミング図である。
【符号の説明】
１  共有バス
２  ＣＰＵ
３  ＣＣＤＩ／Ｆ
４  共有メモリ
５  第１の画像処理部
６  第２の画像処理部
７  ビデオＩ／Ｆ
８  アービタ（調停回路）
９  メモリコントローラ
【図１】
0004633290.tif 000002
【図２】
0004633290.tif 000003