一般に、少なくとも一部の実施形態は、個別の記憶装置、および記憶装置と互換性がないフォーマットまたはプロトコルを有するグローバルメモリ制御信号に応答して個別の記憶装置を制御するためのブリッジデバイスを含む複合記憶装置を対象とする。個別の記憶装置は、既製品(commercial off-the-shelf)の記憶装置またはネイティブまたはローカルのメモリ制御信号に対応するカスタムの記憶装置とすることができる。グローバルおよびローカルのメモリ制御信号は、コマンド、および異なるフォーマットをそれぞれ有するコマンド信号に対応する。
個別の記憶装置と関連する複合記憶装置の全体的な読込みおよび書込み性能を向上させるために、ブリッジデバイスは、個別の記憶装置の最大定格周波数より大きい周波数で書込みデータを受信し、読込みデータを提供するように構成される。しかし、複合記憶装置内の個別の記憶装置は、ブリッジデバイスがそのより高いデータレートで読込みデータを出力することができるように、その読込みデータをブリッジデバイスに十分に速くリアルタイムで提供することができない。したがって、速度のこの不整合を補償するために、ブリッジデバイスは、個別の記憶装置のページバッファから読み出されるデータのページの少なくとも一部を一時的に格納する、または個別の記憶装置のページバッファに書き込まれるようにするためのメモリを含む。
したがって、本実施形態のブリッジデバイスは、少なくとも2つの異なるクロックドメインを有する。第1のクロックドメインは、コマンドを個別の記憶装置に提供する、メモリから個別の記憶装置にデータを書き込む、および個別の記憶装置から受信された読込みデータをメモリに格納するよう制御する役割を果たす回路を含む。したがって、第1のクロックドメインにおける回路の動作は、個別の記憶装置の動作周波数に対応する第1の周波数を有するメモリクロックと同期する。第2のクロックドメインは、個別の記憶装置向けの外部書込みデータを受信し、メモリに格納する、およびメモリに格納されている個別の記憶装置からの読込みデータを提供する役割を果たす残りのすべての回路を含む。一般に、第2のクロックドメインの回路は、少なくとも個別の記憶装置の周波数以上の周波数で動作するように同期される。第2のクロックドメインのために提供されるクロック信号は、個別のクロック生成器またはコントローラ、例えばメモリコントローラなどによって提供されるシステムクロックとすることができる。
複合記憶装置、および特にブリッジデバイスは、システムクロックのみを受信する。したがって、第1の周波数を有するメモリクロックは、ブリッジデバイスにおけるクロック制御回路によって、内部で生成される。第1の周波数を有するメモリクロック信号を生成するために、位相ロックループ(PLL)回路または遅延ロックループ(DLL)回路をこうしたクロック制御回路に含めることはできるが、DLLおよびPLLは電力の効率が悪い回路であることは知られている。したがって、これらは、例えばバッテリなどの有限の電源が唯一の使用可能な電源である携帯型の電子機器または装置の使用に適していない。さらに、同じバッチの個別の記憶装置は、異なる最大動作周波数を有し得る。しかし、異なる個別の記憶装置の動作周波数の異なるブリッジデバイスを設計し、製造することは、非実用的で費用がかかる。ブリッジデバイス自体の中の製造のバリエーションによって複雑さの他の局面がもたらされる。特に、第2のクロックドメインの回路は、特定の最大動作周波数に合わせて設計される。しかし、ファウンドリからの回路のバッチ間の、または異なるファウンドリ間の製造のバリエーションのために、ブリッジデバイスの一部は、所望の最大動作周波数で適切に動作しない場合がある。さらに、例えば周囲温度の上昇など、環境条件がトランジスタの性能に影響を及ぼし得る。
したがって、2つのそれぞれのクロックドメインの第1および第2のクロック周波数は、時として「最悪のケース」のシナリオに合わせて設計される。しかし、これは、結果として、メモリクロックの第1の周波数より大きい周波数で動作することができる個別の記憶装置を利用することができない限られた性能特性を有するブリッジデバイスになる場合がある。同様に、特に控えめなシステムクロック周波数または限られた温度範囲に合わせて設計されるブリッジデバイスの回路は、より積極的な設計を可能にする強力な製造プロセスを十分に利用することができない。したがって、より良好な性能の可能性が犠牲にされる。
本実施形態によれば、システムクロックを受信し、システムクロックの予め定められた比率である周波数を有するメモリクロックを生成する構成可能クロックコントローラが設けられている。システムクロック周波数は、最大値と最小値との間で動的に可変であり、複合記憶装置の動作中いつでも周波数レジスタに周波数分周比(FDR)コードをロードすることによって、システムクロック周波数に対するメモリクロック周波数の分周比が設定される。FDRコードに応答して、構成可能クロックコントローラは、メモリクロック周波数を変える。このレベルの柔軟性によって、ユーザは、複合記憶装置および個別の記憶装置の両方の性能を最大にすることができる。特に、この柔軟性によって、最大システム周波数までの任意のシステムクロック周波数を選択することができ、個別の記憶装置とブリッジチップとの間のデータ転送のために必要とされる時間を最低限に抑えるために、最大メモリ周波数にできるだけ近いメモリクロック周波数をプログラムすることができる。
本明細書に記載されている技術によるシステムおよび装置を、直列に接続される複数のデバイスを有するメモリシステムに適用可能である。装置は、例えば、記憶装置、例えばダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、DiNOR Flash EEPROMメモリ、Serial Flash EEPROMメモリ、Ferro RAMメモリ、Magneto RAMメモリ、Phase Change RAMメモリ、および他の任意の適したタイプのメモリである。
以下の実施形態例の詳細な説明において、いくつかの示された回路および回路部品は、電子信号において既知の動作を実行するタイプのものである。信号において同じ動作を提供するので等価物と認められる代替の回路または回路部品についての知識を当業者であれば有する。類似の構成要素または信号を示すために、異なる図において類似のまたは同じ参照番号およびラベリングが使用されている場合がある。
以下は、後述の複合記憶装置およびブリッジデバイスの実施形態のより良好な理解を容易にする2つの異なる記憶装置およびシステムの説明である。
図1Aは、ホストシステム12と統合される不揮発性メモリシステム10のブロック図である。システム10は、ホストシステム12と通信するメモリコントローラ14、および複数の不揮発性記憶装置16-1、16-2、16-3、および16-4を含む。例えば不揮発性記憶装置16-1〜16-4は、個別の非同期のフラッシュメモリ装置とすることができる。ホストシステム12は、処理装置、例えばマイクロコントローラ、マイクロプロセッサ、またはコンピュータシステムなどを含む。図1Aのシステム10は、1つのチャネル18を含むように構成され、記憶装置16-1〜16-4がチャネル18と並行して接続されている。システム10に4つより多くのまたは4つより少ない記憶装置が接続されていてもよいことを当業者であれば理解されたい。現在示されている例において、記憶装置16-1〜16-4は、非同期であり、互いに並行に接続されている。
チャネル18は、その対応する記憶装置のすべてに接続されるデータおよび制御ラインを含む1組の共通バスを含む。各記憶装置は、メモリコントローラ14によって提供されるそれぞれのチップ選択(イネーブル)信号CE1#、CE2#、CE3#、およびCE4#によって使用可能または使用不可にされる。この例、および以下の例において、「#」は、信号がアクティブな低論理レベル信号であることを示す。この方式において、チップ選択信号のうちの1つは、通常、一度に、不揮発性記憶装置16-1〜16-4のうちの対応する1つを使用可能にするように選択される。メモリコントローラ14は、ホストシステム12の動作に応答して、チャネル18を介して選択された記憶装置にコマンドおよびデータを発行する役割を果たす。記憶装置から出力された読込みデータは、チャネル18を介してメモリコントローラ14およびホストシステム12に戻される。システム10は、通常、分岐バスを含むと言われており、そこにおいて記憶装置16-1〜16-4はチャネル18に関して並行に接続される。
図1Bは、図1Aのメモリシステムで使用することができる個別のフラッシュメモリ装置16-1〜16-4のうちの1つの図である。このフラッシュメモリ装置は、例えば、電源、制御ポート、およびデータポートを含むいくつかの入力ポートおよび出力ポートを含む。「ポート」という用語は、例えば、パッケージピン、パッケージはんだバンプ、チップボンドパッド、および無線送信機および受信機を含む、記憶装置への一般的な入力端子または出力端子を指す。電源ポートは、フラッシュメモリ装置のすべての回路に電力を供給するためのVCCおよびVSSを含む。当分野では知られているように、入力バッファおよび出力バッファのみに供給するために、追加の電源ポートを設けることができる。下記の表1は、制御ポートおよびデータポート、それらの対応する説明、定義、および論理状態例のリスト例を提供する。異なる記憶装置は、表1に示されるものに機能的に等価であり得る、異なる名前の制御ポートおよびデータポートを有していてもよいが、そのタイプの記憶装置に固有のプロトコルに従うことができることに留意されたい。こうしたプロトコルは、確立された標準によって管理することができ、または製造業者によって特定の用途のためにカスタマイズすることができる。パッケージピンおよびボールグリッドアレイはポートの物理的な例であり、パッケージされた装置の信号または電圧をボードに相互接続するために使用されることに留意されたい。ポートは、他のタイプの接続、例えば内蔵型およびSIP(system-in-package)システムのための端末およびコンタクトを含むことができる。
表1にみられるすべての信号は、一般に、図1Bに示されるフラッシュメモリ装置の例の動作のためのメモリ制御信号と呼ばれる。最後のポートI/O[i]は、フラッシュメモリ装置に特定の動作を実行するように指示するコマンドを受信することができるため、メモリ制御信号と考えられることに留意されたい。ポートI/O[i]においてアサートされるコマンドは、I/O[i]を構成している個々のラインに適用される論理状態の組合せであるため、I/O[i]の各信号の論理状態は、例えばWP#など、他のメモリ制御信号の1つと同じように機能する。それがI/O[i]論理状態の特定の組合せであるという主な違いは、機能を実行するようフラッシュメモリ装置を制御する。コマンドは、そのI/Oポートを介して受信され、コマンド信号は、残りの制御ポートを含む。特定のメモリ操作を実行するためのコマンドで、オペレーショナルコード(opコード)が提供されることを当業者であれば理解する。チップイネーブルCE#を除いて、チャネル18を構成するそれぞれのグローバルラインに、すべての他のポートが結合される。個々のチップイネーブル信号は、メモリコントローラ14によって各フラッシュメモリ装置に提供される。すべてのポートは、メモリ操作を実行するための予め定められた方法で制御される。これは、アドレス、コマンド、およびI/OデータがI/Oポートにおいて提供される間の信号タイミングおよび特定の制御信号のシーケンスを含む。したがって、図1Bの非同期のフラッシュメモリ装置を制御するためのメモリ制御信号は、特定のフォーマットまたはプロトコルを有する。
図1Aの不揮発性記憶装置のそれぞれは、データを受信し、提供するための1つの固有のデータインターフェイスを有する。図1Aの例において、これは、非同期のフラッシュメモリ装置、および一部の同期フラッシュメモリ装置において一般的に使用されるパラレルデータインターフェイスである。データの複数のビットを並行して提供する標準のパラレルデータインターフェイスは、例えば、それらの定格動作周波数を超えて作動されると、信号の品質を劣化させる、漏話、信号スキュ、および信号減衰など、よく知られている通信の質を低下させる影響を被ることが知られている。
データスループットを増加させるために、シリアルデータインターフェイスを有する記憶装置は、「Memory with Output Control」という名称の共同に所有される米国特許公開第20070153576号、および「Daisy Chain Cascading Devices」という名称の共同に所有される米国特許公開第20070076502号において開示されており、例えば200 MHzの周波数で連続的にデータを受信し、提供する。これはシリアルデータインターフェイスフォーマットと呼ばれる。これらの共同に所有される特許公報に示されるように、記載されている記憶装置は、互いに直列に接続される記憶装置のシステムで使用することができる。
図2Aは、シリアルメモリシステムの概念上の性質を示すブロック図である。図2Aにおいて、シリアルリングトポロジメモリシステム20は、1組の出力ポートSoutおよび1組の入力ポートSinを有するメモリコントローラ22、および直列に接続される記憶装置24-1、24-2、24-3、および24-Nを含む。記憶装置は、例えばシリアルインターフェイスフラッシュメモリ装置とすることができる。図2Aには示されていないが、各記憶装置は、1組の入力ポートSinおよび1組の出力ポートSoutを有する。これらの入力ポートおよび出力ポートの組は、記憶装置をそれがその一部であるシステムにインターフェイスする、例えば物理的なピンまたは接続などの1つまたは複数の個々の入力/出力ポートを含む。一例において、記憶装置は、フラッシュメモリ装置とすることができる。あるいは、記憶装置は、DRAM、SRAM、DiNOR Flash EEPROM、Serial Flash EEPROM、Ferro RAM、Magneto RAM、Phase Change RAM、またはコマンドを実行する、または次の記憶装置までコマンドおよびデータを通過させるための、特定のコマンド構造と互換性を持つ入力/出力インターフェイスを有する他の任意の適したタイプの記憶装置とすることができる。図2Aの現在の例は、4つの記憶装置を含むが、代替の構成は、単一の記憶装置、または任意の適した数の記憶装置を含むことができる。したがって、記憶装置24-1がSoutに接続されているため、システム20の第1の装置である場合、記憶装置24-Nは、Sinに接続されているため、N番目または最後の装置であり、ここでNは、ゼロより大きい整数である。次いで記憶装置24-2、24-3、および24-3と24-Nとの間の任意の記憶装置は、最初の記憶装置と最後の記憶装置との間に介在する直列に接続された記憶装置である。図2Aの例において、記憶装置24-1から24-Nは、同期しており、互いに、およびメモリコントローラ22に直列に接続される。
図2Bは、図2Aのメモリシステムで使用することができるシリアルインターフェイスフラッシュメモリ装置(例えば24-1から24-N)の図である。このシリアルインターフェイスフラッシュメモリ装置の例は、電源ポート、制御ポート、およびデータポートを含む。電源ポートは、フラッシュメモリ装置のすべての回路に電力を供給するためのVCCおよびVSSを含む。当分野ではよく知られているように、入力バッファおよび出力バッファのみに供給を行うために、追加の電源ポートを設けることができる。下記の表2は、制御ポートおよびデータポート、それらの対応する説明、定義および論理状態例のリスト例を提供する。異なる記憶装置は、表1に示されるものに機能的に等価であり得る、異なる名前の制御ポートおよびデータポートを有していてもよいが、そのタイプの記憶装置に固有のプロトコルに従うことができることに留意されたい。こうしたプロトコルは、確立された標準によって管理することができ、または製造業者によって特定の用途のためにカスタマイズすることができる。
信号CSO、DSOおよびQ[j]を除いて、表2にみられるすべての信号は、図2Bに示されるフラッシュメモリ装置例の動作のためのメモリ制御信号である。CSOおよびDSOは、CSIおよびDSIの再送バージョンであり、Q[j]は、コマンドおよびデータを提供するための出力である。コマンドは、そのD[j]システムデータポートを介して受信され、コマンド信号は、制御ポートRST#、CE#、CK、CK#、CSIおよびDSIを含む。図2Aに示される構成例において、すべての記憶装置に並行して提供されるCK、CK#、CE#、およびRST#を除いて、すべての信号は、メモリコントローラ22から直列の各記憶装置に、連続的に渡される。図2Bのシリアルインターフェイスフラッシュメモリ装置は、メモリ操作をそこで実行するために、それ自体のフォーマットまたはプロトコルを有するメモリ制御信号をこのように受信する。
図2の直列に接続された記憶装置のさらなる詳細は、2008年2月15日に出願された「Clock Mode Determination in a Memory System」という名称の共同に所有される米国特許公開第20090039927号に開示されており、各記憶装置がパラレルクロック信号を受信するシリアルメモリシステム、および各記憶装置がソース同期クロック信号を受信するシリアルメモリシステムを記載する。
図1Bおよび図2Bに示すように、非同期の、およびシリアルのインターフェイスフラッシュメモリ装置の機能ポートの割り当てまたは定義は、実質的に互いに異なり、したがって互いに互換性がない。個別の記憶装置を制御するために使用される信号の組の機能ポートの定義およびシーケンス、またはタイミングは、プロトコルまたはフォーマットと呼ばれる。したがって、非同期の、およびシリアルのフラッシュメモリ装置は、異なるメモリ制御信号フォーマットに応答して動作する。これは、図2Bのシリアルインターフェイスフラッシュメモリ装置を分岐のメモリシステムで使用できないこと、および、したがって、図1Bの非同期のフラッシュメモリ装置を直列に接続されたリングトポロジメモリシステムで使用できないことを意味する。
図1Aおよび図1Bの非同期のフラッシュメモリ装置より改良された性能とするには、図2Aおよび図2Bに示されるシリアルインターフェイスフラッシュメモリ装置が望ましいが、メモリシステムの製造業者は、別のフラッシュ製品をそれらの量産のフラッシュ製造施設に導入することを望まない場合がある。業界において使用が普及しているため、非同期のフラッシュメモリ装置は、大量生産のスケールメリットのために安価である。現在、メモリシステムの製造業者には、大量生産のスケールメリットを享受しながら、直列に相互接続されたデバイスの性能の利点を利用するためのソリューションがない。
少なくとも一部の実施形態例は、マルチチップパッケージ(MCP)またはSIP(system in package)で、個別の記憶装置と連動する高速のインターフェイスチップまたはブリッジデバイスを備える高性能複合記憶装置を提供する。ブリッジデバイスは、その中に統合されるシステムとのI/Oインターフェイスを提供し、グローバルフォーマットに従ってグローバルメモリ制御信号を受信し、個別の記憶装置と互換性を持つネイティブまたはローカルのフォーマットに従ってコマンドをローカルメモリ制御信号に変換する。それによってブリッジデバイスは、ブリッジデバイスのI/Oインターフェイスによって提供される性能の利点を提供しながら、例えば非同期のNANDフラッシュ装置など、量産の商品の記憶装置を使用できるようにする。ブリッジデバイスは、パッケージ内の個別の記憶装置のダイと統合される個別の論理ダイとして組み込むことができる。
この例において、グローバルフォーマットは、図2Aおよび図2Bのシリアルフラッシュメモリ装置と互換性を持つシリアルデータフォーマットであり、ローカルフォーマットは、図1Aおよび図2Bの非同期のフラッシュメモリ装置と互換性を持つパラレルデータフォーマットである。しかし、複合記憶装置において使用される個別の記憶装置のタイプおよび複合記憶装置がその中で使用されるメモリシステムのタイプに応じて、任意の1対のメモリ制御信号フォーマットを使用することができるため、本発明の実施形態は、上記のフォーマット例に限定されない。例えば、メモリシステムのグローバルフォーマットは、Open NAND Flash Interface(ONFi)標準に従うことができ、ローカルフォーマットは、非同期のフラッシュメモリ装置メモリ制御信号フォーマットに従うことができる。例えば、1つの特定のONFi標準は、ONFi 2.0仕様である。あるいは、グローバルフォーマットは、図2Aおよび図2Bのシリアルフラッシュメモリ装置と互換性を持つシリアルデータフォーマットに従うことができ、ローカルフォーマットは、ONFi 2.0仕様フォーマットに従うことができる。
図3Aは、本実施形態による複合記憶装置のブロック図である。図3Aに示すように、複合記憶装置100は、4つの個別の記憶装置104に接続されているブリッジデバイス102を含む。個別の記憶装置104のそれぞれは、例えば、8Gbのメモリ容量を有する非同期のフラッシュメモリ装置とすることができるが、8Gbの装置の代わりに任意の容量の個別のフラッシュメモリ装置を使用することができる。さらに、複合記憶装置100は、4つの個別の記憶装置を有することに限定されない。ブリッジデバイス102が複合記憶装置100内の最大数の個別の記憶装置に適応するように設計されているとき、任意の適した数の個別の記憶装置を含むことができる。
複合記憶装置100は、グローバルコマンドを受信するための入力ポートGLB_IN、および受信されたグローバルコマンドおよび読込みデータを渡すための出力ポートGLB_OUTを有する。図3Bは、本実施形態によるグローバルコマンドの階層を示す図である。グローバルコマンド110は、特定のフォーマットを有するグローバルメモリ制御信号(GMCS)112およびアドレスヘッダ(AH)114を含む。これらのグローバルメモリ制御信号112は、メモリコマンドおよびコマンド信号、例えば図2Bのシリアルインターフェイスフラッシュメモリ装置のためのメモリ制御信号を提供する。アドレスヘッダ114は、システムレベルおよび複合記憶装置レベルで使用されるアドレス指定情報を含む。この追加のアドレス指定情報は、メモリコマンドにおけるopコードを実行するための複合記憶装置を選択するためのグローバル装置アドレス(GDA)116、およびopコードを実行するように選択された複合記憶装置内の特定の個別の装置を選択するためのローカル装置アドレス(LDA)118を含む。要約すると、グローバルコマンドは、1つのフォーマットに対応するすべてのメモリ制御信号、および複合記憶装置または個別の記憶装置をそこで選択するまたは制御するために必要となり得るさらなるアドレス指定情報を含む。
ブリッジデバイス102は、opコードを実行しない、またはアドレス情報によって任意のメモリ位置にアクセスすることはないことに留意されたい。ブリッジデバイス102は、グローバル装置アドレス116を使用して、受信されたグローバルメモリ制御信号112を変換することが選択されるかどうか決定する。選択される場合、ブリッジデバイス102は、ローカル装置アドレス118を使用して、変換されたグローバルメモリ制御信号112が個別の記憶装置のうちのどれに送信されるかを決定する。全4つの個別の記憶装置104と通信するために、ブリッジデバイス102は、後述するように、それぞれ対応する個別の記憶装置に接続されている4組のローカルI/Oポート(図示せず)を含む。各組のローカルI/Oポートは、個別の記憶装置が適した操作のために必要とするすべての信号を含み、それによってローカル装置インターフェイスとして機能する。
読込みデータは、複合記憶装置100から、または前の複合記憶装置から任意の1つのフラッシュメモリ装置104によって提供される。特に、ブリッジデバイス102は、メモリシステムのメモリコントローラ、または、直列に相互接続された装置のシステムにおける別の複合記憶装置の別のブリッジデバイスに接続することができる。入力ポートGLB_INおよび出力ポートGLB_OUTは、グローバルなコマンド信号、複合記憶装置100への読込みデータ、および複合記憶装置100からの書込みデータを、特にブリッジデバイス102との間で送信/受信するためのパッケージピン、他の物理的な導体、または他の任意の回路とすることができる。したがって、ブリッジデバイス102は、例えば図2Aのメモリコントローラ22など、外部コントローラ、またはシステムの他の複合記憶装置からのブリッジデバイスとの通信を可能にするために、入力ポートGLB_INおよび出力ポートGLB_OUTへの対応する接続を有する。図5の例示の実施形態例において示すように、多くの複合記憶装置は、互いに直列に接続され得る。
図4は、図3Aに示されるブリッジデバイス102に対応する、一実施形態によるブリッジデバイス200のブロック図である。ブリッジデバイス200は、ブリッジデバイス入力/出力インターフェイス202、メモリ装置インターフェイス204、フォーマット変換器206を有する。フォーマット変換器206は、グローバルコマンドおよびグローバルコマンド信号を含む第1のフォーマットのグローバルメモリ制御信号を第2のフォーマットに変換するためのコマンドフォーマット変換器208、および第1のフォーマットと第2のフォーマットとの間でデータを変換するためのデータフォーマット変換器210を含む。コマンドフォーマット変換器208は、第1のフォーマットのグローバルメモリ制御信号に応答して第2のフォーマットに従って図3Aの個別の記憶装置104などの個別の記憶装置を制御するための状態機械(図示せず)をさらに含む。
ブリッジデバイス入力/出力インターフェイス202は、例えば、メモリコントローラまたは他の複合記憶装置など、外部装置と通信する。ブリッジデバイス入力/出力インターフェイス202は、グローバルコマンドをメモリコントローラまたは別の複合記憶装置から、グローバルフォーマット、例えばシリアルコマンドフォーマットで受信する。さらに図3Bを参照すると、入力/出力インターフェイス202における論理は、グローバルコマンド110が対応する複合記憶装置にアドレス指定されるかどうか決定するようにグローバルコマンド110のグローバル装置アドレス116を処理し、対応する複合記憶装置の個別の記憶装置のうちのどれが、opコード、オプションの行および列アドレス、およびオプションの書込みデータを含めて、変換されたコマンドを受信することになっているかを決定するようにグローバルコマンド110のローカル装置アドレス118を処理する。ブリッジデバイス200に接続されている個別の記憶装置にグローバルコマンドがアドレス指定されている場合、フォーマット変換器206のコマンドフォーマット変換器208は、グローバルメモリ制御信号112を変換し、これは、opコードおよびコマンド信号、およびグローバルフォーマットからローカルフォーマットへの任意の行およびアドレス情報を提供し、メモリ装置インターフェイス204にそれを転送する。本実施形態において、ブリッジデバイスは、内部においてパラレルデータフォーマットで動作する。例えば書込みデータがシリアルデータフォーマットでブリッジデバイス入力/出力インターフェイス202に提供される場合、ブリッジデバイス入力/出力インターフェイス202は、データのビットをパラレルフォーマットで提供するためのシリアル-パラレル変換回路を含む。読込み操作では、ブリッジデバイス入力/出力インターフェイス202は、GLB_OUT出力ポートを介して出力するようにデータのビットをシリアルフォーマットで提供するためのパラレル-シリアル変換回路を含む。
グローバルフォーマットおよびローカルフォーマットは既知であり、したがってコマンドフォーマット変換器208における論理は、個別の記憶装置104と互換性を持つように信号の論理的変換を実行するように特に設計されていると仮定する。コマンドフォーマット変換器208が、ネイティブフォーマットを有するメモリ制御信号で個別の記憶装置を制御するために使用される、少なくともメモリシステムのメモリコントローラのものと実質的に類似の制御ロジックを含み得ることに留意されたい。例えば、個別の記憶装置が非同期の記憶装置、例えば記憶装置16-1から16-4である場合、コマンドフォーマット変換器208は、図1Aのメモリコントローラ14の同じ制御ロジックを含み得る。これは、コマンドフォーマット変換器208の制御ロジックが、個別の記憶装置にネイティブのローカルフォーマットでメモリ制御信号のタイミングおよびシーケンスを提供することを意味する。
グローバルコマンドがデータ書込み操作に対応する場合、フォーマット変換器206のデータフォーマット変換器210は、データをグローバルフォーマットからローカルフォーマットに変換し、メモリ装置インターフェイス204に転送する。読込みまたは書込みデータのビットは、論理な変換を必要とせず、したがって、データフォーマット変換器210は、第1のデータフォーマットと第2のデータフォーマットとの間のデータのビット位置の適切なマッピングを確実にする。フォーマット変換器206は、個別の記憶装置からの読込みデータまたはブリッジデバイス入力/出力インターフェイス202から受信される書込みデータを格納するためのデータバッファとして機能する。したがって、グローバルフォーマットとローカルフォーマットとの間のデータ幅の不整合に対応することができる。さらに、データフォーマット変換器210のバッファリング機能のために、個別の記憶装置とブリッジデバイス200との間、およびブリッジデバイス200と他の複合記憶装置との間の異なるデータ送信レートに対応する。
次いでメモリ装置インターフェイス204は、ローカルコマンドフォーマットの変換されたコマンドを、図3Bのグローバルコマンド110におけるローカル装置アドレス118によって選択される個別の記憶装置に転送し、または伝える。本実施形態において、変換されたコマンドは、コマンドパス212を介して提供される。一実施形態において、コマンドパス212は、複合記憶装置の各個別の記憶装置とメモリ装置インターフェイス204との間に接続されるi組の専用のローカルI/OポートLC−iまたはチャネルを含む。変数iは、複合記憶装置の個別の記憶装置の数に対応する整数である。例えば、各LC−iチャネルは、図1Bおよび表1に示されるすべてのポートを含む。
次に、図3Aの複合記憶装置100をさらに参照して、ブリッジデバイス200の動作例について説明する。読込み操作では、例えばグローバルな読取りコマンドなどのグローバルコマンドは、入力ポートGLB_INを介してブリッジデバイス入力/出力インターフェイス202に達する。このグローバルな読取りコマンドは、ブリッジデバイス200に接続されている個別の記憶装置104から読み出されるデータのために、opコードならびに行および列の情報をグローバルフォーマットで提供するグローバルメモリ制御信号を含む。本実施形態において、グローバルコマンドは、例えば前の表2に示されるクロックCKなど、システムクロックと同期して受信される。ブリッジデバイス入力/出力インターフェイス202が、グローバル装置アドレス116を複合記憶装置100の予め定められたアドレスと比較することによってそれがグローバルな読取りコマンドのために選択されたことをいったん決定すると、コマンドフォーマット変換器208は、グローバルな読取りコマンドを、読込みデータコマンドが実行されることになっている個別の記憶装置104と互換性を持つローカルフォーマットに変換する。後述するように、複合記憶装置は、割り当てられたアドレスを有することができる。グローバルな読取りコマンドのローカル装置アドレス118は、メモリ装置インターフェイス204に転送され、変換された読込みデータコマンドは、コマンドパス212のローカルI/Oポートの対応する組を介してローカル装置アドレスによってアドレス指定される個別の記憶装置に提供される。本実施形態において、ローカルコマンドは、システムクロックより少ない周波数を有し得るメモリクロックと同期して提供される。例えばNAND型フラッシュメモリ装置など、一部の個別の記憶装置は非同期で、クロック信号を受信しないことに留意されたい。しかし、こうした非同期の記憶装置に提供されるメモリ制御信号は、本実施形態ではメモリクロックであるクロックに同期して生成される立ち上がりおよび立ち下がりエッジを有する。
読込みデータと呼ばれるデータは、選択された個別の記憶装置104から読み込まれ、ローカルフォーマットで、メモリクロック周波数で、メモリ装置インターフェイス204の同じローカルI/Oポートを介してデータフォーマット変換器210に提供される。次いでデータフォーマット変換器210は、読込みデータをローカルフォーマットからグローバルフォーマットに変換し、読込みデータを、システムクロック周波数で、ブリッジデバイスインターフェイス202の出力ポートGLB_OUTを介して、選択された個別の記憶装置104からメモリコントローラに提供する。ブリッジ装置インターフェイス202は、データフォーマット変換器210または入力ポートGLB_INからの読込みデータを出力ポートGLB_OUTに結合するための内部切替回路を含む。
図5は、本実施形態による、メモリコントローラとリングトポロジで直列に接続される複数の複合記憶装置を有するメモリシステムである。この例において、示された複合記憶装置のそれぞれは、図4のブリッジデバイス200を有し得る、図3Aに示されるアーキテクチャを有する。図5のメモリシステム300は、図2Aのシリアルメモリシステム20と類似している。メモリシステム300は、メモリコントローラ302、および複合記憶装置304-1から304-jを含み、ここではjは整数である。個々の複合記憶装置304-1〜304-jは、メモリコントローラ302と直列に相互接続される。図2Aのシステム20と同様に、複合記憶装置304-1は、メモリコントローラ302の出力ポートSoutに接続されているため、メモリシステム300の第1の複合記憶装置であり、記憶装置304-jは、メモリコントローラ302の入力ポートSinに接続されているため、最後の装置である。次いで複合記憶装置304-2から304-7は、最初の複合記憶装置と最後の複合記憶装置との間に接続される介在する直列に接続された記憶装置である。Soutポートは、グローバルフォーマットのグローバルコマンドを提供する。Sinポートは、グローバルフォーマットの読込みデータ、およびグローバルコマンドを、それがすべての複合記憶装置を通って伝搬するにつれて受信する。
図5に示される複合記憶装置のそれぞれは、図3Aに示される複合記憶装置100と類似している。複合記憶装置のそれぞれは、ブリッジデバイス102、および4つの個別の記憶装置104を有する。上述したように、複合記憶装置のそれぞれの各ブリッジデバイス102は、それぞれの個別の記憶装置104、ならびにメモリコントローラ302、および/または前または次の複合記憶装置のいずれかにシリアルリングトポロジまたは直列相互接続の構成で接続されている。各複合記憶装置304-1から304-jの機能は、図3Aおよび図4の実施形態について上述したものと同じである。
メモリシステム300において、各複合記憶装置に、一意のグローバル装置アドレスが割り当てられる。この一意のグローバル装置アドレスは、ブリッジデバイス102の装置アドレスレジスタ、およびより詳細には、図4に示されるブリッジデバイスのブロック図の入力/出力インターフェイス202のレジスタに格納することができる。このアドレスは、「Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection」という名称の共同に所有される米国特許公開第20080192649号に記載されるように、装置アドレス割り当て方式を使用したメモリシステム300の起動の段階中、自動的に割り当てることができる。さらに、各複合記憶装置304は、各複合記憶装置304における個別の記憶装置の数についての情報を格納するための個別のデバイスレジスタを含むことができる。したがって、操作の同じ起動の段階中、メモリコントローラは、各個別のデバイスレジスタに問い合わせを行い、各複合記憶装置内の個別の記憶装置の数を記録することができる。したがって、メモリコントローラは、メモリシステム300の各複合記憶装置304の個々の個別の記憶装置104を選択的にアドレス指定することができる。
続いて複合記憶装置304-3がメモリ操作を実行するよう選択されることになっている一例を使用して、メモリシステム300の動作について説明する。この例において、メモリシステム300は、図2に示されるシステムと類似の直列に接続されたメモリシステムであり、個別の記憶装置104のそれぞれは、非同期のNAND型フラッシュメモリ装置であるとみなされる。したがって、複合記憶装置304-1から304-jのそれぞれにおけるブリッジデバイス102は、メモリコントローラ302によって発行されるグローバルフォーマットのグローバルコマンドを受信し、それらをNAND型フラッシュメモリ装置と互換性を持つローカルフォーマットに変換するように設計される。メモリシステムが起動し、各複合記憶装置のアドレスが割り当てられたとさらに仮定される。
メモリコントローラ302は、そのSoutポートから、複合記憶装置304-3に対応するグローバル装置アドレス116を含むグローバルコマンドを発行する。第1の複合記憶装置304-1は、グローバルコマンドを受信し、そのブリッジデバイス102は、その割り当てられたグローバル装置アドレスをグローバルコマンドにおけるものと比較する。グローバル装置アドレスが不整合であるため、複合記憶装置用のブリッジデバイス102は、グローバルコマンドを無視し、複合記憶装置304-2の入力ポートにグローバルコマンドを渡す。その割り当てられたグローバル装置アドレスがグローバルコマンドにおけるものと一致しないので、同じアクションが複合記憶装置304-2で起こる。したがって、グローバルコマンドは、複合記憶装置304-3に渡される。
複合記憶装置304-3のブリッジデバイス102は、その割り当てられたグローバル装置アドレスとグローバルコマンドにおけるものとの間の一致を決定する。したがって、複合記憶装置304-3のブリッジデバイス102は、ローカルメモリ制御信号をNAND型フラッシュメモリ装置と互換性を持つローカルフォーマットへの変換を始める。次いでブリッジデバイスは、グローバルコマンドに含まれるローカル装置アドレス118によって選択されるNAND型フラッシュメモリ装置に変換されたコマンドを送信する。次いで選択されたNAND型フラッシュ装置は、受信したローカルメモリ制御信号に対応する動作を実行する。
複合記憶装置304-3のブリッジデバイス102は、グローバルコマンドを変換している間、次の複合記憶装置にグローバルコマンドを渡す。残りの複合記憶装置はグローバルコマンドを無視し、グローバルコマンドは最終的にメモリコントローラ302のSinポートで受信される。グローバルコマンドが読込み操作に対応する場合、複合記憶装置304-3の選択されたNAND型フラッシュメモリ装置は、読込みデータをローカルフォーマットのその対応するブリッジデバイス102に提供する。次いでブリッジデバイス102は、読込みデータをグローバルフォーマットに変換し、その出力ポートを介して次の複合記憶装置に渡す。すべての残りの複合記憶装置のブリッジデバイス102は、メモリコントローラ302のSinポートに、読込みデータを渡す。読込み操作を実行するために他のグローバルコマンドを発行することができ、そのすべては選択された複合記憶装置102のブリッジデバイス102によって変換されることを当業者は理解されたい。
図5の実施形態において、システムクロックを、個別のクロック生成器によってメモリコントローラ302および複合記憶装置のそれぞれに並行に提供することができる。あるいは、メモリコントローラは、システムクロックをすべての複合記憶装置に並行に提供することができる。さらに別の実施形態において、すべての複合記憶装置は、システムクロックをソース同期フォーマットで連続的に受信し、提供する。これらの実施形態のいずれかにおいて、各ブリッジデバイス102は、ローカルメモリクロックを生成するためのシステムクロックを受信する。メモリシステム300における異なる複合記憶装置を異なるメモリクロック周波数で動作するように構成することができるので、複合記憶装置ごとのメモリクロックを「ローカル」メモリクロックと呼ぶことができる。
本実施形態において、グローバルコマンドは、メモリシステム300のすべての複合記憶装置に伝播される。別の実施形態によれば、ブリッジデバイス102は、グローバルコマンドがメモリシステム300における別の複合記憶装置に伝搬されるのを阻止するための追加の論理を含む。より詳細には、グローバル装置がそれにアドレス指定されることを選択された複合記憶装置がいったん決定すると、その対応するブリッジデバイス102は、例えばVSSまたはVDDの固定電圧レベルなど、ヌル値までその出力ポートを駆動する。したがって、残りの選択されていない複合記憶装置は、グローバルコマンドを実行しないので、切替電源を節約する。参照によりその全体が本明細書に組み込まれる「Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection」という名称の共同に所有される米国特許公開第20080201588号に、直列に接続されるメモリシステムのこうした電源を節約する方式の詳細が記載されている。
図5の上述した実施形態は、各複合記憶装置304-1から304-nが、例えば非同期のNAND型フラッシュメモリ装置など、同じタイプの個別の記憶装置を有するメモリシステムを示す。すべての複合記憶装置が同じであるため、これは同種のメモリシステムと呼ばれる。代替の実施形態では、異なる複合記憶装置が異なるタイプの個別の記憶装置を有する異種のメモリシステムが可能である。例えば、複合記憶装置の中には、非同期のNAND型フラッシュメモリ装置を含むものもあり、NORフラッシュメモリ装置を含み得るものもある。こうした代替の実施形態において、すべての複合記憶装置は、同じグローバルフォーマットに従うが、内部では、各複合記憶装置は、グローバルフォーマットのメモリ制御信号を、NORフラッシュメモリ装置またはNAND型フラッシュメモリ装置に対応しているローカルフォーマットのメモリ制御信号に変換するように設計されたそのブリッジデバイス200を有する。
さらに他の実施形態において、単一の複合記憶装置は、異なるタイプの個別の記憶装置を有することができる。例えば、単一の複合記憶装置は、2つの非同期のNAND型フラッシュメモリ装置および2つのNORフラッシュメモリ装置を含むことができる。この「混合」または「異種」の複合記憶装置は、上述した同じグローバルフォーマットに従うことができるが、内部では、そのブリッジデバイスは、グローバルフォーマットのメモリ制御信号を、NAND型フラッシュメモリ装置およびNORフラッシュメモリ装置に対応しているローカルフォーマットのメモリ制御信号に変換するように設計することができる。
こうしたブリッジデバイスは、グローバルコマンドで提供される上述したアドレス情報によって選択することができる、NAND型フラッシュメモリ装置およびNORフラッシュメモリ装置のそれぞれについての1つの専用のフォーマット変換器を含むことができる。図3Bを参照して上述したように、アドレスヘッダ114は、システムレベルおよび複合記憶装置レベルで使用されるアドレス指定情報を含む。この追加のアドレス指定情報は、メモリコマンドのopコードを実行するための複合記憶装置を選択するためのグローバル装置アドレス(GDA)116、およびopコードを実行するための選択された複合記憶装置内の特定の個別の装置を選択するためのローカル装置アドレス(LDA)118を含む。ブリッジデバイスは、LDA118を使用して2つのフォーマット変換器のいずれにグローバルコマンドを経路指定すべきかについて決定するセレクタを有することができる。
複合記憶装置の上述した実施形態は、1つのフォーマットのメモリ制御信号に応答する個別の記憶装置を、第2の異なるフォーマットを有するグローバルメモリ制御信号を使用して、どのように制御することができるかを示す。代替の実施形態によれば、ブリッジデバイス200は、同じフォーマットを有するローカルメモリ制御信号を個別の記憶装置に提供するために、あるフォーマットを有するグローバルメモリ制御信号を受信するように設計することができる。言い換えれば、こうした複合記憶装置は、個別の記憶装置を制御するために使用されるメモリ制御信号を受信するように構成される。こうした構成によって、複数の個別の記憶装置は、それぞれ複合記憶装置の他の個別の記憶装置とは独立して動作するメモリバンクとして機能できるようになる。したがって、各個別の記憶装置は、ブリッジデバイス200からそのコマンドを受信することができ、実質的に互いに並行して動作を実行し続けることができる。これは、並行操作とも呼ばれる。したがって、コマンド変換回路は必要とされないため、ブリッジデバイス200の設計は単純化される。
上述した実施形態は、複合記憶装置における個別の記憶装置がどのようにフォーリンコマンドフォーマットに応答することができるかについて示す。これは、受信されたグローバルコマンドを個別の記憶装置と互換性を持つネイティブコマンドフォーマットに変換するブリッジデバイスによって達成される。一例として、シリアルコマンドフォーマットを、非同期のNANDフラッシュフォーマットに変換することができる。コマンドフォーマットの任意の対を一方から他方に変換することができるので、実施形態はこれら2つのフォーマットに限定されない。
使用されているフォーマットに関係なく、少なくともいくつかの実施形態例による複合記憶装置の利点は、それぞれがその中の個別の記憶装置のものよりかなり高いデータスループットを提供する周波数で動作できることである。例えば図3Aの複合記憶装置を使用して、各個別の記憶装置104が従来の非同期のNAND型フラッシュメモリ装置である場合、ピン当たりのその最大データレートは約40Mbpsである。しかし、クロックと同期して少なくとも1つのデータストリームを受信するブリッジデバイス102は、166MHzの周波数で動作するように構成することができ、結果としてピン当たり最小333Mbpsのデータレートとなる。ブリッジデバイス102を製造するために使用されるプロセス技術に応じて、動作周波数は、ピン当たりさらにより高いデータレートを実現するために、200MHz以上とすることができる。したがって、図5のメモリシステム300を使用してデータを格納するより大きいシステムにおいて、高速動作を得ることができる。一用途例は、コンピューティングシステムまたは高性能および大記憶容量を要求する他の用途において大量の記憶媒体としてメモリシステム300を使用することである。
個別の記憶装置とブリッジデバイスとの間のデータレートの不整合が重要であり得る一方、現在示されているブリッジデバイス102の実施形態は、任意のレベルの不整合を補償する。本実施形態によれば、ブリッジデバイス102は、対応する複合記憶装置100からの読込み操作中に、選択された個別の記憶装置104から、予め定められた量の読込みデータを予めフェッチし、格納する。読込みデータは、個別の記憶装置104の最大許容データレートで、ブリッジデバイス102に転送される。予め定められた量の読込みデータは、ブリッジデバイス102にいったん格納されると、規制無しにその最大データレートで出力することができる。複合記憶装置100に対するプログラムまたは書込み操作では、ブリッジデバイス102は、その最大データレートでプログラムデータを受信し、それを格納する。次いでブリッジデバイス102は、個別の記憶装置104の最大許容データレートで、選択された個別の記憶装置104において格納されたデータをプログラムする。個別の記憶装置から、またはそれに、データを読み出し、データをプログラミングするための最大許容データレートは、その文書化された技術仕様で標準化することができ、または概説することができる。
図4は、一般にブリッジデバイス200の機能ブロックを概説し、図6Aは、本実施形態によるブリッジデバイス200のより詳細なブロック図を示す。ブリッジデバイス400は、図4のブリッジデバイス200のために示されるものに対応する4つのメイン機能ブロックを含む。これらは、ブリッジデバイスシステム入力/出力インターフェイス402、メモリ装置インターフェイス404、コマンドフォーマット変換器406、およびデータフォーマット変換器408である。これらのブロックは、それぞれ図4のブロック202、204、208、および210に対応する機能を有する。図6Aの実施形態は、複合記憶装置が従来のNAND型フラッシュメモリ装置を含み、複合記憶装置自体は、図2Bのシリアルインターフェイスフラッシュメモリ装置に対応するシリアルインターフェイスを有するように構成される一例に適用される。以下は、ブロック402、404、406、および408の詳細な説明である。
ブリッジデバイスシステム入力/出力インターフェイス402は、1つのフォーマットを有するグローバルメモリ制御信号を受信し、個別の記憶装置から受信されたグローバルメモリ制御信号および読込みデータを次の複合記憶装置に渡す。この例において、これらのグローバルメモリ制御信号は、図2Bの識別されたメモリ制御信号と同じであり、表2に記載されている。この例を使用している図4に関して、グローバルコマンドGLB_INは、グローバルメモリ制御信号CSI、DSI、およびD[j]を含み、渡されたグローバルコマンドGLB_OUTは、それぞれCSO、DSO、およびQ[j]と呼ばれるグローバルメモリ制御信号CSI、DSI、およびD[j]のエコーバージョンを含む。上述したグローバルメモリ制御信号CSI、DSI、およびD[j]は、ブリッジデバイス400が動作を実行できるようにすることを要求されるので、グローバルコマンドと考えられる。
ブリッジデバイスシステム入力/出力インターフェイス402は、表2で上記で概説した信号を受信するための入力ポートおよび出力ポートを有する。このブロックはよく知られている入力バッファ回路、出力バッファ回路、ドライバ、ならびに入力バッファ回路および出力バッファ回路、必要な制御信号のコマンドフォーマット変換器406への経路指定、およびデータフォーマット変換器408との間の異なるデータタイプのデータの経路指定を制御するために使用される制御ロジックを含む。こうしたタイプのデータは、それだけには限定されないが、例えばアドレスデータ、読込みデータ、プログラムまたは書込みデータ、および構成データを含む。入力ポートD[j]で受信され、出力ポートQ[j]で提供されたデータは、シングルデータレート(SDR)またはダブルデータレート(DDR)のフォーマットとすることができる。SDRデータがクロック信号の各立ち上がりエッジにおいてラッチされ、一方、DDRデータはクロック信号の立ち上がりおよび立ち下がりエッジにおいてラッチされることを当業者であれば理解されたい。したがって、入力バッファおよび出力バッファは、適切なSDRまたはDDRラッチ回路を含む。ブリッジデバイスシステム入力/出力インターフェイス402は、制御信号CSIおよびDSIを受信する入力ポートをエコー信号CSOおよびDSOを提供する対応する出力ポートに結合する制御信号フロースルーパス(control signal flow through path)を含む点に留意されたい。同様に、データ信号フロースルーパスは、入力データストリームD[j]を受信する入力ポートを出力データストリームQ[j]を提供する対応する出力ポートに結合する。出力データストリームは、D[j]で受信される入力データストリーム、または、ブリッジデバイス400に接続される個別の記憶装置から提供される読込みデータとすることができる。
この例において、ブリッジデバイス400は、メモリシステムにおける他のブリッジデバイスと並列して差動クロックCKおよびCK#を受信する。オプションでは、差動クロックCKおよびCK#は、例えば図5のメモリコントローラ302などのメモリコントローラから提供され、それぞれのブリッジデバイスを介してある複合記憶装置から別の複合記憶装置に直列に渡されるソース同期クロック信号である。こうした構成において、ブリッジデバイス400は、入力ポートで受信された差動クロックCKおよびCK#を対応する出力ポート(図示せず)に結合するクロックフロースルーパスを含む。参照により本明細書に組み込まれる「CLOCK MODE DETERMINATION IN A MEMORY SYSTEM」という名称の共同に所有される米国特許出願公開第20090039927号は、直列に接続される記憶装置がパラレルまたはソース同期クロックにより動作することを可能にするための回路を開示する。したがって、米国特許出願公開第20090039927号において教示される技術は、ブリッジデバイス400にも同様に適用することができる。
メモリ装置インターフェイス404は、個別の記憶装置と互換性を持つネイティブまたはローカルのフォーマットに従ってローカルメモリ制御信号を提供する。このフォーマットは、グローバルメモリ制御信号のフォーマットとは異なってもよい。この例において、メモリ装置インターフェイス404は、対応する数の従来のNAND型フラッシュメモリ装置を制御するためのローカルメモリ制御信号の組を有し、この場合、ローカルメモリ制御信号の各組は、表1で上記で概説した信号を含む。この例において、および図4を参照して、ローカルメモリ制御信号の各組は、ローカルコマンドを、LCポートを介して複合記憶装置における対応するNAND型フラッシュメモリ装置に提供する。したがって、複合記憶装置においてk個のNAND型フラッシュメモリ装置がある場合、k個の組のローカルコマンドがある。図6Aにおいて、2つのフルセットのローカルメモリ制御信号がLC-1およびLC-2とラベル付けされたポートから提供され、最後のフルセットのローカルメモリ制御信号が出力ポートLC-kから提供される。これらのローカルコマンドは、NAND型フラッシュメモリ装置と互換性を持つ適したシーケンス、論理状態、およびタイミングを備えており、したがってローカルコマンドで符号化された動作を実行する。
メモリ装置インターフェイス404は、表1で上記で概説したローカルメモリ制御信号を提供するための出力ポート、および書込みデータを提供し、読込みデータを受信するための双方向データポートI/O[i]を有する。このブロックは、よく知られている入力バッファ回路、出力バッファ回路、ドライバ、ならびに入力バッファ回路および出力バッファ回路、およびデータフォーマット変換器408との間のデータの経路指定を制御するために使用される制御ロジックを含む。こうしたタイプのデータは、それだけには限定されないが、例えばアドレスデータ、読込みデータ、およびプログラムまたは書込みデータを含む。
コマンドフォーマット変換器406は、少なくともopコードレジスタ410、グローバル装置アドレス(GDA)レジスタ412、ならびに論理およびopコード変換器ブロック414を含む。データフォーマット変換器408は、メモリ416、メモリ416用のタイミング制御回路418、アドレスレジスタ420、周波数コントローラ422、データ入力パス回路424、およびデータ出力パス回路426を含む。
周波数コントローラ422は、システムクロックclk_intを受信し、メモリクロックと呼ばれる可変クロックclk_divを生成する。論理およびopコード変換器ブロック414は、メモリクロックclk_divを受信し、残りの回路は、システムクロックclk_intを受信する。例えば図6Aに示すように、ブリッジデバイスシステム入力/出力インターフェイス402に接続された回路は、制御信号およびデータを受信し、または制御信号およびデータを提供し、clk_intのシステムクロック周波数で動作する。これらの回路の一部は、もっぱらopコードレジスタ410、GDAレジスタ412、アドレスレジスタ420、データ入力パス回路424、およびデータ出力パス回路426などのシステムクロックの下で動作する。例えば論理およびopコード変換器ブロック414など、システムクロックclk_intおよびメモリクロックclk_divを受信する他の回路がある。後述するように、論理およびopコード変換器ブロック414は、データがメモリ416とメモリ装置インターフェイス404との間で転送されるデータアクセス動作のためにメモリ416を制御する。これらのデータアクセスおよび転送操作は、メモリクロックclk_divの下で実行される。メモリ416とブリッジデバイスシステム入力/出力インターフェイス402との間のメモリ動作は、システムクロックclk_intの下で動作する。論理およびopコード変換器ブロック414は、メモリタイミングおよび制御回路418を適切に制御するためにclk_intのシステムクロック周波数下で動作する論理、およびclk_intを受信する他の上述した回路を有する。
コマンドフォーマット変換器406は、グローバルコマンドに対応するグローバルメモリ制御信号を受信し、2つの主要な機能を実行する。第1は、グローバルコマンドによって指定される同じ操作を表すローカルコマンドでローカルメモリ制御信号を提供するためにグローバルコマンドのopコードを復号するopコード変換機能である。このopコード変換機能は、内部変換論理(図示せず)によって実行される。例えば、グローバルコマンドが特定のアドレス位置からデータを読み込む旨の要求である場合、結果として生じる変換されたローカルメモリ制御信号は、選択されたNAND型フラッシュメモリ装置からの読込み操作に対応することになる。第2の主要な機能は、グローバルコマンドに応答して、ブリッジデバイス400の他の回路を制御するための内部制御信号を生成するブリッジデバイス制御機能である。このブリッジデバイス制御機能は、すべての有効なグローバルコマンドに応答するために予めプログラムされている内部状態機械(図示せず)によって提供される。
GDAレジスタ412は、グローバル装置アドレスと呼ばれる、予め定められ、割り当てられた複合記憶装置アドレスを格納する。このグローバル装置アドレスによって、メモリコントローラは、それが発行するグローバルコマンドに従って行動するように、メモリシステムにおける複数の複合記憶装置のうちの1つの複合記憶装置を選択することができる。言い換えれば、複合記憶装置が選択されるときのみ、2つの上述した主要な機能が実行される。図3Bについて上述したように、グローバルコマンド110は、グローバルメモリ制御信号(GMCS)112に応答するための複合記憶装置を選択するためのグローバル装置アドレスフィールド116を含む。この例において、グローバルコマンドは、データ入力ポートD[j]を介して1つまたは複数のシリアルビットストリームとして受信され、この場合、グローバル装置アドレスは、ブリッジデバイス400によって受信されるグローバルコマンド110の第1の部分である。論理およびopコード変換器ブロック414の比較回路(図示せず)は、グローバルコマンド110のグローバル装置アドレスフィールド116のグローバル装置アドレスを、GDAレジスタ412に格納された割り当てられたグローバル装置アドレスと比較する。
GDAレジスタ412に格納されたグローバル装置アドレスとグローバルコマンド110のグローバル装置アドレスフィールド116との間に不整合がある場合、論理およびopコード変換器ブロック414は、ブリッジデバイスシステム入力/出力インターフェイス402によって受信される次のグローバルメモリ制御信号を無視する。そうでなければ、論理およびopコード変換器ブロック414は、opコードレジスタ410のグローバルコマンド110のopコードをラッチする。いったんラッチされると、ブリッジデバイス制御機能が実行されるように、このopコードが復号される。例えば、論理およびopコード変換器ブロック414内の回路を復号することによって、ラッチされたopコードが復号され、これは次いで、グローバルコマンド110の次のビットをブリッジデバイス400の他のレジスタに向けるように、ブリッジデバイスシステム入力/出力インターフェイス402内の経路指定回路を制御する。これは、グローバルコマンド110が実行されることになっている操作に応じて異なるデータタイプを含むことができるため必要とされる。言い換えれば、論理およびopコード変換器ブロック414は、復号されたopコードに基づいて、ビットがブリッジデバイスシステム入力/出力インターフェイス402に達する前のグローバルコマンドの構造を知っている。例えば、読込み操作は、それぞれのレジスタにおいてラッチされるブロック、行および列アドレス情報を含む。一方、消去操作は、行および列アドレスを必要とせず、ブロックアドレスのみを必要とする。したがって、対応するopコードは、特定のタイプのアドレスデータがブリッジデバイスシステム入力/出力インターフェイス402に到達することになっている時間を論理およびopコード変換器ブロック414に指示し、それぞれのレジスタにそれらを経路指定できるようにする。
グローバルコマンド110のすべてのデータがいったんラッチされると、変換回路は、NAND型フラッシュメモリ装置において同じ操作を実行するために使用される必要な論理状態、シーケンスおよびタイミングを有するローカルメモリ制御信号を生成する。NAND型フラッシュメモリ装置における特定のアドレス位置へのアクセスを必要とする任意の操作では、論理およびopコード変換器ブロック414は、I/O[i]ポートを介してローカルコマンドの一部として発行するために、アドレスレジスタ420に格納されるアドレスデータを変換する。後述するように、アドレスは、NAND型フラッシュメモリ装置の仮想アドレス空間にアクセスすることができる。この仮想アドレス空間は、メモリ416における仮想アドレス空間に関連する。したがって、論理およびopコード変換器ブロック414は、アドレスをNAND型フラッシュメモリ装置と互換性を持つアドレスに変換するための構成可能な論理回路を含む。仮想アドレス空間がどのようにアクセスされるかの詳細は、本実施形態には関連しておらず、したがってこれ以上説明しない。
本実施形態において、メモリ416は、デュアルポートメモリであり、各ポートは、データ入力ポート、およびデータ出力ポートを有する。ポートAは、データ入力ポートDIN_A、およびデータ出力ポートDOUT_Aを有し、ポートBは、データ入力ポートDIN_B、およびデータ出力ポートDOUT_Bを有する。ポートAは、メモリ416と、それが結合される個別の記憶装置との間にデータを転送するために使用される。一方、ポートBは、メモリ416とブリッジデバイスシステム入力/出力インターフェイス402のD[j]ポートおよびQ[j]ポートとの間でデータを転送するために使用される。簡単に説明するように、ポートAは、メモリクロック周波数で操作され、ポートBは、システムクロック周波数で操作される。NAND型フラッシュメモリ装置にプログラムされるデータは、メモリ416のDOUT_Aを介して読み出されて、論理およびopコード変換器ブロック414に提供され、次いで個別の記憶装置と互換性を持つローカルメモリ制御信号を生成する。個別の記憶装置から受信された読込みデータは、論理およびopコード変換器ブロック414の制御下でDIN_Aを介して直接メモリ416に書き込まれる。DOUT_Aから提供される書込みデータは、論理およびopコード変換器ブロック414の制御下で提供される。ポートBがどのように使用されるかの詳細は後述する。論理およびopコード変換器ブロック414内の回路は、メモリクロック周波数と同期して、アドレスのアプリケーションおよび復号のタイミング、データの感知、およびそれぞれポートDOUT_AおよびDIN_Aを介したデータ出力および入力を制御するための制御ロジックを含む。
いずれのシナリオにおいても、グローバルコマンドは、1組のローカルメモリ制御信号(LC-1からLC-k)を介して、読込み操作または書込み操作が実行される個別の記憶装置を選択するよう論理およびopコード変換器ブロック414に指示する。グローバルコマンド110のローカル装置アドレス(LDA)118フィールドは、どのNAND型フラッシュメモリ装置が生成されたローカルメモリ制御信号を受信することになっているかについて決定するために、論理およびopコード変換器ブロック414によって使用される。したがって、LC-1からLC-iの任意の1組は、グローバルコマンド110に応答して生成されたメモリ制御信号でドライブされる。グローバルコマンドは、操作を補足するブリッジデバイス400内の任意の必要な回路を制御するためのブリッジデバイス制御機能を実行するよう、論理およびopコード変換器ブロック414にさらに指示する。例えば、データ入力パス回路424は、ローカルメモリ制御信号が生成される前に、D[j]で受信されたデータをメモリ416にロードする、または書き込むための書込み操作の間制御される。
次にラッチされたopコードは、ローカルコマンドにおいてローカルメモリ制御信号を生成するためのopコード変換機能を有効にすることができる。任意のNAND型フラッシュメモリ動作を必要とせず、したがってブリッジデバイス400の制御動作に制限される有効なopコードがあり得る。NAND型フラッシュメモリに対する読込み操作あるいは書込み操作が要求されるとき、論理およびopコード変換器ブロック414は、メモリタイミングおよび制御回路418を制御し、次いで制御回路418は、アドレスレジスタ420に格納されたアドレスに基づいてメモリ416におけるある位置においてデータを書き込む、または読み込むためのタイミングを制御する。次に、これらの回路のさらなる詳細について説明する。
データフォーマット変換器408は、NAND型フラッシュメモリ装置にプログラムされるブリッジデバイスシステム入力/出力インターフェイス402から受信される書込みデータを一時的に格納し、ブリッジデバイスシステム入力/出力インターフェイス402から出力されるNAND型フラッシュメモリ装置から受信される読込みデータを一時的に格納する。メモリ416は、単一のブロックとして機能的に示されるが、バンク、プレーン、アレイなど細区分に論理的または物理的に分割することができ、この場合、各バンク、プレーン、またはアレイは、NAND型フラッシュメモリ装置に対応されている。より詳細には、各バンク、プレーン、またはアレイは、ページバッファから読込みデータを受信すること、または1つのNAND型フラッシュメモリ装置のページバッファに書込みデータを提供するためのものである。メモリ416は、例えばSRAMなど、任意の揮発性メモリでもよい。異なるタイプのメモリには異なるタイミングおよび他のプロトコル要件があり得るため、タイミング制御回路418は、メモリ416の設計仕様に基づいて、メモリ416の適切な動作を確実にするために設けられている。例えば、アドレスのアプリケーションおよび復号のタイミング、データの感知、およびデータの出力および入力は、タイミング制御回路418によって制御される。行および列アドレスを含むことができるアドレスは、アドレスレジスタ420から提供することができ、書込みデータは、データ入力パス回路424を介して提供され、読込みデータは、データ出力パス回路426を介して出力される。
データ入力パス回路424は、入力ポートD[j]から入力データを受信し、データが1つまたは複数のシリアルビットストリームにおいて受信されるため、例えばopコードレジスタ410およびアドレスレジスタ420など、さまざまなレジスタにビットを経路指定し、または配布するための切替ロジックが含まれる。選択された複合記憶装置のためにいったんopコードが復号されると、例えばデータレジスタまたは他のタイプのレジスタなど、他のレジスタ(図示せず)は、入力データのビットを受信することもできる。それぞれのレジスタにいったん配布されると、データフォーマット変換回路(図示せず)は、シリアルフォーマットで受信されたデータをパラレルフォーマットに変換する。データレジスタでラッチされた書込みデータは、タイミング制御回路418の制御下で、一時的な格納のために、ポートDIN_Bを介してメモリ416に書き込まれ、後で、論理およびopコード変換器ブロック414によって決定される適切なコマンドフォーマットを使用してプログラミングするためにNAND型フラッシュメモリ装置に出力される。
メモリ416が1組のローカルメモリ制御信号のI/O[i]ポートからNAND型フラッシュメモリ装置から読込みデータを受信した後、この読込みデータは、DOUT_Bを介してメモリ416から読み出され、データ出力パス回路426を介して出力ポートQ[j]に提供される。データ出力パス回路426は、出力ポートQ[j]から出力される1つまたは複数のシリアル出力ビットストリームにデータのビットを配布するためのパラレル-シリアル変換回路(図示せず)を含む。データ入力パス回路424が、D[j]入力ポートから受信される入力データを、出力ポートQ[j]における出力のために、直接データ出力パス回路426に提供するためのデータフロースルーパス428を含むことに留意されたい。したがって、埋込みグローバル装置アドレスフィールドがGDAレジスタ412に格納されるグローバル装置アドレスと一致するかどうかに関係なく、D[j]入力ポートで受信されるすべてのグローバルコマンドは、Q[j]出力ポートまで通過する。図5の直列に接続されるメモリシステムの実施形態において、データフロースルーパス428は、あらゆる複合記憶装置304がメモリコントローラ302によって発行されるグローバルコマンドを受信することを確実にする。さらに、1つの複合記憶装置304によって提供される任意の読込みデータは、任意の介在する複合記憶装置を通過してメモリコントローラ302に渡すことができる。
メモリ416とポートQ[j]およびD[j]との間にデータを転送するために使用される上述したすべての回路は、システムクロックclk_intと同期して動作する。特に、タイミング制御回路418は、システムクロック周波数と同期して、アドレスのアプリケーションおよび復号のタイミング、データの感知、およびそれぞれポートDOUT_BおよびDIN_Bを介したデータ出力および入力を制御するための制御ロジックを含む。タイミング制御回路418の制御ロジックは、メモリクロック周波数でメモリ416の動作を制御する論理およびopコード変換器ブロック414内の制御ロジックと類似し得る。したがって、論理およびopコード変換器ブロック414は、メモリ416を直接制御することができる。
図6Aの実施形態の上記の説明から、ブリッジデバイス400が2つの異なるクロックドメインを有しており、1つのクロックドメインは、clk_intのシステムクロック周波数で動作する回路を含み、他のクロックドメインは、clk_divのメモリクロック周波数で動作する回路を含むことを理解されたい。図6Bは、装置内の異なるクロックドメインを示す、図6Aの高速シリアルインターフェイスブリッジデバイスの実施形態の機能ブロック図の表現である。図6Bにおいて、第1のクロックドメイン450および第2のクロックドメイン452がある。第1のクロックドメイン450は、clk_divの周波数で、またはその近くで動作する、またはclk_divに対応するデータレートで動作する個別の記憶装置にインターフェイスするために、clk_divのメモリクロックにより動作する回路を含む。言い換えれば、第1のクロックドメイン450の回路は、メモリクロックclk_divと同期して動作する。第2のクロックドメイン452は、システムクロックclk_intと同じクロックと同期して動作するメモリコントローラまたは他の制御装置にインターフェイスするために、システムクロックclk_intにより動作する回路を含む。第2のクロックドメイン452の回路は、システムクロックclk_intと同期して動作する。
図6Bにおいて、図6Aに示される回路ブロックの一部は、単一の機能ブロックにマージされ、データまたは情報の一般的な方向フローを示すために、いくつかの矢印が示されている。例えば、データI/Oパスブロック454は、図6Aの回路424および426を含み、レジスタブロック456は、レジスタ410、412、および420を含む。図6Aに示される回路ブロックの一部は、内部ブロックで示されている。例えば、論理およびopコード変換器414は、第1の論理ブロック458および第2の論理ブロック460を含むことが示されている。第1の論理ブロック458は、制御メモリ416に対して内部制御信号を発行するための論理回路、およびあるフォーマットから個別の記憶装置と互換性を持つフォーマットにコマンドの上述した変換を実行するための論理回路を含むことができる。一方、第2の論理ブロック460は、インターフェイス402で受信されたコマンドに応答してブリッジデバイス400の他の回路を制御するための論理回路を含むことができる。論理およびopコード変換器414の機能は、図6Aに示される他の回路に関して上述している。同様に、メモリ416は、第1のメモリI/Oパスブロック462および第2のメモリI/Oパスブロック464を含むことが示されている。上述したように、メモリ416は、デュアルポートメモリとすることができる。したがって、第1の論理ブロック458の制御下で動作する第1のメモリI/Oパスブロック462は、clk_divのメモリクロック周波数で、そのメモリアレイとの間でデータを転送する。一方で、第2のメモリI/Oパスブロック464は、タイミング制御回路418の制御下で動作する。したがって、データは、clk_intのシステムクロック周波数で、そのメモリアレイとの間で転送される。
第1のクロックドメイン450は、インターフェイス404、第1の論理ブロック458、および第1のメモリI/Oパスブロック462を含む。これらのブロックの回路は、clk_divのメモリクロックと同期して動作する。第2のクロックドメイン452は、インターフェイス402、レジスタブロック456、周波数コントローラ422、メモリI/Oパスブロック454、第2のメモリI/Oパスブロック464、タイミング制御回路418、および第2の論理ブロック460を含む。図6Bは、第1または第2のクロックドメインの一部であるブリッジデバイス400で使用される特定の回路ブロックを示す一実施形態例である。メモリクロックの下で動作する任意の回路が第1のクロックドメイン450の一部と考えられ、一方、システムクロックの下で動作する任意の回路が第2のクロックドメイン452の一部と考えられることに留意されたい。
タイミング制御回路418は、予め設定された最大システムクロック周波数で動作するように設計されているが、システムの制約のために予め設定された最大周波数より低い周波数で動作することができる。この場合、例えば、固定の周波数分周比が個別の記憶装置のメモリクロックを生成するために使用される場合、個別の記憶装置もそれぞれの最大クロック周波数より少ない周波数で動作していることになる。例えば最適なシナリオにおいて、ブリッジチップが、133MHzのクロックを使用して266Mb/sのデータレートが可能であり、個別の記憶装置が40MHzで動作することができる場合、個別の記憶装置のための38MHzのクロックを生成するために、3.5の固定分周比を使用することができ、このことは、この例において、個別の記憶装置の最大許容速度に非常に近い。データ読取りコマンドの完了に必要とされる時間は、個別の記憶装置における内部読込み操作に必要な時間と、個別の記憶装置からブリッジチップにデータを転送するために必要な時間との合計である。通常のセル当たりの1ビットのNAND型フラッシュ装置は、内部読み出しには25μs、および40MHzで8ビットのインターフェイスを介して4kBページを転送するために、100μs必要とする。したがって、合計の読込み時間は125μsである。現在、例えばシステムクロックが66MHzに低減される場合、3.5の固定分周比は、個別の記憶装置の19MHzのクロックを生成することになる。不都合なことに、4kBページの転送時間は、200μsを超え、合計の読込み時間は225μsを超えることになり、これは個別の記憶装置の全能力を十分下回る。したがって、個別の記憶装置が最大許容40MHzの周波数のより近くで動作することを確実にするために、構成可能な周波数分周比を使用することができ、それによって、合計の読込み時間を低減することができる。
最適なケースのシナリオにおいて、ブリッジデバイスの回路は、それらが動作するように設計された最大システムクロック周波数で動作することができる。したがって、個別の記憶装置は、それらが動作するように設計された最大メモリクロック周波数で動作することができる。したがって、図6Aの周波数コントローラ422は、システムクロック周波数の比率である周波数を有するメモリクロックを生成する。本実施形態において、メモリクロック周波数とシステムクロック周波数との間の比率は、予め設定された数の固定比率の任意のうちの1つになるように構成可能である。予め設定された各比率で、異なる組のメモリクロック周波数をシステムクロック周波数ごとに生成することができる。下記の表3は、6つの可能性があるクロック分周比を示す例、および特定のシステムクロック周波数clk_intに基づくクロック分周比ごとの結果として生じるメモリクロック周波数clk_divを提供する。異なるクロック分周比、および表3に示されるもの以外の異なるシステムクロック周波数を使用することができる。表3に示されるシステムクロック周波数は、半導体産業において現在使用中の標準化された周波数の例であるが、本明細書において記載されている実施形態は、任意の組の周波数に適用することができる。3.5の分周比は、133MHzの最大システムクロック周波数の例に基づいて、この例のために選択され、この場合、NAND型フラッシュメモリ装置の既知の最大動作周波数は、40MHzである。1.0、1.5、2.0、2.5、および3.0の他のクロック分周比は、列挙されたより低いシステムクロック周波数について、メモリクロック周波数を最大にするために選択される。システムクロック周波数に関係なく、プログラム可能な周波数によって、個別の記憶装置とブリッジチップとの間のデータ転送時間を最低限に抑えることができる。
表3に示すように、何らかのクロック分周比がそれに適用されるとき、40MHzより大きいシステムクロック周波数は、40MHzを超える対応メモリクロック周波数を有することができる。これらのメモリクロック周波数は、NAND型フラッシュメモリ装置の例のために使用されるのではなく、したがって、「適用不可」の場合、「NA」で示される。逆に、選択されるクロック分周比に応じて、125MHzを下回るシステムクロック周波数は、メモリクロック周波数についていくつかの異なるオプションを有し得る。例えば、所与の継続時間の間のNAND型フラッシュメモリ装置の低消費電力が要求される場合、こうしたオプションは選択されたシステムクロック周波数で使用可能であるという条件で、最も低い可能なメモリクロック周波数が選択される。代替の用途において、表3の最大メモリクロック周波数は、ブリッジデバイスで使用することができる一群の可能なタイプの個別の記憶装置の中の最も高い最大動作周波数に基づいて設定することができる。これによって、メモリクロックの構成は、異なる最大メモリクロック周波数で動作することができる異なる個別の記憶装置に対応することができる。表3の値は、ホストシステムまたはメモリコントローラにおいてルックアップテーブルとして実施することができる。したがって、システムクロック周波数が既知であり、所望のメモリクロック周波数が既知であるとき、特定のクロック分周比を選択することができる。
表3に示されるクロック分周比が0.5のインクリメントになるように設定されるため、結果として生じるメモリクロック周波数は、所望のメモリクロック周波数に対する正確な周波数の一致でなくてもよい。したがって、所望のメモリクロック周波数に最も近い、より低いメモリクロック周波数が表3から選択される。後述するように、0.5のインクリメントのクロック分周比を生成するための図6Aの周波数コントローラ422は、トランジスタ数を最低限に抑え、それによって、ブリッジデバイスのシリコン面積および全体の製造コストを最低限に抑える簡単な論理回路である。こうした周波数コントローラ回路を使用する際のトレードオフは、所望の最大値に対してメモリクロック周波数が僅かに低減することのようであるが、結果として生じる性能への影響は最小限である。
図7は、ブリッジデバイスシステム入力/出力インターフェイス402の差動クロック入力ポートCKとCK#との間のクロックパスを示し、図6Aの周波数コントローラ422の一実施形態であるブロック図である。差動クロック信号CKおよびCK#は、システムクロック周波数を有しており、それぞれのクロック入力バッファ500および502によって受信される。バッファされたクロック信号は、CKおよびCK#と同じシステムクロック周波数を有する単一の内部システムクロックclk_intを生成する内部クロック生成器504に提供される。この考察のために、clk_intは、現在記載されているブリッジデバイス実施形態によって使用されるシステムクロックである。内部クロック生成器504は、例えば電力節約運転モードなど、いくつかの状態で、clk_intの生成を不可にするための他の制御信号を受信することができる。システムクロックclk_intは、図6Aの周波数コントローラ422に対応する周波数コントローラ506に提供される。周波数コントローラ506は、システムクロックclk_intを受信し、システムクロック周波数の選択された比率である周波数を有するメモリクロックclk_divに変換する。本実施形態例において、周波数コントローラ506は、パス制御回路508、いくつかのクロック分周器510、およびセレクタ512を含む。
システムクロックclk_intを受信することに加えて、パス制御回路508は、この例ではビットS1、S2、およびS3によって表される3ビットコードである周波数分周比(FDR)コードを受信する。FDRコードは、任意の数のビットとすることができる。このコードは、以下でさらに詳しく説明するように、ブリッジデバイスシステム入力/出力インターフェイス402によって受信されるグローバルコマンドで提供される。通常の動作の間、またはリセットイベントの後、新しいFDRコードが提供されるまで、FDRコードはレジスタ514に格納され、そこに保持される。本実施形態において、パス制御回路508は、FDRコードに応答して、受信されたclk_intシステムクロックをクロック分周器510のうちの1つに経路指定する、または選択的に結合するためのデマルチプレクサとして機能する。3ビットFDRコードで、パス制御回路508は、最高8つまでの異なるパスを選択することができる。パス制御回路508は、8つのうちの1つを選択するこの機能を実行するためのよく知られている復号回路を含む。この例において、合計6つの異なるクロック分周器510があり、各クロック分周器510は、それぞれの中間クロック信号を提供するために、異なる比率によってシステムクロックを分割する。表3を参照すると、6つのクロック分周器510のそれぞれは、分周比1.0、1.5、2.0、2.5、3.0、3.5のうちの1つを提供する。各クロック分周器510の出力がセレクタ512に提供され、セレクタは、どのクロック分周器の出力をclk_divとして渡すかを選択する。セレクタ512は、パス制御回路508と同じFDRコードを受信し、そこで形成される同じ復号ロジックを有することができる。周波数コントローラ506は、拡張可能であり、これは、望まれるクロック分周比の数に応じて、6つを超えるクロック分周器510を回路に含めることができることを意味する。したがって、クロック分周器510のうちの1つにclk_intを結合するようパス制御回路508を制御するために必要な適切な数のビットを含むように、FDRコードを拡大、縮小することができる。あるいは、システムクロックclk_intがすべてのクロック分周器510に並行して提供されるように、パス制御回路508を省略することができる。
パス制御回路508は、受信されたclk_intシステムクロックを1つの特定の出力に選択的に結合する任意の経路指定回路で実施することができる。同様に、各クロック分周器510は、固定比率によってシステムクロック周波数を低減する所望の結果を達成する任意の回路で実施することができる。図7の実施形態は、実施し易いが、個々のクロック分周器510およびセレクタ512を有することは、望まれるより多くのシリコンエリアを利用し得る。さらに、任意の選択されたクロック分周比のために1つのクロック分周器510のみが使用されるので、残りの非選択のクロック分周器510は未使用であり、静的漏電電流をもたらす可能性がある。したがって、非選択のクロック分周器510によって占有された領域は、効率的には使用されない。
図8は、ブリッジデバイスシステム入力/出力インターフェイス402の差動クロック入力ポートCKとCK#との間のクロックパスを示し、図6Aの周波数コントローラ422の代替の実施形態であるブロック図である。入力バッファ500および502、および内部クロック生成器504は、図7において上述した。本実施形態において、周波数コントローラ600は、クロック分周器602およびクロック結合論理604を含む。周波数コントローラ600の機能は、図7の周波数コントローラ506のものと同様であり、システムクロックclk_intの比率である周波数を有するメモリクロックclk_divを提供するためのものである。後で詳しく説明するように、クロック分周器602は、第1の組の中間クロック信号、および第2の組の中間クロック信号を生成する構成可能な論理ループ回路を含む。クロック信号の第1の中間の組は、システムクロックclk_intの立ち上がりエッジに応答して生成され、クロック信号の第2の中間の組は、システムクロックclk_intの立ち下がりエッジに応答して生成される。したがって、第1の中間クロック信号は、立ち上がりエッジでトリガされ、第2の中間クロック信号は、立ち下がりエッジでトリガされる。第1および第2の組の中間クロック信号は、独立した構成可能論理ループ回路によって生成され、各ループの論理素子の数は、FDRコードに応答して構成可能である。各ループの論理素子の数を変更することによって、中間クロック信号の周波数が調整される。
クロック分周器602は、この例ではビットS1、S2、およびS3によって表される3ビットコードであるFDRコードを受信する。このコードは、周波数レジスタ606に格納される。表3に示される比率例に合わせて、クロック分周器602内の復号ロジックは、1.0、1.5、2.0、2.5、3.0、および3.5の分周比に対応する6つの異なる比率セレクタ信号のうちの1つを生成する。これらの比率セレクタ信号を使用して、上述した各構成可能論理ループ回路の論理素子の数を構成する。クロック結合論理604は、中間クロック信号の第1および第2の組から特定の中間クロック信号を論理的に結合することによって、メモリクロックclk_divを生成する。
本実施形態によれば、図9Aおよび図9Bは、図8のクロック分周器602の回路を示す図である。図9Aにおいて、周波数レジスタ606は、FDRコードビットS1、S2、およびS3を受信することが示される。格納されたFDRコードビットはFDRデコーダ608に提供され、これは、6つの比率セレクタ信号を生成する上述した復号ロジックに対応する。これらの比率セレクタ信号は、div10、div15、div20、div25、div30、およびdiv35であり、それぞれ1.0、1.5、2.0、2.5、3.0、および3.5の分周比に対応する。3ビットのデータから比率セレクタ信号を生成するために、既知の論理復号回路を使用することができることを当業者であれば理解されたい。特に、3ビットのFDRコードでは、最高8つまでの異なる比率セレクタ信号を生成することができる。OR論理ゲート610は、div15およびdiv30の比率セレクタ信号を結合して、結合されたdiv1530比率セレクタ信号を生成する。
図9Bは、それぞれ第1および第2の中間クロック信号を生成する2つの構成可能論理ループ回路の回路図である。第1の構成可能論理ループ回路は、リング構成に互いに直列に接続された7つのカスケードされた論理素子612、614、616、618、620、622、および624、およびループにおける論理素子の数を変更するためのループ調整回路を含む。中間クロック信号Ap、Bp、Cp、Dp、Ep、FpおよびGpは、それぞれ論理素子612から624の出力から分岐することができる。中間クロック信号CNTPは、第1の論理素子612の入力から分岐される。集合的に、Ap、Bp、Cp、Dp、Ep、Fp、Gp、およびCNTPは、中間クロック信号の第1の組に含まれる。本実施形態において、各論理素子は、clk_intの立ち上がりエッジなど、clk_intの第1のエッジに応答して、そのD入力においてデータをラッチするフリップフロップ回路であり、集合的にシフトレジスタを形成する。言い換えれば、これらの中間クロック信号のそれぞれは、前の中間クロック信号が生成されてからシステムクロックの生成された1サイクル後に生成される。各フリップフロップ回路のQ出力は、そのD入力においてラッチされたデータを駆動する。フリップフロップ回路612、614、616、618、620、622、および624は、アクティブな低論理レベル信号RESETPによってリセット可能であり、この信号は、低論理レベルに設定されているとき、それらのQ出力が低論理レベルにセットされるように、すべてのフリップフロップ回路を使用不可にする。フリップフロップ回路612は、SETPが低論理レベルである間、そのQ出力をclk_intの立ち上がりエッジにおいて高論理レベルに設定するためのアクティブな低論理レベル設定信号SETPを受信するように構成される初期化論理素子である。これは、第1の構成可能論理ループ回路のクロック生成操作を開始し、これは通常、RESETPを介してリセットすることによってすべてのフリップフロップ回路がクリアされた後に行われる。
別の実施形態において、フリップフロップ回路と同じ機能を実行する任意の同等の論理素子を、現在示されている構成可能論理ループ回路で使用することができ、示された構成可能論理ループ回路は、clk_intの対向するエッジにおいてトリガし得る。ループ調整回路は、異なるフリップフロップ回路の出力を第1のフリップフロップ612の入力に選択的に結合する送信ゲート626、628、630、および632を含む。送信ゲート626は、高論理レベルのdiv20に応答して、フリップフロップ614の出力をフリップフロップ612の入力に結合する。インバータ(図示せず)は、その補足div20_bを提供するために、div20を反転させる。送信ゲート628は、高論理レベルのdiv1530に応答して、フリップフロップ616の出力をフリップフロップ612の入力に結合する。送信ゲート630は、高論理レベルのdiv25に応答して、フリップフロップ620の出力をフリップフロップ612の入力に結合する。送信ゲート632は、高論理レベルのdiv30に応答して、フリップフロップ624の出力をフリップフロップ612の入力に結合する。任意のFDRコードについて、4つの送信ゲートのうちの1つのみがオンにされる。任意の稼働された送信ゲートは、それが接続されているフリップフロップの出力をフリップフロップ612の入力に接続する。稼働された送信ゲートの位置の後に接続されるフリップフロップは、回路から効果的に取り除かれる。その理由は、それらの出力は、フリップフロップ612に戻るのを制限される、または阻止されるからである。したがって、中間信号の周波数は、フリップフロップの数を変更する、またはループにおけるステージをシフトすることによって調節可能である。
第2の構成可能論理ループ回路は、リング構成に互いに直列に接続された7つのカスケードされた論理素子634、636、638、640、642、644、および646、およびループにおける論理素子の数を変更するためのループ調整回路648、650、652、および654を含む。第1の構成可能論理ループ回路と同様に、論理素子は、シフトレジスタを集合的に形成するフリップフロップとすることができ、ループ調整回路は、送信ゲートとすることができる。中間クロック信号の第2の組は、CNTN、An、Bn、Cn、Dn、En、Fn、およびGnを含む。中間クロック信号An、Bn、Cn、Dn、En、Fn、およびGnは、それぞれフリップフロップ634から646の出力から分岐することができる。中間クロック信号CNTNは、第1のフリップフロップ634の入力から分岐される。中間クロック信号の第1の組からの特定の信号の中間クロック信号の第2の組との異なる組合せを使用して、後述するように、結果として生じる異なるクロック信号を生成することができる。第2の構成可能論理ループ回路の素子の相互接続は、第1の構成可能論理ループ回路のものと実質的に同一である。例えば、送信ゲート648、650、652、および654の配置は、送信ゲート626、628、630、および632と同様である。第2の構成可能論理ループ回路の主要な違いは、例えばclk_intの立ち下がりエッジなど、clk_intの第2のエッジに応答してそれらのD入力においてフリップフロップ634、636、638、640、642、644、および646がデータをラッチすることである。言い換えれば、これらの中間クロック信号のそれぞれは、前の中間クロック信号が生成されてからシステムクロックの1サイクル後に生成される。
これは、任意の所与のFDRコードについて、第1の中間クロック信号および第2の中間クロック信号が同期間を有し、しかし半分のクロックサイクルだけ他からオフセットすることを意味する。フリップフロップ回路612、614、616、618、620、622、および624は、アクティブな低論理レベル信号RESETNによってリセット可能であり、この信号は、低論理レベルに設定されているとき、それらのQ出力が低論理レベルに設定されるように、すべてのフリップフロップ回路を使用不可にする。フリップフロップ回路634は、SETNが低論理レベルである間、そのQ出力をclk_intの立ち下がりエッジにおいて高論理レベルに設定するためのアクティブな低論理レベル設定信号SETNを受信するように構成される初期化論理素子である。これは、第2の構成可能論理ループ回路のクロック生成操作を開始し、これは通常、RESETNを介してリセットすることによってすべてのフリップフロップ回路がクリアされた後に行われる。したがって、フリップフロップ612および634は、クロック信号clk_intのそれぞれのトリガエッジにおいてSETP信号およびSETN信号に同期して応答するように構成される。本実施形態によれば、SETPおよびSETNは、ブリッジデバイスの起動、外部で受信される制御信号のトグル、または操作中のFDRコードの変化に応答して生成される。SETPおよびSETNは低論理レベルパルスとすることができ、それぞれが異なる時に生成されることに留意されたい。SETPおよびSETNの生成に関するさらなる説明については後述する。
図9Bの2つの構成可能論理ループ回路は、デュアルシフトレジスタクロック回路と呼ぶことができ、第1の構成可能論理ループ回路は、クロック信号clk_intの立ち上がりエッジにおいて、各フリップフロップがラッチする正のエッジトリガシフトレジスタである。第2の構成可能論理ループ回路は、クロック信号clk_intの立ち下がりエッジにおいて、各フリップフロップがラッチする負のエッジトリガシフトレジスタである。次に、デュアルシフトレジスタクロック回路の操作原則を説明する。整数分周比の場合、第1の構成可能論理ループ回路は、選択された分周比に従ってそのステージの数を変更し、その期間に選択された分周比を掛けた正のエッジトリガクロック信号を独立して生成する。非整数分周比の場合、第2の構成可能論理ループ回路は、選択された分周比によってそのステージの数を変更し、分周比にシステムクロックclk_intを掛けた周波数であり、比率除算された周波数の半分である周波数を有する負のエッジトリガクロック信号を生成する。この負のエッジトリガクロック信号は、後で、ダウンストリーム回路によって、正のクロックエッジでトリガしており、同じく比率除算された周波数の半分の周波数を有する第1の構成可能論理ループ回路からのクロック信号とマージまたは結合される。正のトリガシフトレジスタおよび負のトリガシフトレジスタからのクロック信号をマージすることによって、システムクロックの比率除算された周波数を有するメモリクロック信号を生成することができる。
2つの構成可能論理ループ回路は、周波数コントローラ600の第1のステージを形成する。周波数コントローラ600の第2のステージは、第1および第2の組の中間クロック信号および比率セレクタ信号div10、div15、div20、div25、およびdiv30に応答してメモリクロックclk_divを生成するクロック結合論理604である。クロック結合論理604は、図10Aおよび図10Bに示される。図10Aは、1.0、1.5、2.0、または2.5のいずれかの分周比である周波数を有する第1の中間メモリクロックclk1025を生成するために使用される組合せ論理を示す回路図である。図10Bは、3.0または3.5の分周比である周波数を有する第2の中間メモリクロックclk3035を生成するために使用される組合せ論理を示す回路図である。図10Bの回路における追加の論理は、第1または第2の中間メモリクロックのうちの1つを最後のメモリクロックclk_divとして渡す。
図10Aおよび図10Bを参照すると、クロック結合論理604の論理ゲートは、論理構成回路700-1、700-2、およびクロック生成回路702-1、702-2として機能的に分類される。論理構成回路700-1、700-2は、分周比信号に応答してクロック生成回路702-1、702-2の論理機能を構成する制御信号を生成する。クロック生成回路702-1、702-2は、クロック信号の第1および第2の中間の組を受信し、論理構成回路700-1、700-2から制御信号によって指示される構成された論理機能に従って、それらを論理的に結合し、メモリクロックclk_divを生成する。言い換えれば、論理構成回路700-1、700-2は、第1および第2の構成可能論理ループ回路からの選択された中間クロック信号の予め定められた組合せを、メモリクロックclk_divを生成するためのクロック生成回路702-1、702-2によって使用できるようにする。
図10Aにおいて、論理構成回路700-1は、NORゲート704、706、および708、インバータ712、714、ならびにANDゲート716および718を含む。図10Aにおいて、クロック生成回路702-2は、NANDゲート720、722、724および726、NORゲート728、730、および732を含む。図10Bにおいて、論理構成回路700-2は、NANDゲート734および736、インバータ738および740、ならびに送信ゲート742および744を含む。図10Bにおいて、クロック生成回路702-2は、NORゲート746、748、750、および752、インバータ754および756、およびNANDゲート758、およびANDゲート760を含む。
以下は、図10Aの論理構成回路700-1の機能説明である。論理ゲート706、708、および718は、比率セレクタ信号div10、div15、div20、およびdiv25のすべてが低論理レベル(例えば論理「0」に対応する電圧)であるとき、図10Aのクロック生成回路702-1を使用不可にするための回路を形成する。言い換えれば、論理ゲート706、708、および718は、div30またはdiv35の1つが高論理レベル(例えば論理「1」に対応する電圧)であるときに、図10Aのクロック生成回路702-1を使用不可にする。ANDゲート718の出力は、ENCNTPとラベル付けされたイネーブル信号であり、それは、div10、div15、div20、およびdiv25の1つが高論理レベルであるとき、低論理レベルに駆動される。そうでなければ、div10、div15、div20、およびdiv25のすべてが低論理レベルであるとき、ENCNTPは高論理レベルに駆動される。
論理ゲート704および716は、整数分周比、特に3.0を下回る整数分周比に対応する分周比信号を検出するための回路を形成する。例えば、1.0および2.0の分周比は整数分周比であり、分周比1.5および2.5は小数分周比である。いずれのdiv10およびdiv20も高論理レベルにあるとき、ANDゲート716の出力におけるイネーブル信号ENCNTNは、低論理レベルに駆動される。NORゲート704の出力がANDゲート716の第1の入力に接続されている間、ANDゲート716の第2の入力がインバータ712の出力を受信し、インバータ712は次いでイネーブル信号ENCNTPを受信することに留意されたい。したがって、小数分周比1.5および2.5に対応する分周比信号div15またはdiv25が高論理レベルであるときのみ、イネーブル信号ENCNTNは高論理レベルに駆動される。
以下は、図10Aのクロック生成回路702-1の機能説明である。図10Aのクロック生成回路702-1は、3つのクロック生成分岐を含む。第1の分岐は、論理ゲート720および728を含む。第2の分岐は、論理ゲート722および730を含む。第3の分岐は、論理ゲート724を含む。論理ゲート726および732は、分岐の出力を結合する。第1の分岐は、ENCNTNが高論理レベルであるとき、NANDゲート720の入力で受信された中間クロック信号CNTNをNORゲート728の出力に結合する。言い換えれば、中間クロック信号CNTNは、1.5または2.5の小数分周比の場合のみ、NORゲート732の第1の入力に渡される。第2の分岐は、ENCNTPが低論理レベルであるとき、NANDゲート722の入力で受信された中間クロック信号CNTPをNORゲート730の出力に結合する。言い換えれば、比率セレクタ信号div10、div15、div20、またはdiv25のうちの任意の1つが高論理レベルであるときはいつでも、中間クロック信号CNTPはNORゲート732の第2の入力に渡される。したがって、1.5および2.5の小数分周比がそれぞれ分周比信号div15およびdiv25を介して選択される場合、CNTNおよびCNTPは、NORゲート732に結合される。1.0の分周比以外のすべての整数分周比について、CNTPのみがNORゲート732に結合される。1.0の分周比の場合、第1および第2の分岐は、NORゲート728および730の第2の入力に、div10分周比信号を直接受信させることによって使用不可にされる。div10が高論理レベルであるとき、NORゲート728および730は、それらの出力を低論理レベルに駆動する。したがって、NORゲート732の出力は、高論理レベルに駆動される。div10が高論理レベルであるため、第3の分岐のNANDゲート724は、システムクロックclk_intを渡すことができる。したがって、div10が高論理レベルであるとき、第1および第2の分岐が使用不可であり、clk1025=clk_intであり、div10が低論理レベルであるとき、第3の分岐は使用不可にされ、clk1025は、CNTP、またはCNTPとCNTNとの論理的組合せである。最終的なメモリクロックclk_divは、1.0と2.5との間の分周比が選択されるとき、中間メモリクロックclk1025である。
以下は、図10Bの論理構成回路700-2およびクロック生成回路702-2の説明である。イネーブル信号ENCNTPが高論理レベルであるとき、またはより詳しくは、div30またはdiv35のみが高論理レベルであるとき、図10Bの論理構成回路700-2は有効にされる。常に1つの比率セレクタ信号のみが高論理レベルであるので、div30またはdiv35が高論理レベルであるとき、残りの比率セレクタ信号は低論理レベルのままである。ENCNTPが高論理レベルの状態で、NANDゲート734および736は使用可能にされる。div30が高論理レベルである場合、送信ゲート742は、インバータ754の出力を渡すためにオンにされる。div35が高論理レベルである場合、送信ゲート744は、NANDゲート758の出力を渡すためにオンにされる。したがって、図10Bの論理構成回路700-2は、2つのクロック生成分岐のうちの1つをANDゲート760に結合するためのセレクタとして機能する。
図10Bのクロック生成回路702-2は、上述した2つのクロック生成分岐、および中間メモリクロックセレクタ回路を含む。図10Aのクロック生成回路702-1が第1から第3のクロック生成分岐を含むため、図10Bの2つのクロック生成分岐は、第4および第5のクロック生成分岐と呼ばれる。第4のクロック生成分岐は、論理ゲート746および754を含み、第5のクロック生成分岐は、論理ゲート748、750、および758を含む。第4のクロック生成分岐において、NORゲート746は、図9Bからの中間クロック信号CpおよびAnを互いに論理的に結合する。第5のクロック生成分岐において、NORゲート748は、中間クロック信号DnおよびGpを論理的に結合し、NORゲート750は、中間クロック信号DpおよびGnを論理的に結合し、そのすべては図9Bの回路から提供されている。中間メモリクロックセレクタ回路は、論理ゲート760、752、および756を含み、AND論理ゲート760は、ENCNTPが高論理レベルであるとき、送信ゲート742または744の出力を中間メモリクロックclk3035として渡すことができる。中間メモリクロックclk3035は、システムクロックを3.0または3.5の分周比で分割したいずれかのものである。NORゲート752は、2つの受信された中間メモリクロックclk1025またはclk3035のうちの1つをインバータ756に渡し、最終的なメモリクロックclk_divが提供される。ブリッジデバイスのために設計される予め定められた分周比に応じて、第1の中間クロック信号および第2の中間クロック信号からの信号の異なる論理的組合せが可能であることに留意されたい。例えば、これらの組合せは、異なるクロック信号の論理レベル間の共通部分に基づいて選択することができる。
図10Bの回路の本実施形態において、中間クロック信号CpおよびAn、ならびにDn、Gp、Dp、およびGnは、中間メモリクロックclk3035のパルス幅が最小値を満たすまたは超えることを確実にするために示される方法で互いに結合される。本実施形態において、パルス幅は、第1の立ち上がりエッジと信号の次の立ち下がりエッジとの間(またはその逆)の継続時間として定義される。例えば、NAND型フラッシュメモリ標準は、WE#またはRE#信号のパルス幅が83MHzより高い周波数で少なくとも12ナノ秒であることを要求する。したがって、特定の中間クロック信号は、論理的に結合されると、パルス幅が必要最小値を超えるように選択される。現在示される例は、中間クロック信号の特定のグループを互いに論理的に結合しているが、異なる最小パルス幅を得るために、異なる組合せが可能であることを当業者であれば理解されよう。
図9Bの第1および第2の構成可能論理ループ回路は、図10Aおよび図10Bのクロック結合論理による次の組合せのための必要なクロック信号を生成するために正しく動作することを確実にするために、動作が始まる前に、両方の構成可能ループ回路の開始条件または状態が設定される。本実施形態において、こうした開始条件は、それだけには限定されないが、ブリッジデバイスの起動のリセット、外部制御信号のトグル、またはFDRコードの変更によるシステムクロックの所望の分周比に対する変更を含み得るリセットイベントに応答して設定される。本実施形態において、この機能を実行するためのクロック初期化回路は、周波数コントローラ422の中に設けられている。
図11は、本実施形態によるクロック初期化回路のブロック図である。クロック初期化回路800は、図9Bの第1および第2の構成可能論理ループ回路をリセットし、クロック生成のための開始条件を設定する役割を果たす。本実施形態において、クロック初期化回路800は、リセット回路802、外部制御信号検出器804、分周比変化検出器806、および起動同期装置808を含む。本実施形態の一例において、外部制御信号検出器804は、チップイネーブル検出器であり、ブリッジデバイス400のCE#ポートに接続されている。チップイネーブル検出器804は、読み出し、プログラム、またはブロック消去動作中に起こり得る高論理レベルから低論理レベルへのCE#ポートの移行を検出するように構成される。CE#が低論理レベルに落ちた後、チップイネーブル検出器804は、ce_rstと呼ばれる低論理レベルパルスを生成する。ブリッジデバイス400の設計および用途に応じて、任意の外部制御信号または内部制御信号を同様の方法で検出することができる。分周比検出器806は、FDRコードビットS1、S2、またはS3のうちの少なくとも1つへの変化を検出する。検出された変化に応答して、分周比検出器806は、dr_rstと呼ばれる低論理レベルパルスを生成する。
リセット回路802は、クロック分周器602のすべてのフリップフロップをクリアにする役割を果たす。しかし、第1および第2の構成可能ループ回路がシステムクロックclk_intの異なるエッジにおいてトリガするため、別々のリセット信号RESETPおよびRESETNが生成される。RESETPおよびRESETNは、論理的に同じであるが、以下でより詳しく説明するように、これらは、それぞれのフリップフロップ回路を適切にリセットするために異なる時に生成される。リセット回路802は、ブリッジデバイス400の起動のリセットに応答して、ce_rstを介したCE#のトグルに応答して、またはdr_rstを介したFDRコードの変化に応答して、RESETPおよびRESETNを生成する。
起動同期装置808は、ce_rstまたはdr_rstに応答して設定信号SETPおよびSETNを生成する。設定信号SETPおよびSETNは、選択された分周比に応じて、異なる時に生成される低論理レベルパルスである。より詳細には、3つの分周比信号は、互いからSETPパルスおよびSETNパルスの間隔を決定する。信号DIV1520は、1.5または2.0の比率による分周のいずれかの選択に対応し、信号DIV2530は、2.5または3.0の比率による分周のいずれかの選択に対応し、信号DIV3540は、3.5または4.0の比率による分周のいずれかの選択に対応する。明示的に示されていないが、信号DIV1520は、信号div15およびdiv20の論理和とすることができる。同様に、信号DIV2530は、信号div25およびdiv30の論理和とすることができ、信号DIV3540は、信号div35およびdiv40の論理和とすることができる。こうした論理和は、図9Aで上記に示されており、信号div15およびdiv30は、信号div1530を形成するために、ORゲート610で結合されている。したがって、類似のOR回路を使用して、DIV1520、DIV2530、およびDIV3540を生成することができる。1.0の選択された分周比のために、全3つの信号DIV1520、DIV2530、およびDIV3540は、低論理レベルである。したがって、セレクタ870は、個々の比率セレクタ信号に応答する。SETPおよびSETNの間隔は、分周比の上述した各対ごとに同じであるが、比率の異なる組合せの間で異なる。
図12は、本実施形態による図11の外部制御信号検出器804の回路図である。回路は、第1のフリップフロップ回路820、第2のフリップフロップ回路822、およびインバータ824およびNANDゲート826を有するパルスジェネレータ回路を含む。フリップフロップ回路820および822は、そのQ出力における出力のためにそのD入力をラッチするためにclk_intの立ち下がりエッジにおいてトリガされる。フリップフロップ回路820のQ出力は、インバータ824の入力に提供され、フリップフロップ回路822のQ出力は、NANDゲート826の第1の入力に提供される。NANDゲート826の第2の入力は、インバータ824の出力を受信する。NANDゲート826の出力はce_rstであり、CE#が低論理レベルのままであり、CE#が低論理レベルから高論理レベルに移行したとき、これは高論理レベルのままである。CE#が高論理レベルにある間、NANDゲート826は、インバータ824から低論理レベル出力を、フリップフロップ回路822から高論理レベル出力を受信する。CE#が高論理レベルから低論理レベルに移行すると、インバータ824は、clk_intの1つの立ち下がりエッジの後、その出力を高論理レベルに変更し、それによって、フリップフロップ回路822が現在高論理レベル信号を出力しているので、NANDゲート826に、ce_rstを低論理レベルに駆動させる。clk_intの第2の立ち下がりエッジにおいて、フリップフロップ回路822は、その出力を低論理レベルに駆動するように、フリップフロップ回路820の低論理レベル出力をラッチする。ここで、NANDゲート826は、ce_rstを高論理レベルに戻す。したがって、低論理ce_rstパルスが生成される。
図13は、本実施形態による図11の分周比検出器の回路図である。分周比検出器806は、フリップフロップ回路830、832、834、836、838、および840、XORゲート842、844、および846、ならびにNORゲート848を含む。すべてのフリップフロップ回路は、システムクロックclk_intの立ち下がりエッジにおいてトリガされる。XORゲート842に接続されたカスケードされたそれぞれの出力を有するフリップフロップ回路830および832の対は、FDRコードビットS1のためのシングルビット変更検出器を形成する。同様に、XORゲート844を有するカスケードされたフリップフロップ回路834および836は、FDRコードビットS2のためのシングルビット変更検出器であり、XORゲート846を有するフリップフロップ回路838および840は、FDRコードビットS3のためのシングルビット変更検出器である。例としてビットS1を使用して、その論理状態に変更がないとき、両方のその入力が同じ論理レベルであるため、XORゲート842の出力は、低論理レベルである。しかし、S1の論理レベルへの任意の変更は、clk_intの第1の立ち下がりエッジの後フリップフロップ830のQ出力に対する変更をもたらし、それによって、両方のその入力は不一致の論理レベルであるため、XORゲート842は、その出力を高論理レベルに駆動する。次いで、clk_intの第2の立ち下がりエッジの後、フリップフロップ832のQ出力は、S1と同じ論理レベルに変わり、それによって、XORゲート842の両入力が再度一致する状態になる。XORゲート842の出力は、高論理レベルに落ちる。したがって、各XORゲート842は、そのそれぞれのFDRビットに対する変化に応答して高論理レベルパルスを生成する。より多いまたはより少ないFDRビットを検出するために、回路を容易に拡大、縮小することができることを当業者であれば理解されたい。XORゲート842、844、および846の出力として示される各シングルビット変更検出器の出力は、NORゲート848として組み込まれる結果結合器に提供される。シングルビット変更検出器のうちの少なくとも1つから受信される任意の高論理レベルパルスによって、NORゲート848は、補完的な低論理レベルdr_rstパルスを生成する。本実施形態において、パルスの期間は、clk_intの1つのクロックサイクルまたは期間である。XORゲート842の入力とフリップフロップ回路832との間に別のフリップフロップ回路を追加することによって、パルス長を延ばすことができることに留意されたい。
図14は、本実施形態による図11のリセット回路802の回路図である。リセット回路802は、起動リセット回路850、AND論理ゲート852および854を含む検出コンバイナ回路、ならびにカスケードされたフリップフロップ回路856および858を含む。起動リセット回路850は、予め定められた最小レベルのVDD電源を検出するための任意の既知の回路を含むことができる。ブリッジデバイス400の起動中、起動リセット回路850は、その出力信号pu_rstを低論理レベルに維持する。VDDの予め定められた最小レベルに達すると、pu_rstは高論理レベルに駆動される。ANDゲート854および856は、低論理レベルのpu_rst、ce_rst、およびdr_rstのいずれか1つを検出するためのコンバイナ回路である。したがって、pu_rstが低論理レベルであるとき、ANDゲート852の出力は低論理レベルである。ce_rstまたはdr_rstパルスが低論理レベルであるとき、ANDゲート852の出力は、同じ継続時間の間、低論理レベルにパルス化する。ANDゲート852の出力は、フリップフロップ回路856に提供され、856の出力は、フリップフロップ回路858に接続されている。フリップフロップ回路856は、システムクロックclk_intの立ち上がりエッジにおいてトリガし、フリップフロップ回路858は、システムクロックclk_intの立ち下がりエッジにおいてトリガする。したがって、RESETNは、RESETPが低論理レベルに駆動されてから1/2クロックサイクル後に低論理レベルに駆動される。pu_rst信号が単に起動プロセスの一部として低論理レベルから高論理レベルに移行するため、RESETPおよびRESETNも単に低論理レベルから高論理レベルに移行する。ブリッジデバイスが起動され、pu_rstが高論理レベルであると仮定すると、ce_rstまたはdr_rstの低論理レベルパルスは、ANDゲート854で受信することができる。こうした場合、RESETPは、ce_rst(またはdr_rst)と同じ継続時間を有する低論理レベルパルスであり、RESETNは、ce_rst(またはdr_rst)と同じ継続時間を有する低論理レベルパルスであるが、RESETPの後、1/2クロックサイクルだけ遅延する。
ここまでは、図12、図13、および図14の回路は、図9Bのクロック分周器602のフリップフロップ回路をクリアにするためのリセット信号RESETPおよびRESETNの生成に寄与する。フリップフロップ回路がリセットされて、クリアされた今、設定信号SETPおよびSETNを生成することによって、クロック分周器602によるクロック信号の生成のための開始条件を設定することができる。より詳細には、選択された分周比の開始条件は、SETPおよびSETNの低論理レベルパルスの間の相対的タイミングに応答して設定される。起動同期装置808は、選択された分周比に応答して特定の時にSETPおよびSETNを生成する役割を果たす。
図15は、本実施形態による図11の起動同期装置の回路図である。起動同期装置808は、フリップフロップ回路860、862、864、および866などのカスケードされた論理素子、ANDゲート868、セレクタ870、およびフリップフロップ回路872を含み、論理素子860は、他の論理素子を介してカスケードする最初の信号を生成する初期化論理素子である。フリップフロップ回路860、862、864、および866のそれぞれは、システムクロックclk_intの立ち下がりエッジにおいてトリガするが、フリップフロップ回路872は、clk_intの立ち上がりエッジにおいてトリガする。ANDゲート868は、ce_rstまたはdr_rstの低論理レベルパルスを検出し、一般的なリセットパルスrstを第1のフリップフロップ回路860に提供する。セレクタ870は、それぞれ設定された構成信号SET15、SET25、およびSET35と呼ばれるフリップフロップ回路862、864、および866の出力を受信する3対1のマルチプレクサとして機能し、1つをフリップフロップ回路872に渡す。セレクタ870は、設定された構成信号SET15、SET25、およびSET35のうちのいずれもフリップフロップ回路872に渡されない非選択状態を有するように構成される。この場合、フリップフロップ回路872(SETN)の出力は、低論理レベルに対応する前のリセットされた状態のままである。フリップフロップ回路860の出力はセット信号SETPとして使用され、フリップフロップ回路872は、受信されたパルス信号に対して180度シフトされる位相であるパルス信号をセレクタ870から提供するための位相調整回路として機能する。フリップフロップ回路872の出力は、設定信号SETNである。セレクタ870は、3つの選択信号のうちの1つに応答するように構成される。フリップフロップ回路872に渡される入力に対する選択信号のマッピングは、以下の通りである。信号DIV1520はSET15を渡し、信号DIV2530はSET25を渡し、信号DIV3540はSET35を渡す。
3つの別々の選択信号を使用する代わりに、3つの状態または同じ機能を達成するための選択信号のうちの任意の1つに対応するように符号化された2ビット信号を受信するように、セレクタ870を構成することができる。本実施形態において、2ビット信号を使用して、合計4つの異なる状態を表すことができる。したがって、選択された分周比が1.0である場合、セレクタ870が設定された構成信号SET15、SET25、およびSET35のうちのいずれも渡さない第4の状態になり得る。
次に、図16Aのタイミング図を参照して、起動同期装置808の動作例について説明する。この例では、DIV3540は、SET35をフリップフロップ回路872に渡すためのアクティブな選択信号であると仮定する。ce_rstまたはdr_rstの低論理レベルパルスがANDゲート868で受信されると、一般的なリセット信号rstは、clk_intのクロックサイクル0の第1の立ち下がりエッジで低論理レベルにパルス化する。この例において、ce_rstまたはdr_rstパルスは、持続時間における1クロックサイクルである。次いでrstパルスは、clk_intの連続した各立ち下がりエッジを有するフリップフロップ回路860、862、864、および866のそれぞれに伝搬する。クロックサイクル5の第1の立ち上がりエッジにおいて、フリップフロップ回路872は、セレクタ870を介してSET35をラッチし、それによってSETNを提供する。図16Aに示すように、SETNは、合計3.5のクロックサイクルだけSETPから離され、または遅延する。
クロック分周器602において、送信ゲート632および654をオンにするために、比率セレクタ信号div35はアクティブであり、フリップフロップ回路612および634は、回路の動作を開始するために、それぞれSETPおよびSETNの低論理レベルパルスを受信する。したがって、第1および第2の構成可能論理回路は、それぞれ7つのステージシフトレジスタとして構成される。最終的に、第1の構成可能論理ループは、7システムクロック期間を有するクロック信号CNTPを生成し、第2の構成可能論理ループは7システムクロック期間を有するクロック信号CNTNを生成する。図16Bは、クロックサイクル6の後に終了する図16Aのタイミング図の拡張である。図16Bのタイミング図は、クロックサイクル8に開始し、図16Aに示すように生成されるSETPおよびSETNに応答して3.5の分周比が選択されたCNTPとCNTNとの間の関係を示す。クロックサイクル6と8との間に信号の移行はない。クロック信号CNTPは、クロックサイクル2の立ち上がりエッジから7クロックサイクルであるクロックサイクル8の立ち上がりエッジにおいて高論理レベルに上昇する。図16Bに示すように、CNTPおよびCNTNは、非整数クロック分周を可能にする半サイクルの間隔で中間クロック信号を相互にトリガしている。SETPが生成された後、設定信号SETNが3.5クロックサイクルで生成され、したがって、第2の構成可能論理ループの最初の動作を、第1の構成可能論理ループに対して3.5クロックサイクルだけ遅らせるためである。次いでクロック分周器602において生成されるクロック信号は、クロック結合論理604に論理的に結合され、結果として最終的なメモリクロックclk_divが得られる。図15および図16Aを参照すると、セレクタ870を介して、第2の構成可能論理ループの最初の動作は、第1の構成可能論理ループの最初の動作に対して1.5または2.5のクロックサイクルだけ遅らせることもできることを理解されたい。
要約すると、クロック初期化回路800は、クロック分周器602の第1の構成可能論理ループおよび第2の構成可能論理ループの中間クロック信号の間でオフセットされるクロックサイクルを確立する。次いでクロック結合論理は、メモリクロックclk_intを生成するために、選択された分周比に基づいて異なる中間クロック信号を結合する。
図17のタイミング図を参照して、上記の回路が整数ベースの分周比に基づいてどのようにclk_intを生成するかの一例を次に説明する。3.0の整数分周比が選択されると仮定する。したがって、この例では、div30を高論理レベルに駆動することによって、3.0の分周比が選択される。クロック分周器602において、それぞれの3つのステージシフトレジスタとして第1および第2の構成可能論理ループを構成するために、送信ゲート628がオンにされる。図18は、システムクロックclk_int、図15の起動同期装置808に示される出力信号、図9Bのクロック分周器602からの中間クロック信号Ap、Bp、Cp、およびAn、ならびに同じく図9Bからの結果として生じるインバータの出力754の信号トレースを示す。この例では、選択された分周比に応答して、信号ENCNTPが高論理レベルであり、信号clk1025が低論理レベルであり、したがって、結果として生じるclk_div信号は、インバータの出力754に等しい。設定された構成信号SET15、SET25、およびSET35の生成のシーケンスおよびタイミングは、図16Aに示されるものと同じである。しかし、選択された3.0の分周比のため、セレクタ870がフリップフロップ回路872にSET25を渡すように、分周比信号DIV2530はアサートされる。したがって、SETNは、図17に示されるSETPの生成の後のclk_intの生成された2.5のクロックサイクルである。
SETPが低論理レベルの状態で、そのD入力を無視しながら、フリップフロップ612は、Apをラッチし、クロックサイクル2の第1の立ち上がりエッジにおいて高論理レベルに駆動する。言い換えれば、低論理レベルのSETPは、高論理レベル信号のD入力をオーバーライドし、これはラッチされ、clk_intの立ち上がりエッジにおいてQ出力に提供される。中間クロック信号BpおよびCp(CNTP)は、clk_intの後続の立ち上がりエッジにおいて引き続いて生成される。信号SETNは、フリップフロップ612へのSETPと同じ影響をフリップフロップ634に及ぼす。クロックサイクル4の第1の立ち下がりエッジにおいて、Anが生成される。図17に示されるように、Ap、Bp、Cpは、1つの完全なクロックサイクルだけオフセットされ、Anは、1/2のクロックサイクルだけにCpからオフセットされる。これらの中間クロック信号のパルス持続期間は、1クロックサイクルである。AnおよびCpがNORゲート746によって論理的に結合されるとき、AnおよびCpの重なり合う高論理レベルは、NORゲート746によって論理和されるかマージされて、1.5クロックサイクル長い高論理レベルパルスが形成される。インバータ754のクロック出力は、この例では実質的にclk_divに等しく、clk_intの3つの完全なクロックサイクルに等しい期間を有する。
上述したように、メモリクロック周波数は、本実施形態において動的に構成可能であり、これは、複合記憶装置が起動された後、いつでもメモリクロックを設定し、リセットすることができることを意味する。図6Aを参照すると、論理およびopコード変換器ブロック414は、それが接続されているメモリコントローラまたは他のホスト装置からクロック構成グローバルコマンドを受信するように構成される。図18は、本実施形態によるグローバルな周波数構成コマンドの一例である。グローバルな周波数構成コマンドは、上記で図3Bに示したグローバルコマンド110と同じ基本構成に従い、少なくとも3つのフィールドを含む。第1のフィールドは、アドレスヘッダ114内のGDAフィールド116、次いでFDRopコードフィールド900、その後にFDRコードフィールド902が続く。現在示されている実施形態において、FDRopコードフィールド900は、論理およびopコード変換器ブロック414内の制御ロジックに指示するためのopコードを含む。これは、例えばFDRコードフィールド902で提供される図7〜9Aの実施形態例で示される3ビットコードなどのFDRコードをラッチすることを含む。GDAフィールド116は、図3Bに記載した第1のものと同じ目的を有する。したがって、各複合記憶装置は、異なるメモリクロックを有するように構成することができる。さらに、GDAフィールド116は、各複合記憶装置が同じFDRコードによってそのメモリクロックを構成するように、システムにおけるすべての複合記憶装置によって認識されるブロードキャストアドレスを含むことができる。
図19は、クロック構成グローバルコマンドがどのように複合記憶装置によって、より詳細には現在説明しているブリッジデバイスの実施形態によって受信されるかについて示すタイミング図である。タイミング図は、ストローブ信号CSIおよび入力ポートD[j]のための信号トレースを示す。タイミング図の左側から開始して、GDAがD[j]入力ポート上にアサートされると同時に、CSIは高論理状態に駆動される。ブリッジデバイスが受信されたGDAと、例えば図6AのGDAレジスタ412など、そのGDAレジスタにおけるその格納されたアドレスとの間の一致をいったん決定すると、FDRopコードがラッチされる。この例では、FDRopコードは、16進法の文字列FCによって表される。FDRopコードに応答して、例えば図6Aの論理およびopコード変換器ブロック414などのブリッジデバイスの制御ロジックは、例えば図6Aの周波数コントローラ422などのクロック制御回路への受信されたFDRコードの経路指定を制御する。FDRコードはラッチされ、メモリクロック周波数は調整される。
上述したように、メモリクロック周波数およびシステムクロック周波数は、例えば製造中に発生する温度またはプロセスのバリエーションなどの動作状態に応答して、自動的に調整することができる。プロセスのバリエーションは、ブリッジデバイスがパッケージされる前に、よく知られているテスト技術を使用して決定することができる。次いで、パッケージは、推奨された有効な動作周波数についてのラベルを付けることができる。周囲温度を感知するために、メモリシステムは、システムの温度を監視するセンサを含むことができ、メモリコントローラは、システムクロック周波数またはメモリクロック周波数の一方または両方における増減を決定するためのアルゴリズムを含むことができる。半導体装置の温度を監視するための温度センサは、当分野ではよく知られている。バッテリ供給の電圧レベルのユーザ設定または自動感知に応答して、システムクロックおよびメモリクロック周波数の一方または両方を低減するために、省力化アルゴリズムを使用することができる。例えば、バッテリ電圧が予め定められた閾値に落ちるとき、クロック周波数を低減することができる。
上記の説明において、説明上、本発明の実施形態の完全な理解を提供するために、多数の詳細が記載されている。しかし、これらの具体的な詳細は、本発明を実施するために必要とされないことは、当業者であれば明らかである。他の例において、よく知られている電気構造および回路は、本発明を不明瞭にしないために、ブロック図形式で示される。
本明細書において、ある要素が別の要素に「接続される」または「結合される」と記載されているとき、その要素を別の要素に直接接続または結合することができる、または介在する要素が存在していてもよいことを理解されたい。これに対して、ある要素が別の要素に「直接接続される」または「直接結合される」と記載されているとき、介在する要素はない。要素間の関係を記載するために使用される他の語は、同様のやり方で解釈されるものとする(すなわち、「間に」対「すぐ間に」、「隣接する」対「直接隣接する」など)。
記載された実施形態の特定の変更および修正を加えることができる。したがって、上述した実施形態は、例示的であり限定的でないと考えられる。