(57)【要約】  メモリシステムおよびメモリコントローラを含むシステムは、ホストシステムに接続される。メモリシステムは、データを格納する少なくとも1つのメモリ装置を有する。コントローラは、ホストシステムからの要求を少なくとも1つのメモリ装置によって解釈可能である1つまたは複数の分離可能なコマンドに変換する。各コマンドは、少なくとも1つのメモリ装置の1つに対するアドレス識別子と、少なくとも1つのメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有する。少なくとも1つのメモリ装置およびコントローラは、1つのメモリ装置のみが、メモリシステムに入力するコントローラと通信するように、通信用に直列接続で構成される。メモリシステムは、共通バスに接続された複数のメモリ装置を含むことができる。
2010501915.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリ装置の1つへのアクセスを求める要求を表す複数の分離可能なコマンドを含むコマンド構造であって、前記複数の別個のコマンドのそれぞれが、
前記複数のメモリ装置の前記1つに対するアドレスと、前記複数のメモリ装置の前記1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、
前記複数のメモリ装置の前記1つによって実行される操作を表す操作コードを含むコマンド識別子とを含む、コマンド構造。
【請求項２】
前記1つのメモリ装置は、少なくとも1つのメモリバンクを含み、アドレス識別子が、前記少なくとも1つのメモリ装置の1つに対する装置アドレスと、前記少なくとも1つのメモリバンクの1つに対するバンクアドレスとを含む、請求項1に記載のコマンド構造。
【請求項３】
前記アドレス識別子はmバイトの識別子を含み、mは整数である、請求項2に記載のコマンド構造。
【請求項４】
前記装置アドレスはnビットのアドレスを含み、前記バンクアドレスはpビットのアドレスを含み、nおよびpはそれぞれ整数である、請求項3に記載のコマンド構造。
【請求項５】
前記コマンド識別子はqバイトのコマンド識別子を含み、qは整数である、請求項1に記載のコマンド構造。
【請求項６】
前記モジュール構造は、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の行を指定する行アドレスをさらに含む、請求項1に記載のコマンド構造。
【請求項７】
前記モジュール構造は、前記操作の種類が決定済みである場合に行アドレスをさらに含み、前記行アドレスは、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の行を指定する、請求項1に記載のコマンド構造。
【請求項８】
前記行アドレスはrバイトのアドレスを含み、rは整数である、請求項6に記載のコマンド構造。
【請求項９】
前記モジュール構造は、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の列を指定する列アドレスをさらに含む、請求項1に記載のコマンド構造。
【請求項１０】
前記モジュール構造は、前記操作の種類が決定済みである場合に列アドレスをさらに含み、前記列アドレスは、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の列を指定する、請求項1に記載のコマンド構造。
【請求項１１】
前記列アドレスはsバイトのアドレスを含み、sは整数である、請求項9に記載のコマンド構造。
【請求項１２】
前記1つのメモリ装置は、少なくとも1つのメモリバンクを含み、前記アドレス識別子は、前記少なくとも1つのメモリ装置の1つに対する装置アドレスと、前記少なくとも1つのメモリバンクの1つに対するバンクアドレスとを含む、請求項11に記載のモジュールコマンド構造。
【請求項１３】
前記コマンド識別子はqバイトの識別子を含み、qは整数である、請求項12に記載のモジュールコマンド構造。
【請求項１４】
前記モジュール構造は、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の行を指定する行アドレスをさらに含む、請求項12に記載のモジュールコマンド構造。
【請求項１５】
前記モジュール構造は、前記操作の種類が決定済みである場合に行アドレスをさらに含み、前記行アドレスは、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の行を指定する、請求項12に記載のモジュールコマンド構造。
【請求項１６】
前記行アドレスはrバイトのアドレスを含み、rは整数である、請求項15に記載のモジュールコマンド構造。
【請求項１７】
前記モジュール構造は、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の列を指定する列アドレスをさらに含む、請求項12に記載のモジュールコマンド構造。
【請求項１８】
前記モジュール構造は、前記操作の種類が決定済みである場合に列アドレスをさらに含み、前記列アドレスは、前記コマンド識別子での前記操作が適用される、前記少なくとも1つのメモリ装置のメモリバンク内の列を指定する、請求項12に記載のモジュールコマンド構造。
【請求項１９】
前記mバイトの識別子は1バイトの識別子を含み、
前記nビットのアドレスは6ビットのアドレスを含み、
前記pビットのアドレスは2ビットのアドレスを含む、請求項4に記載のコマンド構造。
【請求項２０】
前記rバイトの行アドレスは3バイトのアドレスを含む、請求項8に記載のコマンド構造。
【請求項２１】
前記qバイトのコマンド識別子は1バイトの操作コードを含む、請求項5に記載のコマンド構造。
【請求項２２】
複数のメモリ装置の1つに対するアドレスと、前記複数のメモリ装置の前記1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、
前記複数のメモリ装置の前記1つによって実行される操作を表す操作コードを含むコマンド識別子とを含む、モジュールコマンド構造。
【請求項２３】
データを格納する少なくとも1つのメモリ装置を含むメモリシステムと、
前記メモリシステムへのアクセスを求める要求を管理するプロセッサと、
前記プロセッサからの前記要求を、前記少なくとも1つのメモリ装置によって解釈可能である1つまたは複数の分離可能なコマンドに変換するコントローラであって、各コマンドが、前記少なくとも1つのメモリ装置の1つに対するアドレス識別子と、前記少なくとも1つのメモリ装置の前記1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有するコントローラとを含むシステムであって、前記少なくとも1つのメモリ装置および前記コントローラが通信用に直列接続されている、システム。
【請求項２４】
前記少なくとも1つのメモリ装置は、少なくとも1つのメモリバンクを含み、前記アドレス識別子は、前記少なくとも1つのメモリ装置の1つに対する装置アドレスと、前記少なくとも1つのメモリバンクの1つに対するバンクアドレスとを含む、請求項23に記載のシステム。
【請求項２５】
前記コントローラは、1つまたは複数の分離可能なコマンドを異なるメモリ装置に生成し、異なるメモリ装置に対するこれらの1つまたは複数の分離可能なコマンドの発行をインターリーブする、請求項24に記載のシステム。
【請求項２６】
前記少なくとも1つのメモリ装置は、少なくとも2つのメモリバンクを含み、前記コントローラは、前記少なくとも2つのメモリバンクのそれぞれに対して1つまたは複数の分離可能なコマンドを生成し、これらの1つまたは複数の分離可能なコマンドの発行をインターリーブし、したがって前記少なくとも2つのメモリバンクが、前記発行された1つまたは複数の分離可能なコマンドを並行して処理する、請求項25に記載のシステム。
【請求項２７】
前記メモリシステム内の前記メモリ装置は共通バスに接続される、請求項23に記載のシステム。
【請求項２８】
前記メモリシステム内の前記メモリ装置は直列接続される、請求項23に記載のシステム。
【請求項２９】
前記メモリ装置はNANDフラッシュメモリ装置を含む、請求項23に記載のシステム。
【請求項３０】
データを格納する複数のメモリ装置を有するシステム用のコントローラであって、前記複数のメモリ装置との通信用に直列相互接続で構成され、
前記複数のメモリ装置へのアクセスを求める要求を受け取る第1の接続と、
前記要求を、前記複数のメモリ装置によって解釈可能である複数の分離可能なコマンドに変換する変換装置であって、各コマンドが、前記複数のメモリ装置の1つに対するアドレス識別子と、前記複数のメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有する変換装置と、
前記複数の分離可能なコマンドを発行する前記複数のメモリ装置の1つとの通信用の第2の接続とを含む、コントローラ。
【請求項３１】
メモリ装置アドレスを含むアドレスを決定するステップと、
メモリへのアクセスを求める要求を満たす複数の操作を識別するステップと、
前記メモリに関する複数の分離可能なコマンドを提供するステップであって、前記コマンドのそれぞれが、メモリ装置アドレスを有する装置識別子と、前記複数の操作の1つを有するコマンド識別子とを含むステップとを含む、方法。
【請求項３２】
メモリ装置へのアクセスを求める要求を、前記メモリ装置によって解釈可能である複数の分離可能なコマンドに変換する方法であって、
前記決定するステップは、前記メモリ装置に対するアドレスと、前記メモリ装置のメモリバンクに対するアドレスとを決定するステップを含み、
前記識別するステップは、組み合わされて前記要求を満たす複数の操作を識別するステップを含み、
前記提供するステップは、前記複数の分離可能なコマンドを提供するステップであって、各コマンドが、前記メモリ装置アドレスおよび前記メモリバンクアドレスを含む装置識別子と、前記複数の操作の1つを含むコマンド識別子とを含み、前記コマンド識別子が前記メモリ装置によって解釈可能であり、前記複数の分離可能なコマンドが前記メモリ装置に発行されるステップを含む、請求項31に記載の方法。
【請求項３３】
前記提供するステップが、
mは整数である、mバイトの装置識別子を生成するステップと、
nおよびpはそれぞれ整数である、nビットのメモリ装置アドレスおよびpビットのメモリバンクアドレスを生成するステップと、
qは整数である、qバイトのコマンド識別子を生成するステップとをさらに含み、
異なる装置識別子を有する前記複数の分離可能なコマンドのそれぞれの発行をインターリーブするステップをさらに含む、請求項31に記載の方法。
【請求項３４】
前記メモリ装置が少なくとも2つのメモリバンクを含む方法であって、前記少なくとも2つのメモリバンクを並行に制御し、
前記決定するステップは、前記メモリ装置に対するアドレスと、前記少なくとも2つのメモリバンクのそれぞれに対するアドレスとを決定するステップを含み、
前記識別するステップは、組み合わされて前記少なくとも2つのメモリバンクのそれぞれへのアクセスを求める要求を満たす複数の操作を識別するステップを含み、
前記提供するステップは、前記複数の分離可能なコマンドを前記少なくとも2つのメモリバンクのそれぞれについて生成するステップであって、前記複数の分離可能なコマンドのそれぞれが前記メモリ装置に発行されるステップを含む、請求項31に記載の方法。
【請求項３５】
複数のメモリ装置へのアクセスを求める要求をインターリーブする方法であって、
前記決定するステップは、前記複数のメモリ装置のそれぞれに対するアドレスを含み、
前記識別するステップは、組み合わされて各要求を満たす複数の操作を識別するステップを含み、
前記提供するステップは、複数の分離可能なコマンドを前記複数のメモリ装置のそれぞれに関する各要求ごとに生成するステップであって、各コマンドが、前記メモリ装置アドレスを有する装置識別子と、前記複数の操作の1つを有するコマンド識別子とを含み、前記コマンド識別子が前記メモリ装置によって解釈可能であり、前記複数の分離可能なコマンドのそれぞれが前記メモリ装置に発行されるステップを含む、請求項31に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2006年8月22日に出願された米国仮特許出願第60/839,329号、2007年2月16日に出願された米国仮特許出願第60/902,003号、および2007年3月2日に出願された米国仮特許出願第60/892,705号の優先権の利益を主張するものである。
【０００２】
本発明は、一般には半導体メモリ装置に関するものであり、詳細には複数の相互接続された半導体メモリ装置と、メモリ装置用のコマンド構造とを有するシステムに関するものである。
【背景技術】
【０００３】
半導体メモリ装置は、一般に多くの工業電子製品および消費者電子製品で見受けられる。より小さいサイズ要件に加えて、より高いメモリ容量への需要が増加し、実現困難な密度を有するメモリが求められている。その結果、多大なメモリ要件を満たすために、複数のメモリ装置がしばしば互いに接続される。そのような複数装置のメモリシステムは、単一のパッケージ(すなわち、マルチチップシステム)またはプリント回路板上に一緒にグループ化された多数のメモリ装置パッケージにまとめて実装できる。
【０００４】
複数の半導体メモリ装置が単一のシステムとして機能するように相互接続される場合、コントローラは、システム内でのデータの格納、データへのアクセス、およびデータの操作の要求に対応する、個々のメモリ装置と外部インターフェイスの間のデータの流れを管理する。コマンド構造は、データを含む個々のメモリ装置にそれらの要求を提供するために、コントローラによって使用される。コマンド構造は、相互接続されたメモリ装置の構成に依存する場合があり、システムの性能に影響を与えうる。たとえば、個々のメモリ装置が共通バスを介してコントローラと通信する場合、個々のメモリ装置の1つのみが任意の所与の時間にアサートされうる。個々のメモリ装置がチェーン構成で直列に相互接続され、1つのメモリ装置のみがコントローラに接続されている場合、チェーンの後方に位置するメモリ装置用のコマンドは、前方のメモリ装置が割り込み不可のコマンドを実行することによって、著しく遅延する可能性がある。直列接続されたメモリ装置の構成では、1つの装置でのコマンドの処理が、後続のメモリ装置でのすべてのコマンドの伝送を停止するため、システムでのその他の任意の処理が一時停止する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国仮特許出願第60/839,329号
【特許文献２】米国仮特許出願第60/902,003号
【特許文献３】米国仮特許出願第60/892,705号
【特許文献４】米国仮特許出願第60/787,710号
【特許文献５】米国仮特許出願第60/802,645号
【特許文献６】米国仮特許出願第60/868,773号
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、複数のメモリ装置の1つに対するアドレスと、複数のメモリ装置の1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、複数のメモリ装置の1つによって実行される操作を表す操作コードを含むコマンド識別子とを含むモジュールコマンド構造が提供される。
【０００７】
本発明の別の態様によれば、複数のメモリ装置の1つにアクセスするための、プロセッサからの要求を表す複数の分離可能なコマンドを含むモジュールコマンドセットであって、複数の別個のコマンドのそれぞれが、複数のメモリ装置の1つに対するアドレスと、複数のメモリ装置の1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、複数のメモリ装置の1つによって実行される操作を表す操作コードを含むコマンド識別子とを含むモジュールコマンドセットが提供される。
【０００８】
本発明の別の態様によれば、データを格納する少なくとも1つのメモリ装置を含むメモリシステムと、メモリシステムへのアクセスを求める要求を管理するプロセッサと、プロセッサからの要求を、少なくとも1つのメモリ装置によって解釈可能である1つまたは複数の分離可能なコマンドに変換するコントローラであって、各コマンドが、少なくとも1つのメモリ装置の1つに対するアドレス識別子と、少なくとも1つのメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有するコントローラとを含み、少なくとも1つのメモリ装置およびコントローラが通信用に直列に構成されるシステムが提供される。
【０００９】
本発明の別の態様によれば、データを格納する複数のメモリ装置を有するシステム用のコントローラであって、複数のメモリ装置との通信用に直列に構成され、複数のメモリ装置にアクセスするプロセッサからの要求を受け取るための第1の接続と、プロセッサからの要求を、複数のメモリ装置によって解釈可能である複数の分離可能なコマンドに変換する変換装置であって、各コマンドが、複数のメモリ装置の1つに対するアドレス識別子と、複数のメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有する変換装置と、複数の分離可能なコマンドを発行する複数のメモリ装置の1つとのシリアル通信の第2の接続とを含む、コントローラが提供される。
【００１０】
本発明の別の態様によれば、少なくとも1つのメモリ装置へのアクセスを要求する方法であって、少なくとも1つのメモリ装置に対するアドレスを含むアドレスを決定するステップと、組み合わされて少なくとも1つのメモリ装置へのアクセスを求める要求を満たす複数の操作を識別するステップと、複数の分離可能なコマンドを少なくとも1つのメモリ装置に提供するステップであって、コマンドのそれぞれが、アドレスを含む装置識別子と、複数の操作の1つを含むコマンド識別子とを含み、前記コマンド識別子がメモリ装置によって解釈可能であるステップとを含む、方法が提供される。
【００１１】
本発明の一実施形態によれば、複数のメモリ装置の1つへのアクセスを求める要求を表す複数の分離可能なコマンドを含むコマンド構造が提供される。複数の別個のコマンドのそれぞれは、複数のメモリ装置の1つに対するアドレスと、複数のメモリ装置の1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、複数のメモリ装置の1つによって実行される操作を表す操作コードを含むコマンド識別子とを含む。
【００１２】
本発明の別の実施形態によれば、複数のメモリ装置の1つに対するアドレスと、複数のメモリ装置の1つにある複数のメモリバンクの1つに対するバンクアドレスとを含む装置識別子と、複数のメモリ装置の1つによって実行される操作を表す操作コードを含むコマンド識別子とを含むモジュールコマンド構造が提供される。
【００１３】
本発明の別の実施形態によれば、データを格納する少なくとも1つのメモリ装置を含むメモリシステムと、メモリシステムへのアクセスを求める要求を管理するプロセッサと、プロセッサからの要求を、少なくとも1つのメモリ装置によって解釈可能である1つまたは複数の分離可能なコマンドに変換するコントローラであって、各コマンドが、少なくとも1つのメモリ装置の1つに対するアドレス識別子と、少なくとも1つのメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有するコントローラとを含み、少なくとも1つのメモリ装置およびコントローラが通信用に直列接続されるシステムが提供される。
【００１４】
たとえば、少なくとも1つのメモリ装置は、少なくとも1つのメモリバンクを含む。アドレス識別子は、少なくとも1つのメモリ装置の1つに対する装置アドレスと、少なくとも1つのメモリバンクの1つに対するバンクアドレスとを含むことができる。たとえば、メモリ装置は、NAND型のフラッシュメモリ装置などのフラッシュ装置である。
【００１５】
メモリシステムが複数のメモリ装置を含む場合、装置は直列接続または共通バスに接続されうる。
【００１６】
本発明の別の実施形態によれば、データを格納する複数のメモリ装置を有するシステム用のコントローラであって、複数のメモリ装置との通信用に直列相互接続で構成された、コントローラが提供される。コントローラは、複数のメモリ装置へのアクセスを求める要求を受け取るための第1の接続と、要求を、複数のメモリ装置によって解釈可能である複数の分離可能なコマンドに変換する変換装置であって、各コマンドが、複数のメモリ装置の1つに対するアドレス識別子と、複数のメモリ装置の1つによって実行される操作を表すコマンド識別子とを含むモジュール構造を有する変換装置と、複数の分離可能なコマンドを発行する複数のメモリ装置の1つとの通信用の第2の接続とを含む。
【００１７】
本発明の別の実施形態によれば、メモリ装置アドレスを含むアドレスを決定するステップと、メモリへのアクセスを求める要求を満たす複数の操作を識別するステップと、メモリに関する複数の分離可能なコマンドを提供するステップであって、コマンドのそれぞれが、メモリ装置アドレスを有する装置識別子と、複数の操作の1つを有するコマンド識別子とを含むステップとを含む方法が提供される。
【００１８】
好適なものとして、この方法は、メモリ装置へのアクセスを求める要求を、メモリ装置によって解釈可能である複数の分離可能なコマンドに変換するのに使用される。この方法は、メモリ装置へのアクセスを求める要求を、メモリ装置によって解釈可能である複数の分離可能なコマンドに変換するのに使用できる。
【００１９】
本発明の他の態様および特徴は、下記の具体的な本発明の実施形態の説明を添付の図面とともに検討することにより、当業者に明らかになる。
【００２０】
本発明の実施形態を、添付の図を参照して、例示のみを目的として述べる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態を適用可能な、ホストシステムならびにメモリシステムおよびメモリコントローラを有するシステムを示すブロック図である。
【図２】本発明の実施形態を適用可能な、共通バスを介してメモリシステムに接続された複数のメモリ装置および1つのコントローラを有するメモリシステムを示すブロック図である。
【図３】本発明の実施形態を適用可能な、直列に相互接続された複数のメモリ装置およびメモリ装置に接続された1つのコントローラを有するメモリシステムを示すブロック図である。
【図４】本発明の実施形態を適用可能な、フラッシュメモリ装置の一般的な構成例を示すブロック図である。
【図５Ａ】本発明の実施形態を適用可能な、NANDフラッシュメモリで使用するためのモジュールコマンド構造の例を示す図である。
【図５Ｂ】本発明の実施形態を適用可能な、NANDフラッシュメモリで使用するためのモジュールコマンド構造の例を示す図である。
【図５Ｃ】本発明の実施形態を適用可能な、NANDフラッシュメモリで使用するためのモジュールコマンド構造の例を示す図である。
【図６Ａ】本発明の実施形態を適用可能なフラッシュコントローラの構成を示すブロック図である。
【図６Ｂ】図6Aに示すフラッシュコマンドエンジンの機能構成要素の例を示すブロック図である。
【図７】モジュールコマンド構造を使用する、コントローラからのページ読み取りコマンドによって処理されるプロセスを示すフローチャートである。
【図８】モジュールコマンド構造を使用する、フラッシュメモリ装置からの設定された待機期間を伴うページ読み取り操作のタイミングを示す図である。
【図９】モジュールコマンド構造を使用する、フラッシュメモリ装置からのステータス要求を伴うページ読み取り操作のタイミングを示す図である。
【図１０】モジュールコマンド構造を使用する、コントローラからのページプログラムコマンドによって処理されるプロセスを示すフローチャートである。
【図１１】モジュールコマンド構造を使用する、フラッシュメモリ装置からの単一のデータ入力を伴うページプログラム操作のタイミングを示す図である。
【図１２】モジュールコマンド構造を使用する、フラッシュメモリ装置からの2つのデータ入力を伴うページプログラム操作のタイミングを示す図である。
【図１３】モジュールコマンド構造を使用する、コントローラからのブロック消去コマンドによって処理されるプロセスを示すフローチャートである。
【図１４】モジュールコマンド構造を使用する、フラッシュメモリ装置から消去する単一のブロックアドレスを伴うブロック消去操作のタイミングを示す図である。
【図１５】モジュールコマンド構造を使用する、フラッシュメモリ装置から消去する2つのブロックアドレスを伴うブロック消去操作のタイミングを示す図である。
【図１６】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンク用のコントローラからの並行ページ読み取りコマンドによって処理されるプロセスを示すフローチャートである。
【図１７】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンクに対する並行ページ読み取り操作の、フラッシュメモリからのタイミングを示す図である。
【図１８】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンク用のコントローラからの並行ページプログラムコマンドによって処理されるプロセスを示すフローチャートである。
【図１９】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンクに対する並行ページプログラム操作の、フラッシュメモリからのタイミングを示す図である。
【図２０】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンク用のコントローラからの並行ブロック消去コマンドによって処理されるプロセスを示すフローチャートである。
【図２１】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンクに対する並行ブロック消去操作の、フラッシュメモリからのタイミングを示す図である。
【図２２】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンク用のコントローラからのインターリーブされたページ読み取りコマンドおよびページプログラムコマンドによって処理されるプロセスを示すフローチャートである。
【図２３】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンクに対するインターリーブされたページ読み取り操作およびページプログラム操作の、フラッシュメモリ装置からのタイミングを示す図である。
【図２４】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンク用のコントローラからの一時停止および再開されたページ読み取りコマンドおよびページプログラムコマンドによって処理されるプロセスを示すフローチャートである。
【図２５】モジュールコマンド構造を使用する、同じフラッシュメモリ装置内にある2つのメモリバンクに対する一時停止および再開されたページ読み取り操作およびページプログラム操作の、フラッシュメモリ装置からのタイミングを示す図である。
【図２６】それぞれが複数のメモリバンクを有する複数のフラッシュメモリ装置に対するインターリーブされかつ並行するページ読み取り、ブロック消去、ページプログラム、およびページ対消去のコマンド/操作の例を示す図である。
【図２７】それぞれが複数のメモリバンクを有する複数のフラッシュメモリ装置に対するインターリーブされかつ並行するページ読み取りコマンド/操作の例を示す図である。
【図２８】それぞれが複数のメモリバンクを有する複数のフラッシュメモリ装置に対するインターリーブされかつ並行する一時停止および再開されたページ読み取り、ブロック消去、およびページプログラムのコマンド/操作の例を示す図である。
【発明を実施するための形態】
【００２２】
下記の実施形態例の詳細な説明において、本明細書の一部を形成し、具体的な実施形態例を一例として示す添付の図面を参照する。これらの実施形態は、当業者が本発明を実施するのに十分な程度に詳細にわたって述べられおり、本発明の範囲から逸脱することなく他の実施形態を使用できること、ならびに論理的、機械的、電気的、および他の変更がなされうることが理解される。したがって、下記の詳細な説明は、限定的な意味で理解されるべきものではない。
【００２３】
半導体メモリ装置は、しばしば相互接続されて大容量のメモリシステムを形成する。図1に本発明の実施形態を適用可能なシステムを示す。図1を参照すると、プロセッサ103をその中に有するホストシステム102は、メモリシステム106およびメモリシステムを制御するコントローラ104を含むシステムに接続されている。メモリシステム106は、少なくとも1つのメモリ装置(たとえば、2つのフラッシュメモリ装置107-0および107-1)を含む。コントローラ104は、ホストシステム102から要求を受け取り、その要求をメモリシステム106によって解釈可能なコマンドに変換する。コントローラ104はまた、ホストシステム102によって使用されるメモリシステム106に対する論理アドレスをメモリシステム106の物理アドレスに変換する。コントローラ104は、メモリシステム106に格納されるデータがメモリ装置107-0、107-1の間で分配されるようにする。コマンドの実行におけるエラーをチェックするために、誤り訂正符号(ECC)もコントローラ104によって生成される。
【００２４】
図2に本発明の実施形態を適用可能なシステム構成の例を示す。図2を参照すると、コントローラ112は、共通バス114を介して複数のメモリ装置(たとえば、4つのフラッシュメモリ装置108-0〜108-3)を含むメモリシステムと通信する。コントローラ112は、共通バス114を使用して、データをメモリ装置108-0〜108-3に、およびメモリ装置108-0〜108-3から転送する。チップイネーブル信号をアサートすることにより、指定されたフラッシュメモリ装置のみが、この構成で一度にアサートされる。
【００２５】
図3に本発明の実施形態を適用可能なシステム構成の別の例を示す。メモリシステムは、直列接続されたメモリ装置を含む。図3を参照すると、コントローラ116および複数のメモリ装置(たとえば、4つのフラッシュメモリ装置109-0〜109-3)を含むメモリシステムは、ループ構成で相互接続されている。メモリ装置109-0〜109-3は、直列に相互接続されているので、1つの装置のみがコントローラ116を介してメモリシステムに届くデータおよびメッセージを受け取る。メモリ装置109-0〜109-3のそれぞれは、2つまでの他のメモリ装置(すなわち、前および次の装置)に連結される。したがって、メモリシステムに届くデータおよびメッセージは、他のすべてのメモリ装置を通過して、直列接続の最後の装置109-3に到達する。
【００２６】
フラッシュメモリ装置は、たとえば、NAND型、NOR型、AND型フラッシュメモリなどの任意の種類のフラッシュメモリでよい。また、メモリ装置はランダムアクセスメモリでもよい。
【００２７】
NANDフラッシュメモリ装置は一般に、相互接続されて、低価格で高密度のメモリを提供する。図4にNANDフラッシュ装置400の機能構成要素を示す。NANDフラッシュ装置400では、コマンド、アドレス、およびデータは、装置のチップで共通I/Oピンを介して多重化される。NANDフラッシュ装置400は、複数(n)の消去可能ブロックを有するセル配列構造のメモリバンク402を有する。各消去可能ブロックは、複数(m)のプログラム可能ページに細分される。各ページは、(j+k)バイトからなる。ページは、データが格納されるjバイトのデータ記憶域と、エラー管理機能に通常使用される別個のkバイトとにさらに分割される。各ページは通常、2,112バイトからなり、そのうち2,048バイトはデータ記憶に使用され、64バイトはエラー管理機能に使用される。メモリバンク402はページごとにアクセスされる。図4では単一のメモリバンク402を示しているが、NANDフラッシュ装置400は2つ以上のメモリバンク402を有することが可能である。そのような各メモリバンク402は、並行するページ読み取り、ページプログラム、ページ消去、およびブロック消去の操作を実行できるようにすることができる。
【００２８】
メモリバンク402にアクセスするコマンドは、コントローラ(たとえば、図3に示すコントローラ116)から、コマンドレジスタ414および制御論理416で受け取られる。受け取られたコマンドは、コマンドレジスタ414に入り、実行されるまでそこにとどまる。制御論理416は、コマンドをメモリバンク402に対して実行可能な形式に変換する。コマンドは一般に、異なるピンが異なるコマンドを表すのに使用できる、チップの外部パッケージ上の異なるピンをアサートすることによりNANDフラッシュ装置400に入る。たとえば、コマンドには、チップイネーブル、読み取りイネーブル、書き込みイネーブル、および書き込み保護が含まれうる。読み取りコマンドおよび書き込みコマンドはページベースで実行され、一方、消去コマンドはブロックベースで実行される。
【００２９】
コマンドがコマンドレジスタ414および制御論理416で受け取られると、そのコマンドが関連するメモリバンク402内のページに対するアドレスが、出力ドライバ412で受け取られる。そのアドレスは、アドレスバッファおよびラッチ418に提供され、次いで制御およびプリデコーダ406、センス増幅器(S/A)およびデータレジスタ404、ならびにアドレスによって示されたページにアクセスするための行デコーダ408に提供される。データレジスタ404は完全なページを受け取り、そのページはI/O(入出力)バッファおよびラッチ410に提供され、その後、NANDフラッシュ装置400から出力するための出力ドライバ412に提供される。
【００３０】
たとえば、読み取りコマンドはコマンドレジスタ414および制御論理416で受け取られ、付随するアドレスはアドレスバッファおよびラッチ418で受け取られる。アドレスバッファおよびラッチ418は、アドレスが位置するページを決定し、そのページに対応する行アドレス(複数可)を行デコーダ408に提供する。対応する行がアクティブにされる。データレジスタおよびS/A404は、ページを読み取り、そのページのデータをデータレジスタ404に転送する。ページ全体のデータがデータレジスタに転送されると、データはI/Oバッファおよびラッチ410ならびに出力ドライバ412を介して装置から順次読み取られる。
【００３１】
プログラムコマンドもページベースで処理される。プログラムコマンドはコマンドレジスタ414および制御論理416で受け取られ、付随するアドレスはアドレスバッファ418で受け取られ、入力データは出力ドライバ412で受け取られる。入力データは、I/Oバッファおよびラッチ410を介してデータレジスタ404に転送される。すべての入力データがデータレジスタ404に入ると、入力データを格納するページは、その入力データでプログラムされる。
【００３２】
消去コマンドはブロックベースで処理される。消去コマンドはコマンドレジスタ414および制御論理416で受け取られ、ブロックアドレスはアドレスバッファ418で受け取られる。
【００３３】
通常のNANDフラッシュメモリコマンドは、2つのコマンドサイクルを使用して、コマンドのロードを完了する。表1にNANDフラッシュメモリのコマンドセットの例を示す。
【００３４】
【表１】
2010501915.tif 000003
【００３５】
2つのコマンドサイクルでNANDフラッシュメモリに発行されるコマンドの多くは、1つのプロシージャと見なされ、したがって、中断、割り込み、一時停止、または再開はできない。NANDフラッシュメモリは、これらの2つのコマンドサイクルを受け取っているとき、リセットコマンドおよびステータス読み取りコマンド以外のどの追加のコマンドも受け入れることができない。複数のメモリバンクを有するフラッシュメモリ装置では、一方のバンクが非アクティブである間に、もう一方のバンクがコマンドを処理しているので、このコマンド構造はバンクの使用を限定する。このことは、実行されているコマンドが長い内部コア操作(たとえば、20μsのページ読み取り、200μsのページプログラム、および1.5msのブロック消去)を有する場合、入出力の使用率の低下を招く。直列に相互接続された複数のフラッシュメモリを有するシステムでは、コマンドを処理しているフラッシュメモリ装置が、処理が完了するまで後続のフラッシュメモリ装置に他のコマンドを転送できないため、このコマンド構造はシステム全体の処理速度を減少させる可能性がある。
【００３６】
本発明の実施形態によるシステムに適用可能なコマンド構造の例は、バイト(複数可)を有するコマンドフィールドを含む。たとえば、コマンドフィールドは、装置アドレスおよびバンクアドレス用の第1バイトならびに操作コード用の第2バイトを有する。
【００３７】
図5AにNANDフラッシュメモリで使用するモジュールコマンド構造の例を示す。この特定の例では、モジュールコマンド構造はバイトベースである。図5Aを参照すると、モジュールコマンド構造500は、第1バイト502および第2バイト508(バイト1および2)を含み、各バイトは複数のビットを有する。この特定の例では、コマンド構造の第1バイト502および第2バイト508は、それぞれ8ビットのアドレスおよび8ビットの操作コードを含む。第1バイト502は、宛先メモリ装置に対する6ビットのアドレス504を有する。6ビットのアドレス504は、複数のメモリ装置を含むシステムでメモリ装置を区別するのに使用される。第1バイト502は、複数のメモリバンクを有するメモリ装置で使用するための、メモリ装置のメモリバンクに対する2ビットのアドレス506も含む。コマンド構造の第2バイト508は、メモリ装置によって実行されるコマンドを示す8ビットの操作コード510を含む。表2に操作コードの例を示す。
【００３８】
【表２】
2010501915.tif 000004
【００３９】
コマンド構造には多くの変形がある。2バイトのコマンド構造の別の例では、第1バイトは8ビットの装置アドレス(DA)を有し、第2バイトは4ビットのOPコードおよび4ビットのバンクアドレス(BA)を有する。
【００４０】
図5BにNANDフラッシュメモリで使用するモジュールコマンド構造の別の例を示す。図5Bを参照すると、コマンド構造520は複数のバイトを含む。図示の例では、コマンド構造520は、3バイトの行アドレス522(バイト3〜5)を伴う2バイトのモジュールコマンド構造(バイト1および2)を有する。図5Bでの2バイトのモジュールコマンドの部分的な構造は、図5Aに示す2バイトのモジュールコマンド構造と同一である。第1バイト502は、宛先メモリ装置に対する6ビットのアドレス504およびメモリバンクに対する2ビットのアドレス506を有する。第2バイト508は、8ビットの操作コード510を有する。3バイトの行アドレス522は、第1バイト502で示されるメモリバンク内の行(複数可)に24ビットのアドレス524を提供する。この24ビット(すなわち、3バイト)の行アドレス524は、コマンドが実行される行の位置を指定するのに行アドレスが必要とされるコマンドに使用される。
【００４１】
図5CにNANDフラッシュメモリで使用するモジュールコマンド構造の別の例を示す。図5Cを参照すると、コマンド構造540は複数のバイトを含む。図示の例では、コマンド構造540は、2バイトの列アドレス542(バイト3〜4)を伴う2バイトのモジュールコマンド構造(バイト1および2)を有する。図5Cでの2バイトのモジュールコマンドの部分的な構造は、第1バイト502が宛先メモリ装置に対する6ビットのアドレス504およびメモリバンクに対する2ビットのアドレス506を有する、図5Bの2バイトのモジュールコマンドと同一である。第2バイト508は、8ビットの操作コード510を有する。2バイトのアドレス542は、第1バイト502で示されるメモリバンク内での列(複数可)に16ビットのアドレス544を提供する。この16ビット(すなわち、2バイト)の列アドレス544は、コマンドが実行される列の位置を指定するのに列アドレスが必要とされるコマンドに使用される。
【００４２】
コマンド構造500、520、および540は、メモリ装置に送出されているコマンドに依存する。表2に示すとおり、いくつかのコマンドは、コマンドとともに供給される追加のアドレス(すなわち、行アドレスまたは列アドレス)を必要とする。したがって、コマンド構造500、520、および540は、第2バイト508の操作コードに依存する。
【００４３】
図1および図5A〜図5Cを参照すると、コントローラ104は、ホストシステム102からの要求を、フラッシュメモリ装置によって解釈可能なコマンド構造500、520、および540のうちの1つに変換する。コントローラ104は、操作コード510に基づき、メモリ装置に行アドレスが供給されるか、列アドレスが供給されるか、またはアドレスが供給されないかを決定する。コントローラ104は、演算を実行するためにメモリ装置107-0、107-1によって使用されるコマンドを形成する。
【００４４】
コマンド構造500、520、および540のそれぞれは、メモリ装置アドレス504およびバンクアドレス506の両方を含む。したがって、コマンドの処理は、異なるメモリ装置によって中断および一時停止されうる。さらに、第1バイト502がすべてのアドレス情報を含むので、各メモリ装置は、第2バイト508によって示されたコマンドがそれらのメモリ装置に向けられているのか、または次のメモリ装置に渡されるのかを非常に素早く判定できる。
【００４５】
モジュールコマンド構造500、520、および540は任意のNANDフラッシュメモリ装置で使用可能だが、下記の例では、例としてHLNAND(商標)(HyperLink NAND)フラッシュ装置を使用するモジュールコマンド構造500、520、および540内の様々なコマンド処理について述べる。HLNAND(商標)フラッシュ装置は、2006年8月22日に出願した米国仮特許出願第60/839,329号で詳細に述べられている。
【００４６】
HLNAND(商標)フラッシュ装置用の、操作コード内の特定のコマンドに依存するモジュールコマンド500、520、および540の例示的な入力シーケンスを表3に示す。すべてのコマンド、アドレス、およびデータは、最上位ビット(MSB)から開始して、装置にシフトされ、および装置からシフトされる。HLNAND(商標)フラッシュ装置では、シリアルデータ入力(SDn)は、シリアルデータ入力イネーブル(SDE)が「high」である間に、正または負のクロックエッジでサンプリングされる。表3に示す特定の例では、各コマンドは、図5Aから図5Cに示すコマンド構造500、520、および540に従った「TDA」で表される1バイトの対象アドレス(第1バイト)および表に示された1バイトの操作コード(第2バイト)を含む。SDEが論理「high」になると、1バイトのアドレスが内側にシフトされ、続いて1バイトの操作コードがシフトされる。この動作の例外は、装置に入る第1バイトがページ読み取りコマンドである装置アドレス書き込みである。コマンドに応じて、表3で「R」で表される3バイトの行アドレスまたは表3で「C」で表される2バイトの列アドレスのいずれか(第3バイト〜第5バイト)が続く。データがフラッシュ装置に提供される場合、データは任意の行アドレスまたは列アドレス(必要に応じて)の後に装置に入力され、表3では「D」で表されている。
【００４７】
【表３】
2010501915.tif 000005
【００４８】
様々な操作にモジュールコマンド構造500、520、および540を使用するHLNAND(商標)フラッシュ装置の操作の例を下記に述べる。下記の例は、メモリ装置(たとえば、図1〜図3に示すメモリ装置)の処理を示すタイミング図を含む。タイミング図の信号は、例としてHLNAND(商標)フラッシュ装置について示す。チップイネーブル(CE#)信号は、この信号が「low」のときにメモリ装置がイネーブルにされることを示す。シリアルデータ入力(SDn)信号は、コマンド、アドレス、および入力データを示す。シリアルデータ出力(SQn)信号は、読み取り操作中の出力データの伝送を示す。シリアルデータ入力イネーブル(SDE)信号は、この信号が「high」のときに、コマンドアドレスおよび入力データ(SDn)が装置内にラッチされるようにデータ入力を制御する。シリアルデータ出力イネーブル(SQE)信号は、この信号が「high」のときに出力(SQn)をイネーブルにする。
【００４９】
システム動作の開始時に装置アドレスがすべての直列接続された装置(たとえば、図3に示す構成)に割り振られている場合は、コマンドの第1バイトは装置アドレス書き込みを必要としない。順次装置アドレスの割り振りは、2006年3月28日に出願した米国仮特許出願第60/787,710号および2006年5月23日に出願した米国仮特許出願第60/802,645号に開示されている。
【００５０】
図6Aに本発明の実施形態を適用可能なフラッシュコントローラの例を示す。フラッシュコントローラは、図1、2、および3に示すコントローラ104、112、および116に対応する。
【００５１】
図6Aを参照すると、フラッシュコントローラ310は、中央演算処理装置(CPU)312、ならびにランダムアクセスメモリ(RAM)316および読み取り専用メモリ(ROM)318を有するメモリ314を含む。また、フラッシュコントローラ310は、フラッシュコマンドエンジン322、誤り訂正符号(ECC)マネージャ324、およびフラッシュ装置インターフェイス326を含む。さらに、フラッシュコントローラ310は、ホストインターフェイスコントローラ332およびホストインターフェイス334を含む。CPU312、メモリ314、フラッシュコマンドエンジン322、およびホストインターフェイスコントローラ332は、共通バス330を介して接続される。ホストインターフェイス334は、バス、接続リンク、インターフェイスなど(たとえば、ATA(アドバンストテクノロジーアタッチメント)、PATA(パラレルATA)、SATA(シリアルATA)、USB(ユニバーサルシリアルバス))を介した外部装置への接続用である。ホストインターフェイス334は、ホストインターフェイスコントローラ332によって制御される。CPU312はROM318に格納された命令により動作し、処理されたデータはRAM316に格納される。フラッシュコマンドエンジン322はコマンドを解釈し、フラッシュコントローラ310はフラッシュ装置インターフェイス326を介してフラッシュ装置の動作を制御する。ECCマネージャ324はECCを生成し、ECCの検証が実施される。エラーの場合には、エラーメッセージが生成される。フラッシュコントローラ310は、システムオンチップ、システムインパッケージ、または複数のチップとして構成可能である。
【００５２】
図6Bに、コマンドをフラッシュ装置に発行するときの、図6Aのフラッシュコマンドエンジン322の機能構成要素の例を示す。図1、図6A、および図6Bを参照すると、フラッシュコマンドエンジン322は、ホストシステム102からの要求を、フラッシュメモリ装置によって解釈可能である複数の分離可能なコマンドに解釈する。このようにして、フラッシュコントローラ310は、フラッシュメモリ装置へのアクセスを求める要求を、図5Aから図5Cに示すモジュールコマンド構造を使用する少なくとも1つのコマンドに変換する。フラッシュコントローラ310は、ホストインターフェイスコントローラ332に接続されたバス330との接続を含む。この接続により、フラッシュメモリ装置にアクセスするための、ホストシステム102のプロセッサ103からの要求を受け取る目的でホストシステム102と通信することが可能となる。フラッシュコントローラ310はまた、フラッシュメモリ装置と通信するフラッシュ装置インターフェイス326を含む。フラッシュ装置インターフェイス326は、メモリシステムのフラッシュメモリ装置にコマンドを発行するための別の接続として動作する。
【００５３】
フラッシュコマンドエンジン322は、コマンド構造機構558、バンクインターリーブ機構560、装置インターリーブ機構562、アドレス識別機構564、コマンド識別機構566、行アドレス識別機構568、および列アドレス識別機構570を含む。コマンド構造機構558は、メモリ装置(たとえば、図5Aから図5Cに示すモジュールコマンド構造)で使用されるモジュールコマンド構造を処理する。アドレス識別機構564およびコマンド識別機構566は、ホストシステム102からの要求を分析して、その要求からメモリ装置アドレスおよび/またはバンクアドレスならびにコマンドをそれぞれ抽出する。コマンド識別機構566は、要求の実行に使用される複数のコマンドを決定する。各コマンドは分離可能であり、組み合わされてホストシステム102からの要求を満たす。コマンド識別機構566は、アドレス識別機構564からのアドレスを含めて、情報を収集し、コマンドを形成する。要求を形成する任意のコマンドが行アドレスまたは列アドレスに関係している場合、コマンド識別機構566は、それぞれ行アドレス識別機構568または列アドレス識別機構570を使用して、コマンドの一部を形成する行アドレスまたは列アドレスを入手する。
【００５４】
バンクインターリーブ機構560および装置インターリーブ機構562は、装置インターフェイス326を介して、複数のメモリバンクまたはメモリ装置へ送出される複数のコマンドをそれぞれ順序づける。モジュールコマンド構造は、複数のメモリバンクを有するフラッシュメモリ装置で各メモリバンクを同時に処理できるように構成される。同様に、モジュールコマンド構造は、直列接続されたメモリ装置で同時に処理が行われるように構成される。バンクインターリーブ機構560は、同じメモリ装置内の異なるメモリバンク用のコマンドをインターリーブする(複数のメモリバンクでの並行操作の例については、図16〜図21を参照)。装置インターリーブ機構562は、同じメモリシステム内の異なるメモリ装置用のコマンドをインターリーブする(図22〜図28を参照)。
【００５５】
EECマネージャ324は、誤り訂正符号(ECC)を生成して、あるコマンドが成功し完全に実行されたことを検証する。
【００５６】
図6Bはフラッシュコマンドエンジン322の機能構成要素を示しており、当業者によって認識されるはずの多くの構成で実現可能である。
【００５７】
モジュールコマンドは、ページ読み取りコマンドを含むことができる。コマンド構造では、ページ読み取りコマンドの第1サイクルが入力され、続いて対象ページアドレス内の開始列アドレスの列アドレスおよび対象ページアドレスの行アドレスが入力される。ページ読み取りコマンドの第2サイクルが入力され、その後装置は、内部ページ読み取り操作が完了するまでの期間(たとえば、20μs)、ビジーである。そのような待機期間の後、バーストデータ読み取り操作が実行されて、装置のバッファからデータが取り出される。この操作の開始時からバーストデータ読み取りが終了するまで、装置は他の操作を実行できない。
【００５８】
図7にページ読み取りコマンドの流れを示す。システム用のコントローラは、宛先フラッシュ装置アドレス、メモリバンクアドレス、ページ読み取り操作コード、および読み取られるページを定義する行(複数可)に対する3バイトの行アドレスを含むページ読み取りコマンドをステップ602で生成する。ページ読み取りコマンドは、宛先フラッシュ装置アドレスが、ページ読み取りコマンドを受け取るフラッシュ装置に一致するまで、システムを形成するフラッシュ装置を通過する。行アドレス(複数可)を含むページ読み取りコマンドは、宛先フラッシュ装置で受け取られる。ページ読み取りコマンドは、宛先フラッシュのコマンドレジスタに提供され、アドレスラッチサイクルが3バイトの行アドレスの入力を開始する。アドレスラッチサイクルが終了すると、ページ読み取り操作がフラッシュ装置で開始され、選択されたページ内のデータが読み取られて、時間tR(メモリバンクからデータレジスタへの転送時間、たとえば、20μs)未満でデータレジスタに転送される。
【００５９】
コントローラはページからデータを収集するためにtRの間待機するか、または装置ステータス照会を生成し、フラッシュ装置に送出して、ページがアクセスされたときに通知を受け取る。コントローラが装置ステータスコマンドを生成する場合、コマンドはステップ604でフラッシュ装置に送出される。ページがアクセスされて、メモリバンクがレディであり、ビジーでなくなったことをフラッシュ装置が示すまで、フラッシュ装置はこの要求に連続するビジー表示で応答することになる。コントローラは、ステップ606で連続してチェックを行い、メモリバンクがレディかどうかを決定する。
【００６０】
メモリバンクがレディになるか、またはコントローラがtRの間待機すると、装置アドレスおよび列アドレスを伴うバーストデータ読み取りコマンドがステップ608で発行される。コントローラが装置ステータス照会を送出せず、tRの間待機しない場合、ステップ604およびステップ606は実行されない。装置がバーストデータ読み取りを受け取ると、次いでSQE信号がイネーブルにされ、データレジスタ内のページデータがコマンドで与えられた列アドレスから開始してステップ610で読み取られる。この読み取りは、SQnを介してSQEがlowになるまで継続する。
【００６１】
誤り訂正符号(ECC)がコントローラによってステップ612で生成され、ステップ614で検証される。ECCが検証可能でない場合、エラーメッセージがステップ616で発行される。ECCが検証されると、ページ読み取り操作は成功であり、操作はステップ618で完了する。たとえば、フラッシュ装置コントローラは、ページごとに2048バイトの入力データについてECCパリティビットを生成する。したがって、ECCパリティビットを有する2048バイトのデータがプログラムされる(通常、512バイトごとに1バイトのECC、1ページで2048バイトごとに合計4バイトのECC)。ECCパリティビットは、ページ内の64バイトのスペアフィールドでプログラムされる。ページ読み取りの間、フラッシュ装置コントローラは、ECCパリティ情報とともに2048バイトのデータを読み取る。フラッシュ装置コントローラは、4バイトのECC情報とともに2048バイトのデータを検証する。したがって、ECCプロセスはフラッシュ装置コントローラによって実行され、フラッシュメモリ装置はECCパリティ情報のみを格納する。
【００６２】
図8に、要求したデータを取得するためにコントローラがtRの期間満了まで待機する、フラッシュ装置から見たページ読み取り操作のタイミング図を示す。バンクビジー期間tRに、バーストデータ読み取りコマンドが発行され、SQEがイネーブルにされた場合、すべての出力データは無効になる。
【００６３】
図9に、フラッシュ装置から見た、コントローラからの装置ステータスを伴うページ読み取り操作のタイミング図を示す。
【００６４】
モジュールコマンドは、ページプログラムコマンドを含むことができる。コマンド構造では、ページプログラムコマンドの第1サイクルが入力され、続いて対象ページアドレス内の開始列アドレスの列アドレスおよび対象ページアドレスの行アドレスが入力される。次いで入力データがロードされ、続いてページプログラムコマンドの第2サイクルがロードされる。内部ページプログラム操作が完了するまでの間、装置は第2サイクルの後のある期間(たとえば、200μs)にわたってビジーとなる。これらのステップは、ページプログラム操作が完了される場合、すべて1つのプロシージャと見なされ、割り込み不可である。
【００６５】
図10にフラッシュ装置コントローラからのページプログラムコマンドの流れを示す。システム用のコントローラは、宛先フラッシュ装置アドレス、メモリバンクアドレス、バーストデータロード開始操作コード、およびプログラムされる列(複数可)の2バイトの列アドレスを含むバーストデータロード開始コマンドをステップ902で生成する。バーストデータロード開始コマンドは、宛先フラッシュ装置アドレスが、バーストデータロード開始コマンドを受け取るフラッシュ装置に一致するまで、システムを形成するフラッシュ装置を通過する。バーストデータロード開始コマンドは、ステップ904で2バイトの列アドレスとともに、次いでステップ906で入力データとともに宛先フラッシュ装置のコマンドレジスタに提供される。バーストデータロード開始コマンドは、宛先フラッシュ装置内のすべてのデータレジスタをリセットする。バーストデータロード開始操作がすべてのデータをフラッシュ装置に入力しなかった場合、後続のバーストデータロードコマンドを使用して、すべてのデータを装置に配置することができる。
【００６６】
フラッシュ装置コントローラは、宛先装置アドレスおよびメモリバンクアドレス、ならびにページプログラム操作コードおよびページプログラム操作で書き込まれる行を指定する行アドレス(複数可)を指定するページプログラムコマンドを、ステップ908で再び生成する。ページプログラムコマンドは、データがバーストデータロード開始コマンドによりフラッシュ装置にロードされてから時間tDDEの後に、コントローラによって生成される。これにより、ロードされたデータが選択されたページ位置にプログラムされることになる。
【００６７】
コントローラは、ステップ910で発行された装置ステータスコマンドを使用して、ページプログラム操作のステータスを監視する。フラッシュ装置は、ページがアクセスされ、フラッシュ装置のメモリバンクがレディであり、ビジーでなくなったことを示すまで、この要求に連続するビジー表示で応答することになる。コントローラは、ステップ912で連続してチェックを行い、メモリバンクがレディかどうかを決定する。メモリバンクがレディになると、コントローラはページプログラム操作が成功したかどうかをチェックする。成功しなかった場合、ステップ916でエラーが出力され、そうでなければステップ918でページプログラム操作は完了する。
【００６８】
図11に、バーストデータロード開始がすべてのデータを装置にロードするのに十分である、フラッシュ装置から見たページプログラム操作のタイミング図を示す。図12に、すべてのデータを装置にロードするためにバーストデータロード開始操作の後にバーストデータロード操作が必要な、ページプログラム操作のタイミング図を示す。
【００６９】
モジュールコマンドは、ブロック消去コマンドを含むことができる。コマンド構造では、ブロック消去コマンドの第1サイクルが入力され、続いて対象ブロックアドレスの行アドレスが入力される。ブロック消去コマンドの第2サイクルは、装置が内部ブロック消去操作を完了するのに1.5msの間ビジーであった後に入力される。
【００７０】
図13に、コントローラからのブロック消去操作の流れを示す。システム用のフラッシュ装置コントローラは、ステップ1202で装置アドレス、メモリバンクアドレス、操作コードを含むブロック消去用アドレス入力コマンドを生成し、ステップ1204で3バイトの行アドレスを生成する。ステップ1206で一度に2つ以上のブロックが消去される場合、これらの追加のブロックを指定するために、追加のブロック消去用アドレス入力コマンドがコントローラによって生成される。すべてのブロックが指定されると、コントローラはステップ1208でブロック消去コマンドを生成して、選択されたブロックに対してブロック消去操作を実行するフラッシュ装置を開始する。コントローラによって生成されたブロック消去コマンドは、装置アドレス、メモリバンクアドレス、および操作コードを含む。
【００７１】
コントローラは、メモリバンクが利用可能になり、ブロック消去操作が完了するときを決定するのに使用されるステータスコマンドをステップ1210で発行する。コントローラは、ステップ1212で、メモリバンクが利用可能になるまで装置ステータスについて連続してチェックする。ブロック消去操作が完了すると、コントローラはステップ1214で操作が成功したかどうかをチェックする。操作が成功しなかった場合、ステップ1216でエラーが発行され、そうでなければステップ1218でブロック消去操作は完了する。
【００７２】
図14に、フラッシュ装置から見た、単一のブロックのみが消去されるブロック消去操作のタイミング図を示す。図15に、複数のブロックが消去されるブロック消去操作のタイミング図を示す。
【００７３】
図5Aから図5Cに示すモジュールコマンド構造は、装置アドレスとともに第1バイトに供給されるメモリバンクアドレスを提供する。このメモリバンクアドレスは、フラッシュメモリ装置が、2つ以上のメモリバンクを有する環境で、コマンドの宛先のメモリバンクを指定するために使用される。モジュールコマンド構造を有するコマンドは、そのコマンドでメモリバンクアドレスを指定するので、各メモリバンクが独立して動作する構成を有するフラッシュ装置は、一度にフラッシュ装置の2つ以上のメモリバンクで操作を実行させることができる。HLNAND(商標)フラッシュ装置は、そのようなフラッシュメモリの一例である。
【００７４】
最上位でカスケード接続される複数のHLNAND(商標)フラッシュ装置のピン構成は、単一の装置の1つと同一でよい。直列相互接続構成では、各装置は、たとえばカスケーディングパス上に追加のハーフクロックサイクル待機時間を導入する。したがって、カスケード接続された装置の数は、直列相互接続構成における操作の合計クロック待機時間を決定する。相互接続された複数のメモリバンクを有する複数の装置の構成では、コントローラは、時間のかかるコア操作にアクセスしている多くの異なるプロシージャを、コマンドのインターリーブによって効果的にスケジュールできる。
【００７５】
図16から図21に、単一のフラッシュメモリ装置において、2つのメモリバンクで実行されている並行操作を示す。
【００７６】
図16に、同じフラッシュメモリ装置での2つのメモリバンクからの並行ページ読み取り操作の流れを示す。ページ読み取りコマンドがステップ1502でメモリバンク0に与えられる。メモリバンク0は次いで、要求されたページにアクセスすることにより要求の処理に進む。メモリバンク0がページ読み取りコマンドを処理している間に、第2のページ読み取りコマンドがステップ1504でメモリバンク1に与えられる。メモリバンク1は次いで、メモリバンク0が並行にそれ自体の要求を処理している間に、要求されたページにアクセスすることにより要求の処理に進む。ページ読み取り要求がメモリバンク0に与えられた後の時間tR1をステップ1506で経過させてから、ステップ1502で発行されたページ読み取りコマンドから得られるデータにアクセスするために、バーストデータ読み取りコマンドがステップ1508でメモリバンク0に与えられる。ページ読み取り要求がメモリバンク1に与えられた後の時間tR2をステップ1510で経過させてから、ステップ1504で発行されたページ読み取りコマンドから得られるデータにアクセスするために、バーストデータ読み取りコマンドがステップ1512でメモリバンク1に与えられる。
【００７７】
図17に、図16に示した並行ページ読み取り操作のタイミングを示す。
【００７８】
図18に、同じフラッシュメモリ装置の2つのメモリバンクでの並行ページプログラム操作の流れを示す。ステップ1702で、バーストデータロード開始コマンドが、メモリバンク0にプログラムされるデータとともにメモリバンク0に与えられる。ステップ1704で、バーストデータロード開始コマンドが、メモリバンク1にプログラムされるデータとともにメモリバンク1に与えられる。ステップ1706で、ページプログラムコマンドがメモリバンク0に与えられ、ステップ1708で、ページプログラムコマンドがメモリバンク1に与えられる。各メモリバンクのページプログラム操作の完了の進行を監視するために、ステータス読み取りコマンドがステップ1710でメモリバンク0に与えられ、ステップ1712でメモリバンク1に与えられる。ステータスが各メモリバンクについてパスを返すと、ページプログラム操作は完了し、他の操作がメモリバンクで実行可能になる。
【００７９】
図18に、ページプログラムコマンドが各バンクに提供される前に、各メモリバンクに与えられるバーストデータロード開始コマンドを示す。バーストデータロード開始コマンドおよびページプログラムコマンドは両方とも、いずれかのコマンドがメモリバンク1に与えられる前に、メモリバンク0に与えられうる。図19に、バーストデータロード開始コマンドおよびページプログラムコマンドが、いずれかのコマンドがメモリバンク1に与えられる前にメモリバンク0に与えられる、並行ページプログラム操作のタイミングを示す。
【００８０】
図20に、同じフラッシュメモリ装置の2つのメモリバンクでの並行ブロック消去操作の流れを示す。ステップ1902で、ブロック消去用アドレス入力コマンドが、消去されるブロックのアドレスとともにメモリバンク0に与えられる。ステップ1904で、ブロック消去用アドレス入力コマンドが、消去されるブロックのアドレスとともにメモリバンク1に与えられる。ステップ1902で受け取ったブロック消去用アドレス入力コマンドで示されたブロックが消去されることを受け取りしだい、ステップ1906でブロック消去コマンドがメモリバンク0に与えられる。ステップ1904で受け取ったブロック消去用アドレス入力コマンドで示されたブロックが消去されることを受け取りしだい、ステップ1908でブロック消去コマンドがメモリバンク1に与えられる。ブロック消去操作の進行を監視するために、ステータス読み取りコマンドがステップ1910でメモリバンク0に与えられ、またステップ1912でメモリバンク1に与えられる。ステータスが各メモリバンクについてパスを返すと、ブロック消去操作は完了し、他の操作がメモリバンクで実行可能になる。
【００８１】
図20に、ブロック消去コマンドが各バンクに提供される前に各メモリバンクに与えられるブロック消去用アドレス入力コマンドを示す。ブロック消去用アドレス入力コマンドおよびブロック消去コマンドは両方とも、いずれかのコマンドがメモリバンク1に与えられる前に、メモリバンク0に与えられうる。図21に、ブロック消去用アドレス入力コマンドおよびブロック消去コマンドが、いずれかのコマンドがメモリバンク1に与えられる前にメモリバンク0に与えられる、並行ブロック消去操作のタイミングを示す。
【００８２】
メモリバンクによって並行に実行される操作は、同じ操作である必要はない。図22〜図25は、同じフラッシュメモリ装置の2つのメモリバンクによって並行に実行される異なる操作を示す。
【００８３】
図22に、同じフラッシュメモリ装置の2つのメモリバンクでの並行するページ読み取り操作およびページプログラム操作の流れを示す。ページ読み取りコマンドがステップ2102でメモリバンク0に与えられる。メモリバンク0がページ読み取りコマンドで示されたページにアクセスしている間に、バーストデータロード開始コマンドが、メモリバンク1にプログラムされるデータとともにステップ2104でメモリバンク1に与えられる。ページプログラムコマンドが、データのメモリバンク1へのプログラムを開始するためにステップ2106でメモリバンク1に与えられる。メモリバンク0が要求されたデータを取り出せるように、ページ読み取りコマンドがステップ2102で与えられた後の時間tRをステップ2108で経過させてから、ページ読み取り操作によって取り出されたデータにアクセスするために、バーストデータ読み取りコマンドがステップ2110でメモリバンク0に与えられる。ページプログラム操作の進行を監視するために、ステータス読み取りコマンドがステップ2112でメモリバンク1に与えられる。ステータスがメモリバンク1についてパスを返すと、ページプログラム操作は完了し、他の操作がメモリバンク1で実行可能になる。
【００８４】
図23に、図22の並行するページ読み取り操作およびページプログラム操作のタイミングを示す。
【００８５】
図24に、ページ読み取り操作がメモリバンク0で実行され、ページプログラム操作がメモリバンク1で実行される、同じフラッシュメモリ装置の2つのメモリバンクで実行される一時停止操作および再開操作の流れを示す。バーストデータロード開始が、メモリバンク1にプログラムされるデータとともにステップ2302でメモリバンク1に与えられる。バーストデータロード開始操作ですべてのデータがメモリバンク1にロードされる前に、この操作は、ページ読み取りコマンドがステップ2306でメモリバンク0に与えられるときに一時停止される。ページ読み取りコマンドがメモリバンク0で完全に受け取られた後、およびメモリバンク0が要求されたページにアクセスしている間に、メモリバンク1での操作が残りのデータとともにバーストデータロード操作を使用してステップ2308で再開される。データがメモリバンク1に提供されると、ページプログラムコマンドがステップ2310でメモリバンク1に与えられて、そこでデータのプログラミングを開始する。ページ読み取りコマンドがステップ2306でメモリバンク0に与えられた後に、ステップ2312で時間tRを経過させる。tRが経過すると、バーストデータ読み取りコマンドがステップ2314でメモリバンク0に与えられて、要求されたデータのメモリバンク0からの抽出を開始する。バーストデータ読み取りコマンドは、ステータス読み取りコマンドが、メモリバンクのステータスを監視するためにステップ2318でメモリバンク1に与えられるときに、ステップ2316で一時停止される。バーストデータ読み取りコマンドは、ステータス読み取りコマンドが受け取られると、ステップ2320で再開される。ページプログラム操作が完了すると、メモリバンク1はステータス読み取りコマンドにパスを返し、他の操作がメモリバンク1で実行可能になる。
【００８６】
図25に、図24の一時停止および再開されるページ読み取り操作およびページプログラム操作のタイミングを示す。
【００８７】
図26から図28に、複数の装置間の操作のインターリーブを示す。図26に、フラッシュ装置0およびフラッシュ装置1のメモリバンク0およびメモリバンク1の両方でのページ読み取り操作、フラッシュ装置2のメモリバンク0でのブロック消去操作、フラッシュ装置2のメモリバンク1およびフラッシュ装置3のメモリバンク0でのページプログラム操作、およびフラッシュ装置3のメモリバンク1でのページ対消去操作を示す。図27に、フラッシュ装置0、1、2、および3のメモリバンク0および1でのページ読み取り操作を示す。図28に、フラッシュ装置0のメモリバンク0でのページプログラム操作とその後に続くページ読み取り操作、ページ読み取り操作とその後に続くフラッシュ装置0のメモリバンク1でのブロック消去操作、フラッシュ装置1および3のメモリバンク0ならびにフラッシュ装置2および3のメモリバンク1でのブロック消去操作、フラッシュ装置1のメモリバンク1でのページプログラム操作、およびページ読み取り操作とその後に続くフラッシュ装置2のメモリバンク0でのページプログラム操作を示す。
【００８８】
上述の実施形態では、メモリ装置をフラッシュメモリ装置として述べている。メモリ装置は、たとえば、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、磁気抵抗ランダムアクセスメモリ(MRAM)などの、ランダムアクセスメモリ装置でもよいことは、当業者には明らかである。また、メモリシステムに含まれる複数のメモリ装置は、同一種類の装置または複数の種類が混じった装置でもよい。混合した種類の直列接続された複数の装置の構成は、2006年12月6日に出願した米国仮特許出願第60/868,773号に開示されている。
【００８９】
上述の実施形態では、装置の要素および回路は、簡略化のため、図に示すように互いに接続されている。実際の適用においては、これらの装置、要素、回路などは、互いに直接接続することも、他の装置、要素、回路などを介して間接的に接続することもできる。したがって、実際の構成では、要素、回路、および装置は、直接または間接的に互いに連結される。
【００９０】
上述の本発明の実施形態は例示のみを目的としている。特定の実施形態についての変更、修正、および変形は、本明細書に付随する特許請求の範囲によってのみ定義される本発明の範囲から逸脱することなく、当業者によって実施されることができる。
【符号の説明】
【００９１】
102  ホストシステム
103  プロセッサ
104  コントローラ
106  メモリシステム
107-0  フラッシュメモリ装置
107-1  フラッシュメモリ装置
108-0  フラッシュメモリ装置
108-1  フラッシュメモリ装置
108-2  フラッシュメモリ装置
108-3  フラッシュメモリ装置
109-0  フラッシュメモリ装置
109-1  フラッシュメモリ装置
109-2  フラッシュメモリ装置
109-3  フラッシュメモリ装置
112  コントローラ
114  共通バス
116  コントローラ
310  フラッシュコントローラ
312 CPU
314  メモリ
316 RAM
318 ROM
322  フラッシュコマンドエンジン
324 ECCマネージャ
326  フラッシュ装置インターフェイス
330  共通バス
332  ホストインターフェイスコントローラ
334  ホストインターフェイス
400 NANDフラッシュ装置
402  メモリバンク
404 S/Aおよびデータレジスタ
406  制御およびプリデコーダ
408  行デコーダ
410 I/Oバッファおよびラッチ
412  出力ドライバ
414  コマンドレジスタ
416  制御論理
418  アドレスバッファおよびラッチ
500  モジュールコマンド構造
502  第1バイト
504  メモリ装置アドレス
506  バンクアドレス
508  第2バイト
510  操作コード
520  コマンド構造
522  行アドレス
524  行アドレス
540  コマンド構造
542  列アドレス
544  列アドレス
558  コマンド構造機構
560  バンクインターリーブ機構
562  装置インターリーブ機構
564  アドレス識別機構
566  コマンド識別機構
568  行アドレス識別機構
570  列アドレス識別機構
【図１】
2010501915.tif 000006
【図２】
2010501915.tif 000007
【図３】
2010501915.tif 000008
【図４】
2010501915.tif 000009
【図５Ａ】
2010501915.tif 000010
【図５Ｂ】
2010501915.tif 000011
【図５Ｃ】
2010501915.tif 000012
【図６Ａ】
2010501915.tif 000013
【図６Ｂ】
2010501915.tif 000014
【図７】
2010501915.tif 000015
【図８】
2010501915.tif 000016
【図９】
2010501915.tif 000017
【図１０】
2010501915.tif 000018
【図１１】
2010501915.tif 000019
【図１２】
2010501915.tif 000020
【図１３】
2010501915.tif 000021
【図１４】
2010501915.tif 000022
【図１５】
2010501915.tif 000023
【図１６】
2010501915.tif 000024
【図１７】
2010501915.tif 000025
【図１８】
2010501915.tif 000026
【図１９】
2010501915.tif 000027
【図２０】
2010501915.tif 000028
【図２１】
2010501915.tif 000029
【図２２】
2010501915.tif 000030
【図２３】
2010501915.tif 000031
【図２４】
2010501915.tif 000032
【図２５】
2010501915.tif 000033
【図２６】
2010501915.tif 000034
【図２７】
2010501915.tif 000035
【図２８】
2010501915.tif 000036
【国際調査報告】
2010501915.tif 000037
2010501915.tif 000038