JP2531648B2 - メモリ装置 - Google Patents

メモリ装置

Info

Publication number
JP2531648B2
JP2531648B2 JP61273099A JP27309986A JP2531648B2 JP 2531648 B2 JP2531648 B2 JP 2531648B2 JP 61273099 A JP61273099 A JP 61273099A JP 27309986 A JP27309986 A JP 27309986A JP 2531648 B2 JP2531648 B2 JP 2531648B2
Authority
JP
Japan
Prior art keywords
address
memory
memory bank
group
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.)
Expired - Lifetime
Application number
JP61273099A
Other languages
English (en)
Other versions
JPS62147546A (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)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は所与の1サイクル内で複数のアドレスからデ
ータを読出したりそこに書込んだりするマルチポート・
ランダム・アクセス・メモリ装置に関するものである。
B.従来技術 高度な計算用のコンピュータでは、メモリは処理の帯
域幅に一致する帯域幅でメモリからデータを読出したり
そこに書込んだりする機能を備えていなければならな
い。従来技術における処理帯域幅を一致させるための1
つの手法はキャッシュ・コンセプトを採用することであ
る。即ちプロセッサが現在活動状態のデータに速くアク
セスできるように作業用データ・セットを高速メモリに
収納している。
大規模な科学計算、特にパイプライン技術を用いたも
のでは(例えば「コンピュータ・アーキテクチャ入門
(Introduction to Computer Architecture)」、第2
版、H.ストーン(Stone)編集、サイエンス・リサーチ
・アソシエイツ、シカゴ(Seience Research Associate
s,Chicago)、1980年、の第9章のT.C.チエン(Chen)
の総説を参照)、高速キャッシュでさえ限界まで酷使さ
れる。例えば3アドレス浮動小数点コードを扱う場合を
考えてみる。
A op B=C ただしA及びBはオペランドのアドレスであり、Cは
オペランドAとBについての演算opの結果である。演算
がn個のステージを用いてパイプライン方式で行なわれ
る場合は、各マシン・サイクルで計算が定常状態に達す
ると、2つのオペランドが計算パイプに入り、一方nサ
イクル前に開始された演算の結果を持つ第3のオペラン
ドが記憶される。全体として1サイクル当り3メモリ動
作が要求される。
プロセッサの性能が向上してサイクル・タイムがます
ます短くなってくるにつれて、3メモリ動作に必要な時
間がより高速のプロセッサを作成するためのネックにな
る。
従来のパイプライン式ベクトル方式は非常に高速のメ
モリを使用し又はメモリ・サイズとアドレス指定の自由
度に対する強い拘束が必要である。例えばCRAY1は各々6
4ワードのベクトル・レジスタ8個、合計で512個の浮動
小数点ワードを使用し、各ベクトルが始めから使用され
連続して動作する。従ってCRAY1は比較的小さなメモリ
と融通性のないアドレス指定体系にならざるを得ない。
1サイクル当り3メモリ動作に要する時間を減少させ
るための従来技術の1つの手法は複製メモリ手法を使用
するものである。3つのアドレス計算のために従来の単
一メモリ・バンクを使用する場合、1サイクル当り合計
3単位の有効な作業のためメモリ・バンクは2回のフェ
ッチと1回の記憶を実行しなければならない。複製メモ
リ手法では、同一のメモリ・バンクを2個供給し、全て
を重複して各バンクに1コピーずつ記憶することによ
り、フェッチ帯域幅を軽減する。全てを重複して記憶す
るため、各バンクから1つのオペランドを並列的にフェ
ッチし、結果を両方のバンクに並列的に記憶することに
よって、フェッチ帯域幅が軽減される。かかるシステム
では、各バンクは各サイクルに3単位ではなく2単位の
作業、即ち1回のフェッチ及び1回の記憶を実行する。
即ち従来技術の複製メモリ手法は単一バンク・メモリよ
り1.5倍速いように見える。従って、従来技術の複製メ
モリ手法では、1命令サイクルが単一バンク・メモリの
3メモリ・アクセス・サイクルではなく2メモリ・アク
セス・サイクルをスクイズすることが必要である。
従来技術の単一バンク・メモリ及び複製メモリ手法
は、読出し動作と書込み動作の間でメモリに対するアク
セスが衝突する可能性があるため、性能が限定される。
従って、読出し動作を書込み動作から離れた時点で行な
われなければならない。
C.発明が解決しようとする問題点 本発明はメモリに対する読出しアクセスと書込みアク
セスの間で衝突が起こる可能性を克服しそれによってメ
モリ装置の性能を高めるマルチポート・メモリ装置を提
供するものである。
D.問題点を解決するための手段 本発明は1命令サイクル内で2個の読出しアドレス及
び1個の書込アドレスに応答して2個の読出しアドレス
から読出されたデータを供給し、且つ受け取ったデータ
を1個の書込みアドレスに書込むためのマルチポート・
メモリ装置である。メモリ装置は2個のメモリ・パンク
で構成されたグループを2個有し、各グループは2個の
読出しアドレスの一方及び1個の書込みアドレスに応答
して2個のグループの各々について2個のバンクの一方
から読出されたデータを2個の読出しアドレスの一方に
供給し、且つ受け取ったデータを2個のグループの内の
他方のバンク内の2個の書込みアドレスの各々に書込
む。2個のメモリ・バンクの2個のグループを制御する
ためのポインタ手段がメモリ・バンクに対する読出し及
び書込みアクセスを管理して、2個のバンクのうちの有
効データを持っている1つが読出しアドレスに応じて読
出され、また各サイクルでデータが他方のバンクに書込
まれるようにする。
ポインタ手段は衝突が防止されるようにメモリ・アク
セスを管理する。2個のグループの各々の中の一方のバ
ンクが読出しアドレスに応じてデータを供給するように
指示され、他方のバンクは1個の書込みアドレスに応じ
てデータを冗長に書込むのに利用でき、したがってメモ
リ・バンクの各グループは所与のアドレスに対しその2
個のメモリ・バンクのうちの少なくとも1つに有効デー
タを含むことになる。
E.実施例 図を参照しながら本発明の好ましい実施例の詳細な説
明を行なう。
E1.概説 本発明では、幅dのデータ項目を記憶するための記憶
場所をM個有し、1サイクル内に2個の読出し動作と1
個の書込み動作を実行でき、サイクル・タイムがtであ
るパイプライン式マルチポートRAM(ランダム・アクセ
ス・メモリ)を構築する方法が示される。
データ項目はサイクル・タイムがtの通常のRAMのバ
ンクで構成される2個のグループに記憶される。各グル
ープはバンク0及びバンク1と呼ばれる2個のバンクを
有する。各バンクは幅dのデータ項目を記憶するための
記憶場所をM個有する。各グループはまたサイクル・タ
イムがt/2より長くないポインタRAMを有する。ポインタ
RAMは少なくともlog22の幅のデータ項目を記憶するため
の場所をM個有しており、1つのバンク・グループのポ
インタRAMの1つの記憶場所にそのグループの特定のバ
ンクを指すポインタを記憶できる。
次の特性が最初に確立され、マルチポートRAMの動作
中維持される。
データ項目lがマルチポートRAMの記憶場所1に記憶
される場合、各グループgにおいてデータ項目lの有効
なコピーがバンクb(g、1)の記憶場所1に記憶され
る。バンクb(g、1)を指すポインタはグループgは
ポインタRAMの場所1に記憶される。
E2.動作方法 第1A図乃至第1C図に、本発明のマルチポートRAMの動
作の一例を示す。読出しアドレス数は2であり、書込ア
ドレス数は1である。従って、2つのバンク・グルー
プ、即ちグループ0及びグループ1がある。各グループ
はバンク0及びバンク1と呼ばれる2つのバンクを有す
る。グループ0を指すポインタRAMをP0と呼び、グルー
プ1を指すポインタRAMをP1に呼ぶことにする。
第1A図に示すように、マルチポートRAMの記憶場所
5、6、7及び8の初期内容が値50、60、70及び80であ
ると仮定する。さらに、各グループのバンク0の記憶場
所5、6、7及び8は最初に有効データを有するものと
する。これが2つのポインタRAM P0及びP1の記憶場所
5、6、7及び8で値0によって反映されている。
次に、最初の動作が読出しアドレスa(0)=5、a
(1)=6及び書込みアドレスc(0)=7で実行され
るものとする。さらに、この動作で値100が記憶場所に
書込まれるものとする。
そうすると、記憶場所5に有効データを有するグルー
プ0内のバンクの指標b(0、5)がポインタRAM P0内
の記憶場所5から読出しによってフェッチされる。同様
に、記憶場所6に有効データを有するグループ1内のバ
ンクの指標b(1、6)がポインタRAM P1内の記憶場所
6から読出しによってフェッチされる。b(0、5)=
0なので、アドレスa(0)=5からの読出しデータは
グループ0のバンク0からフェッチされる。グループ0
のバンク0は読出しビジーなので、値100がグループ0
のバンク1のアドレス7に書込まれる(第1B図参照)。
従ってグループ0のバンク1は記憶場所7に有効データ
を有することになる。このことはポインタRAM P0の記憶
場所に値1を書込むことによって反映される。同様に、
b(1、6)=0なので、アドレスa(1)=6からの
読出しデータはグループ1のバンク0からフェッチされ
る。グループ1のバンク0は読出しビジーなので、値10
0がグループ1のバンク1のアドレス7にも書込まれ
る。従ってグループ1のバンク1は記憶場所7に有効デ
ータを有することになる。このことはポインタRAM P1の
記憶場所の値1を書込むことによって反映される。その
結果得られた状態を第1B図に示す。
次に、別の動作が読出しアドレスa(0)=7、a
(1)=8及び書込みアドレスc(0)=5で実行され
るものとする。さらに、この動作で値200が記憶場所5
に書込まれるものとする。
記憶場所7に有効データを有するグループ0内にバン
クの指標b(0、7)がポインタRAM P0内の記憶場所7
から読出しによってフェッチされる。同様に、記憶場所
8に有効データを有するグループ1内のバンクの指標b
(1、8)がポインタRAM P1内の記憶場所8から読出し
によってフェッチされる。b(0、7)=1なので、ア
ドレスa(0)=7からの読出しデータはグループ0の
パンク1からフェッチされる。グループ0のバンク1は
読出しビジーなので、値200がグループ0のバンク0の
アドレス5に書込まれる。従ってグループ0のバンク0
は記憶場所5に有効データを有することになる。このこ
とはポインタRAM P0の記憶場所5に値0を書込むことに
よって反映される(第1C図参照)。b(1、8)=0な
ので、アドレスa(1)=8からの読出しデータはグル
ープ1のバンク0からフェッチされる。グループ1のバ
ンク0は読出しビジーなので、値200がグループ1のバ
ンク1のアドレス5にも書込まれる。従ってグループ1
のバンク1は記憶場所5に有効データを有することにな
る。このことはポインタRAM P1の記憶場所5に値1を書
込むことによって反映される。この新しい状態を第1C図
に示す。
E3.実施形態 第2A図、第2B図、第2C図及び第2D図に2個の読出しア
ドレスによる読出し動作及び1個の書込アドレスによる
書込み動作を同時に実行できるマルチポートRAMメモリ
装置を示す。
第2A図、第2B図、第2C図及び第2D図に示すメモリ装置
は1命令サイクル内に第1アドレスa(0)、第2アド
レスa(1)及び第3アドレスc(0)に応答して第1
アドレス及び第2アドレスから読出されたデータを供給
し、受け取ったデータを第3アドレスに書込む。第1、
第2及び第3アドレスはそれぞれアドレス・レジスタ10
1、102及び105に供給される。第1アドレス及び第2ア
ドレスから読出されたデータはそれぞれの出力レジスタ
129及び149に供給にされる。第3アドレスに書込むため
受け取られるデータはレジスタ133で受け取られる。
装置10は第1グループ11、即ちそれぞれパターン0及
びバンク1と記した2つつのメモリ・バンク126及び132
からなるグループ0を含んでいる。第1グループ11はレ
ジスタ101からレジスタ121並びにマルチプレクサ124及
び130を介して2つのバンク126及び132の一方に移動さ
れる第1アドレスa(0)に応答する。また、第1グル
ープ11はレジスタ123並びにマルチプレクサ124及び130
を介して2つのバンク126及び132の他方に移動される第
3アドレスc(0)に応答する。第1アドレスa(0)
からのデータは2つのバンク126及び132の一方のデータ
出力ポート127又は135から供給される。データは次にマ
ルチプレクサ128を介して出力レジスタ129に供給され
る。
入力レジスタ133で受け取ったデータはドライバ136又
は134を介して2つのバンク126又は132のデータ・ポー
ト127又は135に供給される。一方のバンクのみが書込み
イネーブルにされる。書込みイネーブルにされたバンク
に第3アドレスc(0)が供給されたデータが書込まれ
る。従って、所与の1メモリ・アクセス・サイクル中に
2つのバンクの一方からデータが読出され、他方にデー
タが書込まれる。
装置はさらに、第2グループ12、即ちそれぞれバンク
0及びバンク1と記した2つのメモリ・バンク146及び1
52からなるグループ1を含んでいる。2つのメモリ・バ
ンク146及び152からなる第2グループ12は第1グループ
1即ちグループ0と同じ構成である。ただしレジスタ12
2を介して移動される第2アドレスa(1)がレジスタ1
03からの第3アドレスc(0)と共にマルチプレクサ14
4及び150に供給される。第2グループは2つのバンクの
一方から読出されたデータをデータ・ポート147又は155
及びマルチプレクサ148を介して出力レジスタ149に供給
する。他方のバンクはレジスタ133から受け取ったデー
タをドライバ156又は154を介して第3アドレスc(0)
に書込む。
2つのバンクの内の有効データを含むバンクが読出し
アドレスa(0)又はa(1)に応じて読出され、レジ
スタ133を介して受け取られたデータが他方のバンクに
書込まれるように第1グループ11及び第2グループ12を
制御するためのポインタ手段が装置10に関連づけられて
いる。
ポインタ手段はそれぞれ第1及び第2グループ内の第
1及び第2アドレスに有効データを含むバンクを指すポ
インタを記憶するための手段13及び14を含むんでいる。
手段13はマルチプレクサ104を介してレジスタ101からの
第1アドレスa(0)に応答してデータ出力レジスタ10
8にポインタを供給する。ポインタはRAM107に記憶さ
れ、アドレス・ポート106を介してアクセスされる。ま
た、手段13はマルチプレクサ104を介してレジスタ103内
の第3アドレスc(0)に応答してデータ入力ポート11
2で受け取られたデータをポート106内のアドレスでRAM1
07に書込む。第2グループ12に関連づけられた手段14は
第1アドレスではなくレジスタ102からの第2アドレス
a(1)に応答する点以外は同様な構成である。
さらに、第1グループ内の有効データを含むバンクに
第1アドレスa(0)を供給し、他方のバンクに第3ア
ドレスを供給する第1手段15が第1グループ11に対する
ポインタ手段は含まれている。第1手段15は第1アドレ
スa(0)に対応するポインタRAM107のデータ出力ポー
トで供給されたポインタをラッチするフリップフロップ
109を含んでいる。ポインタは真の出力110及び補数出力
111を供給するフリップフロップ109中に維持される。真
の出力110及び補数出力111は第1グループに供給され、
その結果、マルチプレクサ124及び130は有効データを有
する一方のバンクに第1アドレスを供給し、一方、他方
のバンクは書込みイネーブルにされる。また、補数出力
111はポインタRAM107のデータ入力ポート112に供給さ
れ、その結果第3アドレスc(0)の有効データが他方
のバンクに記憶されていることを示すポインタがポイン
タRAM107に書込まれる。
第2グループはまた第2グループ12内の有効データを
含むバンクに第2アドレスa(1)を供給し、第2グル
ープ12内の他方のバンクに第3アドレスを供給するため
の第2手段16を含んでいる。これは第1グループについ
て上述したのと同じ構成である。
第2A図乃至第2D図に示す装置10の動作について以下に
詳しく説明する。
読出しアドレスa(0)及びa(1)がレジスタ101
及び102にロードされる。書込みアドレスc(0)がレ
ジスタ103にロードされる。
レジスタ101からのアドレスa(0)をマルチプレク
サ104を介してバンク0のポインタRAM107のアドレス・
ポート106に送ることにより、ポインタ値b(0、a
(0))がフェッチされる。RAM107は読出しを実行し、
その結果がポインタRAM107のデータ出力ポート108から
フリップフロップ109にロードされる。フリップフロッ
プ109の非反転出力110は読出し動作を実行するグループ
0のバンクの指標を与える。フリップフロップ109の反
転出力111は書込み動作を実行するグループ0のバンク
の指標及びRAM107のデータ入力ポート112に送られるb
(0、c(0))の新しい値を与える。
ポインタb(0、a(0))がフェッチされた後、レ
ジスタ103からのアドレスc(0)をマルチプレクサ104
を介してポインタRAM107のアドレス・ポート106に送
り、ポインタRAM107に読出し動作を実行させることによ
り、新しい値b(0、c(0))がRAM107に記憶され
る。
同様に、レジスタ102からのアドレスa(1)をマル
チプレクサ113を介してバンク1のポインタRAM115のア
ドレス・ポート114に送ることによりポインタ値b
(1、a(1))がフェッチされる。RAM115は読出しを
実行し、その結果がポインタRAM115のデータ出力ポート
116からフリップフロップ117にロードされる。フリップ
フロップ117の非反転出力118は読出し動作を実行するグ
ループ1のバンクの指標を与える。フリップフロップ11
7の反転出力119は書込み動作を実行するグループ1のバ
ンクの指標及びRAM115のデータ入力ポート120に送られ
るb(1、c(0))の新しい値を与える。
ポインタb(1、a(1))がフェッチされた後、レ
ジスタ103からのアドレスc(0)をマルチプレクサ113
を介してバンク1のポインタRAM115のアドレス・ポート
114に送り、ポインタRAM115に読出し動作を実行させる
ことにより新しいポインタ値b(1、c(0))がRAM1
15に記憶される。
ポインタ値b(0、a(0))及びb(1、a
(1))がフリップフロップ108及び117にロードされる
とき、アドレスa(0)の値がレジスタ101からパイプ
ライン式にレジスタ121に送られ、アドレスa(1)の
値がレジスタ102からパイプライン式にレジスタ122に送
られ、さらにアドレスc(0)の値がレジスタ103から
パイプライン式にレジスタ123に送られる。
b(0、a(0))=0の場合は、レジスタ121内の
パイプライン式に送られてきた読出しアドレスa′
(0)がマルチプレクサ124を介してグループ0のバン
ク0であるメモリ・バンク126のアドレス・ポート125に
送られる。メモリ・バンク126は読出し動作を実行す
る。その結果がメモリ・バンク126のデータ・ポート127
からマルチプレクサ128を介してグループ0のデータ出
力レジスタ129に送られる。b(0、a(0))=0の
場合もレジスタ123内のパイプライン式に送られてきた
書込みアドレスc′(0)がマルチプレクサ130を介し
てグループ0のバンク1であるメモリ・バンクのアドレ
ス・ポート131に送られる。マルチポートRAMに書込まれ
るデータは入力レジスタ133からドライバ134を介してメ
モリ・バンク152のデータ・ポート135に送られる。メモ
リ・バンク132は書込み動作を実行する。
b(0、a(0))=1の場合は、レジスタ121内の
パイプライン式に送られてきた読出しアドレスa′
(0)がマルチプレクサ130を介してメモリ・バンク132
のアドレス・ポート131に送られる。メモリ・バンク132
は読出し動作を実行する。その結果がメモリ・バンク15
2のデータ・ポート135からマルチプレクサ128を介して
グループ0のデータ出力レジスタ129に送られる。b
(0、a(0))=1の場合もレジスタ123内のパイプ
ライン式に送られてきた書込みアドレスc′(0)がマ
ルチプレクサ124を介してメモリ・バンク126のアドレス
・ポート125に送られる。マルチポートRAMに書込まれる
データはデータ入力レジスタ133からドライバ136を介し
てメモリ・バンク126のデータ・ポート127に送られる。
メモリ・バンク126は書込み動作を実行する。
マルチプレクサ124、130及び128の選択線、メモリ・
バンク126及び132の(アクティブ・ロー)書込み信号な
らびにドライバ134及び136の(アクティブ・ロー)出力
イネーブル信号はフリップフロップ109の非反転出力110
及び反転出力111によって直接制御される。
同様に、b(1、a(0))=0の場合、レジスタ12
2内のパイプライン式に送られてきた読出しアドレス
a′(1)がマルチプレクサ144を介してグループ1の
バンク0であるメモリ・バンク146のアドレス・ポート1
45に送られる。メモリ・バンク146は読出し動作を実行
する。その結果がメモリ・バンク146のデータ・ポート1
47からマルチプレクサ148を介してグループ1のデータ
出力レジスタ149に送られる。b(1、a(0))=0
の場合もレジスタ123内のパイプライン式に送られてき
た書込みアドレスc′(0)がマルチプレクサ150を介
してグループ1のバンク1であるメモリ・バンク152の
アドレス・ポート151に送られる。マルチポートRAMに書
込まれるデータはデータ入力レジスタ133からドライバ1
54を介してメモリ・バンク152のデータ・ポート155に送
られる。メモリ・バンク152は書込み動作を実行する。
b(1、a(1))=1の場合、レジスタ122内のパ
イプライン式に送られてきた読出しアドレスa′(1)
がマルチプレクサ150を介してメモリ・バンク152のアド
レス・ポート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の(アクティブ・ロー)出力
イネーブル信号はフリップフロップ117の非反転出力118
と反転出力119によって直接制御される。
第3図は第1A図乃至第1C図に示した動作が実行される
ときの第2A図乃至第2D図の装置についての自明なタイミ
ング・ダイヤグラムを示したものである。
表1に第2図の装置を作るために使用できる広く市販
されている構成要素のリストを示す。これらの構成要素
を使って1サイクルに2回の読出しと1回の書込みが実
行できる、記憶装置2K、サイクル・タイムが約100ミリ
秒の3ポートRAMを構築することができる。これは現在
入手可能な最高速の浮動小数点ALUと乗算器チップ内100
ミリ秒というサイクル・タイムに一致する。
表 1 レジスタ 101、102、103、 F374 121、122、123 129、149、133 マルチプレクサ 104、113、124、 F157 130、144、150 128、148 ドライバ 136、134、156、 F244 154 ポインタRAM 107、115 Am93425A バンクRAM 126、132、146、 Am9128−10 フリップフロップ 109、117 F74 F.発明の効果 本発明によれば、特定のメモリ・アクセス・サイクル
中に複数の読出し及び書込みを実行するためのアクセス
の衝突が全くないことは明らかである。ポインタRAMは
非常に速く動作させることができ、ポインタRAMの動作
はメモリ・バンクの動作と時間内にオーバーラップさせ
ることができる。それにより、装置は実質的にメモリ・
バンクのサイクル・タイム中に複数の読出し及び書込み
作業を実行し、従来技術よりも大きな性能上の利点をも
たらす。
【図面の簡単な説明】
第1A図、第1B図及び第1C図は本発明の動作の原理を図示
したチャートである。 第2A図、第2B図、第2C図及び第2D図は全体で本発明の良
好な実施例のダイアグラムを構成する。第2図は第2A
図、第2B図、第2C図及び第2D図の組み合わせを示す図で
ある 第3図は第1A図乃至第1C図を参照しながら説明した例を
実行中の第2A図、第2B図、第2C図及び第2D図の装置の動
作を示すタイミング・チャートである。 11……メモリ・バンクの第1グループ、112……メモリ
・バンクの第2グループ、13、14……ポインタ手段、12
6、132、146、152……メモリ・バンク。
フロントページの続き (72)発明者 テイエン・チ・チエン アメリカ合衆国カリフオルニア州サンノ ゼ、タム・オーシヤンター・ドライブ 6566番地 (72)発明者 ウオルフガング・ヤコブ・ポール アメリカ合衆国カリフオルニア州サンノ ゼ、ロス・ピノス・ウエイ483番地 (56)参考文献 特開 昭54−81045(JP,A) 特開 昭51−29846(JP,A) 特開 昭59−36388(JP,A) 特開 昭60−146342(JP,A)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】1命令サイクル内にそれぞれのレジスタか
    ら供給される第1アドレス、第2アドレス及び第3アド
    レスに応答して前記第1アドレス及び第2アドレスから
    読出したデータを出力レジスタに供給し、入力レジスタ
    から受け取ったデータを前記第3アドレスに書込むメモ
    リ装置であって、 2個のメモリ・バンクを有する第1メモリ・バンク・グ
    ループであって、前記命令サイクル内の所定の時刻に前
    記第1アドレス及び前記第3アドレスに応答して前記第
    1アドレスから読出しデータを前記第1メモリ・バンク
    ・グループの2個のメモリ・バンクの一方へ供給し且つ
    受け取ったデータを前記第1メモリ・バンク・グループ
    の他方のメモリ・バンクの前記第3アドレスに書込む第
    1メモリ・バンク・グループと、 2個のメモリ・バンクを有する第2メモリ・バンク・グ
    ループであって、前記所定の時刻に前記第2アドレス及
    び前記第3アドレスに応答して前記第2アドレスから読
    出したデータを前記第2メモリ・バンク・グループの2
    個のメモリ・バンクの一方に供給し且つ受け取ったデー
    タを前記第2メモリ・バンク・グループの他方のメモリ
    ・バンクの前記第3アドレスに書込む第2メモリ・バン
    ク・グループと、 各命令サイクルで、前記第1メモリ・バンク・グループ
    及び前記第2メモリ・バンク・グループの内の有効デー
    タを含んでいるメモリ・バンク・グループ内の2個のメ
    モリ・バンクの一方が読出され、一方前記有効データを
    含んでいるメモリ・バンク・グループの他方のメモリ・
    バンクにデータが書込まれるように前記第1メモリ・バ
    ンク・グループ及び前記第2メモリ・バンク・グループ
    の各2個のメモリ・データ・バンクを制御するため前記
    第1メモリ・バンク・グループ及び前記第2メモリ・バ
    ンク・グループの各々に設けられたポインタ手段と、 を具備し、 前記ポインタ手段は、 前記第1メモリ・バンク・グループ及び前記第2メモリ
    ・バンク・グループ内の有効データを含んでいるメモリ
    ・バンクを指すポインタを記憶する記憶手段と、 前記記憶手段に記憶されたポインタに応答して前記第1
    アドレスを前記第1メモリ・バンク・グループ内の有効
    データを含んでいるメモリ・バンクに供給し、前記第3
    アドレスを前記第1メモリ・バンク・グループの他方の
    メモリ・バンクに供給する第1手段と、 前記記憶手段に記憶されたポインタに応答して前記第2
    アドレスを前記第2メモリ・バンク・グループ内の有効
    データを含んでいるメモリ・バンクに供給し、前記第3
    アドレスを前記第2メモリ・バンク・グループの他方の
    メモリ・バンクに供給する第2手段と、 前記命令サイクル内の前記第1アドレス、前記第2アド
    レス及び前記第3アドレスに応答して前記ポインタ記憶
    手段から、前記第1メモリ・バンク・グループ及び前記
    第2メモリ・バンク・グループ内の前記第1アドレス及
    び前記第2アドレスにそれぞれ有効データを含んでいる
    メモリ・バンクを指す、前記第1アドレス及び前記第1
    メモリ・バンク・アドレスに関する第1ポインタ及び前
    記第2アドレス及び前記第2メモリ・バンク・グループ
    に関する第2ポインタを読出し、前記ポインタ記憶手段
    に前記第1メモリ・バンク・グループ及び前記第2メモ
    リ・バンク・グループ内の前記第3アドレスに関する他
    方のメモリ・バンクそれぞれを指す第1ポインタ及び第
    2ポインタを書込む書込み手段と を含むことを特徴とするメモリ装置。
JP61273099A 1985-12-20 1986-11-18 メモリ装置 Expired - Lifetime JP2531648B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPS62147546A JPS62147546A (ja) 1987-07-01
JP2531648B2 true 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
WO1989011129A1 (en) * 1988-05-10 1989-11-16 Cray Research, Inc. Vector tailgating in computers with vector registers
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
WO1990015385A1 (en) * 1989-06-02 1990-12-13 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
JPH08501647A (ja) * 1992-09-21 1996-02-20 ユニシス・コーポレイション ディスクドライブ複合のためのマルチポートバッファメモリシステム
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
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
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
JPS62147546A (ja) 1987-07-01

Similar Documents

Publication Publication Date Title
JP2531648B2 (ja) メモリ装置
US4722049A (en) Apparatus for out-of-order program execution
EP1047989B1 (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US4974146A (en) Array processor
US3949379A (en) Pipeline data processing apparatus with high speed slave store
US4339804A (en) Memory system wherein individual bits may be updated
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US4961162A (en) Multiprocessing system for performing floating point arithmetic operations
GB1445746A (en) Data processing system
GB1390384A (en) Microprogramme computer
US5440717A (en) Computer pipeline including dual-ported, content-addressable writebuffer
KR970011208B1 (ko) 파이프라인된 기록버퍼 레지스터
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JPH0414385B2 (ja)
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
US5197145A (en) Buffer storage system using parallel buffer storage units and move-out buffer registers
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M&lt;N&lt;2M
JPS63501904A (ja) 統合したマルチコンピュ−タデ−タ処理装置
EP0224691B1 (en) A multiple read/write access memory system
JPH06230964A (ja) キャッシュメモリを備えた計算機
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JPS5925264B2 (ja) ベクトル命令処理方式
JPH10177515A (ja) デジタル信号処理装置
KR19990066458A (ko) 데이터 처리기
JPS61194566A (ja) ベクトルデ−タ参照制御方式