説明

スケーラブルメモリシステム

【課題】任意の個数のメモリデバイスをサポートできるメモリシステムアーキテクチャを提供する。
【解決手段】メモリシステムは直列接続された複数のメモリデバイスを有する。各メモリデバイスは、他のメモリデバイス及びメモリコントローラとの間用の直列入出力インターフェースを有し、メモリコントローラはビットストリームでコマンドを出し、ビットストリームはモジュラコマンドプロトコルに従う。コマンドはアドレス情報及びデバイスアドレスと共にオペレーションコードを含み、アドレッシングされたメモリデバイスだけがコマンドに作用する。データ出力ストローブ信号及びコマンド入力ストローブ信号がデータのタイプおよびデータの長さを識別するために、各出力データストリーム及び入力コマンドデータストリームと並列に供給される。モジュラコマンドプロトコルは性能改善のために各メモリデバイス内での同時動作のために使用される。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2006年8月22日出願の米国仮特許出願第60/839329号、2006年12月6日出願の米国仮特許出願第60/868773号、2007年2月16日出願の米国仮特許出願第60/902003号、2007年3月2日出願の米国仮特許出願第60/892705号、および2007年8月17日出願の米国特許出願第11/840692号の優先権の利益を主張するものである。
【0002】
本発明は、全般的にはメモリシステムに関するものである。具体的には、本発明は、マスストレージアプリケーション用の直列接続された複数のメモリデバイスによるメモリシステムに関するものである。
【背景技術】
【0003】
フラッシュメモリは、例えばデジタルカメラおよびポータブルデジタル音楽プレイヤなどの消費者エレクトロニクスのマスストレージとして広く使用される一般的に使用されるタイプの不揮発性メモリである。現在入手可能なフラッシュメモリチップの密度は、32Gビット(4GB)までとすることができ、これは、1つのフラッシュチップのサイズが小さいので、人気のあるUSBフラッシュドライブでの使用に適切である。
【0004】
図1は、既知のNANDフラッシュメモリの1バンクの全般的なブロック図である。当業者は、フラッシュメモリデバイスが任意の個数のバンクを有することができることを理解している。バンク30は、k+1個のブロックに編成される。各ブロックは、互いに直列接続されたi+1個までのフラッシュメモリセルを有する、NANDメモリセルストリングからなる。したがって、ワード線WL0からWLiまでは、メモリセルストリング内で各フラッシュメモリセルのゲートに接続される。信号SSL(ストリング選択線)に接続されたストリング選択デバイスは、メモリセルストリングをビット線に選択的に接続し、信号GSL(グラウンド選択線)に接続されたグラウンド選択デバイスは、メモリセルストリングをVSSなどのソース線に選択的に接続する。ストリング選択デバイスおよびグラウンド選択デバイスは、nチャネルトランジスタである。バンク30のすべてのブロックに共通するj+1本のビット線があり、各ビット線は、ブロック[0]から[k]までのそれぞれの1つのNANDメモリセルストリングに接続される。各ワード線(WL0からWLiまで)、SSL、およびGSL信号は、ブロック内の各NANDメモリセルストリング内の同一の対応するトランジスタデバイスに接続される。当業者が知っているとおり、あるワード線に沿ったフラッシュメモリセルに格納されるデータを、データのページと称する。
【0005】
バンク30の外で各ビット線に接続されるのが、フラッシュメモリセルの1ページにプログラムされる書き込みデータまたはフラッシュメモリセルからアクセスされる読み取りデータの1ページを格納するデータレジスタ32である。データレジスタ32は、フラッシュメモリセルの1ページから読み取られるデータを感知するセンス回路をも含む。プログラミング動作中に、データレジスタは、プログラム検証動作を実行して、データが選択されたワード線に接続されたフラッシュメモリセルに正しくプログラムされたことを保証する。バンク30の各メモリセルは、単一ビットのデータまたは複数ビットのデータを格納することができる。一部のフラッシュメモリデバイスは、スループットを高めるために複数セットのデータレジスタを有する。
【0006】
8メガピクセルデジタルカメラと、音楽機能およびビデオ機能を有するポータブルデジタルエンターテイメントデバイスの出現は、単一のフラッシュメモリデバイスによって満足することができない大量のデータを格納するための超大容量の需要に拍車をかけた。したがって、複数のフラッシュメモリデバイスが、使用可能な記憶容量を効果的に増やすために、1つのメモリシステムに一緒に組み合わされる。例えば、20GBのフラッシュ記憶密度が、そのような応用例に必要になる場合がある。
【0007】
図2は、ホストシステム12に一体化された従来技術のフラッシュメモリシステム10のブロック図である。フラッシュメモリシステム10は、ホストシステム12と通信するメモリコントローラ14と、複数の不揮発性メモリデバイス16とを含む。ホストシステムは、マイクロコントローラ、マイクロプロセッサ、またはコンピュータシステムなどの処理デバイスを含む。図2のフラッシュメモリシステム10は、1つのチャネル18を含むように構成され、メモリデバイス16は、チャネル18に並列に接続される。当業者は、メモリシステム10が、それに接続された4つより多いまたはこれより少ないメモリデバイスを有することができることを理解する。
【0008】
チャネル18は、共通バスのセットを含み、この共通バスは、そのすべての対応するメモリデバイスに接続されたデータ線および制御線を含む。各メモリデバイスは、メモリコントローラ14によって供給されるめいめいのチップ選択信号CE#1、CE#2、CE#3、およびCE#4を用いてイネーブル/ディスエーブルされる。「#」は、信号がアクティブロウ論理レベル信号であることを示す。メモリコントローラ14は、ホストシステム12の動作に基づいて、チャネル18を介して選択されたメモリデバイスにコマンドおよびデータを発行する責任を負う。メモリデバイスから読み取られたデータは、チャネル18を介してメモリコントローラ14およびホストシステム12に戻って転送される。フラッシュメモリシステム10の動作は、クロックCLKに同期化され、クロックCLKは、各メモリデバイス16に並列に供給される。フラッシュメモリシステム10は、一般に、マルチドロップ構成と呼ばれ、マルチドロップ構成では、メモリデバイス16が、チャネル18に関して並列に接続される。
【0009】
フラッシュメモリシステム10では、不揮発性メモリデバイス16を互いに同一とすることができ、不揮発性メモリデバイス16は、通常はNANDフラッシュメモリデバイスとして実施される。当業者は、フラッシュメモリがバンクに編成され、各バンクが、ブロック消去を容易にするためにブロックに編成されることを理解することができる。ほとんどの市販NANDフラッシュメモリデバイスは、メモリの2つのバンクを有するように構成される。
【0010】
システムの性能に悪影響を及ぼす特定の問題がある。フラッシュメモリシステム10の構成は、物理的性能限界を課す。多数の並列信号がシステムにまたがって伸びる状態で、それらが担持する信号の信号完全性は、クロストーク、信号スキュー、および同時スイッチングノイズ(SSN)によって劣化させられる。そのような構成での電力消費は、フラッシュコントローラとフラッシュメモリデバイスとの間の各信号トラックがシグナリングのために頻繁に充電され、放電されるので、問題になる。システムクロック周波数の増加に伴って、電力消費が増える。
【0011】
チャネルに並列に接続できるメモリデバイスの個数にも実用的限界がある。というのは、単一のメモリデバイスの駆動能力が、長い信号トラックの負荷に対して相対的に低いからである。さらに、メモリデバイスの数が増えるにつれて、より多くのチップイネーブル信号(CE#)が必要になり、クロック信号CLKを、追加のメモリデバイスにルーティングする必要が生じる。外部クロック分配に起因するクロック性能問題は、当技術分野で周知であるが、対処される必要がある。したがって、多数のメモリデバイスを有するメモリシステムに対処するためには、より多くのチャネルを有するコントローラを使用しなければならないか、システムをより低い周波数でクロッキングするかのいずれかになる。複数のチャネルおよび追加のチップイネーブル信号を有するように構成されたコントローラは、メモリシステムのコストを高める。そうでない場合に、メモリシステムは、少数のメモリデバイスに制限される。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】米国仮特許出願第60/839329号
【特許文献2】米国仮特許出願第60/868773号
【特許文献3】米国仮特許出願第60/902003号
【特許文献4】米国仮特許出願第60/892705号
【特許文献5】米国特許出願第11/840692号
【特許文献6】米国特許出願第11/622828号
【特許文献7】米国特許出願第11/750649号
【特許文献8】米国特許出願第11/692452号
【特許文献9】米国特許出願第11/692446号
【特許文献10】米国特許出願第11/692326号
【特許文献11】米国特許出願第11/771023号
【特許文献12】米国特許出願第11/324023号
【発明の概要】
【発明が解決しようとする課題】
【0013】
したがって、任意の個数のメモリデバイスをサポートすることができるメモリシステムアーキテクチャを提供することが望ましい。
【課題を解決するための手段】
【0014】
以前のメモリシステムの少なくとも1つの不利益を回避するか軽減することが、諸実施形態の態様である。
【0015】
第1の態様では、コントローラとメモリデバイスとを有するメモリシステムが提供される。コントローラは、直列ビットストリームコマンドパケットを供給する直列チャネル出力ポートと、直列ビットストリーム読み取りデータパケットを受け取る直列チャネル入力ポートとを有する。直列ビットストリームコマンドパケットは、オペレーションコードおよびデバイスアドレスを含む。メモリデバイスは、コントローラから直列ビットストリームコマンドパケットを受け取る入力ポートを有し、デバイスアドレスがメモリデバイスに対応する場合にオペレーションコードを実行する。メモリデバイスは、出力ポートを介して直列ビットストリームコマンドパケットを提供し、オペレーションコードが読み取り機能に対応する場合に出力ポートを介して直列ビットストリーム読み取りデータパケットをその後に提供する。
【0016】
本態様の実施形態によれば、メモリデバイスとコントローラとの間に直列に結合された少なくとも1つの介在するメモリデバイスがある。前記少なくとも1つの介在するメモリデバイスは、直列ビットストリームコマンドパケットを受け取り、これをメモリデバイスに渡す入力ポートを有し、その後、デバイスアドレスが少なくとも1つの介在するメモリデバイスに対応し、オペレーションコードが読み取り機能に対応する場合に、直列ビットストリーム読み取りデータパケットを提供する。
【0017】
さらなる実施形態によれば、相補クロック信号が、メモリデバイスおよび少なくとも1つの介在するメモリデバイスに並列に提供され、あるいは、相補クロック信号が、少なくとも1つの介在するメモリデバイスに提供され、少なくとも1つの介在するメモリデバイスによってメモリデバイスに渡され、メモリデバイスによってコントローラに渡される。
【0018】
本態様のさらなる実施形態では、メモリシステムは、拡張モジュールおよびジャンパのうちの1つを受ける、コントローラとメモリデバイスとの間の拡張リンクを含む。少なくとも1つの介在するメモリデバイスは、拡張リンクとの電気的結合のために構成された結合手段を有する拡張モジュールの一部である。
【0019】
さらなる実施形態によれば、メモリデバイスおよび少なくとも1つの介在するメモリデバイスは、それぞれ、ネイティブメモリコアと、直列ビットストリームコマンドパケットに応答してネイティブメモリコアを制御する直列インターフェースおよび制御論理ブロックとを含む。メモリデバイスネイティブメモリコアおよび少なくとも1つの介在するメモリデバイスネイティブメモリコアは、NANDフラッシュベースとすることができ、あるいは、DRAMメモリコア、SRAMメモリコア、NANDフラッシュメモリコア、およびNORフラッシュメモリコアとすることができる。
【0020】
この態様のもう1つの実施形態によれば、直列ビットストリームコマンドパケットは、直列ビットストリームコマンドパケットのサイズが可変であるモジュラ構造を有する。直列ビットストリームコマンドパケットは、オペレーションコードおよびデバイスアドレスを提供するコマンドフィールドを含むことができ、コマンドフィールドは、オペレーションコードを提供する第1サブフィールドと、デバイスアドレスを提供する第2サブフィールドとを含む。直列ビットストリームコマンドパケットは、オペレーションコードおよびデバイスアドレスを提供するコマンドフィールドと、ロウアドレスおよびカラムアドレスのうちの1つを提供するアドレスフィールドとを含むことができる。直列ビットストリームコマンドパケットは、オペレーションコードおよびデバイスアドレスを提供するコマンドフィールドと、ロウアドレスおよびカラムアドレスのうちの1つを提供するアドレスフィールドと、書き込みデータを提供するデータフィールドとを含むことができる。
【0021】
前の実施形態の一態様によれば、コントローラは、直列ビットストリームコマンドパケットと並列にコマンドストローブを提供し、コマンドストローブは、直列ビットストリームコマンドパケットの長さと一致するアクティブレベルを有する。
【0022】
さらに、コントローラは、直列ビットストリーム読み取りデータパケットと並列にデータ入力ストローブを提供し、データ入力ストローブは、直列ビットストリーム読み取りデータパケットの長さと一致するアクティブレベルを有する。メモリデバイスは、デバイスアドレスがメモリデバイスに対応するときに、コマンドストローブのアクティブレベルに応答して直列ビットストリームコマンドパケットをラッチし、メモリデバイス出力ポートは、データ入力ストローブのアクティブレベルに応答してイネーブルされる。コマンドストローブおよびデータ入力ストローブは、オーバーラップしない信号であり、少なくとも1つのデータラッチングクロックエッジによって分離される。さらに、コマンドストローブは、少なくとも1つのデータラッチングクロックエッジによって隣接するコマンドストローブから分離され、データ入力ストローブは、少なくとも1つのデータラッチングクロックエッジによって隣接するデータ入力ストローブから分離される。
【0023】
第2の態様では、直列に接続されたメモリデバイスを有するメモリシステム用の一連のビットを有するコマンドパケットが提供される。このコマンドパケットは、特定のメモリ動作を実行するために直列に接続されたメモリデバイスのメモリデバイスを選択するコマンドフィールドを含む。
【0024】
第2の態様の実施形態において、コマンドフィールドは、メモリデバイスを選択するデバイスアドレスを提供する第1サブフィールドと、特定のメモリ動作に対応するオペレーションコードを提供する第2サブフィールドとを含む。コマンドパケットは、オペレーションコードが読み取り動作または書き込み動作に対応するときにロウアドレスおよびカラムアドレスのうちの1つを提供する、コマンドフィールドに続くアドレスフィールドをさらに含み、アドレスフィールドは、ロウアドレスまたはカラムアドレスに対応するビット長を有する。オペレーションコードが書き込み動作に対応するときにメモリデバイスでの格納のための書き込みデータを提供するデータフィールドが、アドレスフィールドに続き、データフィールドは、書き込みデータに対応するビット長を有する。
【0025】
第3の態様では、直列接続されたメモリデバイスを有するメモリシステムの選択されたメモリデバイス内で同時動作を実行する方法が提供される。この方法は、第1コマンドを受け取るステップと、第1コマンドに応答して、選択されたメモリデバイスの第1メモリバンク内でコア動作を実行するステップと、第1メモリバンク内のコア動作の実行中に第2コマンドを受け取るステップと、第2コマンドに応答して選択されたメモリデバイスの第2メモリバンク内でコア動作を実行するステップとを含む。
【0026】
この態様の実施形態によれば、この方法は、第1メモリバンクおよび第2メモリバンクのうちの1つからの結果情報を要求する第3コマンドを受け取るステップと、第3コマンドに応答して結果情報を含む読み取りデータパケットを出力するステップとをさらに含む。結果情報は、ステータスレジスタデータおよび読み取りデータのうちの1つを含む。
【0027】
この態様のもう1つの実施形態では、第1コマンド、第2コマンド、および第3コマンドは、オペレーションコードおよびデバイスアドレスを提供する必須コマンドフィールドと、オペレーションコードが読み取り動作または書き込み動作に対応するときにロウアドレスおよびカラムアドレスのうちの1つを提供する、コマンドフィールドに続くオプションのアドレスフィールドと、オペレーションコードが書き込み動作に対応するときに書き込みデータを提供する、アドレスフィールドに続くオプションのデータフィールドとを含むように論理的に構成された一連のビットを含むコマンドパケットである。
【0028】
この実施形態の態様では、第1コマンドストローブは、第1コマンドと並列に受け取られ、第1コマンドストローブは、第1コマンドの長さに対応するアクティブ持続時間を有し、第2コマンドストローブは、第2コマンドと並列に受け取られ、第2コマンドストローブは、第2コマンドの長さに対応するアクティブ持続時間を有する。第1コマンドストローブおよび第2コマンドストローブは、少なくとも1つのデータラッチングクロックエッジだけ分離される。さらに、データ入力ストローブは、データ入力ストローブがアクティブレベルである間に読み取りデータパケットの出力をイネーブルするために受け取られ、第2コマンドストローブおよびデータ入力ストローブが、少なくとも1つのデータラッチングクロックエッジだけ分離されるようになっている。
【0029】
もう1つの実施形態において、この方法は、第1コマンドを受け取る前に選択されたメモリデバイスをパワーアップするステップをさらに含む。パワーアップするステップは、パワー遷移の前に選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートするステップと、制御信号がアサートされている間に選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させるステップと、電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、選択されたメモリデバイスをデフォルト状態から解放するために制御信号をデアサートするステップであって、これによって選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、ステップとを含む。第2電圧レベルは、安定した回路動作のための最小電圧レベルまたは電源の最大動作電圧レベルとすることができる。第1電圧レベルは、電源の低電力モード動作電圧レベルまたは電源の不在に対応するものとすることができる。
【0030】
さらなる実施形態において、メモリデバイスをデフォルト状態に維持するステップは、メモリデバイス内のデバイスレジスタにデフォルト値をセットするステップを含み、デバイスレジスタは、コマンドレジスタを含む。この方法のさらなるステップは、デフォルト状態からのメモリデバイスの解放の際にデバイス初期化を実行することを含むことができる。デバイス初期化を実行するステップは、メモリデバイスのデバイスアドレスおよびデバイス識別子情報を生成するステップを含むことができる。
【0031】
もう1つの実施形態において、パワーアップするステップは、パワー遷移の前にメモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートするステップと、制御信号がアサートされている間の第2の後の時刻にメモリデバイスの電力レベルを第1レベルから第2レベルに遷移させるステップと、電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、メモリデバイスをデフォルト状態から解放するために第3の後の時刻に制御信号をデアサートするステップであって、これによってメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、ステップとを含む。
【0032】
第4の態様では、複数のメモリデバイスとデバイスを制御するコントローラとを含むメモリシステムが提供される。コントローラは、複数のメモリデバイスの第1デバイスにビットストリームコマンドパケットを提供する出力ポートを有し、ビットストリームコマンドパケットは、オペレーションコードおよびデバイスアドレスを含む。複数のメモリデバイスのそれぞれは、コントローラおよび前のメモリデバイスのうちの1つからビットストリームコマンドパケットを受け取り、デバイスアドレスがそれに対応する場合にオペレーションコードを実行し、複数のメモリデバイスのそれぞれは、次のメモリデバイスおよびコントローラのうちの1つにビットストリームコマンドパケットを提供し、ビットストリーム読み取りデータパケットは、オペレーションコードが読み取り機能に対応する場合に複数のメモリデバイスの最後のメモリデバイスからコントローラに提供される。
【0033】
この態様の実施形態によれば、複数のメモリデバイスは、直列に接続され、最初のメモリデバイスおよび最後のメモリデバイスは、コントローラに接続され、コントローラは、複数のメモリデバイスの最初のデバイスにビットストリームデータパケットを送る。コントローラからのビットストリームデータパケットと、ビットストリーム読み取りデータパケットとは、直列ビットストリームを含み、あるいは並列ビットストリームを含む。複数のメモリデバイスは、同一のタイプまたは異なるタイプのメモリデバイスの混合物のいずれかである。
【0034】
もう1つの態様によれば、複数のメモリデバイスとデバイスを制御するコントローラとを含むメモリシステムであって、メモリシステムが、第1コマンドを受け取る前に選択されたメモリデバイスをパワーアップする機能を実行することができる、メモリシステムが提供される。
【0035】
例えば、パワーアップする機能は、パワー遷移の前に選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートすることと、制御信号がアサートされている間に選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させることと、電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つことと、選択されたメモリデバイスをデフォルト状態から解放するために制御信号をデアサートすることであって、これによって選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートすることとを含む。また、パワーアップする機能は、パワー遷移の前にメモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートすることと、制御信号がアサートされている間の第2の後の時刻にメモリデバイスの電力レベルを第1レベルから第2レベルに遷移させることと、電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つことと、メモリデバイスをデフォルト状態から解放するために第3の後の時刻に制御信号をデアサートすることであって、これによってメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートすることとを含むことができる。
【0036】
本発明の他の態様および特徴は、添付図面と共に下記の本発明の特定実施形態の説明を再検討することによって当業者に明白になる。
【0037】
ここでは本発明の実施形態が、添付図面を参照して一例としてのみ説明される。
【図面の簡単な説明】
【0038】
【図1】従来技術のNANDフラッシュメモリコアを示す概略図である。
【図2】従来技術のフラッシュメモリシステムを示すブロック図である。
【図3A】直列メモリシステムを示す全般的なブロック図である。
【図3B】NANDフラッシュメモリデバイスからなる直列メモリシステムを示すブロック図である。
【図3C】異なるメモリデバイスの混合物からなる直列メモリシステムを示すブロック図である。
【図4】並列クロック方式を用いて構成された図3Aの直列メモリシステムを示すブロック図である。
【図5】ソース同期クロック方式を用いて構成された図3Aの直列メモリシステムを示すブロック図である。
【図6】動的に調整可能な直列メモリシステムを示すブロック図である。
【図7】図3Aから3Cまでおよび4から6までの直列メモリシステム内での使用に適切なネイティブコアおよび直列入出力インターフェースを有するメモリデバイスを示すブロック図である。
【図8】モジュラコマンドパケット構造を示す図である。
【図9】図7のフラッシュメモリデバイスを動作させる例のモジュラコマンドパケットをリストした表を示す図である。
【図10】1つのメモリデバイス内で同時動作を実行する方法を示す流れ図である。
【図11】メモリデバイスの2つの異なるバンクの同時読み取り動作を示すシーケンス図である。
【図12】メモリデバイスの2つの異なるバンクの同時プログラム動作を示すシーケンス図である。
【図13】メモリデバイスの2つの異なるバンクの同時読み取り動作およびプログラム動作を示すシーケンス図である。
【図14】メモリデバイスの2つの異なるバンクの同時ブロック消去を示すシーケンス図である。
【図15】一時停止された動作および再開された動作を伴う、メモリデバイスの2つの異なるバンクの同時プログラム動作および読み取り動作を示すシーケンス図である。
【図16】2つの直列接続されたメモリデバイスの動作を示すシーケンス図である。
【図17A】本発明の実施形態を適用可能なフラッシュメモリデバイスを示すブロック図である。
【図17B】フリップフロップを示す概略図である。
【図18】図17Aのフラッシュメモリデバイス内のパワーアップ動作中およびパワーダウン動作中の様々な制御信号を示すシーケンス図である。
【図19】不揮発性メモリデバイス内のパワーアップ動作中およびパワーダウン動作中の様々な制御信号を示すシーケンス図である。
【図20】不揮発性メモリデバイス内のパワー遷移中のデータ保護の方法を示す流れ図である。
【図21】本発明のもう1つの実施形態による不揮発性メモリデバイス内のパワー遷移中のデータ保護の方法を示す流れ図である。
【発明を実施するための形態】
【0039】
本発明の実施形態についての下記の詳細な説明では、本明細書の一部を形成する添付図面を参照しており、添付図面には、本発明を実施できる特定の実施形態が一例として示されている。これらの実施形態は、当業者が本発明を実施することを可能にするのに十分に詳細に説明されており、他の実施形態を利用できることと、本発明の範囲から逸脱せずに論理的変更、電気的変更、および他の変更を行えることとを理解されたい。したがって、下記の詳細な説明は、限定的な意味で解釈されてはならず、本発明の範囲は、添付の特許請求の範囲によって定義される。
【0040】
直列接続された複数のメモリデバイスを有するメモリシステムアーキテクチャを説明する。このメモリシステムは、性能劣化または複雑な再設計を伴わずに、任意の個数のメモリデバイスを有して拡張性がある。各メモリデバイスは、他のメモリデバイスおよびメモリコントローラとの間での通信用の直列入出力インターフェースを有する。メモリコントローラは、少なくとも1つのビットストリームでコマンドを発行し、このビットストリームは、モジュラコマンドプロトコルに従う。コマンドは、オプションのアドレス情報およびデバイスアドレスと共にオペレーションコードを含み、その結果、アドレッシングされたメモリデバイスだけがコマンドに作用するようになる。別々のデータ出力ストローブ信号およびコマンド入力ストローブ信号が、データのタイプおよびデータの長さを識別するために、それぞれ、各出力データストリームおよび入力コマンドデータストリームと並列に供給される。モジュラコマンドプロトコルは、性能をさらに改善するために、各メモリデバイス内で同時動作を実行するのに使用される。
【0041】
図3Aは、一実施形態による、直列メモリシステムアーキテクチャの概念的性質を示すブロック図である。図3Aでは、直列メモリシステム100は、少なくとも1つの直列チャネル出力ポートSoutおよび直列チャネル入力ポートSinを有するメモリコントローラ102と、直列に接続されたメモリデバイス104、106、108、110、112、114、および116とを含む。一実施形態で、メモリデバイスを、フラッシュメモリデバイスとすることができる。代替案では、コマンドを実行するためまたはコマンドおよびデータを次のメモリデバイスにパススルーするための、特定のコマンド構造と互換の直列入出力インターフェースを有するならば、メモリデバイスを、DRAM、SRAM、または任意の他のタイプのメモリデバイスとすることができる。そのようなメモリデバイス構成および特定のコマンド構造のさらなる詳細は、後で説明する。
【0042】
現在の実施形態は、7つのメモリデバイスを含むが、代替実施形態は、わずか1つのメモリデバイスおよび任意の個数までのメモリデバイスを含むことができる。したがって、メモリデバイス104が、Soutに接続される直列メモリシステム100の最初のデバイスである場合に、メモリデバイス116は、Sinに接続されるN番目または最後のデバイスであり、ここで、Nは、0より大きい整数である。メモリデバイス106から114までは、最初のメモリデバイスと最後のメモリデバイスとの間の介在する直列接続されたメモリデバイスである。各メモリデバイスは、システムのパワーアップ初期化時に別個の識別番号すなわちデバイスアドレス(DA)を受け入れることができ、その結果、各メモリデバイスは個別にアドレス可能になる。本願と同一の譲受人が所有する米国特許出願第11/622828号、米国特許出願第11/750649号、米国特許出願第11/692452号、米国特許出願第11/692446号、米国特許出願第11/692326号、および米国特許出願第11/771023号に、メモリシステムの直列接続されたメモリデバイスに関するデバイスアドレスを生成する方法が記載されている。
【0043】
メモリデバイス104から116までは、あるメモリデバイスのデータ入力が前のメモリデバイスのデータ出力に接続され、これによって、チェーン内の最初および最後のメモリデバイスを除いて直列接続構成が形成されるので、直列接続されると考えられる。
【0044】
メモリコントローラ102のチャネルは、コマンド、データ、およびアドレス情報を担持するための任意のデータ幅のデータチャネルと、制御信号データを担持するための制御チャネルとを含む。チャネル構成のさらなる詳細は、後で示す。図3Aの実施形態は、1つのチャネルを含み、この1つのチャネルは、Soutポートおよび対応するSinポートを含む。しかし、メモリコントローラ102は、別々のメモリデバイスチェーンに対処するために任意の個数のチャネルを含むことができる。
【0045】
一般的な動作では、メモリコントローラ102は、そのSoutポートを介してコマンドを発行し、このコマンドは、オペレーションコード(オペコード)、デバイスアドレス、読み取りまたはプログラミングに関するアドレス情報、およびプログラミングに関するデータを含む。コマンドは、直列ビットストリームパケットとして発行され、パケットを、例えば1バイトなど、所定のサイズのセグメントに論理的に副分割することができる。ビットストリームは、経時的に供給されるビットのシーケンスまたはシリーズである。コマンドは、第1のメモリデバイス104によって受け取られ、メモリデバイス104は、デバイスアドレスをそれに割り当てられたアドレスと比較する。アドレスが一致する場合に、メモリデバイス104は、コマンドを実行する。そうでない場合に、コマンドは、それ自体の出力ポートを介して次のメモリデバイス106に渡され、ここで、同一の手順が繰り返される。最終的に、選択されたメモリデバイスと称する、一致するデバイスアドレスを有するメモリデバイスが、コマンドによって規定される動作を実行する。コマンドが、データを読み取ることである場合に、選択されたメモリデバイスは、その出力ポートを介して読み取りデータを出力し、この読み取りデータは、メモリコントローラ102のSinポートに達するまで、介在するメモリデバイスを介して直列に渡される。
【0046】
コマンドおよびデータは、直列ビットストリーム内で提供されるので、クロックは、各メモリデバイスによって直列ビットをクロックイン/アウトするのに使用され、内部メモリデバイス動作を同期化するのに使用される。このクロックは、メモリコントローラおよび直列メモリシステム100内のすべてのメモリデバイスによって使用される。図4および図5の実施形態に示されているように、直列メモリシステム100の2つの可能なクロック構成がある。
【0047】
図3Bは、図3AのメモリシステムがNANDフラッシュメモリデバイスなどの1つのタイプのメモリデバイスを含むことができることを示すブロック図である。各NANDフラッシュメモリデバイスは、互いに同一または、例えば異なる記憶密度を有することによって、互いに異なるものとすることができる。図3Cは、図3Aのメモリシステムが様々なタイプのメモリデバイスを含むことができることを示すブロック図である。これらのメモリデバイスは、例えば、NANDフラッシュメモリデバイス、NORフラッシュメモリデバイス、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、および磁気抵抗ランダムアクセスメモリ(MRAM)デバイスを含むことができる。もちろん、本明細書で言及されない代替のメモリデバイスを、メモリシステム内で使用することができる。混合されたタイプのメモリデバイスを有するそのような構成は、2006年12月6日出願の米国仮特許出願第60/868773号に開示されている。
【0048】
図4は、並列クロック方式を使用する直列メモリシステムのブロック図である。直列メモリシステム200は、メモリコントローラ202と、4つのメモリデバイス204、206、208、および210とを含む。メモリコントローラ202は、複数の信号をメモリデバイスに並列に供給する。これらの信号は、チップイネーブル信号CE#、リセット信号RST#、ならびに相補クロックCK#およびCKを含む。CE#の1つの例の使用で、デバイスは、CE#がロウ論理レベルであるときにイネーブルされる。メモリデバイスがプログラム動作または消去動作を開始した後に、CE#を、デアサートするすなわち、ハイ論理レベルに駆動することができる。さらに、ロウ論理レベルのCE#は、内部クロック信号をアクティブ化することができ、ハイ論理レベルのCE#は、内部クロック信号を非アクティブ化することができる。RST#の1つの例の使用で、メモリデバイスは、RST#がロウ論理レベルにあるときにリセットモードにセットされる。リセットモードでは、電力は、安定することを許容され、デバイスは、すべての有限状態機械を初期化し、すべての構成レジスタおよびステータスレジスタをそのデフォルトステータスにリセットすることによって、動作のためにそれ自体を準備する。
【0049】
メモリコントローラ202のチャネルは、データ出力ポートQnおよびデータ入力ポートDnからなるデータチャネルと、コマンドストローブ入力CSI、コマンドストローブ出力CSO(CSIのエコー)、データストローブ入力DSI、およびデータストローブ出力DSO(DSIのエコー)からなる制御チャネルとを含む。出力ポートQnおよび入力ポートDnは、幅において1ビットとするか、幅においてnビットとすることができ、ここで、nは、所望の構成に応じて、非0の整数である。例えば、nが1の場合に、データの1バイトが、クロックの8つのデータラッチングエッジの後に受け取られる。
【0050】
データラッチングクロックエッジは、例えば立ち上がりクロックエッジとすることができる。nが2の場合に、1バイトのデータが、クロックの4つのラッチングエッジの後に受け取られる。nが4の場合に、1バイトのデータが、クロックの2つのラッチングエッジの後に受け取られる。メモリデバイスを、QnおよびDnの任意の幅について、静的に構成し、または動的に構成することができる。したがって、nが1より大きい構成において、メモリコントローラは、データを並列ビットストリーム内で供給する。CSIは、入力ポートDnに現れるコマンドデータをラッチするのに使用され、受け取られるコマンドデータの長さに対応するパルス持続時間を有する。より具体的には、コマンドデータは、クロックサイクルの個数によって測定される持続時間を有し、CSI信号のパルス持続時間は、対応する持続時間を有する。DSIは、出力ポートQnバッファがデータを出力することを可能にするのに使用され、要求される読み取りデータの長さに対応するパルス持続時間を有する。DSI信号およびCSI信号のさらなる詳細は後で述べる。
【0051】
図4の現在示されている実施形態では、各メモリデバイスは、同一の直列入出力インターフェースを有し、この直列入出力インターフェースは、メモリコントローラ202からの同一の名前の信号を受け取るRST#入力ポート、CE#入力ポート、CK#入力ポート、およびCK入力ポートを含む。直列入出力インターフェースは、さらに、データ入力ポートDn、データ出力ポートQn、CSIポート、DSIポート、CSOポート、およびDSOポートを含む。図4に示されているように、各メモリデバイスのDn入力ポート、CSI入力ポート、およびDSI入力ポートは、それぞれ、前のメモリデバイスのQn出力ポート、CSO出力ポート、およびDSO出力ポートに接続される。したがって、メモリデバイスは、それぞれがコマンドおよび読み取りデータをチェーン内の次のメモリデバイスに渡すことができるので、互いに直列接続されると考えられる。
【0052】
図4の実施形態の実用的実装態様では、各メモリデバイスは、入力ポートと出力ポートとの間の距離および信号トラックが最小化されるように、プリント回路基板上で位置決めされる。代替案では、4つのメモリデバイスを、信号トラック長さをさらに最小化するシステムインパッケージモジュール(SIP)内で実施することができる。メモリコントローラ202およびメモリデバイス204から210までは、リングトポロジを形成するように直列に接続され、これは、最後のメモリデバイス210が、その出力をメモリコントローラ202に戻って供給することを意味する。したがって、当業者は、メモリデバイス210とメモリコントローラ202との間の距離が簡単に最小化されることを理解することができる。
【0053】
図4の直列メモリシステム200でのメモリデバイスの性能は、図1の従来技術システムのメモリデバイスの性能より大幅に改善される。例えば、66MHzクロックが使用され、直列メモリシステム200が、4つのメモリデバイスを含むと仮定すると、図4の直列接続されたメモリデバイスのうちの1つの1ピンあたりのデータレートは、約133Mbpsである。対照的に、4つのメモリデバイスを有する図1のマルチドロップメモリデバイスの1ピンあたりのデータレートは、各メモリデバイスの読み取りサイクル時間(tRC)および書き込みサイクル時間(tWC)が約25nsになるようにレーティングされることを考慮すると、約40Mbpsである。さらに、直列メモリシステム200の電力消費は、図1の従来技術システムの電力消費に対して相対的に減らされる。直列メモリシステム200の性能および電力消費の利益は、主に、各メモリデバイスによって駆動されなければならない信号トラック18の不在に起因する。
【0054】
図4の直列メモリシステム200の大きい利益は、システムのスケーラビリティである。言い換えると、4つを超えるメモリデバイスを、性能の劣化をまったく伴わずに、メモリチェーン内でメモリコントローラ202に接続することができる。対照的に、図1の従来技術システムは、より多くのメモリデバイスが追加されるときに、チャネル18の信号トラックの長さが必ず追加デバイスに対処するために増えるので、減少する報酬を伴う実用的限界に達する。信号トラックに対する追加のピン負荷には、追加デバイスが寄与する。前に述べたように、長いチャネル18を駆動するときにデータ伝送完全性を保証するためには、クロック周波数を下げなければならず、これは性能を劣化させる。図4の実施形態では、クロックの分配は、多数のメモリデバイスに対処するように設計され、すべてのメモリデバイスに関するクロック完全性を維持するために、リピータおよびバランスをとられたツリーを含むことができる。当業者は、バランスをとられたクロック信号を提供する多数の形を理解することができる。
【0055】
図4の直列メモリシステム実施形態は、従来技術メモリシステムに対するかなりの性能利益をもたらすが、さらなる性能改善が、図5の代替直列メモリシステム実施形態を使用することによって得られる。図5の直列メモリシステム300は、並列クロック分配方式の代わりにソース同期クロック方式が使用されることを除いて、図4の実施形態に類似する。直列メモリシステム300は、メモリコントローラ302と4つのメモリデバイス304、306、308、および310とを含む。メモリコントローラ302は、相補クロック信号を供給するクロック出力ポートCKO#およびCKOと、システムの最後のメモリデバイスから相補クロック信号を受け取るクロック入力ポートCK#およびCKとを含む。メモリデバイスは、クロック入力ポートCK#およびCKと、クロック出力ポートCKO#およびCKOとを有することを除いて図4に示されたものと同一であり、あるメモリデバイスによってそのCK#ポートおよびCKポートで受け取られたクロックは、そのCKO#ポートおよびCKOポートを介して次のデバイスに供給される。最後のメモリデバイス310は、クロック信号をメモリコントローラ302に戻って供給する。
【0056】
図5の実施形態の主な利益は、複雑なクロック分配方式の不在およびメモリデバイスの間の最小のクロック相互接続である。したがって、最小クロック周波数を166MHzに高めることができ、これは、1ピンあたり最小333Mbpsのデータレートをもたらす。図4の実施形態と同様に、図5の実施形態は、任意の個数のメモリデバイスを含むようにスケーリングすることができる。例えば、第5のメモリデバイスを、単純に、メモリデバイス310の出力ポートを第5メモリデバイスの対応する入力ポートに接続することと、第5メモリデバイスの出力ポートをメモリコントローラ302に接続することとによって、図5の実施形態に追加することができる。当業者は、メモリコントローラ302に、クロック周波数を維持するために単一のフェーズロックループ(PLL)回路を含めることができることを理解することができる。
【0057】
直列メモリシステム200および300の構成を、特定の個数のメモリデバイスについて静的に固定することができる。異なる構成を、単純に直列チェーン内のメモリデバイスの個数を調整することによって、異なるメモリシステム容量を提供するためにセットすることができる。代替実施形態では、異なる容量を有するメモリデバイスを、直列チェーン内で一緒に混合することができ、これによって、全体的なメモリシステム容量におけるさらなる柔軟性がもたらされる。メモリシステム容量を、直列チェーンからモジュールを追加するか除去することによって動的に調整できる応用例がある可能性があり、ここで、モジュールは、単一のメモリデバイス、SIPメモリ、あるいはメモリデバイスおよび/またはSIPメモリデバイスを有するPCBとすることができる。
【0058】
図6は、動的に調整可能な直列メモリシステム実施形態を示すブロック図である。調整可能な直列メモリシステム400は、メモリコントローラ402、固定されたメモリデバイス404、406、408、および410、拡張リンク412、414、416、418、および420、ならびに拡張モジュール422、424、および426を含む。固定されたメモリデバイス404、406、408、および410は、互いに、介在する拡張リンクに、およびメモリコントローラ402に直列に接続される。各拡張リンクは、対応するメスまたはオスの結合手段を有するモジュールを解放可能に受け、保持する、オスまたはメスの結合手段である。各モジュールは、拡張リンクの端子に直列に接続された少なくとも1つのメモリデバイスを含む。現在示されている例では、拡張モジュール422および426のそれぞれは、モジュール結合手段の入力コネクタと出力コネクタとの間に直列に接続された4つのメモリデバイスを含む。モジュール424は、そのモジュール結合手段の入力コネクタと出力コネクタとの間に直列に接続された2つのメモリデバイスを含む。したがって、モジュールを拡張リンクに挿入することによって、追加の直列接続されたメモリデバイスを、固定されたメモリデバイスの間に動的に挿入することができる。拡張リンク414および420などの未使用拡張リンクは、チェーンの連続的な直列電気接続を維持するために、適切に構成されたジャンパ428および430をそれに接続される。
【0059】
調整可能な直列メモリシステム400は、任意の個数の固定されたメモリデバイスおよび拡張リンクを含むことができ、メモリモジュールは、任意の個数の直列に接続されたメモリデバイスを含むように構成され得る。したがって、調整可能な直列メモリシステム400は、全体的な性能に影響せずに、単純に新しいモジュールを追加することまたは既存モジュールをより大容量のモジュールに置換することによって、十分に拡張可能なインメモリ容量を有する。同一チャネルが追加の直列に接続されたメモリデバイスを投入されているので、メモリコントローラを変更する必要はなく、当業者は、挿入されたモジュールにCE#、RST#などの並列制御信号および電力供給をどのように接続すべきかを理解することができる。モジュールの挿入またはモジュールの除去の後に、メモリシステム400は、再初期化され、その結果、メモリコントローラは、システム内のメモリデバイスのデバイスIDを自動的にセットできるようになる。
【0060】
図3Aから3Cまでおよび4から6までに示される直列メモリシステムは、フラッシュメモリデバイスなど、互換直列入出力インターフェースを有するメモリデバイスを使用する。直列入出力インターフェースを有するフラッシュメモリデバイスの例が、本願と同一の譲受人が所有する、2005年12月30日出願の米国特許出願第11/324023号に記載されている。したがって、図3Aから3Cまでおよび4から6までの実施形態に示されたメモリデバイスは、これらの特許出願に開示されたフラッシュメモリデバイスを使用することができる。しかし、これらの特許出願に記載の直列入出力インターフェースは、使用できる直列インターフェースの例である。所定のコマンド構造を受け入れるように構成されるならば、メモリデバイスの間の直列動作を容易にする任意の直列入出力インターフェースを使用することができる。
【0061】
もう1つの実施形態によれば、直列入出力インターフェースを、任意のタイプのメモリデバイスと共に使用することができる。より具体的には、他のメモリタイプを、直列入出力インターフェースと共に動作するように適合させることができる。図7は、図3Aから3Cまでおよび4から6までの直列メモリシステム内での使用に適切なネイティブコアおよび直列入出力インターフェースを有するジェネリックメモリデバイスの概念的編成を示すブロック図である。メモリデバイス500は、メモリアレイバンク502および504を含むネイティブメモリコアと、メモリアレイバンク502および504にアクセスするネイティブ制御および入出力回路506とを含む。当業者は、メモリアレイを単一メモリバンクまたは3つ以上のメモリバンクとして編成できることを理解することができる。ネイティブメモリコアは、例えば、DRAMベース、SRAMベース、NANDフラッシュメモリベース、またはNORフラッシュメモリベースとすることができる。もちろん、すべての新生のメモリおよびその対応する制御回路を使用することができる。したがって、ネイティブメモリコアのタイプに応じて、回路ブロック506は、誤り訂正論理、高電圧生成器、リフレッシュ論理、およびメモリタイプにネイティブな動作を実行するのに必要な任意の他の回路ブロックを含むことができる。
【0062】
通常、メモリデバイスは、内部制御信号をアサートすることによって、受け取られたコマンドに応答して関連回路を初期化するために、コマンドデコーダを使用する。メモリデバイスは、データ、コマンド、およびアドレスを受け取り、ラッチする周知の入出力回路網をも含む。本実施形態によれば、既存の入出力回路は、直列インターフェースおよび制御論理ブロック508に置換される。この例では、直列インターフェースおよび制御論理ブロック508は、RST#、CE#、CK#、CK、CSI、DSI、およびDn入力を受け取り、Qn、CSO、DSO、CKO、およびCKO#出力を供給し、これは、図5に示されたメモリデバイスの入力ポートおよび出力ポートと一致する。
【0063】
直列インターフェースおよび制御論理ブロック508は、米国特許出願第11/324023号に記載のように、様々な機能の起因となるものである。直列インターフェースおよび制御論理ブロック508の特筆すべき機能は、デバイス識別番号をセットすることと、次の直列接続されたメモリデバイスにデータをパススルーすることと、ネイティブ動作を実行するために受け取られたコマンドをデコードすることとである。この回路は、ネイティブコマンドデコーダを置換するコマンドデコーダを含むことができ、このコマンドデコーダは、ネイティブコマンドに対応する直列に受け取られたコマンドに応答して、ネイティブコマンドデコーダがアサートしたはずのものと同一の制御信号をアサートするように構成される。コマンドセットを、メモリデバイスが直列に接続されるときにメモリコントローラによって使用可能な特徴を実行するように拡張することができる。例えば、ステータスレジスタ情報を要求して、メモリデバイスのステータスを査定することができる。
【0064】
したがって、図3Aから3Cまでおよび4から6までの直列メモリシステムは、それぞれがより大きいシステムに異なる利益を提供するメモリデバイスタイプの混合物を含むことができる。例えば、DRAMメモリの高い速度を、動作のキャッシングに使用することができ、フラッシュメモリの不揮発性を、マスデータストレージに使用することができる。使用されるメモリデバイスのタイプにかかわりなく、各メモリデバイスは、コマンドに作用するために個別にアドレス可能である。というのは、直列インターフェースおよび制御論理ブロック508が、所定のプロトコルに従ってコマンドを受け取るように構成されるからである。
【0065】
もう1つの実施形態によれば、これらのコマンドは、モジュラコマンド構造を有するコマンドパケットからなり、このモジュラコマンド構造は、直列メモリシステムの個々のメモリデバイスを制御するのに使用される。提案されるコマンド構造では、特定のコマンドを、個々のコマンドパケットとして異なるときに1つのメモリデバイスに発行することができる。あるコマンドパケットが、第1メモリバンクの特定の動作を開始することができ、次に、後続コマンドパケットが、コア動作が第1コマンドパケットに応答して実行されつつある間に第2メモリバンクの別の動作を開始するために受信され得る。さらなるコマンドパケットを、類似するインターリーブされた形で第1メモリバンクおよび第2メモリバンクの動作を完了させるために受け取ることができる。これを、メモリデバイス内の同時動作の実行と称する。同時動作について述べる前に、モジュラコマンドプロトコルの説明を続ける。モジュラコマンドプロトコルのさらなる詳細は、本願と同一の譲受人が所有する、2007年3月2日出願の米国仮特許出願第60/892705号、名称「Modular Command Structure in Memory System and its Use」に記載されている。
【0066】
コマンドパケット600は、図8に示された構造を有し、3つのフィールドを含み、フィールドのうちの2つは、メモリコントローラによって発行される特定のコマンドに依存してオプションである。必須フィールドである第1のフィールドは、コマンドフィールド602である。第1のオプションのフィールドは、アドレスフィールド604であり、第2のオプションのフィールドは、データフィールド606である。
【0067】
コマンドフィールド602は、2つのサブフィールドを含み、第1のサブフィールドは、デバイスアドレス(DA)フィールド608であり、第2のサブフィールドは、オペコード(OPコード)フィールド610である。デバイスアドレスフィールド608は、長さにおいて任意の個数のビットとすることができ、システム内の各メモリデバイスをアドレッシングするのに使用される。例えば、1バイトの長さのデバイスアドレスフィールド608は、256個までのメモリデバイスをアドレッシングするのに十分である。1つのアドレスを、動作をブロードキャストするためにすべてのメモリデバイスを同時にアドレッシングするために予約することができる。代替実施形態では、デバイスアドレスフィールド608は、オペコードフィールド610が向けられるメモリデバイスのタイプを示すためにデバイスタイプフィールドを含むことができる。例えば、デバイスタイプフィールドは、DRAM、SRAM、またはフラッシュメモリを指定することができる。オペコードフィールド610は、任意の個数のメモリデバイスのコマンドを表すために長さにおいて任意の個数のビットとすることができ、バンクアドレスを含むことができる。例えば、フラッシュメモリコマンドセットは、DRAMコマンドセットとは異なるコマンドを有し、したがって、オペコードフィールドは、メモリシステムが両方のタイプのメモリデバイスを含む場合に、両方のコマンドセットからのすべての可能なコマンドを収容するように構成される。アドレスフィールド604は、オペコードによって指定される動作のタイプに応じて、メモリアレイのロウアドレス(Row Addr)またはカラムアドレス(Col Addr)のいずれかを提供するのに使用される。データフィールド606は、メモリデバイスに書き込まれまたはプログラムされるデータの任意の個数のビットを含む。したがって、コマンドパケット600は、特定の動作について書き込みデータが不要である場合があり、特定の動作についてアドレスと書き込みデータとの両方が不要である場合があるので、サイズにおいて変化する。
【0068】
図9に、前に説明した直列メモリシステムで使用される、図7に示された構成を有するフラッシュメモリデバイスを動作させるのに使用できる例のコマンドパケットをリストする。図9のバイト位置は、バイトがメモリデバイスによって直列に受け取られる順序に対応する。コマンドフィールド602は、第1および第2のバイト位置を占め、これは、情報の第1バイトとしてのデバイスアドレス(DA)と、情報の第2バイトとしての動作に対応するオペコードとを含む。アドレスフィールド604は、第3から第5のバイト位置を占める3バイトのロウアドレス(RA)を含むことができるが、他のコマンドについて、第3バイト位置および第4バイト位置だけを占める2バイトのカラムアドレス(CA)を含むように短縮される。2バイトのカラムアドレスを含むコマンドについて、データフィールド606は、データがその長さでなければならない場合に、第5バイト位置から第2116バイト位置までを占める。データは、より少ないまたはより多いバイト位置を占めることができる。
【0069】
メモリコントローラによって発行されるすべてのコマンドパケット600は、システム内の各メモリデバイスによって直列に受け取られ、コマンドフィールド602のDAサブフィールド608と一致するデバイスアドレスを有するメモリデバイスだけが、オペコードサブフィールド610に作用する。そうでない場合に、コマンドパケットは、メモリデバイスをパススルーされ、チェーン内の次のメモリデバイスに渡される。オペコードは、特定の動作に固有なので、メモリデバイス、およびより具体的にはメモリデバイス500の直列インターフェースおよび制御論理ブロック508は、コマンドパケットのアドレスおよび/またはデータ情報をラッチするのに必要な回路を制御する。例えば、ページ読み取りコマンドパケットが、指定されたメモリデバイスによって受け取られる場合に、その指定されたメモリデバイスは、オペコードをデコードし、続く3バイトのロウアドレスをラッチするように適当な回路を制御する。
【0070】
図9にリストされた例のコマンドパケットは、フラッシュメモリ動作を対象とする。異なる動作を有する任意の他のタイプのメモリデバイス用のコマンドパケットのセットを、説明されるコマンド構造に従うように構成することができる。
【0071】
前に説明したコマンドパケットを、図7のメモリデバイス500などのメモリデバイス内の同時動作を実行するのに有利に使用することができる。メモリデバイス500が、そのバンクのいずれにも独立にアクセスするように構成される場合に、実質的に同時の動作を、そのメモリデバイス内で実行することができる。独立アクセスとは、異なるメモリバンクのコア動作が互いに独立に進行できることを意味する。そのようなメモリデバイスの例が、前に述べた米国特許出願第11/324023号に記載されている。コア動作とは、コア動作の完了が状態機械または他の論理の制御の下で実行されるイベントの特定のシーケンスに依存し得るので割り込まれない論理動作または機能的動作を指す。
【0072】
同時動作は、メモリコントローラが、第2動作のコマンドパケットを送信する前に、メモリデバイスが第1動作を完全に完了し終えるまで待つ必要がないので、システムの性能を高める。伝統的なNANDフラッシュメモリデバイスでは、メモリデバイスは、コア動作が現在のメモリバンクについて完了するまで、別のコマンドを受け入れないか、異なるメモリバンクに関する受け取られたコマンドに応答する。したがって、このメモリデバイスは、別のコマンドを受け入れる前に、複数の動作を直列に実行する。本実施形態の同時動作では、1つのコマンドパケットが、1つのメモリバンクでの動作を開始し、後続コマンドパケットが、コア動作が第1メモリバンクについて実行されつつある間に同一メモリデバイスの第2メモリバンク内で別の動作を即座に開始する。したがって、両方の動作が、2つのメモリバンクによってほぼ同時に実行される。
【0073】
図10は、そのメモリバンクの独立アクセス用に構成されたメモリデバイス500などの、1つのメモリデバイス内で同時動作を実行する方法を示す流れ図である。ステップ700で開始して、第1コマンドが、メモリコントローラによって発行され、メモリデバイスによって受け取られる。第1コマンドは、前に説明し、図9に示したコマンドパケットのうちの任意の1つとすることができる。パケット全体(コマンドフィールド、アドレスフィールド、およびデータフィールド)が受け取られたならば、ステップ702で、メモリデバイスの第1メモリバンクについてコア動作が開始される。第1メモリバンクコア動作の開始とほぼ同時に発生して、ステップ704で、第2コマンドが、メモリコントローラによって発行され、メモリデバイスによって受け取られる。
【0074】
ステップ706で、第2メモリバンクのコア動作が、第2コマンドに応答して実行される。最終的に、ステップ708で、第1コマンドに関係する結果情報が提供される。結果情報には、ステータス情報または読み取りデータを含めることができ、この情報またはデータは、補足読み取りコマンドパケットに応答して提供される。ステータス情報は、プログラム動作または消去動作など、特定のタイプの動作の成功または失敗の表示を提供し、メモリコントローラによって発行される補足「ステータス読み取り」コマンドパケットに応答して、そのメモリバンクに関連するステータスレジスタから読み取られる。読み取りデータは、補足「バースト読み取り」コマンドパケットに応答して提供される。図1を参照すると、読み取り動作のコア動作は、読み取られたデータの1ページをメモリバンクのブロックからデータレジスタブロック32に出力することを含む。データレジスタブロック32からデータを読み取るために、バースト読み取り動作が実行される。ステップ710で、第2コマンドに関係する結果情報が提供される。両方のメモリバンクからの結果情報が、最終的に、メモリコントローラに返される。図10の実施形態は、2つのメモリバンクの同時動作を示すが、この方法は、メモリデバイスの2つ以上のメモリバンクの同時動作に適用可能である。
【0075】
図11から15までは、米国特許出願第11/324023号に記載のタイプのフラッシュメモリデバイスによって実行可能な例の同時動作を示すシーケンス図である。図11から15までは、図4または5の1つのメモリデバイスに関する経時的なCSI、Dn、DSI、およびQnの信号トレースを示す。図示のシーケンスは、信号の間の相対的なタイミングを示すことを意図され、特定のタイミング値を表すことは意図されていない。コマンドストローブ入力CSIが、メモリコントローラによって生成され、メモリコントローラによってアセンブルされ、発行されるコマンドの長さのインジケータとして働くことに留意されたい。例えば、発行されるコマンドパケットが、2バイトの長さである場合に、対応するCSIは、コマンドの最初のビットに対応するアクティブエッジ(この例では立ち上がりエッジ)およびコマンドパケットの最後のビットに対応するインアクティブエッジを有する。CSI信号は、コマンドデータをラッチするためにメモリデバイスコマンドレジスタを制御する。データストローブ入力信号DSIは、やはりメモリコントローラによって生成され、メモリデバイスによって提供されるデータの長さのインジケータとして働く。例えば、メモリコントローラによって要求される読み取りデータが、8バイトの長さである場合に、メモリコントローラによって生成される対応するDSIは、読み取りデータの最初のビットに対応するアクティブエッジおよび読み取りデータの最後のビットに対応するインアクティブエッジを有する。CSIおよびDSIは、メモリコントローラが発行されたコマンドのビット長および要求された読み取りデータのビット長の知識を有するので、メモリコントローラによって生成される。
【0076】
図11は、メモリデバイスの2つの異なるバンクの同時読み取り動作を示すシーケンス図である。バンク0のページ読み取りコマンドパケット800は、CSIがハイ論理レベルであるときにメモリデバイスによってラッチされる。例えば図9に示されているように、ページ読み取りコマンドは、2バイトのコマンドおよび3バイトのロウアドレスを含む。メモリデバイスのバンク0は、CSIが時刻t0にロウ論理レベルに下がった後に、指定されたロウアドレスの読み取り動作の実行を開始する。実例によって、フラッシュメモリデバイスの読み取り動作は、図1のWLiなどのワード線のアクティブ化と、BL0からBLjまでのビット線データの感知とを含む。最終的に、感知されたデータが、データレジスタブロック32内にラッチされまたは格納される。一実施形態で、ページ読み取りコマンドパケット800は、そのQn出力ポートを介して次のメモリデバイスに渡される。もう1つの実施形態で、ページ読み取りコマンドパケット800は、現在のメモリデバイスにアドレッシングされているので、さらなるメモリデバイスに渡されることを妨げられる。例えば、Qn出力上で提供されるページ読み取りコマンドパケット800に、コマンドレジスタにラッチされた後にnull値をセットすることができる。これは、信号線のレールツーレール信号スイッチングが不要なので、電力を節約する。
【0077】
バンク1のページ読み取りコマンドパケット802が、CSIがハイ論理レベルであるときにメモリデバイスによってラッチされる。メモリデバイスのバンク1は、CSIが時刻t1にロウ論理レベルに下がった後に、指定されたロウアドレスの読み取り動作の実行を開始する。今や、同時動作が、メモリバンク0および1によって実行されつつある。特定の個数のクロックサイクルの後に、データが、時刻t2にバンク0から読み出される準備ができる。このデータをバンク0から読み出すために、メモリコントローラは、バースト読み取りコマンドパケット804を発行し、このバースト読み取りコマンドパケット804は、CSIがハイ論理レベルであるときに受け取られ、ラッチされる。図9に示されているように、バースト読み取りコマンドパケットは、そこからデータを読み取るべきカラムアドレスを含む。コマンドパケット804に対応するCSIがロウ論理レベルに下がった後に、DSIがハイ論理レベルに上がって、Qn出力ポートバッファをイネーブルし、これによって、バンク0の出力データを読み取りデータパケット806として供給する。もう一度図1を使用する例では、Qn出力バッファでのデータの出力は、バースト読み取りコマンドパケット804で指定されたカラムアドレスで始まりDSIがロウ論理レベルに下がるときに終わるデータレジスタブロック32からのデータの読出に対応することができる。バンク0の出力データの最後のビットが出力されるときまでに、バンク1のデータが、時刻t3に読み出される準備ができる。DSIがロウ論理レベルに下がった後に、バンク1のバースト読み取りコマンドパケット808が、メモリデバイスによって受け取られ、ラッチされる。バースト読み取りコマンドパケット808のCSIの立ち下がりエッジの後に、DSIは、読み取りデータパケット810としてQn出力ポートでバンク1からの読み取りデータを出力するために、所定の持続時間の間にもう一度ハイ論理レベルに駆動される。
【0078】
時刻t0とt2との間のバンク0のコア動作および時刻t1とt3との間のバンク1のコア動作は、実質的に同時であり、互いにオーバーラップするので、両方の読み取り動作の総コア動作時間は、時刻t0とt3との間である。従来技術では、両方のコア動作が、順番に実行され、これは、バンク1のコア動作が、バンク0のコア動作がt2に完了した後に受け取られる第2のページ読み取りコマンドパケットに応答して開始されることを意味する。前に示した同時動作を実行することの性能の利益は、当業者に明白であるに違いない。
【0079】
図12は、メモリデバイスの2つの異なるバンクの同時プログラム動作を示すシーケンス図である。ここから、メモリデバイスのDn入力ポートで受け取られるコマンドパケットが、そのQn出力ポートに渡され、これが、図11から15までのQn信号トレースに示されていることに留意されたい。メモリバンクをプログラムするために、プログラムデータは、まず、特定のカラムアドレスに基づいてメモリデバイスのデータレジスタにロードされ、次に特定のロウにプログラムされる。図12では、バンク0のバーストデータロードコマンドパケット820が、プログラムデータと共に受け取られ、そのすぐ後にページプログラムコマンドパケット822が続く。コマンドパケット820と822との両方が、CSIがハイ論理レベルであるときにラッチされる。ページプログラムパケット822がメモリデバイスによってラッチされ、デコードされた後に、バンク0のデータをプログラムするコア動作が、時刻t0に始まる。次に、バンク1のバーストデータロードコマンドパケット824が、プログラムデータと共に受け取られ、そのすぐ後にページプログラムコマンドパケット826が続く。ページプログラムパケット826がメモリデバイスによってラッチされ、デコードされた後に、バンク1のデータをプログラムするコア動作が、時刻t1に始まる。
【0080】
それが望まれる場合に、メモリコントローラは、ステータス読み取りコマンドパケット828を発行することによってメモリデバイスのステータスを要求することができる。これは、メモリデバイスのステータスレジスタにアクセスし、このステータスレジスタのデータは、DSIがハイ論理レベルであるときに、読み取りデータパケット830としてQn出力ポートに出力される。当業者は、内部動作が実行されるときに、ステータスレジスタが、メモリデバイスによって内部的に更新されることを理解することができる。現在の例では、読み取りデータパケット830は、バンク0へのプログラミングが完了したことを示す。その後に発行されるステータス読み取りコマンドパケット832は、ステータスレジスタの値を提供する読み取りデータパケット834をもたらし、この読み取りデータパケット834は、バンク1のプログラミングが完了したことを示すことができる。やはり、バンク0および1のコアプログラミング動作は、実質的に同時であり、オーバーラップするので、2バンクのシーケンシャルプログラミングと比較したときに、かなりの時間が節約される。
【0081】
図13は、メモリデバイスの2つの異なるバンクの同時読み取りおよびプログラム動作を示すシーケンス図である。バンク0のページ読み取りコマンドパケット840が、メモリデバイスによってラッチされ、これに、バンク1のバーストデータロード開始コマンドパケット842が続き、これに、バンク1のページプログラムコマンドパケット844が続く。時刻t0に、バンク0からデータを読み取るコア動作が始まり、時刻t1に、バンク1にデータをプログラムするコア動作が始まる。バンク0のページ読み取り動作のコア動作が最初に開始されたので、データは、バンク1にデータをプログラムするコア動作が進行中である間の時刻t2に準備ができる。したがって、バースト読み取りコマンドパケット846が受け取られ、DSIが、読み取りデータパケット848内でバンク0からの読み取りデータを出力するためにアサートされる。DSIが、バンク0からの読み取りデータの出力を終了するためにデアサートされた後に、ステータス読み取りコマンドパケット850を発行して、バンク1のプログラミングステータスをチェックすることができる。バンク1は、時刻t3にプログラミング動作を完了してなければならないので、DSIがもう一度アサートされ、読み取りデータパケット852が、Qn出力ポートで供給され、バンク1のプログラミング動作の合否ステータスを示す。
【0082】
図14は、メモリデバイスの2つの異なるバンクの同時ブロック消去を示すシーケンス図である。バンク0のブロック消去アドレス入力コマンドパケット860が、メモリデバイスによってラッチされ、これに、バンク0の消去コマンドパケット862が続く。消去コマンドパケット862がラッチされた後に、バンク0のコア動作が、時刻t0に始まる。ここで、バンク1のブロック消去アドレス入力コマンドパケット864が、メモリデバイスによってラッチされ、これに、バンク1の消去コマンドパケット866が続く。消去コマンドパケット866がラッチされた後に、バンク1のコア動作が、時刻t1に始まる。ブロック消去アドレス入力コマンドおよび消去コマンドの構造は、図9に示されている。バンク0の消去動作が、時刻t2に完了しなければならず、バンク1の消去動作が、時刻t3に完了しなければならない場合に、別々のステータス読み取りコマンドパケット868および870を発行し、メモリデバイスによってラッチすることができる。対応する読み取りデータパケット872および874が、メモリデバイスのQn出力ポートで提供され、それぞれ、ステータスレジスタの値を提供する。
【0083】
図11から14までのシーケンス図では、同時動作の異なる組合せが示された。前の実施形態で説明したモジュラコマンドパケット構造の利益は、異なるコマンドパケットを異なるときに発行できることである。前に示したように、バーストデータロードコマンドパケットに、ページプログラムコマンドパケットが直接に続く。しかし、これは、必ずしもいつでもそうであるわけではなく、ページプログラムコマンドパケットを、望まれる場合に、より後に発行することができる。コマンドパケットが、コマンドストローブ信号CSIおよびデータストローブ信号DSIと組み合わせて使用されるときに、さらなる利益が実現され、それは、メモリデバイスの動作を一時停止させる能力である。前に述べたように、CSIストローブ信号は、Dn入力ポート上のコマンドデータが、コマンドレジスタによってラッチされなければならないことを示すためにメモリコントローラによって提供され、発行されるコマンドパケットの長さに対応する持続時間を有することができる。メモリバンクをプログラムするための入力データおよびメモリバンクから読み取られた出力データは、長さにおいて1000バイトを超えることができるので、当業者は、そのような量のデータの入力または出力に比較的長い時間が必要であることを了解することができる。本実施形態によれば、CSIストローブ信号およびDSIストローブ信号を、プログラムデータがロードされるか読み取りデータが出力される間に早まってデアサートすることができ、後の時刻に再開することができる。
【0084】
図15は、一時停止された動作および再開された動作を伴う、メモリデバイスの2つの異なるバンクの同時プログラム動作および読み取り動作を示すシーケンス図である。バンク1のバーストデータロード開始コマンドパケット880がラッチされ、このコマンドパケットのデータフィールド内のデータペイロードが、メモリデバイスによってラッチされる。時刻t0に、メモリデバイスへのデータローディングが、メモリコントローラがCSIをデアサートするときに一時停止される。現在の例では、256バイトのデータだけがメモリデバイスによってラッチされており、これが、メモリコントローラによって追跡される。バンク0のページ読み取りコマンドパケット882が、ラッチされ、バンク0のコア動作が、時刻t1に始まる。コマンドパケット880の一時停止されたデータローディング動作は、時刻t2に、バンク1のバーストデータロードコマンドパケット884が受け取られるときに、再開される。コマンドパケット884のデータフィールド内のデータペイロードは、まだラッチされなかったデータの残りの1856バイトを含む。それに続くのが、バンク1のページプログラムコマンドパケット886であり、バンク1へのデータのプログラミングのコア動作は、時刻t3に始まる。最終的に、バンク0のコア動作は、時刻t4に完了し、バンク0のバースト読み取りコマンドパケット888が、メモリコントローラによって発行され、メモリデバイスによってラッチされる。その後、読み取りデータは、DSIがハイ論理レベルであるときに、データ読み取りパケット890として出力される。
【0085】
しかし、大量のデータを出力しなければならないので、ホストシステムは、バンク1へのプログラミングが完了することを確認することを望む可能性がある。というのは、コントローラが、プログラミング動作が時刻t6など、ある所定の時間以内に完了しなければならないことを知っているからである。ステータス読み取り要求を送る前に、すべての読み取りデータが出力されるのを待つのではなく、読み取りデータの出力を、時刻t5に、DSIをデアサートすることによって一時停止することができる。データ出力動作が一時停止されたならば、ステータス読み取りコマンドパケット892が、メモリコントローラによって発行され、メモリデバイスによってラッチされる。次に、ステータスレジスタ値を含む対応する読み取りデータパケット894が、供給される。DSIが、読み取りデータパケット894の終りにデアサートされた後に、バースト読み取りが再開することができる。これは、メモリコントローラに、バンク0のバースト読み取りコマンドパケット896を発行させることによって行われ、このバースト読み取りコマンド896は、時刻t5に一時停止される前の、次に出力すべきビットのアドレスを含む。時刻t7に残りの1600バイトが、読み取りデータパケット898としてQn出力ポートから出力される。
【0086】
図15の一時停止された動作の例は、同時動作を実行するモジュラコマンド構造の利益を示し、この同時動作のそれぞれは、コア利用およびチャネルの利用を最大にするために一時停止され、再開され得る。
【0087】
図11から15までの例のシーケンスおよび動作は、コマンドパケットまたは読み取りデータパケットに関する情報を提供するのにCSIストローブ信号およびDSIストローブ信号に依存する。コマンドパケットはサイズにおいて可変であり、コマンドパケットのビット長を示すヘッダ情報がないので、CSIストローブ信号は、直列コマンドパケットと並列に供給される、コマンドパケットのヘッダとして機能する。CSI信号は、コマンドパケットの長さの間にアクティブであり、Dn入力ポートに現れるコマンドパケットデータを適当なレジスタにラッチするのに、メモリデバイスによって使用される。DSI信号は、メモリコントローラによって知られる期待される読み取りデータパケットの長さの間にアクティブであり、読み取りデータパケットと並列に移動する。したがって、アクティブDSI信号は、読み取りデータパケットのヘッダとして機能する。したがって、コマンドパケットおよび読み取りデータパケットの長さは、そのめいめいのCSIストローブ信号およびDSIストローブ信号の長さに対応している。
【0088】
読み取りデータパケットとコマンドパケットとの両方が、隣接メモリデバイスのDnポートとQnポートとの間に接続された同一の信号線に沿って移動するので、データを伴うCSIストローブの存在は、そのデータをコマンドデータパケットとして指定し、データを伴うDSIストローブの存在は、そのデータを読み取りデータとして指定する。したがって、ストローブ信号は、さらに、メモリシステムを介して移動するデータのタイプを識別する。メモリコントローラは、それが発行するDSIストローブを追跡し、したがって、受け取られた読み取りデータパケットを期待されるデータのタイプと突き合わせることができるようになる。例えば、読み取りデータパケットは、ステータスレジスタ情報またはメモリアレイから読み取られたデータを含むことができる。
【0089】
CSI信号およびDSI信号の機能的関連に鑑みて、最小分離時間が、すべてのタイプの後続ストローブ信号の間に挿入される。これは、すべてのコマンドパケットおよび読み取りデータパケットが別個であり、定義されることを保証するためであり、正しいタイプのデータがメモリコントローラのメモリデバイスによってラッチされることを保証するためである。分離が使用される4つの可能な状況がある。CSI対CSI分離(tCCS)、CSI対DSI分離(tCDS)、DSI対CSI分離(tDCS)、およびDSI対DSI分離(tDDS)がある。
【0090】
CSI対CSI分離tCCSは、クロック周期(tCK)内の、同一のまたは異なるデバイスへの連続するコマンドパケットの間の最小分離時間である。この分離時間は、新しいコマンドに備えて、例えばコマンドレジスタをクリアすることとすべてのコマンド論理をリセットすることとによって、前のコマンドをメモリデバイスからクリアすることを可能にする。DSI対DSI分離tDDSは、クロック周期(tCK)内の、同一デバイスへの連続する読み取りデータパケットの間の最小分離時間である。この分離時間は、出力される次のデータに備えて、出力バッファ回路がリセットすることを可能にする。DSI対CSI分離tDCSは、クロック周期(tCK)内の、同一のまたは異なるデバイスへの読み取りデータパケットと後続コマンドパケットとの間の最小分離時間である。CSI対DSI分離tCDSは、クロック周期(tCK)内の、同一のデバイスへのコマンドパケットと読み取りデータパケットとの間の最小分離時間である。この2つの分離時間は、正しいデータタイプがメモリデバイスによってラッチされることを保証する。というのは、この両方が、メモリデバイスのDn入力ポートに連続して現れ得るからである。メモリコントローラは、コマンドパケットビット長またはデータパケットビット長の知識を用いてCSI信号およびDSI信号を発行するので、コマンドパケットおよびデータパケット自体がストローブ信号と同一の最小時間だけ分離されることを保証する。
【0091】
これらの分離時間の例は、図11から14までで注釈を付けられており、最小分離時間を、クロックの1データラッチングエッジとすることができ、これを、使用されるデータレートアーキテクチャに依存するクロック周期の分数とすることができることに留意されたい。例えば、データがクロックの立ち上がりエッジにラッチされるシングルデータレートアーキテクチャ(SDR)では、最小分離時間が、1クロックサイクルまたは1クロック周期になるはずである。データが、クロックの立ち上がりエッジと立ち下がりエッジとの両方でラッチされるダブルデータレートアーキテクチャ(DDR)では、最小分離時間は、クロック周期の0.5にはるはずである。図11から15までは、単一メモリデバイス内の同時動作の例であり、CSI対DSI分離またはDSI対CSI分離の関連を明瞭には図示しない。図16は、CSI対DSI分離またはDSI対CSI分離の関連を示すシーケンス図である。
【0092】
図16は、第1メモリデバイスがその読み取りデータをそのQn出力ポートから出力し、第2の直列接続されたメモリデバイスが、読み取りデータが第1メモリデバイスから出力された後にコマンドパケットを受け取る、例のシナリオである。この例で言及される2つのメモリデバイスは、例えば図4および5に示されたものに対応することができる。DSI_1ポート、CSI_1ポート、DSO_1ポート、CSO_1ポート、およびQn_1ポートの信号トレースが、第1メモリデバイスについて示され、ここで、付加された「_1」は、第1メモリデバイスのポートを指定する。DSI_2ポート、CSI_2ポート、およびDn_2ポートの信号トレースが、第2メモリデバイスについて示され、付加された「_2」は、第2メモリデバイスのポートを指定する。第1メモリデバイスが、そこからデータを読み出す1つまたは複数のコマンドパケットを以前に受け取ったと仮定する。その結果、DSI_1は、Qn_1ポート上で読み取りデータパケット902としてデータを出力するためのストローブ信号900を受け取る。読み取りデータパケット902は、「Qn_1読み取りデータ」というラベルを付けられている。この読み取りデータおよびストローブ信号は、第1メモリデバイスから第2メモリデバイスへ直列に渡されるので、DSO_1は、DSI_1ポートから受け取られたストローブ信号900を第2メモリデバイスのDSI_2ポートに渡す。同様に、読み取りデータパケット902は、第1メモリデバイスのQn_1ポートから第2メモリデバイスのDn_2ポートに渡される。
【0093】
メモリコントローラは、ここで、「Dn_2コマンドデータ」というラベルを付けられた、付随するCSIストローブ信号906を有する、第2メモリデバイスにアドレッシングされたコマンドパケット904を発行する。ストローブ信号906は、CSI_1を介して第1メモリデバイスをパススルーし、コマンドパケットは、第1メモリデバイスのDn入力ポートをパススルーし(図16には図示せず)、Qn_1出力ポートを介して出る。第1メモリデバイスは、コマンドパケット904が第2メモリデバイスにアドレッシングされているので、コマンドパケット904を無視する。次に、第1メモリデバイスは、ストローブ信号906をそのCSO_1ポートから第2メモリデバイスのCSI_2ポートに渡し、コマンドパケット904をそのQn_1出力ポートから第2メモリデバイスのDn_2入力ポートに渡す。ストローブ信号900の立ち下がりエッジとストローブ信号906の立ち上がりエッジとの間には最小分離tCDSがあり、読み取りデータパケット902の最後のビットとコマンドパケット904の最初のビットとの間に最小分離があるので、第2メモリデバイスは、信頼できる形でコマンドパケット904を適当なレジスタにラッチする。その一方で、コマンドパケット904およびその対応するストローブ信号906が、分離tCDSなしで発行される場合には、第2メモリデバイスは、コマンドパケット904の一部として読み取りデータパケット902の読み取りデータビットをラッチする可能性がある。したがって、最小分離は、データタイプの混合がないことを保証する。
【0094】
前に説明したメモリシステム内のメモリデバイス、特に不揮発性メモリデバイスは、メモリデバイスに電力が供給されないときに、格納されたデータを保持できるという利益を有する。しかし、フルパワー動作とパワーがまったくないまたは節電レベルとの間の遷移は、格納されたデータの完全性を危険にさらす可能性がある。
【0095】
図17Aに、本発明の実施形態を適用可能なフラッシュメモリデバイスを示す。図17Aを参照すると、フラッシュメモリ1010は、フラッシュ回路の様々な機能を制御する制御回路1012、アドレス情報を格納するアドレスレジスタ1012a、プログラムデータ情報を格納するデータレジスタ1012b、コマンドデータ情報を格納するコマンドレジスタ1012c、必要なプログラム電圧および消去電圧を生成する高電圧回路、メモリアレイ1014にアクセスするコアメモリ回路などの論理回路を含む。制御回路1012は、読み取り機能、プログラム機能、および消去機能などの内部フラッシュ動作を実行するコマンドデコーダおよび論理を含む。当業者は、これらの動作が、実行される動作に応じて、時々めいめいのアドレスレジスタ1012aおよびデータレジスタ1012bに格納されたアドレスデータおよびプログラムデータと組み合わされる、コマンドレジスタ1012cに格納されたコマンドデータに応答して実行されることを理解することができる。コマンドデータ、アドレスデータ、およびプログラムデータは、メモリコントローラによって発行され、フラッシュメモリ1010によって対応するレジスタにラッチされる。フラッシュメモリ1010の図示の回路ブロックの基本機能は、当技術分野で既知である。当業者は、図17Aに示されたフラッシュメモリ1010が、多数の可能な構成の中の1つの可能なフラッシュメモリ構成を表すことを理解することができる。
【0096】
フラッシュメモリ1010の正しい動作のためには、アドレス、データ、およびコマンド情報を格納するレジスタが、信頼できるものでなければならない。レジスタに格納された不正な値は、デバイス誤動作をもたらす。例えば、変化する供給電圧は、レジスタに、コマンドレジスタ1012cに格納された情報の状態をランダムに変化させる可能性があり、これは、おそらくは受け取られたプログラムまたは消去コマンドに対応するビットパターンをもたらす。その場合に、偽のプログラム動作が、データレジスタ1012b内のランダムデータをメモリアレイ1014のアドレスレジスタ1012a内のランダムアドレスにプログラムさせる。データが、このアドレスに存在する場合に、そのアドレスに対応するメモリセルは、プログラミング電圧を受け、そのしきい値電圧を変更され得る。偽の消去動作は、メモリアレイ1014内の既存データの消去をもたらし得る。メモリコントローラは、フラッシュメモリ1010によって実行される偽の動作を知らないので、失われたデータは、回復不能である。
【0097】
フラッシュメモリ1010のレジスタは、通常、2つの安定した状態を有するフリップフロップ回路を用いて設計される。Dフリップフロップは、図17Bに示されているように、当技術分野で一般に知られた回路である。Dフリップフロップ1050は、入力データD_INを受け取るD入力を有し、入力データD_INは、クロック信号CLKの立ち上がりエッジなど、CLKのアクティブエッジに内部的にラッチされる。ラッチされたときに、Q出力は、D_OUTを供給し、これは、D_INの論理状態に対応するが、相補Qb出力は、D_OUTbを供給し、これは、D_INの反転された論理状態に対応する。リセット入力は、信号RESETが例えばVSSまたはグラウンドなどのアクティブ論理レベルである間に、ラッチをクリアする。これによって、各フリップフロップ回路は、1ビットのデータを格納し、コマンドレジスタ1012cは、複数のフリップフロップ回路を含む。当業者が知っているとおり、フリップフロップラッチ回路は、1対の交差結合された反転回路を含むことができる。
【0098】
図18に、通常のフラッシュメモリ1010内のパワーアップ動作中およびパワーダウン動作中の電圧供給VCC、アクティブロウ論理レベルリセット信号RST#、およびアクティブロウ論理レベルチップイネーブル信号CE#のシーケンス図を示す。パワーアップ動作中に、電源電圧VCCは、ロウGNDまたはVSS電圧レベルからハイVCC電圧レベルへの遷移を時刻tONに開始する。VCC電圧レベルは、増加し、時刻tSTに、安定した電圧レベルVSTに達し、その時に、フラッシュメモリ1010を動作させることができる。最終的にVCC電圧レベルは、時刻tVに最大VCCレベルに達する。それぞれ関連するメモリコントローラから受け取られるデバイスリセット信号およびデバイスイネーブル信号RST#およびCE#は、時刻tONに同時にインアクティブハイ論理レベルに駆動されるが、VCCの増加する電圧に従う。RST#がデアサートされた後またはインアクティブ論理レベルであるときに、デバイスは、「レディ」状態であり、メモリコントローラからコマンドを受け取るように動作可能である。任意選択で、コントローラは、デバイスがリセット状態である間にCE#信号ををインアクティブハイ論理レベルに駆動することによって、時刻tONにCE#信号をデアサートする。VCCは、その最大電圧レベルに向かって増加しているので、CE#は、VCC増加に従う。CE#信号を、時刻TCEOffにアサートして、デバイスが通常動作状態に入ることを可能にすることができる。時刻tCEOffは、RST#信号がデアサートされるかインアクティブハイ論理レベルに駆動された後(すなわち、時刻tVの後)に少なくともtCE#のタイムインターバルが経過した後に発生する。デバイスが通常動作状態に入ったならば、初期化動作を、デバイスレベルとシステムレベルとの両方で実行することができる。しかし、VCC遷移時間中すなわち、時刻tONから時刻tVまで、または少なくとも時刻tSTまでは、レジスタへの制御信号を正確に制御することができない。これは、偽の情報がフラッシュメモリ1010の様々なレジスタに格納されることにつながる可能性があり、これは、フラッシュメモリ1010内のデータ完全性の消失をもたらすデータの不正なプログラミングまたは消去を引き起こし得る。
【0099】
パワー遷移中の意図しないプログラム/消去動作に起因するデータ完全性の消失は、速度、サイズ縮小、ならびにより低い電力消費の望みに関するますます高まる必要がフラッシュデバイスに日常的により低いVCC電圧レベルで動作することを要求する現在の世代のフラッシュデバイスで悪化する。より低い動作VCCレベルは、偽の情報がフラッシュデバイスの様々なレジスタに格納されることに関連する問題を増幅し、これによってデータ信頼性に悪影響する。
【0100】
不揮発性メモリデバイスでのパワーアップ動作およびパワーダウン動作などのパワー遷移中のデータ保護の方法を、説明する。いずれかのパワー遷移をアサートする前に、リセット信号が、メモリデバイスの機能をディスエーブルするためにアサートされる。このリセット信号は、その間にデバイス電圧が安定すると期待される事前にセットされた時間の間に維持される。この時間中に、デバイスのコマンドレジスタなどのすべての内部レジスタに、デフォルト値がセットされ、これによって、偽のプログラム/消去コマンドがデバイスによって実行されることに起因するデータ消失を防ぐ。
【0101】
図19に、本発明の実施形態による不揮発性メモリデバイス内のパワーアップ動作中およびパワーダウン動作中の電圧供給VCC、アクティブロウ論理レベルリセット信号RST#、およびアクティブロウ論理レベルチップイネーブル信号CE#のシーケンス図を示す。前に説明したように、VCC電圧は、時刻tONにロウGNDまたはVSS電圧レベルからハイVCC電圧レベルに遷移する。代替案では、VCC電圧レベルは、低電力モードレベルからVCC電圧レベルに遷移することができる。VCC電圧レベルは、経時的に増加し、時刻tSTに、安定電圧レベルVSTを超え、このレベルでは、フラッシュメモリ1010を動作させることができる。最終的に、VCC電圧レベルは、時刻tVに最大VCCレベルに達する。しかし、偽の情報がコマンドレジスタにラッチされることに起因するデバイス誤動作を防ぐために、不揮発性メモリデバイスに関連するメモリコントローラなどのコントローラは、RST#信号をアクティブロウ論理レベルに保持して、待ち時間期間の間にデバイスのすべての機能をディスエーブルし、この待ち時間期間は、少なくとも、VCC電圧レベルが安定したVST電圧レベルに達するのに要する時間(tONからtSTまでの時間)である。図19に示される実施形態では、RST#信号は、延長された時間期間tRSTの間すなわち、tONからtSTに少なくともVCCレベルが安定した電圧レベルVSTに達した後のタイムインターバルt1を加えた時刻まで、アクティブロウ論理レベルに保持される。したがって、このデバイスのすべての内部レジスタは、RST#信号がアクティブロウ論理レベルである間にデフォルト状態またはリセット状態に保持される。
【0102】
最終的に、コントローラは、図19に示されているようにタイムインターバルtRSTの後にRST#をデアサートする。この時の後に、電力は、安定化され、デバイスコンポーネントは、動作のためにそれ自体を準備しまたは初期化することができる。任意選択で、コントローラは、デバイスがリセット状態である間にCE#信号をインアクティブハイ論理レベルに駆動することによって、時刻tONにCE#信号をデアサートする。VCCは、その最大電圧レベルに向かって増加しているので、CE#は、VCC増加に従う。CE#信号を、時刻tCEOffにアサートして、デバイスが通常動作状態に入ることを可能にすることができる。時刻tCEOffは、RST#信号がデアサートされるかインアクティブハイ論理レベルに駆動された後に少なくともt2のタイムインターバルが経過した後に発生する。デバイスが通常動作状態に入った後に、初期化動作を、デバイスレベルとシステムレベルとの両方で実行することができる。パワー遷移動作中に所定の長さの時間の間にデバイスを故意にリセット状態に保持することによって、偽の情報がデバイスの様々なレジスタに格納され、またはラッチされることが防がれる。したがって、デバイスは、データの不正な不注意のプログラミングまたは消去から安全保護され、パワー遷移中のデータ完全性が保証される。
【0103】
VCCがターンオフされ、ロウGNDまたはVSS電圧レベルに駆動されるときに、tOFFの前の所定の時刻にRST#をアサートすることによって、またはRST#をアクティブロウ論理レベルに駆動することによって、データ保護を保証する類似の手順を、パワーダウン動作中に進行することができる。
【0104】
本発明の実施形態による、不揮発性メモリデバイス内のパワー遷移中のデータ保護の方法を示す流れ図を、図20に示す。フラッシュメモリデバイスなどの不揮発性メモリデバイスを制御するメモリコントローラは、デバイスをリセット状態にするために、すべてのパワー遷移の前にRST#をロウに維持する(ステップ1100)。この時間中に、デバイスの内部レジスタは、デフォルト状態またはリセット状態にセットされる。次に、コントローラは、電力が遷移することを可能にし(ステップ1102)、所定の時間期間だけ、デバイスの内部電圧が安定するのを待つ(ステップ1104)。待ち時間期間は、図19に示されたtRSTに対応し、少なくとも、VCC電圧レベルが安定したVST電圧レベルに達するのに要する時間(tONからtSTまでの時間)に、少なくとも、VCCレベルが安定した電圧レベルVSTに達した後のタイムインターバルt1を加えたものである。タイムインターバルt1は、動作電圧およびプロセステクノロジなどのデバイス特性に基づいて決定することができる。例えば、RST#がロウに保持される総時間期間すなわちtRSTを、10□s以上とすることができる。この時間期間中に、デバイスの様々なコンポーネントが安定し、クロックが、動作状態になり、周波数安定および位相安定になる。
【0105】
時間期間tRSTの経過の後に、コントローラは、デバイスが「レディ」状態であると期待されるときにRST#ハイ信号をアサートする(ステップ1106)。図19に関して説明したように、コントローラは、デバイスがリセット状態である間の時刻tONにCE#信号をアサートし、RST#がデアサートされた後に、メモリデバイスをリセット状態から解放するためにCE#信号をディスエーブル状態にする。CE#信号は、デバイスが通常動作状態に入ることを可能にするために時刻tCEOffにデアサートされる。時刻tCEOffは、RST#信号がアサートされた後に少なくともt2のタイムインターバルが経過した後である。デバイスが通常動作状態に入ったならば、初期化動作を、デバイスレベルとシステムレベルとの両方で実行することができる(ステップ1108)。タイムインターバルt1に似て、タイムインターバルt2は、デバイス特性に基づいて決定することができ、メモリシステムごとに変化する。例えば、t2を100□s以上とすることができる。
【0106】
図21には、本発明の実施形態による、データ保護を保障するためにパワー遷移中にデバイスで用いられるステップが記載されている。不揮発性メモリデバイスは、デバイスを制御するメモリコントローラから、すべてのパワー遷移の前にRST#ロウ信号を受け取る(ステップ1200)。次に、デバイスは、デバイスコンポーネントをアクティブ化するためにコントローラから電力を受け取る(ステップ1202)。この受け取られる電力は、VSS電圧からまたは低電力モード電圧レベルからフルVCC動作電圧レベルへの増加とすることができる。RST#信号がロウであることに起因して、デバイスは、リセット状態に置かれる。この時間中に、デバイスの内部レジスタおよびすべての有限状態機械は、デフォルト状態またはリセット状態にセットされ、維持される(ステップ1204)。次に、コントローラは、RST#ハイをアサートする前に、所定の時間期間だけ、デバイスの内部電圧が安定するのを待つ。時間期間tRSTの経過の後に、コントローラは、デバイスが「レディ」状態であると期待されるときに、RST#ハイ信号をアサートする。デバイスは、RST#ハイ信号を受け取り、デバイスを「レディ」状態に置く(ステップ1206)。コントローラは、時刻tCEOffにCE#信号をアサートして、デバイスが通常動作状態に入ることを可能にする。前に説明したように、デバイスが通常動作状態に入ったならば、デバイスレベルで初期化動作を実行することができる(ステップ1208)。
【0107】
次は、図4のメモリシステム200内のパワー遷移中のデータ保護の方法についての説明である。パワーアップ時に、電力が安定し、デバイスが動作のためにそれ自体を準備する間に、メモリコントローラ202は、リセット(RST#)をロウに保持して、すべてのメモリデバイス204、206、208、および210をリセットに保つ。RST#は、図19に示されているように、コントローラ202によって、VCCが安定した後にt1(例えば、20□s)の間にロウに保持される。RST#がロウに保持されている間に、メモリ内のすべての有限状態機械が初期化され、すべての構成レジスタおよびステータスレジスタが、そのデフォルト状態またはリセット状態にリセットされる。RST#がハイ論理レベルにデアサートされる前に、クロックが、動作状態になり、周波数安定および位相安定になる。図19に関して説明したように、コントローラ202は、デバイスがリセット状態である間の時刻tONにCE#信号をデアサートし、RST#がデアサートされた後にCE#をアサートする。CE#信号は、デバイスが通常動作状態に入ることを可能にするために時刻tCEOffにアサートされる。時刻tCEOffは、RST#信号がアサートされた後に少なくともt2のタイムインターバルが経過した後である。デバイスが通常動作状態に入ったならば、初期化動作を、デバイスレベルとシステムレベルとの両方で実行することができる。初期化動作の例は、直列接続のデバイスのそれぞれのデバイスアドレスおよび識別子の生成および割当を含む。デバイスアドレスおよび識別子の生成の様々な方法は、同時係属の米国特許出願第11/622828号、米国特許出願第11/750649号、米国特許出願第11/692452号、米国特許出願第11/692446号、米国特許出願第11/692326号、および米国特許出願第11/771023号に記載されている。
【0108】
パワー遷移動作中に所定の長さの時間だけデバイスがリセット状態であることを保証することによって、偽の情報がデバイスの様々なレジスタに格納され、またはラッチされることが防がれる。したがって、デバイスは、データの不正なプログラミングまたは消去から安全保護され、パワー遷移中のデータ完全性が保証される。
【0109】
上記の説明では、説明のために、本発明の実施形態の完全な理解を提供するために多数の詳細が示されている。しかし、当業者には、これらの特定の詳細が、本発明を実施するために必要ではないことが明白である。その他の実施例として、周知の電気的構造および回路は、本発明を不明瞭にしないようにするために、ブロック図で示される。例えば、本明細書で説明される本発明の実施形態がソフトウェアルーチン、ハードウェア回路、ファームウェア、またはこれらの組合せとして実施されるかどうかに関して、具体的な詳細は提供しない。
【0110】
本発明の実施形態を、機械可読媒体(その中でコンピュータ可読プログラムコードを実施される、コンピュータ可読媒体、プロセッサ可読媒体、またはコンピュータ使用可能媒体とも称する)に格納されたソフトウェア製品として表すことができる。機械可読媒体は、ディスケット、コンパクトディスク読み取り専用メモリ(CD-ROM)、メモリデバイス(揮発性または不揮発性)、または類似する記憶機構を含む磁気記憶媒体、光学記憶媒体、または電気記憶媒体を含む任意の適切な有形の媒体とすることができる。機械可読媒体は、実行されたときにプロセッサに本発明の実施形態による方法のステップを実行させる命令、コードシーケンス、構成情報、または他のデータの様々なセットを含むことができる。当業者は、説明された発明を実施するのに必要な他の命令および動作をも機械可読媒体に格納できることを了解する。機械可読媒体から実行されるソフトウェアは、回路とインターフェースして、説明されたタスクを実行することができる。
【0111】
本発明の上記で説明した実施形態は、一例であることだけを意図されたものである。添付の特許請求の範囲のみによって定義される本発明の範囲から逸脱せずに、当業者が、特定の実施形態に対する変更、修正、および変形をもたらすことができる。
本発明は、
直列ビットストリームコマンドパケットを供給する直列チャネル出力ポートと、直列ビットストリーム読み取りデータパケットを受け取る直列チャネル入力ポートとを有するコントローラであって、前記直列ビットストリームコマンドパケットがオペレーションコードおよびデバイスアドレスを含む、コントローラと、
メモリデバイスであって、前記コントローラから前記直列ビットストリームコマンドパケットを受け取る入力ポートを有し、前記デバイスアドレスが前記メモリデバイスに対応する場合に前記オペレーションコードを実行し、出力ポートを介して前記直列ビットストリームコマンドパケットを提供し、前記オペレーションコードが読み取り機能に対応する場合に前記出力ポートを介して前記直列ビットストリーム読み取りデータパケットをその後に提供する、メモリデバイスと
を含むメモリシステム、を提供する。
前記メモリシステムは、
前記メモリデバイスと前記コントローラとの間に直列に結合された少なくとも1つの介在するメモリデバイスをさらに含み、
前記少なくとも1つの介在するメモリデバイスが、前記直列ビットストリームコマンドパケットを受け取り、これを前記メモリデバイスに渡す入力ポートを有し、
前記デバイスアドレスが前記少なくとも1つの介在するメモリデバイスに対応するとともに、前記オペレーションコードが読み取り機能に対応する場合に、前記直列ビットストリーム読み取りデータパケットを後段に提供する、こととしてもよい。
相補クロック信号が、前記メモリデバイスおよび前記少なくとも1つの介在するメモリデバイスに並列に提供される、こととしてもよい。
相補クロック信号が、前記少なくとも1つの介在するメモリデバイスに提供され、前記少なくとも1つの介在するメモリデバイスによって前記メモリデバイスに渡され、前記メモリデバイスによって前記コントローラに渡される、こととしてもよい。
前記メモリシステムは、拡張モジュールおよびジャンパのうちの1つを受ける、前記コントローラと前記メモリデバイスとの間の拡張リンクをさらに含む、こととしてもよい。
前記少なくとも1つの介在するメモリデバイスが、前記拡張リンクとの電気的結合のために構成された結合手段を有する拡張モジュールの一部である、こととしてもよい。
前記メモリデバイスおよび前記少なくとも1つの介在するメモリデバイスが、それぞれ、ネイティブメモリコアと、前記直列ビットストリームコマンドパケットに応答して前記ネイティブメモリコアを制御する直列インターフェースおよび制御論理ブロックとを含む、こととしてもよい。
前記メモリデバイスネイティブメモリコアおよび前記少なくとも1つの介在するメモリデバイスネイティブメモリコアが、NANDフラッシュベースである、こととしてもよい。
前記メモリデバイスネイティブメモリコアおよび前記少なくとも1つの介在するメモリデバイスネイティブメモリコアが、異なる、こととしてもよい。
前記ネイティブメモリコアが、DRAMメモリコア、SRAMメモリコア、NANDフラッシュメモリコア、およびNORフラッシュメモリコアのうちの1つを含む、こととしてもよい。
前記直列ビットストリームコマンドパケットが、前記直列ビットストリームコマンドパケットのサイズが可変であるモジュラ構造を有する、こととしてもよい。
前記直列ビットストリームコマンドパケットが、前記オペレーションコードおよび前記デバイスアドレスを提供するコマンドフィールドを含む、こととしてもよい。
前記コマンドフィールドが、前記オペレーションコードを提供する第1サブフィールドと、前記デバイスアドレスを提供する第2サブフィールドとを含む、こととしてもよい。
前記直列ビットストリームコマンドパケットが、前記オペレーションコードおよび前記デバイスアドレスを提供するコマンドフィールドと、ロウアドレスおよびカラムアドレスのうちの1つを提供するアドレスフィールドとを含む、こととしてもよい。
前記直列ビットストリームコマンドパケットが、前記オペレーションコードおよび前記デバイスアドレスを提供するコマンドフィールドと、ロウアドレスおよびカラムアドレスのうちの1つを提供するアドレスフィールドと、書き込みデータを提供するデータフィールドとを含む、こととしてもよい。
前記コントローラが、前記直列ビットストリームコマンドパケットと並列にコマンドストローブを提供し、前記コマンドストローブが、前記直列ビットストリームコマンドパケットの長さと一致するアクティブレベルを有する、こととしてもよい。
前記コントローラが、前記直列ビットストリーム読み取りデータパケットと並列にデータ入力ストローブを提供し、前記データ入力ストローブが、前記直列ビットストリーム読み取りデータパケットの長さと一致するアクティブレベルを有する、こととしてもよい。
前記メモリデバイスが、前記デバイスアドレスが前記メモリデバイスに対応するときに、前記コマンドストローブの前記アクティブレベルに応答して前記直列ビットストリームコマンドパケットをラッチする、こととしてもよい。
前記メモリデバイス出力ポートが、前記データ入力ストローブの前記アクティブレベルに応答してイネーブルされる、こととしてもよい。
前記コマンドストローブおよび前記データ入力ストローブが、オーバーラップしない信号である、こととしてもよい。
前記コマンドストローブおよび前記データ入力ストローブが、少なくとも1つのデータラッチングクロックエッジによって分離される、こととしてもよい。
前記コマンドストローブが、少なくとも1つのデータラッチングクロックエッジによって隣接するコマンドストローブから分離される、こととしてもよい。
前記データ入力ストローブが、少なくとも1つのデータラッチングクロックエッジによって隣接するデータ入力ストローブから分離される、こととしてもよい。
本発明は、
特定のメモリ動作を実行するために直列に接続されたメモリデバイスのメモリデバイスを選択するコマンドフィールド
を含む、前記直列に接続されたメモリデバイスを有するメモリシステム用の一連のビットを含むコマンドパケット、を提供する。
前記コマンドフィールドが、前記メモリデバイスを選択するデバイスアドレスを提供する第1サブフィールドと、前記特定のメモリ動作に対応するオペレーションコードを提供する第2サブフィールドとを含む、こととしてもよい。
前記コマンドパケットが、前記オペレーションコードが読み取り動作または書き込み動作に対応するときにロウアドレスおよびカラムアドレスのうちの1つを提供する、前記コマンドフィールドに続くアドレスフィールドをさらに含み、前記アドレスフィールドが、前記ロウアドレスまたは前記カラムアドレスに対応するビット長を有する、こととしてもよい。
前記コマンドパケットが、前記オペレーションコードが前記書き込み動作に対応するときに前記メモリデバイスでの格納のための書き込みデータを提供する、前記アドレスフィールドに続くデータフィールドをさらに含み、前記データフィールドが、前記書き込みデータに対応するビット長を有する、こととしてもよい。
本発明は、
第1コマンドを受け取るステップと、
前記第1コマンドに応答して、直列接続されたメモリデバイスを有するメモリシステムの選択されたメモリデバイスの第1メモリバンク内でコア動作を実行するステップと、
前記第1メモリバンク内のコア動作の実行中に第2コマンドを受け取るステップと、
前記第2コマンドに応答して前記選択されたメモリデバイスの第2メモリバンク内でコア動作を実行するステップと
を含む、前記選択されたメモリデバイス内で同時動作を実行する方法、
を提供する。
前記第1メモリバンクおよび前記第2メモリバンクのうちの1つからの結果情報を要求する第3コマンドを受け取るステップと、
前記第3コマンドに応答して前記結果情報を含む読み取りデータパケットを出力するステップと
をさらに含む、こととしてもよい。
前記結果情報が、ステータスレジスタデータおよび読み取りデータのうちの1つを含む、こととしてもよい。
前記第1コマンド、前記第2コマンド、および前記第3コマンドが、
オペレーションコードおよびデバイスアドレスを提供する必須コマンドフィールドと、
前記オペレーションコードが読み取り動作または書き込み動作に対応するときにロウアドレスおよびカラムアドレスのうちの1つを提供する、前記コマンドフィールドに続くオプションのアドレスフィールドと、
前記オペレーションコードが前記書き込み動作に対応するときに書き込みデータを提供する、前記アドレスフィールドに続くオプションのデータフィールドと
を含むように論理的に構成された一連のビットを含むコマンドパケットである、こととしてもよい。
第1コマンドストローブが、前記第1コマンドと並列に受け取られ、前記第1コマンドストローブが、前記第1コマンドの長さに対応するアクティブ持続時間を有し、
第2コマンドストローブが、前記第2コマンドと並列に受け取られ、前記第2コマンドストローブが、前記第2コマンドの長さに対応するアクティブ持続時間を有する、こととしてもよい。
データ入力ストローブが、前記データ入力ストローブがアクティブレベルである間に前記読み取りデータパケットの出力をイネーブルするために受け取られる、こととしてもよい。
前記第1コマンドストローブおよび前記第2コマンドストローブが、少なくとも1つのデータラッチングクロックエッジだけ分離される、こととしてもよい。
前記第2コマンドストローブおよびデータ入力ストローブが、少なくとも1つのデータラッチングクロックエッジだけ分離される、こととしてもよい。
前記第1コマンドを受け取る前に前記選択されたメモリデバイスをパワーアップするステップをさらに含む、こととしてもよい。
パワーアップする前記ステップが、
パワー遷移の前に前記選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートするステップと、
前記制御信号がアサートされている間に前記選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記選択されたメモリデバイスを前記デフォルト状態から解放するために前記制御信号をデアサートするステップであって、これによって前記選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐステップと
を含む、こととしてもよい。
前記第2電圧レベルが、安定した回路動作のための最小電圧レベルである、こととしてもよい。
前記第2電圧レベルが、電源の最大動作電圧レベルである、こととしてもよい。
前記第1電圧レベルが、電源の低電力モード動作電圧レベルに対応する、こととしてもよい。
前記第1電圧レベルが、電源の不在に対応する、こととしてもよい。
前記メモリデバイスを前記デフォルト状態に維持するステップが、前記メモリデバイス内のデバイスレジスタにデフォルト値をセットするステップを含む、こととしてもよい。
前記デバイスレジスタが、コマンドレジスタを含む、こととしてもよい。
前記デフォルト状態からの前記メモリデバイスの解放の際にデバイス初期化を実行するステップをさらに含む、こととしてもよい。
デバイス初期化を実行する前記ステップが、前記メモリデバイスのデバイスアドレスおよびデバイス識別子情報を生成するステップを含む、こととしてもよい。
パワーアップする前記ステップが、
パワー遷移の前に前記メモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートするステップと、
前記制御信号がアサートされている間の第2の後の時刻に前記メモリデバイスの電力レベルを第1レベルから第2レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記メモリデバイスを前記デフォルト状態から解放するために第3の後の時刻に前記制御信号をデアサートするステップであって、これによって前記メモリデバイス内の不測のプログラム動作または消去動作を防ぐステップと
を含む、こととしてもよい。
本発明は、
複数のメモリデバイスと前記デバイスを制御するコントローラとを含むメモリシステムであって、
前記コントローラが、前記複数のメモリデバイスの第1デバイスにビットストリームコマンドパケットを提供する出力ポートを有し、前記ビットストリームコマンドパケットが、オペレーションコードおよびデバイスアドレスを含み、
前記複数のメモリデバイスのそれぞれが、前記コントローラおよび前のメモリデバイスのうちの1つから前記ビットストリームコマンドパケットを受け取り、前記デバイスアドレスがそれに対応する場合に前記オペレーションコードを実行し、前記複数のメモリデバイスのそれぞれが、次のメモリデバイスおよび前記コントローラのうちの1つに前記ビットストリームコマンドパケットを提供し、ビットストリーム読み取りデータパケットが、前記オペレーションコードが読み取り機能に対応する場合に前記複数のメモリデバイスの最後のメモリデバイスから前記コントローラに提供される
メモリシステム、を提供する。
前記複数のメモリデバイスが、直列に接続され、最初のメモリデバイスおよび最後のメモリデバイスが、前記コントローラに接続される、こととしてもよい。
前記コントローラが、前記複数のメモリデバイスの最初のデバイスにビットストリームデータパケットを送る、こととしてもよい。
前記コントローラからの前記ビットストリームデータパケットと、前記ビットストリーム読み取りデータパケットとが、直列ビットストリームを含む、こととしてもよい。
前記コントローラからの前記ビットストリームデータパケットと、前記ビットストリーム読み取りデータパケットとが、並列ビットストリームを含む、こととしてもよい。
前記複数のメモリデバイスが、同一のタイプであるか、異なるタイプのメモリデバイスの混合物である、こととしてもよい。
本発明は、
複数のメモリデバイスと前記デバイスを制御するコントローラとを含むメモリシステムであって、前記メモリシステムが、第1コマンドを受け取る前に選択されたメモリデバイスをパワーアップする機能を実行することができる、こととしてもよい。
パワーアップする前記機能が、
パワー遷移の前に前記選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートするステップと、
前記制御信号がアサートされている間に前記選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記選択されたメモリデバイスを前記デフォルト状態から解放するために前記制御信号をデアサートするステップであって、これによって前記選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートするステップと
を含む、こととしてもよい。
パワーアップする前記機能が、
パワー遷移の前に前記メモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートするステップと、
前記制御信号がアサートされている間の第2の後の時刻に前記メモリデバイスの電力レベルを第1レベルから第2レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記メモリデバイスを前記デフォルト状態から解放するために第3の後の時刻に前記制御信号をデアサートするステップであって、これによって前記メモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートするステップと
を含む、こととしてもよい。
【符号の説明】
【0112】
10 フラッシュメモリシステム
12 ホストシステム
14 メモリコントローラ
16 不揮発性メモリデバイス
18 チャネル
30 バンク
32 データレジスタ
100 直列メモリシステム
102 メモリコントローラ
104 メモリデバイス
106 メモリデバイス
108 メモリデバイス
110 メモリデバイス
112 メモリデバイス
114 メモリデバイス
116 メモリデバイス
200 直列メモリシステム
202 メモリコントローラ
204 メモリデバイス
206 メモリデバイス
208 メモリデバイス
210 メモリデバイス
300 直列メモリシステム
302 メモリコントローラ
304 メモリデバイス
306 メモリデバイス
308 メモリデバイス
310 メモリデバイス
400 調整可能な直列メモリシステム
402 メモリコントローラ
404 固定されたメモリデバイス
406 固定されたメモリデバイス
408 固定されたメモリデバイス
410 固定されたメモリデバイス
412 拡張リンク
414 拡張リンク
416 拡張リンク
418 拡張リンク
420 拡張リンク
422 拡張モジュール
424 拡張モジュール
426 拡張モジュール
428 ジャンパ
430 ジャンパ
500 メモリデバイス
502 メモリアレイバンク
504 メモリアレイバンク
506 ネイティブ制御および入出力回路
508 直列インターフェースおよび制御論理ブロック
600 コマンドパケット
602 コマンドフィールド
604 アドレスフィールド
606 データフィールド
608 デバイスアドレス(DA)フィールド
610 オペコード(OPコード)フィールド
800 バンク0のページ読み取りコマンドパケット
802 バンク1のページ読み取りコマンドパケット
804 バースト読み取りコマンドパケット
806 読み取りデータパケット
808 バースト読み取りコマンドパケット
810 読み取りデータパケット
820 バンク0のバーストデータロードコマンドパケット
822 ページプログラムコマンドパケット
824 バンク1のバーストデータロードコマンドパケット
826 ページプログラムコマンドパケット
828 ステータス読み取りコマンドパケット
830 読み取りデータパケット
832 ステータス読み取りコマンドパケット
834 読み取りデータパケット
840 バンク0のページ読み取りコマンドパケット
842 バンク1のバーストデータロード開始コマンドパケット
844 バンク1のページプログラムコマンドパケット
846 バースト読み取りコマンドパケット
848 読み取りデータパケット
850 ステータス読み取りコマンドパケット
852 読み取りデータパケット
860 バンク0のブロック消去アドレス入力コマンドパケット
862 消去コマンドパケット
864 バンク1のブロック消去アドレス入力コマンドパケット
866 消去コマンドパケット
868 ステータス読み取りコマンドパケット
870 ステータス読み取りコマンドパケット
872 読み取りデータパケット
874 読み取りデータパケット
880 バンク1のバーストデータロード開始コマンドパケット
882 バンク0のページ読み取りコマンドパケット
884 バンク1のバーストデータロードコマンドパケット
886 バンク1のページプログラムコマンドパケット
888 バンク0のバースト読み取りコマンドパケット
890 データ読み取りパケット
892 ステータス読み取りコマンドパケット
894 読み取りデータパケット
896 バンク0のバースト読み取りコマンドパケット
898 読み取りデータパケット
900 ストローブ信号
902 読み取りデータパケット
904 コマンドパケット
906 CSIストローブ信号
1010 フラッシュメモリ
1012 制御回路
1012a アドレスレジスタ
1012b データレジスタ
1012c コマンドレジスタ
1014 メモリアレイ
1050 Dフリップフロップ

【特許請求の範囲】
【請求項1】
第1コマンドを受け取るステップと、
前記第1コマンドに応答して、直列接続されたメモリデバイスを有するメモリシステムの選択されたメモリデバイスの第1メモリバンク内でコア動作を実行するステップと、
前記第1メモリバンク内のコア動作の実行中に第2コマンドを受け取るステップと、
前記第2コマンドに応答して前記選択されたメモリデバイスの第2メモリバンク内でコア動作を実行するステップと
を含む、前記選択されたメモリデバイス内で同時動作を実行する方法。
【請求項2】
前記第1メモリバンクおよび前記第2メモリバンクのうちの1つからの結果情報を要求する第3コマンドを受け取るステップと、
前記第3コマンドに応答して前記結果情報を含む読み取りデータパケットを出力するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記結果情報が、ステータスレジスタデータおよび読み取りデータのうちの1つを含む、請求項2に記載の方法。
【請求項4】
前記第1コマンド、前記第2コマンド、および前記第3コマンドが、
オペレーションコードおよびデバイスアドレスを提供する必須コマンドフィールドと、
前記オペレーションコードが読み取り動作または書き込み動作に対応するときにロウアドレスおよびカラムアドレスのうちの1つを提供する、前記コマンドフィールドに続くオプションのアドレスフィールドと、
前記オペレーションコードが前記書き込み動作に対応するときに書き込みデータを提供する、前記アドレスフィールドに続くオプションのデータフィールドと
を含むように論理的に構成された一連のビットを含むコマンドパケットである、請求項2に記載の方法。
【請求項5】
第1コマンドストローブが、前記第1コマンドと並列に受け取られ、前記第1コマンドストローブが、前記第1コマンドの長さに対応するアクティブ持続時間を有し、
第2コマンドストローブが、前記第2コマンドと並列に受け取られ、前記第2コマンドストローブが、前記第2コマンドの長さに対応するアクティブ持続時間を有する
請求項4に記載の方法。
【請求項6】
データ入力ストローブが、前記データ入力ストローブがアクティブレベルである間に前記読み取りデータパケットの出力をイネーブルするために受け取られる、請求項5に記載の方法。
【請求項7】
前記第1コマンドストローブおよび前記第2コマンドストローブが、少なくとも1つのデータラッチングクロックエッジだけ分離される、請求項6に記載の方法。
【請求項8】
前記第2コマンドストローブおよびデータ入力ストローブが、少なくとも1つのデータラッチングクロックエッジだけ分離される、請求項6に記載の方法。
【請求項9】
前記第1コマンドを受け取る前に前記選択されたメモリデバイスをパワーアップするステップをさらに含む、請求項1に記載の方法。
【請求項10】
パワーアップする前記ステップが、
パワー遷移の前に前記選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートするステップと、
前記制御信号がアサートされている間に前記選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記選択されたメモリデバイスを前記デフォルト状態から解放するために前記制御信号をデアサートするステップであって、これによって前記選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐステップと
を含む、請求項9に記載の方法。
【請求項11】
前記第2電圧レベルが、安定した回路動作のための最小電圧レベルである、請求項10に記載の方法。
【請求項12】
前記第2電圧レベルが、電源の最大動作電圧レベルである、請求項10に記載の方法。
【請求項13】
前記第1電圧レベルが、電源の低電力モード動作電圧レベルに対応する、請求項10に記載の方法。
【請求項14】
前記第1電圧レベルが、電源の不在に対応する、請求項10に記載の方法。
【請求項15】
前記メモリデバイスを前記デフォルト状態に維持するステップが、前記メモリデバイス内のデバイスレジスタにデフォルト値をセットするステップを含む、請求項10に記載の方法。
【請求項16】
前記デバイスレジスタが、コマンドレジスタを含む、請求項15に記載の方法。
【請求項17】
前記デフォルト状態からの前記メモリデバイスの解放の際にデバイス初期化を実行するステップをさらに含む、請求項10に記載の方法。
【請求項18】
デバイス初期化を実行する前記ステップが、前記メモリデバイスのデバイスアドレスおよびデバイス識別子情報を生成するステップを含む、請求項17に記載の方法。
【請求項19】
パワーアップする前記ステップが、
パワー遷移の前に前記メモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートするステップと、
前記制御信号がアサートされている間の第2の後の時刻に前記メモリデバイスの電力レベルを第1レベルから第2レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記メモリデバイスを前記デフォルト状態から解放するために第3の後の時刻に前記制御信号をデアサートするステップであって、これによって前記メモリデバイス内の不測のプログラム動作または消去動作を防ぐステップと
を含む、請求項9に記載の方法。
【請求項20】
複数のメモリデバイスと前記デバイスを制御するコントローラとを含むメモリシステムであって、前記メモリシステムが、第1コマンドを受け取る前に選択されたメモリデバイスをパワーアップする機能を実行することができる、メモリシステム。
【請求項21】
パワーアップする前記機能が、
パワー遷移の前に前記選択されたメモリデバイスをデフォルト状態に維持するために制御信号をアサートするステップと、
前記制御信号がアサートされている間に前記選択されたメモリデバイスの電力レベルを第1電圧レベルから第2電圧レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記選択されたメモリデバイスを前記デフォルト状態から解放するために前記制御信号をデアサートするステップであって、これによって前記選択されたメモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートするステップと
を含む、請求項20に記載のメモリシステム。
【請求項22】
パワーアップする前記機能が、
パワー遷移の前に前記メモリデバイスをデフォルト状態に維持するために、第1時刻に制御信号をアサートするステップと、
前記制御信号がアサートされている間の第2の後の時刻に前記メモリデバイスの電力レベルを第1レベルから第2レベルに遷移させるステップと、
前記電力レベルが安定することを可能にするために時間の所定の持続時間だけ待つステップと、
前記メモリデバイスを前記デフォルト状態から解放するために第3の後の時刻に前記制御信号をデアサートするステップであって、これによって前記メモリデバイス内の不測のプログラム動作または消去動作を防ぐ、デアサートするステップと
を含む、請求項20に記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2012−226786(P2012−226786A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2012−182111(P2012−182111)
【出願日】平成24年8月21日(2012.8.21)
【分割の表示】特願2009−524855(P2009−524855)の分割
【原出願日】平成19年8月22日(2007.8.22)
【出願人】(508034325)モサイド・テクノロジーズ・インコーポレーテッド (106)
【Fターム(参考)】