(57)【特許請求の範囲】
【請求項１】
データを記憶するためのアドレス指定可能なメモリセルのアレイと、
前記メモリセルのアレイに接続されたデータラインと、
クロック信号を受信するためのクロック入力であって、前記クロック信号の第１の縁は、第１の読取りサイクルを開始して、前記アレイから前記データラインに出力データを供給するような前記クロック入力と、
データを記憶する手段を各々が有している複数の並列な枝路と、
前記クロック入力に接続され、前記クロック信号のサイクルで変化する複数の舵取りカウント状態と選択カウント状態とをつくるカウンタと、
前記データラインと前記複数の枝路との間に接続され、前記複数の舵取りカウント状態を受信し、前記複数の舵取りカウント状態に応答して前記出力データを前記データラインから前記複数の枝路中の選択された枝路に進める舵取り回路と、
前記複数の枝路と出力ノードとの間に接続され、前記複数の選択カウント状態を受信し、前記複数の選択カウント状態に応答して前記選択された枝路に記憶された出力データを出力として選択する選択回路とを備え、
前記舵取り回路は、前記クロック信号の前記第１の縁によってトリガされた第１の舵取りカウント状態に応答して、第１の出力データを前記複数の並列な枝路中の第１の枝路に進め、前記選択回路は、前記クロック信号の前記第１の縁からいくつかのサイクルが発生した後の前記クロック信号の第２の縁によってトリガされた第１の選択カウント状態に応答して、前記第１の出力データを選択するメモリ回路。
【請求項２】
前記データラインは、データを前記アレイから前記舵取り回路へ前記クロック信号と非同期的に伝播する請求項１に記載のメモリ回路。
【請求項３】
前記サイクルの数はプログラム可能な待ち時間のパラメタによって決定される請求項１に記載のメモリ回路。
【請求項４】
前記プログラム可能な待ち時間のパラメタは、１サイクル、２サイクル、若しくは３サイクルの待ち時間を指定する請求項３に記載のメモリ回路。
【請求項５】
複数の並列な枝路を含むデータ通路を有する同期メモリシステムにおいてデータをパイプライン化するための方法であって、前記複数の並列な枝路の各々は、データを記憶する手段と、前記複数の並列な枝路の各々からデータを受信する出力と、クロック信号を受信するクロック入力とを有する、前記方法において、
第１のデータをつくる第１の読取りサイクルを開始する第１のクロック縁を前記クロック入力で受信するステップと、
前記第１のデータを前記データ通路に伝播させるステップと、
前記第１の読取りサイクルによってつくられた前記第１のデータを、前記第１のクロック縁によってトリガされた第１の舵取り信号に応答して前記複数の並列な枝路中の第１の枝路に進めるステップと、
第２のデータをつくる第２の読取りサイクルを開始する第２のクロック縁を前記クロック入力で受信するステップと、
前記第１のデータが前記出力に到着する前に、前記第２のデータを前記データ通路に伝播させるステップと、
前記第２の読取りサイクルによってつくられた前記第２のデータを、前記第２のクロック縁によってトリガされた第２の舵取り信号に応答して前記複数の並列な枝路中の第２の枝路に進めるステップと、を備えることを特徴とする方法。
【請求項６】
第３のデータをつくる第３の読取りサイクルを開始する第３のクロック縁を前記クロック入力で受信するステップと、
前記第１のデータが前記出力に到着する前に、前記第３のデータをデータ通路に伝播させるステップと、
前記第３の読取りサイクルによってつくられた前記第３のデータを、前記第３のクロック縁によってトリガされた第３の舵取り信号に応答して前記複数の並列な枝路中の第３の枝路に進めるステップと、
前記第３のクロック縁に応答して、前記出力へ伝播すべき前記第１のデータを選択するステップとを更に備える請求項５に記載の方法。
【請求項７】
前記第１のデータを前記データ通路に伝播させるステップと、前記第２のデータを前記データ通路上に伝播させるステップは、前記クロック信号と非同期的に発生する請求項５に記載の方法。
【請求項８】
前記第１の縁からいくつかのサイクルが発生した後の第３のクロック縁に応答して、前記出力へ伝播させるべき前記第１のデータを選択するステップを更に備える請求項５に記載の方法。
【請求項９】
前記サイクルの数はプログラム可能な待ち時間のパラメタによって決定される請求項８に記載の方法。
【請求項１０】
前記プログラム可能な待ち時間のパラメタは、１サイクル、２サイクル、若しくは３サイクルの待ち時間を指定する請求項９に記載の方法。
【請求項１１】
複数の並列な記憶素子とこれら複数の並列な記憶素子からデータを受信する出力とを有するデータ通路を有するメモリ回路において、データをパイプライン化するための方法であり、
クロック信号の第１の縁によってトリガされ、第１の読取りデータをつくる第１の読取りサイクルを開始するステップと、
前記第１の読取りデータを前記データ通路に伝播させるステップと、
前記第１の縁の後の前記クロック信号の第２の縁によってトリガされた第２の読取りサイクルを開始するステップであって、前記第２の読取りサイクルは前記第１の読取りデータが前記出力に到着する前に第２の読取りデータを生成する前記ステップと、
前記第２の読取りデータを前記データ通路に伝播させるステップと、
前記クロック信号の前記第１の縁によってトリガされた第１の舵取り信号に応答して、前記複数の並列な記憶素子中の第１の記憶素子に前記第１の読取りデータを進めるステップと、
前記クロック信号の前記第２の縁によってトリガされた第２の舵取り信号に応答して、前記複数の並列な記憶素子中の第２の記憶素子に前記第２の読取りデータを進めるステップであって、該ステップは、前記第１の読取りデータを進めるステップの後に発生する、前記ステップと、
前記出力へ伝播させるべき前記第１の記憶素子の前記第１の読取りデータを選択するステップであって、該ステップは、前記クロック信号の前記第２の縁によってトリガされた第１の選択信号に応答して実行される前記ステップと、
前記出力へ伝播させるべき前記第２の記憶素子の前記第２の読取りデータを選択するステップであって、該ステップは、前記第２の縁の後の前記クロック信号の第３の縁によってトリガされた第２の選択信号に応答して実行される前記ステップと、を備えることを特徴とする方法。
【請求項１２】
前記クロック信号の前記第３の縁に応答して第３の読取りサイクルを開始するステップであって、前記第３の読取りサイクルは、前記第２の読取りデータが前記出力に到着する前に第３の読取りデータを生成するステップと、
前記第３の読取りデータを前記データ通路に伝播させるステップと、
前記クロック信号の前記第３の縁によってトリガされた第３の舵取り信号に応答して、前記複数の並列な記憶素子中の第３の記憶素子に前記第３の読取りデータを進めるステップと、
前記出力へ伝播させるべき前記第３の記憶素子の前記第３の読取りデータを選択するステップであって、該ステップは、前記第３の縁の後の前記クロック信号の第４の縁によってトリガされた第３の選択信号に応答して実行される前記ステップと、を更に備える請求項１１に記載の方法。
【請求項１３】
前記第１の読取りデータを前記データ通路に伝播させるステップと、前記第２の読取りデータを前記データ通路上に伝播させるステップは、前記クロック信号と非同期的に発生する請求項１１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にはデータを処理するシステムに関する。特定的には、本発明は、ある回路内において読取りサイクルが開始されてから選択された数のクロックの後に該回路から出力データを発生する方法及び装置に関する。
【０００２】
【従来の技術】
半導体メモリシステムは過去数年の間に急速に進展してきている。メモリチップ当たりのビット数が４倍に増大したことにより、メモリシステムサイズはおおよそ３年毎に２倍になっている。従って、ＤＲＡＭの新しい各世代毎にメモリシステム内に必要とされる個々のチップの数は僅か半分定度になる。システム内のメモリチップの数が減少したので、データ出力ピンの合計数が減少している。出力ピンの数が少なければ、メモリシステムの帯域幅が縮小する。しかしながら、マイクロプロセッサ及びマルチプロセッサシステムが進歩するにつれて、メモリシステムに対する要望が増加し続けている。最も重要なことは、コンピュータシステムが益々データ帯域幅を必要とすることである。即ち、システムは、所与の時間間隔内にメモリの出力パッドにより多くの情報を提示することを要求する。従って、各メモリチップの帯域幅を増大させる要望が存在している。ビット密度及びサブストレート空間の貴重な価値を保つ必要があるために、帯域幅を増大させることは複雑である。
帯域幅を増すというこの要望のために、新しい型のメモリシステムを開発する必要があった。一つの有望な新しいメモリチップアーキテクチャは、同期ダイナミック、もしくはスタティックランダムアクセスメモリ（ＳＤＲＡＭもしくはＳＳＲＡＭ）である。これらのチップはデータ流れを制御するためにクロックを使用しているので、従来のメモリチップが提供するよりも遙かに大きい出力データ帯域幅を提供する。これらの同期設計においては、データ出力の帯域幅を増すためにパイプライン方式が使用される。この説明では、例示ＳＤＲＡＭを通る（列アドレスから出力まで）アドレス・アクセス時間を 15 ｎｓとする。パイプライン化しない場合には、読取りサイクルは 15 ｎｓ毎に発生する。同期ＤＲＡＭにおいては、総合データ転送速度を３倍に増すためには３の待ち時間（もしくは呼出し時間、またはレイテンシー、即ちパイプラインの深さ）を使用することができる。即ち、 15 ｎｓアドレス・アクセス時間のＳＤＲＡＭの場合には、読取り要求及びデータ出力は５ｎｓ毎に行うことができる。第１の要求は時点Ｔ０に行うことができる。その要求によるデータは 15 ｎｓ（３クロック）後にＤＲＡＭの出力に現れる（有効になる）。第２の読取り要求はＴ＋５ｎｓに行われ、第３の読取り要求はＴ＋ 10 ｎｓに現れる。またＴ＋ 10 ｎｓに現れるクロックは、第１の読取りサイクルによるデータが出力に現れるように命令する。Ｔ＋ 15 ｎｓの現れる第４の読取り要求と一致して、第１の要求によるデータが出力に現れて使用可能となる。このデータには、爾語の読取りサイクルによって５ｎｓおきに新しいデータが後続する。その結果、システムのサイクル時間はアドレス・アクセス時間よりも遙かに短くなり、帯域幅は劇的に増大する。
【０００３】
もし 7.5ｎｓのサイクル時間で動作させれば、この同じ 15 ｎｓのアドレス・アクセス時間部分は、１クロックだけの遅れでデータを出力することができる。即ち、第１の読取りサイクルはＴ０に開始される。第２の読取りサイクルはＴ＋ 7.5ｎｓに開始され、第１の読取りサイクルによるデータはこの時点に出力されるように命令される。第１のデータが出力上に現れ、読出されるにつれて、第３のサイクルがＴ＋ 15 ｎｓに開始される。この動作を２の待ち時間と呼ぶ。この例示した 15 ｎｓアドレス・アクセス時間部分は、５ｎｓサイクル時間の２の待ち時間で正しく動作させるには遅過ぎる。より高い周波数で動作するＤＲＡＭの待ち時間はより大きくなってしまう。従って、多くの異なる動作周波数で最適に使用できるように、特定のメモリ部分の待ち時間をプログラムする能力を与えることが望ましい。例えば、第１のサイクルのアクセスが完了する前に第２及び第３のサイクルを開始させることによって、同期メモリは従来のメモリ設計に比して大きく増大した帯域幅を提供できるようになる。
しかし不幸にも、この増大した帯域幅を達成すにはある費用が必要であった。現在のパイプライン方式は、パイプを通してデータを循環もしくは“ステップ”させるためには多数の伝送ゲートもしくはラッチを使用する必要がある。典型的なパイプライン回路は、ＮＭＯＳ及びＰＭＯＳトランジスタで作られた複数の伝送ゲートで形成されている。データはパイプライン回路を通してクロックされ、伝送ゲートによって限定される段を通して順次に進行させられる。例えば、２の待ち時間の場合には、パイプを通してデータをステップさせるには２組の伝送ゲートを使用する。第１の組のゲートは、メモリを通して入力バッファに受信されたデータを進めるために動作可能にされる。第２の組のゲートは、新しいデータが入力に印加されると、前のデータを出力に進めるように動作可能にされる。同様に３の待ち時間は、各並列データ通路を通して幾つかの位置に配置された３組の伝送ゲートを必要とする。
【０００４】
この方策は同期回路からパイプライン方式でデータを出力するという一般的な目的は達成するが、幾つかの理由から満足することはできない。この方策が必要とする多数の伝送ゲートは幾つかの重要なＲＡＭ設計特性に悪い影響を与える。ＳＤＲＡＭ内の中間伝送ゲートは、例えばメモリの各カラムデコーダの出力に最適に配置することができる。これらのメモリは多数のカラムデコーダ出力を有している。従って、例えば３の待ち時間を生成するためには極めて多数の伝送ゲートが必要になる。これらの各伝送ゲートは電力を消費し、サブストレートの貴重な領域を占め、そして信号通路に抵抗及び容量を付加するので、アドレス・アクセス時間に遅れを付加する。その結果、共通パイプライン化技術を使用する同期ＤＲＡＭ回路は、同じ容量の非同期回路よりも実質的に大きいサブストレート空間を占めるようになる。更に、これらの共通技術を使用すると、これらはサイクル時間を減少させるという目的は達成するものの、電力要求が大きく、アドレス・アクセス時間が長いメモリデバイスになってしまう。
プログラム可能な待ち時間を使用する場合には、伝送ゲートの数は更に増加する。例えば、もし伝送ゲートを使用して２もしくは３の選択可能な待ち時間を実現するものとすれば、総合データ通路内のゲートの最適配置は異なる待ち時間毎に異なる。この方策を実現すると、サブストレート空間が急速に減少するようになる。
【０００５】
従って、データ通路内の多くの伝送ゲートの必要性を縮小乃至は排除する高速パイプライン化技術が要望されている。更にこの技術は、どのような望ましい値のプログラム可能な待ち時間をも支援することが望ましい。ビット密度、サブストレート領域、及び電力消費の価値を大きく損ねることなく、これらの要望を満足すべきである。
【０００６】
【発明の概要】
本発明は、サブストレート領域を過大に占有することなく、極めて高い周波数でデータをパイプライン化することができるプログラム可能な待ち時間を可能にしたパイプライン回路を提供する。
詳述すれば、同期システム内において使用するためにデータをパイプライン化する方法及び装置が提供される。１つの特定実施例においては、装置は、クロック入力上に受信される第１のクロックによって読取りサイクルが開始されるメモリシステムと共に使用されるように設計されている。読取りサイクルはデータを非同期的に発生し、このデータはパイプライン回路へ入力される。回路は、読取りサイクル中に発生したデータを、レジスタの幾つかの枝路の表明された( asserted )１つへ舵取りする舵取り回路を含んでいる。（本明細書中では、レジスタという用語は、データを記憶するための電子デバイスを指すものとして用いられる。１つの枝路はレジスタの１部分であり、レジスタの他の部分（すなわち他の枝路）にあるデータに影響を与えることなく、１つの枝路にデータを入力することができ、また、１つの枝路からデータを読み出すことができる。）次のクロックを受信した時にこの表明された枝路からの出力データを選択する選択回路が使用される。この、次のクロックは第１のクロックの後に発生する幾つかの数のクロックの１つである。
１つの特定実施例では、第１のクロックの後のクロックの数は１つである（即ち、２の待ち時間を有するパイプライン効果が達成される）。別の実施例では、第１のクロックの後のクロックの数は２つである（即ち、３の待ち時間が達成される）。本発明の更に別の実施例は、１と３との間でプログラム可能な選択された待ち時間を可能にする。
【０００７】
レジスタの各枝路はデータを記憶するための１対のラッチを含み、それらの一方は論理値“１”入力信号に応答し、他方は論理値“０”入力信号に応答する。各枝路内のこの１対のラッチをリセットするリセット回路も設けられている。１つの特定実施例では、各枝路内のこの１対のラッチは、その枝路が出力として選択されなくなると直ちにリセットされる。単一の枝路は各サイクル中にリセットされる。
舵取り回路と共働して枝路を通してデータを舵取りし、ラッチさせる同期回り込み( wrap-around ) カウンタシステムも設けられている。またこのカウンタは、出力データのためにある枝路を選択するのに直接使用される。このカウンタは自己開始であり、各クロックで迅速にインクリメントする。
舵取り回路も設けられている。舵取り回路は、１サイクル時間に等価な時間の間複数の信号の１つを順次に発生（表明）し、その順序は狭いデータパルスの到着の直前にインクリメントするように時間決めされている。データパルスはクロックサイクル時間に対して狭いことが好ましい。この狭いデータパルスの到着の前に舵取り信号を発生させることによって、データパルスはレジスタの幾つかの枝路の１つへ舵取りされる。データパルスが到着する直前に、正確な相対的タイミングで舵取り信号を発生させることを可能にするために、共通タイミング信号が使用される。１つの特定実施例では、共通タイミング信号は、複数のプレデコード( predecode ) 信号ラインの１つの上にパルスが存在することを検出することによって生成される。共通タイミング信号は、センス増幅器をストローブする（従ってデータパルスを生成する）ために使用され、また舵取り信号に精密なタイミングを与えるためにも使用される。システムのデータ通路の終わり近くでこの共通タイミング信号を使用することによって、データ信号を高い周波数で舵取りすることができる。この配列は、温度、電源電圧等の変動によってもたらされるタイミングの変動に適応する。
【０００８】
サイクル毎にシステムの出力を使用不能にする回路も設けられている。本発明の他の特定の実施例は、たとえあるデータが使用可能になる前にそのデータが出力として選択されたとしても、パイプラインの出力内のグリッチを防止する機能を含んでいる。
その結果、プログラム可能な待ち時間を有する小さい、効率的な、そして高速なパイプライン回路が得られる。データの発生と、情報を幾つかの枝路の１つへ舵取りすることとに共通タイミング信号を使用することによって、正確なタイミングが得られる。データは、伝送ゲートを使用することなくメモリ回路の入力からパイプライン回路の入力まで非同期的に流れる。
本発明の本質及び長所は、添付図面に基づく以下の説明から明白になるであろう。
【０００９】
【実施例】
図１に本発明による待ち時間舵取り回路１００を示す。この回路は、図２に示す３つの同一区分、即ち枝路の１つである。これは、図２の回路に比して幾分簡易化されているが、総合動作の概要は理解できるように、図６、８及び１１に示す他の回路からの機能は含んでいる。舵取り回路１００は、相補もしくは真の I/O  信号ライン（以下 I/O# 及び I/O  という）からのデータ信号をレジスタの１つの表明された枝路のノード N01  もしくは N04  へそれぞれ舵取りし、そこから例えば同期メモリデバイスの出力パッド１５０へ舵取りするのに使用される。回路は、複数の制御信号を使用して I/O  ラインからのデータを、精密なタイミングで確実に出力パッド１５０まで伝播させる。信号の舵取りは、メモリデバイスからのデータを迅速且つ正確にパイプライン出力させるように使用することができる。当業者には明白なように、本発明は、ＤＲＡＭ、ＳＲＡＭ、ＲＯＭ、フラッシュメモリ等を含む如何なる同期メモリデータと共に使用することもできる。更に、本発明のパイプライン化方式は、効率的な高速パイプラインを必要とする他の応用に使用するように変更することもできる。
【００１０】
【実施例】
本明細書を通して、本発明の特定の実施例を説明する。即ち、ＤＲＡＭシステムの出力データ通路内に使用するように設計されている実施例を説明する。この特定実施例では、データはパルスの形状（例えば、１−５ｎｓ幅のパルス）でＤＲＡＭを通って伝播する。好ましい実施例では、回路は、 1994 年６月30日に同時出願された出願番号第 08/269,451 号「ＣＭＯＳ集積回路における高速伝播技術」に開示されているような高速伝播ＣＭＯＳ論理を使用することによって実現されている。当業者には、他の方式によって実現できることは明白であろう。
この特定実施例において読取りサイクルを開始させるクロックサイクルは、４つの動作を発生させる。第１に、レジスタ回路の１つの枝路の２つの記憶ノード（図１に示す枝路のノード N01  及び N04  のような）がリセットされる。次に（同時に）、普通の非同期読取りアクセスが開始され、このアクセスは I/O  もしくは I/O# ラインの何れかの上のデータパルスが発生すると終了する。第３に、読取りサイクルは舵取り信号を生成させ、この舵取り信号は非同期データパルスが到着する直前に発生する。最後に、舵取り信号は I/O  もしくは I/O# からのデータを適切な記憶ノード上へ舵取りし、記憶ノードの１つをセットする。次のクロックサイクルは、このデータを出力として選択する。データは複数の受信回路（例えば、プロセッサ、キャッシュメモリ等）の何れかへ出力することができる。
【００１１】
２の待ち時間を達成するには少なくとも２つの回路１００が必要であり、３の待ち時間を達成するためには少なくとも３つの回路１００が並列に存在しなければならない。回路１００の数を増加させることによって、より多くの待ち時間を得ることもできる。１つの特定実施例では、ユーザには本発明のパイプライン回路によって１から３までの待ち時間仕様が与えられている。図１の待ち時間舵取り回路１００の若干の面は、回路の動作の説明を簡略化するために一般化されている。さらなる詳細に関しては後の図面に基づいて説明する。
１つの特定実施例では、メモリデバイスからの I/O  信号は、スタンバイ中は高レベル（以下単に、高ということがある）である。従って、何れかのライン上の低信号（以下単に、低ということがある）はデータの存在を表す。これらの信号は一般に負データパルスであり、例えば２ｎｓ幅であることができる。１つの特定実施例では、 I/O  信号はメモリ読取りアクセス要求の後に約 10 ｎｓの非同期の遅れをもって生成される。しかしながら、パイプライン方式を使用すると、メモリ要求はアクセス時間より短い間隔で行うことができる。２の待ち時間にすると、パイプラインデータによって I/O  信号を 7.5ｎｓおきに発生させ、また新しいデータを 7.5ｎｓおきに出力パッド上に配置することが可能になる。３の待ち時間にすると、 I/O  信号及び新しい出力データを５ｎｓ間隔で発生させることができる。
【００１２】
１０２及び１０４で示すようなＰＭＯＳトランジスタの記号はゲートに小円を含んでいる。１１４及び１１６で示すようなＮＭＯＳトランジスタの記号はこのような小円は含んでいない。ＰＭＯＳトランジスタ１０２及び１０４のソースの上の短い水平線は、正の電源ＶCCを表している。ＮＭＯＳトランジスタ１１４及び１１６のソースは接地されている。
I/O# もしくは I/O  ラインの何れかが低に移行すると、ＰＭＯＳトランジスタ１０２もしくは１０４がターンオンになる。この時点に、データを受信するように可能化された１つの回路１００内で PIPECNTDEL0  が低にされる（そして PIPECNTDEL1  及び PIPECNTDEL2  が他の回路内で高になる）。 I/O# もしくは I/O  上の低パルスは PIPECNTDEL0  上の低レベル（先に低にリセットされている）と組合わされてノード N01  もしくは N04  をセットさせる（即ち、正の電源電圧ＶCCまで引上げられる）。ノード N01  及び N04  は、本質的に、データを記憶するための１対のラッチからなる。ノード N01  は受信された論理“１”によって高にセットされ、ノード N04  は受信された論理“０”によって高にセットされる。
PIPECNTDEL0  は、図７、８、及び９に関連して後述するように回路１１０によって作られる信号である。 PIPECNTDEL0  信号の発生のタイミングは、回路１１０によって制御される。一般的に言えば、 PIPECNTDEL 信号は、 I/O  ライン上に信号が到着することに関連して発生するように時間決めされている。比較的長い持続時間である PIPECNTDEL 信号は、 I/O  信号を発生させることができる窓を作る。対応する信号（例えば、 PIPECNTDEL1  及び 2）が、この図には示されていない対応回路枝路に供給される。どのデータを受信するには、どの PIPECNTDEL （０、１、もしくは２）を動作可能にするのかの選択はサイクル毎に変化し、選択された待ち時間（例えば、２、３、もしくはそれ以上）とカウンタ ( PIPECNT )の状態とに依存する。この選択は、回路１１２によって制御される。回路１１０及び１１２の詳細に関しては、図８を参照して後述する。これらの回路１１０及び１１２は一緒になって、データを受信するように動作可能にされた回路１００のノード N01  もしくは N04  へ、 I/O# もしくは I/O  ラインからの負データパルスを舵取りする。“舵取り”とは、信号 PIPECNTDEL0  が低になった時に、もし信号（例えば、負パルスの形状の）がライン I/O# 上に発生して枝路０がデータを受信できるようになるものとすれば、その信号がノード N01  へ舵取りされてそれを高にセットし、一方他の回路１００内の対応するノードには影響を与えないことを意味する。もしライン I/O  上に負パルスが到着し、また信号 PIPECNTDEL0  が低にされていれば、そのデータはノード N04  へ舵取りされてそれを高にセットする。もしライン I/O  もしくは I/O# の何れかに信号が到着し、そして信号 PIPECNTDEL0  が低にされなければ（ PIPECNTDEL1  もしくは 2  が低にされているので) そのデータは別の枝路へ舵取りされ、ノード N01もしくは N04  は何れも変化しない。この機能により、連続するサイクル中に単一の組の I/O  ライン上に到着する信号を、異なる枝路内の複数の異なるノードへ舵取りすることが可能になり、パイプライン効果が達成されるのである。
【００１３】
特定のノード（例えば、図１のノード N01  もしくは N04）へ適切に舵取りされたデータは、適切なクロック入力が到着するまで待機する。適切なクロック入力が到着すると、 PCNT0  が迅速に高に選択される。これにより、データは出力パッド１５０に伝播できるようになる。 PCNT0  は、本質的に、図７に基づいて後述するカウンタによって生成される PIPECNT0 から導出される。 PCNT0  信号は、カウント信号 PIPECNT0 が高に選択され、且つ出力がこのサイクルに動作可能にされている場合に限って高に選択される。１つの特定実施例では、出力制御回路は出力をターンオフ（開回路）させる機能を含み、それによってメモリ出力パッドは自由に別の信号を持つことができる。この制御回路の詳細に関しては図６及び１１を参照して後述する。
PCNT0  が選択されると、ＮＭＯＳトランジスタ１２６、１３４、及び１４０がターンオンする。これは、何れかのノード N01  もしくは N04  上の高“セット”レベルと組合わされて、出力パッドを高もしくは低にさせる。例えば、もし PIPECNTDEL0  信号が低にされている時に負パルスがライン I/O  上に到着すれば、トランジスタ１０４及び１０８が同時にターンオンしてノード N04  を高にセットする（両ノード N01  及び N04  は、先に低にリセットされている）。ノード N04  は、ＮＭＯＳトランジスタ１２８のゲートに結合されている。ノード N04  が高に移ると、トランジスタ１２８はターンオンする。クロック入力を受信すると（この読取りサイクルを開始させた入力の後に）、 PIPECNT0 及び PCNT0  が選択され（出力が動作可能にされている）、ＮＭＯＳトランジスタ１２６をターーンオンさせる。両トランジスタ１２８及び１２６がターンオンすると、ＰＭＯＳトランジスタ１３２及び１４２のゲートは接地に引下げられ、これらのトランジスタをターンオンさせる。 PIPECNT0 が高に選択されると PIPECNT1 は選択解除され低になる。詳細は後述するが、これらの PIPECNT  信号は高速同期回り込みカウンタによって生成される。任意の時点には信号（ PIPECNT0-2 ）の１つだけが高に選択される。 PIPECNT1 が低であると、ＰＭＯＳトランジスタ１３０及び１４４がターンオンする。両ＰＭＯＳトランジスタ１３０及び１３２がターンオンすると、ノード PULLUP もＶCCに引上げられ、ＰＭＯＳ出力トランジスタ１４６がターンオフする。従って出力パッド１５０は接地に引下げられる。この時点には、ノードＮＯ１は未だ低にリセットされているから、ＮＭＯＳトランジスタ１３６及び１３８はオフである。同様にして、もしデータがライン I/O# に到着しても、ノード N01  はＰＭＯＳトランジスタ１０２、１０６を通して高にセットされており、ノード N04  は未だ低にリセットされている。この場合 PCNT0  は高に選択され、ライン PULLUP 及び PULLDN はトランジスタ１４０、１３８、及び１３４、１３６を介して接地に引下げられる。これはＰＭＯＳトランジスタ１４６をターンオンさせ、ＮＭＯＳトランジスタ１４８をターンオフさせるので出力パッド１５０は高に引上げられる。
【００１４】
システムを通る信号の伝播が高速であるために、潜在的にライン PULLUP 及び PULLDN は出力にグリッチを生じ易い。出力のグリッチを回避するために、幾つかの機能が設けられている。第１に、次のクロック入力を受信した結果として現在の PIPECNT（出力）サイクルが完了すると、直ちに、次のパイプカウント PIPECNT1 が迅速に高に選択されるので、ＰＭＯＳトランジスタ１３０及び１４４が非導電にされる。またこの時点には、ＮＭＯＳトランジスタ１２６、１３４、及び１４０は、 PCNT0  が選択されずに低であることによってターンオフにされている。ＮＭＯＳトランジスタ１３４、１４０、及びＰＭＯＳトランジスタ１３０、１４４が全てオフであると、この特定の枝路は最早 PULLUP または PULLDN の状態には影響しなくなる。その結果 PULLUP 及び PULLDN は、次の選択された枝路（もしくは出力不能化回路によって）新しい電圧に駆動されるまで、それらの現在の電圧に留まる。もし、現枝路の選択解除と、次の枝路の選択とが同時に行われても、データは未だノード N01  もしくは N04  に対応する次の枝路のノード（例えば枝路１のノード N02  及び N05）に到着しておらず、出力にはグリッチは発生しない。それどころか、次の枝路が選択されても何も起こらない。データが次の枝路のノード N02  もしくは N05  へ最終的に到着してセットした場合に限って、ノード PULLUP または PULLDN が電圧を変化させる。従って次のデータが出力として使用可能になるまで、出力は高、低、もしくは開回路に留まる。もし次のデータが現在のデータと同一のデータであれば、ノード PULLUP 及び PULLDN は電圧を変化させず、従って、たとえそのデータが使用可能になる前に次の PIPECOUNT  がそのデータを選択したとしても、出力にグリッチを生じることはない。
【００１５】
当業者ならば理解しているように、 PULLDN の立ち下がりよりも PULLUP の立ち上がりが速くなるように設計し、ＮＭＯＳトランジスタ１４８がターンオンするよりも速くＰＭＯＳトランジスタ１４６をターンオフさせることができる。同様に、 PULLUP の立ち下がりよりも PULLDN の立ち上がりが速くなるように設計し、ＰＭＯＳトランジスタ１４６がターンオンするよりも速くＮＭＯＳトランジスタ１４８をターンオフさせることができる。これにより電力消費が節約されることになる。
ノード N01  及び N04  に有効信号が確実に配置されるように、 RESET0 信号も使用される。１つの特定実施例では、枝路０（ PIPECNT0 によって出力データに選択された枝路）の場合、この信号は PIPECNT1 信号が高に選択されるサイクル（即ち、 PIPECNT0 が出力データに選択されたサイクルの直後のサイクル）の始まりに正パルスとして選択される。 RESET0 信号は、ＮＭＯＳトランジスタ１１４及び１１６のゲートに印加される。正のパルスとして信号が印加されるとノード N01  及び N04  は接地され、これらのノードはデータを使用することができない状態にリセットされる。またこの信号はインバータ１２０によって反転され、インバータ１２０の出力はＰＭＯＳトランジスタ１２４をターンオンさせてＰＭＯＳトランジスタ１３２及び１４２のゲートを高にリセットし、これもまたデータが使用できないことを表す状態にする。これらの各ノードが適切にリセットされると、回路は I/O  もしくは I/O# 上に負パルスの形状の新しいデータを受信する準備が整い、次の時点に PIPECNTDEL0  が再びデータを枝路０へ舵取りする。この新しいデータは、次の時点に PIPECNT0 が高に選択されると出力される。リセットパルスのタイミングは、 I/O  D しくは I/O# 上の新しいデータが PIPECNTDEL0  によってこの特定枝路（枝路０）に舵取りされる前に終了していなければならないことに注目されたい。本発明の１つの特定実施例では、待ち時間が３にセットされている場合は、新しいデータがあるノードに到着する前に RESET  パルスを開始及び停止させるための 10 ｎｓの窓が存在する。この時間は、クロックサイクル時間とは無関係である。待ち時間が２の場合は、長めの時間を使用することができる。当業者ならば、この窓内で RESET  パルスのタイミングを調整することが可能であろう。
【００１６】
回路１００はある程度簡略化されているが、本発明の幾つかの面は示されている。第１に、 I/O  もしくは I/O# 信号が現れる時点に PIPECNTDEL0  信号が低にされていない限り I/O  ライン上に提示される信号はノード N01  もしくは N04  へ伝播（舵取り）しない。 I/O  信号は短い間隔（若干の実施例では５ｎｓのような）で発生する例えば２ｎｓ幅のパルスであり得るから、 PIPECNTDEL0
信号は適切なタイミングが必要である。このタイミングは、遅延回路１１０を使用して調整される。任意のサイクル中にどの PIPECNTDEL 信号を発生させるかの選択は、読取り要求が開始された時点の PIPECNT  カウンタの状態と、選択されている待ち時間とによって決定される。データがノード N01  もしくは N04  を高にセットすると、 PCNT0  が選択された時に限って（これは PIPECNTDEL0が選択された時、そして出力可能化回路１１８によってデータ出力が可能にされた時に限って発生する）そのデータが出力として選択される。即ち、ノード N01  もしくは N04  からのデータは、ある数のクロックの後に PCNT0  信号が選択されるまで出力パッド１５０上に配置されることはない。このゲーティング効果はデータのパイプライン化制御に使用される。図１の回路１００と同じ枝路をＮ個使用することによって、２からＮまでのどのような深さのデータパイプラインをも形成することができる。
【００１７】
図２に、本発明による舵取り回路２００の１つの特定実施例を示す。同一の３つの枝路を有するこの回路は、２もしくは３の待ち時間を支援する。１の待ち時間は、以下に説明する分離した回路によって達成される。３つの各枝路の殆どの部分は図１に示す回路１００と同一である。当業者ならば、より多数の枝路を使用することによってより大きい待ち時間を実現できよう。遅延回路１１０、待ち時間選択回路１１２、出力可能化（制御）回路１１８、及び出力トランジスタ１４６及び１４８のような図１に含まれる若干の機能は図２には示されていない。それよりも、これらの機能の特定実施例を以下に説明する。
図１に示されていない本発明の１つの特定実施例の幾つかの機能が図２に示されている。即ち、各記憶ノード N01 - N06  は、１対のインバータで形成されているラッチ２６２Ａ−Ｃ、２６０Ａ−Ｃを含む。これらのラッチは、システムが漏洩電流に配慮を要するような低周波数で動作している場合でも、これらの各ノードに情報を保持するために使用されているのである。これらは、これらがそれぞれのリセットパルスによって、もしくは I/O  または I/O# 上の新しいデータによってオーバパワーされる( overpowered ) 得るように十分に高いインピーダンスを有し、しかもそれぞれのノード上のどのような漏洩電流をも打破するように十分に低いインピーダンスを有するように形成されている。本明細書を通して言及される同じようなラッチもそれぞれの入力信号によってオーバパワーされる。これらのノードにラッチを設けることによって、極めて低い周波数での動作が支援される。付加的なＰＭＯＳラッチ２６４Ａ−Ｃがノード N013 - N015  を高に保持するように位置決めされている。これらのノードが高にセットされると、ラッチ２６４Ａ−Ｃは信号に変化が発生するまで高レベルを維持する。ノード N013 - N015  は、それぞれの RESET  信号が印加されるとＰＭＯＳトランジスタ２２４Ａ−Ｃによって高にリセットされる。 RESET  機能はライン PULLUP もしくは PULLDN 上の信号をリセットしないことに注目されたい。これらの信号は新しい出力データによって置換されるまで保持される。これは、グリッチのない出力を確実にするのを援助する。例えば、第１のサイクルにおいて I/O# からの負データパルスがトランジスタ２０２Ａのゲートに印加され、トランジスタ２０６Ａを通して枝路０の記憶ノード N01  へ舵取りされ、 PCNT0  が高に選択された時に PULLUP 及び PULLDN を接地に引下げるものとしよう。もし次のサイクルにデータが再びライン I/O# 上に現れれば、それは枝路１のノード N02  へ舵取りされてそれを高にセットする。これにより（信号 PCNT1  が選択されると) トランジスタ２３６Ｂ、２３８Ｂがライン PULLUP 及び PULLDN を接地に引下げる。しかしながら、これらのラインは既に接地電位にあるから、最終データ出力は高に留まる。たとえデータが到着してノード N02  を高にセットする前に PCNT1
が選択されたとしても、そのようになる。
【００１８】
PULLUP 及び PULLDN を枝路１からの出力サイクルの間高に引上げる必要がある場合（即ち、データが真の I/O  ライン上に到来し、そしてノード N05  を高にセットするように舵取りされている）、 PIPECNT1 及び PCNT1  が選択されるとノード N014 は接地に引下げられる。ＰＭＯＳトランジスタ２３０Ｂ及び２４４Ｂはオンであるから、これにより PULLUP 及び PULLDN は高に引上げられる。 PIPECNT1 が高に選択されている場合には PIPECNT2 は選択されずに常に低であるために、これらのトランジスタはオンなのである。更に、各 PIPECNT  サイクルの終わりは、先に選択されたＰＭＯＳトランジスタ２３０、２４４、及び先に選択されたＮＭＯＳトランジスタ２２６、２３４、及び２４０がターンオフするためにライン PULLUP 及び PULLDN が分離されることによって完了する。これらのトランジスタは、例えば PIPECNT2 が高に選択されて枝路１が選択されなくなると PIPECNT1 が選択解除されて低になるために、同時にターンオフする。あるサイクルの終わりに PULLUP 及び PULLDN が１つの枝路から分離されると、これらのノードは次の枝路によって供給される新しいデータを直ちに引き受けることができるようになる。
【００１９】
たとえ新しいデータが到着する前にそれが要求されたとしても、この回路がグリッチを伴わずに（しかしながら、遅れて）サイクルからサイクルへ移行することに注目されたい。再度、読取りサイクルの開始から I/O  もしくは I/O# 上に負パルスが生成するまでの非同期の遅れが 10 ｎｓであるものとする。この例では、データは枝路０へ舵取りされる。また、読取り待ち時間が２であるものとする。即ち、当該読取りサイクルを開始させたクロックに続く最初のクロックを受信すると、そのデータが出力として選択されるものとする。もしクロックサイクル時間が 10 ｎｓより長ければ、データはそれが出力として選択される前にメモリを通して非同期的に伝播している。即ち、ノード N01  もしくは N04  は PCNT0  が高に選択される前に高にセットされている。次の外部クロックを受信すると直ちに PCNT0（もしくは後続サイクルの場合には PCNT1  または PCNT2）は高に選択され、上述したように新しいデータが出力に現れる。一方、もしサイクル時間が 10 ｎｓより短ければ、データはそれが使用可能になる前に要求されることになる。即ち、未だに低状態にリセットされているノード N01  もしくはノード N04  の何れかが高にセットされる前に PIPECNT0 が高に選択される。この場合次のクロックによって PIPECNT0 が選択されても、非同期的に伝播するデータが到着するまでは出力に変化は生じない。即ち、新しいデータが到着するまでは、ノード PULLUP 及び PULLDN はそれらの先行状態に留まり、出力はその先行状態即ち高、低、もしくは開回路に留まる。
【００２０】
さて、 I/O  もしくは I/O# に負データパルスが最後に発生すると、ノード N04  もしくは N01  は高にセットされ、この新しいデータは PIPECNT0 が未だに高に選択されているので直ちに出力へ伝播する。この場合も、もし新しいデータが古いデータと同一であれば、出力はグリッチを生ずることなく安定に維持される。またもし出力が切り替わるものとすれば、出力はそれに置換される新しいデータが使用可能になるまで、先行データを有効に保持する。この出力の状態は、次の２つの条件が満たされるまで変化しない。即ち、データがメモリを通して非同期的に伝播して出力において使用可能になったこと、及び適切なクロックが受信されてこのデータを出力として選択することである。どちらが先に発生するかは問題ではない。しかしながら、もし次のクロックで PIPECNT  が進められデータを出力として選択しようとした時に、メモリを通って非同期的に伝播するそのデータが未だに使用できなければ、クロックからのアクセス時間が増加する。
異なる待ち時間における回路２００の動作を以下に説明する。再度、データがメモリを通して非同期的に伝播してノード N01  もしくは N04  の何れかを高にセットするのに 10 ｎｓを要するものとする。また、例えばノード N04  もしくは N01  が高にセットされ、 PIPECNT0 が高に選択されてから出力が有効になるまでに５ｎｓを要するものとする。図３に２の待ち時間のためのタイミング図を示してある。この例では、データ要求はほぼ 11 ｎｓおきに行われる。図３は、出力信号が図２の回路２００の単一の枝路を通って伝播するのに必要な信号の相互作用を示している。即ちデータは PIPECNTDEL0  によって舵取りされてノード N01  もしくはノード N04  の何れか（負データパルスが I/O# もしくは I/O
の何れに発生するかに依存する）を高にセットするように示されている。 PIPECNT0 及び PCNT0  によって選択されるこの枝路を、枝路０と呼ぶ。矢印は信号間の関係（例えば、１つの信号の立ち上がり縁もしくは立ち下がり縁が第２の信号の移行をもたらすような）を示している。図１１に関して後述するように、 PCNT 信号は通常は関連 PIPECNT  信号と等価である。出力が動作不能にされた時に限って、それらは異なるのである。従って、この説明では PIPECNT  信号に注目する。
【００２１】
図３に示すように、任意の時点には信号 PIPECNT0-2 の１つだけが選択（高に）される。全てのクロックサイクルの立ち上がり縁が、信号間の移行をトリガする。例えば、もし PIPECNT0 が高であれば、クロックの次の立ち上がり縁によって PIPECNT1 が高になり、 PIPECNT0 は低になる。またクロック信号の立ち上がり縁は RESET  信号をも駆動する。１つの特定実施例では、 RESET0 信号は PIPECNT1 の立ち上がり縁によってトリガされ、枝路０のノード N01  及び N04  を低にリセットし、ノード N013 を高にリセットする。同様に、 PIPECNT2 の立ち上がり縁は RESET2 信号を生成させる。これらの信号の生成とタイミングに関しては図１０を参照して後述する。
メモリ読取りアクセス要求は便宜上クロック０と呼び、また開始読取りサイクルとも呼ぶ特定のクロックで行われる。このサイクルは、要求が開始された時点からほぼ 10 ｎｓの非同期伝播遅延の後に、メモリから信号を負パルスとして I/O  もしくは I/O# の何れかの上に出力させる。図３に示す例では、開始読取りサイクルは、 PIPECNT2 の立ち上がりを生じさせるサイクルに発生する。これはその後に別のクロックを受信したか否かには無関係に、読取りサイクルの開始後のある時点に PIPECNTDEL0  を低にさせる（ PIPECNTDEL1  ではなく PIPECNTDEL0  が発生するように選択したのは、後述するよに２の待ち時間を選択した結果である）。１つの特定実施例のこの例の場合、 PIPECNTDEL0  はクロック０で読取りサイクルが開始されてから 8.5ｓ後に低にされる。従って、クロック周波数には無関係にこのデータは枝路０へ舵取りされ、ノード N01  もしくは N04  の何れか（信号が I/O# に発生するのか、もしくは I/O  に発生するのかに依存する）を高にセットする。 PIPECNTDEL0  信号は PIPECNT2 信号が選択された後の指定された時点に、より詳しくはデータパルスが I/O  もしくは I/O# に到着する直前に出現する。現在の PIPECNTDEL 信号（ここでは PIPECNTDEL0）によって限定される窓の間に I/O  信号が到着するように十分な余裕が設けてある。この余裕によって、温度、電力その他の影響によって生じる信号タイミングの変動を受け入れることができる。 PIPECNTDEL 信号の生成及びタイミングの詳細に関しては図８に基づいて後述する。
【００２２】
この読取りサイクルに関連する負の I/O  データパルスは PIPECNTDEL0  信号が低にされている間に発生するので、データは枝路０内のあるノード（即ち、ノード N01  もしくは N04  ）へ舵取りされる。負パルスの舵取りによってノード N01  もしくは N04  は、そのリセットされた低状態から高へセットされる。そのノードは後刻（例えば、そのデータを読出したサイクルが完了した後に） RESET0 パルスによってリセットされるまで高に留まる（１実施例では、ラッチによって）。次の外部クロック入力（クロック１）を受信すると、次のパイプカウント（ PIPECNT0 ）が可能な限り急速に高に選択され、先に選択されていたパイプカウント（ PIPECNT2 ）は選択解除されて急速に低になる。これは新しい枝路を選択し、先に選択されていた枝路を切り離す。 PIPECNT0 が高に選択されると、トランジスタ２３４Ａ、２２６Ａ、及び２４０Ａはターンオンし、もしノード N04  が高にセットされるか、もしくはノード N01  が高にセットされれば、ノード PULLUP 及び PULLDN は高に引上げられる。次いでこれらの信号は、メモリデバイスの出力パッド１５０へ伝播する。
I/O  ライン上に到着する次のデータは、カウンタがインクリメントされ PIPECNTDEL1  信号が低にされているために、枝路１のノード N02  もしくは N05に現れる。このデータは、クロック２の直後に PIPECNT1 が選択されると、ライン PULLUP 及び PULLDN を駆動する。１サイクル後、 I/O  ラインに印加されるデータは、信号 PIPECNTDEL2  が負になって現れることによって枝路２ののＮＯ３もしくはＮＯ６へ舵取りされる。クロック３を受信して信号 PIPECNT2 が選択されると、ライン PULLUP 及び PULLDN は再度新しいデータを受信する。このプロセスは、枝路０、１、２、０、１、２、０、等々へのデータの舵取り、次いでこれらの枝路からのデータの検索を続行する。最初のデータは、その読取りサイクルが開始された時に存在しているカウントに依存して、どの枝路へも舵取りされ得る。最後の読取りサイクルが完了した後は、出力を開回路にすることができる。これを達成する回路の詳細に関しては、図５、６、及び１１を参照して後述する。
【００２３】
図３のタイミング図は、その出力が選択される前に、即ち 10 ｎｓのサイクル時間中に I/O  もしくは I/O# にデータが到着することを示している。しかしながら、後述するように 7.5ｎｓのサイクル時間を選択することもできる。
図４は、待ち時間が３の場合のタイミング図の例を示す。３の待ち時間の場合には、データは読取りサイクルの開始の２クロック後に出力を開始し、それによってより高い周波数での動作が可能になる。この図も、図２の回路２００を参照する。この回路２００は、どの PIPECNT  信号によってどの PIPECNTDEL 信号を発生させるかという異なる選択を生成することによって、３の待ち時間を達成するために使用することができる。
図４は、３の待ち時間と約 5.5ｎｓのサイクル時間とを用いる動作を示している。この場合も図４のクロック信号の立ち上がり縁が PIPECNT  信号間の移行を生じさせる。繰り返しになるが、このタイミング図は枝路０のノード N01  もしくは N04  へのデータの舵取りを示している（即ち、 I/O  ライン上の負パルスは PIPECNTDEL0  信号が低にされている間に発生する）。 I/O# もしくは I/Oの何れかの上の低パルスと、 PIPECNTDEL0  の低信号との組合わせがデータを舵取りしてノード N01  もしくは N04  の何れかを高にセットする。 PIPECNT0 信号の選択がこのデータをノード PULLUP 及び PULLDN へ転送させ、メモリ部分のパッド１５０上に出力として出現させ続ける。しかしながら、３の待ち時間の場合には、読取りサイクルを開始させたクロック、即ちクロック２から２番目のクロックまで PIPECNT0 は発生しない。選択された待ち時間が３である場合には PIPECNT1 が高に選択されてから固定された時間の後に PIPECNTDEL0  が低にされ、一方待ち時間が２である場合には PIPECNT2 が高に選択されてから同じ固定された時間の後に PIPECNTDEL0  が低にされていたことに注目されたい。 10 ｎｓの非同期遅延を有する１つの特定実施例の PIPECNTDEL0  信号は、 PIPECNT1 が選択され（同時に PIPECNT2 が高にされ) てから 8.5ｎｓ後に低にされる。
【００２４】
図２の舵取り回路２００の動作によって、出力データを迅速に且つ効率的にパイプライン化することができる。高周波数における動作が支援される。特定のシステムに対して適切な待ち時間を選択すると、ユーザもしくはメモリ設計者はメモリ動作を最適化することができる。
２の待ち時間では、読取りサイクルの開始から２番目のクロックで回路２００からデータが出力される。即ち、クロック０が読取りサイクルを開始させ、クロック１はその読取りサイクルから出力すべきデータを選択し、そしてクロック２が有効データを受信回路にラッチする。回路２００は、有効データを複数の如何なる受信回路に出力するのにも使用することができる。例えば、データはキャッシュシステムもしくは中央処理ユニットへ供給することができる。読取りサイクルの開始からノード N01  もしくは N04  にデータが到着するまでの非同期遅延が 10 ｎｓであり、また出力バッファを通る非同期遅延が５ｎｓであるような実施例の場合には、読取りサイクルが開始されてから 15 ｎｓより早くデータが出力上で有効になることはあり得ない。即ち、受信回路がデータを正しく受信するためにはクロック０とクロック２との間の時間は少なくとも 15 ｎｓでなければならない。従って待ち時間が２の場合には、サイクル時間は 7.5ｎｓより大きいか、もしくは等しくなければならない。サイクル時間が 7.5ｎｓである場合には、 PIPECNT0 は読取りサイクルの開始から１クロック（ 7.5ｎｓ）後に、そのデータがノード N01  もしくは N04  を高にセットする 2.5  ｎｓ前に新しいデータを要求する。出力はグリッチを有していないが、その代わりにクロック１がこのデータを出力として選択してから 2.5  ｎｓ後に、そのデータが最終的にノード N01  もしくは N04  に到着した時に限って切り替えが開始される。データはクロック２によって約５ｎｓ後に出力において有効となる。
【００２５】
一方待ち時間が３の場合には、クロック番号３にデータは受信チップ内にラッチされる。２の待ち時間の場合のように、この場合も読取りサイクルの開始から 10 ｎｓの非同期の遅延の後にデータはノード N01  もしくは N04  を高にセットし、５ｎｓ中に出力バッファを通して入手することができる。しかしながら、３の待ち時間においては、この 15 ｎｓの時間間隔中に３つのクロックが存在する。従って各クロック期間は５ｎｓに短縮することができる。この３の待ち時間と、５ｎｓのサイクル時間とを用いると、読取りサイクルの開始から 10 ｎｓ後のクロック番号２にデータは出力として選択される。クロック０から 10 ｎｓの非同期の遅延の後にノード N01  もしくは N04  が高にセットされ、またこれもクロック０から 10 ｎｓ遅れたクロック２によって PIPECNT0 が選択されると、５ｎｓ後に（即ち 15 ｎｓに）データは出力において有効になる。これは第３クロックと同時発生であり、第３クロックはデータを受信回路（例えば、ＣＰＵ、キャッシュ等）内にラッチする。
待ち時間２の動作と、待ち時間３の動作との間の主な機能の差は、 PIPECNTDEL を論理的に選択した時にどの PIPECNT  が選択されるかである。この選択は、データが出力として選択される前に発生するクロックの数を決定する。別の差は、どのサイクルで出力を可能化するかの制御である。
【００２６】
クロック周波数が高くなると、使用可能な最小の待ち時間も増加する。上例の場合５ｎｓのサイクル時間で動作させるには、（少なくとも）３の待ち時間が必要である。 7.5ｎｓのサイクル時間で動作させるには、（少なくとも）２の待ち時間が必要である。（説明中の回路を使用して）１の待ち時間で動作させるには少なくとも 15 ｎｓのサイクル時間があれば可能であるものと考えられる。アクセス時間を最小にするには、システム設計者は彼の目標動作周波数で動作する最小待ち時間を選択すべきである。本発明の効率的なプログラム可能な待ち時間によれば待ち時間の選択が可能であり、従って設計者は特定の要望に対してシステムを最適化することができる。この柔軟性は、速度、電力及びサブストレート領域のような他のメモリ設計パラメタの利点と妥協せずに得ることができる。
１つの特定実施例では、１の待ち時間を支援するように設計された付加的な回路で舵取り回路２００を増補することができる。図５に示した回路２８０は、１の待ち時間が望まれる場合に使用することができる。単一のメモリ部分上にこの回路を一緒に使用することによって、ユーザは一層広範囲の出力待ち時間を選択することができる。回路２００と同様に回路２８０は信号 PULLUP 及び PULLDN の状態を駆動する。２以上ではなく１の待ち時間を使用するようにシステムを（もしくは設計者が）選択する場合に回路２８０を使用することができる。もし所望の待ち時間が１よりも大きければ、信号 CL1（カラム読出し待ち時間＝１）が低に駆動され、ＮＡＮＤゲート２８４の出力が高になり、両ＮＯＲゲート２８６及び２８８の出力が低になり、そしてインバータ２９０の出力が高になる。４つのトランジスタ２９２、２９４、２９６及び２９８は全てオフになる。それにより、回路２８０は１より大きい待ち時間の時には動作不能にされる。
【００２７】
しかしながら、もし１の待ち時間を望むのであれば、図２の回路２００を動作不能にして図５の回路２８０を動作可能にする。動作可能にされた回路２８０の動作は入力信号 OUTOFF の状態に依存する。もし OUTOFF が論理値１であればインバータ２８２は０を出力し、ＮＡＮＤゲート２８４は１を出力し、そしてＮＯＲゲート２８６、２８８は０を出力する。トランジスタ２９２、２９４、２９６及び２９８は全てオフになる。後述するように、これにより図６の回路３００は出力を開回路にすることができる。もし OUTOFF が論理値０であり、 CL1  が論理値１であればＮＡＮＤゲート２８４の出力は低になり、各ＮＯＲゲート２８６、２８８へ低入力を供給することによって回路２８０を動作可能にする。この場合も、データはメモリを通して非同期的に流れて I/O  もしくは I/O# へ低パルスを供給する。もし低パルスがライン I/O  上を伝播するものとすれば、ＮＯＲゲート２８６は高パルスを出力し、インバータ２９０は低パルスを出力するのでＰＭＯＳトランジスタ２９２、２９４はターンオフする。この低パルスは PULLUP 及び PULLDN の両方をＶCCまで引上げるのに十分に長い持続時間である。これらは、これらを切り替える次のサイクルまでＶCCに留まる（図６の回路３００内に含まれるラッチによる）。 PULLUP 及び PULLDN の両方がＶCCにあると、出力は接地に駆動される。同様に、ライン I/O# に低パルスが発生するとＮＯＲゲート２８８が高パルスを出力するので、ＮＭＯＳトランジスタ２９６及び２９８がターンオンする。これは PULLUP 及び PULLDN の両方を接地するので出力はＶCCまで引上げられる。 PULLUP 及び PULLDN は、次のサイクルによって高に切り替えられるまで接地され続ける。
【００２８】
１の待ち時間では、パイプライン方式は存在しないことに注目されたい。即ち I/O  もしくは I/O# 上に負パルスの形状のデータが発生すると、そのデータは直ちに出力まで非同期的に伝播する。出力が切り替えられるまでに、データは第２もしくは第３のクロックの到着を待機しない。
信号 PULLUP 及び PULLDN は、メモリデバイスの出力パッドに結合可能な出力信号 OUT TTL を駆動するのに使用される。１つの特定実施例では、 OUT TTL は図６の出力回路３００によって生成される。この回路３００は、図５の回路２８０から（１の待ち時間の場合）、及び図２の回路２００から（１より大きい待ち時間の場合） PULLUP 及び PULLDN 信号出力を受信することができる。回路２００もしくは２８０の何れかによって PULLUP 及び PULLDN の両方がＶCCへ駆動されるとＰＭＯＳトランジスタ３１４がオフにされ、ＮＭＯＳトランジスタ３１８がオンにされるので出力は接地に駆動される。回路２００もしくは２８０の何れかによって両方が接地へ駆動されるとＰＭＯＳトランジスタ３１４がオンにされ、ＮＭＯＳトランジスタ３１８がオフにされるので出力はＶCCへ駆動される。好ましくは、出力パッドを急速に駆動するために、ＰＭＯＳトランジスタ３１４及びＮＭＯＳトランジスタ３１８のチャネル幅は共に比較的大きくする。１つの特定実施例では、例えばＰＭＯＳトランジスタ３１４のチャネル幅は 400μであり、ＮＭＯＳトランジスタ３１８のチャネル幅は 250μである。
【００２９】
OUTOFF が高になるとインバータ３０２の出力が低になり、ＰＭＯＳトランジスタ３０４がターンオンする。これは PULLUP をＶCCまで引上げる。同時に、ＮＭＯＳトランジスタ３１６がターンオンして PULLDN を接地に引下げる。両トランジスタ３１４及び３０８がターンオフすると、出力は開回路になる。インバータ３０６及び３０８は PULLUP の状態をラッチし、一方インバータ３１０及び３１２は PULLDN の状態をラッチして新しいデータが到着するまで無期限に与えられた状態を維持する。信号 OUTOFF は本質的に出力不能化命令として機能し、ＰＭＯＳトランジスタ３１４及びＮＭＯＳトランジスタ３１８の両方をターンオフさせるのに役立つている。
以上説明したように、選択された待ち時間が１に等しい場合には、ある信号が I/O  ライン上に生成されると直ちに、その信号は如何なる付加的なクロックをも待機することなく出力パッド（ OUT TTL ）上に配置される。即ち、データは出力まで全て非同期で流れる。選択された待ち時間が２に等しい場合には、クロック０によって開始された読取りサイクルからの出力信号は、次のクロック（即ち、クロック１）を受けてからに限って出力パッド上に配置される。選択された待ち時間が３に等しい場合には、クロック０によって開始された読取りサイクルからの出力信号は、クロック２を受けてからに限って出力パッド上に配置される。例えば非同期メモリデバイスからの出力のための待ち時間を選択的に決定する能力が、その結果である。大きい待ち時間を選択することによって、システムは極めて高い周波数の動作を支援することが可能になる。データが入力から PIPECNTDEL 信号によって行われる舵取りまで全て非同期で流れるので、読取りサイクルから出力までのアクセス時間は短い。信号が一連の中間伝送ゲートを通過することによって低速化されることはない。そうではなく、信号は単一の（例えば、ＰＭＯＳ）舵取りゲートを通過するのである。しかも、回路は比較的簡単であり、サブストレートの領域を僅かにしか占有しない。例えば同期ＤＲＡＭと共に使用する場合には、本発明によるシステムは出力パイプライン機能を提供するにも拘わらず、そのチップはパイプライン化されていない類似同期ＤＲＡＭとほぼ同一のサイズである。
【００３０】
図７に、 PIPECNT  生成回路３３０を示す。 PIPECNT  生成回路３３０は、図２の舵取り回路２００のためのパイプカウントを生成するのに使用される。概述すれば、 PIPECNT  生成回路３３０は高性能の、３で除算する回り込み同期カウンタである。特定の最大待ち時間要求（この場合は３）を支援するように３進カウントが選択されている。
回路３３０は LRAS 入力を含む。この入力は、１つの特定実施例ではＤＲＡＭシステム内に使用して、もし RAS  が活動状態でなければ回路を動作不能にするために使用可能である。この機能は不活動状態の RAS  サイクル中の読取りが不可能である時の電力を節約する。ライン LRAS 上の低信号はＮＭＯＳトランジスタ３４６をターンオフさせ、ＰＭＯＳトランジスタ３５２を通してノード N20を高に引上げる。これはカウンタがカウントを前進させるのを防ぎ、カウンタをその現在のカウントにロックする。しかしながら、 RAS  が活動状態になると LRAS 上の高信号がＮＭＯＳトランジスタ３４６をターンオンさせることによって回路３３０を動作可能にし、新しい各クロックがカウントを前進させるのを可能にする。 LRAS 信号は、 RAS  が不活動状態に移行してから、回路２００の枝路内に記憶されているデータを出力するのに十分な数のサイクルの間活動状態に留まらなければならない。
【００３１】
１の待ち時間を使用する場合にはカウント回路３３０は必要ではない。従ってこの回路は CL1  信号を高にすることによって動作不能にすることができる。これにより、ＮＯＲゲート３３４の出力は低信号になる。この論理０が各ＮＡＮＤゲート３６８、３６２、及び３５８の入力の一方に印加される。これはノード N15 - N17  の全てを低に維持し、ＮＭＯＳトランジスタ３７２、３６６、及び３６０を全てオフにする。同時に、ＮＯＲゲート３３４の低出力はＮＡＮＤゲート３７８、３９６、及び４１４の出力を高にさせるので、それらが反転された出力はＰＭＯＳトランジスタ３７４、３９２、及び４１０をターンオンさせる。従って、 N21、N22 、及び N23  が高になりＰＭＯＳトランジスタ３８４、４０２、及び４２０がターンオフする。インバータ３３８の出力はＮＭＯＳトランジスタ３４０、３４２、及び３４３へ高入力を供給する。 PIPECNT0 、1 、及び2 は全て接地に留まって電力を節約する。
更に、もしメモリデバイスが未だにサブストレートバイアスを有していなければ（即ち、電力増加信号が未だに高になっていなければ）、回路３３０は動作不能である。これは、インバータ３３２及びＮＯＲゲート３３４を通して pwrup信号を印加して、１の待ち時間で説明したように、回路３３０を動作不能にすることによって達成する。当業者には明白なように、もし回路がサブストレートバイアスだけで動作しようする（ＤＲＡＭにおけるように）が、サブストレートバイアスが生成される前に動作することを許されていなければ、ラッチアップが発生し得る。
【００３２】
パイプカウント回路３３０は、本質的に、 clkt2  から PIPECNT0 、1 、もしくは 2  まで最小の遅延で移行するようになっている自己開始同期カウンタである。 clkt2  は、クロック入力の立ち上がり縁の直後に発生する短い持続時間の正のパルスである。以下の説明では LRAS が高、 CL1  が低、そして pwrup  が高であるものとする。即ち、回路３３０は動作可能にされている。カウントは clkt2  上に正のパルスが現れた結果発生する。 clkt2  の立ち上がり縁でＮＭＯＳトランジスタ３４４がターンオンし、ノード N20  が接地に引下げられる。ＮＭＯＳトランジスタ３４４がターンオンすると、ＮＭＯＳトランジスタ３６０、３６６、及び３７２のソースが接地に引下げられる。この時点にノード N15、N16 、もしくは N17  の何れかが高になる。説明の都合上、 clkt2  の発生によってノード N15  が高になったものとする。これは、 clkt2  を受信する前に PIPECNT2 が高に選択された（ PIPECNT0 及び 1  は低）場合である。ＮＭＯＳトランジスタ３７２のゲートに論理値１が印加されるためこのトランジスタは導通してノード N21  はノード N29  に従って接地される。後述するように、この時点にはＰＭＯＳトランジスタ３７４はオフである。インバータ３８０及び３８２で形成されるラッチは、逆の状態にされるまでノード N21  を何れかの状態に留まらせる。ラッチは容易にオーバパワーされるように設計されている。ノード N21の低信号は極めて大きいＰＭＯＳトランジスタ３８４をターンオンさせ、信号ライン PIPECNT0 を迅速に高にさせる。インバータ３８６、３８８で形成されている別のラッチは PIPECNT0 上の信号を高に維持する。 PIPECNT0 が高に移ると、先に選択されていたライン PIPECNT2 は大きいＮＭＯＳトランジスタ４２６を介して選択解除され、低になる。これにより、例えばカウント２から０への移行が極めて高速になる。
【００３３】
PIPECNT0 上の高信号はインバータ３８８に低出力を生じさせ、ＮＡＮＤゲート３７８の出力を高にし、インバータ３７６の出力を低にさせる。これらの論理ゲートの小さい遅延の後に、ＰＭＯＳトランジスタ３７４がターンオンする。これは、 clkt2  上のパルスの立ち下がり縁の後に発生する。その結果ＰＭＯＳトランジスタ３７４はノード N21  を高にリセットし、ＰＭＯＳトランジスタ３８４をターンオフさせるが、それは PIPECNT0 が高に切り替わった後に限られる。ＰＭＯＳトランジスタ３８４がオフになり、次のクロックで PIPECNT1 が高に移ると PIPECNT0 はＮＭＯＳトランジスタ３９０を通して急速に接地まで引下げられることが可能になる。 PIPECNT0 が高に選択されると、論理値１がＮＡＮＤゲート３６２への入力に印加される。ＮＯＲゲート３３４は論理値１をＮＡＮＤゲート３６２の他方の入力へ供給する。従ってＮＡＮＤゲート３６２は論理値０を出力する。インバータ鎖３６４の遅延（この遅延は clkt2  上のパルスの幅よりも大きく選択されている）の後、ＮＭＯＳトランジスタ３６６のゲートへ接続されているノード N16  は高に引上げられて次のクロックのための準備が整う。同様に、ＮＭＯＳトランジスタ３７２のゲートへ接続されているノード N15  は、次のクロックの前に低に引下げられる。それは、 PIPECNT0 が高に選択されてＮＯＲゲート３３６の出力を低に引下げるからである。この次のクロックは、トランジスタ３７２がオフになっているために、ノード N21  には影響を与えない。しかしながら、トランジスタ３６６がオンであるために、次のクロックはノード N22  を低に引下げる。 PIPECNT1 が高に選択されると、ＮＭＯＳトランジスタ３９０は PIPECNT0 を選択解除して低にする。
【００３４】
PIPECNT  信号を高速で正に移行させるのは、部分的に、大きいチャネル幅（例えば、 1000 μ程度) を有するＰＭＯＳトランジスタ３８４、４０２、及び４２０を使用して各 PIPECNT  信号に結合されている電線及び論理に伴う比較的大きい容量（キャパシタンス）を急速にプルアップすることによって達成されている。遅延を更に減少させるために、これらのＰＭＯＳトランジスタがノードを高に引上げる前に、それらの反対側のＮＭＯＳトランジスタ３９０、４０８、及び４２６を既にオフにしておく。即ち、例えば、 PIPECNT1 （ＮＭＯＳトランジスタ３９０のゲート）が低である時点にＰＭＯＳトランジスタ３８４は PIPECNT0 を高に引上げる。ＮＭＯＳトランジスタ３９０、４０８、及び４２６も高速での負への移行を達成するために比較的大きいチャネル幅になっている。またこれらのＮＭＯＳトランジスタはそれらの反対側のＰＭＯＳトランジスタが既にオフである間に導通する。それは、ＰＭＯＳトランジスタが限定された持続時間のパルスの間オンになるからである。更に、高速動作を達成するために、 clkt2  に単一のトランジスタ（即ち、ＮＭＯＳトランジスタ３４４）だけを駆動することを要求することによって clkt2  上の容量は最小にされている。もしカウンタが３つの普通のＮＡＮＤゲート（各ノード N21、N22 、N23 毎に１つのゲート）を使用して実現されていれば、３つの分離したＮＭＯＳトランジスタ及び３つのＰＭＯＳトランジスタがノード clkt2  に接続されることになる。これは clkt2  の容量に大きく付加される。
【００３５】
クロックと新しい PIPECNT  の選択との間の極めて短い遅延は、クロックから出力まで極めて短いアクセス時間をもたらしている。図３及び４のタイミング図の例に示すように、パイプカウント回路３３０が発生する信号は急速な移行を有しており、高への移行は clkt2  が高へ移行してから僅かに２インバータ遅延であり、それ自体は外部から受信したクロックが高へ移行してから僅か２インバータ遅延に過ぎない。各信号 PIPECNT0 - PIPECNT2  は１クロックサイクルの間高に選択され、２クロックサイクルの間低に選択される。一方その他は交替で選択される。これらの信号は、特定の対のラッチ、即ち枝路０の記憶ノード N01  及び N04  内に記憶されているデータを選択するために図２の舵取り回路２００と共に使用され、このデータはメモリデバイスから出力データとして出力される。パイプカウント回路３３０は自己開始式である。何れかのサイクルにおいて、もし PIPECNT0 及び PIPECNT1 が共に選択されなければ（ PIPECNT2 が選択されていようと、いまいと) 、ＮＯＲゲート３３６、ＮＡＮＤゲート３６８、遅延回路３７０、及びトランジスタ３７２は、次のサイクルに PIPECNT0 を選択させる。この後は、爾後のサイクルにおいて PIPECNT1 、 PIPECNT2 、 PIPECNT0 、 PIPECNT1 等々のように選択される。
【００３６】
PIPECNT  信号はまた、以下に図８を参照して説明するパイプカウント遅延回路４４０と共に使用される。図１及び２に基づいて上述したように、本発明の I/O  ラインからのデータを舵取りして記憶ノード N01 - N06  の１つを高にセットするためには、２つの事象が発生することが必要である。即ちライン I/O  もしくは I/O# 上に低パルスが現れなければならず、また単一の PIPECNTDEL 信号は低でなければならない。もし PIPECNTDEL0  が低になれば、データは枝路０のノード N01  もしくは N04  へ舵取りされる。もし PIPECNTDEL1  もしくは PIPECNTDEL2  が低になれば、データは枝路１もしくは２のノード N02  または N05、もしくはノード N03  または N06  へそれぞれ舵取りされる。パイプカウント遅延回路４４０は PIPECNTDEL 信号が適切な時点に発生し、適切な枝路へ舵取りされるのを確実にするために使用される。高周波数では、これは特に困難な問題である。１つの特定実施例では、各 PIPECNTDEL 信号は、読取りサイクルが開始されてから約 8.5ｎｓ後にインクリメントし、選択された待ち時間に依存して PIPECNT  出力の特定の１つに従う（反転されている）。
パイプカウント遅延回路４４０は、所望の待ち時間を表す情報を含む幾つかの入力に基づいて PIPECNTDEL 信号を生成する。もし１の待ち時間を使用するのであればこの回路全部が不要であり、従って使用不能にされる。回路は信号 CL1を高にすることによって使用不能にされる。これによりインバータ４４２は低信号を出力するので、ＰＭＯＳトランジスタ５２６、５２８、及び５３０がターンオンする。またＮＡＮＤゲート４４４が高信号を発生し、インバータ４４６が低信号を出力するので、ＮＭＯＳトランジスタ５１４、５１８、５２２がターンオフする。インバータ４４８の高出力はＰＭＯＳトランジスタ５１６、５２０、及び５２４をターンオフさせる。トランジスタ５１４及び５１６がオフで、トランジスタ５２６がオンであると、インバータ５３４の入力は高になり、同様にインバータ５３８及び５４２の入力も高になる。これにより PIPECNTDEL2  信号が高レベルにされるので、舵取り回路２００が I/O  ラインからのデータをノード N01 - N06  へ舵取りすることはなくなる。そうではなく、図５の代替回路が動作可能にされ、如何なる付加的なクロックをも待機することなくデータを I/O  ラインから出力パッドへ非同期的に伝播可能になる。
【００３７】
しかしながら、２もしくは３の待ち時間を使用する場合には、ライン CL1  には０が入力される。さらに、モードレジスタ等を使用して待ち時間を２もしくは３の何れかにプログラム可能に指定することができる。例えば、１つの特定実施例では、 MREG4  ライン上に論理０を印加すると２の待ち時間が選択され、論理１を印加すると３の待ち時間が選択されるようになっている。もし２の待ち時間が選択されれば、トランジスタ４７８／４８０、４８６／４８８、及び４９４／４９６で形成されているマルチプレクサの上側半分が動作可能になる。もし３の待ち時間が選択されれば、トランジスタ４８２／４８４、４９０／４９２、及び４９８／５００で形成されているマルチプレクサの下側半分が動作可能になる。より多くの枝路を有する装置に使用するための他の選択方式を使用して、より多くの考え得る待ち時間を有する回路を作るのに使用することもできる。メモリ設計は、ユーザがモードレジスタ等の中の値に上書きすることによって、導入された部分の待ち時間を変更できるように実現することができる。
信号 PIPECNT0 及び PIPECNT1 は、図７の PIPECNT  回路３３０から受信される。上書き PIPECNT2 信号はＮＯＲゲート５６４によって生成され、 PIPECNT0 もしくは PIPECNT1 の何れもが高に選択されない場合に高に選択される。信号 PIPECNT0 、 PIPECNT1 もしくは PIPECNT2 は、 clkt2  パルスが高になった後に極めて迅速に状態を変化させてクロックから出力までの高速アクセス時間を達成する。 clkt2  パルスは図７のインバータ鎖３５０によって遅延され、また図８のインバータ鎖５６２によって更に遅延されて clkt2  の約 3.3ｎｓ後に正のパルスを発生する。この遅延は、回路のメモリ部分を通るデータパルスの非同期伝播遅延を追跡し、その遅延の 1/3  にほぼ等しい。このパルスは PIPECNT  信号がインクリメントを完了した後に発生し、それらが５ｎｓ後に再度インクリメントできるようになる前に終了する。この正のパルスは、トランジスタ対４５２／４５４、４５６／４５８、及び４６０／４６２で形成されているマルチプレクサを通して各 PIPECNT  出力の新しい状態を伝播させる。マルチプレクサ出力のカウントデータは、 clkt2  信号が図７のパイプカウント回路へ入力されてから約 3.4ｎｓ後にインクリメントされる。インバータ４６８、４７２、及び４７６はこの新しいデータを、約 0.1ｎｓ後にノード N25、N26 、及び N27  へ伝播させる。即ちノード N25 - N27  は 3.5ｎｓ遅れで（インバータ列３５０及び５６２による遅延、マルチプレクサ４５２／４５４を通る遅延、及びインバータ４６８による遅延等によって） PIPECNT0 、1 、2 の反転された移行に追随する。
【００３８】
マルチプレクサを通過した信号はインバータ対トランジスタ対４６６／４６８、４７０／４７２、及び４７４／４７６で形成されているラッチによって維持される。ノード N25 - N27  上のデータは非同期的にノード N28 - N30  へ伝播するが、どの入力 N25 - N27  が所与の出力 N28 - N30  を生成するかは選択された待ち時間に依存する。例えば、もし２の待ち時間が選択されれば、ノード N25からの信号がノード N28  へ渡される。ノード N26  上の信号はノード N29へ、またノード N27  上の信号はノード N30  へ渡される。即ち、 PIPECNT0 が高に選択されることによって適切な遅延の後に信号 PIPECNTDEL1  は低にされる。 PIPECNTDEL2  は PIPECNT1 の選択によってもたらされ、 PIPECNTDEL0  は PIPECNT2 に追随する。この信号配列を図２の舵取り回路２００と共に使用する場合、読取りサイクルの開始後に最初のクロックを受信すると出力パッド１５０にデータが出力されるようになり、つまり図３に示すように２の待ち時間が得られたことになる。
３の待ち時間が選択されると、ノード N25 - N27  上の信号はマルチプレクサの下側半分を通過する。即ち、ノード N25  からのデータはノード N29  へ渡され、ノード N26  からのデータはノード N30  へ渡され、そしてノード N27  からのデータはノード N28  へ渡される。この場合、 8.5ｎｓ早く PIPECNT2 が選択されることによって信号 PIPECNTDEL1  は低にされる。 PIPECNTDEL2  は PIPECNT0 に追随し、 PIPECNTDEL0  は PIPECNT1 に追随する。これにより、読取りサイクルの開始から２クロック後にデータは回路２００によって出力パッド上に配置され、従って図４に示すような３の待ち時間が得られることになる。
【００３９】
異なる待ち時間を選択することの効果は、図３及び４のタイミング図を参照すると理解できる。図４では３の待ち時間が選択され、 8.5ｎｓ早く PIPECNT1 が選択されることによって信号 PIPECNTDEL0  は低にされている。クロック０がこの読取りサイクルを開始させ、クロック１はデータを枝路２（もし使用可能であれば）からデータを選択し、そしてクロック２は枝路０からのデータを選択してこの読出したデータを枝路０内へ舵取りする。従って、所望の３の待ち時間が達成されている。図３では２の待ち時間が選択され、 8.5ｎｓ早く PIPECNT2 が高に選択されることによって信号 PIPECNTDEL0  は低にされている。この場合、クロック０が読取りサイクルを開始させ、データを枝路０内へ舵取りする。クロック１は枝路０内のこのデータを出力として選択し、２の待ち時間を達成する。この信号通路の配列により、異なる待ち時間の間で極めて効率的且つ簡単な選択が可能になっている。勿論、どの PIPECNTDEL をどの PIPECNT  に追随させるかを選択するのに、他の論理手段を使用することができる。例えば、ＮＡＮＤゲートもしくはＮＯＲゲートのような組合わせ論理を使用して、同じような手法で信号を選択することができる。
【００４０】
適切な信号がノード N28、N29 、もしくは N30  に到着すると、それは別の組のマルチプレクサ（トランジスタ対５１４／５１６、５１８／５２０、及び５２２／５２４で形成）を使用して回路の残余を通って進められる。そのタイミングはタイミング信号 COUNTDEL によって制御される。このタイミング信号は次の PIPECNTDEL 信号で発生し、メモリに対して読取り要求が行われてから適切な時間の後に先に発生した PIPECNTDEL 信号を終了させるように設計されている。好ましい実施例では、これらの信号は、データが I/O  ライン上に到着する直前に移行する。高周波数で動作している場合には、正確なタイミングが絶対的に不可欠である。以下の回路はこのシステムが必要とする正確なタイミングを提供する。 COUNTDEL 信号を生成するタイミング回路６００の１つの特定実施例を図９に示す。
I/O  データを回路２００（図２）の種々の枝路へ舵取りするのに使用される PIPECNTDEL 信号は正確なタイミングを必要とする。このタイミングは、 I/Oライン上の負データパルスと共に発生するように調整しなければならない。カラムデコーダ出力（ＤＲＡＭの）が選択されると、アクセストランジスタが選択されたカラムのビット及びビット# を、先に同一電圧に平衡させたローカル I/O及び I/O# ラインに結合する。ビット及びビット# ラインの一方が高であり、他方が低である。差動的にノードへ供給される異なる電圧は、真の、及びその相補ローカル I/O  ライン間に差動電圧をゆっくり発生させる。十分なアナログ信号が発生した後に、ダイナミック差動センス増幅器６２２がこの差動電圧によって表されるデータをストローブする。センス増幅器ストローブは幅の狭いパルスであり、センス増幅器は、ローカル I/O  及び I/O# ラインから受信した差動電圧の極性に依存して、真の、もしくは相補（大域） I/O  ラインの何れかに狭い負パルスを出力する。信頼できる動作を行わせるためには、センス増幅器をストローブする前に十分長く待機して十分な信号が得られるようにすることが重要である。また、これはメモリのアドレス・アクセス時間に付加されるから、必要以上に長く待機しないことも重要である。センス増幅器のストローブのタイミングを正確にするために、選択されたカラムのデコードが発生してから固定された遅延の後に、このタイミングを、ローカル I/O  差動信号を発生させる信号に実際的に厳密に追随させる。１つの特定実施例では、この固定された遅延は回路６００を使用して制御される。
【００４１】
１つの特定実施例では、このタイミング回路６００は８つのプレデコーダ出力 GYA0 - GYA7  を受信し、４つのＮＯＲゲート６０２−６０８、２つのＮＡＮＤゲート６１０、６１２、及び１つのＮＯＲゲート６１４からなる論理ＮＯＲ回路において一緒に論理和する。当業者には明白なように、多くのカラムデコーダの出力を論理和してセンス増幅器ストローブタイミング信号を生成することは実際的ではない。しかしながら、１組８つの「８の中の１つ」のプレデコード出力（それらのパルスの１つは最終カラムデコーダ出力パルスが高になる直前に高になる）を一緒に論理和することは実際的である。これもまた当業者には明白なように、もし選択されたラインパルスが高ではなく低であれば、論理ＮＡＮＤ回路を使用してプレデコードライン内の信号を検出することもできる。
大域Ｙアドレスパルスの何れかが高になるとＮＯＲゲート６０２−６０８の１つの出力が低になり、ＮＡＮＤゲート６１０もしくは６１２の何れかが高になるのでＮＯＲゲート６１４に低パルス出力を発生させる。それ以前には、ＮＯＲゲート６１４の出力は高であり、インバータ鎖６１６の出力は低であった。従ってＮＯＲゲート６１４の出力が短時間（インバータ鎖６１６の遅延に等しい）の間低に移行すると、ＮＯＲゲート６１８は高パルスを出力する。このパルスは、例えば１ｎｓ幅のパルスであってよい。この狭いパルスを選択したことにより、 I/O  ライン上には狭いデータパルスが発生する。 I/O  ライン上のデータパルスが狭いと、後述するようにタイミング余裕が改善される。このパルスの先縁は、プレデコーダ入力の１つが発生（最終列のデコードの発生にほぼ一致する）してから４論理遅延後に発生させることができる。
【００４２】
COUNTDEL の出力上の正のパルスは緩衝され、選択されたメモリアレイの選択されたセンス増幅器だけをストローブするためにバッファ及び選択論理６２０によって論理的に選択される。センス増幅器ストローブはカラムを発生させるものと同一信号（ GYA0 - GYA7  の１つ）によって発生されるから、カラム選択に対するそのタイミングは極めて良好である。センス増幅器ストローブ信号は、カラムが発生してから約 2.5ｎｓ後に生成され、差動信号を発生させるための時間を与えている。センス増幅器及びその出力バッファの遅延の後、 COUNTDEL 上の正のパルスから約４ｎｓ後に、真の、もしくは相補（大域） I/O  ラインの何れかに２ｎｓ幅の負データパルスが発生する。
前述したように、 PIPECNTDEL 信号は極めて正確なタイミングで前進させなければならない。所要のタイミング精度を達成するために、２つの別々の概念を使用する。第１に、 I/O  上のデータはできる限り短いパルスとして発生させる。この短いパルスは、 PIPECNTDEL が誤差を伴わずにインクリメントできる時間の窓を最大にする。この窓は、２ｎｓパルスで、５ｎｓサイクル時間に対しては３ｎｓ幅である。もしセンス増幅器が（パルスではなく）代替として論理レベルを出力するものとすれば、 PIPECNTDEL をデータのインクリメントと正確に同時にインクリメントさせて誤差に対する余裕を残しておかなければならない。第２に、センス増幅器ストローブタイミングをセットする（ I/O  もしくは I/O# の何れかに負パルスを生成する）のと同じ COUNTDEL 信号が、 PIPECNTDEL 信号の前進のタイミングをセットするためにも使用される。勿論、 COUNTDEL 以外の信号を使用することもできる。重要なのは、データを適切に舵取りするために、同一の信号を使用して I/O  パルスの生成と、 PIPECNTDEL の前進の両方を行わせることである。
【００４３】
再び図８を参照する。 COUNTDEL パルスがＮＡＮＤゲート４４４を動作させるために使用されていることが分かる。もし１の待ち時間が選択され、 COUNTDEL 信号パルスが高であれば、ＮＡＮＤゲート４４４は負パルスを出力し、このパルスはインバータ４４６によって反転される。従って多分１ｎｓ幅の正パルスがインバータ４４６の出力に生成される。この正パルスによってノード N28 - N30からのデータはトランジスタ対５１４／５１６、５１８／５２０、及び５２２／５２４で形成されるマルチプレクサを通って信号 PIPECNTDEL1、2 、もしくは 0になる。即ち、もし PIPECNTDEL0  を低にするのであれば、ＮＡＮＤゲート５１２から論理０を出力させ、それを（特定の時点に）トランジスタ５２２及び５２４で形成されるマルチプレクサを通して伝播させ、インバータラッチ５４０／５４２によってラッチさせ、インバータ５４２−５６０によって緩衝させ、そして PIPECNTDEL0  として出力させる。 COUNTDEL から PIPECNTDEL0（もしくは PIPECNTDEL1  または 2）までの合計遅延は約 2.5ｎｓである。これは、ＮＡＮＤゲート４４４、インバータ４４６、ＮＭＯＳトランジスタ５２２、及びインバータ５４２、５５６、５５８、及び５６０を通る遅延である。この 2.5ｎｓの遅延は COUNTDEL から狭い I/O  データパルスの先縁までの 4.0ｎｓよりも小さくなるように特に選択されているのである。従って、 PIPECNTDEL 信号は I/O  ラインパルスが低になる直前にインクリメントされる。 PIPECNTDEL 信号は比較的長い持続時間であり、１クロックサイクル時間の間有効に留まっている。これは、 I/O  パルスが到着できるようにする窓を作るのに役立つ。
【００４４】
図８の回路４４０の１つの特定実施例の種々のノードにおけるタイミングは、以下のように要約することができる。 PIPECNT0 、1 、2 は、あるクロックの各立ち上がり縁の後に迅速に進められる。マルチプレクサ４５２／４５４等は、クロックの立ち上がり縁から約 3.3ｎｓ後に動作可能にされる。ＮＡＮＤゲート５０４−５１２の出力は、マルチプレクサ４５２／４５４等が動作可能にされてから約 1.2ｎｓ、即ちクロックの立ち上がり縁から約 4.5ｎｓ後にインクリメントされる。分離した通路内において、信号 COUNTDEL パルスはクロックの発生後約６ｎｓに正に立ち上がり、１ｎｓ後に立ち下がる。インバータ４４６は、クロックの 6.5ｎｓ後に始まる正の１ｎｓ幅のパルスを出力する。この時点に、マルチプレクサ５１４／５１６等が動作可能になり、 2.0ｎｓ早く（クロックから 4.5ｎｓ後に）有効になるＮＡＮＤゲート５０４、５０８、５１２からのデータを通過させる。最後に、 PIPECNTDEL 出力は、クロックの 8.5ｎｓ後にマルチプレクサ５１４／５１６等が動作可能になってから２ｎｓ後にインクリメントされる。最も重要なのは、それらが２ｎｓ幅の I/O  パルスが到着する 1.5ｎｓ前にインクリメントされることである。サイクル時間が５ｎｓの場合、 PIPECNTDEL 信号は、これも５ｎｓ後に、即ち２ｎｓ幅の I/O  データパルスの終わりから約 1.5ｎｓ後にインクリメントされる。従って、５ｎｓサイクル時間においては、各 PIPECNTDEL は I/O  データパルスの両側の 1.5ｎｓの間有効になり、出現し、消滅して I/O  データを適切に舵取りする。このパルスは、抵抗性の I/O  ラインの遠い端における立ち上がり及び立ち下がり時間がかなり遅いために、多分１ｎｓ幅ではなく、２ｎｓ幅である。同様に、インバータ５０４−５１２の出力は、インバータ４４６の出力における１ｎｓ幅のパルスの両側に２ｎｓの間有効である。従ってＮＡＮＤゲート５０４、５０８、５１２の出力へのデータの到着が２ｎｓだけ早くても、もしくは遅くても PIPECNTDEL のタイミングに変化を与えることはない。これらの余裕によって、 PIPECNTDEL 信号のタイミングの調整が可能になり、またこのパイプライン化の方法が実現可能になるのである。
【００４５】
図８の回路４４０の１つの特定実施例では、ＮＡＮＤゲート５０４、５０８、及び５１２の出力を不能にするために読取り信号を使用することができる。即ちもし読取りサイクルが活動状態になければ、信号ライン READ 上に低信号を印加するとＮＡＮＤゲート５０４、５０８、もしくは５１２の出力の全てが論理値１になる。どの PIPECNTDEL 信号も低にならず、そして、これらの信号を切り替える電力は消費されない。
図１０に、本発明によるリセット回路６３０の１つの特定実施例を示す。パイプラインリセット回路６３０は、本発明の舵取り回路２００への入力である RESET0 - 2 信号を生成するために使用される。 RESET0 信号（正パルス）は回路２００（図２）のノード N01  及び N04  を低にリセットし、ノード NO13 を高にリセットする。この枝路０のリセットは、枝路０からデータを出力するサイクルに続くサイクル内で早めに発生する。即ち、それは、枝路０が最早出力として選択されなくなった直後の、出力として枝路１を選択するサイクル内で早めに発生する。しかしながら、 RESET0 パルスは、新しいデータが I/O  もしくは I/O# から枝路０内へ舵取りされる前に終了する。回路６３０は、前述したようにサイクル内で早めに正パルスを出力するクロック信号 clkt2  によって駆動される。インバータ鎖６４４によって遅延が付加される。鎖内のインバータの数は、パイプカウントが次のカウントへ進んだ後にリセット信号が生成されるように選択されている。例えば図２の回路２００の記憶ノード N01  もしくは N04  は、 PIPECNT0 が選択解除された後のある点において低にリセットする必要があるが、このリセットは新しいデータが PIPECNTDEL0  によって舵取りされてノード N01もしくは N04  を高にセットする前に終了しなければならない。１つの特定実施例では、リセット回路６３０は、クロックの受信から多分３ｎｓ後に正パルスがインバータ鎖６４４の出力に発生するように調整されている。この時点に信号 PIPECNT0 、1 、もしくは 2  の１つが丁度高に選択される。従って、ＮＡＮＤゲート６３２−６３６の１つの出力が低になる。例えば、もし PIPECNT1 が丁度高に選択されていれば、ＮＡＮＤゲート６３２は低パルスを出力し、 RESET0 は高パルスを出力し、このパルスは新しいデータが枝路０内へ舵取りされる前に終了する。他の RESET  信号（１及び２）は、このサイクルにはリセットパルスを発生しない。同様にして PIPECNT2 信号が選択されると RESET1 信号が生成され、 PIPECNT0 信号が選択されると RESET2 信号が生成される。 RESET  信号の生成の相対タイミングは変更することができる。しかしながら、各 RESET  信号は、その枝路が最早出力として選択されなくなった後に発生し、新しいデータがその枝路に到着する前に終了しなければならない。
【００４６】
１の待ち時間が選択されると、インバータ６３１は低出力を供給し、各 RESET0 - 2 は高出力になる。この場合、図２の動作不能にされた回路２００の全てのノード N01、N02 、N03 、N04 、N05 、及び N06  は低にリセットされ続ける。リセット信号の電圧は変化せず、従って電力が節約される。
殆どのメモリ回路は、例えばこのチップと並列の他の同様メモリチップが選択されたような時には、出力を開回路にするように要求される。所与のクロックサイクルがデータを出力するのか、もしくは開回路状態を提供するのかを決定するための論理は、当分野においては公知である。本発明の目的から、この情報はそれが効力を生ずるサイクルの開始の前に有効になる必要がある。 OUTEN（出力可能化）と呼ぶ信号があるサイクルの終わりに発生する（高になる）と、前述したように次の有効データが次のクロックで出力されるようになる。開回路出力を得るために、図６の回路３００において OUTOFF が高になる。この高レベルはインバータ３０２によって反転され、ＰＭＯＳトランジスタ３０４へ低入力を供給する。これはノード PULLUP を高に引上げ、出力ＰＭＯＳトランジスタ３１４をターンオフさせる。 OUTOFF が高レベルになるとＮＭＯＳトランジスタ３１６がターンオンしてノード PULLDN を低に引下げ、出力ＮＭＯＳトランジスタ３１８をターンオフさせる。トランジスタ３１４及び３１８がオフであると、出力は開回路である。
【００４７】
電力を節約するためには、この出力不能化サイクル中に、どのトランジスタも PULLUP を低に引下げないように、もしくは PULLDN を高に引上げないようにする必要がある。暫時図２の回路２００に戻って、 PIPECNT  が進む（例えば、 PIPECNT1 から PIPECNT2 へ）と、 PIPECNT1 は速やかに高を選択して枝路０のＰＭＯＳトランジスタ２３０Ａ及び２４４Ａをターンオフさせ、 PIPECNT2 は速やかに低へ選択解除されてこれもまた枝路０のＮＭＯＳトランジスタ２３４Ａ、２２６Ａ、及び２４０Ａをターンオフさせる。即ち、回路２００の先に選択されていた枝路０が PULLUP を低に、もしくは PULLDN を高にし続けることを阻止される。しかしながら、 PIPECNT1 が選択されている間は枝路１からのデータが、この出力不能化サイクル中に PULLUP を低に、もしくは PULLDN を高にしようとはしない。これは、たとえ PIPECNT1 が高に選択されていても、この出力不能化サイクル中に PCNT1  を低に維持することによって達成される。 PIPECNT1 は高に選択されて、上述したように、先に選択されていた枝路のＰＭＯＳトランジスタ２３０Ａ及び２４４Ｂをターンオフさせなければならない。開回路出力を有するサイクルでは、たとえ信号 PIPECNT0 - 2 が高に選択されていても、 PCNT0 - 2の全ては低である。
【００４８】
PCNT0 - 2  信号は、図１１の回路６５０において PIPECNT0 - 2 信号から導出される。以下に説明するように、もし１つのサイクルの終わりに OUTEN  が高であれば、信号 PCNT0 - 2  は次のクロックに信号 PIPECNT0 - 2 の高にそれぞれ追随する。これは、１より大きい待ち時間で説明済の動作を与える。しかしながら、もし１つのサイクルの終わりに OUTEN  が低であれば、信号 PCNT0 - 2は、その対応信号 PIPECNT0 - 2 が次のサイクルに高に選択されると低を維持する。
PIPECNT0 が高に選択されるサイクルの終わりには、 OUTEN  は高もしくは低であり、それぞれ、次のサイクルの出力を可能化もしくは不能化する。もし OUTEN  が低であり、 PIPECNT0 が高であれば、トランジスタ６６８は小さいインバータ６７４をオーバパワーしてノード N42  を低に引下げる。この時点にはＮＭＯＳトランジスタ６７２はオフであり、インバータ６７６はノード N43  を高に駆動する。インバータ６７４及び６７６は PIPECNT0 が低に移行した後もこの状態を維持する。一方、もし OUTEN  が高であり、 PIPECNT0 が高であれば、ＮＭＯＳトランジスタ６７０及び６７２は共にオンであり、インバータ６７６をオーバパワーしてノード N43  を接地に引下げる。インバータ６７４はノード N42を高に駆動し、 PIPECNT0 が低に移行した後もこの状態をラッチし、維持する。従って、次のクロックで PIPECNT0 が低に移行すると、インバータ６７４及び６７６からなるラッチは最早状態を変えることはできず、それに代わって PIPECNT0 が低に切り替わる直前の OUTEN  の値を表すデータを維持する。
【００４９】
PIPECNT0 が低に移行した時にもし OUTEN  が低であれば（ PIPECNT1 が発生した時に出力を不能化するために）、ノード N42  は低になり、ノード N43  は高になる。 N42  が低であるのでＮＭＯＳトランジスタ６７８はオフになり、 N43  が高であるのでＰＭＯＳトランジスタ６８０もオフになる。この時点には N43  が高であるのでトランジスタ６８８はオンになり、 PCNT1  を低に保つ。このように、先行サイクルの終わりには OUTEN  が低であるので PCNT1  は次のサイクルに PIPECNT1 の高には追随しないから、新しいデータは枝路１からは回路２００（図２）の出力に現れない。 PIPECNT1 が高に移行すると、図示してない他の回路が回路３００（図６）の OUTOFF を高に駆動する。これは PULLUP を高に駆動し、 PULLDN を低に駆動して出力を開回路にする。
一方、もし先行サイクルの終わりに OUTEN  が高であれば（ PIPECNT0 が高である時に）、ノード N42  は高になり、ノード N43  は低になる（図１１）。この場合、トランジスタ６７８及び６８０がオンになり、トランジスタ６８８がオフになる。従って、 PCNT1  は PIPECNT1 の高に追随し、次のサイクルの終わりには PIPECNT1 の低に追随する（ PIPECNT0 は未だに低である）。 PCNT1  が高に選択されているので、回路２００（図２）のノード N02  もしくは N05  からのデータがノード PULLUP 及び PULLDN を共に引上げるか、もしくは共に引下げる。同様にして、 PCNT0  及び 2  は、 PIPECNT0 及び 2  （それらが選択された時に）にそれぞれ、追随するか、もしくは追随しないの何れかである。
【００５０】
以上のように、回路６５０は、 PIPECNT  信号が選択されている時に出力データを供給させるために回路２００の枝路を動作可能にする、もしくは PIPECNT信号が選択されている時にその枝路を動作不能にするための効率的且つ小型の回路を提供している。
以上が本発明の特定実施例の完全な説明であるが、種々の変更を施すことが可能である。例えば、システムには別の回路枝路を設けて１から４までの待ち時間を有するメモリシステムから出力を発生できるようにすることが可能である。また更に、上述した回路は多くの待ち時間の何れかを支援するように複製することができる。パイプラインは多くの同期メモリ製品と共に使用することが可能である。回路は低が活動状態、もしくは高が活動状態である装置に適応させることができる。また回路は正及び／または負の縁でトリガされるように適応させることも可能である。幾つかの例において特定のチャネル幅を記載したが、これらのパラメタは本発明による１つの特定実施例に関連させたに過ぎない。当業者ならばこの明細書によってチャネル幅及びトランジスタの型を特定の要求に適合させるように変更することが可能であろう。
【００５１】
従って、本発明の開示は例示に過ぎず、特許請求の範囲に記載の本発明の範囲を限定するものではないことを理解されたい。
上記の記載に関連して以下の事項を開示する。
１．クロック入力から受けた第１のクロックによって、データを発生する読取りサイクルを開始するようになっている、同期メモリ装置内に使用する集積回路において、
上記第１のクロックによって開始された上記読取りサイクルによって読出された上記データを、あるレジスタの複数の枝路の中の表明された１つの枝路へ舵取りする舵取り手段と、
次のクロックを受信した時に、上記表明された枝路内に記憶されている上記読取りサイクルからの上記データを出力として選択する選択手段と
を備えていることを特徴とする集積回路。
２．上記データは、パルスの形状である上記項１に記載の回路。
３．上記各枝路は第１及び第２のラッチをも含み、上記第１のラッチは論理“１”に応答し、上記第２のラッチは論理“０”に応答する上記項３に記載の回路。
４．上記第１及び第２のラッチは、ある読取りサイクルの開始時にリセットされる上記項３に記載の回路。
５．出力カウントを発生する回り込みカウンタをも備え、上記出力カウントは上記クロックのサイクル毎に変化する上記項１に記載の回路。
６．上記カウンタからの第１のカウント状態が上記第１のクロックによって生成され、上記第１のカウント状態は、上記舵取り手段に、上記レジスタの上記複数の枝路の上記表明された１つへデータを舵取りさせるために使用され、
上記第１のクロックからある数のクロックサイクルの後に発生する上記カウンタからの第２のカウント状態は、上記表明された枝路内に記憶されている上記データを出力として選択するために上記選択手段によって使用される
上記項５に記載の回路。
７．上記クロックサイクルの数は１である上記項６に記載の回路。
８．上記クロックサイクルの数は２である上記項６に記載の回路。
９．上記クロックサイクルの数はプログラム可能にセットできる上記項６に記載の回路。
１０．上記クロックサイクルの数は１もしくは２にプログラム可能にセットできる上記項６に記載の回路。
１１．上記クロックサイクルの数は０、１もしくは２にプログラム可能にセットできる上記項６に記載の回路。
１２．上記クロックサイクルの数は１より大きくすることができる上記項６に記載の回路。
１３．上記クロックサイクルの数は１より大きくプログラム可能にセットできる上記項６に記載の回路。
１４．上記カウンタからの第１のカウント状態が上記第１のクロックによって生成され、上記第１のカウント状態は、上記舵取り手段に、上記レジスタの上記複数の枝路の上記表明された１つへデータを舵取りさせるために使用され、
上記カウンタからの第２のカウント状態が第２のクロックによって生成され、上記第２のカウント状態は、上記舵取り手段に、上記レジスタの上記複数の枝路の第２の表明された１つへデータを舵取りさせるために使用され、
上記カウンタからの第３のカウント状態は、上記表明された枝路内に記憶されている上記データを出力として選択するために上記選択手段によって使用され、  上記カウンタからの第４のカウント状態は、上記第２の表明された枝路内に記憶されている上記第２のデータを出力として選択するために上記選択手段によって使用される
上記項５に記載の回路。
１５．上記第３のカウント状態は、上記第２のカウント状態と同一のクロックサイクルに発生する上記項１４に記載の回路。
１６．上記第３のカウント状態は、上記第２のカウント状態からあるクロックサイクルの後に発生する上記項１４に記載の回路。
１７．上記装置はダイナミックランダムアクセスメモリである上記項１に記載の回路。
１８．上記装置はスタティックランダムアクセスメモリである上記項１に記載の回路。
１９．上記装置はリードオンリーメモリである上記項１に記載の回路。
２０．上記装置は非揮発性メモリである上記項１に記載の回路。
２１．上記回り込みカウンタは自己開始カウンタである上記項１に記載の回路。２２．上記回り込みカウンタは、単一のトランジスタのゲートを表明することによってトリガされる出力カウントを変化させる上記項５に記載の回路。
２３．上記回り込みカウンタは、反対に引込まれることなく複数のノードの１つをある論理レベルに引込むことによって出力カウントを変化させる上記項５に記載の回路。
２４．上記回り込みカウンタは単一のトランジスタのゲートを表明することによって出力カウントを変化させ、上記単一のトランジスタは複数のノードに結合されていて反対に引込まれることなく上記ノードの１つをある論理レベルに引込む上記項５に記載の回路。
２５．クロック入力から受けた第１のクロックによって、出力されるデータを発生する読取りサイクルを開始するようになっている、同期メモリ装置内に使用する集積回路において、
上記クロックのサイクルである出力カウント状態を発生する回り込みカウンタと、
１つの入力として上記出力カウント状態を受信し、別の入力として遅延信号を受信し、舵取り信号を生成して上記第１のクロックによって開始された上記読取りサイクルによって読出された上記データを、あるレジスタの複数の枝路の中の表明された１つの枝路へ舵取りする舵取り回路と、
上記出力カウント状態によって駆動され、次のクロックを受信した時に上記表明された枝路内に記憶されている上記読取りサイクルからの上記データを出力として選択する選択回路と
を備えていることを特徴とする集積回路。
２６．上記各枝路は第１及び第２のラッチをも含み、上記第１のラッチは論理“１”に応答し、上記第２のラッチは論理“０”に応答する上記項２５に記載の回路。
２７．上記第１及び第２のラッチは、ある読取りサイクルの開始時にリセットされる上記項２６に記載の回路。
２８．上記集積回路の出力を不能化する不能化回路をも備えている上記項２５に記載の回路。
２９．上記各枝路は、上記集積回路の出力が不能化されている時には出力として選択されるのを阻止される上記項２８に記載の不能化回路。
３０．上記遅延信号のタイミングは、上記同期メモリ装置のデータ通路内の信号ライン上のデータパルスの存在を検出することによって発生される上記項２５に記載の回路。
３１．上記遅延信号は、上記信号ライン上の上記データパルスよりも持続時間の短いパルスである上記項３０に記載の回路。
３２．複数のセンス増幅器をも備え、上記センス増幅器は上記遅延信号に基づいてストローブされる上記項３０に記載の回路。
３３．上記センス増幅器は、１対のデータラインの一方にデータパルスを生成する上記項３２に記載の回路。
３４．上記データパルスは、上記メモリ装置の最小サイクル時間に対して狭いパルスである上記項３０に記載の回路。
３５．上記集積回路の出力を開回路化する手段をも備えている上記項２５に記載の回路。
３６．上記舵取り回路は、
２の待ち時間と３の待ち時間との間を選択する待ち時間選択入力と、
上記待ち時間選択に応答して上記舵取り信号のための通路を選択する通路選択手段
をも備えている上記項２５に記載の回路。
３７．上記通路選択手段はマルチプレクサである上記項３６に記載の回路。
３８．上記舵取り回路は、
上記遅延信号に応答して選択された信号通路に沿う上記舵取り信号の伝播のタイミングをとるゲーティング手段
をも備えている上記項２５に記載の回路。
３９．１の待ち時間でデータを出力する付加的な回路をも備えている上記項２５に記載の回路。
４０．１の待ち時間が選択された時に上記付加的な回路は使用不能にされる上記項３９に記載の回路。
４１．２もしくはそれより大きい待ち時間が選択された時に上記付加的な回路は使用不能にされる上記項３９に記載の回路。
４２．上記回り込みカウンタは３つのカウント状態の間を循環する上記項２５に記載の回路。
４３．複数のプレデコードラインを有するメモリにおいて、センス増幅器をストローブするタイミングを生成する方法であって、上記方法は、
上記複数のプレデコードラインの何れかの上のデータパルスを検出する段階と、
ストローブ信号を生成する段階と、
上記センス増幅器をストローブして出力信号を生成する段階と
を備えていることを特徴とする方法。
４４．上記出力信号はパルスである上記項４３に記載の方法。
４５．上記ストローブ信号は、上記データパルスよりも持続時間の短いパルスである上記項４３に記載の方法。
４６．上記プレデコード信号の部分集合は、論理ＮＯＲ回路への入力である上記項４３に記載の方法。
４７．上記プレデコード信号の部分集合は、論理ＮＡＮＤ回路への入力である上記項４３に記載の方法。
４８．同期メモリ装置からのデータをパイプライン化する方法において、上記方法は、
第１のデータを発生する第１の読取りサイクルを開始させる第１のクロック信号をクロック入力から受ける段階と、
上記第１の読取りサイクルによって発生した上記第１のデータを、あるレジスタの複数の枝路の第１の表明された１つへ舵取りする段階と、
第２のデータを発生する第２の読取りサイクルを開始させる第２のクロック信号を上記クロック入力から受ける段階と、
上記第２の読取りサイクルによって発生した上記第２のデータを、上記レジスタの上記複数の枝路の第２の表明された１つへ舵取りする段階と
を備えていることを特徴とする方法。
４９．上記各枝路は第１及び第２のラッチをも含み、上記第１のラッチは論理“１”に応答し、上記第２のラッチは論理“０”に応答する上記項４８に記載の方法。
５０．ある特定の枝路の上記第１及び第２のラッチは、データが上記特定の枝路へ舵取りされる前にリセットされる上記項４９に記載の方法。
５１．上記第２のクロック信号を受けた時に、上記第１のデータを出力として選択する段階
をも備えている上記項４８に記載の方法。
５２．第３のクロックサイクルを受けると、上記第１のデータを出力として使用不能にする段階
をも備えている上記項５１に記載の方法。
５３．第３のデータを発生する第３の読取りサイクルを開始させる第３のクロック信号をクロック入力から受ける段階と、
上記第３の読取りサイクルによって発生した上記第３のデータを、上記レジスタの上記複数の枝路の第３の表明された１つへ舵取りする段階と、
上記第３のクロック信号を受けたことによって、上記第１のデータを出力として選択する段階
をも備えている上記項４８に記載の方法。
５４．第４のクロックサイクルを受けると、上記第１のデータを出力として使用不能にする段階
をも備えている上記項５３に記載の方法。
５５．上記装置は、
少なくとも３つの出力を有し、所与のサイクル中に上記出力の１つが表明されるようになっている回り込みカウンタと
不能化信号を受信するようになっていて、少なくとも３つの出力を有する不能化回路
をも備え、
上記不能化回路の上記少なくとも３つの出力は、上記不能化信号が表明されていない限り、上記カウンタの上記少なくとも３つの出力に追随する
上記項４８に記載の方法。
５６．受信された論理“１”を受けるとセットされる第１のレジスタと、受信された論理“０”を受けるとセットされる第２のレジスタと、データ出力とを有する装置からグリッチのないデータの出力を達成する方法において、上記方法は、
上記両レジスタをリセットし、データが到着して上記レジスタをセットするまでリセットさせ続ける段階と、
入力信号を受信して上記レジスタの一方をセットする段階と、
上記両レジスタを出力として同時に選択する段階と
を備え、
上記データ出力は、上記第１のレジスタがセットされて出力として選択されることによって“１”に切り替えられ、
上記データ出力は、上記第２のレジスタがセットされて出力として選択されることによって“０”に切り替えられ、そして
上記データ出力は、上記レジスタが出力として選択され、上記レジスタの一方がセットされるまで切り替わらない
ことを特徴とする方法。
【図面の簡単な説明】
【図１】本発明の１つの特定実施例による舵取り回路の一部分の簡易回路図である。
【図２】本発明の１つの特定実施例による舵取り回路の回路図である。
【図３】２の待ち時間が選択された場合の図２の回路のタイミング図である。
【図４】３の待ち時間が選択された場合の図２の回路のタイミング図である。
【図５】１の待ち時間が選択された場合の舵取り信号のための代替回路である。
【図６】図２及び５の回路の出力を出力パッドまで伝播させる出力回路である。
【図７】図２の回路内に使用するパイプカウントを生成するパイプカウント生成回路である。
【図８】図２の回路内に使用する遅延信号を生成するパイプカウント遅延回路である。
【図９】本発明の１実施例と共に使用するタイミング信号を作るカウント遅延生成回路である。
【図１０】図２の回路をリセットするために使用されるリセット生成回路である。
【図１１】図２の回路と共に使用するパイプライン可能化回路である。
【符号の説明】
１００  舵取り回路
１１０  遅延回路
１１２  待ち時間選択回路
１１８  出力可能化回路
１５０  出力パッド
２００  舵取り回路
２８０  舵取り回路
３００  出力回路
３３０  パイプカウント生成回路
４４０  パイプカウント遅延回路
６００  タイミング回路
６２０  バッファ及び選択論理
６２２  差動センス増幅器
６３０  リセット回路
６５０  パイプライン可能化回路
【図１】
0003683019.tif 000002
【図２】
0003683019.tif 000003
【図３】
0003683019.tif 000004
【図４】
0003683019.tif 000005
【図５】
0003683019.tif 000006
【図６】
0003683019.tif 000007
【図７】
0003683019.tif 000008
【図８】
0003683019.tif 000009
【図９】
0003683019.tif 000010
【図１０】
0003683019.tif 000011
【図１１】
0003683019.tif 000012