(57)【要約】【課題】メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を向上できる共有メモリ装置を提供する。【解決手段】各メモリシステム１１−１〜１１−ｎは、データを記憶するたとえばＤＲＡＭ等のメモリマクロ１２、並びに、メモリマクロ１２のアクセスを行って所定のデータ処理を行うプロセッサ１３を含み、メモリマクロ１２は、データ転送が可能なメモリインタフェース１５を少なくとも一つ有し、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている。【選択図】図１
2007066039.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と、少なくとも上記処理装置によりアクセス可能な少なくとも一つのメモリマクロとを含むメモリシステムを複数有し、
上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを少なくとも一つ有し、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、
異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている
共有メモリ装置。
【請求項２】
接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線にラッチを有する
請求項１記載の共有メモリ装置。
【請求項３】
接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線に転送されたデータを再駆動可能なリピータを有する
請求項１記載の共有メモリ装置。
【請求項４】
上記各メモリシステムの並列配置された複数のメモリマクロが、全領域について２次元的な高さを揃えて配置されている
請求項１記載の共有メモリ装置。
【請求項５】
上記各メモリシステムの並列配置された複数のメモリマクロのうち、少なくとも一つが、メモリセルおよびメモリインタフェースを含む２次元的な高さを揃えた第１領域以外の第２領域を含む
請求項１記載の共有メモリ装置。
【請求項６】
上記各メモリシステムは、それぞれ複数のメモリマクロが一列に配置され、各メモリシステムの複数のメモリマクロが行列状に配置され、
上記行列状に配置されたメモリマクロのうち、同一行に配置された複数のメモリマクロによりマクロ群がそれぞれ形成され、
上記各マクロ群において、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、
異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている
請求項１記載の共有メモリ装置。
【請求項７】
上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、それぞれ個別の配線により接続されている
請求項６記載の共有メモリ装置。
【請求項８】
上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、共有配線により接続されている
請求項６記載の共有メモリ装置。
【請求項９】
上記マクロ群の少なくとも一つにおいて、複数のメモリマクロが、全領域について２次元的な高さを揃えて配置されている
請求項６記載の共有メモリ装置。
【請求項１０】
上記マクロ群の少なくとも一つにおいて、複数のメモリマクロのうち、少なくとも一つが、メモリセルおよびメモリインタフェースを含む２次元的な高さを揃えた第１領域以外の第２領域を含む
請求項６記載の共有メモリ装置。
【請求項１１】
処理装置と、少なくとも上記処理装置によりアクセス可能な少なくとも一つのメモリマクロと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、
上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、
上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを少なくとも一つ有し、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、
異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている
共有メモリ装置。
【請求項１２】
接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線にラッチを有する
請求項１１記載の共有メモリ装置。
【請求項１３】
接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線に転送されたデータを再駆動可能なリピータを有する
請求項１１記載の共有メモリ装置。
【請求項１４】
上記各メモリシステムは、それぞれ複数のメモリマクロが一列に配置され、各メモリシステムの複数のメモリマクロが行列状に配置され、
上記行列状に配置されたメモリマクロのうち、同一行に配置された複数のメモリマクロによりマクロ群がそれぞれ形成され、
上記各マクロ群において、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、
異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている
請求項１１記載の共有メモリ装置。
【請求項１５】
上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、それぞれ個別の配線により接続されている
請求項１４記載の共有メモリ装置。
【請求項１６】
上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、共有配線により接続されている
請求項１４記載の共有メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ等の処理装置を含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
【背景技術】
【０００２】
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図１に示すような構成となる。
図１の構成においては、ロジック回路（プロセッサ）１−１〜１−４とメモリマクロ２−１〜２−４は並列処理を優先するため、１対１で接続される。
図１の構成において、ロジック回路１とメモリマクロ２は並列処理を優先するため１対１で接続されるが、ロジック回路１は隣接しているロジックのデータを参照するためには、上位装置を介したパスを使う必要がある。
【０００３】
そこで、ロジック回路１から直接、隣接メモリまでの接続を、一般的に、図２に示すように、クロスバー（Ｘｂａｒ）３で行う構成が採用される。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図１の構成においては、上述したように、ロジック回路１とメモリマクロ２は並列処理を優先するため１対１で接続されるが、ロジック回路１は隣接しているロジック回路１のデータを参照するためには、上位装置を介したパスを使う必要があるため、実際のアクセスを実現するのは困難である。
【０００５】
また、図２の構成においては、上位装置を介することなく、ロジック回路１は隣接しているロジック回路１のデータを参照することが可能であるが、ロジック回路１からメモリ２までの配線が非常に複雑となり、面積増加と長距離配線による性能低下を招くという不利益がある。
また、図２のクロスバー３を用いた構成では、システムのスケーラビリティーの拡張性を上げることが難しくなる。
【０００６】
本発明の目的は、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることが可能な共有メモリ装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点の共有メモリ装置は、処理装置と、少なくとも上記処理装置によりアクセス可能な少なくとも一つのメモリマクロとを含むメモリシステムを複数有し、上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを少なくとも一つ有し、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている。
【０００８】
好適には、接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線にラッチを有する。
【０００９】
好適には、接続関係にある異なるメモリシステムの複数のメモリインタフェースのうちの少なくとも一つは、データの転送配線に転送されたデータを再駆動可能なリピータを有する。
【００１０】
好適には、上記各メモリシステムの並列配置された複数のメモリマクロが、全領域について２次元的な高さを揃えて配置されている。
【００１１】
好適には、上記各メモリシステムの並列配置された複数のメモリマクロのうち、少なくとも一つが、メモリセルおよびメモリインタフェースを含む２次元的な高さを揃えた第１領域以外の第２領域を含む。
【００１２】
好適には、上記各メモリシステムは、それぞれ複数のメモリマクロが一列に配置され、各メモリシステムの複数のメモリマクロが行列状に配置され、上記行列状に配置されたメモリマクロのうち、同一行に配置された複数のメモリマクロによりマクロ群がそれぞれ形成され、上記各マクロ群において、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている。
【００１３】
好適には、上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、それぞれ個別の配線により接続されている。
【００１４】
好適には、上記各メモリシステムにおいて、複数のメモリマクロは処理装置と、共有配線により接続されている。
【００１５】
好適には、上記マクロ群の少なくとも一つにおいて、複数のメモリマクロが、全領域について２次元的な高さを揃えて配置されている。
【００１６】
好適には、上記マクロ群の少なくとも一つにおいて、複数のメモリマクロのうち、少なくとも一つが、メモリセルおよびメモリインタフェースを含む２次元的な高さを揃えた第１領域以外の第２領域を含む。
【００１７】
本発明の第２の観点の共有メモリ装置は、処理装置と、少なくとも上記処理装置によりアクセス可能な少なくとも一つのメモリマクロと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを少なくとも一つ有し、少なくともメモリセルおよびメモリインタフェースを含む領域が２次元的な高さを揃えて並列に配置され、異なるメモリシステムの２次元的な高さを揃えたメモリマクロのメモリインタフェース同士が接続されている。
【００１８】
本発明によれば、各メモリシステムのメモリマクロにデータ転送可能なメモリインタフェースを通して、メモリマクロ間でデータ転送が行われる。
また、たとえばアクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストされる。
【発明の効果】
【００１９】
本発明によれば、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる利点がある。
また、本発明によれば、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となり、その結果、無駄なデータ転送を軽減することができるようになり、システムバスの負荷を軽減することもでき、処理能力の向上を図れる利点がある。
【発明を実施するための最良の形態】
【００２０】
以下、本発明の実施形態を、図面に関連付けて説明する。
【００２１】
＜第１実施形態＞
図３は、本発明の第１の実施形態に係る共有メモリ装置のシステム構成図である。
【００２２】
本共有メモリ装置１０は、複数のメモリシステム１１−１〜１１―ｎを混載し、各メモリシステム１１−１〜１１−ｎ間でアクセスが可能で、並列処理を重視したマルチプロセッサ構造のアーキテクチャを採用している。
【００２３】
各メモリシステム１１−１〜１１−ｎは、基本的に、データを記憶するたとえばＤＲＡＭやＳＲＡＭ等のメモリマクロ(Memory Macro: MM)１２、メモリマクロ１２のアクセスを行って所定のデータ処理を行う処理装置としてのプロセッサ(Processor: PRC)１３、並びに、自ステージのプロセッサ１３とメモリマクロ１１間の情報（データ、並びに、コマンドおよびアドレス）の授受を行い、かつ、異なるメモリシステムのメモリコントロールユニットとの情報（コマンドおよびアドレスのみ）の授受を行うメモリコントロールユニット(Memory Control Unit: MCU)１４を含んで構成されている。
そして、本実施形態におけるメモリマクロ１２は、データ転送が可能なメモリインタフェース(Memory Interface: MIF)１５を備えており、異なるメモリシステム（本実施形態においては隣接するメモリシステム）のメモリマクロのメモリインタフェース同士が接続されている。
なお、図１は概念的な図であり、メモリマクロ１２におけるメモリインタフェース１５の配置位置は、実装する場合には図１とは異なる場合がある。
【００２４】
具体的には、メモリシステム１１−１は、メモリマクロ１２−１、プロセッサ１３−１、およびメモリコントロールユニット１４−１を有する。
メモリシステム１１−２は、メモリマクロ１２−２、プロセッサ１３−２、およびメモリコントロールユニット１４−２を有する。
同様にして、メモリシステム１１−ｎは、メモリマクロ１２−ｎ、プロセッサ１３−ｎ、およびメモリコントロールユニット１４−ｎを有する。
【００２５】
本実施形態においては、各メモリシステム１１−１〜１１−ｎは、図３中に設定した２次元直交座標系のＹ方向（垂直方向）に、図中、上からプロセッサ１３（−１〜−ｎ）、メモリコントロールユニット１４（−１〜−ｎ）、およびメモリマクロ１２（−１〜−ｎ）が幅を略揃えた形態で順番に配置されている。
このような配置構造を有する各メモリシステム１１−１〜１１−ｎが、直交座標系のＸ方向に並列に配置されている。
そしてたとえば、各メモリシステム１１−１〜１１−ｎのメモリマクロ１２−１〜１２−ｎは、図３中に符号ＢＳＬで示す基準ラインからのＹ方向の高さｈ１を揃えて配置されている。すなわち、各メモリシステム１１−１〜１１−ｎのメモリマクロ１２−１〜１２−ｎは２次元的な高さを揃えてＸ方向（水平方向）に並列に配置されている。
さらに、本実施形態においては、各メモリマクロ１２−１〜１２−ｎのメモリインタフェース１５−１〜１５−ｎは、基準ラインＢＳＬからＹ方向の２縁部（辺部）の高さｈ２，ｈ３を揃えて並列に配置されている。すなわち、各メモリマクロ１２−１〜１２−ｎのメモリインタフェース１５−１〜１５−ｎは、Ｙ方向の高さ（幅）ｈ４を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されている。
【００２６】
そして、メモリシステム１１−１のメモリマクロ１２−１のメモリインタフェース１５−１が、隣接するメモリシステム１１−２のメモリマクロ１２−２のメモリインタフェース１５−２に接続されている。
メモリシステム１１−２のメモリマクロ１２−２のメモリインタフェース１５−２が、隣接する図示しないメモリシステム（１１−３）のメモリマクロ（１２−３）のメモリインタフェース（１５−３）に接続されている。
同様にして、メモリシステム１１−ｎのメモリインタフェース１５−ｎが、隣接する図示しないメモリシステム（１１−n-1）のメモリマクロ（１２−n-1）のメモリインタフェース（１５−n-1）に接続されている。
【００２７】
なお、図３においては、各メモリマクロ間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、メモリインタフェース１５の接続ラインにロジック回路を設ける等、種々の態様が可能である。
【００２８】
以上のように、本第１の実施形態の共有メモリ装置１０においては、各メモリシステムのメモリマクロにデータ転送可能なメモリインタフェースを設けて、メモリマクロ間でデータ転送可能に構成されている。
そして、本第１の実施形態の共有メモリ装置１０は、各メモリマクロ１２−１〜１２−ｎのメモリインタフェース１５−１〜１５−ｎは、Ｙ方向の高さ（幅）ｈ４を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されていることから、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能となっている。
また、本第１の実施形態においては、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストするように構成されている。
【００２９】
以下、メモリコントロールユニット１４（−１〜―ｎ）、およびメモリマクロ１２（−１〜―ｎ）のメモリインタフェース１５（−１〜―ｎ）の具体的な構成および機能について説明する。
【００３０】
まず、各メモリシステムのメモリコントロールユニット１４について説明する。なお、各メモリシステムのメモリコントロールユニットは同様の構成を有する。
【００３１】
図４は、本発明に係るメモリコントロールユニットの一例を示す構成図である。
【００３２】
図４のメモリコントロールユニット１４は、コマンドＦＩＦＯ(Command First In First Out: CMD FIFO)１４１、ライトレイテンシィカウンタ(Write Latency Counter: WLC)１４２、メモリアクセスマネージメントユニット(Memory Access Management Unit: MAMU)１４３、ラッチ１４４〜１４６、およびＡＮＤゲート１４７を有する。
【００３３】
コマンドＦＩＦＯ１４１は、自メモリシステム１１のプロセッサ１３により発行されるコマンドおよびアドレスを格納し、ＭＡＭＵ１４３によるＦＩＦＯリード信号ＦＩＦＯ−ＲＤを受けて格納したコマンドおよびアドレス(C/AあるいはCMD/ADDR)をラッチ１４５に出力する。
また、コマンドＦＩＦＯ１４１は、レディ状態時はＦＩＦＯレディ(FIFO Ready)信号ＦＩＦＯ−ＲＤＹをプロセッサ１３に出力し、現在のステートを示すＦＩＦＯステート信号ＦＩＦＯ−ＳＴをＭＡＭＵ１４３に出力する。
【００３４】
ライトレイテンシィカウンタ１４２は、自メモリシステム１１のメモリマクロ１２に対するライトコマンドが発行された場合に、ＭＡＭＵ１４３からライトイネーブル(Write Enable)信号ＷＲ−ＥＮＢＬを受けて書き込みのレイテンシィを考慮して所定数カウントし、データ入力がレディ状態となったことを示すデータインレディ信号ＤＩ−ＲＤＹをプロセッサ１３に出力する。
このデータインレディ(Data In Ready)信号ＤＩ−ＲＤＹを受けたプロセッサ１３は、ライトデータを発行し、このライトデータ(Data In: DT IN)は一旦ラッチ１４６にラッチされてメモリマクロ１２に供給される。
【００３５】
ＭＡＭＵ１４３は、自メモリシステム１１のメモリマクロ１２に対するコマンドおよびアドレス（ＣＭＤ／ＡＤＤＲ）およびその有効信号（バリッド信号）ＬＤ（ｌｄｉと表記する場合もある）を受けると、入力コマンドを解読し、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ１２に対するアクセスにおいて、衝突が起こらないアクセスタイミングを生成し、このタイミングをもってコマンドおよびアドレスをメモリマクロ１２に転送するようにＦＩＦＯリード信号ＦＩＦＯ−ＲＤをコマンドＦＩＦＯ１４１、およびラッチ１４５に出力する。
ＭＡＭＵ１４３は、有効と判断したコマンドがライトコマンドの場合には、ライトイネーブル信号ＷＲ−ＥＮＢＬをライトレイテンシィカウンタ１４２に出力する。
【００３６】
図５は、本発明に係るメモリコントロールユニットにおけるＭＡＭＵ（メモリアクセスマネージメントユニット）の構成例を示す図である。
図６は、図５におけるレディチェックブロックの構成例を示す図である。
【００３７】
ＭＡＭＵ１４３は、図５に示すように、基本的に、メモリシステムの数ｎ（図５ではｎ＝４）に応じたレディチェックブロック(Ready Check Block: RCB)１４３１−０〜１４３１−３、セレクタ１４３２、ダウンカウンタ(Down Counter: DCNT)１４３３、およびＭＡＭＵステートマシーン(State Machine: SMCN)１４３４を有する。
【００３８】
各ＲＣＢ１４３１（−０〜−３）は、図５および図６に示すように、自メモリシステム１１のメモリマクロ１２にアクセスしているコマンドおよびアドレス（ＣＭＤ／ＡＤＤＲ）の数（図５および図６の例では４）に相当するユニットＵＮＴ０〜ＵＮＴ３、デコーダ１４３１１、およびＡＮＤゲート１４３１２を有する。
ＲＣＢ１４３１（−０〜−３）は、各メモリシステム１１−１〜１１−ｎのメモリマクロ１２−１〜１２−ｎ（本実施形態ではｎ＝４）に対応して設けられており、図６に示すように、それぞれ対応するマクロデータ（ユニット番号（Ｕｎｉｔ−Ｎｏ）、並びに、アドレスおよびコマンド（ＡＤＤＲ／ＣＭＤ））Ｍａｃ？ Ｄｉ（＝３，２，１，０）、マクロ有効信号Ｍａｃ？ ｌｄｉ、レディ信号ＲＤＹｉ、および実行中のコマンドｉＣＭＤが供給される。
【００３９】
デコーダ１４３１１は、マクロデータＭａｃ？ Ｄｉを受けてユニット番号をデコードし、デコード結果に従って対応するユニットＵＮＴにたとえばハイレベルのユニットイネーブル信号ＵＥ０〜３を出力する。
【００４０】
ＡＮＤゲート１４３１２は、マクロ有効信号Ｍａｃ？ ｌｄｉおよびレディ信号ＲＤＹｉの論理積をとり、両入力信号がハイレベルのときハイレベルの信号Ｓ１４３１２を各ユニットＵＮＴ０〜ＵＮＴ３に出力する。
【００４１】
各ユニットＵＮＴ０〜３は、同様の構成を有し、それぞれＡＮＤゲート１４３１３、コマンドレジスタ（ＣＭＤｒｅｇ）１４３１４、ステップカウンタ（ＳＴＥＰｃｏｕｎｔ）１４３１５、リファレンステーブル(Reference Table)１４３１６、および減算器（Ｓｕｂ）１４３１７を含んで構成されている。
【００４２】
ＡＮＤゲート１４３１３は、ＡＮＤゲート１４３１２の出力信号Ｓ１４３１２とデコーダ１４３１１によるユニットイネーブル信号ＵＥ（０〜３）の論理積をとり、両信号がハイレベルのときハイレベルのイネーブル信号ＳＥＮをコマンドレジスタ１４３１４およびステップカウンタ１４３１５に出力する。
【００４３】
コマンドレジスタ１４３１４は、イネーブル端子ＥＮにＡＮＤゲート１４３１３によるハイレベルのイネーブル信号ＳＥＮを受けてイネーブル状態となり、データ端子Ｄａｔａに供給されるマクロデータＭａｃ？ Ｄｉのアドレスおよびコマンド情報（ＡＤＤＲ／ＣＭＤ）を取り込み保持し、保持データをリファレンステーブル１４３１６に出力する。
【００４４】
ステップレジスタ１４３１５は、ロード端子ＬＤにＡＮＤゲート１４３１３によるハイレベルのイネーブル信号ＳＥＮを受けてイネーブル状態となり、データ端子Ｄａｔａに供給されるマクロデータＭａｃ？ Ｄｉを取り込み保持し、コマンドが何ステップかをカウントし、その結果を減算器１４３１７に出力する。
【００４５】
リファレンステーブル１４３１６は、コマンドレジスタ１４３１４の保持データと実行中のコマンドｉＣＭＤとを入力して、次に発行されるコマンドと今実行しているコマンドとに何クロック差があり、次のコマンドを何クロック目に発行すべきかをスケジューリングし、その結果である発行タイミングを減算器１４３１６に出力する。
【００４６】
減算器１４３１７は、リファレンステーブル１４３１６のよる発行タイミングとコマンドｉＣＭＤを入力して、発行タイミングと実行中のコマンド（およびアドレス）の実行中時間の差分をとり、その結果を図５のセレクタ１４３２に出力する。
【００４７】
図５のセレクタ１４３２は、各ＲＣＢ１４３１（−０〜−３）の複数（本実施形態では４）のユニットＵＮＴの減算器１４３１７の出力値のうち、最大値を選択してダウンカウンタ１４３３に出力する。
【００４８】
ダウンカウンタ１４３３は、ステートマシーン１４３４によりイネーブル状態に制御され、ロード端子ｌｄへのロード信号によりセレクタ１４３２の出力をロードしてゼロになるまでダウンカウントしてゼロのなるとその旨を信号Ｓ１４３３としてステートマシーン１４３４に出力する。
【００４９】
ステートマシーン１４３４は、ＭＡＭＵ１４３のステートを管理し、ダウンカウンタ１４３３により信号Ｓ１４３を受けると、自メモリシステム１１のレディ信号ＲＤＹ ｉ（図５の例ではメモリシステム１１−１のレディ信号ＲＤＹ ０）を出力し、また、ＦＩＦＯリード信号ＦＩＦＯ−ＲＤをコマンドＦＩＦＯ１４１に出力する。
【００５０】
なお、図５の例では、メモリシステム１１−１のＭＡＭＵを想定しており、この場合ＲＣＢ１４３１−０からマクロデータＭａｃ０ Ｄ、マクロ有効信号Ｍａｃ０ ｌｄ０が出力される。
【００５１】
ここで、上記構成を有するＭＡＭＵ１４３、およびＲＣＢ１４３１のおける動作の概要を、図７および図８に関連付けて説明する。
図７は、本実施形態におけるＭＡＭＵの動作を説明するためのフローチャートである。また、図８は、本実施形態におけるＲＣＢの動作を説明するためのフローチャートである。
【００５２】
ＭＡＭＵ１４３においては、まず、プロセッサ１３により発行されたコマンド／アドレス（ｉＣ／Ａ）を入力するか否かの判別を行う（ＳＴ１）。
ステップＳＴにおいて、プロセッサ１３により発行されたコマンド／アドレス（ｉＣ／Ａ）を入力すると、ＲＣＢ１４３１の処理に移行する（ＳＴ２）。
【００５３】
ＲＣＢ１４３１においては、まず、ステップＳＴ２１でコマンド／アドレス（Ｃ／Ａ）のリフレッシュがあるか否かの判別を行う。
ステップＳＴ２１において、リフレッシュがあると判別すると、コマンド／アドレス（Ｃ／Ａ）をリフレッシュし（ＳＴ２２）、ステップカウンタ１４３１５をリセットして（ＳＴ２３）、ステップＳＴ２４の処理に移行する。
また、ステップＳＴ２１において、リフレッシュがないと判別すると、ステップＳＴ２２，ＳＴ２３の処理を行うことなくステップＳＴ２４の処理に直接移行する。
ステップＳＴ２４において、リファレンステーブル１４３１６にプロセッサ１３により発行されたコマンド／アドレス（ｉＣ／Ａ）と実行中のコマンド／アドレス（ｒｅｆＣ／Ａ）をロードする。
そして、リファレンステーブル１４３１６によりコマンド／アドレス（Ｃ／Ａ）の発行タイミングを検出する（ＳＴ２５）。
次に、減算器１４３１７において、発行タイミングと実行中のコマンド／アドレス（ｒｅｆＣ／Ａ）の実行中時間の差分をとる（ＳＴ２６）。この処理は、メモリマクロ１２のアクセスタイムを得る処理である。このアクセスタイムが、セレクタ１４３２に入力される（ＳＴ２７）。
【００５４】
ＭＡＭＵ１４３のセレクタ１４３２において、ＲＣＢ１４３１の出力から最大のカウントする時間をセレクトする（ＳＴ３）。
そして、セレクトされた最大のアクセス時間をダウンカウンタ１４３３にセットする（ＳＴ４）。
ダウンカウンタ１４３３においては、カウント値がゼロ（０）になるまでダウンカウントし、ゼロになると（ＳＴ５）、ステートマシーン１４３４において自メモリシステム１１のレディ信号ＲＤＹ ｉを出力し、かつ、ＦＩＦＯリード信号ＦＩＦＯ−ＲＤをコマンドＦＩＦＯ１４１に出力することにより、メモリマクロ１２のアクセスを行う（ＳＴ６）。
【００５５】
次に、メモリマクロ１２（−１〜―ｎ）のメモリインタフェース１５（−１〜―ｎ）の具体的な構成および機能について説明する。
【００５６】
図９は、本発明に係るメモリインタフェースの構成例を示す図である。
【００５７】
図９のメモリインタフェース１５は、コマンド／アドレスセレクタ（Ｃ／Ａ  ＳＥＬ）１５１、データパスタイミングジェネレータ(Data Path Timing Generator: DPTG)１５２、メモリタイミングジェネレータ(Memory Timing Generator: MTG)１５３、およびデータパスセレクタ(Data Path Selector: DPS)１５４を含んで構成されている。
【００５８】
コマンド／アドレスセレクタ１５１は、図９に示すように、コマンド／アドレスパスセレクタ(Command Address Path Selector: CAPS)１５１１、およびコマンド／アドレスデコーダ(Command Address Decoder: CAD)１５１２を有する。
【００５９】
コマンド／アドレスパスセレクタ１５１１は、コマンドアドレスデコーダ１５１２によるイネーブル信号に基づいて、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１５から転送されたコマンドおよびアドレスを、いずれの方向に出力するかを決定し、Ｙ方向における右または左側に配置されたメモリシステムのメモリインタフェース１５に転送する。
【００６０】
コマンド／アドレスデコーダ１５１２は、自メモリシステム１１のプロセッサ１３、右、または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１５から転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１にあるか否かを判別し、その結果をデータパスタイミングジェネレータ１５２、およびメモリタイミングジェネレータ１５３に報知する。
【００６１】
データパスタイミングジェネレータ１５２は、コマンド／アドレスデコーダ１５１２により、入力したコマンドおよびアドレスに対応したパスがある旨を報知されると、自メモリシステム１１のプロセッサ１３、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１５から転送されたデータを、自メモリシステムのメモリマクロ１２、あるいはプロセッサ１３、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１５に転送すべきパスを選択し、パスするタイミングを制御する信号Ｓ１５２を生成し、信号Ｓ１５２をデータパスセレクタ１５４に出力する。
【００６２】
メモリタイミングジェネレータ１５３は、コマンド／アドレスデコーダ１５１２により、入力したコマンドおよびアドレスに対応したパスがある旨を報知されると、自メモリシステム１１のメモリマクロ１２にアクセスするタイミングを制御する信号Ｓ１５３を生成し、メモリマクロ１２に供給する。
【００６３】
データパスセレクタ１５４は、データパスタイミングジェネレータ１５２による信号Ｓ１５２を受けて、自メモリシステム１１のプロセッサ１３、右または／および左側に隣接して配置されたメモリシステムのメモリマクロ１２のメモリインタフェース１５から転送されたデータを、自メモリシステムのメモリマクロ１２、あるいはプロセッサ１３、または左あるいは右側に配置されたメモリシステム１１のメモリマクロ１２のメモリインタフェース１５に選択的に転送する。
【００６４】
図１０は、本実施形態におけるデータパスセレクタの具体的な構成例を示す回路図である。
【００６５】
図１０のデータパスセレクタ１５４は、第１ラッチ（ＬＴＣ１）１５４１、第２ラッチ（ＬＴＣ２）１５４２、第３ラッチ（ＬＴＣ３）１５４３、第４ラッチ（ＬＴＣ４）１５４４、第１セレクタ（ＳＥＬ１）１５４５、第２セクレタ（ＳＥＬ２）１５４６、第３セレクタ（ＳＥＬ３）１５４７、第４セレクタ（ＳＥＬ４）１５４８、ライト用冗長回路１５４９、ライトバッファ(Write Buffer: WR)１５５０、リードアンプ(Read Amplifier: RA)１５５１、およびリード用冗長回路１５５２を有する。
図１０のデータパスセレクタ１５４は１ビット分の回路であり、たとえば２５６ビットに対応する場合には同様の回路が２５６個設けられる。
なお、図１０においては、メモリマクロ１２のメモリ部はＤＲＡＭを想定しており、ＳＡ０〜ＳＡｍはセンスアンプを示している。また、ＢＬはビット線を示している。
【００６６】
データパスセレクタ１５４において、第１〜第４セレクタ１５４５〜１５４８が選択すべきデータおよびパスは、データパスタイミングジェネレータ１５２による制御信号Ｓ１５２により制御される。
【００６７】
第１セレクタ１５４５は、自メモリシステム１１のプロセッサ１３により発行され、メモリコントロールユニット１４を介したグローバルライトデータＧＷＤ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、および右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩが供給され、制御信号Ｓ１５２の指示に従ったデータを選択して第１ラッチ１５４１に出力する。
第１ラッチ１５４１にラッチされたライトデータは、冗長回路１５４９を介してライトバッファ１５５０に供給され、センスアンプＳＡ０〜ＳＡｍに転送されて、アドレス指定されたメモリセルにデータが書き込まれる。
【００６８】
第２セレクタ１５４６は、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、および右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩが供給され、制御信号Ｓ１５２の指示に従ったいずれかのデータを選択して第２ラッチ１５４２に出力する。
第２ラッチ１５４２にラッチされたデータＬＴＤＩまたはＲＴＤＩは、第３セレクタ１５４７、および第４セレクタ１５４８に供給される。
【００６９】
第３ラッチ１５４３は、自メモリシステム１１のメモリマクロ１２のメモリ部から読み出されリードアンプ１５５１、冗長回路１５５２を介したリードデータをラッチする。第３ラッチ１５４３にラッチされたデータは第３セレクタ１５４７、および第４セレクタ１５４８に供給される。
第４ラッチ１５４４は、自メモリシステム１１のプロセッサ１３により発行され、メモリコントロールユニット１４を介したグローバルライトデータＧＷＤをラッチする。第４ラッチ１５４４にラッチされたデータは第３セレクタ１５４７に供給される。
【００７０】
第３セレクタ１５４７は、自メモリシステム１１で発行されたグローバルライトデータＧＷＤ、自メモリシステムのメモリ部から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩのいずれかを選択し、左側のメモリシステムのメモリマクロのメモリインタフェースへのデータＬＴＤＯ、または右側のメモリシステムのメモリマクロのメモリインタフェースへのデータＲＴＤＯとして選択し、左側のメモリインタフェース、または右側のメモリインタフェースに転送する。
【００７１】
第４セレクタ１５４８は、後で説明する下位側バンクからのグローバルリードデータＧＲＤ、自メモリシステムのメモリ部から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩのいずれかを選択し、自メモリシステム１１のメモリコントロールユニット１４を通してプロセッサ１３に転送する。
【００７２】
図１１は、以上の構成を有するメモリインタフェース１５を備えたメモリマクロ間の接続例を示す図である。
図１１の例においては、メモリタイミングジェネレータ１５３はメモリマクロ１２のメモリ部に配置されている場合を示している。したがって、図１１の各メモリインタフェース１５―ｉ，１５―i+1には図示していない。
【００７３】
なお、上述したように、本実施形態においては、第３セレクタ１５４７は、第４ラッチ１５４４で一旦ラッチされた自メモリシステム１１で発行されたグローバルライトデータＧＷＤ、第３ラッチ１５４３で一旦ラッチされた自メモリシステムのメモリ部から読み出したリードデータ、並びに、第２ラッチ１５４２で一旦ラッチされた左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩのいずれかを選択し、左側のメモリシステムのメモリマクロのメモリインタフェースへのデータＬＴＤＯ、または右側のメモリシステムのメモリマクロのメモリインタフェースへのデータＲＴＤＯとして選択し、左側のメモリインタフェース、または右側のメモリインタフェースに転送する。
また、第４セレクタ１５４８は、第３ラッチ１５４３で一旦ラッチされた自メモリシステムのメモリ部から読み出したリードデータ、並びに、第２ラッチ１５４２で一旦ラッチされた左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＬＤＴＩ、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータＲＤＴＩのいずれかを選択し、自メモリシステム１１のメモリコントロールユニット１４を通してプロセッサ１３に転送する。
【００７４】
すなわち、本実施形態のデータパスセレクタ１５４において、データの転送配線にラッチ（またはレジスタともいう）を設けている。図１１では、ＬＴＣ１６０として表記している。
【００７５】
このように、データの転送配線にラッチを設けることにより、以下の効果を得ることができる。
たとえばメモリマクロ１２−ｉのメモリインタフェース１５−ｉにおいて、左側のメモリマクロ１２−i-1のメモリインタフェース１５−i-1から転送されたデータＬＤＴＩを右側のメモリマクロ１２−i+1のメモリインタフェース１５−i+1にデータＲＤＴＯとして転送する場合、ラッチ１６０（図１０の具体的な構成では第２ラッチ１５４２）において第１クロック目で入力データＬＤＴＩを保持し、第２クロック目で第３セレクタ１５４７を通してデータＲＤＴＯとして出力する。
すなわち、第２クロック目でデータＲＤＴＯを出力している間に、同じ第２クロック目で次のデータＬＤＴＩを保持する等の別の動作を実行できることから、データ転送のスループット(Throughput)の向上を図ることができる。
【００７６】
また、図１２に示すように、たとえばメモリマクロ１２−i+1のように、ラッチ（レジスタ）１６０を設けず、信号を使用しないメモリインタフェースとして構成することも可能である。
この構成によれば、不要な回路を削除して、回路面積の削減を図ることができる。
【００７７】
また、図１３に示すように、各メモリインタフェースのデータの転送配線にラッチ１６０を設ける代わりに、入力データ（供給データ）を再駆動するバッファとしてのリピータ(Repeater :RPT)１７０を設けることも可能である。
たとえばメモリマクロ１２−ｉのメモリインタフェース１５−ｉにおいて、左側のメモリマクロ１２−i-1のメモリインタフェース１５−i-1から転送されたデータＬＤＴＩを右側のメモリマクロ１２−i+1のメモリインタフェース１５−i+1にデータＲＤＴＯとして転送する場合、リピータ１７０において入力データＬＤＴＩを再駆動することにより波形整形し、立ち上がり、立ち下りの傾きの鋭い（急峻）なデータＲＤＴＯとして出力することができる。
このように、データの転送配線にリピータを設けることにより、転送帯域を確保できる利点がある。
【００７８】
また、図１４に示すように、たとえばメモリマクロ１２−i+1のように、リピータ１７０を設けず、信号を使用しないメモリインタフェースとして構成することも可能である。
この構成によれば、不要な回路を削除して、回路面積の削減を図ることができる。
【００７９】
次に、図１の構成を有する共有メモリ装置１０の動作を説明する。
【００８０】
まず、たとえば、メモリシステム１１−１のプロセッサ１３−１が自システムのメモリマクロ１２−１の所望のアドレスのメモリセルにアクセスする場合について説明する。
【００８１】
この場合、プロセッサ１３−１において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリコントロールユニット１４−１に出力される。
メモリコントロールユニット１４−１においては、プロセッサ１３−１で発行された自メモリシステム１１−１のメモリマクロ１２−１に対するコマンドおよびアドレス（ＣＭＤ／ＡＤＲ）およびその有効信号（バリッド信号）ＬＤに基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ１２に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、メモリコントロールユニット１４−１から生成したタイミングをもってコマンドおよびアドレスをメモリマクロ１２−１に転送するように制御されて、コマンドおよびアドレスがメモリマクロ１２-１のメモリインタフェース１５−１に出力される。
なお、メモリコントロールユニット１４−１においては、コマンドがライトあるいはリードであっても、プロセッサ１３−１により発行されたライトデータ、あるいはメモリマクロ１２−１から読み出され、あるいはメモリマクロ１２−１を通したリードデータは、基本的に素通りする形でメモリマクロ１２−１、あるいはプロセッサ１３−１に伝播される。
【００８２】
メモリインタフェース１５−１においては、メモリコントロールユニット１４−１から転送されたコマンドおよびアドレスを基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１−１にあるか否かが判別される。この場合、自メモリシステム１１−１にパスがあるものと判別される。
そして、メモリインタフェース１５−１においては、判別結果に基づいて、自メモリシステム１１−１のプロセッサ１３−１により発行されたライトデータがメモリマクロ１２−１のメモリ部に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
あるいは、自メモリシステム１１−１のメモリマクロ１２−１から読み出されたリードデータがメモリコントロールユニット１４−１を介してプロセッサ１３−１に転送される。
【００８３】
次に、たとえば、メモリシステム１１−１のプロセッサ１３−１が右側に隣接するメモリシステム１１−２のメモリマクロ１２−２の所望のアドレスのメモリセルにアクセスする場合について説明する。
【００８４】
この場合、プロセッサ１３−１において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリコントロールユニット１４−１に出力される。
メモリコントロールユニット１４−１においては、自メモリシステム１１−１のメモリマクロ１２−１に対するコマンドおよびアドレスでないことから、プロセッサ１３−１により発行されたコマンドおよびアドレスは、隣接するメモリシステム１１−２のメモリコントロールユニット１４−２に転送される。
【００８５】
メモリコントロールユニット１４−２においては、プロセッサ１３−１で発行された自メモリシステム１１−２のメモリマクロ１２−２に対するコマンドおよびアドレス（ＣＭＤ／ＡＤＲ）およびその有効信号（バリッド信号）ＬＤに基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ１２に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、メモリコントロールユニット１４−２から生成したタイミングをもってコマンドおよびアドレスをメモリマクロ１２−２に転送するように制御されて、コマンドおよびアドレスがメモリマクロ１２-２のメモリインタフェース１５−２に出力される。
【００８６】
なお、メモリコントロールユニット１４−１においては、コマンドがライトあるいはリードであっても、プロセッサ１３−１により発行されたライトデータ、あるいはメモリマクロ１２−２から読み出されメモリマクロ１２−１を通したリードデータは、基本的に素通りする形でメモリマクロ１２−１、あるいはプロセッサ１３−１に伝播される。
【００８７】
メモリインタフェース１５−１においては、メモリコントロールユニット１４-１から転送されたコマンドおよびアドレスを基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１−１にあるか否かが判別される。この場合、自メモリシステム１１−１にパスがないもと判別される。
その結果、メモリインタフェース１５−１においては、判別結果に基づいて、自メモリシステム１１−１のプロセッサ１３−１により発行されたライトデータが右側のメモリシステム１１−２のメモリマクロ１２−２のメモリインタフェース１５−２に転送される。
あるいは、隣接のメモリシステム１１−２のメモリマクロ１２−２から読み出され、メモリインタフェース１５−２から転送されてきたリードデータがメモリコントロールユニット１４−１を介してプロセッサ１３−１に転送される。
【００８８】
メモリインタフェース１５−２においては、メモリコントロールユニット１４−２から転送されたコマンドおよびアドレスを基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム１１−２にあるか否かが判別される。この場合、自メモリシステム１１−２にパスがあるものと判別される。
そして、メモリインタフェース１５−２においては、判別結果に基づいて、隣接メモリシステム１１−１のプロセッサ１３−１により発行され、メモリインタフェース１５−１を介してメモリインタフェース１５−２に入力されたライトデータがメモリマクロ１２−２のメモリ部に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
あるいは、メモリシステム１１−２のメモリマクロ１２−２から読み出されたリードデータがメモリインタフェース１５−２を介して隣接メモリシステム１１−１のメモリインタフェース１５−１に転送され、メモリコントロールユニット１４−１を介してプロセッサ１３−１に転送される。
【００８９】
以上説明したように、本第１の実施形態によれば、各メモリシステム１１−１〜１１−ｎは、データを記憶するたとえばＤＲＡＭやＳＲＡＭ等のメモリマクロ１２、メモリマクロ１２のアクセスを行って所定のデータ処理を行うプロセッサ１３、並びに、自ステージのプロセッサ１２とメモリマクロ１１間の情報（データ、並びに、コマンドおよびアドレス）の授受を行い、かつ、異なるメモリシステムのメモリコントロールユニットとの情報（コマンドおよびアドレスのみ）の授受を行うメモリコントロールユニット１４を含み、メモリマクロ１２は、データ転送が可能なメモリインタフェース１５を備えており、異なるメモリシステム（本実施形態においては隣接するメモリシステム）のメモリマクロのメモリインタフェース同士が接続されていることから、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる。
【００９０】
また、本第１の実施形態のように、マルチプロセッサ構造のシステムにおいて、拡張性を確保するために、プロセッサに最適化されたメモリシステムを対になるように組み込むことにより、アプリケーションの必要とする処理能力に最適な数のプロセッサを搭載することができる。あるいは、半導体プロセスの進化により搭載可能なプロセッサ数が増えると、アーキテクチャを変更することなく、処理能力の向上を見込むことが可能となる。この際、メモリシステムへのアクセスする時間を軽減するためにメモリシステム階層構造を採用することが望ましい。
【００９１】
また、本第１の実施形態によれば、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストすることから、以下の効果を得ることも可能である。
すなわち、マルチプロセッサ構造のシステムにおいて、一般的なメモリシステムにはあるデータが複数のプロセッサに参照される場合、システムバスを使用して何回も同じデータをアクセスしなければならない。
これに対して、本第１の実施形態においては、メモリシステムにはメモリマクロ間のデータ線を通してライトブロードキャストでデータを複数のメモリマクロにコピーすることが可能になる。これによって、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となる。その結果、無駄なデータ転送を軽減することが可能となってシステムバスの負荷を軽減することもでき、処理性能が向上となる。
【００９２】
そして、本第１の実施形態の共有メモリ装置１０は、各メモリマクロ１２−１〜１２−ｎのメモリインタフェース１５−１〜１５−ｎは、Ｙ方向の高さ（幅）ｈ４を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されていることから、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【００９３】
また、本第１の実施形態においては、各メモリシステム１１−１〜１１−ｎのメモリマクロ１２−１〜１２−ｎは、基準ラインＢＳＬからのＹ方向の高さｈ１を揃えて配置、すなわち、各メモリシステム１１−１〜１１−ｎのメモリマクロ１２−１〜１２−ｎは２次元的な高さを揃えてＸ方向（水平方向）に並列に配置されている構成を採用したが、たとえば図１５に示すような構成も採用することができる。
具体的には、各メモリマクロ１２−１〜１２−ｎ（図１５の例ではｎ＝４）の、接続配線にかかわるメモリセルアレイとメモリインタフェースを含む第１領域ＡＲ１は、上述したように基準ラインＢＳＬからのＹ方向（垂直方向）の２次元的な高さが揃うように配置し、たとえば図１５のメモリマクロ１２−３，１２−４のように、ソートなど特殊な処理領域ＡＲ２を有する等、領域ＡＲ１を除く第２領域ＡＲ２は各メモリマクロ間で異なるように構成することも可能である。
【００９４】
また、図１５の例では、メモリマクロ１２−１と１２−２、および、メモリマクロ１２−３と１２−４のメモリセルアレイがロウデコーダを共用する構成例を示している。したがって、ロウデコーダを共用するメモリマクロのメモリセルアレイは、２次元的なＹ方向の高さを揃えて配置されている。
【００９５】
この場合、接続配線にかかわるメモリセルアレイとメモリインタフェースを含む領域ＡＲ１は、上述したように基準ラインＢＳＬからのＹ方向（垂直方向）の２次元的な高さが揃うように配置されていることから、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【００９６】
なお、この場合、図１６に示すように、各メモリマクロ間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、メモリインタフェース１５の接続ラインにロジック回路を設ける等、種々の態様が可能である。
【００９７】
＜第２実施形態＞
図１７は、本発明の第２の実施形態に係る共有メモリ装置のシステム構成図である。
また、図１８は、第２の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【００９８】
本第２の実施形態が上述した第１の実施形態と異なる点は、各メモリマクロ１２Ａ−１〜１２Ａ−ｎが、異なるメモリマクロとデータ転送可能なポートＰＴを複数有することにある。
【００９９】
この場合、メモリインタフェース１５は、ポート毎に対応して配置され、その基本的構成は、図９および図１０に関連付けて説明した構成と同様である。したがって、その詳細な説明は省略する。
【０１００】
本第２の実施形態においては、メモリタイミングジェネレータ１５３はメモリマクロ１２Ａのメモリ部に配置されている場合を示している。したがって、図１８の各メモリインタフェース１５には図示していない。
【０１０１】
本第２の実施形態の共有メモリ装置１０Ａにおいても、各メモリマクロ１２−１〜１２−ｎのメモリインタフェース１５−１１〜１５−ｎ１、１５−１ｍ〜１５−ｎｍは、Ｙ方向の高さ（幅）を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されている。
したがって、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【０１０２】
その他の構成は第１の実施形態と同様であり、本第２の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができる。
【０１０３】
＜第３実施形態＞
図１９は、本発明の第３の実施形態に係る共有メモリ装置のシステム構成図である。
また、図２０は、第３の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【０１０４】
本第３の実施形態が上述した第１の実施形態と異なる点は、各メモリマクロ１２Ａ−１〜１２Ａ−ｎが複数のバンクＢＮＫ１〜ＢＮＫｍを有し、異なるメモリマクロの対応するバンクとデータ転送可能に構成したことにある。
【０１０５】
この場合、メモリインタフェース１５は、バンクＢＮＫ１〜ＢＮＫｍ毎に配置され、基本的構成は、図９および図１０に関連付けて説明した構成と同様である。したがって、その詳細な説明は省略する。
【０１０６】
本第３の実施形態においては、各バンクのメモリインタフェースごとにデータパスタイミングジェネレータ１５２とメモリタイミングジェネレータ１５３が配置されている。
【０１０７】
本第３の実施形態の共有メモリ装置１０ｂにおいても、各メモリマクロ１２−１〜１２−ｎのそれぞれメモリインタフェース部分を含む各バンクＢＮＫ１〜ＢＮＫｍは、Ｙ方向の高さ（幅）を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されている。
したがって、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【０１０８】
その他の構成は第１の実施形態と同様であり、本第３の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができる。
【０１０９】
＜第４実施形態＞
図２１は、本発明の第４の実施形態に係る共有メモリ装置のシステム構成図である。
【０１１０】
本第４の実施形態が上述した第１の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第１の実施形態においてメモリシステム１１−１のメモリマクロ１２−１に配置されたメモリインタフェース１５−１の左側の入出力部(ポート)、並びに、メモリシステム１１−ｎのメモリマクロ１２−ｎに配置されたメモリインタフェース１５−ｎの右側の入出力部(ポート)を、外部のメモリ２０，２１とのインタフェースとして用いたことにある。
【０１１１】
その他の構成は第１の実施形態と同様であり、本第４の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第４の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
【０１１２】
＜第５実施形態＞
図２２は、本発明の第５の実施形態に係る共有メモリ装置のシステム構成図である。
【０１１３】
本第５の実施形態が上述した第２の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第２の実施形態においてメモリシステム１１−１のメモリマクロ１２Ａ−１の各ポートに配置されたメモリインタフェース１５の左側の入出力部(ポート)、並びに、メモリシステム１１−ｎのメモリマクロ１２Ａ−ｎの各ポートに配置されたメモリインタフェース１５の右側の入出力部(ポート)を、外部のメモリ２０Ａ，２１Ａとのインタフェースとして用いたことにある。
【０１１４】
その他の構成は第２の実施形態と同様であり、本第５の実施形態によれば、上述した第１および２の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第５の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
【０１１５】
＜第６実施形態＞
図２３は、本発明の第６の実施形態に係る共有メモリ装置のシステム構成図である。
【０１１６】
本第６の実施形態が上述した第３の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第３の実施形態においてメモリシステム１１−１のメモリマクロ１２Ａ−１の各バンクＢＮＫ１〜ＢＮＬｍトに配置されたメモリインタフェース１５の左側の入出力部(ポート)、並びに、メモリシステム１１−ｎのメモリマクロ１２Ａ−ｎの各バンクＢＮＫ１〜ＢＮＬｍトに配置されたメモリインタフェース１５の右側の入出力部(ポート)を、外部のメモリ２０Ｂ，２１Ｂとのインタフェースとして用いたことにある。
【０１１７】
その他の構成は第３の実施形態と同様であり、本第６の実施形態によれば、上述した第１および３の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第６の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
【０１１８】
＜第７実施形態＞
図２４は、本発明の第７の実施形態に係る共有メモリ装置のシステム構成図である。
【０１１９】
上述した第１〜第６の実施形態おいては、各メモリシステムには一つのメモリマクロを配置していたが、本第７の実施形態の共有メモリ装置１０Ｆにおいては、上述した各実施形態と同様の構成を有するメモリマクロが、各メモリシステム１１Ｆ−１〜１１Ｆ−ｎ（図２４の例ではｎ＝４）において、図２４に設定した２次元直交座標系におけるＹ方向にｍ（図２４例ではｍ＝４）個、幅を揃えて順番に配置されている。
【０１２０】
具体的には、メモリシステム１１Ｆ−１には、メモリマクロ（ＭＭ）１２−１１，１２−１２，１２−１３、および１２−１４が一列に配置されている。
メモリシステム１１Ｆ−２には、メモリマクロ（ＭＭ）１２−２１，１２−２２，１２−２３、および１２−２４が一列に配置されている。
メモリシステム１１Ｆ−３には、メモリマクロ（ＭＭ）１２−３１，１２−３２，１２−３３、および１２−３４が一列に配置されている。
メモリシステム１１Ｆ−４には、メモリマクロ（ＭＭ）１２−４１，１２−４２，１２−４３、および１２−４４が一列に配置されている。
したがって、本第７の実施形態の共有メモリ装置１０Ｆにおいては、メモリマクロがｍ×ｎ（図２４の例では４×４）のマトリクス状に配置されている。
【０１２１】
メモリマクロのマトリクス配列において、第１行に配置されたメモリマクロ１２−１１，１２−２１，１２−３１、および１２−４１により第１のマクロ群ＭＧＲＰ１が形成されている。
同様に、第２行に配置されたメモリマクロ１２−１２，１２−２２，１２−３２、および１２−４２により第２のマクロ群ＭＧＲＰ２が形成されている。
第３行に配置されたメモリマクロ１２−１３，１２−２３，１２−３３、および１２−４３により第３のマクロ群ＭＧＲＰ３が形成されている。
第４行に配置されたメモリマクロ１２−１４，１２−２４，１２−３４、および１２−４４により第４のマクロ群ＭＧＲＰ４が形成されている。
【０１２２】
そして、本第７の実施形態の共有メモリ装置１０Ｆにおいては、各第１〜第４のマクログループＭＧＲＰ１〜ＭＧＲＰ４において、各メモリシステム１１Ｆ−１〜１１Ｆ−４のメモリマクロ１２−１１〜１２−４１，１２−１２〜１２−４２，１２−１３〜１２−４３，１２−１４〜１２−４４は、基準ラインＢＳＬからのＹ方向の高さｈ１を揃えて配置、すなわち、各メモリシステム１１Ｆ−１〜１１Ｆ−ｎのメモリマクロは２次元的な高さを揃えてＸ方向（水平方向）に並列に配置されている。
より好適には、各第１〜第４のマクログループＭＧＲＰ１〜ＭＧＲＰ４において、各メモリマクロのメモリインタフェース（１５）は、Ｙ方向の高さ（幅）を揃え、しかも、Ｙ方向の配置位置を揃えて、Ｘ方向に一直線状（水平方向に一直線状）に並列配置されている。
したがって、各マクロ群において、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【０１２３】
なお、この場合、各マクロ群ＭＧＲＰ１〜ＭＧＲＰ４において、各メモリマクロ間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、メモリインタフェースの接続ラインにロジック回路を設ける等、種々の態様が可能である。
また、各マクロ群ＭＧＲＰ１〜ＭＧＲＰ４間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、ロジック回路を設ける等、種々の態様が可能である。
【０１２４】
また、各メモリシステム１１Ｆ−１〜１１Ｆ−４（ｎ）において、各メモリマクロのメモリインタフェースと、上位のメモリコントロールユニット１４Ｆ（−１〜―４）、さらには処理装置としてプロセッサ１３Ｆ（−１〜−４）との接続は、たとえば図２５ある意は図２６のように行うことが可能である。
【０１２５】
図２５の接続例は、各メモリシステム１１Ｆ−１〜１１Ｆ−４において、各メモリマクロごとに個別の接続配線ＣＮＬ１１〜ＣＮＬ１４，ＣＮＬ２１〜ＣＮＬ２４，ＣＮＬ３１〜ＣＮＬ３４，ＣＮＬ４１〜ＣＮＬ４４が形成されている。
この接続例を採用すれば、各メモリマクロと上位のプロセッサ１３は、自由にアクセスすることができる。
【０１２６】
図２６の接続例は、各メモリシステム１１Ｆ−１〜１１Ｆ−４において、上位側と各メモリマクロとの配線が共有配線ＣＭＬとして形成されている
この接続例を採用すれば配線数を削減でき、配線領域の面線を削減できる。
【０１２７】
その他の構成は第１の実施形態と同様であり、本第７の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得られる。
【０１２８】
＜第８実施形態＞
図２７は、本発明の第８の実施形態に係る共有メモリ装置のシステム構成図である。
【０１２９】
本第８の実施形態の共有メモリ装置１０Ｇが第７の実施形態の共有メモリ装置１０Ｆと異なる点は、第２〜第４のマクロ群ＭＧＲＰ２Ｇ〜ＭＧＲＰ４Ｇにおいて、以下の構成を採用したことにある。
【０１３０】
前述した第７の実施形態においては、各マクロ群ＭＧＲＰ１〜ＭＧＰ４においては、メモリマクロのＹ方向の高さを揃えて配置、すなわち、各マクロ群ＭＧＲＰ１〜ＭＧＰ４のメモリマクロは２次元的な高さを揃えてＸ方向（水平方向）に並列に配置されている構成を採用した。
これに対して、本第８の実施形態においては、第２〜第４のマクロ群ＭＧＲＰ２Ｇ〜ＭＧＲＰ４Ｇの各メモリマクロの、接続配線にかかわるメモリセルアレイとメモリインタフェースを含む第１領域ＡＲ１は、Ｙ方向（垂直方向）の２次元的な高さが揃うように配置し、たとえばソートなど特殊な処理領域ＡＲ２を有する等、領域ＡＲ１を除く第２領域ＡＲ２は各メモリマクロ間で異なるように構成している。
【０１３１】
この場合、接続配線にかかわるメモリセルアレイとメモリインタフェースを含む領域ＡＲ１は、Ｙ方向（垂直方向）の２次元的な高さが揃うように配置されていることから、各メモリマクロ間を接続する配線の余計な引き回しを無くし、最短距離で配線をレイアウトすることが可能である。
【０１３２】
なお、この場合、各マクロ群ＭＧＲＰ１Ｇ〜ＭＧＲＰ４Ｇにおいて、各メモリマクロ間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、メモリインタフェースの接続ラインにロジック回路を設ける等、種々の態様が可能である。
また、各マクロ群ＭＧＲＰ１Ｇ〜ＭＧＲＰ４Ｇ間にスペースを設けたような構成として例示しているが、スペースを設ける、スペースを設けない、あるいは、ロジック回路を設ける等、種々の態様が可能である。
【０１３３】
その他の構成は第７の実施形態と同様であり、本第８の実施形態によれば、上述した第１および第７の実施形態の効果と同様の効果を得られる。
【０１３４】
なお、以上の各実施形態において、メモリコントロールユニットをプロセッサとメモリマクロ間に配置する例を説明したが、メモリコントロールユニットの機能を各メモリマクロのメモリインタフェースに持たせる等の態様も可能である。
【図面の簡単な説明】
【０１３５】
【図１】マルチプロセッサの一般的なアーキテクチャを示す図である。
【図２】クロスバーを用いたアーキテクチャを示す図である。
【図３】本発明の第１の実施形態に係る共有メモリ装置のシステム構成図である。
【図４】本実施形態に係るメモリコントロールユニットの一例を示す構成図である。
【図５】本実施形態に係るメモリコントロールユニットにおけるメモリアクセスマネージメントユニット（ＭＡＭＵ）の構成例を示す図である。
【図６】図５におけるレディチェックブロック（ＲＣＢ）の構成例を示す図である。
【図７】本実施形態におけるＭＡＭＵの動作を説明するためのフローチャートである。
【図８】本実施形態におけるＲＣＢの動作を説明するためのフローチャートである。
【図９】本発明に係るメモリインタフェースの構成例を示す図である。
【図１０】本実施形態におけるデータパスセレクタの具体的な構成例を示す回路図である。
【図１１】第１の実施形態において、データセレクタにラッチを含むメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図１２】ラッチを設けたデータパスセレクタとラッチを設けていないデータパスセレクタを含む、メモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図１３】第１の実施形態において、データセレクタにリピータを含むメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図１４】リピータを設けたデータパスセレクタとリピータを設けていないデータパスセレクタを含む、メモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図１５】メモリインタフェースとメモリセルアレイを含む領域が、２次元的な高さを揃えてあり、その他の領域が高さが異なるメモリマクロアレイの例を示す図であって、メモリマクロ間の配置例を説明するための図である。
【図１６】メモリインタフェースとメモリセルアレイを含む領域が、２次元的な高さを揃えてあり、その他の領域が高さが異なるメモリマクロアレイの例を示す図である。
【図１７】本発明の第２の実施形態に係る共有メモリ装置のシステム構成図である。
【図１８】第２の実施形態において、メモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図１９】本発明の第３の実施形態に係る共有メモリ装置のシステム構成図である。
【図２０】第３の実施形態において、メモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
【図２１】本発明の第４の実施形態に係る共有メモリ装置のシステム構成図である。
【図２２】本発明の第５の実施形態に係る共有メモリ装置のシステム構成図である。
【図２３】本発明の第６の実施形態に係る共有メモリ装置のシステム構成図である。
【図２４】本発明の第７の実施形態に係る共有メモリ装置のシステム構成図である。
【図２５】各メモリシステムに複数のメモリマクロを設けた場合の上位装置と各メモリマクロとの接続配線の第１例を示す図である。
【図２６】各メモリシステムに複数のメモリマクロを設けた場合の上位装置と各メモリマクロとの接続配線の第２例を示す図である。
【図２７】本発明の第８の実施形態に係る共有メモリ装置のシステム構成図である。
【符号の説明】
【０１３６】
１０，１０Ａ〜１０Ｇ…共有メモリ装置、１１−１〜１１−ｎ，１１Ａ−１〜１１Ａ−ｎ，１１Ｂ−１〜１１Ｂ−ｎ，１１Ｆ−１〜１１Ｆ−ｎ，１１Ｇ−１〜１１Ｇ−ｎ…メモリシステム、１２−１〜１２−ｎ，１２Ａ−１〜１２Ａ−ｎ，１２Ｂ−１〜１２Ｂ−ｎ，１２−１１〜１２−１４，１２−２１〜１２−２４，１２−３１〜１２−３４，１２−４１〜１２−４４…メモリマクロ、１３−１〜１３−ｎ…プロセッサ、１４−１〜１４−ｎ…メモリコントロールユニット、１５−１〜１５−ｎ…メモリインタフェース、２０，２０Ａ，２０Ｂ…外部メモリ。
【図１】
2007066039.tif 000003
【図２】
2007066039.tif 000004
【図３】
2007066039.tif 000005
【図４】
2007066039.tif 000006
【図５】
2007066039.tif 000007
【図６】
2007066039.tif 000008
【図７】
2007066039.tif 000009
【図８】
2007066039.tif 000010
【図９】
2007066039.tif 000011
【図１０】
2007066039.tif 000012
【図１１】
2007066039.tif 000013
【図１２】
2007066039.tif 000014
【図１３】
2007066039.tif 000015
【図１４】
2007066039.tif 000016
【図１５】
2007066039.tif 000017
【図１６】
2007066039.tif 000018
【図１７】
2007066039.tif 000019
【図１８】
2007066039.tif 000020
【図１９】
2007066039.tif 000021
【図２０】
2007066039.tif 000022
【図２１】
2007066039.tif 000023
【図２２】
2007066039.tif 000024
【図２３】
2007066039.tif 000025
【図２４】
2007066039.tif 000026
【図２５】
2007066039.tif 000027
【図２６】
2007066039.tif 000028
【図２７】
2007066039.tif 000029