説明

メモリマスタデバイス

【課題】優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができるようにする。
【解決手段】メモリコントローラを有するチップAに接続され、該チップAを介してメモリにアクセスするチップBであって、チップBの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部B−MstH、B−MstLと、チップBに接続可能なチップCからメモリアクセス要求を受け付ける外部要求受け付け部B−RCと、各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求を、各受け付け部B−MstH、B−MstL、B−RCに設定された優先度に応じて通過させるバス調停部1と、バス調停部1を通過したメモリアクセス要求をチップAに送出する送出部B−EPとを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスに関する。
【背景技術】
【0002】
DMAコントローラなどのメモリコントローラを有する上位デバイスに対して、一又は複数のメモリマスタデバイスを接続し、各メモリマスタデバイスから上位デバイスを介してメモリにアクセスするシステムが知られている。
このようなシステムにおけるデバイス間の接続には、PCIバス(Peripheral Component Interconnect)などの汎用バスが広く用いられている(例えば、特許文献1参照)。
【0003】
PCI接続では、例えば、図7の(a)に示すように、メモリコントローラ及びルートコンプレックスを有する上位デバイス(チップA)に対して、エンドポイントを有するメモリマスタデバイス(チップB)を接続すれば、メモリマスタデバイスから上位デバイスを介してメモリにアクセスすることが可能になる。
また、PCI接続では、一対一の接続状態で通信が行われるので、図7の(b)に示すように、一の上位デバイス(チップA)に複数のメモリマスタデバイス(チップB、チップC)を接続する場合は、スイッチを介在させることにより、上位デバイスの接続相手を動的に切換えている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−59051号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、PCI接続では、上位デバイスに接続される複数のメモリマスタデバイス内に、優先度の高いメモリアクセス要求(高優先度メモリマスタ)と優先度の低いメモリアクセス要求(低優先度メモリマスタ)が共存する場合、上位デバイスにおいて優先度の高いメモリアクセス要求を効率良く通すことができないという問題がある。
以下、その理由について説明する。
【0006】
複数のメモリマスタデバイスで発生するメモリアクセス要求は、上位デバイスのルートコンプレックスで受理した後に、上位デバイスのバス調停部で調停される。上位デバイスのバス調停部は、上部デバイス内で発生するメモリアクセス要求も含めて調停を行う。
ここで、メモリマスタデバイスに優先度の高いメモリアクセス要求と優先度の低いメモリアクセス要求が存在する場合は、上位デバイス内で発生するメモリアクセス要求と同様、優先度に応じた調停を行うことが好ましい。
ところが、上位デバイスのバス調停部は、メモリマスタデバイスから受理したメモリアクセス要求の優先度を判別することができないので、精度の高い調停を行うことができず、優先度の高いメモリアクセス要求を効率良く通すことが困難になる。
【0007】
そこで、メモリマスタデバイスから送出されるメモリアクセス要求に、優先度を判別するためのデータ(優先度判別データ)を付加することが提案される。
このようにすると、上位デバイスのバス調停部は、メモリマスタデバイスから受理したメモリアクセス要求の優先度を優先度判別データにもとづいて判別することができるので、優先度の高いメモリアクセス要求を効率良く通すことが可能となる。
しかしながら、優先度判別データの付加は、メモリアクセスデータを冗長させ、メモリアクセス速度を低下させる一因にもなりうる。
【0008】
また、優先度判別データの付加機能は、ユーザロジックICなどでは実現可能であるが、USBコントローラなどの汎用チップでは実現が難しい。
そのため、他のメモリマスタデバイスにおいて優先度判別データの付加機能を実現しても、システム内に汎用チップが存在すると、汎用チップからのメモリアクセス要求が無制限に通り、他のデバイスからの優先度の高いメモリアクセス要求が遅滞してしまうという問題が発生する。
【0009】
また、上位デバイスでは、内部及び外部からのメモリアクセス要求を調停するために、バス調停部の入力経路にバッファを備えるのが一般的であるが、メモリマスタデバイスから受理したメモリアクセス要求を優先度に応じて調停する場合には、外部要求用の受け付けバッファも優先度別部に分割構成する必要がある。
しかしながら、上位デバイスのみで構成されるシステムにおいては、外部要求用の受け付けバッファが不要なので、上位デバイスに搭載するコストが無駄になってしまうという問題が生じる。
【0010】
本発明は、上記の事情に鑑みてなされたものであり、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができるとともに、バッファの追加搭載などに伴う上位デバイスのコストアップを回避でき、さらには、汎用チップなどの下位デバイスからのメモリアクセス要求を容易に制限することができるメモリマスタデバイスの提供を目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため本発明のメモリマスタデバイスは、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスであって、前記メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部と、前記メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け部と、前記各受け付け部が受け付けたメモリアクセス要求を、前記各受け付け部に設定された優先度に応じて通過させるバス調停部と、前記バス調停部を通過したメモリアクセス要求を前記上位デバイスに送出する送出部とを備える構成としてある。
【発明の効果】
【0012】
本発明によれば、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができるだけでなく、バッファの追加搭載などに伴う上位デバイスのコストアップを回避でき、さらには、汎用チップなどの下位デバイスからのメモリアクセス要求を容易に制限することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施形態に係るメモリマスタデバイス(チップB)が適用されたシステムのブロック図である。
【図2】本発明の実施形態に係るメモリマスタデバイス(チップB)の構成を示すブロック図である。
【図3】本発明の実施形態に係るメモリマスタデバイス(チップB)のバス調停部の作用を示すタイミングチャート図である。
【図4】本発明の実施形態に係るメモリマスタデバイス(チップB)のバス調停部の作用を示すタイミングチャート図である。
【図5】本発明の実施形態に係るメモリマスタデバイス(チップB)の帯域制御部の作用を示すタイミングチャート図である。
【図6】(a)〜(c)は、本発明の実施形態に係るメモリマスタデバイス(チップB)の他の適用例を示すブロック図である。
【図7】(a)、(b)は、PCI接続の参考例を示すブロック図である。
【発明を実施するための形態】
【0014】
以下、本発明のメモリマスタデバイスの実施形態について、図面を参照して説明する。
なお、以下に示す本発明のメモリマスタデバイス及びメモリマスタデバイスにより構成されるシステムで実行される処理動作は、プログラム(ソフトウェア)の命令によりコンピュータで実行される処理,手段,機能によって実現される。
プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような本発明の所定の処理、例えば、メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け処理、メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け処理、各受け付け部が受け付けたメモリアクセス要求を、各受け付け部に設定された優先度に応じて通過させるバス調停処理、バス調停部を通過したメモリアクセス要求を上位デバイスに送出する送出処理等の各処理・手順を行わせるようになっている。
【0015】
このように、本発明における各処理や手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
なお、プログラムの全部又は一部は、例えば、磁気ディスク,光ディスク,半導体メモリ,その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
【0016】
図1に示されるシステムは、本発明の実施形態に係るメモリマスタデバイス(チップB)が適用されたPCI接続構成のシステムである。
具体的には、同図に示すシステムは、メモリコントローラ及びルートコンプレックスを備えた、CPU及びメモリに接続されるチップA(上位デバイス)と、エンドポイント及びルートコンプレックスを備えた、チップAの下位に接続されるチップB(メモリマスタデバイス)と、エンドポイントを有し、チップBの下位に接続されるチップC(下位デバイス)とを備えて構成されている。
このシステム構成では、チップAからはチップBしか見えず、チップCが見えない、いわゆる非透過ブリッジを構成している。
【0017】
すなわち、チップCに構成されるメモリマスタのメモリアクセス要求は、チップCのエンドポイントC−EPからチップBのルートコンプレックスB−RCに送信される。
チップBでは、ルートコンプレックスB−RCが受理したチップCのメモリアクセス要求を、チップB内のメモリアクセス要求として、チップBのエンドポイントB−EPからチップAのルートコンプレックスA−RCに送信する。
また、チップB内で発生するメモリアクセス要求も同様に、チップBのエンドポイントB−EPからチップAのルートコンプレックスA−RCに送信される。
【0018】
そして、チップAでは、ルートコンプレックスA−RCが受理したメモリアクセス要求を、チップA内のメモリアクセス要求としてメモリコントローラに送信し、メモリアクセスを可能とする。
また、チップA内で発生するメモリアクセス要求も同様に、メモリコントローラに送信され、メモリアクセスを行なう構成となる。
【0019】
次に、上記のようなPCI接続構成において、チップB内やチップC内に、優先度の高いメモリアクセス要求と優先度の低いメモリアクセス要求が共存する場合であっても、優先度判別データを付加することなく、優先度の高いメモリアクセス要求を効率良く通すことができ、かつ、バッファの追加搭載などに伴うチップAのコストアップを回避でき、さらに、チップCからのメモリアクセス要求を容易に制限することができるチップBの構成について、図2を参照して説明する。
【0020】
図2に示すように、チップBは、メモリコントローラを有するチップAの下位に接続され、チップAを介してメモリにアクセスするメモリマスタデバイスである。
具体的には、チップBは、当該チップBの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部B−MstH、B−MstLと、チップBの下位に接続されるチップCからメモリアクセス要求を受け付ける外部要求受け付け部(本実施形態ではルートコンプレックスB−RC)と、各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求を、各受け付け部B−MstH、B−MstL、B−RCに設定された優先度に応じて通過させるバス調停部1と、バス調停部1を通過したメモリアクセス要求をチップAに送出する送出部(本実施形態ではエンドポイントB−EP)とを備えている。
【0021】
バス調停部1は、例えば、図3に示すように、優先度が高いメモリアクセス要求と、優先度が低いメモリアクセス要求が同時に発生した場合、優先度が高いメモリアクセス要求を優先的に通し、優先度が高いメモリアクセス要求が無いとき、優先度の低いメモリアクセス要求を通すように構成される。
また、図4に示すように、優先度が低いメモリアクセス要求であっても、数回に一回の割合で要求を通す、いわゆるラウンドロビン式の調停を行うようにしてもよい。
【0022】
また、チップBは、メモリアクセス要求をバッファリングする受け付けバッファ2〜4及び送出しバッファ5を備えている。
受け付けバッファ2〜4は、各受け付け部B−MstH、B−MstL、B−RCとバス調停部1との間にそれぞれ設けられ、各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求を優先度別にバッファリングする。
また、送出しバッファ5は、バス調停部1と送出部B−EPとの間に設けられ、バス調停部1を通過したメモリアクセス要求をバッファリングする。
また、各バッファ2〜5は、バッファリングしているメモリアクセス要求の出力を制御するゲート機能を有しており、ゲート信号の入力に応じて、メモリアクセス要求の出力を規制することが可能となっている。
【0023】
さらに、チップBは、各バッファ2〜5のゲート機能を利用し、メモリアクセス要求の帯域を制御する帯域制御部6を備えている。
帯域制御部6は、バス調停部1を通過したメモリアクセス要求を監視するとともに、各受け付け部B−MstH、B−MstL、B−RCからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ2〜4の出力を制御する第一の帯域制御機能を備えている。
ここで、帯域の計算には、単位時間当たりのアクセス数やデータサイズを用い、設定された帯域を確保するものとする。例えば、図5に示すように、各受け付け部B−MstH、B−MstL、B−RC毎に、帯域測定期間内におけるアクセス許可回数を設定しておき、許可回数カウンタが設定値に達したら、対応する受け付けバッファ2〜4のゲートを閉じる。
なお、アクセス許可回数カウンタ及び帯域測定期間カウンタは、帯域測定期間カウンタが設定値に達する毎にクリアされる。
【0024】
また、帯域制御部6は、送出部B−EPから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ5の出力を制御する第二の帯域制御機能を備えている。
PCI接続によるシステム構成によっては、チップBと並列の関係になるチップが追加されたり、チップA内で発生するメモリアクセス要求がチップB内やチップC内で発生するメモリアクセス要求よりも最優先となる場合がある。このような場合には、チップBからチップAに無制限にメモリアクセス要求が送出されると、チップBとチップAとの間に設けられるバッファや、チップA内のバッファがチップBのメモリアクセス要求で占有されるなどの不都合が発生する可能性がある。
これに対して、上記第二の帯域制御機能によれば、送出部B−EPから送出されるメモリアクセス要求の帯域幅を任意に設定できるので、上記の不都合を回避できる。
【0025】
次に、本発明の実施形態に係るメモリマスタデバイス(チップB)が適用されたシステムの動作について、図1及び図2を参照して説明する。
図1に示すPCI接続構成において、チップC内で発生するメモリアクセス要求は、チップBに送信され、チップBの外部要求受け付け部B−RCで受け付けられる。
また、チップB内で発生するメモリアクセス要求は、優先度別に複数の内部要求受け付け部B−MstH、B−MstLで受け付けられる。
各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求は、バス調停部1において、各受け付け部B−MstH、B−MstL、B−RCに設定された優先度に応じて調停される。
そして、バス調停部1を通過したメモリアクセス要求は、送出部B−EPからチップAに送出される。
【0026】
上記のようにチップBからチップAにメモリアクセス要求を送出するにあたり、チップBに設けられる帯域制御部6は、バス調停部1を通過したメモリアクセス要求を監視するとともに、各受け付け部B−MstH、B−MstL、B−RCからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ2〜4の出力を制御する。
さらに、帯域制御部6は、送出部B−EPから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ5の出力を制御する。
【0027】
チップAは、チップBから送出されたメモリアクセス要求を受理し、バッファに一旦保持する。
このとき、チップBからのメモリアクセス要求は、チップB内で優先度に応じて調停されるだけでなく、優先度毎に帯域幅が制御されているので、チップA内のバッファにおいて、優先度の低いメモリアクセス要求のバッファ数を減らし、優先度の高いマスタのアクセスのバッファ数を増やすことが可能となる。
【0028】
また、チップA内での調停においては、チップBからのメモリアクセス要求がチップAのルートコンプレックスA−RCを経由したアクセスとなり、チップA内の優先度の高いメモリアクセス要求と同等に扱われる。
これにより、チップBの優先度の高いメモリアクセス要求を効率良く通過させることができる。
また、チップBからの優先度の低いメモリアクセス要求も、チップA内の優先度の高いメモリアクセス要求と同等に扱われるが、チップB内の調停や帯域制御により、あらかじめアクセス回数などが制限されているので、他の優先度の高いメモリアクセス要求を遅滞させることはない。
【0029】
なお、本発明の実施形態に係るメモリマスタデバイス(チップB)は、図1に示すような接続構成に限定されず、様々な接続構成においても優れた効果を発揮することができる。
例えば、図6の(a)に示すように、下位にチップCが接続されない構成では、チップCのメモリアクセス要求を制限するという効果は得られないが、チップBのメモリアクセス要求をあらかじめチップB内で調停したり帯域制御することにより、チップAにおいて優先度の高いメモリアクセス要求を効率良く通すことができるという効果は発揮される。
また、図6の(b)、(c)に示すように、チップAに対して、チップBと同等の機能を有するチップB1、B2が並列に接続される構成でも、チップB1、B2のメモリアクセス要求をあらかじめチップB1、B2内で調停したり帯域制御することにより、チップAにおいて優先度の高いメモリアクセス要求を効率良く通すことができるという効果は発揮される。
【0030】
以上のように構成された本実施形態によれば、メモリコントローラを有するチップAに接続され、該チップAを介してメモリにアクセスするチップBであって、チップBの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部B−MstH、B−MstLと、チップBに接続可能なチップCからメモリアクセス要求を受け付ける外部要求受け付け部B−RCと、各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求を、各受け付け部B−MstH、B−MstL、B−RCに設定された優先度に応じて通過させるバス調停部1と、バス調停部1を通過したメモリアクセス要求をチップAに送出する送出部B−EPとを備えることにより、優先度判別データを付加しなくても、優先度の高いメモリアクセス要求を効率良く通すことができる。
また、バッファの追加搭載などに伴うチップAのコストアップを回避できる。
しかも、チップBの下位に汎用チップなどのチップCを接続すれば、チップCからのメモリアクセス要求を容易に制限することができるので、汎用チップのメモリアクセス要求がチップAに無制限に通ってしまうような問題も解消することができる。
【0031】
また、チップBは、各受け付け部B−MstH、B−MstL、B−RCとバス調停部1との間にそれぞれ設けられ、各受け付け部B−MstH、B−MstL、B−RCが受け付けたメモリアクセス要求を優先度別にバッファリングする複数の受け付けバッファ2〜4と、バス調停部1を通過したメモリアクセス要求を監視するとともに、各受け付け部B−MstH、B−MstL、B−RCからのメモリアクセス要求が設定された帯域幅を超えないように、各受け付けバッファ2〜4の出力を制御する帯域制御部6とを備えることができる。
これにより、メモリアクセス要求の帯域幅を優先度毎に任意に設定することができる。
【0032】
また、チップBは、バス調停部1と送出部B−EPとの間に設けられ、バス調停部1を通過したメモリアクセス要求をバッファリングする送出しバッファ5を備え、帯域制御部6は、送出部B−EPから送出されるメモリアクセス要求が設定された帯域幅を超えないように、送出しバッファ5の出力を制御するので、チップBから送出されるメモリアクセス要求の帯域幅を、システム構成に応じて任意に設定することができる。
【0033】
以上、本発明について、実施形態を示して説明したが、本発明は、上述した実施形態にのみ限定されるものではなく、特許請求の範囲内で種々の変更が可能であることは言うまでもない。
【産業上の利用可能性】
【0034】
本発明は、メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスに適用でき、特に、優先度の高いメモリアクセス要求を効率良く通過させることが求められる機器や装置において有用である。
【符号の説明】
【0035】
A チップ(上位デバイス)
B チップ(メモリマスタデバイス)
C チップ(下位デバイス)
1 バス調停部
2〜4 受け付けバッファ
5 送出しバッファ
6 帯域制御部

【特許請求の範囲】
【請求項1】
メモリコントローラを有する上位デバイスに接続され、該上位デバイスを介してメモリにアクセスするメモリマスタデバイスであって、
前記メモリマスタデバイスの内部で発生するメモリアクセス要求を優先度別に受け付ける複数の内部要求受け付け部と、
前記メモリマスタデバイスに接続可能な下位デバイスからメモリアクセス要求を受け付ける外部要求受け付け部と、
前記各受け付け部が受け付けたメモリアクセス要求を、前記各受け付け部に設定された優先度に応じて通過させるバス調停部と、
前記バス調停部を通過したメモリアクセス要求を前記上位デバイスに送出する送出部と、を備えることを特徴とするメモリマスタデバイス。
【請求項2】
前記各受け付け部と前記バス調停部との間にそれぞれ設けられ、前記各受け付け部が受け付けたメモリアクセス要求を優先度別にバッファリングする複数の受け付けバッファと、
前記バス調停部を通過したメモリアクセス要求を監視するとともに、前記各受け付け部からのメモリアクセス要求が設定された帯域幅を超えないように、前記各受け付けバッファの出力を制御する帯域制御部と、を備える請求項1記載のメモリマスタデバイス。
【請求項3】
前記バス調停部と前記送出部との間に設けられ、前記バス調停部を通過したメモリアクセス要求をバッファリングする送出しバッファを備え、
前記帯域制御部は、前記送出部から送出されるメモリアクセス要求が設定された帯域幅を超えないように、前記送出しバッファの出力を制御する請求項2記載のメモリマスタデバイス。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate