(57)【要約】【課題】  オンボードＮＡＮＤコントローラを有するホスト装置と後続世代のＮＡＮＤ型フラッシュメモリ装置との間に互換性を提供する。【解決手段】  ホスト装置とフラッシュダイに組み立てられたフラッシュメモリ装置（例えば、ＮＡＮＤ型フラッシュメモリ装置）とをインタフェースするＮＡＮＤコントローラ（１３０）が開示される。いくつかの実施形態では、ここで開示されるＮＡＮＤコントローラは、フラッシュダイと別個のコントローラダイに組み立てられた電子回路、電子回路とフラッシュメモリ装置とをインタフェースする第１のインタフェース（例えば、ホスト型インタフェース、例えばＮＡＮＤインタフェース）（１４４、１４２）、およびコントローラとホスト装置とをインタフェースする、ＮＡＮＤインタフェースである第２のインタフェース（例えば、フラッシュ型インタフェース）を含む。いくつかの実施形態によれば、第１のインタフェースはダイ間インタフェースである。いくつかの実施形態によれば、第１のインタフェースはＮＡＮＤインタフェースである。ここで開示されるＮＡＮＤコントローラを含むシステムも開示される。上記システムを組み立てる方法およびＮＡＮＤコントローラを使用してデータを読み書きする方法も開示される。【選択図】図５Ａ
2009510560.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とフラッシュダイに組み立てられたフラッシュメモリ装置とをインタフェースするコントローラであって、
ａ）前記フラッシュダイと別個のコントローラダイに組み立てられる電子回路と、
ｂ）前記電子回路と前記フラッシュメモリ装置とをインタフェースする第１のインタフェースと、
ｃ）前記コントローラと前記ホスト装置とをインタフェースする第２のインタフェースであって、ＮＡＮＤインタフェースである第２のインタフェースと、
を備えるコントローラ。
【請求項２】
前記第１のインタフェースはＮＡＮＤインタフェースである、請求項１に記載のコントローラ。
【請求項３】
ｄ）前記第１および第２のインタフェースのうちの一方を通して受信されるデータの誤り修正を提供する誤り修正モジュールをさらに備える、請求項１に記載のコントローラ。
【請求項４】
ｄ）前記ホスト装置とインタフェースする少なくとも１つの追加のホスト側インタフェースをさらに備える、請求項１に記載のコントローラ。
【請求項５】
ａ）フラッシュダイに組み立てられるフラッシュメモリ装置と、
ｂ）請求項１に記載のコントローラであって、前記第１のインタフェースを通して前記フラッシュメモリ装置と通信するように動作可能なコントローラと、
を備えるデータ記憶システム。
【請求項６】
ｃ）共通パッケージをさらに備え、
前記フラッシュメモリ装置および前記コントローラは両方とも、前記共通パッケージ内に提供される、請求項５に記載のシステム。
【請求項７】
ｃ）別個の各パッケージをさらに備え、
前記フラッシュメモリ装置および前記コントローラはそれぞれ、前記各パッケージ内に提供される、請求項５に記載のシステム。
【請求項８】
ｃ）前記フラッシュメモリ装置および前記コントローラが実装されるプリント回路基板をさらに備え、前記フラッシュダイは前記プリント回路基板に直接実装される、請求項５に記載のシステム。
【請求項９】
ｃ）前記フラッシュメモリ装置および前記コントローラが実装されるプリント回路基板であって、前記コントローラダイは前記プリント回路基板に直接実装される、プリント回路基板をさらに備える、請求項５に記載のシステム。
【請求項１０】
ａ）ホスト装置と、
ｂ）フラッシュダイに組み立てられるフラッシュメモリ装置と、
ｃ）前記第１のインタフェースを通して前記フラッシュメモリ装置と通信し、前記第２のインタフェースを通して前記ホスト装置と通信するように動作可能な、請求項１に記載のコントローラと、
を備えるデータ記憶システム。
【請求項１１】
データ記憶システムを作製する方法であって、
ａ）フラッシュダイに組み立てられたフラッシュメモリ装置を提供するステップと、
ｂ）請求項１に記載のフラッシュコントローラを提供するステップと、
ｃ）前記フラッシュコントローラが前記第１のインタフェースを通して前記フラッシュメモリ装置と通信するように動作可能なように、前記フラッシュコントローラを前記フラッシュメモリ装置に配備するステップと
を含む方法。
【請求項１２】
ｄ）前記フラッシュコントローラおよび前記フラッシュメモリ装置を単一のパッケージ内にパッケージするステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記フラッシュメモリ装置および前記フラッシュコントローラは別個の各パッケージ内に存在し、前記配備するステップは、前記各パッケージを互いに係合するステップを含む、請求項１１に記載の方法。
【請求項１４】
ｄ）前記フラッシュメモリ装置および前記コントローラをプリント回路基板に実装するステップをさらに含み、
前記実装するステップは、前記フラッシュメモリダイを前記プリント回路基板に直接実装するステップを含む、請求項１１に記載の方法。
【請求項１５】
ｄ）前記フラッシュメモリ装置および前記コントローラをプリント回路基板に実装するステップをさらに含み、
前記実装するステップは、前記コントローラダイを前記プリント回路基板に直接実装するステップを含む、請求項１１に記載の方法。
【請求項１６】
ｄ）前記フラッシュコントローラが前記第２のインタフェースを通して前記ホスト装置と通信するように動作可能なように、前記データ記憶システムをホスト装置に配備するステップをさらに含む、請求項１１に記載の方法。
【請求項１７】
ホスト装置からデータを書き込む方法であって、
ａ）フラッシュダイに組み立てられたフラッシュメモリ装置およびコントローラダイに組み立てられたコントローラを提供するステップであって、前記フラッシュダイは前記コントローラダイと別個であるステップと、
ｂ）ＮＡＮＤインタフェースプロトコルに従って書き込みコマンドを前記ホスト装置から前記コントローラに発行するステップと、
ｃ）ＮＡＮＤインタフェースプロトコルに従って書き込みコマンドを前記コントローラから前記フラッシュメモリ装置に発行するステップと
を含む方法。
【請求項１８】
ｄ）前記コントローラによりパリティビットを計算するステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
データをホスト装置に読み出す方法であって、
ａ）フラッシュダイに組み立てられたフラッシュメモリ装置およびコントローラダイに組み立てられたコントローラを提供するステップであって、前記フラッシュダイは前記コントローラダイと別個であるステップと、
ｂ）ＮＡＮＤインタフェースプロトコルに従って読み出しコマンドを前記ホスト装置から前記コントローラに発行するステップと、
ｃ）ＮＡＮＤインタフェースプロトコルに従って読み出しコマンドを前記コントローラから前記フラッシュメモリ装置に発行するステップと
を含む方法。
【請求項２０】
ｄ）前記フラッシュメモリ装置から前記コントローラにデータを取り出すステップと、
ｅ）前記取り出されたデータに関連するパリティビットを前記フラッシュメモリ装置から前記コントローラに取り出すステップと、
ｆ）前記取り出されたパリティビットに従って、前記取り出されたデータを修正するステップであって、それにより、修正済みデータを生成するステップと、
ｇ）前記修正済みデータを前記コントローラから前記ホスト装置に取り出すステップと
をさらに含む、請求項１９に記載の方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、標準ＮＡＮＤ型フラッシュメモリ装置がエクスポートするものと同種類のインタフェースをホストコンピュータにエクスポートするＮＡＮＤ型フラッシュメモリコントローラに関する。
【背景技術】
【０００２】
シングルビットフラッシュメモリセルおよびマルチビットフラッシュメモリセル
フラッシュメモリ装置は何年もの間にわたって知られている。通常、フラッシュメモリ装置内の各メモリセルは、１ビットの情報を記憶する。ビットをフラッシュメモリセルに記憶する従来の方法は、２つの状態のメモリセルをサポートすることによるものであった。一方の状態は論理「０」を表し、他方の状態は論理「１」を表す。
【０００３】
フラッシュメモリセルでは、２つの状態は、セルのチャネルの上（セルトランジスタのソース要素とドレイン要素とを結ぶエリア）に浮遊ゲートを配置し、浮遊ゲート内に蓄えられる電荷量に２つの有効な状態を持たせることにより実施される。通常、一方の状態では浮遊ゲートの電荷はゼロであり、消去後のセルの書き込まれていない状態（一般に「１」状態を表すものと定義される）であり、他方は浮遊ゲートにいくらかの量の負の電荷がある状態である（一般に「０」状態を表すものと定義される）。負の電荷をゲートに有すると、セルトランジスタの閾値電圧（すなわち、トランジスタを導通状態にするためにトランジスタの制御ゲートに印加する必要がある電圧）が増大する。セルの閾値電圧を調べることにより、記憶されているビットを読み取ることが可能である。閾値電圧がハイ状態にある場合、ビット値は「０」であり、閾値電圧がロー状態にある場合、ビット値は「１」である。実際には、セルの閾値電圧を正確に読み取る必要はない。必要なのは、セルが現在２つの状態のうちのいずれの状態であるかを正確に識別することだけである。このため、セルの閾値電圧を２つの状態の間にある基準電圧と比較し、セルの閾値電圧が基準値よりも上か、または下かを判断するだけで十分である。
【０００４】
図１Ａ（従来技術）は、これがどのように働くかを図で示す。特に、図１Ａは、多数のセルの閾値電圧の分布を示す。フラッシュ装置内のセルの特性および挙動は、（例えば、不純物濃度のわずかなばらつきまたはシリコン構造の欠陥により）厳密に同じではないため、同じプログラミング動作をすべてのセルに適用しても、すべてのセルが厳密に同じ閾値電圧を有するわけではない。それに代えて、閾値電圧は図１Ａに示すように分散する。値「１」を記憶しているセルは、通常、負の閾値電圧を有し、値「１」のセルの大半は、図１Ａの左側のピーク（１と記される）の中央電圧値に近い閾値電圧を有し、少数のセルが左側のピークの中央電圧よりも低いか、または高い閾値電圧を有する。同様に、値「０」を記憶しているセルは、通常、正の閾値電圧を有し、値「０」のセルの大半は、図１Ａの右側のピーク（０と記される）の中央電圧値に近い閾値電圧を有し、少数のセルが右側のピークの中央電圧よりも低いか、または高い閾値電圧を有する。
【０００５】
近年、「マルチレベルセル」（ＭＬＣ）を使用する新種のフラッシュ装置が市場に出現した。各セルに１ビットを有するフラッシュメモリは、上述したように複数の、すなわち２つのレベルを有するため、「マルチレベルセル」なる用語は誤解を招きやすい。このため、以下において２レベルのメモリセルを指すために「シングルビットセル」（ＳＢＣ）なる用語を使用し、３つ以上のレベル、すなわち各セルに２ビット以上があるメモリセルを指すために「マルチビットセル」（ＭＢＣ）なる用語を使用する。現在、最も一般的なＭＢＣフラッシュメモリは、各セルに２ビットを有するものであるため、このようなＭＢＣメモリを使用する例を以下に提供する。しかし、本発明が、各セルに３ビット以上をサポートするフラッシュメモリ装置にも等しく適用可能なことを理解されたい。２ビットの情報を記憶している１つのＭＢＣセルは、４つの異なる状態のうちの１つの状態にある。セルの「状態」はセルの閾値電圧で表されるため、ＭＢＣセルは、セルの閾値電圧に対して４つの異なる有効範囲をサポートする。図１Ｂ（従来技術）は、各セルに２ビットがある典型的なＭＢＣセルの閾値電圧分布を示す。予想されるように、図１Ｂは４つのピークを有し、各ピークは１つの状態に対応する。ＳＢＣの場合と同様に、実際には、各状態は電圧範囲であり、１つの電圧ではない。セルの内容を読み取るとき、セルの閾値電圧は明確な電圧範囲内で正確に識別されなければならない。ＭＢＣフラッシュ装置の従来技術による例としては、ハラリ（Ｈａｒａｒｉ）に付与された米国特許第５，４３４，８２５号明細書を参照されたい。参照により、これがあたかも本明細書にすべて記載されているかのように援用する。
【０００６】
ＭＢＣ動作、例えば、４状態のＭＢＣに向けて設計されるセルは、通常、２状態を有するＳＢＣセルとして動作することが可能である。例えば、コンリー（Ｃｏｎｌｅｙ）らは、米国特許第６，４２６，８９３号明細書において、同じ装置内でＭＢＣモードおよびＳＢＣモードを使用し、装置の特定の部分をＭＢＣモードで最高密度で動作するように選択し、その間、他の部分はＳＢＣモードで使用されて、より良好な性能を提供することを開示しており、この明細書を参照によりあたかも本明細書にすべて記載されているかのように援用する。
【０００７】
ＭＢＣ装置はコスト面での大きな利点を提供する。各セルに２ビットを有するＭＢＣ装置が必要とするシリコンウェハ上の面積は、同様の容量のＳＢＣの約半分である。しかし、ＭＢＣフラッシュ使用に対する欠点がある。ＭＢＣメモリの平均読み書き時間はＳＢＣメモリよりも長く、性能の悪化に繋がる。ＭＢＣの信頼性もＳＢＣより低い。ＭＢＣでの閾値電圧範囲間の差は、ＳＢＣよりもはるかに小さい。このため、ＳＢＣでは２つの状態の間隔が大きいため目立たない閾値電圧の乱れ（例えば、閾値電圧ドリフトに繋がる蓄積電荷の漏れまたは動作中の近傍セルからの干渉）が、ＭＢＣセルをある状態から別の状態に転移させ、誤ったビットを発生させる。最終的な結果として、データ保持時間または多数回の書き込み／消去サイクルに対する装置の耐性に関してＭＢＣセルの性能仕様が低くなる。
【０００８】
ＮＡＮＤ型フラッシュメモリ装置
通常、フラッシュメモリ装置はＮＯＲ型装置およびＮＡＮＤ型装置に分けられ、これら名称は、個々のメモリセルがセルアレイ内で相互接続される方法に由来する。ＮＯＲ型装置はランダムアクセスであり、ＮＯＲ型フラッシュ装置にアクセスしているホストコンピュータは、アドレスピン上の任意のアドレスを装置に提供し、装置のデータピン上のそのアドレスに記憶されているデータを即座に取り出すことができる。これは、ＳＲＡＭまたはＥＰＲＯＭメモリが動作するのによく似ている。一方、ＮＡＮＤ型装置は、ランダムアクセスではなく順次アクセスである。ＮＯＲ型に関して上述したように任意のランダムなアドレスにアクセスすることはできず、それに代えて、ホストは、要求されるコマンドの種類（例えば、読み取り、書き込み、消去等）およびそのコマンドに使用すべきアドレスの両方を識別するバイトシーケンスを装置に書き込む必要がある。アドレスは、単一のバイトまたはワードではなくページ（１回の動作で書き込むことができる最小フラッシュメモリチャンク）またはブロック（１回の動作で消去することができる最小フラッシュメモリチャンク）を識別する。読み取りおよび書き込みコマンドシーケンスが１バイトまたは１ワードのアドレスを含むことは真実であるが、実際には、ＮＡＮＤ型フラッシュ装置は、常に、ページ単位でメモリセルに読み書きする。１ページのデータがアレイから装置内のバッファに読み込まれた後、ホストは、ストローブ信号を使用して、データバイトまたはデータワードを１つずつ順次クロックアウトすることによりこれらデータバイトまたはデータワードにアクセスする。
【０００９】
ＮＡＮＤ型装置は、その非ランダムアクセス性により、フラッシュメモリから直接コードを実行するために使用することができない。これは、直接コード実行（通常、「インプレース実行（ｅＸｅｃｕｔｉｏｎ  Ｉｎ  Ｐｌａｃｅ）」または「ＸＩＰ」と呼ばれる）をサポートするＮＯＲ型装置とは対照的である。このため、ＮＯＲ型装置は、コードの記憶に通常使用されるものである。しかし、ＮＡＮＤ型装置は、データの記憶に非常に有用な利点を有する。ＮＡＮＤ型装置は、同じビット容量のＮＯＲ型装置よりも安価であり、または言い換えれば、ＮＡＮＤ装置は同じコストでＮＯＲ型装置よりも多数のビットの記憶を提供する。ＮＡＮＤ型装置の書き込み・消去性能も、ＮＯＲ型装置よりもはるかに高速である。こういった利点が、ＮＡＮＤ型フラッシュメモリ技術をデータの記憶に最適な技術にしている。
【００１０】
ＮＡＮＤインタフェースプロトコル
代表的なＳＢＣ  ＮＡＮＤ型装置は、２Ｇビットの記憶容量を提供する東芝（Ｔｏｓｈｉｂａ）ＴＣ５８ＮＶＧ１Ｓ３Ｂである。代表的なＭＢＣ  ＮＡＮＤ型装置は、４Ｇビットの記憶容量を提供する東芝（Ｔｏｓｈｉｂａ）ＴＣ５８ＮＶＧ２Ｄ４Ｂである。両装置のデータシートが、参照によりあたかも本明細書にすべて記載されているかのように援用される。
【００１１】
上記データシートから分かるように、これら２つのＮＡＮＤ型装置は同様のインタフェースを有する。これらＮＡＮＤ型装置は、コマンドの調整およびＮＡＮＤ型フラッシュ装置とホスト装置との間のデータ転送に同じ電気信号を使用する。これら信号は、データラインおよび少数の制御信号、すなわちＡＬＥ（アドレスラッチイネーブル）、ＣＬＥ（コマンドラッチイネーブル）、ＷＥ／（ライトイネーブル）、および他を含む。ＳＢＣ装置およびＭＢＣ装置の挙動は完全に同一ではなく、ＭＢＣページの書き込みにかかる時間は、ＳＢＣページの書き込みにかかる時間よりもはるかに長い。しかし、両装置に使用される電気信号および両装置の機能は同じである。この種のインタフェースプロトコルは、当該技術分野において「ＮＡＮＤインタフェース」として知られている。「ＮＡＮＤインタフェースプロトコル」は、今までまだ標準化団体により正式に標準化されていないが、ＮＡＮＤ型フラッシュ装置の製造はすべて、ＮＡＮＤ型フラッシュ機能の基本的なサブセットのサポートに同じプロトコルに従っている。これは、電子製品内にＮＡＮＤ型装置を使用する顧客が、ハードウェアまたはソフトウェアを特定のベンダーの装置と併せて動作するように調整する必要なく、あらゆる製造業者からのＮＡＮＤ型装置を使用できるようにするために行われている。この基本サブセット機能を超えるさらなる機能を提供するＮＡＮＤベンダーであっても、その他のベンダーが使用するプロトコルとの互換性を提供するために、少なくともある程度、基本機能が提供されることを保証することに留意する。
【００１２】
本出願では、「ＮＡＮＤインタフェースプロトコル」（または略して「ＮＡＮＤインタフェース」）なる用語は、すべてのタイミングパラメータとの互換性が完全にはない、ＮＡＮＤ型装置によりサポートされる他のコマンドとの互換性が完全にはない、またはＮＡＮＤ型装置によりサポートされない追加のコマンドを含む場合であっても、基本的な読み出し、書き込み、および消去の各動作にホスト装置とＮＡＮＤ型フラッシュ装置との間のプロトコルに概して従う、開始装置と応答装置との間のインタフェースプロトコルを意味する。換言すれば、「ＮＡＮＤインタフェース」なる用語は、読み出し（操作符号００Ｈ）、書き込み（操作符号８０Ｈ）、および消去（操作符号６０Ｈ）に東芝（Ｔｏｓｈｉｂａ）ＴＣ５８ＮＶＧ１Ｓ３Ｂ  ＮＡＮＤ装置とインタフェースする際に使用されるバイトシーケンスと機能的に等しい転送バイトシーケンスを使用し、かつ上記ＮＡＮＤ型装置のＣＬＥ、ＡＬＥ、ＣＥ、ＷＥ、およびＲＥの各信号と機能的に等しい制御信号も使用するあらゆるインタフェースプロトコルを指す。
【００１３】
「ＮＡＮＤインタフェースプロトコル」が対称ではないことに留意する。したがって、ＮＡＮＤインタフェースを介して対話を開始するのは常にホスト装置であり、決してフラッシュ装置ではない。
【００１４】
所与の装置（例えば、コントローラ、フラッシュ装置、ホスト装置等）は、ＮＡＮＤインタフェースプロトコルをサポートする（例えば、ＮＡＮＤインタフェースプロトコルを使用して別の装置と対話する）ために必要な要素（例えば、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせ）を含む場合に、「ＮＡＮＤインタフェース」を備える、含む、または有すると言える。
【００１５】
所与の装置（例えば、コントローラ装置）のインタフェース（例えば、ＮＡＮＤインタフェースまたは別のプロトコルに関連するインタフェース）は、「ホスト側インタフェース」（例えば、所与の装置が、ホスト側インタフェースを使用してホスト装置と対話するように構成される）であってもよく、または「フラッシュメモリ装置側インタフェース」（例えば、所与の装置が、フラッシュメモリ装置側インタフェースを使用してフラッシュメモリ装置と対話するように構成される）であってもよい。「フラッシュメモリ装置側インタフェース」、「フラッシュ装置側インタフェース」、および「フラッシュ側インタフェース」なる用語は、本明細書において同義で使用される。
【００１６】
これら用語（すなわち、「ホスト側インタフェース」および「フラッシュ装置側インタフェース」）は、このプロトコルが非対称であることからＮＡＮＤインタフェースプロトコルの２つの側を区別するために本明細書において使用される用語である「ホスト型インタフェース」および「フラッシュ型インタフェース」なる用語と混同されるべきではない。さらに、対話を開始するのは常にホストであるため、所与の装置がＮＡＮＤインタフェースプロトコルのホスト側を実施する（すなわち、ＮＡＮＤホストを提示し、ＮＡＮＤプロトコル対話を開始する）ために必要なハードウェアおよび／またはソフトウェアを含む場合に、その所与の装置が「ホスト型インタフェース」を有すると言えることに留意する。同様に、フラッシュ装置は決して対話を開始しないため、所与の装置がＮＡＮＤプロトコルのフラッシュ側を実施する（すなわち、ＮＡＮＤフラッシュ装置を提示する）ために必要なハードウェアおよび／またはソフトウェアを含む場合に、その所与の装置が「フラッシュ型インタフェース」を有すると言えることに留意する。
【００１７】
通常、「ホスト型インタフェース」（すなわち、ホストの役割を果たすもの）は、「フラッシュ側インタフェース」（すなわち、フラッシュ装置またはフラッシュ装置をエミュレートするハードウェアと対話する）であるのに対して、「フラッシュ装置側インタフェース」（すなわち、フラッシュ装置の役割を果たすもの）は、「ホスト側インタフェース」（すなわち、ホスト装置またはホスト装置をエミュレートするハードウェアと対話する）である。本願では、「ホスト装置」（または略して「ホスト」）なる用語は、処理能力を有し、フラッシュメモリ装置と対話することが可能な任意の装置を意味する。ホスト装置はパーソナルコンピュータ、ＰＤＡ、セルラ電話、ゲームコンソール等であってよい。
【００１８】
通常、ＮＡＮＤ型装置は、インタフェースし協働することが比較的難しい。この１つの理由は、上述したように、ＮＡＮＤ型装置にアクセスするためのプロトコルが非常に複雑（ＮＯＲ型装置と比較して）であるためである。別の問題は、常に正確なデータを返すと想定することができるＮＯＲ型装置とは対照的に、ＮＡＮＤ型装置から読み出されるデータにエラーが存在することである。ＮＡＮＤ型装置のこの固有の信頼性の低さにより、誤り検出コード（ＥＤＣ）および誤り修正コード（ＥＣＣ）を使用することが必要である。
【００１９】
通常、ＳＢＣ  ＮＡＮＤ型フラッシュ装置の製造業者は、５１２バイトデータである各ページで１ビットのエラーを修正することが可能な誤り修正コードの適用をユーザに勧める。しかし、通常、ＭＢＣ  ＮＡＮＤ型フラッシュ装置のデータシートは、５１２バイトデータである各ページで４ビットのエラーを修正することが可能なＥＣＣの適用を勧める。上述したＮＡＮＤ型装置の場合のように、サイズ２０４８バイトのページの場合（「大ブロック装置」として知られる）、ページの５１２バイトの各部分に誤り修正を適用することが示唆されている。本願では、「ＮビットＥＣＣ」なる用語は、５１２バイトが１ページのサイズであるか、１ページ未満であるか、それとも１ページを超えるかに関わりなく、５１２バイトデータ内でＮビットのエラーを修正することが可能なＥＣＣ方式を指す。
【００２０】
ＮＡＮＤコントローラ
ＮＡＮＤ型装置のこういった複雑性により、電子システム内でＮＡＮＤ装置の使用を制御する「ＮＡＮＤコントローラ」を使用することが一般的である。ＮＡＮＤコントローラを介在させずにホスト装置が直接、ＮＡＮＤ型装置を操作して使用することが可能であり、実際にこのようにして動作するシステムがあることは真実である。しかし、このアーキテクチャには多くの欠点がある。第１に、ホストはＮＡＮＤ型装置の制御信号（例えば、ＣＬＥまたはＡＬＥ）をそれぞれ個々に操作する必要があり、これはホストにとって面倒であり、かつ時間がかかる。第２に、ＥＤＣおよびＥＣＣのサポートは、ホストに深刻な負担を課す。ホストは、ページ書き込みの都度、パリティビットを計算する必要があり、かつ誤り検出計算（これに加えて、時には誤り修正計算も）を実行しなければならない。これはすべて、そのような「コントローラなし」アーキテクチャを比較的低速かつ非効率なものにする。
【００２１】
ＮＡＮＤコントローラを使用することで、ＮＡＮＤ側装置を使用する場合のホストのタスクが大幅に簡易化される。プロセッサは、はるかに使用しやすいプロトコルを使用してコントローラと対話する。ページ書き込み要求は、制御ラインおよびＮＡＮＤコマンドコードの複雑なシーケンスで悩まされる必要なく、アドレスおよびデータが後続する単一コマンドコードとして送信することができる。次に、コントローラは、ホストコントローラプロトコルを等価のＮＡＮＤプロトコルシーケンスに変換し、この間、ホストは他のタスクを自由に行う（または、必要に応じて、単にＮＡＮＤ動作が完了するのを待つ）ことができる。
【００２２】
従来技術には、ＮＡＮＤコントローラがシステム内に存在する場所に関していくつかの選択肢がある。第１の手法を図２に示す。ここでは、ＮＡＮＤコントローラ１４は、物理的にホスト装置１１０Ａのホストプロセッサ１１２Ａ内に配置される。ホストプロセッサ１１２Ａが単一ダイとして実施される場合、コントローラ１１４は同じダイに組み込まれる。これは、例えば、テキサスインスツルメンツ（Ｔｅｘａｓ  Ｉｎｓｔｒｕｍｅｎｔｓ）により製造販売されるＯＭＡＰプロセッサのいくつかでの場合である。このアーキテクチャを使用して構築されるシステムでは、通常、ホストプロセッサは、何等かのプロプラエタリ（ｐｒｏｐｒｉｅｔａｒｙ）プロトコルを使用してＮＡＮＤコントローラと対話する。これは、対話がホストプロセッサ内であり、標準プロトコルを使用することに利益がないためである。
【００２３】
第２の従来技術による手法を図３Ａおよび図３Ｂに示す。ここでは、ＮＡＮＤコントローラ１１６は別体の物理的な要素であり、ホスト１１０Ｂのホストプロセッサ１１２ＢとＮＡＮＤ型装置１２０Ａとの間に存在する。これは、例えば、Ｍシステムズフラッシュディスクパイオニアズ（Ｍ−Ｓｙｓｔｅｍｓ  Ｆｌａｓｈ  Ｄｉｓｋ  Ｐｉｏｎｅｅｒｓ）により製造販売されるディスクオンキー（ＤｉｓｋＯｎＫｅｙ）等のポータブルＵＳＢフラッシュドライブ（ＵＦＤ）の場合であり、ＵＦＤ内にパッケージされ、一方の側では装置側ＮＡＮＤインタフェース１２４を使用してＮＡＮＤ装置１２０Ａと対話し、他方の側ではホストプロセッサ１１２Ｂと対話する（ＵＳＢプロトコルを使用するホスト側ＵＳＢインタフェース１２２を使用して）ＮＡＮＤコントローラ１１６がある。このアーキテクチャを使用して構築されるシステムでは、対話はプロセッサにとって外部であり、他の目的でプロセッサによりすでにサポートされている標準プロトコルを使用するほうがより都合がよいため、通常、ホストプロセッサは、ＵＳＢまたはＡＴＡ等の標準プロトコルを使用してＮＡＮＤコントローラと対話する。
【００２４】
先に定義した用語によれば、ＮＡＮＤインタフェース１２４は「フラッシュメモリ装置側ＮＡＮＤインタフェース」（すなわち、ＮＡＮＤ型フラッシュ装置１２０Ａと対話するように構成される）であるが、同時に、ホスト型ＮＡＮＤインタフェース（すなわち、ＮＡＮＤプロトコル対話を開始するように構成される）でもあることに留意する。
【００２５】
第３の従来技術による手法を図４に示す。ここでは、ＮＡＮＤコントローラ１１８は、物理的にＮＡＮＤ装置１２０Ｂ内に配置される。フラッシュ装置およびコントローラを同じダイに実装することさえ可能である。これは、例えば、Ｍシステムズフラッシュディスクパイオニアズ（Ｍ−Ｓｙｓｔｅｍｓ  Ｆｌａｓｈ  Ｄｉｓｋ  Ｐｉｏｎｅｅｒｓ）により製造販売されるＭＤＯＣ記憶装置のいくつかおよびサムスン電子（Ｓａｍｓｕｎｇ  Ｅｌｅｃｔｒｏｎｉｃｓ）により製造販売されるＯｎｅＮＡＮＤ装置の場合である。このアーキテクチャを使用して構築されるシステムでは、通常、ホストプロセッサ１１２Ｂは、ＵＳＢ等の標準プロトコルまたは上述したＭＤＯＣおよびＯｎｅＮＡＮＤの各例での場合のように準標準プロトコルのいずれかを使用してＮＡＮＤコントローラと対話する。
【００２６】
上記から、通常、従来技術によるスタンドアロンＮＡＮＤコントローラ（ＮＡＮＤ装置にもホストプロセッサにも統合されない）が、ホスト側に何等かの標準インタフェースを有し、フラッシュメモリ装置側にＮＡＮＤインタフェースを有すると演繹することができる（例えば、図３参照）。実際に、多くのインタフェースタイプ、すなわちＵＳＢ、ＳＤ（セキュアデジタル（ＳｅｃｕｒｅＤｉｇｉｔａｌ））、ＭＭＣ（マルチメディアカード（ＭｕｌｔｉＭｅｄｉａＣａｒｄ））、および他をエクスポートする市場のＮＡＮＤコントローラを見つけることができる。しかし、現在、ＮＡＮＤインタフェースをホストにエクスポートするスタンドアロンＮＡＮＤコントローラを見つけることはできない。実際に、これは容易に予想できる。内蔵ＮＡＮＤサポートを有さず、そのために外部コントローラを必要とするホストプロセッサは、通常、ＮＡＮＤインタフェースを有さず、ＮＡＮＤインタフェースをエクスポートする装置と直接接続することができず、したがって、ホスト側ＮＡＮＤインタフェースを有するコントローラを使用する必要がない。一方、通常、内蔵ＮＡＮＤサポートを有するホストプロセッサは、内蔵ＮＡＮＤコントローラも含み、ＮＡＮＤ型装置と直接接続することができ、したがって、外部ＮＡＮＤコントローラを必要としない。
【００２７】
上述した従来技術は、１つの問題を解決しないままである。図２のように、内蔵ＮＡＮＤコントローラおよびＮＡＮＤインタフェースを組み込んだホストプロセッサがあると仮定する。内蔵コントローラは、特定の信頼度レベルのＮＡＮＤ装置と協働するように設計される。これは、ＮＡＮＤコントローラが特定レベルの誤り検出および修正を提供し、したがって、信頼性のより低いＮＡＮＤ装置をサポートすることができないためである。例えば、１ビットＥＣＣを有するＮＡＮＤコントローラは、製造業者によりこのレベルの誤り修正のみが必要であると特定されるＳＢＣ  ＮＡＮＤ型装置と協働することができる。このようなコントローラは、１セル当たり２ビットのＭＢＣ  ＮＡＮＤ型装置と協働することはできない。これは、このようなＭＢＣ  ＮＡＮＤ型装置が４ビットＥＣＣを必要とし、したがって、いくらかのデータをプロセッサに正しく読み出すことができない可能性があるためである。同様に、４ビットＥＣＣを提供するＮＡＮＤコントローラは現在の１セル当たり２ビットのＭＢＣ  ＮＡＮＤと協働することができるが、より高いレベルのＥＣＣ能力を必要とする可能性が最も高い次世代のＭＢＣ  ＮＡＮＤ装置とは協働しないであろう。
【００２８】
これは、将来のＭＢＣ  ＮＡＮＤ型装置が現在のＭＢＣ装置よりも信頼性が低く、はるかに強力なＥＣＣ能力を必要とすることが予想されるためである。信頼性が低下し、エラーレートが増大する理由は２つの要素からなる。
ａ．ＮＡＮＤ型装置の製造に使用されるプロセスは、より小型のメモリセルをもたらすように常に改良され続けている。数年前のＮＡＮＤ型装置は０．４ミクロンプロセスを使用していたが、現在は９０ｎｍ技術および７０ｎｍ技術を使用しており、この縮小傾向が続くと予想される。寸法が小さいと、セルが以前は重要ではなかった物理的な影響および現象により敏感になるため、メモリセル寸法の縮小に伴い、信頼性が低くなる。
ｂ．１セル当たり３以上のビットを有するＭＢＣセルが市販されるようになった場合、必然的に、ＳＢＣセルおよび１セル当たり２ビットのＭＢＣセルよりも信頼性がはるかに低くなる。セルの閾値電圧で表す必要がある状態の数が多くなることは、状態間のマージンがより小さくなり、さらに小さな乱れおよびドリフトが不正確なデータ読み取りに繋がることを暗示する。この影響は、ＳＬＣと１セル当たり２ビットのＭＢＣとの比較ですでに証明されており、ＥＣＣ要件は１ビットＥＣＣから４ビットＥＣＣに増大された。
【００２９】
ここで、内蔵ＮＡＮＤコントローラ１１４を有するホストプロセッサ１１２Ａに戻り、コントローラ１１４が１ビットＥＣＣのみをサポートするものと考える。その場合、このプロセッサは、ＭＢＣ  ＮＡＮＤの低コストにより非常に望まれている場合であっても、ＭＢＣ  ＮＡＮＤを使用することができない可能性がある。ＭＢＣ  ＮＡＮＤがプロセッサの内蔵コントローラのＮＡＮＤインタフェースに接続される場合、これはプロセッサに接続する唯一の方法であり得るが、ＭＢＣ  ＮＡＮＤは、内蔵コントローラの能力の限られたＥＣＣが修正するには多すぎるエラーを発生させる。
【００３０】
同様に、内蔵コントローラが４ビットＥＣＣをサポートする場合、ＳＬＣおよび１セル当たり２ビットのＭＢＣ  ＮＡＮＤを使用することができる。しかし、より信頼性の低いＮＡＮＤ型装置が市場に現れた場合、内蔵コントローラは要求されるレベルの誤り修正を提供することができないため、プロセッサはより低価格という恩恵を受けることができない。
【００３１】
したがって、現行の従来技術が、前世代のＮＡＮＤ型装置をサポートするように設計された内蔵ＮＡＮＤコントローラを組み込むホストプロセッサを使用しながら、新しいＮＡＮＤ型装置のコスト利点から恩恵を受けることの問題に対する良い解決策を提供しないことが分かる。
【発明の開示】
【発明が解決しようとする課題】
【００３２】
現在、オンボードＮＡＮＤコントローラを有するホスト装置と後続世代のＮＡＮＤ型フラッシュメモリ装置との間に互換性を提供する装置および方法が必要とされている。
【課題を解決するための手段】
【００３３】
上記必要性は、本発明のいくつかの態様により満たされる。
【００３４】
これより、ホスト装置とフラッシュダイ上に組み立てられたフラッシュメモリ装置（例えば、ＮＡＮＤ型フラッシュメモリ装置）とをインタフェースするコントローラを初めて開示する。ここで開示されるコントローラは、（ａ）フラッシュダイと別個のコントローラダイに組み立てられる電子回路と、（ｂ）電子回路とフラッシュメモリ装置（例えば、ＮＡＮＤ型フラッシュメモリ装置）とをインタフェースする第１のインタフェース（例えば、ホスト型インタフェース）と、（ｃ）コントローラとホスト装置とをインタフェースする第２のインタフェースであって、ＮＡＮＤインタフェースである第２のインタフェース（例えば、フラッシュ型インタフェース）とを含む。
【００３５】
いくつかの実施形態によれば、第１のインタフェースはダイ間インタフェースである。
【００３６】
いくつかの実施形態によれば、第１のインタフェースはＮＡＮＤインタフェースである。
【００３７】
いくつかの実施形態によれば、ここで開示されるコントローラは、（ｄ）第１および第２のインタフェースのうちの一方を通して受信されるデータの誤り修正を提供する誤り修正モジュールをさらに含む。
【００３８】
いくつかの実施形態によれば、ここで開示されるコントローラは、（ｄ）ホスト装置とインタフェースする少なくとも１つの追加のホスト側インタフェースをさらに含む。
【００３９】
これより、（ａ）フラッシュダイに組み立てられるフラッシュメモリ装置と、（ｂ）ここで開示されるＮＡＮＤコントローラとを含み、コントローラは第１のインタフェースを通してフラッシュメモリ装置と通信するように動作可能である、データ記憶システムを初めて開示する。
【００４０】
いくつかの実施形態によれば、ここで開示されるシステムは、（ｃ）共通パッケージをさらに含み、フラッシュメモリ装置およびコントローラは両方とも共通パッケージ内に提供される。
【００４１】
いくつかの実施形態によれば、ここで開示されるシステムは、（ｃ）別個の各パッケージをさらに含み、フラッシュメモリ装置およびコントローラはそれぞれ各パッケージ内に提供される。
【００４２】
いくつかの実施形態によれば、ここで開示されるシステムは、（ｃ）フラッシュメモリ装置およびコントローラが実装されるプリント回路基板をさらに含み、フラッシュダイはプリント回路基板にパッケージなしで直接実装される。
【００４３】
いくつかの実施形態によれば、ここで開示されるシステムは、（ｃ）フラッシュメモリ装置およびコントローラが実装されるプリント回路基板であって、コントローラダイはプリント回路基板にパッケージなしで直接実装される、プリント回路基板をさらに含む。
【００４４】
これより、（ａ）ホスト装置と、（ｂ）フラッシュダイに組み立てられるフラッシュメモリ装置と、（ｃ）第１のインタフェースを通してフラッシュメモリ装置と通信し、第２のインタフェースを通してホスト装置と通信するように動作可能な、ここで開示されるＮＡＮＤコントローラとを含むデータ記憶システムを初めて開示する。
【００４５】
これより、データをホスト装置から書き込む方法であって、（ａ）フラッシュダイに組み立てられたフラッシュメモリ装置およびコントローラダイに組み立てられたコントローラを提供するステップであって、フラッシュダイはコントローラダイと別個であるステップと、（ｂ）ＮＡＮＤインタフェースプロトコルに従って書き込みコマンドをホスト装置からコントローラに発行するステップと、（ｃ）ＮＡＮＤインタフェースプロトコルに従って書き込みコマンドをコントローラからフラッシュメモリ装置に発行するステップとを含む方法を開示する。
【００４６】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）コントローラによりパリティビットを計算するステップをさらに含む。
【００４７】
これより、データをホスト装置に読み出す方法であって、（ａ）フラッシュダイに組み立てられたフラッシュメモリ装置およびコントローラダイに組み立てられたコントローラを提供するステップであって、フラッシュダイはコントローラダイと別個であるステップと、（ｂ）ＮＡＮＤインタフェースプロトコルに従って読み出しコマンドをホスト装置からコントローラに発行するステップと、（ｃ）ＮＡＮＤインタフェースプロトコルに従って読み出しコマンドをコントローラからフラッシュメモリ装置に発行するステップとを含む方法を開示する。
【００４８】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）フラッシュメモリ装置からコントローラにデータを取り出すステップと、（ｅ）取り出されたデータに関連するパリティビットをフラッシュメモリ装置からコントローラに取り出すステップと、（ｆ）取り出されたパリティビットに従って、取り出されたデータを修正するステップであって、それにより、修正済みデータを生成するステップと、（ｇ）修正済みデータをコントローラからホスト装置に取り出すステップとをさらに含む。
【００４９】
これより、データ記憶システムを作製する方法であって、（ａ）フラッシュダイに組み立てられたフラッシュメモリ装置を提供するステップと、（ｂ）ここで開示されるＮＡＮＤコントローラを提供するステップと、（ｃ）フラッシュコントローラが第１のインタフェースを通してフラッシュメモリ装置と通信するように動作可能なように、フラッシュコントローラをフラッシュメモリ装置に配備するステップとを含む方法を初めて開示する。
【００５０】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）フラッシュコントローラおよびフラッシュメモリ装置を単一のパッケージ内にパッケージするステップをさらに含む。
【００５１】
いくつかの実施形態によれば、フラッシュメモリ装置およびフラッシュコントローラは別個の各パッケージ内に存在し、配備するステップは、各パッケージを互いに係合するステップを含む。
【００５２】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）フラッシュメモリ装置およびコントローラをプリント回路基板に実装するステップをさらに含み、実装するステップは、フラッシュメモリダイをプリント回路基板にパッケージなしで直接実装するステップを含む。
【００５３】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）フラッシュメモリ装置およびコントローラをプリント回路基板に実装するステップをさらに含み、実装するステップは、コントローラダイをプリント回路基板にパッケージなしで直接実装するステップを含む。
【００５４】
いくつかの実施形態によれば、ここで開示される方法は、（ｄ）フラッシュコントローラが第２のインタフェースを通してホスト装置と通信するように動作可能なように、データ記憶システムをホスト装置に配備するステップをさらに含む。
【００５５】
これらおよびさらなる実施形態が、以下の詳細な説明および例から明らかになろう。
【発明を実施するための最良の形態】
【００５６】
特定の実施形態例に関して本発明をこれより説明する。本発明が開示される実施形態例に限定されないことを理解されたい。説明されるコントローラ、コントローラを含むシステム、およびデータを読み取る方法のあらゆる特徴が、添付の特許請求の範囲の任意の特定の１つの請求項に記載される本発明の実施に必ずしも必要であるとは限らないことも理解されたい。装置の各種要素および特徴は、本発明を完全に実施することができるように説明される。本開示全体を通して、プロセスまたは方法が図示または説明される場合、方法のステップは、あるステップが最初に実行される別のステップに依存することが文脈から明らかな場合を除き、任意の順序または同時に実行することが可能であることも理解されたい。
【００５７】
本発明は、ホスト側にエクスポートするインタフェースがＮＡＮＤインタフェースであることを特徴とする新種のＮＡＮＤコントローラを初めて開示している。いくつかの実施形態では、ここで開示されるこのコントローラは、ＮＡＮＤインタフェースを両側、すなわちコントローラがＮＡＮＤ装置に向かってホストの役割を果たすフラッシュメモリ装置側およびコントローラがホストに向かってＮＡＮＤ装置の役割を果たすホスト装置側に有する。
【００５８】
本開示では、「ＮＡＮＤ型フラッシュメモリ装置」は、複数のＮＡＮＤ型フラッシュメモリセルおよびデータをＮＡＮＤ型フラッシュメモリセル内に記憶するために任意の必要な制御回路（例えば、フラッシュ型インタフェースを提供する回路）を含む電子回路として定義される。「ＮＡＮＤ型フラッシュメモリ装置」が必ずしも専用の筐体を有する必要はなく、単一の筐体内のコントローラ等別の「装置」と共に存在してもよいことに留意する。いくつかの実施形態では、「ＮＡＮＤフラッシュメモリ装置」は、まったくパッキングせずにプリント回路基板上に直接実装される。
【００５９】
さらに、いくつかの実施形態では、コントローラは、信頼性の低いＮＡＮＤ型装置の多くのエラーを修正するのに十分な誤り修正機能を含む。これらエラーはコントローラにより修正されるため、コントローラは、エラーがまったくないか、またはより少数、すなわちホストの内蔵ＮＡＮＤコントローラの誤り修正機能で対処するのに十分少ないエラーを有するフラッシュ装置をホストに提示することができる。
【００６０】
これより、本発明のいくつかの実施形態によるコントローラの概略ブロック図を提供する図５Ａを参照する。コントローラ１３０は、ＮＡＮＤ型フラッシュ装置とインタフェースするフラッシュメモリ装置側ＮＡＮＤインタフェース１４２を含む。さらに、フラッシュメモリ装置型ＮＡＮＤインタフェース１４２がホスト型ＮＡＮＤインタフェース（すなわち、ＮＡＮＤインタフェースを介して対話を開始し、ホスト装置をＮＡＮＤ型フラッシュ装置に提示するように構成される）でもあることに留意する。
【００６１】
コントローラ１３０は、ＮＡＮＤインタフェースプロトコルをサポートするホストとインタフェースするホスト側ＮＡＮＤインタフェース１４４も含む。このホスト側ＮＡＮＤインタフェースは、フラッシュメモリ型ＮＡＮＤインタフェースでもある（例えば、コントローラ１３０はホストをＮＡＮＤ型フラッシュメモリ記憶装置に提示するように構成される）。コントローラは、任意に、ＵＳＢまたはＭＭＣインタフェース等の非ＮＡＮＤインタフェースを使用してコントローラをホストにインタフェースする１つまたは複数の追加のホスト側インタフェース１４６を含むことができる。
【００６２】
図５Ａに示すように、コントローラは、装置側インタフェース１４２を通してＮＡＮＤ型装置から取り出されるデータのエラーのすべてまたはいくつかを検出して修正するＥＣＣモジュール１３２をさらに含む。ＥＣＣモジュール１３２は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせを含み得る。ＥＣＣモジュール１３２はすべてのエラーを修正することができ、この場合、ＮＡＮＤコントローラ１３０はホストにエラーなしのＮＡＮＤ型装置をエクスポートする。あるいは、ＥＣＣモジュール１３２は、フラッシュメモリ装置側ＮＡＮＤインタフェース１４２を通してＮＡＮＤ型装置から取り出されるデータに見られるエラーのいくつかのみを修正することができる。
【００６３】
一例では、ＮＡＮＤ型装置は４ビットＥＣＣを必要とする信頼性を有し、ＥＣＣモジュール１４２は、ホストの内蔵ＮＡＮＤコントローラ内の１ビットＥＣＣがデータを処理することができるレベルまでデータの信頼性を増大するのに十分なエラーを修正する。
【００６４】
ＮＡＮＤコントローラ１３０が、任意に、暗号化機能またはホストから受け取った論理フラッシュアドレスをフラッシュ装置に送信される物理フラッシュアドレスにマッピングするアドレスマッピング等の他の機能を提供する１つまたは複数のモジュール１３４（例えば、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせ）を含んでもよいことに留意する。
【００６５】
これより、図５Ａで説明した外部ＮＡＮＤコントローラ１３０（例えば、ホスト装置と別体のコントローラ）を含む例示的なシステムの概略ブロック図を示す図５Ｂを参照する。装置側ＮＡＮＤインタフェース１４２を通して、外部ＮＡＮＤコントローラ１３０はＮＡＮＤ型フラッシュ装置１２０Ａとインタフェースする。ホスト側ＮＡＮＤインタフェース１４４を通して、ＮＡＮＤコントローラ１３０はホスト装置１１０Ａとインタフェースする。
【００６６】
外部コントローラ１３０が２つのＮＡＮＤインタフェース１４２および１４４を通してインタフェースする方法が同一ではないことに留意されたい。ＮＡＮＤインタフェースプロトコルは対称ではない。すなわち、トランザクションを開始する開始側（先に定義された用語によれば「ホスト型」）があり、開始信号に応答だけする応答側（先に定義された用語によれば「フラッシュ型」）がある。
【００６７】
装置側ＮＡＮＤインタフェース１４２を使用して、外部ＮＡＮＤコントローラ１３０はＮＡＮＤインタフェースプロトコルのホスト型部分として動作し、ＮＡＮＤ型フラッシュ装置１２０ＡはＮＡＮＤインタフェースプロトコルのフラッシュ型部分として動作する。ホスト側インタフェース１４４を使用して、外部コントローラ１３０はＮＡＮＤインタフェースプロトコルのフラッシュ型部分として動作し、ホスト１１０ＡはＮＡＮＤインタフェースプロトコルのホスト型部分として動作する。
【００６８】
これより、図５Ａにおいて説明した例示的なシステムの例示的なダイ構成を示す図６Ａを参照する。したがって、ＮＡＮＤコントローラ１３０がコントローラダイ１３１上に組み立てられた電子回路１３５を含み、ＮＡＮＤ型フラッシュ装置１２０Ａがフラッシュダイ１３３に組み立てられた電子回路１３７を含むことに留意する。コントローラダイ１３１およびフラッシュダイ１３３は別個のダイである。
【００６９】
図５Ａにおいて説明されるＮＡＮＤコントローラ１３０内の要素（すなわち、ＥＣＣモジュール１３２、フラッシュ型ＮＡＮＤインタフェース１４４、ホスト型ＮＡＮＤインタフェース）が、少なくとも部分的に、コントローラダイに存在するコントローラ電子回路１３５により実施されることに留意する。
【００７０】
コントローラ電子回路１３５とフラッシュ電子回路１３７との間のインタフェース１４２は、「ダイ間」インタフェースである。本明細書において使用する「ダイ間インタフェース」（例えば、ダイ間ＮＡＮＤインタフェース）は、別個のダイに存在する電子回路の２つの別個のユニット間をインタフェースする（例えば、電子回路の別個のユニットが、例えば１つまたは複数の特定のプロトコルを使用して互いに通信するために必要な物理的かつ論理的なインフラを提供する）ように動作可能である。したがって、ダイ間インタフェースは、別個のダイに存在する電子回路の２つの別個のユニット間をインタフェースするために必要な物理的要素（パッド、入出力ドライバ等）を含む。
【００７１】
いくつかの実施形態によれば、ダイ間インタフェースは、共通パッケージに内にパッケージされた２つの別個のダイに組み立てられた電子回路間をインタフェースすることができる。この例を図６Ｂに示し、ＮＡＮＤコントローラ１３０およびＮＡＮＤ型フラッシュ装置１２０Ａは両方とも共通のマルチチップパッケージ１３９内に存在する。
【００７２】
あるいは、ダイ間インタフェースは、別個のパッケージにパッケージされた２つの別個のダイ上に組み立てられた電子回路間をインタフェースすることができる（例えば、各ダイがそれぞれのパッケージにパッケージされる場合）。この例を図６Ｃに示し、ＮＡＮＤコントローラ１３０およびＮＡＮＤ型フラッシュ装置１２０Ａが別個の各パッケージに存在する。特に、ＮＡＮＤコントローラ１３０はコントローラパッケージ１４１内に存在し、ＮＡＮＤ型フラッシュ装置１２０Ａはフラッシュパッケージ１４３内に存在する。したがって、図６Ｃに示すように、インタフェース１４２は「パッケージ間インタフェース」である。
【００７３】
ダイが共通のパッケージに存在する例（例えば、図６Ａに示すような）およびダイが別個のパッケージに存在する例（例えば、図６Ｂに示すような）は唯一の可能な構成ではないことに留意する。
【００７４】
したがって、あるいは、いくつかの実施形態では、ダイ間インタフェースは２つの別個のダイに組み立てられた電子回路間をインタフェースすることができ、これらダイの一方または両方がパッケージをまったく有さない。例えば、多くの用途では、空間を節減する必要性があるために、メモリダイはパッケージがまったくない状態でボード上に提供（例えば実装、例えば直接実装）される。したがって、一例では、電話用の新世代のメモリカードでは、パッケージがまったくない状態でメモリダイがボードに実装されることが多いことに留意する。本明細書において使用する、プリント回路基板上に「直接実装」されるダイは、最初にパッケージされることなくプリント回路基板上に実装される。
【００７５】
図７は、ホスト１１０Ａ（例えば、装置内にＮＡＮＤコントローラ１１４を含むホスト）が、外部ＮＡＮＤコントローラ１３０を介してデータ（例えば、データページ）をＮＡＮＤ記憶装置１２０Ａに書き込む方法を説明するフローチャートを示す。図７に示すように、ホスト１１０Ａは、書き込みコマンド（例えば、コマンドバイト、アドレスバイト、およびデータバイトを含む、ＮＡＮＤインタフェースプロトコルを使用して発行される書き込みコマンド）を外部コントローラ１３０に発行する（４１０）。ホスト１１０Ａは、コマンドをコントローラ１３０に発行していることに必ずしも気付く必要はなく、処理可能な種類の標準ＮＡＮＤ型フラッシュ記憶装置とインタフェースしていると見なすことができる。
【００７６】
ＮＡＮＤコントローラ１３０は、ホストにより発行される書き込みコマンドを受け取る（例えば、ホスト側ＮＡＮＤインタフェース１４４を介して）。書き込みコマンドを受け取った後、コントローラは、データバイトに対応するＥＣＣパリティビットを計算し（例えば、ＥＣＣモジュール１３２を使用して）（４２０）、書き込みコマンドをＮＡＮＤ型装置に発行する（例えば、フラッシュメモリ装置側インタフェース１４２を介して）（４３０）。再び、コマンドバイト、アドレスバイト、ならびにホストのデータバイトおよび対応するＥＣＣパリティビットの両方を含むデータバイトを含むコマンドがＮＡＮＤインタフェースプロトコルに従って発行される。ＮＡＮＤ型フラッシュ記憶装置は、ホスト装置１１０Ａから直接にではなく、ＮＡＮＤコントローラ１３０を介してコマンドを間接的に受け取ったことに必ずしも気付く必要はない。ステップ４４０において、ＮＡＮＤ型フラッシュ記憶装置１２０Ａは、受け取ったデータバイトを不揮発性メモリセルに記憶し、それにより、ホスト１１０Ａの要求を満たす。
【００７７】
図８は、ホスト１１０Ａ（例えば、装置内にＮＡＮＤコントローラ１１４を含むホスト）が外部ＮＡＮＤコントローラ１３０を介してＮＡＮＤ型記憶装置１２０Ａからデータ（例えば、データページ）を読み出す方法を説明するフローチャートを示す。したがって、ホスト１１０Ａは、読み出しコマンドを外部コントローラ１３０に発行する（４１０）（例えば、コマンドバイトおよびアドレスバイトを含む読み出しコマンドが、ＮＡＮＤインタフェースプロトコルを使用して発行される）。上記の書き込みコマンドと同様に、ホスト１１０Ａは、コマンドを外部コントローラ１３０に発行していることに必ずしも気付く必要はなく、処理可能な種類の標準ＮＡＮＤ型装置とインタフェースしていると見なすことができる。
【００７８】
外部ＮＡＮＤコントローラ１３０は、ホストにより（例えば、ホスト側ＮＡＮＤインタフェース１４４を介して）発行される読み出しコマンドを受け取る。外部コントローラ１３０は、読み出しコマンドを受け取った後、読み出しコマンドを（例えば、装置側ＮＡＮＤインタフェース１４２を介して）ＮＡＮＤ型装置１２０Ａに発行する（５２０）。再び、コマンドバイトおよびアドレスバイトを含むコマンドがＮＡＮＤインタフェースプロトコルに従って発行される。ステップ５３０において、ＮＡＮＤ型フラッシュ記憶装置１２０Ａは、要求されたデータを不揮発性セルアレイから取り出す。ホストデータには、データ記憶時に計算されたＥＣＣパリティビットが付随する。ステップ５４０において、データバイトおよび付随するパリティビットが外部ＮＡＮＤコントローラに送られる。この送信は、それぞれ１バイトまたは１ワードずつ順次コントローラに読み込まれる（使用されるＮＡＮＤインタフェースが８ビット幅であるか、それとも１６ビット幅であるかに依存する）コントローラにより生成される一連の読み出しストローブによりＮＡＮＤインタフェースプロトコルに従って行われる。ステップ５５０において、外部ＮＡＮＤコントローラ１３０は、パリティビットを使用して、データバイト内の誤りを修正する（例えば、ＥＣＣモジュール１３２を使用して）。ステップ５６０において、修正されたデータバイトが、ホスト側ＮＡＮＤインタフェース１４４を介してホストに送信される。この送信も、ホストにより生成される一連の読み取りストローブにより、ＮＡＮＤインタフェースプロトコルに従って行われる。ここでホスト１１０Ａは、フラッシュメモリに当初記憶されたものと同じデータバイトを有する。
【００７９】
ここで、本発明により、前世代のＮＡＮＤ型装置をサポートするように設計された内蔵ＮＡＮＤコントローラを組み込んだホストプロセッサを使用しながら、新しいＮＡＮＤ型装置のコスト利点の恩恵を受けられるようにすることが分かる。
【００８０】
本願の明細書および特許請求の範囲では、「備える」、「含む」、および「有する」という各動詞およびその活用形は、動詞の１つまたは複数の目的語が、動詞の１つまたは複数の主語のメンバ、構成要素、要素、または部分の完全なリストである必要がないことを示すために使用される。
【００８１】
本発明は、本発明の範囲を限定する意図はなく、例として提供される本発明の実施形態の詳細な説明を使用して説明された。説明した実施形態は異なる特徴を備え、これら特徴のすべてが本発明のすべての実施形態において必要とされるわけではない。本発明のこのような実施形態は、特徴のうちのいくつかのみまたは特徴の可能な組み合わせを利用する。説明された本発明の実施形態の変形および説明された実施形態において記された特徴の異なる組み合わせを含む本発明の実施形態が当業者により見出されよう。
【図面の簡単な説明】
【００８２】
【図１Ａ】多数のメモリセルの閾値電圧の分布のグラフ図を提供する（従来技術）。
【図１Ｂ】多数のメモリセルの閾値電圧の分布のグラフ図を提供する（従来技術）。
【図２】ホスト装置およびＮＡＮＤ型フラッシュ装置を含む従来技術によるシステムのブロック図を提供する。
【図３Ａ】ホスト装置、ＮＡＮＤコントローラ、およびＮＡＮＤ型フラッシュ装置を含む従来技術によるシステムのブロック図を提供する。
【図３Ｂ】ホスト側にＵＳＢインタフェースを有し、フラッシュメモリ装置側にＮＡＮＤインタフェースを有する従来技術によるＮＡＮＤコントローラのブロック図を提供する。
【図４】ホスト装置およびＮＡＮＤ型フラッシュ装置を含む従来技術によるシステムのブロック図を提供する。
【図５Ａ】本発明の例示的な実施形態による、ホスト側にＮＡＮＤインタフェースを有し、フラッシュメモリ装置側にＮＡＮＤインタフェースを有するＮＡＮＤコントローラのブロック図を提供する。
【図５Ｂ】本発明の例示的な実施形態による、ホスト装置、図５Ａに示すＮＡＮＤコントローラ、およびＮＡＮＤ型フラッシュ装置を含むシステムのブロック図を提供する。
【図６Ａ】図５Ｂにおいて記した例示的なシステムの例示的なダイ構成を示す。
【図６Ｂ】ＮＡＮＤコントローラおよびＮＡＮＤ型フラッシュ装置が単一のマルチチップパッケージ内に存在する、図５Ｂに記した例示的なシステムの例示的な構成を示す。
【図６Ｃ】ＮＡＮＤコントローラおよびＮＡＮＤ型フラッシュ装置が別個の各パッケージ内に存在する、図５Ｂに記した例示的なシステムの例示的な構成を示す。
【図７】ホストが外部ＮＡＮＤコントローラを介してＮＡＮＤ記憶装置にデータを書き込む方法を説明したフローチャートを示す。
【図８】ホストが外部ＮＡＮＤコントローラを介してＮＡＮＤ記憶装置１２０からデータを読み出す方法を説明したフローチャートを示す。
【図１Ａ】
2009510560.tif 000003
【図１Ｂ】
2009510560.tif 000004
【図２】
2009510560.tif 000005
【図３Ａ】
2009510560.tif 000006
【図３Ｂ】
2009510560.tif 000007
【図４】
2009510560.tif 000008
【図５Ａ】
2009510560.tif 000009
【図５Ｂ】
2009510560.tif 000010
【図６Ａ】
2009510560.tif 000011
【図６Ｂ】
2009510560.tif 000012
【図６Ｃ】
2009510560.tif 000013
【図７】
2009510560.tif 000014
【図８】
2009510560.tif 000015
【国際調査報告】
2009510560.tif 000016