アクセス調停装置、および調停可能条件検証装置
技術分野
[0001] 本発明はメモリインターフェースやタスクの制御などに用いられるアクセス調停装置
(アービタ一)に関するものである。
背景技術
[0002] システム LSI (Large Scale Integrated circuit)が用いられつつある今日では、以前 の複数チップの機能を有する複数の機能ブロックを 1チップに集積することがよく行 われている。このような場合には、コストダウンを図るために、外部メモリの統合がなさ れることが多い。すなわち、以前のように複数チップの LSIが用いられる場合であれ ば、メモリも複数設けられて、それぞれ各 LSIに占有されることが多力つた力 システ ム LSIでは、複数の機能ブロックが 1つのメモリを共用することが非常に多く行われる ようになる。そこで、複数の機能ブロックからの競合するアクセスを調停するために、 アクセス調停装置が用いられる。
[0003] アクセス調停装置の性能は、特に、デジタル AV (audio visual)家電における AV処 理ブロックのように、リアルタイム性の高い処理が要求される場合に重要となる。このよ うな高いリアルタイム性が要求される処理に対しては、例えばワーストアクセスタイム( アクセス要求があって力 アクセスがなされるまでの最長時間)を保証できるラウンド ロビン方式を用いるハードウェアメカニズムが知られている(例えば、特許文献 1参照 。)。
[0004] また、特にバス調停に関するものではな 、が、マルチタスキング処理にぉ 、て複数 のプログラムの実行をスケジューリングするために、 EDF (Earliest Deadline First)と 呼ばれる手法を用いたものなども知られている。具体的には、実行待ち行列を生成し 、新たなタスクの生成時などに、デッドラインまでの時間の長さによってソートする処 理が行われる (例えば、特許文献 2参照。 ) 0
[0005] 一方、例えば、近年のデジタル AV (audio visual)家電にお 、ては、システム LSIの 内部に、リアルタイム性の高い AV処理を行う AV処理ブロックと、 GUI (graphical user
interface)などのコンピュータ並みの複雑な制御を行う汎用マイコン(マイクロコンピュ ータ)などが設けられ、それぞれの機能ブロックが同一のメモリを共有するような構成 が考えられる。このようにリアルタイム性を要求するシステムと、マイコンのようにリアル タイム性はそれほど要求しな 、が高 、パフォーマンス(平均した性能)を要求するよう なシステムでは、特にリアルタイム性とパフォーマンスを両立させ得るように統合化さ れたメモリアクセスの効率的な調停が必要になる。
特許文献 1 :特表 2001— 516100号公報
特許文献 2:特開平 5 - 274162号公報
発明の開示
発明が解決しょうとする課題
[0006] 上記のようなラウンドロビン方式は、リアルタイム性を保証することは可能ではあるが 、そのためには、調停の対象となる処理に過大な処理能力が必要とされる。すなわち 、アクセスを要求する処理の優先度に係わらず一定の順序でアクセスが許可される ので、優先度の低 、処理が行われた後に優先度の高!、処理が行われてもよ!/、ような 処理能力が必要となる。
[0007] 一方、 EDF手法は、最適なスケジューリングを行い得ることが知られている力 タス クの生成時や実行完了時ごとに頻繁に待ち行列の項目を並べ換える処理などをノ、 一ドウエアで行うことは困難である。それゆえ、バス調停などのような高速な応答が必 要とされる場合に適用することは困難である。
[0008] また、 EDF手法は、デッドラインが明確に決定されるリアルタイム系の処理には容易 に適用できる力 非リアルタイム系の処理は明確なデッドラインがない(平均的な処理 能力は必要とされる力 個々の処理がいつまでに完了しなければならないという制約 はない)ために、必ずしも適用が容易ではない。特に、リアルタイム系の処理と非リア ルタイム系の処理とが混在する場合に、リアルタイム性とパフォーマンスを両立させ得 るように統合ィ匕されたメモリアクセスの効率的な調停を行わせることは困難である。
[0009] 本発明は、上記の点に鑑み、簡潔なハードウェア構成で適切な調停を高速に行わ せることができ、しかも、リアルタイム系の処理と非リアルタイム系の処理とが混在する 場合でも、これらを共通に扱えるようにして、リアルタイム性とパフォーマンスを両立さ
せ得る効率的な調停を行わせることも容易なアクセス調停装置を提供することを目的 としている。
課題を解決するための手段
[0010] 上記の課題を解決するため、本発明の実施形態の第 1のアクセス調停装置は、 複数のリクエスタ力 アクセス対象へのアクセス要求を調停するアクセス調停装置で あって、
各リクエスタに対するアクセス許可の優先度を保持する優先度保持手段と、 上記優先度保持手段に保持される優先度を制御する優先度制御手段と、 上記優先度保持手段に保持された優先度が最も低いリクエスタにアクセス許可を 与えるアクセス許可手段と、
を備え、
上記優先度制御手段は、
リクエスタ力 アクセス要求がある場合、およびアクセス要求がなくて優先度が所定 の基準優先度よりも低い場合に、時間経過に応じて、優先度を所定の上昇程度だけ 上昇させる一方、
アクセスが許可された場合に、優先度を所定の低下程度だけ低下させるように構成 されていることを特徴とする。
[0011] また、本発明の実施形態の第 2のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度の上昇程度、および低下程度が、リクエスタごとに設定されるように構 成されて!/ヽることを特徴とする。
[0012] また、本発明の実施形態の第 3のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度の低下が、リクエスタによるアクセスの完了時点で行われるように構成さ れていることを特徴とする。
[0013] これらにより、待ち行列のソート処理などを必要とすることなぐ加減算など程度の処 理によって、適切な応答時間でアクセスが行われるように調停することができる。また 、いわゆる非リアルタイム系の処理などに対しても、基準優先度などの値を設定する
ことによって、リアルタイム系の処理などと併せて調停することも容易にできる。
[0014] また、本発明の実施形態の第 4のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記アクセス許可手段は、上記優先度の低下によって優先度が所定の許可停止 優先度よりも低くなつたリクエスタへのアクセス許可を与えな 、ように構成されて 、るこ とを特徴とする。
[0015] これにより、連続してアクセス要求がなされたときに優先度に応じた値が過大になつ たり過小になったりするのが防止される。
[0016] また、本発明の実施形態の第 5のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度制御手段は、さらに、全てのリクエスタについての優先度が、上記基準 優先度よりも低い場合に、少なくとも一部の所定のリクエスタについての優先度を基 準優先度に設定するように構成されて 、ることを特徴とする。
[0017] また、本発明の実施形態の第 6のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度制御手段は、さらに、全てのリクエスタ力 のアクセス要求がない場合 に、少なくとも一部の所定のリクエスタについての優先度を上記基準優先度に設定 するように構成されて 、ることを特徴とする。
[0018] また、本発明の実施形態の第 7のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度制御手段は、さらに、 1つのリクエスタだけ力 アクセス要求がある場合 に、他のアクセス要求がないリクエスタのうち、少なくとも一部の所定のリクエスタにつ V、ての優先度を上記基準優先度に設定するように構成されて 、ることを特徴とする。
[0019] これらにより、連続したアクセス要求によって優先度が低くされた場合でも、他のァク セス要求がない場合などには、優先度が戻されてアクセス許可されやすくなるように される。
[0020] また、本発明の実施形態の第 8のアクセス調停装置は、
第 1のアクセス調停装置であって、
上記優先度制御手段は、さらに、何れかのリクエスタに対して、上記優先度が所定 の限界優先度に達するまでアクセス許可が与えられな力つた場合に、エラー信号を 出力するように構成されて 、ることを特徴とする。
[0021] これにより、適切に調停が行われるかどうかの確認などが容易に行われる。
発明の効果
[0022] 本発明によれば、単純な回路で、複数の処理や装置(リクエスタ)がメモリを共有す る場合のノ ス調停などに対して、例えばリアルタイム性とパフォーマンスを両立させ得 る効率よ 、調停を実現できる。
図面の簡単な説明
[0023] [図 1]図 1は、アクセス調停装置の構成を示すブロック図である。
[図 2]図 2は、調停動作と優先度制御値等の変化との関係の例を示す説明図である。
[図 3]図 3は、 1つの調停可能条件の導出過程を示す説明図である。
[図 4]図 4は、他の調停可能条件の導出過程を示す説明図である。
[図 5]図 5は、調停可能条件検証装置の動作を示すフローチャートである。
符号の説明
[0024] 100 アクセス調停装置
101 優先度制御値レジスタ
102 優先度制御値制御部
103 選択部
104 アクセス制御部
201 - 202 ジクエスタ
203 メモリ
発明を実施するための最良の形態
[0025] 本発明の実施形態として、図 1に示すように、 2つのリクエスタ 201 · 202によるメモリ
203へのアクセスを調停するアクセス調停装置 100の例を説明する。
[0026] このアクセス調停装置 100は、リクエスタ 201 · 202から与えられる基準優先値 (TM
IN)、優先度低下値 (PERIOD)、および許可停止優先値 (TMAX)に基づいて調
停を行うようになっている。(上記各値および後述する優先度制御値は、優先度に関 連する値である力 その単位は、説明の便宜上、クロックサイクル数またはこれに対 応した時間の次元として説明する。 )
上記基準優先値 (TMIN)は、リクエストが所定以上のリクエスト周期でなされる場合 には、リクエストがなされて力もその値の応答時間(クロックサイクル数)以内にァクセ スが完了すべきことを示すものである。上記所定以上のリクエスト周期は、(リクエスト 周期-優先度低下値 (PERIOD) )の累積値≥0となるような周期である (上記累積 値は、累積値〉 0になるごとに 0にリセットされるとした値である。 ) 0ここで、上記応答 時間は、上記基準優先値 (TMIN)および優先度低下値 (PERIOD)と、各リクエスタ 201 · 202のアクセスに要する時間 (Taccess)とが後に詳述するように所定の条件を 満たすことによって保証することができる。
[0027] また、許可停止優先値 (TMAX)は、優先度制御値力この値を越えて 、る間は、他 のリクエスタの優先度制御値との大小関係に係わらず、アクセスが許可されなくてもよ いことを示すものである。(なお、優先度制御値が増大して許可停止優先値 (TMAX )を越えたりするのは、例えば優先度低下値 (PERIOD)より短い周期でのリクエスト が連続した場合であり、優先度制御値が許可停止優先値 (TMAX)を越えて 、る間 にアクセスが許可されなくても、平均的な応答時間は守られる。 )
なお、通常、非リアルタイム系の処理や処理装置については、必ずしも絶対的な応 答性は要求されないが、リアルタイム系と同様に上記各パラメータを設定することによ り、調停動作自体は特に区別することなく行わせることができる。これによつて、例え ばリアルタイム系のアクセスの残りバンド幅を非リアルタイム系のアクセスについて最 低保証として与えることなどができる(この場合でも、後述するように、処理に余裕があ れば、それ以上の性能を実質的に発揮させることもできる。 ) o
[0028] (アクセス調停装置 100について)
アクセス調停装置 100は、具体的には、各リクエスタ 201 · 202に対する優先度制 御値を保持する優先度制御値レジスタ 101 · 101と、上記優先度制御値を制御する 優先度制御値制御部 102· 102と、優先度制御値レジスタ 101 · 101に保持された優 先度制御値に基づいてアクセスを許可するリクエスタ 201 · 202を選択する選択部 10
3と、選択結果に基づいてアクセス制御をするアクセス制御部 104とを備えて構成さ れている。
[0029] 上記優先度制御値レジスタ 101に保持される優先度制御値は、例えば各リクエスタ 201 · 202によるアクセスが完了すべき時刻までの時間(クロックサイクル数)を示すよ うになつている。したがって、この場合には値が小さいほど優先度が高いことになる。 上記優先度制御値レジスタ 101は、具体的には、例えばカウンタを用いて構成され ている。
[0030] 優先度制御値制御部 102は、リクエスタ 201 · 202から与えられる所定の基準優先 値 (TMIN)、および優先度低下値 (PERIOD)に基づいて、上記優先度制御値レジ スタ 101に保持される優先度制御値を図 2および以下に示すように制御するようにな つている。
[0031] (a) 1クロックサイクルごとに、優先度制御値を 1ずつ減少させる。
[0032] (b) ただし、リクエスタ 201 · 202からのリクエストがない場合(リクエスト信号がアサ ートされていない場合)には、基準優先値 (TMIN)よりも小さくはしない。
[0033] (c) リクエスタ 201 · 202によるメモリ 203へのアクセスが完了すると、優先度制御 値を優先度低下値 (PERIOD)だけ増加させる。上記アクセスの完了は、具体的には 、例えばアクセス完了時にリクエスト信号がネゲートされることによって検知される。
[0034] さらに、優先度制御値制御部 102は、優先度制御値が基準優先値 (TMIN)以上 の (優先度が低い)場合にネゲートされるビジー信号を出力するとともに、このビジー 信号が何れのリクエスタ 201 · 202についてもネゲートされた場合に、後述するように アクセス制御部 104からの初期化信号がアサートされるのに応じて、優先度制御値を 基準優先値 (TMIN)に設定するようになっている。
[0035] また、優先度制御値が負になった場合(1を減算する前に 0であった場合)にアサ一 トされるエラー信号を出力するようになっている。このエラー信号は、例えばアクセス 調停装置のデバッグの際に調停が破綻しな 、ことを確認するためなどに用いることが できる力 必ずしもこのようなエラー信号が出力されるようにしなくてもよい。
[0036] また、選択部 103は、リクエスト信号がアサートされているリクエスタ 201 · 202のうち 、優先度制御値レジスタ 101に保持されて 、る優先度制御値の小さ!/、方を選択して
、セレクト結果信号を出力するようになっている。ただし、優先度制御値がリクエスタ 2 01 · 202から出力される許可停止優先値 (TMAX)を越える場合には、選択がなされ ないようになっている。
[0037] アクセス制御部 104は、上記セレクト結果信号に応じて、リクエスタ 201 · 202にァク セス許可信号を出力するようになっている。また、前記のように全ての優先度制御値 制御部 102から出力されるビジー信号がネゲートされた場合 (何れのリクエスタ 201 · 202についても、優先度制御値が基準優先値 (TMIN)以上である場合)に、少なくと もリクエスタ 201 · 202の一方に対応した優先度制御値制御部 102に出力する初期 化信号をアサートし、優先度制御値を基準優先値 (TMIN)に設定させるようになつ ている。
[0038] なお、上記基準優先値 (TMIN)等の値は、リクエスタ 201 · 202から与えられるのに 限らず、他の管理装置など力 与えられるようにしたり、あら力じめアクセス調停装置 に設定されるようにしたりしてもよい。また、レジスタなどに保持されるようにして、回路 を変更することなくパラメータの変更ができるようにすれば、仕様変更に対する柔軟 性や汎用性などを高めることができる。
[0039] また、リクエスタの数は 2つに限るものではないが、特に、リクエスタの数が多い場合 でも、各リクエスタは同じように扱われ、回路規模や複雑さが大幅に増すことはないの で、多くのリクエスタを調停し得る装置を構成することも容易にできる。
[0040] また、優先度低下値 (PERIOD)の加算タイミングなどは、上記に限らず、実質的に 同じ動作が得られる種々の変形例を適用してもよい。具体的には例えば優先度低下 値 (PERIOD)が上記のようにアクセス完了時に加算される場合には、リクエスト周期 などとの関係で値の意味を把握しやすいが、アクセス許可がなされた時点で、ァクセ ス中の優先度制御値の減少を考慮した値が加算されるようにしたりしてもよい。
[0041] 上記のように構成されたアクセス調停装置 100では、後に詳述するように所定の条 件を満たしていれば、リクエスタ 201 · 202によるアクセスは、必ず、優先度制御値が 0 になるまでに完了する。すなわち、優先度制御値は、リクエストがなされた場合に、ァ クセスが完了すべき時刻(デッドライン)までの時間を示していることになる。また、上 記優先度制御値が最も小さ 、 (デッドラインが最も近 、)リクエスタ 201 · 202が選択さ
れるので、このアクセス調停装置 100では EDF (Earliest Deadline First)アルゴリズム による調停が行われていることになる。
[0042] 以下、具体的な動作の例を図 2に基づいて説明する。
[0043] (A) 調停が開始される際など、優先度制御値が基準優先値 (TMIN)の状態でリ タエスト信号がアサートされたとすると、優先度制御値は時間の経過とともに減少する
(優先度が徐々に上昇する。)。
[0044] (B) やがて優先度制御値が他のリクエストがなされているリクエスタの優先度制御 値よりも小さくなると、アクセスが許可される。アクセス時間(Taccess)のアクセスが完 了してリクエスト信号がネゲートされると、優先度制御値は、優先度低下値 (PERIOD
)が加算された値に上昇する。
[0045] (C) 上昇した優先度制御値は、少なくとも基準優先値 (TMIN)に低下するまでは
、次のリクエストの有無に係わらず徐々に減少する。
[0046] (D) 次のリクエストがあった場合には、優先度制御値が基準優先値 (TMIN)に低 下した後も、さらに低下し続ける。やがて上記 (B)と同様にアクセスが許可され、優先 度制御値が 0になるまでにアクセスが完了する。そこで、優先度制御値は、さらに優 先度低下値 (PERIOD)が加算された値に上昇する。
[0047] (E) 優先度制御値は (C)と同様に徐々に減少するが、優先度制御値が基準優先 値 (TMIN)に低下した時点で次のリクエストがない場合には、次のリクエストがあるま で、基準優先値 (TMIN)に保たれる。
[0048] (F) 次のリクエストがあると、優先度制御値は低下し始める。そしてアクセスが許可 され、アクセスが完了すると、優先度低下値 (PERIOD)が加算された値に上昇する
[0049] (G) やはり、優先度制御値が徐々に減少する。ここで、優先度制御値が基準優先 値 (TMIN)よりも大きくても、他のリクエスタの優先度制御値よりも小さければ、ァクセ スは許可される。ただし、優先度制御値が許可停止優先値 (TMAX)よりも大きい場 合には、アクセス許可は抑制される。それゆえ、短期間にリクエストが繰り返されても、 優先度制御値が(許可停止優先値 (TMAX) +優先度低下値 (PERIOD) )よりも大 きくならないので、優先度制御値レジスタ 101のオーバーフローが回避される。そして
、上記のようにアクセス許可が抑制されても、前記のように平均的な応答時間は守ら れる。
[0050] また、上記許可停止優先値 (TMAX)が比較的小さ 、値に設定されると、リクエスト が頻繁になされたとしても一定周期以下のアクセスが禁止されて、アクセスの平均化 が図られることになるので、例えばメモリのリフレッシュ動作を適切に行わせることなど が容易にできる。一方、許可停止優先値 (TMAX)が大きい値に設定されると、連続 したアクセスが許可されるようにすることができる。それゆえ、例えば非リアルタイム系 のリクエスタなどに対しては、許可停止優先値 (TMAX)を大きく設定することによつ て、パフォーマンスを高く設定することができる。
[0051] なお、必ずしも上記のようなアクセス許可の抑制がなされるようにしなくても、優先度 制御値レジスタ 101のサイズが十分に大きければ、調停動作自体は適切に行わせる ことができる。
[0052] (H) 一方、優先度制御値が許可停止優先値 (TMAX)よりも大き 、場合でも、全 てのリクエスタ 201 · 202の優先度制御値がそれぞれ基準優先値 (TMIN)以上(ビジ 一信号がネゲート状態)であれば、全ての、または一部のリクエスタについての優先 度制御値が例えば基準優先値 (TMIN)に設定され、その後にリクエストがなされた 後、または既にリクエストされている場合には直ちに、上記基準優先値 (TMIN)から 低下し始める。
[0053] ここで、上記のように全てのリクエスタ 201 · 202の優先度制御値がそれぞれ基準優 先値 (TMIN)以上である場合に、各優先度制御値が基準優先値 (TMIN)に設定さ れても、適切なアクセスが損なわれることはない。このことは、以下の観点から明らか である。すなわち、所定の条件が満たされていれば、各リクエスタは、基準優先値 (T MIN)以内の期間にアクセスが完了することが保証される。したがって、何れのリクェ スタも、優先度制御値を基準優先値 (TMIN)より大き 、値から基準優先値 (TMIN) に引き下げても、当該リクエスタのアクセスは保証される。また、上記保証は、他のリク エスタの優先度制御値がどのように設定されいるかに係わらないので、上記他のリク エスタの優先度制御値をそれぞれ基準優先値 (TMIN)に引き下げても差し支えな い。それゆえ、全てのリクエスタの優先度制御値が基準優先値 (TMIN)より大きい場
合には、何れのリクエスタの優先度制御値も基準優先値 (TMIN)に変更することが でさること〖こなる。
[0054] そして、上記のように、調停が破綻しないと判断される場合に優先度制御値が変更 されること〖こより、許可停止優先値 (TMAX)を越えたリクエスタでも、可能な限りァク セスが許可されるようにすることができる。それゆえ、全てのリクエスタについて基準優 先値 (TMIN)に変更されるようにしてもよいが、例えば、非リアルタイム系のリクエスタ に対して上記のような変更がなされるようにすることにより、リアルタイム系のリクエスタ に必要なアクセスを確保しつつ(最長遅延時間を保証してリアルタイム性を保証しつ つ)、非リアルタイム系のリクエスタによる処理のパフォーマンスを高くすることなどが 容易にできる。
[0055] なお、上記のように全てのリクエスタ 201 · 202についてのビジー信号がネゲート状 態であるかどうかの判定に代えて、何れのリクエスタ 201 · 202からもリクエストがなさ れていないかどうかを判定するようにしてもよい。すなわち、リクエストがなされていな ければ優先度制御値が基準優先値 (TMIN)より小さくなることはな!/、ので、得られる 判定結果は同じである。さらに、リクエストのなされているリクエスタが 1つだけの場合 にも、そのリクエスタは直ちにアクセスが許可されているので、そのような場合に、他 の全て、または一部のリクエスタにっ 、て優先度制御値が変更されるようにしてもょ ヽ 。また、変更される値は基準優先値 (TMIN)に限らず、これを限度として優先度が高 くなる変更であればよい。
[0056] 上記のような調停が行われる場合のリクエストがなされて力 アクセスが完了するま での応答時間最大値は、 n番目のリクエスト時刻を T(n)とすると、
max{ (n- l) X PERIOD— T(n) , 0} +TMIN
(max{, }は {, }内の大きい方の値を意味する。)
となる。なぜならば、優先度制御値は、 n—l番目までの各リクエストに対するアクセス が完了するごとに優先度低下値 (PERIOD)ずつ増加し、時刻 T(n)までの経過時間 だけ減少し、ただし、リクエストがない状態で基準優先値 (TMIN)から減少することは ないからである。
[0057] (調停可能条件について)
次に、各リクエスタのリクエスト周期がそれぞれ所定以上でさえあれば、何れのリク ェストについても、リクエストがなされて力も所定の応答時間以内に、すなわち優先度 制御値が 0になるまでに必ずアクセスが行われる(完了する)ことを保証するための条 件 (調停可能条件)およびその検証にっ 、て説明する。
[0058] 上記調停可能条件につ!ヽては、まず、ある時刻 t=Terrorで調停が破綻する場合 、すなわち時刻 t=Terrorで、あるリクエスタの最後のアクセスが完了せずに優先度 制御値が 0になる場合を考え、それ以前のアクセスが全て許可され完了する条件を 求めて、さらに、その条件を任意の t=Terrorに対して満たす条件を求めればよい。
[0059] 調停が破綻する場合については、以下のような 2つの破綻パターンに分けることが できる。ここで、前記のように優先度低下値 (PERIOD)はアクセス完了時に加算され るとする。また以下では、各リクエスタ、および各リクエスタに関する値を一般ィ匕して添 え字 G)等を付けて表す。
[0060] (1) 第 1の破綻パターン
各リクエスタ (j)について、最後にアクセスが完了するまでの優先度制御値 P (j)力 Terror— t以下の場合
各リクエスタ (j)の時刻 tでの優先度制御値 P (j)は、図 3に示すように、基準優先値( TMIN (j) )を初期値として、アクセス完了ごとに優先度低下値 (PERIOD (j) )だけ増 加し、時間経過とともに tだけ減少する。そこで、時刻 t=Terrorまでにリクエスタごと のアクセスが完了した回数を nO (j)、優先度制御値 P (j)が TMIN (j)に保たれて 、る 時間の合計を Twait (j)とすると、 nO (j)回目のアクセスが完了するまでの P (j)は、( 最後のアクセス完了後に加算される PERIOD (j)は考慮しなくてよいから、 )
P (j)
=TMIN (j) + {nO (j) 1 } X PERIOD (j) t+Twait (j)
である。そして、第 1の破綻パターンの場合、全てのリクエスタ (j)について、常に P y) Terr or— t
であるから、
TMIN (j) + {nO (j)— 1 } X PERIOD (j) -t+Twait (j)
≥ ferror— t
である。それゆえ、上記アクセス完了回数 nO (j)は、
nO (j)
≤ {Terror— TMIN (j) -Twait (j) } /PERIOD (j) + 1
≤ {Terror— TMIN (j) }/PERIOD (j) + 1
( VTwait (j)≥0)
となる。すなわち、各リクエスタ (j)について、 t=Terrorまでに完了するアクセス回 数は、 {Terror—TMIN (j) }/PERIOD (j) + 1以下となる。
[0061] 一方、各リクエスタ (j)のアクセスに要する時間を Taccess (j)とし、最初のリクエスタ のリクエストに対してアクセスが許可されアクセスが開始されるまでの時間を delayと すると、全リクエスタについてのアクセス時間の総合計 (Tall)は、
Tall
= delay +∑nO (j) X Taccess y)
≤ delay +∑ [ { Terror - TMIN (j) }/PERIOD (j) + 1] X Taccess (j)
である。これが Terror以下であれば、時刻 t=Terrorよりも前の全てのアクセスは 確実に完了して 、る (破綻して 、な 、)ことになるから、
delay +∑〔 {Terror— TMIN (j) } /PERIOD (j) + 1] X Taccess (j) ≤Terror (上記除算は切り捨て。) …(数 1)
したがって、任意の Terrorに対して上記 (数 1)が成り立てば、各リクエスタのリクェ スト周期がそれぞれ所定以上である場合には、何れのリクエストに対しても、優先度 制御値が 0になるまでに、すなわちリクエストがなされて力も所定の応答時間以内に、 アクセスが許可されて完了することが保証されることになる。
[0062] (2) 第 2の破綻パターン
時刻 t=Terrorよりも前にアクセスが完了するリクエスタ (j)で、優先度制御値 P (j) が Terror—はりも大きくなるものがある場合
この場合、優先度制御値 P (j)が Terror—はりも大きくなる最後のリクエストが許可 された後の動作だけを考えればよい。より詳しくは、例えば図 4に示すように、リクエス タ(k)のリクエストが許可されてアクセスが完了した後、 t=Terrorまでに、それぞれ 最後にアクセスが完了するまでの優先度制御値 P (j)が、 Terror— t以下である場合
を考慮すればよい。 (ここで、同図においては、便宜上、リクエスタ (k)にアクセス許可 がなされてから 1クロックサイクル後のタイミングを t = 0とし、その後(delay— 1)だけ 経過後から Taccess (k)の間アクセスが行われるとしている。 )
上記のような場合だけを考慮すればよいのは、次のような理由による。
[0063] t= 1より前にリクエストがなされる他のリクエスタ (j)については、その優先度制御 値 P (j)が優先度制御値 P (k)よりも小さければ、そのアクセスが完了してからリクエス タ (k)のアクセスが許可されることになる(図 4の状態になる)ので考慮する必要がな い。一方、優先度制御値 P (j)が優先度制御値 P (k)よりも大きければ、そのリクエスタ (j)がアクセス許可されるのは t=Terror以降のことなので、やはり考慮する必要がな い。リクエスタ (k)が同図のアクセス後に再度リクエストする場合も同様である。 (なお、 上記のことから、 t=0の時点では、リクエスタ (k)以外のリクエスタ (j)によるリクエスト がないと考えてよい。)
さらに、リクエスタ (k)のアクセス後に、優先度制御値 Pが Terror—はりも大きくなる 他のリクエスタにっ ヽても考慮する必要がな 、。そのようなリクエスタがある場合には、 そのリクエスタについて、図 4の状態となるので、結局、リクエスタ (k)について代表さ せて考えればよい。
[0064] 第 2の破綻パターンの場合、上記のように t=0の時点で、リクエスタ (k)以外のリク エスタ (j)によるリクエストがないと考えてよいので、それらの優先度制御値 P (j)は、そ れぞれ TMIN (j)以上になっている(TMIN (j) + αとする。;)。そこで、時刻 t = 0〜T errorまでにリクエスタごとのアクセスが完了した回数を nl (j)とすると、 t=0以降、 nl (j)回目のアクセスが完了するまでの P (j)は、(1)と同じように考えれば、
P (j)
= {TMIN (j) + α } + {nl (j)— 1 } X PERIOD (j)— t+Twait (j)
であり、第 2の破綻パターンの場合、全てのリクエスタ (j)について、常に P y) Terr or— t
であるから、
{TMIN (j) + α } + {nl (j) - 1 } X PERIOD (j) -t+Twait (j)
≥ ferror— t
である。それゆえ、上記アクセス完了回数 nl (j)は、
nl (j)
≤ {Terror— TMIN (j) }/PERIOD (j) + 1
( ·.· a≥0、Twait (j)≥0)
となる。
[0065] 一方、やはり(1)と同様に、全リクエスタについてのアクセス時間の総合計 (Tall)は Tall
= {delay— 1 +Ί access (k) } + ηΐ (j; Χ Ί access y)
≤ {delay- 1 +Taccess (k) } +∑ [ {Terror-TMIN (j) }/PERIOD (j) + 1] X T access (j)
である。これが Terror以下であれば、時刻 t=Terrorよりも前の全てのアクセスは 確実に完了して 、る (破綻して 、な 、)ことになるから、
{delay- 1 +Taccess (k) } +∑ [ {Terror-TMIN (j) }/PERIOD (j) + 1] X Ta ccess (j)
≤Terror (上記除算は切り捨て。また∑内の jは j =kを除く。) …(数 2) したがって、任意の Terrorに対して上記 (数 2)が成り立てば、各リクエスタのリクェ スト周期がそれぞれ所定以上であれば、何れのリクエストに対しても、優先度制御値 力 SOになるまでに、すなわちリクエストがなされて力 所定の応答時間以内に、ァクセ スが行われることが保証されることになる。
[0066] したがって、上記 (数 1、 2)がともに満足されていれば、全ての場合について、優先 度制御値が 0になることなく調停が行われることを保証できることになる。
[0067] ここで、上記 (数 1、 2)は、以上のように本実施形態のアクセス調停装置 100の動作 を前提として導出されたものである力 これらによって調停可能なことが保証されれば 、 EDF手法を用いた他のアクセス調停装置を構成することも可能である。すなわち、 何らかの方法で調停可能なことが示されて!/、れば、 EDF手法のアクセス調停装置で も必ず調停可能なので、上記のような検証は、広く種々のアクセス調停装置における 調停可能性の検証に用いることができる。
[0068] なお、上記 (数 1、 2)においては≤が用いられて表されている例を示した力 実質 的には、クロックタイミングの考慮の仕方などに応じて、 <が用いられた式を条件とす るなどしてもよ!/、。
[0069] (調停可能条件検証装置につ!、て)
次に、上記 (数 1、 2)が利用される設計装置 (調停可能条件検証装置)について説 明する。この設計装置は、特に限定されないが、例えばコンピュータに、図 5に示すよ うな各機能を発揮するソフトウェアを組み込んで構成することができる。
[0070] (S101) まず、例えばアクセス対象となる共有メモリにアクセスする機能ブロックが 決定される。
[0071] (S102) 各機能ブロックのメモリアクセスに対する要求のパラメータである基準優 先値 (TMIN)と優先度低下値 (PERIOD)、および各機能ブロックのアクセスに要す る時間 (Taccess)が決定される。これらは、必要とされる応答時間(遅延時間)、リク ェスト周期(要求バンド幅)、データ転送能力や入出力速度などに対応するものであ る。
[0072] なお、上記(S101、 S102)の決定は外部で行われて、上記パラメータなどだけが 入力部から入力されるようにしてもょ 、。
[0073] (S103) 前記 (数 1、 2)を用いて、アクセス調停装置全体の成立性、すなわち、所 定数の種々の Terrorの値について、これらが成り立つかどうかがチェックされる。
[0074] (S104) 調停が破綻するかどうかが判定され、破綻するなら、(S101)に戻って、 共有メモリにアクセスする機能ブロックの取捨選択や、調停要求パラメータの変更が 行われ、評価が繰り返される。
[0075] (S105) 一方、上記(S 104)の判定で調停可能と判定されれば、上記パラメータ を満足するような各機能ブロックや共有メモリ、メモリバスなどの詳細な回路設計が行 われる。これによつて、オーバースペックになることもなく最適なシステムが容易に構 成できる。なお、設計製造の段階に応じて、シミュレーションや実機デバッグによって 、優先度制御値力^になって優先度制御値制御部 102からエラー信号が出力される カゝどうかを確認したりしてもよい。
産業上の利用可能性
本発明にかかるアクセス調停装置は、単純な回路で、複数の処理や装置(リクエス タ)力 Sメモリを共有する場合のバス調停などに対して、例えばリアルタイム性とパフォ 一マンスを両立させ得る効率よ ヽ調停を実現できると ヽぅ効果を有し、メモリインター フェースやタスクの制御などに用いられるアクセス調停装置 (アービタ一)等として有 用である。