(57)【特許請求の範囲】
【請求項１】
集積回路メモリ（２０）であって：
複数のメモリ・セル（２１）であって、前記複数のメモリ・セル（２１）のそれぞれは、一つのワード・ラインと、一つのビット・ライン対とに結合される、複数のメモリ・セル（２１）；
アドレスを受信することに応答して、前記複数のメモリ・セル（２１）のうちのメモリ・セルを選択するため、前記複数のメモリ・セル（２１）に結合されたアドレス・デコーダ（２２）；
前記複数のメモリ・セル（２１）にアクセスするために第１アドレスを前記アドレス・デコーダ（２２）に与えるため、前記アドレス・デコーダに結合された第１アドレス・ポート（３１）；
前記複数のメモリ・セル（２１）にアクセスするために第２アドレスを前記アドレス・デコーダに与えるため、前記アドレス・デコーダ（２２）に結合された第２アドレス・ポート（３２）；
前記第１または第２アドレスのいずれかに応答して、前記複数のメモリ・セル（２１）からデータを読み出すため、前記複数のメモリ・セルに結合されたリード・データ・ポート（６１，６２）；
前記第１または第２アドレスのいずれかに応答して、前記複数のメモリ・セルにデータを書き込むため、前記複数のメモリ・セル（２１）に結合されたライト・データ・ポート（３５，３６）；
第１クロック信号および第２クロック信号を受信するため、第１および第２クロック・ポートに結合されたアービトレーション回路（２４）であって、前記第１および第２クロック信号は互いに非同期であり、前記アービトレーション回路（２４）は、前記集積回路メモリ（２０）のアクセス中に、第１および第２クロック信号に基づいて前記第１または第２アドレスのうちどちらが前記複数のメモリ・セルに与えられるのかを判定する、アービトレーション回路（２４）；
前記複数のメモリ・セルと前記リード・データ・ポートとの間に接続され、前記アービトレーション回路からのタイミング信号を受信し、読み出しデータのタイミングをとるタイミング回路（５１，５３）；及び
前記タイミング回路に接続された第１の同期回路及び第２の同期回路であり、互いに非同期である前記第１クロック信号及び第２クロック信号をそれぞれ受信し、読み出しデータを互いに非同期である前記第１クロック信号及び第２クロック信号にそれぞれ同期させるための第１の同期回路（５２）及び第２の同期回路（５４）；
によって構成されることを特徴とする集積回路メモリ（２０）。
【請求項２】
前記アービトレーション回路（２４）は、前記第１または第２クロック信号のうち所定の一方の単一クロック・サイクル内で、実質的に同時の要求が順次処理されることを保証することを特徴とする請求項１記載の集積回路メモリ（２０）。
【請求項３】
前記第１および第２クロック信号は、前記アドレス・デコーダ（２２），前記リード・データ・ポートおよび前記ライト・データ・ポートに与えられ、また前記アービトレーション回路（２４）が第１クロック信号が最初に遷移したと判定したことに応答して、前記複数のメモリ・セル（２１）は、アクセス・タイミングのために第１クロック信号を利用してアクセスされ、また前記アービトレーション回路（２４）が第２クロック信号が最初に遷移したと判定したことに応答して、前記複数のメモリ・セル（２１）は、アクセス・タイミングのために第２クロック信号を利用してアクセスされることを特徴とする請求項１記載の集積回路メモリ（２０）。
【請求項４】
パイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ（２０）であって：
複数のスタティック・ランダム・アクセス・メモリ・セル（２１）であって、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）のそれぞれは、一つのワード・ラインと、一つのビット・ライン対とに結合される、複数のスタティック・ランダム・アクセス・メモリ・セル（２１）；
第１クロック信号および第２クロック信号を受けるアービトレーション回路（２４）であって、前記第１および第２クロック信号は互いに非同期であり、前記アービトレーション回路（２４）は、互いに非同期である前記第１および第２クロック信号のうちどちらが最初に遷移するかを判定し、それに応答して選択信号を与える、アービトレーション回路（２４）；
アドレスを受信することに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）のうちメモリ・セルを選択するため、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）に結合されたアドレス・デコーダ（２２）；
前記選択信号が第１論理状態であることに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）にアクセスするために第１アドレスを前記アドレス・デコーダ（２２）に与えるため、前記アドレス・デコーダ（２２）に結合された第１アドレス・ポート（３１）；
前記選択信号が第２論理状態であることに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）にアクセスするために第２アドレスを前記アドレス・デコーダ（２２）に与えるため、前記アドレス・デコーダ（２２）に結合された第２アドレス・ポート（３２）；
前記第１または第２アドレスのいずれかに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）からデータを読み出すため、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）に結合されたリード・データ・ポート（６１，６２）；
前記第１または第２アドレスのいずれかに応答して、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）にデータを書き込むため、前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）に結合されたライト・データ・ポート（３５，３６）；
前記複数のスタティック・ランダム・アクセス・メモリ・セル（２１）と前記リード・データ・ポートとの間に接続され、前記アービトレーション回路からのタイミング信号を受信し、読み出しデータのタイミングをとるタイミング回路（５１，５３）；及び
前記タイミング回路に接続された第１の同期回路及び第２の同期回路であり、互いに非同期である前記第１クロック信号及び第２クロック信号をそれぞれ受信し、読み出しデータを互いに非同期である前記第１クロック信号及び第２クロック信号にそれぞれ同期させるための第１の同期回路（５２）及び第２の同期回路（５４）；
によって構成されることを特徴とするパイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ（２０）。
【請求項５】
前記アービトレーション回路（２４）は、前記第１または第２クロック信号のうち所定の一方の単一クロック・サイクル内で、実質的に同時のアクセス要求が順次処理されることを保証することを特徴とする請求項４記載のパイプラインド・デュアル・ポート・スタティック・ランダム・アクセス・メモリ（２０）。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般に、メモリに関し、さらに詳しくは、デュアル・ポート・メモリに関する。
【０００２】
【従来の技術】
デュアル・ポート・メモリは、さまざまな用途で有用である。デュアル・ポート・メモリは、通信およびマルチプロセッサ・システムの分野において特に有用である。マルチプロセッサ・システムでは、一方のプロセッサがアレイにデータを書き込み、他方のプロセッサがデータを読み出すことができる。特に、デュアル・ポートＲＡＭは、非同期転送モード（ＡＴＭ：Asynchronous Transfer Mode）という通信用途に特に適している。ＡＴＭスイッチでは、大量のデータを２つの処理装置間で転送しなければならない。別の通信用途には、標準ＩＥＥＥ８０２．３（Digital Equipment Corporation社製の商標「Ethernet」として一般に知られる）通信ルータがある。これらの種類の用途では、安価であるが大きなアレイを内蔵するデュアル・ポート・メモリが必要となる。
【０００３】
【発明が解決しようとする課題】
従来、デュアル・ポート・ランダム・アクセス・メモリ（ＲＡＭ）は、２つの方法のうちの一方を利用して構成された。第１の方法では、各メモリ・セルが真のデュアル・ポートであり、そのため８つのトランジスタを必要とした。大きなデュアル・ポート・メモリ・セルはアレイ自体を非常に大きくするので、この方法に基づく集積回路メモリは高価である。第２の方法は、標準的なシングル・ポート・スタティックＲＡＭセルをパーティッション化アレイ(partitioned array)で利用する。両方のポートが同一パーティッションをアクセスすることを試みる場合、これらのアクセスのうち一方を遅延しなければならない。パーティッションの数が増えると、衝突が発生する可能性は減少するが、余分なデコーディングおよび衝突検出回路のためにコストが増加する。従って、必要なのは、従来のシングル・ポートＳＲＡＭセルを利用するが、安価で高速な大型デュアル・ポートＲＡＭである。これらの必要性は、本発明により満たされ、その特徴および利点については、図面および以下の説明を参照してさらに説明する。
【０００４】
【実施例】
図１は、本発明によるメモリ２０を部分的なブロック図および部分的な論理図の形式で示す。メモリ２０は、集積回路デュアル・ポート・スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）であり、シングル・ポートＳＲＡＭアレイ２１，アービトレーション回路(arbitration circuit)２４，ボンディング・パッド２６，２８，入力部３０および出力部５０を一般に含む。アレイ２１は、Ｎビット・アドレスを受ける入力端子と、信号反転Ｗを受ける制御入力端子と、「ＣＬＫＸ」および「ＣＬＫＹ」と記されたクロック信号を受けるクロック入力端子と、「ＤIN］と記されたＭビット・データ値を受けるデータ入力端子と、「ＤOUT］と記されたＭビット・データ値を与える出力端子とを有する。また、アレイ２１は、デコーダ・ブロック２２およびライト制御回路２３も含む。
【０００５】
メモリ２０は、ボンディング・パッド２６，２８上でそれぞれ受信される「ＣＬＯＣＫ（Ｘ）」および「ＣＬＯＣＫ（Ｙ）」と記された２つのクロック信号に応答する。アービトレーション回路２４は、ＣＬＯＣＫ（Ｘ）を受けるためにボンディング・パッド２６に接続された第１入力端子と、ＣＬＯＣＫ（Ｙ）を受けるためにボンディング・パッド２８に接続された第２入力端子と、信号ＣＬＫＸおよびＣＬＫＹをアレイ２１に与える出力端子と、「ＸＹＳＥＬ」と記された制御信号を与える出力端子と、「ＱＣＬＫＸ」と記された信号を与える出力端子と、「ＱＣＬＫＹ」と記された信号を与える出力端子とを有する。
【０００６】
入力部３０は、ボンディング・パッド３１〜３６，Ｄ型フリップフロップ４０〜４５およびマルチプレクサ（ＭＵＸ）４６〜４８を一般に含む。ボンディング・パッド３１は、「ＡＤＤ（Ｘ）」と記されたＮビット・アドレス信号を受ける。ボンディング・パッド３２は、「ＡＤＤ（Ｙ）」と記されたＮビット・アドレス信号を受ける。ボンディング・パッド３３は、「反転Ｗ（Ｘ）」と記されたライト制御信号を受ける。ボンディング・パッド３４は、「反転Ｗ（Ｙ）」と記されたライト制御信号を受ける。ボンディング・パッド３５は、「ＤIN（Ｘ）」と記されたＭビット入力データ信号を受ける。ボンディング・パッド３６は、「ＤIN（Ｙ）」と記されたＭビット・データ入力信号を受ける。明白なように、ボンディング・パッド３１，３２のそれぞれは、それぞれアドレス信号を受けるためのＮ個のボンディング・パッドを表し、ボンディング・パッド３５，３６のそれぞれは、それぞれＤIN信号を受けるためのＭ個のボンディング・パッドを表すが、図１ではわかりやすいように単一のボンディング・パッドとして図示されている。
【０００７】
フリップフロップ４０は、ボンディング・パッド３１に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｘ）を受けるクロック入力端子と、Ｑ出力端子とを有し、ＡＤＤ（Ｘ）のそれぞれのアドレス信号を受け、かつそれぞれラッチされたアドレス信号を与えるＮ個のＤ型フリップフロップのうちの一つを表す。フリップフロップ４１は、ボンディング・パッド３２に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｙ）を受けるクロック入力端子と、Ｑ出力端子とを有し、ＡＤＤ（Ｙ）のそれぞれのアドレス信号を受け、かつラッチされたアドレス信号を与えるＮ個のフリップフロップのうちの一つを表す。フリップフロップ４２は、ボンディング・パッド３３に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｘ）を受けるクロック入力端子と、Ｑ出力端子とを有する。フリップフロップ４３は、ボンディング・パッド３４に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｙ）を受けるクロック入力端子と、Ｑ出力端子とを有する。フリップフロップ４４は、ボンディング・パッド３５に接続されたＤ入力端子と、ＣＬＯＣＫ（Ｘ）を受けるクロック入力端子と、Ｑ出力端子とを有し、信号ＤIN（Ｘ）のそれぞれ受けるＭ個のフリップフロップのうちの一つを表す。フリップフロップ４５は、ボンディング・パッド３６に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｙ）を受けるクロック入力端子と、Ｑ出力端子とを有し、信号ＤIN（Ｙ）の対応する信号を受けるＭ個のフリップフロップのうちの一つを表す。
【０００８】
ＭＵＸ４６は、フリップフロップ４０のＱ出力端子に接続された第１入力端子と、フリップフロップ４１のＱ出力端子に接続された第２入力端子と、信号ＸＹＳＥＬを受ける制御入力端子と、出力端子とを有し、ＡＤＤ（Ｘ）およびＡＤＤ（Ｙ）のそれぞれアドレス信号を受け、かつ信号ＡＤＤとして対応する出力をアレイ２１に与えるＮ個のＭＵＸのうちの一つを表す。ＭＵＸ４７は、フリップフロップ４２のＱ出力端子に接続された第１入力端子と、フリップフロップ４３のＱ出力端子に接続された第２入力端子と、信号ＸＹＳＥＬを受ける制御入力端子と、信号反転Ｗをアレイ２１に与える出力端子とを有する。ＭＵＸ４８は、フリップフロップ４４のＱ出力端子に接続された第１入力端子と、フリップフロップ４５のＱ出力端子に接続された第２入力端子と、信号ＸＹＳＥＬをける制御入力端子と、信号ＤINをアレイ２１に与える出力端子とを有し、信号ＤIN（Ｘ）およびＤIN（Ｙ）のそれぞれの信号を受け、かつ信号ＤINとして対応する出力をアレイ２１に与えるＭ個のＭＵＸのうちの一つを表す。
【０００９】
出力部５０は、Ｄ型フリップフロップ５１〜５４，３状態バッファ５５，５６およびボンディング・パッド６０〜６３を一般に含む。フリップフロップ５１は、アレイ２１の出力端子に接続されたＤ入力端子と、ＱＣＬＫＸを受けるクロック入力端子と、出力端子とを有し、信号ＤOUTのそれぞれを受け、かつ対応する出力を与えるＭ個のフリップフロップのうちの一つを表す。フリップフロップ５２は、フリップフロップ５１のＱ出力端子に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｘ）を受けるクロック入力端子と、出力端子とを有し、フリップフロップ５１によって表される前段のフリップフロップのうちの一つに対応するＭ個のフリップフロップのうちの一つを表す。フリップフロップ５３は、アレイ２１のＤ出力端子に接続されたＤ入力端子と、信号ＱＣＬＫＹを受けるクロック入力端子と、出力端子とを有し、信号ＤOUTのそれぞれを受け、かつ対応する出力を与えるＭ個のフリップフロップのうちの一つを表す。フリップフロップ５４は、フリップフロップ５３のＱ出力端子に接続されたＤ入力端子と、信号ＣＬＯＣＫ（Ｙ）を受けるクロック入力端子と、出力端子とを有し、フリップフロップ５３によって表される前段のフリップフロップのうちの一つに対応するＭ個のフリップフロップのうちの一つを表す。バッファ５５は、フリップフロップ５２のＱ出力端子に接続されたデータ入力端子と、データ出力端子と、ボンディング・パッド６０に接続された制御端子とを有し、フリップフロップ５２の対応するものに接続されたＭ個のバッファのうちの一つを表す。バッファ５６は、フリップフロップ５４のＱ出力端子に接続されたデータ入力端子と、出力端子と、ボンディング・パッド６３に接続された制御入力端子とを有し、フリップフロップ５４のそれぞれに対応するＭ個のバッファのうちの一つを表す。ボンディング・パッド６０は、バッファ５５の制御入力端子に接続される、「反転ＯＥ（Ｘ）」と記された出力イネーブル信号を受ける。ボンディング・パッド６１は、「ＤＡＴＡOUT（Ｘ）」と記された出力信号を与えるためバッファ５５の出力端子に接続され、バッファ５５などの各バッファに対応するＭ個のボンディング・パッドのうちの一つを表す。ボンディング・パッド６２は、「ＤＡＴＡOUT（Ｙ）」と記された信号を与えるためバッファ５６の出力端子に接続され、バッファ５６の対応する出力に接続されたＭ個のボンディング・パッドのうちの一つを表す。ボンディング・パッド６３は、「反転ＯＥ（Ｙ）」と記された出力イネーブル信号を受け、バッファ５６の制御端子に接続される。
【００１０】
動作時に、メモリ２０はフル・デュアル・ポートのスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）として機能する。メモリ２０において、各クロック信号の単一サイクル内でアクセスができない状況はない。さらに、メモリ２０は標準的な６トランジスタＳＲＡＭセルを利用し、そのため他のデュアル・ポート方式に伴う特殊なデュアル・ポート・セルの必要がない。
【００１１】
メモリ２０は、アレイ２１へのアクセスを各ポート上で非同期的に行うことを可能にすることによりこれらの効果を達成し、ここで各アクセスは各クロック信号の低(low)から高(high)への遷移で開始する。従って、信号ＣＬＯＣＫ（Ｘ）およびＣＬＯＣＫ（Ｙ）が規定の最大周波数よりも低い周波数を有している限り、メモリ２０は両方のアクセスがそれぞれクロック・サイクルの一つサイクル内で完了することを保証する。特に、デュアル・ポートＳＲＡＭ２０は、ＣＬＯＣＫ（Ｘ）およびＣＬＯＣＫ（Ｙ）がほぼ同時に生じる低から高への遷移を有する場合に、Ｘポート上のアクセスに優先権が与えられることを保証するように、アービトレーション回路２４を利用する。さらに、アービトレーション回路２４は、ＣＬＯＣＫ（Ｘ）とＣＬＯＣＫ（Ｙ）との間に微量のスキュー(skew)がある場合に、準安定(metastability)の問題が生じないことを保証する。
【００１２】
アレイ２１は、信号ＣＬＯＣＫ（Ｘ）またはＣＬＯＣＫ（Ｙ）のいずれかのスピードの２倍でアクセスできるシングル・ポート・メモリ・コアである。一般に、メモリ２０は、外部アクセス要求に応答して、アレイ２１へのアクセス要求を生成する。アービトレーション回路２４は、２つのアクセス要求が実質的に同時に受信される場合を除いて、２つのアクセス要求のうち早いほうがアレイ２１に与えられることを保証する。アクセス要求が同時に受信される場合、アービトレーション回路２４はＸポートを優先する。
【００１３】
さらに具体的には、アービトレーション回路２４は、アレイ２１へのアクセスがＸポートまたはＹポートに与えられたのかを示すために、信号ＸＹＳＥＬを出力する。この特定の実施例では、論理高レベルはＸポート上のアクセスを表し、一方、論理低レベルはＹポート上のアクセスを表す。従って、信号ＸＹＳＥＬが論理高の場合、ＭＵＸ４６は第１入力を選択し、Ｎビット信号ＡＤＤとして信号ＡＤＤ（Ｘ）をアレイ２１に与える。次に、アレイ２１は、デコーダ２２を利用して従来の行列デコーディングを行い、信号ＤOUT（アクセスがリード・サイクルであることを想定）を与える。同様に、アービトレーション回路２４が論理低のＸＹＳＥＬ信号を与える場合、ＭＵＸ４６は第２入力を選択する。信号ＸＹＳＥＬは、アービトレーション回路２４が優先権を与えたポートに対応するＭＵＸ４７，４８の入力を選択する。さらに、アービトレーション回路２４は、クロック信号ＣＬＫＸおよびＸＬＫＹをアレイ２１のライト制御回路２３に与える。なお、別の実施例では、クロック信号ＣＬＫＸ，ＣＬＫＹは単一のクロック信号に置き換えてもよいことに留意されたい。
【００１４】
信号ＱＣＬＫＸおよびＱＣＬＫＹは、それぞれＸおよびＹポートのリード・データ経路を制御する。信号ＱＣＬＫＸは、フリップフロップ５１のクロック入力端子に入力され、信号ＱＣＬＫＹは、フリップフロップ５３のクロック入力端子に入力される。なお、データ出力経路も、着信データをそれぞれ信号ＣＬＯＣＫ（Ｘ）およびＣＬＯＣＫ（Ｙ）の次の立ち上がりエッジと同期するために、追加のフリップフロップ５２，５４を含むことに留意されたい。バッファ５５，５６は、信号ＤＡＴＡOUT（Ｘ）およびＤＡＴＡOUT（Ｙ）に対して従来の３状態制御を行う。
【００１５】
図２は、シングル・ポート・メモリ・セル８０を含む図１のアレイ２１の一部７０を部分的な外略図および部分的なブロック図の形式で示す。メモリ・セル８０は、ワード・ライン７２上で導通する「ＷＬ」と記された信号の活性化によってアクセスされるスタティックＲＡＭセルであり、それぞれビットライン７４，７６の相補対(complementary pair)上で「ＢＬ」および「反転ＢＬ」と記された差動データ信号を導通する。メモリ・セル８０は、ＮチャネルＭＯＳ(metal oxide semiconductor)トランジスタ８２，８４およびインバータ８６，８８を含む。トランジスタ８２は、ビット・ライン７４に接続された第１電流電極と、ワード・ライン７２に接続されたゲートと、第２電流電極とを有する。トランジスタ８４は、ビット・ライン７６に接続された第１電流電極と、ワード・ライン７２に接続されたゲートと、第２電流電極とを有する。インバータ８６は、トランジスタ８２の第２電流電極に接続された入力端子と、トランジスタ８４の第２電流電極に接続された出力端子とを有する。インバータ８８は、インバータ８６の出力端子に接続された入力端子と、インバータ８６の入力端子に接続された出力端子とを有する。
【００１６】
動作時に、メモリ・セル８０は、その論理状態が背面結合(back-to-back)インバータ８６，８８の動作によって格納される、標準的なシングル・ポートの６トランジスタ・メモリ・セルである。なお、本明細書で説明するように、メモリ・セルにおけるトランジスタの数は、格納を行うトランジスタに加えて、アクセス・トランジスタを含むことに留意されたい。メモリ・セル８０は、ワード・ライン７２の活性化によって従来のようにアクセスされる。ワード・ライン７２がアクティブのとき、トランジスタ８２，８４は導通状態となり、メモリ・セルの内容を比較的小さな差動電圧としてビット・ライン７４，７６に結合する。この電圧は、その後検出され、出力される。ライト・サイクル中に、外部回路は、ＢＬと反転ＢＬとの間で比較的大きな差動電圧を与えて、メモリ８０に格納された内容を上書きする。
【００１７】
メモリ・セル８０は、標準的な８トランジスタのデュアル・ポート・メモリ・セルとは異なる。まず第１に、このメモリ・セル８０は、８つのトランジスタではなく、６つのトランジスタしかない。第２に、メモリ・セル８０は、ビットラインの２つの個別の対ではなく、ビット・ラインの一つの相補対にのみ接続され、２つの余分なアクセス・トランジスタを節約する。さらに、デュアル・ポート・メモリ・セルの場合の２つのワード・ラインに比べ、メモリ・セル８０にアクセスできる一つのワード・ラインしかない。２つのトランジスタを節約するだけでなく、一つのワード・ラインおよび一つのビット・ライン対だけの接続により、メモリ・セル８０に対する金属配線の量が低減される。これらの効果により、アレイ２１は比較的安価な従来のＳＲＡＭセルを利用して構成できる。なお、メモリ・セル８０などのシングル・ポート・メモリ・セルを利用して構成されたアレイは、対応する８トランジスタ型の真のデュアル・ポート・メモリ・セルに基づくアレイのサイズの約２５％である。
【００１８】
図３は、図１のアービトレーション回路２４を部分的なブロック図および部分的な論理図の形式で示す。アービトレーション回路２４は、ワンショット１００，１０１，ＳＲ型フリップフロップ１０２，１０３、インバータ１０４，１０５，ＮＯＲラッチ１１０，ＮＡＮＤラッチ１２０，インバータ１３０，１３１，ワンショット１３２，１３３，インバータ１３４，１３５およびＳＲ型フリップフロップ１３６を含む。ワンショット１００は、信号ＣＬＯＣＫ（Ｘ）を受けるためボンディング・パッド２６に接続された入力端子と、出力端子とを有する。ワンショット１０１は、信号ＣＬＯＣＫ（Ｙ）を受けるためボンディング・パッド２８に接続された入力端子と、出力端子とを有する。フリップフロップ１０２は、ワンショット１００の出力端子に接続されたＳ入力端子と、Ｒ入力端子と、Ｑ出力端子とを有する。フリップフロップ１０３は、ワンショット１０１の出力端子に接続されたＳ入力端子と、Ｒ入力端子と、Ｑ出力端子とを有する。インバータ１０４は、フリップフロップ１０２のＱ出力端子に接続された入力端子と、出力端子とを有する。インバータ１０５は、フリップフロップ１０３のＱ出力端子に接続された入力端子と、出力端子とを有する。
【００１９】
ＮＯＲラッチ１１０は、ＮＯＲゲート１１１，１１２を含む。ＮＯＲゲート１１１は、インバータ１０４の出力端子に接続された第１入力端子と、第２入力端子と、出力端子とを有する。ＮＯＲゲート１１２は、ＮＯＲゲート１１１の出力端子に接続された第１入力端子と、インバータ１０５の出力端子に接続された第２入力端子と、ＮＯＲゲート１１１の第２入力端子に接続された出力端子とを有する。
【００２０】
ＮＡＮＤラッチ１２０は、ＮＡＮＤゲート１２１，１２２を含む。ＮＡＮＤゲート１２１は、ＮＯＲゲート１１１の出力端子に接続された第１入力端子と、第２入力端子と、出力端子とを有する。ＮＡＮＤゲート１２２は、ＮＡＮＤゲート１２１の出力端子に接続された第１入力端子と、ＮＯＲゲート１１２の出力端子に接続された第２入力端子と、ＮＡＮＤゲート１２１の第２入力端子に接続された出力端子とを有する。インバータ１３０は、ＮＡＮＤゲート１２１の出力端子に接続された入力端子と、出力端子とを有する。インバータ１３１は、ＮＡＮＤゲート１２２の出力端子に接続された入力端子と、出力端子とを有する。ワンショット１３２は、インバータ１３０の出力端子に接続された入力端子と、信号ＣＬＫＸを与える出力端子とを有する。ワンショット１３３は、インバータ１３１の出力端子に接続された入力端子と、信号ＣＬＫＹを与える出力端子とを有する。インバータ１３４は、ワンショット１３２の出力端子に接続された入力端子と、信号ＱＣＬＫＸを与えるためフリップフロップ１０２のＲ入力端子に接続された出力端子とを有する。インバータ１３５は、ワンショット１３３の出力端子に接続された入力端子と、信号ＱＣＬＫＹを与えるためフリップフロップ１０３のＲ入力端子に接続された出力端子とを有する。フリップフロップ１３６は、ワンショット１３２の出力端子に接続されたＳ入力端子と、ワンショット１３３の出力端子に接続されたＲ入力端子と、信号ＸＹＳＥＬを与えるＱ出力端子とを有する。
【００２１】
アービトレーション回路２４は、信号ＣＬＯＣＫ（Ｘ）およびＣＬＯＣＫ（Ｙ）における雑音性の遷移を解決するために、短期間のパルスを与える２つのワンショット１００，１０１を含む。ワンショット１００，１０１のパルス幅は、ＣＬＯＣＫ（Ｘ）またはＣＬＯＣＫ（Ｙ）が比較的低い周波数を有するときに、セット入力が無効になる前にフリップフロップ１０２，１０３のリセット入力が生じないように、十分短い。フリップフロップ１０２，１０３のＱ出力は反転され、ＮＯＲラッチ１１０の入力に与えられる。
【００２２】
なお、ある状態では、ＮＯＲラッチ１１０は準安定(metastable)になることがある。これらの状態では、ＮＯＲゲート１１１，１１２の出力は中間レベルで固定する傾向がある。しかし、アービトレーション回路２４は、ＮＡＮＤラッチ１２０によりこの準安定の問題を解決する。ＮＡＮＤラッチ１２０の閾値は、ＮＯＲラッチ１１０が準安定になっても、ＮＡＮＤラッチ１２０が解決するように設定される。ＮＡＮＤラッチ１２０の出力は、さらに反転され、ワンショット１３２，１３３に入力される。ワンショット１３２，１３３は、遅いあるいは不安定なクロック信号を変換し、応答の期間が限られた急峻なパルスを生成する。ワンショット１３２，１３３の出力は反転され、信号ＱＣＬＫＸおよびＱＣＬＫＹを与え、これらの信号はフリップフロップ１０２，１０３のＲ入力にフィードバックされる。このフィードバック動作は、ＮＯＲラッチ１１０における準安定を解決する。
【００２３】
本発明について特定の実施例を参照して説明してきたが、更なる修正および改善は当業者に想起される。従って、本発明は特許請求の範囲に定める発明の範囲から逸脱しないかかる一切の修正を網羅するものとする。
【００２４】
第１または第２クロック信号のうちどちらが最初に遷移するかを判定することに応答して、第１または第２アドレス信号のうちどちらが複数のメモリ・セルに与えられるかを選択するための選択信号をアービトレーション回路が与えることは、本発明の一態様である。
【００２５】
また、アービトレーション回路が第１，第２および第３フリップフロップと、相互結合論理ゲートの第１対とによって構成されることは、本発明の別の態様である。第１フリップフロップは、第１クロック信号を受ける第１入力端子と、第１ラッチ済みクロック信号を与える出力端子とを有する。第２フリップフロップは、第２クロック信号を受ける第１入力端子と、第２ラッチ済みクロック信号を与える出力端子とを有する。相互結合論理ゲートの第１対は、第１および第２フリップフロップの出力端子にそれぞれ結合された第１および第２入力端子を有し、また第１および第２出力端子を有する。第３フリップフロップは、相互結合論理ゲートの第１対の第１出力端子に結合された第１入力端子と、相互結合論理ゲートの第１対の第２出力端子に結合された第２入力端子と、選択信号を与える出力端子とを有する。
【００２６】
また、アービトレーション回路は、相互結合論理ゲートの第１対の第１および第２出力端子に結合された第１および第２入力端子と、第３フリップフロップの第１入力端子に結合された第１出力端子と、第３フリップフロップの第２入力端子に結合された第２出力端子とを有する相互結合論理ゲートの第２対によって構成されることは、本発明のさらに別の態様である。
【００２７】
また、アービトレーション回路は、第１および第２パルス発生器をさらに含んで構成されることは、本発明のさらに別の態様である。第１パルス発生器は、相互結合論理ゲートの第２対の第１出力端子に結合された入力端子と、第３フリップフロップの第１入力端子に結合された出力端子とを有する。第２パルス発生器は、相互結合論理ゲートの第２対の第２出力端子に結合された第１入力端子と、第３フリップフロップの第２入力端子に結合された出力端子とを有する。
【００２８】
また、第１フリップフロップは、第１パルス発生器の出力端子に結合された第２入力端子を有し、また第２フリップフロップは、第２パルス発生器の出力端子に結合された第２入力端子を有することは、本発明のさらに別の態様である。
【図面の簡単な説明】
【図１】本発明によるパイプラインド・デュアル・ポート集積回路メモリを示す部分的なブロック図および部分的な論理図である。
【図２】シングル・ポート・スタティックＲＡＭセルを含む、図１のアレイの一部を示す部分的な外略図および部分的なブロック図である。
【図３】図１のアービトレーション回路を示す部分的なブロック図および部分的な論理図である。
【符号の説明】
２０  メモリ
２１  シングル・ポートＳＲＡＭアレイ
２２  デコーダ・ブロック
２３  ライト制御回路
２４  アービトレーション回路
２６，２８  ボンディング・パッド
３０  入力部
３１〜３６  ボンディング・パッド
４０〜４５  Ｄ型フリップフロップ
４６〜４８  マルチプレクサ（ＭＵＸ）
５０  出力部
５１〜５４  Ｄ型フリップフロップ
５５，５６  ３状態バッファ
６０〜６４  ボンディング・パッド
７２  ワード・ライン
７４，７６  ビット・ライン
８０  シングル・ポート・メモリ・セル
８２，８４  ＮチャネルＭＯＳトランジスタ
８６，８８  インバータ
１００，１０１，１３２，１３３  ワンショット
１０２，１０３，１３６  ＳＲ型フリップフロップ
１０４，１０５，１３０，１３１，１３４，１３５  インバータ
１１０  ＮＯＲラッチ
１１１，１１２  ＮＯＲゲート
１２０  ＮＡＮＤラッチ
１２１，１２２  ＮＡＮＤゲート
１３０，１３１  インバータ
【図１】
0004685997.tif 000002
【図２】
0004685997.tif 000003
【図３】
0004685997.tif 000004