JP4685997B2 - Pipelined dual-port integrated circuit memory - Google Patents

Pipelined dual-port integrated circuit memory Download PDF

Info

Publication number
JP4685997B2
JP4685997B2 JP17069699A JP17069699A JP4685997B2 JP 4685997 B2 JP4685997 B2 JP 4685997B2 JP 17069699 A JP17069699 A JP 17069699A JP 17069699 A JP17069699 A JP 17069699A JP 4685997 B2 JP4685997 B2 JP 4685997B2
Authority
JP
Japan
Prior art keywords
memory cells
address
clock
coupled
circuit
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
JP17069699A
Other languages
Japanese (ja)
Other versions
JP2000030460A (en
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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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
Priority claimed from US09/103,633 external-priority patent/US6078527A/en
Application filed by NXP USA Inc filed Critical NXP USA Inc
Publication of JP2000030460A publication Critical patent/JP2000030460A/en
Application granted granted Critical
Publication of JP4685997B2 publication Critical patent/JP4685997B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Static Random-Access Memory (AREA)
  • Dram (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、一般に、メモリに関し、さらに詳しくは、デュアル・ポート・メモリに関する。
【0002】
【従来の技術】
デュアル・ポート・メモリは、さまざまな用途で有用である。デュアル・ポート・メモリは、通信およびマルチプロセッサ・システムの分野において特に有用である。マルチプロセッサ・システムでは、一方のプロセッサがアレイにデータを書き込み、他方のプロセッサがデータを読み出すことができる。特に、デュアル・ポートRAMは、非同期転送モード(ATM:Asynchronous Transfer Mode)という通信用途に特に適している。ATMスイッチでは、大量のデータを2つの処理装置間で転送しなければならない。別の通信用途には、標準IEEE802.3(Digital Equipment Corporation社製の商標「Ethernet」として一般に知られる)通信ルータがある。これらの種類の用途では、安価であるが大きなアレイを内蔵するデュアル・ポート・メモリが必要となる。
【0003】
【発明が解決しようとする課題】
従来、デュアル・ポート・ランダム・アクセス・メモリ(RAM)は、2つの方法のうちの一方を利用して構成された。第1の方法では、各メモリ・セルが真のデュアル・ポートであり、そのため8つのトランジスタを必要とした。大きなデュアル・ポート・メモリ・セルはアレイ自体を非常に大きくするので、この方法に基づく集積回路メモリは高価である。第2の方法は、標準的なシングル・ポート・スタティックRAMセルをパーティッション化アレイ(partitioned array)で利用する。両方のポートが同一パーティッションをアクセスすることを試みる場合、これらのアクセスのうち一方を遅延しなければならない。パーティッションの数が増えると、衝突が発生する可能性は減少するが、余分なデコーディングおよび衝突検出回路のためにコストが増加する。従って、必要なのは、従来のシングル・ポートSRAMセルを利用するが、安価で高速な大型デュアル・ポートRAMである。これらの必要性は、本発明により満たされ、その特徴および利点については、図面および以下の説明を参照してさらに説明する。
【0004】
【実施例】
図1は、本発明によるメモリ20を部分的なブロック図および部分的な論理図の形式で示す。メモリ20は、集積回路デュアル・ポート・スタティック・ランダム・アクセス・メモリ(SRAM)であり、シングル・ポートSRAMアレイ21,アービトレーション回路(arbitration circuit)24,ボンディング・パッド26,28,入力部30および出力部50を一般に含む。アレイ21は、Nビット・アドレスを受ける入力端子と、信号反転Wを受ける制御入力端子と、「CLKX」および「CLKY」と記されたクロック信号を受けるクロック入力端子と、「DIN]と記されたMビット・データ値を受けるデータ入力端子と、「DOUT]と記されたビット・データ値を与える出力端子とを有する。また、アレイ21は、デコーダ・ブロック22およびライト制御回路23も含む。
【0005】
メモリ20は、ボンディング・パッド26,28上でそれぞれ受信される「CLOCK(X)」および「CLOCK(Y)」と記された2つのクロック信号に応答する。アービトレーション回路24は、CLOCK(X)を受けるためにボンディング・パッド26に接続された第1入力端子と、CLOCK(Y)を受けるためにボンディング・パッド28に接続された第2入力端子と、信号CLKXおよびCLKYをアレイ21に与える出力端子と、「XYSEL」と記された制御信号を与える出力端子と、「QCLKX」と記された信号を与える出力端子と、「QCLKY」と記された信号を与える出力端子とを有する。
【0006】
入力部30は、ボンディング・パッド31〜36,D型フリップフロップ40〜45およびマルチプレクサ(MUX)46〜48を一般に含む。ボンディング・パッド31は、「ADD(X)」と記されたNビット・アドレス信号を受ける。ボンディング・パッド32は、「ADD(Y)」と記されたNビット・アドレス信号を受ける。ボンディング・パッド33は、「反転W(X)」と記されたライト制御信号を受ける。ボンディング・パッド34は、「反転W(Y)」と記されたライト制御信号を受ける。ボンディング・パッド35は、「DIN(X)」と記されたMビット入力データ信号を受ける。ボンディング・パッド36は、「DIN(Y)」と記されたMビット・データ入力信号を受ける。明白なように、ボンディング・パッド31,32のそれぞれは、それぞれアドレス信号を受けるためのN個のボンディング・パッドを表し、ボンディング・パッド35,36のそれぞれは、それぞれDIN信号を受けるためのM個のボンディング・パッドを表すが、図1ではわかりやすいように単一のボンディング・パッドとして図示されている。
【0007】
フリップフロップ40は、ボンディング・パッド31に接続されたD入力端子と、信号CLOCK(X)を受けるクロック入力端子と、Q出力端子とを有し、ADD(X)のそれぞれのアドレス信号を受け、かつそれぞれラッチされたアドレス信号を与えるN個のD型フリップフロップのうちの一つを表す。フリップフロップ41は、ボンディング・パッド32に接続されたD入力端子と、信号CLOCK(Y)を受けるクロック入力端子と、Q出力端子とを有し、ADD(Y)のそれぞれのアドレス信号を受け、かつラッチされたアドレス信号を与えるN個のフリップフロップのうちの一つを表す。フリップフロップ42は、ボンディング・パッド33に接続されたD入力端子と、信号CLOCK(X)を受けるクロック入力端子と、Q出力端子とを有する。フリップフロップ43は、ボンディング・パッド34に接続されたD入力端子と、信号CLOCK(Y)を受けるクロック入力端子と、Q出力端子とを有する。フリップフロップ44は、ボンディング・パッド35に接続されたD入力端子と、CLOCK(X)を受けるクロック入力端子と、Q出力端子とを有し、信号DIN(X)のそれぞれ受けるM個のフリップフロップのうちの一つを表す。フリップフロップ45は、ボンディング・パッド36に接続されたD入力端子と、信号CLOCK(Y)を受けるクロック入力端子と、Q出力端子とを有し、信号DIN(Y)の対応する信号を受けるM個のフリップフロップのうちの一つを表す。
【0008】
MUX46は、フリップフロップ40のQ出力端子に接続された第1入力端子と、フリップフロップ41のQ出力端子に接続された第2入力端子と、信号XYSELを受ける制御入力端子と、出力端子とを有し、ADD(X)およびADD(Y)のそれぞれアドレス信号を受け、かつ信号ADDとして対応する出力をアレイ21に与えるN個のMUXのうちの一つを表す。MUX47は、フリップフロップ42のQ出力端子に接続された第1入力端子と、フリップフロップ43のQ出力端子に接続された第2入力端子と、信号XYSELを受ける制御入力端子と、信号反転Wをアレイ21に与える出力端子とを有する。MUX48は、フリップフロップ44のQ出力端子に接続された第1入力端子と、フリップフロップ45のQ出力端子に接続された第2入力端子と、信号XYSELをける制御入力端子と、信号DINをアレイ21に与える出力端子とを有し、信号DIN(X)およびDIN(Y)のそれぞれの信号を受け、かつ信号DINとして対応する出力をアレイ21に与えるM個のMUXのうちの一つを表す。
【0009】
出力部50は、D型フリップフロップ51〜54,3状態バッファ55,56およびボンディング・パッド60〜6を一般に含む。フリップフロップ51は、アレイ21の出力端子に接続されたD入力端子と、QCLKXを受けるクロック入力端子と、出力端子とを有し、信号DOUTのそれぞれを受け、かつ対応する出力を与えるM個のフリップフロップのうちの一つを表す。フリップフロップ52は、フリップフロップ51のQ出力端子に接続されたD入力端子と、信号CLOCK(X)を受けるクロック入力端子と、出力端子とを有し、フリップフロップ51によって表される前段のフリップフロップのうちの一つに対応するM個のフリップフロップのうちの一つを表す。フリップフロップ53は、アレイ21のD出力端子に接続されたD入力端子と、信号QCLKYを受けるクロック入力端子と、出力端子とを有し、信号DOUTのそれぞれを受け、かつ対応する出力を与えるM個のフリップフロップのうちの一つを表す。フリップフロップ54は、フリップフロップ53のQ出力端子に接続されたD入力端子と、信号CLOCK(Y)を受けるクロック入力端子と、出力端子とを有し、フリップフロップ53によって表される前段のフリップフロップのうちの一つに対応するM個のフリップフロップのうちの一つを表す。バッファ55は、フリップフロップ52のQ出力端子に接続されたデータ入力端子と、データ出力端子と、ボンディング・パッド60に接続された制御端子とを有し、フリップフロップ52の対応するものに接続されたM個のバッファのうちの一つを表す。バッファ56は、フリップフロップ54のQ出力端子に接続されたデータ入力端子と、出力端子と、ボンディング・パッド63に接続された制御入力端子とを有し、フリップフロップ54のそれぞれに対応するM個のバッファのうちの一つを表す。ボンディング・パッド60は、バッファ55の制御入力端子に接続される、「反転OE(X)」と記された出力イネーブル信号を受ける。ボンディング・パッド61は、「DATAOUT(X)」と記された出力信号を与えるためバッファ55の出力端子に接続され、バッファ55などの各バッファに対応するM個のボンディング・パッドのうちの一つを表す。ボンディング・パッド62は、「DATAOUT(Y)」と記された信号を与えるためバッファ56の出力端子に接続され、バッファ56の対応する出力に接続されたM個のボンディング・パッドのうちの一つを表す。ボンディング・パッド63は、「反転OE(Y)」と記された出力イネーブル信号を受け、バッファ56の制御端子に接続される。
【0010】
動作時に、メモリ20はフル・デュアル・ポートのスタティック・ランダム・アクセス・メモリ(SRAM)として機能する。メモリ20において、各クロック信号の単一サイクル内でアクセスができない状況はない。さらに、メモリ20は標準的な6トランジスタSRAMセルを利用し、そのため他のデュアル・ポート方式に伴う特殊なデュアル・ポート・セルの必要がない。
【0011】
メモリ20は、アレイ21へのアクセスを各ポート上で非同期的に行うことを可能にすることによりこれらの効果を達成し、ここで各アクセスは各クロック信号の低(low)から高(high)への遷移で開始する。従って、信号CLOCK(X)およびCLOCK(Y)が規定の最大周波数よりも低い周波数を有している限り、メモリ20は両方のアクセスがそれぞれクロック・サイクルの一つサイクル内で完了することを保証する。特に、デュアル・ポートSRAM20は、CLOCK(X)およびCLOCK(Y)がほぼ同時に生じる低から高への遷移を有する場合に、Xポート上のアクセスに優先権が与えられることを保証するように、アービトレーション回路24を利用する。さらに、アービトレーション回路24は、CLOCK(X)とCLOCK(Y)との間に微量のスキュー(skew)がある場合に、準安定(metastability)の問題が生じないことを保証する。
【0012】
アレイ21は、信号CLOCK(X)またはCLOCK(Y)のいずれかのスピードの2倍でアクセスできるシングル・ポート・メモリ・コアである。一般に、メモリ20は、外部アクセス要求に応答して、アレイ21へのアクセス要求を生成する。アービトレーション回路24は、2つのアクセス要求が実質的に同時に受信される場合を除いて、2つのアクセス要求のうち早いほうがアレイ21に与えられることを保証する。アクセス要求が同時に受信される場合、アービトレーション回路24はXポートを優先する。
【0013】
さらに具体的には、アービトレーション回路24は、アレイ21へのアクセスがXポートまたはYポートに与えられたのかを示すために、信号XYSELを出力する。この特定の実施例では、論理高レベルはXポート上のアクセスを表し、一方、論理低レベルはYポート上のアクセスを表す。従って、信号XYSELが論理高の場合、MUX46は第1入力を選択し、Nビット信号ADDとして信号ADD(X)をアレイ21に与える。次に、アレイ21は、デコーダ22を利用して従来の行列デコーディングを行い、信号DOUT(アクセスがリード・サイクルであることを想定)を与える。同様に、アービトレーション回路24が論理低のXYSEL信号を与える場合、MUX46は第2入力を選択する。信号XYSELは、アービトレーション回路24が優先権を与えたポートに対応するMUX47,48の入力を選択する。さらに、アービトレーション回路24は、クロック信号CLKXおよびXLKYをアレイ21のライト制御回路23に与える。なお、別の実施例では、クロック信号CLKX,CLKYは単一のクロック信号に置き換えてもよいことに留意されたい。
【0014】
信号QCKXおよびQCLKYは、それぞれXおよびYポートのリード・データ経路を制御する。信号QCLKXは、フリップフロップ51のクロック入力端子に入力され、信号QCLKYは、フリップフロップ53のクロック入力端子に入力される。なお、データ出力経路も、着信データをそれぞれ信号CLOCK(X)およびCLOCK(Y)の次の立ち上がりエッジと同期するために、追加のフリップフロップ52,54を含むことに留意されたい。バッファ55,56は、信号DATAOUT(X)およびDATAOUT(Y)に対して従来の3状態制御を行う。
【0015】
図2は、シングル・ポート・メモリ・セル80を含む図1のアレイ21の一部70を部分的な外略図および部分的なブロック図の形式で示す。メモリ・セル80は、ワード・ライン72上で導通する「WL」と記された信号の活性化によってアクセスされるスタティックRAMセルであり、それぞれビットライン74,76の相補対(complementary pair)上で「BL」および「反転BL」と記された差動データ信号を導通する。メモリ・セル80は、NチャネルMOS(metal oxide semiconductor)トランジスタ82,84およびインバータ86,88を含む。トランジスタ82は、ビット・ライン74に接続された第1電流電極と、ワード・ライン72に接続されたゲートと、第2電流電極とを有する。トランジスタ84は、ビット・ライン76に接続された第1電流電極と、ワード・ライン72に接続されたゲートと、第2電流電極とを有する。インバータ86は、トランジスタ82の第2電流電極に接続された入力端子と、トランジスタ84の第2電流電極に接続された出力端子とを有する。インバータ88は、インバータ86の出力端子に接続された入力端子と、インバータ86の入力端子に接続された出力端子とを有する。
【0016】
動作時に、メモリ・セル80は、その論理状態が背面結合(back-to-back)インバータ86,88の動作によって格納される、標準的なシングル・ポートの6トランジスタ・メモリ・セルである。なお、本明細書で説明するように、メモリ・セルにおけるトランジスタの数は、格納を行うトランジスタに加えて、アクセス・トランジスタを含むことに留意されたい。メモリ・セル80は、ワード・ライン72の活性化によって従来のようにアクセスされる。ワード・ライン72がアクティブのとき、トランジスタ82,84は導通状態となり、メモリ・セルの内容を比較的小さな差動電圧としてビット・ライン74,76に結合する。この電圧は、その後検出され、出力される。ライト・サイクル中に、外部回路は、BLと反転BLとの間で比較的大きな差動電圧を与えて、メモリ80に格納された内容を上書きする。
【0017】
メモリ・セル80は、標準的な8トランジスタのデュアル・ポート・メモリ・セルとは異なる。まず第1に、このメモリ・セル80は、8つのトランジスタではなく、6つのトランジスタしかない。第2に、メモリ・セル80は、ビットラインの2つの個別の対ではなく、ビット・ラインの一つの相補対にのみ接続され、2つの余分なアクセス・トランジスタを節約する。さらに、デュアル・ポート・メモリ・セルの場合の2つのワード・ラインに比べ、メモリ・セル80にアクセスできる一つのワード・ラインしかない。2つのトランジスタを節約するだけでなく、一つのワード・ラインおよび一つのビット・ライン対だけの接続により、メモリ・セル80に対する金属配線の量が低減される。これらの効果により、アレイ21は比較的安価な従来のSRAMセルを利用して構成できる。なお、メモリ・セル80などのシングル・ポート・メモリ・セルを利用して構成されたアレイは、対応する8トランジスタ型の真のデュアル・ポート・メモリ・セルに基づくアレイのサイズの約25%である。
【0018】
図3は、図1のアービトレーション回路24を部分的なブロック図および部分的な論理図の形式で示す。アービトレーション回路24は、ワンショット100,101,SR型フリップフロップ102,103、インバータ104,105,NORラッチ110,NANDラッチ120,インバータ130,131,ワンショット132,133,インバータ134,135およびSR型フリップフロップ136を含む。ワンショット100は、信号CLOCK(X)を受けるためボンディング・パッド26に接続された入力端子と、出力端子とを有する。ワンショット101は、信号CLOCK(Y)を受けるためボンディング・パッド28に接続された入力端子と、出力端子とを有する。フリップフロップ102は、ワンショット100の出力端子に接続されたS入力端子と、R入力端子と、Q出力端子とを有する。フリップフロップ103は、ワンショット101の出力端子に接続されたS入力端子と、R入力端子と、Q出力端子とを有する。インバータ104は、フリップフロップ102のQ出力端子に接続された入力端子と、出力端子とを有する。インバータ105は、フリップフロップ103のQ出力端子に接続された入力端子と、出力端子とを有する。
【0019】
NORラッチ110は、NORゲート111,112を含む。NORゲート111は、インバータ104の出力端子に接続された第1入力端子と、第2入力端子と、出力端子とを有する。NORゲート112は、NORゲート111の出力端子に接続された第1入力端子と、インバータ105の出力端子に接続された第2入力端子と、NORゲート111の第2入力端子に接続された出力端子とを有する。
【0020】
NANDラッチ120は、NANDゲート121,122を含む。NANDゲート121は、NORゲート111の出力端子に接続された第1入力端子と、第2入力端子と、出力端子とを有する。NANDゲート122は、NANDゲート121の出力端子に接続された第1入力端子と、NORゲート112の出力端子に接続された第2入力端子と、NANDゲート121の第2入力端子に接続された出力端子とを有する。インバータ130は、NANDゲート121の出力端子に接続された入力端子と、出力端子とを有する。インバータ131は、NANDゲート122の出力端子に接続された入力端子と、出力端子とを有する。ワンショット132は、インバータ130の出力端子に接続された入力端子と、信号CLKXを与える出力端子とを有する。ワンショット133は、インバータ131の出力端子に接続された入力端子と、信号CLKYを与える出力端子とを有する。インバータ134は、ワンショット132の出力端子に接続された入力端子と、信号QCLKXを与えるためフリップフロップ102のR入力端子に接続された出力端子とを有する。インバータ135は、ワンショット133の出力端子に接続された入力端子と、信号QCLKYを与えるためフリップフロップ103のR入力端子に接続された出力端子とを有する。フリップフロップ136は、ワンショット132の出力端子に接続されたS入力端子と、ワンショット133の出力端子に接続されたR入力端子と、信号XYSELを与えるQ出力端子とを有する。
【0021】
アービトレーション回路24は、信号CLOCK(X)およびCLOCK(Y)における雑音性の遷移を解決するために、短期間のパルスを与える2つのワンショット100,101を含む。ワンショット100,101のパルス幅は、CLOCK(X)またはCLOCK(Y)が比較的低い周波数を有するときに、セット入力が無効になる前にフリップフロップ102,103のリセット入力が生じないように、十分短い。フリップフロップ102,103のQ出力は反転され、NORラッチ110の入力に与えられる。
【0022】
なお、ある状態では、NORラッチ110は準安定(metastable)になることがある。これらの状態では、NORゲート111,112の出力は中間レベルで固定する傾向がある。しかし、アービトレーション回路24は、NANDラッチ120によりこの準安定の問題を解決する。NANDラッチ120の閾値は、NORラッチ110が準安定になっても、NANDラッチ120が解決するように設定される。NANDラッチ120の出力は、さらに反転され、ワンショット132,133に入力される。ワンショット132,133は、遅いあるいは不安定なクロック信号を変換し、応答の期間が限られた急峻なパルスを生成する。ワンショット132,133の出力は反転され、信号QCLKXおよびQCLKYを与え、これらの信号はフリップフロップ102,103のR入力にフィードバックされる。このフィードバック動作は、NORラッチ110における準安定を解決する。
【0023】
本発明について特定の実施例を参照して説明してきたが、更なる修正および改善は当業者に想起される。従って、本発明は特許請求の範囲に定める発明の範囲から逸脱しないかかる一切の修正を網羅するものとする。
【0024】
第1または第2クロック信号のうちどちらが最初に遷移するかを判定することに応答して、第1または第2アドレス信号のうちどちらが複数のメモリ・セルに与えられるかを選択するための選択信号をアービトレーション回路が与えることは、本発明の一態様である。
【0025】
また、アービトレーション回路が第1,第2および第3フリップフロップと、相互結合論理ゲートの第1対とによって構成されることは、本発明の別の態様である。第1フリップフロップは、第1クロック信号を受ける第1入力端子と、第1ラッチ済みクロック信号を与える出力端子とを有する。第2フリップフロップは、第2クロック信号を受ける第1入力端子と、第2ラッチ済みクロック信号を与える出力端子とを有する。相互結合論理ゲートの第1対は、第1および第2フリップフロップの出力端子にそれぞれ結合された第1および第2入力端子を有し、また第1および第2出力端子を有する。第3フリップフロップは、相互結合論理ゲートの第1対の第1出力端子に結合された第1入力端子と、相互結合論理ゲートの第1対の第2出力端子に結合された第2入力端子と、選択信号を与える出力端子とを有する。
【0026】
また、アービトレーション回路は、相互結合論理ゲートの第1対の第1および第2出力端子に結合された第1および第2入力端子と、第3フリップフロップの第1入力端子に結合された第1出力端子と、第3フリップフロップの第2入力端子に結合された第2出力端子とを有する相互結合論理ゲートの第2対によって構成されることは、本発明のさらに別の態様である。
【0027】
また、アービトレーション回路は、第1および第2パルス発生器をさらに含んで構成されることは、本発明のさらに別の態様である。第1パルス発生器は、相互結合論理ゲートの第2対の第1出力端子に結合された入力端子と、第3フリップフロップの第1入力端子に結合された出力端子とを有する。第2パルス発生器は、相互結合論理ゲートの第2対の第2出力端子に結合された第1入力端子と、第3フリップフロップの第2入力端子に結合された出力端子とを有する。
【0028】
また、第1フリップフロップは、第1パルス発生器の出力端子に結合された第2入力端子を有し、また第2フリップフロップは、第2パルス発生器の出力端子に結合された第2入力端子を有することは、本発明のさらに別の態様である。
【図面の簡単な説明】
【図1】本発明によるパイプラインド・デュアル・ポート集積回路メモリを示す部分的なブロック図および部分的な論理図である。
【図2】シングル・ポート・スタティックRAMセルを含む、図1のアレイの一部を示す部分的な外略図および部分的なブロック図である。
【図3】図1のアービトレーション回路を示す部分的なブロック図および部分的な論理図である。
【符号の説明】
20 メモリ
21 シングル・ポートSRAMアレイ
22 デコーダ・ブロック
23 ライト制御回路
24 アービトレーション回路
26,28 ボンディング・パッド
30 入力部
31〜36 ボンディング・パッド
40〜45 D型フリップフロップ
46〜48 マルチプレクサ(MUX)
50 出力部
51〜54 D型フリップフロップ
55,56 3状態バッファ
60〜64 ボンディング・パッド
72 ワード・ライン
74,76 ビット・ライン
80 シングル・ポート・メモリ・セル
82,84 NチャネルMOSトランジスタ
86,88 インバータ
100,101,132,133 ワンショット
102,103,136 SR型フリップフロップ
104,105,130,131,134,135 インバータ
110 NORラッチ
111,112 NORゲート
120 NANDラッチ
121,122 NANDゲート
130,131 インバータ
[0001]
[Industrial application fields]
The present invention relates generally to memories, and more particularly to dual port memories.
[0002]
[Prior art]
Dual port memory is useful in a variety of applications. Dual port memory is particularly useful in the field of communications and multiprocessor systems. In a multiprocessor system, one processor can write data to the array and the other processor can read data. In particular, the dual port RAM is particularly suitable for a communication application called an asynchronous transfer mode (ATM). With ATM switches, large amounts of data must be transferred between two processing devices. Another communication application is the standard IEEE 802.3 (commonly known as the trademark “Ethernet” manufactured by Digital Equipment Corporation). These types of applications require dual port memories that are inexpensive but contain large arrays.
[0003]
[Problems to be solved by the invention]
Traditionally, dual port random access memory (RAM) has been constructed using one of two methods. In the first method, each memory cell was a true dual port and therefore required 8 transistors. Integrated circuit memories based on this method are expensive because large dual port memory cells make the array itself very large. The second method utilizes standard single port static RAM cells in a partitioned array. If both ports attempt to access the same partition, one of these accesses must be delayed. As the number of partitions increases, the likelihood of collisions decreases, but costs increase due to extra decoding and collision detection circuitry. Thus, what is needed is a large dual-port RAM that is inexpensive and fast, while utilizing conventional single-port SRAM cells. These needs are met by the present invention, whose features and advantages are further described with reference to the drawings and the following description.
[0004]
【Example】
FIG. 1 shows a memory 20 according to the invention in the form of a partial block diagram and a partial logic diagram. The memory 20 is an integrated circuit dual port static random access memory (SRAM), a single port SRAM array 21, an arbitration circuit 24, bonding pads 26 and 28, an input 30 and an output. Part 50 is generally included. The array 21 has an input terminal that receives an N-bit address, a control input terminal that receives a signal inversion W, a clock input terminal that receives clock signals labeled “CLKX” and “CLKY”, and “D IN ], A data input terminal for receiving an M-bit data value labeled “ OUT ] Marked M And an output terminal for providing a bit data value. The array 21 also includes a decoder block 22 and a write control circuit 23.
[0005]
The memory 20 is responsive to two clock signals labeled “CLOCK (X)” and “CLOCK (Y)” received on the bonding pads 26 and 28, respectively. Arbitration circuit 24 includes a first input terminal connected to bonding pad 26 for receiving CLOCK (X), a second input terminal connected to bonding pad 28 for receiving CLOCK (Y), and a signal An output terminal for supplying CLKX and CLKY to the array 21, an output terminal for supplying a control signal labeled "XYSEL", an output terminal for supplying a signal labeled "QCLKX", and a signal labeled "QCLKY" Output terminal.
[0006]
Input 30 generally includes bonding pads 31-36, D-type flip-flops 40-45, and multiplexers (MUX) 46-48. Bonding pad 31 receives an N-bit address signal labeled “ADD (X)”. Bonding pad 32 receives an N-bit address signal labeled “ADD (Y)”. Bonding pad 33 receives a write control signal labeled “inverted W (X)”. Bonding pad 34 receives a write control signal labeled “Inverted W (Y)”. The bonding pad 35 is “D IN An M-bit input data signal labeled (X) ”is received. The bonding pad 36 is “D IN Receives an M-bit data input signal labeled (Y). As will be apparent, each of the bonding pads 31, 32 represents N bonding pads for receiving an address signal, respectively, and each of the bonding pads 35, 36 is D respectively. IN 1 represents M bonding pads for receiving signals, but is shown as a single bonding pad in FIG. 1 for clarity.
[0007]
The flip-flop 40 has a D input terminal connected to the bonding pad 31, a clock input terminal for receiving a signal CLOCK (X), and a Q output terminal, and receives each address signal of ADD (X). Each represents one of N D-type flip-flops that provide a latched address signal. The flip-flop 41 has a D input terminal connected to the bonding pad 32, a clock input terminal for receiving the signal CLOCK (Y), and a Q output terminal, and receives each address signal of ADD (Y). And represents one of the N flip-flops that provide the latched address signal. Flip-flop 42 has a D input terminal connected to bonding pad 33, a clock input terminal for receiving signal CLOCK (X), and a Q output terminal. Flip-flop 43 has a D input terminal connected to bonding pad 34, a clock input terminal for receiving signal CLOCK (Y), and a Q output terminal. The flip-flop 44 has a D input terminal connected to the bonding pad 35, a clock input terminal for receiving CLOCK (X), and a Q output terminal. IN (X) represents one of M flip-flops received respectively. The flip-flop 45 has a D input terminal connected to the bonding pad 36, a clock input terminal for receiving the signal CLOCK (Y), and a Q output terminal. IN (Y) represents one of M flip-flops receiving the corresponding signal.
[0008]
The MUX 46 includes a first input terminal connected to the Q output terminal of the flip-flop 40, a second input terminal connected to the Q output terminal of the flip-flop 41, a control input terminal that receives the signal XYSEL, and an output terminal. 1 represents one of N MUXs which receive the address signals of ADD (X) and ADD (Y) and provide the corresponding output to the array 21 as the signal ADD. The MUX 47 has a first input terminal connected to the Q output terminal of the flip-flop 42, a second input terminal connected to the Q output terminal of the flip-flop 43, a control input terminal that receives the signal XYSEL, and a signal inversion W. And an output terminal provided to the array 21. The MUX 48 includes a first input terminal connected to the Q output terminal of the flip-flop 44, a second input terminal connected to the Q output terminal of the flip-flop 45, a control input terminal for receiving the signal XYSEL, and a signal D IN Output to the array 21 and a signal D IN (X) and D IN Each signal of (Y) is received and signal D IN Represents one of the M MUXs that provide the corresponding output to the array 21.
[0009]
The output unit 50 includes D-type flip-flops 51 to 54, three-state buffers 55 and 56, and bonding pads 60 to 6 3 In general. Flip-flop 51 has a D input terminal connected to the output terminal of array 21, a clock input terminal for receiving QCLKX, and an output terminal. OUT Represents one of the M flip-flops that each receive and provide a corresponding output. The flip-flop 52 has a D input terminal connected to the Q output terminal of the flip-flop 51, a clock input terminal that receives the signal CLOCK (X), and an output terminal. One of M flip-flops corresponding to one of the flip-flops. Flip-flop 53 has a D input terminal connected to the D output terminal of array 21, a clock input terminal for receiving signal QCLKY, and an output terminal. OUT Represents one of the M flip-flops that each receive and provide a corresponding output. The flip-flop 54 has a D input terminal connected to the Q output terminal of the flip-flop 53, a clock input terminal that receives the signal CLOCK (Y), and an output terminal. One of M flip-flops corresponding to one of the flip-flops. The buffer 55 has a data input terminal connected to the Q output terminal of the flip-flop 52, a data output terminal, and a control terminal connected to the bonding pad 60, and is connected to a corresponding one of the flip-flop 52. Represents one of the M buffers. The buffer 56 has a data input terminal connected to the Q output terminal of the flip-flop 54, an output terminal, and a control input terminal connected to the bonding pad 63, and M buffers corresponding to each of the flip-flops 54. Represents one of the buffers. Bonding pad 60 receives an output enable signal labeled “Inverted OE (X)” connected to the control input terminal of buffer 55. The bonding pad 61 is “DATA OUT (X) "is connected to the output terminal of the buffer 55 to provide an output signal labeled" X "" and represents one of M bonding pads corresponding to each buffer such as the buffer 55. The bonding pad 62 is “DATA OUT (Y) represents one of the M bonding pads connected to the output terminal of the buffer 56 to provide a signal labeled "" and connected to the corresponding output of the buffer 56. Bonding pad 63 receives an output enable signal labeled “Inverted OE (Y)” and is connected to the control terminal of buffer 56.
[0010]
In operation, the memory 20 functions as a full dual-port static random access memory (SRAM). There is no situation in the memory 20 that is not accessible within a single cycle of each clock signal. In addition, the memory 20 utilizes a standard 6-transistor SRAM cell, thus eliminating the need for special dual port cells associated with other dual port schemes.
[0011]
The memory 20 achieves these effects by allowing access to the array 21 on each port asynchronously, where each access is low to high for each clock signal. Start with a transition to. Thus, as long as signals CLOCK (X) and CLOCK (Y) have a frequency lower than the specified maximum frequency, memory 20 ensures that both accesses are each completed within one clock cycle. To do. In particular, the dual port SRAM 20 ensures that access on the X port is given priority when CLOCK (X) and CLOCK (Y) have low to high transitions that occur almost simultaneously. Arbitration circuit 24 is used. Further, the arbitration circuit 24 ensures that no metastability problem occurs when there is a small amount of skew between CLOCK (X) and CLOCK (Y).
[0012]
Array 21 is a single port memory core that can be accessed at twice the speed of either signal CLOCK (X) or CLOCK (Y). In general, the memory 20 generates an access request to the array 21 in response to the external access request. Arbitration circuit 24 ensures that the earlier of the two access requests is provided to array 21, unless the two access requests are received substantially simultaneously. If access requests are received simultaneously, the arbitration circuit 24 prioritizes the X port.
[0013]
More specifically, the arbitration circuit 24 outputs a signal XYSEL to indicate whether access to the array 21 is given to the X port or the Y port. In this particular embodiment, a logic high level represents access on the X port, while a logic low level represents access on the Y port. Therefore, when the signal XYSEL is a logic high, the MUX 46 selects the first input and provides the signal ADD (X) to the array 21 as the N-bit signal ADD. The array 21 then performs conventional matrix decoding using the decoder 22 to produce the signal D OUT (Assuming the access is a read cycle). Similarly, if arbitration circuit 24 provides a logic low XYSEL signal, MUX 46 selects the second input. The signal XYSEL selects the inputs of the MUXs 47 and 48 corresponding to the ports to which the arbitration circuit 24 has given priority. Further, the arbitration circuit 24 supplies the clock signals CLKX and XLKY to the write control circuit 23 of the array 21. It should be noted that in another embodiment, the clock signals CLKX and CLKY may be replaced with a single clock signal.
[0014]
Signal QC L KX and QCLKY control the read data path for the X and Y ports, respectively. The signal QCLKX is input to the clock input terminal of the flip-flop 51, and the signal QCLKY is input to the clock input terminal of the flip-flop 53. It should be noted that the data output path also includes additional flip-flops 52 and 54 to synchronize incoming data with the next rising edge of signals CLOCK (X) and CLOCK (Y), respectively. Buffers 55 and 56 are connected to signal DATA. OUT (X) and DATA OUT Conventional three-state control is performed for (Y).
[0015]
FIG. 2 shows a portion 70 of the array 21 of FIG. 1 that includes a single port memory cell 80 in the form of a partial schematic and partial block diagram. Memory cell 80 is a static RAM cell that is accessed by activation of a signal labeled "WL" that conducts on word line 72, on a complementary pair of bit lines 74 and 76, respectively. Conducting differential data signals labeled "BL" and "Inverted BL". Memory cell 80 includes N-channel MOS (metal oxide semiconductor) transistors 82 and 84 and inverters 86 and 88. Transistor 82 has a first current electrode connected to bit line 74, a gate connected to word line 72, and a second current electrode. Transistor 84 has a first current electrode connected to bit line 76, a gate connected to word line 72, and a second current electrode. Inverter 86 has an input terminal connected to the second current electrode of transistor 82, and an output terminal connected to the second current electrode of transistor 84. Inverter 88 has an input terminal connected to the output terminal of inverter 86, and an output terminal connected to the input terminal of inverter 86.
[0016]
In operation, memory cell 80 is a standard single-port 6-transistor memory cell whose logic state is stored by the operation of back-to-back inverters 86,88. It should be noted that as described herein, the number of transistors in a memory cell includes access transistors in addition to the storing transistors. Memory cell 80 is accessed conventionally by activation of word line 72. When word line 72 is active, transistors 82 and 84 are conductive, coupling the contents of the memory cell to bit lines 74 and 76 as a relatively small differential voltage. This voltage is then detected and output. During the write cycle, the external circuit applies a relatively large differential voltage between BL and inverted BL to overwrite the content stored in memory 80.
[0017]
Memory cell 80 is different from a standard 8-transistor dual port memory cell. First of all, the memory cell 80 has only six transistors instead of eight transistors. Second, the memory cell 80 is connected to only one complementary pair of bit lines, not two separate pairs of bit lines, saving two extra access transistors. Furthermore, there is only one word line that can access the memory cell 80 as compared to the two word lines in the case of a dual port memory cell. In addition to saving two transistors, the connection of only one word line and one bit line pair reduces the amount of metal wiring for the memory cell 80. Due to these effects, the array 21 can be configured by using a relatively inexpensive conventional SRAM cell. It should be noted that an array constructed using a single port memory cell, such as memory cell 80, is approximately 25% of the size of an array based on a corresponding 8-transistor true dual port memory cell. is there.
[0018]
FIG. 3 illustrates the arbitration circuit 24 of FIG. 1 in the form of a partial block diagram and a partial logic diagram. The arbitration circuit 24 includes one-shot 100 and 101, SR type flip-flops 102 and 103, inverters 104 and 105, NOR latch 110, NAND latch 120, inverters 130 and 131, one-shot 132 and 133, inverters 134 and 135, and SR type. A flip-flop 136 is included. One shot 100 has an input terminal connected to bonding pad 26 for receiving signal CLOCK (X), and an output terminal. One shot 101 has an input terminal connected to bonding pad 28 for receiving signal CLOCK (Y), and an output terminal. The flip-flop 102 has an S input terminal connected to the output terminal of the one-shot 100, an R input terminal, and a Q output terminal. The flip-flop 103 has an S input terminal connected to the output terminal of the one-shot 101, an R input terminal, and a Q output terminal. Inverter 104 has an input terminal connected to the Q output terminal of flip-flop 102, and an output terminal. Inverter 105 has an input terminal connected to the Q output terminal of flip-flop 103, and an output terminal.
[0019]
The NOR latch 110 includes NOR gates 111 and 112. NOR gate 111 has a first input terminal connected to the output terminal of inverter 104, a second input terminal, and an output terminal. The NOR gate 112 has a first input terminal connected to the output terminal of the NOR gate 111, a second input terminal connected to the output terminal of the inverter 105, and an output terminal connected to the second input terminal of the NOR gate 111. And have.
[0020]
NAND latch 120 includes NAND gates 121 and 122. NAND gate 121 has a first input terminal connected to the output terminal of NOR gate 111, a second input terminal, and an output terminal. NAND gate 122 has a first input terminal connected to the output terminal of NAND gate 121, a second input terminal connected to the output terminal of NOR gate 112, and an output connected to the second input terminal of NAND gate 121. Terminal. Inverter 130 has an input terminal connected to the output terminal of NAND gate 121, and an output terminal. Inverter 131 has an input terminal connected to the output terminal of NAND gate 122, and an output terminal. One shot 132 has an input terminal connected to the output terminal of inverter 130, and an output terminal for providing signal CLKX. One-shot 133 has an input terminal connected to the output terminal of inverter 131, and an output terminal for providing signal CLKY. Inverter 134 has an input terminal connected to the output terminal of one-shot 132, and an output terminal connected to the R input terminal of flip-flop 102 for providing signal QCLKX. Inverter 135 has an input terminal connected to the output terminal of one-shot 133, and an output terminal connected to the R input terminal of flip-flop 103 for providing signal QCLKY. Flip-flop 136 has an S input terminal connected to the output terminal of one-shot 132, an R input terminal connected to the output terminal of one-shot 133, and a Q output terminal for providing signal XYSEL.
[0021]
Arbitration circuit 24 includes two one-shots 100, 101 that provide short-term pulses to resolve noisy transitions in signals CLOCK (X) and CLOCK (Y). The pulse width of the one-shot 100, 101 is such that when the CLOCK (X) or CLOCK (Y) has a relatively low frequency, the reset input of the flip-flops 102, 103 does not occur before the set input becomes invalid. Short enough. The Q outputs of the flip-flops 102 and 103 are inverted and given to the input of the NOR latch 110.
[0022]
Note that in some situations, the NOR latch 110 may be metastable. In these states, the outputs of the NOR gates 111 and 112 tend to be fixed at an intermediate level. However, the arbitration circuit 24 solves this metastable problem with the NAND latch 120. The threshold value of the NAND latch 120 is set so that the NAND latch 120 can solve even if the NOR latch 110 becomes metastable. The output of the NAND latch 120 is further inverted and input to the one shots 132 and 133. The one shots 132 and 133 convert a slow or unstable clock signal and generate a steep pulse with a limited response period. The outputs of the one shots 132 and 133 are inverted to provide signals QCLKX and QCLKY, which are fed back to the R inputs of the flip-flops 102 and 103. This feedback operation resolves metastability in the NOR latch 110.
[0023]
Although the present invention has been described with reference to particular embodiments, further modifications and improvements will occur to those skilled in the art. Accordingly, the present invention is intended to embrace all such modifications that do not depart from the scope of the invention as defined in the appended claims.
[0024]
A selection signal for selecting which of the first or second address signals is applied to the plurality of memory cells in response to determining which of the first or second clock signals transitions first. Is provided by the arbitration circuit.
[0025]
Further, it is another aspect of the present invention that the arbitration circuit is constituted by the first, second and third flip-flops and the first pair of mutually coupled logic gates. The first flip-flop has a first input terminal for receiving a first clock signal and an output terminal for providing a first latched clock signal. The second flip-flop has a first input terminal for receiving a second clock signal and an output terminal for providing a second latched clock signal. The first pair of interconnected logic gates has first and second input terminals coupled to the output terminals of the first and second flip-flops, respectively, and has first and second output terminals. The third flip-flop has a first input terminal coupled to the first pair of first output terminals of the cross-coupled logic gate and a second input terminal coupled to the first pair of second output terminals of the cross-coupled logic gate. And an output terminal for supplying a selection signal.
[0026]
The arbitration circuit also includes first and second input terminals coupled to a first pair of first and second output terminals of the first pair of mutually coupled logic gates, and a first coupled to the first input terminal of the third flip-flop. It is yet another aspect of the present invention to be configured by a second pair of interconnected logic gates having an output terminal and a second output terminal coupled to the second input terminal of the third flip-flop.
[0027]
In addition, it is still another aspect of the present invention that the arbitration circuit further includes first and second pulse generators. The first pulse generator has an input terminal coupled to the second output terminal of the second pair of interconnected logic gates and an output terminal coupled to the first input terminal of the third flip-flop. The second pulse generator has a first input terminal coupled to the second output terminal of the second pair of interconnected logic gates, and an output terminal coupled to the second input terminal of the third flip-flop.
[0028]
The first flip-flop has a second input terminal coupled to the output terminal of the first pulse generator, and the second flip-flop has a second input coupled to the output terminal of the second pulse generator. Having a terminal is yet another aspect of the present invention.
[Brief description of the drawings]
FIG. 1 is a partial block diagram and partial logic diagram illustrating a pipelined dual-port integrated circuit memory according to the present invention.
2 is a partial schematic and partial block diagram illustrating a portion of the array of FIG. 1, including a single port static RAM cell. FIG.
3 is a partial block diagram and partial logic diagram illustrating the arbitration circuit of FIG. 1; FIG.
[Explanation of symbols]
20 memory
21 Single-port SRAM array
22 Decoder block
23 Light control circuit
24 Arbitration circuit
26, 28 Bonding pads
30 Input section
31-36 Bonding pads
40-45 D-type flip-flop
46-48 multiplexer (MUX)
50 output section
51-54 D-type flip-flop
55,56 3-state buffer
60-64 bonding pads
72 word lines
74,76 bit line
80 single-port memory cells
82,84 N-channel MOS transistors
86,88 inverter
100, 101, 132, 133 One shot
102,103,136 SR type flip-flop
104, 105, 130, 131, 134, 135 Inverter
110 NOR latch
111, 112 NOR gate
120 NAND latch
121, 122 NAND gate
130,131 inverter

Claims (5)

集積回路メモリ(20)であって:
複数のメモリ・セル(21)であって、前記複数のメモリ・セル(21)のそれぞれは、一つのワード・ラインと、一つのビット・ライン対とに結合される、複数のメモリ・セル(21);
アドレスを受信することに応答して、前記複数のメモリ・セル(21)のうちのメモリ・セルを選択するため、前記複数のメモリ・セル(21)に結合されたアドレス・デコーダ(22);
前記複数のメモリ・セル(21)にアクセスするために第1アドレスを前記アドレス・デコーダ(22)に与えるため、前記アドレス・デコーダに結合された第1アドレス・ポート(31);
前記複数のメモリ・セル(21)にアクセスするために第2アドレスを前記アドレス・デコーダに与えるため、前記アドレス・デコーダ(22)に結合された第2アドレス・ポート(32);
前記第1または第2アドレスのいずれかに応答して、前記複数のメモリ・セル(21)からデータを読み出すため、前記複数のメモリ・セルに結合されたリード・データ・ポート(61,62);
前記第1または第2アドレスのいずれかに応答して、前記複数のメモリ・セルにデータを書き込むため、前記複数のメモリ・セル(21)に結合されたライト・データ・ポート(35,36);
第1クロック信号および第2クロック信号を受信するため、第1および第2クロック・ポートに結合されたアービトレーション回路(24)であって、前記第1および第2クロック信号は互いに非同期であり、前記アービトレーション回路(24)は、前記集積回路メモリ(20)のアクセス中に、第1および第2クロック信号に基づいて前記第1または第2アドレスのうちどちらが前記複数のメモリ・セルに与えられるのかを判定する、アービトレーション回路(24);
前記複数のメモリ・セルと前記リード・データ・ポートとの間に接続され、前記アービトレーション回路からのタイミング信号を受信し、読み出しデータのタイミングをとるタイミング回路(51,53);及び
前記タイミング回路に接続された第1の同期回路及び第2の同期回路であり互いに非同期である前記第1クロック信号及び第2クロック信号をそれぞれ受信し、読み出しデータを互いに非同期である前記第1クロック信号及び第2クロック信号にそれぞれ同期させるための第1の同期回路(52)及び第2の同期回路(54);
によって構成されることを特徴とする集積回路メモリ(20)。
An integrated circuit memory (20) comprising:
A plurality of memory cells (21), each of the plurality of memory cells (21) being coupled to one word line and one bit line pair ( 21);
An address decoder (22) coupled to the plurality of memory cells (21) for selecting a memory cell of the plurality of memory cells (21) in response to receiving an address;
A first address port (31) coupled to the address decoder for providing a first address to the address decoder (22) for accessing the plurality of memory cells (21);
A second address port (32) coupled to the address decoder (22) for providing a second address to the address decoder for accessing the plurality of memory cells (21);
Read data ports (61, 62) coupled to the plurality of memory cells for reading data from the plurality of memory cells (21) in response to either the first or second address. ;
A write data port (35, 36) coupled to the plurality of memory cells (21) for writing data to the plurality of memory cells in response to either the first or second address. ;
Arbitration circuit (24) coupled to the first and second clock ports for receiving the first clock signal and the second clock signal, wherein the first and second clock signals are asynchronous to each other, The arbitration circuit (24) determines which of the first or second address is supplied to the plurality of memory cells based on the first and second clock signals during the access to the integrated circuit memory (20). Determining an arbitration circuit (24);
A timing circuit (51, 53) connected between the plurality of memory cells and the read data port, receiving a timing signal from the arbitration circuit, and timings read data; and a first synchronization circuit and a second synchronization circuit coupled to receive respectively the first clock signal and the second clock signal are asynchronous to each other, said first clock signal and the asynchronous read data with each other A first synchronization circuit (52) and a second synchronization circuit (54) for synchronizing with two clock signals, respectively;
An integrated circuit memory (20) characterized by comprising:
前記アービトレーション回路(24)は、前記第1または第2クロック信号のうち所定の一方の単一クロック・サイクル内で、実質的に同時の要求が順次処理されることを保証することを特徴とする請求項1記載の集積回路メモリ(20)。 The arbitration circuit (24) ensures that substantially simultaneous requests are processed sequentially within a single clock cycle of one of the first or second clock signals. The integrated circuit memory (20) of claim 1. 前記第1および第2クロック信号は、前記アドレス・デコーダ(22),前記リード・データ・ポートおよび前記ライト・データ・ポートに与えられ、また前記アービトレーション回路(24)が第1クロック信号が最初に遷移したと判定したことに応答して、前記複数のメモリ・セル(21)は、アクセス・タイミングのために第1クロック信号を利用してアクセスされ、また前記アービトレーション回路(24)が第2クロック信号が最初に遷移したと判定したことに応答して、前記複数のメモリ・セル(21)は、アクセス・タイミングのために第2クロック信号を利用してアクセスされることを特徴とする請求項1記載の集積回路メモリ(20)。 The first and second clock signals are applied to the address decoder (22), the read data port, and the write data port, and the arbitration circuit (24) first receives the first clock signal. In response to determining that the transition has occurred, the plurality of memory cells (21) are accessed using a first clock signal for access timing, and the arbitration circuit (24) is configured to receive a second clock. The plurality of memory cells (21) are accessed using a second clock signal for access timing in response to determining that a signal first transitioned. The integrated circuit memory (20) of claim 1. パイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ(20)であって:
複数のスタティック・ランダム・アクセス・メモリ・セル(21)であって、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)のそれぞれは、一つのワード・ラインと、一つのビット・ライン対とに結合される、複数のスタティック・ランダム・アクセス・メモリ・セル(21);
第1クロック信号および第2クロック信号を受けるアービトレーション回路(24)であって、前記第1および第2クロック信号は互いに非同期であり、前記アービトレーション回路(24)は、互いに非同期である前記第1および第2クロック信号のうちどちらが最初に遷移するかを判定し、それに応答して選択信号を与える、アービトレーション回路(24);
アドレスを受信することに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)のうちメモリ・セルを選択するため、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)に結合されたアドレス・デコーダ(22);
前記選択信号が第1論理状態であることに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)にアクセスするために第1アドレスを前記アドレス・デコーダ(22)に与えるため、前記アドレス・デコーダ(22)に結合された第1アドレス・ポート(31);
前記選択信号が第2論理状態であることに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)にアクセスするために第2アドレスを前記アドレス・デコーダ(22)に与えるため、前記アドレス・デコーダ(22)に結合された第2アドレス・ポート(32);
前記第1または第2アドレスのいずれかに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)からデータを読み出すため、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)に結合されたリード・データ・ポート(61,62);
前記第1または第2アドレスのいずれかに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)にデータを書き込むため、前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)に結合されたライト・データ・ポート(35,36);
前記複数のスタティック・ランダム・アクセス・メモリ・セル(21)と前記リード・データ・ポートとの間に接続され、前記アービトレーション回路からのタイミング信号を受信し、読み出しデータのタイミングをとるタイミング回路(51,53);及び
前記タイミング回路に接続された第1の同期回路及び第2の同期回路であり互いに非同期である前記第1クロック信号及び第2クロック信号をそれぞれ受信し、読み出しデータを互いに非同期である前記第1クロック信号及び第2クロック信号にそれぞれ同期させるための第1の同期回路(52)及び第2の同期回路(54);
によって構成されることを特徴とするパイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ(20)。
Pipelined dual-port static random access memory (20) comprising:
A plurality of static random access memory cells (21), each of the plurality of static random access memory cells (21) comprising one word line and one bit line pair A plurality of static random access memory cells (21) coupled to
Arbitration circuit (24) receiving a first clock signal and a second clock signal, wherein the first and second clock signals are asynchronous with each other, and the arbitration circuit (24) is asynchronous with each other. An arbitration circuit (24) that determines which of the second clock signals transitions first and provides a selection signal in response thereto;
In response to receiving an address, the plurality of static random access memory cells (21) for selecting a memory cell among the plurality of static random access memory cells (21). An address decoder (22) coupled to
Responsive to the selection signal being in a first logic state to provide a first address to the address decoder (22) for accessing the plurality of static random access memory cells (21). A first address port (31) coupled to the address decoder (22);
In response to the selection signal being in a second logic state, a second address is provided to the address decoder (22) for accessing the plurality of static random access memory cells (21). A second address port (32) coupled to the address decoder (22);
The plurality of static random access memory cells (21) for reading data from the plurality of static random access memory cells (21) in response to either the first or second address. ) Coupled to the read data port (61, 62);
The plurality of static random access memory cells (21) for writing data to the plurality of static random access memory cells (21) in response to either the first or second address. ) Coupled to the write data port (35, 36);
A timing circuit (51) connected between the plurality of static random access memory cells (21) and the read data port, receives a timing signal from the arbitration circuit, and takes a timing of read data. , 53); and a first synchronizing circuit and the second synchronization circuit coupled to the timing circuit to receive respectively the first clock signal and the second clock signal are asynchronous to one another, the asynchronous read data with each other A first synchronization circuit (52) and a second synchronization circuit (54) for synchronizing with the first clock signal and the second clock signal, respectively;
A pipelined dual-port static random access memory (20) characterized by comprising:
前記アービトレーション回路(24)は、前記第1または第2クロック信号のうち所定の一方の単一クロック・サイクル内で、実質的に同時のアクセス要求が順次処理されることを保証することを特徴とする請求項4記載のパイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ(20)。 The arbitration circuit (24) ensures that substantially simultaneous access requests are processed sequentially within a single clock cycle of one of the first or second clock signals. A pipelined dual-port static random access memory (20) according to claim 4.
JP17069699A 1998-06-23 1999-06-17 Pipelined dual-port integrated circuit memory Expired - Fee Related JP4685997B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US103633 1979-12-14
US09/103,633 US6078527A (en) 1997-07-29 1998-06-23 Pipelined dual port integrated circuit memory

Publications (2)

Publication Number Publication Date
JP2000030460A JP2000030460A (en) 2000-01-28
JP4685997B2 true JP4685997B2 (en) 2011-05-18

Family

ID=22296204

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17069699A Expired - Fee Related JP4685997B2 (en) 1998-06-23 1999-06-17 Pipelined dual-port integrated circuit memory

Country Status (2)

Country Link
JP (1) JP4685997B2 (en)
TW (1) TW451215B (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5070656B2 (en) * 2000-12-20 2012-11-14 富士通セミコンダクター株式会社 Semiconductor memory device
JP4824180B2 (en) * 2001-02-09 2011-11-30 富士通セミコンダクター株式会社 Semiconductor memory device
JP4997663B2 (en) * 2000-12-27 2012-08-08 富士通セミコンダクター株式会社 Multiport memory and control method thereof
JP5028710B2 (en) * 2001-02-14 2012-09-19 富士通セミコンダクター株式会社 Semiconductor memory device
US7120761B2 (en) 2000-12-20 2006-10-10 Fujitsu Limited Multi-port memory based on DRAM core
FR2920584B1 (en) * 2007-08-29 2009-11-13 Commissariat Energie Atomique SHARED MEMORY
JP2010044821A (en) * 2008-08-11 2010-02-25 Hitachi Ulsi Systems Co Ltd Semiconductor device and memory macro
US8867303B2 (en) * 2011-09-16 2014-10-21 Altera Corporation Memory arbitration circuitry
US8806259B2 (en) * 2011-10-28 2014-08-12 Altera Corporation Time division multiplexed multiport memory implemented using single-port memory elements
KR101468677B1 (en) * 2013-12-27 2014-12-05 (주)실리콘화일 Memory access contol circuit using arbiter
JP7211676B2 (en) * 2019-03-25 2023-01-24 ラピスセミコンダクタ株式会社 semiconductor equipment
CN112786084B (en) * 2021-03-16 2023-06-23 北京时代全芯存储技术股份有限公司 Memory device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08279292A (en) * 1995-04-04 1996-10-22 Matsushita Electric Ind Co Ltd Multiport memory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6439686A (en) * 1987-08-06 1989-02-09 Omron Tateisi Electronics Co Dual port memory
JPS6443894A (en) * 1987-08-10 1989-02-16 Nec Corp Semiconductor memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08279292A (en) * 1995-04-04 1996-10-22 Matsushita Electric Ind Co Ltd Multiport memory device

Also Published As

Publication number Publication date
TW451215B (en) 2001-08-21
JP2000030460A (en) 2000-01-28

Similar Documents

Publication Publication Date Title
US6078527A (en) Pipelined dual port integrated circuit memory
JP4521068B2 (en) Pipelined dual-port integrated circuit memory
US6178133B1 (en) Method and system for accessing rows in multiple memory banks within an integrated circuit
US6262937B1 (en) Synchronous random access memory having a read/write address bus and process for writing to and reading from the same
US6301322B1 (en) Balanced dual-edge triggered data bit shifting circuit and method
US5546355A (en) Integrated circuit memory having a self-timed write pulse independent of clock frequency and duty cycle
US20060171239A1 (en) Dual Port Memory Unit Using a Single Port Memory Core
US5973955A (en) Comparison circuit utilizing a differential amplifier
JP4685997B2 (en) Pipelined dual-port integrated circuit memory
US6557090B2 (en) Column address path circuit and method for memory devices having a burst access mode
JP4456687B2 (en) Random access memory and method of writing to and reading from the memory
JP5114209B2 (en) SRAM with improved cell stability and method thereof
JP3754593B2 (en) Integrated circuit having memory cells for storing data bits and method for writing write data bits to memory cells in integrated circuits
US5493530A (en) Ram with pre-input register logic
USRE38955E1 (en) Memory device having a relatively wide data bus
JP2746222B2 (en) Semiconductor storage device
US6388939B1 (en) Dual port sram
KR100323158B1 (en) A data processing system and method for implementing a multi-port memory cell
KR0154741B1 (en) Dual-port memory
US6781919B2 (en) Address selection circuit and semiconductor memory device with synchronous and asynchronous address signal paths
JPH11126483A (en) Economized electric power synchronizing circuit and semiconductor memory having the circuit
EP1278198A2 (en) Semiconductor memory device
US6014333A (en) Semiconductive memory device capable of carrying out a write-in operation at a high speed
KR100211483B1 (en) Semiconductor memory using block writing system
CN1192390C (en) Pipeline dual-port integrated circuit memory

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20051216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060531

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090302

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090602

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090603

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100827

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100921

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110118

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110214

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

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees