(57)【要約】【課題】  レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現する。【解決手段】  本発明のメモリアクセス制御回路は、アービタ４（トランザクション検知手段）が、レイテンシィによりバフォーマンスに影響を与えるバスマスタ（レイテンシセンシティブなマスタ）からのトランザクションがキューイングバッファ５に登録されたことを検知し、アービタ４（処理順序変更手段）が、当該トランザクションを先行してキューイングされているトランザクションに優先して処理する。【選択図】      図１
2006185198.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタにより生成される、ＩＤが付与されたトランザクションをキューイングバッファに登録し、前記キューイングバッファに登録された順序に従い、前記トランザクションを処理するメモリアクセス制御回路であって、
前記ＩＤを認識し、レイテンシィによりバフォーマンスに影響を与えるバスマスタからのトランザクションが前記キューイングバッファに登録されたことを検知するトランザクション検知手段と、
前記トランザクションが検出手段により前記影響を与えるトランザクションが検出されたときに、当該トランザクションを先行してキューイングされているトランザクションに優先して処理する処理順序変更手段と、
を具備することを特徴とするメモリアクセス制御回路。
【請求項２】
前記処理順位変更手段は、
既にキューイングされ先行して処理される予定のトランザクションが、レイテンシィによりバフォーマンスに影響を与える前記バスマスタからのトランザクションと不一致の場合に、前記優先処理を許可することを特徴とする請求項１に記載のメモリアクセス制御回路。
【請求項３】
前記処理順序変更手段は、
前記先行して処理される予定のトランザクションが対象とするライトアドレスと、前記優先して処理するトランザクションとが対象とするライトアドレスとが不一致である場合に、前記優先処理を許可することを特徴とする請求項１または２に記載のメモリアクセス制御回路。
【請求項４】
前記処理順序変更手段は、
前記キューイングバッファに登録されたトランザクションのそれぞれに対応し、前記優先処理により処理がスキップされた回数を記憶する履歴保持手段を備え、前記優先処理に先立ち前記履歴保持手段を参照し、ｎ回処理をスキップされたトランザクションに関しｎ＋１回処理をスキップされないように制御することを特徴とする請求項1ないし３のいずれか1項に記載のメモリアクセス制御回路。
【請求項５】
前記処理順序変更手段は、
特定の転送レートでストリームデータのリード／ライトが必要な前記バスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に前記優先処理を有効とし、下回るトランザクションを受付けた場合は前記優先処理を無効にすることを特徴とする請求項１から４のいずれか1項に記載のメモリアクセス制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵ等のバスマスタにより生成される、ＩＤが付与されたトランザクションをキューイングバッファに登録し、当該キューイングバッファに登録された順序に従い、前記トランザクションを処理するメモリアクセス制御回路に関する。
【背景技術】
【０００２】
メモリアクセス、あるいはバスアクセスの効率を高めるためにキューイングバッファを用い、アクセス要求に関するトランザクションを蓄積して優先度制御を行なう手法が一般的に用いられる。
【０００３】
例えば、共有バスシステムにおいて、リアルタイム性を損なうことなくバスマスタからバススレーブへのアクセス要求の優先順位を制御する技術（特許文献１参照）、特定のトランザクションキューが集中することによるシステムダウンの回避、およびＣＰＵのアイドルタイムを少なくするために、トランザクション毎の負荷を認識して優先順位を決定する技術（特許文献２参照）、トランザクション毎にＩＤを付与してスヌープ制御を行なう技術（特許文献３参照）等々である。
【特許文献１】特開２００３−１８６８２３号公報
【特許文献２】特開平５−２０４６７１号公報
【特許文献３】特表平１１−５０１１４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した特許文献を含む従来技術において、メモリの実効帯域を高めるためにトランザクションを蓄積するキューイングバッファの段数を増やせばレイテンシ（待ち時間）が増大するといった不都合があった。
特に、上記したレイテンシィによりバフォーマンスに影響を与えるマスタ装置（以下、レイテンシセンシティブなマスタという）と実効帯域を多く必要とするマスタが混在するシステムにおいては、キューイングバッファの構成段数を最適化することが困難になる。
【０００５】
本発明は上記事情に鑑みてなされたものであり、レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現するメモリアクセス制御回路を提供することを目的とする。
また、レイテンシセンシティブなマスタといと実効帯域を多く必要とするマスタが混在する複雑なシステムにおいてもキューイングバッファの構成段数を容易に最適化可能なメモリアクセス制御回路を提供することも目的とする。
【課題を解決するための手段】
【０００６】
上記した課題を解決するために本発明は、バスマスタにより生成される、ＩＤが付与されたトランザクションをキューイングバッファに登録し、前記キューイングバッファに登録された順序に従い、前記トランザクションを処理するメモリアクセス制御回路であって、前記ＩＤを認識し、レイテンシィによりバフォーマンスに影響を与えるバスマスタからのトランザクションが前記キューイングバッファに登録されたことを検知するトランザクション検知手段と、前記トランザクションが検出手段により前記影響を与えるトランザクションが検出されたときに、当該トランザクションを先行してキューイングされているトランザクションに優先して処理する処理順序変更手段と、を具備することを特徴とする。
【０００７】
また、本発明において、前記処理順序変更手段は、既にキューイングされ先行して処理される予定のトランザクションが、レイテンシィによりバフォーマンスに影響を与える前記バスマスタからのトランザクションと不一致の場合に、前記優先処理を許可することを特徴とする。
【０００８】
また、本発明において、前記処理順序変更手段は、前記先行して処理される予定のトランザクションが対象とするライトアドレスと、前記優先して処理するトランザクションとが対象とするライトアドレスとが不一致である場合に、前記優先処理を許可することを特徴とする。
【０００９】
また、本発明において、前記処理順序変更手段は、前記キューイングバッファに登録されたトランザクションのそれぞれに対応し、前記優先処理により処理がスキップされた回数を記憶する履歴保持手段を備え、前記優先処理に先立ち前記履歴保持手段を参照し、ｎ回処理をスキップされたトランザクションに関しｎ＋１回処理をスキップされないように制御することを特徴とする。
【００１０】
また、本発明において、前記処理順序変更手段は、特定の転送レートでストリームデータのリード／ライトが必要な前記バスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に前記優先処理を有効とし、下回るトランザクションを受付けた場合は前記優先処理を無効にすることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、レイテンシィによりバフォーマンスに影響を与えるバスマスタ（レイテンシセンシティブなマスタ）からのトランザクションがキューイングバッファに登録されたことを検知し、当該トランザクションを先行してキューイングされているトランザクションに優先して処理することで、レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現するメモリアクセス制御回路を提供することができる。
【００１２】
なお、レイテンシセンシティブなマスタからのトランザクションを優先的に処理する条件として、（１）既にキューイングされ先行して処理される予定のトランザクションが、レイテンシィセンシティブなバスマスタからのトランザクションでないこと、（２）先行して処理される予定のトランザクションが対象とするライトアドレスと、優先して処理するトランザクションとが対象とするライトアドレスとが不一致であること、（３）優先処理に先立ち、ｎ回処理をスキップされたトランザクションに関しｎ＋１回処理をスキップされないように制御すること、（４）特定の転送レートでストリームデータのリード／ライトが必要なバスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に優先処理を有効とし、下回るトランザクションを受付けた場合は優先処理を無効にすることのうちの少なくとも一つを条件とする。このことにより、レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現する他に、レイテンシセンシティブなマスタと実効帯域を多く必要とするマスタが混在する複雑なシステムにおいてもキューイングバッファの構成段数を容易に最適化可能なメモリアクセス制御回路を提供することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明実施形態にかかわるメモリアクセス制御回路の内部構成を示すブロック図である。
本発明実施形態にかかわるメモリアクセス制御回路は、ホストインタフェース１と、ＯＰＢ（On Chip Peripheral Bus）インタフェース２と、リフレッシュコントローラ３と、アービタ４（調停回路）と、キューイングバッファ５と、デバイスマネージャ６と、コマンドディスパッチ７と、コマンドジェネレータ８と、ストローブジェネレータ９と、クロックジェネレータ１０で構成される。
【００１４】
ホストインタフェース１は、接続されるホスト（バスマスタ）とのインタフェースを司り、ここでは、ホストにより生成されるメモリアクセス要求をアービタ４に供給する。また、ＯＰＢインタフェース２は、制御レジスタ、ステータスレジスタ関連のインタフェースを司り、ここでは、ダイレクトコマンド要求をアービタ４に供給する。本インタフェースは米国ＩＢＭ社のＯＰＢ仕様に準拠する。
更に、リフレッシュコントローラ３は、レジスタに設定された周期に従ってリフレッシュ要求を生成しアービタ４に供給する。
【００１５】
アービタ４は、上記したホストインタフェース１、ＯＰＢインタフェース２、リフレッシュコントローラ３のそれぞれにより生成される、アクセス要求、リフレッシュ要求、ダイレクトコマンド要求を調停してキューイングバッファ５に登録するトランザクションを決定する。
アービタ４は、トランザクション検知手段と処理順序変更手段（いずれも図示せず）で構成され、このうち、トランザクション検知手段は、レイテンシセンシティブなマスタからのトランザクションがキューイングバッファ５に登録されたことを検知し、処理順序変更手段は、当該トランザクションを先行してキューイングされているトランザクションに優先して処理するそれぞれの機能を持つ。但し、レイテンシセンシティブなマスタからのトランザクションを優先的に処理する条件として、（１）既にキューイングされ先行して処理される予定のトランザクションが、レイテンシィセンシティブなバスマスタからのトランザクションでないこと、（２）先行して処理される予定のトランザクションが対象とするライトアドレスと、優先して処理するトランザクションとが対象とするライトアドレスとが不一致であること、（３）優先処理に先立ち、ｎ回処理をスキップされたトランザクションに関しｎ＋１回処理をスキップされないように制御すること、（４）特定の転送レートでストリームデータのリード／ライトが必要なバスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に優先処理を有効とし、下回るトランザクションを受付けた場合は優先処理を無効にすることのうちの少なくとも一つを条件とする。
【００１６】
キューイングバッファ５は、アービタ４により調停されたトランザクションが登録され格納されるファイルである。登録されたトランザクションは、ローコマンド発行要求、カラムコマンド発行要求の２段階に分けコマンドディスパッチャ７に対してコマンド発行要求を供給する。
デバイスマネージャ６は、メモリインタフェースを介して接続される各メモリデバイス（ここではＳＤＲＡＭとする）におけるそれぞれのバンクの状態を管理し、コマンドディスパッチャ７が発行するコマンドを監視して各デバイスにおけるそれぞれのバンクの状態遷移をトレースしてコマンドディスパッチ７に各メモリデバイスにおけるバンクの現在の状態を通知する。
【００１７】
コマンドディスパッチャ７は、キューイングバッファ５からのコマンド発行要求と、デバイスマネージャ６から供給される各デバイスにおけるそれぞれのバンクの状態に関する情報をもとにメモリインタフェースを介して接続される各デバイス発行するコマンドを決定する。
なお、コマンドジェネレータ８は、コマンドディスパッチャ７が発行するコマンドを、メモリインンタフェースを介して各メモリデバイスに出力し、ストローブジェネレータ９は、データバス、ストローブ信号の双方向バッファの出力イネーブル制御、およびリード／ライトのためのストローブ信号の生成、およびタイミング調整も行なう。また、クロックジェネレータ１０は、各メモリデバイスに供給するクロックのディレイ調整等の校正制御とクロックのＯＮ／ＯＦＦ制御を行なう。
【００１８】
以下、図１を参照しながら本発明実施形態の動作について詳細に説明する。まず、ＣＰＵ等のバスマスタにより生成されるＩＤが付与されたメモリアクセス要求は、ホストインタフェース１を介してアービタ４で受付けられる。
アービタ４では、他に、リフレッシュコントローラ３によって生成されるリフレッシュ要求、あるいはＯＰＢインタフェース２を介して到来するダイレクトコマンド要求等も受付けている。アービタ４は、これら要求を受付け、調停し、トランザクションとしてキューイングバッファ５に登録する。そして、コマンドディスパッチャ７は、キューイングバッファ５に登録されたトランザクションに従いシーケンシャルにコマンドをディスパッチし、コマンドジェネレータ８を介してメモリデバイスのリード／ライトを実行する。
【００１９】
アービタ４はまた、上記したアクセス要求を受付け、処理順序の制御も行なう。通常はＦＩＦＯ（First-In First-Out）アルゴリズムに従い、キューイングバッファ５に登録されたトランザクションの順に従って順序制御を行なうが、内蔵するトランザクション検知手段でトランザクションに付与されたＩＤを認識し、レイテンシィによりパフォーマンスに影響を与えるバスマスタからのトランザクションがキューイングバッファ５に登録されたことを検知したときに、内蔵する処理順序変更手段を起動し、以下に示す処理順序の制御を行なう。
具体的に、処理順序変更手段は、当該トランザクションを、先行してキューイングバッフ５にキューイングされているトランザクションに優先して処理する。但し、上記した優先処理を実行するにあたり、処理順位変更手段は、キューイングバッファ５に既にキューイングされ先行して処理される予定のトランザクションが、レイテンシセンシティブなバスマスタからのトランザクションと不一致の場合に許可する。また、先行して処理される予定のトランザクションが対象とするライトアドレスと、優先して処理するトランザクションとが対象とするライトアドレスとが不一致である場合（同期制御）に許可する。
【００２０】
また、処理順序変更手段は、キューイングバッファ５に登録されたトランザクションのそれぞれに対応し、優先処理により処理がスキップされた回数を記憶する、例えばカウンタ等の履歴保持手段を備えている。このため、処理順序変更手段は、優先処理に先立ちカウンタを参照し、一度（ｎ回）処理をスキップされたトランザクションに関し、二度（ｎ＋１回）処理をスキップされないように制御する。ここで、ｎはパラメータとしてあらかじめ設定されるものとする。
更に、処理順序変更手段は、特定の転送レートでストリームデータのリード／ライトが必要なバスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に優先処理を有効とし、下回るトランザクションを受付けた場合は優先処理を無効にする制御も行なう。
【００２１】
以上説明のように本発明は、アービタ４が、レイテンシセンシティブなマスタからのトランザクションがキューイングバッファ５に登録されたことを検知し、当該トランザクションを先行してキューイングされているトランザクションに優先して処理するものであり、このことにより、レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現することができる。
【００２２】
なお、レイテンシセンシティブなマスタからのトランザクションを優先的に処理する条件として、（１）既にキューイングされ先行して処理される予定のトランザクションが、レイテンシィセンシティブなバスマスタからのトランザクションでないこと、（２）先行して処理される予定のトランザクションが対象とするライトアドレスと、優先して処理するトランザクションとが対象とするライトアドレスとが不一致であること、（３）優先処理に先立ち、ｎ回処理をスキップされたトランザクションに関しｎ＋１回処理をスキップされないように制御すること、（４）特定の転送レートでストリームデータのリード／ライトが必要なバスマスタから、所定の保証帯域を上回るトランザクションを受付けた場合に優先処理を有効とし、下回るトランザクションを受付けた場合は優先処理を無効にすることのうちの少なくとも一つを条件とする。
【００２３】
アービタ４が上記した制御を実行することで、レイテンシセンシティブなマスタのパフォーマンスを低下させることなく効率の良いメモリアクセスを実現し、また、レイテンシセンシティブなマスタと実効帯域を多く必要とするマスタが混在する複雑なシステムにおいてもキューイングバッファの構成段数を容易に最適化可能なメモリアクセス制御回路を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明実施形態にかかわるメモリアクセス制御回路の内部構成を示すブロック図である。
【符号の説明】
【００２５】
１…ホストインタフェース、２…ＯＰＢインタフェース、３…リフレッシュコントローラ、４…アービタ、５…キューイングバッファ、６…デバイスマネージャ、７…コマンドディスパッチ、８…コマンドジェネレータ、９…ストローブジェネレータ、１０…クロックジェネレータ
【図１】
2006185198.tif 000003