(57)【要約】  オンチップコピー処理は、異なるチップ上、同じチップ上の異なるプレーン上、または同じチップの同じプレーン上にあり得る２つのブロック間でデータがコピーされ得るように拡張される。より具体的には、ここで説明される方法は、メモリシステムにおけるどの２つの場所間でもデータがコピーされることを可能にする単一データコピー機構を提供する。代表的な実施形態は、ＥＤＯ形タイミングを用いる。別の態様によれば、転送されたページ中の選択されたワードのような、再配置されたデータの選択された部分は、コントローラにおいてオンザフライで更新され得る。データセットを、ソースアレイの読み出しバッファからデスティネーションアレイの書き込みバッファに直接転送することに加え、データセットを、要望があれば、コントローラ中に同時にコピーすることができ、エラー検出および訂正動作をそれに対して実行できる。
2008524748.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムにおいて、
メモリであって、
複数の半自律メモリアレイと、
各々がそれぞれの半自律メモリアレイに関連付けられた対応する複数の読み出し／書き込みバッファと、を含む、メモリと、
メモリ中に格納されたデータを管理し、メモリシステム内のデータの転送を制御するためのコントローラであって、前記コントローラは、前記アレイのうちの任意のものをソースアレイとして選択し、前記アレイの他の任意のものをデスティネーションアレイとして選択することができ、かつデータのページを転送の一部としてコントローラ中に一時的に格納することなく、前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記データのページの転送を実施することができる、コントローラと、
を備えるメモリシステム。
【請求項２】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションアレイは、同じチップ上に形成されるメモリシステム。
【請求項３】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションアレイは、異なるチップ上に形成されるメモリシステム。
【請求項４】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションバッファは、共通データバスに接続可能であるメモリシステム。
【請求項５】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションバッファは、共通データバスには接続可能でなく、コントローラには別個のデータバスにより接続可能であるメモリシステム。
【請求項６】
請求項５記載のメモリシステムにおいて、
データは、コントローラ内で前記別個のデータバス間で転送されるメモリシステム。
【請求項７】
請求項１記載のメモリシステムにおいて、
前記転送は、ＥＤＯ形タイミングを用いて実行されるメモリシステム。
【請求項８】
請求項１記載のメモリシステムにおいて、
コントローラが、前記転送の一部として、コントローラ中の前記データのページの選択された部分を変更できるメモリシステム。
【請求項９】
請求項１記載のメモリシステムにおいて、
転送の一部としてデータのページをコントローラ中に一時的に格納することなく、前記データのページの前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記転送を実施するのと同時に、コントローラが、前記データのページをコントローラにコピーし、そこで前記ページのコピーに対してエラー検出および訂正動作を実行できるメモリシステム。
【請求項１０】
請求項９記載のメモリシステムにおいて、
前記ページのコピーに対するエラー検出および訂正動作の実行に続いて、コントローラは、前記ページの訂正されたコピーを前記デスティネーションアレイのそれぞれのバッファに転送できるメモリシステム。
【請求項１１】
請求項１記載のメモリシステムにおいて、
デスティネーションアレイがプログラミング動作でビジーな場合、コントローラが、前記データのページを前記デスティネーションアレイのバッファに転送できるメモリシステム。
【請求項１２】
メモリシステムにおいて、
関連付けられた読み出し／書き込みバッファを各々有する複数の半自律メモリアレイと、
メモリシステム中に格納されたデータを管理し、メモリシステム内のデータの転送を制御するためのコントローラと、
コントローラとメモリアレイとの間のデータの転送のために、コントローラおよびメモリアレイに接続可能なバスであって、前記コントローラは、データ転送動作のために、複数のアレイを選択して同時にアクティブにすることができる、バスと、
を備えるメモリシステム。
【請求項１３】
請求項１２記載のメモリシステムにおいて、
コントローラコマンドに応答して、前記同時にアクティブなアレイのうちの第１のアレイがソースとして働き、前記同時にアクティブなアレイのうちの第２のアレイが、任意のクロックサイクルの間、前記バス上に置かれたデータのためのデスティネーションとして働くメモリシステム。
【請求項１４】
対応する読み出し／書き込みバッファを各々有する複数の半自律メモリアレイと、メモリコントローラとを含むメモリシステムを動作する方法において、
アレイのうちの第１のアレイをソースとしてコントローラにより選択するステップと、
アレイのうちの第２のアレイをデスティネーションとしてコントローラにより選択するステップであって、第１のアレイが第２のアレイとは異なり、第１および第２のアレイが前記複数のアレイのうちのいずれとすることもできる、ステップと、
データセットをコントローラ中に一時的に格納することなく、前記データセットをソースアレイに対応するバッファからデスティネーションアレイに対応するバッファに転送するステップと、
を含むメモリシステムを動作する方法。
【請求項１５】
請求項１４記載のメモリシステムを動作する方法において、
前記データセットは、一度に１サブユニットずつ転送され、前記転送するステップは、
コントローラ中の前記サブユニットのうちの選択されたサブユニットを変更するステップを含む方法。
【請求項１６】
請求項１５記載のメモリシステムを動作する方法において、
前記データセットをデスティネーションアレイに対応するバッファに転送するステップと同時に、前記データセットのコピーをコントローラ中に格納するステップをさらに含む方法。
【請求項１７】
請求項１６記載のメモリシステムを動作する方法において、
前記データセットのコピーをコントローラ中に格納するステップに続いて、前記データセットに対してエラー検出および訂正動作を実行するステップをさらに含む方法。
【請求項１８】
請求項１７記載のメモリシステムを動作する方法において、
前記データの訂正されたコピーを、デスティネーションアレイに対応するバッファに転送するステップをさらに含む方法。
【請求項１９】
請求項１４記載のメモリシステムを動作する方法において、
前記転送するステップは、ＥＤＯ形タイミングを用いて実行される方法。
【請求項２０】
請求項１４記載のメモリシステムを動作する方法において、
前記データセットは、一度に１サブユニットずつ転送され、前記ソースおよびデスティネーションアレイは、共通データバスに接続可能であり、前記転送するステップは、
前記データセットを、１サイクルに１サブユニットずつ、ソースアレイに対応するバッファから前記バス上に書き込むステップと、
前記バス上に書き込まれた前記サブユニットを、前記サブユニットが前記バス上に書き込まれるのと同じサイクルの間、デスティネーションアレイに対応するバッファに読み出すステップと、
を含む方法。
【請求項２１】
請求項１４記載のメモリシステムを動作する方法において、
前記データセットは、一度に１サブユニットずつ転送され、前記ソースおよびデスティネーションアレイは、別個の、それぞれの第１および第２のデータバス上のコントローラに接続可能であり、前記転送するステップは、
前記データセットを、１サイクルに１サブユニットずつ、ソースアレイに対応するバッファから前記第１のバス上に書き込むステップと、
前記サブユニットを前記コントローラ中で第１のバスから第２のバスへ連続的に転送するステップと、
前記第２のバス上に転送された前記サブユニットを、デスティネーションアレイに対応するバッファに読み出すステップと、
を含む方法。
【請求項２２】
請求項２１記載のメモリシステムを動作する方法において、
前記サブユニットを前記コントローラ中で第１のバスから第２のバスへ連続的に転送するステップは、１サイクル遅延させて実行される方法。
【請求項２３】
請求項１４記載のメモリシステムを動作する方法において、
前記データセットをソースアレイに対応するバッファからデスティネーションアレイに対応するバッファへ転送するステップは、デスティネーションアレイがプログラミング動作でビジーな場合に実行される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体不揮発性データ記憶システム構造およびそれらの動作方法の分野に関し、フラッシュＥＥＰＲＯＭ（電気的に消去可能でプログラム可能な読み出し専用メモリ）および他のタイプのメモリシステムに基づくデータ記憶システムに応用される。
【背景技術】
【０００２】
フラッシュＥＥＰＲＯＭデバイスの一般的な用途は、電子デバイスのための大量データ記憶サブシステムである。そのようなサブシステムは一般に、複数のホストシステム内に挿入できる取り外し可能なメモリカード、またはホストシステム内の取り外しできない埋め込み形記憶装置のいずれか一方として実施される。両方の実施例において、サブシステムは、１つ以上のフラッシュデバイス、およびしばしばサブシステムコントローラを含む。
【０００３】
フラッシュＥＥＰＲＯＭデバイスは、１つ以上のトランジスタセルのアレイで構成され、各セルは、１ビット以上のデータの不揮発性記憶が可能である。従って、フラッシュメモリは、その中にプログラムされたデータを保持するための電力を必要としない。しかし、ひとたびプログラムされると、新しいデータ値によって再プログラムされ得る前に、セルは消去されなければならない。これらのセルアレイは、読み出し、プログラミングおよび消去機能の効率的な実施に備えて複数のグループに仕切られる。大量記憶のための典型的なフラッシュメモリ構造は、大きなセルグループを消去可能なブロックに配置することであり、１つのブロックは、一度に消去可能な最小数のセル（消去単位）を含む。
【０００４】
１つの商業的形態において、各ブロックは、ユーザデータの１セクタに加えて、ユーザデータおよび／またはユーザデータが格納されるブロックと関連したいくつかのオーバーヘッドデータを格納するのに十分なセルを含む。１つのセクタ中に含まれるユーザデータの量は、そのようなメモリシステムの１つのクラスにおいて標準の５１２バイトであるが、他のサイズであってもよい。セルの個々のブロックを個別に消去可能にするために必要とされるセルの個々のブロックの相互の隔離が集積回路チップ上でスペースを取るので、別のクラスのフラッシュメモリは、ブロックをかなり大きくし、そのためそのような隔離のために必要とされるスペースはより少ない。しかし、ずっと小さいセクタ中のユーザデータを取り扱うことも要望されるので、大きなブロックの各々はしばしば、ユーザデータを読み出しおよびプログラムするための基本単位である個別にアドレス可能なページにさらに仕切られ、書き込みページのサイズは、読み出しページのサイズと同じである必要はないが、以下においては、議論を簡略化するためにそれらのページは同じであるとして扱われる。各ページは通常、ユーザデータの１つのセクタを格納するが、１つのページは部分的なセクタまたは複数のセクタを格納することができる。「セクタ」は、本願明細書において、ホストへまたはホストから１つの単位として転送されるユーザデータの量を意味するために用いられる。
【０００５】
大きなブロックシステムにおけるサブシステムコントローラは、メモリサブシステムによりホストから受信された論理アドレス（ＬＢＡ）と、物理ブロック番号（ＰＢＮ）およびメモリセルアレイ内のページアドレスとの間の変換を含む多くの機能を実行する。この変換は、論理ブロック番号（ＬＢＮ）および論理ページのための中間用語 (intermediate terms) の使用を伴うことがよくある。コントローラは、コントローラがインターフェイスバスを介してフラッシュメモリデバイスに発する一連のコマンドにより低レベルフラッシュ回路動作も管理する。コントローラが実行するもう１つの機能は、誤り訂正符号（ＥＣＣ）を用いるなどの様々な手段により、サブシステムに格納されたデータの保全性を維持することである。
【０００６】
図１は、フラッシュメモリデバイス１３１のための典型的な内部構造を示す。主要な特徴としては、外部コントローラへインターフェイスするための入出力（Ｉ／Ｏ）バス４１１および制御信号４１２、コマンド、アドレスおよびステータス信号のためのレジスタで内部メモリ動作を制御するためのメモリ制御回路４５０が含まれる。フラッシュＥＥＰＲＯＭセルの１つ以上のアレイ４００が含まれ、各アレイは、それ自身の行デコーダ（ＸＤＥＣ）４０１および列デコーダ（ＹＤＥＣ）４０２、センス増幅器およびプログラム制御回路（ＳＡ／ＰＲＯＧ）４５４のグループならびにデータレジスタ４０４を有する。現在、メモリセルは通常、記憶素子として１つ以上の導電性フローティングゲートを含むが、他の長期電子電荷記憶素子も代わりに用いることができる。メモリセルアレイは、各記憶素子について定義された２つの電荷レベルで動作することができ、その結果各素子で１ビットのデータを格納する。代わりに、各記憶素子について３つ以上の記憶状態を定義することができ、その場合、２ビット以上のデータが各素子中に格納される。
【０００７】
要望があれば、例えば、１９９９年３月３０日に登録され、本願の譲受人であるサンディスク  コーポレイションに譲渡され、本願明細書において参照により援用されている米国特許第５，８９０，１９２号（特許文献１）により教示されているように、複数のアレイ４００が、関連したＸデコーダ、Ｙデコーダ、プログラム／ベリファイ済み回路、データレジスタなどと共に設けられる。関連したメモリシステムの特徴が、２００２年７月３０日に登録され、本願の譲受人であるサンディスク  コーポレイションに譲渡された米国特許第６，４２６，８９３号（特許文献２）に記載されている。この特許も、本願明細書において参照により明確に援用されている。これらの特許は、単一のメモリチップ上のプレーンまたは「クワッド（quad）」と呼ばれる複数の半自律アレイを有することを記載している。
【０００８】
外部インターフェイスＩ／Ｏバス４１１および制御信号４１２は、以下のものを含み得る。
ＣＥ−チップイネーブル：フラッシュメモリインターフェイスを動作させるために用いられる。
ＲＥ−読み出しイネーブル：メモリアレイからデータを転送するためにＩ／Ｏバスが使用されていることを示すために用いられる。
ＷＥ−書き込みイネーブル：メモリアレイへデータを転送するためにＩ／Ｏバスが使用されていることを示すために用いられる。
ＡＬＥ−アドレスラッチイネーブル：アドレス情報を転送するためにＩ／Ｏバスが使用されていることを示す。
ＣＬＥ−コマンドラッチイネーブル：コマンド情報を転送するためにＩ／Ｏバスが使用されていることを示す。
ＩＯ［７：０］−アドレス／データバス：このＩ／Ｏバスは、コントローラと、メモリ制御回路４５０のフラッシュメモリコマンド、アドレスおよびデータレジスタとの間でデータを転送するために使用される。
【０００９】
これらの信号に加え、なんらかのタスクの実行でメモリがビジーであることを記憶サブシステムコントローラが決定し得る手段をメモリが有することも一般的である。そのような手段として、メモリがビジーな間アクセス可能な内部メモリレジスタ中の専用信号またはステータスビットが含まれ得る。
【００１０】
同じ機能性を示すために他の信号形態が用いられ得るので、このインターフェイスは単に例として示される。図１は、ただ１つのフラッシュメモリ４００をその関連構成要素と共に示しているが、共通のインターフェイスおよびメモリ制御回路を共有するが並列の読み出しおよびプログラミング動作を可能にするために別個のＸＤＥＣ４０１、ＹＤＥＣ４０２、ＳＡ／ＰＲＯＧ４５４およびＤＡＴＡ  ＲＥＧ４０４回路を有する複数のそのようなアレイが単一のフラッシュメモリチップ上に存在し得る。より一般的には、本願明細書において参照により援用されている米国特許第６，５６０，１４３号（特許文献３）においてさらに展開されるマスタ−スレーブ配置のソートに一般に配置される１つないし２つの付加的なそのようなデータレジスタがあり得る。
【００１１】
データは、メモリアレイからデータレジスタ４０４を通って外部コントローラにＩ／ＯバスＩＯ［７：０］４１１へのデータレジスタの結合を介して転送される。データレジスタ４０４は、センス増幅器／プログラミング回路４５４にも結合されている。各センス増幅器／プログラミング回路素子に結合されたデータレジスタの素子数は、記憶素子として１つ以上のフローティングゲートを含むメモリセル、フラッシュＥＥＰＲＯＭセルの各記憶素子中に格納されたビット数に依存し得る。メモリセルが多状態モードで動作されれば、各記憶素子は、２または４のような複数ビットを格納できる。代わりに、メモリセルは、記憶素子あたり１ビットのデータを格納するために、２進（バイナリ）モードで動作され得る。
【００１２】
行デコーダ４０１は、アクセスされるべき物理ページを選択するために、アレイ４００についての行アドレスを復号化する。行デコーダ４０１は、メモリ制御回路４５０から内部行アドレス線４１９を介して行アドレスを受信する。列デコーダ４０２は、メモリ制御回路４５０から内部列アドレス線４２９を介して列アドレスを受信する。
【００１３】
図２は、典型的な不揮発性データ記憶システムの構造を示し、この場合、記憶媒体としてフラッシュメモリセルを使用している。１つの形態において、このシステムは、ホストの差し込み口に挿入された際にホストインターフェイスを提供するために一辺に沿って延びる電気コネクタを有する取り外し可能なカード内に封入される。代わりに、図２のシステムは、恒久的に設置された埋め込み回路の形態あるいは別の方法でホストシステムに埋め込まれてもよい。このシステムは、高レベルホストおよびメモリ制御機能を実行する単一のコントローラ１０１を利用する。フラッシュメモリ媒体は、１つ以上のフラッシュメモリデバイスで構成され、そのようなデバイスの各々は、それ自身の集積回路チップ上で形成されることがよくある。システムコントローラおよびフラッシュメモリは、コントローラ１０１が、コマンド、アドレス、および転送データをフラッシュメモリアレイと互いにロードできるようにするバス１２１により接続される。（バス１２１は、図１の４１２および４１１を含む。）コントローラ１０１は、ユーザデータがフラッシュメモリアレイと互いに転送されるホストシステム（図示せず）とインターフェイスする。図２のシステムがカードに含まれている場合、ホストインターフェイスは、カードおよびホスト装置上に嵌め合いプラグおよびソケットアセンブリ（図示せず）を含む。
【００１４】
コントローラ１０１は、特定の論理アドレスにおいて始まるユーザデータの１つ以上のセクタを読み出しまたは書き込むために、ホストからコマンドを受信する。このアドレスは、メモリセルのブロック中で第１の物理ページと整合してもしなくてもよい。
【００１５】
複数のページに分割される大容量メモリセルブロックを有するある種の従来技術のシステムにおいて、更新されていないブロックからのデータは、元ブロックから、ホストにより書き込まれている新しい更新データも含む新しいブロックにコピーされる必要がある。他の従来技術のシステムにおいて、フラグがページ中のユーザデータと共に記録され、新たに書き込まれたデータにより取って代わられる元ブロック中のページのデータが無効であることを示すために使用される。既存のブロック中に格納されたデータに部分的に取って代わるデータが、既存のブロックから不変のデータをコピーしたり以前にプログラムされたページにフラグをプログラムしたりすることなく書き込まれる機構が、米国特許第６，７６３，４２４号（特許文献４）に記載されている。この特許は、本願明細書において参照により明確に援用されている。
【００１６】
このタイプの不揮発性メモリシステムは、特にホストシステムと取り外し可能に接続される密閉形カード中にパッケージ化される場合、多くの用途に適用される。現在の市販のメモリカード形式としては、パーソナルコンピュータ・メモリカード国際協会（ＰＣＭＣＩＡ： Personal Computer Memory Card International Association) 、コンパクトフラッシュ（ＣＦ）、マルチメディアカード（ＭＭＣ）およびセキュアデジタル（ＳＤ）の形式が含まれる。他のシステムとしては、どちらも２００４年４月１６日に出願され、本願明細書において参照により援用されている米国特許出願第１０／８２６，８０１号（特許文献５）および第１０／８２６，７９６号（特許文献６）に記載されているような、２組の接点を有するカードを含むメモリカードのような、ＵＳＢデバイスが含まれる。これらのカードの１つの供給業者が本願の譲受人であるサンディスク  コーポレイションである。そのようなカードが用いられるホストシステムとしては、パーソナルコンピュータ、ノートブック形コンピュータ、ハンドヘルド形計算装置、カメラ、オーディオ再生デバイスなどが含まれる。フラッシュＥＥＰＲＯＭシステムは、ホストシステムに埋め込まれたバルク大量記憶としても利用される。
【００１７】
そのような不揮発性メモリシステムは、１つ以上のフローティングゲートメモリセルアレイおよびシステムコントローラを含む。コントローラは、ユーザデータを格納および検索するために、ホストシステムとの通信およびメモリセルアレイの動作を管理する。メモリセルは、複数のセルのブロックに一緒にグループ化され、１つのセルのブロックは、同時に消去可能なセルの最小グループ化である。１つ以上のセルのブロックへデータを書き込む前に、それらのセルのブロックは消去される。ユーザデータは一般に、ホストとセクタ中のメモリアレイとの間で転送される。ユーザデータのセクタは、取り扱いが便利ないかなる量であってもよく、好ましくはメモリブロックの容量よりも小さく、しばしば標準ディスクドライブセクタサイズである５１２バイトに等しい。１つの商用構造において、メモリシステムブロックは、ユーザデータの１つのセクタに加えてオーバーヘッドデータを格納するサイズにされ、オーバーヘッドデータは、ブロック中に格納されたユーザデータのための誤り訂正符号（ＥＣＣ）、ブロックの使用履歴、欠陥およびメモリセルブロックの他の物理的情報のような情報を含む。このタイプの不揮発性メモリシステムの様々な実施例が、サンディスク  コーポレイションに譲渡された米国特許第５，１７２，３３８号（特許文献７）、第５，６０２，９８７号（特許文献８）、第５，３１５，５４１号（特許文献９）、第５，２００，９５９号（特許文献１０）、第５，２７０，９７９号（特許文献１１）、第５，４２８，６２１号（特許文献１２）、第５，６６３，９０１号（特許文献１３）、第５，５３２，９６２号（特許文献１４）、第５，４３０，８５９号（特許文献１５）および第５，７１２，１８０号（特許文献１６）、ならびに１９９７年８月７日出願の米国特許出願第０８／９１０，９４７号（特許文献１７）および１９９９年６月３０日出願の第０９／３４３，３２８号（特許文献１８）に記載されている。これらの特許および特許出願は、その全体が本願明細書において参照により援用されている。別のタイプの不揮発性メモリシステムは、ユーザデータの複数のセクタを格納するより大きなメモリセルブロックサイズを利用する。
【００１８】
メモリセルアレイの１つの構造が、サブアレイまたはセルの他のユニット内にあり、共通の消去ゲートを共有するメモリセルの１つまたは２つの行からブロックを都合よく形成する。本願明細書において参照により援用されているサンディスク  コーポレイションの米国特許第５，６７７，８７２号（特許文献１９）および第５，７１２，１７９号（特許文献２０）は、この構造の例を示す。２つのプログラムされたしきい値レベルのみを定義することにより各フローティングゲートセル中に１ビットのデータを格納することが現在最も一般的であるが、傾向は、３つ以上のフローティンのゲートトランジスタのしきい値範囲を設定することにより、各セル中に１ビットを超えるデータを格納することである。フローティングゲートあたり２ビットのデータ（４つのしきい値レベル範囲または状態）を格納するメモリシステムが現在利用可能であり、セルあたり３ビット（８つのしきい値レベル範囲または状態）、およびセルあたり４ビット（１６のしきい値レベル範囲）が将来のシステムのために検討されている。当然、各セル中に格納されるビット数が上昇するにつれて、データのセクタを格納するために必要とされるメモリセルの数は低下する。この傾向は、セル構造および一般的な半導体処理における改良に起因するアレイのスケーリングと組み合わされて、セルの行のセグメント化部分にメモリセルブロックを形成することを実用的にする。ブロック構造は、サンディスク  コーポレイションの米国特許第５，９３０，１６７号（特許文献２１）に記載されているように、２つの状態（セルあたり１つのデータビット）または何らかの複数、例えば４つの状態（セルあたり２つのデータビット）にあるメモリセルの各々の動作の選択を可能にするように形成することもできる。この特許は、その全体が本願明細書において参照により援用されている。
【００１９】
そのような不揮発性メモリの容量を増大させることに加え、そのようなメモリを、それらの性能を増大させかつエラーに対するそれらの感受性を減少させることにより改善することも探索されている。大きなブロック管理手法を利用する前述したようなメモリは、メモリ領域をより効果的に使うために、ガーベッジコレクションを含む、メモリのファイルシステムに関する多くのデータ管理手法を実行する。そのようなガーベッジコレクション方式は、メモリ中の１つ（またはより多く）の場所からデータを読み出すことおよびそのデータを別のメモリ場所に再書き込みすることを含むデータ再配置処理を伴う。（多くの前に援用されている参考文献に加え、ガーベッジコレクションは、例えば、Ｋ・イマミヤらによる「１０メガバイトのプログラミング速度を有する１２５ｍｍ2 １ＧｂのＮＡＮＤフラッシュメモリ」，ＩＥＥＥ固体回路ジャーナル，第３７巻，第１１号，２００２年１１月，１４９３〜１５０１頁 (“A 125-mm2 1-Gb NAND Flash Memory With 10-MByte/s Program Speed", by K. Imamiya et al., IEEE Journal of Solid-State Circuits, Vol. 37, No. 11, November 2002, pp. 1493-1501)（非特許文献１）においてさらに論じられている。この論文は、その全体が本願明細書において参照により援用されている。このデータ再配置時間は、すべてのガーベッジコレクションルーチンに対する主要な要因である。従来技術の方法は、データ再配置動作を、連続したデータ読み出し、次に、必要であれば新しい場所へデータを書き込む前の、データ保全性検査およびエラー訂正として説明し、その結果、データ転送およびベリファイの高く一定な性能の犠牲がある。データエラーの場合、書き込み前にデータを訂正するために余計な時間が費やされなければならない。
【００２０】
他の従来技術の方法は、データ保全性の事前検査なしで１つの場所から別の場所にデータを書き込むオンチップコピー機能を利用する。そのような方法は、例えば、Ｊ・リーらによる「０．１２μｍ技術を有する高性能な１ＧｂのＮＡＮＤフラッシュメモリ」，ＩＥＥＥ固体回路ジャーナル，第３７巻，第１１号，２００２年１１月，１５０２〜１５０９頁 (“High Performance 1-Gb NAND Flash Memory With 0.12μm Technology", by J. Lee et al., IEEE Journal of Solid-State Circuits, Vol.37, No. 11, November 2002, pp. 1502-1509)（非特許文献２）に記載されている。この論文は、その全体が本願明細書において参照により援用されている。保全性検査は、データ書き込みと同時に行われ、その結果、エラーがある場合、性能およびタイムアウト／待ち時間における高い犠牲と共にブロック全体の再書き込みの必要の確率が高くなる。
【００２１】
図３に示されている特定のオンチップコピー機構は、米国特許第６，２６６，２７３号（特許文献２２）により詳細に提示されている。この特許は、本願明細書において参照により援用されている。図３のステップ（１）により示されているように、ページのようなデータセットが、ソース場所から読み出し／プログラムスレーブデータレジスタに読み出される。図３に示されている構造は、そのデータレジスタのためにマスタ−スレーブ配置を用い、データセットの読み出されたコピーは、ステップ（２）においてマスタレジスタに転送される。ステップ（３）において、コピーされたデータセットは、それをマスタデータレジスタからコントローラに転送するのと並列にデスティネーション場所に再配置される。この手法は、データのコピーも、それを検査できるコントローラに転送すると同時に、オンチップ再配置を考慮する。
【００２２】
従来技術によれば、折々に、フラッシュメモリ媒体管理アルゴリズムがフラッシュメモリアレイ中の１つの場所から別の場所にデータをコピーする必要がある場合、これを達成するために用いられる２つの基本的な方法がある。第１の方法は、アレイからバッファにデータを読み出し、そのデータをコントローラに転送し、次にプログラミング前にコントローラからフラッシュ中の新しい場所に転送して戻すことである。第２の方法は、アレイからバッファにデータを読み出し、次に新しいアレイ場所中に直接プログラムして戻すことである。第２の方法は、オンチップコピーと呼ばれる。
【００２３】
第２の方法は、より短いコピー時間をもたらす。なぜならば、コントローラからフラッシュへの転送が皆無だからである。高レベルの読み出しおよび書き込み平列処理により、違いは重要になり得る。しかし、性能は柔軟性を犠牲にして得られる。オンチップコピー機構は現在、動作をプレーン内でのコピーに限定するので、２つの異なるチップ間または同じチップ上の２つのプレーン間でデータを転送することはできない。これは、どちらのデータも、それが同じチップの同じプレーン中の２つの場所の間で常にコピーされるように構成されなければならないこと、または別個の読み出しおよび書き込みが使用されなければならないことを意味する。後者のやり方は、データについてのソースおよびターゲット場所に従って変わる性能という結果になる。フラッシュチップにおける並列動作を可能にするために、潜在的に大量のバッファリングがコントローラにおいて必要とされる。
【００２４】
その結果、コントローラ中でデータをバッファする必要なく異なるプレーンまたはチップ間の再配置を可能にするようにデータ再配置動作を拡張できれば、そのようなメモリシステムの動作は大いに改善でき得る。これは、そのようなガーベッジコレクション動作がメモリの管理に多大な要求をする大きなブロックデータ構造に依存するメモリシステムについて特にあてはまる。
【特許文献１】米国特許第５，８９０，１９２号
【特許文献２】米国特許第６，４２６，８９３号
【特許文献３】米国特許第６，５６０，１４３号
【特許文献４】米国特許第６，７６３，４２４号
【特許文献５】米国特許出願第１０／８２６，８０１号
【特許文献６】米国特許出願第１０／８２６，７９６号
【特許文献７】米国特許第５，１７２，３３８号
【特許文献８】米国特許第５，６０２，９８７号
【特許文献９】米国特許第５，３１５，５４１号
【特許文献１０】米国特許第５，２００，９５９号
【特許文献１１】米国特許第５，２７０，９７９号
【特許文献１２】米国特許第５，４２８，６２１号
【特許文献１３】米国特許第５，６６３，９０１号
【特許文献１４】米国特許第５，５３２，９６２号
【特許文献１５】米国特許第５，４３０，８５９号
【特許文献１６】米国特許第５，７１２，１８０号
【特許文献１７】米国特許出願第０８／９１０，９４７号
【特許文献１８】米国特許出願第０９／３４３，３２８号
【特許文献１９】米国特許第５，６７７，８７２号
【特許文献２０】米国特許第５，７１２，１７９号
【特許文献２１】米国特許第５，９３０，１６７号
【特許文献２２】米国特許第６，２６６，２７３号
【特許文献２３】米国特許出願第１０／０８１，３７５号
【特許文献２４】米国特許出願第１０／８４６，２８９号
【特許文献２５】米国特許第６，１３４，１４５号
【特許文献２６】米国特許出願第１０／９１５，０３９号
【特許文献２７】米国特許出願第１０／８４１，３７９号
【特許文献２８】米国特許出願第１０／２８０，３５２号
【非特許文献１】Ｋ・イマミヤらによる「１０メガバイトのプログラミング速度を有する１２５ｍｍ2 １ＧｂのＮＡＮＤフラッシュメモリ」，ＩＥＥＥ固体回路ジャーナル，第３７巻，第１１号，２００２年１１月，１４９３〜１５０１頁
【非特許文献２】Ｊ・リーらによる「０．１２μｍ技術を有する高性能な１ＧｂのＮＡＮＤフラッシュメモリ」，ＩＥＥＥ固体回路ジャーナル，第３７巻，第１１号，２００２年１１月，１５０２〜１５０９頁
【発明の開示】
【００２５】
本発明の１つの主要な態様によれば、簡潔かつ一般的に、オンチップコピー処理は、異なるチップ上、同じチップ上の異なるプレーン上、または同じチップの同じプレーン上にあり得る２つのブロック間でデータがコピーされ得るように拡張される。より具体的には、ここで説明される方法は、メモリシステムにおけるどの２つの場所間でもデータがコピーされることを可能にする単一データコピー機構を提供する。コピーについての性能は、通常実施されるような従来のオンチップコピーについての性能と同じである。データ場所に対する制限を取り去ることにより、データをコピーする頻度を低減するアルゴリズム動作の改善を成し得る。
【００２６】
より具体的には、本発明は、オンチップコピーを、再配置されたデータセットをコントローラで一時的に格納する必要なく、チップ間コピーおよび同じチップ上のアレイ間のコピーに拡張する。説明する方法は、アレイが別個のデータバスを介してシステムコントローラと接続されるトポロジーにおいても同様に共通データバス上のアレイ間でのコピーに用いられ得る。特定のマルチバスの実施形態において、再配置されたデータセットは、コントローラにおいてソースアレイのバスとデスティネーションアレイのバスとの間で一度に１ワードずつ転送される。説明された場合のすべてをカバーするために統合コマンドのセットが示される。代表的な実施形態は、ＥＤＯ形タイミングを用いる。
【００２７】
本発明の別の態様によれば、転送されたページ中の選択されたワードのような、再配置されたデータの選択された部分は、コントローラにおいてオンザフライで更新され得る。例えば、これは、再配置処理の一部としてページのヘッダ部を更新するために使用できる。データセットを、ソースアレイの読み出しバッファからデスティネーションアレイの書き込みバッファに直接転送することに加え、データセットを、要望があれば、コントローラ中に同時にコピーすることができ、エラー検出および訂正動作をそれに対して実行できる。
【００２８】
代表的な実施形態において、再配置されたデータページのデータは、ソースバッファからデータバス上に一度に１ワードずつ置かれ、そこからそのデータは、同じサイクルの間にデスティネーションバッファにより読み出される。処理は、選択されたアレイにコマンドおよびソースアドレスを、選択されたデスティネーションアレイにコマンドおよびデスティネーションアドレスを発するコントローラから始まり、これらのアレイは、同じアレイ、同じチップ上または異なるチップ上の異なるプレーンであり得る。マルチチップの場合には、コマンドシーケンスは、同じバス上でアクティブな複数のチップを同時に有するという結果になる。次に、コントローラは、再配置されるべきページが一度に１ワードずつ転送されるにつれて、読み出しイネーブルおよび書き込みイネーブル信号を切り替える。完了と同時に、コントローラはデスティネーションおよびソースを必要に応じて無効にする。
【００２９】
本発明の付加的な態様、特徴、および利点は、添付図面と共に読まれるべきである代表的な実施形態の以下の説明に含まれる。
【発明を実施するための最良の形態】
【００３０】
第１の態様において、本発明は、２つの異なるチップ上、同じチップ上の２つのプレーン上、あるいは同じチップの同じプレーン上にあり得る２つのメモリブロックの間でデータがコピーされ得るようにするために、コピー動作を一般化する。その結果、ここで説明される方法は、フラッシュまたは他のメモリアレイにおけるどの２つの場所間でもデータがコピーされることを可能にする単一データコピー機構を提供する。より一般的なコピーについての性能は、従来技術において一般的に適用されるようなオンチップコピーについてと同じである。データ場所に対する制限を取り去ることにより、データをコピーする頻度を低減する改善されたアルゴリズム動作という結果になる。
【００３１】
一般に、ここで説明される方法は、メモリブロック中のデータが、
１）異なるチップ中、
２）同じチップの異なるプレーン中、または
３）同じチップの同じプレーン中、
にあり得る別のメモリブロックにコピーされることを可能にする。この機能性をサポートするため、フラッシュチップ内の制御論理およびデータパスは、従来技術におけるものに比べて変更される。この概念は、既存のフラッシュチップピンの文脈において記載されるが、システム統合は、変更されたインターフェイスを実施することにより容易にされ得る。しかし、インターフェイスに対するそのような変更は、既存のシステムとの互換性を取り去り、そのことは望ましいこともあれば望ましくないこともある。異なるチップへのコピーについて、以下の説明の最初の部分は、同じバス上の２つのチップ間のデータのコピーを考慮するのみである。コントローラの設計またはシステム構造の機能であってメモリチップの機能ではない、別個のバス上の２つのチップ間のコピーを可能する方式は、この説明の後の部分において検討される。
【００３２】
まず、異なるチップ間のオフチップコピーについての処理を説明する。図４は、小さいメモリシステムの概略図を示す。コントローラ５０１は、データバス５０２を介して第１のメモリ（ここではフラッシュ）チップ５１１および第２のメモリ（ここではフラッシュ）チップ５１２に接続される。共有された制御信号（アドレスラッチイネーブル（ＡＬＥ）、コマンドラッチイネーブル（ＣＬＥ）、読み出しイネーブル（ＲＥ）、書き込みイネーブル（ＷＥ）、およびチップイネーブル信号（ＣＥ１，ＣＥ２）も、明示的に示されるパスを有する。現実のシステムにおいて、フラッシュチップがただ１つあるいは３つ以上あり得るが、説明の目的のため、処理は当初、２つの別個のチップについて説明される。
【００３３】
いくらか単純化された実施のための一般的なコマンドの流れを例示する２つの例が以下に示され、現実のデバイスの詳細な動作は、これらの例と異なるかもしれない。これらの例には、インターフェイスタイミングのより詳細な検討が続く。
【００３４】
第１の例として、セクタをチップ１からチップ２にコピーする動作を検討する。これは図６に示され、以下の段階を有する。
１．コントローラは、ソースアレイ中の第１の場所からバッファにデータを読み出すためにチップ１にコマンドを送り、実施形態によっては、これらのバッファは、オフチップコピーのための特別なバッファであり得る。
２．コントローラは、オフチップコピーソースとしてチップを構成するためにチップ１にコマンドおよびアドレスバイトを送る。これは、チップ１を使用可能にし（＼ＣＥ１が低下）、コマンドラッチイネーブル（ＣＬＥ）を高くとり、コピーソース開始（ＣＳＳ）コマンドをＩ／Ｏ線上に置き、書き込みイネーブルを切り替えることにより実施される。アドレスについては、書き込みイネーブルを切り替える間に、アドレスラッチイネーブル（ＡＬＥ）が高く取られ、ソースアドレス（ＡＳ）がＩ／Ｏ線上に置かれる。アドレスバイトは、データのためのソースプレーンを決定する。
３．コントローラは、同様な方法でチップをオフチップコピーデスティネーションとして構成するためにチップ２にコマンドおよびアドレスバイトを送るが、今はチップ２を使用可能にする（＼ＣＥ２ロー）。アドレスバイトは、データのためのターゲットアドレス（例えば、プレーン、ブロック、ページ、および列）を決定する。
４．コントローラは、データセットを一度に１バイト（この例におけるバス幅に対応）ずつチップ１からチップ２に転送するために同期した方法でＲＥ（読み出しイネーブル）およびＷＥ（書き込みイネーブル）を切り替える。コントローラは、データをチップ１バッファからコントローラに同時に転送することもできる。オフチップコピーデスティネーションとして、チップ２は、アサートされているＣＥ２（チップ２イネーブル）なしでＷＥに応答するが、ＲＥを無視する。（データもコントローラに転送されれば、以下で論じられるように、コピーの間にコントローラはデータを変更し得る。これは、チップ２にコピーすることなくチップ１からデータを読み出すためにＲＥ（ＷＥハイ）上でパルスを駆動することにより達成される。データは、コントローラにおいて変更され、次に、ＷＥ（ＲＥハイ）上でパルスを駆動し、コントローラからデータバスを駆動することによってチップ２に転送される。これらの動作は、以下で論じられるタイミング図において示される。）
５．ひとたび転送が完了すると、コントローラは、オフチップコピーを終了させるためにコマンド（ＣＳＣおよびＣＤＣ）を各チップに送る。ＣＳＣコマンドがチップ１に必要とされないことがあり得る。チップ２の場合、このコマンドは、プログラミング動作を識別する。コマンドの範囲は、好ましくは、読み出しデータにおけるＥＣＣ障害の場合に用いられ得るコピー中止オプションをサポートできる。
この配置のもとで、チップ２は、デスティネーションとして指定され、デスティネーションアドレスを受信し、デスティネーションチップならびに同時に使用可能にされるソースチップという結果になり、すなわち、バス上でアクティブな複数のデバイスが同時にあることになる。チップ２のためのチップイネーブル信号は、実際のデータ転送の間アサートされない（＼ＣＥ２はハイ）。ソースチップのみが、そのイネーブルを明示的にアサートされる。転送されているデータはバス上に置かれ、ＷＥがハイに駆動されるので、デスティネーションチップは、バス上のデータを取り入れる。デスティネーションチップのためのイネーブル信号は、転送の終了を示すＣＤＣコマンドを受信するために再アサートされるのみである。図６およびデータセットの一部が転送の一部として変更される時のようなその変形例が以下でさらに論じられる。
【００３５】
１つのチップから別のチップへのセクタのコピーのこの議論に加え、ソースおよびデスティネーション場所の双方が同じチップにある以下の議論において、暗黙的な仮定は、デスティネーション場所が他の動作でビジーではないということである。しかし、デバイス設計によって、これらの手法は、前の動作からのデータのプログラミングでデスティネーションがビジーであり得る場合に容易に拡張できる。現在のプログラミング動作を完了する前に、非コピー動作の間に、後続のプログラミング動作のためのデータ転送を可能にする多くのデバイスが存在する。この種のパイプライン動作は、「キャッシュされた書き込み」として知られ、本発明のデータ再配置手法と組み合わせることができる。例えば、そのような機構を提供するメモリ設計において、キャッシュされたコピー動作を用いるデータ再配置は、読み出しがプログラムに割り込みをかけられるようにすることにより、単一のチップ内で達成できる。そのようなオーバーラップした動作に関するさらなる詳細が、２００２年２月２２日出願の米国特許出願第１０／０８１，３７５号（特許文献２３）、および２００４年５月１３日出願の米国特許出願第１０／８４６，２８９号（特許文献２４）、ならびに米国特許第６，１３４，１４５号（特許文献２５）に記載されている。これらの特許および特許出願は、本願明細書において参照により援用されている。
【００３６】
第２の例において、ソースおよびデスティネーション場所の双方は、チップ１中にある。これを図１１に示す。この機能をサポートするため、いくつかの実施形態は、メモリチップ中に余分のバッファリングを導入し得る。チップ中のバッファリングおよび論理によって、この方法は、１つのブロックからのデータがチップ中のどのような他の論理にも転送されるようにする。外部から見て、同じチップにコピーして戻すことは、チップ間でコピーすることと同一である。図６と図１１との比較から分かるように、図１１は、チップ２がイネーブルされておらず（＼ＣＥ２は、ハイに保たれる）、チップ１がデスティネーションおよびソースであり今はＣＤＣコマンドを受信するので、考え得るＣＳＣコマンドの必要が皆無であるという点で異なる。この処理は、オンチップおよびオフチップコピーの双方のための統合された処理を考慮するものであり、以下の通りである。
１．コントローラは、アレイからバッファにデータを読み出すためにコマンドをチップ１に送り、これらのバッファは、この目的のための特別なバッファであり得る。
２．コントローラは、オフチップコピーソースとしてチップを構成するためにチップ１にコマンドおよびアドレスバイトを送る。アドレスバイトは、データのためのソースプレーンを決定する。
３．コントローラは、チップをオフチップコピーデスティネーションとして構成するためにチップ１にコマンドおよびアドレスバイトを送る。アドレスバイトは、例えば、データのためのターゲットプレーン、ブロック、ページおよび列を決定する。
４．コントローラは、双方向データバッファを介してデータをチップ１からコントローラに、そしてチップ１に戻るように同時に転送するために、同期した方法でＲＥおよびＷＥを切り替えることもできる。コントローラは、コピーの間に、例１のステップ４において説明した同じ手法を用いてデータを変更し得る。これらの動作は、以下のタイミング図において示される。
５．ひとたび転送が完了すると、コントローラは、オフチップコピーを終了するためにコマンド（ＣＤＣ）をチップ１に送る。このコマンドのためのオプション範囲は、例１のステップ５におけるチップ２について同じである。
図１１およびその変形例も、以下でさらに論じられる。
【００３７】
図５は、図３に示されているやり方と同様なやり方で一般的な処理を例示する。図５は、メモリを構成するアレイのうちの２つを示す。これらのアレイは、破線で示されているように、異なるチップ上にあってもよく、または同じチップ上の２つの半自律アレイ（プレーン）であってもよい。データが同じプレーンに書き戻されるオンチップコピーの場合について、アレイ１およびアレイ２は同じものとして取り扱うことができ、データレジスタ１およびデータレジスタ２は、同じレジスタとして取り扱うことができる。
【００３８】
処理は、アレイ１中のソース場所からアレイ１と関連付けられたデータレジスタ１中にデータセットをコピーすることにより始まる。これは、単一のレジスタ、（図３におけるような）より一般的なマスタ−スレーブ配置、または何か他の配置とすることができる。これらの場合のいずれにおいても、データは、アレイからデータのコピーを受信できるレジスタの部分中に読み出され、次にデータのコピーが別のアレイまたはコントローラに転送され得る前に必要とされるどのようなその後の転送もなされる。（図３のステップ（２）におけるスレーブからマスタへのような、データレジスタ内のこれらの付加的な転送は、図５に明示的に示されていない。）次に、データのコピーは、デスティネーションアレイ２と関連付けられたデータレジスタ２に転送され、デスティネーション場所にデータをそこから書き込むことができるレジスタ中にデータを入れるために必要とされるデータレジスタ２内の必要とされるどのような転送も含む。
【００３９】
ソース場所から読み出されたデータも、検査されるべき、必要であれば、訂正されるべきコントローラに転送されるべきである。コントローラ中のバッファへのこの転送は、データレジスタ間の転送と同時に生じることができ、その結果、（２）としても表示される。エラーがデータセット中に発見され、そのエラーが訂正されるべきであれば、コントローラのバッファ中のデータセットのコピーは、誤り訂正符号（ＥＣＣ）を用いて訂正される。ひとたび訂正されると、データセットは、訂正された値が新しい場所に書き込まれるように、ステップ（２’）においてデータレジスタ２に送られ得る。
【００４０】
コントローラへのこの転送が含まれている場合、この転送は、（図３に関して前に説明し、米国特許第６，２６６，２７３号（特許文献２２）でさらに説明されているものと同様に）すべての再配置の一部であるか、またはいくつかの転送についてのみであり得る。本発明の様々な態様と組み合わせることができるデータ再配置動作と関連した他の手法は、本願明細書において参照により援用されている２００４年５月１３日出願の米国特許出願第１０／８４６，２８９号（特許文献２４）、および２００４年８月９日出願の米国特許出願第１０／９１５，０３９号（特許文献２６）、ならびに前に参照により援用されている米国特許第６，２６６，２７３号（特許文献２２）で見出される。
【００４１】
図７に関して以下で論じられるように、場合によっては、データセットの大部分がソースからデスティネーションへ直接転送されても、データセットの一部が変更され得る。例えば、ヘッダが変更され得る。本発明の別の態様は、これをオンザフライで行うことを可能にし、その結果、データレジスタ１からのデータレジスタ２への直接転送は転送の半ばで休止され、直接転送が再開し得る後に、コントローラからのいくつかの変更されたワードが挿入される。
【００４２】
ソースアレイの読み出しバッファから直接的であろうと、（訂正された形で）コントローラからであろうと、またはソースアレイの読み出しバッファから直接的であるがデータセットのいくつかのワードが変更されていようと、ひとたびデータのコピーがデスティネーションアレイの書き込みレジスタ中に入ると、そのコピーは、デスティネーション場所に書き込まれる。
【００４３】
本発明の様々な態様が、代表的な実施形態のいくつかのタイミング図によってさらに例示される。図６に戻ると、これは、前述した第１の例において説明されたような２つのチップ間の基本的なコピー動作を示す。このシーケンスの開始時に、データはチップ１のアレイからその内部バッファに読み出されている。コマンドＣＳＳ（コピーソース開始）および（ソース）アドレスＡＳは、転送のためのソースになるプレーンを定義する。コマンドＣＤＳ（コピーデスティネーション開始）および（デスティネーション）アドレスＡＤは、チップ２をチップ間コピーデスティネーションとして選択し、データが書き込まれるチップ内のアドレス（例えば、プレーン、ブロック、ページ、および列）を定義する。この場合におけるデータ転送は、データのどのような変更も伴わない。データが転送された後、転送を完了するためにコマンドがチップ１およびチップ２（ＣＳＣとＣＤＣ）に発せられる。ＣＳＣおよびＣＤＣは、それぞれコピーソース完了およびコピーデスティネーション完了を意味する。
【００４４】
図７は、転送の間にデータセットの中ほどのいくつかのワードが変更される場合を示す。例えば、これは、データセット全体をコントローラに転送する必要なく、転送の一部としてオンザフライで更新されるべき、タイムスタンプのようなヘッダ部を考慮する。図７は、かなり標準的なフラッシュメモリインターフェイスタイミングについての処理を示す。変更されるワードについて、ＷＥパルスは、データがソースチップから読み出される間、直接的なバッファ間転送を中断するために停止される。このデータは、コントローラにおいて変更され、次に、ＷＥのみをパルス化することによってデスティネーションチップに転送される。この図は、４つのワードが変更されるのを示す。ワードをいくつでもこの方法で変更することができ、転送における変更されたデータの場所に対する制約は皆無である。
【００４５】
図８は、転送タイミングを、再度典型的なフラッシュインターフェイスタイミングに基づいて、より詳細に示す。この図は、タイミングスキューの管理、すなわち＼ＷＥおよび＼ＲＥの上昇の調整における特定の詳細を例示する。これは、Ｉ／Ｏ線上に示されているように、データワードが、ソースバッファからデスティネーションバッファへ、ソースからコントローラへ、およびコントローラからデスティネーションへ直接行く３つの場合を示す。この図において、ｔREA （読み出しアクセス時間）は、読み出しが可能にされた時からデータがバス上にあるまでの時間であり、ｔOH（出力保持時間）は、フラッシュチップがＲＥの上昇エッジの後にＩ／Ｏを駆動し続ける時間である。かなりのスキューが存在すれば、データがデスティネーションチップに正しくストロボされることを保証するために、読み出しパルスを伸ばすことが必要になり得る。読み出しサイクルがどの程度減速される必要が（少しでも）あるかは、容量性ローディング、フラッシュチップＩ／Ｏ線の出力駆動力、ならびにコントローラ＼ＲＥおよび＼ＷＥ出力の駆動力およびタイミング解像度を含む多くの要因に依存し得る。理論的には、従来の読み出し転送速度に等しい転送速度を達成することが可能なはずである。
【００４６】
別の実施形態において、これらのタイミングの発行は、ＥＤＯ（拡張駆動出力) (extended drive output) ＤＲＡＭインターフェイスが動作するのと同様に、ＲＥが高い間、ソースフラッシュチップにＩ／Ｏバスを駆動し続けさせることにより克服でき得る。（ソースからデスティネーションへの直接コピーだけのための）このＥＤＯ様方式のためのタイミングを、いくつかのワードについて図９に示してある。相対的なタイミング、すなわち＼ＲＥおよび＼ＷＥパルスは、現在は重要度がずっと小さく、ずっと大きな転送速度を達成することが可能なはずである。この実施形態において、＼ＲＥおよび＼ＷＥ波形は、互いに傾斜しておらず、一緒に上昇および下降する。このＥＤＯ様タイミングも、おそらく転送モードを選択するために特別なコマンドを用いることにより、従来の読み出しのための転送速度を増大させるために用い得る。ＥＤＯ様読み出しタイミングを用いると、５０ＭＢ／秒以上の転送速度が達成可能なはずである。Ｉ／Ｏ線上で、Ｄｎ，Ｄｎ＋１，Ｄｎ＋２，．．．は、データセット中の連続したワードを意味し、Ｘは、その線が駆動されてはいるが、未定義であることを示す。
【００４７】
ＥＤＯ様タイミングを用いると、ソースフラッシュチップは、ＡＬＥ、ＣＬＥおよび＼ＣＥが低い場合に、＼ＲＥの立下がり縁上のそのＩ／Ｏドライバを使用可能にする。フラッシュチップ出力は、ＡＬＥと同じくらい長く連続的に駆動され、ＣＬＥおよび＼ＣＥは低いままである。
【００４８】
ＥＤＯ様読み出しタイミング中にいずれかのデータを変更する必要があれば、フラッシュチップ出力は機能を一時的に抑止され得る。そのような動作のためのタイミングが、図１０に示され、この図は図８と同じ３つの場合を示す。
【００４９】
図６〜１０は、２つの異なるチップ間をコピーする場合をカバーする。図１１に戻ると、同じチップ上の２つの場所間のコピーの第２の場合が示してある。以前と同様に、例示されるシーケンスは、データがアレイからバッファに転送された後に始まる。代表的な実施形態において、コピーを開始するために２つのコマンドが必要であるが、今回は、それらのコマンドは、前述したやり方で同じチップに発せられる。データ転送が完了した後、コピーを終了するために単一のコマンドで十分である。
【００５０】
データ転送の間にデータ変更が全くなければ、ＥＤＯ様読み出しタイミングのシーケンスは、図６または図１１についてとほぼ同じに見える。データが変更される場合、ソースチップへのＣＥ線の制御は、変更される必要がある。図１２は、図７に対応し、２つのチップ間のデータの（変更を伴う）コピーを示すが、今回はＥＤＯ様読み出しタイミングを用いる。この場合では、データがコントローラからデスティネーションデバイスに転送されるので、＼ＣＥ１も高く取られ得る。
【００５１】
これまで説明してきたような方式を用いると、データのブロックをコピーするための最適性能は、最大アレイ読み出しおよびアレイプログラミング並列処理が達成できれば到達されるにすぎない。プレーンへのデータの整列が全く制約されなければ、何らかの形のキャッシュされた読み出し動作を用いるバッファ読み出しによりアレイ読み出しがパイプラインされるようにすることは有用であり得る。現行のキャッシュされた読み出しは一般に、順次アドレス上で動作し、各プレーン中に２つのバッファがある場合、第１の読み出しからデータを転送する前に１つ以上のプレーン上で第２のアレイの読み出しを開始することが可能なはずである。このように、アレイの読み出しは、データ転送と並列に動作し得る。
【００５２】
代表的な実施形態について、フラッシュチップ内のインターフェイス論理は、説明した方法をサポートするために、典型的なインターフェイス論理から変更され得る。変更の程度は、必要とされる最適化のレベルに依存し得る。最も単純な方式は、２つのチップ間のコピーを可能にするのみであり、これは現行のバッファ構造を利用でき得る。ソースチップへコピーして戻すことをサポートするため、バッファ構造を変更する必要がある場合があり、いくつかの実施形態において、付加的なバッファが用いられ得る。データ転送を伴うアレイ読み出しのパイプライ化は、場合によっては、現行の設計において提供されるバッファに加えて余分のバッファを用い得る。
【００５３】
説明されている方法は、データをオンザフライで検査および変更すると同時に、データの非常に柔軟で高性能な再配置を可能にする。付加的な実施形態において、すべての場合において最適データコピーを可能にするさらなる拡張をアレイ読み出し動作に適用でき得る。場合によっては、これらの方法は、フラッシュメモリ制御論理の動作の変化を用い得る。
【００５４】
説明はこれまで、データ再配置が異なるチップ上のアレイ間のものである場合、同じバスがチップを互いに接続すると仮定してきた。共通のデータバスを共有する２つのメモリチップ間でデータをコピーするために説明した方法は、別個のバス上のメモリチップ間のデータのコピーに拡張できる。これは、例えば、ソースおよびデスティネーションメモリアレイが同じバス上になく、別個のデータバスを介してコントローラと接続される時の場合であり得る。コントローラの設計を変更することにより、説明されている方法を、この新しい構造をカバーするように拡張することができ得る。
【００５５】
図１３は、２つのフラッシュデータバス（６２１、６２２）および重複した制御信号のセットを有する単純なシステムを示す。現実のシステムは２つを超えるバスを持ち得る。コントローラ６０１は、２つのメモリチップ（６１１，６１２）に接続される。チップ１（６１１）とチップ２（６１２）との間でデータをコピーするために、前述した単一バスの場合と同じコマンドのシーケンスが発せられる。しかし、チップ６１１からバス６２１上に置かれたデータはチップ６１２に直接アクセスできないので、そのデータは、最初にバス６２２上に転送されなければならない。コントローラ６０１は、バス１（６２１）上で読み出されたデータをバス２（６２２）に１サイクル遅れて転送するようにセットアップされる。従って、データセットの各ワードは、ソースチップに接続されたバス上に各ワードが置かれて１サイクル後に、デスティネーションチップにとり利用可能になる。それ自体転送されているデータセットは、コントローラにおいて全体としてバッファされることは決してなく、単にスイッチ６０３を一度に１ワードずつ通過するだけである。このコピー機構は、現行の設計のフラッシュチップ間で用いることができ得る。クロスバースイッチ６０３の設計は、必要とされる柔軟性およびバスの数に依存し得る。例えば、実施形態によっては、例えば４つのバスを有し、２つの対のバスのペア間での同時コピーを有することが可能であり得る。
【００５６】
図１４は、ＥＤＯ様読み出しタイミングが用いられ、図９の単一バスの場合に対応すると仮定して図１３のシステムについてのタイミングを示す。必要であれば、従来の読み出しタイミングも用い得る。別個の読み出しおよび書き込みイネーブル信号が現在、各バスについて含まれ、図１４の＼ＲＥ１および＼ＷＥ２が図９における＼ＲＥおよび＼ＷＥのそれぞれの場所を取っている一方で、＼ＲＥ２および＼ＷＥ１の双方は、処理全体についてハイのままである。Ｉ／Ｏ線上に示されているように、クロスバースイッチにおける遅延により、ワードＤｎがバス６２２上にある場合にワードＤｎ＋１はバス６２１上にあり、データセットの他のワードについて同様である。その結果、チップ２への書き込みが開始し、チップ１からの読み出しより１サイクル遅れて終了する。データ変更は、必要に応じて書き込みまたは読み出しサイクルを中断することにより可能にされる。チップ２への書き込みは、チップ１からの読み出しにより効果的に隠される。
【００５７】
バス間にクロスバースイッチの直接接続を付加することにより、関連のあるフラッシュバスの数とは無関係にフラッシュメモリアレイ中のいずれか２つの場所間でデータをコピーするために単一のプロトコルを用いることが可能になる。単一のバスの場合と同様に、データセットの選択された部分は、図７および図１２に示されている拡張と同様な図１４への拡張により、転送処理の一部として変更できる。
【００５８】
前述したように、これまでの議論は、フラッシュＥＥＰＲＯＭメモリセルに基づく実施形態に主に言及し、電荷記憶素子として導電性フローティングゲートを利用するセルのタイプに関して説明してきた。しかし、本発明の様々な態様は、本願明細書において参照により援用されている２００４年５月７日出願の米国特許出願第１０／８４１，３７９号（特許文献２７）に記載されている（薄膜、ＭＲＡＭ、ＦＲＡＭ、ＮＭＯＳなどの）様々な代替の不揮発性メモリ技術と組み合わせて用いることができる。例えば、本発明は、フローティングゲートの代わりに、個々のメモリセル中の記憶素子として、電荷トラッピング誘電体を用いるシステムにおいても実施され得る。誘電体記憶素子も、本願明細書において参照により援用されている２００２年１０月２５日出願の米国特許出願第１０／２８０，３５２号（特許文献２８）でさらに論じられている。
【００５９】
本発明を様々な代表的な実施形態に関して説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００６０】
【図１】メモリ制御回路、データおよびアドレスレジスタを備える典型的な従来技術のフラッシュＥＥＰＲＯＭメモリアレイのブロック図である。
【図２】図１のメモリをシステムコントローラと共に利用する構造を例示する。
【図３】従来技術におけるオンチップコピーシーケンスの例を示す。
【図４】代表的な実施形態のメモリ−コントローラ接続を示す。
【図５】一般化したオフチップコピーシーケンスの概略図である。
【図６】１つの実施形態による２つのチップ間のコピーのためのコマンドシーケンスである。
【図７】典型的なフラッシュインターフェイスタイミングを用いるデータ変更によるチップ間コピーの例を示す。
【図８】典型的なフラッシュインターフェイスタイミングに基づくデータ転送タイミングの例を示す。
【図９】ＥＤＯ様読み出しタイミングに基づくデータ転送タイミングの例を示す。
【図１０】ＥＤＯ様読み出しタイミングによるデータ変更の例を示す。
【図１１】同じチップ上の２つの場所間のコピーを示す。
【図１２】ＥＤＯ様読み出しタイミングによるデータ変更の例を示す。
【図１３】マルチバスシステムの例のメモリ−コントローラ接続を示す。
【図１４】ＥＤＯ様読み出しタイミングを用いるマルチバスコピーの例である。
【図１】
2008524748.tif 000003
【図２】
2008524748.tif 000004
【図３】
2008524748.tif 000005
【図４】
2008524748.tif 000006
【図５】
2008524748.tif 000007
【図６】
2008524748.tif 000008
【図７】
2008524748.tif 000009
【図８】
2008524748.tif 000010
【図９】
2008524748.tif 000011
【図１０】
2008524748.tif 000012
【図１１】
2008524748.tif 000013
【図１２】
2008524748.tif 000014
【図１３】
2008524748.tif 000015
【図１４】
2008524748.tif 000016
【手続補正書】
【提出日】平成19年10月23日(2007.10.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリシステムにおいて、
メモリであって、
複数の半自律メモリアレイと、
各々がそれぞれの半自律メモリアレイに関連付けられた対応する複数の読み出し／書き込みバッファと、を含む、メモリと、
メモリ中に格納されたデータを管理し、メモリシステム内のデータの転送を制御するためのコントローラであって、前記コントローラは、前記アレイのうちの任意のものをソースアレイとして選択し、前記アレイの他の任意のものをデスティネーションアレイとして選択することができ、かつデータのページを転送の一部としてコントローラ中に一時的に格納することなく、前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記データのページの転送を実施することができ、前記ソースおよびデスティネーションバッファは、コントローラによりアクセス可能な共通データバスに接続可能である、コントローラと、
を備えるメモリシステム。
【請求項２】
メモリシステムにおいて、
メモリであって、
複数の半自律メモリアレイと、
各々がそれぞれの半自律メモリアレイに関連付けられた対応する複数の読み出し／書き込みバッファと、を含む、メモリと、
メモリ中に格納されたデータを管理し、メモリシステム内のデータの転送を制御するためのコントローラであって、前記コントローラは、前記アレイのうちの任意のものをソースアレイとして選択し、前記アレイの他の任意のものをデスティネーションアレイとして選択することができ、かつデータのページを転送の一部としてコントローラ中に一時的に格納することなく、前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記データのページの転送を実施することができ、前記ソースおよびデスティネーションバッファは、共通データバスには接続可能でなく、コントローラには別個のデータバスにより接続可能である、コントローラと、
を備えるメモリシステム。
【請求項３】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションアレイは、同じチップ上に形成されるメモリシステム。
【請求項４】
請求項１記載のメモリシステムにおいて、
前記ソースおよびデスティネーションアレイは、異なるチップ上に形成されるメモリシステム。
【請求項５】
請求項２記載のメモリシステムにおいて、
データは、コントローラ内で前記別個のデータバス間で転送されるメモリシステム。
【請求項６】
請求項１記載のメモリシステムにおいて、
前記転送は、ＥＤＯ形タイミングを用いて実行されるメモリシステム。
【請求項７】
請求項１記載のメモリシステムにおいて、
コントローラが、前記転送の一部として、コントローラ中の前記データのページの選択された部分を変更できるメモリシステム。
【請求項８】
請求項１記載のメモリシステムにおいて、
転送の一部としてデータのページをコントローラ中に一時的に格納することなく、前記データのページの前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記転送を実施するのと同時に、コントローラが、前記データのページをコントローラにコピーし、そこで前記ページのコピーに対してエラー検出および訂正動作を実行できるメモリシステム。
【請求項９】
請求項８記載のメモリシステムにおいて、
前記ページのコピーに対するエラー検出および訂正動作の実行に続いて、コントローラは、前記ページの訂正されたコピーを前記デスティネーションアレイのそれぞれのバッファに転送できるメモリシステム。
【請求項１０】
請求項１記載のメモリシステムにおいて、
デスティネーションアレイがプログラミング動作でビジーな場合、コントローラが、前記データのページを前記デスティネーションアレイのバッファに転送できるメモリシステム。
【請求項１１】
メモリシステムにおいて、
関連付けられた読み出し／書き込みバッファを各々有する複数の半自律メモリアレイと、
メモリシステム中に格納されたデータを管理し、メモリシステム内のデータの転送を制御するためのコントローラと、
コントローラとメモリアレイとの間のデータの転送のために、コントローラおよびメモリアレイに接続可能なバスであって、前記コントローラは、データ転送動作のために、複数のアレイを選択して同時にアクティブにすることができる、バスと、
を備えるメモリシステム。
【請求項１２】
請求項１１記載のメモリシステムにおいて、
コントローラコマンドに応答して、前記同時にアクティブなアレイのうちの第１のアレイがソースとして働き、前記同時にアクティブなアレイのうちの第２のアレイが、任意のクロックサイクルの間、前記バス上に置かれたデータのためのデスティネーションとして働くメモリシステム。
【請求項１３】
メモリシステムを動作する方法であって、前記メモリシステムは、対応する読み出し／書き込みバッファを各々有する複数の半自律メモリアレイと、メモリコントローラとを含み、前記バッファは、コントローラによりアクセス可能な共通データバスに接続可能である、メモリシステムを動作する方法において、
アレイのうちの第１のアレイをソースとしてコントローラにより選択するステップと、
アレイのうちの第２のアレイをデスティネーションとしてコントローラにより選択するステップであって、第１のアレイが第２のアレイとは異なり、第１および第２のアレイが前記複数のアレイのうちのいずれとすることもできる、選択するステップと、
データセットをコントローラ中に一時的に格納することなく、前記データセットを、前記バスを介して、ソースアレイに対応するバッファからデスティネーションアレイに対応するバッファに転送するステップと、
を含むメモリシステムを動作する方法。
【請求項１４】
請求項１３記載のメモリシステムを動作する方法において、
前記データセットは、一度に１サブユニットずつ転送され、前記転送するステップは、
コントローラ中の前記サブユニットのうちの選択されたサブユニットを変更するステップを含む方法。
【請求項１５】
請求項１４記載のメモリシステムを動作する方法において、
前記データセットをデスティネーションアレイに対応するバッファに転送するステップと同時に、前記データセットのコピーをコントローラ中に格納するステップをさらに含む方法。
【請求項１６】
請求項１５記載のメモリシステムを動作する方法において、
前記データセットのコピーをコントローラ中に格納するステップに続いて、前記データセットに対してエラー検出および訂正動作を実行するステップをさらに含む方法。
【請求項１７】
請求項１６記載のメモリシステムを動作する方法において、
前記データの訂正されたコピーを、デスティネーションアレイに対応するバッファに転送するステップをさらに含む方法。
【請求項１８】
請求項１３記載のメモリシステムを動作する方法において、
前記転送するステップは、ＥＤＯ形タイミングを用いて実行される方法。
【請求項１９】
請求項１３記載のメモリシステムを動作する方法において、
前記データセットは、一度に１サブユニットずつ転送され、前記転送するステップは、
前記データセットを、１サイクルに１サブユニットずつ、ソースアレイに対応するバッファから前記バス上に書き込むステップと、
前記バス上に書き込まれた前記サブユニットを、前記サブユニットが前記バス上に書き込まれるのと同じサイクルの間、デスティネーションアレイに対応するバッファに読み出すステップと、
を含む方法。
【請求項２０】
対応する読み出し／書き込みバッファを各々有する複数の半自律メモリアレイと、メモリコントローラとを含むメモリシステムを動作する方法において、
アレイのうちの第１のアレイをソースとしてコントローラにより選択するステップと、
アレイのうちの第２のアレイをデスティネーションとしてコントローラにより選択するステップであって、第１のアレイが第２のアレイとは異なり、第１および第２のアレイが前記複数のアレイのうちのいずれとすることもできる、選択するステップと、
データセットをコントローラ中に一時的に格納することなく、前記データセットをソースアレイに対応するバッファからデスティネーションアレイに対応するバッファに転送するステップであって、前記データセットは、一度に１サブユニットずつ転送され、前記ソースおよびデスティネーションアレイは、別個の、それぞれの第１および第２のデータバス上のコントローラに接続可能である、前記転送するステップは、
前記データセットを、１サイクルに１サブユニットずつ、ソースアレイに対応するバッファから前記第１のバス上に書き込むステップと、
前記サブユニットを前記コントローラ中で第１のバスから第２のバスへ連続的に転送するステップと、
前記第２のバス上に転送された前記サブユニットを、デスティネーションアレイに対応するバッファに読み出すステップと、を含む、転送するステップと、
を含むメモリシステムを動作する方法。
【請求項２１】
請求項２０記載のメモリシステムを動作する方法において、
前記サブユニットを前記コントローラ中で第１のバスから第２のバスへ連続的に転送するステップは、１サイクル遅延させて実行される方法。
【請求項２２】
請求項１３記載のメモリシステムを動作する方法において、
前記データセットをソースアレイに対応するバッファからデスティネーションアレイに対応するバッファへ転送するステップは、デスティネーションアレイがプログラミング動作でビジーな場合に実行される方法。
【請求項２３】
請求項２記載のメモリシステムにおいて、
コントローラが、前記転送の一部として、コントローラ中の前記データのページの選択された部分を変更できるメモリシステム。
【請求項２４】
請求項２記載のメモリシステムにおいて、
転送の一部としてデータのページをコントローラ中に一時的に格納することなく、前記データのページの前記ソースおよびデスティネーションアレイのそれぞれのバッファ間での前記転送を実施するのと同時に、コントローラが、前記データのページをコントローラにコピーし、そこで前記ページのコピーに対してエラー検出および訂正動作を実行できるメモリシステム。
【請求項２５】
請求項２４記載のメモリシステムにおいて、
前記ページのコピーに対するエラー検出および訂正動作の実行に続いて、コントローラが、前記ページの訂正されたコピーを前記デスティネーションアレイのそれぞれのバッファに転送できるメモリシステム。
【請求項２６】
請求項２記載のメモリシステムにおいて、
デスティネーションアレイがプログラミング動作でビジーな場合、コントローラが、前記データのページを前記デスティネーションアレイのバッファに転送できるメモリシステム。
【請求項２７】
請求項２０記載のメモリシステムを動作する方法において、
前記転送するステップは、コントローラ中の前記サブユニットのうちの選択されたサブユニットを変更するステップを含む方法。
【請求項２８】
請求項２７記載のメモリシステムを動作する方法において、
前記データセットをデスティネーションアレイに対応するバッファに転送するステップと同時に、前記データセットのコピーをコントローラ中に格納するステップをさらに含む方法。
【請求項２９】
請求項２８記載のメモリシステムを動作する方法において、
前記データセットのコピーをコントローラ中に格納するステップに続いて、前記データセットに対してエラー検出および訂正動作を実行するステップをさらに含む方法。
【請求項３０】
請求項２９記載のメモリシステムを動作する方法において、
前記データの訂正されたコピーを、デスティネーションアレイに対応するバッファに転送するステップをさらに含む方法。
【請求項３１】
請求項２０記載の方法において、
前記データセットをソースアレイに対応するバッファからデスティネーションアレイに対応するバッファへ転送するステップは、デスティネーションアレイがプログラミング動作でビジーな場合に実行される方法。
【国際調査報告】
2008524748.tif 000017
2008524748.tif 000018
2008524748.tif 000019