(57)【要約】      （修正有）【課題】ディスクリートメモリデバイスと、該デバイスを制御するブリッジデバイスとを備える複合メモリデバイスを提供する。【解決手段】ブリッジデバイスは、いくつかのバンクとして編成されたメモリを有し、各バンクは、ページバッファの最大物理的サイズより小さい仮想ページサイズを有する。ページバッファに格納される仮想ページサイズに対応するデータのセグメントのみがバンクに転送される。バンクの仮想ページサイズは、順序付けられた構造を有する仮想ページサイズ(VPS)コンフィギュレーションコマンドで供給され、コマンド内にVPSコンフィギュレーションコードを含むVPSデータフィールドの部分ＶＰＳ０〜ＶＰＳ３は、最下位バンクから最上位バンクへと順序付けられている異なる複数のバンクに対応する。【選択図】図１１Ａ
2015111458.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するための仮想ページバッファと、
グローバルコマンドに対応して第１のデータ転送速度で外部デバイスと前記仮想ページバッファとの間でデータを転送するためのブリッジデバイスインターフェイスと、
ローカルコマンドに対応して第２のデータ転送速度でメモリデバイスと前記仮想ページバッファとの間でデータを転送するためのメモリデバイスインターフェイスと、を備えるブリッジデバイス。
【請求項２】
前記メモリデバイスは、固定された最大サイズを持つページバッファを備える請求項１に記載のブリッジデバイス。
【請求項３】
前記第１のデータ転送速度は、前記第２のデータ転送速度よりも速い請求項１に記載のブリッジデバイス。
【請求項４】
前記第１のデータ転送速度で前記ブリッジデバイスインターフェイスと前記仮想ページバッファとの間でデータを転送するためのデータ経路回路をさらに備える請求項１に記載のブリッジデバイス。
【請求項５】
前記データ経路回路は、前記ブリッジデバイスインターフェイスで受け取られた書き込みデータを前記仮想ページバッファに転送して前記仮想ページバッファ内に格納するためのデータ入力経路回路と、
前記仮想ページバッファ内に格納された読み出しデータを前記ブリッジデバイスインターフェイスへ転送するためのデータ出力経路回路とを備える請求項４に記載のブリッジデバイス。
【請求項６】
前記仮想ページバッファは、メモリを備え、
前記メモリは、
前記データ入力経路回路から前記書き込みデータを受け取るための第１の入力経路と、
前記読み出しデータを前記データ出力経路回路に供給するための第１の出力経路と、
前記メモリデバイスインターフェイスから前記読み出しデータを受け取るための第２の入力経路と、
前記メモリ内に格納された前記書き込みデータを供給するための第２の出力経路とを持つ請求項５に記載のブリッジデバイス。
【請求項７】
前記メモリの前記第２の出力経路から前記書き込みデータを受け取るとともに、前記書き込みデータを前記メモリデバイスに転送するための前記ローカルコマンドを生成するコンバータ回路をさらに備える請求項６に記載のブリッジデバイス。
【請求項８】
前記メモリデバイスインターフェイスは非同期式であり、前記ブリッジデバイスインターフェイスはクロック信号を受け取る同期式インターフェイスである請求項１に記載のブリッジデバイス。
【請求項９】
前記メモリデバイスインターフェイスは、パラレルフォーマットで前記ローカルコマンドを提供し、
前記ブリッジデバイスインターフェイスは、シリアルフォーマットで前記グローバルコマンドを受け取る請求項１に記載のブリッジデバイス。
【請求項１０】
第１のデータ転送速度で読み出しデータを受け取るためのメモリデバイスインターフェイスと、
前記メモリデバイスインターフェイスによって受け取られた前記読み出しデータを格納するための仮想ページバッファと、
前記メモリデバイスインターフェイス内に格納された前記読み出しデータを第２のデータ転送速度で出力するためのブリッジデバイスインターフェイスとを備えるブリッジデバイス。
【請求項１１】
第１のデータ転送速度で書き込みデータを受け取るためのブリッジデバイス入力/出力インターフェイスと、
前記ブリッジデバイス入力/出力インターフェイスによって受け取られた前記書き込みデータを格納するための仮想ページバッファと、
前記仮想ページバッファ内に格納された前記書き込みデータを第２のデータ転送速度で出力するためのメモリデバイスインターフェイスとを備えるブリッジデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、開示の全体が参照により本明細書に明示的に組み込まれている、2008年11月4日に出願した米国仮特許出願第61/111,013号、2009年6月8日に出願した米国仮特許出願第61/184,965号、および2009年7月24日に出願した米国特許出願第12/508,926号の優先権の利益を主張するものである。
【背景技術】
【０００２】
半導体メモリデバイスは、現在利用可能な産業用エレクトロニクス製品およびコンシューマエレクトロニクス製品において重要なコンポーネントである。例えば、コンピュータ、携帯電話、および他の携帯型電子機器は、すべて、データを格納するために何らかの形態のメモリを利用している。多くのメモリデバイスは、コモディティとして、つまりディスクリートメモリデバイスとして利用可能であるが、より高い水準のインテグレーションと、より高い入出力(I/O)帯域幅とを必要とすることから、マイクロコントローラおよび他の処理回路などのシステムと一体化できる、組み込みメモリの開発に至った。
【０００３】
大半のコンシューマエレクトロニクス機器では、データを格納するために、フラッシュメモリデバイスなどの不揮発性デバイスを採用している。フラッシュメモリデバイスに対する需要は、これらのデバイスが占有する物理的領域がわずかでありながら大容量の不揮発性記憶域を必要とするさまざまなアプリケーションに適しているため著しく成長し続けている。例えば、フラッシュメモリは、デジタルカメラ、携帯電話、ユニバーサルシリアルバス(USB)フラッシュドライブ、および携帯音楽プレーヤーなどのさまざまなコンシューマデバイスにおいて、これらのデバイスで使用するデータを格納するために幅広く利用されている。また、フラッシュデバイスは、ハードディスクドライブ(HDD)の代替えとなるソリッドステートドライブ(SSD)としても使用されている。このような携帯型デバイスは、好ましくは、フォームファクターのサイズおよび重量の点で小型化される。しかし残念なことに、マルチメディアおよびSSDアプリケーションでは、大容量のメモリを必要とし、このことが、それらの製品のフォームファクターのサイズおよび重量を増加させる要因となりうる。そこで、コンシューマ製品のメーカーは、製品に搭載される物理的メモリの量を、そのサイズおよび重量が消費者に受け入れられるような範囲に制限することによって妥協点を見いだしている。さらに、フラッシュメモリは、DRAMまたはSRAMに比べて単位面積当たりの密度を高くすることができるが、その性能は、典型的には、I/O帯域幅が比較的低いため制限され、延いては、読み出しおよび書き込みの動作のスループットにマイナスの影響を与える。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国仮特許出願第61/111,013号明細書
【特許文献２】米国仮特許出願第61/184,965号明細書
【特許文献３】米国特許出願第12/508,926号明細書
【特許文献４】米国特許公開第20070153576号明細書
【特許文献５】米国特許公開第20070076502号明細書
【特許文献６】米国特許公開第20090039927号明細書
【特許文献７】米国特許公開第20080192649号明細書
【特許文献８】米国特許公開第20080201588号明細書
【特許文献９】米国特許出願公開第20090039927号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メモリデバイスのアプリケーションに対する途切れることなく増大する需要と偏在性に応えるために、高性能メモリデバイス、つまり、より高いI/O帯域幅、より高い読み出しおよび書き込み動作のスループット、およびより高いオペレーションの柔軟性を実現することが望まれている。
【課題を解決するための手段】
【０００６】
第1の態様では、半導体デバイス内のメモリバンクに対するページサイズを構成するための方法を提供する。この方法は、構成されるメモリバンクのうちの少なくとも1つのメモリバンクを識別するステップと、少なくとも1つのメモリバンクに対応するコンフィギュレーションコードのみを含むコマンドを発行するステップと、少なくとも1つのメモリバンクに対応するコンフィギュレーションコードに応答して少なくとも1つのメモリバンクのページサイズを構成するステップとを含む。一実施形態によれば、メモリバンクは、最下位のメモリバンクから最上位のメモリバンクへと順序付けられ、識別するステップは、少なくとも1つのメモリバンクのうちの最高位のメモリバンクを識別するステップを含む。本発明の実施形態では、少なくとも1つのメモリバンクの最高位のメモリバンクは、メモリバンクのうちの最下位のメモリバンクに対応する。本発明の実施形態では、発行するステップは、最下位のメモリバンクに対応する最初のコンフィギュレーションコードと最高位のメモリバンクに対応する最後のコンフィギュレーションコードを供給するステップを含むことができる。さらに、発行するステップは、最下位のメモリバンクと最高位のメモリバンクとの間の介在するメモリバンクに対応する中間コンフィギュレーションコードを供給するステップを含むことができる。あるいは、発行するステップは、最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後のコンフィギュレーションコードをメモリバンクの順序付けに対応する順序で供給するステップを含むことができる。
【０００７】
この代替的実施形態において、最初のコンフィギュレーションコードが、時間的に最初に供給され、最後のコンフィギュレーションコードが時間的に最後に供給される。さらに他の代替的実施形態では、発行するステップは、最初のコンフィギュレーションコードの前にヘッダを付与するステップを含むことができ、ヘッダはグローバルデバイスアドレス(global device address)とその後に続くopコードを含む。さらに、発行するステップは、ヘッダの先頭においてストローブ信号を第1の論理レベルに駆動し、最後のコンフィギュレーションコードの終わりにおいてストローブ信号を第2の論理レベルに駆動するステップを含むことができる。
【０００８】
さらに他の代替的実施形態において、構成するステップは、半導体デバイスにおいて最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後のコンフィギュレーションコードをラッチするステップを含む。構成するこのステップは、最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後のコンフィギュレーションコードをデータバス上に時分割多重化するステップをさらに含むことができる。次いで、ラッチするステップは、最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後のコンフィギュレーションコードのそれぞれを異なる時点でデータバス上にラッチするステップを含むことができる。あるいは、ラッチするステップは、最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後コンフィギュレーションコードのそれぞれを、クロック信号の立ち上がりエッジおよび立ち下がりエッジのうちの一方と同期してデータバス上にラッチするステップと、第1の論理レベルでストローブ信号を受け取って、最初のコンフィギュレーションコード、中間のコンフィギュレーションコード、および最後のコンフィギュレーションコードのラッチをイネーブルするステップとを含むことができる。第2の論理レベルでストローブ信号を受け取って、データバス上でのデータのラッチをディセーブルすることができる。
【０００９】
第2の態様においては、可変サイズのコマンドでページサイズコンフィギュレーションコードをラッチするための回路が提供される。この回路は、データバスおよびページサイズコンフィギュレータを備える。データバスは、異なる期間にページサイズコンフィギュレーションコードのうちの少なくとも1つに対応するデータを受け取る。ページサイズコンフィギュレータは、異なる期間にデータをラッチするためにデータバスに結合される。データは、1つのページサイズコンフィギュレーションコードに対応するビットの一部、または1つのページサイズコンフィギュレーションコードに対応するすべてのビットを含む。異なる期間は、複数のクロックサイクルに対応し、ページサイズコンフィギュレータは、異なるクロックサイクルで受信されたパルス信号に応答してデータをラッチするためにデータバスに接続された入力をそれぞれ有するレジスタを備える。
【００１０】
第2の態様の一実施形態によれば、ページサイズコンフィギュレータは、クロック信号の立ち上がりエッジおよび立ち下がりエッジのうちの一方に応答してパルス信号を生成するためにドミノアクティブ化論理回路(domino activation logic)を備える。ドミノアクティブ化論理回路は、互いに直列に接続され、クロック信号の立ち上がりエッジおよび立ち下りエッジのうちの一方に応答してパルス信号を生成するために順次イネーブルされるラッチ信号発生器を備えることができる。ドミノアクティブ化論理回路は、起動信号に応答してラッチ信号発生器のうちの第1のラッチ信号発生器をイネーブルするためのシード信号発生器(seed signal generator)を備える。次いで、ラッチ信号発生器のそれぞれが、対応するパルス信号が生成された後に、後続のラッチ信号発生器をイネーブルする。
【００１１】
次に、例として、付属の図面を参照する。
【図面の簡単な説明】
【００１２】
【図１Ａ】例示的な不揮発性メモリシステムのブロック図である。
【図１Ｂ】図1Aの例示的なメモリシステムにおいて使用されるディスクリートフラッシュメモリデバイスの図である。
【図２Ａ】例示的なシリアルメモリシステムのブロック図である。
【図２Ｂ】図2Aの例示的なメモリシステムにおいて使用されるディスクリートシリアルインターフェイスフラッシュメモリデバイスの図である。
【図３Ａ】一実施形態による4つのディスクリートメモリデバイスおよび1つのブリッジデバイスを有する複合メモリデバイスのブロック図である。
【図３Ｂ】本発明の一実施形態によるグローバルコマンドを例示する図である。
【図４】一実施形態によるブリッジデバイスのブロック図である。
【図５】一実施形態による直列に相互接続されたメモリシステム内のコントローラに接続された多数の複合メモリデバイスを有するメモリシステムのブロック図である。
【図６】本発明の一実施形態によるNAND/高速シリアルインターフェイス間ブリッジデバイスのブロック図である。
【図７】本発明の一実施形態により、図6のブリッジデバイスからNANDフラッシュメモリデバイスへのメモリマッピングを示すブロック図である。
【図８Ａ】図6のブリッジデバイスを使用する1つのNANDフラッシュメモリデバイスからの例示的な読み出しオペレーションを示す図である。
【図８Ｂ】図6のブリッジデバイスを使用する1つのNANDフラッシュメモリデバイスからの例示的な読み出しオペレーションを示す図である。
【図８Ｃ】図6のブリッジデバイスを使用する1つのNANDフラッシュメモリデバイスからの例示的な読み出しオペレーションを示す図である。
【図９Ａ】図6のブリッジデバイスのそれぞれのメモリバンクに対する例示的な仮想ページコンフィギュレーションを示す図である。
【図９Ｂ】図6のブリッジデバイスのそれぞれのメモリバンクに対する例示的な仮想ページコンフィギュレーションを示す図である。
【図９Ｃ】図6のブリッジデバイスのそれぞれのメモリバンクに対する例示的な仮想ページコンフィギュレーションを示す図である。
【図９Ｄ】図6のブリッジデバイスのそれぞれのメモリバンクに対する例示的な仮想ページコンフィギュレーションを示す図である。
【図１０】本発明の一実施形態によるVPSコンフィギュレーションコマンドを例示する図である。
【図１１Ａ】本発明の一実施形態による、動的にサイズが決められるコンフィギュレーションコマンドのタイミング図である。
【図１１Ｂ】本発明の一実施形態による、動的にサイズが決められるコンフィギュレーションコマンドのタイミング図である。
【図１２Ａ】本発明の一実施形態による、図6のVPSコンフィギュレータの例示的な一実施形態の図である。
【図１２Ｂ】図12AのVPSコンフィギュレータのオペレーションを例示するシーケンス線図である。
【図１３】図12Aのシード信号発生器の回路図である。
【図１４】本発明の一実施形態による、図12Aのラッチ発生器回路の略図である。
【図１５】本発明の一実施形態による、ブリッジデバイス内のメモリの仮想ページサイズを構成する方法の流れ図である。
【発明を実施するための形態】
【００１３】
一般に、少なくともいくつかの実施形態は、ディスクリートメモリデバイスとメモリデバイスと互換性のないフォーマットまたはプロトコルを有するグローバルメモリ制御信号に応答してディスクリートメモリデバイスを制御するためのブリッジデバイスとを含む複合メモリデバイスを対象とする。ディスクリートメモリデバイスは、ネイティブの、またはローカルメモリの制御信号に応答する、市販のメモリデバイスもしくはカスタムメモリデバイスとすることができる。グローバルおよびローカルメモリ制御信号は、コマンドとそれぞれが異なるフォーマットを有するコマンド信号とを含む。
【００１４】
ディスクリートメモリデバイスに関する複合メモリデバイスの読み出しおよび書き込みの全体的な性能を改善するために、ブリッジデバイスは、書き込みデータを受け取ることと読み出しデータを供給することとをディスクリートメモリデバイスの最大定格周波数より高い周波数で行うように構成される。本発明の実施形態を説明するために、書き込みオペレーションおよびプログラムオペレーションは、両方の場合においてデータがメモリのセル内に格納されるので、類似の機能として扱われる。しかし、動作する複合メモリデバイス内のディスクリートメモリデバイスは、ブリッジデバイスがより高いデータ転送速度で読み出しデータを出力することができるようにリアルタイムでブリッジデバイスへ十分高速に読み出しデータを供給することができない。したがって、このような速度の不整合を補正するために、ブリッジデバイスは仮想ページバッファを備え、これにより、ディスクリートメモリデバイスのページバッファから読み出された1ページ分のデータの少なくとも一部を一時的に格納するか、またはディスクリートメモリデバイスのそのページバッファに書き込む。
【００１５】
本明細書で説明されている技術によるシステムおよびデバイスは、直列に接続されている複数のデバイスを有するメモリシステムにも応用可能である。これらのデバイスは、例えば、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、DiNORフラッシュEEPROMメモリ、シリアルフラッシュEEPROMメモリ、強誘電体RAMメモリ、磁気抵抗RAMメモリ、相変化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より多くすることも少なくすることも可能であることを理解するであろう。本発明において示されている例では、メモリデバイス16-1〜16-4は、非同期であり、互いに並列に接続される。
【００１８】
チャネル18は、対応するメモリデバイスのすべてに接続されるデータ線および制御線を備える、1セットの共通バスを具備する。それぞれのメモリデバイスは、メモリコントローラ14によって供給される各チップセレクト(イネーブル)信号CE1#、CE2#、CE3#、CE4#によりイネーブルもしくはディセーブルされる。この例と以下の例において、「#」は、信号がアクティブLOW論理レベル信号(つまり、論理「0」状態)であることを示す。このスキームでは通常、不揮発性メモリデバイス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を備える。当技術分野でよく知られているように、入力および出力バッファのみを提供するために、電源ポートを追加装備することができる。以下のTable1(表1)は、制御およびデータポートの例、対応する説明、定義、および論理状態の例をまとめたものである。異なるメモリデバイスは、Table 1(表1)に示されているポートと機能的に同等であるが、そのタイプのメモリデバイスに特有のプロトコルに従うものとしてよい異なる名称の制御およびデータポートを有する場合があることに留意されたい。このようなプロトコルは、制定されている標準に従うか、または特定のアプリケーション向けにカスタマイズすることができる。パッケージピンおよびボールグリッドアレイは、ポートの物理的な例であり、パッケージングされたデバイスの信号もしくは電圧をボードに相互接続するために使用されることに留意されたい。ポートは、例えば、組み込みシステムおよびSiP(System-in-Package)システム用の端子および接点などの、他のタイプの接続部も備えることができる。
【００２０】
【表１】
2015111458.tif 000003
【００２１】
Table 1(表1)に記載されているすべての信号は、図1Bに示されている例示的なフラッシュメモリデバイスのオペレーション用のメモリ制御信号と一般的に称される。特定のオペレーションを実行するようにフラッシュメモリデバイスに指令するコマンドを受け取ることができるので、最後のポートI/O[i]はメモリ制御信号と考えられることに留意されたい。ポートI/O[i]上でアサートされるコマンドは、I/O[i]を構成するそれぞれの個別の信号線に適用される論理状態の組み合わせであるため、I/O[i]のそれぞれの信号の論理状態は、例えば、WP#などの、他のメモリ制御信号のうちの1つの信号と同じような機能を果たす。主な違いは、I/O[i]論理状態の特定の組み合わせが、機能を実行するようにフラッシュメモリデバイスを制御するという点である。コマンドは、I/Oポートを介して受け取られ、コマンド信号は、残りの制御ポートを含む。当業者であれば、opコード(演算コード)は、特定のメモリオペレーションを実行するためにコマンド内に備えられるものであると理解する。チップイネーブルCE#を除いて、他のすべてのポートは、チャネル18を構成する各グローバル信号線に結合される。すべてのポートは、メモリオペレーションを実行するように所定の方法で制御される。これは、信号タイミングおよび特定の制御信号の順序付けを含むが、アドレス、コマンド、およびI/Oデータは、I/Oポート上に出される。したがって、図1Bのアシンクロナスフラッシュメモリデバイスを制御するためのメモリ制御信号は、特定のフォーマット、つまりプロトコルを有する。
【００２２】
図1Aの不揮発性メモリデバイスのそれぞれは、データを受け取り、供給するための1つの特定のデータインターフェイスを有する。図1Aの例では、これは、アシンクロナスフラッシュメモリデバイスにおいて、さらには、ONFi2.0標準で指定されているようないくつかのシンクロナスフラッシュメモリデバイスにおいて一般に使用されるパラレルデータインターフェイスである。データの複数のビットを並列に供給する標準のパラレルデータインターフェイスには、例えば、定格動作周波数を超えて動作させたときに、信号品質を劣化させる、クロストーク、信号スキュー、および信号減衰などの通信品質劣化の影響を受けるというよく知られている短所がある。
【００２３】
データスループットを高めるために、シリアルデータインターフェイスを有するメモリデバイスが、共通出願の米国特許公開第20070153576号、名称「Memory with Output Control」、および共通出願の米国特許公開第20070076502号、名称「Daisy Chain Cascading Devices」において開示されており、これは、ある周波数、例えば200 MHzで順次、データを受け取り、供給する。これは、シリアルデータインターフェイスフォーマットと称される。これらの共通出願の特許公開において示されているように、説明されているメモリデバイスは、互いに直列に接続されるメモリデバイスのシステムにおいて使用されうる。
【００２４】
図2Aは、シリアルメモリシステムの概念的な性質を例示するブロック図である。図2Aでは、リング型トポロジーのシリアルメモリシステム20は、1セットの出力ポートSoutおよび1セットの入力ポートSinを有するメモリコントローラ22、ならびに直列に接続されているメモリデバイス24-1、24-2、24-3、および24-Nを備える。メモリデバイスは、例えばシリアルインターフェイスフラッシュメモリデバイスとすることができる。図2Aに示されていないが、それぞれのメモリデバイスは、1セットの入力ポートSinおよび1セットの出力ポートSoutを有する。これら1セットの入力ポートおよび1セットの出力ポートは、メモリデバイスをこのメモリデバイスが一部となっているシステムにインターフェイスする、物理的なピンまたは接続部などの、1つまたは複数の個別の入力/出力(I/O)ポートを備える。一例において、メモリデバイスは、フラッシュメモリデバイスとしてよい。あるいは、メモリデバイスは、DRAM、SRAM、DiNORフラッシュEEPROM、シリアルフラッシュEEPROM、強誘電体RAM、磁気抵抗RAM、相変化RAM、またはコマンドを実行するために、またはコマンドおよびデータを次のメモリデバイスに受け渡すために、特定のコマンド構造と互換性のあるI/Oインターフェイスを有する他の好適なタイプのメモリデバイスとすることができる。図2Aの現在の例は、4つのメモリデバイスを含むが、代替的構成は、単一のメモリデバイス、または好適な任意の数のメモリデバイスを備えることができる。したがって、メモリデバイス24-1が、Soutに接続されているときにシステム20の第1のデバイスである場合、メモリデバイス24-Nは、Sinに接続されているときにN番目の、または最後のデバイスであり、ただし、Nは、ゼロより大きい整数値である。次いで、メモリデバイス24-2、24-3、および24-3から24-Nまでのメモリデバイスは、第1のメモリデバイスと最後のメモリデバイスとの間の介在する直列接続されたメモリデバイスである。図2Aの例では、メモリデバイス24-1から24-Nは、シンクロナスメモリデバイスであり、互いに、またメモリコントローラ22と直列に接続されている。
【００２５】
図2Bは、図2Aのメモリシステムにおいて使用されうるシリアルインターフェイスフラッシュメモリデバイス(例えば、24-1から24-N)の図である。この例示的なシリアルインターフェイスフラッシュメモリデバイスは、電源ポート、制御ポート、およびデータポートを備える。電源ポートは、フラッシュメモリデバイスのすべての回路に電力を供給するためのVCCおよびVSSを備える。当技術分野で知られているように、入力および出力バッファのみを構成するために、電源ポートを追加装備することができる。以下のTable 2(表2)は、制御およびデータポートの例、対応する説明、定義、および論理状態の例をまとめたものである。異なるメモリデバイスは、Table 1(表1)に示されているポートと機能的に同等であるが、そのタイプのメモリデバイスに特有のプロトコルに従うものとしてよい異なる名称の制御およびデータポートを有する場合があることに留意されたい。このようなプロトコルは、制定されている標準に従うか、または特定のアプリケーション向けにカスタマイズすることができる。
【００２６】
【表２】
2015111458.tif 000004
【００２７】
信号CSO、DSO、およびQ[j]を除く、Table 2(表2)に記載されているすべての信号は、図2Bに示されている例示的なフラッシュメモリデバイスのオペレーション用のメモリ制御信号である。CSOおよびDSOは、CSIおよびDSIの再送バージョンの信号であり、Q[j]は、コマンドおよびデータを供給するための出力である。これらのコマンドは、D[j]ポートを介して受け取られ、コマンド信号は、制御ポートRST#、CE#、CK、CK#、CSI、およびDSIを含む。図2Aに示されている例示的な構成において、すべての信号は、メモリコントローラ22から直列のそれぞれのメモリデバイスに連続的に受け渡され、CE#およびRST#を除き、並列のすべてのメモリデバイスに供給される。したがって、図2Bのシリアルインターフェイスフラッシュメモリデバイスは、その中でメモリオペレーションを実行するために、それ専用のフォーマットもしくはプロトコルを有するメモリ制御信号を受信する。
【００２８】
図2の直列に接続されているメモリシステムのさらなる詳細については、2008年2月15日に出願した共通出願の米国特許公開第20090039927号、名称「Clock Mode Determination in a Memory System」で開示されており、それぞれのメモリデバイスがパラレルクロック信号を受信するシリアルメモリシステム、およびそれぞれのメモリデバイスがソースシンクロナスクロック信号を受信するシリアルメモリシステムが説明されている。
【００２９】
図1Bの市販のアシンクロナスフラッシュメモリデバイスと図2Bのシリアルインターフェイスフラッシュメモリデバイスの両方を用意することで、メモリシステムのメーカーは、両方のタイプのメモリシステムを構成することができる。しかし、これは、2つの異なるタイプのメモリデバイスの調達と購入を行わなければならないのでメモリシステムのメーカーにとってコスト増大の要因となる。当業者であれば、大量購入すればメモリデバイス1つ当たりの価格が低下し、したがって大量購入すればメモリシステムのコストを極力下げられることを理解するであろう、したがって、メーカーは両方のタイプのメモリシステムを供給することができるが、他方のメモリデバイスの市場需要が高まると、そのせいで一方のメモリデバイスの市場需要が下がるというリスクを負うことになる。このため、使用できないメモリデバイスの購入した在庫品が残る可能性がある。
【００３０】
図1Bおよび図2Bに示されているように、アシンクロナスフラッシュメモリデバイスおよびシリアルインターフェイスフラッシュメモリデバイスの機能的なポート割り当てまたは定義は、互いに実質的に異なり、したがって、それぞれ互いに互換性がない。ディスクリートメモリデバイスを制御するために使用される信号群の機能的なポート定義およびシーケンス、またはタイミングは、プロトコルもしくはフォーマットと称される。したがって、アシンクロナスフラッシュメモリデバイスおよびシリアルフラッシュメモリデバイスは、異なるメモリ制御信号フォーマットに応答して動作する。このことは、図2Bのシリアルインターフェイスフラッシュメモリデバイスは、マルチドロップメモリシステムでは使用することはできず、それに対応して、図1Bのアシンクロナスフラッシュメモリデバイスは、直列接続リング型トポロジーメモリシステムでは使用することができないことを意味する。
【００３１】
図2Aおよび図2Bに示されているようなシリアルインターフェイスフラッシュメモリデバイスは、図1Aおよび1Bのアシンクロナスフラッシュメモリデバイスに比べて性能が改善されていることについては望ましいけれども、メモリシステムのメーカーがアシンクロナスフラッシュメモリデバイスの在庫品を処分することを望むとは思えない。さらに、業界の至るところで使用されているため、アシンクロナスフラッシュメモリデバイスは、図2Aのシリアルインターフェイスフラッシュメモリデバイスなどの代替的フラッシュメモリデバイスに比べて安価に購入できる。現在のところ、メモリシステムのメーカーは、コストオーバーヘッドを最小限度に抑えつつ直列に相互接続されたデバイスの性能上の利点を活かす解決策を持っていない。
【００３２】
本明細書で説明されている少なくともいくつかの例示的な実施形態は、マルチチップパッケージ(MCP)または(system in package)において、ディスクリートメモリデバイスと併せて高速なインターフェイスチップまたはブリッジデバイスを使用する高性能複合メモリデバイスを実現している。ブリッジデバイスは、システムにI/Oインターフェイスを提供するものであり、I/Oインターフェイスはシステムに組み込まれており、またブリッジデバイスは、グローバルフォーマットに従ってグローバルメモリ制御信号を受信し、ディスクリートメモリデバイスと互換性のあるネイティブまたはローカルフォーマットに従ってコマンドをローカルメモリ制御信号に変換する。ブリッジデバイスは、これにより、NANDフラッシュデバイスなどのディスクリートメモリデバイスの再利用を可能にしつつ、ブリッジデバイスのI/Oインターフェイスによってもたらされる性能上の利点を活かす。ブリッジデバイスは、パッケージ内のディスクリートメモリデバイスダイと一体化されたディスクリート論理回路ダイとして実現されうる。
【００３３】
本発明の例において、グローバルフォーマットは、図2Aおよび2Bのシリアルフラッシュメモリデバイスと互換性のあるシリアルデータフォーマットであり、ローカルフォーマットは、図1Aおよび2Bのアシンクロナスフラッシュメモリデバイスと互換性のあるパラレルデータフォーマットである。しかし、本発明の実施形態は、複合メモリデバイス内で使用されるディスクリートメモリデバイスのタイプおよび複合メモリデバイスメモリが使用されるメモリシステムのタイプに応じて、制御信号フォーマットのペアを使用することができるので、上記の例示的なフォーマットに限定されない。例えば、メモリシステムのグローバルフォーマットは、ONFi(Open NAND Flash Interface)標準に従うものとすることができ、またローカルフォーマットは、アシンクロナスフラッシュメモリデバイスのメモリ制御信号フォーマットに従うものとすることができる。例えば、具体的なONFi標準は、ONFi 2.0仕様である。あるいは、グローバルフォーマットは、アシンクロナスフラッシュメモリデバイスのメモリ制御信号フォーマットに従い、ローカルフォーマットは、ONFi 2.0仕様フォーマットに従うものとすることができる。
【００３４】
図3Aは、本発明の実施形態による、複合メモリデバイスのブロック図である。図3Aに示されているように、複合メモリデバイス100は、4つのディスクリートメモリデバイス104に接続されているブリッジデバイス102を備える。ディスクリートメモリデバイス104はそれぞれ、例えば、8Gbの記憶容量を有するアシンクロナスフラッシュメモリデバイスとすることができるが、8Gbのデバイスの代わりに、任意の容量のディスクリートフラッシュメモリデバイスを使用することができる。さらに、複合メモリデバイス100は、4つのディスクリートメモリデバイスを有することに限定されない。ブリッジデバイス102が複合メモリデバイス100内に最大数のディスクリートメモリデバイスを収容するように設計されている場合に、任意の数のディスクリートメモリデバイスを備えることができる。
【００３５】
複合メモリデバイス100は、グローバルコマンドを受け取るための入力ポートGLBCMD_INおよび受け取ったグローバルコマンドおよび読み出しデータを受け渡すための出力ポートGLBCMD_OUTを有する。図3Bは、本発明の一実施形態による、グローバルコマンドの階層を例示する略図である。グローバルコマンド110は、特定のフォーマットを有するグローバルメモリ制御信号(GMCS)112およびアドレスヘッダ(AH)114を備える。これらのグローバルメモリ制御信号112は、図2Bのシリアルインターフェイスフラッシュメモリデバイスに対するメモリ制御信号などの、メモリコマンドおよびコマンド信号をもたらす。アドレスヘッダ114は、システムレベルおよび複合メモリデバイスレベルで使用されるアドレス指定情報を含む。この追加のアドレス設定情報は、メモリコマンド内のopコードを実行する複合メモリデバイスを選択するためのグローバルデバイスアドレス(GDA)116およびopコードを実行する選択された複合メモリデバイス内の特定のディスクリートデバイスを選択するためのローカルデバイスアドレス(LDA)118を含む。要約すると、グローバルコマンドは、1つのフォーマットに対応するすべてのメモリ制御信号、および複合メモリデバイスまたはその中に収納されているディスクリートメモリデバイスを選択または制御するために必要であると思われるさらなるアドレス指定情報を含むということである。
【００３６】
ブリッジデバイス102は、opコードを実行することも、または行およびアドレス情報でメモリロケーションにアクセスすることもしないことに留意されたい。ブリッジデバイス102は、受信されたグローバルメモリ制御信号112を変換するように選択されたがどうかを判定するためにグローバルデバイスアドレス116を使用する。選択された場合、ブリッジデバイス102は、変換されたグローバルメモリ制御信号112をディスクリートメモリデバイスのうちのどれに送信するかを決定するためにローカルデバイスアドレス118を使用する。4つすべてのディスクリートメモリデバイス104と通信するために、ブリッジデバイス102は、後で説明されるように、対応するディスクリートメモリデバイスにそれぞれ接続されている4セットのローカルI/Oポート(図示せず)を備える。それぞれの1セットのローカルI/Oポートは、適切なオペレーションのためにディスクリートメモリデバイスが必要とするすべての信号を備え、これにより、ローカルデバイスインターフェイスとして機能する。
【００３７】
読み出しデータは、複合メモリデバイス100から、または前の複合メモリデバイスからのフラッシュメモリデバイス104のいずれか1つによって供給される。特に、ブリッジデバイス102は、メモリシステムのメモリコントローラに、または直列に相互接続されているデバイスのシステム内の他の複合メモリデバイスのうちの他のブリッジデバイスに接続されうる。入力ポートGLBCMD_INおよび出力ポートGLBCMD_OUTは、グローバルコマンド信号および読み出しデータを複合メモリデバイス100との間で、特にブリッジデバイス102との間で送受信するためのパッケージピン、他の物理的導線、または他の任意の回路とすることができる。したがって、ブリッジデバイス102は、入力ポートGLBCMD_INおよび出力ポートGLBCMD_OUTへの対応する接続部を有し、これにより、図2Aのメモリコントローラなどの外部コントローラ、またはシステム内の他の複合メモリデバイスからのブリッジデバイスと通信することができる。図7の例示的な実施形態に示されるように、多数の複合メモリデバイスを相互に直列に接続することができる。
【００３８】
図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のグローバルデバイスアドレス116を処理して、グローバルコマンド110が対応する複合メモリデバイスへアドレス指定されているかどうかを判定し、グローバルコマンド110内のローカルデバイスアドレス118を処理して、対応する複合メモリデバイスの複数のディスクリートメモリデバイスのうちのどれが変換されたコマンドを受け取るのかを判定し、これはopコードならびにオプションの行および列アドレスおよびオプションの書き込みデータを含む。グローバルコマンドが、ブリッジデバイス200に接続されているディスクリートメモリデバイスへアドレス指定される場合、フォーマットコンバータ206におけるコマンドフォーマットコンバータ208は、グローバルメモリ制御信号112を変換し、これにより、グローバルフォーマットからローカルフォーマットにopコードおよびコマンド信号ならびに行およびアドレス情報を供給し、メモリデバイスインターフェイス204に回送する。書き込みデータが、例えば、シリアルデータフォーマットでブリッジデバイス入力/出力インターフェイス202に供給される場合、ブリッジデバイス入力/出力インターフェイス202は、データのビットをパラレルフォーマットで供給するためのシリアル-パラレル変換回路を備える。読み出しオペレーションでは、ブリッジデバイス入力/出力インターフェイス202は、GLBCMD_OUT出力ポートを通じて出力するためにシリアルフォーマットでデータのビットを供給するためのパラレル-シリアル変換回路を備える。
【００４０】
グローバルフォーマットおよびローカルフォーマットが知られていると想定され、したがって、コマンドフォーマットコンバータ208における論理回路は、ディスクリートメモリデバイス104と互換性を持つ信号の論理的変換を実行するように特に設計されている。コマンドフォーマットコンバータ208は、ネイティブフォーマットを有するメモリ制御信号でディスクリートメモリデバイスを制御するために使用されるメモリシステムのメモリコントローラの制御論理回路と少なくとも実質的に類似する制御論理回路を備えることができることに留意されたい。例えば、コマンドフォーマットコンバータ208は、ディスクリートメモリデバイスがメモリデバイス16-1から16-4などのアシンクロナスメモリデバイスである場合に図1Aのメモリコントローラ14の同じ制御論理回路を備えることができる。このことは、コマンドフォーマットコンバータ208内の制御論理回路が、ディスクリートメモリデバイスに固有のローカルフォーマットでメモリ制御信号のタイミングおよび順序付けを設定することを意味する。
【００４１】
グローバルコマンドが、データ書き込みオペレーションに対応する場合、フォーマットコンバータ206内のデータフォーマットコンバータ210は、データをグローバルフォーマットからローカルフォーマットに変換し、それをメモリデバイスインターフェイス204に回送する。読み出しまたは書き込みデータのビットは論理的変換を必要とせず、したがって、データフォーマットコンバータ210は、第1のデータフォーマットと第2のデータフォーマットとの間のデータのビット位置の適切なマッピングを確実なものとする。フォーマットコンバータ206は、ディスクリートメモリデバイスから読み出されたデータまたはブリッジデバイス入力/出力インターフェイス202から受け取った書き込みデータを格納するためのデータバッファとして機能する。したがって、グローバルフォーマットとローカルフォーマットとの間のデータ幅の不一致は調整可能である。さらに、ディスクリートメモリデバイスとブリッジデバイス200との間、またブリッジデバイス200と他の複合メモリデバイスとの間の異なるデータ伝送速度も、データフォーマットコンバータ210のバッファリング機能により対応できる。
【００４２】
そこで、メモリデバイスインターフェイス204は、変換されたコマンドをローカルコマンドフォーマットで、図3Bのグローバルコマンド110内のローカルデバイスアドレス118によって選択されたディスクリートメモリデバイスに回送または伝達する。本発明の実施形態では、変換されたコマンドは、コマンド経路212を介して送られる。一実施形態では、コマンド経路212は、複合メモリデバイス内のそれぞれのディスクリートメモリデバイスとメモリデバイスインターフェイス204との間に接続されているiセットの専用ローカルI/OポートLCCMD-k、またはチャネルを備える。変数iは、複合メモリデバイス内のディスクリートメモリデバイスの個数に対応する整数である。例えば、それぞれのLCCMD-kチャネルは、図1BおよびTable 1(表1)に示されているすべてのポートを含む。
【００４３】
以下では、ブリッジデバイス200の例示的なオペレーションについて説明し、その際に、図3Aの複合メモリデバイス100をさらに参照する。読み出しオペレーションでは、入力ポートGLBCMD_INを通じてブリッジデバイス入力/出力インターフェイス202に到達したグローバル読み出しコマンドなどのグローバルコマンドを受け取る。このグローバル読み出しコマンドは、ブリッジデバイス200に接続されているディスクリートメモリデバイス104から読み出されるデータについて、グローバルフォーマットでopコードならびに行および列情報を与えるグローバルメモリ制御信号を含む。ブリッジデバイス入力/出力インターフェイス202が、グローバルデバイスアドレス116を複合メモリデバイス100の所定のアドレスと比較することによってグローバル読み出しコマンドについて選択されていると判定した後、コマンドフォーマットコンバータ208は、グローバル読み出しコマンドを読み出しデータコマンドが実行されるディスクリートメモリデバイス104と互換性のあるローカルフォーマットに変換する。後で説明するように、複合メモリデバイスは、割り当てられアドレスを持つことができる。グローバル読み出しコマンドのローカルデバイスアドレス118は、メモリデバイスインターフェイス204に回送され、変換された読み出しデータコマンドは、コマンド経路212の対応する1セットのローカルI/Oポートを介してローカルデバイスアドレスによってアドレス指定されたディスクリートメモリデバイスに送られる。
【００４４】
読み出しデータと称されるデータは、選択されたディスクリートメモリデバイス104から読み出され、ローカルフォーマットでメモリデバイスインターフェイス204の同じローカルI/Oポートを介してデータフォーマットコンバータ210に供給される。次いで、データフォーマットコンバータ210は、読み出しデータをローカルフォーマットからグローバルフォーマットに変換し、読み出しデータを選択されたディスクリートメモリデバイス104からブリッジデバイスインターフェイス202の出力ポートGLBCMD_OUTを通じてメモリコントローラに供給する。ブリッジデバイスインターフェイス202は、データフォーマットコンバータ210または入力ポートGLBCMD_INから出力ポートGLBCMD_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の最初の複合メモリデバイスであり、メモリデバイス304-nは、メモリコントローラ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のレジスタ内に格納することができる。このアドレスは、デバイスアドレス割り当てスキームを使用してメモリシステム300の電源を投入する段階において自動的に割り当てることができるが、これについては共通出願の米国特許公開第20080192649号、名称「Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection」において説明されている。さらに、それぞれの複合メモリデバイス304は、それぞれの複合メモリデバイス304内のディスクリートメモリデバイスの個数に関する情報を格納するためのディスクリートデバイスレジスタを備えることができる。したがって、同じ電源投入のオペレーション段階において、メモリコントローラは、それぞれのディスクリートデバイスレジスタにクエリを実行し、それぞれの複合メモリデバイス内のディスクリートメモリデバイスの個数を記録することができる。したがって、メモリコントローラは、メモリシステム300のそれぞれの複合メモリデバイス304内の個別のディスクリートメモリデバイス104を選択的にアドレス指定することができる。
【００４８】
次に、メモリシステム300のオペレーションについて、複合メモリデバイス304-3がメモリオペレーションを実行することに関して選択される例を使用して説明する。本発明の例では、メモリシステム300は、図2に示されているシステムと類似の直列に接続されたメモリシステムであり、ディスクリートメモリデバイス104のそれぞれは、アシンクロナスNANDフラッシュメモリデバイスであると仮定する。したがって、複合メモリデバイス304-1から304-jのそれぞれにおけるブリッジデバイス102は、メモリコントローラ302によって発行されるグローバルフォーマットのグローバルコマンドを受け取り、そのコマンドをNANDフラッシュメモリデバイスと互換性のあるローカルフォーマットに変換するように設計される。さらに、メモリシステムの電源が投入され、それぞれの複合メモリデバイスに対するアドレスが割り当てられていると仮定する。
【００４９】
メモリコントローラ302は、Soutポートからグローバルコマンドを発行するが、このコマンドは複合メモリデバイス304-3に対応するグローバルデバイスアドレス113を含む。第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ポートに受け渡す。当業者であれば、NANDフラッシュメモリデバイスにおける異なるオペレーションを実行するために他のグローバルコマンドを発行することができ、これらはすべて選択された複合メモリデバイス102のブリッジデバイス102によって変換されることを理解するであろう。
【００５２】
本発明の実施形態において、グローバルコマンドは、メモリシステム300内のすべての複合メモリデバイスに伝搬される。代替的実施形態によれば、ブリッジデバイス102は、グローバルコマンドがメモリシステム300内の他の複合メモリデバイスに伝搬するのを阻止するための追加の論理回路を備える。より具体的には、選択された複合メモリデバイスが、このデバイスにグローバルデバイスがアドレス指定されたと判定した後、対応するブリッジデバイス102は、その出力ポートを、例えばVSSまたはVDDの固定電圧レベルなどのヌル値に駆動する。したがって、残りの未選択の複合メモリデバイスは、グローバルコマンドを実行しないので、スイッチング電力が節減される。直列に接続されたメモリシステムに対するこのような節電スキームの詳細は、内容の全体が参照により組み込まれている、共通出願の米国特許公開第20080201588号、名称「Apparatus and Method for Producing Identifiers Regardless of Mixed Device Type in a Serial Interconnection」において説明されている。
【００５３】
図5のすでに説明されている実施形態は、それぞれの複合メモリデバイス304-1から304-Nが例えばアシンクロナスNANDフラッシュメモリデバイスなどの、同じタイプのディスクリートメモリデバイスを搭載するメモリシステムを例示している。これは、すべての複合メモリデバイスが同じであるため、ホモジニアスメモリシステム(homogeneous memory system)と称する。代替的実施形態では、ヘテロジニアスメモリシステム(heterogeneous memory system)が可能であり、そこでは、異なる複合メモリデバイスが異なるタイプのディスクリートメモリデバイスを有する。例えば、いくつかの複合メモリデバイスは、アシンクロナスNANDフラッシュメモリデバイスを備え、別の複合メモリデバイスは、NORフラッシュメモリデバイスを備えることができる。このような代替的実施形態では、すべての複合メモリデバイスは、同じグローバルフォーマットに従うが、内部的には、それぞれの複合メモリデバイスは、グローバルフォーマットのメモリ制御信号を、NORフラッシュメモリデバイスまたはNANDフラッシュメモリデバイスに対応するローカルフォーマットのメモリ制御信号に変換するように設計されたブリッジデバイス200を有する。
【００５４】
さらに他の実施形態では、単一の複合メモリデバイスが、異なるタイプのディスクリートメモリデバイスを有することも可能である。例えば、単一の複合メモリデバイスが、2つのアシンクロナスNANDフラッシュメモリデバイスと2つのNORフラッシュメモリデバイスを備えることが可能である。この「混合」または「ヘテロジニアス」複合メモリデバイスは、前に説明した同じグローバルフォーマットに従うことができるが、内部的には、そのブリッジデバイスは、グローバルフォーマットのメモリ制御信号を、NANDフラッシュメモリデバイスおよびNORフラッシュメモリデバイスに対応するローカルフォーマットのメモリ制御信号に変換するように設計されうる。
【００５５】
このようなブリッジデバイスは、グローバルコマンドで供給されるすでに説明されているアドレス情報によって選択されうる、NANDフラッシュメモリデバイスおよびNORフラッシュメモリデバイスごとに1つの専用フォーマットコンバータを備えることができる。図3Bに関して説明されているように、アドレスヘッダ114は、システムレベルおよび複合メモリデバイスレベルで使用されるアドレス指定情報を含む。この追加のアドレス設定情報は、メモリコマンド内のopコードを実行する複合メモリデバイスを選択するためのグローバルデバイスアドレス(GDA)116およびopコードを実行する選択された複合メモリデバイス内の特定のディスクリートデバイスを選択するためのローカルデバイスアドレス(LDA)118を含む。ブリッジデバイスは、この2つのフォーマットコンバータのうちのどちらにグローバルコマンドを経路指定すべきかを決定するためにLDA 118を使用するセレクターを有することができる。
【００５６】
複合メモリデバイスのすでに説明されている実施形態は、一方のフォーマットのメモリ制御信号に応答するディスクリートメモリデバイスを、第2の、異なるフォーマットを有するグローバルメモリ制御信号使用してどのように制御するかを示している。一代替的実施形態によれば、ブリッジデバイス200は、一方のフォーマットを有するグローバルメモリ制御信号を受信し、同じフォーマットを有するローカルメモリ制御信号をディスクリートメモリデバイスに供給するように設計されうる。言い換えると、このような複合メモリデバイスは、ディスクリートメモリデバイスを制御するために使用されるメモリ制御信号を受信するように構成されるということである。このような構成をとることで、複数のディスクリートメモリデバイスが複合メモリデバイス内の他のディスクリートメモリデバイスから独立して動作するメモリバンクとしてそれぞれ機能するようにできる。したがって、それぞれのディスクリートメモリデバイスは、ブリッジデバイス200からコマンドを受け取り、実質的に互いに並列にオペレーションを実行するステップに進むことができる。これは、コンカレントオペレーション(concurrent operations)と称される。したがって、コマンド変換回路が不要になるため、ブリッジデバイス200の設計が簡素化される。
【００５７】
すでに説明されている実施形態では、複合メモリデバイス内のディスクリートメモリデバイスが異なるコマンドフォーマットにどのように応答することができるかを示している。これは、受け取ったグローバルコマンドをディスクリートメモリデバイスと互換性のあるネイティブコマンドフォーマットに変換するブリッジデバイスを通じて行われる。例えば、シリアルコマンドフォーマットは、アシンクロナスNANDフラッシュフォーマットに変換することができる。これらの実施形態は、コマンドフォーマットの任意のペアを一方から他方に変換することができるため、これら2つのフォーマットに限定されない。
【００５８】
使用されるフォーマットに関係なく、少なくともいくつかの例示的な実施形態による複合メモリデバイスの利点は、含まれるディスクリートメモリデバイスのデータスループットに比べて著しく高いデータスループットをもたらす周波数でそれぞれ動作させることができるという点にある。例えば、図3Aの複合メモリデバイスを使用することで、それぞれのディスクリートメモリデバイス104が、従来のアシンクロナスNANDフラッシュメモリデバイスである場合に、ピン1本当たりのその最大データ転送速度は約40Mbpsである。しかし、クロックに同期して少なくとも1つのデータストリームを受け取るブリッジデバイス102は、166MHzの周波数で動作するように構成することができ、その結果、ピン1本当たり最低でも333Mbpsのデータ転送速度となる。ブリッジデバイス102を製造するために使用される加工技術によっては、ピン1本当たりのデータ転送速度をさらに高めるために、動作周波数を200MHz以上にすることができる。したがって、データを格納するために図5のメモリシステム300を使用するより大規模なシステムでは、高速オペレーションを実行することが可能になる。例示的なアプリケーションでは、高い性能と大きな記憶容量を必要とするコンピューティングシステムまたは他のアプリケーションにおいて大容量記憶媒体としてメモリシステム300を使用する。
【００５９】
ディスクリートメモリデバイスとブリッジデバイスとでデータ転送速度の不一致は無視できない問題であるが、ブリッジデバイス102の本発明において示されている実施形態は、不一致の任意のレベルを補正する。多数の例示的な実施形態によれば、ブリッジデバイス102は、対応する複合メモリデバイス100からの読み出しオペレーション実行時に選択されたディスクリートメモリデバイス104から所定の量の読み出しデータをプリフェッチして格納する。この読み出しデータは、ディスクリートメモリデバイス104に対し許容される最大のデータ転送速度でブリッジデバイス102に転送される。所定の量の読み出しデータがブリッジデバイス102に格納された後、これは制限されることなくその最大のデータ転送速度で出力することができる。複合メモリデバイス100へのプログラムまたは書き込みオペレーションについて、ブリッジデバイス102は、その最大のデータ転送速度でプログラムデータを受け取り、格納する。次いで、ブリッジデバイス102は、ディスクリートメモリデバイス104に対し許容される最大のデータ転送速度で選択されたディスクリートメモリデバイス104内に格納データをプログラムする。ディスクリートメモリデバイスからデータを読み出し、データをディスクリートメモリデバイスにプログラムするために許容される最大のデータ転送速度は、技術仕様書に標準化されているか、または概要が説明されていると思われる。
【００６０】
図4は、ブリッジデバイス200の機能ブロックの概略を一般的に示しているが、図6は、例示的な一実施形態によるブリッジデバイス200のさらに詳しいブロック図を示している。ブリッジデバイス400は、図4のブリッジデバイス200について示されているブロックに対応する、4つの主要機能ブロックを備える。これらは、ブリッジデバイス入力/出力インターフェイス402、メモリデバイスインターフェイス404、コマンドフォーマットコンバータ406、およびデータフォーマットコンバータ408である。これらのブロックは、それぞれ、図4のブロック202、204、208、および210に対応する機能を有する。図6の実施形態は、複合メモリデバイスが従来のNANDフラッシュメモリデバイスを備える一例に応用され、複合メモリデバイスそれ自体は、図2Bのシリアルインターフェイスフラッシュメモリデバイスに対応するシリアルインターフェイスを備えるように構成される。以下では、ブロック402、404、406、および408について詳しく説明する。
【００６１】
ブリッジデバイス入力/出力インターフェイス402は、一方のフォーマットを有するグローバルメモリ制御信号を受信し、受信したグローバルメモリ制御信号および読み出しデータをディスクリートメモリデバイスから、その後の複合メモリデバイスに受け渡す。本発明の例では、これらのグローバルメモリ制御信号は、Table 2(表2)において説明されている、図2Bで識別されているメモリ制御信号と同じものである。本発明の例を使用する図4に関して、グローバルコマンドGLBCMD_INは、グローバルメモリ制御信号CSI、DSI、およびD[j]を含み、受け渡されたグローバルコマンドGLBCMD_OUTは、それぞれCSO、DSO、Q[j]と称されるグローバルメモリ制御信号CSI、DSI、D[j]のエコーバージョンの信号を含む。上述のグローバルメモリ制御信号CSI、DSI、およびD[j]は、ブリッジデバイス400がオペレーションを実行できるようにするために必要であるので、グローバルコマンドと考えられる。
【００６２】
ブリッジデバイス入力/出力インターフェイス402は、Table 2(表2)においてすでに概要が述べられている信号を受信するために入力ポートと出力ポートを有する。このブロックは、よく知られている入力バッファ回路、出力バッファ回路、ドライバ、入力バッファ回路および出力バッファ回路を制御するために使用される制御論理回路、必要な制御信号をコマンドフォーマットコンバータ406に送る経路指定機能、およびデータフォーマットコンバータ408との間で異なるタイプのデータをやり取りする経路指定機能を備える。このようなタイプのデータとしては、限定はしないが、例えば、アドレスデータ、読み出しデータ、プログラムもしくは書き込みデータ、およびコンフィギュレーションデータが挙げられる。入力ポートD[j]で受け取り、出力ポートQ[j]に出すデータは、シングルデータレート(SDR)またはダブルデータレート(DDR)フォーマットのいずれかとすることができる。当業者であれば、SDRデータはクロック信号のそれぞれの立ち上がりエッジまたは立ち下がりエッジでラッチされるが、DDRデータはクロック信号の立ち上がりエッジと立ち下がりエッジの両方でラッチされることを理解するであろう。したがって、入力バッファおよび出力バッファは、適切なSDRもしくはDDRラッチ回路を備える。ブリッジデバイスに入力/出力インターフェイス402は、制御信号CSIおよびDSIを受信する入力ポートをエコー信号CSOおよびDSOを供給する対応する出力ポートに結合する制御信号フロースルー経路(flow through path)を含むことに留意されたい。同様に、データ信号フロースルー経路は、入力データストリームD[j]を受け取る入力ポートを出力データストリームQ[j]を供給する対応する出力ポートに結合する。出力データストリームは、D[j]で受け取った入力データストリームであるか、またはブリッジデバイス400に接続されているディスクリートメモリデバイスから供給される読み出しデータのいずれかとすることができる。
【００６３】
本発明の例において、ブリッジデバイス400は、メモリシステム内の他のブリッジデバイスと並行して差動クロック信号CKおよびCK#を受信する。任意選択により、差動クロック信号CKおよびCK#は、図5のメモリコントローラ302などのメモリコントローラから供給され、各ブリッジデバイスを介して一方の複合メモリデバイスから他方の複合メモリデバイスへ連続的に受け渡されるソース同期クロック信号である。このような構成では、ブリッジデバイス400は、入力ポートで受信された差動クロック信号CKおよびCK#を対応する出力ポート(図示せず)に結合するクロック信号フロースルー経路を備える。参照により本明細書に組み込まれている、共通出願の米国特許出願公開第20090039927号、名称「CLOCK MODE DETERMINATION IN A MEMORY SYSTEM」では、直列に接続されたメモリデバイスがパラレルまたはソース同期クロックで動作できるようにする回路を開示している。したがって、米国特許出願公開第20090039927号において教示されている技術は、ブリッジデバイス400にも等しく応用することができる。
【００６４】
メモリデバイスインターフェイス404は、ディスクリートメモリデバイスと互換性のあるネイティブまたはローカルフォーマットに従うローカルメモリ制御信号を供給する。このフォーマットは、グローバルメモリ制御信号のフォーマットと異なっていてもよい。本発明の例では、メモリデバイスインターフェイス404は、対応する個数の従来のNANDフラッシュメモリデバイスを制御するために数セットのローカルメモリ制御信号を有し、それぞれのセットのローカルメモリ制御信号はTable 1(表1)にすでに概要が示されている信号を含む。この例において、図4を参照すると、それぞれのセットのローカルメモリ制御信号が、複合メモリデバイス内の対応するNANDフラッシュメモリデバイスにローカルコマンドLCCMDを供給することがわかる。したがって、複合メモリデバイス内にk個のNANDフラッシュメモリデバイスがある場合、kセットのローカルコマンドLCCMDまたはチャネルがある。図6では、2つのフルセットのローカルメモリ制御信号に、LCCMD-1およびLCCMD-2というラベルが付けられており、最後のフルセットのローカルメモリ制御信号は、単純に、出力ポートLCCMD-kとして示されている。これらのローカルコマンドは、適切なシーケンス、論理状態、およびNANDフラッシュメモリデバイスと互換性のあるタイミングを備え、これにより、ローカルコマンド内に符号化されたオペレーションを実行する。
【００６５】
メモリデバイスインターフェイス404は、Table 1(表1)にすでに概要が示されているローカルメモリ制御信号を供給するための出力ポート、および書き込みデータを供給し、読み出しデータを受け取るための双方向データポートI/O[i]を有する。図6には示されていないが、メモリデバイスインターフェイス404は、それぞれのNANDフラッシュメモリデバイスからレディー/ビジー信号R/B#を受信する。このステータス信号は、対応するNANDフラッシュデバイスのプログラム、消去、および読み出しオペレーションのうちのどれか1つが完了したときにそのことを判定するために論理およびopコードコンバータブロック414によって使用される。このブロックは、よく知られている入力バッファ回路、出力バッファ回路、ドライバ、ならびに入力バッファ回路および出力バッファ回路を制御するために使用される制御論理回路、データフォーマットコンバータ408との間でデータをやり取りする経路指定機能を備える。このようなタイプのデータとしては、限定はしないが、例えば、アドレスデータ、読み出しデータ、およびプログラムもしくは書き込みデータが挙げられる。
【００６６】
コマンドフォーマットコンバータ406は、少なくともopコードレジスタ410、グローバルデバイスアドレス(GDA)レジスタ412、ならびに論理およびopコードコンバータブロック414を備える。データフォーマットコンバータ408は、メモリ416、メモリ416用のタイミング制御回路418、アドレスレジスタ420、仮想ページサイズ(VPS)コンフィギュレータ回路422、データ入力経路回路424、およびデータ出力経路回路426を備える。まず最初に、コマンドフォーマットコンバータ406について詳しく説明する。
【００６７】
コマンドフォーマットコンバータ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は、グローバルコマンド110内のopコードをopコードレジスタ410内にラッチする。ラッチされた後、このopコードは、ブリッジデバイスの制御機能が実行されるように復号化される。例えば、ラッチされたopコードは、論理およびopコードコンバータブロック414内の復号化回路によって復号化され、次いで、これにより、グローバルコマンド110の後続のビットをブリッジデバイス400内の他のレジスタに振り向けるようにブリッジデバイス入力/出力インターフェイス402内の経路指定回路が制御される。これは、グローバルコマンド110が、実行すべきオペレーションに応じて異なるタイプのデータを含みうるため必要なことである。言い換えると、論理およびopコードコンバータブロック414は、復号化されたopコードに基づいて、ビットがブリッジデバイス入力/出力インターフェイス402に到着する前にグローバルコマンドの構造を知るということである。例えば、読み出しオペレーションは、各レジスタにラッチされるブロック、行、および列アドレス情報を含む。その一方で、消去オペレーションは行および列アドレスを必要とせず、ブロックアドレスのみを必要とする。したがって、対応するopコードは、論理およびopコードコンバータブロック414に対して、特定のタイプのアドレスデータが各レジスタに経路指定されうるようにブリッジデバイス入力/出力インターフェイス402のところに到達する時間を指示する。
【００７０】
グローバルコマンド110のすべてのデータがラッチされた後、変換回路がローカルメモリ制御信号を発生し、これはNANDフラッシュメモリデバイスにおいて同じオペレーションを実行するために使用される必要な論理状態、シーケンス、およびタイミングを有する。NANDフラッシュメモリデバイス内の特定のアドレスロケーションにアクセスする必要のあるオペレーションについては、論理およびopコードコンバータブロック414は、I/O[i]ポートを通じてローカルコマンドの一部として発行するためにアドレスレジスタ420内に格納されるアドレスデータを変換する。後で説明するように、これらのアドレスで、アプリケーションに応じてサイズが変化しうる、NANDフラッシュメモリデバイスのページバッファ内の仮想アドレス空間にアクセスすることができる。この仮想アドレス空間は、メモリ416内の仮想アドレス空間に関係付けられる。したがって、論理およびopコードコンバータブロック414は、これらのアドレスを、VPSコンフィギュレータ422のレジスタに格納されているコンフィギュレーションデータに基づいてNANDフラッシュメモリデバイスと互換性のあるアドレスに変換するための構成可能な論理回路を備える。NANDフラッシュメモリデバイスにプログラムされるデータは、メモリ416から供給される。グローバルコマンド110のローカルデバイスアドレス(LDA)118フィールドは、どのNANDフラッシュメモリデバイスが生成されたローカルメモリ制御信号を受信するかを決定するために論理およびopコードコンバータブロック414によって使用される。したがって、1セットのLCCMD-1からLCCMD-kが、グローバルコマンド110に応答して生成されたメモリ制御信号によって駆動される。
【００７１】
本発明の実施形態において、メモリ416は、デュアルポートメモリであり、それぞれのポートは1つのデータ入力と1つのデータ出力ポートを有する。ポートAは、データ入力ポートDIN_Aとデータ出力ポートDOUT_Aを有するが、ポートBは、データ入力ポートDIN_Bとデータ出力ポートDOUT_Bを有する。ポートAは、メモリ416とこのメモリが結合されているディスクリートメモリデバイスとの間でデータを転送するために使用される。他方では、ポートBは、メモリ416とブリッジデバイス入力/出力インターフェイス402のD[j]およびQ[j]ポートとの間でデータを転送するために使用される。本発明の実施形態では、ポートAは、メモリブロック周波数と称される第1の周波数で動作するが、ポートBは、システムクロック周波数と称される第2の周波数で動作する。メモリクロック周波数は、NANDフラッシュメモリデバイスの速度またはデータ転送速度に対応するが、システムクロック周波数は、ブリッジデバイス入力/出力インターフェイス402の速度またはデータ転送速度に対応する。NANDフラッシュメモリデバイスに対してプログラムされるデータは、メモリ416のDOUT_Aを介して読み出され、論理およびopコードコンバータブロック414に送られ、次いで、ディスクリートメモリデバイスと互換性のあるローカルメモリ制御信号を発生する。ディスクリートメモリデバイスから受け取った読み出しデータは、論理およびopコードコンバータブロック414の制御の下でDIN_Aを介してメモリ416に直接書き込まれる。ポートBがどのように使用されるかの詳細については後で説明する。論理およびopコードコンバータブロック414は、メモリクロック周波数と同期して、それぞれポートDOUT_AおよびDIN_Aを通じて、アドレスの適用および復号化、データ感知、データ出力、およびデータ入力のタイミングを制御するための制御論理回路を備える。
【００７２】
いずれかのシナリオにおいて、グローバルコマンドは、1セットのローカルメモリ制御信号(LCCMD-1からLCCMD-k)を介して、読み出しまたは書き込みオペレーションが実行されるディスクリートメモリデバイスを選択するように論理およびopコードコンバータブロック414に指令する。グローバルコマンド110のローカルデバイスアドレス(LDA)118フィールドは、どのNANDフラッシュメモリデバイスが生成されたローカルメモリ制御信号を受信するかを決定するために論理およびopコードコンバータブロック414によって使用される。したがって、1セットのLCCMD-1からLCCMD-kが、グローバルコマンド110に応答して生成されたメモリ制御信号によって駆動される。グローバルコマンドは、オペレーションを補完するブリッジデバイス400内の必要な回路を制御するためにブリッジデバイス制御機能を実行するように論理およびopコードコンバータブロック414にさらに指令する。例えば、データ入力経路回路424は、ローカルメモリ制御信号が生成される前に、D[j]で受け取ったデータをメモリ416内にロードするか、または書き込むために書き込みオペレーションにおいて制御される。
【００７３】
ラッチされたopコードは、ローカルコマンドでローカルメモリ制御信号を生成するようにopコード変換機能をイネーブルすることができる。NANDフラッシュメモリオペレーションを必要としない有効なopコードがありえ、したがって、ブリッジデバイス400のオペレーションの制御に制限される。NANDフラッシュメモリへの読み出しまたは書き込みオペレーションが要求された場合、論理およびopコードコンバータブロック414は、メモリタイミングおよび制御回路418を制御し、次いで、アドレスレジスタ420に格納されているアドレスに基づいてメモリ416内のロケーションでのデータの書き込みまたは読み出しのタイミングを制御する。次に、これらの回路のさらなる詳細について説明する。
【００７４】
データフォーマットコンバータ408は、NANDフラッシュメモリデバイスにプログラムされるブリッジデバイス入力/出力インターフェイス402から受け取った書き込みデータを一時的に格納し、ブリッジデバイス入力/出力インターフェイス402から出力されるNANDフラッシュメモリデバイスから受け取った読み出しデータを一時的に格納する。メモリ416は、機能に関して単一ブロックとして図示されているが、バンク、プレーン、またはアレイなどの複数の再分割部分に論理的にまたは物理的に分割することができ、それぞれのバンク、プレーンまたはアレイは、1つのNANDフラッシュメモリデバイスにマッチされる。より具体的には、それぞれのバンク、プレーン、またはアレイは、1つのNANDフラッシュメモリデバイスのページバッファから読み出しデータを受け取るオペレーション、または1つのNANDフラッシュメモリデバイスのそのページバッファに書き込みデータを供給するオペレーション専用である。メモリ416は、例えばSRAMなどの揮発性メモリとすることができる。異なるタイプのメモリは、異なるタイミングおよび他のプロトコル要件を有している場合があるため、メモリ416の設計仕様に基づいてメモリ416の適切なオペレーションが確実に行われるようにするためのタイミング制御回路418を備える。例えば、アドレスの適用および復号化、データ感知、ならびにデータの出力および入力のタイミングは、タイミング制御回路418によって制御される。行および列アドレスを含みうるアドレスは、アドレスレジスタ420から供給することができるが、書き込みデータは、データ入力経路回路424を介して供給され、読み出しデータは、データ出力経路回路426を介して出力される。後で説明するように、アドレスレジスタ420から受け取ったアドレスは、メモリ416内の仮想アドレス空間にアクセスし、したがって、タイミング制御回路418内の論理回路によって対応する物理アドレスに変換される。この論理回路は、仮想アドレス空間のサイズを調整することが可能であるため、VPSコンフィギュレータ422のレジスタに格納されているコンフィギュレーションデータに基づいて変換を調節するように構成することが可能である。この特徴のさらなる詳細については、後で説明する。
【００７５】
データ入力経路回路424は入力ポートD[j]から入力データを受け取り、またデータが1つまたは複数のシリアルビットストリームで受け取られるので、スイッチング論理回路が、opコードレジスタ410およびアドレスレジスタ420などの、さまざまなレジスタへのビットの経路指定、つまり分配のために備えられている。データレジスタなどの他のレジスタ(図示せず)または他のタイプのレジスタも、選択された複合メモリデバイスに対してopコードが復号化された後、入力データのビットを受け取ることができる。各レジスタに分配された後、データフォーマット変換回路(図示せず)は、シリアルフォーマットで受け取ったデータをパラレルフォーマットに変換する。データレジスタ内にラッチされた書き込みデータは、タイミング制御回路418の制御下で一時記憶のためにメモリ416に書き込まれ、後から、論理およびopコードコンバータブロック414による決定に従って適切なコマンドフォーマットを使用しプログラムするためにNANDフラッシュメモリデバイスに出力される。
【００７６】
メモリ416は、1セットのローカルメモリ制御信号のI/O[i]ポートからのNANDフラッシュメモリデバイスから読み出しデータを受け取った後、この読み出しデータは、DOUT_Bを介してメモリ416から読み出され、データ出力経路回路426を介して出力ポートQ[j]に供給される。データ出力経路回路426は、出力ポートQ[j]から出力される1つまたは複数のシリアル出力ビットストリーム上にデータのビットを分配するためのパラレル-シリアル変換回路(図示せず)を備える。データ入力経路回路424は、D[j]入力ポートから受け取った入力データを直接、データ出力経路回路426に供給し、出力ポートQ[j]上に出力するためのデータフロースルー経路428を備えることに留意されたい。したがって、D[j]入力ポートで受け取ったすべてのグローバルコマンドは、埋め込まれているグローバルデバイスアドレスフィールドがGDAレジスタ412に格納されているグローバルデバイスアドレスと一致しているかどうかに関係なくQ[j]出力ポートに通される。図5の直列に接続されているメモリシステムの実施形態では、このデータフロースルー経路428により、すべての複合メモリデバイス304がメモリコントローラ302によって発行されるグローバルコマンドを確実に受け取れる。さらに、1つの複合メモリデバイス304によって供給される任意の読み出しデータは、介在する複合メモリデバイスを通じて、メモリコントローラ302に受け渡すことができる。
【００７７】
メモリ416とポートQ[j]およびD[j]との間でデータを転送するために使用される上述のすべての回路は、システムクロック周波数と同期して動作する。特に、タイミング制御回路418は、システムクロック周波数と同期して、それぞれポートDOUT_BおよびDIN_Bを通じて、アドレスの適用および復号化、データ感知、データ出力、およびデータ入力のタイミングを制御するための制御論理回路を備える。タイミング制御回路418の制御論理回路は、メモリクロック周波数でメモリ416のオペレーションを制御する論理およびopコードコンバータブロック414内の制御論理回路に類似のものである。
【００７８】
VPSコンフィギュレータ回路422の説明に先だって、ブリッジデバイス400の読み出しおよび書き込みオペレーションの際にメモリ416がどのように使用されるかについて概要を述べる。すでに述べたように、ブリッジデバイス入力/出力インターフェイス402は、より高い周波数もしくはデータ転送速度で動作し、複合メモリデバイス内のディスクリートメモリデバイスのどれかによって可能な以上に多くのデータを与えられた期間内に供給するか、または受け取ることができる。データフォーマットコンバータ408では、メモリ416を使用して、インターフェイス402および404の一方を介して1つのクロック周波数で受け取るデータを一時的に格納し、これにより、インターフェイス402および404の他方を介して異なる周波数で、格納されているデータを供給することができる。メモリ416は、i)より高速なインターフェイスで一定のデータ出力速度を維持するか、またはii)より高速なインターフェイスで一定のデータ入力速度を維持することを確実に行えるように所定の量のデータを格納するために十分な記憶容量を持つ。
【００７９】
ディスクリートメモリデバイスがNANDフラッシュメモリデバイスである例を使用した場合、当業者であれば、NANDフラッシュメモリデバイスが1ページ分の読み出しデータまたは書き込みデータを格納するためのページバッファを有することを理解し、また1ページが単一の論理的ワードラインによってアクティブ化されるメモリセルに格納されるデータであることがよく理解される。例えば、ページバッファのサイズが、メモリアレイのアーキテクチャに応じて2K、4K、または8Kバイトであるものとしてよい。1つの行がアクティブ化される読み出しオペレーションの際に、その行のメモリセルに対応する1ページ分のデータがアクセスされ、感知され、ページレジスタ内に格納される。これは、コア読み出し時間Trと称される。NANDフラッシュメモリデバイスが、例えば、i=8のI/O幅を有する場合、ページレジスタの内容は、一度に8ビットずつ最大速度でブリッジデバイス400に出力される。次いで、ブリッジデバイス400は、データをメモリ416に書き込む。ページバッファの内容がメモリ416に格納された後、メモリ416に格納されているページバッファデータの全部または一部を、より高速なデータ転送速度でデータ出力経路回路426を介してデータ出力ポートQ[j]に出力することができる。書き込みオペレーションでは、入力ポートD[j]から受け取ったデータは、インターフェイス402の最大データ転送速度でメモリ416に書き込まれる。次いで、データの全部または一部がメモリ416から読み出され、一度に8ビットずつ、NANDフラッシュメモリデバイスに固有のより遅いデータ転送速度で、選択されたNANDフラッシュメモリデバイスに供給される。NANDフラッシュメモリデバイスは、データをページレジスタ内に格納し、その後、ページバッファ内のデータのページを選択された行内にプログラムする内部プログラミングオペレーションを実行する。これは、コアプログラム時間Tpgmと称され、メモリセルの正しいプログラムされた状態であることを確認するためのプログラム検証ステップ、および前のプログラムの繰り返しから適切にプログラムしなかったビットを再プログラムするために必要な後続のプログラムの繰り返しを含むことができる。
【００８０】
図7は、4つのNANDフラッシュメモリデバイスのページバッファとブリッジデバイスのメモリとの間の関係を示す複合メモリデバイス500のブロック図である。複合メモリデバイス500は、図3Aに示されている複合メモリデバイス100に類似しており、図7の例示的な実施形態における4つのNANDフラッシュメモリデバイス502、およびブリッジデバイス504を備える。ブリッジデバイスは、図6のブリッジデバイス400の簡略化バージョンとして示されており、メモリ506のみが示されている。ブリッジデバイス400の他のコンポーネントは、図7から省かれているが、ブリッジデバイス500の適切な動作が確実に行われるようにするために存在していると考えるべきである。後で説明するように、メモリ506は、4つのNANDフラッシュメモリデバイス502のそれぞれのページバッファに対応する複数のグループに論理的に編成される。
【００８１】
それぞれのNANDフラッシュメモリデバイス502は、それぞれ「プレーン0」および「プレーン1」のラベルが付けられている、2つのプレーン508および510として編成されるメモリアレイを有する。図示されていないが、行回路は、プレーン508および510のそれぞれを通して水平方向に延在するワードラインを駆動し、列アクセスおよび感知回路を備えることができるページバッファ512および514は、プレーン508および510のそれぞれを通して垂直方向に延在するビットラインに接続される。これらの回路の目的および機能は、当業者によく知られている。読み出しまたは書き込みオペレーションについては、1つの論理的ワードラインが、プレーン508および510の両方にわたって駆動される、つまり、1つの行アドレスで、両方のプレーン508および510における同じ物理的ワードラインを駆動するということである。読み出しオペレーションでは、選択された論理的ワードラインに接続されているメモリセルに格納されているデータは、感知され、ページバッファ512および514内に格納される。同様に、書き込みデータは、選択された論理的ワードラインに接続されているメモリセルにプログラムするためにページバッファ512および514内に格納される。
【００８２】
ブリッジデバイス504のメモリ506は、ページバッファ512または514の少なくとも同じ記憶容量をそれぞれ有する論理的または物理的部分メモリ516に分割される。論理的部分メモリは、メモリの物理的ブロック内の割り当てられたアドレス空間とすることができるが、物理的部分メモリは、固定されたアドレス空間を有する明確に区別できるように形成されたメモリである。部分メモリ516は、Bank0からBank3のラベルが付けられたメモリバンク518にグループ化され、メモリバンク518の部分メモリ516は、1つのNANDフラッシュメモリデバイス502のページバッファのみに関連付けられる。言い換えると、メモリバンク518の部分メモリ516は、1つのNANDフラッシュメモリデバイス502の各ページバッファ512および514に専用として割り当てられる。読み出しオペレーションのときに、ページバッファ512および514内の読み出しデータは、対応するメモリバンク518の部分メモリ516に転送される。プログラムオペレーションのときに、メモリバンク518の部分メモリ516内に格納されている書き込みデータは、対応するNANDフラッシュメモリデバイス502のページバッファ512および514に転送される。NANDフラッシュメモリデバイス502は、それぞれ対応するページバッファを持つ、単一プレーンまたは2つよりも多いプレーンを有することができることに留意されたい。したがって、メモリ506は、それぞれのページバッファに専用として割り当てられた部分メモリを有するように対応する形で編成される。
【００８３】
図7の本発明の例は、2つの別々の4KBページバッファとして編成される、合計8KBのページバッファ空間を備えるNANDフラッシュデバイス502を有する。それぞれの別々の4KBページバッファは、例えばプレーン508またはプレーン510などの、各プレーンのビットラインに結合される。当業者であれば、NANDフラッシュメモリデバイスの総容量が増えるにつれページバッファサイズが徐々に増加してきており、したがって、将来のNANDフラッシュデバイスはなおいっそう大きなページバッファを有する可能性があることを理解する。NANDフラッシュメモリデバイスのコア読み出しおよびプログラム時間は実質的に一定であり、当業者によく知られているページバッファサイズに関係しないため、ページバッファが大きければ大きいほど、全体的な読み出しおよびプログラムオペレーションが高速化されうる。半分のサイズのページバッファと比較した場合、ページバッファが大きいほど、メモリアレイの異なる行に格納されているデータの他のページにアクセスするために他のコア読み出しオペレーションが必要になる前に読み出しデータの2倍の量の比較的一定したバースト読み出しが可能になる。同様に、ページバッファに書き込みデータの他のページをロードする必要が生じる前に同時にメモリアレイに2倍の書き込みデータをプログラムすることができる。したがって、音楽データまたはビデオデータのサイズが数ページになる可能性があるマルチメディアアプリケーションには、ページバッファが大きい方がよい。
【００８４】
図7の複合メモリデバイス500では、総コア読み出し時間は、前の方でTrと称される、NANDフラッシュメモリデバイスのコア読み出し時間に転送時間Ttrを加えた時間を含む。転送時間Ttrは、NANDフラッシュメモリデバイスが、1つのメモリバンク518の対応する部分メモリ516に書き込めるようにページバッファ512および514の内容を出力、つまり読み出すのに要する時間である。総コアプログラム時間は、プログラム転送時間Ttpに前の方でTpgmと称されているNANDフラッシュメモリデバイスのコアプログラム時間を加えた時間を含む。プログラム転送時間Ttpは、ブリッジデバイス508が、プログラミングオペレーションの前にNANDフラッシュメモリデバイス502の対応するページバッファ512および514にロードできるように1つのメモリバンク518の部分メモリ516の内容を出力、つまり読み出すのに要する時間である。マルチメディアアプリケーションの場合、データは、異なる複数のNANDフラッシュメモリデバイスに分散して格納され、一方のNANDフラッシュメモリデバイスのコアオペレーションを、他方のNANDフラッシュメモリデバイス502に対応するデータがブリッジデバイス504によって出力されている間にマスクするように同時動作可能である。例えば、一方のメモリバンク518からデータのバースト読み出しを行っている間に、コア読み出しオペレーションはすでに進行中であり、他方のメモリバンク518の部分メモリ516に他方のNANDフラッシュメモリデバイス502からのデータをロードすることができる。
【００８５】
ファイルサイズが、NANDフラッシュメモリデバイスのページバッファのフルページサイズよりも小さいアプリケーションがありうる。このようなファイルとしては、テキストファイルおよび一般にパーソナルコンピュータのデスクトップアプリケーションにおいて使用される他の類似のタイプのデータファイルが挙げられる。ユーザーは、典型的には、このようなファイルを一般にNANDフラッシュメモリを使用するUSB(ユニバーサルシリアルバス)不揮発性ストレージドライブにコピーする。他に新しく出現したアプリケーションであるSSD(スリッドステートドライブ)が挙げられるが、これは、HDD(磁気ハードディスクドライブ)の代替えとなるもので、データを格納するためにNANDフラッシュメモリまたは他の不揮発性メモリを使用する。複合メモリデバイスの読み出しおよびプログラムシーケンスは、すでに説明されているのと同じであるが、ただし以下の点が異なる。この例では、所望のデータが、フルページサイズより小さく、他のデータとともに1ページに格納されると仮定する。読み出しオペレーションでは、すべてのページバッファデータが、選択されたNANDフラッシュメモリデバイス502のページバッファ512および514から対応する部分メモリ516に転送された後、メモリバンク518の部分メモリ516に格納されている所望のデータの最初のビット位置と最後のビット位置のロケーションを定義するために列アドレスが使用される。次いで、データの最初のビット、最後のビット、および介在するビットのみが、ブリッジデバイス504の部分メモリ516から読み出される。
【００８６】
このようなシナリオにおける転送時間Ttrは、複合メモリデバイスの総コア読み出し時間に対する寄与分が著しいためいくつかのアプリケーションに対しては許容可能でない場合がある。このようなアプリケーションとして、読み出しオペレーションが可能な限り高速に実行されるSSDが挙げられる。NANDフラッシュメモリデバイスに対するコア読み出し時間Trは、任意のページバッファサイズに対して一定のままで変わらないが、内容全体を部分メモリ516に転送するための転送時間Ttrは、ページバッファサイズに直接的に依存する。
【００８７】
本発明の一実施形態によれば、複合メモリデバイスの転送時間Ttrは、複合メモリデバイス内のNANDフラッシュメモリデバイスのページバッファの最大物理サイズより小さい、仮想ページサイズと称される、仮想最大ページサイズを有するようにメモリバンク518の部分メモリ516を構成することによって最小にすることができる。特定のメモリバンク518に対する仮想ページサイズのコンフィギュレーションに基づき、ブリッジデバイス504は、ページバッファ内に格納されている仮想ページサイズに対応するデータのセグメントのみを対応する部分メモリ516に転送する読み出しコマンドを発行する。ページバッファのこのセグメントは、ページセグメントと称される。
【００８８】
図8Aから8Cは、本発明の一実施形態により、設定された仮想ページサイズに対応するデータが、フラッシュメモリデバイスなどのディスクリートメモリデバイスからどのように読み出され、複合メモリデバイスからどのように読み出されるかを示している。図8Aから8Cは、1つの完全な状態で示されている第1のNANDフラッシュメモリデバイス602、第2のNANDフラッシュメモリデバイス604の一部、およびブリッジデバイス606の一部を有する複合メモリデバイス600を示している。この例のNANDフラッシュメモリデバイスは、単一ページバッファ610に接続されているビットラインを有する単一プレーン608を備える。ブリッジデバイス606の図示されている部分は、第1の部分メモリ612、第2の部分メモリ614、およびブリッジデバイス入力/出力インターフェイス616を備える。第1の部分メモリ612は、第1のNANDフラッシュメモリデバイス602に関連付けられている第1のバンクに対応し、第2の部分メモリ614は、第2のNANDフラッシュメモリデバイス604に関連付けられている第2のバンクに対応する。本発明の例における読み出しオペレーションを説明するために、第1のNANDフラッシュメモリデバイス602からのデータがアクセスされ、第1のバンク(第1のサブメモリ612)の仮想ページサイズがページバッファ610の最大物理的サイズより小さくなるように構成されていると仮定する。
【００８９】
まず最初に図8Aでは、ブリッジデバイス606が第1のNANDフラッシュメモリデバイス602内に格納されているデータにアクセスする読み出しオペレーションを表すグローバルメモリ制御信号を受信し、適切なローカルメモリ制御信号を符号化して、第1のNANDフラッシュメモリデバイス602に供給したと仮定する。読み出しコマンドに対応するローカルメモリ制御信号に応答して、第1のNANDフラッシュメモリデバイス602が、ローカルメモリ制御信号内のアドレス情報によって選択された行またはワードライン618をアクティブ化する。次に図8Bにおいて、ワードライン618がアクティブ化されるか、または接続されているメモリセルの格納されているデータにアクセスするために有効な電圧レベルに駆動されると、それぞれのアクセスされたメモリセルに接続されているビットライン上に発生する電流もしくは電圧が、ページバッファ610の感知回路によって感知される。したがって、アクセスされたメモリセルのデータ状態は、ページバッファ610に格納される。図8Cでは、NANDフラッシュメモリデバイス602は、ページバッファ610の特定の範囲のビット位置内に格納されているデータをブリッジデバイス606に、特に、第1の部分メモリ612に出力する。このデータ出力プロセスは、NANDフラッシュメモリデバイス602に対しては最大定格までの速度またはデータ転送速度で実行される。
【００９０】
この例時的なNANDフラッシュメモリデバイス602において、この特定の範囲のビット位置に対応する列アドレスを含むバースト読み出しコマンドは、選択された行618からの読み出しデータが、通常はレディー/ビジー信号を使って、ページバッファ610内に格納されていることを知らせる報告または信号を、NANDフラッシュメモリデバイス602がブリッジデバイス606に送った後自動的にブリッジデバイス606によって供給される。列アドレスは、第1の部分メモリ612に対する構成されている仮想ページサイズに基づいて決定される。次いで、第1の部分メモリ612に格納されているデータが、より高速な速度またはデータ転送速度でブリッジデバイス入力/出力インターフェイス616を介して複合メモリデバイス600の出力データポートを通して出力される。
【００９１】
したがって、第1の部分メモリ612に対する仮想ページサイズをページバッファ610の最大物理的サイズより小さくなるように設定することによって、ページバッファ610からのデータのそれに応じてサイズ設定されたページセグメントのみが第1の部分メモリ612に出力されることがわかる。このページセグメントは、列アドレスによってそれぞれがアドレス指定可能な特定の範囲のビット位置を含む。後で説明するように、ページセグメントはアドレス指定可能である。したがって、NANDフラッシュメモリデバイス602がページバッファ610からデータのこのページセグメントを出力するのに要する転送時間Ttrは、ページバッファ610のすべてのデータが第1の部分メモリ612に転送される状況に比べて著しく短縮されうる。
【００９２】
上述の例では、転送時間Ttrをどのようにして最小にできるかを示している。仮想ページサイズをページバッファ610の最大物理的サイズより小さくなるように設定することで、書き込みオペレーションにおいて同じ性能上の利点が得られる。書き込みオペレーションでは、図8Aから8Cに示されているシーケンスが、実際に反転される。例えば、書き込みデータは、ブリッジデバイス入力/出力インターフェイス616によって受け取られ、第1の部分メモリ612などの部分メモリに書き込まれる。この書き込みデータは、プリセットされた仮想ページサイズに一致するサイズを有しており、この後、ページバッファ610に転送される。この書き込みデータをブリッジデバイス606からページバッファ610に転送するのに要する時間は、書き込みデータのサイズおよびNANDフラッシュデバイス602の動作周波数に依存する、転送時間Ttrである。書き込みデータは、ページセグメントと称される、ページバッファ610の特定のビット位置内に格納され、NANDフラッシュデバイス602のコアプログラミングオペレーションが、選択された行618をアクティブ化し、ページバッファ610に格納されている書き込みデータに応答してビットラインに必要なプログラミング電圧を印加することによって開始される。したがって、書き込みオペレーションにおける転送時間Ttrを短縮することによって、メモリシステムの総書き込み時間が短縮される。
【００９３】
本発明の実施形態によれば、ブリッジデバイス606の第1の部分メモリ612は、プリセットされた仮想ページサイズのうちの1つのサイズを有するように動的に構成することができる。第1の部分メモリ612の仮想ページサイズが構成された後、対応するNANDフラッシュメモリデバイスのページバッファ610は、構成されている仮想ページサイズに対応する等しいサイズのページセグメントに論理的に細分化される。図9Aから9Dは、構成されている仮想ページサイズに基づいて異なるサイズを設定されているページセグメントを持つNANDフラッシュメモリデバイスのページバッファ650の概略表現である。ページセグメントは、ページバッファ650内の仮想アドレス空間を表すことに留意されたい。図9AからDの本発明の例では、NANDフラッシュページバッファ、およびブリッジデバイスの部分メモリは、両方とも、最大4Kの物理的サイズを有する。図9Aでは、仮想ページサイズ(VPS)は、ページセグメント652がただ1つ存在するように最大値に、または4Kフルサイズに設定される。図9Bでは、VPSは2Kに設定され、その結果、2つの2Kページセグメント654が得られる。図9Cでは、VPSは1Kに設定され、その結果、4つの1Kページセグメント656が得られる。図9Dでは、VPSは512バイト(B)に設定され、その結果、8つのサイズ512Bのページセグメントが得られる。当業者であれば、さらに小さなサイズのVPSおよび対応するページセグメントが可能であり、ページセグメントの総数は、NANDフラッシュメモリデバイスのページバッファ650の最大サイズに依存することを理解するであろう。
【００９４】
本発明の実施形態についてすでに説明されているように、読み出しオペレーションのために、NANDフラッシュメモリデバイスのページバッファ650にデータをロードされた後、ページバッファ650のページセグメントのみがブリッジデバイスに出力される。所望のデータは、ページバッファ650の1つの特定のページセグメント内に格納されている可能性がある。したがって、それぞれのページセグメントは、グローバルコマンドでブリッジデバイスに供給される仮想ページのアドレスによってアドレス指定可能である。例えば、2つのアドレスビットを使用して、図9Cの4つのページセグメント656のうちの1つを選択する。選択された後、所望のデータは、ページバッファ650の選択されたページセグメント内のすべてのビット位置を占有しないことがある。したがって、仮想列アドレスは、読み出しデータが典型的にはバースト読み出しオペレーションにおいて読み出される場合に選択されたページセグメント内の第1のビット位置を選択するために使用される。以下のTable 3(表3)は、図9Aから9Dに示されている例示的なページセグメントに基づく例示的なアドレス指定スキームを要約したものである。
【００９５】
【表３】
2015111458.tif 000005
【００９６】
例示的なアドレス指定スキームは、例えば、Table 3(表3)に示されているが、当業者であれば、NANDフラッシュメモリデバイスのページバッファのサイズに応じて、異なるアドレス指定スキームを使用できることを理解するであろう。Table 3(表3)に示されているように、それぞれのアドレス指定スキームは、2つまたはそれ以上のページセグメントをアドレス指定するための第1の数のビットと選択されたページセグメント内の列をアドレス指定するため第2の数のビットを含む。この第1の数のビットは、仮想ページアドレス(VPA)と称され、第2の数のビットは、仮想列アドレス(VCA)と称される。仮想ページアドレスおよび仮想列アドレスは、単に仮想アドレスと総称される。本発明の実施形態では、それぞれの部分メモリまたは部分メモリのバンクのVPSの構成は、読み出しデータを要求し、書き込みデータを複合メモリデバイスに供給するメモリコントローラもしくは他のホストシステムに知られている。したがって、NANDフラッシュメモリデバイスのページバッファからページセグメントを読み出すための仮想アドレスは、グローバルコマンドで、特定の中にあるNANDフラッシュメモリデバイスにアクセスするための対応するアドレス指定スキームとともに複合メモリデバイスに供給される。Table 3(表3)に示されているものを含む、可能なアドレス指定スキームで、ページバッファの仮想もしくは論理アドレス空間をアドレス指定する。この論理アドレス空間は、図9Aから9Dのページバッファ650内のページセグメントのビット位置として説明されているが、実際のページページバッファは、現実の物理アドレスでアドレス指定される。
【００９７】
仮想アドレスは、いくつかの異なるアドレス指定スキームのうちの1つに従うことができるため、図6の論理およびopコードコンバータブロック414内の変換回路、およびタイミング制御回路418内のアドレス復号化回路は、適切な対応をする物理アドレスがNANDフラッシュメモリデバイスのページバッファおよび部分メモリ内の両方のデータにアクセスするために確実に生成されるように構成可能である。これは、静的に設定された変換論理回路が固定されたアドレス範囲を対象とするように設計され、特定のアドレスビットを受け取るための「ハード配線された」入力を有するという事実によるものである。アドレス指定スキームは、選択された仮想ページサイズに直接関係するので、VPSコンフィギュレーションコードは、仮想アドレスを物理アドレスに翻訳または変換するアドレス変換回路を動的に設定するために使用される。当業者であれば、調節可能な論理機能および復号回路が当技術分野において知られていることを理解するであろう。
【００９８】
本発明の一実施形態によれば、仮想アドレスは、読み出されるNANDフラッシュページバッファの選択されたページセグメントからのデータを選択するために主に使用される。読み出しオペレーションについて、この仮想アドレスは、ページバッファおよびこの読み出しオペレーションに関係するバンクの対応する部分メモリへのアクセスがこの仮想アドレスに基づくようにラッチされる。これにより、1セットのアドレス情報のみが読み出しオペレーションのために供給されるので、複合メモリデバイスに対する制御が簡素化される。図6を参照すると、論理およびopコードコンバータブロック414は、VPSコンフィギュレーションコードを使用して、仮想アドレスをNANDフラッシュメモリデバイスの対応するアドレス信号に変換する。この同じ仮想アドレスは、タイミング制御回路418内のVPSコンフィギュレーションコードによって構成された変換論理回路によって変換され、ページバッファからのデータを格納する部分メモリの書き込みアドレスを生成する。同じ変換論理回路または類似の変換論理回路は、仮想アドレスを読み出しアドレスに変換し、複合メモリデバイスから出力される、前の書き込みオペレーションから格納されているデータを読み出す。
【００９９】
図7を参照すると、メモリ506のそれぞれのメモリバンク518は、それ専用の仮想ページサイズを有するように独立に構成可能である。ブリッジデバイスのメモリバンク518を構成するために、グローバル仮想ページサイズコンフィギュレーションコマンドを複合メモリデバイスに供給する。これは、複合メモリデバイスを備えるシステムの電源投入後にのみ供給されうる。図6のブリッジデバイス400を参照すると、D[j]入力ポートでVPSコンフィギュレーションコマンドを受け取り、VPSコンフィギュレーションコマンドは少なくとも1つの部分メモリバンク、opコード、およびグローバルデバイスアドレスGDAに対するVPSコンフィギュレーションコードを含む。すでに説明されているように、GDAは、そのコマンドに作用するか、またはそのコマンドを実行する特定の複合メモリデバイスの選択するために使用される。opコードは、論理およびopコードコンバータブロック414内の論理回路によって復号化され、その後受け取った仮想ページサイズコンフィギュレーションデータは、ブリッジデバイス400内の制御回路によってVPSコンフィギュレータ422内の対応する仮想ページレジスタに経路指定される。
【０１００】
図10は、本発明の一実施形態による、VPSコンフィギュレーションコマンドの階層を例示する略図である。まず図10の右側を見ると、VPSコンフィギュレーションコマンド700の構造は、すでに説明されているGDAフィールド702、opコードフィールド704、および本発明の例における、4つのVPSデータフィールド706、708、710、および712を備える。GDAフィールド702およびopコードフィールド704は、最大4つまでのVPSデータフィールド706、708、710、および712を含むデータペイロードの先頭に置かれるヘッダと称することができる。図7を参照すると、4つのVPSデータフィールドの位置は、メモリ506の特定のメモリバンク518に対応する。図7のメモリ506に適用される図10の本発明の例では、VPSデータフィールド706はBank0に対応し、VPSデータフィールド708はBank1に対応し、VPSデータフィールド710はBank2に対応し、VPSデータフィールド712はBank3に対応する。VPSコンフィギュレーションコマンド700のフィールドの提示されている右から左への順序付けは、これらがブリッジデバイス504に供給される順序を表している。VPSコンフィギュレーションコマンド700のVPSデータフィールドの個数は、メモリ506のメモリバンク518の個数に比例する。例えば、メモリ506が、8つのメモリバンク518を含むように設計されている場合、VPSコンフィギュレーションコマンド700は、最大8つまでの対応するVPSデータフィールドを含むことができる。
【０１０１】
本発明の実施形態によれば、メモリ506のメモリバンク518は、最下位バンクから最上位バンクへの順序付けられる。したがって、図7の例では、Bank0は最下位バンクであり、Bank3は最上位バンクである。後で説明するように、VPSコンフィギュレーションコマンド700は、Bank0からBank3までの順序付けに従うVPSデータフィールド構造を有し、これによりメモリバンク518を構成するための回路および論理回路を簡素化する。したがって、opコードフィールドの隣の最初のVPSデータフィールド706は、最下位VPSデータフィールドであり、VPSデータフィールド712は、最上位VPSデータフィールドである。この順序付けスキームを使用することで、VPSコンフィギュレーションコマンド700は、構成される最高位のメモリバンク518に応じて動的にサイズ設定することができる。より具体的には、構成される最高位のメモリバンク518およびそれより低いすべての下位バンクに対応するVPSデータフィールドのみが、VPSコンフィギュレーションコマンド700に含まれる。これは、図11Aおよび11Bにさらに詳しく示されている。
【０１０２】
図11Aおよび11Bは、構成される最高位のメモリバンク518に基づいて、図10のVPSコンフィギュレーションコマンド700が供給される方法例を示すシーケンス線図である。両方のシーケンス線図は、信号CSIおよびD[j]に対する信号トレースを示しており、両方ともすでにTable 2(表2)において説明されている。例えば、図7のメモリ506を使用する場合には、図11Aにおいて、Bank3が構成されると仮定する。最初にブリッジデバイス504がGDAフィールド702を受け取るが、そこでは、GDAフィールド702内のアドレスは現在のブリッジデバイス504内の格納されているデバイスアドレスと一致するアドレスであると仮定される。次にopコードフィールド704には、16進数コードFChがあり、これは仮想ページサイズコンフィギュレーションコマンドに対応する。構成される最高位のバンクはBank3であるため、4つのVPSデータフィールドすべてが、ブリッジデバイス504に供給され、その中にラッチされる。本発明の実施形態では、Bank0、Bank1、およびBank2に対するVPSデータフィールドは、VPSコンフィギュレーションコードVPS0、VPS1、VPS2、およびVPS3を含むが、これは、VPSの構成に変化がないようにすでにラッチされているのと同じデータである。言い換えると、対応するレジスタが、前のVPSコンフィギュレーションコードで上書きされるということである。代替的実施形態では、Bank0、Bank1、およびBank2に対するVPSデータフィールドは、上書きオペレーションが禁止され、これらのバンクに対するすでにラッチされているVPSコンフィギュレーションコードに変化がないように復号化されたヌル値を含む。図11Aの例の拡張において、Bank0、Bank1、およびBank2の1つまたは複数を、新しいVPSコンフィギュレーションコードを各VPSデータフィールドに含めることによってBank3とともに構成することができる。したがって、最高位のメモリバンク518が、構成される場合、残りのより低い下位バンクも適宜構成されうる。
【０１０３】
図11Aは、VPSコンフィギュレーションコマンド700がその最大のサイズにある場合の例を示している。図11Bは、VPSコンフィギュレーションコマンド700が短縮された場合の例を示している。図11Bでは、Bank1が構成されると仮定されている。構成される最高位のバンクはBank1であるため、Bank2およびBank3に対するVPSデータフィールドは、省かれる。Bank0に対するVPSデータフィールドが含まれるが、これは、すでに述べたように、新しいVPSコンフィギュレーションコード、すでにラッチされているVPSコンフィギュレーションコード、またはヌル値を含むことができる。図11Aおよび11Bの両方において、CSIストローブ信号はVSSに駆動され、D[j]入力ポートにこれ以上現れるコマンド情報はもはや有効でないことを知らせる信号がブリッジデバイスに送られる。図11Aおよび11Bに示されているように、CSIストローブ信号のHIGH論理レベルの持続時間は、VPSコンフィギュレーションコマンドのサイズに、より具体的には、VPSコンフィギュレーションコマンドのすべてのビットをラッチするために必要なクロックサイクルの数に対応する。
【０１０４】
VPSコンフィギュレーションコマンド700のすでに説明されている構造では、図6に最初に示されているVPSコンフィギュレータ422の論理およびラッチ回路は、VPSコンフィギュレーションコードが構成されるバンクだけに対してランダムに供給されるVPSコマンド構造に関して簡素化されている。
【０１０５】
図11Aおよび11Bの両方の例において、複合メモリデバイスにコマンドを発行する役割および複合メモリデバイスから読み出しデータを受け取る役割を有するメモリコントローラまたは他の制御回路は、VPSコンフィギュレーションコマンド700を設定する。メモリコントローラは、最初に、構成される最高位のメモリバンクを識別し、次いで、最下位メモリバンクに対応する最初のVPSコンフィギュレーションコードから構成される識別された最高位のメモリバンクに対応する最後のVPSコンフィギュレーションコードまでを含むことに制限されているデータペイロードを有するコマンドを発行する。最初のVPSコンフィギュレーションコードと最後のVPSコンフィギュレーションコードとの間にある他のVPSコンフィギュレーションコードは、中間VPSコンフィギュレーションコードと称される。
【０１０６】
図12Aは、本発明の一実施形態による、VPSコンフィギュレータ422の回路図である。VPSコンフィギュレータ422は、VPSコンフィギュレーションコマンド700のVPSコンフィギュレーションコードに対応するデータを格納するためのドミノラッチ回路を備える。より具体的には、VPSコンフィギュレータ422は、レジスタ800、802、804、および806、およびクロック信号CLKに基づくシーケンスにおいてレジスタ800、802、804、および806のそれぞれをイネーブルするためのドミノアクティブ化論理回路808を備える。本発明の図示されている実施形態では、レジスタ800は、レジスタ群を表し、このレジスタ群のうちのそれぞれのレジスタは、VPSコンフィギュレーションコードVPS0の1つのビットを受け取り、格納し、供給する専用の機能を有する。レジスタ802、804、および806も、同様に構成される。したがって、それぞれのレジスタのサイズは、VPSコンフィギュレーションコードのサイズに一致するように任意のビット数とすることができる。本発明の例は、4つのレジスタ800、802、804、および806を備えるが、図7のメモリ506のメモリバンク518の個数と一致するように、任意の数のレジスタを備えることができる。ドミノアクティブ化論理回路808は、シード信号発生器810、および互いに直列に配置された4つのラッチ信号発生器812、814、816、および818を備える。
【０１０７】
レジスタ800、802、804、および806は、本発明の例には、よく知られているD 型フリップフロップ回路として示されている。レジスタ800、802、804、および806はそれぞれ、VPSコンフィギュレーションコードを受け取るためのD入力、ラッチされたVPSコンフィギュレーションコードを供給するためのQ出力、およびD入力で受け取ったVPSコンフィギュレーションコードの受け取りおよびラッチをイネーブルするためのクロック入力を有する。本発明の実施形態では、図10のVPSコンフィギュレーションコマンド700のVPSデータフィールドで供給されるVPSコンフィギュレーションコードは時分割多重化されて、レジスタ800、802、804、および806のすべてのD入力に接続されている共通バス上に出される。この共通バスは、VPSデータバスVPS_DBである。本発明の実施形態の例示的な一実装では、1つのVPSコンフィギュレーションコードに対応するすべてのデータビットが、クロックサイクルごとにVPS_DB上にアサートされる。したがって、本発明の図示されている例では、4つの異なるVPSコンフィギュレーションコードが、4つの連続するクロックサイクルでVPS_DB上にアサートされる。したがって、それぞれのレジスタ800、802、804、および806は、適切な時刻においてドミノアクティブ化論理回路808によってVPS_DB上に現れるデータをラッチするようにアクティブ化される。したがって、レジスタ800、802、804、および806は、それぞれ、ラッチされたVPSコンフィギュレーションコードLVPS0、LVPS1、LVPS2、およびLVPS3を出力する。
【０１０８】
ドミノアクティブ化論理回路808は、回路が起動した後にクロック信号CLKのそれぞれのアクティブエッジに応答してクロックパルスCK0、CK1、CK2、およびCK3を生成する。VPSコンフィギュレーションコードがクロックサイクルごとにVPS_DB上にアサートされる前述の例示的実装では、クロックパルスCK0、CK1、CK2、およびCK3がクロックサイクルごとに1回生成される。ドミノアクティブ化論理回路808は、パルス制御信号STRTに応答して開始信号を発生するシード信号発生器810によって起動される。ラッチ信号発生器812、814、816、および818のそれぞれは、データ入力ポートD、クロック入力ポートCK、リセットポートR、ならびに出力ポートQ1およびQ2を有する。以下では、ラッチ信号発生器812、814、816、および818のうちのどれか1つのオペレーションについて説明する。データ入力ポートDにおけるHIGH論理レベル(つまり、論理「1」状態)は、クロック入力ポートCKで受け取ったクロック信号の立ち上がりエッジでラッチされ、その結果、出力ポートQ1からHIGH論理レベルのパルスが発生する。Q1からのHIGH論理レベルのパルスの持続時間は、D入力上に現れるデータを対応するレジスタ800、802、804、または806がラッチできるように十分に長い時間である。出力ポートQ2は、データ入力ポートDにおけるHIGH論理レベルの信号に応答してHIGH論理レベルの信号を供給するが、これは次のラッチ信号発生器のイネーブル信号として機能する。これらのイネーブル信号は、それぞれ、ラッチ信号発生器812、814、および816からEN0、EN1、およびEN2のラベルが付けられている。最後のラッチ信号発生器818は、この連鎖においてイネーブルするラッチ信号発生器はこれ以上ないので、Q2出力からイネーブル信号を供給する必要はない。図12Aの実施形態では、リセット信号RSTをインバータ820によって反転してRST_bを生成し、これをすべてのラッチ信号発生器812、814、816、および818に供給する。RSTがHIGH論理レベルにあるときに、すべてのラッチ信号発生器812、814、816、および818のQ1およびQ2出力は、LOW論理レベルに下がる。
【０１０９】
次に、仮想ページサイズコンフィギュレータ回路422のオペレーションについて、図12Bのシーケンス線図を参照しつつ説明する。図10のVPSコンフィギュレーションコマンド700などのVPSコンフィギュレーションコマンドは、ブリッジデバイスによって受け取られ、VPSコンフィギュレーションコードVPS0、VPS1、VPS2、およびVPS3は、図11Aに示されているフォーマットでブリッジデバイスに順次供給されると仮定されている。図12Bは、信号CLK、STRT、RST、VLD、CK0、CK1、CK2、CK3、EN0、EN1、およびEN2に対する信号トレースを示している。まずクロックサイクル0で、パルス信号STRTがHIGH論理レベルにされ、その結果、シード信号発生器810はVLDをHIGH論理レベルに駆動する。VLDがHIGH論理レベルにあると、ラッチ信号発生器812は、クロックサイクル1のときにCLKの立ち上がりエッジでCK0をHIGH論理レベルに駆動する。最初の立ち上がりエッジの後のCLKの立ち下がりエッジで、CK0は、LOW論理レベルに戻される。CK0のHIGH論理レベルのパルスにおいて、レジスタ800はクロックと同期して、クロックサイクル1においてVPS_DB上にアサートされたVPS0をラッチする。CK0がLOW論理レベルに戻された直後に、イネーブル信号EN0は、ラッチ信号発生器812によってHIGH論理レベルに駆動される。したがって、本発明の実施形態では、CK0は、CLKのHIGH論理レベルの持続時間に実質的に対応するパルス持続時間を有する。CLKは、クロックサイクル1でLOW論理レベルにあるため、後続のラッチ信号発生器814は、EN0がHIGH論理レベルにある間、非アクティブ状態のままである。しかし、クロックサイクル2の始まりにおいて、ラッチ信号発生器814は、CLKの立ち上がりエッジでEN0のHIGH論理レベルをラッチし、CK1をHIGH論理レベルに駆動する。次いで、対応するレジスタ802は、クロックサイクル2においてVPS_DB上でアサートされたVPS1をラッチする。CK1は、最終的に、LOW論理レベルに戻され、その後、EN1がHIGH論理レベルに駆動される。図12からわかるように、ラッチ信号発生器816および818は、それぞれクロックサイクル3および4におけるラッチ信号発生器812および814についてすでに説明され、示されているのと同じ方法で応答する。クロックサイクル5の始まりで、RSTがパルスでHIGH論理レベルにされ、オペレーションを終了する。RSTパルスに応答して、すべてのラッチ信号発生器は、その出力をリセットし、例えばLOW論理レベルなどのヌル値に駆動する。
【０１１０】
要約すると、STRT信号によって起動された後、それぞれのラッチ信号発生器は、それぞれのクロックサイクルでQ1出力からクロックパルスを供給し、その一方で、その後のクロックサイクルに対して次のラッチ信号発生器をイネーブルすることができるということである。この滝のようなクロックパルスの発生は、リセット信号RSTが非アクティブのLOW論理レベルにある間中続く。したがって、それぞれのレジスタが順次イネーブルされ、対応するクロックサイクルにおいてVPS_DB上にアサートされたVPSコンフィギュレーションコードをラッチする。実施形態のこの特定の例において、VPSコンフィギュレーションコマンドで供給されるVPSコンフィギュレーションopコードに応答して、論理およびopコードコンバータブロック414によって信号STRTが供給されうる。ストローブ信号CSIの持続時間は、VPSコンフィギュレーションコマンドのサイズに正比例するので、オペレーションを終了させるRSTパルスの発生をトリガーするために例示的な一実施形態においてCSIの立ち下がりエッジを使用することができる。図11Aを参照すると、VPSコンフィギュレーションコマンドがコンフィギュレーションBank2に対しVPS2で終わった場合、CSIはVPS2の最後のビットがラッチされた後にデアサートされるか、またはLOW論理レベルに駆動される。当業者であれば、CSIの立ち下がりエッジに応答してRSTパルスを発生させるために単純な論理回路を組むことができる。
【０１１１】
シード信号発生器および図12Aに示されているラッチ信号発生器の機能については、入力信号に応答するタイミング特性を持つ信号を供給することに関して説明されている。タイミング関係は、図12Bに示されている例示的なシーケンス線図によって示されている。当業者であれば、図示されている入力信号に応答してこれらの信号を発生するためにさまざまな論理回路が開発されていることを理解するであろう。図13は、図12Aの可能なシード信号発生器810の回路図例であるが、図14は、図12Aの可能なラッチ信号発生器(812、814、816、または818)の回路図例である。
【０１１２】
図13のシード信号発生器810は、D入力、クロック入力、リセット入力、およびQ出力を有する知られているD型フリップフロップレジスタ850を備える。シード信号VLDを発生するために、D入力は、クロック入力に供給されるSTRT応答してラッチされるVDDに結線されている。したがって、STRTのHIGH論理レベルのパルスに応答して、VLDはVDDのHIGH論理レベルに駆動される。パルス信号RSTがHIGH論理レベルにされると、回路はリセットされ、VLDはVSSのLOW論理レベルに駆動される。
【０１１３】
図14は、図12Aに示されている1つのラッチ信号発生器の回路図である。ラッチ信号発生器860は、2つのD型フリップフロップレジスタ862および864、NAND論理ゲート866、およびOR論理ゲート868を備える。図12Aに示されているラッチ信号発生器の入力および出力は、入力ポートおよび出力ポートと称される。フリップフロップレジスタ862は、D入力ポートに接続されたD入力、CK入力ポートに接続されたクロック入力、ORゲート868を介してR入力ポートに接続されたリセット入力、およびQ1出力ポートに接続されたQ出力を有する。したがって、フリップフロップレジスタ862は、D入力ポートに現れるHIGH論理レベル信号をラッチし、CK入力ポート上に現れる信号の立ち上がりエッジに応答してQ出力をHIGH論理レベルに駆動する。NAND論理ゲート866は、CK入力ポートに接続された反転入力、およびフリップフロップレジスタ862のQ出力に接続された非反転入力を有する。NAND論理ゲート866の出力は、フリップフロップレジスタ864に供給される。この構成では、NAND論理ゲート866は、Q1がHIGH論理レベルにあり、CKがLOW論理レベルにある条件を検出する。この条件の下で、NAND論理ゲート866の出力は、LOW論理レベルに駆動される。
【０１１４】
フリップフロップレジスタ864は、HIGH論理レベルに対応する、VDD電源に接続されたD入力、NAND論理ゲート866の出力に接続された反転クロック入力、R入力ポートに接続されたリセット入力、およびQ2出力ポートに接続されたQ出力を有する。フリップフロップレジスタ864は、CKがLOW論理レベルにある間にNAND論理ゲート866がHIGH論理レベルでQ1を検出したときにQ2をHIGH論理レベルにラッチする。すでに述べているように、Q2は、これの接続先となる次の下流のラッチ信号発生器をイネーブルする。OR論理ゲート868は、フリップフロップレジスタ864のQ出力に接続された反転入力、R入力ポートに接続された非反転入力、およびフリップフロップレジスタ862のリセット入力に接続された出力を有する。OR論理ゲート868の出力は、フリップフロップレジスタ864によってQ2がHIGH論理レベルに駆動されたとき、またはR入力ポートがHIGH論理レベルにあるときに、LOW論理レベルに駆動される。OR論理ゲート868は、フリップフロップレジスタ864からフリップフロップレジスタ862へのフィードバック経路を形成しており、そこでは、フリップフロップレジスタ862は、出力ポートQ2がHIGH論理レベルにあるときにリセットされる。
【０１１５】
要約すると、D入力ポートがHIGH論理レベルにあるときに、Q1は、HIGH論理レベルでCK入力ポートに受け取った信号に応答してHIGH論理レベルに駆動される。Q1は、CK入力ポート上に受け取った信号がLOW論理レベルにまで下がったときにHIGH論理レベルからLOW論理レベルに駆動される。さらに、フリップフロップレジスタ864は、それがリセットされるまですべての後続のクロックサイクルについて出力ポートQ2をHIGH論理レベルに保持する。出力ポートQ2がHIGH論理レベルに保持されている場合に、フリップフロップレジスタ862は、リセット状態に保持され、それにより、CK入力ポートがCK入力ポートに現れる次の立ち上がりエッジでQ1をラッチし、駆動することをしないようにロックアウトされる。
【０１１６】
本明細書で説明されている例では、それぞれのVPSコンフィギュレーションコードのすべてのデータビットが、同時にVPS_DB上にアサートされると仮定している。このことは、ブリッジデバイスがすべてのVPSコンフィギュレーションコードのデータビットを同時に、または1クロックサイクルで受け取るように構成されていることを意味する。例えば、それぞれのVPSコンフィギュレーションコードが8ビットサイズである場合、ブリッジデバイス入力/出力インターフェイス402は、8つのD[j]ポート(j=8とする)を有することができる。代替的な例では、ブリッジデバイス入力/出力インターフェイス402が、4つのD[j]ポートを有する場合、クロックサイクルごとに4ビットが供給されるので、VPSコンフィギュレーションコード8つのビットすべてを2クロックサイクル後に受け取る。したがって、1つのVPSコンフィギュレーションコードに対応するデータの一部分は、クロックサイクルごとにラッチされ、その部分はデータを受け取るため使用されているD[j]ポートの数に依存する。このような構成では、図12Aの回路は、レジスタ800が第1のクロックサイクルで最初の4ビットをラッチし、レジスタ802が第2のクロックサイクルで最後の4ビットをラッチするように単純にスケーリングされる。したがって、追加のラッチ信号発生器がドミノアクティブ化論理回路808に追加され、レジスタが適切なクロックパルスを受け取るように再配置される。したがって、アプリケーションの要件に応じて、VPSコンフィギュレーションコードサイズとブリッジデバイス入力/出力インターフェイスの任意の組み合わせを使用することができる。
【０１１７】
図12AのVPSコンフィギュレータ422は、VPSコンフィギュレーションコマンド内のVPSコンフィギュレーションコードを素早くラッチするための単純な回路である。図7を参照すると、メモリバンク518は、最下位バンクから最上位バンクへ順序付けられるので、最上位バンクおよびその対応するNANDフラッシュメモリデバイスは、変更頻度の最も少ないVPSコンフィギュレーションを有するものとして指定することができる。次いで、最下位バンクおよびその対応するNANDフラッシュメモリデバイスは、VPSコンフィギュレーションコマンド構造を利用するために変更頻度が最も多いVPSコンフィギュレーションを有するものとして指定することができる。最下位バンクが、頻繁に変更されるVPSコンフィギュレーションを有する場合、それらのコマンドは、VPSコンフィギュレーションコードVPS0に対応する最初のVPSデータフィールドのみを含めることによってサイズが最小にされる。頻繁に発行されるVPSコンフィギュレーションコマンドのサイズを最小にすることによって、それぞれの複合メモリデバイスがコマンドを受け取り波処理するのに要する時間が短縮されるので、全体的な性能が改善される。
【０１１８】
以下では、本発明の一実施形態により、少なくとも1つの複合メモリデバイスを有するメモリシステム内の複合メモリデバイスのメモリバンクの仮想ページサイズを構成するための方法について概要を述べる。このようなメモリシステムは、図5にすでに示されているメモリシステム構成をとることができ、それぞれの複合メモリデバイスは図6に示されているブリッジデバイス400を有する。この方法は、図15の流れ図に示されており、メモリコントローラに、特定の仮想ページサイズで構成されるブリッジデバイス400内のいくつかのメモリバンクのうちの少なくとも1つのメモリバンクを識別させることによってステップ900から始まる。すでに述べたように、メモリバンクは、最下位をメモリバンクから最上位メモリバンクへと順序付けることができる。メモリコントローラは、ホストシステムからの要求に基づいて動作することができ、そのホストシステム内ではメモリシステムが仮想ページサイズの設定に使用される。あるいは、メモリコントローラは、ホストシステムがメモリシステム内に格納することが可能なデータのタイプに依存するアルゴリズムに自動的に従うことができる。メモリバンクまたは構成されるメモリバンクが識別され、仮想ページサイズが割り当てられた後、メモリコントローラは、ステップ902で、VPSコンフィギュレーションコマンドを発行し、これは、ヘッダおよび構成されるメモリバンクに対応するVPSコンフィギュレーションコードのみからなるデータペイロードを伴う。本発明の実施形態では、最下位メモリバンクから構成されている最高位のメモリバンクまでのメモリバンクに対応するVPSコンフィギュレーションコードのみが、VPSコンフィギュレーションコマンドのデータペイロードに含まれる。本発明の実施形態では、これらのVPSコンフィギュレーションコードは、対応するメモリバンクに関係する重要性の順位の昇順に発行される。
【０１１９】
本明細書で説明されているシステムにおいて、CSIストローブ信号はVPSコンフィギュレーションコマンドを与えられる。CSIストローブ信号は、ヘッダの先頭でHIGH論理レベルに駆動され、次いで、最高位のVPSコンフィギュレーションコードの最後の1つまたは複数のビットであるデータペイロードの終わりのところでLOW論理レベルに駆動される。ステップ902の結果は、図11Aまたは11Bの例で示されている。したがって、VPSコンフィギュレーションコマンドのヘッダは、GDAフィールドを含むため、このコマンドは、選択された複合メモリデバイスに対して発行される。選択された複合メモリデバイスに対して発行される。最初の複合メモリデバイスは、ブリッジデバイスを介して、割り当てられたデバイスアドレスが、VPSコンフィギュレーションコマンドのGDAフィールド内のアドレスと一致するかどうかを判定する。一致しない場合、ブリッジデバイスは、opコードを無視し、VPSコンフィギュレーションコマンドは、複合メモリデバイスによってシステム内の後続の複合メモリデバイスへと中継される。最終的に、選択された複合メモリデバイスは、GDAフィールド内のアドレスと一致するデバイスアドレスを有する。一致するアドレスに応答して、ブリッジデバイスは、opコードを復号化し、ステップ904でVPSコンフィギュレーションコードをラッチするステップに進む。ラッチされた後、バンクの仮想ページサイズが構成される。本発明の実施形態では、VPSコンフィギュレーションコードのラッチは、CSIが非アクティブのLOW論理レベルに下がったときに終了する。したがって、VPSコンフィギュレーションコマンドは、データペイロード内にあるVPSコンフィギュレーションコードの個数を示すさらなる情報を含む必要はない。メモリバンクの論理的順序付けは、あらかじめ決定されているため、VPSコンフィギュレーションコードは、同じ論理的順序付けを与えられる。したがって、コンフィギュレーションコマンドは、どのVPSコンフィギュレーションコードがどのメモリバンクと一致すべきかを示す情報を含む必要はない。
【０１２０】
データペイロードのサイズは、構成されている最高位のメモリバンクに依存するため、メモリバンクの仮想ページサイズに変更がない場合に重要性の順位の下がるメモリバンクがありうる。しかし、VPSコンフィギュレーションコマンドは、最下位メモリバンクから構成されている最高位のメモリバンクまでのメモリバンクに対応するすべてのVPSコンフィギュレーションコードを含むので、変更のないメモリバンクの前の仮想ページサイズに対応するVPSコンフィギュレーションコードが発行される。したがって、前のVPSコンフィギュレーションコードは、同じVPSコンフィギュレーションコードで上書きされ、対応するメモリバンクに対する仮想ページサイズに対する変更は行われない。
【０１２１】
本明細書で説明されている実施形態は、ブリッジデバイス内のメモリバンクに対する仮想ページサイズをどのように構成することができるかを示している。前に説明した回路、コマンドフォーマット、および方法は、アプリケーションの要件に適合するように構成可能な仮想もしくは論理サイズを有するメモリを備える半導体デバイスにおいて使用できる。
【０１２２】
ここまでいろいろ述べてきたが、説明を目的として、本発明の実施形態を完全に理解できるようにする多数の具体的詳細を取りあげた。しかし、当業者には、本発明の実施形態を実施するためにこれらの具体的詳細事項は必要ないということは明白であろう。他の場合には、本発明をわかりにくくしないために、よく知られている電気的構造および回路はブロック図形式で示されている。
【０１２３】
要素は、本明細書において、他の要素に「接続されている」、または「結合されている」と称する場合、要素は、直接他の要素に接続されるか、または結合されうるか、あるいは介在する要素が存在しうると理解される。これとは対照的に、要素が、本明細書において、他の要素に「直接接続されている」か、または「直接結合されている」と称する場合、介在する要素は存在しない。要素間の関係を記述するために使用される他の単語も、同様にして解釈されるべきである(つまり、「〜の間にある」と「直接的に〜の間にある」、「〜に隣接する」と「直接的に〜に隣接する」など)。説明されている実施形態のいくつかの適応形態および修正形態が形成されうる。したがって、上述の実施形態は、例示的であり、制限するものではないと考えられる。
【符号の説明】
【０１２４】
10 不揮発性メモリシステム
12 ホストシステム
14 メモリコントローラ
16-1、16-2、16-3、および16-4 不揮発性メモリデバイス
18 チャネル
20 リング型トポロジーのシリアルメモリシステム
22 メモリコントローラ
24-1、24-2、24-3、および24-N メモリデバイス
100 複合メモリデバイス
102 ブリッジデバイス
104 ディスクリートメモリデバイス
110 グローバルコマンド
112 グローバルメモリ制御信号(GMCS)
114 アドレスヘッダ(AH)
116 グローバルデバイスアドレス(GDA)
118 ローカルデバイスアドレス(LDA)
200 ブリッジデバイス
202 ブリッジデバイス入力/出力インターフェイス
204 メモリデバイスインターフェイス
206 フォーマットコンバータ
208 コマンドフォーマットコンバータ
210 データフォーマットコンバータ
212 コマンド経路
300 メモリシステム
302 メモリコントローラ
304-1から304-j 複合メモリデバイス
400 ブリッジデバイス
402 ブリッジデバイス入力/出力インターフェイス
404 メモリデバイスインターフェイス
406 コマンドフォーマットコンバータ
408 データフォーマットコンバータ
410 opコードレジスタ
412 グローバルデバイスアドレス(GDA)レジスタ
414 論理およびopコードコンバータブロック
416 メモリ
418 タイミング制御回路
420 アドレスレジスタ
422 仮想ページサイズ(VPS)コンフィギュレータ回路
424 データ入力経路回路
426 データ出力経路回路
428 データフロースルー経路
500 複合メモリデバイス
502 NANDフラッシュメモリデバイス
504 ブリッジデバイス
506 メモリ
508、510 プレーン
512および514 ページバッファ
516 論理的または物理的部分メモリ
518 メモリバンク
600 複合メモリデバイス
602 第1のNANDフラッシュメモリデバイス
604 第2のNANDフラッシュメモリデバイス
606 ブリッジデバイス
608 単一プレーン
610 単一ページバッファ
612 第1の部分メモリ
614 第2の部分メモリ
616 ブリッジデバイス入力/出力インターフェイス
618 行またはワードライン
650 NANDフラッシュメモリデバイスのページバッファ
652 ページセグメント
654 2Kページセグメント
656 1Kページセグメント
700 VPSコンフィギュレーションコマンド
702 GDAフィールド
704 opコードフィールド
706、708、710、および712 VPSデータフィールド
800、802、804、および806 レジスタ
808 ドミノアクティブ化論理回路
810 シード信号発生器
812、814、816、および818 ラッチ信号発生器
820 インバータ
860 ラッチ信号発生器
862および864 D型フリップフロップレジスタ
866 NAND論理ゲート
868 OR論理ゲート
【図１Ａ】
2015111458.tif 000006
【図１Ｂ】
2015111458.tif 000007
【図２Ａ】
2015111458.tif 000008
【図２Ｂ】
2015111458.tif 000009
【図３Ａ】
2015111458.tif 000010
【図３Ｂ】
2015111458.tif 000011
【図４】
2015111458.tif 000012
【図５】
2015111458.tif 000013
【図６】
2015111458.tif 000014
【図７】
2015111458.tif 000015
【図８Ａ】
2015111458.tif 000016
【図８Ｂ】
2015111458.tif 000017
【図８Ｃ】
2015111458.tif 000018
【図９Ａ】
2015111458.tif 000019
【図９Ｂ】
2015111458.tif 000020
【図９Ｃ】
2015111458.tif 000021
【図９Ｄ】
2015111458.tif 000022
【図１０】
2015111458.tif 000023
【図１１Ａ】
2015111458.tif 000024
【図１１Ｂ】
2015111458.tif 000025
【図１２Ａ】
2015111458.tif 000026
【図１２Ｂ】
2015111458.tif 000027
【図１３】
2015111458.tif 000028
【図１４】
2015111458.tif 000029
【図１５】
2015111458.tif 000030