説明

リソース使用管理装置、リソース使用管理システム及びリソース使用管理装置の制御方法

【課題】複数のデバイスが特定リソースを使用する際のリソース使用周期の始点が既知でない場合でも、あるデバイスに対し特定リソース使用の即応性を考慮しつつリソース使用に一定の制限をかけることによって、別のデバイスに対し所定周期毎に一定時間のリソース使用を保証し得るリソース使用管理装置を提供する。
【解決手段】リソース使用管理装置を適用したバス調停装置500の検出部510は、プロセッサ60に対しメモリ80へのアクセスが許可されたことを検出し、カウンタ130の値を1つ減少させ、遅延回路110の計時を行っていないタイマに計時を開始させる。計時を開始したタイマが、所定周期時間を計時すると、遅延回路110は、カウンタ130の値を1つ増加させる。制御部520は、カウンタ130の値が0より大きい場合にプロセッサ60に対しメモリ80へのアクセスを許可する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はマスタデバイスによる特定リソースの使用時間を制限する技術に関する。
【背景技術】
【0002】
1つ又は複数のLSI(Large Scale Integration)に実装された複数のマスタデバイスに対しリソースを共用させる際に、あるマスタデバイスには、所定時間毎に所定回数のリソース使用を保証しつつ、別のマスタデバイスには、リソース使用要求発生後、なるべく遅延なく使用させたい場合がある。
例えば、マスタデバイスとしてのDMA(Direct Memory Access)コントローラとプロセッサとがリソースとしてのメモリを共用し、DMAコントローラはメモリから動画像データを読み出し、このメモリから読み出された動画像データは再生用デバイスにより逐次再生され、プロセッサはメモリから制御用データ等を読み出し、読み出した制御用データ等を用いてシステムを制御する場合が挙げられる。
【0003】
つまり、動画像データを読み出しながら逐次再生するために、DMAコントローラに対しては所定時間毎に所定回数のメモリアクセスを保証しなければならず、一方、ユーザレスポンスのよい表示画面切替制御等を実現するために、その制御を担うプロセッサに対してはなるべく遅滞なくメモリにアクセスさせる必要があるような場合である。
この際、DMAコントローラに対し所定回数のメモリアクセスを保証するために、プロセッサによるメモリリソースの占有時間、即ちメモリアクセス回数に一定の制限を設けなければならないことがある。
【0004】
このようなリソース使用時間についての制限技術として、メモリバスに接続されたデバイス(以下、「バスマスタ」という)が複数ある場合に、あるバスマスタによるメモリアクセス回数を制限することにより、複数のバスマスタ間のアクセス要求を調停する技術が知られている(例えば、特許文献1)。
以下、特許文献1の調停装置について説明する。
【0005】
特許文献1の調停装置は、所定の転送周期(例えば、63.6μs)毎に一定回数のアクセスを確保させたいバスマスタ(以下、「第1マスタ」という)と第1マスタへの一定回数のアクセスを確保した上で、可能な限りアクセス遅延を低減させたいバスマスタ(以下、「第2マスタ」という)とのメモリアクセス権の調停を行うために、第2マスタに対し所定の転送周期毎に許可できる最大アクセス回数と各バスマスタ間の優先順位とを定義している。
【0006】
例えば、所定の転送周期毎に5回のメモリアクセスが許可できる場合に、第1マスタに対し転送周期毎に確保するアクセス回数が3回であるとすると、第2マスタに対し転送周期毎に許可できる最大アクセス回数を2回と定義し、第2マスタについてはなるべくアクセス遅延を低減させるため、第1マスタより優先順位を高く定義する。
特許文献1の調停装置は、第1マスタからのアクセス要求と第2マスタからのアクセス要求とが競合した場合に、その転送周期における第2マスタによるアクセス回数が最大アクセス回数(2回)より少ないことを条件に、第2マスタに対し優先的にアクセスを許可し、最大アクセス回数(2回)を越える場合には、第2マスタによるアクセスを禁止する。
【0007】
詳細には、調停装置内部のアクセスカウンタには、第2マスタに対し転送周期毎に許可できる残りのアクセス回数を設定し、第2マスタにアクセスが許可される毎にアクセスカウンタの値を1ずつ減少させ、各転送周期の始点において、アクセスカウンタの値を第2マスタに許可できる最大アクセス回数(2回)にリセットする。
そして、第1マスタと第2マスタとのアクセス要求が競合した場合に、アクセスカウンタが0より大きいときは第2マスタにアクセスを許可し、アクセスカウンタが0のときは、第2マスタによるアクセスを禁止し、第1マスタにアクセスを許可する。
【0008】
このようにすることによって、特許文献1の調停装置は、第2マスタに対し、優先的にアクセスを許可するためアクセス遅延を低減できると共に転送周期毎に許可できるアクセス回数を制限できるため、第1マスタに対し転送周期毎に一定のアクセス回数を確保できる。
【特許文献1】特開2005−258867号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかしながら、第1マスタにおける最初の転送周期の始点は、第1マスタが最初にメモリにアクセスしたタイミングに基づき定まるが、この転送周期の始点が第1マスタから調停装置に通知されていない等の理由により、調停装置において転送周期の始点が既知でない場合がある。
このような場合には、アクセスカウンタの値をリセットするタイミングが、第1マスタにおける各転送周期の始点とずれることにより、第2マスタによるアクセス回数を適切に制限できない場合がある。
【0010】
以下、このような場合の一例について図9を用いて説明する。
同図は、特許文献1の調停装置による第1マスタと第2マスタとのメモリアクセス要求の調停結果の一例を示した図である。
この例では、転送周期毎に許可できるメモリアクセス回数は5回であり、第1マスタに対し転送周期毎に確保するアクセス回数は3回であり、第2マスタに対し転送周期毎に許可できる最大アクセス回数は2回である場合を想定している。
【0011】
同図において、タイマ901は特許文献1の調停装置内部のタイマの値を示しており、クロックを受領する毎に初期値4から1ずつ減らし0になると、初期値4にリセットされる。また、転送周期902は、第1マスタ及び第2マスタにおける転送周期を示しており、1転送周期が1〜5のタイムスライスにより構成されている。
本例では、調停装置において転送周期の始点が既知でなく、同図に示すように、タイマ901がリセットされるタイミング(タイマ901が4のとき)と転送周期902の始点(転送周期902が1のとき)とがずれている。
【0012】
第1マスタ903は、第1マスタによるアクセス要求の有無及び成否の状態を示している。同図において、記号「I」は第1マスタがアクセスを要求していない状態を、記号「A」は第1マスタがアクセスを要求しアクセスが許可された状態を、記号「W」は、第1マスタがアクセスを要求しアクセスが許可されなかった状態を示している。
第2マスタ904は、第2マスタによるアクセス要求の有無及び成否の状態を示している。記号「I」、「A」、「W」の内容は第1マスタ903と同様である。また、アクセスカウンタ905は、第2マスタに対し転送周期毎に許可できる残りのアクセス回数を示している。
【0013】
まず、第1マスタに対し、3回のメモリアクセスが確保できているケースについて説明する。
T1、T2は第1マスタのみからアクセスが要求されたタイミングであり、調停装置はT1、T2において第1マスタにアクセスを許可する。
T3は、第1マスタ及び第2マスタからアクセスが要求されたタイミングであり、アクセスカウンタ905が「2」であり、「0」より大きいことから、調停装置はT3において第2マスタにアクセスを許可し、アクセスカウンタ905は1つ減少し「1」になる。
【0014】
T4は、T3と同様、第1マスタ及び第2マスタからアクセスが要求されたタイミングであり、アクセスカウンタ905が「1」であり、「0」より大きいことから、調停装置はT4において第2マスタにアクセスを許可し、アクセスカウンタ905は1つ減少し「0」になる。
T5は、第1マスタのみからアクセス要求がなされたタイミングであり、調停装置はT5において第1マスタにアクセスを許可する。
【0015】
このようにT1〜T5の転送周期においては、第2マスタへのアクセス遅延が低減され、第1マスタに対し転送周期毎に3回のアクセス回数が確保できている。
次に、第1マスタに対し、3回のメモリアクセスが確保できないケースについて説明する。
T7及びT8は、第1マスタ及び第2マスタからアクセス要求がなされたタイミングである。T6においてタイマ901が初期値「4」にリセットされ、アクセスカウンタ905が初期値「2」にリセットされ、アクセスカウンタ905は「0」より大きいため、調停装置はT7、T8において第2マスタにアクセスを許可する。アクセスカウンタ905は1ずつ減少し、「0」になる。
【0016】
T9は、タイマ901が初期値「4」にリセットされ、アクセスカウンタ905が初期値「2」にリセットされるタイミングである。T9、T10においてもT7、T8と同様に、第1マスタ及び第2マスタからアクセス要求がなされているが、アクセスカウンタ905は「0」より大きいため、調停装置はT9、T10において第2マスタにアクセスを許可する。
【0017】
T11は、第1マスタのみからアクセス要求がなされたタイミングであり、調停装置はT11において第1マスタにアクセスを許可する。
このようにT7〜T11の転送周期においては、第2マスタによるアクセス遅延は低減されているが、第1マスタに対し転送周期毎に3回のアクセス回数が確保できていない。
そこで、本発明はかかる問題に鑑みてなされたものであり、複数のデバイスが特定リソースを使用する際のリソース使用周期の始点が既知でない場合でも、あるデバイスに対し特定リソース使用の即応性を考慮しつつリソース使用に一定の制限をかけることによって、別のデバイスに対し所定周期毎に一定時間のリソース使用を保証し得るリソース使用管理装置を提供することを目的とする。
【課題を解決するための手段】
【0018】
上記課題を解決するため、本発明に係るリソース使用管理装置は、外部装置によるリソースの使用に係るリソース使用管理装置であって、カウンタと、前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎に前記カウンタの値を進める検出部と、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を戻す遅延部と、前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行う制御部とを備えることを特徴とする。
【0019】
また、上記課題を解決するために本発明に係るリソース使用管理システムは、外部装置とリソースと当該外部装置による当該リソースの使用に係るリソース使用管理装置とを含むリソース使用管理システムであって、前記リソース使用管理装置は、カウンタと、前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎に前記カウンタの値を進める検出部と、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を戻す遅延部と、前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行う制御部とを備えることを特徴とする。
【0020】
また、上記課題を解決するために本発明に係るリソース使用管理装置の制御方法は、外部装置によるリソースの使用に係るリソース使用管理装置の制御方法であって、検出手段が、前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎にカウンタの値を進めるステップと、遅延手段が、前記検出手段による各検出について、当該検出の所定時間後に前記カウンタの値を戻すステップと、制御手段が、前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行うステップとを備えることを特徴とする。
【0021】
ここで、「カウンタの値を進める」とは、カウンタの値を増加又は減少させることをいい、「カウンタの値を戻す」とは、カウンタの値を進めるのとは逆方向にカウンタの値を戻すことをいい、即ち、カウンタの値を増加させることによりカウンタの値を進める場合にはカウンタの値を減少させることをいい、カウンタの値を減少させることによりカウンタの値を進める場合には、カウンタの値を増加させることをいう。
【0022】
また、外部装置がリソースを使用する必要がある場合には、リソースを使用するための所定の情報(例えば、リソースであるメモリからデータを読み出す際のアドレス情報)をリソースに対し送出する必要がある。
「リソースを使用させる」とは、外部装置が、上記所定の情報を送出する前にリソースの使用を求めるリソース使用要求を送出する場合には、リソース使用管理装置の制御部が、そのリソース使用要求に対する許可応答を送出することをいう。また、外部装置が、リソース使用要求を送出することなく上記所定の情報を送出する場合には、リソース使用管理装置の制御部が、外部装置から送出された所定の情報をリソースに転送することをいう。
【0023】
また、検出部による「検出」とは、制御部から送出される許可応答の検出、又は、検出部により転送される所定の情報の検出をいう。
【発明の効果】
【0024】
上述の構成を備える本発明に係るリソース使用管理装置は、例えば、カウンタの値の初期値として、外部装置が所定時間毎に使用可能なリソースの最大使用回数に相当する値が設定されており、検出部が検出する毎にカウンタの値が1つ減少し、制御部は、カウンタの値が0より大きい場合に外部装置に対しリソースを使用させる判定を行うものとすると、カウンタの値が0になるまで、即ち、予め定められた所定時間毎のリソースの最大使用回数の範囲内で外部装置はリソースの使用が可能であるため、この所定時間毎の最大使用回数を限度に、リソース使用に関する即応性を確保することができる。
【0025】
また、検出部が外部装置に対しリソースを使用させるようにしたことを検出すると、カウンタの値の値が1つ減少し、減少したカウンタの値は所定時間経過するまで増加しない。
即ち、検出する毎に、所定時間、外部装置に対するリソースの使用回数が制限されるため、各単位時間を始点とした、いずれの所定周期時間においても外部装置によるリソース使用回数は最大使用回数以下に制限される。従って、リソースを共用する他の外部装置がある場合には、他の外部装置に対し、所定周期時間毎に一定回数のリソースの使用を保証できる。
【0026】
また、前記制御部は、前記カウンタの値が所定の値である場合に、前記リソースを使用させない判定を行うこととしてもよい。
これにより、例えば、カウンタの初期値を外部装置が所定時間毎に使用可能なリソースの最大使用回数に相当する値とし、検出部が検出する毎カウンタの値が1つ減少し、所定の値を0とした場合に、制御部は、カウンタの値が所定の値(0)であるとき、外部装置にリソースを使用させない判定を行うため、外部装置に対し、所定時間毎の最大使用回数を限度に、リソース使用に関する即応性を確保することができる。
【0027】
また、1つ減少したカウンタの値は、所定時間経過するまで増加しないため、各単位時間を始点とした、いずれの所定周期時間においても外部装置によるリソース使用回数を最大使用回数以下に制限できる。
従って、リソースを共用する他の外部装置がある場合には、他の外部装置に対し、所定周期時間毎に一定回数のリソースの使用を保証できる。
【0028】
また、前記検出部は、前記検出毎に前記カウンタの値を1つ進め、前記遅延部は、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を1つ戻し、前記制御部は、前記カウンタの値と当該カウンタの初期値との差分が、前記所定時間周期毎に前記外部装置が前記リソースを使用可能な単位時間数に相当する値より少ないか否かに基づき、当該外部装置に対し前記リソースを使用させるか否かに係る判定を行うこととしてもよい。
【0029】
これにより、制御部は、現在のカウンタの値とカウンタの初期値との差分が、所定周期時間毎に使用可能な単位時間数(使用回数)より少ないか否かにより判定を行うため、カウンタの初期値の如何によらず、また、カウンタの値を1つ進めることがカウンタの値を増加させるのか減少させるのかにかかわらず、リソースを使用させるか否かの判定を行うことができる。
【0030】
また、前記カウンタの初期値は、2以上の値であり、前記検出部は、前記検出毎に前記カウンタの値を1つ減少させ、前記遅延部は、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を1つ増加させ、前記制御部は、前記カウンタの値が0より大きいか否かに基づき、当該外部装置に対し前記リソースを使用させるか否かに係る判定を行うこととしてもよい。
【0031】
また、前記外部装置はプロセッサであり、前記リソースはメモリであることとしてもよい。
また、前記外部装置は通信端末であり、前記リソースは伝送路であることとしてもよい。
また、前記遅延部は、前記所定時間周期毎に前記外部装置が前記リソースを使用可能な単位時間数に相当する数のタイマを含むものであり、前記検出部による各検出について、当該検出時に計時を行っていないいずれか1つのタイマにより前記所定時間の計時を開始し、所定時間計時後に前記カウンタの値を戻すこととしてもよい。
【0032】
これにより、遅延部は、所定時間周期毎に外部装置がリソースを使用可能な単位時間数に相当する数のタイマを含むため、検出部が、外部装置に対しリソースを使用させるようにしたことを検出する毎に、計時を行っていないタイマにより所定時間を計時することができる。
また、前記遅延部は、前記所定時間を前記単位時間で割った数に相当する段数分の記憶素子を有するシフトレジスタを含むものであり、前記検出部による各検出について、当該検出の際に前記シフトレジスタにデータを入力し、入力されたデータの格納位置を単位時間毎に順次後段に移動させ、データが出力されると前記カウンタの値を戻すこととしてもよい。
【0033】
これにより、シフトレジスタは所定時間を単位時間で割った数に相当する段数の記憶素子を有し、検出部が、外部装置に対しリソースを使用させるようにしたことを検出した際にシフトレジスタにデータを入力し、シフトレジスタに入力されたデータは、単位時間毎に後段の格納位置に順次移動され、検出から所定時間後に出力されるため、検出から所定時間を計時することができる。
【0034】
また、前記リソース使用管理装置は、通常の動作モードである第1のモードと第1のモードより電力消費の少ない第2のモードとを切替えて動作可能なものであり、前記シフトレジスタに保持するデータがない場合に、第2のモードに切り替えて動作することとしてもよい。
これにより、シフトレジスタに保持するデータがない場合には、リソース使用管理装置の動作モードを電力消費の少ない第2モードに切り替えることができるため、電力消費を抑えることができる。
【0035】
また、前記リソース使用管理装置は、更に前記リソースを前記外部装置と時分割で使用する特定外部装置による当該リソースの使用に係る管理を行うものであり、前記制御部は、前記外部装置に対し前記リソースを使用させない判定を行う場合に、前記特定外部装置に対し当該リソースを使用させる判定を行うこととしてもよい。
これにより、例えば、カウンタの初期値を外部装置が所定時間毎に使用可能なリソースの最大使用回数に相当する値とし、検出部が検出する毎にカウンタの値が1つ減少し、制御部は、カウンタの値が0の場合に外部装置に対しリソースを使用させない判定を行うものとすると、カウンタの値が0より大きい場合に、即ち所定時間毎に使用可能な最大使用回数の範囲内で、外部装置はリソースの使用が可能であるため、リソース使用に関する即応性を確保することができる。
【0036】
また、カウンタの値が0の場合に、制御部は、外部装置に対しリソースを使用させない判定を行い、特定外部装置に対しリソースを使用させる判定を行うため、特定外部装置に対し、所定周期時間毎に一定回数のリソースの使用を保証したリソース使用の調停が可能となる。
また、前記リソース使用管理装置は、更に前記リソースを前記外部装置と時分割で使用する特定外部装置による当該リソースの使用に係る管理を行うものであり、前記制御部は、前記特定外部装置がリソースを使用しない期間であることを検知すると、前記カウンタの値にかかわらず、前記外部装置に対し前記リソースを使用させる判定を行うこととしてもよい。
【0037】
これにより、特定外部装置がリソースの使用しない期間であることを検知した場合には、カウンタの値にかかわらず外部装置に対しリソースを使用させる判定を行うことができるため、リソースの使用効率を高めることができる。
また、前記検出部は、前記カウンタの値が所定の値である場合には、前記検出を行わないこととしてもよい。
【0038】
これにより、例えば、検出部は検出毎にカウンタの値を1つ減少させるとし、所定の値を、カウンタの最小値である0とした場合に、制御部が、特定外部装置がリソースの使用しない期間であることを検知し、外部装置に対しリソースを使用させる判定を行ったときに、検出部は、カウンタの値が所定の値(0)である場合には、前記検出を行わないため、カウンタの値が最小値(0)以下の値になることを防ぐことができる。
【0039】
また、前記遅延部は、前記カウンタの値がカウンタの初期値と等しい場合には、当該カウンタの値を戻さないこととしてもよい。
これにより、遅延部は、カウンタの値がカウンタの初期値と等しい場合には、カウンタの値を戻さないため、例えば、カウンタの初期値を外部装置が所定時間毎に使用可能なリソースの最大使用回数に相当する値とした場合に、最大使用回数の変化を防ぐことができる。
【0040】
また、前記リソース使用管理装置は、更に複数の装置から1つの装置を前記外部装置として選択する選択部を備えることとしてもよい。
これにより、選択部は、複数の装置から1つの装置を前記外部装置として選択するため、複数の装置と特定外部装置との間のリソース使用の調停が可能となる。
また、前記外部装置はプロセッサであり、前記リソースはメモリであることとしてもよい。
【0041】
また、前記外部装置は通信端末であり、前記リソースは伝送路であることとしてもよい。
【発明を実施するための最良の形態】
【0042】
以下、本発明の実施の形態について、図面を参照しながら説明する。
≪実施の形態1≫
以下、本発明に係るリソース使用管理装置について説明する。
<概要>
本実施の形態に係るリソース使用管理装置100は、ファイル転送サーバと動画ストリーミングサーバとがルータを介してWAN(Wide Area Network)にパケットを送出する場合に、所定時間周期(以下、「送出周期」という)の一周期において、ファイル転送サーバに対し、パケット送出回数について所定数を上限としてパケット送出を許可し、所定数を超えるパケットの送出を禁止することにより、動画ストリーミングサーバに対し、一定数のパケット送出を保証するものである。
【0043】
そのために、リソース使用管理装置100は、内部のカウンタの初期値として、ファイル転送サーバに対し送出周期毎に送出を許可できる最大パケット数を設定する。この初期値は、リソース使用管理装置100が送出周期毎に許可できるパケット数から動画ストリーミングサーバに対し送出周期毎に送出を保証するパケット数を引いた残りのパケット数である。
【0044】
リソース使用管理装置100は、各単位時間(送出周期時間を、リソース使用管理装置100が送出周期毎に許可できるパケット数で割った時間)の始点において、このカウンタの値が0より大きいかを判定し、カウンタの値が0より大きいとき、ファイル転送サーバからパケット送出要求を受領していた場合には、ファイル転送サーバに対しその単位時間におけるパケット送出を許可し、カウンタの値を1つ減少させる。
【0045】
一方、カウンタの値が0の場合、リソース使用管理装置100は、ファイル転送サーバに対しその単位時間におけるパケット送出を禁止する。
また、リソース使用管理装置100は、ファイル転送サーバに対し送出周期毎に送出を許可できる最大パケット数(カウンタの初期値)と同数のタイマを内部に有し、ファイル転送サーバにパケット送出を許可する毎に、計時を行っていない1つのタイマにより計時を開始し、計時を開始したタイマが送出周期時間を計時する毎に、カウンタの値を1つ増加させる。
【0046】
即ち、リソース使用管理装置100がファイル転送サーバにパケット送出を許可した後、送出周期時間が経過するまでは、カウンタの値は減少したままになるため、例えば、カウンタの初期値が1(ファイル転送サーバに対し送出周期毎に送出を許可できる最大パケット数が1)だとすると、ファイル転送サーバにパケット送出を許可してから、送出周期時間、ファイル転送サーバによるパケット送出が制限されることになる。
【0047】
カウンタの初期値が2以上であっても同様に、ファイル転送サーバにパケット送出が許可される毎に、送出周期時間、ファイル転送サーバに対し許可できる残りのパケット数が1ずつ減ることとなり、カウンタの値が0になるとファイル転送サーバによるパケット送出が制限されることになる。
このように、ファイル転送サーバに対しパケット送出を許可される毎に、送出周期時間、ファイル転送サーバに対するパケット送出数が制限されるので、各単位時間の始点を送出周期の始点と考えた場合のいずれの送出周期においても、ファイル転送サーバによるパケット送出数は、最大パケット数以下となるため、動画ストリーミングサーバに対し送出周期毎に一定数のパケット送出を保証することができる。
<構成>
<通信システム>
図1は、本実施の形態に係るリソース使用管理装置100を含む通信システムの例を示している。
【0048】
まず、通信システムの構成について簡単に説明する。
通信システムは、ファイル転送サーバ10、動画ストリーミングサーバ20、LAN30、ルータ40、WAN50、リソース使用管理装置100から構成される。
ここで、ファイル転送サーバ10は、WAN50に接続するクライアント(図示しない)からの要求に応じてファイルを転送するサーバである。ファイル転送サーバ10は、クライアントからファイル転送要求を受領すると、要求されたファイルをパケットに分けて送出するため、LAN(Local Area Network)ケーブル等を介して接続されたリソース使用管理装置100にパケット送出要求を送出し、リソース使用管理装置100からパケット送出を許可されるとパケットを送出する。
【0049】
また、動画ストリーミングサーバ20は、LAN30を介してルータ40に接続し、WAN50に接続するクライアント(図示しない)に動画データをストリーミング配信するサーバである。
動画ストリーミングサーバ20が、正常にストリーミング配信を行うためには、予め規格等により定められたフレームレートに従って、送出周期毎(例えば1フレーム時間の33ms)に所定サイズ分の動画データをクライアントに送出する必要がある。
【0050】
詳細には、所定サイズ分の動画データをパケットに分けて送出するため、送出すべき動画データのデータサイズをパケットのペイロードサイズ(例えば1472byte)で割った数分のパケットを送出周期毎に送出する必要がある。
なお、以下では、説明の便宜のため、パケットのペイロードサイズは一定であるものとして説明する。
【0051】
また、ルータ40は、LAN30を介して、受領したパケットをWAN50に転送する一般的なルータであり、受領したパケットを内部に有するバッファ(キュー)に順次格納し、バッファに格納した順にパケットをWAN50に転送する。
また、リソース使用管理装置100は、ファイル転送サーバ10とLAN30とに接続し、ファイル転送サーバ10が転送周期毎に送出するパケット数を所定数以内に制限する装置である。
【0052】
<リソース使用管理装置100>
次に、リソース使用管理装置100の構成について、同図を用いて説明する。
リソース使用管理装置100は、同図に示すように、遅延回路110、検出部120、カウンタ130、制御部140から構成される。
なお、リソース使用管理装置100は、図示しないクロック発生器を備えている。以下では、そのクロック発生器から送出されるクロックを逓倍又は分周した単位時間周期のクロックを、リソース使用管理装置100における基準クロックとして説明する。
【0053】
ここで、遅延回路110は、タイマにより実現された一般的な遅延回路であり、遅延回路110におけるタイマの数は、後述するカウンタ130の初期値である、ファイル転送サーバ10に対し送出周期毎に送出を許可できる最大パケット数と同じ数である。なお、タイマは一般的なタイマ回路である。
以下では、一例としてカウンタ130の初期値が2であるとして説明するため、遅延回路110は、第1タイマ111と第2タイマ112との2つのタイマにより実現されている例を示す。
【0054】
第1タイマ111及び第2タイマ112は、後述する検出部120から計時を開始する旨の開始信号を受領すると計時を開始し、送出周期時間を計時すると計時を停止し、カウンタ130に対してカウンタの値を1つ増加させる旨の加算信号を送出する機能を有する。
なお、各タイマによる送出周期時間の計時は、送出周期時間を単位時間で割った数分の基準クロックをカウントすることにより行う。
【0055】
検出部120は、ファイル転送サーバ10に対しパケット送出が許可されたことを単位時間毎に検出し、検出する毎にカウンタ130に対してカウンタの値を1つ減少させる旨の減算信号を送出すると共に、遅延回路110の第1タイマ111と第2タイマ112とのうち、計時を行っていないいずれか1つのタイマに計時を開始する旨の開始信号を送出する回路である。
【0056】
パケット送出が許可されたことを検出する方法として、具体的には、ファイル転送サーバ10に対しパケット送出が許可されると、後述する制御部140からファイル転送サーバ10に対しACK信号が送出されるため、このACK信号の送出を、基準クロックに基づき単位時間毎に検出する。
なお、検出部120が検出を行うタイミングは、後述する制御部140がACK信号を送出するタイミング(単位時間時間の始点)よりもやや遅れたタイミングである。
【0057】
また、遅延回路110には第1タイマ111と第2タイマ112との2つのタイマがあるため、検出部120はACK信号を検出する毎に、第1タイマ111と第2タイマ112とに対し、交互に開始信号を送出する。
なお、遅延回路110を構成するタイマの数は、上述のとおり、カウンタ130の初期値と同じ数であり、後述する通り、ACK信号はタイマの値が0より大きい場合に送出されるため、検出部120がACK信号を検出した際に、第1タイマ111と第2タイマ112とが共に計時を行っていることはない。
【0058】
また、動作開始後最初にACK信号を検出した際、検出部120は、計時を行っていない第1タイマ111と第2タイマ112とのいずれのタイマに開始信号を送出してもよいが、以下では、第1タイマ111に開始信号を送出するものとして説明する。
カウンタ130は、ファイル転送サーバ10に対し送出周期毎に送出を許可できる最大パケット数を初期値とし、受領した信号により値を増減可能なカウンタ回路である。
【0059】
本実施の形態では、上述のとおり初期値は2であり、カウンタ130は、検出部120から減算信号を受領すると値を1つ減少させ、遅延回路110から加算信号を受領すると値を1つ増加させる機能を有する。
制御部140は、カウンタ130の値に基づき、ファイル転送サーバ10に対しパケット送出を許可するか否かを単位時間毎に判定し、判定結果及びファイル転送サーバ10からのパケット送出要求の有無によりファイル転送サーバ10に対しパケット送出を許可するACK信号を送出するか否かを制御する回路である。
【0060】
具体的には、制御部140は比較回路を含み、単位時間の始点毎にカウンタ130の値が0より大きいかを比較し、0より大きいとき、ファイル転送サーバ10からパケット送出要求を受領している場合に、ACK信号をファイル転送サーバ10に送出する。
なお、単位時間の始点は、基準クロックの立ち上がりを検出することにより検出する。
<動作>
図2(a)、(b)、(c)は、リソース使用管理装置100の制御部140、検出部120、遅延回路110の動作を示すフローチャートである。以下、上述したリソース使用管理装置100の各部の動作の流れを、同図に即し説明する。
【0061】
<制御部140の動作>
同図(a)において、リソース使用管理装置100の制御部140は、単位時間毎にカウンタ130の値が0より大きいかを判断し(ステップS201)、カウンタ130の値が0より大きい場合には(ステップS201:Y)、制御部140は、ファイル転送サーバ10からパケット送出要求を受領したかを判断する(ステップS202)。
【0062】
ステップS202において、ファイル転送サーバ10からパケット送出要求を受領している場合には(ステップS202:Y)、制御部140は、ファイル転送サーバ10に対し、その単位時間においてパケット送出を許可する旨のACK信号を送出し(ステップS203)、処理を終了する。
ステップS201において、カウンタ130の値が0である場合(ステップS201:N)、及びステップS202において、ファイル転送サーバ10からパケット送出要求を受領していない場合には、制御部140は、処理を終了する。
【0063】
<検出部120の動作>
同図(b)において、リソース使用管理装置100の検出部120は、同図(a)のステップS203において制御部140からファイル転送サーバ10に送出されたACK信号を単位時間毎に検出し(ステップS211)、ACK信号を検出すると(ステップS211:Y)、検出部120は、カウンタ130に減算信号を送出し、カウンタ130の値を1つ減少させる(ステップS212)。
【0064】
また、ステップS212において、検出部120は、遅延回路110の第1タイマ111と第2タイマ112とのうち、計時を行っていないいずれかのタイマに対し、計時を開始させる旨の開始信号を送出し、処理を終了する。
また、ステップS211において、ACK信号を検出しない場合には(ステップS211:N)、検出部120は、処理を終了する。
【0065】
<遅延回路110の動作>
同図(c)のステップS221において、同図(b)のステップS212で検出部120から送出された開始信号を受領した第1タイマ111と第2タイマ112とのいずれかのタイマは、計時を開始し、送出周期時間(例えば、33ms)を計時すると(ステップS221)、カウンタ130に加算信号を送出し、カウンタ130の値を1つ増加させ(ステップS222)、遅延回路110は、処理を終了する。
【0066】
<具体例を用いた説明>
以下、リソース使用管理装置100による動作を図3(a)に示すタイミングチャートにより具体例を用いて説明する。
同図(a)は、リソース使用管理装置100により送出周期毎に送出し得るパケット数を制限されたファイル転送サーバ10のパケット送出状況の一例を示した図である。
【0067】
この例では、リソース使用管理装置100が送出周期(例えば33ms)毎に送出を許可できるパケット数は「5」であり、動画ストリーミングサーバ20に対し送出周期毎に保証するパケット数は「3」であり、ファイル転送サーバ10に対し送出周期毎に送出を許可できる最大パケット数は「2」である場合を想定している。
同図(a)において、タイマ301は第1タイマ111の値を示しており、タイマ302は、第2タイマ112の値を示しており、各タイマは検出部120から開始信号を受領すると、計時を開始し、初期値4から1つずつ減少し、0になると停止する。
【0068】
送出周期303は、動画ストリーミングサーバ20におけるパケットの送出周期を示しており、1送出周期が1〜5のタイムスライスにより構成されている。
パケット送出304は、ファイル転送サーバ10によるパケット送出要求の有無と要求の成否を示している。ここで、記号「I」はファイル転送サーバ10からのパケット送出要求がない状態を、記号「A」は、制御部140がファイル転送サーバ10からパケット送出要求を受領し送出を許可した状態を、記号「W」は、制御部140がファイル転送サーバ10からパケット送出要求を受領し送出を制限している状態を示している。
【0069】
残送出回数305は、カウンタ130のカウンタの値を示している。
以下、各タイミングでの動作について説明する。
T1、T2はファイル転送サーバ10からはパケット送出要求がされていないタイミングであり、リソース使用管理装置100は、T1、T2において特に処理を行わない。
T3は、ファイル転送サーバ10からパケット送出要求がされたタイミングである。残送出回数305が「2」であり「0」より大きいため、リソース使用管理装置100は、T3においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「1」となり、計時を行っていない第1タイマ111が計時を開始し、タイマ301は「4」となる。
【0070】
T4は、ファイル転送サーバ10からパケット送出要求がされたタイミングである。残送出回数305が「1」であり「0」より大きいため、リソース使用管理装置100は、T4においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「0」となり、計時を行っていない第2タイマ112が計時を開始し、タイマ302は「4」となる。なお、タイマ301は1つ減少して「3」となる。
【0071】
T5はファイル転送サーバ10からはパケット送出要求がされていないタイミングであり、リソース使用管理装置100は、T5において特に処理を行わない。
このようにT1〜T5の送出周期においては、ファイル転送サーバ10からのパケット送出要求に対し速やかにパケット送出が許可され、かつファイル転送サーバ10が送出したパケット数は「2」であるため、動画ストリーミングサーバ20に対し同送出周期におけるパケット送出数「3」を確保できる。
【0072】
T6は、タイマ301が「0」になるタイミングであり、タイマ301は停止し、T7において残送出回数305が1つ増加して「1」となる。また、T7は、タイマ302が「0」になるタイミングであり、タイマ302は停止し、T8において残送出回数305が1つ増加して「2」となる。
T9、T10は、ファイル転送サーバ10からパケット送出要求がされたタイミングである。いずれのタイミングにおいても残送出回数305が「0」より大きいため、リソース使用管理装置100は、T9、T10においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は「0」となる。
【0073】
T11〜T13はファイル転送サーバ10からパケット送出要求がされたタイミングであるが、残送出回数305が「0」であるため、リソース使用管理装置100は、T11〜T13においてファイル転送サーバ10によるパケット送出を禁止する。
このようにT9〜T13の送出周期においても、ファイル転送サーバ10からのパケット送出要求に対し、最大パケット数「2」の範囲内で速やかにパケット送出が許可され、かつファイル転送サーバ10が送出したパケット数は「2」に制限されているため、動画ストリーミングサーバ20に対し同送出周期におけるパケット送出数「3」を確保できる。
【0074】
特許文献1に係る調停装置では、アクセスカウンタの値をリセットするタイミングが、第1マスタにおける各転送周期の始点とずれることがあり、その結果、図9のT7〜T11に示すように、第2マスタに対し転送周期毎に許可できる最大アクセス回数以上のアクセスが許可されてしまう場合が生じていた。
これに対し、本発明に係るリソース使用管理装置100は、ファイル転送サーバ10に対し、パケット送出が許可される毎に送出周期時間、
ファイル転送サーバ10に対するパケット送出数を制限するため、各単位時間の始点を送出周期の始点と考えた場合のいずれの送出周期においても、ファイル転送サーバによるパケット送出数が最大パケット数以下になるよう適切に制限できる。
【0075】
従って、本発明に係るリソース使用管理装置100は、動画ストリーミングサーバに対し、送出周期毎に一定数のパケット送出を保証することができる。
なお、特許文献1に係る調停装置と異なり、リソース使用管理装置100内部の各タイマ(第1タイマ111及び第2タイマ112)はパケット送出を許可する毎に計時を開始し、送出周期時間を計時すると計時を停止するため、いずれのタイマも計時を行っていない場合には、タイマへのクロック供給や電力供給を停止するなど、計時を行っているときよりも電力消費の少ない低電力モードへの切り替えが可能となる。
<変形例>
リソース使用管理装置100の遅延回路110は、タイマ(第1タイマ111、第2タイマ112)により送出周期時間の計時を実現するものであった。以下では、遅延回路110のタイマをシフトレジスタに変えたリソース使用管理装置の一変形例について説明する。
【0076】
図4は、変形例に係るリソース使用管理装置400の機能構成図である。
リソース使用管理装置400は、同図に示すように、カウンタ130、制御部140、遅延回路410、検出部420から構成され、遅延回路410、検出部420以外は、リソース使用管理装置100と同様であるため、以下では、変更部分のみについて説明する。
【0077】
遅延回路410は、送出周期時間を単位時間で割った数(即ち、送出周期毎の単位時間の数)の段数分の記憶素子を有するシフトレジスタ411により実現された一般的な遅延回路である。
シフトレジスタ411の各記憶素子には、初期値として「0」が格納されている。後述する検出部420からシフトレジスタ411に「1」が入力されると、遅延回路410は、基準クロックに基づき、単位時間毎に入力された「1」の格納位置を後段に移動させる。
【0078】
その結果、シフトレジスタ411に入力された「1」は、送出周期時間後にシフトレジスタ411から出力されることになり、送出周期時間を計時することができる。
また、遅延回路410は、シフトレジスタ411から出力された「1」をカウンタ130に対して加算信号として送出する。
検出部420は、基本的には検出部120と同様の回路であるが、ファイル転送サーバ10に対してパケット送出が許可されたことを検出すると、遅延回路410のシフトレジスタ411に「1」を入力する点で、検出部120とは異なる。
【0079】
以下、図1に示す通信ネットワークの例における、リソース使用管理装置400の動作を図3(b)に示すタイミングチャートにより具体例を用いて説明する。
同図(b)は、リソース使用管理装置400により送出周期毎に送出し得るパケット数を制限されたファイル転送サーバ10のパケット送出状況の一例を示した図である。なお、ファイル転送サーバ10に対し送出周期毎に送出を許可できるパケット数等は、同図(a)の場合と同様である。
【0080】
同図(b)において、シフトレジスタ311は、遅延回路410のシフトレジスタ411に格納されたデータの格納位置を示している。送出周期303、パケット送出304、残送出回数305については、同図(a)と同様であるため、説明は省略する。
以下、各タイミングでの動作について説明するが、図3(a)と異なる点のみについて説明する。
【0081】
T3は、ファイル転送サーバ10からパケット送出要求されたタイミングである。残送出回数305が「2」であり「0」より大きいため、リソース使用管理装置400は、T3においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「1」となり、シフトレジスタ311に「1」が入力される。
T4は、ファイル転送サーバ10からパケット送出要求されたタイミングである。残送出回数305が「1」であり「0」より大きいため、リソース使用管理装置400は、T4においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「0」となり、シフトレジスタ311に更に「1」が入力される。なお、T3においてシフトレジスタ311に入力された「1」は、1ビットシフトされる。
【0082】
T6は、T3においてシフトレジスタ311に入力された「1」が出力されるタイミングであり、T7において残送出回数305が1つ増加して「1」となる。
T7は、T4においてシフトレジスタ311に入力された「1」が出力されるタイミングであり、T8において残送出回数305が1つ増加して「2」となる。
T9は、ファイル転送サーバ10からパケット送出要求されたタイミングである。残送出回数305が「2」であり「0」より大きいため、リソース使用管理装置400は、T9においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「1」となり、シフトレジスタ311に「1」が入力される。
【0083】
T10は、ファイル転送サーバ10からパケット送出要求されたタイミングである。残送出回数305が「1」であり「0」より大きいため、リソース使用管理装置400は、T10においてファイル転送サーバ10にパケット送出を許可し、残送出回数305の値は1つ減少して「0」となり、シフトレジスタ311に更に「1」が入力される。なお、T3においてシフトレジスタ311に入力された「1」は、1ビットシフトされる。
【0084】
T11〜T13は、ファイル転送サーバ10からパケット送出要求がされたタイミングであるが、残送出回数305が「0」であるため、リソース使用管理装置100は、T11〜T13においてファイル転送サーバ10によるパケット送出を禁止する。
このように、同図(a)と(b)とのファイル転送サーバ10におけるパケット送出状況は一致し、リソース使用管理装置100の遅延回路110を、シフトレジスタ411を有する遅延回路410に変更しても、リソース使用管理装置400は、リソース使用管理装置100と同様の効果を奏することができることが分かる。
【0085】
また、遅延回路110は、送出周期毎にファイル転送サーバ10に対し送出を許可できる最大パケット数分のタイマが必要となるため、この最大パケット数が比較的多く、数百となるようなケースでは、数百個のタイマが必要となり、遅延回路110の回路規模が増大することになる。
一方、遅延回路410は、最大パケット数分のビット数のシフトレジスタにより実現できるため、比較的回路規模への影響は比較的少ない。
【0086】
従って、ファイル転送サーバ10に送出周期毎に許可できる最大パケット数が多いケースでは、シフトレジスタ411を有する遅延回路410を用いることにより、リソース使用管理装置は回路規模を抑えることができる。
なお、遅延回路110のすべてのタイマが計時を行っていない場合と同様、シフトレジスタ411内に「1」が格納されていない場合には、シフトレジスタ411へのクロック供給の停止や、電力供給の停止などの低電力モードへの切り替えが可能である。
≪実施の形態2≫
以下、本発明に係るリソース使用管理装置を用いたバス調停装置について説明する。
<概要>
実施の形態2に係るバス調停装置500は、本発明に係るリソース使用管理装置の仕組みを、2つのバスマスタであるプロセッサとDMAコントローラとによるメモリアクセス要求の調停に適用したものである。
【0087】
具体的には、バス調停装置500は、プロセッサとDMAコントローラとのメモリアクセス要求が競合すると、プロセッサによる転送周期(例えば、動画の水平走査時間の63.6μs内)毎のメモリアクセス回数が所定回数内である場合には、プロセッサに対し優先的にアクセスを許可し、プロセッサによる転送周期毎のメモリアクセス回数が所定回数を超える場合には、プロセッサに対しメモリアクセスを禁止し、DMAコントローラにアクセスを許可する。
【0088】
これにより、プロセッサに対しては、転送周期毎のアクセス回数が所定回数内であることを条件に優先的にアクセスが許可されるためアクセス遅延が低減でき、また、プロセッサによる転送周期毎のメモリアクセス回数が所定回数を超える場合にはプロセッサによるメモリアクセスが禁止され、DMAコントローラに対しアクセスが許可されるため、DMAコントローラに対し転送周期毎に一定回数のアクセスを保証することができる。
<構成>
以下、実施の形態2に係るバス調停装置500の構成について図5を用いて説明する。
【0089】
図5は、実施の形態2に係るバス調停装置500の機能構成図である。
バス調停装置500は、バスマスタであるプロセッサ60及びDMAコントローラ70と、プロセッサ60及びDMAコントローラ70の共通リソースであるメモリ80とにそれぞれバスを介して接続している。
ここで、プロセッサ60は、メモリ80に格納された制御用データを読み出し、システム制御(例えば、表示画面切替制御等)を行うプロセッサである。ユーザレスポンスのよい表示画面切替制御等を行うため、プロセッサ60からメモリアクセス要求があった場合には、アクセス遅延を低減させる必要がある。
【0090】
DMAコントローラ70は、メモリ80に格納された動画像データを読み出すDMAコントローラであり、DMAコントローラ70により動画像データを読み出された動画像データは再生用デバイスにより順次再生される。従って、動画像を正常に再生するためには、DMAコントローラに対し転送周期(例えば、63.6μs内)毎に一定回数のアクセスを保証する必要がある。
【0091】
バス調停装置500は、同図に示すとおり、遅延回路110、カウンタ130、検出部510、制御部520から構成される。
検出部510、制御部520以外については、実施の形態1に係るリソース使用管理装置100と同様であるため、説明は省略する。
検出部510は、実施の形態1に係るリソース使用管理装置100の検出部120と基本的には同様の回路であるが、プロセッサ60に対しメモリ80へのアクセスが許可されたことを単位時間毎に検出する点で、検出部120とは異なる。
【0092】
アクセスが許可されたことの検出は、検出部120と同様に後述する制御部520からプロセッサ60に対し送出されるACK信号の検出により行う。
制御部520は、いわゆるバスアービタ回路であり、プロセッサ60とDMAコントローラ70とのメモリ80へのアクセス要求が競合した場合に、カウンタ130の値に基づき、単位時間毎にアクセス要求を調停する回路である。
【0093】
具体的には、実施の形態1に係る制御部140と同様に比較回路を含み、単位時間の始点毎にカウンタ130の値が0より大きいかを比較する。プロセッサ60とDMAコントローラ70とのメモリアクセスが競合した場合に、カウンタ130の値が0より大きい場合には、プロセッサ60にメモリアクセスを許可し、プロセッサ60にACK信号を送出する。
【0094】
一方、カウンタ130の値が0の場合には、プロセッサ60からのアクセスを禁止し、DMAコントローラ70にアクセスを許可し、DMAコントローラ70にACK信号を送出する。
なお、単位時間の始点の検出方法は、実施の形態1に係る制御部140と同様である。
<動作>
以下、バス調停装置500の動作の流れを説明する。
【0095】
なお、検出部510の動作は、図2(b)に示す実施の形態1に係る検出部120の動作のうち、ファイル転送サーバ10によるパケット送出をプロセッサ60によるメモリ80へのアクセスに読み替えたものと同様であり、また、遅延回路110の動作は、図2(c)に示す実施の形態1に係る遅延回路110と同様であるため、以下では、制御部520の動作についてのみ説明する。
【0096】
<制御部520の動作>
図6は、バス調停装置500の制御部520の動作を示すフローチャートであり、同図に即して制御部520の動作の流れを説明する。
制御部520は、単位時間毎にカウンタ130の値が0より大きいかを判断し(ステップS601)、カウンタ130の値が0より大きい場合には(ステップS601:Y)、制御部520は、プロセッサ60からメモリアクセス要求を受領したかを判断する(ステップS602)。
【0097】
ステップS602において、プロセッサ60からメモリアクセス要求を受領している場合には(ステップS602:Y)、制御部520は、プロセッサ60に対しその単位時間におけるメモリアクセスを許可し、プロセッサ60にACK信号を送出し(ステップS603)、処理を終了する。
ステップS602において、プロセッサ60からメモリアクセス要求を受領していない場合には(ステップS602:N)、制御部520は、DMAコントローラ70からメモリアクセス要求を受領したかを判断する(ステップS604)。
【0098】
ステップS604において、DMAコントローラ70からメモリアクセス要求を受領している場合には(ステップS604:Y)、制御部520は、DMAコントローラ70に対しその単位時間におけるメモリアクセスを許可し、DMAコントローラ70にACK信号を送出し(ステップS605)、処理を終了する。
ステップS604において、DMAコントローラ70からメモリアクセス要求を受領していない場合には(ステップS604:N)、処理を終了する。
【0099】
ステップS601において、カウンタ130の値が0である場合には(ステップS601:N)、制御部520は、DMAコントローラ70からメモリアクセス要求を受領したかを判断する(ステップS606)。
ステップS606において、DMAコントローラ70からメモリアクセス要求を受領している場合には(ステップS606:Y)、ステップS605に進み、DMAコントローラ70からメモリアクセス要求を受領していない場合には(ステップS606:N)、制御部520は、プロセッサ60からメモリアクセス要求を受領したかを判断する(ステップS607)。
【0100】
ステップS607において、プロセッサ60からメモリアクセス要求を受領している場合には(ステップS607:Y)、制御部520は、プロセッサ60に対しその単位時間におけるメモリアクセスを許可し、プロセッサ60にACK信号を送出し(ステップS608)、処理を終了する。
ステップS607において、プロセッサ60からメモリアクセス要求を受領していない場合には(ステップS607:N)、処理を終了する。
【0101】
<具体例を用いた説明>
以下、バス調停装置500の動作を図7に示すタイミングチャートにより具体例を用いて説明する。
同図は、バス調停装置500により転送周期内毎に許可できるメモリアクセス回数を制限されたプロセッサ60と、転送周期内毎に一定回数のメモリアクセスを保証するDMAコントローラ70とのメモリアクセス状況の一例を示した図である。
【0102】
この例では、転送周期(例えば、63.6μs)毎に許可できるメモリアクセス回数が「5」であり、DMAコントローラ70に対し転送周期毎に保証するアクセス回数は「3」であり、プロセッサ60に対し転送周期毎に許可できる最大アクセス回数は「2」である場合を想定している。なお、この条件は、図9に示す従来のバス調停装置の場合と同様である。
【0103】
同図において、タイマ701とタイマ702は、図3(a)におけるタイマ301とタイマ302とそれぞれ同様であるため、説明は省略する。
転送周期703は、DMAコントローラ70における転送周期を示しており、転送周期毎に1〜5のタイムスライスにより構成されている。
DMA704は、DMAコントローラ70によるアクセス要求の有無及び成否の状態を示しており、プロセッサ705は、プロセッサ60によるアクセス要求の有無及び成否の状態を示している。同図における記号「I」、「A」、「W」の内容は図9と同様であるため、説明は省略する。
【0104】
また、残アクセス回数706は、カウンタ130の値を示している。
以下、各タイミングでの動作について説明する。
T1、T2はDMAコントローラ70からのみアクセス要求がなされたタイミングであり、バス調停装置500は、T1、T2においてDMAコントローラ70にアクセスを許可する。
【0105】
T3は、プロセッサ60及びDMAコントローラ70からアクセス要求がなされたタイミングである。残アクセス回数706が「2」であり、「0」より大きいことから、バス調停装置500は、T3においてプロセッサ60にアクセスを許可し、残アクセス回数706の値は1つ減少して「1」となり、第1タイマ111が計時を開始し、タイマ701は「4」となる。
【0106】
T4は、プロセッサ60及びDMAコントローラ70からアクセス要求がなされたタイミングである。残アクセス回数706が「1」であり、「0」より大きいことから、バス調停装置500は、T4においてプロセッサ60にアクセスを許可し、残アクセス回数706の値は1つ減少して「0」となり、第2タイマ112が計時を開始し、タイマ702は「4」となる。なお、タイマ701は1つ減少して「3」となる。
【0107】
T5は、DMAコントローラ70からのみアクセス要求がなされたタイミングであり、バス調停装置500は、T5においてDMAコントローラ70にアクセスを許可する。なお、タイマ701及びタイマ702は1つずつ減少して、それぞれ「2」、「3」となる。
このようにT1〜T5の転送周期においては、プロセッサ60からアクセス要求がなされた場合にはプロセッサ60に優先的にアクセス許可がなされ、かつ、DMAコントローラ70には、3回のアクセスが確保できている。
【0108】
T6は、タイマ701が「0」になるタイミングであり、タイマ701は停止し、T7において残アクセス回数706が1つ増加して「1」となる。
また、T7は、タイマ702が「0」になるタイミングであり、タイマ702は停止し、T8において残アクセス回数706が1つ増加して「2」となる。
T9、T10は、プロセッサ60及びDMAコントローラ70からアクセス要求がなされたタイミングである。いずれのタイミングにおいても残アクセス回数706が「0」より大きいため、バス調停装置500は、T9、T10においてプロセッサ60にアクセスを許可し、残アクセス回数706の値は「0」となる。
【0109】
T11〜T13は、プロセッサ60及びDMAコントローラ70からアクセス要求がなされたタイミングであるが、残アクセス回数706が「0」であるため、バス調停装置500は、T11〜T13においてプロセッサ60によるメモリアクセスを禁止し、DMAコントローラ70にアクセスを許可する。
このようにT9〜T13の転送周期においても、プロセッサ60からアクセス要求に対しては、プロセッサ60に優先的にアクセス許可がなされ、かつプロセッサ60のアクセス回数が最大アクセス回数「2」を超えないよう適切に制限されているため、DMAコントローラ70に対し同転送周期におけるアクセス回数「3」を確保できている。
【0110】
即ち、本発明に係るリソース使用管理装置を用いたバス調停装置500では、プロセッサ60に対し、メモリアクセスが許可される毎に転送周期時間、許可できる残りのアクセス回数を制限するため、各単位時間を転送周期の始点と考えた場合のいずれの転送周期においても、転送周期毎に許可できる最大アクセス回数を超えることなく、DMAコントローラ70に一定回数のメモリアクセスを保証できる。
≪実施の形態3≫
<概要>
実施の形態2のバス調停装置500は、プロセッサ60とDMAコントローラ70とのアクセス要求を調停するものであった。
【0111】
実施の形態3のバス調停装置800は、2つのプロセッサとDMAコントローラとのアクセス要求の調停を行うものである。
そのために、バス調停装置800は、2つのプロセッサから1つのプロセッサを選択し、選択したプロセッサとDMAコントローラとのアクセス要求を調停する。
2つのプロセッサから1つのプロセッサを選択する際には、優先度決定方法やラウンドロビン方式などの各種調停方法を用いることができる。
<構成>
以下、実施の形態3に係るバス調停装置800の構成について図8を用いて説明する。
【0112】
図8は、実施の形態3におけるバス調停装置800の機能構成図である。
バス調停装置800は、バスマスタである第1プロセッサ60、第2プロセッサ61、DMAコントローラ70と、これらのバスマスタの共通リソースであるメモリ80とにそれぞれバスを介して接続している。
ここで、第1プロセッサ60は、実施の形態2のプロセッサ60と同様のプロセッサであり、DMAコントローラ70は、実施の形態2のDMAコントローラ70と同様であるため説明は省略する。
【0113】
第2プロセッサ61は、第1プロセッサ60とは異なる処理(例えば、画像処理や、データ変換処理等)を行うために、メモリ80に格納された処理用データを読み出すプロセッサである。第2プロセッサ61は、メモリ80にアクセスする必要がある場合には、第1プロセッサ60と同様にバス調停装置800に対してアクセス要求を送出する。
バス調停装置800は、同図に示すとおり、遅延回路110、検出部120、カウンタ130、選択部810、制御部820から構成される。
【0114】
遅延回路110、検出部120、カウンタ130については、実施の形態2のバス調停装置500と同様であるため、説明は省略し、以下では、選択部810と制御部820について説明する。
選択部810は、いわゆるバスアービタ回路であり、第1プロセッサ60と第2プロセッサ61とのアクセス要求が競合した場合に単位時間の始点毎に、その単位時間において後述する制御部820によりアクセス要求の調停を受けるプロセッサを選択する回路である。
【0115】
この際の選択方法には特に制限はなく、従来から用いられている各種調停方式、例えば第1プロセッサ60と第2プロセッサ61とに予め定められている優先度に従い調停を行う優先度方式や、第1プロセッサ60と第2プロセッサ61とが単位時間毎に順に最優先となるラウンドロビン方式などの各種調停方法を用いることができる。
なお、単位時間の始点の検出方法は、実施の形態1に係る制御部140と同様である。
【0116】
制御部820は、基本的には、実施の形態2の制御部520と同様のバスアービタ回路であるが、アクセス要求の調停対象が、選択部810により選択された第1プロセッサ60と第2プロセッサ61とのいずれかのプロセッサとDMAコントローラとである点が制御部520とは異なる。
なお、制御部820が、カウンタ130の値が0より大きいかを比較するタイミングは、選択部810がプロセッサを選択するタイミング(単位時間の始点)よりもやや遅れたタイミングである。
<動作>
バス調停装置800の検出部120及び遅延回路110の動作は、実施の形態1と同様であり、選択部810の動作は、従来のバス調停方法であるため、説明は省略する。
【0117】
また、制御部820の動作は、図6に示す実施の形態2の制御部520の動作において、ステップS602、S603、S607、S608におけるプロセッサが、選択部810により選択された第1プロセッサ60と第2プロセッサ61とのいずれかのプロセッサである点以外は同様であるため、説明は省略する。
<補足>
以上、本発明に係るリソース使用管理装置について、実施の形態に基づいて説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態に示したとおりのリソース使用管理装置に限られないことは勿論である。
【0118】
(1)各実施の形態において、カウンタ130は10進数で示されるカウンタの値を増減させるものとして説明したが、カウンタの値を表す実際のカウンタ内の表記はさまざまのものが考えられ、バイナリ値で示されるカウンタの値を増減させるものとしてもよく、更には、内部状態の変化によって値の増減に対応づけ可能なデバイスであればどのようなものでもカウンタとなりうる。
【0119】
(2)実施の形態1において、カウンタ130は、検出部120が検出する毎にカウンタの値を減少させ、カウンタ130の値が0より大きいか否かによりパケット送出を許可するものとして説明したが、検出部120が検出する毎にカウンタの値を増加させ、カウンタ130の値が、ファイル転送サーバ10に送出周期毎に許可できる最大パケット数以下であるか否かによりパケット送出を許可するものとしてもよい。
【0120】
なお、本変形は、実施の形態1以外の変形例及び各実施の形態においても同様に適用できる。
(3)実施の形態1において、制御部140がパケット送出を許可する場合には、ファイル転送サーバ10からのパケット送出要求に対するACK信号を送出するものとして説明したが、これに限るものではない。
【0121】
例えば、ファイル転送サーバ10から制御部140にパケット送出要求を送出することなく、所定の情報(例えば、送出するパケットデータそのもの)を送出し、制御部140においてその情報をキューイングしておき、制御部がパケット送出を許可する場合には、その情報をルータに送出することとしてもよい。
なお、本変形は、実施の形態1以外の変形例及び各実施の形態においても同様に適用することができる。
【0122】
(4)実施の形態1において、制御部140は、パケット送出を許可するか否かを単位時間毎に判定することとしたが、ファイル転送サーバ10からパケット送出要求を受領した場合に判定することとしてもよい。
なお、本変形は、実施の形態1以外の変形例及び各実施の形態においても同様に適用することができる。
【0123】
(5)実施の形態1では、ファイル転送サーバ10と動画ストリーミングサーバ20とがパケットデータを送出する場合を例に説明したが、リソース使用管理装置100として機能する1台のコンピュータにおいて、ファイル転送機能を担うファイル転送部と動画ストリーミング機能を担う動画ストリーミング部とを実現し、ファイル転送部と動画ストリーミング部とがパケットデータを送出するものとしてもよい。
【0124】
(6)変形例では、シフトレジスタ411の初期値を「0」とし、シフトレジスタ411に入力するデータは「1」であるとして説明しているが、この逆、即ち初期値を「1」とし、入力するデータを「0」としてもよい。
また、シフトレジスタ411に入力するデータは1bitであるとして説明したが、2bitの以上のデータであってもよく、即ち検出部120が検出した送出周期時間後にデータを出力可能なシフトレジスタであればどのような構成であってもよい。
【0125】
(7)実施の形態2及び実施の形態3では、バスマスタとなるデバイスとしてプロセッサとDMAコントローラとを例に挙げているが、これに限られるものではなく、バスにアクセス要求を送出できるデバイス、例えばシーケンサやバスブリッジなどであってもよいし、さらに上位にバス調停装置をカスケード接続してもよい。
また、バススレーブとなるデバイスとしてメモリを例に挙げているが、これに限られるものではなく、バスマスタからアクセスされるデバイス、例えば各種入出力デバイスや、レジスタなどであってもよいし、バススレーブデバイスは、複数個接続されていてもよい
(8)実施の形態3の制御部820は、選択部810により選択された1つのプロセッサと1つのDMAコントローラとのアクセス要求を調停するものとして説明したが、DMAコントローラは複数あってもよい。
【0126】
この際、制御部820は、カウンタ130の値が0であり、いずれかのDMAコントローラにメモリアクセスを許可する場合には、従来から用いられている各種調停方式、優先度方式やラウンドロビン方式などにより、1つのDMAコントローラを選択すればよい。
(9)実施の形態2に係るバス調停装置500の検出部510、制御部520は、基準クロックに基づき単位時間毎に動作することとして説明したが、以下のように変形してもよい。即ち、メモリ80からデータを読み出す際の処理時間(1トランザクションの時間)は、単位時間とほぼ等しくなることから、1トランザクションを終了する毎に、制御部520はアクセス要求を調停し、検出部510はACK信号を検出することとしてもよい。
【0127】
なお、本変形は、実施の形態3においても同様に適用できる。
(10)実施の形態2に係るバス調停装置500は、遅延回路110を含むものとして説明したが、遅延回路110に代えて、変形例に係る遅延回路410を含むものとしてもよい。その場合、バス調停装置500の検出部510は、プロセッサ60に対しメモリ80へのアクセスが許可されたことを検出すると、遅延回路410のシフトレジスタ411に「1」を入力する必要がある。
【0128】
また、遅延回路410は、基準クロックに基づいて単位時間毎に動作するものとして説明したが、上述と同様に基準クロックによらず動作することとしてもよい。即ち、制御部510が1トランザクションを終了する毎に遅延回路410に所定のタイミング信号を送出することとし、遅延回路410は、そのタイミング信号を受領する毎にシフトレジスタ411に格納されたデータの格納位置を後段に移動させることとしてもよい。
【0129】
なお、本変形は、実施の形態3においても同様に適用できる。
【産業上の利用可能性】
【0130】
本発明に係るリソース使用管理装置は、デバイスによる特定リソースの使用時間を制限するために利用されるものである。
【図面の簡単な説明】
【0131】
【図1】本実施の形態に係るリソース使用管理装置100を含む通信システムの構成例を示す図である。
【図2】(a)はリソース使用管理装置100の制御部140の、(b)は検出部120の、(c)は遅延回路110の動作を示すフローチャートである。
【図3】(a)はリソース使用管理装置100の動作を、(b)はリソース使用管理装置400の動作を示すタイミングチャートである。
【図4】変形例に係るリソース使用管理装置400の機能構成図である。
【図5】実施の形態2に係るバス調停装置500の機能構成図である。
【図6】バス調停装置500の制御部520の動作を示すフローチャートである。
【図7】バス調停装置500の動作を示すタイミングチャートである。
【図8】実施の形態3に係るバス調停装置800の機能構成図である。
【図9】従来の調停装置の動作を示すタイミングチャートである。
【符号の説明】
【0132】
10 ファイル転送サーバ
20 動画ストリーミングサーバ
30 LAN
40 ルータ
50 WAN
60 プロセッサ(第1プロセッサ)
61 第2プロセッサ
70 DMAコントローラ
80 メモリ
100、400 リソース使用管理装置
110、410 遅延回路
111 第1タイマ
112 第2タイマ
120、420、510 検出部
130 カウンタ
140、520、820 制御部
411 シフトレジスタ
500、800 バス調停装置
810 選択部

【特許請求の範囲】
【請求項1】
外部装置によるリソースの使用に係るリソース使用管理装置であって、
カウンタと、
前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎に前記カウンタの値を進める検出部と、
前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を戻す遅延部と、
前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行う制御部とを備える
ことを特徴とするリソース使用管理装置。
【請求項2】
前記制御部は、前記カウンタの値が所定の値である場合に、前記リソースを使用させない判定を行う
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項3】
前記検出部は、前記検出毎に前記カウンタの値を1つ進め、
前記遅延部は、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を1つ戻し、
前記制御部は、前記カウンタの値と当該カウンタの初期値との差分が、前記所定時間周期毎に前記外部装置が前記リソースを使用可能な単位時間数に相当する値より少ないか否かに基づき、当該外部装置に対し前記リソースを使用させるか否かに係る判定を行う
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項4】
前記カウンタの初期値は、2以上の値であり、
前記検出部は、前記検出毎に前記カウンタの値を1つ減少させ、
前記遅延部は、前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を1つ増加させ、
前記制御部は、前記カウンタの値が0より大きいか否かに基づき、当該外部装置に対し前記リソースを使用させるか否かに係る判定を行う
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項5】
前記外部装置はプロセッサであり、前記リソースはメモリである
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項6】
前記外部装置は通信端末であり、前記リソースは伝送路である
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項7】
前記遅延部は、前記所定時間周期毎に前記外部装置が前記リソースを使用可能な単位時間数に相当する数のタイマを含むものであり、前記検出部による各検出について、当該検出時に計時を行っていないいずれか1つのタイマにより前記所定時間の計時を開始し、所定時間計時後に前記カウンタの値を戻す
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項8】
前記遅延部は、前記所定時間を前記単位時間で割った数に相当する段数分の記憶素子を有するシフトレジスタを含むものであり、前記検出部による各検出について、当該検出の際に前記シフトレジスタにデータを入力し、入力されたデータの格納位置を単位時間毎に順次後段に移動させ、データが出力されると前記カウンタの値を戻す
ことを特徴とする請求項1のリソース使用管理装置。
【請求項9】
前記リソース使用管理装置は、通常の動作モードである第1のモードと第1のモードより電力消費の少ない第2のモードとを切替えて動作可能なものであり、前記シフトレジスタに保持するデータがない場合に、第2のモードに切り替えて動作する
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項10】
前記リソース使用管理装置は、更に前記リソースを前記外部装置と時分割で使用する特定外部装置による当該リソースの使用に係る管理を行うものであり、
前記制御部は、前記外部装置に対し前記リソースを使用させない判定を行う場合に、前記特定外部装置に対し当該リソースを使用させる判定を行う
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項11】
前記リソース使用管理装置は、更に前記リソースを前記外部装置と時分割で使用する特定外部装置による当該リソースの使用に係る管理を行うものであり、
前記制御部は、前記特定外部装置がリソースを使用しない期間であることを検知すると、前記カウンタの値にかかわらず、前記外部装置に対し前記リソースを使用させる判定を行う
ことを特徴とする請求項1記載のリソース使用管理装置。
【請求項12】
前記検出部は、前記カウンタの値が所定の値である場合には、前記検出を行わない
ことを特徴とする請求項11記載のリソース使用管理装置。
【請求項13】
前記遅延部は、前記カウンタの値がカウンタの初期値と等しい場合には、当該カウンタの値を戻さない
ことを特徴とする請求項11記載のリソース使用管理装置。
【請求項14】
前記リソース使用管理装置は、更に
複数の装置から1つの装置を前記外部装置として選択する選択部を備える
ことを特徴とする請求項10記載のリソース使用管理装置。
【請求項15】
外部装置とリソースと当該外部装置による当該リソースの使用に係るリソース使用管理装置とを含むリソース使用管理システムであって、
前記リソース使用管理装置は、
カウンタと、
前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎に前記カウンタの値を進める検出部と、
前記検出部による各検出について、当該検出の所定時間後に前記カウンタの値を戻す遅延部と、
前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行う制御部とを備える
ことを特徴とするリソース使用管理システム
【請求項16】
前記外部装置はプロセッサであり、前記リソースはメモリである
ことを特徴とする請求項15記載のリソース使用管理システム。
【請求項17】
前記外部装置は通信端末であり、前記リソースは伝送路である
ことを特徴とする請求項15記載のリソース使用管理システム。
【請求項18】
外部装置によるリソースの使用に係るリソース使用管理装置の制御方法であって、
検出手段が、前記外部装置に対し前記リソースを使用させるようにしたことを検出し、検出する毎にカウンタの値を進めるステップと、
遅延手段が、前記検出手段による各検出について、当該検出の所定時間後に前記カウンタの値を戻すステップと、
制御手段が、前記カウンタの値に基づいて、前記外部装置に対し前記リソースを使用させるか否かに係る判定を行うステップとを備える
ことを特徴とするリソース使用管理装置の制御方法。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図8】
image rotate

【図3】
image rotate

【図7】
image rotate

【図9】
image rotate