(57)【要約】【課題】データコヒーレンシを保ちつつ、メモリアクセス効率を向上させること。【解決手段】レジスタ１３４は、上限アドレス及び所定の下限アドレスを格納する。アドレス比較部１３５は、アクセス要求で指定されるアドレスと、レジスタ１３４に格納された上限アドレス及び下限アドレスとを比較する。指定されたアドレスが、下限アドレス以上であり、且つ上限アドレス以下である場合、アドレス比較部１３５は、キャッシュ１２１を介して共有メモリ２００にアクセスする第１の経路を有効にする。指定されたアドレスが、下限アドレス未満である場合、又は前記上限アドレスよりも大きい場合、アドレス比較部１３５は、キャッシュ１２１を介さずに共有メモリ２００にアクセスする第２の経路を有効にする。【選択図】      図２
2008140078.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理モジュール及び第２の処理モジュールによって共有されるメモリに接続されたバスと前記第１の処理モジュールとの間に設けられたバスブリッジ装置であって、
前記メモリから読み出されるデータを格納するキャッシュと、
前記メモリに割り当てられたアドレス空間内の所定のアドレス領域を指定するアドレス情報を格納するレジスタと、
前記第１の処理モジュールによって実行されるメモリアクセスサイクルによって指定されるメモリアドレスと前記アドレス情報とを比較し、前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にし、前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にする経路切り替え部と、
を具備することを特徴とする、バスブリッジ装置。
【請求項２】
前記キャッシュを介さずに前記第１の処理モジュールと前記バスとの間を結合するバイパス用信号線路と、
前記キャッシュと第１の処理モジュールとの間に設けられた第１のマスク回路と、
前記バイパス用信号線路内に挿入された第２のマスク回路とを更に備え、
前記経路切り替え部は、前記第１の経路を有効にする場合、前記第１のマスク回路をディスエーブル状態に設定する共に前記第２のマスク回路をイネーブル状態に設定し、前記第２の経路を有効にする場合、前記第１のマスク回路をイネーブル状態に設定する共に前記第２のマスク回路をディスエーブル状態に設定することを特徴とする、請求項１記載のバスブリッジ装置。
【請求項３】
前記レジスタは書き換え可能に構成されていることを特徴とする、請求項１記載のバスブリッジ装置。
【請求項４】
第１の処理モジュールと、
第２の処理モジュールと、
前記第１の処理モジュールおよび前記第２の処理モジュールによって共有されるメモリと、
前記メモリに接続されたバスと前記第１の処理モジュールとの間に設けられ、前記メモリから読み出されるデータを格納するキャッシュと、
前記メモリに割り当てられたアドレス空間内の所定のアドレス領域を指定するアドレス情報を格納するレジスタと、
前記第１の処理モジュールによって実行されるメモリアクセスサイクルによって指定されるメモリアドレスと前記アドレス情報とを比較し、前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にし、前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にする経路切り替え部と、
を具備することを特徴とする情報処理装置。
【請求項５】
前記キャッシュを介さずに前記第１の処理モジュールと前記バスとの間を結合するバイパス用信号線路と、
前記キャッシュと第１の処理モジュールとの間に設けられた第１のマスク回路と、
前記バイパス用信号線路内に挿入された第２のマスク回路とを更に備え、
前記経路切り替え部は、前記第１の経路を有効にする場合、前記第１のマスク回路をディスエーブル状態に設定する共に前記第２のマスク回路をイネーブル状態に設定し、前記第２の経路を有効にする場合、前記第１のマスク回路をイネーブル状態に設定する共に前記第２のマスク回路をディスエーブル状態に設定することを特徴とする、請求項４記載の情報処理装置。
【請求項６】
第１の処理モジュール及び第２の処理モジュールによって共有されるメモリに接続されたバスと前記第１の処理モジュールとの間に設けられたキャッシュを用いて、前記第１の処理モジュールと前記メモリとの間のデータ転送を制御するデータ転送制御方法であって、
前記第１の処理モジュールによって実行されるシングルアクセスによって指定されるメモリアドレスが前記メモリに割り当てられたアドレス空間内の所定のアドレス領域に属するか否かを判定するステップと、
前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にするステップと、
前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にするステップと、
を具備することを特徴とする、データ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、バスブリッジ装置、情報処理装置、およびデータ転送制御方法に関し、特に、キャッシュを介してメモリと処理モジュールとの間のデータ転送を制御するバスブリッジ装置、情報処理装置、およびデータ転送制御方法に関する。
【背景技術】
【０００２】
従来、メモリアクセス効率を向上させるための様々な技術が提案されている。例えば、ダブルデータレート（ＤＤＲ）タイプのＳＤＲＡＭでは、アドレスを設定するためのオーバーヘッドが大きく、実際のデータ転送時間は短い。このため、シングルリード、シングルライトといったシングルアクセスが多発すると、メモリアクセス効率が低下される。そこで、通常は、プロセッサ、バスマスタデバイスといった処理モジュールとＳＤＲＡＭとの間にキャッシュを配置するシステム構成が使用されている。ＳＤＲＡＭとキャッシュとの間のデータ転送はバースト転送によって実行されるため、メモリアクセス効率を向上させることができる。
【０００３】
また、複数のプロセッサが接続されるバスとメモリが接続されるバスとの間に、キャッシュを含むバスブリッジ回路が配置されたシステムも提案されている（例えば、特許文献１参照）。このバスブリッジ回路においては、キャッシュから取り出した内容をプロセッサに出力する処理経路とは別個に、キャッシュを経由せずに適当な固定値をプロセッサに出力する処理経路を形成し、余分なキャッシュ無効化処理の実行を省略している。
【特許文献１】特開２０００−４７９３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、常にキャッシュを介してメモリをアクセスする処理モジュールを備えたシステムに、当該キャッシュを介さずにメモリをアクセスする新たな処理モジュールを追加した場合、データのコヒーレンシを保つことが困難となる場合がある。例えば、２つの異なる処理モジュールが１つのメモリを共有しており、一方のモジュールによってメモリにデータが書き込まれた後に、そのデータを他方のモジュールが読み出す制御が求められる場合を考える。このような場合、どちらかのモジュールがキャッシュに格納されたデータを用いていると、キャッシュと共有メモリとの間でデータ内容の不一致が生じる。
【０００５】
そのため、例えば、キャッシュを介さずに共有メモリをアクセスする一方の処理モジュールが共有メモリにライトしたデータを、キャッシュを介して共有メモリをアクセスする他方の処理モジュールが使用する場合は、一方の処理モジュールが共有メモリにデータをライトした後、キャッシュの内容を無効化して、改めて他方の処理モジュールが共有メモリをリードアクセスするという手順が必要になる。また、逆に他方の処理モジュールがキャッシュにライトしたデータを一方の処理モジュールが使用する場合は、他方の処理モジュールがキュッシュにデータをライトした後、キャッシュをフラッシュし、無効化してから、一方の処理モジュールが共有メモリを読み出す手順が必要になる。
【０００６】
ところで、近年、開発が大規模化し、開発期間が短縮化される中で、多くの開発には過去に開発したソフトウェアが再利用される。例えば、ハードウエアを動作させるドライバについては、実績のあるドライバをそのまま使いたいという要望が非常に多い。上述したキャッシュ制御手順はドライバに組み込むべき手順ではあるが、上述のとおりドライバは流用が多く、新規機能組み込みは非常に困難である。常にキャッシュを無効しておけばドライバの修正は不要となるが、メモリアクセス効率の大幅な低下を招くことになる。
【０００７】
そこで、本発明は、データコヒーレンシを保ちつつ、メモリアクセス効率を向上させることができるバスブリッジ装置、情報処理装置、およびデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の一つの面によれば、第１の処理モジュール及び第２の処理モジュールによって共有されるメモリに接続されたバスと前記第１の処理モジュールとの間に設けられたバスブリッジ装置であって、前記メモリから読み出されるデータを格納するキャッシュと、前記メモリに割り当てられたアドレス空間内の所定のアドレス領域を指定するアドレス情報を格納するレジスタと、前記第１の処理モジュールによって実行されるメモリアクセスサイクルによって指定されるメモリアドレスと前記アドレス情報とを比較し、前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にし、前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にする経路切り替え部とを具備することを特徴とするバスブリッジ装置が提供される。
【０００９】
また、本発明の別の面によれば、第１の処理モジュールと、第２の処理モジュールと、
前記第１の処理モジュールおよび前記第２の処理モジュールによって共有されるメモリと、前記メモリに接続されたバスと前記第１の処理モジュールとの間に設けられ、前記メモリから読み出されるデータを格納するキャッシュと、前記メモリに割り当てられたアドレス空間内の所定のアドレス領域を指定するアドレス情報を格納するレジスタと、前記第１の処理モジュールによって実行されるメモリアクセスサイクルによって指定されるメモリアドレスと前記アドレス情報とを比較し、前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にし、前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にする経路切り替え部とを具備することを特徴とする情報処理装置が提供される。
【００１０】
さらに、本発明のまた別の面によれば、第１の処理モジュール及び第２の処理モジュールによって共有されるメモリに接続されたバスと前記第１の処理モジュールとの間に設けられたキャッシュを用いて、前記第１の処理モジュールと前記メモリとの間のデータ転送を制御するデータ転送制御方法であって、前記第１の処理モジュールによって実行されるシングルアクセスによって指定されるメモリアドレスが前記メモリに割り当てられたアドレス空間内の所定のアドレス領域に属するか否かを判定するステップと、前記メモリアドレスが前記所定のアドレス領域に属する場合、前記第１の処理モジュールが前記キャッシュを介して前記メモリをアクセスする第１の経路を有効にするステップと、前記メモリアドレスが前記所定のアドレス領域に属さない場合、前記第１の処理モジュールが前記キャッシュを介さずに前記メモリをアクセスする第２の経路を有効にするステップとを具備することを特徴とする、データ転送制御方法が提供される。
【発明の効果】
【００１１】
本発明によれば、データコヒーレンシを保ちつつ、メモリアクセス効率を向上させることができるバスブリッジ装置、情報処理装置、およびデータ転送制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態について図面を参照しながら説明する。
【００１３】
図１を参照しつつ、本発明の一実施形態に係るデータ転送制御装置について説明する。
【００１４】
図１は、本発明の一実施形態に係る情報処理装置の構成を概略的に示すブロック図である。この情報処理装置は、複数の処理モジュールと、これら複数の処理モジュールによって共有される共有メモリ２００とを備えている。複数の処理モジュールは、例えば、ＬＳＩ（Large Scale Integration）１００として実現されている。ＬＳＩ１００は、内部バス１１０、バスブリッジ１２０、処理モジュール１３０、処理モジュール１４０、処理モジュール１５０等を備える。本実施形態に係る情報処理装置は、例えば、ノート型パーソナルコンピュータ、デスクトップ型パーソナルコンピュータ、ゲーム機器、テレビといった、様々な電子機器に搭載される組み込みシステムとして用いることができる。
【００１５】
内部バス１１０は、処理モジュール１３０、１４０及び１５０の各々と共有メモリ２００との間でのデータ転送に用いられる。処理モジュール１３０、１４０及び１５０の各々は、所定の機能を実行するためのデバイスであり、例えば、プロセッサ、バスマスタ機能を有するＩ／Ｏコントローラ、またはそれらプロセッサとＩ／Ｏコントローラとの組み合わせによって実現されている。  バスブリッジ１２０は、内部バス１１０と処理モジュール１３０との間に設けられている。バスブリッジ１２０は、キャッシュ回路１２１、及び経路セレクタ１２２を備える。キャッシュ回路１２１は、共有メモリ２００から読み出されるデータを格納するキャッシュである。キャッシュリフィル、キャッシュフラッシュ等のためにキャッシュ回路１２１と共有メモリ２００との間で実行されるデータ転送は、バースト転送を用いて実行される。１回のバースト転送によって転送されるデータサイズは、例えばキャッシュラインのデータサイズに対応している。また、バスブリッジ１２０は、プロトコル変換を行う機能を有する。
【００１６】
処理モジュール１３０は、サブモジュール１３１及び１３２、バスインタフェース（ＢＩＦ）１３３、ＣＰＵ１３５等を備え、これらの要素の各々はモジュール内部バス１３６を介して互いに接続されている。バスインタフェース１３３は、レジスタ１３４を備えている。処理モジュール１３０は、バスブリッジ１２０及び内部バス１１０を介して共有メモリ２００にアクセスする。処理モジュール１３０のモジュール内部バス１３０のプロトコルと、内部バス１１０のプロトコルとが異なる場合、バスブリッジ１２０によってプロトコル変換が行われる。
【００１７】
処理モジュール１４０及び処理モジュール１５０のそれぞれは、内部バス１１０に接続されており、内部バス１１０を介して共有メモリ２００にアクセスする。
【００１８】
処理モジュール１３０と内部バス１１０との間には、２種類の経路がある。１つは、処理モジュール１３０から、バスブリッジ１２０のキャッシュ回路１２１を経由して共有メモリ２００にアクセスする第１の経路である。もう１つは、処理モジュール１３０から、バスブリッジ１２０のキャッシュ回路１２１を経由せずに共有メモリ２００にアクセスする第２の経路である。
【００１９】
第１の経路では、処理モジュール１３０によって実行されるメモリアクセスサイクルはキャッシュ回路１２１によって受け付けられる。モジュール１３０内のサブモジュール１３１、サブモジュール１３２、及びＣＰＵ１３５の間でデータのやり取りをする場合、共有メモリ２００にアクセスせずに、キャッシュ回路１２１に格納されたデータを用いることができる。このため、第１の経路を用いれば、共有メモリ２００へのメモリアクセス効率を向上させることができる。例えば、モジュール１３０が画像処理の機能を有するモジュールである場合、モジュール１３０から共有メモリ２００へのシングルアクセスが多数発生することが予想される。このような場合、第１の経路（キャッシュ回路１２１）を用いれば、共有メモリ２００へのアクセス回数を削減し、メモリアクセス効率を向上させることができる。
【００２０】
第２の経路は、処理モジュール１３０と他のモジュール（処理モジュール１４０、処理モジュール１５０）との間でデータのコヒーレンシを保つ必要がある場合に用いられる。例えば、処理モジュール１３０のサブモジュール１３１が、処理モジュール１４０が書き込んだ後のデータを読み出す必要がある場合、サブモジュール１３１がキャッシュ回路１２１に格納されているデータを読み出してしまうと、実際に処理モジュール１４０が書き込んだデータとは異なるデータを読み出すことになり、データのコヒーレンシを保てなくなる。従って、処理モジュール１３０と他のモジュール（処理モジュール１４０、処理モジュール１５０）との間でデータをやり取りする場合、第２の経路が用いられる。従って、データのコヒーレンシを保つことができる。
【００２１】
第１の経路と第２の経路のどちらを用いるかは、モジュール１３０内のバスインタフェース１３３によって決定される。また、経路の切り替えは、経路セレクタ１２２によって実行される。
【００２２】
図２及び図３を参照しつつ、バスインタフェース１３３とバスブリッジ１２０について、より詳細に説明する。
【００２３】
図２は、バスブリッジ１２０の構成と、処理モジュール１３０のバスインタフェース１３３の構成をより詳細に示すブロック図である。なお、図２において、モジュール内部バス１３６は、複数の信号線として示されている。より具体的には、モジュール内部バス１３６は、ライトデータ信号線（ＷｒＤａｔａ）、アドレス信号線（Ａｄｄｒｅｓｓ）、制御信号線（Ｃｔｒｌ）、バススタート信号線（ＢｕｓＳｔａｒｔ）、リードデータ信号線（ＲｄＤａｔａ）、及び肯定応答信号線（Ａｃｋ）を含むものとして示されている。なお、バススタート信号は本来、制御系信号の一つであるが、図２においては説明の都合上、制御信号とは別に示されている。また、図２に示される内部モジュールバス１３６の構成は一例であり、この構成に限定されるものではない。
【００２４】
図２に示されるように、バスブリッジ１２０は、キャッシュ回路１２１、第１のマスク回路１２２ａ、第２のマスク回路１２２ｂ、及びプロトコル変換回路１２３等を備える。第１のマスク回路１２２ａ、及び第２のマスク回路１２２ｂは、前述の経路セレクタ１２２を構成する。
【００２５】
第１のマスク回路１２２ａは、キャッシュ回路１２１と処理モジュール１３０との間に設けられている。具体的には、第１のマスク回路１２２ａは、キャッシュ回路１２１と処理モジュール１３０との間を接続するバススタート信号線（ＢｕｓＳｔａｒｔ）、リードデータ信号線（ＲｄＤａｔａ）、及び肯定応答信号線（Ａｃｋ）内に挿入されている。処理モジュール１３０からのメモリアクセス要求に対しては、キャッシュ回路１２１及びプロトコル変換回路１２３はバススタート信号線（ＢｕｓＳｔａｒｔ）に応答して動作する。したがって、全ての信号線をマスクせずとも、処理モジュール１３０からキャッシュ回路１２１へのバススタート信号線（ＢｕｓＳｔａｒｔ）等をマスクするだけで、処理モジュール１３０からのメモリアクセスサイクルをキャッシュ回路１２１を介さずに内部バス１１０に伝達することができる。
【００２６】
第２のマスク回路１２２ｂは、バスバス用信号線路３００に挿入されている。バスバス用信号線路３００は、キャッシュ１３１を介さずに処理モジュール１３０と内部バス１１０との間を結合する信号線路である。バスバス用信号線路２００は、ライトデータ信号線（ＷｒＤａｔａ）、アドレス信号線（Ａｄｄｒｅｓｓ）、制御信号線（Ｃｔｒｌ）、バススタート信号線（ＢｕｓＳｔａｒｔ）、リードデータ信号線（ＲｄＤａｔａ）、及び肯定応答信号線（Ａｃｋ）を含む。第２のマスク回路１２２ｂは、バスバス用信号線路３００内に定義されたバススタート信号線（ＢｕｓＳｔａｒｔ）、リードデータ信号線（ＲｄＤａｔａ）、及び肯定応答信号線（Ａｃｋ）に挿入されている。
【００２７】
処理モジュール１３０のバスインタフェース１３３は、レジスタ１３４とアドレス比較部１３５とを備える。
【００２８】
レジスタ１３４は、共有メモリ２００に割り当てられたアドレス空間の内で上述した第２の経路でアクセスされるべき所定のアドレス領域を指定するアドレス情報を格納している。アドレス情報は、例えば、上述のアドレス領域に対応するアドレス範囲の、上限アドレス（Ｕｐｐｅｒ＿Ａｄｄ）及び下限アドレス（Ｌｏｗｅｒ＿Ａｄｄ）を格納している。
【００２９】
アドレス比較部１３５は、処理モジュール１３０によって実行されるメモリアクセスサイクルによって指定されるメモリアドレスをレジスタ１３４に格納された上限アドレス及び下限アドレスと比較し、比較結果に応じて、第１のマスク回路１２２ａ及び第２のマスク回路１２２ｂに出力するチップセレクト信号の論理レベルを制御する。例えば、アドレス比較部１３５が、第１のマスク回路１２２ａに出力するチップセレクト信号の論理レベルをＬＯＷに制御して第１のマスク回路１２２ａをディスエーブル状態に設定し、第２のマスク回路１２２ｂに出力するチップセレクト信号の論理レベルをＨＩＧＨに制御して第２のマスク回路１２２ｂをイネーブル状態に設定した場合、処理モジュール１３０は、キャッシュ回路１２１に接続される。一方、アドレス比較部１３５が、第１のマスク回路１２２ａに出力するチップセレクト信号の論理レベルをＨＩＧＨに制御して第１のマスク回路１２２ａをイネーブル状態に設定し、第２のマスク回路１２２ｂに出力するチップセレクト信号の論理レベルをＬＯＷに制御して第２のマスク回路１２２ｂをディスエーブル状態に設定した場合、処理モジュール１３０は、キャッシュ回路１２１を経由せずにプロトコル変換回路１２３に接続される。
【００３０】
なお、図２中、プロトコル変換回路１２３は、キャッシュ回路１２１と内部バス１１０との間に設けられている。しかし、プロトコル変換回路１２３は、キャッシュ回路１２１とモジュール１３０との間に設けてもよい。この場合、プロトコル変換後に、第１の経路及び第２の経路のいずれか一方が選択される。
【００３１】
図３を参照しつつ、共有メモリ２００のアドレス空間について説明する。
【００３２】
図３は、共有メモリ２００のアドレス空間を示す概略図である。図３に示すように、バスインタフェース１３３に格納される上限アドレス及び下限アドレスによって、第１の経路を用いてアクセスすべきアドレス領域（キャッシュon領域）が規定される。上限アドレス及び下限アドレスによって規定された範囲以外のアドレスへのアクセスは、第２の経路を用いてなされる。なお、図３では、１組の上限アドレス及び下限アドレスのみが示されているが、２以上の組の上限アドレス及び下限アドレスを規定することもできる。この場合、バスインタフェース１３３のレジスタ１３４に、２以上の組の上限アドレス及び下限アドレスを格納すればよい。また、ユーザは、例えば、ＣＰＵ１３５に初期設定用ソフトウェアを実行させることによって、上限アドレス及び下限アドレスのそれぞれに、システム構成に応じて所望の値を柔軟に設定することができる。従って、複数の処理モジュール（モジュール１３０、モジュール１４０、モジュール１５０）によってアクセスされるアドレス範囲において、データのコヒーレンシを保つ必要がある場合、そのようなアドレス範囲を除くように、上限アドレス及び下限アドレスを設定すればよい。このため、設計が容易であり、新たなドライバ等を開発する必要もない。従って、複数のモジュールを含むＬＳＩ１００、及びＬＳＩを含む情報処理装置の開発期間を短縮することができる。
【００３３】
なお、上記の説明では、内部バス１１０と処理モジュール１３０との間にのみブリッジ１２０が設けられている。しかし、内部バス１１０のプロトコルと処理モジュール１４０のモジュール内部バスのプロトコルとが異なる場合、内部バス１１０と処理モジュール１４０との間にブリッジを設けてもよい。同様に、内部バス１１０と処理モジュール１５０との間にブリッジを設けてもよい。あるいは、処理モジュール１４０及び処理モジュール１５０各々の、内部バス１１０とのインタフェース部分にプロトコル変換装置を設けてもよい。
【００３４】
また、アプリケーション毎、又はモジュール毎に、キャッシュ回路（例えば、キャッシュ回路１２１）を利用するかしないかを規定してもよい。
【００３５】
さらに、上記の説明では、共有メモリのアドレス空間において、第２の経路を用いないでアクセスされるアドレス空間の中に、第１の経路を用いて（即ち、キャッシュ回路１２１を介して）アクセスすべきアドレス範囲を、上限アドレス及び下限アドレスを設定することで規定している。しかし、第１の経路を用いてアクセスすべきアドレス範囲に、第２の経路を用いてアクセスすべきアドレス範囲を、上限アドレス及び下限アドレスを設定することで規定してもよい。
【００３６】
図４を参照しつつ、本発明の一実施形態に係るデータ転送制御方法について説明する。
【００３７】
図４は、本発明の一実施形態に係るデータ転送制御方法を説明するためのフローチャートである。まず、バスインタフェース１３３のアドレス比較部１３５は、サブモジュール１３１、サブモジュール１３２、又はＣＰＵ１３５から、共有メモリ２００へのアクセス要求を受け取る（ステップＳ４００）。次いで、アドレス比較部１３５は、受け取ったアクセス要求で指定されたアドレスを、レジスタ１３４に格納された上限アドレス及び下限アドレスと比較する（ステップＳ４０２）。具体的には、サブモジュール１３１、サブモジュール１３２、又はＣＰＵ１３５によってメモリアクセスサイクルが実行された時、アドレス比較部１３５は、メモリアクセスサイクルによって指定されるメモリアドレスをアドレス信号線を介して取得し、そのメモリアドレスがレジスタ１３４に格納された上限アドレス及び下限アドレスと比較する。比較の結果、受け取ったアクセス要求で指定されたアドレスが、下限アドレス以上であり、且つ上限アドレス以下である場合、アドレス比較部１３５は、第１の経路を有効にする（ステップＳ４０４）。一方、比較の結果、受け取ったアクセス要求で指定されたアドレスが、下限アドレス未満である場合、又は上限アドレスよりも大きい場合、アドレス比較部１３５は、第２の経路を有効にする（ステップＳ４０６）。
【００３８】
上述した本発明の各実施形態によれば、簡単な構成で、複数のモジュール（１３０、１４０、１５０）の間でデータコヒーレンシを保ちつつ、共有メモリ（２００）へのアクセス回数を削減してメモリアクセス効率を向上させることができる。
【００３９】
なお、本発明は、上記実施形態そのままに限定されるものではない。本発明は、実施段階では、その要旨を逸脱しない範囲で構成要素を変更して具現化できる。
【００４０】
また、上記実施形態に開示されている複数の構成要素を適宜に組み合わせることで、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態に係るデータ転送制御装置の構成を概略的に示すブロック図である。
【図２】ブリッジ回路の構成と、モジュールのバスインタフェースの構成をより詳細に示すブロック図である。
【図３】共有メモリ２００のアドレス空間を示す概略図である。
【図４】本発明の一実施形態に係るデータ転送制御方法を説明するためのフローチャートである。
【符号の説明】
【００４２】
１００…ＬＳＩ、１１０…内部バス、１２０…ブリッジ回路、１２１…キャッシュ回路、１２２ａ…第１のマスク回路、１２２ｂ…第２のマスク回路、１２３…プロトコル変換回路、１３０…モジュール、１３０…バスインタフェース（ＢＩＦ）、１３４…レジスタ（ｒｅｇ．）、１３５…アドレス比較部、１４０…モジュール、１５０…モジュール。
【図１】
2008140078.tif 000003
【図２】
2008140078.tif 000004
【図３】
2008140078.tif 000005
【図４】
2008140078.tif 000006