(57)【特許請求の範囲】
【請求項１】
メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスであって、
前記メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部と、
前記メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け部と、
前記バス調停部を通過したメモリアクセス要求を、前記各受け付け部に設定された優先度に応じて通過させるバス調停部と、
前記バス調停部を通過したメモリアクセス要求を前記上位デバイスに送出する送出部と、を備えるとともに、
前記各受け付け部と前記バス調停部との間にそれぞれ設けられ、前記各受け付け部が受け付けたメモリアクセス要求を優先度別にバッファリングする複数の受け付けバッファと、
前記バス調停部を通過したメモリアクセス要求を監視するとともに、前記各受け付け部からのメモリアクセス要求が設定された帯域幅を超えないように、前記各受け付けバッファの出力を制御する帯域制御部と、を備え、
前記帯域制御部は、
前記各受け付けバッファに入力されたメモリアクセス要求の回数を計数し、その計数値が、予め前記各受け付けバッファに設定された回数に達したときに出力されるゲート信号を検知すると前記メモリアクセス要求の出力を制限し、所定の周期に基づき前記ゲート信号の出力の停止を検知すると前記メモリアクセス要求の出力の制限を解除することで、前記各受け付け部からのメモリアクセス要求が設定された帯域幅を超えないように、前記各受け付けバッファの出力を制御する
ことを特徴とするメモリマスタデバイス。
【請求項２】
前記バス調停部と前記送出部との間に設けられ、前記バス調停部を通過したメモリアクセス要求をバッファリングする送出しバッファを備え、
前記帯域制御部は、前記送出部から送出されるメモリアクセス要求が設定された帯域幅を超えないように、前記送出しバッファの出力を制御する請求項１記載のメモリマスタデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスに関する。
【背景技術】
【０００２】
ＤＭＡコントローラなどのメモリコントローラを有する上位デバイスに対して、一又は複数のメモリマスタデバイスを接続し、各メモリマスタデバイスから上位デバイスを介してメモリにアクセスするシステムが知られている。
このようなシステムにおけるデバイス間の接続には、ＰＣＩバス（Peripheral  Component  Interconnect）などの汎用バスが広く用いられている（例えば、特許文献１参照）。
【０００３】
ＰＣＩ接続では、例えば、図７の（ａ）に示すように、メモリコントローラ及びルートコンプレックスを有する上位デバイス（チップＡ）に対して、エンドポイントを有するメモリマスタデバイス（チップＢ）を接続すれば、メモリマスタデバイスから上位デバイスを介してメモリにアクセスすることが可能になる。
また、ＰＣＩ接続では、一対一の接続状態で通信が行われるので、図７の（ｂ）に示すように、一の上位デバイス（チップＡ）に複数のメモリマスタデバイス（チップＢ、チップＣ）を接続する場合は、スイッチを介在させることにより、上位デバイスの接続相手を動的に切換えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−５９０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＰＣＩ接続では、上位デバイスに接続される複数のメモリマスタデバイス内に、優先度の高いメモリアクセス要求（高優先度メモリマスタ）と優先度の低いメモリアクセス要求（低優先度メモリマスタ）が共存する場合、上位デバイスにおいて優先度の高いメモリアクセス要求を効率良く通すことができないという問題がある。
以下、その理由について説明する。
【０００６】
複数のメモリマスタデバイスで発生するメモリアクセス要求は、上位デバイスのルートコンプレックスで受理した後に、上位デバイスのバス調停部で調停される。上位デバイスのバス調停部は、上部デバイス内で発生するメモリアクセス要求も含めて調停を行う。
ここで、メモリマスタデバイスに優先度の高いメモリアクセス要求と優先度の低いメモリアクセス要求が存在する場合は、上位デバイス内で発生するメモリアクセス要求と同様、優先度に応じた調停を行うことが好ましい。
ところが、上位デバイスのバス調停部は、メモリマスタデバイスから受理したメモリアクセス要求の優先度を判別することができないので、精度の高い調停を行うことができず、優先度の高いメモリアクセス要求を効率良く通すことが困難になる。
【０００７】
そこで、メモリマスタデバイスから送出されるメモリアクセス要求に、優先度を判別するためのデータ（優先度判別データ）を付加することが提案される。
このようにすると、上位デバイスのバス調停部は、メモリマスタデバイスから受理したメモリアクセス要求の優先度を優先度判別データにもとづいて判別することができるので、優先度の高いメモリアクセス要求を効率良く通すことが可能となる。
しかしながら、優先度判別データの付加は、メモリアクセスデータを冗長させ、メモリアクセス速度を低下させる一因にもなりうる。
【０００８】
また、優先度判別データの付加機能は、ユーザロジックＩＣなどでは実現可能であるが、ＵＳＢコントローラなどの汎用チップでは実現が難しい。
そのため、他のメモリマスタデバイスにおいて優先度判別データの付加機能を実現しても、システム内に汎用チップが存在すると、汎用チップからのメモリアクセス要求が無制限に通り、他のデバイスからの優先度の高いメモリアクセス要求が遅滞してしまうという問題が発生する。
【０００９】
また、上位デバイスでは、内部及び外部からのメモリアクセス要求を調停するために、バス調停部の入力経路にバッファを備えるのが一般的であるが、メモリマスタデバイスから受理したメモリアクセス要求を優先度に応じて調停する場合には、外部要求用の受け付けバッファも優先度別部に分割構成する必要がある。
しかしながら、上位デバイスのみで構成されるシステムにおいては、外部要求用の受け付けバッファが不要なので、上位デバイスに搭載するコストが無駄になってしまうという問題が生じる。
【００１０】
本発明は、上記の事情に鑑みてなされたものであり、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができるとともに、バッファの追加搭載などに伴う上位デバイスのコストアップを回避でき、さらには、汎用チップなどの下位デバイスからのメモリアクセス要求を容易に制限することができるメモリマスタデバイスの提供を目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するため本発明のメモリマスタデバイスは、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスであって、前記メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部と、前記メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け部と、前記各受け付け部が受け付けたメモリアクセス要求を、前記各受け付け部に設定された優先度に応じて通過させるバス調停部と、前記バス調停部を通過したメモリアクセス要求を前記上位デバイスに送出する送出部とを備える構成としてある。
【発明の効果】
【００１２】
本発明によれば、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができるだけでなく、バッファの追加搭載などに伴う上位デバイスのコストアップを回避でき、さらには、汎用チップなどの下位デバイスからのメモリアクセス要求を容易に制限することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態に係るメモリマスタデバイス（チップＢ）が適用されたシステムのブロック図である。
【図２】本発明の実施形態に係るメモリマスタデバイス（チップＢ）の構成を示すブロック図である。
【図３】本発明の実施形態に係るメモリマスタデバイス（チップＢ）のバス調停部の作用を示すタイミングチャート図である。
【図４】本発明の実施形態に係るメモリマスタデバイス（チップＢ）のバス調停部の作用を示すタイミングチャート図である。
【図５】本発明の実施形態に係るメモリマスタデバイス（チップＢ）の帯域制御部の作用を示すタイミングチャート図である。
【図６】（ａ）〜（ｃ）は、本発明の実施形態に係るメモリマスタデバイス（チップＢ）の他の適用例を示すブロック図である。
【図７】（ａ）、（ｂ）は、ＰＣＩ接続の参考例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明のメモリマスタデバイスの実施形態について、図面を参照して説明する。
なお、以下に示す本発明のメモリマスタデバイス及びメモリマスタデバイスにより構成されるシステムで実行される処理動作は、プログラム（ソフトウェア）の命令によりコンピュータで実行される処理，手段，機能によって実現される。
プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような本発明の所定の処理、例えば、メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け処理、メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け処理、各受け付け部が受け付けたメモリアクセス要求を、各受け付け部に設定された優先度に応じて通過させるバス調停処理、バス調停部を通過したメモリアクセス要求を上位デバイスに送出する送出処理等の各処理・手順を行わせるようになっている。
【００１５】
このように、本発明における各処理や手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
なお、プログラムの全部又は一部は、例えば、磁気ディスク，光ディスク，半導体メモリ，その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
【００１６】
図１に示されるシステムは、本発明の実施形態に係るメモリマスタデバイス（チップＢ）が適用されたＰＣＩ接続構成のシステムである。
具体的には、同図に示すシステムは、メモリコントローラ及びルートコンプレックスを備えた、ＣＰＵ及びメモリに接続されるチップＡ（上位デバイス）と、エンドポイント及びルートコンプレックスを備えた、チップＡの下位に接続されるチップＢ（メモリマスタデバイス）と、エンドポイントを有し、チップＢの下位に接続されるチップＣ（下位デバイス）とを備えて構成されている。
このシステム構成では、チップＡからはチップＢしか見えず、チップＣが見えない、いわゆる非透過ブリッジを構成している。
【００１７】
すなわち、チップＣに構成されるメモリマスタのメモリアクセス要求は、チップＣのエンドポイントＣ−ＥＰからチップＢのルートコンプレックスＢ−ＲＣに送信される。
チップＢでは、ルートコンプレックスＢ−ＲＣが受理したチップＣのメモリアクセス要求を、チップＢ内のメモリアクセス要求として、チップＢのエンドポイントＢ−ＥＰからチップＡのルートコンプレックスＡ−ＲＣに送信する。
また、チップＢ内で発生するメモリアクセス要求も同様に、チップＢのエンドポイントＢ−ＥＰからチップＡのルートコンプレックスＡ−ＲＣに送信される。
【００１８】
そして、チップＡでは、ルートコンプレックスＡ−ＲＣが受理したメモリアクセス要求を、チップＡ内のメモリアクセス要求としてメモリコントローラに送信し、メモリアクセスを可能とする。
また、チップＡ内で発生するメモリアクセス要求も同様に、メモリコントローラに送信され、メモリアクセスを行なう構成となる。
【００１９】
次に、上記のようなＰＣＩ接続構成において、チップＢ内やチップＣ内に、優先度の高いメモリアクセス要求と優先度の低いメモリアクセス要求が共存する場合であっても、優先度判別データを付加することなく、優先度の高いメモリアクセス要求を効率良く通すことができ、かつ、バッファの追加搭載などに伴うチップＡのコストアップを回避でき、さらに、チップＣからのメモリアクセス要求を容易に制限することができるチップＢの構成について、図２を参照して説明する。
【００２０】
図２に示すように、チップＢは、メモリコントローラを有するチップＡの下位に接続され、チップＡを介してメモリにアクセスするメモリマスタデバイスである。
具体的には、チップＢは、当該チップＢの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬと、チップＢの下位に接続されるチップＣからメモリアクセス要求を受け付ける外部要求受け付け部（本実施形態ではルートコンプレックスＢ−ＲＣ）と、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣが受け付けたメモリアクセス要求を、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣに設定された優先度に応じて通過させるバス調停部１と、バス調停部１を通過したメモリアクセス要求をチップＡに送出する送出部（本実施形態ではエンドポイントＢ−ＥＰ）とを備えている。
【００２１】
バス調停部１は、例えば、図３に示すように、優先度が高いメモリアクセス要求と、優先度が低いメモリアクセス要求が同時に発生した場合、優先度が高いメモリアクセス要求を優先的に通し、優先度が高いメモリアクセス要求が無いとき、優先度の低いメモリアクセス要求を通すように構成される。
また、図４に示すように、優先度が低いメモリアクセス要求であっても、数回に一回の割合で要求を通す、いわゆるラウンドロビン式の調停を行うようにしてもよい。
【００２２】
また、チップＢは、メモリアクセス要求をバッファリングする受け付けバッファ２〜４及び送出しバッファ５を備えている。
受け付けバッファ２〜４は、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣとバス調停部１との間にそれぞれ設けられ、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣが受け付けたメモリアクセス要求を優先度別にバッファリングする。
また、送出しバッファ５は、バス調停部１と送出部Ｂ−ＥＰとの間に設けられ、バス調停部１を通過したメモリアクセス要求をバッファリングする。
また、各バッファ２〜５は、バッファリングしているメモリアクセス要求の出力を制御するゲート機能を有しており、ゲート信号の入力に応じて、メモリアクセス要求の出力を規制することが可能となっている。
【００２３】
さらに、チップＢは、各バッファ２〜５のゲート機能を利用し、メモリアクセス要求の帯域を制御する帯域制御部６を備えている。
帯域制御部６は、バス調停部１を通過したメモリアクセス要求を監視するとともに、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ２〜４の出力を制御する第一の帯域制御機能を備えている。
ここで、帯域の計算には、単位時間当たりのアクセス数やデータサイズを用い、設定された帯域を確保するものとする。例えば、図５に示すように、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣ毎に、帯域測定期間内におけるアクセス許可回数を設定しておき、許可回数カウンタが設定値に達したら、対応する受け付けバッファ２〜４のゲートを閉じる。
なお、アクセス許可回数カウンタ及び帯域測定期間カウンタは、帯域測定期間カウンタが設定値に達する毎にクリアされる。
【００２４】
また、帯域制御部６は、送出部Ｂ−ＥＰから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ５の出力を制御する第二の帯域制御機能を備えている。
ＰＣＩ接続によるシステム構成によっては、チップＢと並列の関係になるチップが追加されたり、チップＡ内で発生するメモリアクセス要求がチップＢ内やチップＣ内で発生するメモリアクセス要求よりも最優先となる場合がある。このような場合には、チップＢからチップＡに無制限にメモリアクセス要求が送出されると、チップＢとチップＡとの間に設けられるバッファや、チップＡ内のバッファがチップＢのメモリアクセス要求で占有されるなどの不都合が発生する可能性がある。
これに対して、上記第二の帯域制御機能によれば、送出部Ｂ−ＥＰから送出されるメモリアクセス要求の帯域幅を任意に設定できるので、上記の不都合を回避できる。
【００２５】
次に、本発明の実施形態に係るメモリマスタデバイス（チップＢ）が適用されたシステムの動作について、図１及び図２を参照して説明する。
図１に示すＰＣＩ接続構成において、チップＣ内で発生するメモリアクセス要求は、チップＢに送信され、チップＢの外部要求受け付け部Ｂ−ＲＣで受け付けられる。
また、チップＢ内で発生するメモリアクセス要求は、優先度別に複数の内部要求受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬで受け付けられる。
各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣが受け付けたメモリアクセス要求は、バス調停部１において、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣに設定された優先度に応じて調停される。
そして、バス調停部１を通過したメモリアクセス要求は、送出部Ｂ−ＥＰからチップＡに送出される。
【００２６】
上記のようにチップＢからチップＡにメモリアクセス要求を送出するにあたり、チップＢに設けられる帯域制御部６は、バス調停部１を通過したメモリアクセス要求を監視するとともに、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ２〜４の出力を制御する。
さらに、帯域制御部６は、送出部Ｂ−ＥＰから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ５の出力を制御する。
【００２７】
チップＡは、チップＢから送出されたメモリアクセス要求を受理し、バッファに一旦保持する。
このとき、チップＢからのメモリアクセス要求は、チップＢ内で優先度に応じて調停されるだけでなく、優先度毎に帯域幅が制御されているので、チップＡ内のバッファにおいて、優先度の低いメモリアクセス要求のバッファ数を減らし、優先度の高いマスタのアクセスのバッファ数を増やすことが可能となる。
【００２８】
また、チップＡ内での調停においては、チップＢからのメモリアクセス要求がチップＡのルートコンプレックスＡ−ＲＣを経由したアクセスとなり、チップＡ内の優先度の高いメモリアクセス要求と同等に扱われる。
これにより、チップＢの優先度の高いメモリアクセス要求を効率良く通過させることができる。
また、チップＢからの優先度の低いメモリアクセス要求も、チップＡ内の優先度の高いメモリアクセス要求と同等に扱われるが、チップＢ内の調停や帯域制御により、あらかじめアクセス回数などが制限されているので、他の優先度の高いメモリアクセス要求を遅滞させることはない。
【００２９】
なお、本発明の実施形態に係るメモリマスタデバイス（チップＢ）は、図１に示すような接続構成に限定されず、様々な接続構成においても優れた効果を発揮することができる。
例えば、図６の（ａ）に示すように、下位にチップＣが接続されない構成では、チップＣのメモリアクセス要求を制限するという効果は得られないが、チップＢのメモリアクセス要求をあらかじめチップＢ内で調停したり帯域制御することにより、チップＡにおいて優先度の高いメモリアクセス要求を効率良く通すことができるという効果は発揮される。
また、図６の（ｂ）、（ｃ）に示すように、チップＡに対して、チップＢと同等の機能を有するチップＢ１、Ｂ２が並列に接続される構成でも、チップＢ１、Ｂ２のメモリアクセス要求をあらかじめチップＢ１、Ｂ２内で調停したり帯域制御することにより、チップＡにおいて優先度の高いメモリアクセス要求を効率良く通すことができるという効果は発揮される。
【００３０】
以上のように構成された本実施形態によれば、メモリコントローラを有するチップＡに接続され、該チップＡを介してメモリにアクセスするチップＢであって、チップＢの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬと、チップＢに接続可能なチップＣからメモリアクセス要求を受け付ける外部要求受け付け部Ｂ−ＲＣと、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣが受け付けたメモリアクセス要求を、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣに設定された優先度に応じて通過させるバス調停部１と、バス調停部１を通過したメモリアクセス要求をチップＡに送出する送出部Ｂ−ＥＰとを備えることにより、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができる。
また、バッファの追加搭載などに伴うチップＡのコストアップを回避できる。
しかも、チップＢの下位に汎用チップなどのチップＣを接続すれば、チップＣからのメモリアクセス要求を容易に制限することができるので、汎用チップのメモリアクセス要求がチップＡに無制限に通ってしまうような問題も解消することができる。
【００３１】
また、チップＢは、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣとバス調停部１との間にそれぞれ設けられ、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣが受け付けたメモリアクセス要求を優先度別にバッファリングする複数の受け付けバッファ２〜４と、バス調停部１を通過したメモリアクセス要求を監視するとともに、各受け付け部Ｂ−ＭｓｔＨ、Ｂ−ＭｓｔＬ、Ｂ−ＲＣからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ２〜４の出力を制御する帯域制御部６とを備えることができる。
これにより、メモリアクセス要求の帯域幅を優先度毎に任意に設定することができる。
【００３２】
また、チップＢは、バス調停部１と送出部Ｂ−ＥＰとの間に設けられ、バス調停部１を通過したメモリアクセス要求をバッファリングする送出しバッファ５を備え、帯域制御部６は、送出部Ｂ−ＥＰから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ５の出力を制御するので、チップＢから送出されるメモリアクセス要求の帯域幅を、システム構成に応じて任意に設定することができる。
【００３３】
以上、本発明について、実施形態を示して説明したが、本発明は、上述した実施形態にのみ限定されるものではなく、特許請求の範囲内で種々の変更が可能であることは言うまでもない。
【産業上の利用可能性】
【００３４】
本発明は、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスに適用でき、特に、優先度の高いメモリアクセス要求を効率良く通過させることが求められる機器や装置において有用である。
【符号の説明】
【００３５】
Ａ  チップ（上位デバイス）
Ｂ  チップ（メモリマスタデバイス）
Ｃ  チップ（下位デバイス）
１  バス調停部
２〜４  受け付けバッファ
５  送出しバッファ
６  帯域制御部
【図１】
0005380322.tif 000002
【図２】
0005380322.tif 000003
【図３】
0005380322.tif 000004
【図４】
0005380322.tif 000005
【図５】
0005380322.tif 000006
【図６】
0005380322.tif 000007
【図７】
0005380322.tif 000008