(57)【要約】【課題】メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を向上できる共有メモリ装置を提供する。【解決手段】各メモリシステム１１−１〜１１−ｎは、メモリマクロ１２とプロセッサ１３とを含み、各メモリマクロ１２は、ＤＲＡＭ等により構成されるメインメモリ（第１メモリ：ＭＥＭ１）１２１と、たとえばメインメモリ１２１により記憶容量の少ない記憶手段としての第２メモリ（ＭＥＭ２）１２２とを含む階層型メモリ構造を有し、第２メモリ１２１は、データ転送可能なメモリインタフェース１４を含んで構成され、異なるメモリシステム（本実施形態においては隣接するメモリシステム）のメモリマクロのメモリインタフェース同士が接続されている。【選択図】図１
2006221433.tif 000002
【特許請求の範囲】
【請求項１】
メモリマクロと、情報処理装置とを含むメモリシステムを複数有し、
上記各メモリシステムのメモリマクロは、メインメモリと、データ転送可能なメモリインタフェースを含む記憶手段とを有し、
異なるメモリシステムの上記記憶手段のメモリインタフェース同士が接続され、
上記各メモリインタフェースは、上記情報処理装置とメインメモリまたは／および記憶手段間の情報の授受、並びに、異なるメモリシステムの記憶手段との情報の授受を行う
共有メモリ装置。
【請求項２】
上記記憶手段は、上記メインメモリより記憶容量の少ないメモリを含む
請求項１記載の共有メモリ装置。
【請求項３】
上記記憶手段は、上記メインメモリより記憶容量が少なく、かつ、メインメモリより高速アクセスが可能なメモリを含む
請求項１記載の共有メモリ装置。
【請求項４】
上記記憶手段は、データを一時的に保持可能な保持回路を含む
請求項１記載の共有メモリ装置。
【請求項５】
上記複数のメモリマクロにおけるメモリインタフェースのうち、他のメモリマクロと接続関係にない入出力部が外部装置と接続されている
請求項１記載の共有メモリ装置。
【請求項６】
上記複数のメモリマクロにおけるメモリインタフェースのうち、他のメモリマクロと接続関係にない入出力部が外部装置と接続されている
請求項３記載の共有メモリ装置。
【請求項７】
上記メモリインタフェースは、上記プロセッサと上記メインメモリとのデータパスと、上記プロセッサと上記記憶手段とのデータパスを独立して有する
請求項１記載の共有メモリ装置。
【請求項８】
上記メモリインタフェースは、上記プロセッサと上記メインメモリとのデータパスと、上記プロセッサと上記記憶手段とのデータパスを独立して有する
請求項３記載の共有メモリ装置。
【請求項９】
上記メモリインタフェースは、自メモリシステムの上記プロセッサ、または／および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわる情報を自メモリシステムのメインメモリ、記憶手段、または異なるメモリシステムのメモリインタフェースに転送する
請求項１記載の共有メモリ装置。
【請求項１０】
メモリマクロと、プロセッサとを含むメモリシステムを複数有し、
上記各メモリシステムのメモリマクロは、メインメモリと、データ転送可能なメモリインタフェースを含むキャッシュメモリとを有し、
異なるメモリシステムの上記キャッシュメモリのメモリインタフェース同士が接続され、
上記各メモリインタフェースは、前記プロセッサとメインメモリまたは／およびキャッシュメモリ間の情報の授受、並びに、異なるメモリシステムのキャッシュメモリとの情報の授受を行い、
上記各メモリシステムのキャッシュメモリはタグ情報を記憶するタグ記憶部を有し、
上記タグ記憶部に記憶される情報は異なるメモリシステムのキャッシュ情報を含んでいる
共有メモリ装置。
【請求項１１】
物理的な配置によりキャッシュメモリデータへのアクセス時間がアドレスによって変化する場合、上記タグ記憶部にアクセス時間情報が保持される
請求項１０記載の共有メモリ装置。
【請求項１２】
上記各メモリシステムのキャッシュメモリのタグ記憶部が異なるメモリシステムのキャッシュメモリのタグ記憶部と互いにタグ情報を転送可能に接続されている
請求項１０記載の共有メモリ装置。
【請求項１３】
上記各メモリシステムのメインメモリは固有のアドレスを持ち、複数のメモリシステム全体で一つのメモリ空間を形成する
請求項１０記載の共有メモリ装置。
【請求項１４】
上記メモリインタフェースは、上記プロセッサと上記メインメモリとのデータパスと、上記プロセッサと上記キャッシュメモリとのデータパスを独立して有する
請求項１０記載の共有メモリ装置。
【請求項１５】
上記メモリインタフェースは、自メモリシステムの上記プロセッサ、または／および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわる情報を自メモリシステムのプロセッサ、メインメモリ、または／およびキャッシュメモリに転送し、または異なるメモリシステムのメモリインタフェースに転送する
請求項１０記載の共有メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置（プロセッサ）を含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
【背景技術】
【０００２】
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図１６に示すような構成となる。
図１６の構成においては、ロジック回路（情報処理装置、プロセッサ）１−１〜１−４とメモリマクロ２−１〜２−４は並列処理を優先するため、１対１で接続される。
図１６の構成において、ロジック回路１とメモリマクロ２は並列処理を優先するため1対1で接続されるが、ロジック回路１は隣接しているロジックのデータを参照するためには、上位装置を介したパスを使う必要がある。
【０００３】
そこで、ロジック回路１から直接、隣接メモリまでの接続を、一般的に、図１７に示すように、クロスバー（Ｘｂａｒ）３で行う構成が採用される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図１６の構成においては、上述したように、ロジック回路１とメモリマクロ２は並列処理を優先するため1対1で接続されるが、ロジック回路１は隣接しているロジック回路１のデータを参照するためには、上位装置を介したパスを使う必要があるため、実際のアクセスを実現するのは困難である。
【０００５】
また、図１７の構成においては、上位装置を介することなく、ロジック回路１は隣接しているロジック回路１のデータを参照することが可能であるが、ロジック回路１からメモリ２までの配線が非常に複雑となり、面積増加と長距離配線による性能低下を招くという不利益がある。
また、図１７のクロスバー３を用いた構成では、システムのスケーラビリティーの拡張性を上げることが難しくなる。
【０００６】
本発明の目的は、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることが可能な共有メモリ装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点の共有メモリ装置は、メモリマクロと、情報処理装置とを含むメモリシステムを複数有し、上記各メモリシステムのメモリマクロは、メインメモリと、データ転送可能なメモリインタフェースを含む記憶手段とを有し、異なるメモリシステムの上記記憶手段のメモリインタフェース同士が接続され、上記各メモリインタフェースは、上記情報処理装置とメインメモリまたは／および記憶手段間の情報の授受、並びに、異なるメモリシステムの記憶手段との情報の授受を行う。
【０００８】
好適には、上記記憶手段は、上記メインメモリより記憶容量の少ないメモリを含む。
【０００９】
好適には、上記記憶手段は、上記メインメモリより記憶容量が少なく、かつ、メインメモリより高速アクセスが可能なメモリを含む。
【００１０】
好適には、上記記憶手段は、データを一時的に保持可能な保持回路を含む。
【００１１】
好適には、上記複数のメモリマクロにおけるメモリインタフェースのうち、他のメモリマクロと接続関係にない入出力部が外部装置と接続されている。
【００１２】
好適には、上記メモリインタフェースは、上記プロセッサと上記メインメモリとのデータパスと、上記プロセッサと上記記憶手段とのデータパスを独立して有する。
【００１３】
本発明の第２の観点の共有メモリ装置は、メモリマクロと、プロセッサとを含むメモリシステムを複数有し、上記各メモリシステムのメモリマクロは、メインメモリと、データ転送可能なメモリインタフェースを含むキャッシュメモリとを有し、異なるメモリシステムの上記キャッシュメモリのメモリインタフェース同士が接続され、上記各メモリインタフェースは、前記プロセッサとメインメモリまたは／およびキャッシュメモリ間の情報の授受、並びに、異なるメモリシステムのキャッシュメモリとの情報の授受を行い、上記各メモリシステムのキャッシュメモリはタグ情報を記憶するタグ記憶部を有し、上記タグ記憶部に記憶される情報は異なるメモリシステムのキャッシュ情報を含んでいる。
【００１４】
好適には、物理的な配置によりキャッシュメモリデータへのアクセス時間がアドレスによって変化する場合、上記タグ記憶部にアクセス時間情報が保持される。
【００１５】
好適には、上記各メモリシステムのキャッシュメモリのタグ記憶部が異なるメモリシステムのキャッシュメモリのタグ記憶部と互いにタグ情報を転送可能に接続されている。
【００１６】
好適には、上記各メモリシステムのメインメモリは固有のアドレスを持ち、複数のメモリシステム全体で一つのメモリ空間を形成する。
【００１７】
好適には、上記メモリインタフェースは、上記プロセッサと上記メインメモリとのデータパスと、上記プロセッサと上記キャッシュメモリとのデータパスを独立して有する。
【００１８】
好適には、上記メモリインタフェースは、自メモリシステムの上記プロセッサ、または／および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわる情報を自メモリシステムのメインメモリ、記憶手段またはキャッシュメモリ、または異なるメモリシステムのメモリインタフェースに転送する。
【００１９】
本発明によれば、たとえば異なるメモリシステム間においては、記憶手段またはキャッシュメモリに備えたメモリインタフェースを通してコマンド、アドレス、データの転送が行われる。
情報処理装置（プロセッサ）は、コモメモリインタフェースを通して自システムのメインメモリと記憶手段（またはキャッシュメモリ）、あるいは他のメモリシステムメインメモリと記憶手段（キャッシュメモリ）をアクセスする。
【発明の効果】
【００２０】
本発明によれば、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる利点がある。
また、本発明によれば、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となり、その結果、無駄なデータ転送を軽減することができるようになり、システムバスの負荷を軽減することもでき、処理能力の向上を図れる利点がある。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態を、図面に関連付けて説明する。
【００２２】
＜第１実施形態＞
図１は、本発明に係る共有メモリ装置の第１の実施形態を示すシステム構成図である。
【００２３】
本共有メモリ装置１０は、複数（本実施形態においてはｎ＋１個）のメモリシステム１１−０〜１１―ｎを混載し、各メモリシステム１１−０〜１１−ｎ間でアクセスが可能で、並列処理を重視したマルチプロセッサ構造のアーキテクチャを採用している。
【００２４】
各メモリシステム１１−０〜１１−ｎは、基本的に、データを記憶するメモリを含むメモリマクロ(Memory Macro: MM)１２、メモリマクロ１２のアクセスを行って所定のデータ処理を行う情報処理装置としてのプロセッサ(Processor: PRC)１３を有している。
【００２５】
本実施形態におけるメモリマクロ１２は、ＤＲＡＭ等により構成されるメインメモリ（第１メモリ：ＭＥＭ１）１２１と、たとえばメインメモリ１２１により記憶容量の少ない記憶手段としての第２メモリ（ＭＥＭ２）１２２とを含む階層型メモリ構造を有している。
そして、第２メモリ１２２は、データ転送可能なメモリインタフェース(Memory Interface: MIF)１４を含んで構成されており、異なるメモリシステム（本実施形態においては隣接するメモリシステム）のメモリマクロのメモリインタフェース同士が接続されている。
メモリインタフェース１４は、自メモリシステムのプロセッサ１３、または／および異なるメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、自システムの場合にはアクセスにかかわる情報（データ、あるいは、データ並びにコマンドおよびアドレス）を、自メモリシステムのプロセッサ１３、メインメモリ１２１、または／および第２メモリ１２２に転送する。
一方、自システムでない場合には、異なるメモリシステムのメモリインタフェース１４にコマンドおよびアドレスと共にデータを転送する。
【００２６】
具体的には、メモリシステム１１−０は、メモリマクロ１２−０、およびプロセッサ１３−０を有し、メモリマクロ１２−０は、メインメモリ１２１−０と、メモリインタフェース１４−０を含む第２メモリ１２２−０を有している。
メモリシステム１１−１は、メモリマクロ１２−１、およびプロセッサ１３−１を有し、メモリマクロ１２−１は、メインメモリ１２１−１と、メモリインタフェース１４−１を含む第２メモリ１２２−１を有している。
同様にして、メモリシステム１１−ｎは、メモリマクロ１２−ｎ、およびプロセッサ１３−ｎを有し、メモリマクロ１２−ｎは、メインメモリ１２１−ｎと、メモリインタフェース１４−ｎを含む第２メモリ１２２−ｎを有している。
【００２７】
そして、メモリシステム１１−０のメモリマクロ１２−０のメモリインタフェース１４−０が、隣接するメモリシステム１１−１のメモリマクロ１２−１のメモリインタフェース１４−１に接続されている。
メモリシステム１１−１のメモリマクロ１２−１のメモリインタフェース１４−１が、隣接する図示しないメモリシステム（１１−２）のメモリマクロ（１２−２）のメモリインタフェース（１４−２）に接続されている。
同様にして、メモリシステム１１−ｎのメモリインタフェース１４−ｎが、隣接する図示しないメモリシステム（１１−n-1）のメモリマクロ（１２−n-1）のメモリインタフェース（１４−n-1）に接続されている。
【００２８】
以上のように、本第１の実施形態の共有メモリ装置１０においては、各メモリシステムの階層型構造を有するメモリマクロ１２の第２メモリ１２２にデータ転送可能なメモリインタフェース１４を設けて、外部回路の介在なしにメモリマクロ間でデータ転送可能に構成されている。
【００２９】
また、本第１の実施形態においては、図２に示すように、メモリインタフェース１４（−０〜−ｎ）は、プロセッサ１３（−０〜−ｎ）とメインメモリ１２１（−０〜−ｎ）とのデータパス１５−１と、プロセッサ１３（−０〜−ｎ）と第２メモリ１２２（−０〜−ｎ）とのデータパス１５−２を独立して有している。
【００３０】
ＳＯＣにおいて大容量メモリを混載する多くの場合、メモリの用途は単一ではない。
たとえばキャッシュメモリのようにランダムアクセス性を重視する場合と、画像データのようにスケジューリングし易いデータなどを混在して保持する。理想的にはそれぞれに最適なメモリを使用することが望ましいが、チップ面積の増大などの理由により大容量メモリに集約してしまうケースが考えられる。
このように違う用途のデータを集約した場合、図２に示すように第２メモリ(たとえば高速メモリ）１２２（−０〜−ｎ）と大容量のメインメモリ１２１（−０〜−ｎ）のそれぞれに独立したデータパス１５−１，１５−２を持つことで、データ転送効率を上げることができる。
また、図２に示すケースでは、ローカルメモリに対するパス（Local path）１５−１と他プロセッサに接続されるメモリからのパス(Global Path)１５−２といった区別をすることも可能である。
【００３１】
以下、メモリマクロ１２（−０〜−ｎ）のメモリインタフェース１４（−０〜−ｎ）の具体的な構成および機能について説明する。
【００３２】
図３は、本発明に係るメモリインタフェースの一例を示す構成図である。
【００３３】
図３のメモリインタフェース１４は、メインメモリ用コマンド／アドレスセレクタ(Command Address Selector: C/A SEL1）１４１、第２メモリ用コマンド・アドレスセレクタ(C/A SEL2)１４２、ライトデータパスセレクタ(Write Data Path Selector: WDPS)１４３、およびリードデータパスセレクタ(Read Data Path Selector: RDPS)１４４を有する。
【００３４】
コマンド／アドレスセレクタ１４１は、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたコマンドおよびアドレスを、いずれの方向に出力するかを決定し、自メモリシステム１１のメインメモリ１２１、右または左側に配置されたメモリシステムのメモリインタフェース１４に転送する。
また、コマンド／アドレスセレクタ１４１は、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１にあるか否かを判別し、その結果をパスコントロール信号ＰＣＳ１として、ライトデータパスセレクタ１４３、およびリードデータパスセレクタ１４４に出力する。
コマンド／アドレスセレクタ１４１は、パスコントロール信号ＰＣＳ１の生成にあたって、入力したコマンドおよびアドレスに対応したパスがあると判別すると、自メモリシステム１１のプロセッサ１３、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたデータを、自メモリシステムのメインメモリ１２１、あるいはプロセッサ１３、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１４に転送すべきパスを選択し、パスするタイミング、並びにメインメモリ１２１にアクセスするタイミングを制御する信号としてパスコントロール信号ＰＣＳ１を生成する。
【００３５】
コマンド／アドレスセレクタ１４２は、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたコマンドおよびアドレスを、いずれの方向に出力するかを決定し、自メモリシステム１１の第２メモリ１２２、右または左側に配置されたメモリシステムのメモリインタフェース１４に転送する。
また、コマンド／アドレスセレクタ１４２は、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１５から転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１にあるか否かを判別し、その結果をパスコントロール信号ＰＣＳ２として、ライトデータパスセレクタ１４３、およびリードデータパスセレクタ１４４に出力する。
コマンド／アドレスセレクタ１４２は、パスコントロール信号ＰＣＳ２の生成にあたって、入力したコマンドおよびアドレスに対応したパスがあると判別すると、自メモリシステム１１のプロセッサ１３、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたデータを、自メモリシステムの第２メモリ１２２、あるいはプロセッサ１３、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１４に転送すべきパスを選択し、パスするタイミング、並びに第２メモリ１２２にアクセスするタイミングを制御する信号としてパスコントロール信号ＰＣＳ２を生成する。
【００３６】
ライトデータパスセレクタ１４３は、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１，ＰＣＳ２を受けて、自メモリシステム１１のプロセッサ１３、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたライトデータＷＤを、自メモリシステムのメモリマクロ１２のメインメモリ１２１あるいは第２メモリ１２２、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１４に選択的に転送する。
【００３７】
リードデータパスセレクタ１４４は、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１，ＰＣＳ２を受けて、自メモリシステム１１のメモリマクロ１２のメインメモリ１２１あるいは第２メモリ１２２、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１４から転送されたリードデータＲＤを、自メモリシステムのプロセッサ１３、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１４に選択的に転送する。
【００３８】
図４は、本実施形態におけるライトデータパスセレクタの具体的な構成例を示す回路図である。
【００３９】
図４のライトデータパスセレクタ１４３は、セレクタ（ＳＥＬ）１４３１、ラッチ（ＬＴＣ）１４３２、およびライトバッファ(Write Buffer: WRB)１４３３を有している。
図４のライトデータパスセレクタ１４３は１ビット分の回路であり、たとえば３２ビットに対応する場合には同様の回路が３２個設けられる。
【００４０】
ライトデータパスセレクタ１４３において、セレクタ１４３１が選択すべきデータおよびパスは、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１，ＰＣＳ２により制御される。
【００４１】
ライトデータパスセレクタ１４３において、セレクタ１４３１は、自メモリシステム１１のプロセッサ１３により発行されたライトデータＷＤ、左側のメモリシステムのメモリマクロのメモリインタフェース１４から転送されたデータＬＤＴＩ、および右側のメモリシステムのメモリマクロのメモリインタフェース１４から転送されたデータＲＤＴＩが供給され、パスコントロール信号ＰＣＳ１またはＰＣＳ２の指示に従ったデータを選択してラッチ１４３２、あるいは、左側のメモリシステムのメモリマクロのメモリインタフェースへのデータＬＤＴＯ、または右側のメモリシステムのメモリマクロのメモリインタフェース１４へのデータＲＤＴＯとして選択し、左側のメモリインタフェース、または右側のメモリインタフェースに転送する。
ラッチ１４３２にラッチされたライトデータは、ライトバッファ１４３３に供給され、たとえば図示しないセンスアンプに転送されて、アドレス指定されたメモリセルにデータが書き込まれる。
【００４２】
図５は、本実施形態におけるリードデータパスセレクタの具体的な構成例を示す回路図である。
【００４３】
図５のリードデータパスセレクタ１４４は、第１ラッチ（ＬＴＣ１）１４４１、第２ラッチ（ＬＴＣ２）１４４２、第１セレクタ（ＳＥＬ１）１４４３、第２セクレタ（ＳＥＬ２）１４４４、第３セレクタ（ＳＥＬ３）１４４５、およびリードアンプ(Read Amplifier: RA)１４４６を有する。
図５のリードデータパスセレクタ１４４は１ビット分の回路であり、たとえば３２ビットに対応する場合には同様の回路が３２個設けられる。
【００４４】
リードデータパスセレクタ１４４において、第１〜第３セレクタ１４４３〜１４４５が選択すべきデータおよびパスは、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１，ＰＣＳ２により制御される。
【００４５】
第１セレクタ１４４３は、左側のメモリシステムのメモリマクロのメモリインタフェース１４から転送されたデータＬＤＴＩ、および右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩが供給され、パスコントロール信号ＰＣＳ１またはＰＣＳ２の指示に従ったデータを選択して第１ラッチ１４４１に出力する。
第１ラッチ１４４１にラッチされたデータＬＴＤＩまたはＲＴＤＩは、第２セレクタ１４４４、および第３セレクタ１４４５に供給される。
【００４６】
第２ラッチ１４４２は、自メモリシステム１１のメモリマクロ１２のメインメモリ１２１または第２メモリ１２２から読み出されリードアンプ１４４６を介したリードデータをラッチする。第２ラッチ１４４２にラッチされたデータは第２セレクタ１４４４、および第３セレクタ１４４５に供給される。
【００４７】
第２セレクタ１４４４は、自メモリシステム１１のメインメモリ１２１または第２メモリ１２２から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェース１４から転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェース１４から転送されたデータＲＤＴＩのいずれかを選択し、左側のメモリシステムのメモリマクロのメモリインタフェースへのデータＬＴＤＯ、または右側のメモリシステムのメモリマクロのメモリインタフェース１４へのデータＲＴＤＯとして選択し、左側のメモリインタフェース、または右側のメモリインタフェースに転送する。
【００４８】
第３セレクタ１４４５は、自メモリシステム１１のメインメモリ１２１または第２メモリ１２２から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩのいずれかを選択し、自メモリシステム１１のプロセッサ１３に転送する。
【００４９】
次に、図１の構成を有する共有メモリ装置１０の動作を説明する。
【００５０】
まず、たとえば、メモリシステム１１−０のプロセッサ１３−０が自システムのメモリマクロ１２−０の所望のアドレスのメモリセルにアクセスする場合について説明する。
【００５１】
この場合、プロセッサ１３−０において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリインタフェース１４−０に出力される。
メモリインタフェース１４−０においては、コマンド／アドレスセレクタ１４１または１４２でプロセッサ１３−０により発行された自メモリシステム１１−０のメモリマクロ１２−０に対するコマンドおよびアドレス（ＣＭＤ／ＡＤＲ）に基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ１２に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、コマンド／アドレスセレクタ１４１または１４２から生成したタイミングをもってコマンドおよびアドレスがメインメモリ１２１−０または第２メモリ１２２−０に転送される。
また、コマンド／アドレスセレクタ１４１または１４２からパスコントロール信号ＰＣＳ１またはＰＣＳ２が生成されて、ライトデータパスセレクタ１４３および／またはリードデータパスセレクタ１４４に出力される。
【００５２】
プロセッサ１３−０で発行されたコマンドがライトコマンドの場合、ライトデータパスセレクタ１４３において、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１またはＰＣＳ２を受けて、自メモリシステム１１のプロセッサ１３から転送されたライトデータＷＤが、自メモリシステムのメモリマクロ１２−０のメインメモリ１２１−０あるいは第２メモリ１２２−０に転送される。
そして、自メモリシステム１１−０のプロセッサ１３−０により発行されたライトデータがメモリマクロ１２−０のメインメモリ１２１−０または第２メモリ１２２−０に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
【００５３】
プロセッサ１３−０で発行されたコマンドがリードコマンドの場合、リードデータパスセレクタ１４４において、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１またはＰＣＳ２を受けて、自メモリシステム１１−０のメモリマクロ１２−０のメインメモリ１２１−０あるいは第２メモリ１２２−０から読み出されて転送されたリードデータＲＤが、自メモリシステムのプロセッサ１３−０に転送される。
【００５４】
次に、たとえば、メモリシステム１１−０のプロセッサ１３−０が右側に隣接するメモリシステム１１−１のメモリマクロ１２−１の所望のアドレスのメモリセルにアクセスする場合について説明する。
【００５５】
この場合、プロセッサ１３−０において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリインタフェース１４−０に出力される。
メモリインタフェース１４−０においては、コマンド／アドレスセレクタ１４１または１４２において、自メモリシステム１１−０のメモリマクロ１２−０に対するコマンドおよびアドレスでないことから、プロセッサ１３−０により発行されたコマンドおよびアドレスは、隣接するメモリシステム１１−１の第２メモリ１２２−１に付随するメモリインタフェース１４−１に転送される。
また、コマンド／アドレスセレクタ１４１または１４２からパスコントロール信号ＰＣＳ１またはＰＣＳ２が生成されて、ライトデータパスセレクタ１４３および／またはリードデータパスセレクタ１４４に出力される。
【００５６】
プロセッサ１３−０で発行されたコマンドがライトコマンドの場合、ライトデータパスセレクタ１４３において、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１またはＰＣＳ２を受けて、自メモリシステム１１のプロセッサ１３から転送されたライトデータＷＤが、隣接するメモリシステム１１−１の第２メモリ１２２−１に付随するメモリインタフェース１４−１に転送される。
【００５７】
隣接のメモリシステム１１−１のメモリインタフェース１４−１においては、プロセッサ１３−０で発行された自メモリシステム１１−１のメモリマクロ１２−１に対するコマンドおよびアドレス（ＣＭＤ／ＡＤＲ）に基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ１２に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、コマンド／アドレスセレクタ１４１または１４２から生成したタイミングをもってコマンドおよびアドレスがメインメモリ１２１−１または第２メモリ１２２−１に転送される。
また、コマンド／アドレスセレクタ１４１または１４２からパスコントロール信号ＰＣＳ１またはＰＣＳ２が生成されて、ライトデータパスセレクタ１４３および／またはリードデータパスセレクタ１４４に出力される。
【００５８】
プロセッサ１３−０で発行されたコマンドがライトコマンドの場合、メモリインタフェース１４−１のライトデータパスセレクタ１４３において、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１またはＰＣＳ２を受けて、メモリシステム１１−０のメモリインタフェース１４−０から転送されたライトデータＷＤが、自メモリシステムのメモリマクロ１２のメインメモリ１２１−１あるいは第２メモリ１２２−１に転送される。
そして、メモリシステム１１−０のプロセッサ１３−０により発行されたライトデータがメモリマクロ１２−１のメインメモリ１２１−１または第２メモリ１２２−１に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
【００５９】
プロセッサ１３−０で発行されたコマンドがリードコマンドの場合、メモリインタフェース１４−１のリードデータパスセレクタ１４４において、コマンド／アドレスセレクタ１４１，１４２のパスコントロール信号ＰＣＳ１またはＰＣＳ２を受けて、自メモリシステム１１−１のメモリマクロ１２−１のメインメモリ１２１−１あるいは第２メモリ１２２−１から読み出されて転送されたリードデータＲＤが、隣接のメモリシステム１１−０のメモリインタフェース１４−０のリードデータパスセレクタ１４４に転送される。
メモリインタフェース１４−０のリードデータパスセレクタ１４４においては、隣接(異なる)メモリインタフェース１４−１から転送された所望のデータがプロセッサ１３−０に転送される。
【００６０】
以上説明したように、本第１の実施形態によれば、各メモリシステム１１−１〜１１−ｎは、メモリマクロ１２とプロセッサ１３とを含み、各メモリマクロ１２は、ＤＲＡＭ等により構成されるメインメモリ（第１メモリ：ＭＥＭ１）１２１と、たとえばメインメモリ１２１により記憶容量の少ない記憶手段としての第２メモリ（ＭＥＭ２）１２２とを含む階層型メモリ構造を有し、第２メモリ１２１は、データ転送可能なメモリインタフェース１４を含んで構成され、異なるメモリシステム（本実施形態においては隣接するメモリシステム）のメモリマクロのメモリインタフェース同士が接続されていることから、メモリ間転送を外部回路なしに実現でき、また、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる。
【００６１】
また、本第１の実施形態のように、マルチプロセッサ構造のシステムにおいて、拡張性を確保するために、プロセッサに最適化されたメモリシステムを対になるように組み込むことにより、アプリケーションの必要とする処理能力に最適な数のプロセッサを搭載することができる。あるいは、半導体プロセスの進化により搭載可能なプロセッサ数が増えると、アーキテクチャを変更することなく、処理能力の向上を見込むことが可能となる。この際、メモリシステムへのアクセスする時間を軽減するためにメモリシステム階層構造を採用することが望ましい。
【００６２】
また、本第１の実施形態によれば、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストすることも可能であり、この場合、以下の効果を得ることも可能である。
すなわち、マルチプロセッサ構造のシステムにおいて、一般的なメモリシステムにはあるデータが複数のプロセッサに参照される場合、システムバスを使用して何回も同じデータをアクセスしなければならない。
これに対して、本第１の実施形態においては、メモリシステムにはメモリマクロ間のデータ線を通してライトブロードキャストでデータを複数のメモリマクロにコピーすることが可能になる。これによって、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となる。その結果、無駄なデータ転送を軽減することが可能となってシステムバスの負荷を軽減することもでき、処理性能が向上となる。
【００６３】
＜第２実施形態＞
図６は、本発明に係る共有メモリ装置の第２の実施形態を示すシステム構成図である。
【００６４】
本第２の実施形態が上述した第１の実施形態と異なる点は、メモリマクロ１２におけるメインメモリ１２１Ａ（−０〜−Ｎ）を第１の実施形態と同様に高密度（高記憶容量）のメモリ(High-Density Memory: HDM)により構成し、第２メモリ１２２Ａ（−０〜−ｎ）をメインメモリより高速にアクセス可能な高速メモリ(High-Speed Memory: HSM)により構成したことにある。
【００６５】
その他の構成は第１の実施形態と同様であり、本第２の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得られることはもとより、プロセッサは高速メモリに対して高速にアクセスすることが可能となる。
また、後で詳述するように、高密度メモリをＤＲＡＭにより構成し、高速メモリをＤＲＡＭよりランダムアクセス性に優れたＳＲＡＭを適用してキャッシュメモリシステムを構成することができる。
【００６６】
＜第３実施形態＞
図７は、本発明に係る共有メモリ装置の第３の実施形態を示すシステム構成図である。
【００６７】
本第３の実施形態が上述した第１の実施形態と異なる点は、メモリマクロ１２におけるメインメモリ１２１（−０〜−Ｎ）と階層メモリ構造をとる記憶手段を、レジスタファイルのような、一時的にデータを保持可能なワークバッファ(Work Buffer: WBF)１２２Ｂ（−０〜−ｎ）により構成したことにある。
ワークバッファ１２２Ｂは、レジスタやフリップフロップ等により構成することが可能である。
【００６８】
その他の構成は第１の実施形態と同様であり、本第２の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができる。
【００６９】
＜第４実施形態＞
図８は、本発明に係る共有メモリ装置の第４の実施形態を示すシステム構成図である。
【００７０】
本第４の実施形態が上述した第１の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第１の実施形態においてメモリシステム１１−０のメモリマクロ１２−０に配置されたメモリインタフェース１４−０の左側の入出力部(ポート)、並びに、メモリシステム１１−ｎのメモリマクロ１２−ｎに配置されたメモリインタフェース１４−ｎの右側の入出力部(ポート)を、外部のメモリ(External Memory: EXMEM)２０，２１とのインタフェースとして用いたことにある。
【００７１】
その他の構成は第１の実施形態と同様であり、本第４の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスがネックになる可能性が高い。
これに対して、本第４の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
【００７２】
＜第５実施形態＞
図９は、本発明に係る共有メモリ装置の第５の実施形態を示すシステム構成図である。
【００７３】
本第５の実施形態が上述した第２の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第２の実施形態においてメモリシステム１１Ａ−０のメモリマクロ１２Ａ−０に配置されたメモリインタフェース１４−０の左側の入出力部(ポート)、並びに、メモリシステム１１Ａ−ｎのメモリマクロ１２Ａ−ｎに配置されたメモリインタフェース１４−ｎの右側の入出力部(ポート)を、外部のメモリ(External Memory: EXMEM)２０Ａ，２１Ａとのインタフェースとして用いたことにある。
【００７４】
その他の構成は第２の実施形態と同様であり、本第５の実施形態によれば、上述した第１および２の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスがネックになる可能性が高い。
これに対して、本第５の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
【００７５】
＜第６実施形態＞
図１０は、本発明に係る共有メモリ装置の第６の実施形態を示すシステム構成図である。
図１１は、図１０の共有メモリ装置をより具体的に示すシステム構成図であり、図１２は図１１のメモリインタフェースをより具体的に示すシステム構成図である。
なお、図１１および図１２においては、簡単化のため、メモリシステムが４つの場合を示している。
【００７６】
本第６の実施形態は基本的には、上述した第１および第２の実施形態と同様に、メモリマクロ１２Ｅ（−０〜−ｎ）をメインメモリ１２１Ｅ（−０〜−ｎ）と第２メモリ１２２Ｅ（−０〜−ｎ）との階層構造を有し、第２メモリ１２２Ｅ（−０〜−ｎ）がメモリインタフェース１４（−０〜−ｎ）を含んで構成されている。
本第６の実施形態が上述した第１および第２の実施形態と異なる点は、メインメモリ１２１Ｅ（−０〜−ｎ）をＤＲＡＭ（０〜ｎ）により構成し、第２メモリ１２２Ｅ（−０〜−ｎ）をＤＲＡＭよりランダムアクセス性に優れたＳＲＡＭによりキャッシュ（Ｃａｃｈｅ: CCH０〜ｎ）として構成したことにある。以下、第２メモリをキャッシュといい、符号は第２メモリに付した１２２Ｅ（−０〜−ｎ）を用いることとする。
そして、各キャッシュ１２２Ｅ（−０〜−ｎ）がメモリインタフェース１４（−０〜−ｎ）を含んで構成されている。
【００７７】
また、本第６の実施形態における各キャッシュ１２２Ｅ（−０〜−ｎ）のタグメモリ（記憶部）１６（−０〜−ｎ）に記憶されるタグ情報には、全てのメモリシステム１１Ｅ−０〜１１Ｅ−ｎのキャッシュ情報を含んでいる。
また、本第６の実施形態においては、物理的な配置によりキャッシュメモリデータへのアクセス時間がアドレスによって変化する場合、上記タグ記憶部にアクセス時間情報が保持されるように構成される。
さらに、本第６の実施形態においては、各メモリシステム１１Ｅ−０〜１１Ｅ−ｎのキャッシュメモリのタグ記憶部が異なるメモリシステムのキャッシュメモリのタグ記憶部と互いにタグ情報を転送可能に接続されている。
また、各メモリシステムのメインメモリ１２１Ｅ（−０〜−ｎ）は固有のアドレスを持ち、複数のメモリシステム全体で一つのメモリ空間を形成する。
【００７８】
上述したように、本第６の実施形態は基本的には、上述した第１および第２の実施形態と同様に、メモリマクロ１２Ｅ（−０〜−ｎ）をメインメモリ１２１Ｅ（−０〜−ｎ）と第２メモリ１２２Ｅ（−０〜−ｎ）との階層構造を有し、第２メモリ１２２Ｅ（−０〜−ｎ）がメモリインタフェース１４（−０〜−ｎ）を含んで構成され、メモリインタフェースの構成および機能は、第１の実施形態で説明したものと同様である。
ただし、図３に関連付けて説明した構成のコマンド／アドレスセレクタ１４２が、キャッシュのコマンド／アドレスをセレクトする。
したがって、以下では、キャッシュシステムに特徴付けられる点を中心に説明する。
【００７９】
本第６の実施形態のようなマルチプロセッサ構造のシステムにおいて、拡張性を確保することができる。
そして、本実施形態のように、プロセッサ１３−０〜１３−ｎに最適化されたメモリシステム１１Ｅ−０〜１１Ｅ−ｎを対になるように組み込むことにより、アプリケーションの必要とする処理能力に最適な数のプロセッサを搭載することができる。もしくは半導体プロセスの進化により搭載可能なプロセッサ数が増えると、アーキテクチャを変更することなく、プロセッシング能力の向上を見込むことが可能となる。この際、メモリに求められる性能は２つ、容量と高速ランダムアクセス性である。そこで容量を確保するために、DRAMを採用した場合、DRAMはその構造上、SRAMに対しランダムアクセス性に劣る。そのデメリットを軽減するため、ランダムアクセス性に優れたSRAMをキャッシュメモリとして介在させる構造を採用している。
そして、この構成を実現する際、キャッシュメモリ１２２Ｅ−０〜１２２Ｅ−ｎを、隣接プロセッサ１３−０〜１３−ｎと共有し、より大きな容量のキャッシュメモリとすることにより、他プロセッサと共通のデータを重複してキャッシュメモリに保持する必要がなくなるため、効率が良くなり、性能を向上させることが可能となる。
本実施形態においては、キャッシュをメモリインタフェース間で接続することにより、プロセッサ１３−０〜１３−ｎは接続されるすべてのキャッシュデータを参照することが可能となる。
【００８０】
また通常、キャッシュメモリのデータ属性を保持しているタグ（TAG）メモリ１６は、ローカルキャッシュメモリの情報しか保持しない。このためプロセッサが高速にアクセスできるキャッシュメモリはそのプロセッサ固有のキャッシュメモリのみであり、容量は限られる。またミスヒットした場合、データはシステムバスを経由して下位メモリへアクセスするため、システムバスへの負荷も大きくなる。
これに対して、本第６の実施形態においては、すべてのキャッシュメモリ１２２Ｅ（−０〜−ｎ）をメモリ上で接続し、すべてのキャッシュメモリ情報をローカルTAGに保持することにより、プロセッサは接続されるすべてのキャッシュメモリ情報へ高速にアクセスすることが可能となる。
【００８１】
キャッシュメモリを本発明のような構造で適用する場合、キャッシュメモリの容量を増大させることが可能になる反面、プロセッサとキャッシュメモリの物理的な配置が遠くなり、データ転送を規定周波数内に終了できなくなるケースが想定される。
そこで、たとえば高周波数動作のアプリケーションに対しては、メモリ間のデータ転送をパイプライン構造とすることにより、高周波数を確保する。しかしこのような構造はキャッシュ内のデータがアドレスに応じて、アクセス時間が変化することを意味する。
そこで、本第６の実施形態においては、キャッシュのタグメモリ１６内にデータのアクセス時間情報を追加することにより、プロセッサはアクセスに対しリプライが返ってくる時間を把握することが可能となる。
この構成は、図１１および図１２に具体的に示されている。
タグメモリ自体の構造は通常のものと同等であるが、たとえばキャッシュのどのアドレスにヒットしたかをプロセッサに知らせるために”ヒットフラグ（Hit Flag）”を用意する。そのフラグ（Flag）によってプロセッサ１３−０〜１３−ｎはデータにアクセスするのに必要な時間を知ることができる。
【００８２】
本第６の実施形態のように、各キャッシュ１２２Ｅ（−０〜−ｎ）に配置されているタグメモリ１６−０〜１６−ｎが、同列に接続されるすべてのキャッシュの情報を保持する場合、キャッシュのデータが書き換えられるたびに、すべてのタグメモリ１６−０〜１６−ｎの情報を更新する必要がある。
このため、本実施形態においては、図１３および図１４に示すように、TAGを独立した信号線(Coherency Path)１７で接続することによりキャッシュのコヒーレンシーを確保している。
また、図１５にタグ情報の一例を示している。
この例では、有効ビットとメインメモリアドレスを組として各キャッシュメモリごとに設定できるように構成されている。
【００８３】
図１１および図１２に示すように、本第６の実施形態において、メモリシステムマクロとして提供するのは、図中DRAM、SRAM、メモリインタフェース（Memory I/F）のすべてを含んだシステムである。
【００８４】
以下に、レイテンシィコントロール（Latency Control ）、メモリインタフェース１４、キャッシュシステムの概要について説明する。
【００８５】
＜レイテンシィコントロール（Latency Control ）＞
プロセッサ１３がメインメモリのデータを読み出す場合、プロセッサ１３はメインメモリ１２１Ｅ（この場合DRAM）のアドレスを発行する。
発行されたアドレスはまずタグメモリ１６を参照することによりキャッシュ１２２Ｅ内に該当データが存在するかしないかの判断を行う。
ヒットした場合、タグメモリ１６よりキャッシュデータへのアクセス時間が示されることにより、プロセッサはデータの入手できる時間を正確に把握することが可能となるため、FIFOの段数を予め設定するなどの準備をするための回路設計が容易になる。
また、ミスヒットした場合も、発行した主記憶のアドレスによりメモリのアクセス時間が予測できるため、（主記憶の物理的な場所によりアクセス時間が変化する）プロセッサをストールさせずに別プロセスを実行するなどの処理が可能となる。
【００８６】
＜メモリインタフェース＞
メモリインタフェース１４は、第１の実施形態ですでに説明したように、４つの回路ブロック１４１〜１４４から構成されている。アドレスは２系統あり、メインメモリ１２１Ｅのアドレスを扱うパスと、キャッシュ１２２Ｅのアドレスを扱うパスに分かれている。これはタグメモリ１６で参照した結果を用いてキャッシュ１２２Ｅにアクセスすることにより、必要なデータ以外は読み出しを防ぐことができる。
図１１および図１２に示すように、プロセッサ直下にあるローカルメモリシステム以外のメモリアクセスには、すべてキャッシュ１２２Ｅ上で接続されたBUSを経由してデータ転送が行われる。複数のメモリを跨いでアクセスする場合は中継されるメモリインタフェース１４でのローカルアクセスを行っているデータと干渉をさけるため、アドレスが、自身のメモリを指していない場合は、データをスルーさせる機能を持つ。
また、複数のアクセスが同じメモリに対して行われた場合は、メモリインタフェース１４内に備えているアービタ（Arbiter）を用いて、調停される。
【００８７】
調停（Arbitration）をスムースに行うために、本システムにおいて、以下の制約を設けている。
（１）ローカルメモリシステムへのアクセスを優先的に行う。
（２）上位アドレスのプロセッサのコマンドを優先させる。
（３）メインメモリへの書き込みはアドレスを先行して発行することにより経路を確定させた上で書き込みデータを発行する。
（４）メモリからの読み出しは、データ転送が完了するまで、システムはデータパスを保持する。
【００８８】
＜キャッシュシステム（Cache System ）＞
キャッシュシステムは、図１１および図１２に示すように、メモリインタフェース１４を介して接続される。
キャッシュ間のコヒーレンシーはタグメモリ１６の情報を更新することによって確保する。図１４および図１５に示すように、プロセッサ１３によりキャッシュeデータが更新された場合、データと同時にローカルのタグメモリのタグ情報が更新される。更新されたタグメモリ１６の情報は、図１４に示すように、前述した”Coherency Path”１７を通じて、順次、隣接するタグメモリ１６のデータを更新していく。
この機構を実現するため、タグメモリ１６は２ ポート（Port） RAMを採用し、通常データアクセスと同時に情報の更新ができるように構成される。
【００８９】
＜メインメモリへのアクセス＞
メインメモリ１２１Ｅへのアクセスに関して、データの流れを図１１および図１２に関連付けて以下に説明する。
【００９０】
＜キャッシュにヒットした場合＞
プロセッサより読み出しコマンドとアドレスを発行する。アドレスはタグメモリ１６を参照し、データがキャッシュ１２２Ｅに存在していることが、ヒットフラグ（Hit Flag）をモニタすることにより判る。また同時にキャッシュ１２２Ｅのどの部分に該当データが存在することが判るため、レイテンシ情報としてプロセッサは認識する。ここでは、コマンドの発行をプロセッサ１３−０から、ターゲットデータがキャッシュ１２２Ｅ−３にある場合を想定する。
データがキャッシュ１２２Ｅ−３に存在するため、キャッシュのアドレスがキャッシュ用コマンド／アドレスセレクタ１４２を通じてメモリシステム１１Ｅ−３のキャッシュ１２２Ｅ−３まで伝播する。また、リードコマンドも同じコマンド／アドレスセレクタ１４２を介してキャッシュ１２２Ｅ−３まで伝播する。
その際、メモリシステム１１Ｅ−１のキャッシュ１２２Ｅ−１とメモリシステム１１Ｅ−２のキャッシュ１２２Ｅ−２のローカルメモリ（メインメモリ）１２１Ｅ−１，１２２Ｅ−２へのアクセスは制限を受けない。このアドレスとコマンドが伝播することにより、リードパス（Read Path）は、このコマンドのために占有される。
コマンドとアドレスがキャッシュ１２２Ｅ−３まで到達することにより、キャッシュ１２２Ｅ−３より該当データが読み出されリードパス（Read Path）を介してプロセッサ１３−３までデータが伝播する。この際もコマンドおよびアドレスと同様にキャッシュ１２２Ｅ−１とキャッシュ１２２Ｅ−２のローカルメモリ（メインメモリ）へのアクセスは制限を受けない。そしてすべてのデータ転送が完了した時点で、リードパスは開放される。
【００９１】
＜キャッシュをミスした場合＞
プロセッサより読み出しコマンドとアドレスを発行する。アドレスはタグメモリ１６を参照し、データがキャッシュに存在していないことが判る。その時点で、発行したアドレスが、直接、メインメモリをアクセスする際に必要となるレイテンシが判る。ここではコマンドの発行をプロセッサ１３−０から、ターゲットデータがメモリシステム１１Ｅ−３にある場合を想定する。レイテンシが判ることにより、プロセッサは読み出しデータが得られるまでの時間が判るため、その待ち時間を利用して、別プロセスを実行することが可能となる（e.g. Super Scalar Processor）。
発行されたコマンドとアドレスはメイン用コマンド／アドレスセレクタ１４１を通じてメインメモリ１２１Ｅ−３（DRAM 3）まで伝播する。その際、メモリシステム１１Ｅ−１のキャッシュ１２２Ｅ−１とメモリシステム１１Ｅ−２のキャッシュ１２２Ｅ−２のローカルメモリ（メインメモリ）へのアクセスは制限を受けない。このアドレスとコマンドが伝播することにより、リードパス（Read Path）は、このコマンドのために占有される。
コマンドとアドレスがキャッシュ１２２Ｅ−３まで到達することにより、キャッシュ１２２Ｅ−３より該当データが読み出されリードパス（Read Path）を介してプロセッサ１３−３までデータが伝播する。この際もコマンドおよびアドレスと同様にキャッシュ１２２Ｅ−１とキャッシュ１２２Ｅ−２のローカルメモリ（メインメモリ）へのアクセスは制限を受けない。そしてすべてのデータ転送が完了した時点で、リードパスは開放される。
【００９２】
以上の構成によれば、マルチプロセッサシステムにおいてScalabilityを容易にできる。
各プロセッサは独立してメインメモリ（ローカルメモリ）に対してアクセスができるため、全体としてのデータ転送レートが上がり、処理能力が向上する。
【図面の簡単な説明】
【００９３】
【図１】本発明に係る共有メモリ装置の第１の実施形態を示すシステム構成図である。
【図２】データパスを各メモリごとに有している構成を説明するための図である。
【図３】本発明に係るメモリインタフェースの一例を示す構成図である。
【図４】本実施形態におけるライトデータパスセレクタの具体的な構成例を示す回路図である。
【図５】本実施形態におけるリードトデータパスセレクタの具体的な構成例を示す回路図である。
【図６】本発明に係る共有メモリ装置の第２の実施形態を示すシステム構成図である。
【図７】本発明に係る共有メモリ装置の第３の実施形態を示すシステム構成図である。
【図８】本発明に係る共有メモリ装置の第４の実施形態を示すシステム構成図である。
【図９】本発明に係る共有メモリ装置の第５の実施形態を示すシステム構成図である。
【図１０】本発明に係る共有メモリ装置の第６の実施形態を示すシステム構成図である。
【図１１】図１０の共有メモリ装置をより具体的に示すシステム構成図である。
【図１２】図１１のメモリインタフェースをより具体的に示すシステム構成図である。
【図１３】タグメモリを独立した信号線で接続することによりコヒーレンシーを確保する構成を説明するための図である。
【図１４】タグメモリを独立した信号線で接続することによりコヒーレンシーを確保する構成を説明するための図である。
【図１５】本実施形態におけるタグ情報の一例を示す図である。
【図１６】マルチプロセッサの一般的なアーキテクチャを示す図である。
【図１７】クロスバーを用いたアーキテクチャを示す図である。
【符号の説明】
【００９４】
１０，１０Ａ〜１０Ｅ…共有メモリ装置、１１−０〜１１−ｎ，１１Ａ−０〜１１Ａ−ｎ，１１Ｂ−０〜１１Ｂ−ｎ、１１Ｅ−０〜１１Ｅ−ｎ…メモリシステム、１２−０〜１２−ｎ，１２Ａ−０１〜１２Ａ−ｎ，１２Ｂ−０〜１２Ｂ−ｎ，１２Ｅ−０〜１２Ｅ−ｎ…メモリマクロ、１２１−０〜１２１−ｎ，１２１Ａ−０〜１２１Ａ−ｎ，１２１Ｂ−０〜１２１Ｂ−ｎ、１２１Ｅ−０〜１２１Ｅ−ｎ…メインメモリ、１２２−０〜１２２−ｎ，１２２Ａ−０〜１２２Ａ−ｎ，１２２Ｅ−０〜１２２Ｅ−ｎ…第２メモリ（キャッシュメモリ）、メインメモリ、１２２Ｂ−０〜１２２Ｂ−ｎ…ワークバッファ、１３−０〜１３−ｎ…プロセッサ、１４−０〜１４−ｎ…メモリインタフェース、１５−１，１５−２…データパス、１６−０〜１６−ｎ…タグメモリ、メモリインタフェース、２０，２０Ａ，２０Ｂ…外部メモリ。
【図１】
2006221433.tif 000003
【図２】
2006221433.tif 000004
【図３】
2006221433.tif 000005
【図４】
2006221433.tif 000006
【図５】
2006221433.tif 000007
【図６】
2006221433.tif 000008
【図７】
2006221433.tif 000009
【図８】
2006221433.tif 000010
【図９】
2006221433.tif 000011
【図１０】
2006221433.tif 000012
【図１１】
2006221433.tif 000013
【図１２】
2006221433.tif 000014
【図１３】
2006221433.tif 000015
【図１４】
2006221433.tif 000016
【図１５】
2006221433.tif 000017
【図１６】
2006221433.tif 000018
【図１７】
2006221433.tif 000019