(57)【特許請求の範囲】
【請求項１】
メモリシステムから読み出される一連のデータ値を処理するための再同期化回路であって、
前記メモリシステムからの第１クロック信号と前記一連のデータ値とを受信する先入れ先出し（ＦＩＦＯ）メモリデバイスであって、前記データ値は前記第１クロック信号に応答して該ＦＩＦＯメモリデバイス内に順に読み込まれる該ＦＩＦＯメモリデバイスと、
第２クロック信号を受信し、それに応じて前記第２クロック信号に対して進んだ出力クロック信号を生成するフェーズロックループ回路であって、前記出力クロック信号は、前記データ値が前記ＦＩＦＯメモリデバイスから連続して読み出されるように前記ＦＩＦＯメモリデバイスへ入力され、それによって、前記第２クロック信号に同期した一連のデータ値が生成される該フェーズロックループ回路と、
前記メモリシステムからの前記読み取り動作の開始の直後に続く選択可能な遅れ時間の後にのみ、前記ＦＩＦＯメモリデバイスから前記データ値が読み出されるのをイネーブルする待ち時間制御回路とを含むことを特徴とする再同期化回路。
【請求項２】
前記待ち時間制御回路が、更に、前記選択可能な遅れ時間を格納するプログラム可能なレジスタを含むことを特徴とする請求項１に記載の再同期化回路。
【請求項３】
前記ＦＩＦＯメモリデバイスが、更に、
出力リード線と入力リード線との間に並列に接続された複数のラッチと、
前記第１クロック信号を受信すると共に、それに応じて、前記データ値が前記ラッチに順次書き込まれるように、前記ラッチに供給される複数の入力選択信号を生成する入力シーケンサと、
前記出力クロック信号を受信すると共に、それに応じて、前記データ値が前記ラッチから順次読み出されて前記第２クロック信号に同期した一連の出力データ値が生成されるように、前記ラッチに供給される複数の出力選択信号を生成する出力シーケンサとを含むことを特徴とする特徴とする請求項１に記載の再同期化回路。
【請求項４】
当該再同期化回路をディスエーブルすることによって、前記再同期化回路がディスエーブルされているとき、前記メモリシステムからの前記一連のデータ値が、直接前記ＦＩＦＯメモリデバイスを介して非同期式に伝達されるようにする手段を含んでいることを特徴とする請求項１に記載の再同期化回路。
【請求項５】
前記メモリシステムが、接続ピンのセットを有する半導体デバイス上に配置され、更に、前記メモリシステムが同じ接続ピンのセットを用いて同期式と非同期式の両方でアクセスされることを特徴とする請求項４に記載の再同期化回路。
【請求項６】
一連のデータ値を再同期化する方法であって、
メモリシステムからの一連のデータ値の読み込み動作を開始させる読み込みコマンド信号を検出する過程と、
前記読み込みコマンド信号に応じて読み込みイネーブル信号を生成する過程と、
前記読み込みイネーブル信号に応答して先入れ先出し（ＦＩＦＯ）メモリデバイスに前記一連のデータ値を書き込む過程であって、該書き込みは第１クロック信号に応答して行われる該書き込み過程と、
前記読み込みイネーブル信号に応答して選択可能な遅れを伴った出力イネーブル信号を生成する過程と、
前記出力イネーブル信号を前記ＦＩＦＯメモリデバイスへ伝達する過程と、
前記出力イネーブル信号に応答して前記ＦＩＦＯメモリデバイスから前記一連のデータ値を読み出す過程であって、前記読み出しは第２クロック信号に応答して行われる該読み出し過程とを含み、
それによってＦＩＦＯメモリデバイスからの前記一連のデータ値を前記第２クロック信号と同期させることを特徴とする再同期化方法。
【請求項７】
更に、前記第２クロック信号をフェーズロックループ回路に入力する過程と、
前記フェーズロックループ回路を用いて、前記第２クロック信号に応答して該第２クロック信号に対して進んだ出力クロック信号を生成する過程と、
前記出力クロック信号によって前記ＦＩＦＯメモリからの前記一連のデータ値の読み込み過程を制御する過程とを含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記選択可能な遅れの持続時間を選択する過程を更に含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記選択可能な遅れが、前記メモリシステムのアクセス待ち時間に等しいか、またはそれよりも大きいことを特徴とする請求項６に記載の方法。
【請求項１０】
前記選択可能な遅れ時間が、前記ＦＩＦＯメモリデバイスからの読み出し動作がない場合に、前記ＦＩＦＯメモリデバイスに書き込まれたデータ値が次のデータ値によって上書きされる時間よりも短いことを特徴とする請求項６に記載の方法。
【請求項１１】
データ値が、前記第２クロック信号の各半サイクルの間に前記ＦＩＦＯメモリデバイスから読み出されることを特徴とする請求項６に記載の方法。
【請求項１２】
データ値が、前記第１クロック信号の各半クロックサイクルの間に前記ＦＩＦＯメモリデバイスへと書き込まれることを特徴とする請求項６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、共通バスに並列に接続された少数のバスマスタと多数のバススレーブとを有するデータ処理システムに関する。特に、本発明は、メモリデバイスから読み出される一連のデータ値を再同期化するための回路及び方法に関する。本発明は、ＶＬＳＩサイズまたはウェハサイズの集積回路環境に於いて、複数の同型モジュールに構成されたシステムに特に適している。
【０００２】
【従来の技術】
従来のバスシステムで信号を伝送する場合、典型的には、以下のような状態のいずれかが発生しているとき問題が発生していた。即ち、（１）伝送信号の立ち上がり時間または立ち下がり時間が、バスのクロック周期の大部分を占めているような状態、（２）信号の立ち上げまたは立ち下がりに干渉する、信号の反射がバス上にあるような状態である。データ伝送レートは、上記のような状態の結果、信号の乱れのなさが損なわれるかどうかということによって一部限定される。従って、データ帯域幅を増加させるには、上記のような状態を避けることが望まれる。
【０００３】
バスを通しての高周波数データ伝送では、十分な立ち上がり時間及び立ち下がり時間を達成するため、高速度の電荷（Ｑ）のバスへの充電または放電を必要とする。上述の状態（１）を避けるため、信号レベルを切り替えるのに必要とされる大電流を供給（ｓｏｕｒｃｅ）及び吸収（ｓｉｎｋ）するための大型のトランジスタがバスドライバ内に必要である。以下に示す式（１）は、バスドライバの必要とされる電流駆動容量（Ｉ）と、バスに接続されたデバイス数（ｎ）と、バスドライバの出力静電容量（Ｃ）と、論理１と論理０を区別するために必要とされる信号スイング幅（Ｖ）と、バスの最大動作周波数（ｆ）との間の関係を示す。
【０００４】
Ｉ＝ｎＣＶｆ          式（１）
【０００５】
従って、より高い動作周波数を達成するための１つの方法は、バスドライバの駆動能力を強化することである。しかしながら、通常、駆動能力を高くするにはドライバのサイズを大きくすることが必要であり、それは、シリコン面積、バスの静電容量、消費電力、及び電源ノイズを増加させる。更に、バスドライバの出力静電容量がバスの静電容量の大部分を占めるようになると、バスドライバのサイズを大きくすることが動作周波数を高くすることにならなくなる。
【０００６】
動作周波数を増加させる別の方法として、バス上の信号スイング幅（ｓｉｇｎａｌ  ｓｗｉｎｇ）を小さくすることがある。信号スイング幅は、バス上で伝送される信号の最大電圧と最小電圧の差として定義される。標準的なＴＴＬを含む多くの従来のバスシステムでは、小信号スイング幅伝送（即ち、信号スイング幅が供給電圧より小さい）を用いており、それによって高速動作を可能としている。信号スイング幅を小さくすることによって、必要とされる電荷の移送も少なくなり、それによって、消費電力も低減し、ノイズや必要とされるシリコン面積も小さくなる。小信号スイング幅では、バスドライバから必要とされる電流も非常に小さくなるため、バスラインの並列終端（ｐａｒａｌｌｅｌ  ｔｅｒｍｉｎａｔｉｏｎ）が容易になる。並列終端は、バスに於ける信号の振動（ｒｉｎｇｉｎｇ）を抑制する効果的な方法である。しかしながら、小スイング幅の信号を用いることは、信号を受信するために精巧な増幅器を用いることを必要とする。信号のスイング幅が小さくなると、増幅器に要求されるゲインが増加し、従って必要とされるシリコン面積と動作電力とが増加する。従って、小スイング幅の信号を用いているが、精巧な増幅器を用いることを必要としないバスシステムが望まれている。
【０００７】
従来の小スイング幅（最高最低振幅で１．５Ｖより小さい）Ｉ／Ｏ（入力／出力）法は、一般に、従来のＣＭＯＳ論理回路の論理しきい値であるＶｄｄ／２（即ち、供給電圧の２分の１）とは異なる論理しきい値電圧を有する。バス信号の論理しきい値、またはトリップ点は、論理０と論理１を区別する電圧である。そのような方法の例として、ＧＴＬがあるが、この方法は０．８Ｖの論理しきい値を用いている。（Ｒ．Ｆｏｓｓらによる、“ＩＥＥＥ  Ｓｐｅｃｔｒｕｍ  １９９２年１０月、ｐ．５４〜ｐ．５７、「Ｆａｓｔ  ｉｎｔｅｒｆａｃｅｓ  ｆｏｒ  ＤＲＡＭｓ」”を参照。）中央タップ終端（ｃｅｎｔｅｒ−ｔａｐ  ｔｅｒｍｉｎａｔｅｄ：ＣＴＴ）インタフェース（“ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ、ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ、ＪＥＳＤ８−４、１９９３年１１月”参照）のような、他の小スイング幅Ｉ／Ｏ法は、供給電圧に追従しない固定しきい値（例えば、１．５Ｖ）を有している。ＣＭＯＳ論理しきい値以外の論理しきい値を有するバス信号をＣＭＯＳ集積回路中で用いるためには、Ｉ／Ｏ論理しきい値を従来のＣＭＯＳ論理しきい値に変換するための変換回路を用いなければならない。このような変換回路は、電力や回路資源を消費し、回路の遅れをもたらし、また複雑さを増大する。
【０００８】
ＣＭＯＳ回路では、電源電圧及びグランド電圧に関して対称なノイズマージンで動作できるように、Ｖｄｄ／２の論理しきい値を用いている。プルアップとプルダウンのドライブ能力は概ね等しく設定されているため、この論理しきい値によってインバータ出力の立ち上がり時間と立ち下がり時間も対称になっている。
【０００９】
従来のＤＲＡＭデバイス（ＩＣ）は、比較的小さい静電容量を有するアレイを形成するように構成されている。例えば、ほとんどの商用１メガビットＤＲＡＭデバイス及び４メガビットＤＲＡＭデバイスは、２５６Ｋビットのアレイサイズを有している。このような構成は、ビットライン検知電圧とワードライン（ＲＡＳ）アクセス時間によって決定される。しかしながら、ＤＲＡＭデバイス中の全てのアレイは、共通のアドレスデコーディング回路を共有している。ＤＲＡＭデバイス中のこれらのアレイは、共通バスに並列に接続された複数のメモリモジュールとして構成されていない。更に、各メモリアクセスは、アレイの総数の内、かなりの数（例えば、４分の１〜２分の１の数）を活動状態にすることを必要とするが、活動状態にされたアレイのほとんどはアクセスされない。その結果、電力は無駄に消費され、電源ノイズによるソフトウェアエラーの発生率も増加する。
【００１０】
例えば、同期ＤＲＡＭ（“ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ、Ｃｏｎｆｉｇｕｒａｔｉｏｎｓ  ｆｏｒ  Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｍｅｍｏｒｉｅｓ、Ｎｏ．２１−Ｃ、Ｒｅｌｅａｓｅ  ４、１９９３年１１月”参照）や、ラムバス（Ｒａｍｂｕｓ）ＤＲＡＭ（ＰＣＴ特許ＰＣＴ／ＵＳ９１／０２５９０明細書参照）のような従来のＤＲＡＭ技術では、メモリデバイスをバンク（ｂａｎｋｓ）へと構成することが試みられている。同期ＤＲＡＭ法では、ＪＥＤＥＣ  Ｓｔａｎｄａｒｄによって各バンクアドレスに対して１ビットだけが許容され、従って、それは１メモリデバイス当たり２バンクだけが許容されることを意味している。従来のＤＲＡＭの設計上の制約が仮定される場合、これらのバンクは複数のメモリアレイによって形成される。ラムバスＤＲＡＭ法は、各々複数のメモリアレイから構成された２つのバンク構成を有している。どちらの方法も、バンクサイズが大きいため、バンクレベルの冗長化は不可能である。更に、どちらの方法で形成されたデバイスに於いても、電力消費は、良くても従来のＤＲＡＭデバイスと同じくらいである。更に、既にある制約のため、同期ＤＲＡＭ法とラムバスＤＲＡＭ法のどちらも、複数のバンクが共通の内部バスに並列に接続されているようなモジュールバンクアーキテクチャを用いていない。
【００１１】
従来のメモリシステムの多くは、複数のメモリアレイがモジュールに構成され、それらのモジュールがシリアルバスまたは専用ラインに接続されている、回路モジュールアーキテクチャ（ｃｉｒｃｕｉｔ−ｍｏｄｕｌｅ  ａｒｃｈｉｔｅｃｔｕｒｅ）を用いている。（シリアルバスに対しては、“Ｍ．ＢｒｅｎｔによるＰＣＴ特許ＰＣＴ／ＧＢ８６／００４０１、「Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ  Ｆｏｒ  Ｃｈａｉｎｅｄ  Ｃｉｒｃｕｉｔ  Ｍｏｄｕｌｅｓ」”を、専用ラインに対しては、“Ｋ．Ｙａｍａｓｈｉｔａ、Ｓ．Ｉｋｅｄａ、Ｍ．Ｎａｇａｓｈｉｍａ、及びＴ．Ｔａｔｅｍａｔｓｕによる、「Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｄｅｆｅｃｔ−Ｔｏｌｅｒａｎｃｅ  Ｓｃｈｅｍｅ  ｉｎ  ａ  ６００Ｍ−ｂｉｔＷａｆｅｒ−Ｓｃａｌｅ  Ｍｅｍｏｒｙ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｎ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｗａｆｅｒ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ、１９９１年１月、ｐｐ．１２〜１８”を参照方。）どちらの場合も、回路モジュールは共通バスに並列に接続されていない。
【００１２】
高いＩ／Ｏデータ帯域幅を有する従来のメモリデバイスは、要求されている高い帯域幅に応じるため、通常、同時に複数のメモリアレイを用いている。これは、これらのデバイス中の個々のメモリアレイの帯域幅が、Ｉ／Ｏに必要とされる帯域幅より低いからである。そのような従来の技術には、“Ｋ．Ｄｏｓａｋａらによる、「Ａ  １００−ＭＨｚ  ４−Ｍｂ  Ｃａｃｈｅ  ＤＲＡＭ  ｗｉｔｈ  Ｆａｓｔ  Ｃｏｐｙ−Ｂａｃｋ  Ｓｃｈｅｍｅ」、ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ、Ｖｏｌ．２７、Ｎｏ．１１、１９９２年１１月、ｐｐ．１５３４〜１５３９”や、Ｍ．Ｆａｒｍｗａｌｄらによる、ＰＣＴ特許ＰＣＴ／ＵＳ９１／０２５９０号明細書に記載されているものが含まれる。
【００１３】
従来のメモリデバイスは、同期式でも非同期式でもどちらでも動作できるが、両方同時にはできない。同期式メモリは、通常、高いデータレートを必要とするシステムに於いて用いられる。要求されている高いデータレートを満足するように、同期式メモリデバイスは、通常、高度にパイプライン化されている。（“Ｙ．Ｔａｋａｉらによる、「２５０  Ｍｂｙｔｅ／ｓ  Ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭ  Ｕｓｉｎｇ  ａ  ３−Ｓｔａｇｅ−Ｐｉｐｅｌｉｎｅｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ」、ＩＥＥＥ  ＪＳＳＣ、ｖｏｌ．２９、ｎｏ．４、１９９４年４月、ｐｐ．４２６〜４３１”参照。）Ｙ．Ｔａｋａｉらによって開示されたパイプライン化されたアーキテクチャは、全クロック周波数に於いてアクセス待ち時間を３クロックサイクルに固定しており、それによって、この同期式メモリデバイスは、低いクロック周波数を用いているシステムには適さないものとなっている。例えば、５０ＭＨｚで動作する場合、そのデバイスのアクセス待ち時間は６０ｎｓとなる（１２５ＭＨｚで動作している場合は２４ｎｓのアクセス待ち時間となるということと比較されたい）。
【００１４】
従来の非同期式メモリデバイスは、パイプライン用レジスタがないことによって、全動作周波数に於いて固定されたアクセス待ち時間を維持している。しかしながら、アクセスサイクル時間が、アクセス待ち時間より大幅に短くなることはほとんどない。その結果、非同期式デバイスは高いデータレートでの適用に適していない。
【００１５】
従って、スループットが高く、待ち時間が短く、ノイズにも強く、供給電圧の２分の１に関して対称なスイング幅を有するＩ／Ｏ技法を提供するメモリデバイスが望まれている。
【００１６】
また、同じ接続ピンセットを用いて、同期式と非同期式の両方のアクセスができるメモリデバイスが必要とされている。
【００１７】
更に、高いデータ帯域幅と短いアクセス時間とを提供するメモリデバイスが望まれている。
【００１８】
また、複数の小さなメモリアレイから構成され、通常のメモリアクセスの各々に対しては、ただ１つのアレイだけが活動状態になり、それによって電力消費が低くなっているようなメモリデバイスが望まれている。
【００１９】
更に、複数の機能的に独立した小さなモジュールを有し、欠陥のあるモジュールはディスエーブル（使用禁止）され、別のモジュールがその欠陥のあるモジュールの代わりに用いられるようになっており、その結果、高い欠陥に対するトレランス（許容限界）を有するメモリデバイスが望まれている。
【００２０】
また、一つの入力データストリームが複数のメモリアレイに同時に書き込まれ得ると共に、複数のメモリアレイからのデータストリームが多重化されて一つの出力データストリームを形成し得るようなメモリデバイスが望まれている。
【００２１】
更に、大型のバスドライバや複雑なバスレシーバをモジュール内に必要とすることなく、複数のメモリモジュールが高速の共通バスに結合されているようなメモリデバイスが望まれている。
【００２２】
【発明が解決しようとする課題】
本発明の主な目的は、上述のような改良されたメモリデバイスを提供すること、及びそのようなメモリデバイスを組み込んだデータ処理システムとその動作方法を提供することである。
【００２３】
【課題を解決するための手段】
本発明は、論理しきい値としてＶｄｄ／２を用いた、コンパクトで高速の、小ＣＭＯＳスイング幅Ｉ／Ｏ技法を用いている。この技術は、（１）論理しきい値が供給電圧に追従することによって、プルアップとプルダウンのバランスが維持される、（２）バスドライバとレシーバ回路のしきい値が互いに自動的に追従し合うことによって、バスドライバとレシーバ回路とがノイズに対する耐性を犠牲にすることなく、非常に広い範囲の供給電圧に対して動作する、（３）論理しきい値は論理回路内で暗黙であり、外部の基準値発生回路を必要としない、（４）Ｉ／Ｏ論理しきい値がチップ上の他の論理回路のしきい値と等しいため、論理しきい値の伝送が必要でないという利点を有している。
【００２４】
本発明によると、少なくとも２つのメモリアレイまたはバンクが一つのメモリモジュールを形成するようにグループ化され、全てのメモリモジュールは、共通の、高速度、方向非対称信号スイング幅（Ｄｉｒｅｃｔｉｏｎａｌ  Ａｓｙｍｍｅｔｒｉｃａｌ  Ｓｉｇｎａｌ  Ｓｗｉｎｇ：ＤＡＳＳ）バスに並列に接続され、それによってメモリデバイスが形成される。メモリモジュールは、ＤＡＳＳバスに接続されたマスタモジュールへ、小スイング幅の信号を伝達する。一実施例では、この小スイング幅はＶｄｄ／２の電圧を中心として約１Ｖに等しい。ここでＶｄｄ／２はＣＭＯＳ回路のしきい値電圧である。マスタデバイスからメモリモジュールへと伝達される信号は完全なＶｄｄのスイング幅を有する。
【００２５】
メモリモジュールは独立したアドレス及びコマンドデコーダを備えており、それによって独立したユニットとして働く。また各々固有の基底アドレスを有している。この回路モジュールアーキテクチャは、いくつかの利点を有している。即ち、（１）各メモリモジュールを他のメモリモジュールによって置き換え可能とすることによって、メモリデバイスの欠陥に対するトレランスが高められている、（２）各メモリアクセスが、アレイの内唯一つのアレイだけが活動状態にされて、完全に唯一つのメモリモジュールによって処理されるため、メモリデバイスの電力消費が従来のメモリデバイスと較べて大幅に小さくなっている、（３）各メモリモジュールが完全な機能ユニットであるため、本メモリモジュールアーキテクチャでは、異なるメモリモジュール内で多重メモリモジュール動作や並列アクセスを実行することができ、それによってメモリデバイスの機能が改善されている、（４）本メモリモジュールアーキテクチャでは、メモリデバイスが同時に複数のメモリアクセスを処理することが可能となっているなどの利点を有している。
【００２６】
本発明による回路モジュールアーキテクチャでは、更に、オンチップバス（ｏｎ−ｃｈｉｐ  ｂｕｓ）の拡張である共通Ｉ／Ｏバスを介して複数のメモリデバイスを並列に接続することにより、システムの拡張が容易になされる。更に、各メモリデバイスに冗長なメモリモジュールを組み込むと共に、Ｉ／Ｏバスシステム上に於いてプログラム可能なコミュニケーションアドレスを各メモリモジュールが持つことができるようにすることによって、個々のメモリデバイスより欠陥に対するトレランスの高いメモリシステムが得られる。
【００２７】
本発明の一実施例によると、メモリアレイは冗長な行と列とを含む。これらの冗長な行と列のテストをサポートするための回路がメモリモジュール内に設けられている。また、メモリデバイスの動作中に欠陥のある行と列とを冗長な行と列とによって置き換えるための回路も設けられている。
【００２８】
本発明によるメモリデバイスは、メモリモジュールのコミュニケーションアドレスを制御することによって、連続していないアドレス空間に広がることができる。更に、メモリデバイスによって占められたアドレス空間は、位置とサイズの両方に於いて動的に変更され得る。これは、各メモリモジュール内に、そのメモリモジュールの基底アドレスを含むプログラム可能な識別（ｉｄｅｎｔｉｆｉｃａｔｉｏｎ：ＩＤ）レジスタと、そのモジュールをある特定のメモリアクセスコマンドに対し動作しないようにする機構とを組み込むことによって可能となる。従って、本発明は、メモリデバイスに対して動的に再構成可能なアドレス空間を提供する。また動的に再構成可能なアドレス空間は、ユーザープログラムに対して非常に大きな論理アドレス空間が提供されると共に、プログラムによって占められる論理アドレスが、そのプログラムの実行中に、はるかに小さな物理メモリ空間に動的にマッピングされるような仮想メモリシステムに於いて特に有用である。
【００２９】
本発明に於けるメモリアレイの各々は、それぞれ固有の行アドレスデコーダ及び列アドレスデコーダを備えており、更に、アクセスされる列のアドレスを自動的に増加させる特殊なアドレスシーケンサをも備えている。各メモリアレイはデータ増幅器を備えており、メモリアレイから読み出された信号がＤＡＳＳバスのラインへと伝送される前に信号を増幅する。アドレスシーケンサとデータ増幅器は両方ともメモリアレイの信号帯域幅を増加させる。その結果、各メモリアレイは、単独で、Ｉ／Ｏデータ帯域幅の要求を処理することができる。このような能力によって、ブロードキャスト書き込み（ｂｒｏａｄｃａｓｔ−ｗｔｉｔｅ）或いはインタリーブアクセスのような複数バンク動作が可能となる。例えば、本発明によるメモリデバイスは、３６ギガバイト／秒を越えるブロードキャスト書き込み帯域幅を処理すると共に、同時に３６のメモリ動作を行うことができる。
【００３０】
本発明によるメモリデバイスは、同じ接続ピンセットを用いて同期式と非同期式のどちらでもアクセス可能である。これは、（１）上述の回路モジュールアーキテクチャと共にセルフタイム（ｓｅｌｆ−ｔｉｍｅｄ）制御を用いること、（２）ソース同期式クロック法を用いているオンチップバスに対して並列にメモリモジュールを接続すること、（３）半クロックサイクル（１クロック状態変化）コマンドプロトコルを用いること、及び（４）オンチップ再同期化法を用いることによって達成される。これによって、アクセス待ち時間が短く（約１０ｎｓ）、データ帯域幅が高い（１ギガバイト／秒）メモリデバイスが得られる。
【００３１】
本発明の他の実施例によると、バスラインの終端回路が提供される。一実施例では、第１供給電圧とバスラインとの間に第１抵抗を接続し、第２供給電圧とバスラインとの間に第２抵抗を接続することによってバスラインに対して受動クランプが形成される。一実施例では、第１供給電圧はＶｄｄであり、第２供給電圧はグランドであり、第１及び第２抵抗は同じ抵抗値を有する。
【００３２】
別の実施例では、第１供給電圧とバスラインとの間にｐチャネルトランジスタを接続し、第２供給電圧とバスラインとの間にｎチャネルトランジスタを接続することによって、バスラインに対して能動クランプが形成される。ｐチャネルトランジスタ及びｎチャネルトランジスタのゲートはバスラインに応答して駆動される。
【００３３】
本発明は添付の図面と実施例によって、より詳細に理解されるであろう。
【００３４】
【発明の実施の形態】
従来のバスシステムでは、バスを伝わる信号の方向に関して信号の振幅（スイング幅）には区別がない。バスの一端から伝送される信号のスイング幅は、他方向から送られる信号のそれと等しい。マスタの数よりスレーブの数の方が大幅に多いバスシステムに於いては、バスの静電容量は、交信デバイスのバスドライバによって決定される。このことは、バスと交信デバイスとが同じチップ上に配置されているような半導体（集積回路）に於いて特に成り立つ。
【００３５】
マスタからスレーブへの通信は、一対多（ブロードキャスト）が主であり、スレーブからマスタへの通信は一対一（専用）である。スレーブからマスタへ通信するとき、小さなバススイング幅を用いることによって、スレーブデバイスのバスドライバを小さくすることができる。スレーブのバスドライバを小さくすることは、バスの静電容量を効果的に小さくし、それによって、低電力、高速度動作を容易にする。マスタのバスレシーバ内に増幅器を組み込むための費用は、マスタの数が少ないため、比較的少なくて済む。マスターからスレーブへ通信するときに大きな信号スイング幅を用いることは、スレーブのレシーバ内に於ける高価な増幅器回路を不要とする。マスタの数が少ないため、マスタ内に比較的大きなバスドライバを用いることは、バスの静電容量を概ね増加させることもなく、バスの動作周波数にほとんど影響を与えない。
【００３６】
ＤＡＳＳバス構造及びプロトコル
図１は、メモリデバイス１００のブロック図であり、このメモリデバイス１００は、方向非対称信号スイング幅（ＤＡＳＳ）バス１０２を用いて、スレーブメモリモジュール１１１〜１２８を並列にＩ／Ｏモジュール１０４と接続している。本発明は１８個のスレーブメモリモジュールを有する実施例として説明されるが、理解されるように、メモリモジュール数は別の値であってもよい。マスタＩ／Ｏモジュール１０４は、一方の側はＤＡＳＳバス１０２に接続されており、他方の側はＩ／Ｏバス１０６に接続されている。スレーブメモリモジュール１１１〜１２８は動的ランダムアクセスメモリ（ＤＲＡＭ）のアレイを含んでいる。
【００３７】
一実施例では、ＤＡＳＳバス１０２は、多重化されたアドレス、データ、及び制御情報のための１６本の高速双方向ラインＡＤＱ［１５：０］と、制御情報のための４本のラインＣ［３：０］と、書き込みマスク情報のための２本のラインＤｍ［１：０］と、ソースクロック（ｓｏｕｒｃｅ  ｃｌｏｃｋ：Ｓｃｋ）情報のための１本のラインと、デスティネーションクロック（ｄｅｓｔｉｎａｔｉｏｎ  ｃｌｏｃｋ：Ｄｃｋ）情報のための１本のラインとを有する。メモリモジュール１１１〜１２８を参照する場合、ラインＣ［３：０］、Ｄｍ［１：０］、及びＳｃｋ上の信号が入力となり、ラインＤｃｋ上の信号が出力となる。外部からのメモリモジュール選択信号は一切使用されない。メモリモジュール選択情報は、メモリモジュール１１１〜１２８にアクセスするのに用いられるメモリアドレス内で暗黙となっている。
【００３８】
全てのメモリトランザクション（ｍｅｍｏｒｙ  ｔｒａｎｓａｃｔｉｏｎｓ）は、Ｉ／Ｏモジュール１０４、またはＩ／Ｏバス１０６に接続されたデバイスのどちらかによって開始される。前者の場合、Ｉ／Ｏモジュール１０４はメモリコントローラを含む。後者の場合、Ｉ／Ｏモジュール１０４はＩ／Ｏバス１０６とＤＡＳＳバス１０２との間の中継器として働く。メモリトランザクションはコマンドと共に開始される。通常のコマンドは、Ｃ［３：０］及びＡＤＱ［１５：０］上で伝送される２０ビットの情報を必要とする。実行されるべき処理動作をエンコードするのに４ビットが用いられ、これらの４つのコマンドビットの内容に依存して、残りの１６ビットは、基底（メモリモジュール）アドレス、バンクアドレス、行アドレス、列アドレス、コマンドコード拡張または制御レジスタデータの組み合わせとしてなる。発信される各コマンドは、クロックの特定の状態変化（この場合には論理ローから論理ハイへの変化）を参照する。データは各々１６ビットから成る半ワードとしてグループ化される。ＤＡＳＳバスは、クロックの状態変化（論理ハイから論理ロー、または論理ローから論理ハイ）毎に半ワードを伝送する能力を有し、デュアルエッジ伝送（ｄｕａｌ−ｅｄｇｅ  ｔｒａｎｓｆｅｒ）を可能としている。これによって、１６ビットデータバスを用いて１クロックサイクルで３２ビットからなる１ワードを伝送することが可能となっている。
【００３９】
本コマンドプロトコルは、バスの同期式動作と非同期式動作の両方を許容すると共に、伝送オーバーヘッドとメモリアクセス待ち時間の両方を最小化する。これは、半クロックサイクル（バス上の最小時間単位）で、完全な動作コードとアドレスを送ることによってなされる。これによってコマンド伝送のオーバーヘッドが最小化されると共に、アクセス待ち時間をメモリの固有待ち時間に非常に近くすることができる。コマンドが複数の半クロックサイクルを必要とする場合、メモリモジュール１１１〜１２８の１つが動作を開始できるようになる前にコマンド情報のほとんどが受信されていなければならないため、オーバーヘッドもアクセス待ち時間となってしまう。非同期式動作では、クロック信号はコマンド及びデータストローブとして働く。図２及び図３は、非同期式及び同期式読み込み動作のタイミングをそれぞれ図示している。どちらの場合も、コマンド信号は、クロック／ストローブ信号の立ち上がりエッジ毎に評価されストローブされている。
【００４０】
非同期式動作（図２）の間、クロック／ストローブ信号の立ち下がりエッジは、メモリのアクセス待ち時間が終了するまで現れない。クロック／ストローブ信号の立ち下がりエッジが現れると、最初の半ワードが読み出される。第２の半ワードへのアクセスに対する待ち時間の終了後、クロック／ストローブ信号が論理ローから論理ハイへと変化し、それによって第２の半ワードが読み込まれる。第２の半ワードに対する待ち時間は、最初の半ワードに対する待ち時間よりも短いが、それは、第２の半ワードのアドレスは、チップ内部で生成されるからである。上述の方法により、メモリデバイスはデュアルエッジ伝送モードで動作する。
【００４１】
同期式動作（図３）では、最初の半ワード信号は、コマンド信号が検出された後、クロック／ストローブ信号の第２の立ち下がりエッジの間に読み込まれる。メモリデバイスは、この場合も、デュアルエッジ伝送モードで動作し、第２の半ワード出力が、次のクロック／ストローブ信号の立ち上がりエッジの間に現れる。ここでもまた、第２の半ワードに対する待ち時間は、第１の半ワードの待ち時間よりも短い。メモリ動作に関しては、後により詳細に説明される。
【００４２】
バスのコマンドを半クロックサイクルに制限することは、メモリアドレス範囲を６４Ｋに限定するように思われる。しかしながら、ＤＲＡＭアクセス固有の特徴を利用することによって、またアクセスを２つのマイクロ動作に分離することによって、完全なアドレスが同時に与えられる必要はなくなっている。メモリアクセス動作については、メモリ動作の章で詳細に説明される。
【００４３】
ＤＡＳＳバスドライバ及びレシーバ
図４は、スレーブメモリモジュール１１１のバストランシーバ３０２と、マスタＩ／Ｏモジュール１０４のバストランシーバ３１０とを図示した概略図である。図５は、メモリモジュール１１１のバストランシーバ３０２の概略図である。バストランシーバ３０２はバスドライバ３０４とバスレシーバ３０６とを含んでいる。バスドライバ３０４は、プルアップのためのＰＭＯＳトランジスタＰ１０とプルダウンのためのＮＭＯＳトランジスタＮ１０とを備えた従来のＣＭＯＳインバータからなる。同様に、バスレシーバ３０６は、プルアップのためのＰＭＯＳトランジスタＰ１１とプルダウンのためのＮＭＯＳトランジスタＮ１１とを備えた従来のＣＭＯＳインバータからなる。
【００４４】
ＤＡＳＳバス１０２のバスライン３０８は、バストランシーバ３０２とＩ／Ｏモジュール１０４内のバストランシーバ３１０とを結合している。トランシーバ３１０は、バスレシーバ３１２と、バスドライバ３１４と、クランプ回路３１６とを含んでいる。クランプ回路３１６はバスライン３０８上の信号のスイング幅を制限する。バスレシーバ３１２はＣＭＯＳインバータ３１８を含んでおり、バスドライバ３１４はＣＭＯＳインバータ３１４を含んでいる。クランプ回路３１６はｎチャネル電界効果トランジスタＮ１〜Ｎ４と、ｐチャネル電界効果トランジスタＰ１〜Ｐ４と、インバータ３２１とを含んでいる。
【００４５】
インバータ３１８は、クランプ回路３１６と共に、単一ステージ帰還増幅器を形成し、バスライン３０８上の信号を増幅する。インバータ３１８の出力は、概ね０．５Ｖ〜Ｖｄｄ−０．５Ｖのスイング幅を有しており、他のオンチップＣＭＯＳ論理を駆動するのに用いられる。
【００４６】
ＤＡＳＳバス１０２の動作は、バストランシーバ３０２及び３１０に依存している。バストランシーバ３０２及び３１０は、動作速度、電力消費、及びダイの全面積のかなりの部分を決定する。本発明の一実施例に従うと、Ｉ／Ｏモジュール１０４は、完全なＶｄｄ（供給電圧）のスイング幅でＤＡＳＳバス１０２を駆動する。メモリモジュール１１１〜１２８は、Ｖｄｄ／２を中心として約１Ｖの大きさの小さなＣＭＯＳスイング幅でＤＡＳＳバス１０２を駆動する。
【００４７】
バスレシーバ３１２は、以下のように動作する。Ｉ／Ｏモジュール１０４が受信中で、メモリモジュール１１１が駆動中である場合、論理ロー信号がクランプ回路３１６へリード線３２０を介して加えられる。その結果、トランジスタＰ４及びＮ４がオン状態となり、クランプ回路３１６がイネーブル（使用許可）される。インバータ３０４の入力に於けるＲｅａｄ＿ｄａｔａの電圧がグランドである場合、インバータ３１８の出力はグランドに近い電圧となり、トランジスタＰ３はオン状態、トランジスタＮ３はオフ状態、トランジスタＰ２はオン状態、トランジスタＮ２はオフ状態、トランジスタＮ１はオン状態、トランジスタＰ１はオフ状態となる。トランジスタＮ１とＮ４によってバスライン３０８とグランドとの間に導通ラインが形成され、それによってバスライン３０８上の信号はＶｄｄとはならず、クランプされて約Ｖｄｄ／２＋０．５Ｖとなる。
【００４８】
インバータ３０４の入力に於けるＲｅａｄ＿ｄａｔａの電圧がグランドからＶｄｄへと変化すると、トランジスタＰ１０（図５）がオフ状態、トランジスタＮ１０がオン状態となり、それによってバスライン３０８をグランドへと引き下げる。トランジスタＮ１はオン状態のままであり、インバータ３１８の論理しきい値に達するまで、バスライン３０８の電圧下降を促進する。しきい値に達すると、インバータ３１８の出力は論理ハイへと変化し、トランジスタＮ２とＮ３をオン状態にする。更に、トランジスタＮ２はトランジスタＮ１をオフ状態にし、トランジスタＮ３はトランジスタＰ１をオン状態にする。トランジスタＰ１とＰ４は、バスライン３０８とＶｄｄとの間に導通ラインを形成し、それによってバスライン３０８上の信号を約Ｖｄｄ／２−０．５Ｖにクランプする。
【００４９】
バスライン３０８上の電圧が、一方の論理レベルから他方の論理レベルへとスイングするとき、インバータ３１８の出力が論理状態変化を完了するまで、クランプの方向は変わらない。クランプ回路３１６は、方向を切り替える前に、インバータ３１８のスイッチングを促進する。バスライン３０８の電圧のスイング幅は、クランプトランジスタＮ１、Ｐ１、Ｎ４、及びＰ４のサイズ、またはドライバトランジスタＮ１０及びＰ１０のサイズを変化させることによって調整可能である。
【００５０】
Ｉ／Ｏモジュール１０４が駆動中で、メモリモジュール１１１が受信中の場合、論理ハイ信号がリード線３２０へと加えられる。その結果、トランジスタＰ４とＮ４とは開となり、クランプ回路３１６はディスエーブルされる。トランジスタＰ４及びＮ４は、それぞれトランジスタＰ１及びＮ１のチャネル幅（サイズ）の２倍の大きさのチャネル幅を有している。ライン３２０上の信号が落とされると、クランプ回路３１６及びインバータ３１８中の直流電流は遮断される。その結果、バスドライバ３１４からバスライン３０８を通ってバスレシーバ３０６へ伝達される信号は、完全なＶｄｄのスイング幅を有することとなる。
【００５１】
メモリモジュールの構成
本発明の一実施例に従ったメモリモジュール１１１の構成が図６に示されている。この実施例では、メモリモジュール１１２〜１２８は、メモリモジュール１１１と同一である。メモリモジュール１１１は、２つのメモリアレイ４０２ａと４０２ｂとを含んでおり、各々２５６行×１０２４列として構成されて２５６Ｋビットを有している。メモリアレイ４０２ａは、ワードラインドライバ及びデコーダ４０４ａと、列デコーダ４０６ａと、センス増幅器回路４０８ａと、列選択及びデータ増幅器回路４１０ａとを含んでいる。同様に、メモリアレイ４０２ｂは、ワードラインドライバ及びデコーダ４０４ｂと、列デコーダ４０６ｂと、センス増幅器回路４０８ｂと、列選択及びデータ増幅器回路４１０ｂとを含んでいる。メモリアレイ４０２ａと４０２ｂは、メモリモジュール１１１をＤＡＳＳバス１０２に接続する、共通のＤＡＳＳバスインタフェース４１２を共有している。バスインタフェース４１２は、コマンドデコーディング論理と、タイミング制御回路と、アドレス進行回路と、バスドライバと、バスレシーバとを含んでいる。また、バスインタフェース４１２は、プログラム可能な２つのレジスタと、メモリモジュール１１１のコミュニケーションアドレスを格納する認識（ＩＤ）レジスタ４１４と、アクセス制御レジスタ４１６とを含んでいる。ＩＤレジスタ４１４は、ＤＡＳＳバス１０２からのコマンドによってプログラムすることのできるモジュールディスエーブルビット４２０を含んでいる。後述されるように、モジュールディスエーブルビット４２０は、メモリデバイス内の冗長モジュールのアドレス指定のために提供されるものである。
【００５２】
アドレスマッピング
メモリモジュール１１１〜１２８の各々には、それぞれのモジュールのコミュニケーションアドレスを含むプログラム可能なＩＤレジスタ（例えば、ＩＤレジスタ４１４）が組み込まれている。メモリモジュール１１１〜１２８の各々には、予めプログラムされたコミュニケーションアドレスが割り付けられている。メモリモジュール１１１〜１２８の各々のコミュニケーションアドレスは、ＤＡＳＳバス１０２からのコマンドによって、システムの動作中に変更するとができる。詳述すると、所望のＩＤレジスタに新しいコミュニケーションアドレスを書き込むために、ＩＤ書き込みコマンドがＤＡＳＳバス１０２上を伝送される。
【００５３】
どのメモリモジュール１１１〜１２８のどこのメモリ位置に対しても、完全なアドレスは４フィールドを含んでいる。第１のフィールドは、コミュニケーションアドレスによってメモリモジュールを識別するための基底アドレスを含んでいる。第２のフィールドは、メモリモジュール内でメモリアレイを識別するためのアドレスを含んでいる。第３及び第４フィールドは、それぞれ所望の行及び列を識別するためのアドレスを含んでいる。メモリモジュール１１１〜１２８の出力は、３２ビットのワードの中にまとめられる。
【００５４】
プログラム可能な基底アドレスによって、メモリデバイスの動作中にメモリモジュール１１１〜１２８のコミュニケーションアドレスを修飾することが可能となり、それによって、メモリモジュール１１１〜１２８に動的アドレスマッピング機能が与えられる。
【００５５】
８Ｋワードからなるモジュールを１２８個含むシステムでは、メモリモジュールのコミュニケーションアドレスが連続的に割り当てられた場合、４Ｍバイトの連続したメモリが形成され、そこでは、モジュールをアドレス指定するのに７つのアドレスビットが用いられる。他の応用例では、ディジタルシステムはＣＰＵ（中央演算装置）とディスプレイプロセッサとに対して別個のアドレス空間を有してもよい。いくつかのメモリモジュールはＣＰＵのアドレス空間に対してマッピングし、他のメモリモジュールはディスプレイプロセッサのアドレス空間に対してマッピングして、ＣＰＵとディスプレイプロセッサを、同じメモリサブシステムを用いて、同じバス上に配置することもできる。
【００５６】
冗長性
本発明の一実施例に従うと、上述の回路モジュールアーキテクチャを用いることにより、メモリデバイス内に２つのレベルの冗長性を持たせることができる。第１のレベルの冗長性とは、メモリモジュールの冗長性である。従って、一実施例では、メモリモジュール１１１が冗長メモリモジュールとして用いられる。他の実施例では、メモリモジュール１１１〜１２８と同一の別のメモリモジュールがＤＡＳＳバスに接続され、冗長メモリモジュールとして用いられる。冗長メモリモジュールは、正規のメモリモジュールのどれが故障しても、それに置き換えられように含まれている。
【００５７】
メモリモジュール１１１を冗長モジュールとして用いているある実施例では、モジュール１１１のモジュールディスエーブルビット４２０（図６）は、メモリデバイス１００が正常動作をしている間はメモリアクセス動作に関わるのを禁止されるように予めプログラムされている。しかしながら、ＩＤレジスタ４１４はバスインタフェース４１２を介してアクセス可能である。モジュール１１２〜１２８のモジュールディスエーブルビットは、これらのモジュールがイネーブルされるようにプログラムされている。
【００５８】
メモリモジュール１１２〜１２８の１つが、メモリデバイス１００の動作中に故障すると、欠陥のあるモジュールは、そのＩＤレジスタのディスエーブルビットをプログラムすることによって、働きを止められる。冗長モジュール１１１は、モジュールディスエーブルビット４２０を再プログラミングされ、欠陥のあるモジュールのコミュニケーションアドレスをＩＤレジスタ４１４に書き込まれることによって動作状態にされる。
【００５９】
冗長性の第２レベルは、行や列の冗長性である。冗長行及び列は、メモリモジュール１１１〜１２８の中の欠陥のある行及び列を置き換えるためにメモリモジュール１１１〜１２８の各々に設けられている。
【００６０】
図７は、冗長メモリサブアレイ５０５、５０６、５１５、及び５１６を有するメモリモジュール５００のブロック図である。メモリモジュール５００は、バスインタフェース５２０と、ＩＤレジスタ５２１と、アクセス制御レジスタ５０３と、修復行アドレスレジスタ５５０及び５６０と、修復列アドレスレジスタ５５１及び５６１と、メモリアレイ５０８及び５１８とを含んでいる。メモリアレイ５０８は、冗長行サブアレイ５０５と、冗長列サブアレイ５０６と、正規のメモリアレイ５０７とを含んでいる。メモリアレイ５１８は、冗長行サブアレイ５１５と、冗長列サブアレイ５１６と、正規のメモリアレイ５１７とを含んでいる。
【００６１】
テスト回路がメモリモジュール５００内に含まれており、冗長行サブアレイ５０５と、冗長列サブアレイ５０６と、冗長行サブアレイ５１５と、冗長列サブアレイ５１６とをテストすることができる。従来のメモリ冗長化回路は、適当な入力ピン上の３状態論理を使用することを通じて、冗長メモリサブアレイ（予備の行及び列）のテストを行っている。（「Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｍｅｍｏｒｙ  Ａｐｐａｒａｔｕｓ  ｗｉｔｈ  ａ  Ｓｐａｒｅ  Ｍｅｍｏｒｙ  Ｃｅｌｌ  Ａｒｒａｙ」というタイトルの、Ｍ．Ｈａｍａｄａらによる米国特許第５，１１３，３７１号明細書を参照されたい。この明細書は、本出願に引証として加えられる。）しかしながら、本発明は、そのような３状態論理を必要としない。
【００６２】
本発明の一実施例に従うと、アクセス制御レジスタ５０３内の２つのビットＴ０１とＴ００とが、冗長行サブアレイ５０５と冗長列サブアレイ５０６のテストを許可するテストモードビットとして使用されている。テストビットＴ０１とＴ００の一方または両方がセットされている場合、メモリアレイ５０８はテストモードに置かれ、正規のメモリアレイ５０７へのアクセスが禁じられる。
【００６３】
表１は、メモリアレイ５０８の様々なテストモードを示している。
【００６４】
【表１】
0003618531.tif 000002
【００６５】
同様に、アクセス制御レジスタ５０３のテストビットＴ１１とＴ１０がメモリアレイ５１８の冗長行サブアレイ５１５と冗長列サブアレイ５１６のテストモードビットとして供されている。
【００６６】
図８は、正規のメモリアレイ５０７、冗長行サブアレイ５０５、及び冗長列サブアレイ５０６に対するイネーブル信号を生成するのに用いられる回路を説明するための概略図である。この回路は、フリップフロップ５１０及び５１１と、書き込みイネーブルリード線５３０と、ＮＯＲゲート５３１と、アドレス比較器５６４ａ及び５６４ｂと、修復行アドレスレジスタ５５０と、修復列アドレスレジスタ５５１と、修復イネーブルビット５４０及び５４１と、ＡＮＤゲート５６７及び５６８と、行アドレスリード線５６５と、列アドレスリード線５６６とを含んでいる。
【００６７】
Ｄ型フリップフロップ５１０及び５１１のＱ出力が、冗長サブアレイ５０５及び５０６のイネーブル（またはディスエーブル）にそれぞれ用いられている。また、フリップフロップ５１０及び５１１のＱ出力は、ＮＯＲゲート５３１にも入力され、正規のメモリアレイ５０７（図７）をディスエーブル（またはイネーブル）する信号も生成する。従って、リード線５３２上の論理ハイ信号は、冗長行サブアレイ５０５をイネーブルすると共に、リード線５３４上に論理ロー信号を出力し、それによってメモリアレイ５０７をディスエーブルする。同様に、リード線５３３上の論理ハイ信号は、冗長列サブアレイ５０６をイネーブルすると共に、リード線５３４上に論理ロー信号を出力し、それによってメモリアレイ５０７をディスエーブルする。
【００６８】
テストビットＴ０１及びＴ００は、ＤＡＳＳバスから（バスインタフェース５２０を介して）プログラムすることができる。テストビットＴ０１及びＴ００をプログラムするため、バスインタフェース５２０は論理ハイ信号をフリップフロップ５１０及び５１１のＤ入力に与える。更に、バスインタフェース５２０は書き込みイネーブル信号をリード線５３０（図８）上に送出し、それによってテストビットＴ０１及びＴ００を論理ハイにする。このテストモード回路によって、冗長行サブアレイ５０５及び冗長列サブアレイ５０６のシステム内テストが可能となっている。
【００６９】
図８に図示されているテストモード回路は、欠陥のある行及び列を、冗長行サブアレイ５０５及び冗長列サブアレイ５０６の行及び列と置き換えるのを容易にする。以下の例は、欠陥のある行の置き換えについて述べたものである。欠陥のある列の置き換えも概ね同様に実行することができる。
【００７０】
欠陥のある行を置き換えるために、欠陥のある行のアドレスがバスインタフェース５２０から修復行アドレスレジスタ５５０へと書き込まれる。修復行アドレスレジスタ５５０の修復イネーブルビット５４０は、論理ハイにセットされ、それによってＡＮＤゲート５６７の一方の入力に論理ハイ信号を与える。修復行アドレスレジスタ５５０の内容は、アドレス比較器５６４ａを用いることによって、行アドレスリード線５６５を介して受信される現行アドレス（ｃｕｒｒｅｎｔｒｏｗ  ａｄｄｒｅｓｓ）と比較される。リード線５６５上の行アドレスが、修復行アドレスレジスタ５５０の内容と一致すると、アドレス比較器５６４ａの出力は論理ハイへと変化し、それによってＡＮＤゲート５６７は論理ハイ信号をフリップフロップ５１０のＳｅｔ及び
【００７１】
【外１】
0003618531.tif 000003
【００７２】
入力へと出力する。その結果、フリップフロップ５１０のＱ出力は、論理ハイへと移行し、それによって冗長行サブアレイ５０５をイネーブルすると共に、正規のメモリアレイ５０７をディスエーブルする。
【００７３】
本発明の一実施例では、冗長行サブアレイ５０５及び５１５は各々１つの冗長行を有し、冗長列サブアレイ５０６及び５１６は各々６４の冗長列を有する。しかし、各メモリアレイに対してただ１つの修復列アドレスレジスタしか備わっておらず、６４列から成るグループで列の修復はなされる。修復イネーブルビット５４０及び５４１と、修復アドレスレジスタ５５０及び５５１がアクセス制御レジスタ５０３の一部として組み込まれており、（既に上述したように）バスインタフェース５２０からのコマンドを通じて、またはヒューズによってプログラムされる。
【００７４】
メモリ動作
従来のＤＲＡＭでは、メモリモジュール１１１〜１２８へのアクセスは、２つのステップに分割されている。即ち、行アクセス（ｒｏｗ  ａｃｃｅｓｓ：ＲＡＳ）動作と、それに続く列アクセス（ｃｏｌｕｍｎ  ａｃｃｅｓｓ：ＣＡＳ）動作である。ＲＡＳ動作は、基底アドレス、アレイアドレス、及び行アドレスを必要とする。ＲＡＳ動作は、指定されたアレイの指定された行のデータをセンス増幅器のラッチへと伝達する。ＣＡＳ動作は基底アドレス、アレイアドレス、及び列アドレスを必要とする。ＣＡＳ動作は、列アドレスによって指定されたセンス増幅器のラッチに格納されたデータをＤＡＳＳバス１０２に入力または出力する。いったんデータがセンス増幅器にラッチされると、その後の同じ行の異なる場所に対するアクセスは、再度ＲＡＳ動作を行うことなく、個々のＣＡＳ動作を直接用いることによって実行される。センス増幅器のラッチへのアクセスは、メモリセルへの直接アクセスよりも格段に速い。それは、センス増幅器は格段に強力な信号ドライブを備えているからである。
【００７５】
従来のＤＲＡＭでは、ＲＡＳ動作は、ＲＡＳ及びＣＡＳアクセスの間ずっと動作状態であり続けるＲＡＳ制御信号によって表される。しかしながら、本発明では、ＲＡＳ及びＣＡＳ動作は、制御バスＣ［３：０］上の共通コードによって表される。この共通コードは、アクセス動作の間ずっと維持される必要はない。実際、いったんＲＡＳ動作が実行されると、センス増幅器にラッチされたデータはプリチャージ動作（ｐｒｅｃｈａｒｇｅ  ｏｐｅｒａｔｉｏｎ）が実行されるまで、そのままである。
【００７６】
このプリチャージ動作によって、センス増幅器のラッチ内のデータが、元のＲＡＳ動作によって指定されたＤＲＡＭセルの行へと伝送される。プリチャージ動作は、また、次のＲＡＳ動作に対してメモリアレイの準備がなされるように、ビットラインとセンス増幅器の出力の等化を開始させる。上述したように、各メモリ動作には、メモリアドレスの一部しか必要とされない。即ち、ＲＡＳ動作には列アドレスは必要とされず、ＣＡＳ動作には行アドレスは必要とされない。このことは、比較的狭いアドレスバス（１６ビット）を用いて、半クロックサイクルで、各動作に対するメモリアドレスを伝送することを可能とし、それによってアクセス待ち時間を最小化すると共に、同期式と非同期式の両方でメモリにアクセスすることを可能としている。
【００７７】
プリチャージされた状態のメモリアレイにアクセスするため、２バスクロックサイクルを要する２つの動作が必要とされる。メモリアレイからセンス増幅器へのデータの伝送には、通常２０ｎｓ（１クロックサイクルよりも長い）より長い時間を要するため、本発明のコマンドプロトコルはメモリアクセス待ち時間（ＲＡＳアクセス時間）を増加させない。本発明のコマンドプロトコルは、行アクセス時間が列アクセス時間よりも概ね長いようなメモリデバイスであれば、どのようなメモリデバイスであっても、そのメモリデバイスのアクセス待ち時間を増加することなく、そのデバイスに適用することができる。
【００７８】
本発明によるＲＡＳ−ＣＡＳ−プリチャージプロトコルは、メモリデバイスを同期式と非同期式の両方で動作させることができるという利点を有する。本発明のこの側面については以下により詳細に説明される。
【００７９】
センス増幅器からのまたはセンス増幅器へのデータ伝送は、バースト（ｂｕｒｓｔ）伝送される。ＣＡＳアドレスによってアクセスデータを識別した後、続くＣＡＳアドレス内のデータは、新しいコマンドまたはアドレスを持ち出すことなくアドレスシーケンス回路によって自動的にアクセスされる。１クロックサイクル毎に１ワードのデータの書き込みまたは読み取りが可能であり、また、１行全体のデータ、即ち３２ワードは３２クロックサイクルから成る１バーストでアクセス可能である。以後に詳述するように、各メモリアレイが固有のアドレスシーケンス回路と列アクセス回路とを有しているため、各メモリアレイはバスクロックと同じ周波数で動作することが可能である。実際、本発明によるメモリアレイは、１ギガバイト／秒に達するデータバーストを処理することができる。
【００８０】
従来のＤＲＡＭ技法に於けるメモリアレイは、このような周波数でデータを出力することはできない。従来のＤＲＡＭ技法では、ＤＲＡＭからアクセスされたデータは、いくつかのメモリアレイへ供給され、各メモリアレイはデータＩ／Ｏ帯域幅よりもはるかに低いデータ帯域幅で動作する。（例えば、ＦａｒｍｗａｌｄらによるＰＣＴ特許ＰＣＴ／ＵＳ９１／０２５９０号明細書、あるいは、“Ｙ．Ｄｏｓａｋａ、Ｙ．Ｋｏｎｉｓｈｉ、Ｋ．Ｈａｙａｎｏ、Ｋ．Ｈｉｍｕｋａｓｈｉ、Ｃ．Ａ．Ｈａｒｔ、Ｍ．Ｋｕｍａｎｏｙａ、Ｈ．Ｈａｍａｎｏ、Ｔ．Ｙｏｓｈｉｈａｒａらによる「Ａ  １００ＭＨｚ  ４Ｍｂ  Ｃａｃｈｅ  ＤＲＡＭ  ｗｉｔｈ  Ｆａｓｔ  Ｃｏｐｙ−ｂａｃｋ  Ｓｃｈｅｍｅ」、ＩＳＳＣＣ、１９９２年、ｐｐ．１４８〜１４９”を参照方。）
【００８１】
列アクセス回路
図９は、従来のＤＲＡＭに於けるメモリアレイの列エリアのデータ経路を示している。メモリセルアレイ６０１は、２５６行×１０２４列のメモリセルを含んでいる。２つの相補的なビットラインによってメモリセルアレイ６０１の各列とセンス増幅器回路６０２内のセンス増幅器（ＳＡ）のラッチとが接続されている。各ＳＡラッチの２つの出力は、列切り替え回路６０３内の対応する列選択スイッチに接続されている。列切り替え回路６０３内の列選択スイッチは、列選択バス６０５上の信号によって制御される。あるＳＡラッチに対応する列選択スイッチが閉じている場合、そのＳＡラッチは対応する相補的なデータライン対につながっていることになる。メモリセルアレイ６０１は、通常、２つのデータライン対、即ち（１）ＤＱ０、
【００８２】
【外２】
0003618531.tif 000004
【００８３】
及び（２）ＤＱ１、
【００８４】
【外３】
0003618531.tif 000005
【００８５】
を用いる。（“Ｓ．Ｆｕｊｉｉらによる「Ａ  ５０−μＡ  Ｓｔａｎｄｂｙ  １Ｍ×１／２５６Ｋ×４  ＣＭＯＳ  ＤＲＡＭ  ｗｉｔｈ  Ｈｉｇｈ−ＳｐｅｅｄＳｅｎｓｅ  Ａｍｐｌｉｆｉｅｒ」、ＩＥＥＥ  ＪＳＳＣ、ｖｏｌ．ｓｃ−２１、ｎｏ．５、１９８６年１０月、ｐｐ．６４３〜６４８”及び、“Ｔ．Ｏｈｓａｗａらによる、「Ａ  ６０−ｎｓ  ４−Ｍｂｉｔ  ＣＭＯＳ  ＤＲＡＭ  ｗｉｔｈ  Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ−Ｔｅｓｔ  Ｆｕｎｃｔｉｏｎ」、ＩＥＥＥＪＳＳＣ、ｖｏｌ．ｓｃ−２２、１９８７年１０月、ｐｐ．６６３〜６６８”参照。）
【００８６】
列切り替え回路６０３では、５１２個の列選択スイッチが各データライン対上に多重化されている。各データラインはメモリセルアレイ６０１の長辺側に沿って走っている。その結果、データラインの静電容量は大きい（約４〜５ｐｆ）。
【００８７】
読み込み動作の間、このデータラインの静電容量は、列切り替え回路６０３を介してＳＡラッチによって駆動される。その結果、立ち上がり時間及び立ち下がり時間が長くなり、帯域幅が制限される。
【００８８】
書き込み動作の間、データラインの静電容量は、ほとんど問題とならない。それは、メモリセルアレイ６０１の外部に配置された比較的大型の書き込みバッファによって、データラインが直接駆動されるからである。しかし、書き込みサイクル時間は、ＳＡラッチの書き込み遅れと、列アドレスデコーディング経路と書き込みデータ経路との間の遅れの不整合とによって決定される。列アドレスデコーディング経路とデータ経路とは異なる経路を通されているために、後者の遅れは大きい。
【００８９】
図１０は、典型的な従来のＤＲＡＭデバイスの列アドエスデコーディング経路とデータ経路とを説明するためのブロック図である。列アドレスバス７０１がメモリアレイ７０２ａ〜７０２ｇに並列に接続されている。しかし、データ経路は、いくつかのアレイからのデータライン７０３〜７０６から形成されている。従って、２つの経路の間の論理とローディングに於ける違いは大きい。
【００９０】
図１１は、本発明の一実施例に従った列データ経路のブロック図である。メモリセルアレイ８０１の各列は、センス増幅器回路８０２のＳＡラッチに、例えばビットライン対８０３のようなビットライン対によって接続されている。センス増幅器回路８０２の出力は、ツリーデコーダ回路８０４に加えられている。ツリーデコーダ回路８０４は、３２対１（３２−ｔｏ−１）ツリーデコーダを３２個含んでいる。各３２対１ツリーデコーダは、３２個のＳＡラッチからの相補的な入力を受信する。各３２対１ツリーデコーダは、２つのレベルのスイッチを含んでいる。第１のレベルは、８ビット信号Ｓａ［７：０］によって制御されるものであり、４つの８対１マルチプレクサから構成されている。第２のレベルは、４ビット信号Ｓｂ［３：０］によって制御されるものであり、１つの４対１マルチプレクサを含んでいる。４対１マルチプレクサへの各入力は、８対１マルチプレクサの中の１つの出力に接続されている。各３２対１ツリーデコーダは、データ増幅器回路８０５に対して一対の相補的な出力を与える。これらの相補的な出力は、選択された列のＳＡラッチの２つの出力に対応している。
【００９１】
データ増幅器回路８０５は、３２個のデータ増幅器を含んでいる。各データ増幅器は、対応する３２対１デコーダからの相補的な出力を受信する。３２個のデータ増幅器はグループ化されて１６の対になっている。各データ増幅器対は１６本のデータラインの１つに多重化された信号を出力する。
【００９２】
図１２は、ツリーデコーダ９０１及び９１１と、データ増幅器対９００の概略図である。データ増幅器対９００は、データ増幅器９０２及び９１２と、マルチプレクサ９０７と、読み取りデータラッチ９１４と、書き込みバッファ９０３及び９１３と、３状態バッファ９０５と、クロック発生回路９１８とを含んでいる。
【００９３】
ツリーデコーダ９０１及び９１１の相補的な出力は、それぞれデータ増幅器９０２及び９１２へ供給される。データ増幅器９０２及び９１２は、単一位相のクロック信号ＤＳＥＮＳＥによって制御される改良されたラッチである。
【００９４】
局所的セルフタイムクロック回路（ｌｏｃａｌ  ｓｅｌｆ−ｔｉｍｅｄ  ｃｌｏｃｋ  ｃｉｒｃｕｉｔ）であるクロック発生回路９１８は、データ増幅器９０２及び９１２と、マルチプレクサ９０７とを制御するのに用いられる制御信号を生成する。従って、プリチャージ信号
【００９５】
【外４】
0003618531.tif 000006
【００９６】
、及びセンス信号ＤＳＥＮＳＥは、バスクロック信号、Ｃｌｋ、列アクセス（ＣＡＳ）信号及びプリチャージ信号、
【００９７】
【外５】
0003618531.tif 000007
【００９８】
に応答して生成される。Ｃｌｋ信号は、Ｓｃｋ信号がバッファリングされたものである。
【００９９】
【外６】
0003618531.tif 000008
【０１００】
及びＤＳＥＮＳＥ信号は、データ増幅器対９００の外部にある回路を駆動するのには用いられることのない、局所的な信号であり、それによって、制御信号中のタイミングの歪みが最小化されている。
【０１０１】
読み取り動作
読み取り動作を実行するため、
【０１０２】
【外７】
0003618531.tif 000009
【０１０３】
信号が、論理ハイにされる。その結果、書き込みバッファ９０３及び９１３のトランジスタ９５０〜９５３はオフ状態となり、３状態バッファ９０５は低インピーダンス状態に置かれる。ＣＡＳ信号は論理ハイにされる。Ｃｌｋ信号の最初の半サイクルの間、Ｃｌｋ信号は論理ハイの状態にあり、従ってＤＳＥＮＳＥ及び
【０１０４】
【外８】
0003618531.tif 000010
【０１０５】
信号を両方とも論理ハイにする。これらの条件のもとで、ツリーデコーダ９０１及び９１１の相補的な出力は、データ増幅器９０２及び９１２にそれぞれラッチされる。
【０１０６】
例えば、リード線９２５上の論理ロー信号とリード線９２６上の論理ハイ信号は、トランジスタ９７１及び９７２をオン状態にし、トランジスタ９７０及び９７３をオフ状態にする。論理ハイのＤＳＥＮＳＥ信号はトランジスタ９６１をオン状態にする。その結果、ノード９９１はトランジスタ９７２及び９６１を介してグランドへと引き下げられ、ノード９９２はトランジスタ９７１を介してＶｄｄへと引き上げられる。同様にして、リード線９２６上の論理ロー信号とリード線９２５上の論理ハイ信号は、ノード９９２がトランジスタ９７３及び９６１を介してグランドへと引き下げられ、ノード９９１がトランジスタ９７０を介してＶｄｄへと引き上げられる結果となる。
【０１０７】
データ増幅器９１２は、データ増幅器９０２と同様に動作して、リード線９２７及び９２８上の信号をラッチする。従って、リード線９２７上の論理ハイ信号とリード線９２８上の論理ロー信号は、ノード９９３がトランジスタ９７４を介してＶｄｄへと引き上げられ、ノード９９４がトランジスタ９７７及び９６２を介してグランドへ引き下げられる結果となる。同様に、リード線９２７上の論理ロー信号とリード線９２８上の論理ハイ信号は、ノード９９３がトランジスタ９７６及び９６２を介してグランドへと引き下げられ、ノード９９４がトランジスタ９７５を介してＶｄｄへと引き上げられる結果となる。
【０１０８】
マルチプレクサ９０７内では、ＤＳＥＮＳＥ信号が論理ハイになると、伝達ゲート９９５及び９９７が閉じ（即ち、導通状態に置かれ）、伝達ゲート９９６が開く（即ち、非導通状態に置かれる）。その結果、ノード９９２上の電圧は、伝達ゲート９９５と３状態バッファ９０５とを介してＤＱデータライン９３０へと伝達される。ＤＱデータライン９３０は、３状態バッファ９０５を直接メモリバスインタフェース内のバストランシーバへと接続している（例えば、図３及び図６のインバータ３０４及び３０６を参照）。このライン上には他の信号が多重化されていないため、この接続によってルーティング（ｒｏｕｔｉｎｇ）による静電容量以外の負荷（ｌｏａｄｉｎｇ）は、ほとんど発生しない。ＤＱデータライン９３０の負荷は、従って、従来の方法で存在していたものよりもはるかに小さい。その結果、本発明のＤＱデータラインは、より高い周波数（２５０ＭＨｚに達する）で動作可能である。
【０１０９】
更に、ノード９９３上の電圧は、伝達ゲート９９７を介して読み取りデータラッチ９１４中に格納される。
【０１１０】
Ｃｌｋ信号の第２半サイクルの間、Ｃｌｋ信号は論理ローとなっており、それによってＤＳＥＮＳＥ及び
【０１１１】
【外９】
0003618531.tif 000011
【０１１２】
信号を両方とも論理ローとなる。論理ローの
【０１１３】
【外１０】
0003618531.tif 000012
【０１１４】
信号に応答して、トランジスタ９２０〜９２３はオン状態となる。その結果、リード線９２５〜９２８はＶｄｄに結合される（即ち、リード線９２５〜９２８はプリチャージされる）。更に、論理ローのＤＳＥＮＳＥ信号は、伝達ゲート９９５及び９９７を開にし、伝達ゲート９９６を閉にする。その結果、読み取りデータラッチ９１４中に格納された電圧は、伝達ゲート９９６及び３状態バッファ９０５を介してＤＱデータライン９３０へと、第２半サイクルの間に読みとられる。上述の方法によって、アレイ８０１（図１１）からデータライン８０６へのデュアルエッジ伝送がなされる。
【０１１５】
書き込み動作
書き込み動作を実行するため、
【０１１６】
【外１１】
0003618531.tif 000013
【０１１７】
信号が論理ローとされ、それによって３状態バッファ９０５が高インピーダンス状態に置かれ、書き込みバッファ９０３及び９１３中のＮＯＲゲート９５４〜９５７の各々の入力に論理ロー信号が加えられる。Ｃｌｋ信号の最初の半サイクルの間、Ｃｌｋ信号は論理ローの状態にあり、従って伝達ゲート９０６は閉となり、伝達ゲート９１６は開となっている。ＤＱデータライン９３０上の信号は、従って、ＮＯＲゲート９５５の入力に通される。例えば、ＤＱデータライン９３０上の論理ハイ信号によって、ＮＯＲゲート９５５はトランジスタ９５１へ論理ロー信号を出力し、それによってこのトランジスタをオフ状態にする。また、ＮＯＲゲート９５５の論理ロー出力は、ＮＯＲゲート９５４の入力にも加えられ、ＮＯＲゲート９５４は論理ハイ信号を出力してトランジスタ９５０をオン状態にする。
【０１１８】
論理ローの
【０１１９】
【外１２】
0003618531.tif 000014
【０１２０】
信号は、また、ＤＳＥＮＳＥ及び
【０１２１】
【外１３】
0003618531.tif 000015
【０１２２】
信号を論理ハイとし、それによってｐチャネルトランジスタ９２０〜９２３をオフ状態とし、ｎチャネルトランジスタ９６１〜９６２をオン状態とする。その結果、ｐチャネルトランジスタ９７１及びｎチャネルトランジスタ９７２はオン状態となる。更に、ツリーデコーダ９０１は供給電圧Ｖｄｄをリード線９２６を介して受信すると共に、グランド供給電圧をリード線９２５を介して受信し、それによって、メモリアレイ８０１（図１１）の選択された列にハイデータ値を書き込む。
【０１２３】
ＤＱデータライン９３０からの入力が、論理ロー信号である場合（上述したような論理ハイ信号と逆の場合）、既に上述したのと同様にして、ツリーデコーダ９０１はグランド供給電圧をリード線９２６を介して受信すると共に、供給電圧Ｖｄｄをリード線９２５を介して受信する。
【０１２４】
Ｃｌｋ信号の第２半サイクルの間、Ｃｌｋ信号は論理ハイへと変化し、それによって伝達ゲート９０６を開とし、伝達ゲート９１６を閉とする。ＤＱデータライン９３０上の信号は、書き込みバッファ９１３、データ増幅器９１２、及びツリーデコーダ９１１を介して、上述したのと同様に伝達される。このようにして、Ｃｌｋ信号の各半サイクルの間にＤＱデータライン９３０からメモリアレイへとデータが書き込まれる。ツリーデコーダ９０１及び９１１によって選択されるアドレスが１クロックサイクルに１回だけ変化するため、伝達ゲート９０６及び９１６によって行われるデマルチプレクシング（ｄｅｍｕｌｔｉｐｌｅｘｉｎｇ）が必要である。
【０１２５】
ツリーデコーダ９０１及び９１１は、多重化の負荷を約１２ライン（８＋４）に制限する（上述したような従来の方法での５１２ラインと対照的である）。容量性負荷が小さくなったことによって、データ増幅器回路８０５による、より高いドライブ信号と相まって、データ帯域幅が増加される。
【０１２６】
遅れ整合
アドレス、データ、及びクロック経路を整合することによって高速書き込み動作も容易になる。チップレベルでは、メモリデバイス１００のアドレス及びデータ経路は、それらがＤＡＳＳバス（図１参照）上の同じバスラインセット（多重化されたアドレス及びデータ）を共有しているため、自動的に整合される。クロックとアドレス／データバスラインとの間の遅れ整合は、クロックがバスの一部であり、またクロックの負荷が軽いため、比較的簡単である。後により詳細に説明するように、クロックの負荷が軽いのは、メモリモジュール１１１〜１２８がセルフタイム式であり、同期に関して汎用クロックに依存していないためである。
【０１２７】
メモリモジュール１１１〜１２８内では、遅れ整合は以下のようにして達成される。ゲート遅れ整合は、遅れの小さい経路中に余分なバッファを挿入することによってなされる。ゲートの負荷によって引き起こされる遅れの不整合や、ルーティングに伴う静電容量に起因する不整合は、ダミー負荷を用いることによって最小化される。
【０１２８】
遅れの不整合の主な要因は、列デコーダ４０６ａ及び４０６ｂ（図６）にある。列デコーディングには、プリデコーディング段階と最終デコーディング段階とが含まれる。プリデコーディング段階では、５本の列アドレスラインが２つのグループに分けられ、３対８デコーダに接続される３本の列アドレスラインと、２対４デコーダに接続される２本の列アドレスラインとにされる。３対８デコーダ及び２対４デコーダは、それぞれ２レベルの単純論理ゲートを含む従来のデコーダである。最終デコーディングは、列エリア内に於いて３２対１ツリーデコーダ（例えば、図１１のツリーデコーダ８０４）によって行われる。上述の列デコーディング法によって、アドレス経路が３対８デコーダ及び２対４デコーダを通過し、比較的少数の単純論理ゲートを通ることになるため、異なる経路間の遅れ整合が簡単になる。
【０１２９】
遅れの不整合は、クロックと、プリデコードされた列選択信号Ｓａ［７：０］及びＳｂ［３：０］（図１２参照）と、ＤＱラインの経路を、同じようにメモリアレイの列エリアを通るように定めることによって更に最小化される。
【０１３０】
アドレスシーケンス回路
データのバースト伝送は、データバーストの開始アドレスだけが与えられただけで、連続するアドレス位置内のデータに自動的にアクセスするようなメカニズムを必要とする。メモリデバイスは、適切な列ラインが選択されるように、開始アドレスを用いて、その後のデコードされたアドレスを生成する。バースト伝送の間、適切な列をイネーブルするためにアドレスシーケンサが必要とされる。
【０１３１】
図１３は、従来のアドレスシーケンサ１０００のブロック図であり、このアドレスシーケンサ１０００は、Ｎビットバイナリカウンタ１００１と、デコーダ１００２と、バッファ１００３とを含んでいる。（“Ｍｏｔｏｒｏｌａ  Ｍｅｍｏｒｙ  Ｄａｔａ  Ｂｏｏｋ、Ｄｅｖｉｃｅ  ＭＣＭ６２４８６Ａ、ｐｐ．７−１００  −  ７−１０９、１９９２年”参照。）カウンタ１００１へのロード信号入力を活性化することによって、アドレスバス１０１１からカウンタ１００１へ開始アドレスがローディングされる。アドレスの進行は、カウンタ１００１に入力されるクロック信号によってタイミングを合わせられる。カウンタ１００１の出力は、デコーダ１００２によってデコードされ、バッファ１００３によってバッファリングされる。バッファ１００３の出力に於いて供給される信号は列選択信号であり、これらの信号は、センス増幅器のラッチからデータワードを導き入れるように、一度に一つだけ活性化される。クロックの立ち上がりエッジ毎に、カウンタ１００１は増加され、その出力はデコードされて次の列選択信号を発生し、次の列選択ラインを活性化する。このように、列選択ラインは、順番に活性化されるが、各々の活性化されている持続時間は１クロックサイクルである。
【０１３２】
アドレスシーケンサ１０００の欠点の一つは、クロックの立ち上がりエッジから列選択信号の活性化までの総遅れが、カウンタ１００１のクロックから出力までの遅れ（ｃｌｏｃｋ−ｔｏ−ｏｕｔ  ｄｅｌａｙ）と、デコーダ１００２の伝搬遅れと、バッファ１００３による遅れとの合計となることである。この総遅れによってバースト周波数、従ってアクセス帯域幅が制限される。デコーダ１００２を通る遅れ経路が各出力状態変化に対して均一でないことによって、別の問題も生じる。デコーダの遅れ経路が不均一だと、デコーダの遅れの不整合によって、１つ以上の列選択信号が同時に活性化されてしまうことがある。その結果、特に高速動作に於いて、読み取りまたは書き込みの失敗が発生することがある。
【０１３３】
図１４は、本発明によるアドレスシーケンサ１１００のブロック図である。簡単化のため、３ビットデコーディングについて示されている。理解されるように、本発明に従って、同じ原理を別のビット数に対するデコーディングに適用することもできる。アドレスシーケンサ１１００は、３対８デコーダ１１０１と、８ステージからなるバレルシフタ（ｂａｒｒｅｌ  ｓｈｉｆｔｅｒ）１１０２と、列選択バッファ１１０３とを含んでいる。バス１１０５上のデコーダ１１０１に３ビットの開始アドレスが入力される。デコーダ１１０１の８ビット出力は、バレルシフタ１１０２へのロード信号入力が活性化されたときに、バレルシフタ１１０２にローディングされる。
【０１３４】
図１５は、バレルシフタ１１０２の一実施例のブロック図である。バレルシフタ１１０２は、８個のマスタ／スレーブＤ型フリップフロップ１１２０〜１１２７を含んでおり、それらはリング状に接続されている。３対８デコーダ１１０１の出力は、フリップフロップ１１２０〜１１２７のＰＤ入力へと与えられる。ある与えられた時間に於いては、３対８デコーダ１１０１の出力の内、１ビットだけが論理ハイとなる。ロード信号がフリップフロップ１１２０〜１１２７の各Ｌ入力に与えられており、クロック信号がフリップフロップ１１２０〜１１２７の各Ｃ入力に与えられている。フリップフロップ１１２０〜１１２７のＱ出力は、列選択バッファ１１０３へと与えられている。バレルシフタ１１０２は、アドレスの増加及び減少に対して右及び左へそれぞれシフトすることができるが、ここでは、説明を簡単にするため、右へのシフト構造だけが示されている。
【０１３５】
図１６は、マスタ／スレーブＤ型フリップフロップ１１２０の概略図である。例示されている実施例では、マスタ／スレーブＤ型フリップフロップ１１２０〜１１２７は同一である。ロード信号が論理ハイになると、伝達ゲート１１６２が閉じ、インバータ１１５０及び１１７０によって形成されたマスタラッチにＰＤ入力が格納される。ロード信号は、クロック信号が論理ローとなっている時のみ論理ハイになる。クロック信号が論理ローの時、伝達ゲート１１６０は開となり、伝達ゲート１１６１が閉となる。その結果、マスタラッチの出力が、インバータ１１５１及び１１７１によって形成されたスレーブラッチに伝達される。Ｑ出力は、その後、ＰＤ入力に加えられた信号と同じ状態を有するようになる。インバータ１１５０及び１１５１の出力駆動能力は弱く、それらは容易に、伝達ゲート１１６０及び１１６１の駆動によって圧倒される。
【０１３６】
デコードされたアドレスが、Ｄ型フリップフロップ１１２０〜１１２７のマスタステージとスレーブステージの両方に同時にローディングされるため、バレルシフタ１１０２は、アドレス経路内にパイプラインステージ（ｐｉｐｅｌｉｎｅ
ｓｔａｇｅ）を有していない。
【０１３７】
３対８デコーダ１１０１の出力が、いったんフリップフロップ１１２０〜１１２７へローディングされると、ロード信号が論理ローになり、フリップフロップ１１２０〜１１２７のＰＤ入力は３対８デコーダ１１０１から効果的に切り離される。バレルシフタ１１０２にローディングされた論理ハイビットは、各クロックサイクルの間に１フリップフロップだけシフトするようにして、フリップフロップ１１２０〜１１２７を通って循環する。
【０１３８】
バレルシフタ１１０２の８ビット出力は、バッファ１１０３を介してツリーデコーダ９０１及び９１１（図１２）の連続した列選択ラインＳａ［７：０］に接続されている。従って、列選択ラインＳａ［７：０］は、一度に一つ、連続した順番で、１クロックサイクルの間、活性化される。
【０１３９】
アドレスシーケンサ１１００の総遅れ時間は、従来のアドレスシーケンサ１０００の総遅れ時間より短い。これは、バレルシフタ１１０２に初期アドレスがローディングされた後、アドレスシーケンサ１１００では、デコーダ１１０１に関わる遅れが発生しないからである。その結果、アドレスシーケンサ１１００は、アドレスシーケンサ１０００よりも極めて高い周波数で動作することができる。
【０１４０】
更に、フリップフロップ１１２０〜１１２７が同一の構造となっているため、バレルシフタ１１０２の出力は均一なクロックから出力までの遅れを有する。更に、列選択ラインＳａ［７：０］とバレルシフタ１１０２の出力の間には、論理ゲートの組み合わせが存在しない。その結果、クロックから列選択ラインの活性化までの時間は、全ての列選択ラインに対してよく整合しており、それによって、列選択ラインの同時活性化を避けることができ、アドレスの移行による読み取りまたは書き込みの失敗を最小化することができる。
【０１４１】
２ビット入力ＣＡ［４：３］に応答して、４つの列選択信号Ｓｂ［３：０］を生成するため、アドレスシーケンサ１１００と似たアドレスシーケンス回路が、更に、用いられる。上述したように、列選択信号Ｓｂ［３：０］は、ツリーデコーダ９０１及び９１１（図１２）の第２レベルのスイッチ（即ち、４対１マルチプレクサ）を制御する。
【０１４２】
クロック技法
本発明に従うと、クロック分配法によって、（１）メモリデバイスが同期式と非同期式の両方で動作することが可能となり、（２）歪みが最小化され、デバイスの高速動作が可能となり、（３）動作電力を減少させることができる。
【０１４３】
メモリデバイス１００（図１）は、非同期式と同期式の両方で動作できる。同期式動作を達成するため、上述したようにセルフタイムクロック回路９１８によって具現されるようなセルフタイム式設計技法と、以下に述べるような再同期化回路とがメモリモジュール１１１〜１２８に用いられている。
【０１４４】
要求されている高速の同期動作に応えるように、制御、アドレス、及びデータ経路間の遅れ整合が適用されている。十分な遅れ整合を達成することは、上述したような回路モジュールアーキテクチャを用い、各メモリモジュールの面積を比較的小さくしておくことによって、本発明に於いては比較的容易である。各メモリモジュールの内部動作が他のメモリモジュールの内部動作に対して独立しているため、タイミングの歪みは各メモリモジュール内部の比較的小さな範囲に限定される。
【０１４５】
タイミングの歪みは、重要な制御信号の分配を更に局所化する、セルフタイム法を用いることによって更に小さくなる。セルフタイム法は、活性化に対する再同期化の面倒なしに、ディスエーブルされるべき特定の動作に含まれない機能ブロックをイネーブルする。例えば、Ｃｏｌｕｍｎ＿Ａｃｃｅｓｓ信号が論理ローで、
【０１４６】
【外１４】
0003618531.tif 000016
【０１４７】
信号が論理ハイの場合、データ増幅器対９００（図１２）はオフ状態になる。その結果、列回路全体がオフ状態となる。
【０１４８】
また、本回路モジュールアーキテクチャは、バストランザクションに含まれない任意のメモリモジュールが自動的にシャットダウンされるのを可能とする。ＤＡＳＳバス１０２がデータ伝送状態にないとき（即ち、アクセスされているメモリモジュールがないとき）、各メモリモジュールは、Ｓｃｋ信号の各立ち上がりエッジの間、ＤＡＳＳバス上のコマンドをデコードする。メモリの読み取りまたは書き込みコマンドがデコードされると、各メモリモジュールはそのコマンドのコミュニケーションＩＤを調べる。そのコマンドがアドレス指定されているモジュールを除く全てのモジュールは、読み取りまたは書き込みトランザクションが終了するまでアイドル状態になる。メモリデバイス１００中の電力消費は、従って、狭い領域に限定され、そこに含まれるトランジスタの数も少ない。それによって、メモリデバイス１００の全体としての消費電力は低く保たれる。その結果、メモリデバイス１００は低消費電力での応用に適している。
【０１４９】
ＤＡＳＳバス１０２上では、同期式及び非同期式動作の要求を満たすように、ソース同期伝送（ｓｏｕｒｃｅ  ｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ）が用いられている。ＤＡＳＳバス１０２上のソースクロック（Ｓｃｋ）信号及びディスティネーションクロック（ｄｅｓｔｉｎａｔｉｏｎ  ｃｌｏｃｋ：Ｄｃｋ）信号は、ソースの同期タイミングを容易にする。Ｓｃｋ信号は、マスタＩ／Ｏモジュール１０４からメモリモジュール１１１〜１２８へのデータ、アドレス、及びコマンドを同期させるのに用いられる。Ｄｃｋ信号は、アクセス対象として選択されたメモリモジュール１１１〜１２８の１つによって生成され、メモリモジュール１１１〜１２８からＩ／Ｏモジュール１０４へと転送されるデータに対する同期タイミングを与える。
【０１５０】
Ｄｃｋ信号は、データを伝送しているメモリモジュールによってのみ駆動される。Ｄｃｋ信号は、メモリモジュールの読み取りデータ経路と概ね等しい遅れ経路を通るようにＳｃｋ信号の経路を定めることによって、動作中のメモリモジュール内で生成される。従って、Ｄｃｋ信号はＳｃｋ信号と同じ周波数を有してはいるが、Ｓｃｋ信号または読み取りデータに対して特定の位相関係は持たない。同期式動作の間、各メモリモジュールからのデータ出力は、Ｓｃｋ信号に同期されなければならない。従って、メモリモジュールからのデータ読み取りをＳｃｋ信号に同期させるため、再同期化回路（ｒｅｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  ｃｉｒｃｕｉｔ）が用いられている。
【０１５１】
再同期化回路
再同期化回路は、マスタＩ／Ｏモジュール１０４（図１）中に組み込まれて、同期式動作の間、メモリモジュール１１１〜１２８からの読み取られたデータをＳｃｋ信号に同期させる。非同期式動作の間、再同期化回路はディスエーブルされる。即ち、メモリモジュール１１１〜１２８から読み取られたデータは、ほとんど遅れなしに、再同期化回路を通って流れる。
【０１５２】
図１７は、再同期化回路１２００のブロック図である。この再同期化回路１２００は、深さ４の先入れ先出し（ＦＩＦＯ）メモリ１２０２と、待ち時間制御回路１２０４と、フェイズロックループ（ＰＬＬ）回路１２０６と、モード選択フリップフロップ１２０７とを含んでいる。ＦＩＦＯ１２０２は、選択されたメモリモジュールからデータ入力（Ｄａｔａ＿Ｉｎ）信号を受信し、Ｄａｔａ＿Ｉｎ信号内のデータ値の一時的な保管を行う。ＦＩＦＯ１２０２内の書き込み動作は、Ｄｃｋ信号と、
【０１５３】
【外１５】
0003618531.tif 000017
【０１５４】
信号と、ｍｏｄｅ＿ｓｅｌｅｃｔ信号とによって制御される。
【０１５５】
モード選択フリップフロップ１２０７は、Ｗｒｉｔｅ＿Ｅｎａｂｌｅ信号及びＤＡＳＳバス１０２から受信される他の信号によってプログラムされる。モード選択フリップフロップ１２０７のＱ出力が、ｍｏｄｅ＿ｓｅｌｅｃｔ信号として用いられる。ｍｏｄｅ＿ｓｅｌｅｃｔ信号は、同期式動作が選択されたとき（即ち、ｍｏｄｅ＿ｓｅｌｅｃｔ信号が論理ハイの時）、ＦＩＦＯ１２０２及びＰＬＬ１２０６をイネーブルする。ｍｏｄｅ＿ｓｅｌｅｃｔ信号は、非同期式動作が選択されたとき（即ち、ｍｏｄｅ＿ｓｅｌｅｃｔ信号が論理ローのとき）、ＦＩＦＯ１２０２及びＰＬＬ１２０６をディスエーブルする。
【０１５６】
ＰＬＬ回路１２０６は、Ｓｃｋ信号に応答して出力クロック（Ｏｕｔ＿Ｃｌｋ）信号を生成する従来回路である。Ｏｕｔ＿Ｃｌｋ信号は、ＦＩＦＯ１２０２及び待ち時間制御回路１２０４に加えられる。Ｏｕｔ＿Ｃｌｋ信号は、ＦＩＦＯ１２０２のデータ出力信号の状態変化が、（ＦＩＦＯ１２０２内の遅れも考慮して）Ｓｃｋ信号と同期することを保証するように選択される。
【０１５７】
プログラム可能な待ち時間制御回路１２０４は、Ｏｕｔ＿Ｃｌｋ信号と、
【０１５８】
【外１６】
0003618531.tif 000018
【０１５９】
信号と、Ｗｒｉｔｅ＿Ｅｎａｂｌｅ信号と、ＤＡＳＳバス１０２からの入力信号とを受信する。応答として、待ち時間制御回路１２０４は、ＦＩＦＯ１２０２からのデータ値の読み取りを制御するべくＦＩＦＯ１２０２に加えられる、Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号を生成する。後により詳細に説明されるように、待ち時間制御回路によって、読み取りコマンドの検出からＦＩＦＯ１２０２からのデータ出力までの間に含まれる半クロックサイクルの数を、ユーザーが決定することが可能となる。
【０１６０】
図１８は、ＦＩＦＯ１２０２の一実施例の概略図である。ＦＩＦＯ１２０２は、４つのデータラッチ１３０１〜１３０４と、入力シーケンサ１３１０と、出力シーケンサ１３２０とを含んでいる。Ｄａｔａ＿Ｉｎ信号がリード線１３０６上のインバータ１３０５を介して、データラッチ１３０１〜１３０４に加えられる。データラッチ１３０１〜１３０４は、トランジスタ１３０７ａ〜１３０７ｄと、インバータ１３０８ａ〜１３０８ｈと、トランジスタ１３０９ａ〜１３０９ｄとを有している。ラッチ１３０１〜１３０４内に格納されたデータ値は、続いて、３状態バッファ１３１１を介して出力リード線１３１２へと、Ｄａｔａ＿Ｏｕｔ信号として伝達される。３状態バッファ１３１１は、
【０１６１】
【外１７】
0003618531.tif 000019
【０１６２】
信号によってイネーブルされる。
【０１６３】
トランジスタ１３０７ａ〜１３０７ｄは、入力シーケンサ１３１０によって制御される。入力シーケンサ１３１０は、フリップフロップ１３１５と、ＡＮＤゲート１３１６ａ〜１３１６ｅと、インバータ１３１７とを含んでいる。入力選択バス１３１８は、ＡＮＤゲート１３１６ａ〜１３１６ｄの出力と、トランジスタ１３０７ａ〜１３０７ｄとをつないでいる。ＡＮＤゲート１３１６ａ〜１３１６ｄの出力は、それぞれ入力選択信号Ｉｎ＿Ｓｅｌ０〜Ｉｎ＿Ｓｅｌ３となっている。
【０１６４】
トランジスタ１３０９ａ〜１３０９ｄは、出力シーケンサ１３２０によって制御される。出力シーケンサ１３２０は、フリップフロップ１３２２と、ＡＮＤゲート１３２４ａ〜１３２４ｅと、インバータ１３２６とを含んでいる。出力選択バス１３２８は、ＡＮＤゲート１３２４ａ〜１３２４ｄの出力と、トランジスタ１３０９ａ〜１３０９ｄとをつないでいる。ＡＮＤゲート１３２４ａ〜１３２４ｄの出力は、それぞれ出力選択信号Ｏｕｔ＿Ｓｅｌ０〜Ｏｕｔ＿Ｓｅｌ３となっている。
【０１６５】
同期式動作のためには、ｍｏｄｅ＿ｓｅｌｅｃｔ信号が論理ハイにセットされる。
【０１６６】
【外１８】
0003618531.tif 000020
【０１６７】
信号が論理ハイになり、Ｄｃｋ信号が論理ローになると、入力シーケンサ１３１０がリセットされて、ラッチ１３０１が入力として選択される。
【０１６８】
【外１９】
0003618531.tif 000021
【０１６９】
信号が論理ローになると（即ち、読み取りコマンドが検出されると）、入力シーケンサ１３１０は、続いて、入力選択信号Ｉｎ＿Ｓｅｌ０〜Ｉｎ＿Ｓｅｌ３を入力選択バス１３１８上に生成する。入力選択信号Ｉｎ＿Ｓｅｌ０〜Ｉｎ＿Ｓｅｌ３は、更に、Ｄｃｋ信号の各状態変化に於いて、一度に一つ、それぞれトランジスタ１３０７ａ〜１３０７ｄをイネーブルする。これによって、Ｄａｔａ＿Ｉｎ信号内のデータ値は、連続したラッチ１３０１〜１３０４に格納される。
【０１７０】
Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号が論理ハイにされる前に、出力シーケンサ１３２０がリセットされて、ラッチ１３０１が出力として選択される。Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号が論理ハイにされると、出力シーケンサ１３２０は、続いて、出力選択信号Ｏｕｔ＿Ｓｅｌ０〜Ｏｕｔ＿Ｓｅｌ３を出力選択バス１３２８上に出力する。出力選択信号Ｏｕｔ＿Ｓｅｌ０〜Ｏｕｔ＿Ｓｅｌ３は、更に、Ｏｕｔ＿Ｃｌｋ信号の各状態変化に於いて、一度に一つ、それぞれトランジスタ１３０９ａ〜１３０９ｄをイネーブルする。
【０１７１】
ＦＩＦＯ１２０２が４つのラッチを有しているため、ＦＩＦＯ１２０２のラッチ１３０１〜１３０４に格納されたデータは、２クロックサイクルごとに上書きされる。従って、データは、リード線１３１２に出力される前に、ＦＩＦＯ１２０２内に２クロックサイクルより長く留まっていることはできない。Ｄｃｋ信号とＯｕｔ＿Ｃｌｋ信号とが同じ周波数を有しているため、ＦＩＦＯ１２０２内に格納されたデータは、Ｏｕｔ＿Ｃｌｋ信号がＤｃｋ信号に対して２クロックサイクル以上遅れなければ正しく出力される。
【０１７２】
メモリモジュール１１１〜１２８に関するアクセス待ち時間のために、Ｏｕｔ＿Ｃｌｋ信号は、実際には、Ｄｃｋ信号に対して進む。待ち時間制御回路１２０４は、アクセス待ち時間が終わるまで、ＦＩＦＯ１２０２の出力シーケンサ１３２０がイネーブルされるのを防止する。
【０１７３】
図１９は、待ち時間制御回路１２０４の一実施例の概略図である。待ち時間制御回路１２０４は、遅れ待ち行列（ｄｅｌａｙ  ｑｕｅｕｅ）を形成するように接続された８つのラッチ１４２０〜１４２８を含んでいる。図２０は、動的なラッチ１４２０の概略図である。ラッチ１４２０は、伝達ゲート１４４０〜１４４２と、インバータ１４４３〜１４４５とを含んでいる。ラッチ１４２１〜１４２８はラッチ１４２０と同一である。
【０１７４】
待ち時間レジスタ１４１０は、読み取りコマンドが検出された後から、データがＦＩＦＯ１２０２から出力される前までの経過時間を表すクロックエッジ数（即ち、半クロックサイクルの数）を制御する。待ち時間レジスタ１４１０は、Ｗｒｉｔｅ＿Ｅｎａｂｌｅ信号が論理ローにされたとき、ＤＡＳＳバス１０２を介して入力される３ビット入力によってプログラムすることができる。待ち時間レジスタ１４１０の内容は、３対８デコーダ１４１２に出力される。
【０１７５】
【外２０】
0003618531.tif 000022
【０１７６】
信号が論理ハイになると、動的ラッチ１４２０〜１４２８の各々は、そのＤ入力から切り離され、３対８デコーダ１４１２の出力がラッチ１４２１〜１４２８にローディングされる。ラッチ１４２０には０がローディングされるが、それはそのＰＤ入力がグランドと結合しているからである。
【０１７７】
【外２１】
0003618531.tif 000023
【０１７８】
信号が論理ローにされると、ラッチ１４２０〜１４２８は３対８デコーダ１４１２から切り離され、遅れ待ち行列を形成する。選択された遅れが偶数個の半サイクルクロック（即ち、Ｑ０＝０）である場合、ラッチ１４２１のＱ出力が、伝達ゲート１４３１を通るように経路をたどってＡｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号を出力する。選択された遅れが奇数個の半サイクルクロック（即ち、Ｑ０＝１）の場合、ラッチ１４２０のＱ出力が、伝達ゲート１４３０を通るように経路をたどってＡｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号を出力する。所望の奇数個の半クロックサイクルの遅れが適切に実現されるようにラッチ１４２０が提供されている。
【０１７９】
例えば、半クロックサイクル一つ分の遅れが必要とされる場合、ラッチ１４２０とラッチ１４２２〜１４２８には０がローディングされ、ラッチ１４２１に１がローディングされる。Ｑ０の値は１となり、それによって伝達ゲート１４３０が閉じる。Ｒｅａｄ＿Ｅｎａｂｌｅ信号が論理ハイになると、待ち時間行列が形成される。この待ち時間行列は、ＮＡＮＤゲート１４５０の出力によってクロック信号を与えられる。ＮＡＮＤゲート１４５０は、Ｒｅａｄ＿Ｅｎａｂｌｅ信号と、Ｏｕｔ＿Ｃｌｋ信号と、
【０１８０】
【外２２】
0003618531.tif 000024
【０１８１】
信号とを受信する。この
【０１８２】
【外２３】
0003618531.tif 000025
【０１８３】
信号は、伝達ゲート１４３０の出力をインバータ１４５１を通して伝達することによって生成される。
【０１８４】
Ｒｅａｄ＿Ｅｎａｂｌｅ信号と
【０１８５】
【外２４】
0003618531.tif 000026
【０１８６】
信号とが論理ハイであるため、Ｏｕｔ＿Ｃｌｋ信号がＮＡＮＤゲート１４５１の出力を決定する。Ｏｕｔ＿Ｃｌｋ信号は最初論理ハイであるため、リード線１４５４上のＮＡＮＤゲート１４５０の出力は最初論理ローである。ＮＡＮＤゲート１４５０の出力は、インバータ１４５２を介してリード線１４５３にも伝達される。その結果、ラッチ１４２０の伝達ゲート１４４０（図２０）は最初開である。
【０１８７】
次の半クロックサイクルの間、Ｏｕｔ＿Ｃｌｋ信号は、論理ローに状態変化する。それによってリード線１４５４上の信号は論理ハイとなり、リード線１４５３上の信号は論理ローとなる。その結果、ラッチ１４２０の伝達ゲート１４４０（図２０）は閉じ、ラッチ１４２１内に格納されたデータ値（即ち１）は、ラッチ１４２０のインバータ１４４３及び１４４４を介して伝達される。この値“１”は、伝達ゲート１４３０を介して伝達され、Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号を論理ハイとする（
【０１８８】
【外２５】
0003618531.tif 000027
【０１８９】
信号は論理ローとなる）。Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号が論理ハイになると、ＦＩＦＯ１２０２の出力ステージがイネーブルされる。
【０１９０】
【外２６】
0003618531.tif 000028
【０１９１】
信号が論理ローとなることによって、ＮＡＮＤゲート１４５０の出力が論理ハイになり、それによってラッチ１４２０〜１４２８のクロックが中断される。その結果、Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号は、読み込みトランザクションが終了するまで（即ち、
【０１９２】
【外２７】
0003618531.tif 000029
【０１９３】
信号が論理ハイになるまで）、論理ハイであり続ける。
【０１９４】
図１９及び図２０に図示された待ち時間制御回路１２０４は、偶数個のクロックサイクル遅れに対しても同様に動作する。
【０１９５】
再同期化回路１２００は、待ち時間レジスタ１４１０内にプログラムされた半サイクルクロックの数が、アクセス待ち時間よりも大きく、アクセス待ち時間に４半クロックサイクル（即ち、２クロックサイクル）を加えた時間よりも小さい場合は、正常に動作する。
【０１９６】
図２１は、同期式動作中の様々なデータ及び制御信号のタイミングを図示した波形ダイアグラムであり、待ち時間レジスタ１４１０は、半サイクル遅れ４つ分（４半サイクル遅れ）にセットされている。読み取りコマンドが、ポイント１５０１に於いてＳｃｋ信号の立ち上がりエッジに於いて検出されている。若干の遅れの後、
【０１９７】
【外２８】
0003618531.tif 000030
【０１９８】
信号が論理ローになっている。アクセス待ち時間が終了すると、Ｄａｔａ＿Ｉｎ信号のデータ値Ｄ０がＦＩＦＯ１２０２内に書き込まれる。この例では、アクセス待ち時間はＳｃｋクロック信号の１周期よりも短い。
【０１９９】
Ｄｃｋ信号を受信すると、入力シーケンサ１３１０（図１８）は、続いて、入力選択信号Ｉｎ＿Ｓｅｌ０〜Ｉｎ＿Ｓｅｌ３を生成する。入力選択信号Ｉｎ＿Ｓｅｌ０は最初論理ハイであり、従ってトランジスタ１３０７ａはオン状態であり、データ値Ｄ０をラッチ１３０１内に書き込むことができるようになっている。Ｄｃｋ信号が論理ローに変化すると、直後に、入力選択信号Ｉｎ＿Ｓｅｌ０が論理ローになると共に、入力選択信号Ｉｎ＿Ｓｅｌ１が論理ハイとなり、トランジスタ１３０７ｂをオン状態にして、データ値Ｄ１をラッチ１３０２に書き込むことができるようにする。このプロセスは、入力選択信号Ｉｎ＿Ｓｅｌ０〜Ｉｎ＿Ｓｅｌ３によって、トランジスタ１３０７ａ〜１３０７ｄをイネーブルして、ラッチ１３０１〜１３０４へデータを書き込みつつ、引き続き続けられる。
【０２００】
Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号が最初論理ローであるため、出力選択信号Ｏｕｔ＿Ｓｅｌ０は最初論理ハイである。その結果、トランジスタ１３０９ａは最初閉じており、データ値Ｄ０はアクセス待ち時間が終了すると、ＦＩＦＯ１２０２から出力リード線１３１２へと伝達される。データ値Ｄ０をラッチ１３０１を介して伝達することに伴う待ち時間を通る短いフローは図２１には図示されていない。
【０２０１】
待ち時間レジスタ１４１０が４半サイクル遅れでプログラムされているため、Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号は
【０２０２】
【外２９】
0003618531.tif 000031
【０２０３】
信号が論理ローになった後、Ｏｕｔ＿Ｃｌｋ信号の４つめの状態変化時に論理ハイへと状態変化する。Ａｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号の論理ハイへの変化のすぐ後に、出力選択信号Ｏｕｔ＿Ｓｅｌ０が論理ローへと変化し、出力状態信号Ｏｕｔ＿Ｓｅｌ１が論理ハイへと変化する。それによってトランジスタ１３０９ａが開となり、トランジスタ１３０９ｂが閉となる。その結果、データ値Ｄ１がラッチ１３０２から出力リード線１３１２へと読み出される。待ち時間レジスタ１４１０によって導入される遅れは、アクセス待ち時間と同様に再同期待ち時間にも渡っている。再同期待ち時間は、Ｓｃｋ信号とＤｃｋ信号との間の差である。図２１の波形ダイアグラムによれば、もし、待ち時間レジスタ１４１０が３半サイクル遅れとしてプログラムされていたなら、データ値Ｄ１をポイント１５０２に於いて読み出すこともできたであろう。しかし、待ち時間レジスタ１４１０を４半クロックサイクル遅れでプログラムすることによって、ユーザーは半サイクルの待ち時間を付け足すことができる。
【０２０４】
このプロセスは、出力選択信号Ｏｕｔ＿Ｓｅｌ０〜Ｏｕｔ＿Ｓｅｌ３によってトランジスタ１３０９ａ〜１３０９ｄをイネーブルし、ラッチ１３０１〜１３０４からデータ値を読み出しつつ引き続き続けられる。
【０２０５】
図２２は、非同期式動作に於ける、再同期化回路１２００のタイミングを説明するための波形ダイアグラムである。非同期式動作の間、フリップフロップ１２０７（図１７）のｍｏｄｅ＿ｓｅｌｅｃｔ信号は論理ローにセットされており、ＰＬＬ回路１２０６をディスエーブルしている。その結果、Ｏｕｔ＿Ｃｌｋ信号とＡｄｖａｎｃｅ＿Ｅｎａｂｌｅ信号もディスエーブルされる。その結果、ＡＮＤゲート１３２４ｅ（図１８）の出力が論理ローにセットされ、フリップフロップ１３２２は、その出力
【０２０６】
【外３０】
0003618531.tif 000032
【０２０７】
が論理ハイにセットされた状態でディスエーブルされる。従って、ＡＮＤゲート１３２４ａの入力は両方とも論理ハイとなって、Ｏｕｔ＿Ｓｅｌ０信号が論理ハイに変化し、ラッチ１３０１のトランジスタ１３０９ａをオン状態にする。
【０２０８】
入力側では、論理ローのｍｏｄｅ＿ｓｅｌｅｃｔ信号がインバータ１３５０を介してＮＯＲゲート１３５１へ伝達される。その結果、フリップフロップ１３１５はディスエーブルされ、その出力
【０２０９】
【外３１】
0003618531.tif 000033
【０２１０】
は論理ハイにセットされる。論理ローのｍｏｄｅ＿ｓｅｌｅｃｔ信号は、また、ＡＮＤゲート１３１６ｅにも入力され、それによってＡＮＤゲート１３１６ｅから論理ロー信号が出力される。その結果、ＡＮＤゲート１３１６ａへの入力はどちらも論理ハイとなる。その結果、Ｉｎ＿Ｓｅｌ０信号は論理ハイへと状態変化し、ラッチ１３０１のトランジスタ１３０７ａはオン状態になる。その結果、Ｄａｔａ＿Ｉｎ信号のデータ値Ｄ０が、ラッチ１３０１を介して伝達される。小さなフロースルー遅れ（ｆｌｏｗ  ｔｈｒｏｕｇｈ  ｄｅｌａｙ）１６０２は、ラッチ１３０１を介してのデータ値の伝達に関わっている。Ｏｕｔ＿Ｓｅｌ０とＩｎ＿Ｓｅｌ０のどちらの信号も、モード選択フリップフロップ１２０７からのｍｏｄｅ＿ｓｅｌｅｃｔ信号が論理ローである限り、論理ハイに留まる。
【０２１１】
複数モジュール及び複数アレイ動作
本発明による回路モジュールアーキテクチャは、複数アレイ動作によく適している。ブロードキャスト書き込みやインタリーブバースト（ｉｎｔｅｒｌｅａｖｅｄ  ｂｕｒｓｔ）のような動作によって、異なるモジュール内の異なるメモリアレイからのデータを同時にアクセスすることが可能となり、それによってメモリデバイスの性能が向上している。
【０２１２】
図２３は、ブロードキャスト書き込み動作を実行するのに用いられるメモリデバイス１７００のブロック図である。メモリデバイス１７００は、ＤＡＳＳバス１７０２を介してマスタＩ／Ｏデバイス１７０４に並列に接続されたメモリモジュール１７１１〜１７２８を含んでいる。メモリモジュール１７１１〜１７２８の各々は、２つのメモリアレイを有している。メモリモジュール１７１１〜１７２８の各々のアクセス制御レジスタ内には２つのメモリアレイ選択ビットが備えられている。これらの２つのビットは、ＤＡＳＳバス１７０２上に受信される“ブロードキャスト書き込み選択”コマンドによってセットまたはリセットされる。いったんアレイ選択ビットがセットされると、その後の書き込み動作に関わる関連するアレイが選択される。選択されたアレイは、そのアレイが関連するアレイ選択ビットがリセットされるまで選択され続ける。更に、一つのモジュール内の一方または両方のアレイを選択されることができる。書き込み動作では、選択されたアレイの全てに同時にデータストリーム（ｄａｔａ  ｓｔｒｅａｍ）を書き込む。
【０２１３】
図２３に図示されている実施例では、モジュール１７１１内のメモリアレイ１７３２と、モジュール１７２８内のメモリアレイ１７３０及び１７３１とが、これらのモジュール内のメモリアレイ選択ビットをプログラムすることによって選択されている。他の実施例では、他のメモリアレイと／またはメモリモジュールを選択しても良い。所望のアレイが選択された後、書き込みデータストリームが、Ｉ／Ｏデバイス１７０４からＤＡＳＳバス１７０２へとブロードキャスト伝送され、このデータはメモリアレイ１７３０〜１７３２に同時に書き込まれる。
【０２１４】
グラフィック応用に於いては、メモリデバイス１７００がディスプレイバッファとして用いられる場合、ブロードキャスト書き込み動作を用いることによって複数のディスプレイスクリーンメモリ位置に同時に固定パターンを書き込むことができ、それによってグラフィック更新帯域幅（ｇｒａｐｈｉｃｓ  ｕｐｄａｔｅ  ｂａｎｄｗｉｄｔｈ）を大幅に増加している。
【０２１５】
他の複数アレイ動作として、インタリーブバースト動作がある。この動作では、書き込みコマンドまたは読み取りコマンドによって、時間多重化されたデータバーストによって、異なるアレイにデータを書き込んだり、あるいは、異なるアレイからデータを読み出したりすることができる。単一のアレイに、または単一のアレイからデータをバースト伝送するのではなく、時間多重化法では、複数のアレイが伝送に参加する。各参加アレイは、特定の時間の間に（即ち、１以上のクロックサイクルの間に）、一固まりのデータ（即ち、１以上のワード）を、連続的にラッチする（または送出する）。
【０２１６】
図２４は、インタリーブバースト動作に於ける書き込み（または読み取り）動作のアドレス指定方法を説明するための波形ダイアグラムである。各メモリモジュールのアクセス制御レジスタ内のインタリーブイネーブルビットが、インタリーブバースト動作が実行されるかどうかを決定する。各メモリモジュールのインタリーブイネーブルビットは、ＤＡＳＳバス上で伝送されるコマンドによってプログラムされる。一実施例では、各アクセス制御レジスタ内の別の３つのビットが、インタリーブ動作に参加するアレイの数を決定する。このような実施例では、８個までのメモリアレイがインタリーブ動作に参加することができる。他の実施例では、別の数のメモリアレイがインタリーブ動作に参加するようにすることができる。
【０２１７】
図２４の波形は、メモリデバイス構造１７００（図２３）に関しており、このようなインタリーブシーケンスの一つを例示している。このインタリーブシーケンスでは、モジュール１７２７及び１７２８内のインタリーブイネーブルビットがセットされる。更に、モジュール１７２７及び１７２８内のアクセス制御レジスタが、４つのメモリアレイがインタリーブアクセスに参加することを示すようにプログラムされる。次に、読み取りコマンドが、列アドレス７、モジュール１７２７、アレイ１７４１（Ｄ７７１）にアドレス指定される。続いて、データワードが、以下のアドレスから読み出される。即ち、
列アドレス７、モジュール１７２７、アレイ１７４１（Ｄ７７１）；
列アドレス７、モジュール１７２８、アレイ１７３０（Ｄ７８０）；
列アドレス７、モジュール１７２８、アレイ１７３１（Ｄ７８１）；
列アドレス７、モジュール１７２７、アレイ１７４０（Ｄ７７０）；
列アドレス８、モジュール１７２７、アレイ１７４１（Ｄ８７１）から読み出される。このシーケンスはインタリーブバースト読み取りコマンドが終了するまで続けられる。各参加アレイは、ラウンドロビン（ｒｏｕｎｄ  ｒｏｂｉｎ）式に代わるがわるデータワードを送出する。
【０２１８】
インタリーブバースト動作に対して選択された各メモリアレイでは、ＲＡＳ動作及びプリチャージ動作が同時に実行される。選択されたメモリアレイのいずれかにアドレス指定されたＲＡＳ及びプリチャージ動作は、選択されたアレイの全てに対してＲＡＳまたはプリチャージ動作を引き起こす。これによって、複数のアレイが複数のＲＡＳまたはプリチャージ動作を実行するように複数のコマンドを発行する必要がなくなる。その結果、コマンドのオーバーヘッドが節約される。
【０２１９】
グラフィック応用では、隣接するアレイのメモリセルの行は、ディスプレイスクリーン内の連続した水平ラインにマッピングされており（例えば、Ｋｕｄｏらに付与された米国特許第４，９８０，７６５号明細書を参照）、インタリーブバースト動作によって、連続するライン内の画素が、一回のデータバーストでアクセスされるようにすることができる。他の実施例では、インタリーブバースト動作が、水平方向と垂直方向の両方で連続する画素に高速にアクセスする必要がある、ライン描画や多角形描画のようなグラフィック動作を実行するのに用いられている。
【０２２０】
上述したような単一コマンドによる複数データ動作に加えて、本発明によるメモリデバイスは、複数のコマンドを、次から次に、異なるアレイに向けて出力する。例えば、第１メモリアレイへのＲＡＳコマンドの後に、そのコマンドが終了するのを待たずに第２メモリアレイへの別のＲＡＳコマンドが続き、その後に、第３メモリアレイへのプリチャージコマンドが続き、更にその後に、第４メモリアレイへのＣＡＳ読み取りコマンドが続くというようにすることができる。それによって、複数のメモリアレイが複数の動作を同時に実行することができ、メモリデバイスの性能を向上させることができる。
【０２２１】
小スイング幅Ｉ／Ｏバス構造及びプロトコル
ある実施例では、Ｉ／Ｏバス１０６（図１）は、複数のメモリデバイス（例えばメモリデバイス１００）を結合して、大きなメモリ容量と／またはより多くの機能を持ったメモリシステムを形成している。１以上のマスタデバイスをシステムの動作を制御するためにＩ／Ｏバス１０６に接続してもよい。マスタデバイスは、あるバストランザクションに於いてはバスマスタになり、別のバストランザクションに於いてはスレーブとなることができる。
【０２２２】
図２５は、本発明の一実施例に従ったメモリシステム１９００のブロック図である。メモリシステム１９００は、メモリコントローラ１９２０をマスタデバイスとして用い、複数のＤＡＳＳメモリデバイス１９０１〜１９０８をスレーブデバイスとして用いている。メモリコントローラ１９２０のポートの一つは、ＣＰＵバス１９３１を介してＣＰＵにつながっている。メモリコントローラ１９２０の別のポートは、Ｉ／Ｏバス１９３０を介して、メモリデバイス１９０１〜１９０８につながっている。別の実施例では、メモリコントローラ１９２０は、メモリデバイス１９０１〜１９０８の中の一つのＩ／Ｏモジュール内に配置されている。
【０２２３】
高速の小ＣＭＯＳスイング幅（Ｒｅｄｕｃｅｄ  ＣＭＯＳ  Ｓｗｉｎｇ：ＲＣＳ）を信号伝送に用いたＩ／Ｏバス１９３０は、多重化されたアドレス及びデータ信号用の双方向ラインＡＤＱ［１５：０］と、コマンド信号用の４本のラインＣ［３：０］と、書き込みマスク信号用の２本のラインＤＭ［１：０］と、同期クロック信号Ｍｃｋ用の１本のラインと、クロックイネーブル信号Ｃｋｅ用の１本のラインとを含んでいる。Ｃｋｅ及びＭｃｋ信号は、Ｉ／Ｏバス１９３０に特有であるが、残りのＩ／Ｏバス１９３０上の信号は、メモリメジュール１９０１〜１９０８の各々の中に存在するＤＡＳＳバス上の信号の延長である。従って、メモリデバイス１９０１〜１９０８内のＩ／Ｏモジュールは（メモリデバイス１００内のＩ／Ｏモジュール１０４と同様に）、メモリデバイス１９０１〜１９０８のＤＡＳＳバスとＩ／Ｏバス１９３０との間のインタフェースブリッジとなっている。しかし、情報伝送のタイミングとしてソース同期化を用いているＤＡＳＳバスと異なり、Ｉ／Ｏバス１９３０は、単一のクロック信号（Ｍｃｋ）に完全に同期している。Ｉ／Ｏバス１９３０内で用いられているプロトコルは、ＤＡＳＳバス内で用いられているプロトコルの超集合（ｓｕｐｅｒ−ｓｅｔ）である。しかし、ＤＡＳＳバス内で用いられているプロトコルは、Ｃｋｅ信号を含むプロトコルを含んでいない。Ｃｋｅ信号は、メモリデバイス１９０１〜１９０８内のクロックを止めたり動かしたりするのに用いられる。これによって、速度の遅いデバイスもシステムクロック（Ｍｃｋ）の周波数を下げることなくＩ／Ｏバス１９３０に接続することができる。
【０２２４】
各メモリデバイス１９０１〜１９０８の専用チップ選択（ｃｈｉｐ  ｓｅｌｅｃｔ：ＣＳ）ラインは、システムの初期化のために含まれている。電源投入時またはシステムリセットの後、メモリデバイス１９０１〜１９０８内のメモリモジュールのコミュニケーションアドレスは、リセットされて、それらのデフォルト値になる。その結果、異なるメモリデバイス１９０１〜１９０８内のメモリモジュールは、同じコミュニケーションアドレスを持っても良い。ＣＳラインは、メモリデバイス１９０１〜１９０８内のメモリモジュールをプログラムするのに用いられ、メモリモジュールがメモリシステム１９００全体の中で異なったコミュニケーションアドレスを持つようにする。
【０２２５】
複数デバイスメモリシステム内のアドレスマッピング
Ｉ／Ｏバス１９３０に接続された全てのデバイスは、固有のコミュニケーションアドレスを割り当てられる。これは、ハードウェア論理によって、或いはデバイスのＩＤ割り当てメカニズムにプログラマビリティ（ｐｒｏｇｒａｍｍａｂｉｌｉｔｙ）を組み込むことによって達成される。ある実施例では、一つのメモリデバイスが、一つもしくは複数のコミュニケーションアドレスを有してもよい。メモリデバイス１９０１〜１９０８内の各メモリモジュールは、一つのコミュニケーションアドレスを有する。メモリ動作のため、コミュニケーションアドレスは、メモリアドレス内にフィールドとして含まれている。各メモリモジュールは、連続したメモリアドレス空間に広がっている。しかしながら、各メモリデバイスによって占められているアドレス空間は、各モジュールのコミュニケーションアドレスを個別にプログラムすることができるため、連続している必要はない。メモリデバイス１９０１〜１９０８内のＤＡＳＳバスとＩ／Ｏバス１９３０の間で、同じコマンド及びプロトコルのセットを保つことによって、メモリデバイス１９０１〜１９０８内の全てのモジュールのＩＤレジスタをＩ／Ｏバス１９３０を介してプログラム可能にすることができる。その結果、メモリシステム１９００内の全てのモジュールは、コミュニケーションアドレスを動的に割り当てられて、メモリアドレス空間内の異なる領域に広がることができる。
【０２２６】
ある応用例では、モジュールのコミュニケーションアドレスは、メモリシステム１９００が連続したメモリ空間を有するように割り当てられる。別の応用例では、本発明の動的アドレスマッピング機能が、仮想メモリアドレス上のコンピュータシステムの動作に於いて用いられる。固定アドレス空間にマッピングする従来のメモリデバイスでは、メモリアクセスが実行できるようになる前に、仮想アドレスが物理アドレスに変換されなければならなかった。このよう変換が必要だと、システムの複雑さやメモリアクセスの待ち時間が増加する。しかしながら、本発明のメモリシステムを用いることによって、メモリモジュールのコミュニケーションアドレスが仮想アドレスを有するようにプログラムすることができる。こうして、メモリアクセスをアドレス変換を行うことなく実行することができる。このようなメモリシステムを取り扱うことは簡単である。というのは、メモリページを割り当てたり、あるいは割り当てをはずしたりすることは、１または複数のメモリモジュールのコミュニケーションアドレスを変化させるということだからである。本発明のメモリシステムは仮想アドレスと共に動作することが可能であるため、“仮想メインメモリ（Ｖｉｒｔｕａｌ  Ｍａｉｎ  Ｍｅｍｏｒｙ）”と呼ぶことができる。
【０２２７】
フォルトトレラントシステム（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｓｙｓｔｅｍ）
メモリシステム１９００（図２５）は、欠陥に対して高いトレランス（許容性）を有する。３つのレベルの冗長性によって、メモリシステム１９００は、高いフォルトトレランスを得ている。システムレベルでは、各メモリデバイス１９０１〜１９３０は、ディスエーブルレジスタを組み込んでおり、これらのレジスタの設定時には、メモリデバイスのＩ／Ｏバス１９３０上のメモリトランザクションへの参加が禁じられる。バス上の欠陥のあるデバイスを修復するために、Ｉ／Ｏバス１９３０上に冗長なデバイスを容易に組み込むことができる。
【０２２８】
各メモリデバイス１９０１〜１９０８内に於いては、冗長なメモリモジュールが各メモリデバイスに組み込まれており、更に、各メモリモジュールはＩ／Ｏバス１９３０上のコマンドを通じてプログラム可能なＩＤレジスタを含んでいる。この冗長メカニズムによって、そのメモリデバイス内部という限られた範囲でも、Ｉ／Ｏバス１９３０に接続されている他のメモリデバイス内というより広い範囲でも、どちらでも、欠陥があるモジュールの修復を効率的にすることができる。即ち、どのメモリデバイス１９０１〜１９０８のどの冗長メモリモジュールも、どのメモリデバイス１９０１〜１９０８のどの欠陥メモリモジュールの代わりになり得る。メモリシステム１９００により多くのメモリデバイスが加えられるにつれ、正規のモジュールに対する冗長モジュールの割合は維持されるが、クラスタ欠陥を修復する能力は増加する。例えば、４つのメモリデバイスを有するメモリシステムでは、各メモリデバイスが一つの冗長モジュールを持っているとすると、４つ以下のモジュールを含むクラスタ故障は全く性能を落とすことなく修復される。クラスタ故障は、集積回路システムの故障の主要な原因であるため、このことは有益である。従来の冗長化法の冗長なメモリモジュールは、同じメモリデバイス内（即ち、同じチップ上）のメモリモジュールを置き換えるためにしか用いることが出来なかった。
【０２２９】
各メモリアレイ内では、図７及び図８を用いて既に述べたように、個々のメモリアレイ内に、欠陥を修復するために用いられる冗長な行と列とが使用されている。
【０２３０】
Ｉ／Ｏバスドライバ、レシーバ、及び終端回路
電気的に、Ｉ／Ｏバス１９３０上の信号は、供給電圧の半分を中心として約２Ｖのスイング幅を有している。実際の信号のスイング幅は、動作周波数を最適化し、消費電力を最小化するように調節される。反射や揺動などの伝達ライン効果を抑制するために、Ｉ／Ｏバス１９３０上で、２つのタイプの終端回路が用いられる。バストランシーバ及び終端回路の構造の詳細について以下に述べる。
【０２３１】
Ｉ／Ｏバス１９３０を高いクロック周波数で動作させるために、小スイング振信号伝送が用いられる。ノイズに対する耐性とデータレートとを最大化するために、またバストランシーバ回路の複雑さを最小化するために、供給電圧（Ｖｄｄ）の半分に等しい論理しきい値が用いられる。この論理しきい値は、残りのチップ上のＣＭＯＳ論理の論理しきい値と整合している。その結果、論理伝送回路が排除された。能動クランプまたは受動クランプが用いられて信号のスイング幅を制限している。
【０２３２】
図２６と図２７は、それぞれ能動クランプ２００２及び受動クランプ２０１１の概略図である。クランプ２００２及び２０１１は、Ｉ／Ｏバス１９３０のバスライン２０３０上のスイング幅を制限する。ｐチャネルトランジスタ２００４とｎチャネルトランジスタ２００５は、等しい供給及び吸収能力を有するプッシュプルドライバ２００１を形成している。このバランスされたドライブ能力によって、バスライン２０３０の信号伝送は対称的になり、それによって信号の歪みが排除され、バスライン２０３０の動作帯域幅が最大化されている。プルアップ及びプルダウンのバランスがとれているということは、一つの状態変化の間、トランジスタ２００４及び２００５が飽和領域に於いて等しい時間を費やすため、供給ノイズに対する耐性も最大化された回路を生成することとなる。実際、適切に選択された場合、トランジスタ２００４と２００５は常に飽和領域に留まり、バスライン２０３０の供給（Ｖｄｄ）及びグランド（ＧＮＤ）ノイズに対する耐性を高めている。
【０２３３】
トランジスタ２００４と２００５のゲートは、それぞれ、ＮＡＮＤゲート２０３１とＮＯＲゲート２０３２の出力によって駆動される。論理ゲート２０３１及び２０３２は、図示されているように、Ｄａｔａ＿Ｉｎ信号と
【０２３４】
【外３２】
0003618531.tif 000034
【０２３５】
信号とを受信する。
【０２３６】
【外３３】
0003618531.tif 000035
【０２３７】
信号が、論理ハイになると、トランジスタ２００４と２００５とがオフ状態になり、それによってバスドライバを３状態化（ｔｒｉ−ｓｔａｔｉｎｇ）する。
【０２３８】
レシーバ２００３は、トランジスタ２００８と２００９とを含むＣＭＯＳインバータである。レシーバ２００３は、等しいプルアップ及びプルダウン能力を有する。レシーバ２００３の入力は、バスライン２０３０につながっており、レシーバ２００３の出力はＤａｔａ＿Ｏｕｔ信号となっている。
【０２３９】
能動クランプ回路２００２（図２６）は、ＣＭＯＳインバータ２０２０と、ソースフォロワとして結合されたクランプトランジスタ２００６及び２００７とを含んでいる。トランジスタ２００６及び２００７のサイズは、バスライン２０３０上の電圧スイング幅を制御する。一実施例では、トランジスタ２００６及び２００７のサイズは、それぞれトランジスタ２００５、２００４のサイズの２倍となっている。バスライン２０３０が、バスドライバ２００１によって論理ハイから論理ローへと駆動されたとき、バスライン２０３０上の電圧がＶｄｄ／２Ｖにまだ達していないときは、インバータ２０２０の出力は論理ローであり、トランジスタ２００７はオン状態、トランジスタ２００６はオフ状態である。バスライン２０３０上の電圧がＶｄｄ／２Ｖ以下に引き下げられると、インバータ２０２０の出力が論理ハイになり、トランジスタ２００７をオフ状態にし、トランジスタ２００６をオン状態にする。それによってバスライン２０３０に対して可能なシンク電流（ｓｉｎｋｉｎｇ  ｃｕｒｒｅｎｔ）を取り去る。バスライン２０３０上の電圧が続けて下がると、トランジスタ２００６がより強くオン状態となり、それによってより多くのシンク電流をバスライン２０３０から取り去る。バスライン２０３０上の電圧がグランドよりもおおよそ１．５ＶＴＰだけ高くなると、トランジスタ２００６を流れる電流は、トランジスタ２００５を流れる電流と等しくなり、バスライン２０３０上の電圧は定常状態になる。ここで、ＶＴＰは、トランジスタ２００７のターンオンしきい値電圧である（通常１Ｖ）。
【０２４０】
同様に、バスライン２０３０の論理ローから論理ハイへの状態変化は、トランジスタ２００６をオフ状態にすると共に、トランジスタ２００７をオン状態にし、それによって、バスライン２０３０上の電圧はクランプされて約１．５ＶＴＮだけＶｄｄよりも小さい値となる。ここでＶＴＮはトランジスタ２００６のターンオンしきい値電圧である（通常１Ｖ）。
【０２４１】
受動クランプ２０１１（図２７）は、抵抗ドライバである。等しい値の抵抗２０１６及び２０１７が、それぞれ、バスライン２０３０とグランドとの間、及び電圧Ｖｄｄとバスライン２０３０との間に接続されている。受動クランプ２０１１は、また、抵抗分圧器のテブナン（Ｔｈｅｖｅｎｉｎ）等価回路であってもよい。例えば、抵抗２０１６の半分の抵抗値を持つ抵抗が、Ｖｄｄの半分に等しい供給電圧に接続されていてもよい。抵抗クランプ２０１１は、ドライバトランジスタ２００４及び２００５の有限な出力抵抗値を利用している。バスライン２０３０が論理ローから論理ハイへ駆動されると、トランジスタ２００５はオフ状態となり、トランジスタ２００４はオン状態となる。最初、トランジスタ２００４と抵抗２０１７は、レジスタ２０１６が吸収することができるのより、大きな電流を供給し、それによって、バスライン２０３０上の電圧を論理ハイへ引き上げる。バスライン２０３０上の電圧が上昇し続けると、トランジスタ２０１４とレジスタ２０１７の電流供給能力は低下し、レジスタ２０１６の電流吸収能力は上昇する。これは、総供給電流がシンク電流と等しくなるまで続く。その後、バスライン２０３０上の電圧は、Ｄａｔａ＿Ｉｎ信号が変化するまで一定値を保つ。同様に、バスライン２０３０が論理ハイから論理ローへ駆動された場合は、抵抗２０１７の供給電流がトランジスタ２００５と抵抗２０１６の総シンク電流に等しくなった点で、バスライン２０３０上の電圧はクランプされる。電圧のスイング幅は、ドライバトランジスタ２００５及び２００４のサイズ、または抵抗２０１６及び２０１７の値を変化させることによって調整することができる。
【０２４２】
能動クランプ２００２または受動クランプ２０１１を用いる場合、一つのバスラインにつき一つのクランプ回路しか必要とされない。クランプ回路は、マスタデバイス内に組み込まれてもよく、複数のスレーブデバイスの中の一つに組み込まれてもよく、あるいは個々のデバイス内に組み込まれてもよい。また、どちらのクランプ回路に於いても、バスライン２０３０は、比較的小さな値の抵抗によってクランプまたは終端される。能動クランプ２００２では、トランジスタ２００６及び２００７は比較的小さな出力抵抗値を有しているが、それは、それらがソースフォロワとして接続されているからである。受動クランプ２０１１では、抵抗分圧器のテブナン等価回路によって、終端が容易になっている。どちらの終端回路も、信号対ノイズ比を悪化させ、バスライン２０３０上の動作周波数を限定する反射や振動を抑制する。
【０２４３】
上述の実施例は、例示を意図したものであって限定的なものではない。当業者にとっては、本開示内容の範囲内で更に変形変更をすることができることは明らかであり、それらは添付の特許請求の範囲内に入るべきものである。
【図面の簡単な説明】
【図１】図１は、ＤＡＳＳバスの周りに構成された回路モジュールアーキテクチャによるメモリデバイスのブロック図である。
【図２】図２は非同期式動作に対するタイミング信号波形を説明するための波形ダイアグラムである。
【図３】図３は同期式動作に対するタイミング信号波形を説明するための波形ダイアグラムである。
【図４】図４はＤＡＳＳバストランシーバの概略図である。
【図５】図５は、図４に示されたバストランシーバの一つを詳細に説明するための概略図である。
【図６】図６は、本発明によるメモリモジュールのブロック図である。
【図７】図７は、冗長行及び列とを含むメモリアレイを示すブロック図である。
【図８】図８は、システム内組み込みテスト法と、冗長行及び列を用いた修復法とを用いた回路の概略図である。
【図９】図９は、従来のＤＲＡＭデバイスの列エリアにおけるデータ経路を説明するためのブロック図である。
【図１０】図１０は、従来の４ＭｂｉｔＤＲＡＭデバイスに於けるデータラインと列アドレスのルーティングを説明するためのブロック図である。
【図１１】図１１は、本発明の一実施例による列回路を説明するためのブロック図である。
【図１２】図１２は、本発明の一実施例による列回路を説明するための概略図である。
【図１３】図１３は、従来のアドレスシーケンス法を示すブロック図である。
【図１４】図１４は、本発明によるアドレスシーケンス法のブロック図である。
【図１５】図１５は、図１４のパレルシフタの一実施例を示すブロック図である。
【図１６】図１６は、図１５のパレルシフタのフリップフロップの一つを示す概略図である。
【図１７】図１７は、本発明による再同期化回路のブロック図である。
【図１８】図１８は、図１２に示されたＦＩＦＯの一実施例を示す概略図である。
【図１９】図１９は、図１７の待ち時間カウンタの一実施例を示す概略図である。
【図２０】図２０は、図１９の待ち時間カウンタで用いられているラッチの概略図である。
【図２１】図２１は、デバイスが同期式動作をしているときの、図１７の再同期化回路のタイミング信号波形を説明するための波形ダイアグラムである。
【図２２】図２２は、デバイスが非同期式動作をしているときの、図１７の再同期化回路のタイミング信号波形を説明するための波形ダイアグラムである。
【図２３】図２３は、ブロードキャスト書き込み動作用に構成されたメモリデバイスのブロック図である。
【図２４】図２４は、インタリーブアクセス動作のシーケンスを説明するための波形ダイアグラムである。
【図２５】図２５は、Ｉ／Ｏバスを介して並列に接続された複数の回路モジュールメモリデバイスとメモリコントローラとを含むメモリシステムのブロック図である。
【図２６】図２６は、能動終端回路を備えた、小ＣＭＯＳスイング幅のバストランシーバの概略図である。
【図２７】図２７は、抵抗終端された小ＣＭＯＳスイング幅のバストランシーバの概略図である。
【符号の説明】
１００  メモリデバイス
１０２  ＤＡＳＳバス
１０４  Ｉ／Ｏモジュール
１０６  Ｉ／Ｏバス
１１１〜１２８  メモリモジュール
３０２  バストランシーバ
３０４  バスドライバ
３０６  バスレシーバ
３０８  バスライン
３１０  バストランシーバ
３１２  バスレシーバ
３１４  バスドライバ
３１６  クランプ回路
３１８  インバータ
３２０  リード線
３２１  インバータ
４０２ａ、４０２ｂ  メモリアレイ
４０４ａ、４０４ｂ  ワードラインドライバ及びデコーダ
４０６ａ、４０６ｂ  列デコーダ
４０８ａ、４０８ｂ  センス増幅器回路
４１０ａ、４１０ｂ  列選択及びデータ増幅器回路
４１２  ＤＡＳＳバスインタフェース
４１４  ＩＤレジスタ
４１６  アクセス制御レジスタ
４２０  モジュールディスエーブルビット
５００  メモリモジュール
５０３  アクセス制御レジスタ
５０５、５０６、５１５、５１６  冗長メモリサブアレイ
５０７、５１７  正規のメモリアレイ
５０８、５１８  メモリアレイ
５１０、５１１  Ｄ型フリップフロップ
５２０  バスインタフェース
５２１  ＩＤレジスタ
５３０  書き込みイネーブルリード線
５３１  ＮＯＲゲート
５３２〜５３４  リード線
５４０、５４１  修復イネーブルビット
５５０、５６０  修復行アドレスレジスタ
５５１、５６１  修復列アドレスレジスタ
５６２、５６３  修復イネーブルビット
５６４ａ  アドレス比較器
５６４ｂ  アドレス比較器
５６５  行アドレスリード線
５６６  列アドレスリード線
５６７、５６８  ＡＮＤゲート
６０１  メモリセルアレイ
６０２  増幅器回路
６０３  列切り替え回路
６０５  列選択バス
７０１  列アドレスバス
７０２ａ〜７０２ｇ  メモリアレイ
７０３〜７０６  データライン
８０１  メモリセルアレイ
８０２  センス増幅器回路
８０３  ビットライン対
８０４  ツリーデコーダ回路
８０５  データ増幅器回路
８０６  データライン
９００  データ増幅器対
９０１、９１１  ツリーデコーダ
９０２、９１２  データ増幅器
９０３、９１３  書き込みバッファ
９０５  ３状態バッファ
９０６  伝達ゲート
９０７  マルチプレクサ
９１４  読み取りデータラッチ
９１６  伝達ゲート
９１８  クロック発生回路
９２０〜９２３  ｐチャネルトランジスタ
９２５〜９２８  リード線
９３０  ＤＱデータライン
９５０〜９５３  トランジスタ
９５４〜９５７  ＮＯＲゲート
９６１、９６２  ｎチャネルトランジスタ
９７０〜９７７  トランジスタ
９９１〜９９４  ノード
９９５〜９９７  伝達ゲート
１０００  従来のアドレスシーケンサ
１００１  Ｎビットバイナリカウンタ
１００２  デコーダ
１００３  バッファ
１０１１  アドレスバス
１１００  アドレスシーケンサ
１１０１  ３対８デコーダ
１１０２  バレルシフタ
１１０３  列選択バッファ
１１０５  バス
１１２０〜１１２７  Ｄ型フリップフロップ
１１５０、１１７０  インバータ
１１５１、１１７１  インバータ
１１６０〜１１６２  伝達ゲート
１２００  再同期化回路
１２０２  ＦＩＦＯメモリ
１２０４  待ち時間制御回路
１２０６  フェイズロックループ（ＰＬＬ）回路
１２０７  モード選択フリップフロップ
１３０１〜１３０４  データラッチ
１３０５  インバータ
１３０６  リード線
１３０７ａ〜１３０７ｄ  トランジスタ
１３０８ａ〜１３０８ｈ  インバータ
１３０９ａ〜１３０９ｄ  トランジスタ
１３１０  入力シーケンサ
１３１１  ３状態バッファ
１３１２  リード線
１３１５  フリップフロップ
１３１６ａ〜１３１６ｅ  ＡＮＤゲート
１３１７  インバータ
１３１８  入力選択バス
１３２０  出力シーケンサ
１３２２  フリップフロップ
１３２４ａ〜１３２４ｅ  ＡＮＤゲート
１３２６  インバータ
１３２８  出力選択バス
１３５０  インバータ
１３５１  ＮＯＲゲート
１４１０  待ち時間レジスタ
１４１２  ３対８デコーダ
１４２０〜１４２８  ラッチ
１４３０、１４３１  伝達ゲート
１４４０〜１４４２  伝達ゲート
１４４３〜１４４５  インバータ
１４５０  ＮＡＮＤゲート
１４５１、１４５２  インバータ
１４５３、１４５４  リード線
１５０１、１５０２  波形ダイアフラム上のポイント
１６０２  フロースルー遅れ
１７００  メモリデバイス
１７０２  ＤＡＳＳバス
１７０４  マスタＩ／Ｏデバイス
１７１１〜１７２８  メモリモジュール
１７３０〜１７３２  メモリアレイ
１７４０、１７４１  メモリアレイ
１９００  メモリシステム
１９０１〜１９０８  ＤＡＳＳメモリデバイス
１９２０  メモリコントローラ
１９３０  Ｉ／Ｏバス
１９３１  ＣＰＵバス
２００１  プッシュプルドライバ
２００２  能動クランプ
２００３  レシーバ
２００４  ｐチャネルトランジスタ
２００５  ｎチャネルトランジスタ
２００６〜２００９  トランジスタ
２０１１  受動クランプ
２０１６、２０１７  抵抗
２０２０  インバータ
２０３０  バスライン
２０３１  ＮＡＮＤゲート
２０３２  ＮＯＲゲート
Ｐ１〜Ｐ４  ｐチャネル電界効果トランジスタ
Ｐ１０、Ｐ１１  ＰＭＯＳトランジスタ
Ｎ１〜Ｎ４  ｎチャネル電界効果トランジスタ
Ｎ１０、Ｎ１１  ＮＭＯＳトランジスタ
Ｔ００、Ｔ０１、Ｔ１０、Ｔ１１  テストビット
【図１】
0003618531.tif 000036
【図２】
0003618531.tif 000037
【図３】
0003618531.tif 000038
【図４】
0003618531.tif 000039
【図５】
0003618531.tif 000040
【図６】
0003618531.tif 000041
【図７】
0003618531.tif 000042
【図８】
0003618531.tif 000043
【図９】
0003618531.tif 000044
【図１０】
0003618531.tif 000045
【図１１】
0003618531.tif 000046
【図１２】
0003618531.tif 000047
【図１３】
0003618531.tif 000048
【図１４】
0003618531.tif 000049
【図１５】
0003618531.tif 000050
【図１６】
0003618531.tif 000051
【図１７】
0003618531.tif 000052
【図１８】
0003618531.tif 000053
【図１９】
0003618531.tif 000054
【図２０】
0003618531.tif 000055
【図２１】
0003618531.tif 000056
【図２２】
0003618531.tif 000057
【図２３】
0003618531.tif 000058
【図２４】
0003618531.tif 000059
【図２５】
0003618531.tif 000060
【図２６】
0003618531.tif 000061
【図２７】
0003618531.tif 000062