(57)【要約】【課題】クライアントの平均アクセス性能を正確に制御することが可能なメモリアクセス調停装置を提供すること。【解決手段】  調停部１１は、クライアント１〜３（２１〜２３）からのメモリアクセス要求（ＲＥＱ１，ＲＥＱ２’，ＲＥＱ３）を優先度に応じて調停する。優先度調整部１２は、クライアント２（２２）がＲＥＱ２を発行してから所定期間だけＲＥＱ２＿ＬＯＷ信号をアサートする。そして、ＡＮＤ回路１３は、ＲＥＱ２＿ＬＯＷ信号がアサートされている期間、クライアント２（２２）からのＲＥＱ２をマスクする。したがって、クライアント２（２２）の最低アクセス頻度を保証でき、より優先度の低いクライアント３（２３）の調停待ち時間を抑えることが可能となる。【選択図】図１
2007213225.tif 000002
【特許請求の範囲】
【請求項１】
複数のクライアントからのメモリアクセス要求を優先度に応じて調停する調停手段と、
特定のクライアントがメモリアクセス要求を発行してから所定期間だけ、前記特定のクライアントからの次回以降のメモリアクセス要求に対する優先度を変更して前記調停手段にメモリアクセス要求を出力する変更手段とを含むメモリアクセス調停装置。
【請求項２】
前記変更手段は、前記特定のクライアントからのメモリアクセス要求の優先度を全てのクライアントの中で最低の優先度に変更する、請求項１記載のメモリアクセス調停装置。
【請求項３】
前記変更手段は、前記特定のクライアントからの前記次回以降のメモリアクセス要求を前記所定期間だけマスクして前記調停手段の所定優先度のインタフェースに出力するマスク手段を含む、請求項１記載のメモリアクセス調停装置。
【請求項４】
前記特定のクライアントからのメモリアクセス要求が前記調停手段の最低優先度のインタフェースに接続される、請求項３記載のメモリアクセス調停装置。
【請求項５】
前記変更手段はさらに、前記所定期間が設定される設定手段と、
前記特定のクライアントからのメモリアクセス要求を検出する第１の検出手段と、
前記第１の検出手段による検出に応じてカウントを開始するカウント手段と、
前記設定手段に設定された所定期間と前記カウント手段によるカウント値とを比較する比較手段と、
前記調停手段からのメモリアクセス許可を検出する第２の検出手段と、
前記第２の検出手段による検出に応じて、前記比較手段によって一致が検出されるまで前記特定のクライアントからのメモリアクセス要求を前記マスク手段にマスクさせるマスク制御手段とを含む、請求項３または４記載のメモリアクセス調停装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のクライアントからのメモリアクセス要求を調停するメモリアクセス調停装置に関し、特に、クライアントの平均アクセス間隔を正しく制御することが可能なメモリアクセス調停装置に関する。
【背景技術】
【０００２】
近年、情報処理装置の高機能化、多機能化が進み、装置内の複数のクライアントからのメモリアクセス要求を調停するメモリアクセス調停装置（アービタ）が用いられるようになってきている。このようなメモリアクセス調停装置は、複数のクライアントがメモリなどの１つのリソースを共有する場合に、そのリソースに対する複数のクライアントからのアクセスを調停するものである。
【０００３】
たとえば、外部ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）へのアクセス調停方式として単純な優先度順が採用されている。アクセス要求の発行元であるクライアントからの要求発行間隔が一定の場合には、より優先度の低いクライアントの待ち時間への影響を予測することができる。
【０００４】
しかしながら、要求発行間隔に制限のない優先度の高いクライアントに対しては、メモリアクセス調停装置側で何らかの制限を加えなければ、低優先度のクライアントへの影響を予測することができず、装置全体の動作が破綻する可能性がある。
【０００５】
この問題を解決するために、従来のメモリアクセス調停装置においては、このようなクライアントのアクセス要求を受付けてから一定期間、そのクライアントの優先度を下げるといった処理を行なっていた。これに関連する技術として、特許文献１および特許文献２に開示された発明がある。
【０００６】
特許文献１に開示されたアービタ装置においては、各クライアントからのリクエスト信号が、ホストＣＰＵ（Central Processing Unit）からのタイマ値に応じた時間マスクされてから調停が行なわれる。このリクエスト信号のマスクは、グラント信号が送られてきてからタイマ値の間だけ行なわれる。
【０００７】
また、特許文献２に開示されたバス調停装置においては、デバイスに優先順位を設定する手段と、各デバイスのマスク時間を設定する手段とを設け、バス使用したデバイスのバス使用要求をマスク時間だけマスクして、他のデバイスを先順位とするものである。
【特許文献１】特開２００３−２５６３５８号公報
【特許文献２】特開２０００−２５９５５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、クライアントのアクセス要求を受付けてから一定期間、そのクライアントの優先度を下げるといった処理を行なう場合には、当該クライアントの平均アクセス間隔は、そのクライアント自身の待ち時間の影響を受けるため、期待通りの性能が出ないといった問題点があった。
【０００９】
また、特許文献１においては、クライアントのアクセス受付けを起点として一定期間要求をマスクした場合、マスク期間をＴ、平均待ち時間をＷとすると、そのクライアントの平均アクセス間隔はＴ＋Ｗとなる。一般に、Ｗを予測することは簡単ではないので、クライアントの平均アクセス性能を正確に制御することが困難である。なお、クライアントの平均アクセス性能は、平均アクセス間隔の逆数に比例する。
【００１０】
また、特許文献２においては、デバイスがバス使用してから、そのデバイスのバス使用要求をマスク期間だけマスクするものであるため、特許文献１と同様に、デバイスの平均アクセス性能を正確に制御することが困難である。
【００１１】
本発明は、上記問題点を解決するためになされたものであり、その目的は、クライアントの平均アクセス性能を正確に制御することが可能なメモリアクセス調停装置を提供することである。
【課題を解決するための手段】
【００１２】
本発明のある局面に従えば、メモリアクセス調停装置は、複数のクライアントからのメモリアクセス要求を優先度に応じて調停する調停手段と、特定のクライアントがメモリアクセス要求を発行してから所定期間だけ、特定のクライアントからの次回以降のメモリアクセス要求に対する優先度を変更して調停手段にメモリアクセス要求を出力する変更手段とを含む。
【発明の効果】
【００１３】
本発明のある局面によれば、変更手段が、特定のクライアントがメモリアクセス要求を発行してから所定期間だけ、特定のクライアントからの次回以降のメモリアクセス要求に対する優先度を変更するので、特定のクライアントの最低アクセス頻度を保証でき、より優先度の低いクライアントの調停待ち時間を抑えることが可能となる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の実施の形態におけるメモリアクセス調停装置の概略構成を示すブロック図である。このメモリアクセス調停装置１は、調停部１１と、優先度調整部１２と、ＡＮＤ回路１３と、ＯＲ回路１４とを含む。図１においては、メモリアクセス調停装置１に３つのクライアント１〜３（２１〜２３）が接続されており、クライアント２（２２）に対してアクセス間隔を調整する場合を示している。なお、クライアント１〜３（２１〜２３）がアクセスするメモリおよびメモリバスについては、本実施の形態におけるメモリアクセス調停方式とは独立であるため、図示していない。
【００１５】
調停部１１は、４つの異なる優先度のクライアント用インタフェースを有しており、ｐｒｉｏｒｉｔｙ１が最高優先度であり、以下、ｐｒｉｏｒｉｔｙ２、ｐｒｉｏｒｉｔｙ３、ｐｒｉｏｒｉｔｙ４の順に優先度が低く、ｐｒｉｏｒｉｔｙ４が最低優先度となる。
【００１６】
ｐｒｉｏｒｉｔｙ１のクライアント用インタフェースには、クライアント１（２１）が直接接続される。
【００１７】
クライアント２（２２）からのＢＳＹ２信号は、ｐｒｉｏｒｉｔｙ２のクライアント用インタフェースに直接接続される。ＡＮＤ回路１３の入力には、クライアント２（２２）からのＲＥＱ２信号と、優先度調整部１２からのＲＥＱ２＿ＬＯＷ信号の反転信号とが接続され、その出力であるＲＥＱ２’信号がｐｒｉｏｒｉｔｙ２のクライアント用インタフェースに入力される。
【００１８】
また、ＯＲ回路１４の入力には、ｐｒｉｏｒｉｔｙ２のクライアント用インタフェースのＡＣＫ２信号と、ｐｒｉｏｒｉｔｙ４のクライアント用インタフェースのＡＣＫ４信号とが接続され、その出力であるＡＣＫ２’信号がクライアント２（２２）に入力される。
【００１９】
ｐｒｉｏｒｉｔｙ３のクライアント用インタフェースには、クライアント３（２３）が直接接続される。
【００２０】
各クライアントは、アクセス要求（ＲＥＱ１〜ＲＥＱ３）信号によってメモリアクセスを要求し、アクセス許可（ＡＣＫ１，ＡＣＫ２’，ＡＣＫ３）信号がアサートされるとメモリアクセスを開始し、メモリアクセス中はビジー（ＢＳＹ１〜ＢＳＹ３）信号をアサートする。
【００２１】
調停部１１は、いずれのビジー（ＢＳＹ１〜ＢＳＹ３）信号もアサートされていない期間にメモリアクセスの調停を行ない、アクセス要求信号をアサートしているクライアントの中で最も高優先度のクライアントに対してアクセス許可信号をアサートする。
【００２２】
優先度調整部１２は、クライアント２（２２）の優先度を下げる期間を示す優先度低下（ＲＥＱ２＿ＬＯＷ）信号を生成する。ＲＥＱ２＿ＬＯＷ信号がネゲートされている期間、すなわちクライアント２（２２）を通常の優先度で調停する期間は、ＡＮＤ回路１３がクライアント２（２２）からのＲＥＱ２信号をそのままＲＥＱ２’信号として調停部１１に出力する。したがって、ＲＥＱ２＿ＬＯＷ信号がネゲートされている期間のみ、クライアント２（２２）は２番目の優先度で調停される。
【００２３】
一方、ＲＥＱ２＿ＬＯＷ信号がアサートされている期間、すなわちクライアント２（２２）の優先度を下げて調停する期間は、ＡＮＤ回路１３がクライアント２（２２）からのＲＥＱ２信号をマスクする。クライアント２（２２）からのＲＥＱ２信号は、別途ｐｒｉｏｒｉｔｙ４のクライアント用インタフェースに接続されているので、ＲＥＱ２＿ＬＯＷ信号がアサートされている期間は、クライアント２（２２）が４番目の優先度で調停される。
【００２４】
ＯＲ回路１４は、ｐｒｉｏｒｉｔｙ２のクライアント用インタフェースのＡＣＫ２信号がアサートされた場合またはｐｒｉｏｒｉｔｙ４のクライアント用インタフェースのＡＣＫ４信号がアサートされた場合に、ＡＣＫ２’信号をアサートするので、クライアント２（２２）は通常の優先度で調停された場合も、低優先度で調停された場合も、メモリアクセスが許可されたことを認識することができる。
【００２５】
図２は、本発明の実施の形態における優先度調整部１２の詳細構成を示すブロック図である。この優先度調整部１２は、エッジ検出部３１および３２と、カウンタ３３と、レジスタ３４と、比較器３５および３６と、ＯＲ回路３７と、ＡＮＤ回路３８と、フリップフロップ３９とを含む。
【００２６】
エッジ検出部３１は、フリップフロップ４１と、ＡＮＤ回路４２とを含む。エッジ検出部３１は、ＲＥＱ２’信号の立ち上がりエッジを検出して１クロック分のパルスを生成し、カウンタ３３にＳＴＡＲＴ信号として出力する。
【００２７】
エッジ検出部３２は、フリップフロップ４３と、ＡＮＤ回路４４とを含む。エッジ検出部３２は、ＡＣＫ２信号の立ち上がりエッジを検出して１クロック分のパルスを生成し、ＯＲ回路３７に出力する。
【００２８】
カウンタ３３は、初期値が０であり、ＳＴＡＲＴ信号がアサートされるとカウントを開始する。カウンタ３３は、比較器３５からのＲＥＳＥＴ＆ＳＴＯＰ信号がアサートされると、カウントを停止すると共に、カウント値を初期値の０に戻す。
【００２９】
比較器３５は、カウンタ３３のカウント値と、レジスタ３４に設定された値とを比較し、カウンタ値がレジスタ値以上になるとＲＥＳＥＴ＆ＳＴＯＰ信号をアサートする。なお、レジスタ３４には、図示しないＣＰＵなどによって任意の値が設定される。
【００３０】
比較器３６は、カウンタ３３のカウント値が０のときにハイレベルの信号をＡＮＤ回路３８に出力し、カウンタ３３のカウント値が０でないときにロウレベルの信号をＡＮＤ回路３８に出力する。
【００３１】
一方、ＡＮＤ回路１３からのＲＥＱ２’信号がアサートされ、ｐｒｉｏｒｉｔｙ２のクライアント用インタフェースのＡＣＫ２信号がアサートされると、エッジ検出部３２が１クロック分のパルスを出力する。このとき、カウンタ３３のカウント値が０に戻っていなければ、フリップフロップ３９はＲＥＱ２＿ＬＯＷ信号をアサートする。カウンタ３３のカウント値が０に戻ると、フリップフロップ３９はＲＥＱ２＿ＬＯＷ信号をネゲートする。
【００３２】
図３は、本発明の実施の形態におけるメモリアクセス調停装置１の動作を説明するための第１のタイミングチャートである。このタイミングチャートにおいては、レジスタ３４に“２０”が設定されているものとする。
【００３３】
まず、サイクル２において、クライアント１〜３（２１〜２３）が同時にアクセス要求（ＲＥＱ１〜ＲＥＱ３）信号をアサートする。このとき、カウンタ３３のカウント値は０であり、ＲＥＱ２＿ＬＯＷ信号はネゲートされている。したがって、ＡＮＤ回路１３は、ＲＥＱ２’信号をアサートする。このとき、ＲＥＱ２’信号の立ち上がりが発生したため、カウンタ３３はサイクル３からカウントを開始する。
【００３４】
サイクル３において、調停部１１はクライアント１（２１）の優先度が最高なので、クライアント１（２１）を選択してＡＣＫ１信号をアサートする。クライアント１（２１）はＡＣＫ１信号を受け、サイクル４においてＲＥＱ１信号をネゲートし、ＢＳＹ１信号をアサートしてメモリアクセスを開始する。
【００３５】
サイクル９において、クライアント１（２１）はメモリアクセスを完了し、サイクル１０においてＢＳＹ１信号をネゲートする。このサイクル１０で、調停部１１は次の調停を行なうが、ＲＥＱ２’信号およびＲＥＱ３信号がアサートされているので、優先度の高いＲＥＱ２’信号を選択する。そして、サイクル１１において、調停部１１はＡＣＫ２信号をアサートする。クライアント２（２２）はＡＣＫ２’信号を受け、サイクル１２においてＲＥＱ２信号をネゲートし、ＢＳＹ２信号をアサートしてメモリアクセスを開始する。
【００３６】
また、サイクル１１においてＡＣＫ２の立ち上がりが発生したため、優先度調整部１２はサイクル１２においてＲＥＱ２＿ＬＯＷ信号をアサートする。
【００３７】
サイクル１６において、クライアント２（２２）はメモリアクセスを完了し、サイクル１７においてＢＳＹ２信号をネゲートすると共に、次のアクセス要求のためにＲＥＱ２信号をアサートする。このサイクルで、調停部１１は次の調停を行なうが、ＡＮＤ回路１３によってＲＥＱ２信号がマスクされているので、クライアント３（２３）からのＲＥＱ３信号を選択し、サイクル１８でＡＣＫ３信号をアサートする。クライアント３（２３）はＡＣＫ３信号を受け、サイクル１９においてＲＥＱ３信号をネゲートし、ＢＳＹ３信号をアサートしてメモリアクセスを開始する。
【００３８】
サイクル２２において、クライアント３（２３）がメモリアクセスを行なっているが、カウンタ３３のカウント値が“２０”となってレジスタ３４の値と一致する。そして、サイクル２３において、カウンタ３３が０にリセットされる。
【００３９】
サイクル２４において、フリップフロップ３９はカウンタ３３のカウント値が“２０”になったのを受け、ＲＥＱ２＿ＬＯＷ信号をネゲートする。このとき、ＲＥＱ２信号のマスクが解除されて、ＲＥＱ２’信号がアサートされる。ここで、ＲＥＱ２’信号の立ち上がりが発生するので、サイクル２５から再度カウンタ３３のカウントが開始される。
【００４０】
サイクル２５において、クライアント３（２３）がメモリアクセスを完了し、サイクル２６においてＢＳＹ３信号をネゲートすると共に、次のアクセス要求のためにＲＥＱ３信号をアサートする。このサイクルで調停部１１は次の調停を行なうが、ＲＥＱ２’信号がアサートされているため、調停部１１はＲＥＱ３信号よりも優先度が高いＲＥＱ２’信号を選択し、サイクル２７においてＡＣＫ２信号をアサートする。
【００４１】
このように、クライアント２（２２）がアクセス要求をアサートしてから、優先度調整部１２のレジスタ３４に設定された期間だけクライアント２（２２）の次回以降のアクセス要求に対する優先度が最低となる。したがって、クライアント２（２２）より優先度が低いクライアントのアクセス要求が継続的に発生している場合に、クライアント２（２２）の平均メモリアクセス間隔がレジスタ３４に設定された期間以上に制限される。
【００４２】
図４は、本発明の実施の形態におけるメモリアクセス調停装置１の動作を説明するための第２のタイミングチャートである。このタイミングチャートにおいても、レジスタ３４に“２０”が設定されているものとする。
【００４３】
まず、サイクル２において、クライアント１（２１）およびクライアント２（２２）が同時にＲＥＱ１信号およびＲＥＱ２信号をアサートする。このとき、カウンタ３３のカウント値は０であり、ＲＥＱ２＿ＬＯＷ信号はネゲートされている。したがって、ＡＮＤ回路１３は、ＲＥＱ２’信号をアサートする。このとき、ＲＥＱ２’信号の立ち上がりが発生したため、カウンタ３３はサイクル３からカウントを開始する。
【００４４】
サイクル３において、調停部１１はクライアント１（２１）の優先度が最高なので、クライアント１（２１）を選択してＡＣＫ１信号をアサートする。クライアント１（２１）はＡＣＫ１信号を受け、サイクル４においてＲＥＱ１信号をネゲートし、ＢＳＹ１信号をアサートしてメモリアクセスを開始する。
【００４５】
サイクル９において、クライアント１（２１）はメモリアクセスを完了し、サイクル１０においてＢＳＹ１信号をネゲートする。このサイクル１０で、調停部１１は次の調停を行なうが、ＲＥＱ２’信号のみがアサートされているので、ＲＥＱ２’信号を選択する。そして、サイクル１１において、調停部１１はＡＣＫ２信号をアサートする。クライアント２（２２）はＡＣＫ２’信号を受け、サイクル１２においてＲＥＱ２信号をネゲートし、ＢＳＹ２信号をアサートしてメモリアクセスを開始する。
【００４６】
また、サイクル１１においてＡＣＫ２の立ち上がりが発生したため、優先度調整部１２はサイクル１２においてＲＥＱ２＿ＬＯＷ信号をアサートする。
【００４７】
サイクル１６において、クライアント２（２２）はメモリアクセスを完了し、サイクル１７においてＢＳＹ２信号をネゲートすると共に、次のアクセス要求のためにＲＥＱ２信号をアサートする。このサイクルで、調停部１１は次の調停を行なうが、ＡＮＤ回路１３によってＲＥＱ２信号がマスクされている。しかしながら、ｐｒｉｏｒｉｔｙ４のクライアント用インタフェースに入力されるＲＥＱ２信号がアサートされており、他のアクセス要求信号がアサートされていないため、調停部１１はＲＥＱ２信号を選択し、サイクル１８でＡＣＫ４信号をアサートする。これにより、クライアント２（２２）はＡＣＫ２’信号を受け、サイクル１９においてＲＥＱ２信号をネゲートし、ＢＳＹ２信号をアサートしてメモリアクセスを開始する。
【００４８】
クライアント２（２２）のメモリアクセス中のサイクル２２において、カウンタ３３のカウント値が“２０”となってレジスタ３４の値と一致する。そして、サイクル２３において、カウンタ３３が０にリセットされる。
【００４９】
サイクル２４において、フリップフロップ３９はカウンタ３３のカウント値が“２０”になったのを受け、ＲＥＱ２＿ＬＯＷ信号をネゲートする。
【００５０】
このように、クライアント２（２２）の優先度が低下している期間中であっても、他のアクセス要求が発生していなければ、クライアント２（２２）のアクセスが許可される。また、ＲＥＱ２＿ＬＯＷ信号のアサート期間中におけるアクセス要求およびアクセス許可に対して、調停部１１はその影響を受けることはない。
【００５１】
以上説明したように、本実施の形態におけるメモリアクセス調停装置においては、クライアントによる高優先度でのアクセス要求の発行時（ＲＥＱ２’信号の立ち上がり）を起点とし、そのアクセス要求が受け付けられた時（ＡＣＫ２信号の立ち上がり）以降、レジスタに設定された期間が終了するまで当該クライアントの優先度を下げているので、レジスタに設定された期間よりも短い間隔でアクセス要求を発行し続ける場合、必ずレジスタに設定された期間ごとに高優先度のアクセス要求が発生することになり、毎回の調停待ち時間には影響を受けない。
【００５２】
したがって、毎回の調停待ち時間の長短によるゆらぎを排除して考えれば、平均としてレジスタに設定された間隔で高優先度のアクセス要求が許可されることになる。その結果、高優先度でのアクセスが平均としてレジスタに設定された間隔で許可されることを保証すること、すなわち当該クライアントの最低アクセス頻度を保証することが可能となる。
【００５３】
また、レジスタに設定された間隔以上の頻度で当該クライアントのアクセスを許可しないことも保証されるので、より優先度の低いクライアントの調停待ち時間への影響を抑えることが可能となる。
【００５４】
また、レジスタに設定された期間中は低優先度でのアクセスが許可されているので、高優先度でのアクセスを含めたアクセス許可回数が増加することになり、当該クライアントに保証する最低アクセス頻度を満たすことが可能となる。また、これによってメモリバスを有効に利用することが可能となる。
【００５５】
また、低優先度でのアクセスは、他のクライアントのアクセス要求がない場合にのみ許可されるので、より優先度の低いクライアントの調停待ち時間にも影響を与えることはない。
【００５６】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態におけるメモリアクセス調停装置の概略構成を示すブロック図である。
【図２】本発明の実施の形態における優先度調整部１２の詳細構成を示すブロック図である。
【図３】本発明の実施の形態におけるメモリアクセス調停装置１の動作を説明するための第１のタイミングチャートである。
【図４】本発明の実施の形態におけるメモリアクセス調停装置１の動作を説明するための第２のタイミングチャートである。
【符号の説明】
【００５８】
１  メモリアクセス調停装置、１１  調停部、１２  優先度調整部、１３，３８，４２，４４  ＡＮＤ回路、１４，３７  ＯＲ回路、２１〜２３  クライアント、３１，３２  エッジ検出部、３３  カウンタ、３４  レジスタ、３５，３６  比較器、３９，４１，４３  フリップフロップ。
【図１】
2007213225.tif 000003
【図２】
2007213225.tif 000004
【図３】
2007213225.tif 000005
【図４】
2007213225.tif 000006