本発明の実施の形態に対して更に詳細な参照が行われ、この例は添付図面に例示される。可能であれば同一部材を引用するために図面を通して同じ参照符号が使用される。
図1は、提供される方法及びシステムに係る、記憶装置10、ポータル11及びマイクロプロセッサ20の簡略化された図を例示している。記憶装置10は、RAM(Random Access Memory)、DRAM(Dynamic RAM)、RDRAM(Rambus DRAM)、SDRAM(Synchronous DRAM)、SIMM(Single in−Line Memory Module)、DIMM(Dual in−Line Memory Module)、RIMM(Rambus Inline Memory Module)、磁気メモリ、コンテンツアドレス可能なメモリ、ROM(Read Only Memory)若しくはメモリ出力が電気データとして表現されるか又は電気データに変換されるいずれかのタイプの記憶装置のような、いずれかのタイプの記憶装置である場合がある。ポータル11は、以下に更に詳細に記載される場合がある。さらに、簡略化の理由のため、ポータル11とマイクロプロセッサ20の間の接続においてコンポーネントは例示されていない。しかし、当業者であれば、ポータル11及びマイクロプロセッサ20は、このコネクションにおいて他のコンポーネントを含んでいる場合があることを認識されるであろう。
図1のシステムでは、記憶装置10からのデータは、必ずしも必要ではないが、データがマイクロプロセッサ20にシリアルに送出されるように、シフトレジスタが連続的にクロックされる間にポータル11に同時にロードされることが好ましいが、次いで、データは、ポータル11に再びロードされ、マイクロプロセッサ20にクロックされる場合がある。本明細書で使用される用語「同時に」とは、1制御パルス又はクロック信号の間に生じるイベントを言及し、イベントが絶対的に正確な同じ時間で生じることを必ずしも意味していない。
図1は、マイクロプロセッサ20に接続されるポータル11を例示しているが、ポータル11が他のタイプの装置に接続する場合がある。たとえば、ポータル11は、以下の本出願と同日に提出された米国特許出願に記載されるようなメモリセクションで使用される場合があり、この記載は、その全体としてそのまま引用により明示的に組み込まれる。シリアル番号10/284,199号“METHODS AND SYSTEMS FOR A STORAGE SYSTEM”by M. JAMES BULLEN, STEVEN L, DODD, DAVID J. HERBISON, and WILLIAT T. LYNCH。
さらに、ポータル11は、記憶装置10にデータを書き込むために入力ピン14に接続される。図1の実施の形態では、書き込みのためのデータは、マイクロプロセッサ20から受信される場合がある。他の実施の形態では、データは他の装置から受信される場合がある。
図2は、提供される方法及びシステムに係る、ポータル11及び記憶装置10の更に詳細な図を例示している。当業者にとって明らかであるように、この図は、ポータル11の一般的な動作の説明の助けとなる例示の目的のために簡略化される。
ポータル11は、(この例では、シフトレジスタチェイン12−1及び12−2である)少なくとも1つのシフトレジスタチェイン12を含んでいる。それぞれのシフトレジスタチェイン12は、(このケースではn=8)直列に相互接続される複数のシフトレジスタ16−1〜16−nを含んでいる。さらに、ポータルは、記憶装置10の対応するデータ入力/出力ピン14とシフトレジスタ16を接続するための複数の接続回路17を含んでいる。また、ポータルに制御信号を提供する制御信号発生器15が例示されている。
シフトレジスタ16は、ダイナミックであるかラッチングであるか、シングルクロックであるかマスター/スレーブクロックであるか、サンプリングであるかエッジトリガであるか、データ(D)、RS、又はJK、電荷結合素子(CCD)のステージであるか、若しくはクロック信号に基づいてその入力を出力にシフトするいずれかのタイプの装置といった、如何なるタイプのシフトレジスタである場合がある。シフトレジスタチェイン12は、本発明の範囲から逸脱することなしに多数のシフトレジスタを含む場合がある。
本明細書で使用されるように、用語「シフトレジスタ」とは、入力で信号を受信可能であって、たとえば制御信号又はクロック信号のようなイベントの発生で信号を出力可能な1以上の選択可能な入力をもつレジスタ、装置、ステージ又はその他を言及している。用語「シフトレジスタ」がシングルレジスタステージを意味せず、一連のかかるレジスタを意味することがあるが、本明細書で使用されるように、用語「シフトレジスタ」は、シングルステージを言及する。一連のこれらのシフトレジスタは、本明細書ではシフトレジスタチェイン又はシフトレジスタストリングのいずれかを意味する。一連のレジスタのセットは、シングルチェインのシフトレジスタ又はパラレルチェインのシフトレジスタのいずれかである場合がある一連の(シフト)レジスタのアレイ又はシフトレジスタのアレイを意味することもある。
それぞれの記憶装置10は、記憶装置10への転送及び記憶装置10からのデータ転送のため、複数のI/Oピン14−1〜14−n(この実施の形態ではn=8)を含んでいる。記憶装置10は、本発明の範囲から逸脱することなしにいずれかの数のピンを含んでいる場合がある。さらに、図示されていないが、記憶装置10は、記憶装置から読み取られるべきデータ又は記憶装置に書き込まれるべきデータのためのアドレスを受信するためのピンのような他のピンを含んでいる。シフトレジスタ16及びコネクション及びコネクション回路17に関する更に詳細な説明が後に提供される。
例示では、第一のI/Oピン(14−1)で開始して、1つおきのピン(14−1、14−3,14−5及び14−7)は、記憶装置10−1から接続回路17を介して、シフトレジスタチェイン12−1(シフトレジスタチェイン16−1〜16−4)におけるシフトレジスタ16に接続される。さらに、第二のI/Oピン14−2で開始して、1つおきのピン(14−2,14−4,14−6及び14−8)は、シフトレジスタチェイン12−2におけるシフトレジスタに接続される。同様に、記憶装置10−2のI/Oピンは、シフトレジスタチェイン12−1及び12−2における対応するシフトレジスタ16に接続される。
図は、記憶装置10のI/Oピン14をシフトレジスタチェイン12のシフトレジスタ16に接続する1例を例示しているが、しかし、I/Oピン14は、いずれかのシフトレジスタチェイン12のシフトレジスタ16に接続される場合がある。たとえば、シフトレジスタをデータピンに連続的に接続するよりはむしろ、シフトレジスタは、擬似的なランダム方式で接続される場合がある。たとえば、シフトレジスタチェイン12−1のシフトレジスタ16−1は、記憶装置10−1のピン14−6と接続され、シフトレジスタチェイン12−2のシフトレジスタ16−3は、記憶装置10−1のピン14−4と接続され、シフトレジスタチェイン12−1のシフトレジスタ16−1は、記憶装置10−2のピン14−7と接続される。かかるメカニズムは、暗号化された方式で、又は他の工学的研究のためにメモリに情報を記憶すること、及びメモリにおける情報を抽出することのために利用することができる。
暗号化を利用した実施の形態では、暗号化は、たとえば、ハードワイアード又はソフトウェア(SW)がセレクションを変更するために利用される場合がある。そのライトモード及び/又はその後のリードモードの両方で変更することができる暗号化方式は、書込み時間、及び/又は読出し時間と関連する1つ又は2つの「鍵」が使用される場合がある暗号化であることが好ましい。かかるソフトウェアの変更を達成するため、例として、コネクション回路17の出力とシフトレジスタアレイ内のそれらの伝送ノードを相互接続するワイアリングパスに複数の選択ゲートが挿入される場合があり、又は、入力/出力ピン14−1〜14−nと17−1〜17−nを接続する対応する入力/出力ノードとの間にルータスイッチを挿入することができる。メモリの入力/出力と17−1〜17−nのメモリ側のコネクション回路の入力/出力との間のルータスイッチへのソフトウェア定義入力は、それぞれのメモリの入力/出力が17−1〜17−nのコネクション回路の入力/出力への1つの完全なワイアリングパスを有すること、及び望まれる場合の実施の形態においてそれぞれのコネクション回路の入力/出力がメモリの入力/出力への1つの完全なワイアリングパスを有することを保証するために使用される場合がある。これらのルーティングスイッチ入力は、メモリに書き込まれるか又は送信されるためにメモリから読み出される選択されたファイルのためにコンピュータ制御下で変更することができる。
さらに、図2は2つのシフトレジスタチェイン12−1及び12−2、並びに2つの記憶装置10−1及び10−2をもつアレイを例示しているが、このメカニズムは、シフトレジスタチェイン12をいずれかの数の記憶装置10に接続するために利用することができる。好ましくは、シフトレジスタ16の数は、記憶装置10から同時に転送されたビット数よりも大きいか又は等しい。
たとえば、図2のポータル11は、1つの記憶装置10−1又は10−2にそれぞれ接続される2つのポータル11に分割される。かかる実施の形態では、第一のポータルは、対応するコネクション回路17−1〜17−8と共に、それぞれのシフトレジスタのチェイン12−1及び12−2のシフトレジスタ16−1〜16−4を含んでいる。同様に、第二のポータルは、対応するコネクション回路17−9〜17−16と共に、2つの例示されたシフトレジスタのチェイン12−1〜12−2のシフトレジスタ16−5〜16−8を含んでいる。次いで、2つのチェインのシフトレジスタ16−4及び16−5は、シフトレジスタ16−5がその出力をシフトレジスタ16−4に直接供給するようにシリアルに接続される。
さらに、図2は2つのシフトレジスタのチェイン12−1及び12−2を含むポータル11を例示しているが、ポータルは、いずれかの数のシフトレジスタアレイを含んでいる場合がある。さらに、シフトレジスタアレイ12−1及び12−2は、1つのM×Nアレイに結合され、Mはシリアルに接続されたシフトレジスタのチェイン数であり、nはそれぞれのチェインにおけるシフトレジスタの数である。たとえば、図2の実施の形態では、シフトレジスタ12−1及び12−2は、シングル2×8アレイに結合される。代替的な実施の形態では、アレイの幅及び長さは、本発明の範囲から逸脱することなしに、システム設計者により望まれるサイズとすることができる。シフトレジスタアレイの幅及び長さを異ならせる利点は、後に更に詳細に説明される。
制御信号発生器はポータル11の外部にあるとして例示されているが、制御信号発生器15はポータル11又はマイクロプロセッサ20に含まれる場合があるか、又は制御信号は、ある外部ソース(図示せず)から受信される場合がある。制御信号は、制御信号発生器15の例示となる実施の形態と共に、後に更に詳細に説明される。
さらに、1以上のポータル11がシングルチップに実施される場合がある。さらに、ポータル11に加えて、チップは、制御信号発生器15及び/又は記憶装置10を含んでいる場合がある。たとえば、図2の実施の形態に関して、シングルチップは、ポータル11、制御信号発生器15、及び記憶装置10−1〜10−2を含んでいる場合がある。かかるチップは、記憶装置10とポータル11の間の全てのコネクションがチップの内部にあるため、記憶装置10−1及び10−2からマイクロプロセッサ20にデータを読み出すための2つの入力/出力を必要とする。対照的に、記憶装置10−1及び10−2並びにポータル11が異なるチップ上に実施される場合、記憶装置10とポータル11との間に16のコネクションが存在する。このように、同じチップ上にポータル11と記憶装置10を含むことで、記憶装置からデータを検索するために必要なI/Oコネクションの数が低減される場合がある。メモリI/O及びポータルI/Oにより、個々のチップの設計の制約がなくなり、全ての係るバスが内部にあるので、メモリのための広いI/Oが利用される場合がある。
図3は、それぞれがリングを形成するようにシフトレジスタのチェイン12−1及び12−2が接続される簡略化された図を例示している。かかるメカニズムは、米国特許第5,604,682号、第5,636,139号、第5,581,479号及び第6,356,973号に記載されるような、ストレージリングをロードするために使用することができ、そのデータは、引用により全体としてそのまま本明細書に盛り込まれる。たとえば、例示されるように、図3のリングは、リングを形成するための直列に相互接続される複数のシフトレジスタ16を含んでいる。4つのポータル11が例示されており、複数のシフトレジスタを2つの記憶装置10にそれぞれ接続している。さらに、入力/出力コントローラ31が例示されており、このコントローラは、リングから別の装置にデータを送出し(リードデータ)、及びデータがリングを循環し及び/又は1以上の記憶装置10に書き込まれるようにデータをリングに挿入するために使用される。
また、I/Oコントローラ31は、リング、ポータル及び記憶装置をクロック及び/又は制御するため、他のソース(図示せず)からのクロック信号及び制御信号を受信する場合がある。当業者であれば、これは、メモリ装置が先に引用された特許出願に記載されるようなリングから情報を読出し又は書き込みするために使用される1つの例示的な実施の形態であること、及びいずれかの数の記憶装置、シフトレジスタ、パラレルリング及びI/Oコントローラ31が実現される場合があることを理解されるであろう。
図4は、提供される方法及びシステムに係る、記憶装置10のI/Oピン14とシフトレジスタチェイン12のシフトレジスタ16の間のコネクションに関する更に詳細な図を与えている。より詳細には、図4は、図2に例示されるもののように、記憶装置10のピン14をシフトレジスタのチェイン12のj番目のシフトレジスタ16−jを接続するための手段を例示している。記憶装置10の各ピン14をシフトレジスタのチェイン12の対応するシフトレジスタ16に接続するために使用される類似の接続が使用される場合がある。
図4に例示されるように、シフトレジスタ1−j6は、マスタークロックからの信号を受信する伝送ゲート32、スレーブクロックから信号を受信する伝送ゲート36、並びに2つのインバータ34及び38を含んでいる。伝送ゲートは、「パスゲート」と呼ばれることもある。コネクション回路17は、インバータ40、リードロード信号(RPL)を受信する伝送ゲート42、リードパス信号(RPi)を受信する伝送ゲート46、記憶装置からデータを読み取るためのインバータ44を含んでいる。コネクション回路17は、メモリに書き込まれるべきデータを最初に送出するために伝送ゲート56を含んでおり、完全な信号強度を回復するインバータ54、及びWPL制御入力によりアクティブインバータとなる反転トリステートバッファ52が続く。トリステートバッファは、アクチベートされないとき(容量性の浮動点出力)高インピーダンスを与える。図4は、タイミングパルス発生回路15がポータル11の外部にあることを図2は例示し、図4は仮定しているが、先に記載されたこの回路は、コネクション回路17に関する拡張された記載としてポータル11に含まれている場合がある。
図4では、シフトレジスタ16−jは、レジスタ内に1及び0を記憶するために「ラッチ」の代わりに伝送ゲート(パスゲートとも呼ばれることがある)を使用するため、「ダイナミックシフトレジスタ」と呼ばれる場合がある。図6は、後に記載されるが、シフトレジスタ16−jがラッチを使用する実施の形態を例示している。ダイナミックシフトレジスタは、連続的に再充電される必要があるか、又は電荷が移動されるか、若しくは電荷が失われる。「ラッチ」モードでは、クロスカップルド・インバータは、利得、及び電源が維持される限り記憶された情報を自動的な再充電を提供する。伝送ゲートの出力側のダイナミックストレージは、ダイナミックチャージが部分的に垂れ流されるときでさえ、その利得がフルレベルの1又は0を提供するように、フォロウアップインバータを使用することが好ましい。
伝送ゲート42並びに読み出し及び書き込みのそれぞれのためのトリステートバッファ52、並びに記憶装置10は、同じ記憶装置10について同時の読み出し及び書き込みをシステムが許可しないので、決して同時にアクチベートされないことが好ましい。少なくとも1つのこれら伝送経路が常に開いていることが好ましいので、コネクション回路17のライトチャネルからリードチャネルへ、又はコネクション回路17のリードチャネルからライトチャネルへのデータのループバックがない。リードチャネルでは、2つの伝送ゲート(42及び46)及び2つのインバータ(44及び34)は、フルステージのDレジスタ(又はダイナミックシフトレジスタ)として作用し、RPLは、マスタークロックの役割を果たし、RPiは、スレーブクロックの役割を果たす。伝送ゲート56及びインバータ54は、ダイナミックDレジスタ(又はダイナミックシフトレジスタ)の第一の半分を表し、WPiは、マスタークロックの役割を果たす。レジスタのスレーブの半分について対応する半分のステージは、その出力の常にアクティブのインバータがメモリによりリードアウトが提供されるときはいつでもI/Oインタフェースの制御について「争っている」ので、必要でないか又は望まれない。この問題は、共通のI/Oをもつメモリ内の状況に対応する。メモリを離れるいずれかのリードデータについてトリステートバッファを利用することでメモリにおいて解決することができる。図4では、17のライトチャネルがメモリの内部のリードチャネルに等価であるので、トリステートバッファ52は、17のライトチャネルの出力として挿入される。
RPi及びWPiパルスのフレキシビリティに沿ったメモリ動作にRPL及びWPLの同期が後に記載される。全てのRPiパルス(WPi)は、RPLパルス(WPL)に関して同じタイミングを有するか、全てが異なるタイミングを有するか、又はそれぞれがその間で変化を有する場合がある。しかし、RPL及びWPiパルスがマスタークロックパルスに等価であるので、RPLパルスがRPiパルスに先行し、WPiパルスがWPLパルスに先行することが好ましい。これらのタイミングパルスは、シフトアレイのMC及びSCクロックパルスに関して適切に計時することができる。このタイミングは、ハードウェア(HW)設計によるか、又はソフトウェア(SW)制御と結合されたHW設計により設定される場合がある。ゲート46及び56の特定のレジスタサイトへの接続は、(図4におけるように)HW設計によるか、SW制御と結合されるHW設計により設定される場合もある。
図4について記載されている全てのダイナミック(チャージストレージ)回路は、従来の「ラッチレジスタ」により置き換えることができる。ダイナミックレジスタは、それらの低減されたトランジスタのカウントのために有効である。また、代替的な制御回路17のHWコンフィギュレーションが記憶されたメモリデータを反転するかは重要でない。しかし、反転の数がリードチャネルにおけるのとライトチャネルにおけるのと同じであることが好ましい。これは、ライトチャネルにおけるトリステートバッファ52が非反転バッファよりはむしろ反転バッファであるからである。
図5は、提供される方法及びシステムに係る、図4のコネクションについてクロック信号を例示している。特に、図5は、マスタークロック信号(MC)、ライトパス信号(WPi)、ライトロード信号(WPL)、リードロード信号(RPL)、リードパス信号(RPi)、及びスレーブクロック信号(SC)を例示している。クロック及び制御信号は、マイクロプロセッサ、個別の回路、これら2つの組合せにより提供される場合がある。たとえば、図2では、マイクロプロセッサ22はクロック信号を提供し、個別の制御信号発生回路15は制御信号を生成する。この図におけるタイミングパルスは、ローディング(リード又はライト)動作がシフト動作を中断しないことを保証する。ライトデータは、記憶装置10に書き込まれたときでさえ、アレイを通してシフトし続ける。リードデータは、アレイがさもなければアレイを通してシフトする、アレイにおけるデータを自動的に上書きする。
図4及び図5を参照して、メモリ装置10からシフトレジスタ16にデータを読み出すためのリード動作が記載される。はじめに、記憶装置10には、読み出されるべきデータのアドレスが提供される。このアドレスは、マイクロプロセッサから提供されるか、又は個別のコントローラ(図示せず)により提供される場合がある。次いで、記憶装置10は、データをそのI/Oピン14にラッチする。RPL信号は、メモリについて「出力有効」時間の中心となるように計時されるのが好ましい。これにより、DRAM、SDRAM又は他のタイプの記憶装置が使用される場合であれば何であってもその自然のドリフト又はエージングを可能にする。RPiが狭いサンプリングパルスであるので安定な出力を有することが好ましい。RPiは、電荷を伝送ゲート42の出力側に伝送し、メモリ出力をインバータ44の出力に伝送する。RPiがオフになったときでさえ、及びメモリ出力それ自身が変化した場合であっても、本来サンプリングされた出力は、伝送ゲート46の入力側で利用可能である。
マスタークロック信号(MC)がハイになったとき、入力信号(Din)は、伝送ゲート32を通過し、その反転が伝送ゲート36の入力側に提供される。一般に、Din信号は、シフトレジスタチェイン12の先行するシフトレジスタ16からシフトレジスタ16を通過する信号である。したがって、情報が記憶装置から読出し又は記憶装置に書き込まれていないとき、データは、マスター及びスレーブクロック信号によりチェインにおいてあるシフトレジスタから次のシフトレジスタにクロック(信号のタイムが記録)される場合がある。
このケースでは、しかし、データが記憶装置10から読み出される。したがって、マスタークロック信号(MC)がロウになった後、及びスレーブクロック(SC)がハイになる前、リードパス信号(RPi)はハイになり、インバータ34を通してメモリ装置10からのデータを伝送ゲート36に通過させ、これにより、伝送ゲート32を通して前にクロックされたDinデータを上書きする。RPiは、44と46の間のノードに記憶されるデータを伝送ゲート32とインバータ34の間のダイナミックノードに伝送する狭いサンプリングパルスであることが好ましい。チャージングは、Din及びMCのアクションからのいずれか記憶された電荷を置き換える(上書きする)。インバータ34は、(オリジナル)メモリデータの反転を伝送ゲート36の入力側に提供する。つぎに、スレーブクロック(SC)はハイになり、データはインバータ38を通して、シフトレジスタのチェイン12の次のシフトレジスタ16−j+1に送出される。次いで、データは、マイクロプロセッサ20に到達するまで、マスター及びスレーブクロック信号に従ってそれぞれのシフトレジスタ16から次に通過する場合がある。
図4及び図5を参照して、記憶装置10にデータを書き込むための書き込み動作が説明される。はじめに、データは、前のシフトレジスタ又は他のソースからDinを介してシフトレジスタ16にクロックされる。MCがハイになる前の周期において、このデータは伝送ゲート32への入力で保持される。WPiがハイになった場合、MCがハイになる前に、Dinで保持されているデータは伝送ゲート56を通過し、その反転がインバータ54と取りステートバッファ52の間のノードに存在する。
生じるべき次のパルスは、伝送ゲート32に印加されるマスタークロックである。入力ノードで記憶されていたデータは56と54との間にあるノードに転送されていないが、そのノードが前のステージの出力インバータにより保持されるその電荷を有し続けることが好ましいので、データはオリジナルの入力ノードになお存在する。したがって、ライトデータは、それ自身ライト動作により影響されず、ライト又はリード動作なしにちょうどデータがあったチェインに転送される。このライトデータは、他のメモリでの次のライトダウンストリームため、又はシフトレジスタチェインの終わりでの転送のために使用されるか、使用されない場合がある。
WPLがハイになったとき、MCがロウになったのち、トリステートバッファ52は、WPLによりアクチベートされる。これは反転バッファであるので、入力Dinでのオリジナルのライトデータは、出力I/Oピン14に提供される。WPLは、メモリI/Oが安定であって入力ライトデータにとって受けることができるときに印加されることが好ましい。まさにRPLについて、RPLのタイミングは特定のメモリを収容するために調節することができ、DRAM、SRAM又はいずれか他のタイプの記憶装置について信頼性高く計時することができる。次いで、記憶装置は、記憶装置のアドレスピン(図示せず)を介して受信されたアドレスでメモリに信号を書き込む場合がある。このメモリアドレスは、マイクロプロセッサにより提供されるか、個別の制御回路(図示せず)により提供される場合がある。
リードのための4つのパルス系列RPL,MC,RPi,SC、及びライトのための4つのパルス系列WPi,MC,WPL,SCは、2つの隣接する伝送ゲートが同時に「オン」になることがない(閉じることがない)4相システムとなる。そのMC及びSCのクロッキングによるシフトレジスタアレイは、リード及びライト動作により影響されない状態を継続する。複数のMC(及びSC)パルスは、順序が維持される限り、RPLの後及びRPiの前に生じる場合がある。複数のMC(及びSC)パルスは、WPiの後及びWPLの前にも生じる場合がある。
また、図5は、全てのRPiパルスが同時に生じることがなく、全てのWPiパルスが同時に生じることのないことを示している。後の議論は、ハードウェア(HW)設計が固定されたアプリケーションのための様々なRPi(又はWPi)パルスを提供することができることを示している。セレクタ及びソフトウェア(SW)制御をもつHW設計は、一般的なやり方でRPi(WPi)における変化のためのフレキシビリティを提供することができる。図4は、メモリからシフトレジスタのアレイへのリード及びライトチャネルがハードワイアリングにより固定されることを意味している。これは一般的なケースであるが、メモリからシフトレジスタノードへの可変の接続を許容するセレクタ及びSW制御をもつHW設計を利用することも可能である。
図4は、シフトレジスタの「アレイ」が唯一のシフトレジスタのチェインから構成されることを意味することが意図されていない。複数のチェインは、真のM×nアレイを形成するために並列に配置することができ、この場合、Mはパラレルチェインの数に等しく、nは(等しい長さであると仮定される)それぞれのチェインにおけるレジスタの数に等しい。積M*nはメモリを介して同時にアクセスすることができる全体のレジスタ数に等しい。たとえば、64出力ビットをもつシングルメモリについて、専用のアレイは1×64(シングルチェイン)、2×32(2つのパラレルチェイン)、4×16、8×8、16×4、32×2又は64×1である。Mを選択するために1つの方法は、その後の説明で考慮される。他の実施の形態では、シフトレジスタのアレイは、いずれかの数のシフトレジスタ及びいずれかの数のパラレルチェインを有する場合がある。たとえば、2×34,1×65,6×9等のアレイは、64出力を持つシングルメモリにアクセスするために使用される場合がある。
図4及び図5は、書込みがアレイにおけるアップストリームで実行され、読出しがダウンストリームで実行されない限り、同時ではないが読出し及び書込みの両者について使用することができるシフトレジスタのアレイのケースを与えている。後の説明は、書込み専用のシフトレジスタのアレイが読出し専用のシフトレジスタのアレイから分離されている代替的な実施の形態を与えている。これにより、1つの(又は1を超える)記憶装置で書込みが行われ、1以上の他の記憶装置で読取りが同時に行われる。
図6は、提供される方法及びシステムに係る、記憶装置10のピン14とシフトレジスタ16を接続するために代替的なメカニズムを例示している。この実施の形態では、伝送ゲートの代わりに、相補的な金属酸化膜半導体(CMOS)ラッチシフトレジスタが使用される。
特に、図6の実施の形態の接続回路17は、伝送ゲート42、インバータ40,44,64及び84、反転トリステートバッファ52、並びにラッチレジスタ62及び82を含んでいる。
さらに、シフトレジスタ16は、インバータ76、NANDゲート68,70,72及び80、並びにラッチシフトレジスタ74及び78を含んでいる。NANDゲート68は、その入力としてラッチシフトレジスタ62からの出力、及びリードパス信号(RPi)を受ける。NANDゲート68の出力は、NANDゲート72に接続される。NANDゲート70は、他の入力をNANDゲート72に提供する。NANDゲート70は、その入力としてマスタークロック信号(MC)及び前のリード/ライトシフトレジスタ(Din)からの信号を受ける。NANDゲート72の出力は、S入力としてシフトレジスタ74に供給し、その反転をR入力として供給する。ラッチシフトレジスタ74の出力は、ラッチシフトレジスタ78への入力として供給する。また、ラッチシフトレジスタ78は、スレーブクロック信号(SC)を受ける。
さらに、記憶装置に情報を書き込むため、NANDゲート80は、その入力としてライトパス信号(WPi)及びDinを受ける。NANDゲート80の出力は、コネクション回路17のラッチレジスタ82に送出される。ラッチレジスタ82からの出力の反転は、次いで、トリステートバッファ52への入力として使用される。ラッチレジスタ82の反転が使用されるため、インバータの必要がない。
図6の実施の形態の読出し及び書込み動作は、前に記載された図5に例示されるクロック信号を使用して実行される場合がある。この実施の形態の読取り及び書込み動作は、図4及び図5に記載されたのと同じやり方で実行されるのが好ましい。
図7は、提供される方法及びシステムに係る、図4に例示される記憶装置10のI/Oピン14とシフトレジスタのチェインのシフトレジスタ16との間のコネクションに対する変更を例示している。図7は、17のそれぞれのリード及びライトチャネルにおける伝送ゲート46及び56に先行する2つの更なるインバータ(47及び57)を除いて、コネクション回路17は、図4におけるコネクション回路と同じである。これらのインバータは、これらの伝送ゲート46,56及び32を互いに切り離す。メモリ10に記憶されたデータは、この例では、ライトチャネルにおける反転の数が17のリードチャネルにおける反転の数になお等しいので、オーバラップすることのない実際のデータの反転であり、これは重要ではない。さらに、シフトレジスタ16−jは、図4のシフトレジスタと本質的に同じである。図4と図7との間で本質的に異なるのは、図7が図4の4相スキームよりはむしろ標準的な2相パルススキームを利用していることである。シフトレジスタのアレイにおけるデータシフトは、書込み及び読出し動作のため、割込みなしで継続する。RPLは、生じたときに、MCと同時に起こることが好ましく、RPiは、生じたときに、SCと同時に起こることが好ましい。WPiは、生じたときに、MCと同時に起こることが好ましく、WPLは、生じたときに、SCと同時に起こることが好ましい。
図8は、提供される方法及びシステムに係る、図7のコネクションについてクロック及び制御信号を例示している。例示されるように、マスタークロック信号(MC)は、(図5におけるように)周期的な信号であり、スレーブクロック信号(SC)は、マスタークロック信号(MC)の反転である。リードロード信号(RPL)は、マスタークロック(MC)パルスと同時に起こる。リードパス信号(RPi)は、リードロード信号(RPL)に続いて生じ、スレーブクロック(SC)パルスと同時に起こる。さらに、ライトパス信号(WPi)は、マスタークロック(MC)パルスと同時に起こる。ライトロード信号(WRL)は、ライトパス信号(WPi)に続いて生じ、スレーブクロックパルス(SC)と同時に起こる。
図8では、WPiパルスは、同時に起こるMCパルスと「相関付けされる」と考えられ、WPLパルスは、同時に起こるSCパルスと相関付けされ、RPLパルスは、同時に起こるMCパルスと相関付けされ、RPiパルスは、同時に起こるSCパルスと相関付けされる。用語「相関“correlation”」とは、それぞれのパルスを使用して記憶装置から読み出されたデータ又は記憶装置に書き込まれたデータがシフトのみが行われているようにシフトレジスタがそのシフトを維持するようなやり方で読出し又は書き込まれるように、WPi,WPL,RPL及びRPiパルスが計時されることを意味する。すなわち、記憶装置にデータを書き込むか又は記憶装置からデータを読み出す間、シフトレジスタがそのシフト周波数を維持するように、パルスが計時される。更なる例として、図5では、WPLパルスは、それに続くMCパルスと相関付けされ、WPiパルスは、それに続くSCパルスと相関付けされ、RPiパルスは、それに続くSCパルスと相関付けされる。
図7の回路の読出し及び書込み動作は、図8のクロック及び制御信号が図7の回路の動作のために使用される場合があることを除いて、図4のそれらに対応している。図8におけるパルス波形は、RPiパルスが1つであって、RPLパルスの1.5クロックサイクル後であり、RPLはMCと同時に起こり、RPiはSCと同時に起こる。しかし、いずれか又は全てのRPiパルスは、たとえば、RPLの整数nと2分の1(n+1/2)クロックサイクル後で生じる場合があり、nはゼロよりも大きいか又は等しい。さらに、この例では、WPLパルスは、WPiパルスの1.5クロック周期後に生じ、WPiはMCと同時に起こり、WPLはSCと同時に起こる。しかし、RPiによれば、WPLは、WPiパルスの整数nと2分の1(n+1/2)クロックサイクル後に生じる場合があり、nはゼロよりも大きいか又は等しい。
図7と図4との間の違いは、NORゲート41及びインバータ39の挿入である。NORゲート41は、RPiがアクティブであるときは何時でも伝送ゲート32へのマスタークロックパルスMCの印加を無効にする。伝送ゲート32がディスエーブルになることは、書き込みの間に生じることはなく、したがって書き込みデータは図4におけるようにダウンストリームで継続する。17におけるライトチャネル及びライト動作は、WPi及びWPLパルスが広いことを除いて、及びメモリに記憶されるデータの付随して起こる反転を除いて、図4におけるのと同じである。最後の結果が図4についてと同じであるが、NORゲートの存在により影響されるリード動作である。図4では、MCがアクティブであるとき、伝送ゲート21とインバータ34との間のノードに記憶されるダイナミックチャージは、MCがロウになり、RPiがハイになるときに上書きされる。図4における伝送ゲート46及びインバータ44は、(32と34との間の)このノードの完全な制御を有し、該ノードをリードデータで上書きする。図7では、NORゲートが利用されない場合に生じる場合があるように、MC及びRPiが両者同時にハイである場合、インバータ44及び30はノードの制御を争う。伝送ゲート32をディスエーブルにすることで、アクティブな伝送ゲート46にノードの完全な制御が与えられる。インバータ37−1及び37−2によるスレーブクロックの2つの反転が必要ではない場合があり、インバータ39及びNORゲート41はMCの2つのゲート遅延を必要とするので、MC及びSCクロックがオーバラップしないことを単に保証する。記憶装置をシフトレジスタと接続するための図4〜8の実施の形態は例であるが、当業者であれば、他のメカニズムがコネクション回路17及びシフトレジスタ16のために利用される場合があることを認識されるであろう。
図9は、提供される方法及びシステムに係る、単一又は複数のRPiパルスと共に単一のRPLパルスを発生するための多用途の回路を例示している。この制御回路は、図2で参照された制御信号発生器15で利用される場合がある。例示されるように、回路は、マスタークロック(MC)によりクロックされる伝送ゲート112,116,120,124及び128、並びにスレーブクロック(SC)によりクロックされる伝送ゲート114,118,122及び126を含んでいる。さらに、回路は、インバータ130,132,134,136,138,140,142,144,146,148,150,152,154,156及び158を含んでいる。また、回路は、NANDゲート160,162,164,166及び168、並びにNORゲート170を含んでいる。回路は、その入力として、ポータル11が記憶装置10からデータを読み取るべきときにハイになるリード発生信号(RPGen)を受ける。RPGen信号は、メモリについて低い周波数の制御クロックと一致する複数のマスタークロックサイクルのサイクルだけ続く長いパルスであることが好ましい。マイクロプロセッサ20は、RPGen信号を発生するか、又は分離制御回路がこの信号を発生する場合がある。さらに、マスタークロック(MC)がマイクロプロセッサ20により発生されるか、又は分離制御回路により発生される場合がある。
図9はA,B,C,D及びEとしてラベル付けされる5つの可能性のあるパルスを発生する回路を例示しているが、シフトレジスタのチェインを長くすることで、より多くのパルスが発生される場合がある。様々な出力パルス(A,B,C,D又はE)の中から、RPL及びRPi信号を選択するため、セレクタ(図示せず)又は信号を選択するための如何なるタイプの回路が利用される場合がある。たとえば、例示されるパルスのうち、RPLパルスがパルスA,C又はEのいずれかから選択されることが好ましい。RPiパルスは、RPLに続くことが好ましい。したがって、たとえば、RPLがパルスAとして選択された場合、RPiパルスは、B又はDとして選択されることが好ましい。さらに、たとえば、CパルスがRPLパルスとして選択された場合、DはRPiパルスについて選択されることが好ましい。
RPiパルスの可変のタイミング機能の1つの用途は、2つの異なるデータストリームの間の同期調整用であり、これらのうちの一方は、遠い位置にある場合がある。同期調整の例は、同期されるように、2つのデータパケットにおける開始バイトのアラインメントである。RPiは、プラス又はマイナスn/2クロック周期の調整レンジを有し、いずれかのリードデータがシフトレジスタの出力に現れる時間は、安定のメモリ出力とのそれ自身のアラインメントにおいてRPLが最適化されたままの間であるとしても、RPiのタイミングを単に調整することで変化させることができる。
以下は、RPL,RPi,WPL及びWPi信号を発生するためのこの例示的な回路の動作の簡単な外観を提供し、ポイントP及びRとしてラベル付けされる回路における様々なポイントへの特定の参照をなすものである。RPGen入力からRとしてラベル付けされるポイントに延びる最初の2つの伝送ゲート112及び114、並びに対応するインバータ130及び132は、その後の動作における同期を保証するため、入力パルスRPGenを再び成形する。Pとラベル付けされたポイントでの回路により発生された波形は、1クロック周期に等しい長さの正のパルスであることが好ましい。次いで、このパルスは、レジスタのチェインに移動し、それぞれNAND/インバータの組み合わせで、2分の1のクロックサイクルのRPL及びRPiパルスを生成する。
図10は、A,B,C,D及びEとしてラベル付けされるパルスと共に図9のR及びPとしてラベル付けされる回路のポイントでの信号を例示しており、図9の回路がどのようにこれらのパルスを発生するかに関する理解における助けとするために提供されている。先に説明されたように、RPL及びRPi信号は、これらのパルスから選択される場合がある。例示されるように、パルスAは、たとえば、第一のRPLパルスとして選択される場合があり、MCパルスと同時に起こり、MCパルスによりRPGenの捕捉の正確に1クロックサイクル後になる。
ライト制御信号(WPL及びWPi)に関して、図9の回路は、回路への入力が記憶装置10にデータを書き込むことが望まれるときにハイになるライト発生信号(WPGen)であることを除いて、これらの信号を発生するための使用される場合もある。さらに、かかる実現では、可能性のあるWPiパルスのタイミングは、先の説明(A,C,E,...)におけるRPLと関連されるパルスタイミングと対応し、WPLタイミングは、先の説明(B,D,...)におけるRPiと関連されるパルスタイミングと対応する。一般に、WPLパルスのみが存在するので、及びWPLの前にWPiが生じることが好ましいので、BというWPL選択は、その関連されるWPiとしてAという1つの選択にし、DというWPL選択は、A又はC等といった2つの選択にする。より多くの選択は、より長いシフトレジスタのチェインを必要とする。
図9の回路は、マイクロプロセッサ20に含まれるか、ポータル11に含まれるか、17に関連される分離制御回路である場合がある。これは、図5及び図8に例示されるような制御信号を発生するための回路の1例であるが、当業者であれば、これらの信号を発生するために利用される場合がある様々な他の回路及びこの回路のバリエーションが存在することを認識されるであろう。
図11は、提供される方法及びシステムに係る、RPx及びWPxパルスを発生するために利用される場合がある1つの代替的な例となる回路を示している。この回路は、図2に例示される制御信号発生器回路15で利用されている。例示されるように、この回路は、図9の回路のフロントエンド部分と同一であるフロントエンド部分201を含んでいる。次いで、このフロントエンド部分201の出力は、この例では、パルス信号A〜Pを生成するループ203に供給される。
図9では、RPGen(又はWPGen)は、新たなデータ出力をメモリが提供するたびに外部ソースから回路に入力されることが好ましい。しかし、シーケンシャルな順序でメモリの多くの出力バイトについてメモリにアクセスすることが望まれる場合がある。図11の例となる回路では、回路15は、RPGen要求パルスを受信することに応答して、それぞれのメモリ出力サイクルについて新たなRPx(又はWPx)パルスを連続的に発生する場合がある。完全な周期パルスは、図9におけるのと同じやり方で形成されるが、このパルスは、休止信号がループ201に印加されるまで回路の周りでループし続ける。休止信号は、読出し又は書きこみ動作が休止される場合があることを示すため、RPGen信号を供給するソースのような。外部ソースから回路により受信される場合がある。
この回路では、記憶装置からシフトレジスタのチェイン12に8クロックサイクル毎にM*8ビットがロードされ、次いで、記憶装置からシフトレジスタのチェインにロードされる新たなデータのセットの前に、シフトレジスタのチェインからシリアルにクロックされる。たとえば、図2を参照して、記憶装置10−1及び10−2から8ビットのデータがそれぞれロードされる2つの8ビットのパラレルシフトレジスタのチェイン12−1及び12−2が存在する。代替的な実施の形態では、記憶装置からのデータがロードされるそれぞれのチェインにおけるシフトレジスタの数が大きい場合、ループは単に長くなる場合がある。
回路の動作は、ノード205でのループの終了、NORゲート170及び172の間の(伝送ゲート254,256及びインバータ258及び260を有する)更なるフルステージシフトレジスタ、及び2つの連続したNORゲート172及び174の存在を除いて、図9の動作に対応する。伝送ゲート254及び256を有する更なるシフトレジスタステージは、4つのアクティブロジックゲートのシーケンスに関連する更なる遅延が存在することなしにパイプラインの中断を生じる。このシフトレジスタは、必要とされないが、シフトレジスタループを通してループする完全な周期のパルスにより鋭い波形を提供する。NORゲート172は、更なるシフトレジスタから1方の入力を受け、ループを完成するループバック信号から一方の入力を受ける。NORゲート174は、NORゲート172から入力を受け、休止信号が完全なループサイクルについてハイを保持するときにフルサイクルのパルスを循環するのを停止する外部の休止信号から入力を受ける。RPGen(又はWPGen)信号の反転は、休止信号を提供するための便利な方法である。すなわち、タイミングパルスが継続されるべき完全な時間長についてRPGenがハイに保持され、その負になる反転は、RPGenが再びハイになるまで連続的に印加される休止信号としての役割を果たす。
NANDゲート252〜282に入力されるSelA,SelB等は、電源バスに接続するHWによりアクチベートされるか、適切なRPX及びWPxを選択するためにSWにより選択される。それら選択のチョイスは、関連される記憶装置の公知の特性により、又は後に説明されるようなキャリブレーションテストにより決定される場合がある。これらのパルスのタイミングを選択及び変更する能力は、このアーキテクチャの設計のフレキシビリティに加わる。
以下は、先に記載された方法及びシステムを使用して達成可能な帯域幅の能力のうちの幾つかに関する一般的な説明を与えるものである。以下の記載は、DRAMを引用する。しかし、類似の結果がいずれかのタイプの記憶装置で達成される場合がある。
従来のシステムでは、DRAMからのデータビットは、DRAMのキャッシュに読み出され、次いで、マイクロプロセッサへの転送のために幅Bのバスに直接転送される。ここで、Bは、DRAMのデータI/Oピン数に等しい(又は、複数のDRAMが同時に使用されている場合には、複数のDRAM)。かかるシステムでは、かかるキャッシュの全体のスループットは、B/tCYCLEよりも決して大きくならず、ここで、tCYCLEは、DRAMのサイクル時間である。DRAMが同期DRAM(すなわちSDRAM)ではない場合、tCYCLEは、チップ、寿命、温度、電圧供給の変動等の間のパラメータの違いに依存する変数である。
したがって、Bの幅のバスのそれぞれのワイヤは、tCYCLEのホールド時間を有する。言い換えれば、Bの幅のバスのそれぞれのワイヤは、1/tCYCLEの周波数で動作し、毎秒1/tCYCLEビットのスループットを有する。全ての(B)ワイヤにわたって合計される全体のスループットがBを増加することで増加される場合があるが、個々のワイヤ当たりのスループット、又はそれぞれのワイヤの帯域幅の能力は、1/tCYCLEに制限されたままとなる。シフトレジスタのアレイは、それぞれの出力ワイヤのスループットを結合された技術のフルリミットに等しくするのを可能にし、より少ない数のワイヤにより同じ全体のスループットを生じるのを可能にする。
8つのデータI/Oピンを有する2つのDRAMがかかる従来のシステムで使用され、tCYCLEが20ナノ秒であるとすると、マイクロプロセッサへの最大のスループットは、800メガビット/秒(16/29ナノ秒)である。しかし、16バスのそれぞれは、1/tCYCLEで動作し、このケースでは50MHzである。
図2に例示されるようなシステムについて、8ビットの2つのDRAMは、2つのパラレルシフトレジスタのチェインにそれぞれ接続され、マスター及びスレーブクロック信号は、あるシフトレジスタ16から次のシフトレジスタにビットをシフトする。このように、記憶装置10からシフトレジスタチェイン12にデータを読み出すことにおいて、リードロード信号(RPL)は、DRAMについてtCYCLEと同期されるのが好ましい。すなわち、RPLリードロード信号間の間隔は、動作しているシステム環境のtCYCLEについて最も長い製造業者が保証する値に少なくとも等しいことが好ましい。したがって、マスタークロック信号(MC)の周波数は、DRAMがシフトレジスタに新たなデータをロードする前にシフトレジスタのうちのDRAMから全てのデータをクロックするための十分なクロックサイクルが存在するように、僅か(B/M)/tCYCLEであることが好ましく、ここでBは、DRAMのI/Oピン14の数であり、Mはシフトレジスタチェイン12の数である。
図2のシステムでは、Bは16であり(2・8ビットDRAM)、Mは2であり(2パラレルシフトレジスタチェイン)。したがって、たとえばtCYCLEが20ナノ秒である場合、マスタークロック信号の周波数は、僅か400MHz(16/2/20ナノ秒)であることが好ましい。さらに、このシステムでは、マイクロプロセッサは、毎秒800メガビットを受信しているが、先に記載された従来のシステムにおけるような16のI/Oピンとは対照的に、マイクロプロセッサの(400MHzの周波数でそれぞれ動作する)2つのI/Oピンのみを使用してそのようにすることもできる。
したがって、図2のシステムでは、DRAM10からの16ビットの情報は、毎秒20ナノ秒のマイクロプロセッサに供給される場合がある。さらに、データを受信するため、マイクロプロセッサにより2つのI/Oピンが使用される。さらに、マイクロプロセッサのそれぞれのI/Oピンは、400MHzの周波数でデータを受信する。
したがって、必要なマイクロプロセッサのI/Oピンの数が低減される場合がある。また、マイクロプロセッサのI/Oピンの数が16に保持される場合、16の分離シフトレジスタのチェインが使用される場合があり、同じリード数にわたりマイクロプロセッサで利用可能なBの値を増加することができる。さらに、それぞれのシフトレジスタのチェインの周波数は、シフトレジスタのチェインが接続されるDRAMの数を単に増加することで増加される場合がある。
たとえば、それぞれ8ビットの16のDRAMに接続される16のシフトレジスタのチェイン(M=16)が存在する場合、マスタークロック信号(MC)は、400MHzの周波数を有することが好ましい(16DRAM*それぞれ8ビット/16シフトレジスタのチェイン/20ナノ秒のアクセス時間)。しかし、かかるケースでは、マイクロプロセッサは、6.4ギガビット/秒のデータを受信する(その16データI/Oピンのそれぞれが400MHzの周波数で動作する)。
さらに、マイクロプロセッサが毎秒当たりより多くのデータを望む場合、これは、DRAMの数を増加することで達成され、このことは、(tCYCLEが20ナノ秒であるとして)マスタークロック信号(MC)が増加するのを許容する。たとえば、それぞれ8ビットの32のDRAMが16シフトレジスタのチェインで使用される場合、メモリは、マイクロプロセッサに12.8ギガビット/秒の情報を供給し、マイクロプロセッサのそれぞれのデータI/Oピンのクロック速度は、800MHzで動作する。
以下は、好適な最適化の関係を決定するための方法を提供し、M×nアレイの以下の2つの関係を使用する。最大のメモリのスループット=C*W/tCYCLE=B/tCYCLE、及びシフトレジスタのスループット=(C*W)*fshift/n=(M*n)*(fshift/n)=M*fshift。ここで、Cは同時にアクセスされるチップ数を示し、Wはそれぞれのチップについて出力バイトの幅であり、B=C*Wは同時にアクセスされる全体のビット数であり、Mはシフトレジスタのパラレルチェインの数であり、nはそれぞれのチェインにおけるシフトレジスタの数であり、fshiftはシフトレジスタを動作させるためのクロック周波数(すなわち、シフト周波数)であり、及びtCYCLEはメモリにアクセスするためのサイクル時間である。以下の説明は、システムを最適化するための1つの方法を提供しており、当業者であれば、多くの他のやり方及びシステムを設計するために使用される場合があるパラメータが存在することを認識されるであろう。かかるように、この好適な最適化のメカニズムに関する以下の記載は、この特定の例に本発明を制限するために読まれるものではない。
1実施の形態では、2つの先に識別された関係が互いに等しいものとされる。これにより、関係C/M=fshift*tCYCLE/Wを生じ、以下では最適化の関係と呼ばれる。それぞれのチェインの長さは、それぞれのチェインにおけるレジスタの数であり、n=C*W/Mである。シフトレジスタのアレイは、M×nアレイとして記載される。tCYCLE/Wはいずれか特定のメモリのパラメータであり、この最適化の例のため、定数として考慮することができ、逆数の場合、W/tCYCLEは、M又はfshiftの値が何であろうと、達成することのできる最大の可能なスループットである。fshiftは記憶装置の技術、又は記憶装置のI/O伝送線路の伝達特性に関連する最大値を有するものとする。これは、C/Mを残りのパラメータのままとし、C及びMは互いに線形に依存する。すなわち、Cが2倍になった場合、この例の最適化の関係はMが2倍になる必要があると言われる。
好ましくは、先に記載された方法及びシステムで使用される記憶装置は同期する。しかし、これらの方法及びシステムは、非同期式の記憶装置でも機能する。たとえば、tCYCLEは非同期のDRAMについてかなり変動する可能性がある。非同期のDRAMは外部制御により同期式であることが強制されず、出力は、シフトレジスタにDRAMからのデータをロードするため、同期信号に関してドリフトする場合がある。これにより、データがシフトレジスタに2度読み出されるか、データがシフトレジスタにより全然読み出されない可能性がある。
非同期DRAMが、ページモードで動作するときに、アクセス不可能な内部回路によりそのワードラインのアドレスを循環させる場合、メモリ出力は、マスタークロック信号(MC)とは独立なレートで変化する。かかるメモリによれば、内部で制御されるページモードを許容することが受け入れられない場合があるが、むしろ、制御される外部アドレス発生器により入力アドレスを巡回させる。アドレスイネーブルパルスが内部ページクロッキングを優先する場合、アドレスイネーブルのタイミングは、フィードバックにより連続的に制御することができる。スケジュールされたキャリブレーションテストは、RPLタイミングがクロック周期に等しい量だけインクリメント的に変化するものであって、サンプリングのための(近似的な)セントラルタイムを示し、次のパルスのために選択されたRPL(及び等価なWPL)パルスである。図9及び図11のような回路は、RPL(及びWPL)のための新たなタイミングを選択するためにSW制御を利用することができる。さらに、このシステムの動作を改善するため、DRAMに対する内部変更が行われる場合がある。
図12は、提供された方法及びシステムに係る、多数のポータル11からなるシフトレジスタのチェイン12がシフトレジスタからなるより長いチェインを形成するためにシリアルに接続される実施の形態が例示されている。この例では、ポータル11が2つの記憶装置10−1及び10−2に接続する図2に示される例とは対照的に、それぞれのポータル11は、1つの記憶装置10に接続している。しかし、ポータル11は、いずれかの数の記憶装置10に接続されるいずれかの数のシフトレジスタのチェイン12を含む場合がある。以下の説明の理解を改善するため、それぞれのポータル11のシフトレジスタのチェイン12は、シフトレジスタのアレイ12と呼ばれ、直列に相互接続されるポータル11のシフトレジスタのアレイ12から構成されるより長いシフトレジスタのチェインは、シフトレジスタのチェイン96−1及び96−2と呼ばれる。さらに、先に説明されたように、図12はDIMMである記憶装置10を例示しているが、記憶装置10は、いずれかのタイプの記憶装置である場合がある。
図12は、最初のN/2の記憶装置10がシフトレジスタのアレイ96−1の最初のリード/ライトチェインに接続され、次のN/2の記憶装置10がシフトレジスタのチェイン96−2の次のリード/ライトチェインに接続されるN個の記憶装置を更に例示している。
さらに、この例示的な実施の形態では、それぞれのポータル11は、1つのリード/ライトシフトレジスタのアレイ12及び関連されるコネクション回路17を含んでおり、それぞれの記憶装置10がコネクション回路17を介して対応するポータル11のシフトレジスタのアレイ12に接続される。図では示されていないが、それぞれのポータル11は、RPGen及びWPGenパルス発生回路を含んでいる場合がある。また、ポータル11は、データポータル(Dポータル)11又はメモリインタフェース装置とも呼ばれる場合がある。それぞれのシフトレジスタのアレイ12は、(この図では示されない)複数のシフトレジスタ16を他のアレイと直列に相互接続されるM×nアレイで含んでいることが好ましい。これに応じて、より長いリード/ライトシフトレジスタのチェイン96−1及び96−2は、M×((N/2)n)アレイとして見られる場合があり、ここでMはパラレルチェインの数(このケースでは2)であり、N/2は直列接続されたシフトレジスタのアレイ12の数であり、nはシフトレジスタのアレイ12の長さである。唯一のメモリ10が読み出されるとき、しかし、連結されたM×((N/2)n)のアレイは、通常の動作では、M*nのシフトレジスタのアレイとして機能し、全てのアップストリームのシフトされたデータは、アクティブなM*nシフトレジスタのアレイにより上書きされ、全てのダウンストリームのデータは、新たなリードデータが到達する前にシフトされる。
チェイン96におけるそれぞれのポータル11のシフトレジスタのアレイ12は、シフトレジスタ12−1〜12−(N/2)がより長いチェイン96−1を形成するためにシリアルに接続されるように、チェイン96−1における次のシフトレジスタのアレイ12に接続される。たとえば、チェイン96−1について、シフトレジスタのアレイ12−1は、シフトレジスタのアレイ12−2に接続され、このアレイ12−2は、より長いリード/ライトのチェイン96−1を形成するため、次のシフトレジスタのアレイ12−3に接続される。したがって、データがシフトレジスタのアレイ12−1からクロックされるとき、このデータは、シフトレジスタのアレイ12−2にクロックされる。このように、リードデータは、シフトレジスタのチェインを通してクロックすることができ、最後のシフトレジスタのアレイ(たとえば、12−N/2又は12−N)から、たとえばマイクロプロセッサに出力される。しかし、図12のこの実現では、データはシフトレジスタからセレクタ94にクロックされ、このセレクタは、図12〜図14に記載される実施の形態から複数の任意の出力ポートのうちの1つにデータを切り替える。たとえば、図12〜図14の例示的な実施の形態では、出力ポートは、光ファイバケーブル(A又はB)である。他の例では、これら出力ポートは、ルーティングチャネル、スイッチングケーブル、又はシステム設計者により望まれるいずれか他の適切なコンポーネントである場合がある。セレクタ94は、ルーティングを決定する個別のセレクトアドレスにより制御される。
図12に示されるアーキテクチャは、m個のシフトレジスタのチェインのそれぞれについてより長いネットチェインを生じるDポータルの連結により、幾つかの制限を導入し、幾つかの動作上のフレキシビリティを付加する。それぞれのDポータル11がその関連されるメモリ10に関して最適化される場合、特定のハードウェアの値fshift,M及びnを有する。Mは「最適なM」であり、全ての他のパラメータが固定されたときにライン当たりのスループットを最大にするMである。これは、大部分のアクセスが一度に1つのメモリ10についてであるときに行われる設計上の選択である。隣接するメモリ10及びその関連する連結されたDポータル11が同時にアクセスされる場合、それぞれのDポータル11は、連結されたシフトレジスタのアレイのどこかで望まれない上書きの発生なしに、新たな情報をそのシフトレジスタアレイに読むことができる前に、2*nクロックシフトを待たなければならない。それぞれのワイヤのスループットは影響されず、したがって、2つのメモリのための全体のスループットは、1に関して同じであるが、それぞれのメモリのサイクルタイムが2倍される必要がある。あるアプリケーション又は他の工学的な研究について、2つのメモリにアクセスし、1つのデータストリームでそれらの出力をインタリーブするためのフレキシビリティを有することが望ましい場合がある。1度に1つのメモリのみにアクセスするのを好む最適化は、図12の例では2である、それ自身のポート数でI/Oトラフィックが制限されるときに、受け入れることができ、望まれる。しかし、それぞれの記憶装置10からの出力バイトWを多重する、すなわちインタリーブすることが望まれる場合、全てのN/2の記憶装置10に同時にアクセスすることができる。先に使用されたのと同じ表記を使用して、CはN/2に等しくなり。nはn*N/2に等しくなる。図12のケースについて固定されるMがC=1についてスループットを最適化するために選択される場合、新たなスループットレートはM*fshiftに等しい。(最適化の関係はCによりMを増加し、Cによりスループットを増加している。)異なるDIMMからの出力バイトを多重化するこのフレキシビリティは、たとえば、2つのファイルからデータベースを比較するために使用することができる。マルチプレックスインタリーブによるかかる多数の記憶装置10(たとえばDIMM)のアドレス指定をシステムが受け入れ、望む場合、RPL及びRPiのタイミングループは、それぞれのポータルについて長くなければならず、タイミングセレクションは、多数の同時の読出しが要求されるときであれば何時であっても調整されなければならない。図11におけるループは、全ての記憶装置がインタリーブされるときに最も長い期間を収容するため、それぞれのポータルにおけるそれぞれのパルス発生回路について(W/M)*N/2=n*(N/2)クロックサイクルの長さである。C=N/2についてそれぞれのDポータルのループ内で選択される1つのRPLが存在し、N/2のRPLがC=1について選択される。1つの休止入力によるよりも早くループをシャットダウンするため、N/2の休止入力のロケーションが使用される場合がある。
さらに、図12は、ライトテンポラリポータル(Tポータル)82、テンポラリストレージ記憶装置84、テストセレクタ86、スイッチルータ88、並びにセレクタ90−1及び90−2を例示している。これらのコンポーネントは、この例示的な実施の形態に含まれ、異なる実施の形態に含まれるか又は含まれない場合がある。ライトテンポラリポータル82は、Tポータルとも呼ばれ、Dポータル11の全てのエレメントを盛り込んだ、左記に記載されたようなシフトレジスタアレイであることが好ましい。テンポラリストレージ記憶装置84は、DRAM,SDRAM,SIMM,DIMM等のような、いずれかのタイプの記憶装置である場合がある。セレクタ86,90−1,90−2及び94は、複数の入力信号のなかから選択するためのいずれかのタイプのセレクタである場合がある。ライトスイッチ88は、複数のポートのうちの1つのポートからいずれかのポートに入力トラフィックを送出するためのいずれかのタイプのスイッチ又はルーティングセレクタである場合がある。
リード/ライトコネクション回路17は、図4〜図8を参照して記載されるような回路を含んでいることが好ましい。さらに、図示されていないが、制御及びクロック信号は、マスタークロック(MC)、スレーブクロック(SC)、リードロード信号(RPL)、リードパス信号(RPi)、ライトロード信号(WPL)、及びライトパス信号(WPi)を提供するために先に記載されたような回路を使用して図12の実施の形態に提供される場合がある。たとえば、図9及び図11を参照して記載された回路は、制御信号を発生するために使用される場合がある。記憶装置10は、たとえばDRAM、SDRAM、SIMM、DIMM等といった、先に説明されたようないずれかのタイプの記憶装置である場合がある。
ここで、図12の実施の形態のための書込み動作が記載される。記憶装置10に書き込まれるデータは、ライトTポータル82にはじめに到達する。このTポータル82は、シフトレジスタのアレイ、制御回路及び制御パルス発生回路を含むDポータル11と全く同様である。このデータは、光ファイバケーブル又は他の高スループットのワイヤリングを介して、及び個別の制御回路(図示せず)の制御下で供給される場合がある。
データが書き込まれることになる記憶装置10がビジーであるか、又はビジーでない場合でさえ、データは一時的な記憶装置84に書き込まれる場合があり、この場合、記憶装置10がライトデータを受信する準備があるまで保持される。記憶装置10がライトデータを受信する準備があるとき、データはテストセレクタ86に通過され、このテストセレクタは、書込み動作であるので、ライトデータWDをライトスイッチ(ルータ)88に通過するように設定される。ライトスイッチ88は、記憶装置10に関連する適切なシフトレジスタ96のチェインにデータが送出されるように、ライトスイッチ88を切り替える選択信号を受ける。次いで、ライトデータは、シフトレジスタのチェインにクロックされ、シフトレジスタのチェインでは、このライトデータは、データが書き込まれることになる記憶装置10に対応するシフトレジスタのアレイ12にロードされるまでクロックされる。次いで、図4〜図8を参照して先に説明されたような方式でデータがメモリに書き込まれる。
ここで、図12の実施の形態について読出し動作が説明される。はじめに、たとえば宛先アドレスのようなヘッダデータは、適切なリードセレクタ90−1又は90−2に供給される。宛先アドレスは、データが適切なアドレスに送出されるように、図12の実施の形態とデータが送出されるべき宛先との間のスイッチがデータを切り替えるために使用するアドレスである。たとえば、宛先がインターネットに接続されたコンピュータである場合、宛先アドレスは、IPアドレスとすることができる。代替的に、宛先アドレスは、先に引用された、本出願と同日に提出された米国特許出願“METHOD AND SYSTEMS FOR A STORAGE SYSTEMS”by M. JAMES BULLEN, STEVEN L. DODD, DAVID J. HERBISON, and William T. LYNCHに記載されたストレージハブのような、ストレージハブにおけるスイッチが使用する場合がある内部アドレスである。
前の「宛先に関連した」データ以外のデータが、又は前の「宛先に関連した」データに加えて、たとえばキャッシュディスクアレイ(CDA)システムからのような記憶装置以外のソースから到来する場合、このデータは、セレクタ90−1及び/又は90−2を使用してアレイにシリアルにロードすることができ、たとえばマイクロプロセッサに単に送出することができる。システムがたとえばマイクロプロセッサとの直接な通信についてのみ意図され、シリアル入力は期待されず、リードセレクタ90−1及び90−2が使用される必要がない。次いで、データは、適切なシフトレジスタのチェインにクロックされ、シフトレジスタを通してクロックされる。
つぎに、データは、チェインにおける記憶装置10からチェインにおける対応するシフトレジスタのチェイン12にロードされ、ヘッダデータHD(たとえば、宛先アドレス)がチェインのフロントに添付される。
次いで、データは、シフトレジスタのチェインを通して、及び該チェインからシリアルにクロックされ、セレクタ94に通過される。セレクタ94は、光ファイバケーブルのうちの1つを介してデータを送出するのをセレクタ94に指示する制御信号を受ける。次いで、セレクタ94は、適切な光ファイバケーブルにデータを切り替える。他の実現では、ポータル11がマイクロプロセッサに直接的にデータを送出する図1に例示されるように、セレクタ94が含まれる必要がない。
ここで、図12の実施の形態のためのテスト動作が説明される。所定の例では、既知のデータを使用してシステムを試験することが望まれる場合がある。システムを試験するとき、テストセレクト信号は、ライトスイッチ88にテストデータを送出し始めることをセレクタに指示するライト/テストセレクタ86に送出する。テストセレクタ86は、コントローラ(図示せず)、別の装置、記憶装置、又は他のタイプの記憶媒体(図示せず)から入力ピンを介してテストデータを受ける場合がある。第二のセレクトリードは、ライトデータ又はテストデータのいずれかの代わりに、シフトレジスタのアレイに入力されるべき0のセット(クリアデータ)を許可する。クリアデータは、既知の初期化の状態にレジスタをリセットする。
このテストデータは、全体の動作をテストするために記憶装置10に書き込まれ、後に読み出される。かかる入力は、システムの可用性及び品質をテストするプログラムされたセルフテストのために非常に有効である。ライトデータは、リード/ライトチェイン96−1又は96−2のいずれかにおける記憶装置10のいずれか1つ又は全部に書き込まれる場合がある。
図13は、提供される方法及びシステムに係る、記憶装置10から読み取るための個別のシフトレジスタのチェイン、記憶装置10に書き込むための個別のシフトレジスタのチェイン96を使用する実施の形態を例示する。例示されるように、実施の形態は、ライトテンポラリポータル(Tポータル)82、テンポラリストレージ記憶装置84、テストセレクタ86、リードセレクタ90−1及び90−2、データ書き込み用のシフトレジスタアレイのチェイン96、データ読出し用のシフトレジスタアレイの1以上のチェイン98−1及び98−2、リード/ライト制御回路17、記憶装置10及びリードセレクタ94を含んでいる。図示されていないが、それぞれのポータルは、そのRPGen及びWPGenパルス発生回路を含んでいることが好ましい。
1つのライトチェインのアレイは、書込み動作が読取り動作よりも一般的ではないときに有効である。好ましくは、一度に1つの記憶装置10が書き込まれる。同じデータが幾つかの記憶装置に書き込まれ、記憶装置のアドレス指定が適切に計時される場合に、幾つかの記憶装置10が一度に書き込まれる。これは、書き込まれたデータが書き込み動作の間に破壊されないが、規則的にシフトされたデータとしてアレイを下り続けるため、図4、図6及び図7における設計の特徴のうちの1つである。リード/ライトアレイをリードオンリ及びライトオンリアレイに分割することで、現在読まれていない記憶装置10で書き込みを行うことができる。これにより、読み取りがプライオリティを有することが可能となり、書き込みがその書込みを実行するための多くの機会を有することが可能となる。たとえば、記憶装置10−1が読み出される場合、この例では、(出力が多重化され、RPxパルスが変更されない限り)記憶装置10−2は読み出すことができず、メモリ装置10−2は書き込むことができない。
ここで、図13の実施の形態のための書込み動作が説明される。記憶装置10に書き込まれるデータは、ライトテンポラリストレージ82にはじめに到達する。データが書き込まれる記憶装置がビジーであるか、又はビジーではない場合でさえも、記憶装置10がデータを書き込む準備があるまで、テンポラリストレージ記憶装置84にデータが書き込まれる場合がある。
記憶装置10はデータを受信する準備があるとき、データはテストセレクタ86に通過され、このテストセレクタは、書込み動作であるため、書込みシフトレジスタのチェイン96のチェインに書き込みデータを送出するために設定される。次いで、データは、データが書き込まれる記憶装置10に対応するライトシフトレジスタアレイにロードされるまで、シフトレジスタのチェイン96を通してクロックされる。次いで、データは、図4〜図8を参照して先に記載されたような方式で、メモリに書き込まれる。1以上のコントローラ(図示せず)は、適切なロケーションにある適切な記憶装置10にデータが書き込まれるのを保証するため、WPGen、マスター及びスレーブクロック信号等のような、他の制御信号と共にデータが書き込まれるアドレスを記憶装置に供給する。
つぎに、図12の実施の形態の読出し動作が記載される。はじめに、読み出されるべきチェインについて、リードセレクタ90にヘッダデータ(HD)が供給される。次いで、アレイのチェイン98を通してヘッダデータがクロックされ、セレクタ94に出力される。次いで、リードデータは、チェインにおける記憶装置10から対応するシフトレジスタアレイ12に同期してロードされる。次いで、ヘッダデータがシリアル化されたデータのフロントに添付されるように、データは、シフトレジスタ96のチェインを通してクロックされ、リードセレクタ94に通過される。リードセレクタ94は、制御信号を受信し、この信号に従って、ヘッダデータ及びリードデータをセレクタ94の適切な出力に向ける。次いで、光ファイバケーブルのうちの1つを介して、その宛先にセレクタからデータが送出される。データがマイクロプロセッサに供給される図1に例示されるような実現では、リードチェインセレクタ96が含まれる必要がない。
図12の実施の形態におけるように、テストセレクタ86は、システムを試験するため、また、テストデータを記憶装置に供給するために使用される場合がある。また、システムを試験するため、宛先データの代わりに又は宛先データに続いて、90−1又は90−2にテストデータが供給される場合がある。かかる動作は、特定の宛先へのルーティング、及び宛先による擬似データの受け入れを試験するために有効である。
図14は、提供される方法及びシステムに係る、ライトシフトレジスタアレイの複数のチェイン102及びリードシフトレジスタアレイの複数のチェイン104を利用した実施の形態の上位レベルの図を例示している。さらに、本実施の形態は、図12のライトセレクタ88に類似して機能するライトセレクタ106を含んでいる。より詳細には、ライトセレクタ106は、ライトセレクタ106に適切なライトシフトレジスタアレイのチェインにデータを切り替えさせる制御信号を受ける。先の実施の形態におけるように、1以上のコントローラ(図示せず)は、どの記憶装置10にデータが書き込まれるか、又はどの記憶装置10からデータを読み出すかを判定するため、これらの様々な装置への信号を供給し、記憶装置10におけるデータをリード又はライトするためのアドレスを供給し、特定の実現により要求される全ての他の制御及びクロック信号を供給する。いずれか2つの隣接するDポータルを互いに直列に接続することができる手段を組み込むことも容易に可能である。より多くのセレクタ回路により、いずれか2つのDポータルを互いに直列に接続することができる。これは、たとえば、2つのファイルからのデータを多重化すること、2つのファイルを比較すること、及び(畳み込み積分のような)特別の数学演算を2つのファイルに実行するために行うことができる。医療のスキャン、フィンガープリント、セキュリティチェック等に関する大容量データベースでのサーチを支援することができる。
図12及び図13の実施の形態は、先に引用された米国特許出願“METHOD AND SYSTEMS FOR A STORAGE SYSTEMS”by M. JAMES BULLEN, STEVEN L. DODD, DAVID J. HERBISON, and WILLIAM T. LYNCHに記載された実施の形態で使用されたデータポータル(Dポータル)で利用される場合がある。より詳細には、図12では、記憶装置10に対応するリード/ライト制御回路17及びリード/ライトシフトレジスタのチェイン12(たとえば、記憶装置10−1に対応するリード/ライト制御回路17−1及びリード/ライトシフトレジスタチェイン12−1)がDポータルとして利用される。また、図13におけるように、記憶装置10に対応するリード/ライト制御回路17、ライトチェイン96のライトシフトレジスタのチェイン12、及びリードチェイン98のシフトレジスタのアレイ12の組み合わせがDポータルとして利用される場合がある(たとえば、記憶装置10−1に対応するライトチェイン96のライトシフトレジスタアレイ12−1、リードチェイン98−1のリードシフトレジスタアレイ12−1、リード/ライト制御回路17−1)。同様に、図14では、記憶装置10に対応するリード/ライト制御回路17、対応するライトシフトレジスタアレイ12、及び対応するリードシフトレジスタアレイ12がDポータルとして利用される場合がある。
先に説明されたように、図2に例示されるポータル11は、制御信号発生器15を含んでいる場合がある。図15は、図2に例示される実施の形態に対する代替的な実施の形態を例示しており、ポータル11は、制御信号発生器15を含んでいる。図2及び図15のこのポータル11は、単一のチップ上に実施される場合がある。ポータル11は、図12〜図14におけるように、結合されたリード/ライトアレイ又は独立なリード及びライトアレイのいずれかを組み込む場合がある。
図16は、別の代替を例示しており、提供される方法及びシステムに係る、単一のチップ160が1以上の記憶装置10、ポータル11及び制御信号発生器15を含んでいる。この例では、記憶装置10とポータル11の間のコネクションは、チップ160の内部にある。かかるように、ポータル11及び記憶装置10−1及び10−2がそれぞれの個別のチップである例示的な実施の形態とは対照的に、チップ160は、記憶装置10からのデータを読み出すために2つ(M)のI/Oピンを必要とする。個別のチップを使用した例では、ポータル11と記憶装置10を接続するために16(B=C*W=M*n)のピンが使用され、ポータル11からのリードデータを転送するために更なる2つ(M)のI/Oピンが使用される。このように、ポータル11と同じチップ上に記憶装置10を含むことで、I/Oピンの数が低減される場合がある。これは、たとえば、より高い価格で2つのチップを有するのに対する好適な代替としてメモリ製造者又は顧客によってこの設計が許容されるような、所定の例において好適な場合がある。メモリ出力の幅は、Bビットのメモリ出力がチップ内部にあるので、I/Oピンのカウントにより制限されない。カスタマアプリケーションは、その入力ポートの数がBからMに低減されるので、そのチップ内で非常に幅の広いデータバスを収容することができる。Mリードの多重化された入力は、完全に同期され、チップ160からのクロック信号によりBワイヤに分離することができる。
本発明に関する好適な実施の形態及び方法であると現在考えられるものが例示及び記載されたが、本発明の真の範囲から逸脱することなしに、様々な変化及び変更が行われる場合があること、等価な構成がそのエレメントについて置き換えられる場合があることが当業者により理解される。
さらに、本発明の中心的な範囲から逸脱することなしに、特定のエレメント、技術又は実現を本発明の教示に適合するため、多くの変更がなされる場合がある。したがって、本発明が本明細書に開示される特定の実施の形態及び方法に限定されないが、本発明が特許請求の範囲に含まれる全ての実施の形態を含んでいることが意図される。