JP4715219B2 - 共有メモリ装置 - Google Patents

共有メモリ装置 Download PDF

Info

Publication number
JP4715219B2
JP4715219B2 JP2005034445A JP2005034445A JP4715219B2 JP 4715219 B2 JP4715219 B2 JP 4715219B2 JP 2005034445 A JP2005034445 A JP 2005034445A JP 2005034445 A JP2005034445 A JP 2005034445A JP 4715219 B2 JP4715219 B2 JP 4715219B2
Authority
JP
Japan
Prior art keywords
memory
command
macro
data
address
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.)
Expired - Fee Related
Application number
JP2005034445A
Other languages
English (en)
Other versions
JP2006221432A (ja
Inventor
ゴラゴット ウォンパイサンシン
一雄 谷口
正幸 宮林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005034445A priority Critical patent/JP4715219B2/ja
Priority to US11/344,080 priority patent/US7536516B2/en
Priority to KR1020060011507A priority patent/KR20060090748A/ko
Publication of JP2006221432A publication Critical patent/JP2006221432A/ja
Application granted granted Critical
Publication of JP4715219B2 publication Critical patent/JP4715219B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、プロセッサを含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図17に示すような構成となる。
図17の構成においては、ロジック回路(プロセッサ)1−1〜1−4とメモリマクロ2−1〜2−4は並列処理を優先するため、1対1で接続される。
図17の構成において、ロジック回路1とメモリマクロ2は並列処理を優先するため1対1で接続されるが、ロジック回路1は隣接しているロジックのデータを参照するためには、上位装置を介したパスを使う必要がある。
そこで、ロジック回路1から直接、隣接メモリまでの接続を、一般的に、図18に示すように、クロスバー(Xbar)3で行う構成が採用される。
図17の構成においては、上述したように、ロジック回路1とメモリマクロ2は並列処理を優先するため1対1で接続されるが、ロジック回路1は隣接しているロジック回路1のデータを参照するためには、上位装置を介したパスを使う必要があるため、実際のアクセスを実現するのは困難である。
また、図18の構成においては、上位装置を介することなく、ロジック回路1は隣接しているロジック回路1のデータを参照することが可能であるが、ロジック回路1からメモリ2までの配線が非常に複雑となり、面積増加と長距離配線による性能低下を招くという不利益がある。
また、図18のクロスバー3を用いた構成では、システムのスケーラビリティーの拡張性を上げることが難しくなる。
本発明の目的は、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることが可能な共有メモリ装置を提供することにある。
上記目的を達成するため、本発明の第1の観点の共有メモリ装置は、メモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを有し、異なるメモリシステムのメモリマクロのメモリインタフェース同士が接続され、上記メモリコントロールユニットは、自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
好適には、上記メモリコントロールユニットは、供給されるマクロデータに関するコマンドおよびアドレスを保持するコマンドレジスタと、供給されるマクロデータを保持し、当該マクロデータに関するコマンドが何ステップかをカウントするステップレジスタと、上記コマンドレジスタの保持データと実行中のコマンドとから次に発行されるコマンドと実行中のコマンドとに何クロック差あり、次のコマンドを何クロック目に発行すべきかをスケジューリングするリファレンステーブルと、上記リファレンステーブルによる発行タイミングと実行中のコマンドの時間差分をとる減算器と、を含む
好適には、上記メモリインタフェースは、自メモリシステムの上記プロセッサ、または/および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわるデータを自メモリシステムのメモリマクロ、メモリコントロールユニット、または異なるメモリシステムのメモリインタフェースに転送する。
好適には、上記複数のメモリマクロにおけるメモリインタフェースのうち、他のメモリマクロと接続関係にない入出力部が外部のメモリと接続されている。
好適には、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストする。
本発明の第2の観点の共有メモリ装置は、メモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを有する複数のポートを備え、異なるメモリシステムのメモリマクロの対応するポート同士が接続され、上記メモリコントロールユニットは、自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
本発明の第3の観点の共有メモリ装置は、複数のバンクを含むメモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、上記各メモリシステムのメモリマクロの各バンクは、データ転送が可能なメモリインタフェースを有し、異なるメモリシステムのメモリマクロに対応する各バンクのメモリインタフェース同士が接続され、上記メモリコントロールユニットは、自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
本発明によれば、各メモリシステムのメモリマクロにデータ転送可能なメモリインタフェースを通して、メモリマクロ間でデータ転送が行われる。
また、たとえばアクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストされる。
本発明によれば、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる利点がある。
また、本発明によれば、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となり、その結果、無駄なデータ転送を軽減することができるようになり、システムバスの負荷を軽減することもでき、処理能力の向上を図れる利点がある。
以下、本発明の実施形態を、図面に関連付けて説明する。
<第1実施形態>
図1は、本発明に係る共有メモリ装置の第1の実施形態を示すシステム構成図である。
本共有メモリ装置10は、複数のメモリシステム11−1〜11−nを混載し、各メモリシステム11−1〜11−n間でアクセスが可能で、並列処理を重視したマルチプロセッサ構造のアーキテクチャを採用している。
各メモリシステム11−1〜11−nは、基本的に、データを記憶するたとえばDRAMやSRAM等のメモリマクロ(Memory Macro: MM)12、メモリマクロ12のアクセスを行って所定のデータ処理を行うプロセッサ(Processor: PRC)13、並びに、自ステージのプロセッサ12とメモリマクロ11間の情報(データ、並びに、コマンドおよびアドレス)の授受を行い、かつ、異なるメモリシステムのメモリコントロールユニットとの情報(コマンドおよびアドレスのみ)の授受を行うメモリコントロールユニット(Memory Control Unit: MCU)14を含んで構成されている。
そして、本実施形態におけるメモリマクロ12は、データ転送が可能なメモリインタフェース(Memory Interface: MIF)15を備えており、異なるメモリシステム(本実施形態においては隣接するメモリシステム)のメモリマクロのメモリインタフェース同士が接続されている。
なお、図1は概念的な図であり、メモリマクロ12におけるメモリインタフェース15の配置位置は、実装する場合には図1とは異なる。
具体的には、メモリシステム11−1は、メモリマクロ12−1、プロセッサ13−1、およびメモリコントロールユニット14−1を有する。
メモリシステム11−2は、メモリマクロ12−2、プロセッサ13−2、およびメモリコントロールユニット14−2を有する。
同様にして、メモリシステム11−nは、メモリマクロ12−n、プロセッサ13−n、およびメモリコントロールユニット14−nを有する。
そして、メモリシステム11−1のメモリマクロ12−1のメモリインタフェース15−1が、隣接するメモリシステム11−2のメモリマクロ12−2のメモリインタフェース15−2に接続されている。
メモリシステム11−2のメモリマクロ12−2のメモリインタフェース15−2が、隣接する図示しないメモリシステム(11−3)のメモリマクロ(12−3)のメモリインタフェース(15−3)に接続されている。
同様にして、メモリシステム11−nのメモリインタフェース15−nが、隣接する図示しないメモリシステム(11−n-1)メモリマクロ(12−n-1)のメモリインタフェース(15−n-1)に接続されている。
以上のように、本第1の実施形態の共有メモリ装置10においては、各メモリシステムのメモリマクロにデータ転送可能なメモリインタフェースを設けて、メモリマクロ間でデータ転送可能に構成されている。また、本第1の実施形態においては、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストするように構成されている。
以下、メモリコントロールユニット14(−1〜−n)、およびメモリマクロ12(−1〜−n)のメモリインタフェース15(−1〜−n)の具体的な構成および機能について説明する。
まず、各メモリシステムのメモリコントロールユニット14について説明する。なお、各メモリシステムのメモリコントロールユニットは同様の構成を有する。
図2は、本発明に係るメモリコントロールユニットの一例を示す構成図である。
図2のメモリコントロールユニット14は、コマンドFIFO(Command First In First Out: CMD FIFO)141、ライトレイテンシィカウンタ(Write Latency Counter: WLC)142、メモリアクセスマネージメントユニット(Memory Access Management Unit: MAMU)143、ラッチ144〜146、およびANDゲート147を有する。
コマンドFIFO141は、自メモリシステム11のプロセッサ13により発行されるコマンドおよびアドレスを格納し、MAMU143によるFIFOリード信号FIFO−RDを受けて格納したコマンドおよびアドレス(C/AあるいはCMD/ADDR)をラッチ145に出力する。
また、コマンドFIFO141は、レディ状態時はFIFOレディ(FIFO Ready)信号FIFO−RDYをプロセッサ13に出力し、現在のステートを示すFIFOステート信号FIFO−STをMAMU143に出力する。
ライトレイテンシィカウンタ142は、自システムのメモリマクロ12に対するライトコマンドが発行された場合に、MAMU143からライトイネーブル(Write Enable)信号WR−ENBLを受けて書き込みのレイテンシィを考慮して所定数カウントし、データ入力がレディ状態となったことを示すデータインレディ信号DI−RDYをプロセッサ13に出力する。
このデータインレディ(Data In Ready)信号DI−RDYを受けたプロセッサ13は、ライトデータを発行し、このライトデータ(Data In: DT IN)は一旦ラッチ146にラッチされてメモリマクロ12に供給される。
MAMU143は、自メモリシステム11のメモリマクロ12に対するコマンドおよびアドレス(CMD/ADDR)およびその有効信号(バリッド信号)LDを受けると、入力コマンドを解読し、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ12に対するアクセスにおいて、衝突が起こらないアクセスタイミングを生成し、このタイミングをもってコマンドおよびアドレスをメモリマクロ12に転送するようにFIFOリード信号FIFO−RDをコマンドFIFO141、およびラッチ145に出力する。
MAMU143は、有効と判断したコマンドがライトコマンドの場合には、ライトイネーブル信号WR−ENBLをライトレイテンシィカウンタ142に出力する。
図3は、本発明に係るメモリコントロールユニットにおけるMAMU(メモリアクセスマネージメントユニット)の構成例を示す図である。
図4は、図3におけるレディチェックブロックの構成例を示す図である。
MAMU143は、図3に示すように、基本的に、メモリシステムの数n(図3ではn=4)に応じたレディチェックブロック(Ready Check Block: RCB)1431−0〜1431−3、セレクタ1432、ダウンカウンタ(Down Counter: DCNT)1433、およびMAMUステートマシーン(State Machine: SMCN)1434を有する。
各RCB1431(−0〜−3)は、図3および図4に示すように、自メモリシステム11のメモリマクロ12にアクセスしているコマンドおよびアドレス(CMD/ADDR)の数(図3および図4の例では4)に相当するユニットUNT0〜UNT3、デコーダ14311、およびANDゲート14312を有する。
RCB1431(−0〜−3)は、各メモリシステム11−1〜11−nのメモリマクロ12−1〜12−n(本実施形態ではn=4)に対応して設けられており、図4に示すように、それぞれ対応するマクロデータ(ユニット番号(Unit−No)、並びに、アドレスおよびコマンド(ADDR/CMD))Mac? Di(=3,2,1,0)、マクロ有効信号Mac? ldi、レディ信号RDYi、および実行中のコマンドiCMDが供給される。
デコーダ14311は、マクロデータMac? Diを受けてユニット番号をデコードし、デコード結果に従って対応するユニットUNTにたとえばハイレベルのユニットイネーブル信号UE0〜3を出力する。
ANDゲート14312は、マクロ有効信号Mac? ldiおよびレディ信号RDYiの論理積をとり、両入力信号がハイレベルのときハイレベルの信号S14312を各ユニットUNT0〜UNT3に出力する。
各ユニットUNT0〜3は、同様の構成を有し、それぞれANDゲート14313、コマンドレジスタ(CMDreg)14314、ステップカウンタ(STEPcount)14315、リファレンステーブル(Reference Table)14316、および減算器(Sub)14317を含んで構成されている。
ANDゲート14313は、ANDゲート14312の出力信号S14312とデコーダ14311によるユニットイネーブル信号UE(0〜3)の論理積をとり、両信号がハイレベルのときハイレベルのイネーブル信号SENをコマンドレジスタ14314およびステップカウンタ14315に出力する。
コマンドレジスタ14314は、イネーブル端子ENにANDゲート14313によるハイレベルのイネーブル信号SENを受けてイネーブル状態となり、データ端子Dataに供給されるマクロデータMac? Diのアドレスおよびコマンド情報(ADDR/CMD)を取り込み保持し、保持データをリファレンステーブル14316に出力する。
ステップレジスタ14315は、ロード端子LDにANDゲート14313によるハイレベルのイネーブル信号SENを受けてイネーブル状態となり、データ端子Dataに供給されるマクロデータMac? Diを取り込み保持し、コマンドが何ステップかをカウントし、その結果を減算器14317に出力する。
リファレンステーブル14316は、コマンドレジスタ14314の保持データと実行中のコマンドiCMDとを入力して、次に発行されるコマンドと今実行しているコマンドとに何クロック差があり、次のコマンドを何クロック目に発行すべきかをスケジューリングし、その結果である発行タイミングを減算器14317に出力する。
減算器14317は、リファレンステーブル14316による発行タイミングとコマンドiCMDを入力して、発行タイミングと実行中のコマンド(およびアドレス)の実行中時間の差分をとり、その結果を図3のセレクタ1432に出力する。
図3のセレクタ1432は、各RCB1431(−0〜−3)の複数(本実施形態では4)のユニットUNTの減算器14317の出力値のうち、最大値を選択してダウンカウンタ1433に出力する。
ダウンカウンタ1433は、ステートマシーン1434によりイネーブル状態に制御され、ロード端子ldへのロード信号によりセレクタ1432の出力をロードしてゼロになるまでダウンカウントしてゼロになるとその旨を信号S1433としてステートマシーン1434に出力する。
ステートマシーン1434は、MAMU143のステートを管理し、ダウンカウンタ1433により信号S1433を受けると、自メモリシステム11のレディ信号RDY i(図3の例ではメモリシステム11−1のレディ信号RDY 0)を出力し、また、FIFO リード信号FIFO−RDをコマンドFIFO141に出力する。
なお、図3の例では、メモリシステム11−1のMAMUを想定しており、この場合RCB1431−0からマクロデータMac0 D、マクロ有効信号Mac0 ld0が出力される。
ここで、上記構成を有するMAMU143、およびRCB1431のおける動作の概要を、図5および図6に関連付けて説明する。
図5は、本実施形態におけるMAMUの動作を説明するためのフローチャートである。また、図6は、本実施形態におけるRCBの動作を説明するためのフローチャートである。
MAMU143においては、まず、プロセッサ13により発行されたコマンド/アドレス(iC/A)を入力するか否かの判別を行う(ST1)。
ステップST1において、プロセッサ13により発行されたコマンド/アドレス(iC/A)を入力すると、RCB1431の処理に移行する(ST2)。
RCB1431においては、まず、ステップST21でコマンド/アドレス(C/A)のリフレッシュがあるか否かの判別を行う。
ステップST21において、リフレッシュがあると判別すると、コマンド/アドレス(C/A)をリフレッシュし(ST22)、ステップカウンタ14315をリセットして(ST23)、ステップST24の処理に移行する。
また、ステップST21において、リフレッシュがないと判別すると、ステップST22,ST23の処理を行うことなくステップST24の処理に直接移行する。
ステップST24において、リファレンステーブル14316にプロセッサ13により発行されたコマンド/アドレス(iC/A)と実行中のコマンド/アドレス(refC/A)をロードする。
そして、リファレンステーブル14316によりコマンド/アドレス(C/A)の発行タイミングを検出する(ST25)。
次に、減算器14317において、発行タイミングと実行中のコマンド/アドレス(refC/A)の実行中時間の差分をとる(ST26)。この処理は、メモリマクロ12のアクセスタイムを得る処理である。このアクセスタイムが、セレクタ1432に入力される(ST27)。
MAMU143のセレクタ1432において、RCB1431の出力から最大のカウントする時間をセレクトする(ST3)。
そして、セレクトされた最大のアクセス時間をダウンカウンタ1433にセットする(ST4)。
ダウンカウンタ1433においては、カウント値がゼロ(0)になるまでダウンとカウントし、ゼロになると(ST5)、ステートマシーン1434において自メモリシステム11のレディ信号RDY iを出力し、かつ、FIFOリード信号FIFO−RDをコマンドFIFO141に出力することにより、メモリマクロ12のアクセスを行う(ST6)。
次に、メモリマクロ12(−1〜−n)のメモリインタフェース15(−1〜−n)の具体的な構成および機能について説明する。
図7は、本発明に係るメモリインタフェースの構成例を示す図である。
図7のメモリインタフェース15は、コマンド/アドレスセレクタ(C/A SEL)151、データパスタイミングジェネレータ(Data Path Timing Generator: DPTG)152、メモリタイミングジェネレータ(Memory Timing Generator: MTG)153、およびデータパスセレクタ(Data Path Selector: DPS)154を含んで構成されている。
コマンド/アドレスセレクタ151は、図7に示すように、コマンド/アドレスパスセレクタ(Command Address Path Selector: CAPS)1511、およびコマンド/アドレスデコーダ(Command Address Decoder: CAD)1512を有する。
コマンド/アドレスパスセレクタ1511は、コマンドアドレスデコーダ1512によるイネーブル信号に基づいて、自メモリシステム11のプロセッサ13、右、または/および左側に隣接して配置されたメモリシステムのメモリマクロ12のメモリインタフェース15から転送されたコマンドおよびアドレスを、いずれの方向に出力するかを決定し、右または左側に配置されたメモリシステムのメモリインタフェース15に転送する。
コマンド/アドレスデコーダ1512は、自メモリシステム11のプロセッサ13、右、または/および左側に隣接して配置されたメモリシステムのメモリマクロ12のメモリインタフェース15から転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム11にあるか否かを判別し、その結果をデータパスタイミングジェネレータ152、およびメモリタイミングジェネレータ153に報知する。
データパスタイミングジェネレータ152は、コマンド/アドレスデコーダ1512により、入力したコマンドおよびアドレスに対応したパスがある旨を報知されると、自メモリシステム11のプロセッサ13、右または/および左側に隣接して配置されたメモリシステムのメモリマクロ12のメモリインタフェース15から転送されたデータを、自メモリシステムのメモリマクロ12、あるいはプロセッサ13、または左あるいは右側に配置されたメモリシステム11のメモリマクロ12のメモリインタフェース15に転送すべきパスを選択し、パスするタイミングを制御する信号S152を生成し、信号S152をデータパスセレクタ154に出力する。
メモリタイミングジェネレータ153は、コマンド/アドレスデコーダ1512により、入力したコマンドおよびアドレスに対応したパスがある旨を報知されると、自メモリシステム11のメモリマクロ12にアクセスするタイミングを制御する信号S153を生成し、メモリマクロ12に供給する。
データパスセレクタ154は、データパスタイミングジェネレータ152による信号S152を受けて、自メモリシステム11のプロセッサ13、右または/および左側に隣接して配置されたメモリシステムのメモリマクロ12のメモリインタフェース15から転送されたデータを、自メモリシステムのメモリマクロ12、あるいはプロセッサ13、または左あるいは右側に配置されたメモリシステム11のメモリマクロ12のメモリインタフェース15に選択的に転送する。
図8は、本実施形態におけるデータパスセレクタの具体的な構成例を示す回路図である。
図8のデータパスセレクタ154は、第1ラッチ(LTC1)1541、第2ラッチ(LTC2)1542、第3ラッチ(LTC3)1543、第4ラッチ(LTC4)1544、第1セレクタ(SEL1)1545、第2セクレタ(SEL2)1546、第3セレクタ(SEL3)1547、第4セレクタ(SEL4)1548、ライト用冗長回路1549、ライトバッファ(Write Buffer: WR)1550、リードアンプ(Read Amplifier: RA)1551、およびリード用冗長回路1552を有する。
図8のデータパスセレクタ154は1ビット分の回路であり、たとえば256ビットに対応する場合には同様の回路が256個設けられる。
なお、図8においては、メモリマクロ12のメモリ部はDRAMを想定しており、SA0〜SAmはセンスアンプを示している。また、BLはビット線を示している。
データパスセレクタ154において、第1〜第4セレクタ1545〜1548が選択すべきデータおよびパスは、データパスタイミングジェネレータ152による制御信号S152により制御される。
第1セレクタ1545は、自メモリシステム11のプロセッサ13により発行され、メモリコントロールユニット14を介したグローバルライトデータGWD、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータLDTI、および右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータRDTIが供給され、制御信号S152の指示に従ったデータを選択して第1ラッチ1541に出力する。
第1ラッチ1541にラッチされたライトデータは、冗長回路1549を介してライトバッファ1550に供給され、センスアンプSA0〜SAmに転送されて、アドレス指定されたメモリセルにデータが書き込まれる。
第2セレクタ1546は、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータLDTI、および右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータRDTIが供給され、制御信号S152の指示に従ったいずれかのデータを選択して第2ラッチ1542に出力する。
第2ラッチ1542にラッチされたデータLTDIまたはRTDIは、第3セレクタ1547、および第4セレクタ1548に供給される。
第3ラッチ1543は、自メモリシステム11のメモリマクロ12のメモリ部から読み出されリードアンプ1551、冗長回路1552を介したリードデータをラッチする。第3ラッチ1543にラッチされたデータは第3セレクタ1547、および第4セレクタ1548に供給される。
第4ラッチ1544は、自メモリシステム11のプロセッサ13により発行され、メモリコントロールユニット14を介したグローバルライトデータGWDをラッチする。第4ラッチ1544にラッチされたデータは第3セレクタ1547に供給される。
第3セレクタ1547は、自メモリシステム11で発行されたグローバルライトデータGWD、自メモリシステムのメモリ部から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータLDTI、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータRDTIのいずれかを選択し、左側のメモリシステムのメモリマクロのメモリインタフェースへのデータLTDO、または右側のメモリシステムのメモリマクロのメモリインタフェースへのデータRTDOとして選択し、左側のメモリインタフェース、または右側のメモリインタフェースに転送する。
第4セレクタ1548は、後で説明する下位側バンクからのグローバルリードデータGRD、自メモリシステムのメモリ部から読み出したリードデータ、左側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータLDTI、または右側のメモリシステムのメモリマクロのメモリインタフェースから転送されたデータRDTIのいずれかを選択し、自メモリシステム11のメモリコントロールユニット14を通してプロセッサ13に転送する。
図9は、以上の構成を有するメモリインタフェース15を備えたメモリマクロ間の接続例を示す図である。
図9の例においては、メモリタイミングジェネレータ153はメモリマクロ12のメモリ部に配置されている場合を示している。したがって、図9の各メモリインタフェース15−i,15−i+1には図示していない。
次に、図1の構成を有する共有メモリ装置10の動作を説明する。
まず、たとえば、メモリシステム11−1のプロセッサ13−1が自システムのメモリマクロ12−1の所望のアドレスのメモリセルにアクセスする場合について説明する。
この場合、プロセッサ13−1において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリコントロールユニット14−1に出力される。
メモリコントロールユニット14−1においては、プロセッサ13−1で発行された自メモリシステム11−1のメモリマクロ12−1に対するコマンドおよびアドレス(CMD/ADR)およびその有効信号(バリッド信号)LDに基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ12に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、メモリコントロールユニット14−1から生成したタイミングをもってコマンドおよびアドレスをメモリマクロ12−1に転送するように制御されて、コマンドおよびアドレスがメモリマクロ12−1のメモリインタフェース15−1に出力される。
なお、メモリコントロールユニット14−1においては、コマンドがライトあるいはリードであっても、プロセッサ13−1により発行されたライトデータ、あるいはメモリマクロ12−1から読み出され、あるいはメモリマクロ12−1を通したリードデータは、基本的に素通りする形でメモリマクロ12−1、あるいはプロセッサ13−1に伝播される。
メモリインタフェース15−1においては、メモリコントロールユニット14−1から転送されたコマンドおよびアドレスに基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム11−1にあるか否かが判別される。この場合、自メモリシステム11−1にパスがあるものと判別される。
そして、メモリインタフェース15−1においては、判別結果に基づいて、自メモリシステム11−1のプロセッサ13−1により発行されたライトデータがメモリマクロ12−1のメモリ部に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
あるいは、自メモリシステム11−1のメモリマクロ12−1から読み出されたリードデータがメモリコントロールユニット14−1を介してプロセッサ13−1に転送される。
次に、たとえば、メモリシステム11−1のプロセッサ13−1が右側に隣接するメモリシステム11−2のメモリマクロ12−2の所望のアドレスのメモリセルにアクセスする場合について説明する。
この場合、プロセッサ13−1において、ライトあるいはリードコマンド、およびアクセスすべきアドレスが発行され、メモリコントロールユニット14−1に出力される。
メモリコントロールユニット14−1においては、自メモリシステム11−1のメモリマクロ12−1に対するコマンドおよびアドレスでないことから、プロセッサ13−1により発行されたコマンドおよびアドレスは、隣接するメモリシステム11−2のメモリコントロールユニット14−2に転送される。
メモリコントロールユニット14−2においては、プロセッサ13−1で発行された自メモリシステム11−2のメモリマクロ12−2に対するコマンドおよびアドレス(CMD/ADR)およびその有効信号(バリッド信号)LDに基づいて、入力コマンドが解読され、コマンドに応じた、ライト、リード動作等に応じたメモリマクロ12に対するアクセスにおいて、衝突が起こらないアクセスタイミングが生成される。そして、メモリコントロールユニット14−2から生成したタイミングをもってコマンドおよびアドレスをメモリマクロ12−2に転送するように制御されて、コマンドおよびアドレスがメモリマクロ12-2のメモリインタフェース15−2に出力される。
なお、メモリコントロールユニット14−1においては、コマンドがライトあるいはリードであっても、プロセッサ13−1により発行されたライトデータ、あるいはメモリマクロ12−2から読み出されメモリマクロ12−1を通したリードデータは、基本的に素通りする形でメモリマクロ12−1、あるいはプロセッサ13−1に伝播される。
メモリインタフェース15−1においては、メモリコントロールユニット14-1から転送されたコマンドおよびアドレスを基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム11−1にあるか否かが判別される。この場合、自メモリシステム11−1にパスがないもと判別される。
その結果、メモリインタフェース15−1においては、判別結果に基づいて、自メモリシステム11−1のプロセッサ13−1により発行されたライトデータが右側のメモリシステム11−2のメモリマクロ12−2のメモリインタフェース15−2に転送される。
あるいは、隣接のメモリシステム11−2のメモリマクロ12−2から読み出され、メモリインタフェース15−2から転送されてきたリードデータがメモリコントロールユニット14−1を介してプロセッサ13−1に転送される。
メモリインタフェース15−2においては、メモリコントロールユニット14−2から転送されたコマンドおよびアドレスを基づいて、入力したコマンドおよびアドレスに対応したパスが自メモリシステム11−2にあるか否かが判別される。この場合、自メモリシステム11−2にパスがあるものと判別される。
そして、メモリインタフェース15−2においては、判別結果に基づいて、隣接メモリシステム11−1のプロセッサ13−1により発行され、メモリインタフェース15−1を介してメモリインタフェース15−2に入力されたライトデータがメモリマクロ12−2のメモリ部に転送されて所望のアドレスのメモリセルにデータが書き込まれる。
あるいは、メモリシステム11−2のメモリマクロ12−2から読み出されたリードデータがメモリインタフェース15−2を介して隣接メモリシステム11−1のメモリインタフェース15−1に転送され、メモリコントロールユニット14−1を介してプロセッサ13−1に転送される。
以上説明したように、本第1の実施形態によれば、各メモリシステム11−1〜11−nは、データを記憶するたとえばDRAMやSRAM等のメモリマクロ12、メモリマクロ12のアクセスを行って所定のデータ処理を行うプロセッサ13、並びに、自ステージのプロセッサ12とメモリマクロ11間の情報(データ、並びに、コマンドおよびアドレス)の授受を行い、かつ、異なるメモリシステムのメモリコントロールユニットとの情報(コマンドおよびアドレスのみ)の授受を行うメモリコントロールユニット14を含み、メモリマクロ12は、データ転送が可能なメモリインタフェース15を備えており、異なるメモリシステム(本実施形態においては隣接するメモリシステム)のメモリマクロのメモリインタフェース同士が接続されていることから、メモリまでの配線を簡単化でき、面積増加と長距離配線による性能低下を防止でき、システムのスケーラビリティーの拡張性を上げることができる。
また、本第1の実施形態のように、マルチプロセッサ構造のシステムにおいて、拡張性を確保するために、プロセッサに最適化されたメモリシステムを対になるように組み込むことにより、アプリケーションの必要とする処理能力に最適な数のプロセッサを搭載することができる。あるいは、半導体プロセスの進化により搭載可能なプロセッサ数が増えると、アーキテクチャを変更することなく、処理能力の向上を見込むことが可能となる。この際、メモリシステムへのアクセスする時間を軽減するためにメモリシステム階層構造を採用することが望ましい。
また、本第1の実施形態によれば、アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストすることから、以下の効果を得ることも可能である。
すなわち、マルチプロセッサ構造のシステムにおいて、一般的なメモリシステムにはあるデータが複数のプロセッサに参照される場合、システムバスを使用して何回も同じデータをアクセスしなければならない。
これに対して、本第1の実施形態においては、メモリシステムにはメモリマクロ間のデータ線を通してライトブロードキャストでデータを複数のメモリマクロにコピーすることが可能になる。これによって、プロセッサは直近のローカルマクロにデータをアクセスすることが可能となる。その結果、無駄なデータ転送を軽減することが可能となってシステムバスの負荷を軽減することもでき、処理性能が向上となる。
<第2実施形態>
図10は、本発明に係る共有メモリ装置の第2の実施形態を示すシステム構成図である。
また、図11は、第2の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
本第2の実施形態が上述した第1の実施形態と異なる点は、各メモリマクロ12A−1〜12A−nが、異なるメモリマクロとデータ転送可能なポートPTを複数有することにある。
この場合、メモリインタフェース15は、ポート毎に対応して配置され、その基本的構成は、図7および図8に関連付けて説明した構成と同様である。したがって、その詳細な説明は省略する。
本第2の実施形態においては、メモリタイミングジェネレータ153はメモリマクロ12Aのメモリ部に配置されている場合を示している。したがって、図11の各メモリインタフェース15には図示していない。
その他の構成は第1の実施形態と同様であり、本第2の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができる。
<第3実施形態>
図12は、本発明に係る共有メモリ装置の第3の実施形態を示すシステム構成図である。
また、図13は、第3の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。
本第3の実施形態が上述した第1の実施形態と異なる点は、各メモリマクロ12B−1〜12B−nが複数のバンクBNK1〜BNKmを有し、異なるメモリマクロの対応するバンクとデータ転送可能に構成したことにある。
この場合、メモリインタフェース15は、バンクBNK1〜BNKm毎に配置され、基本的構成は、図7および図8に関連付けて説明した構成と同様である。したがって、その詳細な説明は省略する。
本第3の実施形態においては、各バンクのメモリインタフェースごとにデータパスタイミングジェネレータ152とメモリタイミングジェネレータ153が配置されている。
その他の構成は第1の実施形態と同様であり、本第3の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得ることができる。
<第4実施形態>
図14は、本発明に係る共有メモリ装置の第4の実施形態を示すシステム構成図である。
本第4の実施形態が上述した第1の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第1の実施形態においてメモリシステム11−1のメモリマクロ12−1に配置されたメモリインタフェース15−1の左側の入出力部(ポート)、並びに、メモリシステム11−nのメモリマクロ12−nに配置されたメモリインタフェース15−nの右側の入出力部(ポート)を、外部のメモリ20,21とのインタフェースとして用いたことにある。
その他の構成は第1の実施形態と同様であり、本第4の実施形態によれば、上述した第1の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第4の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
<第5実施形態>
図15は、本発明に係る共有メモリ装置の第5の実施形態を示すシステム構成図である。
本第5の実施形態が上述した第2の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第2の実施形態においてメモリシステム11−1のメモリマクロ12A−1の各ポートに配置されたメモリインタフェース15の左側の入出力部(ポート)、並びに、メモリシステム11−nのメモリマクロ12A−nの各ポートに配置されたメモリインタフェース15の右側の入出力部(ポート)を、外部のメモリ20A,21Aとのインタフェースとして用いたことにある。
その他の構成は第2の実施形態と同様であり、本第5の実施形態によれば、上述した第1および2の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第5の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
<第6実施形態>
図16は、本発明に係る共有メモリ装置の第6の実施形態を示すシステム構成図である。
本第6の実施形態が上述した第3の実施形態と異なる点は、メモリマクロの使用していなかったメモリインタフェースのポート、具体的には第3の実施形態においてメモリシステム11B−1のメモリマクロ12B−1の各バンクBNK1〜BNKmに配置されたメモリインタフェース15の左側の入出力部(ポート)、並びに、メモリシステム11B−nのメモリマクロ12B−nの各バンクBNK1〜BNKmに配置されたメモリインタフェース15の右側の入出力部(ポート)を、外部のメモリ20B,21Bとのインタフェースとして用いたことにある。
その他の構成は第3の実施形態と同様であり、本第6の実施形態によれば、上述した第1および3の実施形態の効果と同様の効果を得られることはもとより、以下の効果を得ることができる。
一般的には、外部メモリのデータ転送にシステムバスを使用するため、ピーク性能は、バスネックになる可能性が高い。
これに対して、本第6の実施形態によれば、システムバスの負荷を軽減することが可能となり、結果として処理能力が上がるという利点がある。
本発明に係る共有メモリ装置の第1の実施形態を示すシステム構成図である。 本発明に係るメモリコントロールユニットの一例を示す構成図である。 本発明に係るメモリコントロールユニットにおけるメモリアクセスマネージメントユニット(MAMU)の構成例を示す図である。 図3におけるレディチェックブロック(RCB)の構成例を示す図である。 本実施形態におけるMAMUの動作を説明するためのフローチャートである。 本実施形態におけるRCBの動作を説明するためのフローチャートである。 本発明に係るメモリインタフェースの構成例を示す図である。 本実施形態におけるデータパスセレクタの具体的な構成例を示す回路図である。 第1の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。 本発明に係る共有メモリ装置の第2の実施形態を示すシステム構成図である。 第2の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。 本発明に係る共有メモリ装置の第3の実施形態を示すシステム構成図である。 第3の実施形態において、本発明に係るメモリインタフェースを備えたメモリマクロ間の接続例を示す図である。 本発明に係る共有メモリ装置の第4の実施形態を示すシステム構成図である。 本発明に係る共有メモリ装置の第5の実施形態を示すシステム構成図である。 本発明に係る共有メモリ装置の第6の実施形態を示すシステム構成図である。 マルチプロセッサの一般的なアーキテクチャを示す図である。 クロスバーを用いたアーキテクチャを示す図である。
符号の説明
10,10A〜10E…共有メモリ装置、11−1〜11−n,11A−1〜11A−n,11B−1〜11B−n…メモリシステム、12−1〜12−n,12A−1〜12A−n,12B−1〜12B−n…メモリマクロ、13−1〜13−n…プロセッサ、14−1〜14−n…メモリコントロールユニット、15−1〜15−n…メモリインタフェース、20,20A,20B…外部メモリ。


Claims (15)

  1. メモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、
    上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、
    上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを有し、
    異なるメモリシステムのメモリマクロのメモリインタフェース同士が接続され
    上記メモリコントロールユニットは、
    自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
    共有メモリ装置。
  2. 上記メモリコントロールユニットは、
    供給されるマクロデータに関するコマンドおよびアドレスを保持するコマンドレジスタと、
    供給されるマクロデータを保持し、当該マクロデータに関するコマンドが何ステップかをカウントするステップレジスタと、
    上記コマンドレジスタの保持データと実行中のコマンドとから次に発行されるコマンドと実行中のコマンドとに何クロック差あり、次のコマンドを何クロック目に発行すべきかをスケジューリングするリファレンステーブルと、
    上記リファレンステーブルによる発行タイミングと実行中のコマンドの時間差分をとる減算器と、を含む
    請求項1記載の共有メモリ装置。
  3. 上記メモリインタフェースは、
    自メモリシステムの上記プロセッサ、または/および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわるデータを自メモリシステムのメモリマクロ、メモリコントロールユニット、または異なるメモリシステムのメモリインタフェースに転送する
    請求項1または2記載の共有メモリ装置。
  4. 上記複数のメモリマクロにおけるメモリインタフェースのうち、他のメモリマクロと接続関係にない入出力部が外部のメモリと接続されている
    請求項1から3のいずれか一に記載の共有メモリ装置。
  5. アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストする
    請求項1から4のいずれか一に記載の共有メモリ装置。
  6. メモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、
    上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、
    上記各メモリシステムのメモリマクロは、データ転送が可能なメモリインタフェースを有する複数のポートを備え、
    異なるメモリシステムのメモリマクロの対応するポート同士が接続され
    上記メモリコントロールユニットは、
    自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
    共有メモリ装置。
  7. 上記メモリコントロールユニットは、
    供給されるマクロデータに関するコマンドおよびアドレスを保持するコマンドレジスタと、
    供給されるマクロデータを保持し、当該マクロデータに関するコマンドが何ステップかをカウントするステップレジスタと、
    上記コマンドレジスタの保持データと実行中のコマンドとから次に発行されるコマンドと実行中のコマンドとに何クロック差あり、次のコマンドを何クロック目に発行すべきかをスケジューリングするリファレンステーブルと、
    上記リファレンステーブルによる発行タイミングと実行中のコマンドの時間差分をとる減算器と、を含む
    請求項6記載の共有メモリ装置。
  8. 上記メモリインタフェースは、
    自メモリシステムの上記プロセッサ、または/および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわるデータを自メモリシステムのメモリマクロ、メモリコントロールユニット、または異なるメモリシステムのメモリインタフェースに転送する
    請求項6または7記載の共有メモリ装置。
  9. 上記複数のメモリマクロにおけるポートのうち、他のメモリマクロと接続関係にない入出力部が外部のメモリと接続されている
    請求項6から8のいずれか一に記載の共有メモリ装置。
  10. アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストする
    請求項6から9のいずれか一に記載の共有メモリ装置。
  11. 複数のバンクを含むメモリマクロと、プロセッサと、メモリマクロのアクセスを制御するメモリコントロールユニットとを含むメモリシステムを複数有し、
    上記各メモリシステムのメモリコントロールユニットは、プロセッサとメモリマクロ間の情報の授受、並びに、異なるメモリシステムのメモリコントロールユニットとの情報の授受を行い、
    上記各メモリシステムのメモリマクロの各バンクは、データ転送が可能なメモリインタフェースを有し、
    異なるメモリシステムのメモリマクロに対応する各バンクのメモリインタフェース同士が接続され
    上記メモリコントロールユニットは、
    自メモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると、入力コマンドを解読し、コマンドに応じた当該メモリマクロに対するアクセスにおいて、受けたコマンドおよびアドレスと実行中のコマンドおよびアドレスとの時間の差分から受けたコマンドおよびアドレスによる上記メモリマクロへのアクセスタイミングを生成し、当該タイミングをもってコマンドおよびアドレスを当該メモリマクロに転送し、他のメモリシステムのメモリマクロに対するコマンドおよびアドレスを受けると異なるメモリシステムのメモリコントロールユニットに転送する
    共有メモリ装置。
  12. 上記メモリコントロールユニットは、
    供給されるマクロデータに関するコマンドおよびアドレスを保持するコマンドレジスタと、
    供給されるマクロデータを保持し、当該マクロデータに関するコマンドが何ステップかをカウントするステップレジスタと、
    上記コマンドレジスタの保持データと実行中のコマンドとから次に発行されるコマンドと実行中のコマンドとに何クロック差あり、次のコマンドを何クロック目に発行すべきかをスケジューリングするリファレンステーブルと、
    上記リファレンステーブルによる発行タイミングと実行中のコマンドの時間差分をとる減算器と、を含む
    請求項11記載の共有メモリ装置。
  13. 上記メモリインタフェースは、
    自メモリシステムの上記プロセッサ、または/および異なるメモリシステムのメモリマクロのメモリインタフェースから転送されたコマンドおよびアドレスを受けて、入力したコマンドおよびアドレスに対応したパスが自メモリシステムにあるか否かの判別結果に応じてデータパスを選択して、アクセスにかかわるデータを自メモリシステムのメモリマクロ、メモリコントロールユニット、または異なるメモリシステムのメモリインタフェースに転送する
    請求項11または12記載の共有メモリ装置。
  14. 上記複数のメモリマクロにおけるバンクのうち、他のメモリマクロと接続関係にない入出力部が外部のメモリと接続されている
    請求項11から13のいずれか一に記載の共有メモリ装置。
  15. アクセスされるデータを異なる一または複数のメモリシステムのメモリマクロに書き込む際にメモリマクロ間のデータ線を通してライトブロードキャストする
    請求項11から14のいずれか一に記載の共有メモリ装置。
JP2005034445A 2005-02-10 2005-02-10 共有メモリ装置 Expired - Fee Related JP4715219B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005034445A JP4715219B2 (ja) 2005-02-10 2005-02-10 共有メモリ装置
US11/344,080 US7536516B2 (en) 2005-02-10 2006-02-01 Shared memory device
KR1020060011507A KR20060090748A (ko) 2005-02-10 2006-02-07 공유 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005034445A JP4715219B2 (ja) 2005-02-10 2005-02-10 共有メモリ装置

Publications (2)

Publication Number Publication Date
JP2006221432A JP2006221432A (ja) 2006-08-24
JP4715219B2 true JP4715219B2 (ja) 2011-07-06

Family

ID=36781249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005034445A Expired - Fee Related JP4715219B2 (ja) 2005-02-10 2005-02-10 共有メモリ装置

Country Status (3)

Country Link
US (1) US7536516B2 (ja)
JP (1) JP4715219B2 (ja)
KR (1) KR20060090748A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070105761A (ko) * 2006-04-27 2007-10-31 엠텍비젼 주식회사 데이터 처리 기능을 구비한 메모리 장치 및 그 데이터 처리방법
JP4497184B2 (ja) * 2007-09-13 2010-07-07 ソニー株式会社 集積装置およびそのレイアウト方法、並びにプログラム
KR102303653B1 (ko) * 2015-07-27 2021-09-17 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
CN109857573B (zh) * 2018-12-29 2021-03-05 深圳云天励飞技术有限公司 一种数据共享方法、装置、设备及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60178566A (ja) * 1984-02-25 1985-09-12 Fujitsu Ltd アクセス制御方式
JPS6129967A (ja) * 1984-07-23 1986-02-12 Nec Corp マルチプロセツサ制御方式
JPS62243059A (ja) * 1986-04-16 1987-10-23 Hitachi Ltd 記憶制御方式
JPH0277867A (ja) * 1988-06-07 1990-03-16 Hitachi Ltd マルチプロセッサシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167489A (en) * 1998-12-22 2000-12-26 Unisys Corporation System and method for bypassing supervisory memory intervention for data transfers between devices having local memories
DE10215362A1 (de) * 2002-04-08 2003-10-30 Infineon Technologies Ag Integrierter Speicher mit einem Speicherzellenfeld mit mehreren Speicherbänken und Schaltungsanordnung mit einem integrierten Speicher
US20050120182A1 (en) * 2003-12-02 2005-06-02 Koster Michael J. Method and apparatus for implementing cache coherence with adaptive write updates
KR20050112973A (ko) * 2004-05-28 2005-12-01 삼성전자주식회사 다중 쓰레드 파이프라인 버스 시스템의 메모리 컨트롤러및 메모리 제어 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60178566A (ja) * 1984-02-25 1985-09-12 Fujitsu Ltd アクセス制御方式
JPS6129967A (ja) * 1984-07-23 1986-02-12 Nec Corp マルチプロセツサ制御方式
JPS62243059A (ja) * 1986-04-16 1987-10-23 Hitachi Ltd 記憶制御方式
JPH0277867A (ja) * 1988-06-07 1990-03-16 Hitachi Ltd マルチプロセッサシステム

Also Published As

Publication number Publication date
US7536516B2 (en) 2009-05-19
US20060179256A1 (en) 2006-08-10
KR20060090748A (ko) 2006-08-16
JP2006221432A (ja) 2006-08-24

Similar Documents

Publication Publication Date Title
JP5752686B2 (ja) 原子メモリ装置
US6504785B1 (en) Multiprocessor system with integrated memory
KR100816053B1 (ko) 셀프 카피 기능을 가지는 메모리 장치, 메모리 시스템 및듀얼 포트 메모리 장치
JP5449686B2 (ja) マルチポートメモリ及びそのマルチポートメモリを用いたシステム
US20150302904A1 (en) Accessing memory
CN101427224A (zh) 用于提供存储器定序提示的存储器集线器和方法
JP2007504530A (ja) 複数のメモリハブモジュールを含むマルチプロセッサシステムおよびその方法
KR20000076226A (ko) Sram과 dram을 포함하는 메모리 및 메모리를 사용하는 시스템 및 방법
JP4199658B2 (ja) 読出及び書込動作でバースト順序が異なるアドレッシングを行うメモリデバイス
US6801980B2 (en) Destructive-read random access memory system buffered with destructive-read memory cache
JPH11149781A (ja) メモリアーキテクチャ
US8392671B2 (en) Memory controller, system, and method for accessing semiconductor memory
JP5599969B2 (ja) マルチポートメモリ、および該マルチポートメモリを備えるコンピュータシステム
JP4956900B2 (ja) アドレススヌープ方法及びマルチプロセッサシステム
KR20170060739A (ko) 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20230054844A (ko) 복수의 명령 서브 큐 및 대응하는 아비터를 갖는 메모리 컨트롤러
JP4715219B2 (ja) 共有メモリ装置
JP5382113B2 (ja) 記憶制御装置及びその制御方法
US7167947B2 (en) Memory post-write page closing apparatus and method
CN111694772A (zh) 存储器控制器
EP2189909B1 (en) Information processing unit and method for controlling the same
JP2007066039A (ja) 共有メモリ装置
JP4726187B2 (ja) 半導体集積回路
KR100813133B1 (ko) 듀얼 포트 메모리 장치, 이를 가지는 메모리 시스템 및듀얼 포트 메모리 장치의 공유 메모리 영역의 적응적사용방법
KR100819968B1 (ko) 반도체 메모리 시스템 및 반도체 메모리 칩

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070731

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110314

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140408

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees