JPS62147546A - マルチ・ポ−ト・メモリ装置 - Google Patents

マルチ・ポ−ト・メモリ装置

Info

Publication number
JPS62147546A
JPS62147546A JP61273099A JP27309986A JPS62147546A JP S62147546 A JPS62147546 A JP S62147546A JP 61273099 A JP61273099 A JP 61273099A JP 27309986 A JP27309986 A JP 27309986A JP S62147546 A JPS62147546 A JP S62147546A
Authority
JP
Japan
Prior art keywords
bank
memory
group
address
data
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.)
Granted
Application number
JP61273099A
Other languages
English (en)
Other versions
JP2531648B2 (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS62147546A publication Critical patent/JPS62147546A/ja
Application granted granted Critical
Publication of JP2531648B2 publication Critical patent/JP2531648B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

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)
  • Computing Systems (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、特定の命令サイクル内の幾つかのアドレスか
らデータを読み出したシ、そこに書き込んだシするマル
チポート・ランダム・アクセス・メモリ装置に関するも
のである。
B、従来技術 高度な計算用のコンピュータでは、メモリは、処理の帯
域幅に一致する帯域幅でメモリからデータを読み出した
り、そこに書き込んだシする機能を備えていなければな
らない。従来技術における処理帯域幅を一致させるため
の1つの手法は、キャッシュ・コンヒブトを採用するこ
とである。すなわち、高速メモリを使って、プロセッサ
が現在活動状態のデータに速くアクセスできるように、
実行データ・セットを含めている。
大規模な科学計算、特にパイプライン技術を用いたもの
では(例えば、「コンピュータ・アーキテクチャ入門(
Introduction  to Computer
Architecture ) J、第2版、H,スト
ーン(Stone )編集、サイエンス・リサーチ・ア
ソシエイツ、シカゴ(5cience  Re5ear
chAssociates、Chicago )、19
80年、の第9章のT、 C,チェノ(Chen )の
総説を参照)、高速キャラツユでさえ限界まで酷使され
る。例えば、3アドレス浮動小数点コードを扱う場合を
考えてみる。
AopB=C ただし、A及びBはオペランドのアドレスであシ、Cは
オペランドAとBについての演算opの結果である。演
算がn個のステージを用いてパイプライン方式で行なわ
れる場合は、各マシン・サイクルで計算が定常状態に達
するとき、2つのオペランドが計算パイプに入シ、その
間友、nサイクル前に開始された演算の結果を運ぶ第3
のオペランドが記憶される。要求全体は、1サイクル当
93つの操作である。
プロセッサの性能が向上してサイクル・タイムがますま
す短くなってくるにつれて、3メモリ操作に必要な時間
が、よシ高速のプロセッサを作成するためのネックにな
る。
従来のパイプライン式「ベクトル」方式は、非常に高速
のメモリを使用し、またはメモリ・サイズとアドレス指
定の自由度に対する強い拘束が必要である。例えば、C
RAYlは各々64ワードのベクトル・レジスタ8個、
合計で512個の浮動小数点ワードを使用し、各ベクト
ルは始めから使用され、連続して動く。従ってCRAY
  1は、比較的小さなメモリと融通性のないアドレス
指定体系にならざるを得ない。
1サイクル当り3つのメモリ操作に要する時間量を減少
させるための、従来技術の1つの手法は、複製メモリ手
法を使用するものである。3つのアドレス計算のために
従来の単一メモリ・バンクを使用する場合、1サイクル
当シ合計3単位の有効な作業のため、メモリ・バンクは
2回の取出しと1回の記憶を実行しなければならない。
複製メモリ手法では、同一のメモリ・バンクを2つ供給
し、何でも重複して、各バンクにコピー1部ずつ記憶し
、取出し帯域幅を軽減する。何でも重複して記憶するた
め、各バンクから1つのオペランドを並行して取り出し
、結果を両方のバンクに並行して記憶することによって
、取出し帯域幅が軽減される。かかるシステム中の各バ
ンクは、3単位ではなく2単位の作業、すなわち、各サ
イクルで1回の取出しと1回の記憶を実行する。すなわ
ち、従来技術の複製メモリ手法は、岸−バンク・メモリ
よ91.5倍速いように見える。従って、従来技術の複
製メモリ手法では、1つの命令サイクルが、即−バンク
・メモリ3つではなく2つのメモリ・アクセス・サイク
ルをスクイズすることが必要である。
読出し動作と書込み動作の間でメモリに対するアクセス
が衝突する可相性があるため、従来技術の単一バンク・
メモリ及び複製メモリ手法は、共に性能が限定づれてい
る。従って、読出し動作を書込み動作から離れた時点で
行なわれなければならない。
C9発明が解決しようとする問題点 本発明は、メモリに対する読出しアクセスと書込みアク
セスの間で衝突が起こる可能性を克服し、それによって
メモリ装置の性能を高めるマルチポート・メモリ装置を
提供するものである。
D1問題点を解決するだめの手段 本発明は、1つの命令サイクル内でr+w個のアドレス
に応答して、r個の読出しアドレスから読み出されたデ
ータを供給し、受け取ったデータをW個の書込みアドレ
スに書き込むだめのマルチポート・メモリ装置である。
メモリ装置は、w+1個のメモリ・バンクのグルー11
個から成シ、各グループはr個の読出しアドレスのうち
の1つとW個の書込みアドレスの全てに応答して、r個
のグループのうちの1つ中のw + 1個のバンクの1
つから読み出されたデータをr個の読出しアドレスの各
々に供給し、受け取ったデータをr個のグループ中のw
千1個のうち別の1つのバンクのW個の書込みアドレス
の各々に書き込む。w+1個のメモリ・バンクのグルー
11個を制御するためのボイ/り手段が、メモリ・バン
クに対中る読出し及び書込みアクセスを管理して、有効
データを得るw+1個のバンクのうちの1つが読出しア
ドレスに応じて読み出され、また各サイクルでデータが
他のバンクに書き込まれるようにする。
ポインタ手段は、衝突が防止されるようにメモリ・アク
セスを管理する。r個のグループの各々の中の1つのバ
ンクは、読出しアドレスに応じてデータを供給するよう
に指示されており、残りのwf固のバンクはWf固の書
込みアドレスに応じてデータを冗長に書き込むのに利用
でき、しだがって、メモリ・バンクの各グループは、所
与のアドレスに対してそのw+i個のメモリ・バンクの
うちの少なくとも1つに有効データを含むことになる。
E、実施例 図を参照しながら、本発明の好ましい実施例の詳細な説
明を行なう。
E 1.  概説 本発明では、幅dのデータ項目を記憶するだめの記憶場
所をM個有し、1サイクル内にr個の読出し動作とW個
の書込み動作を実行でき、′ サイクル・タイムがtで
ある、パイプライン式%式% モリ)を作る方法が示される。
データ項目は、サイクル・タイムがtの通常のRAMの
バンクのグルー11個に記憶される。
各グループは、そのグループのバンク0.・・・・、バ
ンクWと呼ばれる:、 w + 1個のバンクを含んで
いる。各バンクは、幅dのデータ項目を記憶するだめの
記憶場所M個を有する。
各グループはまた、サイクル・タイムがtl(w+1)
に等しいかまたはそれ以下のポインタRAMを有する。
ポインタRAMは、少なくとも(log2(W+ 1 
))の幅のデータ項目を記憶するだめの場所をM個有し
ており、1つのバンク・グループのポインタRAMの1
つの記憶場所・テ、そのグループの特定のバンクを指す
ポインタを記憶できる。
次の特性が最初に確立され、マルチポートRAMの動作
中維持される。
データ■がマルチポートRAMの記憶場所1に記憶され
る場合、各グループg中にバンクb(g、1)があシ、
データ項目■の有効なコピーがバンクb(g、1)の記
憶場所1に記憶される。バンクb(g+1)を指すポイ
ンタは、グループgのポインタRAMの場所1に記憶さ
れる。
読出しアドレスa(0)、・・・、a(r−1)と書込
みアドレスc(D)、・・・・、c(w+1)を有する
マルチポートRAMの動作は、次のように実行される。
各グループgについて、グループgのポインタRAM内
のポインタが指示するバンクbの記憶場所a(g)から
値b(g+  a(g))が取り出される。これは時間
t/(w+1)を要する。同時に、書込み衝突(書込み
アドレスのうちの2つが等しいこと)が発見される可能
性がある。
各グループgについて、グループgのバンクb(g% 
a(g))の記憶場所a(g)の内容が取シ出される。
これはLまたはそれ以下の時間を要し、各グループの1
つのバンクを読出しのため使用中に保つ。
各グループgについて、読出しのため使用中でないg中
のW個のバンクbが、7回の書込み動作のうちの1回を
実行する。これを行なうだめの1つの方法は、bがb(
g% a(g))より小さい場合は場所c(b)への書
込み動作をバンクbで実行し、bが(g、a(g)より
大きい場合はc(b−1)への書込み動作をバンクbで
実行することである。この場合、各グループ内で、各書
込みアドレスc(i)を2つのメモリ・バンク、すなわ
ち・(ンク]及びi+1のみに送られなければならない
各グループgについて、記憶場所c(b)への書込み動
作を実行するグルシー1g内のノ(ンクの指標すが、グ
ループgのポインタRAMの記憶場所a(b)に記憶き
れる。これは、各書込みアドレスについて順次行なわれ
、時間wt /(w+1)Lかかからない。この後、次
のアドレスa(1)、・・・・、a (r −1)、C
(1)、・・・・、c(w−1)がすでに使用可能の場
合は、次の指標b(gsa(g))がすでに開始可能で
あり、バンクが前の動作を終了する間に、ノクンクのサ
イクル・タイムの最後の1/(W+1)とオーバーラツ
プされる。
F、2.動作方法 第1A図乃至第1C図に、本発明のマルチポー)RAM
の動作の一例を示す。但し、r=2及びw=1である。
従って、2つのノ(ンク・グループ、すなわち、グルー
プ0とグループ1がある。各グループは、バンク0及び
)(ンク1と呼ばれる2つのバンクを有する。グループ
0な指すポインタRA MをPOと呼び、グループ1を
指すポインタRA MをPlと呼ぶことにする。
第1A図に示すように、マルチポートRAMの記憶場所
5.6.7及び8の初期内容が、値50.60.70及
び80であると仮定する。
さらに、各グループのバンク0の記憶場所5.6.7.
8は最初に有効データを有し、そのことが2つのポイン
タRAM  POlPlの記憶場所5. 6. 7. 
8で値0によって反映されているものと仮定する。
次に、最初の動作がアドレスa(0)=5、a(1)=
6及びe(0)=7で実行されるものとする。さらに、
この動作で、値100が記憶場所に書き込まれるものと
する。
そうすると、記憶場所5に有効データを有するグループ
D内のバンクの指標b(0,5)が、ポインタRAM 
 PO内の記憶場所5から読出しによって取り出される
。同様に、記憶場所乙に有効データを有するグループ1
内のバンクの指標b(1,6)が、ポインタRAM  
Pl内の記憶場所6から読出しによって取り出される。
b(o、5)=0なので、アドレスa(0)=5からの
読出しデータは、グループ0のバンク0から取り出され
る。グループ0のバンク0シま読出しに使用中なので、
値100がグループ0のバンク1のアドレス7に書き込
まれる。グループDのバンク1はこのとき記憶場所に有
効データを有する。このことは、ポインタRAMPOの
記憶場所に値1を書き込むことによって反映される(第
1B図参照)。
同様に、b(1,6)=0なので、アドレスa(1)=
6からの読出しデータは、グループ1のバンク0から取
り出される。グループ1のバンク0は読出しに使用中な
ので、値100がグループ1のバンク1のアドレス7に
も書き込まれる。グループ1のバンク1はこのとき記憶
場所に有効データを有する。このことは、ポインタRA
M  Plの記憶場所に値1を書き込むことによって反
映される。その結果得られる状態を第1B図・寓示す。
次に、もう1つの動作が読出しアドレスa(0)=7、
a(2)=8及び書込みアドレスC(0)=5で実行さ
れるものとする。さらに、この動作で、値200が記憶
場所5に書き込まれるものとする。
次に、記憶場所7に有効データを有するグループ0内に
バンクの指標b(0,7)が、ポインタRAM  PO
内の記憶場所7から読出しによって取シ出される。同様
に、記憶場所8に有効データを有するグループ1内のバ
ンクの指標b(1,8)がポインタRAM  Pl内の
記憶場所8から読出しによって取シ出される。b(0,
7)=1なので、アドレスa (0) = 7からの読
出しデータは、グループOのバンク1から取シ出される
。グループ0のバンク1は、読出しに使用中なので、値
200がグループ0のバンク0のアドレス5に書き込ま
れる。グループ0のバンク0は、このとき記憶場所5に
有効データを有する。このことは、ポインタRAMPO
の記憶場所5に値0を書き込むことによって反映される
(第1C図参照)。
b(1,8)=0なので、アドレスa(1)=8からの
読出しデータは、グループ1のバンク0から取り出され
る。グループ1のバンク0は読出しに使用中なので、値
200がグループ1のバンク1のアドレス5にも書き込
まれる。
グループ1のバンク1は、このとき記憶場所5に有効デ
ータを有する。このことは、ポインタRAM  Piの
記憶場所5に値1を書き込むことによって反映される。
この新しい状態を第1C図に示す。
E 3.  実施形態 第2A図、第2B図、第2C図及び第2D図に、r=2
の読出し動作とW=1の書込み動作を同時に実行できる
、マルチポートR,AMメモリ装置を示す。
第2A図、第2B図、第2C図及び第2D図に示すメモ
リ装置は、命令サイクル内に第1アドレスa (0)、
第2アドレスa(1)及び第3アドレスc(0)に応答
して、第1アドレス及び第2アドレスから読み出された
データを供給し、受け取ったデータを第3アドレスに書
き込む。第1、第2及び第3アドレスはそれぞれアドレ
ス・レジスタ101,102及び103に供給される。
第1アドレス及び第2アドレスから読み出されたデータ
は、それぞれの出力レジスタ129及び149に供給さ
れる。第3アドレスに書き込むため受け取られるデータ
は、レジスタ133内で受け取られる。
装置10は、第1グループ11、すなわち、それぞれバ
ンク0及びバンク1と記した2つのメモリ・バンク12
6.132からなるグループ0を含んでいる。第1グル
ープ11は、レジスタ101からの第1アドレスa(0
)に応答して、それをレジスタ121、マルチプレクサ
124及び150を介して2つのバンク126.132
の一方に移動させる。また、第1グループ11は、第3
アドレスC(0)に応答して。
レジスタ123、マルチプレクサ124及び130を介
して2つのバンク126.132のもう一方に移動させ
る。第1アドレスa(0)からのデータは、2つのバン
ク126.1′52の一方のデータ出力ポート127、
i35から供給される。データは、次にマルチプレクサ
128を介して、出力レジスタ129に供給される。
入力レジスタ133で受け取ったデータは、ドライバ1
36または134を介して、2つのバンク126.13
2のデータ・ポート127、□135に供給され、その
一方のみが書込み可能になる。書込み可能になったその
一方のバンクに第3アドレスc(D)が供給され、デー
タが書き込まれる。従って、特定のメモリ・アクセス・
サイクル中に、2つのバンクの一方からデータが読み出
され、他方にデータが書き込まれる。
装置はさらに、第2グループ12.すなわち、それぞれ
バンクO及びバンク1記した2つのメモリ・バンク14
6.152からなるグループ1を含んでいる。2つのメ
モリ・バンク146゜152からなる第2グループ12
は、第1グループ11、グループ0と同じ構成である。
ただし、レジスタ122を介して移動される第2アドレ
スa(1)が、レジスタ123からの第3アドレスc(
0)と共にマルチプレクサ144.150に供給される
。第2グループは、2つのバンクの一方から読み出され
たデータを、データ・ポート147.155及びマルチ
プレクサ148を介して、出力レジスタ149に供給す
る。もう一方のバンクは、レジスタ133から受け取っ
たデータを、ドライバ156または154を介して第3
アドレスc(0)に書き込む。
有効データを含む2つのバンクの一方が読出しアドレス
a(0)またはa(1)に応じて読み出され、レジスタ
133を介して受け取られたデータがもう一方のバンク
に書き込まれるように第1グループ11及び第2グルー
プ12を制御するためのポインタ手段が、装置1oと関
連している。
ポインタ手段は、それぞれ第1及び第2グル−ブ内の第
1および第2アドレスに有効データを含むバンクを指す
ポインタを記憶するだめの手段13.14を含んでいる
。手段13は、マルチプレクサ104を介してレジスタ
101からの第1アドレスa(0)に応答して、データ
出力レジスタ108にポインタを供給する。ポインタは
、RAMID7に記憶され、アドレス・ポート106を
介してアクセスされる。また、手段13は、マルチプレ
クサ104を介してレジスタ103内の第3アドレスC
(0)に応答して、データ入力ポート112で受け取ら
れたデータをポート106内のアドレスでRAM 10
7に書き込む。第2グループ12と関連する手段14は
、第1アドレスではなくレジスタ102からの第2アド
レスa(1)に応答する点以外は同様な装置を含んでい
る。
さらに、有効データを含む第1グループ内の一方のバン
クに第1アドレスa(0)を供給し、もう一方のバンク
に第3アドレスを供給する第1手段15が、第1グルー
プ11に対するポインタ手段に含まれている。第1手段
15は、第1アドレスa(0)に対応するポインタRA
M107のデータ出力ポートで供給されたポインタをラ
ッチする、フリップフロップ19を含んでいる。ポイン
タは、真の出力110と補数出力111を供給するフリ
ップフロップ109中に維持される。真の出力110と
補数出力111は、第1グループに供給され、その結果
、マルチプレクサ124及び160は有効データを有す
る一方のバンクに第1アドレスを供給し、その間に、も
う一方のバンクは書込み動作可能になる。また、補数出
力111は、ポインタRAM107のデータ入力ポート
112に供給され、その結果、第3アドレスc(0)の
有効データがもう一方のバンクに記憶されていることを
示すポインタが、ポインタRAM1 p 7に書き込ま
れる。
第2グループはまた、有効データを含む第2グループ1
2内の一方のバンクに第2アドレスa(1)を供給し、
第2グループ12内のもう一方のバンクに第3アドレス
を供給するだめの第2手段16を含んでいる。これは、
第1グループについて上述したのと同じ構成である。
第2A図及び第2B図に示す装置10の動作について以
下に詳しく説明する。
読出しアドレスa(0)及びa(1)が、レジスタ10
1及び102にロードされる。書込みアドレスc(0)
が、レジスタ103Kel−ドされる。
レジスタ101からのアドレスa(O)を、マルチプレ
クサ104を介してバンク0のポインタRAM107の
アドレス・ポート106に送ることによシ、ポインタ値
b(0、a(0))が取シ出される。RAM157は読
出しを実行し、その結果がポインタRAM107のデー
タ出力ボート108からフリップフロップ109にロー
ドされる。フリップフロップ109の非反転出力110
は、読出し動作を実行するグループ0のバンクの指標を
与える。フリップフロップ109の反転出力111は、
書込み動作を実行するグループ0のバンクの指標と、R
AM107のデータ入力ポート112に送られるb(0
,c(0))の新しい値を与える。
ポインタb(o、a(O))が取)出された後、レジス
タ106からのアドレスC(0)をマルチプレクサ10
4を介してポインタRAM107のアドレス・ポート1
06に送シ、ポインタRAM107に読出し動作を実行
させることにより、新しい値b(o、c(0))がRA
M107に記憶される。
同様に、レジスタ102からのアドレスa(1)をマル
チプレクサ113を介してバンク1のポインタRAM1
15のアドレス・ポート114に送ることにより、ポイ
ンタ値b(1,a(1))が取シ出される。RAM11
5は読出しを実行し、その結果がポインタRAM115
のデータ出力ボート116から7リツプフロツプ117
にロードされる。フリップフロップ117の非反転出力
118は、読出し動作を実行するグループ1のバンクの
指標を与える。フリツブフロップ1170反転出力11
9は、書込み動作を実行するグループ1のバンクの指標
と、RAM115のデータ入力ポート120に送られる
b(1、c(0))の新しい値を与える。
ポインタb(1,a(1))が取シ出された後、レジス
タ103からのアドレスC(0)をマルチプレクサ11
3を介してバンク1のポインタRAM115のアドレス
・ポート114に送り、ポインタRAM115に読出し
動作を実行させることにより、新しいポインタ値b(1
、e(0))がRAMI 15に記憶される。
ポインタ値b(C1,a(o))及びb(1、a(1)
)がフリップフロップ108及び117にロードされる
とき、アドレスa(0)の値がレジスタ101からパイ
プライン式にレジスタ121に送られ、アドレスa(1
)の値がレジスタ102からパイプライン式にレジスタ
122に送られ、さらにアドレスC(0)の値がレジス
タ103からパイプライン式にレジスタ123に送られ
る。
b(o% a(0))=oの場合は、レジ亥り121内
のパイプライン式に送られてきた読出しアドレスa’(
0)がマルチプレクサ124を介して、グループ0のバ
ンク0であるメモリ・バンク126のアドレス・ポート
125に送られる。メモリ・バンク126は読出し動作
を実行する。その結果が、メモリ・バンク126のデー
タ・ポート127からマルチプレクサ128を介してグ
ループ0のデータ出力レジスタ129に送られる。b(
o、a(0))=oの場合も、レジスタ123内のパイ
プライン式に送られてきた書込みアドレスC’(0)が
、マルチプレクサ130を介して、グループ0のバンク
1であるメモリ・バンクのアドレス・ポート151に送
られる。マルチボードRAMに書き込まれるデータは、
入力レジスタ133からドライバ134を介してメモリ
・バンク132のデータ・ポート135に送られる。メ
モリ・バンク132は、書込み動作を実行する。
b(o、a(O))=1の場合は、レジスタ121内の
パイプライン式に送られてきた読出しアドレスa’(0
)が、マルチプレクサ130を介してメモリ・バンク1
32のアドレス・ポート131に送られる。メモリ・バ
ンク132は、読出し動作を実行する。その結果が、メ
モリ・バンク132のデータ・ポート135からマルチ
プレクサ128を介してグループ0のデータ出力レジス
タ129に送られる。b(o、a(0))=1の場合も
、レジスタ123内のパイプライン式に送られてきた書
込みアドレスe’(0)がマルチプレクサ124を介し
てメモリ・バンク126のアドレス・ポート125に送
られる。マルチポートRAMに書き込まれるデータは、
データ入力レジスタ133からドライバ136を介して
メモリ・バンク126のデータ・ポート127に送られ
る。メモリ・バンク126は、書込み動作を実行する。
マルチプレクサ124.136及r′):128の選択
線、メモリ・バンク126及び132の(アクティブ・
ロー)書込み信号ならびにドライバ134及び136の
(アクティブ・ロー)出カニネーブル信号は、フリップ
フロップ109の非反転出力110及び反転出力111
によって直接制御される。
同様に、b(i、a(Q))=Oの場合、レジスタ12
2内のパイプライン式に送られてきた読出しアドレス&
’ (1’)が、マルチプレクサ144を介してグルー
プ1のバンク0であるメモリ・バンク146のアドレス
・ポート145に送られる。メモリ・バンク146は、
読出し動作を実行する。その結果がメモリ・バンク14
6のデータ・ポート147からマルチプレクサ148を
介してグループ1のデータ出力レジスタ149に送られ
る。b(1、a(0))=00場合モ、レジスタ123
内のパイプライン式に送られてきた書込みアドレスc′
(0)が、マルチプレクサ150を介して、グループ1
のバンク1であるメモリ・バンク152のアドレス・ボ
ー)151に送られる。マルチポートRAMに書き込ま
れるデータは、データ入力レジスタ133からドライバ
154を介してメモリ・バンク152のデータ・ポート
155に送られる。メモリ・バンク152は、書込み動
作を実行する。
b(1、a(1))=1の場合、レジスタ122内のパ
イプライン式に送られてきた読出しアドレスa’ (1
)が、マルチプレクサ150を介してメモリ・バンク1
52のアドレス・ポート151に送られる。メモリ・バ
ンク152は、読出し動作を実行する。その結果がメモ
リ・バンク152のデータ・ポート155からマルチプ
レクサ148を介してグループ0のデータ出力レジスタ
149に送られる。b(1、a(1))=1の場合も、
レジスタ123内のパイプライン式に送られてきた書込
みアドレスc’ (0)が、マルチプレクサ144を介
してメモリ・バンク146のアドレス・ポート145に
送られる。
マルチポートRAMに書き込まれるデータが、データ入
力レジスタ133からドライバ156を介してメモリ・
バンク146のデータ・ポート147に送られる。メモ
リ・バンク146は、書込み動作を実行する。
マルチプレクサ144.150及び148の選択線、メ
モリ・バンク146及び152の(アクティブ・ロー)
書込み信号ならびにドライバ154及び156の(アク
ティブ・ロー)出カニネーブル信号は、フリップ70ツ
ブ117の非反転出力118と反転出力119によって
直接制御される。
第3図は、第1A図乃至第1C図に示した動作が実行さ
れるときの、第2A図乃至第2D図の装置についての自
明なタイミング・ダイヤグラムを示したものである。
表1に、第2図の装置を作るために使用できる広く市販
されている構成要素のリストを示す。
これらの構成要素を使って、1サイクルに2回の読出し
と1回の書込みが実行できる、記憶位置2 K、サイク
ル・タイムが約100ミリ秒の3ポ一トRAMを作るこ
とができる。これは現在入手可能な最高速の浮動小数点
ALUと乗算器チップ内100ミリ秒というサイクル・
タイム:(一致する。
表ル レジスタ   101.102.103.  F374
121.122.123. 129.149.133 マルチプレクサ 104.11!1,124、 F15
7130、144.150゜ 128.148 ドライバ   136.134.156、 F244ポ
インタRAM  107.115     Am934
25AバンクRAM   126.1!12.146、
Am9128−10フリップ70ツブ109,117 
     F74F1発明の効果 本発明によれば、特定のメモリ・アクセス・サイクル中
に複数の読出し及び書込みを実行するための、アクセス
の衝突が全くないことは明らかである。ポインタRAM
は非常に速く動作させることができ、ポインタRAMの
動作はメモリ・バンクの動作と時間的にオーバーラツプ
させることができる。それによシ、装置は実質的次メモ
リ・バンクのサイクル・タイム中に複数の読出し及び書
込み作業を実行し、従来技術よりも大きな性能上の利点
をもたらす。
【図面の簡単な説明】
第1A図、第1B図、および第1C図は、本発明の動作
の原理を図示したチャートである。 第2A図、第2B図、第2C図、および第2D図は、全
体で本発明の良好な実施例のダイアグラムを構成する。 第2図は第2A図、第2B図、第2C図および第2D図
の組み合わせを示す図である。 第3図は、第1A図ないし第1C図を参照しながら説明
した例を実行中の、第2A図、第2B図、第2C図、お
よび第2D図の装置の動作を示す、タイミング・チャー
トである。 11・・・・メモリ・バンクの第1グループ、12・・
・・メモリ・バンクの第2グループ、13.14・・・
・ポインタを行う手段、126,132,146.15
2・・・・メモリ・バンク。 出願人  インタブ六ンヨナル会ビジネス・マシニング
・コ〒ボレーショ/復代理人 弁理士  澤   1)
  俊   夫グt−プO /IQ FIG、2D しぴ又タ C(0)  [:+33] ×  7        × X  50       X   100X   60
       X   80時向 [−一− FIG、 3

Claims (1)

  1. 【特許請求の範囲】 1つの命令サイクル内でr+w個のアドレスに応答して
    、r個の読出しアドレスから読み出されたデータを供給
    し、かつ受け取つたデータをw個の書込みアドレスに書
    き込むマルチポート・メモリ装置において、 それぞれw+1個のメモリ・バンクからなるr組のメモ
    リ・バンク・グループであつて、それぞれがr個の読出
    しアドレスのうちの1つおよびw個の書込みアドレスの
    全てに応答して、r個のグループのうちの1つ中のw+
    1個のメモリ・バンクの1つから読み出されたデータを
    r個の読出しアドレスの各々に供給し、かつ受け取つた
    データをr個のグループ中のw+1個のうちの別の1つ
    のメモリ・バンクのw個の書込みアドレスの各々に書き
    込むものと、 上記r個のメモリ・バンク・グループのそれぞれを制御
    し、w+1個のメモリ・バンクの1つから読出しを行い
    、他のメモリ・バンクにデータを書き込むようにするポ
    インタ手段とを有することを特徴とするマルチポート・
    メモリ装置。
JP61273099A 1985-12-20 1986-11-18 メモリ装置 Expired - Lifetime JP2531648B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US811624 1985-12-20
US06/811,624 US4766535A (en) 1985-12-20 1985-12-20 High-performance multiple port memory

Publications (2)

Publication Number Publication Date
JPS62147546A true JPS62147546A (ja) 1987-07-01
JP2531648B2 JP2531648B2 (ja) 1996-09-04

Family

ID=25207074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61273099A Expired - Lifetime JP2531648B2 (ja) 1985-12-20 1986-11-18 メモリ装置

Country Status (2)

Country Link
US (1) US4766535A (ja)
JP (1) JP2531648B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63225837A (ja) * 1987-03-13 1988-09-20 Fujitsu Ltd 距離付きベクトルアクセス方式
US5168573A (en) * 1987-08-31 1992-12-01 Digital Equipment Corporation Memory device for storing vector registers
US4949247A (en) * 1988-02-23 1990-08-14 Stellar Computer, Inc. System for transferring multiple vector data elements to and from vector memory in a single operation
DE68903280T2 (de) * 1988-05-10 1993-05-27 Cray Research Inc Vektorschlange in computern mit vektorregister.
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
AU5857990A (en) * 1989-06-02 1991-01-07 Atari Corporation System and method for cyclical, offset multiport register operation
US5247637A (en) * 1990-06-01 1993-09-21 Cray Research, Inc. Method and apparatus for sharing memory in a multiprocessor system
US5179672A (en) * 1990-06-19 1993-01-12 International Business Machines Corporation Apparatus and method for modeling parallel processing of instructions using sequential execution hardware
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
US5325496A (en) * 1991-12-24 1994-06-28 Intel Corporation Selectable pointer validation in a computer system
WO1994007200A1 (en) * 1992-09-21 1994-03-31 Unisys Corporation Multiported buffer memory system for disk drive complex
JPH0756815A (ja) * 1993-07-28 1995-03-03 Internatl Business Mach Corp <Ibm> キャッシュ動作方法及びキャッシュ
US5737578A (en) * 1994-11-18 1998-04-07 International Business Machines Corp. Apparatus and method for partitioning multiport rams
US5596740A (en) * 1995-01-26 1997-01-21 Cyrix Corporation Interleaved memory conflict resolution with accesses of variable bank widths and partial return of non-conflicting banks
US5644780A (en) * 1995-06-02 1997-07-01 International Business Machines Corporation Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors
DE19936080A1 (de) * 1999-07-30 2001-02-15 Siemens Ag Multiprozessorsystem zum Durchführen von Speicherzugriffen auf einen gemeinsamen Speicher sowie dazugehöriges Verfahren
US6944731B2 (en) * 2001-12-19 2005-09-13 Agere Systems Inc. Dynamic random access memory system with bank conflict avoidance feature

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4016545A (en) * 1975-07-31 1977-04-05 Harris Corporation Plural memory controller apparatus
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
US4245304A (en) * 1978-12-11 1981-01-13 Honeywell Information Systems Inc. Cache arrangement utilizing a split cycle mode of operation
US4317168A (en) * 1979-11-23 1982-02-23 International Business Machines Corporation Cache organization enabling concurrent line castout and line fetch transfers with main storage
US4467414A (en) * 1980-08-22 1984-08-21 Nippon Electric Co., Ltd. Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories
US4381541A (en) * 1980-08-28 1983-04-26 Sperry Corporation Buffer memory referencing system for two data words
US4424561A (en) * 1980-12-31 1984-01-03 Honeywell Information Systems Inc. Odd/even bank structure for a cache memory
US4580215A (en) * 1983-03-08 1986-04-01 Itt Corporation Associative array with five arithmetic paths
US4654788A (en) * 1983-06-15 1987-03-31 Honeywell Information Systems Inc. Asynchronous multiport parallel access memory system for use in a single board computer system
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US4724520A (en) * 1985-07-01 1988-02-09 United Technologies Corporation Modular multiport data hub

Also Published As

Publication number Publication date
US4766535A (en) 1988-08-23
JP2531648B2 (ja) 1996-09-04

Similar Documents

Publication Publication Date Title
JPS62147546A (ja) マルチ・ポ−ト・メモリ装置
US4722049A (en) Apparatus for out-of-order program execution
EP1047989B1 (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
EP0240032B1 (en) Vector processor with vector data compression/expansion capability
US5440717A (en) Computer pipeline including dual-ported, content-addressable writebuffer
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
JPH0622034B2 (ja) マルチポートベクトルレジスタファイル
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
US5119324A (en) Apparatus and method for performing arithmetic functions in a computer system
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
TW535054B (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
JP3360849B2 (ja) データ情報保持装置
EP0224691B1 (en) A multiple read/write access memory system
JPH04260957A (ja) コンピュータ・システム
JPS61224051A (ja) バッファメモリ制御方法
JP3628339B2 (ja) データアクセスシステム
US4775929A (en) Time partitioned bus arrangement
US6963961B1 (en) Increasing DSP efficiency by independent issuance of store address and data
JPH03225452A (ja) ビットエンコードデータ処理システム及びデータワードにおいてダグビットをそう入/抽出する処理方法
JP2581144B2 (ja) バス制御装置
JP2842024B2 (ja) レジスタファイル回路
JPS6027977A (ja) 並列処理装置
JPH0285943A (ja) データ処理装置
JPS6343782B2 (ja)