JP2007034943A - 共有メモリ装置 - Google Patents
共有メモリ装置 Download PDFInfo
- Publication number
- JP2007034943A JP2007034943A JP2005220938A JP2005220938A JP2007034943A JP 2007034943 A JP2007034943 A JP 2007034943A JP 2005220938 A JP2005220938 A JP 2005220938A JP 2005220938 A JP2005220938 A JP 2005220938A JP 2007034943 A JP2007034943 A JP 2007034943A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- bus
- bank
- data
- latch
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を向上できる共有メモリ装置を提供する。
【解決手段】複数のメモリバンク111−1〜111−nを含むメモリシステム11において、メモリバンク111のビット線とワード線の方向をそれぞれ水平方向と垂直方向に配置し、各メモリバンク111−1〜111−nの入出力ポート(IF)21はメモリインタフェース112と直接に接続することにより複数のデータを並列に入出力する多ポートメモリマクロを実現可能となっている。
【選択図】図1
【解決手段】複数のメモリバンク111−1〜111−nを含むメモリシステム11において、メモリバンク111のビット線とワード線の方向をそれぞれ水平方向と垂直方向に配置し、各メモリバンク111−1〜111−nの入出力ポート(IF)21はメモリインタフェース112と直接に接続することにより複数のデータを並列に入出力する多ポートメモリマクロを実現可能となっている。
【選択図】図1
Description
本発明は、プロセッサ等の処理装置を含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図1に示すような構成となる。
図1の構成においては、ロジック回路(プロセッサ)1−1〜1−4とメモリマクロ2−1〜2−4は並列処理を優先するため、1対1で接続される。
図1の構成において、ロジック回路1とメモリマクロ2は並列処理を優先するため1対1で接続されるが、ロジック回路1は隣接しているロジックのデータを参照するためには、上位装置を介したパスを使う必要がある。
図1の構成においては、ロジック回路(プロセッサ)1−1〜1−4とメモリマクロ2−1〜2−4は並列処理を優先するため、1対1で接続される。
図1の構成において、ロジック回路1とメモリマクロ2は並列処理を優先するため1対1で接続されるが、ロジック回路1は隣接しているロジックのデータを参照するためには、上位装置を介したパスを使う必要がある。
そこで、ロジック回路1から直接、隣接メモリまでの接続を、一般的に、図2に示すように、クロスバー(Xbar)3で行う構成が採用される。
また、図3に示すように、現在、特定用途によって演算を行う複数演算ユニット(DSP,CPU)4,5がワンチップ化して、各演算ユニット間のデータ通信はシステムデータバス6と接続することでデータ転送を行う。なお、図3においては、システムデータバス6に対して、演算ユニット4,5の他に入出力部(I/O)7やメモリ8が接続されている。
図1の構成においては、上述したように、ロジック回路1とメモリマクロ2は並列処理を優先するため1対1で接続されるが、ロジック回路1は隣接しているロジック回路1のデータを参照するためには、上位装置を介したパスを使う必要があるため、実際のアクセスを実現するのは困難である。
また、図2の構成においては、上位装置を介することなく、ロジック回路1は隣接しているロジック回路1のデータを参照することが可能であるが、ロジック回路1からメモリ2までの配線が非常に複雑となり、面積増加と長距離配線による性能低下を招くという不利益がある。
また、図2のクロスバー3を用いた構成では、システムのスケーラビリティーの拡張性を上げることが難しくなる。
また、図2のクロスバー3を用いた構成では、システムのスケーラビリティーの拡張性を上げることが難しくなる。
また、図3のシステムにおいては、演算データ量が多くなるとともに外部メモリからデータのロード/ストアでバスの占有される時間が長くなり、さらにシステムデータバス6を使用して演算ユニット間のデータ転送時間も長くなってしまう。
その結果、演算ユニット4,5のストール時間が長くなり、データ転送のオーバーヘッドでシステム全体の処理性能が低下になる。
複数バスをシステムに配置することによってバスアクセスの衝突を軽減することができるが、システムバスで占有される面積が大きくなってしまう。
その結果、演算ユニット4,5のストール時間が長くなり、データ転送のオーバーヘッドでシステム全体の処理性能が低下になる。
複数バスをシステムに配置することによってバスアクセスの衝突を軽減することができるが、システムバスで占有される面積が大きくなってしまう。
本発明の目的は、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることが可能な共有メモリ装置を提供することにある。
本発明の第1の観点の共有メモリ装置は、少なくとも一つの処理モジュールと、上記処理モジュールによりアクセス可能な少なくとも一つのメモリシステムと、を有し、上記メモリシステムは、複数のメモリバンクと、上記処理モジュールと接続される少なくとも一つのメモリインタフェースと、を含み、上記各メモリバンクの入出力ポートと上記メモリインタフェースとがそれぞれ直接接続されている。
好適には、上記メモリシステムを複数含み、上記各メモリシステムの各メモリインタフェースは、バスとの接続部を少なくとも一つ有し、各メモリインタフェースは、上記バスで並列的に接続されている。
好適には、上記処理モジュールが上記各メモリシステムに対応するように少なくとも一つずつ対応するように設けられ、上記各メモリシステムのメモリインタフェースは、対応する上記メモリシステムと接続されている。
好適には、上記メモリシステムは各メモリバンクそれぞれに直接接続される複数のメモリインタフェースを有し、上記処理モジュールは、異なるチャネルで上記複数のメモリインタフェースとそれぞれ接続されている。
好適には、上記メモリシステムを複数含み、上記各メモリシステムの各メモリインタフェースは、バスとの接続部を少なくとも一つ有し、各メモリインタフェースは、上記バスで並列的に接続されている。
好適には、上記メモリシステムを複数含み、上記各メモリシステムの各メモリインタフェースは、複数のバスとそれぞれ接続可能な接続部を複数有し、各メモリインタフェースは、上記複数の接続部を通して上記各バスで並列的に接続され、上記メモリインタフェースは、マルチ処理モジュールシステムのバス制御部と、システムバス制御部と、を有する。
好適には、上記メモリシステムを複数含み、上記メモリシステムは各メモリバンクそれぞれに直接接続される複数のメモリインタフェースを有し、上記処理モジュールは、異なるチャネルで上記複数のメモリインタフェースとそれぞれ接続され、上記各メモリシステムの各メモリインタフェースは、複数のバスとそれぞれ接続可能な接続部を複数有し、各メモリインタフェースは、上記複数の接続部を通して上記各バスで並列的に接続され、上記メモリインタフェースは、マルチプロセッサシステムのバス制御部と、システムバス制御部と、を有する。
好適には、上記複数のバスには、マルチ処理モジュール間のデータ転送バスとシステムバスと、を含み、上記データ転送バスとシステムバスは異なる周波数で駆動される。
好適には、上記メモリシステムの複数のメモリバンクにそれぞれ異なるタイミングでコマンド/アドレスを発行することにより、上記メモリバンクの配列方向におけるバスインタリーブデータ転送を行う。
本発明によれば、たとえば、複数のメモリバンクを含むメモリシステムにおいて、メモリバンクのたとえばビット線とワード線の方向をそれぞれ水平方向と垂直方向に配置し、各メモリバンクの入出力ポートはメモリマクロインタフェースと直接に接続することにより複数のデータを並列に入出力する多ポートメモリマクロが実行できる。
本発明によれば、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる利点がある。
以下、本発明の実施形態を、図面に関連付けて説明する。
以下の説明においては、まず、本第1〜第5の実施形態に係る共有メモリの構成の概要について説明し、その後、第3の実施形態を例とした各部の具体的な構成および機能について説明する。
<第1実施形態>
図4は、本発明の第1の実施形態に係る共有メモリ装置を示すシステム構成図である。図4は、共有メモリ装置の基本的な概念を示している。
図4は、本発明の第1の実施形態に係る共有メモリ装置を示すシステム構成図である。図4は、共有メモリ装置の基本的な概念を示している。
本共有メモリ装置10は、基本的に、データを記憶するたとえばDRAMやSRAM等のメモリシステム(Memory System)11、メモリシステム11のアクセスを行って所定のデータ処理を行うCPU,GPU,DSP等のプロセッサ(Processor)または特定用途の演算ユニットからなる一または複数の処理モジュール12を、主構成要素として有している。
そして、本実施形態におけるメモリシステム11は、複数のメモリバンク111−1〜111−n(BNK1〜BNKn)と、各バンク111−1〜111−nと処理モジュール12とのデータ転送の整合や各バンク111−1〜111−nへのアクセス制御等を行うメモリインタフェース(Memory Interface)112と、を備えている。
本実施形態においては、基本的にメモリインタフェース112と各バンク111−1〜111−nはそれぞれプライベート配線PL1〜PLnにより接続されている。
そして、本実施形態におけるメモリシステム11は、複数のメモリバンク111−1〜111−n(BNK1〜BNKn)と、各バンク111−1〜111−nと処理モジュール12とのデータ転送の整合や各バンク111−1〜111−nへのアクセス制御等を行うメモリインタフェース(Memory Interface)112と、を備えている。
本実施形態においては、基本的にメモリインタフェース112と各バンク111−1〜111−nはそれぞれプライベート配線PL1〜PLnにより接続されている。
本第1の実施形態の共有メモリ装置10は、複数のメモリバンク111−1〜111−nを含むメモリシステム11において、図5および図6に示すように、メモリバンク111のビット線とワード線の方向をそれぞれ水平方向と垂直方向に配置し、各メモリバンク111−1〜111−nの入出力ポート(IF)はメモリインタフェース112と直接に接続することにより複数のデータを並列に入出力する多ポートメモリマクロを実現可能となっている。
すなわち、本実施形態においては、メモリバンク111を通常の配置から90度回転させた状態で配置し、ビット線の幅に入出力ポート(IF)配置している。
このような構成を採用することにより、入出力ポートのビット幅を変更可能となり、また、多ポート構造となっているため並列処理の効率が向上する。また、メモリアレイ上に余分な領域があり、この領域にシステムの配線を配置することが可能となっている。
このような構成を採用することにより、入出力ポートのビット幅を変更可能となり、また、多ポート構造となっているため並列処理の効率が向上する。また、メモリアレイ上に余分な領域があり、この領域にシステムの配線を配置することが可能となっている。
図5は、本実施形態に係るメモリバンクの基本構成を示す図である。また、図6は、本実施形態に係るメモリバンクの具体的な構成例を示す図である。
メモリバンク111は、図5および図6に示すように、基本的にメモリインタフェース12と個別のプライベート配線PLにて接続される入出力ポート(IF)21、メモリセルアレイ22−1,22−2、各メモリセルアレイ22−1,22−2のたとえば両側(図5では左右両側)に配置されたセンスアンプ(SA)23−1,23−2,24−1,24−2、カラムセレクタ25、カラムデコーダ26、ロウデコーダ27、ドライバ28−1,28−2、リードデータラッチ回路29、ライトデータラッチ回路30、コマンド/アドレス(CMD/ADD)ラッチ回路31、およびコマンドデコーダ32を有している。
また、図6において、O Qは出力データを、I Qは入力データを、I CA1は入力コマンドおよびアドレスを示している。
また、図6において、O Qは出力データを、I Qは入力データを、I CA1は入力コマンドおよびアドレスを示している。
このような構成を有する共有メモリ装置10の動作の概要を説明する。
プロセッサまたは特定用途の演算ユニットである処理モジュール12は高速にメモリアクセスが可能であり、メモリシステム11におけるメモリバンク111−1〜111−nの上位にあるメモリインタフェースは112とデータ転送を行う。
上位の処理モジュール12から発行されたコマンド/アドレスはメモリインタフェース112を通して、メモリバンクにあるコマンド/アドレスラッチ回路31で取り込まれ、処理モジュール12からのアクセス情報RAS(Row Address Strobe)はロウデコーダ27に転送される。一方、処理モジュール12からのアクセス情報CAS(Column Address Strobe)はカラムデコーダ26に転送される。
メモリバンク111のデータの読み出しをする際に読み出されたデータが両サイドのセンスアンプ23−1,23−2あるいは24−1,24−2で増幅される。カラムセレクタ25は読み出されたデータからCAS情報によって要求されるデータを選択し、リードデータラッチ回路29にデータを転送する。
メモリバンク111へのデータの書き込み動作も読み出しと同様である。ただし、処理モジュール12から発行されたライトデータがメモリセルアレイに書き込む前にライトラッチ回路30でデータを保持する。
上位の処理モジュール12から発行されたコマンド/アドレスはメモリインタフェース112を通して、メモリバンクにあるコマンド/アドレスラッチ回路31で取り込まれ、処理モジュール12からのアクセス情報RAS(Row Address Strobe)はロウデコーダ27に転送される。一方、処理モジュール12からのアクセス情報CAS(Column Address Strobe)はカラムデコーダ26に転送される。
メモリバンク111のデータの読み出しをする際に読み出されたデータが両サイドのセンスアンプ23−1,23−2あるいは24−1,24−2で増幅される。カラムセレクタ25は読み出されたデータからCAS情報によって要求されるデータを選択し、リードデータラッチ回路29にデータを転送する。
メモリバンク111へのデータの書き込み動作も読み出しと同様である。ただし、処理モジュール12から発行されたライトデータがメモリセルアレイに書き込む前にライトラッチ回路30でデータを保持する。
本第1の実施形態によれば、複数の垂直のメモリバンクをプロセッサや演算ユニットの直下に置くことによって多ポート入出力のメモリマクロを実現できる。そこで、1つのプロセッサあるいは演算ユニットに対するデータの読み出しおよび書き込みを並列に動作させることが可能となる。
さらに、このメモリバンクレイアウトを実現する際、メモリバンクまたはマクロ間を接続することによって横のデータ転送のバス面積はメモリアレイ上に隠蔽することができ、一般的なマルチプロセッサのクロスバーの面積の問題やSoCのチップのシステムバスの面積増加を改善することが可能となる。
さらに、このメモリバンクレイアウトを実現する際、メモリバンクまたはマクロ間を接続することによって横のデータ転送のバス面積はメモリアレイ上に隠蔽することができ、一般的なマルチプロセッサのクロスバーの面積の問題やSoCのチップのシステムバスの面積増加を改善することが可能となる。
<第2実施形態>
図7は、本発明の第2の実施形態に係る共有メモリ装置を示すシステム構成図である。
図7は、本発明の第2の実施形態に係る共有メモリ装置を示すシステム構成図である。
本第2の実施形態においては、複数のメモリバンク111を含む複数メモリシステムを搭載する共有メモリ装置10Aにおいて、メモリインタフェース間に複数ポートを接続することによりメモリ間データ転送および演算ユニットの通信をメモリ外部回路の介在なしに実行できるように構成されている。
本共有メモリ装置10Aは、複数のメモリシステム11−1,11−2、・・・、および複数(図7の例では4)の処理モジュール12−1〜12−4を有している。
メモリシステム11−1の図中の上下に処理モジュール12−1,12−2が配置され、メモリシステム11−2の図中の上下に処理モジュール12−3,12−4が配置されている。
そして、メモリシステム11−1のメモリインタフェースは、2つの処理モジュール12−1,12−2からアクセス可能で、かつ、他の図中の右側に隣接するメモリシステム11−2および/または図示しない左側に隣接するメモリインタフェース間でデータ配線3−1,13−2、システムバス14−1,14−2と接続される、アクセスパスコントローラ112A−1として構成されて、複数のメモリバンクセットを共有できるように形成されている。
同様に、メモリシステム11−1のメモリインタフェースは、2つの処理モジュール12−3,12−4からアクセス可能で、かつ、他の図中の左側に隣接するメモリシステム11−1および/または図示しない右側に隣接するメモリインタフェース間でデータ配線13−2,13−3、システムバス14−2,14−3と接続される、アクセスパスコントローラ112A−2として構成されて、複数のメモリバンクセットを共有できるように形成されている。
メモリシステム11−1の図中の上下に処理モジュール12−1,12−2が配置され、メモリシステム11−2の図中の上下に処理モジュール12−3,12−4が配置されている。
そして、メモリシステム11−1のメモリインタフェースは、2つの処理モジュール12−1,12−2からアクセス可能で、かつ、他の図中の右側に隣接するメモリシステム11−2および/または図示しない左側に隣接するメモリインタフェース間でデータ配線3−1,13−2、システムバス14−1,14−2と接続される、アクセスパスコントローラ112A−1として構成されて、複数のメモリバンクセットを共有できるように形成されている。
同様に、メモリシステム11−1のメモリインタフェースは、2つの処理モジュール12−3,12−4からアクセス可能で、かつ、他の図中の左側に隣接するメモリシステム11−1および/または図示しない右側に隣接するメモリインタフェース間でデータ配線13−2,13−3、システムバス14−2,14−3と接続される、アクセスパスコントローラ112A−2として構成されて、複数のメモリバンクセットを共有できるように形成されている。
マルチプロセッサと特定用途の演算ユニット(DSP, I/O回路など)を搭載するシステムにはプロセッサ(たとえば、図7における処理モジュール12−1,12−3)間の通信と演算ユニット(たとえば、図7における処理モジュール12−2,12−4)間の通信が同じデータバスを使用すると、データバスのアクセス衝突が多くなってしまう。
そこで、本実施形態においては、プロセッサ間のデータバスとシステムバスを別々にしている。図7のメモリシステム11−1,11−2のメモリアレイ上に配置される複数のデータ配線はマルチプロセッサ間のデータバスと特定の演算ユニット間のシステムバスそれぞれ上下に配置している。
図7共有メモリ装置10Aにおいてプロセッサ間のデータの衝突を軽減するために各プロセッサ間のデータ配線はプライベート(Private)配線にする。両端にある左右のメモリバンクのインタフェース(アクセスパスコントローラ)を隣接のバンクのインタフェース(アクセスパスコントローラ)と接続することによって複数のメモリバンクセットを共有することができる。
そこで、本実施形態においては、プロセッサ間のデータバスとシステムバスを別々にしている。図7のメモリシステム11−1,11−2のメモリアレイ上に配置される複数のデータ配線はマルチプロセッサ間のデータバスと特定の演算ユニット間のシステムバスそれぞれ上下に配置している。
図7共有メモリ装置10Aにおいてプロセッサ間のデータの衝突を軽減するために各プロセッサ間のデータ配線はプライベート(Private)配線にする。両端にある左右のメモリバンクのインタフェース(アクセスパスコントローラ)を隣接のバンクのインタフェース(アクセスパスコントローラ)と接続することによって複数のメモリバンクセットを共有することができる。
すなわち、本第2の実施形態に係る共有メモリ装置10Aは、第1の実施形態の複数のメモリバンクを含むメモリシステム間において、独自のインタフェース回路間のデータ配線を接続するシステムとして構成される。
バスシステムは、いわゆるプライベートとパブリック(Public)の概念を導入して全てのデータバスは共有にアクセスが可能になっている。
コントロール方式は、データ転送の1クロック前にバスチェック信号をアクセスパスコントローラ112Aに送り、アクセスパスコントローラ112Aは全てのバスの状態をチェックして転送可能のバスを選択して次に来るデータのためにバスの使用をロックする。
このようなシステムは、PU間の通信の多いシステムに適している。
バスシステムは、いわゆるプライベートとパブリック(Public)の概念を導入して全てのデータバスは共有にアクセスが可能になっている。
コントロール方式は、データ転送の1クロック前にバスチェック信号をアクセスパスコントローラ112Aに送り、アクセスパスコントローラ112Aは全てのバスの状態をチェックして転送可能のバスを選択して次に来るデータのためにバスの使用をロックする。
このようなシステムは、PU間の通信の多いシステムに適している。
<第3実施形態>
図8は、本発明の第3の実施形態に係る共有メモリ装置を示すシステム構成図である。
図8は、本発明の第3の実施形態に係る共有メモリ装置を示すシステム構成図である。
本第3の実施形態の共有メモリ装置10Bが第2の実施形態の共有メモリ装置10Aと異なる点は、各メモリシステム11B−1、11B−2においてメモリインタフェースとしてのアクセスパスコントローラを、複数のメモリバンクで共有する代わりに、各メモリバンク111−1〜111−4ごと対応してアクセスパスコントローラ112B−11〜112B−14,112B−21〜112B−24を設け、メモリ領域を共有することが可能なシステムとしてことにある。
したがって、各処理モジュール12B−1〜12B−4も複数(この例では4)のポート(チャネル)を有し、それぞれのポートが対応するアクセスパスコントローラ112B−11〜112B−14,112B−21〜112B−24と接続されている。
したがって、各処理モジュール12B−1〜12B−4も複数(この例では4)のポート(チャネル)を有し、それぞれのポートが対応するアクセスパスコントローラ112B−11〜112B−14,112B−21〜112B−24と接続されている。
そして、本実施形態においては、データ配線としてはプライベート配線の使いわけがなく、全データ線はパブリック配線となる。
アクセスパスコントローラ112B−11〜112B−14,112B−21〜112B−24間は、コマンド/アドレス線15とパブリックデータバス16によって接続されている。
アクセスパスコントローラ112B−11〜112B−14,112B−21〜112B−24間は、コマンド/アドレス線15とパブリックデータバス16によって接続されている。
本第3の実施形態は、マルチプロセッサ構造のシステムにおいて、拡張性を確保するために構成されている。
各処理モジュール12B−1〜12B−4は、上述したように、1つのバンクセットに対する入出力ポートの数がバンクセットの幅に合わせて多数ポートにすることができる。
図8においては、各メモリシステム11B−1,11B−2内にあるメモリバンクのインタフェースがそれぞれ処理モジュール12B−1〜12B−4と接続される。
各処理モジュール12B−1〜12B−4は、上述したように、1つのバンクセットに対する入出力ポートの数がバンクセットの幅に合わせて多数ポートにすることができる。
図8においては、各メモリシステム11B−1,11B−2内にあるメモリバンクのインタフェースがそれぞれ処理モジュール12B−1〜12B−4と接続される。
このように、本第3の実施形態によれば、複数メモリバンクを搭載するメモリシステムにおいて、メモリインタフェース間に複数ポートを接続することによりメモリ間データ転送および演算ユニットの通信をメモリ外部回路の介在なしに実行できる。
なお、さらに、具体的な構成については後で詳述する。
なお、さらに、具体的な構成については後で詳述する。
<第4実施形態>
図9は、本発明の第4の実施形態に係る共有メモリ装置を示すシステム構成図である。
図9は、本発明の第4の実施形態に係る共有メモリ装置を示すシステム構成図である。
本第4の実施形態の共有メモリ装置10Cが第2の実施形態の共有メモリ装置10Aと異なる点は、メモリシステムのメモリインタフェースとしてのアクセスパスコントローラ112C−1,112C−2のパス回路を変更してプロセッサ間の通信用バスとシステムバス用の使い分けを可能にするために、図7の構成にプライベートバス17−1,1−72,17−3・・・を配線したことにある。
メモリシステムのアクセスパスコントローラ112C−1,112C−2の制御方式は、たとえばラウンドーロビン(Round-Robin)などが適用可能である。
本第4の実施形態においては、外部モジュール間の転送方向は2方向に転送可能となり、いわゆる図中の縦方向の転送は、アクセスパスコントローラ112C−1,112C−2でデータ情報をドライブする。一方、横方向の転送は必ず転送バス13−1,13−2,13−3・・・で転送する。
プライベートバス17−1,17−2,17−3・・・と転送バス13−1,13−2,13−3・・・の周波数は、それぞれ異なる周波数で転送することができるように、用途によって任意に設定することが可能である。
プライベートバス17−1,17−2,17−3・・・と転送バス13−1,13−2,13−3・・・の周波数は、それぞれ異なる周波数で転送することができるように、用途によって任意に設定することが可能である。
<第5実施形態>
図10は、本発明の第5の実施形態に係る共有メモリ装置を示すシステム構成図である。
図10は、本発明の第5の実施形態に係る共有メモリ装置を示すシステム構成図である。
本第5の実施形態の共有メモリ装置10Dが第3の実施形態の共有メモリ装置10Bと異なる点は、プライベート配線を概念を導入し、それぞれプロセッサユニット(PU)間の通信用バス18と、PU間以外の演算ユニット間のデータ転送バス19により各アクセスパスコントローラ112D−11〜114D−14、112D−21〜112D−24を接続したことにある。
メモリシステムのアクセスパスコントローラ112D−11〜114D−14、112D−21〜112D−24の制御方式は、たとえばラウンドーロビン(Round-Robin)などが適用可能である。
また、各アクセスパスコントローラ112D−11〜114D−14、112D−21〜112D−24はQ回路を有し、コマンドはバンクにアクセスできない場合、そのアクセス情報はQ回路に保持される。
アクセス先のQ回路がいっぱいになると、アクセス先の1つ前のQラッチにアクセスコマンド情報がとまる。
プライベートパス18とデータ転送バス19の周波数をそれぞれ異なる場合もある。
また、各アクセスパスコントローラ112D−11〜114D−14、112D−21〜112D−24はQ回路を有し、コマンドはバンクにアクセスできない場合、そのアクセス情報はQ回路に保持される。
アクセス先のQ回路がいっぱいになると、アクセス先の1つ前のQラッチにアクセスコマンド情報がとまる。
プライベートパス18とデータ転送バス19の周波数をそれぞれ異なる場合もある。
<第6実施形態>
以下に、第6の実施形態として、上述した第3の実施形態の要部の具体的な構成例につついて、図面に関連つけて説明する。
以下に、第6の実施形態として、上述した第3の実施形態の要部の具体的な構成例につついて、図面に関連つけて説明する。
図11は、第3の実施形態の共有メモリ装置10Bに対応したマルチプロセッサ構造のシステム構成例を示す図である。
図11においては、理解を容易にするために、4個のメモリシステム11E−1〜111E−4を並列に配置した例を示している。
すなわち、図11の共有メモリ装置10Eは、マルチプロセッサ構造のシステムにおいて、拡張性を確保するための構成で、複数バンクセットからなるメモリシステム11E−1〜11E−4の図中の上部に複数の処理モジュール(Logic回路)12E−1〜12−にと接続されている。
すなわち、図11の共有メモリ装置10Eは、マルチプロセッサ構造のシステムにおいて、拡張性を確保するための構成で、複数バンクセットからなるメモリシステム11E−1〜11E−4の図中の上部に複数の処理モジュール(Logic回路)12E−1〜12−にと接続されている。
各処理モジュール12E−1〜12E−4は、1つのバンクセットに対する入出力ポートの数がバンクセットの幅に合わせて多数ポートにすることができる。
図11においては、各バンクセット内にあるメモリバンクのインタフェース(アクセスパスコントローラ)がそれぞれ対応する処理モジュール12E−1〜12E−4と接続される。
前述したように、マルチプロセッサと特定用途の演算ユニット(DSP, I/O回路など)を搭載するシステムにはプロセッサ間の通信と演算ユニット間の通信が同じデータバスを使用すると、データバスのアクセス衝突が多くなってしまう。
そこで、図11のシステムにおいては、プロセッサ間のデータバス系システム30とシステムバス系システム40を別々にしている。
図11に示しているメモリシステム11E−1〜11E−4のメモリアレイ上に配置される複数のデータ配線はマルチプロセッサ間のデータバスと特定の演算ユニット間のシステムバスをそれぞれ上下に配置している。
図11においては、各バンクセット内にあるメモリバンクのインタフェース(アクセスパスコントローラ)がそれぞれ対応する処理モジュール12E−1〜12E−4と接続される。
前述したように、マルチプロセッサと特定用途の演算ユニット(DSP, I/O回路など)を搭載するシステムにはプロセッサ間の通信と演算ユニット間の通信が同じデータバスを使用すると、データバスのアクセス衝突が多くなってしまう。
そこで、図11のシステムにおいては、プロセッサ間のデータバス系システム30とシステムバス系システム40を別々にしている。
図11に示しているメモリシステム11E−1〜11E−4のメモリアレイ上に配置される複数のデータ配線はマルチプロセッサ間のデータバスと特定の演算ユニット間のシステムバスをそれぞれ上下に配置している。
図11のシステムにおいて、演算ユニット間の通信バスやI/Oと接続するシステムは図中の下位部に示している。
第1の実施形態において説明したように、基本的に本実施形態のメモリシステムはメモリバンクを垂直方向に回転することによって下位部の面積が確保できるため、メモリアレイ領域上にシステムバスとして使用することができる。
演算ユニット間の通信バスやI/Oと接続するシステム40は、各メモリシステム11E−1〜11E−4ごとにバスアービタ回路41−1〜41−4を有している。
第1の実施形態において説明したように、基本的に本実施形態のメモリシステムはメモリバンクを垂直方向に回転することによって下位部の面積が確保できるため、メモリアレイ領域上にシステムバスとして使用することができる。
演算ユニット間の通信バスやI/Oと接続するシステム40は、各メモリシステム11E−1〜11E−4ごとにバスアービタ回路41−1〜41−4を有している。
図12は、図11のバスアービタ回路の構成例を示す図である。
図12のバスアービタ41は、バスコントローラ411およびバススイッチ412を有している。
図12のバスアービタ41は、バスコントローラ411およびバススイッチ412を有している。
バスコントローラ411は、リードコマンドRD CMDおよびライトコマンドWT CMDに応じてバススイッチ412を制御する。
バスコントローラは412は、リードコマンドRD CMDの方をライトコマンドWTより優先して処理するように制御する。したがって、両コマンドを受けた場合には、リード処理を実行するために、ストップライトSTOP WTを発行する。
バスコントローラは412は、リードコマンドRD CMDの方をライトコマンドWTより優先して処理するように制御する。したがって、両コマンドを受けた場合には、リード処理を実行するために、ストップライトSTOP WTを発行する。
バススイッチ412は、バスコントローラ411の制御に従って、リードデータRD DATA、ライトデータWT DATAの転送方向を切り替える。
図11のシステムにおいて、プロセッサ間のデータの衝突を軽減するために各プロセッサ間のデータ配線はプライベート(Private)配線にする。
両端にある左右のメモリバンクのインタフェースを隣接のバンクのインタフェースと接続することによって複数のメモリバンクセットを共有することができる。
両端にある左右のメモリバンクのインタフェースを隣接のバンクのインタフェースと接続することによって複数のメモリバンクセットを共有することができる。
図13は、図11のプロセッサ間のデータバス系システム30の1つのメモリバンクセットにおけるインタフェースであるアクセスパスコントローラの構成例を示す図である。
図13の例では、左側バンク用のアクセスパスコントローラ112L、中間バンク用アクセスコントローラ112M、および右側バンク用アクセスパスコントローラ112Rを有する構成例を示している。
図13の例では、左側バンク用のアクセスパスコントローラ112L、中間バンク用アクセスコントローラ112M、および右側バンク用アクセスパスコントローラ112Rを有する構成例を示している。
各アクセスパスコントローラ112L,112M,112Lは、基本的に共通の構成を有し、コマンドパス制御部51(L,M,R)と複数のデータパス制御部52(L,M,R)により構成される。
データパス制御部52に関してはリード制御回路52Rとライト制御回路52Wにそれぞれ分けられる。リード制御回路52RDとライト制御回路52WT対はデータバス1セット制御部である。
データパス制御部52に関してはリード制御回路52Rとライト制御回路52Wにそれぞれ分けられる。リード制御回路52RDとライト制御回路52WT対はデータバス1セット制御部である。
図14は、図13の左側バンク用のアクセスパスコントローラ112Lのコマンドパス制御部51Lの構成例を示す回路図である。
図15は、図13の中間バンク用のアクセスパスコントローラ112Mのコマンドパス制御部51Mの構成例を示す回路図である。
図16は、図13の右側バンク用のアクセスパスコントローラ112Rのコマンドパス制御部51Rの構成例を示す回路図である。
また、図17は、コマンドパス制御部51(L,M,R)の処理の概要を説明するためのフローチャートである。
図15は、図13の中間バンク用のアクセスパスコントローラ112Mのコマンドパス制御部51Mの構成例を示す回路図である。
図16は、図13の右側バンク用のアクセスパスコントローラ112Rのコマンドパス制御部51Rの構成例を示す回路図である。
また、図17は、コマンドパス制御部51(L,M,R)の処理の概要を説明するためのフローチャートである。
コマンドパス制御部51Lは、図14に示すように、コンパレータ501L,502L、2入力OR503L,504L、セレクタ505L,506L、ラッチおよびQステートチェッカ507L,508L、Qラッチ(データラッチ)509L,510L、ステートイネーブルセンダ511L,512L、3入力AND513L、バンクアクセスラッチ514L、および転送ラッチ515Lを有している。
コマンドパス制御部51Mは、図15に示すように、コンパレータ521,522,523、3入力OR524、セレクタ525、ラッチおよびQステートチェッカ526、Qラッチ(データラッチ)527、ステートイネーブルセンダ528、およびバンクアクセスラッチ529を有している。
コマンドパス制御部51Rは、図16に示すように、コンパレータ501R,502R、入力OR503R,504R、セレクタ505R,506R、ラッチおよびQステートチェッカ507R,508R、Qラッチ(データラッチ)509R,510R、ステートイネーブルセンダ511R,512R、3入力AND513R、バンクアクセスラッチ514R,および転送ラッチ515Rを有している。
左側バンク用コマンドパス制御部51Lと右側バンク用コマンドパス制御部51Rは、同様の構成を有しており、コマンドの出力方向が左側か右側かで異なるのみである。
また中間バンク用コマンドパス制御部51Mは、3つのコンパレータを有し、セレクタ525、ラッチおよびQステートチェッカ526、Qラッチ(データラッチ)527、ステートイネーブルセンダ528、およびバンクアクセスラッチ529を1組のみ有し、転送ラッチを有するか否かの構成が、コマンドパス制御部51L,51Rと構成が異なるが、基本的な動作は3つの制御部とも同様に行われることから、コマンドパス制御部51(L,M,R)の処理の概要を図17のフローチャートに関連付けて説明する。
また中間バンク用コマンドパス制御部51Mは、3つのコンパレータを有し、セレクタ525、ラッチおよびQステートチェッカ526、Qラッチ(データラッチ)527、ステートイネーブルセンダ528、およびバンクアクセスラッチ529を1組のみ有し、転送ラッチを有するか否かの構成が、コマンドパス制御部51L,51Rと構成が異なるが、基本的な動作は3つの制御部とも同様に行われることから、コマンドパス制御部51(L,M,R)の処理の概要を図17のフローチャートに関連付けて説明する。
図17に示すように、各方向のアドレスをコマンドパス制御部51に取り込み(ST1)、コンパレータ501,502,521〜523でアクセス先をチェックする(ST2)。
入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST3)。
ステップST3で肯定的な判別結果を得た場合、チェッカ507,508,528でアクセスラッチ514,529と、Qラッチ509,510,527の状態をチェックする(ST4)。
アクセスラッチがフルであるか否かをチェックし(ST5)、アクセスラッチがフルの場合、Qラッチがフルか否かをチェック(ST6)、Qラッチがフルの場合、アクセスラッチとQラッチがフル状態であることを後段のバンクに転送する(ST7)。
ステップST5でアクセスラッチがフルでない場合には、セレクタ505,506,525で選択されたコマンドアドレスCAをアクセスラッチに取り込み(ST8)、メモリバンクにアクセスする(ST9)。
また、ステップST6でQラッチがフルでない場合には、セレクタ505,506,525で選択された選択されたコマンドアドレスCAをQラッチに取り込み(ST10)、ステップST5の処理に移行する。
入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST3)。
ステップST3で肯定的な判別結果を得た場合、チェッカ507,508,528でアクセスラッチ514,529と、Qラッチ509,510,527の状態をチェックする(ST4)。
アクセスラッチがフルであるか否かをチェックし(ST5)、アクセスラッチがフルの場合、Qラッチがフルか否かをチェック(ST6)、Qラッチがフルの場合、アクセスラッチとQラッチがフル状態であることを後段のバンクに転送する(ST7)。
ステップST5でアクセスラッチがフルでない場合には、セレクタ505,506,525で選択されたコマンドアドレスCAをアクセスラッチに取り込み(ST8)、メモリバンクにアクセスする(ST9)。
また、ステップST6でQラッチがフルでない場合には、セレクタ505,506,525で選択された選択されたコマンドアドレスCAをQラッチに取り込み(ST10)、ステップST5の処理に移行する。
ステップST3において否定的な判別結果を得た場合には、チェッカ507,508で転送ラッチ515と、Qラッチ509,510の状態をチェックする(ST11)。
転送ラッチがフルであるか否かをチェックし(ST12)、転送ラッチがフルの場合、Qラッチがフルか否かをチェック(ST13)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST14)。
ステップST12で転送ラッチがフルでない場合には、セレクタ505,506で選択されたコマンドアドレスCAを転送ラッチに取り込み(ST16)、転送先のアクセスおよび転送が可能であるか否かを判別し、可能であればコマンドアドレスCAを転送して(ST17)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST14)。
また、ステップST13でQラッチがフルでない場合には、セレクタ505,506で選択された選択されたコマンドアドレスCAをQラッチに取り込み(ST18)、ステップST12の処理に移行する。
転送ラッチがフルであるか否かをチェックし(ST12)、転送ラッチがフルの場合、Qラッチがフルか否かをチェック(ST13)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST14)。
ステップST12で転送ラッチがフルでない場合には、セレクタ505,506で選択されたコマンドアドレスCAを転送ラッチに取り込み(ST16)、転送先のアクセスおよび転送が可能であるか否かを判別し、可能であればコマンドアドレスCAを転送して(ST17)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST14)。
また、ステップST13でQラッチがフルでない場合には、セレクタ505,506で選択された選択されたコマンドアドレスCAをQラッチに取り込み(ST18)、ステップST12の処理に移行する。
次に、リード制御回路52Rの具体的には構成例について説明する。
図18は、図13の左側バンク用のアクセスパスコントローラ112Lのリード制御回路52RDの構成例を示す回路図であって、PU ID=REF ID(自バンクへのアクセス)の場合の状態を示す図である。
図19は、図13の左側バンク用のアクセスパスコントローラ112Lのリード制御回路52RDの構成例を示す回路図であって、PU ID>REF ID(自バンクへのアクセスでない)の場合の状態を示す図である。
図20は、図13のンク用のアクセスパスコントローラ112のリード制御回路52RDの構成例を示す回路図であって、PU ID<REF ID(自バンクへのアクセスでない)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図21は、図13のンク用のアクセスパスコントローラ112のリード制御回路52RDの構成例を示す回路図であって、PU ID>REF ID(自バンクへのアクセスでない)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図22は、図13の右側バンク用のアクセスパスコントローラ112Rのリード制御回路52RDの構成例を示す回路図であって、PU ID=REF ID(自バンクへのアクセス)の場合の状態を示す図である。
図23は、図13の右側バンク用のアクセスパスコントローラ112Rのリード制御回路52RDの構成例を示す回路図であって、PU ID<REF ID(自バンクへのアクセスでない)の場合の状態を示す図である。
また、図24は、リード制御回路52RDの処理の概要を説明するためのフローチャートである。
図19は、図13の左側バンク用のアクセスパスコントローラ112Lのリード制御回路52RDの構成例を示す回路図であって、PU ID>REF ID(自バンクへのアクセスでない)の場合の状態を示す図である。
図20は、図13のンク用のアクセスパスコントローラ112のリード制御回路52RDの構成例を示す回路図であって、PU ID<REF ID(自バンクへのアクセスでない)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図21は、図13のンク用のアクセスパスコントローラ112のリード制御回路52RDの構成例を示す回路図であって、PU ID>REF ID(自バンクへのアクセスでない)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図22は、図13の右側バンク用のアクセスパスコントローラ112Rのリード制御回路52RDの構成例を示す回路図であって、PU ID=REF ID(自バンクへのアクセス)の場合の状態を示す図である。
図23は、図13の右側バンク用のアクセスパスコントローラ112Rのリード制御回路52RDの構成例を示す回路図であって、PU ID<REF ID(自バンクへのアクセスでない)の場合の状態を示す図である。
また、図24は、リード制御回路52RDの処理の概要を説明するためのフローチャートである。
図18、図19、図22、および図23のリード制御回路52RDは、コンパレータ601、ラウンドロビンセレクタ602、セレクタ603、ラッチおよびQステートチェッカ604、Qラッチ(データラッチ)605、転送ラッチ606、ステートイネーブルセンダ607、および2入力AND608を有している。
また、図20および図21のリード制御回路52RDは、図18、図19、図22、および図23のリード制御回路52RDの構成の2入力AND608の代わりに、セレクタ609を有する。
基本的な動作は3つのリード制御回路とも同様に行われることから、リード制御回路の処理の概要を図24のフローチャートに関連付けて説明する。
また、図20および図21のリード制御回路52RDは、図18、図19、図22、および図23のリード制御回路52RDの構成の2入力AND608の代わりに、セレクタ609を有する。
基本的な動作は3つのリード制御回路とも同様に行われることから、リード制御回路の処理の概要を図24のフローチャートに関連付けて説明する。
図24に示すように、各方向のアドレスをリード制御回路52RDに取り込み(ST21)、コンパレータ601でアクセス先をチェックする(ST22)。
入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST23)。
ステップST23で肯定的な判別結果を得た場合、チェッカ604で転送ラッチ606と、Qラッチ605の状態をチェックする(ST24)。
そして、次のクロックCLKの転送ラッチ606とQラッチ605の状態を後段のバンクに転送する(ST25)。
次に転送ラッチ606がフルであるか否かをチェックし(ST26)、転送ラッチラッチがフルの場合、Qラッチ605がフルか否かをチェック(ST27)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST28)。
ステップST26で転送ラッチがフルでない場合には、次のクロックCLKに転送されたデータを転送ラッチに取り込み(ST29)、図中の上方向に転送し(ST30)、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST28)。
また、ステップST27でQラッチがフルでない場合には、転送されたデータをQラッチに取り込み(ST31)、ステップST26の処理に移行する。
入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST23)。
ステップST23で肯定的な判別結果を得た場合、チェッカ604で転送ラッチ606と、Qラッチ605の状態をチェックする(ST24)。
そして、次のクロックCLKの転送ラッチ606とQラッチ605の状態を後段のバンクに転送する(ST25)。
次に転送ラッチ606がフルであるか否かをチェックし(ST26)、転送ラッチラッチがフルの場合、Qラッチ605がフルか否かをチェック(ST27)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST28)。
ステップST26で転送ラッチがフルでない場合には、次のクロックCLKに転送されたデータを転送ラッチに取り込み(ST29)、図中の上方向に転送し(ST30)、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST28)。
また、ステップST27でQラッチがフルでない場合には、転送されたデータをQラッチに取り込み(ST31)、ステップST26の処理に移行する。
ステップST23において否定的な判別結果を得た場合には、チェッカ604で転送ラッチ606と、Qラッチ605の状態をチェックする(ST32)。
そして、次のクロックCLKの転送ラッチ606とQラッチ605の状態を後段のバンクに転送する(ST33)。
転送ラッチ606がフルであるか否かをチェックし(ST34)、転送ラッチがフルの場合、Qラッチ605がフルか否かをチェック(ST35)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST36)。
ステップST34で転送ラッチがフルでない場合には、次のクロックCLKに転送されたデータを転送ラッチに取り込み(ST37)、図中の横方向に転送し(ST38)、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST36)。
また、ステップST35でQラッチがフルでない場合には、転送されたデータをQラッチに取り込み(ST39)、ステップST34の処理に移行する。
そして、次のクロックCLKの転送ラッチ606とQラッチ605の状態を後段のバンクに転送する(ST33)。
転送ラッチ606がフルであるか否かをチェックし(ST34)、転送ラッチがフルの場合、Qラッチ605がフルか否かをチェック(ST35)、Qラッチがフルの場合、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST36)。
ステップST34で転送ラッチがフルでない場合には、次のクロックCLKに転送されたデータを転送ラッチに取り込み(ST37)、図中の横方向に転送し(ST38)、転送ラッチとQラッチがフル状態であることを後段のバンクに転送する(ST36)。
また、ステップST35でQラッチがフルでない場合には、転送されたデータをQラッチに取り込み(ST39)、ステップST34の処理に移行する。
次に、ライト制御回路52WTの具体的には構成例について説明する。
図25は、図13の左側バンク用のアクセスパスコントローラ112Lのライト制御回路52WTの構成例を示す回路図であって、直下のPU(処理モジュール)に対応した状態を示す図である。
図26は、図13の左側バンク用のアクセスパスコントローラ112Lのライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)に対応した状態を示す図である。
図27および図28は、図13のンク用のアクセスパスコントローラ112のライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図29は、図13の右側バンク用のアクセスパスコントローラ112Rのライト制御回路52WTの構成例を示す回路図であって、直下のPU(処理モジュール)に対応した状態を示す図である。
図30は、図13の右側バンク用のアクセスパスコントローラ112Rのライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)に対応した状態を示す図である。
また、図31は、ライト制御回路52WTの処理の概要を説明するためのフローチャートである。
図26は、図13の左側バンク用のアクセスパスコントローラ112Lのライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)に対応した状態を示す図である。
図27および図28は、図13のンク用のアクセスパスコントローラ112のライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)の場合で他のバンクへのアクセスする場合の状態を示す図である。
図29は、図13の右側バンク用のアクセスパスコントローラ112Rのライト制御回路52WTの構成例を示す回路図であって、直下のPU(処理モジュール)に対応した状態を示す図である。
図30は、図13の右側バンク用のアクセスパスコントローラ112Rのライト制御回路52WTの構成例を示す回路図であって、直下以外の他のPU(処理モジュール)に対応した状態を示す図である。
また、図31は、ライト制御回路52WTの処理の概要を説明するためのフローチャートである。
図25、図26、図29、および図30のライト制御回路52WTは、コンパレータ701、セレクタ702,703、Qステートチェッカ704、Qラッチ(データラッチ)705、転送ラッチ706,707、およびライトラッチ708を有している。
また、図27および図28のライト制御回路52WTは、図25、図26、図29、および図30のライト制御回路52WTの構成のコンパレータ701とライトラッチ708のみを有する。
基本的な動作は3つのライト制御回路とも同様に行われることから、ライト制御回路の処理の概要を図31のフローチャートに関連付けて説明する。
また、図27および図28のライト制御回路52WTは、図25、図26、図29、および図30のライト制御回路52WTの構成のコンパレータ701とライトラッチ708のみを有する。
基本的な動作は3つのライト制御回路とも同様に行われることから、ライト制御回路の処理の概要を図31のフローチャートに関連付けて説明する。
処理モジュール(PU)12でライトバリッド信号を受け取り(ST41)、自PUに対する信号である否かの判別を行う(ST42)。
ステップST42において、自PUへの信号であると判別すると、アドレスチェック信号をライト制御回路52WTに発行する(ST43)。
そして、コンパレータ701でデータの転送先のアドレスをチェックする(ST44)。
次に、入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST45)。
ステップST45で肯定的な判別結果を得た場合、次のクロックCLKでライトラッチ708にライトデータを取り込む(ST46)。
ステップST45で否定的な判別結果を得た場合、次のクロックCLKで転送ラッチにライトデータを取り込む(ST47)。
また、ステップST42において、自PUへの信号ではないと判別すると、ライトバリッド信号を横方向に転送する(ST48)。
ステップST42において、自PUへの信号であると判別すると、アドレスチェック信号をライト制御回路52WTに発行する(ST43)。
そして、コンパレータ701でデータの転送先のアドレスをチェックする(ST44)。
次に、入力したアドレスが自バンクのアドレスREF IDであるか否かの判別を行う(ST45)。
ステップST45で肯定的な判別結果を得た場合、次のクロックCLKでライトラッチ708にライトデータを取り込む(ST46)。
ステップST45で否定的な判別結果を得た場合、次のクロックCLKで転送ラッチにライトデータを取り込む(ST47)。
また、ステップST42において、自PUへの信号ではないと判別すると、ライトバリッド信号を横方向に転送する(ST48)。
以上に説明した各実施形態によれば、以下に示すような効果を得ることができる。
複数の垂直のメモリバンクをプロセッサや演算ユニットの直下に置くことによって多ポート入出力のメモリマクロを実現できる。その結果、1つのプロセッサあるいは演算ユニットに対するデータの読み出しおよび書き込みを並列に動作することが可能となる。
さらに、このメモリバンクレイアウトを実現する際、メモリバンクまたはマクロ間の接続することによって横のデータ転送のバス面積はメモリアレイ上に隠蔽することができ、一般的なマルチプロセッサのクロスバーの面積の問題やSoCのチップのシステムバスの面積増加を改善することが可能となる。
複数の垂直のメモリバンクをプロセッサや演算ユニットの直下に置くことによって多ポート入出力のメモリマクロを実現できる。その結果、1つのプロセッサあるいは演算ユニットに対するデータの読み出しおよび書き込みを並列に動作することが可能となる。
さらに、このメモリバンクレイアウトを実現する際、メモリバンクまたはマクロ間の接続することによって横のデータ転送のバス面積はメモリアレイ上に隠蔽することができ、一般的なマルチプロセッサのクロスバーの面積の問題やSoCのチップのシステムバスの面積増加を改善することが可能となる。
また、本実施形態のメモリシステムにおいて隣接のメモリマクロまたはバンクの横方向を接続することにより、図32に示すように複数プロセッサ(PE)が処理している間にメモリマクロ(バンク)間のデータバスを使用して新たなデータが同時に外部とのデータロード/ストアを行うことが可能となる。
図32の構成によって複数メモリバンクを搭載するメモリマクロの中に処理用のメモリバンクとロード/ストアバンクにすることでプロセッサがストールなしに連続にデータを処理することが可能になる(ダブルバッファ機能)。
この機能を使用する際、データのロード/ストアの配線は下位部のシステムバスでデータ転送することによって本実施形態のメモリシステムの共有メモリの特徴を生かしながら、ロード/ストア時間を隠蔽することが可能である。
図32の構成によって複数メモリバンクを搭載するメモリマクロの中に処理用のメモリバンクとロード/ストアバンクにすることでプロセッサがストールなしに連続にデータを処理することが可能になる(ダブルバッファ機能)。
この機能を使用する際、データのロード/ストアの配線は下位部のシステムバスでデータ転送することによって本実施形態のメモリシステムの共有メモリの特徴を生かしながら、ロード/ストア時間を隠蔽することが可能である。
本実施形態のメモリシステムにおいて図33に示す構成のようなマルチプロセッサのパイプライン処理をすることができる構造になる。その上に、全く関係のない複数のパイプライン処理を同じシステム上に並列処理することが実現できる。
また、図34に示すように本実施形態のメモリシステムにおいてパイプライン処理の段数が可変できるシステムになっている。
本実施形態のメモリシステムにおいて隣接のメモリマクロまたはバンクの横方向を接続することにより、図35に示すように、メモリ領域を共有することができる。各プロセッサのメモリ領域が異なる際、共有メモリ領域を適切に割り当てることによって共有メモリの容量使用効率を上げることが可能となる(メモリのパーティション)。
本実施形態のメモリシステムにおいて隣接のメモリマクロまたはバンクの横方向を接続することにより、図35に示すように、メモリ領域を共有することができる。各プロセッサのメモリ領域が異なる際、共有メモリ領域を適切に割り当てることによって共有メモリの容量使用効率を上げることが可能となる(メモリのパーティション)。
また、マルチプロセッサの並列処理の性能に反映する重要な要素のひとつはデータの入出と処理のバランスの問題である。データの入出またはプロセッサ間のデータ転送によって処理がオーバーヘッドになることを解決するために複数種類のデータバスを分けてバスの使用効率を上げられる。
さらに、各種類のバスの周波数をチューニングすることを可能にすることでデータ転送のロードバランスを最適化し、SoCシステムの性能を向上することが可能となる。
さらに、各種類のバスの周波数をチューニングすることを可能にすることでデータ転送のロードバランスを最適化し、SoCシステムの性能を向上することが可能となる。
また、本実施形態のメモリシステムにおいて、集積度の高DRAMを使用する際、隣接のメモリアクセスのレイテンシーとDRAMのアクセスレイテンシーを軽減するために水平方向の複数バンクにある時間ごとにコマンド/アドレスを次々のメモリバンクに発行することで水平方向のメモリバンクインターリーブを実現することができる。水平方向(横方向:バンクの配列方向)のメモリバンクインターリーブのデータ転送をすることにより、メモリアクセスのレイテンシーを隠蔽することが可能である。そこで、システムの処理性能を向上することができる。
10,10A〜10E・・・共有メモリ装置、11−1〜11−n・・・メモリシステム、111−1〜111−n・・・メモリバンク、112・・・メモリインタフェース、112A−1,112A−2、121B−11〜121B−14、121B−14〜121B−24・・・アクセスパスコントローラ、12、12−1〜12−4・・・処理モジュール。
Claims (14)
- 少なくとも一つの処理モジュールと、
上記処理モジュールによりアクセス可能な少なくとも一つのメモリシステムと、を有し、
上記メモリシステムは、
複数のメモリバンクと、
上記処理モジュールと接続される少なくとも一つのメモリインタフェースと、を含み、
上記各メモリバンクの入出力ポートと上記メモリインタフェースとがそれぞれ直接接続されている
共有メモリ装置。 - 上記メモリシステムを複数含み、
上記各メモリシステムの各メモリインタフェースは、バスとの接続部を少なくとも一つ有し、
各メモリインタフェースは、上記バスで並列的に接続されている
請求項1記載の共有メモリ装置。 - 上記処理モジュールが上記各メモリシステムに対応するように少なくとも一つずつ対応するように設けられ、
上記各メモリシステムのメモリインタフェースは、対応する上記メモリシステムと接続されている
請求項2記載の共有メモリ装置。 - 上記メモリシステムは各メモリバンクそれぞれに直接接続される複数のメモリインタフェースを有し、
上記処理モジュールは、異なるチャネルで上記複数のメモリインタフェースとそれぞれ接続されている
請求項1記載の共有メモリ装置。 - 上記メモリシステムを複数含み、
上記各メモリシステムの各メモリインタフェースは、バスとの接続部を少なくとも一つ有し、
各メモリインタフェースは、上記バスで並列的に接続されている
請求項4記載の共有メモリ装置。 - 上記処理モジュールが上記各メモリシステムに対応するように少なくとも一つずつ対応するように設けられ、
上記各メモリシステムのメモリインタフェースは、対応する上記メモリシステムと接続されている
請求項5記載の共有メモリ装置。 - 上記メモリシステムを複数含み、
上記各メモリシステムの各メモリインタフェースは、複数のバスとそれぞれ接続可能な接続部を複数有し、
各メモリインタフェースは、上記複数の接続部を通して上記各バスで並列的に接続され、
上記メモリインタフェースは、マルチ処理モジュールシステムのバス制御部と、システムバス制御部と、を有する
請求項1記載の共有メモリ装置。 - 上記メモリシステムを複数含み、
上記メモリシステムは各メモリバンクそれぞれに直接接続される複数のメモリインタフェースを有し、
上記処理モジュールは、異なるチャネルで上記複数のメモリインタフェースとそれぞれ接続され、
上記各メモリシステムの各メモリインタフェースは、複数のバスとそれぞれ接続可能な接続部を複数有し、
各メモリインタフェースは、上記複数の接続部を通して上記各バスで並列的に接続され、
上記メモリインタフェースは、マルチプロセッサシステムのバス制御部と、システムバス制御部と、を有する
請求項1記載の共有メモリ装置。 - 上記複数のバスには、マルチ処理モジュール間のデータ転送バスとシステムバスと、を含み、
上記データ転送バスとシステムバスは異なる周波数で駆動される
請求項7記載の共有メモリ装置。 - 上記複数のバスには、マルチ処理モジュール間のデータ転送バスとシステムバスと、を含み、
上記データ転送バスとシステムバスは異なる周波数で駆動される
請求項8記載の共有メモリ装置。 - 上記メモリシステムの複数のメモリバンクにそれぞれ異なるタイミングでコマンド/アドレスを発行することにより、上記メモリバンクの配列方向におけるバスインタリーブデータ転送を行う
請求項2記載の共有メモリ装置。 - 上記メモリシステムの複数のメモリバンクにそれぞれ異なるタイミングでコマンド/アドレスを発行することにより、上記メモリバンクの配列方向におけるバスインタリーブデータ転送を行う
請求項4記載の共有メモリ装置。 - 上記メモリシステムの複数のメモリバンクにそれぞれ異なるタイミングでコマンド/アドレスを発行することにより、上記メモリバンクの配列方向におけるバスインタリーブデータ転送を行う
請求項7記載の共有メモリ装置。 - 上記メモリシステムの複数のメモリバンクにそれぞれ異なるタイミングでコマンド/アドレスを発行することにより、上記メモリバンクの配列方向におけるバスインタリーブデータ転送を行う
請求項8記載の共有メモリ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005220938A JP2007034943A (ja) | 2005-07-29 | 2005-07-29 | 共有メモリ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005220938A JP2007034943A (ja) | 2005-07-29 | 2005-07-29 | 共有メモリ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007034943A true JP2007034943A (ja) | 2007-02-08 |
Family
ID=37794085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005220938A Pending JP2007034943A (ja) | 2005-07-29 | 2005-07-29 | 共有メモリ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007034943A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108962332A (zh) * | 2016-05-25 | 2018-12-07 | 力旺电子股份有限公司 | 内存系统及感测装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62208158A (ja) * | 1986-03-08 | 1987-09-12 | Hitachi Ltd | マルチプロセツサシステム |
JP2000021160A (ja) * | 1998-07-01 | 2000-01-21 | Hitachi Ltd | 半導体集積回路及びデータ処理システム |
JP2001344222A (ja) * | 2000-05-31 | 2001-12-14 | Oki Electric Ind Co Ltd | コンピュータ・システム |
WO2005031804A2 (en) * | 2003-09-25 | 2005-04-07 | International Business Machines Corporation | Semiconductor device comprising a plurality of memory structures |
-
2005
- 2005-07-29 JP JP2005220938A patent/JP2007034943A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62208158A (ja) * | 1986-03-08 | 1987-09-12 | Hitachi Ltd | マルチプロセツサシステム |
JP2000021160A (ja) * | 1998-07-01 | 2000-01-21 | Hitachi Ltd | 半導体集積回路及びデータ処理システム |
JP2001344222A (ja) * | 2000-05-31 | 2001-12-14 | Oki Electric Ind Co Ltd | コンピュータ・システム |
WO2005031804A2 (en) * | 2003-09-25 | 2005-04-07 | International Business Machines Corporation | Semiconductor device comprising a plurality of memory structures |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108962332A (zh) * | 2016-05-25 | 2018-12-07 | 力旺电子股份有限公司 | 内存系统及感测装置 |
CN108962332B (zh) * | 2016-05-25 | 2021-03-23 | 力旺电子股份有限公司 | 内存系统及感测装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100855587B1 (ko) | 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법 | |
US5581734A (en) | Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity | |
JP4975288B2 (ja) | 共有メモリ装置 | |
US8737392B1 (en) | Configuring routing in mesh networks | |
US7764564B2 (en) | Semiconductor device | |
US8151088B1 (en) | Configuring routing in mesh networks | |
JPH0594698A (ja) | 半導体記憶装置 | |
US6877071B2 (en) | Multi-ported memory | |
US20010010057A1 (en) | Semiconductor integrated circuit, computer system, data processor and data processing method | |
JP5449686B2 (ja) | マルチポートメモリ及びそのマルチポートメモリを用いたシステム | |
WO2003007155A1 (fr) | Dispositif a circuit integre | |
JPH11149781A (ja) | メモリアーキテクチャ | |
US5602781A (en) | Memory device having a plurality of sets of data buffers | |
US20240099034A1 (en) | Llc chip, cache system and method for reading and writing llc chip | |
TWI511147B (zh) | 使用叢塊及穿矽通孔之平行化檢查點化技術 | |
CN113138956A (zh) | 包括地址映射表的存储器控制器、片上系统和电子设备 | |
JP4205743B2 (ja) | 半導体記憶装置及び半導体装置 | |
JP5162024B2 (ja) | マルチポート型メモリスーパーセル及びデータ経路スイッチング回路を伴う集積回路 | |
JPH0792790B2 (ja) | ベクトル並列計算機 | |
JPS63201851A (ja) | バッファ記憶アクセス方法 | |
JP2007034943A (ja) | 共有メモリ装置 | |
US20070055917A1 (en) | Integrated device | |
JP2000207281A (ja) | デ―タ処理装置および処理方法 | |
JP5017971B2 (ja) | 集積装置 | |
EP2189909B1 (en) | Information processing unit and method for controlling the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080611 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110530 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110607 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111108 |