(57)【特許請求の範囲】
【請求項１】
直列に相互接続され、それぞれがページバッファおよびメモリセルを有し、それぞれが固有のデバイスアドレスを有する複数のメモリデバイスを含むメモリ相互接続を制御するための装置であって、
前記複数のメモリデバイスのそれぞれは入力接続と出力接続を有し、１つのメモリデバイスの出力接続は後続のメモリデバイスの入力接続に結合され、最後のメモリデバイスの出力接続は前記装置に結合され、
データを記憶するためのデータストレージと、データプロセッサを備え、
前記データプロセッサは、
デバイス識別子を前記メモリ相互接続の複数のメモリデバイスに送信することによって、前記複数のメモリデバイスのうちの１つのメモリデバイスと他のメモリデバイスを選択することであって、前記メモリデバイスが前記デバイス識別子と自身の固有のデバイスアドレスを比較して、自身を、選択されるメモリデバイスとして特定すること、
前記複数のメモリデバイスのうちの前記選択されたメモリデバイスの前記ページバッファおよび前記複数のメモリデバイスのうちの前記他のメモリデバイスの前記ページバッファに前記データストレージに記憶されたデータを書き込むこと、
前記選択されたメモリデバイスに、そのページバッファ内に書き込まれた前記データをそのメモリセルにプログラムするよう命令すること、
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定すること、
前記データのプログラミングが失敗した場合、前記他のメモリデバイスのページバッファから前記データを読み出すことにより、前記他のメモリデバイスの前記メモリセルに前記書き込まれたデータをプログラムすることなく前記他のメモリデバイスの前記ページバッファから前記データを読み戻すことであって、前記読み出されたデータが前記他のメモリデバイスの出力接続を介して、
後続のメモリデバイスの入力接続へ転送され、さらに前記メモリ相互接続のメモリデバイスを介して前記装置へ伝搬される、または、
前記装置へ転送されること、により、
前記データのミラーバックアップを用いたページプログラム動作を実行するように構成される装置。
【請求項２】
前記データストレージは、前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファに前記データを書き込む前に前記データを記憶するように構成される請求項１に記載の装置。
【請求項３】
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定する前に、前記データが記憶されている前記データストレージ内の空間を解放するようにさらに構成される、請求項2に記載の装置。
【請求項４】
前記データプロセッサは、前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定する前に別の動作を実行するように構成される、請求項3に記載の装置。
【請求項５】
前記メモリ相互接続の複数のメモリデバイスのうちの第1のメモリデバイスと接続するための出力接続と、
前記メモリ相互接続の複数のメモリデバイスのうちの前記最後のメモリデバイスと接続するための入力接続とをさらに備える、請求項1に記載の装置。
【請求項６】
前記データプロセッサは、前記出力接続を介して前記データを伝送することにより、前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファに前記データを書き込むように構成され、
前記データプロセッサは、前記出力接続を介して読取りコマンドを伝送し、前記読取りコマンドに応答して、前記入力接続を介して前記データを受け取ることにより、前記他のメモリデバイスの前記ページバッファから前記データを回復するように構成される、請求項5に記載の装置。
【請求項７】
前記データプロセッサは、
前記出力接続を介して読取り状況コマンドを伝送し、前記読取り状況コマンドに応答して、前記入力接続を介して前記選択されたメモリデバイスの前記ページバッファからプログラム状況を受け取ること、および、
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを前記プログラム状況に基づいて決定することにより、
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定するように構成される、請求項5に記載の装置。
【請求項８】
前記データプロセッサは、
前記データを回復すると、前記選択されたメモリデバイスの前記メモリセルに、ただし異なるアドレスで前記データをプログラムするよう再試行すること、および
前記データを回復すると、他の選択されたメモリデバイスの前記メモリセルに前記データをプログラムするよう試行することのうちの少なくとも1つを実行するように構成される、請求項2に記載の装置。
【請求項９】
前記選択されたメモリデバイスの前記ページバッファに前記データを書き込むための、前記選択されたメモリデバイスにアドレス指定された第1のコマンドを伝送し、前記他のメモリデバイスの前記ページバッファに前記データを書き込むための、前記他のメモリデバイスにアドレス指定された第2のコマンドを伝送するように、前記データプロセッサが構成される、請求項1に記載の装置。
【請求項１０】
前記データプロセッサは、前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファの両方に前記データを書き込むための単一のコマンドを伝送するように構成される、請求項1に記載の装置。
【請求項１１】
前記データプロセッサは、
前記メモリデバイスのすべてに、前記選択されたメモリデバイスにアドレス指定されたコマンドを前記他のメモリデバイスが処理することになる複数アドレスモードに入るように通知するための第1のメッセージをブロードキャストすること、ならびに、
前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファの両方に前記データを書き込むための前記単一のコマンドを送出すること、ならびに、
前記メモリデバイスのすべてに前記複数アドレスモードを抜け出るように通知するための第2のメッセージをブロードキャストすることにより、
前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファの両方に前記データを書き込むように構成される、請求項10に記載の
装置。
【請求項１２】
前記第1のメッセージは、書込みリンクコンフィギュレーションレジスタコマンドであり、
前記第2のメッセージは、書込みリンクコンフィギュレーションレジスタコマンドである、請求項11に記載の装置。
【請求項１３】
直列に相互接続され、それぞれがページバッファおよびメモリセルを有し、それぞれが固有のデバイスアドレスを有する複数のメモリデバイスを含むメモリ相互接続と、
前記複数のメモリデバイスを制御する装置とを備え、
前記複数のメモリデバイスのそれぞれは入力接続と出力接続を有し、１つのメモリデバイスの出力接続は後続のメモリデバイスの入力接続に結合され、
前記メモリ相互接続の最後のメモリデバイスの出力接続は前記装置に結合され、
前記装置は、
データを記憶するためのデータストレージと、データプロセッサを備え、
前記データプロセッサは、
デバイス識別子を前記メモリ相互接続の複数のメモリデバイスに送信することによって、前記複数のメモリデバイスのうちの１つのメモリデバイスと他のメモリデバイスを選択することであって、前記メモリデバイスが前記デバイス識別子と自身の固有のデバイスアドレスを比較して、自身を、選択されるメモリデバイスとして特定すること、
前記複数のメモリデバイスのうちの前記選択されたメモリデバイスの前記ページバッファおよび前記複数のメモリデバイスのうちの前記他のメモリデバイスの前記ページバッファに前記データストレージに記憶されたデータを書き込むこと、
前記選択されたメモリデバイスに、そのページバッファ内に書き込まれた前記データをそのメモリセルにプログラムするよう命令すること、
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定すること、
前記データのプログラミングが失敗した場合、前記他のメモリデバイスのページバッファから前記データを読み出すことにより、前記他のメモリデバイスの前記メモリセルに前記書き込まれたデータをプログラムすることなく前記他のメモリデバイスの前記ページバッファから前記データを読み戻すことであって、前記読み出されたデータが前記他のメモリデバイスの出力接続を介して、
後続のメモリデバイスの入力接続へ転送され、さらに前記メモリ相互接続のメモリデバイスを介して前記装置へ伝搬される、または、
前記装置へ転送されること、により、
前記データのミラーバックアップを用いたページプログラム動作を実行するように構成されるシステム。
【請求項１４】
前記データストレージは、
前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファに前記データを書き込む前に前記データを記憶するように構成される請求項13に記載のシステム。
【請求項１５】
前記装置は、前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定する前に、前記データが占有している前記データストレージ内の空間を解放するようにさらに構成される、請求項14に記載のシステム。
【請求項１６】
前記装置は、
前記複数のメモリデバイスのうちの第1のメモリデバイスと接続された出力接続と、
前記複数のメモリデバイスのうちの前記最後のメモリデバイスと接続された入力接続とをさらに備える、請求項13に記載のシステム。
【請求項１７】
直列に相互接続され、それぞれがページバッファおよびメモリセルを有し、それぞれが固有のデバイスアドレスを有する複数のメモリデバイスを含むメモリ相互接続を制御するための方法であって、
前記複数のメモリデバイスのそれぞれは入力接続と出力接続を有し、１つのメモリデバイスの出力接続は後続のメモリデバイスの入力接続に結合され、最後のメモリデバイスの出力接続は前記装置に結合され、
記憶手段にデータを記憶するステップと、
デバイス識別子を前記メモリ相互接続の複数のメモリデバイスに送信することによって、前記複数のメモリデバイスのうち１つのメモリデバイスと他のメモリデバイスを選択するステップであって、前記メモリデバイスが、前記デバイス識別子と自身の固有のデバイスアドレスを比較して、自身を、選択されるメモリデバイスとして特定するステップと、  前記複数のメモリデバイスのうちの前記選択されたメモリデバイスの前記ページバッファおよび前記複数のメモリデバイスのうちの前記他のメモリデバイスの前記ページバッファに前記記憶手段に記憶されたデータを書き込むステップと、
前記選択されたメモリデバイスに、そのページバッファ内に書き込まれた前記データをそのメモリセルにプログラムするよう命令するステップと、
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定するステップと、
前記データのプログラミングが失敗した場合、前記他のメモリデバイスのページバッファから前記データを読み出すことにより、前記他のメモリデバイスの前記メモリセルに書き込まれた前記データをプログラムすることなく前記他のメモリデバイスの前記ページバッファから前記データを読み戻すステップであって、前記読み出されたデータが前記他のメモリデバイスの出力接続を介して、
後続のメモリデバイスの入力接続へ転送され、さらに前記メモリ相互接続のメモリデバイスを介して前記装置へ伝搬される、または、
前記装置へ転送されるステップとを含む方法。
【請求項１８】
前記データを記憶するステップは、前記選択されたメモリデバイスの前記ページバッファおよび前記他のメモリデバイスの前記ページバッファに前記データを書き込む前に実行される、請求項17に記載の方法。
【請求項１９】
前記選択されたメモリデバイスの前記メモリセルに前記データが首尾よくプログラムされたかどうかを判定する前に、前記データが占有している、前記記憶手段の空間を解放するステップをさらに含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2007年2月22日出願の先の米国特許仮出願第60/891,115号の利益を主張するものであり、その開示を、参照により全体として本明細書に組み込む。
【０００２】
本発明は、一般に、半導体デバイスに関するものである。より詳細には、本発明は、メモリデバイス向けのページプログラム動作用の装置および方法に関するものである。
【背景技術】
【０００３】
電子機器は、データまたは情報を記憶するために、メモリデバイスたとえばフラッシュメモリを使用する。メモリシステムでは、メモリコントローラは、データが一時的に記憶される選択されたフラッシュメモリデバイス内のページバッファにデータを伝送することにより、選択されたフラッシュメモリデバイスをプログラムする。ページバッファからフラッシュメモリ内へのデータのプログラミングが開始し、プログラミング結果が検証され、検証結果が「成功」または「失敗」としてもたらされる。プログラムおよび検証の動作は、「プログラム時間」で指定された期間中、数回実行される。プログラム時間の後、失敗の場合には、データがメモリコントローラからリロードされて、選択された同じデバイス内でページプログラム動作を再開する。
【０００４】
欠点は、フラッシュメモリが、たとえばプログラム状況を検証するのに、長いプログラム時間を必要とすることである。メモリコントローラの内部のメモリは、プログラムが失敗した場合に元のプログラムデータを回復するために、初期のプログラムデータを保持しなければならない。初期のプログラムデータは、メモリコントローラのメモリ内の空間を占有し、その結果、このメモリ空間を他の目的に使用することができない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許仮出願第60/891,115号明細書
【特許文献２】米国特許出願第11/594,564号明細書
【特許文献３】米国特許仮出願第60/868,773号明細書
【特許文献４】米国特許仮出願第60/787,710号明細書
【特許文献５】米国特許出願第11/521,734号明細書
【特許文献６】米国特許仮出願第60/802,645号明細書
【特許文献７】米国特許出願第11/750,649号明細書
【特許文献８】米国特許出願第11/840,692号明細書
【特許文献９】米国特許仮出願第60/892,705号明細書
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、直列に相互接続され、それぞれがページバッファおよびメモリセルを有する複数のメモリデバイスを制御するための装置が提供される。この装置は、複数のメモリデバイスのうちの選択されたメモリデバイスのページバッファおよび複数のメモリデバイスのうちの他のメモリデバイスのページバッファにデータを書き込むこと、選択されたメモリデバイスに、そのページバッファ内にロードされたデータをそのメモリセルにプログラムするよう命令すること、ならびに選択されたメモリデバイスのメモリセルにデータが首尾よくプログラムされていないかどうか判定することにより、データのミラーバックアップを用いたページプログラム動作を実行し、他のメモリデバイスのページバッファからデータを回復するように構成されたデータプロセッサを備える。
【０００７】
たとえば、データプロセッサは、他のメモリデバイスのメモリセルにデータをプログラムすることなく他のメモリデバイスのページバッファからデータを読み戻すことにより、他のメモリデバイスのページバッファからデータを回復するように構成される。
【０００８】
この装置は、選択されたメモリデバイスのページバッファおよび他のメモリデバイスのページバッファにデータを書き込むのに先立ってデータを記憶するためのデータストレージをさらに備えてもよい。
【０００９】
本発明の他の態様によれば、直列に相互接続され、それぞれがページバッファおよびメモリセルを有する複数のメモリデバイスと、複数のメモリデバイスを制御するための装置であって、複数のメモリデバイスのうちの選択されたメモリデバイスのページバッファおよび複数のメモリデバイスのうちの他のメモリデバイスのページバッファにデータを書き込むこと、選択されたメモリデバイスに、そのページバッファ内にロードされたデータをそのメモリセルにプログラムするよう命令すること、および選択されたメモリデバイスのメモリセルにデータが首尾よくプログラムされない場合に、他のメモリデバイスのページバッファからデータを回復することにより、データのミラーバックアップを用いたページプログラム動作を実行するように構成されたデータプロセッサを含む装置とを備えるシステムが提供される。
【００１０】
本発明の他の態様によれば、直列に相互接続され、それぞれがページバッファおよびメモリセルを有する複数のメモリデバイスを制御するための方法が提供される。この方法は、複数のメモリデバイスのうちの選択されたメモリデバイスのページバッファおよび複数のメモリデバイスのうちの他のメモリデバイスのページバッファにデータを伝送するステップと、選択されたメモリデバイスに、そのページバッファ内にロードされたデータをそのメモリセルにプログラムするよう命令するステップと、選択されたメモリデバイスのメモリセルにデータが首尾よくプログラムされない場合に、他のメモリデバイスのページバッファからデータを回復するステップとを含む。
【００１１】
たとえば、他のメモリデバイスのページバッファからデータを回復するステップは、他のメモリデバイスのメモリセルにデータをプログラムすることなく他のメモリデバイスのページバッファからデータを読み戻すステップを含む。
【００１２】
この方法は、選択されたメモリデバイスのページバッファおよび他のメモリデバイスのページバッファにデータを書き込む前にデータを記憶するステップと、選択されたメモリデバイスのメモリセルにデータが首尾よくプログラムされたかどうかを判定する前に、データが占有されている空間を解放するステップとをさらに含む。
【００１３】
本発明の他の態様によれば、直列に接続された1組のメモリデバイスのうちの1つとして使用するためのメモリデバイスが提供される。このメモリデバイスは、入力接続と、出力接続と、メモリデバイスのデバイスアドレスの識別と、デバイスコントローラとを備え、このデバイスコントローラは、複数アドレス検出モードに出入りするためのメッセージを受け取り、それに応じて複数アドレス検出モードに出入りし、入力接続を介してデバイスアドレスを含むコマンドを受け取り、複数アドレス検出モードにない間は、コマンドのデバイスアドレスがデバイスのデバイスアドレスと一致する場合にのみコマンドを処理し、複数アドレス検出モードにある間は、i)コマンドのデバイスアドレスがデバイスのデバイスアドレスと同じ場合にコマンドを処理し、ii)コマンドのデバイスアドレスが少なくとも1つの他の所定のデバイスのデバイスアドレスと同じ場合にコマンドを処理するように構成されている。
【００１４】
本発明の他の態様によれば、直列に接続された1組のメモリデバイスの一部分を形成するメモリデバイスにおける方法が提供され、この方法は、デバイスアドレスを維持するステップと、複数アドレス検出モードに出入りするためのメッセージを受け取るステップと、デバイスアドレスを含むコマンドを受け取るステップと、複数アドレス検出モードにない間は、宛先アドレスがデバイスアドレスと一致する場合にのみコマンドを処理するステップと、複数アドレス検出モードにある間は、コマンドのデバイスアドレスがデバイスのデバイスアドレスと同じ場合にコマンドを処理し、コマンドのデバイスアドレスが少なくとも1つの他の所定のデバイスのデバイスアドレスと同じ場合にコマンドを処理するステップとを含む。
【００１５】
本発明の他の態様および特徴は、添付図とともに本発明の具体的な実施形態の以下の説明を検討すれば、当業者には明白になる。
【００１６】
次に、添付図面を参照しながら各実施形態について説明する。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態が適用可能な、直列に接続されたデバイスを特徴とするアーキテクチャを有する例示的なシステムのブロック図である。
【図２】直列に接続されたメモリデバイス用の例示的なコマンドフォーマットの概略図である。
【図３】ページプログラミングおよび検証のための例示的な手順の概略図である。
【図４】2つのメモリデバイスであって、そのうちの1つがデータ用のミラーバックアップとして使用されるメモリデバイスのブロック図である。
【図５】ページバッファがデータ用のミラーバックアップとして使用される、直列に接続されたデバイスを特徴とするアーキテクチャを有するシステムのブロック図である。
【図６】ページバッファがデータ用のミラーバックアップとして使用される、直列に接続されたデバイスを特徴とするアーキテクチャを有する他のシステムのブロック図である。
【図７】図6のシステムにおけるLSB(最小有効ビット)無視モードを可能にまた不能にするステップの例示的なタイミング図である。
【図８】プログラム失敗の後にデータの回復を実行する、図6のシステムのブロック図である。
【図９】図1に示す直列接続されたメモリデバイスの一部分を示すブロック図である。
【図１０】図9に示すメモリデバイスの例示的な回路の概略図である。
【図１１】ミラーバックアップを用いたプログラム動作の方法の流れ図である。
【図１２】例示的なコマンドセットの表である。
【図１３】例示的な動作表の表である。
【図１４】詳細なコマンドおよびアドレスのフォーマットの例を示す表である。
【図１５】メモリシステムでの基本的な入力タイミングを示す例示的なタイミング図である。
【図１６】モジュラコマンドNANDフラッシュメモリシステムでのビットストリームの入力シーケンスを示す例示的なタイミング図である。
【図１７】メモリシステムでの基本的な出力タイミングを示す例示的なタイミング図である。
【図１８】メモリシステムでのビットストリームの出力シーケンスを示す例示的なタイミング図である。
【図１９】ページ読取り動作の方法の流れ図である。
【図２０】ページ読取り動作およびバーストデータ読取り動作を示す例示的なタイミング図である。
【発明を実施するための形態】
【００１８】
本発明の実施形態例を以下に詳しく説明する中で、その一部分を形成する添付図面を参照するが、説明のために、本発明を実施し得る実施形態の具体的な例を示す。当業者が本発明を実施することができるように、これらの実施形態を十分詳しく説明するが、他の実施形態を利用してもよいこと、ならびに本発明の範囲から逸脱することなく、論理的、機械的、電気的および他の変更を加えてもよいことを理解されたい。したがって、以下の詳細な説明は限定的な意味にとらえるべきではなく、本発明の範囲は添付の特許請求の範囲によって定義される。
【００１９】
図1は、本発明の一実施形態によるシステムを示す。図1を参照すると、システム150は、メモリコントローラ151および直列に相互接続された複数(M個)のメモリデバイス154-1、154-2、154-3、...、および154-Mの直列接続を備える(Mは2以上の整数である)。メモリコントローラ151および各メモリデバイスは、データ幅がnのリンクを介して相互接続される(nは1以上の整数である)。nが1である場合、相互接続リンクはシリアルリンクになり、nが2以上である場合には、相互接続リンクはパラレルリンクになる。メモリコントローラ151は、直列相互接続のうちの第1のメモリデバイス154-1に接続されている。最後のメモリデバイス154-Mはまた、直列相互接続のうちの第1、第2、第3、…およびM番目のメモリデバイス154-1、154-2、154-3、…および154-Mがメモリコントローラ151とともにリング接続構造を形成するように、メモリコントローラ151に接続されている。図に示した例では、メモリデバイス154-1〜154-Mは、フラッシュメモリデバイスである。後続の例も、フラッシュメモリに特有のものである。しかし、本発明の実施形態は、他のタイプの不揮発性メモリデバイスにも適用可能であることを理解されたい。
【００２０】
図1に示した具体例では、直列接続されたメモリデバイス154-1〜154-Mはそれぞれ、たとえばNANDフラッシュデバイスなどのフラッシュメモリデバイスである。フラッシュメモリデバイスは、データに関する情報を一時的に記憶するためのページバッファを有する。記憶された情報は、ページプログラミングに従って、デバイスのフラッシュメモリセルに書き込まれる。プログラムされると、プログラムされたセルの検証プロセスのせいで、ページバッファ内に記憶された情報が破損する。
【００２１】
メモリコントローラ151は、データストレージ152およびプロセッサ153を有する。データストレージ152は、処理すべき、また直列接続されたメモリデバイスに記憶すべき動作命令、アドレスおよびメモリデータに関する情報を含む様々なデータを記憶する。動作命令に関する情報は、直列接続されたメモリデバイスを制御するために使用される。データストレージ152は、たとえばスタティックランダムアクセスメモリ(SRAM)または他のタイプの組込みメモリである。より一般には、任意の適切なデータストレージを実装してもよい。プロセッサ153は、データストレージ152に記憶されたデータにアクセスするメモリデバイスのデータ処理および制御の動作を実行する。メモリコントローラ151は、複数の接続、すなわちコマンド信号出力接続CIO、コマンド信号入力接続COI、入力ストローブ接続CSIO、出力ストローブ接続DSIOおよびクロック出力接続CKOを有する。
【００２２】
動作にあたっては、メモリコントローラ151は、コマンド信号出力接続CIOを介してコマンド入力(CI)信号SC1を第1のデバイス154-1に送出し、コマンド信号入力接続COIを介してコマンド出力(CO)信号SC(M+1)を直列相互接続の最後のデバイス154-Mから受信する。また、メモリコントローラ151は、入力ストローブ接続CSIOを介してコマンドストローブ入力(CS1)信号SCS1を、また出力ストローブ接続DSIOを介してデータストローブ入力(DS1)信号SDSIを、第1のデバイス154-1に供給する。さらに、メモリコントローラ151は、クロック出力接続CKOを介して、クロック信号CKをデバイス154-1〜154-Mのすべてに共通クロック源方式で供給する。
【００２３】
メモリデバイス154-1、154-2、154-3、...および154-Mは、それぞれページバッファ158-1、158-2、158-3、,,,および158-Mを有し、またそれぞれフラッシュメモリセル159-1、159-2、159-3、...および159-Mを有する。メモリデバイス154-1〜154-Mのそれぞれは、前のデバイスからのCI信号SCi(i=1〜M)を受信するための信号入力接続CI、後続のデバイスにCI信号SC(i+1)を供給するための信号出力接続CO、前のデバイスからCSI信号SCSiを受信するための入力ストローブ入力接続CS1、後続のデバイスに出力CSI信号SCS(i+1)を送出するための入力ストローブ出力接続CSO、前のデバイスからDSI信号SDSiを受信するための出力ストローブ入力接続DSI、および後続のデバイスに出力DSI信号SDS(i+1)を送出するための出力ストローブ出力接続DSOを有する。
【００２４】
メモリデバイス154-1〜154-Mのそれぞれは、ハードワイヤードまたは事前割当の固有のデバイスアドレス(DA)を有し、その結果、通常動作では一度に1つのデバイスを選択または指定することができる。直列に接続されたデバイスを特徴とするアーキテクチャの詳細な例は、2006年7月31日出願の「Daisy Chain Cascading Devices」と題する米国特許出願第11/594,564号に示してあり、その開示を、参照により全体として本明細書に組み込む。直列に接続されたデバイスを特徴とするアーキテクチャの他の詳細な例は、2006年12月6日出願の「System and Method of Operating Memory Devices of Varying Type」と題する米国特許仮出願第60/868,773号に示してあり、その開示を、参照により全体として本明細書に組み込む。直列に接続された複数のメモリデバイスにおけるデバイスアドレス割当ての例は、2006年3月28日出願の米国特許仮出願第60/787,710号、2006年9月15日出願の米国特許出願第11/521,734号、2006年5月23日出願の米国特許仮出願第60/802,645号、および2007年5月18日出願の米国特許出願第11/750,649号に示してあり、これらの開示を、参照により全体として本明細書に組み込む。
【００２５】
通常動作では、メモリコントローラ151は、コマンドを含むCI信号SC1を送出する。コマンドは、デバイスアドレス(DA)、および動作命令を表すオペレーションコード(以下OPコード)を含む。コマンドによってはアドレス情報をさらに含み、コマンドによってはデータをさらに含む。各OPコードはそれぞれの動作に関連する。本明細書においては、各コマンドはまた、コマンド内に含まれるOPコードに関連するタイプを有するものとみなされる。たとえば、読取りOPコードを含むコマンドは「読取りコマンド」と呼ばれている。メモリデバイス154-1〜154-Mのそれぞれは、そのそれぞれのCIを介して、所与のデバイスがメモリコントローラに直接接続されているメモリデバイス(図に示した例ではデバイス154-1)である場合にはメモリコントローラから直接に、または他のデバイスについては隣接する直前のメモリデバイスから、コマンドを受信する。メモリデバイス154-1〜154-Mのそれぞれは、そのそれぞれのCOを使用して、所与のデバイスがメモリコントローラにその出力が接続されたデバイス(図に示した例ではデバイス154-M)である場合にはメモリコントローラ151に、または隣接する後続のデバイスに、コマンドを転送する。特定のフラッシュメモリデバイスにアドレス指定された書込みOPコードを含むコマンドにより、結果としてデータは、そのデバイスのページバッファに書き込まれ、次いでこのページバッファからメモリデバイスのフラッシュメモリセルに転送される。特定のフラッシュメモリデバイスにアドレス指定された読取りOPコードを含むコマンドにより、結果としてデータは、メモリデバイスのフラッシュメモリセルからメモリデバイスのページバッファに読み取られ、次いでこのページバッファから転送される。
【００２６】
メモリコントローラ151はコマンドを発行し、コマンドのそれぞれは、デバイスアドレス(DA)、コマンドオペレーションコード(以下OPコード)を含む。コマンドによってはアドレス情報をさらに含んでもよく、コマンドによってはデータをさらに含んでもよい。各OPコードはそれぞれの動作に関連する。本明細書においては、各コマンドはまた、コマンド内に含まれるOPコードに関連するタイプを有するものとみなされる。たとえば、読取りOPコードを含むコマンドは「読取りコマンド」と呼んでもよい。たとえば、直列接続されたデバイスで使用するためのコマンドは、柔軟性のあるモジュラコマンドであり、その構造が表1に示してある。
【００２７】
【表１】
0005646178.tif 000002
【００２８】
表1において、DAはデバイスアドレスであり、OPコードはオペレーションコードであり、RAはロウアドレスであり、CAはカラムアドレスであり、DATAは書込みデータである。OPコードに関連するコマンドの例は、「バーストデータロード」コマンドおよび「バーストデータ読取り」コマンドである。(i)ロウアドレスまたはカラムアドレスのいずれかの場合、(ii)ロウアドレスでもカラムアドレスでもない場合、(iii)データなしの場合がある。
【００２９】
図2は、直列に相互接続されたメモリデバイス用の例示的なコマンドフォーマットの概略図である。次に図2を参照すると、第1のコマンドフォーマット109-1は、ID番号およびOPコードを含む。ID番号は、選択されたメモリデバイスを一意に識別するために使用され、OPコードフィールドは、選択されたデバイスが実行するOPコードを含む。第1のコマンドフォーマット109-1を有するコマンドは、たとえば、レジスタ値を読み取るためのOPコードを含むコマンド用に使用してもよい。第2のコマンドフォーマット109-2は、ID番号、OPコードおよびデータを含む。第2のコマンドフォーマット109-2を有するコマンドは、たとえば、レジスタにデータを書き込むためのOPコードを含むコマンド用に使用してもよい。第3のコマンドフォーマット109-3は、ID番号、OPコードおよび追加のアドレスを含む。追加のアドレスは、たとえばメモリセル内の位置をアドレス指定するためのロウアドレスおよび/またはカラムアドレスを含む。第3のコマンドフォーマット109-3を有するコマンドは、たとえば、選択されたメモリデバイスのメモリセルからデータを読み取るためのOPコードを含むコマンド用に使用してもよい。第4のコマンドフォーマット109-4は、ID番号、OPコード、追加のアドレス、およびデータを含む。第4のコマンドフォーマット109-4を有するコマンドは、たとえば、選択されたメモリデバイスのメモリセルにデータを書き込むためのOPコードを含むコマンド用に使用してもよい。4つの例示的なコマンドフォーマット109-1、109-2、109-3、109-4はすべて、アドレス指定する目的で、ID番号から始まることに留意されたい。前述の説明から、コマンドには、ID番号、OPコード、追加のアドレス、データ、または直列に相互接続されているメモリデバイスの構成の制御に関連する任意の他の情報が含まれ得るので、本明細書での用語「コマンド」は、単にコマンドOPコードを指すわけではないことを理解されたい。
【００３０】
上述のコマンド構造の具体例は、本願の譲受人に譲渡された同時係属の2007年8月17日出願の米国特許出願第11/840,692号、および2007年3月2日出願の米国特許仮出願第60/892,705号に教示されており、その内容を、参照により全体として本明細書に組み込む。これらの出願は、相対的にアクセス時間が短いページバッファアクセス動作から、相対的に処理時間が長い核となるアクセス動作を区別するための様々なコマンド構造を開示している。モジュラコマンド構造のさらなる詳細は、「Modular Command Structure」の見出しで以下に示す。
【００３１】
再び図1を参照すると、メモリデバイス154-1、154-2、154-3、...、および154-Mのそれぞれは、そのそれぞれのCIを介して、所与のデバイスがメモリコントローラに直接接続されているメモリデバイス(図に示した例ではデバイス154-1)である場合にはメモリコントローラから直接に、または他のデバイスについては隣接する直前のデバイスから、コマンドを受信する。各メモリデバイスは、そのそれぞれのCOを使用して、所与のデバイスがメモリコントローラにその出力が接続されたデバイス(図に示した例ではデバイス154-M)である場合にはメモリコントローラに、または隣接する後続のデバイスに、コマンドを転送する。従来のコマンド構造では、特定のフラッシュメモリデバイスにアドレス指定された読取りOPコードを含むコマンドにより、結果として、データがメモリデバイスのフラッシュメモリセルからメモリデバイスのページバッファに読み取られ、次いでこのページバッファから転送される。特定のフラッシュメモリデバイスにアドレス指定された書込みOPコードを含むコマンドにより、結果として、データがそのデバイスのページバッファに書き込まれ、次いでこのページバッファからメモリデバイスのフラッシュメモリセルに転送される。
【００３２】
図3は、ページプログラミングおよび検証のための例示的な手順を示す。図1〜3を参照すると、いかにして書込み動作を実行するかの例が説明されよう。データはメモリデバイス154-2に書き込まれるものと仮定される。プログラムされるデータ(たとえば、100110...0100)は、メモリコントローラ151の記憶素子152から、メモリデバイス154-2のページバッファ158にロードされる(ステップ112-1)。フラッシュメモリの割り当てられたロウアドレス(ページ方向)にデータをプログラミングするステップが始まる(ステップ112-2)。プログラミングの結果が検証される(ステップ112-3)。ページバッファ内に検証結果が生成され、成功を示す「1」状態および失敗を示す「0」状態でフラッシュメモリコアに書き込まれたページバッファ内容を上書きする。メモリセル上の欠陥、セルのゲート酸化膜の摩耗、または他の欠陥により、プログラミング動作は成功しないことがある。内部的には、プログラムおよび検証の動作は、プログラム時間と呼ばれる指定された期間中、数回実行される。112-4で示すように、選択された行(ページ方向)のすべてのセルが正しくプログラムされると、ページバッファ158の最終の内容はすべて「1」状態になる。プログラム時間の後、デバイス154-2のページバッファ158内の任意の「0」値が依然として存在する場合には、112-5に示すようにページプログラムは失敗した。失敗の場合、メモリコントローラ151の記憶素子152からデータがリロードされて、選択された同じデバイスの異なるロウアドレス(ページ方向)へのページプログラム動作を再開する。
【００３３】
一般に、フラッシュメモリは、セルの特性およびプログラム状況を検証するのに使用する時間のせいで、プログラム時間が長いという基本的な制限を有する。ページプログラム動作が失敗する可能性があるので、メモリコントローラ151のデータ記憶素子152は、初期プログラムデータを保持して、プログラムが失敗した場合に元のプログラムデータを回復できるようにする。その結果、初期プログラムデータは、データ記憶素子151内の空間を占有し、それにより、この空間が他の目的に使用されることを防止する。その結果として、他のページプログラム動作を実行するには、ページプログラム動作および検証が完了するまで待たなければならない。性能を改善するための実現可能な手法は、メモリコントローラ内の記憶素子の容量を増大させることでもよいが、これにはコストがかかることがある。
【００３４】
図1に示した例示的なシステム150では、選択されたメモリデバイスでページプログラム動作を実行するとき、メモリコントローラ151が、選択されたメモリデバイスのページバッファ158、および他のメモリデバイスのページバッファにもデータをロードして、データのバックアップコピーを記憶する。この例では、選択されたメモリデバイスは第1のメモリデバイス154-1であり、他のメモリデバイスは第2のメモリデバイス154-2であるものと仮定される。より一般には、選択されたメモリデバイスおよび他のメモリデバイスは、メモリデバイス154-1、154-2、154-3、...、および154-Mのうちの任意の2つでよい。選択されたメモリデバイス154-1のメモリセル内にデータが首尾よくプログラムされない場合、メモリコントローラ151は、第2のメモリデバイス154-2のページバッファ158からデータを回復する。第2のメモリデバイス154-2のページバッファ158は、プログラム動作とは関係なくアクセスされる。これにより、第2のメモリデバイス154-2のメモリセルにデータをプログラムする必要もなく、データを回復することができる。データのコピーは第2のメモリデバイス154-2のページバッファ158内に記憶されるので、メモリコントローラ151は、そのデータ記憶素子152内にデータを局所的に記憶する必要がない。したがって、メモリコントローラ151は、選択されたメモリデバイス154-1のメモリセルにデータが首尾よくプログラムされたかどうか判定する前に、データが記憶されているそのデータ記憶素子152内の空間を解放することができる。
【００３５】
具体例では、ページバッファがミラーバックアップの役割を果たすことができるように、本発明の一実施形態により、3つの「モジュラ」メモリデバイスアクセスコマンドが使用される。第1のコマンドは「バーストデータロード」コマンドと呼ばれており、バーストデータロードOPコードを含む。これにより、データはページバッファに書き込まれるが、このコマンド単独では、データはフラッシュメモリセルに転送されない。続く例では、このために4Xhおよび5Xhが使用されるが、より一般には、コマンド構造は具体的な実施ベースに基づいて定義されるはずである。第2のコマンドは「バーストデータ読取り」コマンドと呼ばれており、バーストデータ読取りOPコードを含む。これにより、最初にフラッシュメモリセルから読み取ることなく、ページバッファから直接データを読み取ることができる。続く例では、このために2Xhが使用されるが、より一般には、コマンド構造は具体的な実施ベースに基づいて定義されるはずである。第3のコマンドは「ページプログラム」コマンドと呼ばれており、ページプログラムOPコードを含む。これにより、以前ページバッファに記憶されていたデータが、フラッシュメモリに書き込まれ、検証目的のプロセスにおいてページバッファの内容を破棄する。続く例では、このために6Xhが使用されるが、より一般には、コマンド構造は具体的な実施ベースに基づいて定義されるはずである。
【００３６】
図4は、図1に示した2つのメモリデバイスを示している。図1および4を参照すると、2つのデバイス120および127は、システム150内の2つのデバイスを表しており、2つのデバイスは、相互接続構成内で互いに隣接しているか、または互いに離れている。2つのデバイス120および127のうちの1つは、データ用のミラーバックアップとして使用される。
【００３７】
第1のメモリデバイス120は、入力接続139、出力接続140、フラッシュメモリセル121、ページバッファ122およびデバイスコントローラ126を有する。同様に、第2のメモリデバイス127は、入力接続141、出力接続142、フラッシュメモリセル128、ページバッファ129およびデバイスコントローラ130を有する。2つのメモリデバイス120、127は、直列に相互接続されたデバイスを特徴とするアーキテクチャの一部分を形成する任意の2つのメモリデバイスである。具体例では、2つのメモリデバイス120および127のうちの1つは、データ用のミラーバックアップとして使用される。デバイスコントローラ126および130は、コマンドの処理をうまく進めるための任意の適切な回路を備える。後続の例は、いかなるデバイスコントローラにも言及しないが、これらの例はコマンドを処理するための回路を備えていることを理解されたい。
【００３８】
動作にあたっては、第1のメモリデバイス120のページバッファ122には、123で示すように、入力接続139を介してバーストデータロードコマンド(4Xhおよび5Xh)によってデータがロードされる。この例では、データは、137で示すように、入力接続141を介して第2のメモリデバイス127のページバッファ129にもロードされる。メモリデバイス120内のページプログラミングは、124で示すように、ページプログラムコマンド(6Xh)によって遂行される。ページバッファ122は、125で示すように、「デバイス状況読取り(D0h)」を使用して出力接続140を介して読み取られて、ページプログラミング動作が成功したかどうかを検証する。第2のメモリデバイス127は、第1のメモリデバイス120についてページプログラミングが不成功である場合に、ページプログラム動作のためのミラーバックアップとして使用される。メモリコントローラ(図示せず)は、ミラーバックアップとしてどのメモリデバイスが使用されているのか常に監視する。プログラムが失敗した場合、データは、138で示すように、出力接続142を介してミラーバックアップから回復することができる。これにより、メモリコントローラがその記憶素子内に内容を記憶する必要がなくなる。したがって、ページバッファ122、129にプログラムされる前に、データを記憶するためにメモリコントローラが使用している位置は、他の目的に解放することができる。
【００３９】
各デバイスが直列に相互接続されているアーキテクチャを有するシステムにおけるページバッファのミラー機能を、次に図5および図6を参照しながら説明する。図5は、2つの別個の書込みコマンドを使用して(すなわち、各ページバッファに対して1つのコマンド)、同じデータを2つの異なるページバッファに書き込む例を示している。他の実装形態では、単一の書込みコマンドを使用して、同じデータを2つ以上のページバッファに書き込む。この例を、図6を参照しながら以下に示す。
【００４０】
図5は、ページバッファがデータ用のミラーバックアップとして使用される、直列に接続されたデバイスを特徴とするアーキテクチャを有するシステムを示す。まず図5を参照すると、システム190は、メモリコントローラ191ならびに直列に接続された複数のメモリデバイス193-1、193-2、193-3、...、および193-15を有する。具体例では、システム190は15個のメモリデバイスを備える。より一般には、2つ以上のメモリデバイスが設けられる。メモリコントローラ191は、データ記憶素子192およびデータプロセッサ203を有する。メモリコントローラ191はまた、第1のメモリデバイス193-1と接続するための出力接続CIO、および最後のメモリデバイス199-15と接続するための入力接続COIを有する。メモリデバイス193-1、193-2、193-3、...、および193-15は、それぞれページバッファ194、196、198および190を有し、メモリデバイス193-1、193-2、193-3、...、および193-15のそれぞれはメモリセル(図示せず)を有する。
【００４１】
メモリコントローラ191およびメモリデバイス193-1、193-2、193-3、...、および193-15は、シリアルリンクで相互接続されている。本明細書に記載の他の例はまた、連続した各デバイス間のシリアルリンクに特有である。しかし、本発明の実施形態は、連続した各デバイス間のパラレルリンクを特徴とするアーキテクチャにも適用可能であることを理解されたい。より一般には、本発明の実施形態は、連続した各デバイス間のシリアルリンクを特徴とするアーキテクチャに適用可能である。このシリアルリンクは、シリアルリンクでもパラレルリンクでもよい。システム190は、データ用のミラーバックアップとしてページバッファを使用する。図に示した例では、2つのデバイスは、1つのI/Oピンを有するリンクによって相互接続される。あるいは、リンクは複数のI/Oピンを備えることができる。メモリデバイス193-1、193-2、193-3、...、および193-15は、CI接続を介して前のデバイスからの信号を処理し、処理された結果をCO接続を介して次のデバイスに出力するための処理回路をそれぞれ有する。話を簡単にするために、こうした回路を代表的なDタイプフリップフロップ(D-FF)で示してある。
【００４２】
この例では、メモリコントローラ191は、メモリデバイス193-1のメモリセルにデータを書き込む必要があり、メモリデバイス193-2のページバッファ194-2は、ミラーバックアップとして使用することが可能であるものと仮定される。動作にあたっては、メモリコントローラ191は、第1の書込みコマンドを発行して、データ記憶素子192からのデータを第1のメモリデバイス193-1のページバッファ194-1にロードする。ページバッファ194-1へのデータのローディングが、201に全体的に示してある。ページプログラミングが失敗した場合にデータのバックアップコピーを保持するために、メモリコントローラ191はまた、書込みコマンド(ページバッファロード)を発行して、第2のメモリデバイス193-2のページバッファ194-2に同じデータをロードする。ページバッファ194-2へのデータのローディングが、202に全体的に示してある。次いで、メモリコントローラ191は、ページプログラムコマンドを発行して、ページバッファ194-1にロードされたデータを第1のメモリデバイス193-1のメモリセル(図示せず)にプログラムする。図に示した例では、データは第2のメモリデバイス193-2のメモリセルにはプログラムされていない。代わりに、第1のメモリデバイス193-1に対するページプログラミングが失敗した場合、データは、データのミラーバックアップコピーとしてページバッファ194-1内に維持される。
【００４３】
メモリコントローラ191は、ミラーバックアップとしてどのメモリデバイス193-2が使用されているのか常に監視する。プログラムが失敗した場合、データはミラーバックアップから回復することができる。これにより、メモリコントローラ191がそのデータ記憶素子192内に内容を記憶する必要がなくなる。したがって、ページバッファロードが済み次第、データを記憶するのに以前使用されていたデータ記憶素子192が、他で使用するために解放される。メモリコントローラは、どのデータ記憶素子192が空いていて、どのデータ記憶素子が使用中であるかを常に監視する。ページプログラミング動作が成功すると、ミラーバックアップとして使用されているページバッファ194-2内の位置が解放される。
【００４４】
第1のメモリデバイス193-1および第2のメモリデバイス193-2は、メモリコントローラ191によって選択されることに留意されたい。メモリコントローラ191は、様々なメモリデバイスを二者択一的に選択することができる。各書込みコマンドは、DAによりターゲットメモリデバイスにアドレス指定される。
【００４５】
直列に接続された各デバイスについては、入力(CI)から出力結果(CO)を同期するために、各メモリデバイス間にクロックサイクルベースの待ち時間遅延があることに留意されたい。待ち時間は、システムおよびデバイスの仕様に従って決定することができる。すべての例では、入力と出力の間に1クロックサイクルの待ち時間を想定する。したがって、隣接する2つのメモリデバイス間では、入力データが取り込まれたときに1サイクルの差がある。しかし、クロックサイクル待ち時間は、あるいは、半周期など、より小さくてもよく、または2サイクルを越えるなど、より大きくてもよいことを理解されたい。いずれにせよ、メモリデバイスは、待ち時間遅延を伴って入力ストリームを取得する。
【００４６】
図6は、ページバッファがデータ用のミラーバックアップとして使用される、直列に接続されたデバイスを特徴とするアーキテクチャを有する他のシステムを示す。図6を参照すると、システム210はデータ用ミラーバックアップとしてページバッファ214-2を使用する。システム210は、メモリコントローラ211ならびに複数のメモリデバイス213-1、213-2、213-3、...、および213-15を有する。メモリコントローラ211は、たとえばSRAMであるデータ記憶素子212を有する。メモリコントローラ211はまた、データプロセッサ209、第1のメモリデバイス213-1と接続するための出力接続CIO、および最後のメモリデバイス213-15と接続するための入力接続COIを有する。メモリデバイス213-1、213-2、213-3、...、および213-15は、それぞれページバッファ214-1、214-2、214-3、および214-15を有し、メモリデバイスのそれぞれはメモリセル(図示せず)を有する。メモリコントローラ211およびメモリデバイス213-1、213-2、213-3、...、および213-15は、リンクで相互接続されている。図6のシステムにおけるミラーバックアップ動作の詳細例を、以下でさらに説明する。
【００４７】
例示的なシステムでは、所与のメモリデバイス用のミラーバックアップとして機能するメモリデバイスが静的に定義されている。こうした静的な定義の具体例を以下の表で定義する。この表では、偶数のデバイスアドレスを有する所与のデバイスについては、この所与のデバイスのためのミラーバックアップとして機能するデバイスは、この所与のデバイスのアドレスよりも1つ大きいアドレスを有するデバイスであり(表2を参照のこと)、奇数のアドレスを有する所与のデバイスについては、この所与のデバイスのためのミラーバックアップとして機能するデバイスは、この所与のメモリデバイスのアドレスよりも1つ小さいアドレスを有するデバイスである(表3を参照のこと)ものと仮定されている。
【００４８】
表2:偶数のデバイスアドレスについては、指定ターゲットアドレス(DAt)とミラーアドレス(MA)の間の静的な関連は、MA=DAt+1で定義される。
【００４９】
【表２】
0005646178.tif 000003
【００５０】
表3:奇数のデバイスアドレスについては、指定ターゲットアドレス(DAt)とミラーアドレス(MA)の間の静的な関連は、MA=DAt-1で定義される。
【００５１】
【表３】
0005646178.tif 000004
【００５２】
上記表2および3で定義された例では、指定ターゲットデバイスおよびミラーデバイスは、LSB(最小有効ビット)を除いては共通のアドレスを共用する。より一般には、例によっては、指定ターゲットデバイスとミラーデバイスの間の関係を使用して、2つの別個のコマンドを送る必要もなく2つのデバイスを効率的にアドレス指定する。
【００５３】
この具体例は、表2および3でのミラーバックアップデバイスの定義に適用され、ここで新規の動作モードは「無視LSBモード」と呼ばれ、すべてのデバイスが、LSBを除く各入力コマンドのアドレスのすべてのビットを、デバイスのデバイスアドレスの対応するビット(すなわち、LSBを除くすべてのビット)と比較する。このようなモードでは、所与の指定されたターゲットアドレスを有するデバイスと適切なミラーデバイスの両方がコマンドを処理することになる。実装形態によっては、無視LSBモードをオンにするために、まずコマンドが送出される。これは、ブロードキャストアドレスと呼ばれている、すべてのデバイスによって処理されるアドレスを使用して実行することができる。この後、ページバッファにデータをロードするためのコマンドが続くが、この結果、指定ターゲットデバイスとミラーデバイスの両方のページバッファにデータがロードされる。この後、無視LSBモードは再びオフになり、指定ターゲットデバイスのページバッファの内容をコアメモリに書き込むためのコマンドが送出され、指定ターゲットデバイスによってのみ処理される。他の例では、そのコマンド向けの無視LSBモードを示す別のOPコードが定義される。他の実施形態では、無視LSBモードは、せいぜい後に続く1つのコマンドについてのみアクティブであり、したがって、こうしたコマンドが送出された場合に無視LSBモードをオフにする必要はない。他の実施形態では、コマンドの別のフィールドを使用して、無視LSBモードを示す。
【００５４】
次に、図6を参照しながらこの例を説明するが、図6では、メモリコントローラ211は、メモリデバイス213-2のページバッファ214-2をミラーバックアップとして使用しながら、メモリデバイス213-1のメモリセルにデータを書き込む決定をしたものと仮定されている。この例は、メモリコントローラ211が単一の書込みコマンドを発行して、データ記憶素子212からのデータを第1のメモリデバイス213-1のページバッファ214-1と第2のメモリデバイス213-2のページバッファ214-2の両方にロードするという点で、図5の例とは異なる。これは、「無視LSBモード」中に遂行され、各メモリデバイスは、単一の書込みコマンド内に見つかったターゲットデバイスアドレスのLSBを無視する。この例では、メモリコントローラ211は、直列に接続された各デバイスのうちのすべてのメモリデバイス213-1、213-2、213-3、...、および213-15に「無視LSB」コマンドを送って、続いて受信されるコマンドのターゲットデバイスアドレスのLSBを無視するように通知する。無視LSBコマンドは、たとえば、FFhのOPコードを有する「書込みリンクコンフィギュレーションレジスタ」コマンドであり、すべてのメモリデバイスによって処理されるブロードキャストアドレスに送られる。このようなブロードキャストコマンドに対する任意の適切な構造を使用してもよく、より一般には、無視LSBモードを可能にするための任意の適切な機構を実装することができる。以上、様々な例が提供されてきた。
【００５５】
無視LSBモードが可能になると、単一のターゲットアドレスにより2つのメモリデバイスが選択される。たとえば、ターゲットアドレスが「0000」のページバッファロードコマンドは、デバイスアドレス(DA)が「0000」の第1のメモリデバイス213-1とデバイスアドレスが「0001」の第2のメモリデバイス213-2の両方によって処理されることになる。第1のデバイス213-1および第2のメモリデバイス213-2は、LSBを除いて同一のデバイスアドレスを有することに留意されたい。2つのメモリデバイス213-1および213-2のうちの1つ(たとえば、第1のメモリデバイス213-1)は「指定ターゲットデバイス」として使用され、他のメモリデバイス(たとえば、メモリデバイス213-2)は「ミラーデバイス」として使用され、そのページバッファがミラープログラムデータを記憶する。ページバッファロードコマンドが発行されると、データローディングが開始する。2つの選択されたデバイス213-1および213-2のページバッファ214-1および214-2は、その中にデータを記憶する。ページバッファ214-1および214-2へのデータのローディングが、221および222に全体的に示してある。プログラミングの前に、無視LSBモードはリセットされ、一度に1つのメモリデバイスのみが選択される通常動作が再開する。これは、たとえば別のブロードキャスティングコマンドを発行することによって遂行される。システム210における無視LSBモードを可能および不能にする例示的なタイミングの詳細を、図7を参照しながら以下に説明する。
【００５６】
図7には、図6のシステムにおけるLSB無視モードを可能および不能にするステップの例示的なタイミング図が示してある。図6および7を参照すると、メモリコントローラ211は、クロック信号CK、コマンドストローブ入力信号CSIおよびコマンド入力信号CIの3つの信号を出力する。3つのステージ、すなわち第1、第2および第3のステージの間、CSI信号がアサートされることに留意されたい。
【００５７】
第1のステージが281に示してある。メモリコントローラ211は、続いて受信するコマンドのターゲットデバイスアドレスのLSBを無視するよう各メモリデバイスに通知するための「無視LSB」コマンドを送る。このコマンドは、無視LSBモードを可能にするためのブロードキャストDAおよびOPコードを含む。ここに、「FF」は、直列に接続されている各デバイス内の各メモリデバイスがすべてこのコマンドを受け取り処理することになる、ブロードキャストアドレスであるものと仮定される。
【００５８】
第2のステージが282に示してある。メモリコントローラ211は、第1の2つのメモリデバイス213-1および213-2のページバッファ214-1および214-2にデータをロードするためのコマンドを送る。このコマンドは、第1のメモリデバイス213-1に対するデバイス識別子(ID)およびバーストデータロード命令(CMD)を含む。無視LSBモードが可能になって以降、第1および第2のメモリデバイス213-1および213-2は両方とも、コマンドを処理し、それらのページバッファ214-1および214-2にデータをロードする。
【００５９】
第3のステージが283に示してある。メモリコントローラ211は、無視LSBモードを不能にするためのコマンドを送出する。このIDは、やはりブロードキャストID「FF」である。
【００６０】
無視LSBモードが不能になると、メモリコントローラ211はページプログラムコマンドを発行して、ページバッファ214-1にロードされていたデータを、第1のメモリデバイス213-1のメモリセル(図示せず)にプログラムする。図に示した例では、データは第2のメモリデバイス213-2のメモリセル(図示せず)にはプログラムされていない。代わりに、第1のメモリデバイス213-1に対するページプログラミングが失敗した場合、データのミラーバックアップコピーとして第2のメモリデバイス213-2のページバッファ214-2内にデータが維持される。第2のメモリデバイス213-2には、ページバッファ214-2を使用する任意の中核動作のためにアクセスしてはならない。しかし、ステータス、コンフィギュレーションのレジスタの読み書きなどの、レジスタベースのコマンドが可能である。他のメモリデバイス213-3、...、および213-15には、自由にアクセスすることができる。
【００６１】
図8は、プログラム失敗の後にデータの回復を実行する、図6のシステム210を示す。次に図8を参照すると、データ回復のためのデータ経路が223に全体的に示してある。最初に、第2のメモリデバイス213-2のミラーバッファ214-2内のプログラムデータは、メモリコントローラ211のデータ記憶素子212に伝送され、それにより、メモリコントローラ211が、他の目的に使用されているためにデータ記憶素子212内に保持されていなかった可能性のある元のプログラムデータを回復することができるようになる。次に、ミラーバッファ214-2から回復されたプログラムデータは、ページバッファロードおよびページプログラムを実行することにより、新規のページアドレスに送られる。このデータは、第1のメモリデバイス213-1上の別のページ、または別のメモリデバイス上のページに向けられたものでもよい。それが別のメモリデバイスである場合、2つのページバッファにデータをリロードすることにより、プロセスが最初から開始する。あるいは、回復されたデータを別のメモリデバイスのページバッファにロードしながら、ミラーバッファ214-2にロードされたデータを維持することができる。メモリコントローラ211は、失敗したページを常に監視し、それらを使用しない。図8に示した例では、224に示すように、ミラーバッファ214-2から回復されたプログラムデータは、別のメモリデバイス213-1のページバッファ214-1に送られる。
【００６２】
上に示した例では、無視LSB機能を実施するためのメモリデバイスの具体的な詳細は示していない。各メモリデバイスは、無視LSB機能を遂行するための任意の適切な制御回路を用いて実装できることを理解されたい。例示的な目的で図9および10を参照しながら、具体的な実装形態を以下に示す。
【００６３】
図9は、図1に示す直列接続されたメモリデバイスの一部分を示す。図に示すように、前のデバイス154-(i-1)からデバイス154-iに入力されるコマンド入力信号SCiは、次のデバイス154-(i+1)に伝送することができる。
【００６４】
図10は、直列に接続された各デバイスのメモリデバイス内で使用するためのメモリデバイス回路を示す。メモリデバイス回路は、無視LSB機能を実装する。図10を参照すると、メモリデバイス154-iは、クロック信号CKを受け取るためのクロック入力CLK、コマンドストローブ信号SCSiを受け取るためのコマンドストローブ入力CSI、データストローブ信号SDSiを受け取るためのデータストローブ入力DSI、およびコマンド入力信号SCiを受け取るためのコマンド入力CIを含む複数の入力を有する。メモリデバイス154-iは、コマンドストローブ信号SCS(i+1)を出力するためのコマンドストローブ出力CSO、データストローブ信号SDS(i+1)を出力するためのデータストローブ出力DSO、およびコマンド入力信号SC(i+1)を次のデバイス154-(i+1)に出力するためのコマンド出力COを含む複数の出力を有する。
【００６５】
クロック信号CK、コマンドストローブ信号SCSi、コマンド入力信号SCi、およびデータストローブ信号SDSiは、それぞれの入力バッファ281、282、283および284によってバッファリングされる。バッファリングされたクロック信号およびコマンド入力信号は、内部生成されるクロック信号、すなわちIDクロック信号Clkid、OPコードクロック信号Clkop、アドレスクロック信号Clkad、およびデータクロック信号Clkdaを出力するクロック発生器264に送り込まれる。IDクロック信号Clkid、OPコードクロック信号Clkop、アドレスクロック信号Clkad、およびデータクロック信号Clkdaは、IDレジスタ265、OPコードレジスタ266、アドレスレジスタ268、およびデータレジスタ269に送り込まれる。コマンド入力信号SCiのコマンドの適切なフィールドは、それぞれのクロック信号に応答して、IDレジスタ265、OPコードレジスタ266、アドレスレジスタ268、およびデータレジスタ269に入力される。OPコードレジスタ266内に保持されるOPコードは、復号化するためにOPコードデコーダ267に送り込まれる。OPコードデコーダ267は、1ビット信号SIGBを1ビットレジスタ276に出力し、マルチビット(mビット、たとえば3ビット)の復号化されたOPコード信号SDOPをコアロジックおよび記憶回路285に出力する。コアロジックおよび記憶回路285はまた、バッファリングされたデータストローブ信号を受け取る。
【００６６】
コマンド入力信号SCiはD-FF 251でラッチされ、その出力がやはりバッファリングされて、次のメモリデバイス154-(i+1)に転送されるコマンド入力信号SC(i+1)を生成する。
【００６７】
メモリデバイス154-iは、デバイスアドレス(DA)の値を保持するためのIDレジスタ265のnビットの出力およびデバイスIDレジスタ273のnビットの内容を、入力として受け取る排他的否定論理和(XNOR)論理回路272を備える。XNOR論理回路272は、IDレジスタ265のnビットの出力とデバイスIDレジスタ273のnビットの内容との間でビット幅XNOR演算を実行し、nビットの出力を生成する、n個のXNORゲートを有する。XNOR論理回路272のnビットの出力のLSBは、ORゲート274の1つの入力に入力され、XNOR論理回路272のnビットの出力の残りのビットは、AND論理回路275に入力される。OPコードデコーダ267から「無視LSBイネーブルビット」(信号SIGB内)を登録するための1ビットレジスタ276が設けられている。1ビットレジスタ276の出力は、第2の入力としてORゲート274に入力され、ORゲート274の出力は、別の入力としてAND論理回路275に入力される。これらの構成部品の動作を以下に説明する。
【００６８】
動作にあたっては、メモリデバイス154-iは、コマンド入力信号SCi内のコマンドを受け取る。コマンドストローブ信号SCSiとクロック信号CKのタイミングに基づいて、クロック信号発生器264は、コマンドの内容を適切なレジスタに適切にラッチするための内部クロック信号を生成する。より具体的には、IDレジスタ265は、コマンドのIDを登録する。OPコードレジスタ266は、OPコードを登録する。アドレスレジスタ268は、カラム/ロウアドレスを登録する。データレジスタ269は、コマンド内に含まれる任意のデータを登録する。さらに、OPコードデコーダ267は、OPコードレジスタ266内に登録されているコマンドを受け取り、それを復号化する。バッファリングされたクロック信号が、回路内のD-FFに供給される(クロック信号経路は図示せず)。
【００６９】
このコマンドがブロードキャストDAを含むコマンドであるか、または特定のデバイスにアドレス指定されたコマンドである場合、OPコードは、このデバイスによって復号化され処理される。ブロードキャストDAの場合、すべてのデバイスがアサート可能であり、コマンドを受け取る状態にある。OPコードデコーダ266によって決定された、無視LSBモードに入るためのコマンドを受け取ると、1ビットレジスタ276がセットされ、したがって「無視LSBイネーブルビット」がセットされてLSB無視モードが可能になる。
【００７０】
IDレジスタ265は、ターゲットDAである登録されたDAを、nビットデータと並列に出力する。XNOR論理回路272は、ターゲットDA(コマンド内に含まれるID番号で表される)と、デバイスIDレジスタ273に保持されているデバイスIDとをビット単位で比較する。ターゲットDAおよびデバイスIDが同一である場合、XNOR論理回路272の出力はすべて「1」になる。比較値のLSBは、ORゲート274に送り込まれ、その他のビットは、AND論理回路275に送り込まれる。比較値のLSBが「high」であることで、ORゲート274の出力が「high」であるのに十分である。ORゲート274にはまた、1ビットレジスタ276の「無視LSBイネーブルビット」が送り込まれる。1ビットレジスタ276の「無視LSBイネーブルビット」が「high」であることでもまた、ORゲート274の出力が「high」であるのに十分である。したがって、1ビットレジスタ276の「無視LSBイネーブルビット」がhighである場合、ターゲットDAのLSBがデバイスIDのLSBと一致しているかどうかは問題ではない。むしろ、非LSBビットが問題である。AND論理回路275は、ターゲットDAとデバイスIDの間に一致が存在するかどうかを示すID一致信号277を出力する。AND論理回路へのN個の入力がすべてhighである場合、これは真になる。無視LSBモード時、LSBを除く他の(n-1)個のビットが無視LSBモード時に一致する場合、これは真になる。無視LSBモードではないとき、すべてのn個のビットが一致する場合には、これは真になる。AND論理回路275からのID一致信号277は、メモリデバイス154-iがコマンドを実行するかどうかを判定する。無視LSBモードを抜け出るコマンドを受け取ると、1ビットレジスタ276はクリアされる。ID一致信号277は、コアロジックおよび記憶回路285、ならびにANDゲート278に供給される。1ビットレジスタ276の出力はインバータ279に入力され、その反転された出力信号はANDゲート278に供給され、そのAND論理出力信号はマルチプレクサ254および256に送り込まれる。
【００７１】
ターゲットDAとデバイスIDの間に一致が存在しないとき、ID一致信号277は「Low」であり、マルチプレクサ254は、その「0」入力に選択される。したがって、ラッチされたコマンド入力信号は、コマンド入力信号SC(i+1)として、次のデバイス154-(i+1)に供給される。また、ラッチされたコマンドストローブ信号も、コマンドストローブ信号SCS(i+1)として、マルチプレクサ256を介して次のデバイス154-(i+1)に供給される。したがって、IDの一致はなく、デバイス154-1はターゲットデバイスではなく、コマンド入力信号SCiおよびコマンドストローブ信号SCSiは、次のデバイス154-(i+1)に転送される。データストローブ信号が入力されると(たとえば、データ読取りモード動作において)、ID一致信号277の状況に関係なく、ラッチされたデータストローブ信号は、データストローブ信号SDS(i+1)として、マルチプレクサ255を介して次のデバイス154-(i+1)に供給される。IDの一致が存在しない場合、コアロジックおよび記憶回路285はアクティブにされない。
【００７２】
無視LSBモード中にターゲットDAとデバイスIDの間に一致が存在するとき(すなわち、1ビットレジスタ276の出力が「high」であるとき)、ID一致信号277は「high」であり、コアロジックおよび記憶回路285はアクティブにされる。しかし、インバータ279の出力信号は「low」であり、マルチプレクサ254および256の「0」入力が選択される。入力信号は、コマンド入力信号SC(i+1)として、次のデバイス154-(i+1)に供給される。やはり、コマンドストローブ信号は、コマンドストローブ信号SCS(i+1)として、次のデバイス154-(i+1)に供給される。
【００７３】
非無視LSBモード中、ターゲットDAとデバイスIDの間に一致が存在するとき(すなわち、1ビットレジスタ276の出力が「low」のとき)、ID一致信号277は「high」であり、コアロジックおよび記憶回路285はアクティブにされ、OPコードデコーダ267からの復号化された信号SDOPの復号化されたOPコードが実行されて、コマンド命令に従って動作する。インバータ279の出力信号は「high」であり、ANDゲート278のAND論理出力信号は「high」である。マルチプレクサ254および256の「1」入力が選択される。命令がデータ読取りである場合、コアロジックおよび記憶回路285は読取りコマンドを実行し、ロウおよび/またはカラムのアドレスに従って、その中のメモリ(図示せず)からデータが読み取られる。コアロジックおよび記憶回路285からの出力データDATAoutは、コマンド入力信号SC(i+1)として、次のデバイス154-(i+1)に供給される。
【００７４】
上に提示した例は、2つのメモリデバイスが、最小有効ビットを除いて同一のデバイスアドレスを有するときに、どのように単一のコマンドを処理することができるのかを示す。各メモリデバイスが無視LSBモードにある間、これが遂行される。より一般的には、本発明の各実施形態により、単一のコマンドのターゲットアドレスに基づいて、2つ以上のメモリデバイスが単一のコマンドを処理することが可能になる。たとえば、他の実施形態では、各メモリデバイスは複数アドレス検出モードに入る。たとえば、メモリコントローラが、各メモリデバイスに複数アドレス検出モードに入るよう命令する第1のメッセージをブロードキャストする場合に、これが起きることがある。複数アドレス検出モードでは、デバイスアドレスと異なる宛先アドレスを有するコマンドを受け取ると、メモリデバイスは、宛先アドレスに基づいて、条件付きでコマンドを処理する。しばらくして、メモリデバイスは複数アドレス検出モードを抜け出る。たとえば、メモリコントローラが、各メモリデバイスに複数アドレス検出モードを抜け出るよう命令する第2のメッセージをブロードキャストする場合に、これが起きることがある。複数アドレス検出モードに入るための、また複数アドレス検出モードを抜け出るための、ブロードキャストされたメッセージは、たとえばFFhのopコードを含む書込みリンクコンフィギュレーションレジスタコマンドである。
【００７５】
メモリデバイスが宛先アドレスに基づいて条件付きでコマンドを処理するには、多くの方式がある。実装形態によっては、メモリデバイスは、代替のデバイスアドレスの識別を維持する。受け取ったコマンドのターゲットデバイスアドレスが、代替のデバイスアドレスと一致する場合、メモリデバイスはコマンドを処理する。他の実装形態では、メモリデバイスは、既定の方法で宛先アドレスがデバイスアドレスと異なる場合、条件付きでコマンドを処理する。たとえば、メモリデバイスは、単一の既定ビットのみ宛先アドレスがデバイスアドレスと異なる場合、コマンドを処理する。単一の既定ビットは、最小有効ビットとすることができ、その例を上で示してきた。あるいは、単一の既定ビットは何らかの他のビットである。
【００７６】
図11は、ミラーバックアップを用いたプログラム動作の方法を示す。この方法は、メモリコントローラ、たとえば図6に示すメモリコントローラ211によって実施することができる。
【００７７】
図6および11を参照すると、ステップ311でメモリコントローラ211は、直列に接続されたすべてのメモリデバイス213-1、213-2、213-3、...、および213-15に「無視LSB」コマンドを送って、受信されるターゲットデバイスアドレスのLSBを無視するように通知する。ステップ312では、メモリコントローラ211は、ページバッファに書き込むコマンドの一部分として、ターゲットデバイスアドレスを送る。具体的な例では、ターゲットデバイスアドレスは「0000」すなわち図6のデバイス213-1のデバイスアドレスであるものと仮定する。そのアドレスを用いて、デバイス213-1および213-2の両方が、無視LSBモード中にコマンドを処理することになる。より一般的には、所与のターゲットデバイスアドレスについて、各デバイスのうちの2つのデバイスがコマンドを処理することになる。ページバッファに書き込むためのコマンドは、書き込むデータを含む。デバイスアドレスが一致すると、メモリデバイス213-1およびメモリデバイス213-2の両方によってデータがラッチされる。したがって、伝送されたデータは、両方のデバイスのページバッファにのみロードされる(ステップ312)。これは、単一コマンドを使用して遂行される。
【００７８】
続いて、メモリコントローラ211は、すべてのメモリデバイス213-1、213-2、213-3、...、および213-15に「通常DAセット」コマンドを送って、受け取ったコマンド内に見つかったターゲットデバイスアドレスのLSBをもはや無視しないよう通知する(ステップ313)。次いで、メモリコントローラ211は、指定されたデバイスにアドレス指定されたページプログラムを送出することにより、この指定されたデバイスに対してページプログラミングを開始する(ステップ314)。ページプログラミングが成功したとメモリコントローラ211が判定すると(ステップ315で「はい」の場合)、処理が終了する。ページプログラミングの判定は、ページバッファからプログラム状況を読み取ることによって実行される。プログラムが失敗したとメモリコントローラ211が判定すると(ステップ315で「いいえ」の場合)、メモリコントローラ211は、ミラーメモリデバイス213-2のページバッファからプログラムデータをリロードする(ステップ316)。このプログラムデータは、メモリコントローラのデータ記憶素子内に局所的に記憶される。
【００７９】
次に、メモリコントローラ211は、ステップ317で、指定されたメモリデバイスのページバッファにプログラムデータをロードして戻す。指定されたメモリデバイスのメモリセルにデータをプログラムするよう再試行することにより、ステップ314で処理は続くが、その詳細は上でも示してきた。この例では、同じメモリデバイスにデータをプログラムしようとする別の試みがなされるものと仮定される。あるいは、データは、別のメモリデバイスのメモリセルにプログラムすることができる。また、この例では、ページプログラム動作が首尾よく完了するまで、ミラーバックアップコピーが同じ場所(この例ではデバイス213-2)に維持されるものと仮定される。あるいは、ミラーバックアップコピーは、別の位置で行うことができる。
【００８０】
例によっては、本明細書に記載のシステムは、柔軟なモジュラコマンド構造を使用して実施され、その例示的な詳細をすでに示してきた。図12から20を参照しながら、このセクションでさらなる例示的な詳細を示す。このセクションで示す詳細は、例示的な目的のみに対して非常に特有なものであることを理解されたい。
【００８１】
図12は、モジュラコマンドがバイトモードにあるフラッシュメモリ向けにセットされた例示的なコマンドの表である。この表には以下の15の動作を含む。すなわち、ページ読取り、コピー用ページ読取り、バーストデータ読取り、バーストデータロード開始、バーストデータロード、ページプログラム、ブロック消去アドレス入力、ページペア消去アドレス入力、消去、動作中止、デバイス状況読取り、デバイス情報レジスタ読取り、リンクコンフィギュレーションレジスタ読取り、ならびにリンクコンフィギュレーションレジスタ書込み(デバイス特有)およびリンクコンフィギュレーション書込み(ブロードキャスト)である。各動作は、デバイスアドレス(DA)(1バイト)および動作(OP)コード(1バイト)を含むコマンドを有する。コマンドによっては、ロウアドレス(3バイト)、カラムアドレス(2バイト)を含み、コマンドによっては、入力データ(1〜2112バイト)を含む。「X」は、「バンク0」に対して「0h」である。「X」は、「バンク1」に対して「1h」であり、ここで、この具体例について、各デバイスは2つのメモリバンクを有しているものと仮定されている。より一般的には、各デバイスは少なくとも1つのメモリバンクを有する。表中の最後のコマンド、すなわち書込みリンクコンフィギュレーション(ブロードキャスト)については、デバイスアドレスは、「ブロードキャスティング」コマンドを示すための「FFh」にセットされる。
【００８２】
図13は例示的な動作表である。この表は、/RST(リセット信号の補数)、/CE(チップイネーブル信号の補数)、CSI(コマンドストローブ入力)、およびDSI(データストローブ入力)の複数の組合せのそれぞれについてのモードを含む。これらのモードには、コマンドデータパケット、読取りデータパケット、NOP(動作せず:NO Operation)、スタンバイ、およびリセットが含まれる。
【００８３】
すべてのコマンド、アドレス、およびデータは、最大有効ビット(MSB)をはじめとして、メモリデバイスにシフトインおよびシフトアウトされる。コマンド入力(CI)信号は、コマンドストローブ入力(CSI)信号が「high」である間、正または負のクロックエッジで(すなわち、CKおよび/CKのクロックが交差する点で)サンプリングされる。各コマンドは、1バイトデバイスアドレス(DA)および1バイトOPコード、ならびに/または、必要ならばカラムアドレス/ロウアドレス/データ入力バイトを含む。CSIが論理「high」に遷移すると、1バイトDA(デバイスアドレス)がDAレジスタにシフトインされ、次いで1バイトOPコードがOPコードレジスタにシフトインされる。その際、最大有効ビット(MSB)は、まずCI信号で始まり、CSIが論理high状態にある間、各ビットはCKと/CKのクロックが交差する点でラッチされる。しかし、バイトモードでのあらゆる入力シーケンスは、クロックCKの立上りエッジ(=/CKの立下りエッジ)で開始する。コマンドに応じて、図12に示すように、OPコードの後にアドレスバイト、データバイト、その両方が続き、またはそのいずれも続かない。この例では、アドレスサイクルは、2バイトのカラムアドレスおよび3バイトのロウアドレスを有する。図14は、例示的なコマンドおよびアドレスのフォーマットの定義を示し、各ビットの位置を含む。
【００８４】
直列に接続されたメモリデバイスでは、特別なデバイスアドレス(=FFh)が「ブロードキャスト」動作に割り当てられる。より一般的には、ブロードキャストモード動作向けに定義されたアドレスは、具体的な実装ごとに定義することができる。この「ブロードキャストデバイスアドレス」は、任意のコマンドで使用してもよい。しかし、「読取りタイプ」のコマンドとともにブロードキャストデバイスアドレス(FFh)を使用することが推奨されないのは、最後のデバイスからの読取りデータが、唯一の有効な出力データであるからである。
【００８５】
実装形態によっては、コマンド、アドレス、およびデータはすべて、1つまたは複数の同じピンを共用するので、モジュラコマンドのフラッシュデバイス上の信号バスは完全に多重化される。CSI信号の論理high状態は、メモリデバイスについての多重化されたコマンド/アドレス/データ情報を含むnビット幅の信号とすることができるコマンド入力(CI)信号を妥当性検査する。CSI信号が論理low状態にとどまる場合、デバイスはCIピンからの信号入力を無視する。コマンド入力シーケンスは通常、1バイトDA(デバイスアドレス)ラッチサイクル、1バイトコマンドラッチサイクル、アドレスラッチサイクル(=ロウアドレスに対して3バイト、またはカラムアドレスに対して2バイト)および/または2,112バイトまでのデータ入力ラッチサイクルからなる。1ビットリンクモードでは、DDR(ダブルデータレート)での4クロックサイクルにより、直列パケットの1バイトが生成される。2ビットリンクモードでは、DDR(ダブルデータレート)での2クロックサイクルにより、直列パケットの1バイトが生成される。4ビットリンクモードでは、DDR(ダブルデータレート)での1クロックサイクルにより、直列パケットの1バイトが生成される。CSIによりHIGHからLOWへの遷移が実行された後で、コマンド命令のあらゆるセットの後に、2つの追加のCKおよび/CK遷移が続いてもよい。実施形態によっては、CSIのlowへの遷移の後、追加の数のCKおよび/CK遷移が使用され、数では、各デバイスがともに直列に接続されたアーキテクチャ内のデバイスの2+#に等しい。図12で定義されたあらゆる入力シーケンスは「バイトベース」であり、そのことは、8ラッチサイクル(=ダブルデータレートでの4クロックサイクル)のユニットにおいてCSIおよびCIが有効でなければならないことを意味する。バイトが完了する前に、CSIによりHIGHからLOWへの遷移が実行される場合、対応するコマンドおよび/またはアドレスのシーケンスはデバイスによって無視されることになる。データ入力シーケンスの場合、入力データの最後の不完全バイトは無視されることになるが、入力データの1つまたは複数の前の完全なバイトは有効になる。
【００８６】
図15は、基本的な入力タイミングを示す例示的なタイミング図である。1つまたは複数のCIポートを介して、すべてのDA/コマンド/アドレス/データ入力が絶えずアサートされ、/CEが「low」でありCSI信号が「high」であるときにCKおよび/CKのクロックが交差する点で取り込まれる。入力データがメモリデバイスにシフトインされ、CI上で最大有効ビット(MSB)が最初に位置し、各ビットはCKおよび/CKのクロックが交差する点でラッチされる。ビットストリームの入力シーケンスを図16に示す。図に示すように、バイトモードでのあらゆる入力シーケンスが、クロックCKの立上りエッジで開始する。不完全バイトを有するいかなる入力も無視されることになる。
【００８７】
図17は、基本的な出力タイミングを示す例示的なタイミング図である。/CEが「low」でありDSI信号が「high」であるとき、コマンド出力(CO)の出力は、CKおよび/CKのクロックが交差する点で同期してシフトアウトされる。図18は、バイトモードでの例示的な出力シーケンスを示す。出力データがメモリデバイスからシフトされ、CO信号上で最大有効ビット(MSB)が最初に位置し、各ビットはCKおよび/CKのクロックが交差する点で同期される。DSI信号は、CKの立上りエッジを基準にしてアクティブにされ、その結果、図17に示すように、バイトモードでのあらゆる出力シーケンスが、1クロックの読取り待ち時間(=tOL)でCKの立上りエッジにおいて開始する。
【００８８】
モジュラコマンドの特徴を示す2つの代表的なコマンド、すなわちページ読取り(DA &0Xh)およびバーストデータ読取り(DA &2Xh)コマンドを以下に説明する。図19は、これらのコマンドを使用する流れ図を示し、図20は例示的なコマンドシーケンスを示す。
【００８９】
図19を参照すると、ページ読取りモードに入るために、ステップ411で、3バイトのロウアドレスとともにCIを介して、メモリコントローラがページ読取り(DA &0Xh)コマンドをコマンドレジスタに発行する。ステップ412で、コマンドレジスタへのDA &0Xhの発行が、アドレスラッチサイクルを開始する。次に、3バイトのロウアドレスが入力される。アドレスラッチサイクルが完了すると、内部ページ読取り動作が開始する。選択されたページ内の2,112バイトのデータが検知され、tR(セルアレイからページバッファへの転送時間)未満でページバッファに転送される。ステップ413で、状況レジスタを検査することができる。tRの後、ステップ414で、2バイトのカラムアドレスとともにバーストデータ読取り(DA &2Xh)コマンド(以下でさらに詳細に説明する)を発行することができ、次いでCOを介してDSI信号がlowになるまで、DSI信号を使用可能にして、所与のカラムアドレスからページバッファのデータを読み取ることができる。ユーザが、内部ページ読取り状況を監視して、セルアレイからページバッファへの転送が完了したかどうかを判定しようとする場合、デバイス状況読取り(DA &D0h)コマンドを発行することができる。モジュラコマンドフラッシュは、8ビットの状況レジスタを有し、デバイスが動作している間、ソフトウェアはこのレジスタを読み取ることができる。
【００９０】
ページ読取り、ページプログラム、およびブロック消去などの核となるアクセス動作には長い時間を要し、それらの処理時間はPVT(プロセス/電圧/温度)の変動によって変化する。したがって、核となるアクセスコマンドを発行すると、ユーザは、内部動作を妨げることなくコマンドをアサートした後に、各動作の状況を監視することができる。状況レジスタのその他の目的は、ページプログラムおよびブロック消去が、失敗することなく実行されるかどうかを検査することである。失敗した場合、メモリコントローラによって新規のロウ位置が決定され、メモリコントローラは、新規のロウアドレスを含む新規のコマンドを発行して、古いロウ位置に書き込まれ、書込みに失敗したのと同じデータを書き込む。状況レジスタを監視しないと、プログラムおよび消去動作が失敗することなく実行されていることを、メモリコントローラが分からない。
【００９１】
デバイス状況読取り(DA &D0h)コマンドの後、DSIを使用して、DSIがlowになるまで、状況レジスタからすべての8ビット状況が読み取られる。バーストデータ読取り(DA &2Xh)コマンドが発行され、次いでDSIがhighになった後に、図20に示したシリアル出力タイミングの結果として、ステップ415で、初めのカラムアドレスからデータを出力する。データを出力している間、カラムアドレスは自動的に増大することになる。ステップ416で、ECC生成が行われる。ステップ417でECCが検証されると、ページ読取りが完了する。そうでなければ、ステップ418でエラーになる。
【００９２】
前述のバーストデータ読取り(DA &2Xh)コマンドにより、ユーザは、DSIがhighである間、選択されたページサイズ内の所与のカラムアドレスからページバッファでのデータを読み取ることができるように、カラムアドレスを指定することができるようになる。通常のページ読取り(DA &0Xh)コマンドおよびページローディング時間(=tR)の後に、バーストデータ読取りモードが可能になる。ページ内での制限なしに、バーストデータ読取り(DA &2Xh)コマンドを発行することができる。あらゆるバーストデータ読取りコマンドは、前のバーストデータ読取りコマンドと同じ、またはそれとは異なるカラムアドレスを有することができる。現在のページバッファ上のデータのみを、読み取ることができる。異なるページを読み取る場合、新規のページ読取り(DA &0Xh)コマンドを発行しなければならない。そしてtRの後に、新規のバーストデータ読取り(DA &2Xh)コマンドを発行して、新規のページデータにアクセスすることができる。
【００９３】
上述の実施形態では、説明を簡潔にするために、各図に示すようにデバイスの各要素および各回路は互いに接続されている。本発明の実際的な用途では、要素、回路などは、互いに直接接続されてもよい。同様に、要素、回路などは、メモリデバイスまたは装置の動作に必要な他の要素、回路などを介して互いに間接的に接続してもよい。したがって、デバイスおよび装置の実際の構成では、各要素および回路は、互いに直接または間接的に、結合または接続される。
【００９４】
本発明の前述の各実施形態は、例示に過ぎないことが意図されている。本明細書に添付の特許請求の範囲によってのみ定義される本発明の範囲から逸脱することなく、当業者により、具体的な実施形態に改変、修正、および変更を加えてもよい。
【符号の説明】
【００９５】
150  システム150
151  メモリコントローラ151
151-1〜M  メモリデバイス
152  データストレージ
153  プロセッサ
158-1〜M  ページバッファ
159-1〜M  フラッシュメモリセル
109-1〜4  コマンドフォーマット
112-2  プログラミング
112-3  検証
112-4  成功の場合
112-5  失敗の場合
120  第1のメモリデバイス
121  フラッシュメモリセル
122  ページバッファ
126  デバイスコントローラ
127  第2のメモリデバイス
128  フラッシュメモリセル
129  ページバッファ
130  デバイスコントローラ
139  入力接続
140  出力接続
141  入力接続
142  出力接続
190  システム、ページバッファ
191  メモリコントローラ
193-1〜15  メモリデバイス
192  データ記憶素子
194  ページバッファ
196  ページバッファ
198  ページバッファ
203  データプロセッサ
209  データプロセッサ
210  システム
211  メモリコントローラ
212  データ記憶素子
213-1〜15  メモリデバイス
214-1〜15  ページバッファ
254  マルチプレクサ
256  マルチプレクサ
264  クロック発生器
265  IDレジスタ
266  OPコードレジスタ
267  OPコードデコーダ
268  アドレスレジスタ
269  データレジスタ
272  排他的否定論理和論理回路
273  装置IDレジスタ
274  ORゲート
275  AND論理回路
276  1ビットレジスタ
277  ID一致信号
278  ANDゲート
279  インバータ
281  第1のステージ、入力バッファ
282  第2のステージ、入力バッファ
283  第3のステージ、入力バッファ
284  入力バッファ
285  コアロジックおよび記憶回路
【図１】
0005646178.tif 000005
【図２】
0005646178.tif 000006
【図３】
0005646178.tif 000007
【図４】
0005646178.tif 000008
【図５】
0005646178.tif 000009
【図６】
0005646178.tif 000010
【図７】
0005646178.tif 000011
【図８】
0005646178.tif 000012
【図９】
0005646178.tif 000013
【図１０】
0005646178.tif 000014
【図１１】
0005646178.tif 000015
【図１２】
0005646178.tif 000016
【図１３】
0005646178.tif 000017
【図１４】
0005646178.tif 000018
【図１５】
0005646178.tif 000019
【図１６】
0005646178.tif 000020
【図１７】
0005646178.tif 000021
【図１８】
0005646178.tif 000022
【図１９】
0005646178.tif 000023
【図２０】
0005646178.tif 000024