情報処理装置および方法、並びにプログラム
【課題】優先順位の基に複数のマスタがアクセスする場合、所定の期間においてより確実にアクセスするとともに、いずれのマスタもアクセスできない期間をより少なくする。
【解決手段】複数のデバイスにあらかじめ定められている優先順位に基づいて、バスなどの共通の通信経路を介して、複数のデバイスの間の通信を制御するとき、変更部171は、複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、カウンタ制御部154は、所定の期間の長さを制御する。本発明は、例えば、デジタルビデオカメラに適用することができる。
【解決手段】複数のデバイスにあらかじめ定められている優先順位に基づいて、バスなどの共通の通信経路を介して、複数のデバイスの間の通信を制御するとき、変更部171は、複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、カウンタ制御部154は、所定の期間の長さを制御する。本発明は、例えば、デジタルビデオカメラに適用することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、優先順位に基づいて、共通の通信経路を介した複数のデバイス間の通信を制御する情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来のバス調停方法として、ラウンドロビン方式によって公平なアクセスの調停をしたり、固定優先順位方式によってアクセス順序を調停したりする方法があった。
【0003】
しかし、前者のラウンドロビン方式においては、処理状態によらず、複数のマスタが順番にバスを占有するため、無駄な待ち時間が発生し、効率よくアクセスすることができなかった。
【0004】
また、後者の固定優先順位方式においては、アクセス要求の頻度の高いものの優先度を高くした場合、それよりも優先度の低いもののアクセス要求が受け入れられず、システム動作が破綻してしまうことがあった。
【0005】
図1は、従来の、固定優先順位方式の装置の構成を示すブロック図である。図1で示される装置において、マスタA31、マスタB32、マスタB33、およびマスタD34のそれぞれと、バス調停機構(以下、アービタと称する)35とが接続されている。
【0006】
マスタA31、マスタB32、マスタB33、およびマスタD34のそれぞれの優先順位のうち、マスタA31の優先順位が最も高く、マスタB32の優先順位が2番目に高く、マスタC33の優先順位が3番目に高く、マスタD34の優先順位が4番目に高い。
【0007】
アービタ35は、マスタA31、マスタB32、マスタB33、またはマスタD34からアクセスの要求を受けると、アクセスを要求している中の優先順位の高いものに応答し、アクセスを許可する。アービタ35から応答を受けたマスタA31、マスタB32、マスタC33、およびマスタD34のいずれかが、アクセスできる。
【0008】
例えば、マスタA31、マスタB32、マスタC33、およびマスタD34が同時にアクセスの要求を出した場合、それぞれのマスタの優先順位によって調停されるので、最も優先順位の高いマスタA31の要求が優先的に受け入れられる。この場合、アービタ35は、マスタA31に応答し、マスタA31がアクセスすることになる。
【0009】
以下、優先順位を、高い順に、優先1、優先2、優先3、優先4、優先5と称する。
【0010】
図2は、従来の、要求から応答までのディレイが1クロックである場合の、マスタA31、マスタB32、マスタC33、およびマスタD34のアクセスの要求および応答のタイミングチャートの例である。
【0011】
図2において、上から順に、クロック、マスタA31の要求、マスタB32の要求、マスタC33の要求、マスタD34の要求、マスタA31への応答、マスタB32への応答、マスタC33への応答、およびマスタD34への応答のそれぞれのタイミングチャートが示されている。また、時刻T1乃至T23は、それぞれ、クロックの立ち上がりのタイミングを示している。
【0012】
図2に示すように、時刻T3において、マスタA31およびマスタB32から同時にアクセスの要求が発生すると、アービタ35が、優先順位のより高いマスタA31に対して応答し、マスタB32に対して応答しない。したがって、時刻T3において、マスタA31はアクセスし、マスタB32はアクセスしない。
【0013】
同様に、時刻T5において、マスタB32およびマスタC33から同時にアクセスの要求が発生すると、アービタ35が、優先順位のより高いマスタB32に対して応答し、マスタC33に対して応答しない。したがって、時刻T5において、マスタB32はアクセスし、マスタC33はアクセスしない。
【0014】
さらに、時刻T7において、マスタC33のみからアクセスの要求が発生すると、アービタ35が、マスタC33に対して応答する。したがって、時刻T7において、マスタC33はアクセスする。また、時刻T9において、マスタD34のみからアクセスの要求が発生しているので、アービタ35が、マスタD34に対して応答し、優先順位の最も低いマスタD34がアクセスする。
【0015】
また、時刻T12乃至T16の間は、マスタA31、マスタB32、マスタC33、およびマスタD34のそれぞれから同時にアクセスの要求が発生しているので、優先順位に従い、最も優先順位の高いマスタA31が独占的にアクセスする状態になっている。優先順位が固定になっている場合、図2に示すように、マスタA31の要求が長い期間で発生した際、その期間においては、マスタA31の優先順位より低い優先順位のマスタB32、マスタC33、およびマスタD34のアクセスの要求は一切受け入れられなくなってしまう。このため、予め、処理の優先順位を熟考して決定することが必要となる。
【0016】
そこで、アクセス順序を入れ替えるための機構を実装することが一般的であり、例えば、マスタ側のアクセス要求間隔を制御し、シンプルなバス調停機構でも細かい優先度の制御を可能とする方法がある(例えば、特許文献1参照)。
【0017】
【特許文献1】特開2003−186824号公報
【発明の開示】
【発明が解決しようとする課題】
【0018】
しかしながら、マスタ側のアクセス要求機構の複雑化により回路が肥大化し、また、アクセスの要求そのものを出す間隔が空いてしまう、すなわち、使わない時間帯域ができてしまうため、瞬間的にアクセスの隙間が発生した際の対応ができず、バスの使用率を向上させることができない。特に、モバイル機器においては、電力消費の観点から、クロックの周波数を上げずにメモリのスピードが抑えられるので、いずれのマスタもアクセスできない期間をより少なくして、効率よくアクセスさせる必要がある。
【0019】
本発明は、このような状況に鑑みてなされたものであり、優先順位の基に複数のマスタがアクセスする場合、所定の期間においてより確実にアクセスするとともに、いずれのマスタもアクセスできない時間をより少なくすることができるようにするものである。
【課題を解決するための手段】
【0020】
本発明の一側面の情報処理装置は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段と、前記所定の期間の長さを制御する制御手段とを備える。
【0021】
前記変更手段には、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる。
【0022】
前記変更手段には、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更させることができる。
【0023】
前記制御手段には、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御させ、前記変更手段には、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる。
【0024】
前記制御手段には、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御させることができる。
【0025】
前記経路は、バスとすることができる。
【0026】
前記複数のデバイスには、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信させ、前記変更手段には、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更させ、前記制御手段には、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御させることができる。
【0027】
本発明の一側面の情報処理方法は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、前記所定の期間の長さを制御するステップを含む。
【0028】
本発明の一側面のプログラムは、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムであって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、前記所定の期間の長さを制御するステップを含む。
【0029】
本発明の一側面においては、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位が、所定の期間だけ、第2の優先順位に変更され、前記所定の期間の長さが制御される。
【発明の効果】
【0030】
以上のように、本発明の一側面によれば、優先順位の基に複数のマスタがアクセスすることができる。また、本発明の一側面によれば、優先順位の基に複数のマスタがアクセスする場合、所定の期間においてより確実にアクセスするとともに、いずれのマスタもアクセスできない期間をより少なくすることができる。
【発明を実施するための最良の形態】
【0031】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0032】
本発明の一側面の情報処理装置は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段(例えば、図4の変更部171)と、前記所定の期間の長さを制御する制御手段(例えば、図4のカウンタ制御部154)とを備える。
【0033】
前記変更手段には、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる(例えば、図7のステップS14)。
【0034】
前記変更手段には、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更させることができる(例えば、図7のステップS12)。
【0035】
前記制御手段には、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御させ(例えば、図8のステップS31乃至ステップS33)、前記変更手段には、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる(例えば、図7のステップS14)。
【0036】
前記制御手段には、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御させることができる(例えば、図10のステップS51乃至ステップS53)。
【0037】
前記通信経路は、バス(例えば、図3のバス61)とすることができる。
【0038】
前記複数のデバイス(例えば、図3の画像入力部72など)には、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信させ、前記変更手段には、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更させ、前記制御手段には、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御させることができる。
【0039】
本発明の一側面の情報処理方法は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し(例えば、図7のステップS12)、前記所定の期間の長さを制御する(例えば、図8のステップS31乃至ステップS33)ステップを含む。
【0040】
本発明の一側面のプログラムは、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムであって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し(例えば、図7のステップS12)、前記所定の期間の長さを制御する(例えば、図8のステップS31)ステップを含む。
【0041】
図3は、本発明の一実施の形態のデジタルビデオカメラの構成の例を示すブロック図である。
【0042】
図3のデジタルビデオカメラ51は、1つのメモリを複数のデバイスで使用する、いわゆるユニファイドメモリアーキテクチャを適用した、画像の記録および再生を行う情報処理装置の一例である。以下、デジタルビデオカメラ51を例にして説明するが、これに限らず、例えば、デジタルスチルカメラまたは音声のレコーダなど、画像または音声などの所定のデータを処理する装置であればよい。
【0043】
デジタルビデオカメラ51は、バス61、CCD(Charge Coupled Device)71、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU(Central Processing Unit)76、記録制御部77、記録部78、画像出力部79、表示部80、およびメモリ81を含むように構成される。
【0044】
また、デジタルビデオカメラ51には、必要に応じてドライブ82が接続される。ドライブ82には、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどのリムーバブルメディア83が必要に応じて装着され、データの授受を行うようになされている。
【0045】
画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、画像出力部79、メモリ81、およびドライブ82は、バス61を介して相互に接続されている。なお、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、および画像出力部79は、マスタの一例である。
【0046】
CCD71は、CCDセンサから構成され、図示せぬレンズにより結像された光の像を光電変換することにより、光をアナログの電気信号に変換する。CCD71は、変換により得られたアナログの電気信号である画像信号を画像入力部72に供給する。
【0047】
なお、CCD71に限らず、例えば、CMOS(Complementary Metal Oxide Semiconductor)センサなど、画素を単位として画像の信号を生成する撮像素子を設けるようにしてもよい。
【0048】
画像入力部72は、CCD71から供給されたアナログの画像信号を、デジタルの画像データに変換する。画像入力部72は、変換により得られた画像データを、バス61を介して、メモリ81に書き込む。
【0049】
画像処理部73は、画像入力部72によってメモリ81に書き込まれた画像データを読み出し、必要に応じて各種の画像処理を適用する。例えば、画像処理部73は、CCD71による光電変換や画像入力部72によるアナログ信号である画像信号の伝送において生じるノイズを低減させるノイズリダクション(NR(Noise Reduction))の処理を画像データに適用したり、画像データに対して各種のエフェクトを施したりする。画像処理部73は、画像処理が適用された画像データを、バス61を介して、メモリ81に書き込む。
【0050】
画像圧縮部74は、画像処理部73によってメモリ81に書き込まれた画像データを読み出し、所定の符号化方式で符号化する。例えば、画像圧縮部74は、MPEG(Moving Pictures Experts Group)2方式で画像データを符号化する。画像圧縮部74は、符号化した画像データを、バス61を介して、メモリ81に書き込む。
【0051】
画像伸張部75は、記録部78に記録されている画像データを、例えば、MPEG2方式などの、符号化されているその画像データの符号化方式で復号する。画像伸張部75は、復号した画像データを、バス61を介して、メモリ81に書き込む。
【0052】
CPU76は、メモリ81に記憶されているプログラムに従って各種の処理を実行する。メモリ81には、CPU76が各種の処理を実行する上において必要なデータなども適宜記憶される。CPU76は、バス61を介して、デジタルビデオカメラ51の全体の動作を制御する。
【0053】
記録制御部77は、例えば、記録時には、画像圧縮部74によってメモリ81に書き込まれた、符号化されたデータを読み出し、記録部78に記録させる。また、例えば、再生時には、記録制御部77は、記録部78に記録されている、符号化された画像データを読み出し、バス61を介して、メモリ81に書き込む。
【0054】
記録部78は、例えば、ハードディスクドライブ、所定のドライブに駆動されるDVD(Digital Versatile Disk)などの光ディスクおよびそのドライブ、またはメモリカードなどの半導体メモリなどからなる。
【0055】
画像出力部79は、バス61を介して、画像処理部73によってメモリ81に書き込まれた画像データを読み出し、画像を表示するための表示データを生成し、表示部80に供給する。
【0056】
表示部80は、例えば、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)などの表示デバイスからなり、画像出力部79から供給される表示データに基づいて、各種の画像を表示する。
【0057】
メモリ81は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)などの半導体メモリにより構成される。
【0058】
以上のような構成により、デジタルビデオカメラ51は、撮像された被写体の画像を記録または再生することができる。
【0059】
デジタルビデオカメラ51のような、画像や音声の記録または再生を行うAV(Audio Visual)機器においては、リアルタイム性が要求される処理とCPU76による処理などのベストエフォートな処理とが混在して実行される。一般的に、リアルタイム性が要求される処理の優先順位は基本的に高くされ、リアルタイム性が要求されない処理の優先順位は低くされる。ビデオ信号の入出力系などは、定められた規格(例えば、CCIR(国際無線通信顧問委員会)-656など)での信号のやりとりになるため、クロック単位でのリアルタイム性が要求される。また、SDRAMなどのメモリ81を介して、ビデオ信号処理などを行う場合には、クロック単位でのリアルタイム性は要求されないが、フレーム単位またはフィールド単位のリアルタイム性が要求され、最低限のフレームレートまたはフィールドレートを確保する必要がある。このようなフレームレートまたはフィールドレートの確保が必要な処理と、CPU76による処理などのベストエフォートな処理とが混在した場合、CPU76などは、画像処理の処理の度合いに応じて、どのくらいのアクセスが出来るかが決まってしまう。しかし、フレームレートまたはフィールドレートを確保する場合、フレーム時間またはフィールド時間で処理が終了できるだけのアクセスが許可されれば、画像処理の優先順位を常に高くしておく必要はない。
【0060】
このように、記録または再生を行う際の、リアルタイム性が要求される処理とベストエフォートな処理とが混在するような場合、図3には図示されないアービタが、アクセスの制限を行い、優先順位の低いものに対しても定期的にアクセスを許可し、バス61の使用率を向上させる。アービタは、独立に設けてバス61に接続されるようにしてもよいし、メモリ81またはCPU76などと一体に設けるようにしてもよい。
【0061】
なお、以下、バス61の図示は省略する。
【0062】
図4は、マスタとアービタとで表したデジタルビデオカメラ51の機能の構成を示すブロック図である。図4において、デジタルビデオカメラ51は、マスタA131、マスタB132、マスタC133、マスタD134、アービタ135、およびCPU76から構成されている。
【0063】
マスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれは、複数のデバイスの一例であり、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、および画像出力部79のいずれかである。例えば、マスタA131は、画像入力部72であり、マスタB132は、画像処理部73であり、マスタC133は、画像圧縮部74であり、マスタD134は、記録制御部77である。
【0064】
図4において、マスタA131、マスタB132、マスタC133、およびマスタD134が、アービタ135に接続されている。マスタA131、マスタB132、マスタC133、およびマスタD134は、アービタ135に対してそれぞれアクセスの要求を出す。アービタ135は、マスタA131、マスタB132、マスタC133、およびマスタD134にあらかじめ定められている優先順位に基づいて、図示せぬバス61を介したマスタA131、マスタB132、マスタC133、およびマスタD134のアクセスの調停を行う。
【0065】
アービタ135は、アクセス要求受信部151、優先順位制御部152、アクセス許可送信部153、カウンタ制御部154、およびレジスタ設定部155を含むように構成される。
【0066】
アクセス要求受信部151は、アービタ135に接続されているマスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれからのアクセスの要求を受信する。アクセス要求受信部151は、アクセスの要求の受信を優先順位制御部152に通知する。
【0067】
優先順位制御部152は、マスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれの優先順位を予め定め、また、マスタA131、マスタB132、マスタC133、およびマスタD134のうち、所定のものの優先順位を変えるように、優先順位を制御する。
【0068】
優先順位制御部152は、アクセス要求受信部151からアクセスの要求の受信が通知されると、アクセスを要求してきたマスタA131、マスタB132、マスタC133、またはマスタD134のうち、最も優先順位の高いものを選択する。そして、優先順位制御部152は、マスタA131、マスタB132、マスタC133、またはマスタD134のいずれかの選択をアクセス許可送信部153に通知する。すなわち、優先順位制御部152は、マスタA131、マスタB132、マスタC133、またはマスタD134のそれぞれの優先順位に基づいて、マスタA131、マスタB132、マスタC133、およびマスタD134の中から、アクセスを許可する1つを決定する。
【0069】
また、優先順位制御部152は、変更部171およびカウンタ172を含むように構成される。
【0070】
変更部171は、マスタA131、マスタB132、マスタC133、またはマスタD134のうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する。また、変更部171は、所定の期間が終了したときに、そのデバイスの第2の優先順位を、第1の優先順位に戻す。
【0071】
以下、優先順位が変更されるマスタを制限対象マスタと称する。
【0072】
より具体的には、例えば、変更部171は、図5で示されるように、アービタ135に接続されている優先1のマスタA131、優先2のマスタB132、優先3のマスタC133、および優先4のマスタD134のうちのいずれかを、アクセスが制限されるマスタである制限対象マスタとし、所定の期間だけ、優先5のマスタ、すなわち最も優先順位の低いマスタとして扱われるように、アービタ135における優先順位を変更し、所定の期間が終了すると、その優先順位を元に戻す。
【0073】
また、例えば、変更部171は、制限対象マスタからのアクセスの要求に対して応答したときに、制限対象マスタの優先順位である第1の優先順位を、第2の優先順位に変更する。すなわち、変更部171は、所定のデバイスからのアクセスの要求に対して応答したときに、所定のデバイスの優先順位である第1の優先順位を、第2の優先順位に変更する。
【0074】
カウンタ172は、アービタ135の制御の基準となるクロックをカウントし、カウンタ値を変更部171に供給する。変更部171は、カウンタ172のカウンタ値が所定の値である制限値になった場合、所定のデバイスの優先順位を変更する。
【0075】
アクセス許可送信部153は、優先順位制御部152によって決定された、アクセスを許可する、マスタA131、マスタB132、マスタC133、およびマスタD134の中のいずれかに、アクセスの許可を示す応答を送信する。
【0076】
カウンタ制御部154は、制限対象マスタの優先順位が変更されている期間の長さを制御する。より具体的には、カウンタ制御部154は、カウンタ172の動作を制御することで、制限対象マスタの優先順位が変更されている期間の長さを制御する。
【0077】
レジスタ設定部155は、CPU76の制御に基づいて、優先順位が変更される制限対象マスタを指定する値を設定したり、カウンタ172のカウンタ値の制限値を設定したりする。制限値は、制限対象マスタの優先順位が変更されている期間の長さを決定するための値である。
【0078】
なお、CPU76とは別にCPUを設けて、CPU76とは別のCPUが、レジスタ設定部155に、制限対象マスタを指定する値を設定したり、カウンタ172のカウンタ値の制限値を設定したりするようにしてもよい。
【0079】
次に、要求から応答までのディレイを1クロックとし、優先1のマスタA131、優先2のマスタB132、優先3のマスタC133、および優先4のマスタD134のうちの、マスタA131を制限対象マスタとし、所定の期間において、マスタA131の優先順位を優先5とする場合の例について、図6のタイミングチャートを参照して説明する。
【0080】
図6において、上から順に、クロック、マスタA131の要求、マスタB132の要求、マスタC133の要求、マスタD134の要求、マスタA制限フラグ、マスタA131への応答、マスタB132への応答、マスタC133への応答、およびマスタD134への応答のそれぞれのタイミングチャートが示されている。また、時刻T1乃至T23は、クロックの立ち上がりのタイミングを示している。
【0081】
なお、マスタA制限フラグが立っていない期間において、マスタA131の優先順位は優先1とされ、マスタA制限フラグが立っている期間において、マスタA131の優先順位は優先5とされる。
【0082】
時刻T3において、マスタA131およびマスタB132から同時にアクセスの要求が発生すると、アービタ135が、優先2のマスタB132に対して優先順位のより高い優先1のマスタA131に応答し、マスタB132に応答しない。すなわち、アービタ135は、マスタA131にアクセスを許可する。したがって、時刻T3において、マスタA131はアクセスし、マスタB132はアクセスしない。例えば、マスタA131は、バス61を介して、マスタB132、マスタC133、マスタD134、またはメモリ81のいずれかにアクセスする。
【0083】
時刻T5において、マスタB132およびマスタC133から同時にアクセスの要求が発生すると、アービタ135が、優先3のマスタC133に対して優先順位のより高い優先2のマスタB132に応答し、マスタC133に応答しない。すなわち、アービタ135は、マスタB132にアクセスを許可する。したがって、時刻T5において、マスタB132はアクセスし、マスタC133はアクセスしない。例えば、マスタB132は、バス61を介して、マスタA131、マスタC133、マスタD134、またはメモリ81のいずれかにアクセスする。
【0084】
時刻T7において、マスタC133のみからアクセスの要求が発生すると、アービタ135が、マスタC133に応答する。すなわち、アービタ135は、マスタC133にアクセスを許可する。したがって、時刻T7において、マスタC133はアクセスする。例えば、マスタC133は、バス61を介して、マスタA131、マスタB132、マスタD134、またはメモリ81のいずれかにアクセスする。
【0085】
また、時刻T9においては、マスタD134のみからアクセスの要求が発生しているので、アービタ135が、マスタD134に応答し、時刻T9において優先順位の最も低い優先4のマスタD134がアクセスする。すなわち、アービタ135は、マスタD134にアクセスを許可する。例えば、マスタD134は、バス61を介して、マスタA131、マスタB132、マスタC133、またはメモリ81のいずれかにアクセスする。
【0086】
時刻T10乃至T20の間は、例えば、マスタA131に対するアクセスを制限するマスタA制限フラグが立っているので、この間のマスタA131は、マスタB132、マスタC133、およびマスタD134のいずれよりも優先順位の低い、優先5のマスタとして扱われる。
【0087】
例えば、時刻T11において、マスタA131、マスタB132およびマスタC133から同時にアクセスの要求が発生すると、アービタ135は、時刻T11において優先5のマスタA131および優先3のマスタC133に対して優先順位のより高い優先2のマスタB132に応答し、マスタA131およびマスタC133に応答しない。すなわち、アービタ135は、マスタB132にアクセスを許可する。したがって、時刻T11において、マスタB132はアクセスし、マスタA131およびマスタC133はアクセスしない。
【0088】
同様にして、時刻T13において、マスタA131、マスタC133およびマスタD134から同時にアクセスの要求が発生すると、アービタ135は、時刻T13において優先5のマスタA131および優先4のマスタD134に対して優先順位のより高い優先3のマスタC133に応答し、マスタA131およびマスタD134に応答しない。すなわち、アービタ135は、マスタC133にアクセスを許可する。したがって、時刻T13において、マスタC133はアクセスし、マスタA131およびマスタD134はアクセスしない。
【0089】
さらに、時刻T15において、マスタA131およびマスタD134から同時にアクセスの要求が発生すると、アービタ135は、時刻T15において優先5のマスタA131に対して優先順位のより高い優先4のマスタD134に応答し、マスタA131に応答しない。すなわち、アービタ135は、マスタD134にアクセスを許可する。したがって、時刻T15において、マスタD134はアクセスし、マスタA131はアクセスしない。
【0090】
また、時刻T17において、マスタA131からのアクセスの要求が発生し、マスタB132乃至マスタD134からアクセスの要求が発生しないので、アービタ135は、マスタA131に応答する。したがって、時刻T17において、マスタA131はアクセスする。
【0091】
さらに、時刻T19において、マスタA131およびマスタB132から同時にアクセスの要求が発生すると、時刻T11の場合と同様に、アービタ135は、マスタB132に応答し、マスタB132がアクセスする。
【0092】
時刻T20以降、マスタA制限フラグが立っていないので、時刻T20以降は、マスタA131は、本来の、優先順位の最も高い、優先1のマスタとして扱われる。
【0093】
例えば、時刻T21において、マスタA131およびマスタB132から同時にアクセスの要求が発生しているので、アービタ135は、時刻T21において優先2のマスタB132に対して優先順位のより高い優先1のマスタA131に応答し、マスタB132に応答しない。すなわち、アービタ135は、マスタA131にアクセスを許可する。したがって、時刻T21において、マスタA131はアクセスし、マスタB132はアクセスしない。
【0094】
また、例えば、時刻T23において、マスタA131、マスタB132、およびマスタD134から同時にアクセスの要求が発生しているので、アービタ135は、時刻T23においてマスタA131、マスタB132、およびマスタD134のうち、優先順位の最も高いマスタA131に応答し、時刻T23において、マスタA131がアクセスする。
【0095】
このように、所定の期間、優先順位の高いマスタのその優先順位を低くすることで、本来、優先順位の高いマスタのアクセスを制限し、これによって、優先順位の低いマスタにアクセスさせることができる。また、制限対象マスタのアクセスを一定の期間禁止するわけではなく、制限対象マスタの優先順位を低くするだけなので、優先順位を低くすることでアクセスを制限している状態であっても、他に要求を出すマスタがなければ、制限対象マスタはアクセスすることができる。
【0096】
このように、マスタについてアクセスが禁止される期間が生じることがない。これにより、マスタからアクセスの要求が生じると、いずれかのマスタがアクセスできるので、いずれかのマスタがアクセスしたいにもかかわらずバスが使用されない期間が生じることがなく、バスの使用率が向上する。
【0097】
次に、優先順位制御部152による、優先順位の制御の処理について説明する。
【0098】
図7は、アービタ135のクロックごとに実行される、優先順位の制御の処理の例を示すフローチャートである。
【0099】
ステップS11において、優先順位制御部152は、アクセス許可送信部153が制限対象マスタに、応答、すなわち、アクセス許可を送信したか否かを判定する。ステップS11において、アクセス許可が送信されたと判定された場合、処理は、ステップS12に進む。
【0100】
ステップS12において、優先順位制御部152の変更部171は、制限対象マスタの優先順位を変更する。より具体的には、例えば、変更部171は、制限対象マスタの優先順位を下げて、処理は終了する。
【0101】
一方、ステップS11において、制限対象マスタにアクセス許可が送信されていないと判定された場合、処理は、ステップS13に進む。
【0102】
ステップS13において、優先順位制御部152は、クロックごとにカウントアップされるカウンタ172のカウンタ値が、レジスタ設定部155に設定されている制限値になったか否かを判定する。ステップS13において、カウンタ値が制限値になっていないと判定された場合、制限対象マスタの優先順位を下げておくべき期間なので、制限対象マスタの優先順位を戻さないで、そのまま、処理は終了する。
【0103】
一方、ステップS13において、カウンタ値が制限値になったと判定された場合、制限対象マスタの優先順位を下げておくべき期間が経過したので、処理はステップS14に進む。
【0104】
ステップS14において、優先順位制御部152の変更部171は、制限対象マスタの優先順位を元に戻して、処理は終了する。
【0105】
このように、優先順位制御部152は、制限対象マスタの優先順位を、制限対象マスタのアクセスが許可されると本来の優先順位ではないアクセスを制限する優先順位に変更し、アクセスが制限された状態でカウンタ値が制限値になると、元の優先順位に戻す。
【0106】
ここで、制限対象マスタのアクセスが制限される期間、すなわち制限対象マスタの優先順位を変更しておく期間の長さは、例えば、ステップS13においてカウンタ値と比較される制限値を変更したり、カウンタ172をリセットするなどのカウンタ172の動作を制御することで、制御される。
【0107】
次に、カウンタ制御部154による、カウンタ172の動作の制御の処理について説明する。
【0108】
図8は、アービタ135のクロックごとに実行される、カウンタ172の動作の制御の処理の例を示すフローチャートである。
【0109】
ステップS31において、カウンタ制御部154は、カウンタ172を動作させる。ステップS32において、カウンタ制御部154は、カウンタ172のカウンタ値が、レジスタ設定部155に設定されている制限値になったか否かを判定する。ステップS32において、カウンタ172のカウンタ値が制限値になったと判定された場合、ステップS33に進み、カウンタ制御部154は、カウンタ172のカウンタ値をリセットして、処理は終了する。カウンタ値がリセットされると、例えば、カウンタ値は、0になる。
【0110】
ステップS32において、カウンタ172のカウンタ値が制限値になっていないと判定された場合、カウンタ172のカウンタ値はリセットされず、処理は終了する。
【0111】
このように、例えば、カウンタ172は、他の処理に依存せず、カウントアップしたカウンタ値が一定の周期ごとにリセットされる、いわゆるフリーランのカウンタとして動作させられる。
【0112】
ここで、カウンタ172が、フリーランのカウンタとして動作している場合の、マスタA131、マスタB132、およびマスタC133のそれぞれの動作、並びにアービタ135による制限対象マスタの優先順位の変更について説明する。
【0113】
図9は、カウンタ172がフリーランで動作している場合の、マスタA131、マスタB132、およびマスタC133の動作のタイミングチャートの例である。なお、図9の例において、マスタB132を制限対象マスタとして説明する。
【0114】
図9において、上から順に、カウンタ172のカウンタ値、マスタA131の要求、マスタB132の要求、およびマスタC133の要求のそれぞれのタイミングチャートが示されている。また、図9において、タイミングチャートの上側には、時刻T0乃至T11が示され、タイミングチャートの下側には、アービタ135において変更される、制限対象マスタであるマスタB132のそれぞれの時刻における優先順位を示す。カウンタ制御部154は、Tm乃至Tm+2(mは正の整数)を周期とするフリーランのカウンタとしてカウンタ172を動作させる。
【0115】
時刻T0において、カウンタ制御部154は、カウンタ172の動作を開始させる。マスタA131およびマスタB132からのアクセスの要求は発生せず、マスタC133からのアクセスの要求のみが発生している。このとき、マスタB132の優先順位は、優先2である。
【0116】
時刻T1において、マスタB132からのアクセスの要求が発生する。同時に、マスタC133からのアクセスの要求も発生しているが、優先順位のより高いマスタB132のアクセスが許可される。制限対象マスタであるマスタB132のアクセスが許可されると、優先順位制御部152の変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0117】
時刻T2において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値は、リセットされ、カウンタ172は、再びカウントアップを開始する。
【0118】
このように、時刻T1乃至T2の間、マスタB132の優先順位が優先5に下げられるので、マスタB132からのアクセスの要求があっても、マスタA131からのアクセスの要求がなければ、マスタB132の本来の優先順位である優先2より優先順位が低く、マスタB132の変更された優先順位である優先5より優先順位が高い優先3のマスタC133からのアクセスが可能となる。
【0119】
時刻T2乃至T3の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時にアクセスの要求が発生しているが、優先1のマスタA131のアクセスが許可される。
【0120】
時刻T3の前後において、マスタC133から継続してアクセスが要求され、時刻T3の前に、マスタA131からのアクセスの要求が立ち下がり、時刻T3において、マスタB132からのアクセスの要求が立ち下がっているので、優先3であるマスタC133に対して優先順位のより高い優先2のマスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0121】
時刻T4において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ制御部154は、カウンタ172の動作を継続させるとともに、カウンタ172のカウンタ値をリセットするので、カウンタ172は、再びカウントアップを開始する。
【0122】
時刻T3乃至T4の間、マスタB132の優先順位が優先5に下げられるので、マスタB132からのアクセスの要求があっても、マスタA131からのアクセスの要求がなければ、マスタB132の本来の優先順位である優先2より優先順位が低く、マスタB132の変更された優先順位である優先5より優先順位が高い優先3のマスタC133からのアクセスが可能となる。
【0123】
時刻T4乃至T5の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時に要求が発生しているが、優先1のマスタA131のアクセスが許可される。
【0124】
時刻T5の前後において、マスタC133から継続してアクセスが要求され、時刻T5の前に、マスタA131からのアクセスの要求が立ち下がり、時刻T5において、マスタB132からのアクセスの要求が立ち下がっているので、優先3であるマスタC133に対して優先順位のより高い優先2のマスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0125】
時刻T6において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。
【0126】
時刻T5乃至T6の間、マスタB132の優先順位は、優先5に下げられる。
【0127】
時刻T6乃至T7の間、マスタA131乃至マスタC133のいずれもアクセスの要求を発生しない。また、時刻T6乃至T7の間、マスタB132の優先順位は、優先2である。
【0128】
時刻T7において、マスタB132からの要求だけが発生しているので、マスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。また、時刻T7乃至T8の間は、マスタA131またはマスタC133からの要求が発生しないので、マスタB132の優先順位が優先5であっても、マスタB132のアクセスは許可される。
【0129】
時刻T8において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。さらに、マスタB132からの要求だけが発生しているので、マスタB132のアクセスが許可され、変更部171は、アービタ135におけるマスタB132の優先順位を、即座に優先5に下げる。すなわち、時刻T8において、マスタB132の優先順位は、1クロック分の時間だけ優先2に戻るが、すぐに優先5に下がる。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。時刻T8乃至T9の間は、時刻T7乃至T8の間と同様、マスタA131またはマスタC133からの要求が発生しないので、マスタB132の優先順位が優先5であっても、マスタB132のアクセスは許可される。
【0130】
時刻T9において、マスタA131、マスタB132、およびマスタC133からのアクセスの要求が発生する。時刻T9において、優先1であるマスタA131、優先5であるマスタB132、および優先3であるマスタC133のうち、最も優先順位の高い優先1のマスタA131のアクセスが許可される。
【0131】
時刻T10において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。
【0132】
時刻T10乃至T11の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時にアクセスが要求されているが、優先1のマスタA131のアクセスが許可される。すなわち、マスタB132のアクセスは許可されないので、マスタB132の優先順位は優先2のままで変わらない。
【0133】
時刻T11において、カウンタ172のカウンタ値が制限値になると、カウンタ制御部154は、カウンタ172のカウンタ値をリセットさせる。
【0134】
このように、アービタ135は、制限対象マスタのアクセスが許可された場合、制限対象マスタの優先順位をより低い優先順位にするとともに、制限対象マスタの優先順位を、一定の周期の間に、一度はアクセス制限されていない元の優先順位とする。このようにすることで、制限対象マスタの優先順位より低い優先順位のマスタにアクセスを適宜許可することができる。
【0135】
例えば、ユニファイドメモリアーキテクチャを採用するデジタルビデオカメラ51のフレームまたはフィールドを単位とする動画像の画像処理において、1フレーム時間内に1フレームまたは1フィールド時間内に1フィールドの画像データのメモリ81からの読み出しまたは書き込みをする処理を行うような場合、1フレーム時間または1フィールド時間においてそれぞれのマスタのアクセスを許可し、少なくとも1フレーム時間内に1フレームの処理または1フィールド時間内に1フィールドの処理がそれぞれのマスタにおいて終了するように、マスタの優先順位が変更され、また、優先順位を変更する期間の長さが制御される。これにより、メモリ81へのアクセスを平均化することができる。
【0136】
なお、カウンタ値の制限値は、例えば、フレームレートまたはフィールドレートを確保する場合には、処理に必要な最低限の時間とバス61にアクセスする必要のある回数とから決定される。
【0137】
図10は、アービタ135のクロックごとに実行される、カウンタ172の動作の制御の処理の他の例を示すフローチャートである。
【0138】
ステップS51において、カウンタ制御部154は、優先順位制御部152からの信号を基に、制限対象マスタからアクセス要求されているか否かを判定する。すなわち、カウンタ制御部154は、アクセス要求受信部151が制限対象マスタからのアクセスの要求を受信しているか否かを判定する。ステップS51において、制限対象マスタからアクセス要求されていると判定された場合、処理は、ステップS52に進む。
【0139】
ステップS52において、カウンタ制御部154は、優先順位制御部152からの制限対象マスタの優先順位を示す信号を基に、制限対象マスタの優先順位が下がっているか否かを判定する。ステップS52において、制限対象マスタの優先順位が下がっていると判定された場合、処理は、ステップS53に進む。
【0140】
ステップS53において、カウンタ制御部154は、カウンタ172を動作させ、処理は終了する。既にカウンタ172が動作している場合、カウンタ制御部154は、カウンタ172の動作を継続させ、カウンタ172が動作していない場合、カウンタ制御部154は、カウンタ172の動作を開始させる。
【0141】
一方、ステップS51において、制限対象マスタからアクセス要求されていないと判定された場合、または、ステップS52において、制限対象マスタの優先順位が下がっていない、すなわち元の優先順位であると判定された場合、処理は、ステップS54に進む。
【0142】
ステップS54において、カウンタ制御部154は、カウンタ172のカウンタ値をリセットして、処理は終了する。
【0143】
このように、カウンタ制御部154は、カウンタ172に、制限対象マスタからのアクセスの要求があり、かつ、制限対象マスタの優先順位が下がっているときのみ動作させ、その動作を継続させる。
【0144】
ここで、カウンタ172が、制限対象マスタの優先順位が下がり、かつ、制限対象マスタからアクセス要求を受けている間のみ動作する場合の、マスタA131、マスタB132、およびマスタC133のアクセスの動作、並びにアービタ135による制限対象マスタの優先順位の変更について説明する。
【0145】
以下で説明する例において、制限対象マスタの優先順位が元の優先順位から下げられた状態から、処理は開始される。
【0146】
図11は、制限対象マスタの優先順位が下がり、かつ、制限対象マスタからアクセス要求を受けている間のみカウンタ172が動作する場合の、マスタA131、マスタB132、およびマスタC133の動作のタイミングチャートの例である。なお、図11の例において、図9と同様に、マスタB132を制限対象マスタとして説明する。
【0147】
図11において、上から順に、カウンタ172のカウンタ値、マスタA131のアクセスの要求、マスタB132のアクセスの要求、およびマスタC133のアクセスの要求のそれぞれのタイミングチャートが示されている。また、図11において、タイミングチャートの上側には、時刻T0乃至T7が示され、タイミングチャートの下側には、アービタ135において変更される、制限対象マスタであるマスタB132のそれぞれの時刻における優先順位を示す。
【0148】
時刻T0と時刻T1との間の時刻から時刻T2の直前までの期間、時刻T3と時刻T4との間の時刻から時刻T5の直前までの期間、および時刻T6以降の期間において、マスタA131からアクセスが継続して要求されている。
【0149】
時刻T0から時刻T2までの期間、時刻T3から時刻T5までの期間、および時刻T6以降の期間において、マスタB132からアクセスが継続して要求されている。また、時刻T5と時刻T6との間において、1クロックの期間だけ、4回、マスタB132からアクセスが要求されている。
【0150】
時刻T0から時刻T5と時刻T6との間の時刻までの期間、および時刻T6以降の期間において、マスタC133からアクセスが継続して要求されている。
【0151】
時刻T0から時刻T1までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131または優先3のマスタC133のいずれかからアクセスが継続して要求されているので、マスタA131またはマスタC133のいずれか一方のアクセスが許可される。
【0152】
マスタB132の優先順位が優先5である状態から処理が開始され、時刻T0において、マスタB132からのアクセスの要求が開始され、時刻T0から時刻T2までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T0から時刻T2までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0153】
時刻T1において、カウンタ172のカウンタ値が制限値になるので、時刻T1において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0154】
時刻T1において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0155】
時刻T2において、マスタA131からのアクセスの要求がなくなり、マスタB132およびマスタC133からアクセスが要求されているので、優先3のマスタC133より優先順位の高い優先2のマスタB132からのアクセスが許可される。
【0156】
時刻T2において、マスタB132からのアクセスが許可されると、優先順位制御部152の変更部171は、マスタB132の優先順位を優先5に下げる。
【0157】
このように、時刻T1から時刻T2までの期間、マスタB132の優先順位は優先2とされる。
【0158】
時刻T1から時刻T2までの期間、マスタB132の優先順位が元に戻っているので、カウンタ制御部154は、クロックごとに、カウンタ172のカウンタ値をリセットする。したがって、時刻T1から時刻T2までの期間、カウンタ172はカウントアップしない。
【0159】
また、時刻T2から時刻T3までの期間、マスタB132は、アクセスを要求しないので、時刻T2から時刻T3までの期間、カウンタ172はカウントアップしない。
【0160】
時刻T2から時刻T3までの期間、カウンタ172はカウントアップしないので、カウンタが制限値になることはなく、マスタB132の優先順位は優先5とされる。
【0161】
時刻T3から時刻T4までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131または優先3のマスタC133のいずれかからアクセスが継続して要求されているので、マスタA131またはマスタC133のいずれか一方のアクセスが許可される。
【0162】
マスタB132の優先順位が優先5であり、時刻T3において、マスタB132からのアクセスの要求が開始され、時刻T3から時刻T5までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T3から時刻T5までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0163】
時刻T4において、カウンタ172のカウンタ値が制限値になるので、時刻T4において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0164】
時刻T4において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0165】
時刻T5において、マスタA131からのアクセスの要求がなくなり、マスタB132およびマスタC133からアクセスが要求されているので、優先3のマスタC133より優先順位の高い優先2のマスタB132からのアクセスが許可される。
【0166】
時刻T5において、マスタB132からのアクセスが許可されると、優先順位制御部152の変更部171は、マスタB132の優先順位を優先5に下げる。
【0167】
このように、時刻T4から時刻T5までの期間、マスタB132の優先順位は優先2とされる。
【0168】
時刻T4から時刻T5までの期間、マスタB132の優先順位が元に戻っているので、カウンタ制御部154は、クロックごとに、カウンタ172のカウンタ値をリセットする。したがって、時刻T4から時刻T5までの期間、カウンタ172はカウントアップしない。
【0169】
また、時刻T4から時刻T5までの期間において、マスタB132は、1クロックの期間だけ、4回、アクセスを要求する。しかしながら、マスタB132からのアクセスの要求がなくなると、カウンタ制御部154は、カウンタ172に、カウンタ値をリセットさせるので、リセットされたときのカウンタ172のカウンタ値が維持される。
【0170】
時刻T5から時刻T6までの期間、カウンタ172はカウントアップしないので、カウンタ値が制限値になることはなく、マスタB132の優先順位は優先5とされる。
【0171】
時刻T6から時刻T7までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131および優先3のマスタC133からアクセスが継続して要求されているので、マスタA131のアクセスが許可される。
【0172】
マスタB132の優先順位が優先5であり、時刻T6において、マスタB132からのアクセスの要求が開始され、時刻T6から時刻T7以降までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T6から時刻T7までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0173】
時刻T7において、カウンタ172のカウンタ値が制限値になるので、時刻T7において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0174】
時刻T7において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0175】
このように、アービタ135は、制限対象マスタからのアクセス要求が発生してから、カウンタ値が制限値になるまでの一定のディレイの後に、制限対象マスタにアクセスを許可することができる。
【0176】
これにより、一定のレイテンシをもって動作させることができ、アクセスの集中を緩和させることができる。
【0177】
以上のようにして、リアルタイム性を要求するものと、ベストエフォートな異なる周期で動作するものとが、1つの共通のバス上に存在する構造において、リアルタイム性を維持しつつ、ベストエフォートで動作するものにも効率よくアクセスさせることが可能となり、バス61へのアクセス効率を改善し、使用率を向上させることができる。また、特にモバイル機器のような、限られたリソースを有効に利用する必要があるものの場合、マスタ側の構造によらず、アービタ側のみで対応できるので、構造の単純化、小規模化を図ることができる。
【0178】
なお、上述した説明において、カウンタ値などの値は、全てソフトウェアによる制御を可能とし、システム要件に応じて、任意の対応が可能となるものとする。
【0179】
また、上述した説明において、1つのマスタをアクセス制限の対象とするようにしたが、全てのマスタをアクセス制限の対象とするようにしてもよい。さらに、アクセス制限として、本来の優先順位よりも低い優先順位で扱われるようにしたが、本来の優先順位よりも高い優先順位で扱われるようにしてもよい。
【0180】
以上のように、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の経路を介しての複数のデバイスの間の通信を制御するようにした場合には、メモリに対してアクセスすることができる。また、複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、所定の期間の長さを制御するようにした場合には、メモリに対して定期的かつ効率的にアクセスすることができる。
【0181】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0182】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図3に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア83、または、プログラムが一時的もしくは永続的に格納される図示せぬROMや、記録部78を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである図示せぬ通信部を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【0183】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0184】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0185】
【図1】従来の固定優先順位方式の装置の構成を示すブロック図である。
【図2】従来のマスタのアクセスの要求および応答のタイミングチャートの例である。
【図3】本発明の一実施の形態のデジタルビデオカメラの構成の例を示すブロック図である。
【図4】マスタとアービタとで表したデジタルビデオカメラの機能の構成を示すブロック図である。
【図5】アービタの機能を説明する図である。
【図6】各マスタのアクセスを説明するタイミングチャートである。
【図7】優先順位の制御の処理を説明するフローチャートである。
【図8】カウンタの動作の制御の処理の例を説明するフローチャートである。
【図9】各マスタのアクセスの要求と優先順位とを説明するタイミングチャートである。
【図10】カウンタの動作の制御の処理の他の例を説明するフローチャートである。
【図11】各マスタのアクセスの要求と優先順位とを説明するタイミングチャートである。
【符号の説明】
【0186】
51 デジタルビデオカメラ, 61 バス, 71 CCD, 72 画像入力部, 73 画像処理部, 74 画像圧縮部, 75 画像伸張部, 76 CPU, 77 記録制御部, 78 記録部, 79 画像出力部, 80 表示部, 81 メモリ, 82 ドライブ, 83 リムーバブルメディア, 135 アービタ, 151 アクセス要求受信部, 152 優先順位制御部, 153 アクセス許可送信部, 154 カウンタ制御部, 155 レジスタ設定部, 171 変更部, 172 カウンタ
【技術分野】
【0001】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、優先順位に基づいて、共通の通信経路を介した複数のデバイス間の通信を制御する情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
従来のバス調停方法として、ラウンドロビン方式によって公平なアクセスの調停をしたり、固定優先順位方式によってアクセス順序を調停したりする方法があった。
【0003】
しかし、前者のラウンドロビン方式においては、処理状態によらず、複数のマスタが順番にバスを占有するため、無駄な待ち時間が発生し、効率よくアクセスすることができなかった。
【0004】
また、後者の固定優先順位方式においては、アクセス要求の頻度の高いものの優先度を高くした場合、それよりも優先度の低いもののアクセス要求が受け入れられず、システム動作が破綻してしまうことがあった。
【0005】
図1は、従来の、固定優先順位方式の装置の構成を示すブロック図である。図1で示される装置において、マスタA31、マスタB32、マスタB33、およびマスタD34のそれぞれと、バス調停機構(以下、アービタと称する)35とが接続されている。
【0006】
マスタA31、マスタB32、マスタB33、およびマスタD34のそれぞれの優先順位のうち、マスタA31の優先順位が最も高く、マスタB32の優先順位が2番目に高く、マスタC33の優先順位が3番目に高く、マスタD34の優先順位が4番目に高い。
【0007】
アービタ35は、マスタA31、マスタB32、マスタB33、またはマスタD34からアクセスの要求を受けると、アクセスを要求している中の優先順位の高いものに応答し、アクセスを許可する。アービタ35から応答を受けたマスタA31、マスタB32、マスタC33、およびマスタD34のいずれかが、アクセスできる。
【0008】
例えば、マスタA31、マスタB32、マスタC33、およびマスタD34が同時にアクセスの要求を出した場合、それぞれのマスタの優先順位によって調停されるので、最も優先順位の高いマスタA31の要求が優先的に受け入れられる。この場合、アービタ35は、マスタA31に応答し、マスタA31がアクセスすることになる。
【0009】
以下、優先順位を、高い順に、優先1、優先2、優先3、優先4、優先5と称する。
【0010】
図2は、従来の、要求から応答までのディレイが1クロックである場合の、マスタA31、マスタB32、マスタC33、およびマスタD34のアクセスの要求および応答のタイミングチャートの例である。
【0011】
図2において、上から順に、クロック、マスタA31の要求、マスタB32の要求、マスタC33の要求、マスタD34の要求、マスタA31への応答、マスタB32への応答、マスタC33への応答、およびマスタD34への応答のそれぞれのタイミングチャートが示されている。また、時刻T1乃至T23は、それぞれ、クロックの立ち上がりのタイミングを示している。
【0012】
図2に示すように、時刻T3において、マスタA31およびマスタB32から同時にアクセスの要求が発生すると、アービタ35が、優先順位のより高いマスタA31に対して応答し、マスタB32に対して応答しない。したがって、時刻T3において、マスタA31はアクセスし、マスタB32はアクセスしない。
【0013】
同様に、時刻T5において、マスタB32およびマスタC33から同時にアクセスの要求が発生すると、アービタ35が、優先順位のより高いマスタB32に対して応答し、マスタC33に対して応答しない。したがって、時刻T5において、マスタB32はアクセスし、マスタC33はアクセスしない。
【0014】
さらに、時刻T7において、マスタC33のみからアクセスの要求が発生すると、アービタ35が、マスタC33に対して応答する。したがって、時刻T7において、マスタC33はアクセスする。また、時刻T9において、マスタD34のみからアクセスの要求が発生しているので、アービタ35が、マスタD34に対して応答し、優先順位の最も低いマスタD34がアクセスする。
【0015】
また、時刻T12乃至T16の間は、マスタA31、マスタB32、マスタC33、およびマスタD34のそれぞれから同時にアクセスの要求が発生しているので、優先順位に従い、最も優先順位の高いマスタA31が独占的にアクセスする状態になっている。優先順位が固定になっている場合、図2に示すように、マスタA31の要求が長い期間で発生した際、その期間においては、マスタA31の優先順位より低い優先順位のマスタB32、マスタC33、およびマスタD34のアクセスの要求は一切受け入れられなくなってしまう。このため、予め、処理の優先順位を熟考して決定することが必要となる。
【0016】
そこで、アクセス順序を入れ替えるための機構を実装することが一般的であり、例えば、マスタ側のアクセス要求間隔を制御し、シンプルなバス調停機構でも細かい優先度の制御を可能とする方法がある(例えば、特許文献1参照)。
【0017】
【特許文献1】特開2003−186824号公報
【発明の開示】
【発明が解決しようとする課題】
【0018】
しかしながら、マスタ側のアクセス要求機構の複雑化により回路が肥大化し、また、アクセスの要求そのものを出す間隔が空いてしまう、すなわち、使わない時間帯域ができてしまうため、瞬間的にアクセスの隙間が発生した際の対応ができず、バスの使用率を向上させることができない。特に、モバイル機器においては、電力消費の観点から、クロックの周波数を上げずにメモリのスピードが抑えられるので、いずれのマスタもアクセスできない期間をより少なくして、効率よくアクセスさせる必要がある。
【0019】
本発明は、このような状況に鑑みてなされたものであり、優先順位の基に複数のマスタがアクセスする場合、所定の期間においてより確実にアクセスするとともに、いずれのマスタもアクセスできない時間をより少なくすることができるようにするものである。
【課題を解決するための手段】
【0020】
本発明の一側面の情報処理装置は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段と、前記所定の期間の長さを制御する制御手段とを備える。
【0021】
前記変更手段には、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる。
【0022】
前記変更手段には、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更させることができる。
【0023】
前記制御手段には、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御させ、前記変更手段には、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる。
【0024】
前記制御手段には、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御させることができる。
【0025】
前記経路は、バスとすることができる。
【0026】
前記複数のデバイスには、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信させ、前記変更手段には、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更させ、前記制御手段には、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御させることができる。
【0027】
本発明の一側面の情報処理方法は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、前記所定の期間の長さを制御するステップを含む。
【0028】
本発明の一側面のプログラムは、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムであって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、前記所定の期間の長さを制御するステップを含む。
【0029】
本発明の一側面においては、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位が、所定の期間だけ、第2の優先順位に変更され、前記所定の期間の長さが制御される。
【発明の効果】
【0030】
以上のように、本発明の一側面によれば、優先順位の基に複数のマスタがアクセスすることができる。また、本発明の一側面によれば、優先順位の基に複数のマスタがアクセスする場合、所定の期間においてより確実にアクセスするとともに、いずれのマスタもアクセスできない期間をより少なくすることができる。
【発明を実施するための最良の形態】
【0031】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【0032】
本発明の一側面の情報処理装置は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段(例えば、図4の変更部171)と、前記所定の期間の長さを制御する制御手段(例えば、図4のカウンタ制御部154)とを備える。
【0033】
前記変更手段には、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる(例えば、図7のステップS14)。
【0034】
前記変更手段には、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更させることができる(例えば、図7のステップS12)。
【0035】
前記制御手段には、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御させ(例えば、図8のステップS31乃至ステップS33)、前記変更手段には、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻させることができる(例えば、図7のステップS14)。
【0036】
前記制御手段には、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御させることができる(例えば、図10のステップS51乃至ステップS53)。
【0037】
前記通信経路は、バス(例えば、図3のバス61)とすることができる。
【0038】
前記複数のデバイス(例えば、図3の画像入力部72など)には、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信させ、前記変更手段には、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更させ、前記制御手段には、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御させることができる。
【0039】
本発明の一側面の情報処理方法は、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法であって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し(例えば、図7のステップS12)、前記所定の期間の長さを制御する(例えば、図8のステップS31乃至ステップS33)ステップを含む。
【0040】
本発明の一側面のプログラムは、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムであって、前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し(例えば、図7のステップS12)、前記所定の期間の長さを制御する(例えば、図8のステップS31)ステップを含む。
【0041】
図3は、本発明の一実施の形態のデジタルビデオカメラの構成の例を示すブロック図である。
【0042】
図3のデジタルビデオカメラ51は、1つのメモリを複数のデバイスで使用する、いわゆるユニファイドメモリアーキテクチャを適用した、画像の記録および再生を行う情報処理装置の一例である。以下、デジタルビデオカメラ51を例にして説明するが、これに限らず、例えば、デジタルスチルカメラまたは音声のレコーダなど、画像または音声などの所定のデータを処理する装置であればよい。
【0043】
デジタルビデオカメラ51は、バス61、CCD(Charge Coupled Device)71、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU(Central Processing Unit)76、記録制御部77、記録部78、画像出力部79、表示部80、およびメモリ81を含むように構成される。
【0044】
また、デジタルビデオカメラ51には、必要に応じてドライブ82が接続される。ドライブ82には、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどのリムーバブルメディア83が必要に応じて装着され、データの授受を行うようになされている。
【0045】
画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、画像出力部79、メモリ81、およびドライブ82は、バス61を介して相互に接続されている。なお、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、および画像出力部79は、マスタの一例である。
【0046】
CCD71は、CCDセンサから構成され、図示せぬレンズにより結像された光の像を光電変換することにより、光をアナログの電気信号に変換する。CCD71は、変換により得られたアナログの電気信号である画像信号を画像入力部72に供給する。
【0047】
なお、CCD71に限らず、例えば、CMOS(Complementary Metal Oxide Semiconductor)センサなど、画素を単位として画像の信号を生成する撮像素子を設けるようにしてもよい。
【0048】
画像入力部72は、CCD71から供給されたアナログの画像信号を、デジタルの画像データに変換する。画像入力部72は、変換により得られた画像データを、バス61を介して、メモリ81に書き込む。
【0049】
画像処理部73は、画像入力部72によってメモリ81に書き込まれた画像データを読み出し、必要に応じて各種の画像処理を適用する。例えば、画像処理部73は、CCD71による光電変換や画像入力部72によるアナログ信号である画像信号の伝送において生じるノイズを低減させるノイズリダクション(NR(Noise Reduction))の処理を画像データに適用したり、画像データに対して各種のエフェクトを施したりする。画像処理部73は、画像処理が適用された画像データを、バス61を介して、メモリ81に書き込む。
【0050】
画像圧縮部74は、画像処理部73によってメモリ81に書き込まれた画像データを読み出し、所定の符号化方式で符号化する。例えば、画像圧縮部74は、MPEG(Moving Pictures Experts Group)2方式で画像データを符号化する。画像圧縮部74は、符号化した画像データを、バス61を介して、メモリ81に書き込む。
【0051】
画像伸張部75は、記録部78に記録されている画像データを、例えば、MPEG2方式などの、符号化されているその画像データの符号化方式で復号する。画像伸張部75は、復号した画像データを、バス61を介して、メモリ81に書き込む。
【0052】
CPU76は、メモリ81に記憶されているプログラムに従って各種の処理を実行する。メモリ81には、CPU76が各種の処理を実行する上において必要なデータなども適宜記憶される。CPU76は、バス61を介して、デジタルビデオカメラ51の全体の動作を制御する。
【0053】
記録制御部77は、例えば、記録時には、画像圧縮部74によってメモリ81に書き込まれた、符号化されたデータを読み出し、記録部78に記録させる。また、例えば、再生時には、記録制御部77は、記録部78に記録されている、符号化された画像データを読み出し、バス61を介して、メモリ81に書き込む。
【0054】
記録部78は、例えば、ハードディスクドライブ、所定のドライブに駆動されるDVD(Digital Versatile Disk)などの光ディスクおよびそのドライブ、またはメモリカードなどの半導体メモリなどからなる。
【0055】
画像出力部79は、バス61を介して、画像処理部73によってメモリ81に書き込まれた画像データを読み出し、画像を表示するための表示データを生成し、表示部80に供給する。
【0056】
表示部80は、例えば、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)などの表示デバイスからなり、画像出力部79から供給される表示データに基づいて、各種の画像を表示する。
【0057】
メモリ81は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)などの半導体メモリにより構成される。
【0058】
以上のような構成により、デジタルビデオカメラ51は、撮像された被写体の画像を記録または再生することができる。
【0059】
デジタルビデオカメラ51のような、画像や音声の記録または再生を行うAV(Audio Visual)機器においては、リアルタイム性が要求される処理とCPU76による処理などのベストエフォートな処理とが混在して実行される。一般的に、リアルタイム性が要求される処理の優先順位は基本的に高くされ、リアルタイム性が要求されない処理の優先順位は低くされる。ビデオ信号の入出力系などは、定められた規格(例えば、CCIR(国際無線通信顧問委員会)-656など)での信号のやりとりになるため、クロック単位でのリアルタイム性が要求される。また、SDRAMなどのメモリ81を介して、ビデオ信号処理などを行う場合には、クロック単位でのリアルタイム性は要求されないが、フレーム単位またはフィールド単位のリアルタイム性が要求され、最低限のフレームレートまたはフィールドレートを確保する必要がある。このようなフレームレートまたはフィールドレートの確保が必要な処理と、CPU76による処理などのベストエフォートな処理とが混在した場合、CPU76などは、画像処理の処理の度合いに応じて、どのくらいのアクセスが出来るかが決まってしまう。しかし、フレームレートまたはフィールドレートを確保する場合、フレーム時間またはフィールド時間で処理が終了できるだけのアクセスが許可されれば、画像処理の優先順位を常に高くしておく必要はない。
【0060】
このように、記録または再生を行う際の、リアルタイム性が要求される処理とベストエフォートな処理とが混在するような場合、図3には図示されないアービタが、アクセスの制限を行い、優先順位の低いものに対しても定期的にアクセスを許可し、バス61の使用率を向上させる。アービタは、独立に設けてバス61に接続されるようにしてもよいし、メモリ81またはCPU76などと一体に設けるようにしてもよい。
【0061】
なお、以下、バス61の図示は省略する。
【0062】
図4は、マスタとアービタとで表したデジタルビデオカメラ51の機能の構成を示すブロック図である。図4において、デジタルビデオカメラ51は、マスタA131、マスタB132、マスタC133、マスタD134、アービタ135、およびCPU76から構成されている。
【0063】
マスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれは、複数のデバイスの一例であり、画像入力部72、画像処理部73、画像圧縮部74、画像伸張部75、CPU76、記録制御部77、および画像出力部79のいずれかである。例えば、マスタA131は、画像入力部72であり、マスタB132は、画像処理部73であり、マスタC133は、画像圧縮部74であり、マスタD134は、記録制御部77である。
【0064】
図4において、マスタA131、マスタB132、マスタC133、およびマスタD134が、アービタ135に接続されている。マスタA131、マスタB132、マスタC133、およびマスタD134は、アービタ135に対してそれぞれアクセスの要求を出す。アービタ135は、マスタA131、マスタB132、マスタC133、およびマスタD134にあらかじめ定められている優先順位に基づいて、図示せぬバス61を介したマスタA131、マスタB132、マスタC133、およびマスタD134のアクセスの調停を行う。
【0065】
アービタ135は、アクセス要求受信部151、優先順位制御部152、アクセス許可送信部153、カウンタ制御部154、およびレジスタ設定部155を含むように構成される。
【0066】
アクセス要求受信部151は、アービタ135に接続されているマスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれからのアクセスの要求を受信する。アクセス要求受信部151は、アクセスの要求の受信を優先順位制御部152に通知する。
【0067】
優先順位制御部152は、マスタA131、マスタB132、マスタC133、およびマスタD134のそれぞれの優先順位を予め定め、また、マスタA131、マスタB132、マスタC133、およびマスタD134のうち、所定のものの優先順位を変えるように、優先順位を制御する。
【0068】
優先順位制御部152は、アクセス要求受信部151からアクセスの要求の受信が通知されると、アクセスを要求してきたマスタA131、マスタB132、マスタC133、またはマスタD134のうち、最も優先順位の高いものを選択する。そして、優先順位制御部152は、マスタA131、マスタB132、マスタC133、またはマスタD134のいずれかの選択をアクセス許可送信部153に通知する。すなわち、優先順位制御部152は、マスタA131、マスタB132、マスタC133、またはマスタD134のそれぞれの優先順位に基づいて、マスタA131、マスタB132、マスタC133、およびマスタD134の中から、アクセスを許可する1つを決定する。
【0069】
また、優先順位制御部152は、変更部171およびカウンタ172を含むように構成される。
【0070】
変更部171は、マスタA131、マスタB132、マスタC133、またはマスタD134のうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する。また、変更部171は、所定の期間が終了したときに、そのデバイスの第2の優先順位を、第1の優先順位に戻す。
【0071】
以下、優先順位が変更されるマスタを制限対象マスタと称する。
【0072】
より具体的には、例えば、変更部171は、図5で示されるように、アービタ135に接続されている優先1のマスタA131、優先2のマスタB132、優先3のマスタC133、および優先4のマスタD134のうちのいずれかを、アクセスが制限されるマスタである制限対象マスタとし、所定の期間だけ、優先5のマスタ、すなわち最も優先順位の低いマスタとして扱われるように、アービタ135における優先順位を変更し、所定の期間が終了すると、その優先順位を元に戻す。
【0073】
また、例えば、変更部171は、制限対象マスタからのアクセスの要求に対して応答したときに、制限対象マスタの優先順位である第1の優先順位を、第2の優先順位に変更する。すなわち、変更部171は、所定のデバイスからのアクセスの要求に対して応答したときに、所定のデバイスの優先順位である第1の優先順位を、第2の優先順位に変更する。
【0074】
カウンタ172は、アービタ135の制御の基準となるクロックをカウントし、カウンタ値を変更部171に供給する。変更部171は、カウンタ172のカウンタ値が所定の値である制限値になった場合、所定のデバイスの優先順位を変更する。
【0075】
アクセス許可送信部153は、優先順位制御部152によって決定された、アクセスを許可する、マスタA131、マスタB132、マスタC133、およびマスタD134の中のいずれかに、アクセスの許可を示す応答を送信する。
【0076】
カウンタ制御部154は、制限対象マスタの優先順位が変更されている期間の長さを制御する。より具体的には、カウンタ制御部154は、カウンタ172の動作を制御することで、制限対象マスタの優先順位が変更されている期間の長さを制御する。
【0077】
レジスタ設定部155は、CPU76の制御に基づいて、優先順位が変更される制限対象マスタを指定する値を設定したり、カウンタ172のカウンタ値の制限値を設定したりする。制限値は、制限対象マスタの優先順位が変更されている期間の長さを決定するための値である。
【0078】
なお、CPU76とは別にCPUを設けて、CPU76とは別のCPUが、レジスタ設定部155に、制限対象マスタを指定する値を設定したり、カウンタ172のカウンタ値の制限値を設定したりするようにしてもよい。
【0079】
次に、要求から応答までのディレイを1クロックとし、優先1のマスタA131、優先2のマスタB132、優先3のマスタC133、および優先4のマスタD134のうちの、マスタA131を制限対象マスタとし、所定の期間において、マスタA131の優先順位を優先5とする場合の例について、図6のタイミングチャートを参照して説明する。
【0080】
図6において、上から順に、クロック、マスタA131の要求、マスタB132の要求、マスタC133の要求、マスタD134の要求、マスタA制限フラグ、マスタA131への応答、マスタB132への応答、マスタC133への応答、およびマスタD134への応答のそれぞれのタイミングチャートが示されている。また、時刻T1乃至T23は、クロックの立ち上がりのタイミングを示している。
【0081】
なお、マスタA制限フラグが立っていない期間において、マスタA131の優先順位は優先1とされ、マスタA制限フラグが立っている期間において、マスタA131の優先順位は優先5とされる。
【0082】
時刻T3において、マスタA131およびマスタB132から同時にアクセスの要求が発生すると、アービタ135が、優先2のマスタB132に対して優先順位のより高い優先1のマスタA131に応答し、マスタB132に応答しない。すなわち、アービタ135は、マスタA131にアクセスを許可する。したがって、時刻T3において、マスタA131はアクセスし、マスタB132はアクセスしない。例えば、マスタA131は、バス61を介して、マスタB132、マスタC133、マスタD134、またはメモリ81のいずれかにアクセスする。
【0083】
時刻T5において、マスタB132およびマスタC133から同時にアクセスの要求が発生すると、アービタ135が、優先3のマスタC133に対して優先順位のより高い優先2のマスタB132に応答し、マスタC133に応答しない。すなわち、アービタ135は、マスタB132にアクセスを許可する。したがって、時刻T5において、マスタB132はアクセスし、マスタC133はアクセスしない。例えば、マスタB132は、バス61を介して、マスタA131、マスタC133、マスタD134、またはメモリ81のいずれかにアクセスする。
【0084】
時刻T7において、マスタC133のみからアクセスの要求が発生すると、アービタ135が、マスタC133に応答する。すなわち、アービタ135は、マスタC133にアクセスを許可する。したがって、時刻T7において、マスタC133はアクセスする。例えば、マスタC133は、バス61を介して、マスタA131、マスタB132、マスタD134、またはメモリ81のいずれかにアクセスする。
【0085】
また、時刻T9においては、マスタD134のみからアクセスの要求が発生しているので、アービタ135が、マスタD134に応答し、時刻T9において優先順位の最も低い優先4のマスタD134がアクセスする。すなわち、アービタ135は、マスタD134にアクセスを許可する。例えば、マスタD134は、バス61を介して、マスタA131、マスタB132、マスタC133、またはメモリ81のいずれかにアクセスする。
【0086】
時刻T10乃至T20の間は、例えば、マスタA131に対するアクセスを制限するマスタA制限フラグが立っているので、この間のマスタA131は、マスタB132、マスタC133、およびマスタD134のいずれよりも優先順位の低い、優先5のマスタとして扱われる。
【0087】
例えば、時刻T11において、マスタA131、マスタB132およびマスタC133から同時にアクセスの要求が発生すると、アービタ135は、時刻T11において優先5のマスタA131および優先3のマスタC133に対して優先順位のより高い優先2のマスタB132に応答し、マスタA131およびマスタC133に応答しない。すなわち、アービタ135は、マスタB132にアクセスを許可する。したがって、時刻T11において、マスタB132はアクセスし、マスタA131およびマスタC133はアクセスしない。
【0088】
同様にして、時刻T13において、マスタA131、マスタC133およびマスタD134から同時にアクセスの要求が発生すると、アービタ135は、時刻T13において優先5のマスタA131および優先4のマスタD134に対して優先順位のより高い優先3のマスタC133に応答し、マスタA131およびマスタD134に応答しない。すなわち、アービタ135は、マスタC133にアクセスを許可する。したがって、時刻T13において、マスタC133はアクセスし、マスタA131およびマスタD134はアクセスしない。
【0089】
さらに、時刻T15において、マスタA131およびマスタD134から同時にアクセスの要求が発生すると、アービタ135は、時刻T15において優先5のマスタA131に対して優先順位のより高い優先4のマスタD134に応答し、マスタA131に応答しない。すなわち、アービタ135は、マスタD134にアクセスを許可する。したがって、時刻T15において、マスタD134はアクセスし、マスタA131はアクセスしない。
【0090】
また、時刻T17において、マスタA131からのアクセスの要求が発生し、マスタB132乃至マスタD134からアクセスの要求が発生しないので、アービタ135は、マスタA131に応答する。したがって、時刻T17において、マスタA131はアクセスする。
【0091】
さらに、時刻T19において、マスタA131およびマスタB132から同時にアクセスの要求が発生すると、時刻T11の場合と同様に、アービタ135は、マスタB132に応答し、マスタB132がアクセスする。
【0092】
時刻T20以降、マスタA制限フラグが立っていないので、時刻T20以降は、マスタA131は、本来の、優先順位の最も高い、優先1のマスタとして扱われる。
【0093】
例えば、時刻T21において、マスタA131およびマスタB132から同時にアクセスの要求が発生しているので、アービタ135は、時刻T21において優先2のマスタB132に対して優先順位のより高い優先1のマスタA131に応答し、マスタB132に応答しない。すなわち、アービタ135は、マスタA131にアクセスを許可する。したがって、時刻T21において、マスタA131はアクセスし、マスタB132はアクセスしない。
【0094】
また、例えば、時刻T23において、マスタA131、マスタB132、およびマスタD134から同時にアクセスの要求が発生しているので、アービタ135は、時刻T23においてマスタA131、マスタB132、およびマスタD134のうち、優先順位の最も高いマスタA131に応答し、時刻T23において、マスタA131がアクセスする。
【0095】
このように、所定の期間、優先順位の高いマスタのその優先順位を低くすることで、本来、優先順位の高いマスタのアクセスを制限し、これによって、優先順位の低いマスタにアクセスさせることができる。また、制限対象マスタのアクセスを一定の期間禁止するわけではなく、制限対象マスタの優先順位を低くするだけなので、優先順位を低くすることでアクセスを制限している状態であっても、他に要求を出すマスタがなければ、制限対象マスタはアクセスすることができる。
【0096】
このように、マスタについてアクセスが禁止される期間が生じることがない。これにより、マスタからアクセスの要求が生じると、いずれかのマスタがアクセスできるので、いずれかのマスタがアクセスしたいにもかかわらずバスが使用されない期間が生じることがなく、バスの使用率が向上する。
【0097】
次に、優先順位制御部152による、優先順位の制御の処理について説明する。
【0098】
図7は、アービタ135のクロックごとに実行される、優先順位の制御の処理の例を示すフローチャートである。
【0099】
ステップS11において、優先順位制御部152は、アクセス許可送信部153が制限対象マスタに、応答、すなわち、アクセス許可を送信したか否かを判定する。ステップS11において、アクセス許可が送信されたと判定された場合、処理は、ステップS12に進む。
【0100】
ステップS12において、優先順位制御部152の変更部171は、制限対象マスタの優先順位を変更する。より具体的には、例えば、変更部171は、制限対象マスタの優先順位を下げて、処理は終了する。
【0101】
一方、ステップS11において、制限対象マスタにアクセス許可が送信されていないと判定された場合、処理は、ステップS13に進む。
【0102】
ステップS13において、優先順位制御部152は、クロックごとにカウントアップされるカウンタ172のカウンタ値が、レジスタ設定部155に設定されている制限値になったか否かを判定する。ステップS13において、カウンタ値が制限値になっていないと判定された場合、制限対象マスタの優先順位を下げておくべき期間なので、制限対象マスタの優先順位を戻さないで、そのまま、処理は終了する。
【0103】
一方、ステップS13において、カウンタ値が制限値になったと判定された場合、制限対象マスタの優先順位を下げておくべき期間が経過したので、処理はステップS14に進む。
【0104】
ステップS14において、優先順位制御部152の変更部171は、制限対象マスタの優先順位を元に戻して、処理は終了する。
【0105】
このように、優先順位制御部152は、制限対象マスタの優先順位を、制限対象マスタのアクセスが許可されると本来の優先順位ではないアクセスを制限する優先順位に変更し、アクセスが制限された状態でカウンタ値が制限値になると、元の優先順位に戻す。
【0106】
ここで、制限対象マスタのアクセスが制限される期間、すなわち制限対象マスタの優先順位を変更しておく期間の長さは、例えば、ステップS13においてカウンタ値と比較される制限値を変更したり、カウンタ172をリセットするなどのカウンタ172の動作を制御することで、制御される。
【0107】
次に、カウンタ制御部154による、カウンタ172の動作の制御の処理について説明する。
【0108】
図8は、アービタ135のクロックごとに実行される、カウンタ172の動作の制御の処理の例を示すフローチャートである。
【0109】
ステップS31において、カウンタ制御部154は、カウンタ172を動作させる。ステップS32において、カウンタ制御部154は、カウンタ172のカウンタ値が、レジスタ設定部155に設定されている制限値になったか否かを判定する。ステップS32において、カウンタ172のカウンタ値が制限値になったと判定された場合、ステップS33に進み、カウンタ制御部154は、カウンタ172のカウンタ値をリセットして、処理は終了する。カウンタ値がリセットされると、例えば、カウンタ値は、0になる。
【0110】
ステップS32において、カウンタ172のカウンタ値が制限値になっていないと判定された場合、カウンタ172のカウンタ値はリセットされず、処理は終了する。
【0111】
このように、例えば、カウンタ172は、他の処理に依存せず、カウントアップしたカウンタ値が一定の周期ごとにリセットされる、いわゆるフリーランのカウンタとして動作させられる。
【0112】
ここで、カウンタ172が、フリーランのカウンタとして動作している場合の、マスタA131、マスタB132、およびマスタC133のそれぞれの動作、並びにアービタ135による制限対象マスタの優先順位の変更について説明する。
【0113】
図9は、カウンタ172がフリーランで動作している場合の、マスタA131、マスタB132、およびマスタC133の動作のタイミングチャートの例である。なお、図9の例において、マスタB132を制限対象マスタとして説明する。
【0114】
図9において、上から順に、カウンタ172のカウンタ値、マスタA131の要求、マスタB132の要求、およびマスタC133の要求のそれぞれのタイミングチャートが示されている。また、図9において、タイミングチャートの上側には、時刻T0乃至T11が示され、タイミングチャートの下側には、アービタ135において変更される、制限対象マスタであるマスタB132のそれぞれの時刻における優先順位を示す。カウンタ制御部154は、Tm乃至Tm+2(mは正の整数)を周期とするフリーランのカウンタとしてカウンタ172を動作させる。
【0115】
時刻T0において、カウンタ制御部154は、カウンタ172の動作を開始させる。マスタA131およびマスタB132からのアクセスの要求は発生せず、マスタC133からのアクセスの要求のみが発生している。このとき、マスタB132の優先順位は、優先2である。
【0116】
時刻T1において、マスタB132からのアクセスの要求が発生する。同時に、マスタC133からのアクセスの要求も発生しているが、優先順位のより高いマスタB132のアクセスが許可される。制限対象マスタであるマスタB132のアクセスが許可されると、優先順位制御部152の変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0117】
時刻T2において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値は、リセットされ、カウンタ172は、再びカウントアップを開始する。
【0118】
このように、時刻T1乃至T2の間、マスタB132の優先順位が優先5に下げられるので、マスタB132からのアクセスの要求があっても、マスタA131からのアクセスの要求がなければ、マスタB132の本来の優先順位である優先2より優先順位が低く、マスタB132の変更された優先順位である優先5より優先順位が高い優先3のマスタC133からのアクセスが可能となる。
【0119】
時刻T2乃至T3の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時にアクセスの要求が発生しているが、優先1のマスタA131のアクセスが許可される。
【0120】
時刻T3の前後において、マスタC133から継続してアクセスが要求され、時刻T3の前に、マスタA131からのアクセスの要求が立ち下がり、時刻T3において、マスタB132からのアクセスの要求が立ち下がっているので、優先3であるマスタC133に対して優先順位のより高い優先2のマスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0121】
時刻T4において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ制御部154は、カウンタ172の動作を継続させるとともに、カウンタ172のカウンタ値をリセットするので、カウンタ172は、再びカウントアップを開始する。
【0122】
時刻T3乃至T4の間、マスタB132の優先順位が優先5に下げられるので、マスタB132からのアクセスの要求があっても、マスタA131からのアクセスの要求がなければ、マスタB132の本来の優先順位である優先2より優先順位が低く、マスタB132の変更された優先順位である優先5より優先順位が高い優先3のマスタC133からのアクセスが可能となる。
【0123】
時刻T4乃至T5の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時に要求が発生しているが、優先1のマスタA131のアクセスが許可される。
【0124】
時刻T5の前後において、マスタC133から継続してアクセスが要求され、時刻T5の前に、マスタA131からのアクセスの要求が立ち下がり、時刻T5において、マスタB132からのアクセスの要求が立ち下がっているので、優先3であるマスタC133に対して優先順位のより高い優先2のマスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。
【0125】
時刻T6において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。
【0126】
時刻T5乃至T6の間、マスタB132の優先順位は、優先5に下げられる。
【0127】
時刻T6乃至T7の間、マスタA131乃至マスタC133のいずれもアクセスの要求を発生しない。また、時刻T6乃至T7の間、マスタB132の優先順位は、優先2である。
【0128】
時刻T7において、マスタB132からの要求だけが発生しているので、マスタB132のアクセスが許可される。マスタB132のアクセスが許可されると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先5に下げる。また、時刻T7乃至T8の間は、マスタA131またはマスタC133からの要求が発生しないので、マスタB132の優先順位が優先5であっても、マスタB132のアクセスは許可される。
【0129】
時刻T8において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。さらに、マスタB132からの要求だけが発生しているので、マスタB132のアクセスが許可され、変更部171は、アービタ135におけるマスタB132の優先順位を、即座に優先5に下げる。すなわち、時刻T8において、マスタB132の優先順位は、1クロック分の時間だけ優先2に戻るが、すぐに優先5に下がる。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。時刻T8乃至T9の間は、時刻T7乃至T8の間と同様、マスタA131またはマスタC133からの要求が発生しないので、マスタB132の優先順位が優先5であっても、マスタB132のアクセスは許可される。
【0130】
時刻T9において、マスタA131、マスタB132、およびマスタC133からのアクセスの要求が発生する。時刻T9において、優先1であるマスタA131、優先5であるマスタB132、および優先3であるマスタC133のうち、最も優先順位の高い優先1のマスタA131のアクセスが許可される。
【0131】
時刻T10において、カウンタ172のカウンタ値が制限値になると、変更部171は、アービタ135におけるマスタB132の優先順位を、優先2に戻す。また、このとき、カウンタ172のカウンタ値はリセットされ、カウンタ172は、再びカウントアップを開始する。
【0132】
時刻T10乃至T11の間は、マスタA131、マスタB132、およびマスタC133のそれぞれから同時にアクセスが要求されているが、優先1のマスタA131のアクセスが許可される。すなわち、マスタB132のアクセスは許可されないので、マスタB132の優先順位は優先2のままで変わらない。
【0133】
時刻T11において、カウンタ172のカウンタ値が制限値になると、カウンタ制御部154は、カウンタ172のカウンタ値をリセットさせる。
【0134】
このように、アービタ135は、制限対象マスタのアクセスが許可された場合、制限対象マスタの優先順位をより低い優先順位にするとともに、制限対象マスタの優先順位を、一定の周期の間に、一度はアクセス制限されていない元の優先順位とする。このようにすることで、制限対象マスタの優先順位より低い優先順位のマスタにアクセスを適宜許可することができる。
【0135】
例えば、ユニファイドメモリアーキテクチャを採用するデジタルビデオカメラ51のフレームまたはフィールドを単位とする動画像の画像処理において、1フレーム時間内に1フレームまたは1フィールド時間内に1フィールドの画像データのメモリ81からの読み出しまたは書き込みをする処理を行うような場合、1フレーム時間または1フィールド時間においてそれぞれのマスタのアクセスを許可し、少なくとも1フレーム時間内に1フレームの処理または1フィールド時間内に1フィールドの処理がそれぞれのマスタにおいて終了するように、マスタの優先順位が変更され、また、優先順位を変更する期間の長さが制御される。これにより、メモリ81へのアクセスを平均化することができる。
【0136】
なお、カウンタ値の制限値は、例えば、フレームレートまたはフィールドレートを確保する場合には、処理に必要な最低限の時間とバス61にアクセスする必要のある回数とから決定される。
【0137】
図10は、アービタ135のクロックごとに実行される、カウンタ172の動作の制御の処理の他の例を示すフローチャートである。
【0138】
ステップS51において、カウンタ制御部154は、優先順位制御部152からの信号を基に、制限対象マスタからアクセス要求されているか否かを判定する。すなわち、カウンタ制御部154は、アクセス要求受信部151が制限対象マスタからのアクセスの要求を受信しているか否かを判定する。ステップS51において、制限対象マスタからアクセス要求されていると判定された場合、処理は、ステップS52に進む。
【0139】
ステップS52において、カウンタ制御部154は、優先順位制御部152からの制限対象マスタの優先順位を示す信号を基に、制限対象マスタの優先順位が下がっているか否かを判定する。ステップS52において、制限対象マスタの優先順位が下がっていると判定された場合、処理は、ステップS53に進む。
【0140】
ステップS53において、カウンタ制御部154は、カウンタ172を動作させ、処理は終了する。既にカウンタ172が動作している場合、カウンタ制御部154は、カウンタ172の動作を継続させ、カウンタ172が動作していない場合、カウンタ制御部154は、カウンタ172の動作を開始させる。
【0141】
一方、ステップS51において、制限対象マスタからアクセス要求されていないと判定された場合、または、ステップS52において、制限対象マスタの優先順位が下がっていない、すなわち元の優先順位であると判定された場合、処理は、ステップS54に進む。
【0142】
ステップS54において、カウンタ制御部154は、カウンタ172のカウンタ値をリセットして、処理は終了する。
【0143】
このように、カウンタ制御部154は、カウンタ172に、制限対象マスタからのアクセスの要求があり、かつ、制限対象マスタの優先順位が下がっているときのみ動作させ、その動作を継続させる。
【0144】
ここで、カウンタ172が、制限対象マスタの優先順位が下がり、かつ、制限対象マスタからアクセス要求を受けている間のみ動作する場合の、マスタA131、マスタB132、およびマスタC133のアクセスの動作、並びにアービタ135による制限対象マスタの優先順位の変更について説明する。
【0145】
以下で説明する例において、制限対象マスタの優先順位が元の優先順位から下げられた状態から、処理は開始される。
【0146】
図11は、制限対象マスタの優先順位が下がり、かつ、制限対象マスタからアクセス要求を受けている間のみカウンタ172が動作する場合の、マスタA131、マスタB132、およびマスタC133の動作のタイミングチャートの例である。なお、図11の例において、図9と同様に、マスタB132を制限対象マスタとして説明する。
【0147】
図11において、上から順に、カウンタ172のカウンタ値、マスタA131のアクセスの要求、マスタB132のアクセスの要求、およびマスタC133のアクセスの要求のそれぞれのタイミングチャートが示されている。また、図11において、タイミングチャートの上側には、時刻T0乃至T7が示され、タイミングチャートの下側には、アービタ135において変更される、制限対象マスタであるマスタB132のそれぞれの時刻における優先順位を示す。
【0148】
時刻T0と時刻T1との間の時刻から時刻T2の直前までの期間、時刻T3と時刻T4との間の時刻から時刻T5の直前までの期間、および時刻T6以降の期間において、マスタA131からアクセスが継続して要求されている。
【0149】
時刻T0から時刻T2までの期間、時刻T3から時刻T5までの期間、および時刻T6以降の期間において、マスタB132からアクセスが継続して要求されている。また、時刻T5と時刻T6との間において、1クロックの期間だけ、4回、マスタB132からアクセスが要求されている。
【0150】
時刻T0から時刻T5と時刻T6との間の時刻までの期間、および時刻T6以降の期間において、マスタC133からアクセスが継続して要求されている。
【0151】
時刻T0から時刻T1までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131または優先3のマスタC133のいずれかからアクセスが継続して要求されているので、マスタA131またはマスタC133のいずれか一方のアクセスが許可される。
【0152】
マスタB132の優先順位が優先5である状態から処理が開始され、時刻T0において、マスタB132からのアクセスの要求が開始され、時刻T0から時刻T2までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T0から時刻T2までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0153】
時刻T1において、カウンタ172のカウンタ値が制限値になるので、時刻T1において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0154】
時刻T1において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0155】
時刻T2において、マスタA131からのアクセスの要求がなくなり、マスタB132およびマスタC133からアクセスが要求されているので、優先3のマスタC133より優先順位の高い優先2のマスタB132からのアクセスが許可される。
【0156】
時刻T2において、マスタB132からのアクセスが許可されると、優先順位制御部152の変更部171は、マスタB132の優先順位を優先5に下げる。
【0157】
このように、時刻T1から時刻T2までの期間、マスタB132の優先順位は優先2とされる。
【0158】
時刻T1から時刻T2までの期間、マスタB132の優先順位が元に戻っているので、カウンタ制御部154は、クロックごとに、カウンタ172のカウンタ値をリセットする。したがって、時刻T1から時刻T2までの期間、カウンタ172はカウントアップしない。
【0159】
また、時刻T2から時刻T3までの期間、マスタB132は、アクセスを要求しないので、時刻T2から時刻T3までの期間、カウンタ172はカウントアップしない。
【0160】
時刻T2から時刻T3までの期間、カウンタ172はカウントアップしないので、カウンタが制限値になることはなく、マスタB132の優先順位は優先5とされる。
【0161】
時刻T3から時刻T4までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131または優先3のマスタC133のいずれかからアクセスが継続して要求されているので、マスタA131またはマスタC133のいずれか一方のアクセスが許可される。
【0162】
マスタB132の優先順位が優先5であり、時刻T3において、マスタB132からのアクセスの要求が開始され、時刻T3から時刻T5までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T3から時刻T5までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0163】
時刻T4において、カウンタ172のカウンタ値が制限値になるので、時刻T4において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0164】
時刻T4において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0165】
時刻T5において、マスタA131からのアクセスの要求がなくなり、マスタB132およびマスタC133からアクセスが要求されているので、優先3のマスタC133より優先順位の高い優先2のマスタB132からのアクセスが許可される。
【0166】
時刻T5において、マスタB132からのアクセスが許可されると、優先順位制御部152の変更部171は、マスタB132の優先順位を優先5に下げる。
【0167】
このように、時刻T4から時刻T5までの期間、マスタB132の優先順位は優先2とされる。
【0168】
時刻T4から時刻T5までの期間、マスタB132の優先順位が元に戻っているので、カウンタ制御部154は、クロックごとに、カウンタ172のカウンタ値をリセットする。したがって、時刻T4から時刻T5までの期間、カウンタ172はカウントアップしない。
【0169】
また、時刻T4から時刻T5までの期間において、マスタB132は、1クロックの期間だけ、4回、アクセスを要求する。しかしながら、マスタB132からのアクセスの要求がなくなると、カウンタ制御部154は、カウンタ172に、カウンタ値をリセットさせるので、リセットされたときのカウンタ172のカウンタ値が維持される。
【0170】
時刻T5から時刻T6までの期間、カウンタ172はカウントアップしないので、カウンタ値が制限値になることはなく、マスタB132の優先順位は優先5とされる。
【0171】
時刻T6から時刻T7までの期間において、優先5のマスタB132より優先順位の高い優先1のマスタA131および優先3のマスタC133からアクセスが継続して要求されているので、マスタA131のアクセスが許可される。
【0172】
マスタB132の優先順位が優先5であり、時刻T6において、マスタB132からのアクセスの要求が開始され、時刻T6から時刻T7以降までの期間において、マスタB132からのアクセスの要求が継続されると、制限対象マスタであるマスタB132の優先順位が下がり、かつ、制限対象マスタからアクセスの要求を受けている間のみカウンタ172が動作するので、時刻T6から時刻T7までの期間のうち、制限対象マスタであるマスタB132の優先順位が下がっている期間において、カウンタ172がカウントアップすることになる。
【0173】
時刻T7において、カウンタ172のカウンタ値が制限値になるので、時刻T7において、優先順位制御部152の変更部171は、マスタB132の優先順位を元に戻す。マスタB132の優先順位は、優先2となる。マスタB132の優先順位が元に戻るので、カウンタ制御部154は、カウンタ172のカウンタ値をリセットする。
【0174】
時刻T7において、優先2のマスタB132より優先順位の高い優先1のマスタA131からアクセスが要求されているので、マスタA131のアクセスが許可される。
【0175】
このように、アービタ135は、制限対象マスタからのアクセス要求が発生してから、カウンタ値が制限値になるまでの一定のディレイの後に、制限対象マスタにアクセスを許可することができる。
【0176】
これにより、一定のレイテンシをもって動作させることができ、アクセスの集中を緩和させることができる。
【0177】
以上のようにして、リアルタイム性を要求するものと、ベストエフォートな異なる周期で動作するものとが、1つの共通のバス上に存在する構造において、リアルタイム性を維持しつつ、ベストエフォートで動作するものにも効率よくアクセスさせることが可能となり、バス61へのアクセス効率を改善し、使用率を向上させることができる。また、特にモバイル機器のような、限られたリソースを有効に利用する必要があるものの場合、マスタ側の構造によらず、アービタ側のみで対応できるので、構造の単純化、小規模化を図ることができる。
【0178】
なお、上述した説明において、カウンタ値などの値は、全てソフトウェアによる制御を可能とし、システム要件に応じて、任意の対応が可能となるものとする。
【0179】
また、上述した説明において、1つのマスタをアクセス制限の対象とするようにしたが、全てのマスタをアクセス制限の対象とするようにしてもよい。さらに、アクセス制限として、本来の優先順位よりも低い優先順位で扱われるようにしたが、本来の優先順位よりも高い優先順位で扱われるようにしてもよい。
【0180】
以上のように、複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の経路を介しての複数のデバイスの間の通信を制御するようにした場合には、メモリに対してアクセスすることができる。また、複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、所定の期間の長さを制御するようにした場合には、メモリに対して定期的かつ効率的にアクセスすることができる。
【0181】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【0182】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図3に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア83、または、プログラムが一時的もしくは永続的に格納される図示せぬROMや、記録部78を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである図示せぬ通信部を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【0183】
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0184】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【0185】
【図1】従来の固定優先順位方式の装置の構成を示すブロック図である。
【図2】従来のマスタのアクセスの要求および応答のタイミングチャートの例である。
【図3】本発明の一実施の形態のデジタルビデオカメラの構成の例を示すブロック図である。
【図4】マスタとアービタとで表したデジタルビデオカメラの機能の構成を示すブロック図である。
【図5】アービタの機能を説明する図である。
【図6】各マスタのアクセスを説明するタイミングチャートである。
【図7】優先順位の制御の処理を説明するフローチャートである。
【図8】カウンタの動作の制御の処理の例を説明するフローチャートである。
【図9】各マスタのアクセスの要求と優先順位とを説明するタイミングチャートである。
【図10】カウンタの動作の制御の処理の他の例を説明するフローチャートである。
【図11】各マスタのアクセスの要求と優先順位とを説明するタイミングチャートである。
【符号の説明】
【0186】
51 デジタルビデオカメラ, 61 バス, 71 CCD, 72 画像入力部, 73 画像処理部, 74 画像圧縮部, 75 画像伸張部, 76 CPU, 77 記録制御部, 78 記録部, 79 画像出力部, 80 表示部, 81 メモリ, 82 ドライブ, 83 リムーバブルメディア, 135 アービタ, 151 アクセス要求受信部, 152 優先順位制御部, 153 アクセス許可送信部, 154 カウンタ制御部, 155 レジスタ設定部, 171 変更部, 172 カウンタ
【特許請求の範囲】
【請求項1】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置において、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段と、
前記所定の期間の長さを制御する制御手段と
を備える情報処理装置。
【請求項2】
前記変更手段は、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻す
請求項1に記載の情報処理装置。
【請求項3】
前記変更手段は、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更する
請求項2に記載の情報処理装置。
【請求項4】
前記制御手段は、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御し、
前記変更手段は、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻す
請求項3に記載の情報処理装置。
【請求項5】
前記制御手段は、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御する
請求項4に記載の情報処理装置。
【請求項6】
前記通信経路は、バスである
請求項1に記載の情報処理装置。
【請求項7】
前記複数のデバイスは、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信し、
前記変更手段は、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更し、
前記制御手段は、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御する
請求項6に記載の情報処理装置。
【請求項8】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法において、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、
前記所定の期間の長さを制御する
ステップを含む情報処理方法。
【請求項9】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムにおいて、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、
前記所定の期間の長さを制御する
ステップを含むプログラム。
【請求項1】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置において、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更する変更手段と、
前記所定の期間の長さを制御する制御手段と
を備える情報処理装置。
【請求項2】
前記変更手段は、前記所定の期間が終了したときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻す
請求項1に記載の情報処理装置。
【請求項3】
前記変更手段は、前記所定のデバイスからの通信の要求に対して応答したときに、前記所定のデバイスの優先順位である第1の優先順位を、前記第2の優先順位に変更する
請求項2に記載の情報処理装置。
【請求項4】
前記制御手段は、基準となるクロックごとにカウントし、カウントした値が所定の閾値になったときに、前記カウントした値をリセットするカウンタの動作を制御することによって、前記所定の期間の長さを制御し、
前記変更手段は、前記カウントした値が前記閾値になったときに、前記所定のデバイスの前記第2の優先順位を、前記第1の優先順位に戻す
請求項3に記載の情報処理装置。
【請求項5】
前記制御手段は、前記所定のデバイスからの通信の要求があり、かつ、前記所定のデバイスの優先順位が第2の優先順位に変更されているときにカウンタを動作させるように、カウンタの動作を制御する
請求項4に記載の情報処理装置。
【請求項6】
前記通信経路は、バスである
請求項1に記載の情報処理装置。
【請求項7】
前記複数のデバイスは、前記通信経路を介して、フレームまたはフィールドを単位とする画像データを相互に通信し、
前記変更手段は、フレームに割り当てられた時間であるフレーム時間内またはフィールドに割り当てられた時間であるフィールド時間内に少なくともフレームまたはフィールドの画像処理が行われるように、前記所定の期間だけ、前記所定のデバイスの優先順位を変更し、
前記制御手段は、前記フレーム時間または前記フィールド時間を確保するように、前記所定の期間の長さを制御する
請求項6に記載の情報処理装置。
【請求項8】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する情報処理装置の情報処理方法において、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、
前記所定の期間の長さを制御する
ステップを含む情報処理方法。
【請求項9】
複数のデバイスにあらかじめ定められている優先順位に基づいて、共通の通信経路を介しての前記複数のデバイスの間の通信を制御する処理を、コンピュータに行わせるプログラムにおいて、
前記複数のデバイスのうちの所定のデバイスの優先順位である第1の優先順位を、所定の期間だけ、第2の優先順位に変更し、
前記所定の期間の長さを制御する
ステップを含むプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2007−334641(P2007−334641A)
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願番号】特願2006−165904(P2006−165904)
【出願日】平成18年6月15日(2006.6.15)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成19年12月27日(2007.12.27)
【国際特許分類】
【出願日】平成18年6月15日(2006.6.15)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]