(57)【要約】【課題】  ＤＭＡ転送においてホストバスの使用率を低減し、処理効率を向上させることが可能な記憶制御装置を提供する。【解決手段】  ＩＰからシステムメモリ２３１へのＤＭＡ転送を制御する記憶制御装置であって、周辺バス１０２又はホストバス１０１から与えられたアドレスが、システムメモリ２３１において自己が管理しているメモリ領域か否かの判定をアドレスマップ判定部１１２が行い、ＴＬＢ情報保持部１１７が保持しているＣＰＵのキャッシュ可能な領域を示すアドレス情報に基づいて、当該アドレスがキャッシュ可能な領域か否かの判定をアドレス判定部１１６が行い、アドレスをＣＰＵに通知すべき場合に、ホストバス１０１を介してこの通知をスヌープアドレス制御部１１５が行うことで、ホストバス使用率を低減させる。【選択図】  図１
2005128963.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Central Processing Unit）が接続されたホストバス、少なくとも１つのＩＰ（Intellectual Property）が接続された周辺バス、及びシステムメモリに接続され、前記ＩＰからシステムメモリへのＤＭＡ（Direct Memory Access）転送を制御する記憶制御装置であって、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ（Translation Look-aside Buffer）情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を備えることを特徴とする記憶制御装置。
【請求項２】
ＣＰＵが接続されたホストバス、少なくとも１つのＩＰが接続された周辺バス、及びシステムメモリに接続され、前記ＩＰからシステムメモリへのＤＭＡ転送を制御する記憶制御装置であって、
各々の前記ＩＰに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記ＩＰとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を備えることを特徴とする記憶制御装置。
【請求項３】
ＣＰＵが接続されたホストバス、少なくとも１つのＩＰが接続された周辺バス、及びシステムメモリに接続され、前記ＩＰからシステムメモリへのＤＭＡ転送を制御する記憶制御装置であって、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を備え、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする記憶制御装置。
【請求項４】
前記アドレス判定部が当該アドレスはキャッシュ可能な領域であると判定した場合、前記スヌープアドレス制御部は、前記ホストバス上に当該アドレスのキャッシュデータを無効化するための通知をブロードキャストすることを特徴とする請求項１乃至３のいずれかに記載の記憶制御装置。
【請求項５】
ホストバスに接続されたＣＰＵと、
前記ホストバス又は周辺バスに接続された少なくとも一つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置と、
を備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を有することを特徴とするＤＭＡ転送が可能な制御システム。
【請求項６】
ホストバスに接続されたＣＰＵと、
前記ホストバス又は周辺バスに接続された少なくとも二つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、さらに前記ＩＰに直接接続されており、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置と、
を備え、
前記記憶制御装置は、
各々の前記ＩＰに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記ＩＰとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を有することを特徴とするＤＭＡ転送が可能な制御システム。
【請求項７】
ホストバスに接続されたＣＰＵと、
前記ホストバス又は周辺バスに接続された少なくとも一つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置と、
を備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を有し、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とするＤＭＡ転送が可能な制御システム。
【請求項８】
前記アドレス判定部が当該アドレスはキャッシュ可能な領域であると判定した場合、前記スヌープアドレス制御部は、前記ホストバス上に当該アドレスのキャッシュデータを無効化するための通知をブロードキャストすることを特徴とする請求項５乃至７のいずれかに記載のＤＭＡ転送が可能な制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶制御装置及びにＤＭＡ（Direct Memory Access）転送が可能な制御システムに係わり、特に複数のバスを有するものに関する。
【背景技術】
【０００２】
図１０に、従来のＤＭＡ転送が可能な制御システムとしてのシステムオンチップ（以下、ＳｏＣという）におけるバスの構成を示す。
【０００３】
このＳｏＣ２００上におけるバスは、制御部２０２とキャッシュ２０３とを有するＣＰＵ（Central Processing Unit）２０１、記憶制御装置２２２、任意の数のＩＰ（Intellectual Property）２１１が接続された高速なホストバス１０１と、複数のＩＰ２１２〜２１４が接続された低速な周辺バス１０２とに分離されている。
【０００４】
ここで、ＩＰ２１１〜２１４は特定の制御機能を有する各種コントローラであり、例えば割り込み処理に関するコントローラ、外部インタフェースに関するコントローラ等が存在する。
【０００５】
また、ホストバス１０１と周辺バス１０２とは、バスブリッジ（あるいはバスモジュール）２２１によって接続されており、このバスブリッジ２２１内のバッファ（ＦＩＦＯ等）を介すことにより、バス１０１と１０２間のデータ転送を可能にしている。
【０００６】
また、ＳｏＣ２００外にはＲＡＭ等から成るシステムメモリ２３１が設けられている。このシステムメモリ２３１とＳｏＣ２００との間のデータ転送の殆どは、ＣＰＵ２０１とシステムメモリ２３１との間で行われる。そこで、システムメモリ２３１を制御する記憶制御装置（メモリコントローラ、ＭＥＭＣ）２２２をホストバス１０１に接続配置することにより、ＣＰＵ２０１とシステムメモリ２３１間のデータ転送の高速化が図られている。
【０００７】
ここで、システムメモリ２３１には、常にノンキャッシャブル（キャッシュ不能）な領域２３１ａ、アドレス変換テーブルの制御情報によってキャッシャブル（キャッシュ可能）又はノンキャッシャブルが決定される領域２３１ｂ、常にキャッシャブルな領域２３１ｃ、アドレス変換テーブル２３１ｄが含まれる。また、アドレス変換テーブル２３１ｄの一部が、後述するように、論理アドレスから物理アドレスに変換するために必要なデータを格納するバッファに相当するＴＬＢ（Transfer Look-aside Buffer）に格納されている。
【０００８】
ＣＰＵ２０１の処理では仮想アドレスが用いられ、ホストバス１０１へのアクセスでは物理アドレスが使用される。そこで、ＣＰＵ２０１がシステムメモリ２３１にアクセスする場合には、仮想アドレスから物理アドレスヘの変換が必要となる。システムメモリ２３１へのアクセスの度に、システムメモリ２３１上の変換テーブル２３１ｄを参照すると処理速度の低下につながるので、変換テーブル２３１ｄの一部をＣＰＵ２０１内部に設けたＴＬＢに持たせている。
【０００９】
ＴＬＢの構造と、物理アドレスヘの変換動作について説明する。
【００１０】
図１１に、アドレス変換テーブルの一例を示す。
【００１１】
コンテキストＩＤ（プロセスＩＤ）と仮想ページ番号（ＶＰＮ：Virtual Page Number）からインデックスを生成する。
【００１２】
例えば、コンテキストＩＤごとに、ＯＳ(Operating System)がメモリ上の領域を割り付け、この情報をOSが管理する。
【００１３】
その領域内のアドレスを仮想ページ番号で決めるなどの方法が採られる。
【００１４】
ここには、仮想ページ番号に対応する物理ページ番号（ＰＰＮ：Physical Page Number)及び制御情報が格納される。
【００１５】
生成されたインデックスによって、仮想ページ番号に対応する物理ページ番号及び制御情報が決定される。キャッシャブルであるか否かは、この制御情報に基づいて判定される。
【００１６】
生成された物理ページ番号に仮想ページ番号のオフセットを物理ページ番号と上位ビット、仮想アドレスのオフセットを下位ビットと見なして、２つのビットの並びを連接することによって、物理アドレスが生成される。
【００１７】
次に、図１２にＴＬＢの構成の一例を示す。
【００１８】
ＴＬＢによって、ＶＰＮ（Virtual Page Number；仮想ページ番号）がＰＰＮ（Physical Page Number；物理ページ番号）に変換される。ここで、対応する制御情報には、キャッシャブルかノンキャッシャブルかを示す情報も含まれている。
【００１９】
ところで、ライトスルー方式では、ＣＰＵ２０１がシステムメモリ２３１にデータを書き込む場合、キャッシュと同時にシステムメモリ２３１の更新が行われてキャッシュのコヒーレンシが維持される。
【００２０】
しかし、ＣＰＵ２０１を介すことなくＩＰ２１１〜２１４から直接システムメモリ２３１へのアクセス、即ちＤＭＡ転送が行われる場合、ＩＰ２１１〜２１４はシステムメモリ２３１にのみデータを書き込む。このため、ＣＰＵ２０１内のキャッシュとシステムメモリ２３１との間でコヒーレンシが崩れるおそれがある。
【００２１】
そこで、ＣＰＵ２０１はスヌープ、即ちバス上のトランザクションを監視し、キャッシュを行っているアドレスに書き込みが行われると、キャッシュ内の対応するデータを無効化する処理を行うことにより、キャッシュコヒーレンシを維持していた。
【００２２】
以下、従来の記憶制御装置を開示する文献名を記載する。
【特許文献１】国際公開第９７／３４２２８号公報
【特許文献２】特許公報第２９３８４号公報
【特許文献３】特開平５−２８２1９７号公報
【特許文献４】特開２００１−４３２４号公報
【特許文献５】特開平１１−８５６８２号公報
【発明の開示】
【発明が解決しようとする課題】
【００２３】
しかし、従来の装置には、ホストバス１０１の使用率に関して次のような問題があった。
【００２４】
従来の記憶制御装置２２２では、与えられたアドレスがシステムメモリ２３１内の領域か否かの判断は可能であったが、以下のようなアドレスマップの状態を判断することはできなかった。
【００２５】
（１） 常にキャッシャブルであるか
（２） 常にノンキャッシャブルであるか
（３） ページテーブル又はＴＬＢ定義によるものであるか
このため、周辺バス１０２上のＩＰ２１２〜２１４からシステムメモリ２３１へのＤＭＡ転送を行う場合、キャッシュコヒーレンシを維持するべくスヌープを行うためには、その転送先アドレスがキャッシュ領域か否かに関わらず、ホストバス１０１を通じて行う必要があり、その結果ホストバス１１の使用率増加を招いていた。
【００２６】
さらに、低速な周辺バス１０２上のＩＰ２１２〜２１４から高速なホストバス１０１上の記憶制御装置２２２へのＤＭＡ転送においては、ホストバス１０１より周辺バス１０２の方が転送速度が遅いため、ホストバス１０１上の転送が制約を受けることも、ホストバス２１の使用率増加の一因となっていた。
【００２７】
このように、従来は複数のバスを有するシステムにおいて、低速な周辺バスに接続されたＩＰからシステムメモリへのＤＭＡ転送が、ＣＰＵが接続された高速なホストバスを必ず介して行っており、ホストバスの使用率の増加を招いていた。
【００２８】
本発明は上記事情に鑑み、ホストバスの使用率を低減し、処理効率を向上させることが可能な記憶制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２９】
本発明の一態様による記憶制御装置は、
ＣＰＵが接続されたホストバス、少なくとも１つのＩＰが接続された周辺バス、及びシステムメモリに接続され、前記ＩＰからシステムメモリへのＤＭＡ転送を制御する装置であって、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備えることを特徴とする。
【００３０】
また本発明の一態様による記憶制御装置は、
各々の前記ＩＰに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記ＩＰとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備えることを特徴とする。
【００３１】
あるいは本発明の一態様による記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを備え、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする。
【００３２】
本発明の一態様によるＤＭＡ転送が可能な制御システムは、
ホストバスに接続されたＣＰＵと、
前記ホストバス又は周辺バスに接続された少なくとも一つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部と、
を有することを特徴とする。
【００３３】
また本発明の一態様による制御システムは、
前記ホストバス又は周辺バスに接続された少なくとも二つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、さらに前記ＩＰに直接接続されており、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
各々の前記ＩＰに前記ホストバスを介すことなく直接接続されており、いずれか一つの前記ＩＰとの間でデータ転送を行うスイッチ部と、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定をするアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを有することを特徴とする。
【００３４】
あるいは本発明の一態様による制御システムは、
ホストバスに接続されたＣＰＵと、
前記ホストバス又は周辺バスに接続された少なくとも一つのＩＰと、
前記ＣＰＵ又は前記ＩＰがアクセス可能なシステムメモリと、
前記ホストバス、前記周辺バス及び前記システムメモリに接続され、前記ＩＰから前記システムメモリへのＤＭＡ転送を制御する記憶制御装置とを備え、
前記記憶制御装置は、
前記周辺バス又は前記ホストバスから与えられたアドレスが、前記システムメモリにおいて当該記憶制御装置が管理しているメモリ領域か否かの判定を行うアドレスマップ判定部と、
前記システムメモリとの間のデータ転送を制御するメモリ制御部と、
前記ＣＰＵがキャッシュ可能な領域を示すアドレス情報を保持するＴＬＢ情報保持部と、
前記ＴＬＢ情報保持部が保持する前記アドレス情報に基づいて、前記周辺バス又は前記ホストバスから与えられたアドレスが、前記ＣＰＵのキャッシュ可能な領域か否かの判定を行うアドレス判定部と、
前記アドレス判定部の判定結果に従い、前記アドレスを前記ＣＰＵに通知する必要がある場合に、前記ホストバスを介してこの通知を行うスヌープアドレス制御部とを有し、
前記スヌープアドレス制御部は、前記ホストバスのバーストサイズに応じて前記アドレスを蓄積した段階で、前記ホストバスへこのアドレスをバースト転送することが可能なように、このアドレスを蓄積する記憶部を有することを特徴とする。
【発明の効果】
【００３５】
本発明の記憶制御装置によれば、周辺バスに接続されたＩＰからシステムメモリへのＤＭＡ転送において、アドレス判定部によりＴＬＢで定義された情報に基づいて、ＣＰＵがキャッシュ可能な領域がどうかを判定することにより、ホストバスを使用することなくＤＭＡ転送が可能となる場合が生じ、その結果ホストバスの使用率を低減させることができる。
【発明を実施するための最良の形態】
【００３６】
以下、本発明の実施の形態について、図面を参照して説明する。
【００３７】
後述する実施の形態では、先ず、ホストバス又は周辺バスから送られてきたアドレスが、当該記憶制御装置が管理する領域であるかどうか、またこのアドレスはＣＰＵがキャッシュ可能な領域かどうかを判断し、次に、キャッシュ不可能な領域である場合を除き、キャッシュのコヒーレンシ確保のため、ＩＰがメモリのどの領域をアクセスしたかを知らせるために記憶制御装置がＣＰＵに対してこのアドレスを通知するように構成している。
【００３８】
（１）実施の形態１
図１に、本実施の形態１による記憶制御装置の構成を示す。
【００３９】
この記憶制御装置１０３ａは、ホストバス１０１に接続されたホストバスＩ／Ｆ部１１１及びスヌープアドレス制御部１１５、アドレスマップ判定部１１２、メモリ制御部１１３、アドレス判定部１１６、ＴＬＢ情報保持部１１７、周辺バス１０２に接続された周辺バスＩ／Ｆ部１１４を備えている。特に本装置は、周辺バスＩ／Ｆ部１１４、スヌープアドレス制御部１１５、アドレス判定部１１６、ＴＬＢ情報保持部１１７を備える点に特徴がある。
【００４０】
この場合の記憶制御装置１０３ａを含むシステム全体の構成の一例は、図２に示される通りである。ここで、記憶制御装置１０３ａが、ホストバス１０１のみならず周辺バス１０２にも接続されている点が従来と相違する。
【００４１】
尚、ここでＣＰＵ２０１は、ライトスルー方式を採用していることを前提とする。
【００４２】
記憶制御装置１０３ａ内における各ブロックが有する機能は、以下の通りである。
【００４３】
（１）ホストバスＩ／Ｆ部１１１
ホストバス１０１と記憶制御装置１０３ａとの間のバスアクセスを制御する。
【００４４】
（２）アドレスマップ判定部１１２
ホストバス１０１又は周辺バス１０２上のアドレス（物理アドレス）が、自己の管理するシステムメモリ２３１かどうかを判定する。
【００４５】
例えば、この記憶制御装置１０３ａがＤＲＡＭコントローラである場合、図３に示されたような内部レジスタ２３１ａ、ＤＲＡＭ２３１ｂ、ＥＥＰＲＯＭ２３１ｃ、ＲＯＭ２３１ｄを有するメモリマップで構成されたシステムメモリ２３１において、ホストバス１０１又は周辺バス１０２上のアドレスが、ＤＲＡＭコントローラが管理するＤＲＡＭ２３１ｂに割り付けられているアドレスであるかどうかの判定を行う。
【００４６】
（３）メモリ制御部１１３
システムメモリ２３１へのアクセスを制御する。
【００４７】
アドレスマップ判定部１１２における判定の結果、そのアドレスが自己の管理するメモリ領域（ここでは、ＤＲＡＭ２３１ｂ）である場合、バス上のアクセス要求（リード／ライト）に従ってメモリアクセスの制御を行う。
【００４８】
（４）周辺バスＩ／Ｆ部１１４
周辺バス１０２と記憶制御装置１０３ａとの間のバスアクセスを制御する。
【００４９】
（５）ＴＬＢ情報保持部１１７
アドレス変換に必要なＣＰＵ２０１のＴＬＢを複製した情報として、論理物理アドレス変換情報及び制御情報（キャッシャブル／ノンキャッシャブルの判定情報）を保持する。
【００５０】
（６）スヌープアドレス制御部１１５
スヌープアドレスをホストバス１０１に出力する。
【００５１】
アドレス判定部１１６から送られてきた判定結果がノンキャッシャブルではない場合、ホストバス１０１上にそのアドレスの無効化トランザクション、又は擬似的なＩ／Ｏからシステムメモリ２３１へのＤＭＡを、ブロードキャストする。
【００５２】
これは、ホストバス１０１にＣＰＵが１つ以上存在する場合を想定しており、送信先を特定することなく全ＣＰＵに対して、当該アドレスのキャッシュデータを無効化するよう通知するためである。
【００５３】
（７）アドレス判定部１１６
ホストバス１０１又は周辺バス１０２上のアドレスが、キャッシャブルかどうかの判定を行い、一致した場合はスヌープアドレス制御部１１５に通知する。
【００５４】
予め設定されたシステム固有のアドレスマップの状態、及びＴＬＢ情報保持部１１７の制御情報から、ホストバス１０１又は周辺バス１０２上のアドレスがキャッシャブルかどうかの判定を行う。
【００５５】
この場合の判断基準は
１）ヒットかつキャッシャブルの場合；スヌープアドレス制御部１１５に伝達する。
【００５６】
２）ヒットかつノンキャッシャブルの場合；スヌープアドレス制御部１１５に伝達しない。
【００５７】
３）ミスの場合；スヌープアドレス制御部１１５に伝達する。
【００５８】
ここで、３）の処理は無駄なフローになる可能性もあるが、安全の為に行う。
【００５９】
キャッシュにコピーが存在する場合、可能性のあるアドレスは全てスヌープアドレス制御部１１５に通知する。
【００６０】
上記構成を有する本実施の形態における動作について説明する。
【００６１】
周辺バス１０２上のＩＰ２１２〜２１４からシステムメモリ２３１ヘのＤＭＡ転送を行う際、スヌープを行うかどうかの判定を以下のように行う。
【００６２】
アドレスマップ判定部１１２により、ホストバス１０１又は周辺バス１０２上のアドレスが、自己の管理するシステムメモリ２３１ヘのアクセスであることが判明した場合、アドレス判定部１１６は、先ず、
１）  周辺バス１０２上のアドレスが、
Ａ）常にキャッシャブルな領域のアドレスであるか、
Ｂ）常にノンキャッシャブルなアドレスであるか、
Ｃ）アドレス変換テーブルの制御情報によって制御されるアドレスであるか、
を判定する。
【００６３】
２）Ｃ）（アドレス変換テーブルの制御情報によって制御されるアドレス）である場合、さらに周辺バス１０２上のアドレスと、ＴＬＢ情報保持部１１７に保持されている全ての物理アドレスとを比較し、
Ｄ）ＴＬＢ情報保持部１１７に一致する物理アドレスが存在するか、（即ち、ＴＬＢヒット）
Ｅ）ＴＬＢ情報保持部１１７に一致する物理アドレスが存在しないか、（即ち、ＴＬＢミス）であるか、
を判定する。
【００６４】
ここで、上述のように、ＴＬＢ情報保持部１１７は、アドレス変換テーブルの一部の情報しか保持していない。そのため、ＴＬＢミスの場合は、システムメモリ２３１上のアドレス変換テーブルを参照しない限り、キャッシャブルか否かを判定することはできない。そこで本実施の形態においては、ノンキャッシャブルであることが明白な場合を除き、スヌープ動作を実行するものとしている。これは、無駄なフローになる可能性もあるが、安全のために実行するものである。
【００６５】
３）Ｄ）（ＴＬＢ情報保持部１１７に一致する物理アドレスが存在する、ＴＬＢヒット）の場合、ＴＬＢ情報保持部１１７に保持されている、一致した物理アドレスの制御情報により、そのアドレスが、
Ｆ）キャッシャブルであるか、
Ｇ）ノンキャッシャブルであるか、
を判定する。
【００６６】
４）判定結果が、Ｂ）（常にノンキャッシャブルなアドレス）又はＧ）（ノンキャッシャブルなアドレス）の場合、周辺バス１０２上のアドレスに対応するデータがキャッシュには存在しないことが明らかであり、スヌープ動作を行う必要はない。
【００６７】
判定結果がこれ以外の場合、このアドレスのデータがキャッシュに存在する可能性があり、アドレス判定部１１６はスヌープアドレス制御部１１５にスヌープ動作を行うように通知する。
【００６８】
５）アドレス判定部による判定結果が、Ｂ）又はＧ）以外の場合、スヌープアドレス制御部１１５はホストバス１０１のバス使用権をＣＰＵ２０１から取得した後、スヌープのための擬似的なライトトランザクションを実行する。
【００６９】
ここで、スヌープのための擬似的なライトトランザクションについて説明する。通常のライトトランザクションには、以下のような特徴がある。
【００７０】
ａ）マスタからのアクセス要求と、その要求に対するアクセス対象物からの応答とによりハンドシェークが成立する。
【００７１】
ｂ）マスタからのライトデータ転送を伴う。
【００７２】
これに対し、擬似的なライトトランザクションとは、スヌープアドレス制御部１１５がＣＰＵ２０１に対してスヌープ処理に必要なアドレスを通知するための処理であり、通常のバストランザクションとは以下のような相違がある。
【００７３】
Ａ）記憶制御装置がマスタとなって、トランザクションを発行する。
【００７４】
Ｂ）応答すべきアクセス対象物が、ライトトランザクションを発行した記憶制御装置１０１自身であり応答が存在しない。このため、記憶制御装置１０１が発行したアクセス要求とこの要求に対する応答とによるハンドシェークが成立しない。
【００７５】
但し、バスのプロトコルを守る必要上、応答が必要な場合は、記憶制御装置１０１自身がダミーの応答を発行することで、見かけ上ハンドシェークが成立する場合もある。
【００７６】
Ｃ）有効なデータ転送を伴わない。
【００７７】
これは、データ転送を目的とした通常のバストランザクションとは異なり、スヌープ処理に必要なアドレスをＣＰＵ２０１に通知することを目的としているため、データをバス上に出力する必要がないことに基づく。但し、上記のダミー応答を行う場合、ＤＲＡＭへの書き込みは行われない。
【００７８】
６）ここで、擬似的なライトトランザクションにおけるホストバス１０１上のアドレス、データ、書き込み信号の波形の変化を図４に示し、周辺バス１０２上のアドレス、データ、書き込み信号の波形の変化を図５に示す。
【００７９】
図５に示されたように、周辺バス１０２上のＩＰ２１２〜２１４のいずれかから記憶制御装置１０１にシステムメモリ２３１ヘのＤＭＡ転送要求があった場合、アドレスＮ、Ｎ＋４、Ｎ＋８、Ｎ＋１２と、それぞれに対応するデータＤＮ、ＤＮ＋４、ＤＮ＋８、ＤＮ＋１２ と、ライト信号とが記憶制御装置１０１に送られてくる。
【００８０】
このとき、アドレス判定部１１６が、周辺バス１０２上のアドレスＮ〜Ｎ＋１２はキャッシャブルであると判定した場合、記憶制御装置１０３ａはスヌープのための擬似的なライトトランザクションを発行する。
【００８１】
このライトトランザクションでは、図４に示されたようにホストバス１０１上に、データ転送を伴うことなく、ＣＰＵ２０１に通知が必要なアドレスＮ、Ｎ＋４、Ｎ＋８、Ｎ＋１２と、ライト信号のみが転送される。
【００８２】
このように、実際に書込処理は伴わないが、スヌープを行うべくデータを転送することなく擬似的なトランザクションを行うことになる。
【００８３】
上記実施の形態１の記憶制御装置１０３ａによれば、周辺バス１２に接続されたＩＰ２１２〜２１４からシステムメモリ２３１へのＤＭＡ転送を行う際に、アドレス判定部１１６にて判定することにより、このＤＭＡ転送がＴＬＢで定義されたノンキャッシャブル領域への転送である場合、ＣＰＵへの通知が不要であり、ホストバス１０１を使用することなく転送が可能である。この結果、ホストバス１０１の使用率を低減することができる。
【００８４】
（２）実施の形態２
図６に、本実施の形態２による記憶制御装置１０３ｂの構成を示す。
【００８５】
本実施の形態２による記憶制御装置１０３ｂは、上記実施の形態１による記憶制御装置１０３ａにおける周辺バスＩ／Ｆ部１１４の替わりに、スイッチ部１１８を備えている。
【００８６】
また、本実施の形態２におけるホストバスＩ／Ｆ部１１１は、上記実施の形態１におけるものと同様にバスマスタ機能を有する。
【００８７】
アドレス判定部１１６は、ＣＰＵ２０１のキャッシュ領域へのアクセスであるかどうかを判定する。
【００８８】
スイッチ部１１８は、複数のＩＰ２１１〜２１ｎ（ｎは、２以上の整数）からシステムメモリ２３１へのアクセスを調停していずれかのＩＰを選択し、選択したＩＰとシステムメモリ２３１との間の転送の制御を行う。この場合、ＩＰ２１１〜２１ｎのいずれかとスイッチ部１１８との間でデータ転送する際に、ホストバス１０１あるいは周辺バス１０２を介することなく、直接ピアツーピア接続（peer to peer）を行う。
【００８９】
他の実施の形態１における要素と同一のものには、同一の番号を付して説明を省略する。
【００９０】
本実施の形態２による記憶制御装置を含むシステムにおけるバス構成を図７に示す。記憶制御装置１０３ｂにおけるスイッチ部１１８と各ＩＰ２１１〜２１ｎとが、ホストバス１０１あるいは周辺バス１０２を介することなく、上述したように直接接続されている。
【００９１】
上記実施の形態１では、ホストバス１０１又は周辺バス１０２上のアドレスによってスヌープが必要か否かの判定を行う。
【００９２】
これに対し本実施の形態２では、ホストバス１０１又は周辺バス１０２上のアドレスの代わりに、各ＩＰ２１１〜２１ｎから直接送られてきたアドレスに基づいて、スヌープが必要かどうかの判定を行う。
【００９３】
本実施の形態２におけるスヌープを行うかどうかの判定動作は上記実施の形態１と同様であり、上記実施の形態１と同様にホストバス１０１の使用率を低減することが可能である。
【００９４】
（３）実施の形態３
本発明の実施の形態３による記憶制御装置について、その構成を示した図８を用いて説明する。
【００９５】
本実施の形態３における記憶制御装置１０３ｃは、上記実施の形態１における記憶制御装置１０３ａと比較し、スヌープアドレス制御部１１５ａがレジスタ１１５ｂを有する点が異なっている。
【００９６】
この場合の記憶制御装置１０３ｃを含むシステム全体の構成の一例は、図２を用いて説明した上記実施の形態１におけるものと同様であり、説明を省略する。
【００９７】
本実施の形態３では、スヌープのために必要な擬似的なトランザクションを行う必要のあるアドレスを、ホストバス１０１にバースト転送をする際に、そのアドレスをレジスタ１１５ｂに溜めておく。そして、バーストサイズまで溜まった後、アドレスをスヌープアドレス制御部１１５ａがホストバス１０１へバースト転送する。
【００９８】
この場合に、周辺バス１０２のバーストサイズとは無関係に、ホストバス１０１の最大バーストサイズに合わせてトランザクションをマージすることが可能である。
【００９９】
これにより、ＣＰＵ２０１に接続されているホストバス１０１の最大バーストサイズに合わせた転送が可能となる。また、記憶制御装置１０３ａがホストバス１０１の使用権を得るまでの間、周辺バス１０２を停止させる必要がない。さらには、スヌープのための擬似的なトランザクションを行うためには、アドレスを一旦記憶しておく必要もある。以上によって、スヌープに必要なアドレスの転送効率を向上させることができる。
【０１００】
周辺バスから連続したアドレスがホストバスの最大バーストサイズ分だけ発行された場合、ホストバス上では、ホストバス上の最大バーストサイズを用いて、転送を行うことができる。
【０１０１】
即ち、周辺バスの数回のトランザクションをホストバス上ではまとめて１回のトランザクションとして発行することができる。
【０１０２】
図９に、本実施の形態３における擬似ライトトランザクションのホストバス１０１及び周辺バス１０２上のタイミングダイアグラムの一例を示す。
【０１０３】
周辺バス１０２上において、Ｎ＋０ｘ００をスタートアドレスとする４ワードバーストが完了し、それに引き続いて、Ｎ＋０ｘ１０をスタートアドレスとする４ワードバーストが開始した時点で、ホストバス上ではＮ＋０ｘ００をスタートアドレスとする８ワードバーストを行うことが可能と判断できる。
【０１０４】
その時点で、８ワードバーストをダミーのデータとともに開始する。
【０１０５】
Ｎ＋０ｘ１０のバースト転送の終了を待たずに、バスマスターになることが出来次第、８ワードバーストのスヌープの為の擬似的なライトトランザクションが可能である。これによりホストバスの使用率を低減することができる。
【０１０６】
周辺バス１０２からのバースト転送のアドレスはこのように連続している可能性が高いため、アドレスを束ねて転送することで、バス転送効率が向上する。
【０１０７】
本実施の形態３によれば、上記実施の形態１、２と同様に、周辺バス１０２に接続されたＩＰ２１２〜２１ｎから記憶制御装置１０３ａを介してシステムメモリ２３１にＤＭＡ転送を行う際に、このＤＭＡ転送が、ＴＬＢで定義されたノンキャッシャブル領域への転送である場合、上記実施の形態１、２と同様にアドレス判定部１１６によってアドレス判定がなされるため、ホストバス１０１を使用することなくＤＭＡ転送を実現し、ホストバス１０１の使用率を低減することができる。
【０１０８】
上述した実施の形態はいずれも一例であり、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
【図面の簡単な説明】
【０１０９】
【図１】本発明の実施の形態１による記憶制御装置の構成を示したブロック図。
【図２】同記憶制御装置を有するシステム全体のバス構成を示したブロック図。
【図３】同システムにおけるシステムメモリのメモリマップを示した説明図。
【図４】同システムにおける擬似的なライトトランザクションを行うときのホストバス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。
【図５】同システムにおける擬似的なライトトランザクションを行うときの周辺バス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。
【図６】本発明の実施の形態２による記憶制御装置の構成を示したブロック図。
【図７】同記憶制御装置を有するシステム全体のバス構成を示したブロック図。
【図８】本発明の実施の形態２による記憶制御装置の構成を示したブロック図。
【図９】本発明の実施の形態３による記憶制御装置を含むシステムにおいて、擬似的なライトトランザクションを行うときのホストバス及び周辺バス上のアドレス、データ、書き込み信号の波形の変化を示したタイムチャート。
【図１０】従来の記憶制御装置を有するシステム全体のバス構成を示したブロック図。
【図１１】仮想アドレスから物理アドレスへ変換する時に用いるアドレス変換テーブルを示した説明図。
【図１２】アドレス変換に用いるＴＬＢの構成を示した説明図。
【符号の説明】
【０１１０】
１０１  ホストバス
１０２  周辺バス
１０３ａ、１０３ｂ、１０３ｃ  記憶制御装置
１１１  ホストバスＩ／Ｆ部
１１２  アドレスマップ判定部
１１３  メモリ制御部
１１４  周辺バスＩ／Ｆ部
１１５、１１５ａ  スヌープアドレス制御部
１１５ｃ  レジスタ
１１６  アドレス判定部
１１７  ＴＬＢ情報保持部
１１８  スイッチ部
２０１  ＣＰＵ
２１１〜２１ｎ  ＩＰ
２２１  バスブリッジ
２３１  システムメモリ
【図１】
2005128963.tif 000003
【図２】
2005128963.tif 000004
【図３】
2005128963.tif 000005
【図４】
2005128963.tif 000006
【図５】
2005128963.tif 000007
【図６】
2005128963.tif 000008
【図７】
2005128963.tif 000009
【図８】
2005128963.tif 000010
【図９】
2005128963.tif 000011
【図１０】
2005128963.tif 000012
【図１１】
2005128963.tif 000013
【図１２】
2005128963.tif 000014