(57)【特許請求の範囲】
【請求項１】
集積回路メモリ（２０）であって、
複数のメモリセル（８０）であって、該複数のメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、
前記複数のメモリセルに結合され、アドレスを受けたことに応答して前記複数のメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、
前記アドレスデコーダに結合され、前記複数のメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供する第１のアドレスポート（６０）、
前記アドレスデコーダに結合され、前記複数のメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供する第２のアドレスポート（６２）、
前記複数のメモリセルに結合され、前記第１または第２のアドレスに応答して前記複数のメモリセルからデータを読み出すための読出しデータポート（３０、「データ＿出力」）、
前記複数のメモリセルに結合され、前記第１または第２のアドレスに応答して前記複数のメモリセルにデータを書き込むための書込みデータポート（３０、「データ＿入力」）、そして
前記アドレスデコーダに、前記第１および第２のアドレスポートに、および前記読出しおよび書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のメモリセルへのアクセスを制御するためのものであり、前記複数のメモリセルへのアクセスのための実質的に同時的な要求は前記集積回路メモリにアクセスするデータプロセッサのクロック信号の単一のクロックサイクル内で順次サービスされるもの、
を具備し、
前記第１のアドレスと前記第２のアドレスが同じである場合に、データを読み出すための読出しデータポートへのアクセスはクロックサイクルの前半部分の間に生じかつデータを書き込むための書込みデータポートへのアクセスはクロックサイクルの後半部分の間に生じる、
ことを特徴とする集積回路メモリ（２０）。
【請求項２】
パイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）であって、
複数のスタティックランダムアクセスメモリセル（８０）であって、該複数のスタティックランダムアクセスメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、
前記複数のスタティックランダムアクセスメモリセルに結合され、アドレスを受信したことに応じて前記複数のスタティックランダムアクセスメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、
前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供するための第１のアドレスポート（６０）、
前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供するための第２のアドレスポート（６２）、
前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルからデータを読み出すための第１の読出し／書込みデータポート（３０、「データ＿出力」）、
前記複数のメモリセルに結合され、前記第１または第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリにデータを書き込むための第２の読出し／書込みデータポート（３０、「データ＿入力」）、そして
前記アドレスデコーダに、前記第１および第２のアドレスポートに、および前記第１第２の読出し／書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のスタティックランダムアクセスメモリセルへのアクセスを制御するためのものであり、前記複数のスタティックランダムアクセスメモリへのアクセスのための実質的に同時的な要求は前記パイプライン化デュアルポートスタティックランダムアクセスメモリにアクセスするデータプロセッサのクロック信号の単一クロックサイクル内で順次サービスされるもの、
を具備し、
前記第１のアドレスと前記第２のアドレスが同じである場合に、データを読み出すための第１の読出し／書込みデータポートへのアクセスはクロックサイクルの前半部分の間に生じかつデータを書き込むための第２の読出し／書込みデータポートへのアクセスはクロックサイクルの後半部分の間に生じる、
ことを特徴とするパイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）。
【請求項３】
パイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）であって、
複数のスタティックランダムアクセスメモリセル（８０）であって、該複数のスタティックランダムアクセスメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、
前記複数のスタティックランダムアクセスメモリセルに結合され、アドレスを受信したことに応じて前記複数のスタティックランダムアクセスメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、
前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供するための第１のアドレスポート（６０）、
前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供するための第２のアドレスポート（６２）、
前記第１および第２のアドレスポートに結合され、前記第１および第２のアドレスを受信し、かつこれに応じて、前記第１のアドレスが前記第２のアドレスと同じである場合に第１の論理状態の整合信号を提供し、かつ前記第１のアドレスが前記第２のアドレスと同じでない場合に第２の論理状態の整合信号を提供するためのアドレス衝突検出器（１１０）、
前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルからデータを読み出すための第１の読出し／書込みデータポート（３０、「データ＿出力」）、
前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルにデータを書き込むための第１の読出し／書込みデータポート（３０、「データ＿入力」）、そして
前記アドレスデコーダに、前記第１および第２のアドレスポートに、前記アドレス衝突検出器に、そして前記第１および第２の読出し／書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のメモリセルへのアクセスを制御するためのものであり、前記複数のスタティックランダムアクセスメモリセルへのアクセスのための実質的に同時的な要求は前記パイプライン化デュアルポートスタティックランダムアクセスメモリにアクセスするデータプロセッサのクロック信号の単一のクロックサイクル内で順次サービスされ、かつ前記整合信号が前記第１および第２の読出し／書込みデータポートの内のどれが始めにサービスされるかを決定するもの、
を具備し、
前記第１のアドレスと前記第２のアドレスが同じである場合に、データを読み出すための第１の読出し／書込みデータポートへのアクセスはクロックサイクルの前半部分の間に生じかつデータを書き込むための第２の読出し／書込みデータポートへのアクセスはクロックサイクルの後半部分の間に生じる、
ことを特徴とするパイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は一般的にはメモリに関し、かつより特定的にはデュアルポートメモリ（ｄｕａｌ  ｐｏｒｔ  ｍｅｍｏｒｉｅｓ）に関する。
【０００２】
【従来の技術】
デュアルポートメモリは広い範囲の用途に対して有用である。それらは通信およびマルチプロセッサシステムの領域において特別の有用性を有する。マルチプロセッサシステムにおいては、１つのプロセッサがデータをアレイに書き込むことができかつ他のプロセッサがデータを読み出すことができる。特に、デュアルポートＲＡＭは非同期転送モード（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ：ＡＴＭ）として知られた通信の用途に極めて適している。ＡＴＭスイッチにおいては、多量のデータが２つの処理装置の間で転送されなければならない。他の通信の用途は標準的なＩＥＥＥ８０２．３（通常デジタル・イクイップメント・コーポレイションから得られる商標「イーサネット（Ｅｔｈｅｒｎｅｔ）」の下で知られている）の通信ルータである。これらの種類の用途は低価格であるが大きなアレイを含むデュアルポートメモリを必要性としている。
【０００３】
【発明が解決しようとする課題】
伝統的には、デュアルポートのランダムアクセスメモリ（ＲＡＭ）は２つの技術の内の１つを使用して構成されている。第１の技術においては、各々のメモリセルは真にデュアルポートであり、かつ従って８つのトランジスタを必要とする。大きなデュアルポートのメモリセルはアレイそれ自体を非常に大きなものとし、この技術に基づく集積回路メモリは高価なものとなる。第２の技術は区分されたアレイを備えた標準的な単一ポートのスタティックＲＡＭセルを使用する。もし両方のポートが同時に同じ区分またはパーティション（ｐａｒｔｉｔｉｏｎ）にアクセスを試みれば、１つのアクスが遅延されなければならない。パーティションの数が増大にするに応じて、衝突が生じる可能性は低減するが、余分のデコードおよび衝突検出回路のためコストが増大する。従って、必要なことは伝統的な単一ポートＳＲＡＭセルを使用するが低価格でありかつ高速である大きなデュアルポートＲＡＭである。これらの必要性は本発明によって満たされ、本発明の特徴および利点は添付の図面および付随する説明を参照してさらに説明する。
【０００４】
【課題を解決するための手段】
本発明の一態様では、集積回路メモリ（２０）が提供され、該集積回路メモリは、複数のメモリセル（８０）であって、該複数のメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、前記複数のメモリセルに結合され、アドレスを受けたことに応答して前記複数のメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、前記アドレスデコーダに結合され、前記複数のメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供する第１のアドレスポート（６０）、前記アドレスデコーダに結合され、前記複数のメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供する第２のアドレスポート（６２）、前記複数のメモリセルに結合され、前記第１または第２のアドレスに応答して前記複数のメモリセルからデータを読み出すための読出しデータポート（３０、「データ＿出力」）、前記複数のメモリセルに結合され、前記第１または第２のアドレスに応答して前記複数のメモリセルにデータを書き込むための書込みデータポート（３０、「データ＿入力」）、そして前記アドレスデコーダに、前記第１および第２のアドレスポートに、および前記読出しおよび書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のメモリセルへのアクセスを制御するためのものであり、前記複数のメモリセルへのアクセスのための実質的に同時的な要求は前記集積回路メモリにアクセスするデータプロセッサのクロック信号の単一のクロックサイクル内で順次サービスされるもの、を具備することを特徴とする。
【０００５】
本発明の別の態様では、パイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）が提供され、該メモリは、複数のスタティックランダムアクセスメモリセル（８０）であって、該複数のスタティックランダムアクセスメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、前記複数のスタティックランダムアクセスメモリセルに結合され、アドレスを受信したことに応じて前記複数のスタティックランダムアクセスメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供するための第１のアドレスポート（６０）、前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供するための第２のアドレスポート（６２）、前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルからデータを読み出すための第１の読出し／書込みデータポート（３０、「データ＿出力」）、前記複数のメモリセルに結合され、前記第１または第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリにデータを書き込むための第２の読出し／書込みデータポート（３０、「データ＿入力」）、そして前記アドレスデコーダに、前記第１および第２のアドレスポートに、および前記第１第２の読出し／書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のスタティックランダムアクセスメモリセルへのアクセスを制御するためのものであり、前記複数のスタティックランダムアクセスメモリへのアクセスのための実質的に同時的な要求は前記パイプライン化デュアルポートスタティックランダムアクセスメモリにアクセスするデータプロセッサのクロック信号の単一クロックサイクル内で順次サービスされるもの、を具備することを特徴とする。
【０００６】
本発明のさらに別の態様では、パイプライン化デュアルポートスタティックランダムアクセスメモリ（２０）が提供され、該メモリは、複数のスタティックランダムアクセスメモリセル（８０）であって、該複数のスタティックランダムアクセスメモリセルの各々は単一のワードライン（７２）におよび単一のビットライン対（７４，７６）に結合されているもの、前記複数のスタティックランダムアクセスメモリセルに結合され、アドレスを受信したことに応じて前記複数のスタティックランダムアクセスメモリセルの内のあるメモリセルを選択するためのアドレスデコーダ（３０，３６）、前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第１のアドレスを提供するための第１のアドレスポート（６０）、前記アドレスデコーダに結合され、前記複数のスタティックランダムアクセスメモリセルにアクセスするために前記アドレスデコーダに第２のアドレスを提供するための第２のアドレスポート（６２）、前記第１および第２のアドレスポートに結合され、前記第１および第２のアドレスを受信し、かつこれに応じて、前記第１のアドレスが前記第２のアドレスと同じである場合に第１の論理状態の整合信号を提供し、かつ前記第１のアドレスが前記第２のアドレスと同じでない場合に第２の論理状態の整合信号を提供するためのアドレス衝突検出器（１１０）、前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルからデータを読み出すための第１の読出し／書込みデータポート（３０、「データ＿出力」）、前記複数のスタティックランダムアクセスメモリセルに結合され、前記第１のアドレスまたは前記第２のアドレスのいずれかに応答して前記複数のスタティックランダムアクセスメモリセルにデータを書き込むための第１の読出し／書込みデータポート（３０、「データ＿入力」）、そして前記アドレスデコーダに、前記第１および第２のアドレスポートに、前記アドレス衝突検出器に、そして前記第１および第２の読出し／書込みデータポートに結合された制御回路（３２）であって、該制御回路は前記複数のメモリセルへのアクセスを制御するためのものであり、前記複数のスタティックランダムアクセスメモリセルへのアクセスのための実質的に同時的な要求は前記パイプライン化デュアルポートスタティックランダムアクセスメモリにアクセスするデータプロセッサのクロック信号の単一のクロックサイクル内で順次サービスされ、かつ前記整合信号が前記第１および第２の読出し／書込みデータポートの内のどれが始めにサービスされるかを決定するもの、を具備することを特徴とする。
【０００７】
【発明の実施の形態】
図１は、ブロック図形式で本発明に係わるパイプライン化されたデュアルポート集積回路メモリ２０を示す。メモリ２０は概略的に単一ポートＳＲＡＭアレイ３０、クロックおよび制御パス３２、入力／出力（Ｉ／Ｏ）データパス（ｐａｔｈ）３４、アドレスパス３６、および一組の入力および／または出力ボンディングパッド４０を含む。入力および／または出力パッドは次のとおりである。すなわち、「クロック（ＣＬＯＣＫ）」と名付けられたクロック入力パッド４２、「Ｒ／Ｗ＿ポート１（Ｒ／Ｗ＿ＰＯＲＴ１）」と名付けられたポート１のための読出し／書込み入力パッド４４、「Ｒ／Ｗ＿ポート２（Ｒ／Ｗ＿ＰＯＲＴ２）」と名付けられたポート２のための読出し／書込み入力パッド４６、「データ＿ポート１（ＤＡＴＡ＿ＰＯＲＴ１）」と名付けられたポート１のためのデータ入力／出力パッド４８、「データ＿ポート２（ＤＡＴＡ＿ＰＯＲＴ２）」と名付けられたポート２のためのデータ入力／出力パッド５０、「ＯＥ＿ポート１（ＯＥ＿ＰＯＲＴ１）」と名付けられたポート１のための出力イネーブル入力パッド５２、「ＯＥ＿ポート２（ＯＥ＿ＰＯＲＴ２）」と名付けられた出力イネーブル入力パッド５４、「ＰＴ＿ポート１（ＰＴ＿ＰＯＲＴ１）」と名付けられたパススルー入力パッド（ｐａｔｈ  ｔｈｒｏｕｇｈ  ｉｎｐｕｔ  ｐａｄ）５６、「ＰＴ＿ポート２（ＰＴ＿ＰＯＲＴ２）」と名付けられたポート２のためのパススルー入力パッド５８、「アドレス＿ポート１（ＡＤＤＲＥＳＳ＿ＰＯＲＴ１）」と名付けられたポート１のためのアドレス入力パッド、そして「アドレス＿ポート２（ＡＤＤＲＥＳＳ＿ＰＯＲＴ２）」と名付けられたポート２のためのアドレス入力パッド６２を含んでいる。明らかに、データおよびアドレス端子はマルチビット端子を表しているが、本発明の理解を容易にするため単一の端子として示されている。
【０００８】
クロックおよび制御パス３２はパッド４２に接続された「クロック（ＣＬＯＣＫ）」入力端子、パッド４４に接続された「Ｒ／Ｗ＿ポート１（Ｒ／Ｗ＿ＰＯＲＴ１）」入力端子、パッド４６に接続された「Ｒ／Ｗ＿ポート２（Ｒ／Ｗ＿ＰＯＲＴ２）」入力端子、「整合（ＭＡＴＣＨ）」と名付けられたアドレス整合入力、「Ｒ／Ｗ信号（Ｒ／Ｗ  ＳＩＧＮＡＬＳ）」と名付けられた読出し／書込み出力端子、およびクロック（ＣＬＯＣＫＳ）」と名付けられたクロック制御出力端子を有する。Ｉ／Ｏデータパス３４はボンディングパッド４８，５０，５２，５４，５６，および５８に対応する端子、信号「整合」を受けるための入力端子、信号「クロック」を受けるための入力端子、「データ＿入力（ＤＡＴＡ＿ＩＮ）」と名付けられた出力端子、および「データ＿出力（ＤＡＴＡ＿ＯＵＴ）」と名付けられた入力端子を有する。アドレスパス３６は「アドレス＿ポート１」パッド６０および「アドレス＿ポート２」パッド６２に対応するアドレス入力端子、「整合」信号を提供するための出力端子、「クロック」を受けるための入力端子、および「アドレス＿ＲＡＭ（ＡＤＤＲＥＳＳ＿ＲＡＭ）」と名付けられた信号を提供するための出力端子を有する。前記クロックおよび制御パス３２によって出力される「クロック」はすべてがＩ／Ｏデータパス３４およびアドレスパス３６の各々によって受信されるのではないことに注意を要する。これらのブロックの各々によって受信される特定の「クロック」は後に図３〜図５を参照してさらに説明する。
【０００９】
アレイ３０は「Ｒ／Ｗ信号」を受けるための制御入力端子、Ｉ／Ｏデータパス３４の「データ＿入力」出力端子に接続されたデータ入力端子、Ｉ／Ｏデータパス３４の「データ＿出力」入力端子に接続されたデータ出力端子、およびアドレスパス３６の「アドレス＿ＲＡＭ」出力を受けるためのアドレス入力端子を有する標準的な単一ポートのスタティックランダムアクセスメモリアレイである。前記「Ｒ／Ｗ信号」の構成はアレイ３０の特定の設計に応じて実施形態により変化し、かつ従って、これらの信号は包括的に示されていることに注意を要する。しかしながら、メモリ２０において使用される特定の信号はさらに図５を参照して後に説明する。
【００１０】
動作においては、メモリ２０は全２重ポートまたはフルデュアルポートのスタティックランダムアクセスメモリ（ＳＲＡＭ）として機能する。しかしながら、アレイ区分技術を使用するいくつかのデュアルポート設計とは異なり、２つのアクセスが単一のクロックサイクル内で生じ得ない状況はない。さらに、メモリ２０は標準的な６トランジスタＳＲＡＭセルを使用し、かつ従って他のデュアルポート化された技術に関連する特別のデュアルポート化されたセルの必要性を避けている。
【００１１】
メモリ２０はこれらの利点を「クロック」信号のそれぞれの周期または期間（ｐｅｒｉｏｄ）に対してアレイ３０にアクセスするために２つのアクセスを発生することにより達成する。アレイ３０は外部「クロック」信号の２倍の速度でアクセスされ得る単一ポートのメモリコアである。一般に、メモリ２０はポート１のアクセスの要求に基づく「クロック」サイクルの第１の部分の間にかつポート２のアクセスに基づく「クロック」サイクルの第２の部分の間にアレイ３０のアクセスの要求を発生する。メモリ２０はポート２に対する同じアドレスへの試みられた読出しがある「クロック」サイクルの間にポート１の試みられた書込みサイクルがある特別の場合にこの順序を反転する。
【００１２】
メモリ２０の詳細な動作は図２〜図７を参照してさらによく理解されるであろう。図２は、単一ポートメモリセル８０を含む図１のアレイ３０の一部７０を部分的回路図および部分的ブロック図形式で示す。メモリセル８０はワードライン７２によって導かれる“ＷＬ”と名付けられた信号のアクティベイションまたは活性化によりアクセスされるスタティックＲＡＭセルであり、かつビットライン７４および７６の相補対によって、それぞれ、“ＢＬ”および“＊ＢＬ”と名付けられた差動データ信号を導く。メモリセル８０はＮチャネル金属酸化物半導体（ＭＯＳ）トランジスタ８２および８４、そしてインバータ８６および８８を含む。トランジスタ８２はビットライン７４に接続された第１の電流電極、ワードライン７２に接続されたゲート、および第２の電流電極を有する。トランジスタ８４はビットライン７６に接続された第１の電流電極、ワードライン７２に接続されたゲート、および第２の電流電極を有する。インバータ８６はトランジスタ８２の第２の電流電極に接続された入力端子、およびトランジスタ８４の第２の電流電極に接続された出力端子を有する。インバータ８８はインバータ８６の出力端子に接続された入力端子、およびインバータ８６の入力端子に接続された出力端子を有する。
【００１３】
動作においては、メモリセル８０は標準的な単一ポートの６トランジスタメモリセルであり、その論理状態は逆並列またはバック−バック（ｂａｃｋ−ｔｏ−ｂａｃｋ）接続されたインバータ８６および８８の動作によって記憶される。ここで説明されるように、１つのメモリセルにおけるトランジスタの数は記憶を行うトランジスタに加えてアクセストランジスタを含むことに注意を要する。メモリセル８０は伝統的にワードライン７２の活性化またはアクティベイションによってアクセスされる。ワードライン７２がアクティブである場合、トランジスタ８２および８４は導通し、メモリセルの内容を比較的小さな差動電圧としてビットライン７４および７６上に結合する。この電圧はその後検知されかつ出力される。書込みサイクルの間に、外部回路がＢＬおよび＊ＢＬの間に比較的大きな差動電圧を提供しメモリセル８０に記憶された内容を上書きまたはオーバライトする。
【００１４】
メモリセル８０は標準的な８トランジスタのデュアルポート化されたメモリセルと異なっている。第１に、それは８個のトランジスタの代わりに６個を含むのみである。第２に、それは２つの別個の対のビットラインの代わりに単一の相補的な対のビットラインにのみ接続され、２つの余分のアクセストランジスタを節約する。さらに、デュアルポート化されたメモリセルに対する２つのワードラインと比較して、メモリセル８０にアクセスできる単一のワードラインのみがある。２つのトランジスタを節約することに加えて、単一のワードラインおよび単一のビットライン対のみへの接続はまたメモリセル８０へのおよびメモリセル８０からの金属ワイヤリングの量を低減する。これらの効果はアレイ３０が比較的安価な従来のＳＲＡＭセルを使用して構成できるようにする。単一ポートのメモリセルのようなメモリセル８０を使用して構成されたアレイは対応する８トランジスタの真のデュアルポートのメモリセルに基づくアレイのサイズの約２５パーセントとなることに注意を要する。
【００１５】
図３は、論理図形式で図１のアドレスパス３６を示す。アドレスパス３６は概略的にアドレスポート入力段９０、プリデコーダ部１００、およびアドレス衝突検出器１１０を含む。入力段９０は概略的に排他的ＯＲゲート９２、“ＤＦＦ”と名付けられたＤ型フリップフロップ９４、および“ＭＵＸ”と名付けられたマルチプレクサ９６を含む。排他的ＯＲゲート９２はパッド６０に接続されて「アドレス＿ポート１」信号を受けるための第１の入力端子、パッド６２に接続されて「アドレス＿ポート２」信号を受けるための第２の入力端子、および出力端子を有する。入力段９０はアドレスビットの数に対応する数の入力段の内の代表的な１つであり、かつ各々のアドレスビットに対応して図３に示される入力段９０のような入力段がある。Ｄ型フリップフロップ９４はパッド６２に接続され「アドレス＿ポート２」信号を受けるためのＤ入力端子、“Ｐ２ＣＬＫ”と名付けられた信号を受けるためのクロック入力端子、およびＱ出力端子を有する。ＭＵＸ９６はパッド６０に接続されて「アドレス＿ポート１」信号を受けるための第１の入力端子、Ｄ型フリップフロップ９４のＱ出力端子に接続された第２の入力端子、“Ｐ１Ｐ２ＭＵＸ”と名付けられた信号を受けるための制御入力端子、および出力端子を有する。
【００１６】
プリデコーダ部１００はＡＮＤゲート１０２およびＤ型フリップフロップ１０４を含む。ＡＮＤゲート１０２はＭＵＸ９６の出力端子に接続された第１の入力端子、第２の入力端子、および出力端子を有する。Ｄ型フリップフロップ１０４はＡＮＤゲート１０２の出力端子に接続されたＤ入力端子、“ＤＥＣＣＬＫ”と名付けられた信号を受けるためのクロック入力端子、および「アドレス＿ＲＡＭ（ＡＤＤＲＥＳＳ＿ＲＡＭ）」と名付けられ信号を提供するためのＱ出力端子を有する。プリデコーダ部１００はプリデコードの間に行われる論理機能を代表するものであることに注意を要する。従って、ＡＮＤゲート１０２の第２の入力は名付けられておらず（ｎｏｔ  ｌａｂｅｌｌｅｄ）かつ、それ自身実施形態によって変化する、どのようなプリデコード機能が実際に行われているかに基づき変化するであろう。さらに、ＡＮＤゲート１０２は特定の実施形態に基づき２つ、３つ、またはそれ以上の入力を有してもよく、あるいは異なる論理機能とすることもでき、かつＭＵＸ９６の出力はＡＮＤゲート１０２のようないくつかの他の論理ゲートに提供されることに注意を要する。
【００１７】
アドレス衝突検出器１１０はＮＯＲゲート１１２およびＤ型フリップフロップ１１４を含む。ＮＯＲゲート１１２は排他的ＯＲゲート９２の出力端子に接続された第１の入力端子、および付加的な入力端子を有する。これらの付加的な入力端子の各々は他のアドレスピンの各々に対応する他の入力段の対応する排他的ＯＲ出力端子に接続されている。ＮＯＲゲート１１２はまた出力端子を有する。Ｄ型フリップフロップ１１４はＮＯＲゲート１１２の出力端子に接続されたＤ入力端子、“Ｐ３ＣＬＫ”と名付けられた信号を受けるためのクロック入力端子、および「整合」信号を提供するためのＱ出力端子を有する。
【００１８】
動作においては、アドレスパス３６の総合的な機能は図３に示された３つの部分の各々を参照して説明することができる。入力段９０は図１に示されるようにアレイ３０の入力をドライブする上で使用するための第１または第２のポートのアドレスの内の所定の１つを選択する働きをなす。「クロック」信号の半サイクルの間に、「アドレス＿ポート１」および「アドレス＿ポート２」の内の１つが後にさらに説明するようにしてアレイ３０に入力するために選択される。入力段９０によって提供される付加的な機能は対応するアドレスビットが等しいことを認識することである。排他的ＯＲゲート９２の出力は前記２つのアドレスビットが同じである場合にアクティブとなる。従って、アクティブローの出力は２つの対応するアドレスビットの一致を表す。
【００１９】
上で述べたように、プリデコーダ部１００はアレイ３０に入力を提供するためにプリデコード機能を達成する。他の実施形態では、プリデコード機能はアレイ３０の一部と考えることができるが、メモリ２０においては、それはアドレスパス３６の機能であると考えられる。「クロック」サイクルの最初の半分（ｈａｌｆ）の間に、「アドレス＿ポート１」におけるアドレス入力はアレイ３０に入力され、かつＤ型フリップフロップ１０４がこのデコードされたアドレスを登録するために使用される。「クロック」サイクルの最初の部分の間に、ＭＵＸ９６の最初の入力が選択されかつ従って「ポート１」上のアドレスが通過しかつＤ型フリップフロップ１０４によって形成されるレジスタに登録される。同様に、クロックサイクルの第１の（ｆｉｒｓｔ）部分の間に、「アドレス＿ポート２」によって導かれるアドレスが登録されるが、この場合はＤ型フリップフロップ９４によって形成されるレジスタに登録される。「クロック」サイクルの第２の部分の間に、「ポート２」上に導かれかつＤ型フリップフロップ９４に格納されたアドレスがＭＵＸ９６の第２の入力を通って選択されかつ次にＤ型フリップフロップ１０４に登録されてプリデコードされたアドレスをアレイ３０にドライブする。
【００２０】
入力段９０およびプリデコーダ部１００と異なり、アドレス衝突検出器１１０はすべてのアドレス入力ビットの間で共有または共用される。ＮＯＲゲート１１２は「ポート１」および「ポート２」アドレスの双方の各アドレスビットが一致する条件を検出しかつこの「整合」条件を示すためにアクティブハイ信号を提供する。Ｄ型フリップフロップ１１４はこの制御信号をクロック信号Ｐ３ＣＬＫと時を同じくしてまたは一致して（ｃｏｉｎｃｉｄｅｎｔ  ｗｉｔｈ）記憶するために使用される。
【００２１】
図４は、図１のＩ／Ｏデータパス３４をブロック図形式で示す。Ｉ／Ｏデータパス３４は概略的にセルフタイム化（ｓｅｌｆ−ｔｉｍｅｄ）増幅器１２０、Ｄ型フリップフロップ１３０、ＭＵＸ１３２、Ｄ型フリップフロップ１３４、ＭＵＸ１３６、Ｄ型フリップフロップ１３８，１４０，１４２，１４３，および１４４、ＭＵＸ１４６、Ｄ型フリップフロップ１４８、およびＡＮＤゲート１５０を含む。セルフタイム化増幅器１２０はセンスアンプ１２２ならびにインバータ１２４および１２６を含む。センスアンプ１２２は“ＧＤＬ”と名付けられた信号を受けるための正入力端子、“ＧＤＬＢ”と名付けられた信号を受けるための負入力端子、“ＦＡＭＰＢ”と名付けられた信号を受けるためのアクティブローの制御入力端子、および出力端子を有する。ここでおよび以下の説明で、その表現の終わりに“Ｂ”が添付された信号はアクティブローの信号を表すことに注意を要する。信号ＧＤＬおよびＧＤＬＢはアレイ３０における相補グローバルデータラインによって導かれる信号であり、ローおよびコラムデコードによって選択されるメモリセルの内容を表し、かつ図１の「データ＿出力」信号に対応する。インバータ１２４はセンスアンプ１２２の出力端子に接続された入力端子、およ出力端子を有する。インバータ１２６はインバータ１２４の出力端子に接続された入力端子、およびインバータ１２４の入力端子に接続された出力端子を有する。
【００２２】
Ｄ型フリップフロップ１３０はセンスアンプ１２２の出力端子に接続されたＤ入力端子、“ＤＬＣＬＫ１”と名付けられた信号を受けるためのクロック入力端子、およびＱ出力端子を有する。ＭＵＸ１３２は“０”と名付けられた第１の入力端子、Ｄ型フリップフロップ１３０のＱ出力端子に接続され“１”と名付けられた第２の入力端子、制御入力端子、および出力端子を有する。Ｄ型フリップフロップ１３４はＭＵＸ１３２の出力端子に接続されたＤ入力端子、“ＱＶＣＬＫ”と名付けられた信号を受けるためのクロック入力端子、およびパット４８に接続されてそこに信号「データ＿ポート１」を提供するためのＱ出力端子を有する。
【００２３】
ＭＵＸ１３６は“０”と名付けられた第１の入力端子、“１”と名付けられた第２の入力端子、Ｄ型フリップフロップ１３０のＱ出力端子に接続され“２”と名付けられた第３の入力端子、センスアンプ１２２の出力端子に接続され“３”と名付けられた第４の入力端子、“ＲＡＴＦＢ”と名付けられた信号を受けるための“４”と名付けられた第１の制御入力端子、“５”と名付けられた第２の制御入力端子、および出力端子を有する。Ｄ型フリップフロップ１３８はＭＵＸ１３６の出力端子に接続されたＤ入力端子、信号ＱＶＣＬＫを受けるためのクロック入力端子、およびパッド５０に接続されてそこに信号「データ＿ポート２」を提供するためのＱ出力端子を有する。
【００２４】
Ｄ型フリップフロップ１４０はパッド５８に接続されて信号「ＰＴ＿ポート２」を受けるためのＤ入力端子、信号Ｐ３ＣＬＫを受けるためのクロック入力端子、およびＭＵＸ１３２の制御入力端子に接続されたＱ出力端子を有する。Ｄ型フリップフロップ１４２はパッド５６に接続されて信号「ＰＴ＿ポート１」を受けるためのＤ入力端子、信号Ｐ３ＣＬＫを受けるためのクロック入力端子、およびＭＵＸ１３６の第２の制御入力端子に接続されたＱ出力端子を有する。Ｄ型フリップフロップ１４３はＤ型フリップフロップ１３４のＱ出力端子に接続されたＤ入力端子、“Ｐ２ＣＬＫ”と名付けられた信号を受けるためのクロック入力端子、およびＭＵＸ１３６の前記第１および第２の入力端子の双方に接続されたＱ出力端子を有する。Ｄ型フリップフロップ１４４はパッド５０に接続され信号「データ＿ポート２」を受けるためのＤ入力端子、信号Ｐ２ＣＬＫを受けるためのクロック入力端子、およびＭＵＸ１３２の第１の入力端子に接続されたＱ出力端子を有する。ＭＵＸ１４６はＤ型フリップフロップ１３４のＱ出力端子に接続された第１の入力端子、Ｄ型フリップフロップ１４４のＱ出力端子に接続された第２の入力端子、制御入力端子、および出力端子を有する。Ｄ型フリップフロップ１４８はＭＵＸ１４６の出力端子に接続されたＤ入力端子、“ＤＩＮＫ”と名付けられた信号を受けるためのクロック入力端子、および“ＥＱＤ”と名付けられた信号を提供するためのＱ出力端子を有する。ＡＮＤゲート１５０は信号Ｐ１Ｐ２ＭＵＸを受けるための第１の入力端子、信号ＲＡＦＴＢを受けるための第２の入力端子、ＭＵＸ１４６の制御入力端子に接続された出力端子を有する。信号ＥＱＤは図１の「データ＿入力」に対応することに注意を要する。信号ＦＡＭＰＢ，ＤＬＣＬＫ１，ＱＶＣＬＫ，Ｐ３ＣＬＫ，Ｐ１Ｐ２ＭＵＸ，ＲＡＴＦＢ，Ｐ２ＣＬＫおよびＤＩＮＫは図１からの「クロック（ＣＬＯＣＫＳ）」に対応する。
【００２５】
動作においては、Ｉ／Ｏデータパス３４は４つの異なる信号のボンディングパッドに接続され、各々１つが「データ＿ポート１」および「データ＿ポート２」からのデータ、ならびに２つの制御信号「ＰＴ＿ポート１」および「ＰＴ＿ポート２」に対応する。これらの制御信号は１つのポートから他のものへのデータの通過を制御する通過またはパススルー（ｐａｓｓ−ｔｈｒｏｕｇｈ）信号である。従って、信号「ＰＴ＿ポート２」が論理ローでアクティブである場合は、Ｄ型フリップフロップ１４０の出力はＭＵＸ１３２に対しパッド５０からの「データ＿ポート２」信号を表す第１の入力を選択させこれはＤ型フリップフロップ１３４を通って「データ＿ポート１」信号としてパッド４８に提供される。逆に、信号「ＰＴ＿ポート１」がＤ型フリップフロップ１４２の入力において論理ローでアクティブである場合は、そのＱ出力はＭＵＸ１３６を制御してＭＵＸ１３６の第１および第２の入力を選択させこれは、Ｄ型フリップフロップ１４３を介して、パッド４８からの「データ＿ポート１」信号を表しかつそのビットをＤ型フリップフロップ１３８を介して「データ＿ポート２」信号としてパッド５０に出力する。
【００２６】
次に、Ｉ／Ｏデータパス３４の動作をパススルーモードで動作していない場合につき説明する。セルフタイム化増幅器１２０が使用されて読出しサイクルの間にアレイ３０からの出力データを検知する。セルフタイム化増幅器１２０の出力は、ＭＵＸ１３６の第４の入力端子を介して、Ｄ型フリップフロップ１３０のＤ入力端子およびＤ型フリップフロップ１３８のＤ入力端子の双方に入力される。従って、メモリアレイ３０からのデータはどのポートが現在アレイにアクセスしているかに応じて読出しサイクルの間に選択的に信号「データ＿ポート１」としてパッド４８にあるいは信号「データ＿ポート２」としてパッド５０に提供される。
【００２７】
書込みサイクルの間に付加的な回路が使用される。ＭＵＸ１４６はパッド４８からの信号「データ＿ポート１」あるいはパッド５０からの信号「データ＿ポート２」（これはＤ型フリップフロップ１４４に登録されている）を選択する。この選択は信号ＲＡＴＦＢと論理的にＡＮＤ操作された信号Ｐ１Ｐ２ＭＵＸに基づいて行われる。信号ＲＡＴＦＢは整合状態を示しかつさらに後に説明する。選択された入力データは次にＤ型フリップフロップ１４８において信号ＤＩＮＫによって登録されかつ信号ＥＱＤとしてアレイ３０へとドライブされる。
【００２８】
図５は、図１のクロックおよび制御パス３２を論理図形式で示す。概略的に、クロックおよび制御パス３２はＩ／Ｏクロック部１６０、自己同期（ｓｅｌｆ−ｓｙｎｃｈｒｏｎｉｚｉｎｇ）ポート選択回路１７０、マスタクロック回路１８０、データおよびアドレスクロック回路２００、セルフタイム化読出しクロックおよび制御論理回路２１０、および読出し／書込み制御回路２３０を含む。Ｉ／Ｏクロック部１６０は遅延要素１６２，１６４および１６６を含み、それらの各々は「クロック」信号を受けるためにパッド４２に接続された入力端子、および出力端子を有する。遅延要素１６２は信号Ｐ２ＣＬＫを提供するための出力端子を有する。遅延要素１６４は信号Ｐ３ＣＬＫを提供するための出力端子を有する。遅延要素１６６は信号ＱＶＣＬＫを提供するための出力端子を有する。
【００２９】
自己同期ポート選択回路１７０はＯＲゲート１７２、ＳＲフリップフロップ（ＳＲＦＦ）１７４、および遅延要素１７６を含む。ＯＲゲート１７２は第１の入力端子、第２の入力端子、および出力端子を有する。ＳＲフリップフロップ１７４は“Ｓ”と名付けられたセット端子、ＯＲゲート１７２の出力端子に接続され“Ｒ”と名付けられたリセット入力端子、および信号Ｐ１Ｐ２ＭＵＸを提供するための“Ｑ”と名付けられた出力端子を有する。遅延要素１７６はＳＲフリップフロップ１７４のＱ出力端子に接続された入力端子、およびＯＲゲート１７２の第２の入力端子に接続された出力端子を有する。
【００３０】
マスタクロック回路１８０は遅延要素１８２、ＡＮＤゲート１８４、ＳＲフリフロップ１８６、遅延要素１８８および１９０、およびＡＮＤゲート１９２および１９４を含む。遅延要素１８２は「クロック」信号を受けるためにパッド４２に接続された入力端子、および相補または補出力端子を有する。ＡＮＤゲート１８４は「クロック」信号を受けるためにパッド４２に接続された第１の入力端子、遅延要素１８２の相補出力端子に接続された第２の入力端子、および出力端子を有する。ＳＲフリップフロップ１８６は信号ＤＬＣＬＫ１を受けるためのＳ入力端子、ＡＮＤゲート１８４の出力端子に接続されたＲ入力端子、およびＱ出力端子を有する。遅延要素１８８は「クロック」信号を受けるためのパッド４２に接続された入力端子、および相補出力端子を有する。遅延要素１９０はＳＲフリップフロップ１８６のＱ出力端子に接続された入力端子、および相補出力端子を有する。ＡＮＤゲート１９２は「クロック」信号を受けるためのパッド４２に接続された第１の入力端子、遅延要素１８８の相補出力端子に接続された第２の入力端子、およびＳＲフリップフロップ１７４のＳ入力端子に接続された出力端子を有する。ＡＮＤゲート１９４はＳＲフリップフロップ１８６のＱ出力端子に接続された第１の入力端子、遅延要素１９０の相補出力端子に接続された第２の入力端子、およびＯＲゲート１９２の第１の入力端子に接続された出力端子を有する。
【００３１】
データおよびアドレスクロック回路２００はＯＲゲート２０２およびＯＲゲート２０４を含む。ＯＲゲート２０２はＡＮＤゲート１９２の出力端子に接続された第１の入力端子、ＡＮＤゲート１９４の出力端子に接続された第２の入力端子、および信号ＤＩＮＫを提供するための出力端子を有する。ＯＲゲート２０４はＡＮＤゲート１９２の出力端子に接続された第１の入力端子、ＡＮＤゲート１９４の出力端子に接続された第２の入力端子、および信号ＤＥＣＣＬＫを提供するための出力端子を有する。
【００３２】
セルフタイム化読出しクロックおよび制御論理回路２１０は遅延要素２１２および２１４、ＳＲフリップフロップ２１６、ＡＮＤゲート２１８、遅延要素２２０，２２２および２２４、ＮＯＲゲート２２６、およびＯＲゲート２２８を含む。遅延要素２１２はＯＲゲート２０４の出力端子に接続された入力端子、および出力端子を有する。遅延要素２１４はＯＲゲート２０４の出力端子に接続された入力端子、および出力端子を有する。ＳＲフリップフロップ２１６は遅延要素２１２の出力端子に接続されたＲ入力端子、Ｓ入力端子、およびＱ出力端子を有する。ＡＮＤゲート２１８は遅延要素２１４の出力端子に接続された第１の入力端子、ＳＲフリップフロップ１７４のＱ出力端子に接続された第２の入力端子、および出力端子を有する。遅延要素２２０はＯＲゲート２０４の出力端子に接続された入力端子、および出力端子を有する。遅延要素２２２はＳＲフリップフロップ２１６のＱ出力端子に接続された入力端子、およびＳＲフリップフロップ２１６のＳ入力端子に接続された相補出力端子を有する。遅延要素２２４はＡＮＤゲート２１８の出力端子に接続された入力端子、および信号ＤＬＣＬＫ１を提供するための出力端子を有する。ＮＯＲゲート２２６はＯＲゲート２０４の出力端子に接続された第１の入力端子、遅延要素２２０の出力端子に接続された第２の入力端子、および“ＤＩＣ”と名付けられた信号を提供するための出力端子を有する。ＯＲゲート２２８はＳＲフリップフロップ２１６のＱ出力端子に接続された第１の入力端子、第２の入力端子、および“ＦＡＭＰＢ”と名付けられた信号を提供するための出力端子を有する。
【００３３】
読出し／書込み制御回路２３０はＤ型フリップフロップ２３２および２３４、ＳＲフリップフロップ２３６、インバータ２３８、ＮＡＮＤゲート２４０および２４２、ＯＲゲート２４６、ＮＡＮＤゲート２４８、ＮＯＲゲート２５０，２５２および２５４、インバータ２５６、ＮＡＮＤゲート２５８および２６０、ＮＯＲゲート２６２、ＭＵＸ２６４、およびセルフタイム化書込みクロック回路２７０を含む。Ｄ型フリップフロップ２３２は信号「Ｒ／Ｗ＿ポート２」を受けるためにパッド４６に接続されたＤ入力端子、信号Ｐ３ＣＬＫを受けるためのクロック入力端子、およびＱ出力端子を有する。Ｄ型フリップフロップ２３４は信号「Ｒ／Ｗ＿ポート１」を受けるためにパッド４４に接続されたＤ入力端子、Ｐ３ＣＬＫを受けるためのクロック入力端子、およびＱ出力端子を有する。ＳＲフリップフロップ２３６はＡＮＤゲート１９２の出力端子に接続されたＳ入力端子、ＡＮＤゲート１９４の出力端子に接続されたＲ入力端子、およびＱ出力端子を有する。
【００３４】
インバータ２３８は信号「整合（ＭＡＴＣＨ）」を受けるための入力端子、および出力端子を有する。ＮＡＮＤゲート２４０はインバータ２３８の出力端子に接続された第１の入力端子、Ｄ型フリップフロップ２３２のＱ出力端子に接続された第２の入力端子、および出力端子を有する。ＮＡＮＤゲート２４２はＤ型フリップフロップ２３２のＱ出力端子に接続された第１の入力端子、Ｄ型フリップフロップ２３４のＱ出力端子に接続された第２の入力端子、および出力端子を有する。ＯＲゲート２４６はインバータ２３８の出力端子に接続された第１の入力端子、Ｄ型フリップフロップ２３４のＱ出力端子に接続された第２の入力端子、および信号ＲＡＴＦＢを提供するための出力端子を有する。ＮＡＮＤゲート２４８はＮＡＮＤゲート２４０の出力端子に接続された第１の入力端子、ＮＡＮＤゲート２４２の出力端子に接続された第２の入力端子、および出力端子を有する。ＮＯＲゲート２５０は第１の入力端子、信号「整合」を受けるための第２の入力端子、Ｄ型フリップフロップ２３４のＱ出力端子に接続された第３の入力端子、および出力端子を有する。ＮＯＲゲート２５２はＮＡＮＤゲート２４８の出力端子に接続された第１の入力端子、第２の入力端子、および出力端子を有する。ＮＯＲゲート２５４はＮＯＲゲート２５０の出力端子に接続された第１の入力端子、ＮＯＲゲート２５２の出力端子に接続された第２の入力端子、および“ＣＳＷＥＢ”と名付けられた信号を提供するための出力端子を有する。
【００３５】
インバータ２５６はＤ型フリップフロップ２３４のＱ出力端子に接続された入力端子、および出力端子を有する。ＮＡＮＤゲート２５８は信号「整合」を受けるための第１の入力端子、インバータ２５６の出力端子に接続された第２の入力端子、および出力端子を有する。ＮＡＮＤゲート２６０はＮＡＮＤゲート２５８の出力端子に接続された第１の入力端子、Ｄ型フリップフロップ２３２のＱ出力端子に接続された第２の入力端子、および出力端子を有する。ＮＯＲゲート２６２は信号「整合」を受けるための第１の入力端子、Ｄ型フリップフロップ２３２のＱ出力端子に接続された第２の入力端子、および出力端子を有する。ＭＵＸ２６４はＮＡＮＤゲート２６０の出力端子に接続された第１の入力端子、ＮＯＲゲート２６２の出力端子に接続された第２の入力端子、ＳＲフリップフロップ２３６のＱ出力端子に接続された制御入力端子、および“ＷＥＢＣＳＢ”と名付けられた信号を提供するためにＯＲゲート２２８の第２の入力端子に接続された出力端子を有する。
【００３６】
セルフタイム化書込みクロック回路２７０はＳＲフリップフロップ２７２および２７４、遅延要素２７６および２７８、およびインバータ２８０および２８２を含む。ＳＲフリップフロップ２７２はＡＮＤゲート１９２の出力端子に接続されたＳ入力端子、Ｒ入力端子、およびＱ出力端子を有する。ＳＲフリップフロップ２７４はＡＮＤゲート１９４の出力端子に接続されたＳ入力端子、Ｒ入力端子、およびＱ出力端子を有する。遅延要素２７６はＳＲフリップフロップ２７２のＱ出力端子に接続された入力端子、およびＳＲフリップフロップ２７２のＲ入力端子に接続された出力端子を有する。遅延要素２７８はＳＲフリップフロップ２７４のＱ出力端子に接続された入力端子、およびＳＲフリップフロップ２７４のＲ入力端子に接続された出力端子を有する。インバータ２８０はＳＲフリップフロップ２７２のＱ出力端子に接続された入力端子、およびＮＯＲゲート２５０の第１の入力端子に接続された出力端子を有する。インバータ２８２はＳＲフリップフロップ２７４のＱ出力端子に接続された入力端子、ＮＯＲゲート２５２の第２の入力端子に接続された出力端子を有する。
【００３７】
次に、クロックおよび制御パス３２の動作につき図５に示される回路構造を参照して簡単に説明する。しかしながら、動作のさらなる詳細は後に図６および図７を参照してさらに説明する。Ｉ／Ｏクロック部１６０は全て入力「クロック」に基づいている３つのクロック信号を発生する。遅延要素１６２，１６４および１６６は、それぞれ、信号Ｐ２ＣＬＫ，Ｐ３ＣＬＫおよびＱＶＣＬＫを発生する上で異なる量の遅延を与える。これらの信号およびクロック信号の間の相対的なタイミング関係は後にさらに説明する。
【００３８】
自己同期ポート選択回路１７０は本質的に「ポート１」および「ポート２」の間の交互のアクセスのための１ビットカウンタとして機能する。一般に、信号「クロック」によって規定されるサイクルの最初の部分は「ポート１」によってかつ第２のサイクルは「ポート２」によって発生される。遅延要素１７６は電源が最初に印加されたときに信号Ｐ１Ｐ２ＭＵＸが論理ロー状態でスタートすることを保証するために使用されることに注意を要する。パワーアップの後に、ＳＲフリップフロップ１７４のＱ出力信号の状態は不定または不確定である。しかしながら、遅延要素１７６およびＯＲゲート１７２への付加的な論理入力はＳＲフリップフロップ１７４がこの最初のサイクルの間に論理“０”にリセットされることを保証し、かつしたがって信号Ｐ１Ｐ２ＭＵＸが最初のアクセスが生じる前に論理ローとして登録されることを保証する。
【００３９】
マスタクロック回路１８０は、それぞれ、ＡＮＤゲート１９２および１９４の出力において２つのクロックを発生するために使用され、この場合ＡＮＤゲート１９２の出力はサイクル１のアクセスに対するトリガ信号を表わしかつＡＮＤゲート１９４の出力はサイクル２のアクセスに対するトリガを表わす。ＡＮＤゲートおよび対応する遅延要素の組合わせはワンショットを形成し、かつしたがって「クロック」のローからハイへの遷移に際して、遅延要素１８８およびＡＮＤゲート１９２によって形成されるワンショットは最初のサイクルに対するトリガを通知するために出力を提供する。最初のまたは第１のサイクルの終りに、セルフタイム化読出しクロックおよび制御論理回路２１０は信号ＤＬＣＬＫ１を活性化またはアクティベイトし、これはＳＲフリップフロップ１８６がセットされるようにする。そのＱ出力が論理ハイに遷移したとき、ＡＮＤゲート１９４は第２のサイクルに関連するトリガ信号を出力する。「クロック」信号が再び論理ハイへと遷移したとき、ＡＮＤゲート１８４の出力は論理ハイになり、それによってＳＲフリップフロップ１８６をリセットする。クロックおよび制御パス３２にわたり、ワンショットは回路がエッジトリガされることを保証するために使用されている。したがって、もし「クロック」信号がある与えられた論理状態に保持されることによって静止していれば（ｓｔａｔｉｃ）、何らのタイミング信号も発生されない。
【００４０】
データおよびアドレスクロック回路２００はデータ入力クロック信号ＤＩＮＫをデータパス３４に、かつ信号プリデコーダクロック信号ＤＥＣＣＬＫをアドレスパス３６に提供する。信号ＤＩＮＫおよびＤＥＣＣＬＫは論理的に同じであるが、別個のＯＲゲートを通して出力され信号ＤＥＣＣＬＫがＯＲゲート２０２によってドライブされる信号ライン上の余分のローディング（ｌｏａｄｉｎｇ）なしにできるだけ速く伝搬できるようにする。セルフタイム化読出しクロックおよび制御論理回路２１０はクロックＤＩＣ，ＦＡＭＰＢおよびＤＬＣＬＫ１を含む種々の他の動作にとって重要な３つのクロックを発生するために使用される。信号ＤＩＣはサイクル２またはサイクル１の終りに全てのデコーダをディスエーブルするために使用されるデコーダ禁止クロックである。信号ＦＡＭＰＢはバックエンド検知（ｂａｃｋ−ｅｎｄ  ｓｅｎｓｉｎｇ）をイネーブルするために使用され、かつ信号ＤＬＣＬＫ１はサイクル１のデータを登録するためにならびにサイクル２の始めを通知するために使用される。
【００４１】
読出し／書込み制御回路２３０はアレイ３０をドライブするために制御信号を提供するために使用される。第１の信号はＷＥＢＣＳＢであり、これは係属中の読出しサイクルを示す。第２の信号はＣＳＷＥＢであり、これは係属中の書込みサイクルを示す。アレイ３０への「サイクル１」アクセスは「クロック」サイクルの第１の部分の間に生じるアクセスであり、かつ「サイクル２」アクセスは「クロック」サイクルの間に「サイクル１」アクセスに続くアクセスである。通常、「ポート１」アクセスは「サイクル１」の間に生じ、かつ「ポート２」アクセスは「サイクル２」の間に生じる。信号ＲＡＴＦＢはもし「ポート１」および「ポート２」アドレスの間に整合がありかつ「ポート１」によるアクセスが書込みサイクルである場合に論理ローでアクティベイトまたは活性化される。信号ＲＡＴＦＢは「ポート１」および「ポート２」アクセスの順序を反転するために使用され、それによってサイクル１の間に「ポート２」アクセスが行なわれかつサイクル２の間に「ポート１」アクセスが行なわれるようにする。したがって、メモリ２０はリード・ビフォア・ライト（ｒｅａｄ−ｂｅｆｏｒｅ−ｗｒｉｔｅ）プロトコルに従う。
【００４２】
種々のサイクルの組合わせの間におけるメモリ２０の動作は以下の表１を参照して理解することができる。
【表１】
0004521068.tif 000002
【００４３】
表１において、“Ｒ”は読出しアクセスを表わし、“Ｗ”は書込みアクセスを表わし、“Ｒ１”は「ポート１」からの読出しアクセスを表わし、“Ｎ”は整合のない状態を表わし、かつ“Ｙ”は整合状態を表わす。したがって、例えばケース１は「ポート１」および「ポート２」における同時的な読出しアクセスを表わすが、異なるアドレスに対するものである。この場合、アレイ３０への「ポート１」アクセスは「サイクル１」の間に行なわれ、かつポート２の読出しアクセスは「サイクル２」の間に行なわれる。一般に、「ポート１」へのアクセスは「サイクル１」の間に生じ、かつ「ポート２」へのアクセスは「サイクル２」の間に生じる。しかしながら、メモリ２０はリード・ビフォア・ライトプロトコルに従うから、「ポート１」が、「ポート２」が読出しを試みているのと同じアドレスに書込みを試みる場合、「ポート２」のアクセスは「サイクル１」の間に生じかつ「ポート１」のアクセスは「サイクル２」の間に生じる。さらに、「ポート１」および「ポート２」が同じアドレスに書き込むことを試みる場合、「ポート１」の書込みが優先する。
【００４４】
表１は図６および図７を参照してより良く理解でき、これらの図はタイミング図形式で、それぞれ、非整合（ケース１〜４）および整合（ケース５〜８）サイクルの間における図１のメモリ２０の動作を理解する上で関連ある信号を示している。今図６および図７を一緒に考慮すると、メモリ２０は同期メモリであるから、「クロック」信号は全ての他のクロック信号を開始するマスタクロック信号として機能することが注目される。これらの依存性は最初のケースの間のみ図示されているが、他の全てのケースについても同様に当てはまる。「クロック」信号のローからハイへの遷移はサイクル１〜サイクル２のシーケンスを開始させる。ハイからローへの遷移はサイクル２の開始に影響しない。信号Ｐ１Ｐ２ＭＵＸは始めはサイクル１に対して論理ローでありかつサイクル２に対して論理ハイである。各々の「クロック」の遷移はパルス化されたＤＥＣＣＬＫ信号のアクティベイションまたは活性化を引き起こし、これはプリデコードされたアドレス信号がアドレスパスにラッチされるようにする。前記表１ならびに図６および図７に示されるタイミング信号はメモリ２０の主な動作を制御するために充分な１組のタイミング信号であるが、実施形態に応じて変わることに注意を要する。
【００４５】
集積回路メモリがパイプライン化されることは本発明の一態様である。
【００４６】
集積回路メモリが第１および第２のアドレスを受け、かつこれに応じて、第１のアドレスが第２のアドレスと同じである場合に第１の論理状態の整合信号を提供し、かつ前記第１のアドレスが前記第２のアドレスと同じでない場合に第２の論理状態の整合信号を提供するアドレス衝突検出器を具備することは本発明の他の態様である。
【００４７】
本発明のさらに別の態様では、前記整合信号は前記整合信号が第１の論理状態である場合に書込みアクセスの前に読出しアクセスが生じることを保証するために前記制御回路に提供される。
【００４８】
本発明のさらに別の態様では、前記読出しデータポートは第１の読出し／書込みデータポートであることを特徴とし、かつ前記書込みデータポートは第２の読出し／書込みデータポートであることを特徴とする。
【００４９】
本発明のさらに他の態様では、前記メモリは前記第１および第２の読出し／書込みデータポートに結合され、集積回路メモリのパワーアップに際して、前記第１のアドレスポートが前記第１の読出し／書込みデータポートに同期しかつ前記第２のアドレスポートが前記第２の読出し／書込みデータポートに同期することを保証するための自己同期ポート選択回路を含む。
【００５０】
本発明のさらに別の態様では、前記メモリはさらに前記第１の読出し／書込みデータポートに提供されるデータが前記第２の読出し／書込みデータポートへと通過できるようにするパススルー（ｐａｓｓ−ｔｈｒｏｕｇｈ）回路を含む。
【００５１】
本発明のさらに他の態様では、前記第１および第２の読出し／書込みデータポートは、それぞれ、第１および第２の外部的に発生された出力イネーブル信号によりイネーブルされ、前記第１および第２の外部的に発生された出力イネーブル信号はいずれのクロック信号とも独立に発生される。
【００５２】
本発明が特定の実施形態に関して説明されたが、当業者にはさらに他の変更および改善を成すことができる。例えば、本発明に係わるデュアルポートメモリは異なる密度の異なる単一ポートアレイを使用して構成できる。使用されるタイミング信号もまた変えることができる。したがって、本発明は添付の特許請求の範囲で規定される発明の範囲から離れることのない全てのそのような変更を含むことが理解されるべきである。
【００５３】
【発明の効果】
以上のように、本発明によれば、従来技術の問題を克服することができ、伝統的な単一ポートのＳＲＡＭセルを使用するが低価格かつ高速である大きなデュアルポートＲＡＭが実現できる。
【図面の簡単な説明】
【図１】本発明に係わるパイプライン化デュアルポート集積回路メモリを示すブロック図である。
【図２】単一ポートのスタティックＲＡＭセルを含む図１のアレイの一部を示す部分的ブロック回路図である。
【図３】図１のアドレスパスを示す論理回路図である。
【図４】図１のＩ／Ｏデータパスを示す論理回路図である。
【図５】図１のクロックおよび制御パスを示す論理回路図である。
【図６】非整合サイクルの間の図１のメモリの動作を理解する上で関連ある信号を示すタイミング図である。
【図７】整合サイクルの間における図１のメモリの動作を理解する上で関連ある信号を示すタイミング図である。
【符号の説明】
２０  パイプライン化デュアルポート集積回路メモリ
３０  単一ポートＳＲＡＭアレイ
３２  クロックおよび制御パス
３４  入力／出力（Ｉ／Ｏ）データパス
３６  アドレスパス
４０  入力および／または出力ボンディングパッド
４２，４４，４６，…，６２  入力および／または出力パッド
７０  単一ポートメモリセルを含む図１のアレイ３０の一部
７２  ワードライン
７４，７６  ビットライン
８０  メモリセル
８２，８４  ＭＯＳトランジスタ
８６，８８  インバータ
９０  アドレスポート入力段
１００  プリデコーダ部
１１０  アドレス衝突検出器
【図１】
0004521068.tif 000003
【図２】
0004521068.tif 000004
【図３】
0004521068.tif 000005
【図４】
0004521068.tif 000006
【図５】
0004521068.tif 000007
【図６】
0004521068.tif 000008
【図７】
0004521068.tif 000009