(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5650116
(24)【登録日】2014年11月21日
(45)【発行日】2015年1月7日
(54)【発明の名称】仮想化ECC−NAND
(51)【国際特許分類】
G06F 12/16 20060101AFI20141211BHJP
G06F 11/10 20060101ALI20141211BHJP
【FI】
G06F12/16 320F
G06F11/10 330K
【請求項の数】11
【全頁数】13
(21)【出願番号】特願2011-530580(P2011-530580)
(86)(22)【出願日】2008年10月9日
(65)【公表番号】特表2012-505458(P2012-505458A)
(43)【公表日】2012年3月1日
(86)【国際出願番号】IB2008002658
(87)【国際公開番号】WO2010041093
(87)【国際公開日】20100415
【審査請求日】2011年10月6日
【前置審査】
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー, インク.
(74)【代理人】
【識別番号】100106851
【弁理士】
【氏名又は名称】野村 泰久
(74)【代理人】
【識別番号】100074099
【弁理士】
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】ティツィアーニ,フェデリコ
(72)【発明者】
【氏名】カンパルド,ジョヴァンニ
(72)【発明者】
【氏名】イアキューロ,マッシモ
(72)【発明者】
【氏名】ジアッチョ,クラウディオ
(72)【発明者】
【氏名】スコニャミーリョ,マヌエーラ
(72)【発明者】
【氏名】カラッチョ,デニーロ
(72)【発明者】
【氏名】ヴィターレ,オルネッラ
(72)【発明者】
【氏名】ポリオ,アントニーノ
【審査官】
桜井 茂行
(56)【参考文献】
【文献】
特開2008−102693(JP,A)
【文献】
特開2009−003994(JP,A)
【文献】
米国特許第5918242(US,A)
【文献】
米国特許出願公開第2003/156454(US,A1)
【文献】
米国特許出願公開第2008/046630(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/16
G06F 11/10
G06F 13/16
(57)【特許請求の範囲】
【請求項1】
ホストに結合された記憶システムであって、
内部でエラー訂正符号(ECC)アルゴリズムを実行しない複数のNANDメモリ・デバイスと、
前記複数のNANDメモリ・デバイスの外部にあるコントローラであって、前記記憶システムが複数のNANDメモリ・デバイスを含んでいても、前記ホストが前記記憶システムを単一のNANDメモリ・デバイスとして駆動することを可能にするための仮想化アドレス空間を、前記ホストにエクスポートし、さらに単一の仮想化エラー訂正符号(ECC)アルゴリズムを前記複数のNANDメモリ・デバイスの各々に提供するコントローラと、
を備え、
前記コントローラは、更に符号(ECC)アルゴリズムと、ウェアレベリングおよび不良ブロック管理ではなく、ECCアルゴリズムの計算によって生じる待ち時間を低減し、NANDメモリ・デバイスを管理するためのバッファを有するプロトコル・インタフェースを含み、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理する記憶システム。
【請求項2】
前記コントローラが、前記ホストのページ・サイズとは異なる、前記複数のNANDメモリ・デバイスの各々のページ・サイズを管理する、
請求項1に記載の記憶システム。
【請求項3】
前記コントローラが、前記ホストにより発行され、前記複数のNANDメモリ・デバイスにサポートされていないコマンドを適応させる、
請求項1に記載の記憶システム。
【請求項4】
前記コントローラが、前記ホストのプロセッサから受け取るデータを、前記複数のNANDメモリ・デバイスの選択された一又は複数にリダイレクトするよう構成された不揮発性メモリ・デバイスである、
請求項1に記載の記憶システム。
【請求項5】
記憶システム内の複数のNANDメモリ・デバイスとのインタフェースをとるためのコントローラであって、
ホスト・プロセッサと信号を交換するためのプロトコル・インタフェース回路と、
ECCアルゴリズムを実行するためのエラー訂正符合(ECC)エンジンと、
前記複数のNANDメモリ・デバイスを管理するためのNANDインタフェースと、
を備え、
前記NANDインタフェースは、前記ホスト・プロセッサにより発行され、前記複数のNANDメモリ・デバイスにサポートされていないコマンドをエミュレートするよう構成され、さらに前記NANDインタフェースは、前記複数のNANDメモリ・デバイスのうちの1度に1つ選択されるNANDメモリ・デバイスに電力を供給し、前記記憶システムの全消費電力を節約するよう構成され、
前記プロトコル・インタフェース回路は、ホスト・プロセッサにデータを転送すると共に、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理するためのバッファを有し、前記バッファは、順次読取り動作中のECCアルゴリズムの実行をしながら、新たなページのデータを読み出すバッファリング能力を有するコントローラ。
【請求項6】
前記コントローラが、ホストNANDインタフェースから前記複数のNANDメモリ・デバイスへのブリッジであり、
前記コントローラが、前記記憶システム内に備えられた前記複数のNANDメモリ・デバイスについて、前記ホスト・プロセッサに対するECCアルゴリズムを選択する、
請求項5に記載のコントローラ。
【請求項7】
前記コントローラが、前記複数のNANDメモリ・デバイスのページ・サイズとは異なる、前記ホスト・プロセッサからのページ・サイズを管理する、
請求項5に記載のコントローラ。
【請求項8】
前記コントローラが、前記ホスト・プロセッサに対する単一のNANDインタフェースを提供し、こうすることにより、利用可能なアドレス入力サイクルに起因する、前記複数のNANDメモリ・デバイスの各々における使用可能なフラッシュの数の制限を取り除く、
請求項5に記載のコントローラ。
【請求項9】
エラー訂正符号(ECC)アルゴリズムを内部で実行しないNANDメモリ・デバイスのスタックを管理する方法であって、
ホスト・プロセッサと信号を交換するために、コントローラ・デバイスのプロトコル・インタフェース・ブロックを使用するステップであって、これにより、前記ホスト・プロセッサがエラーの無い広いアドレス空間を用いて通信を行うことを可能にする、ステップと、
前記コントローラ・デバイスに組み込まれたECCエンジン・ブロックにより単一の仮想化ECCアルゴリズムを実行するステップと、
前記NANDメモリ・デバイスのスタックへのデータ転送を管理するために、前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を、前記コントローラ・デバイスに組み込まれたNANDインタフェース・ブロックを用いて再構成するステップと、
を含み、
ホスト・プロセッサからのデータの記憶を指示するためのプロトコル・インタフェースブロックによって、ホスト・プロセッサから受け取ったコマンドを解釈すると、順次読取り動作中のECCアルゴリズムの実行をしながら、新たなページのデータを読み出すバッファリング能力を有するバッファをロードする方法。
【請求項10】
複数のNANDメモリ・デバイスを含む無線通信システムであって、
トランシーバと、
前記トランシーバに結合され、第1および第2のプロセッサ・コアを有するプロセッサと、
エラー訂正符号(ECC)コントローラであって、
コマンドおよびアドレスを受け取るための、及び前記プロセッサと信号を交換するための組込みNANDインタフェース・ブロック、
ECCアルゴリズムを実行するためのECCエンジン、ならびに
前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を再構成して、内部でECCアルゴリズムを実行しない前記複数のNANDメモリ・デバイスとのデータ転送を命令するためのNANDインタフェース回路、を有するECCコントローラと、を備え、
前記ECCコントローラは、さらに、ECC計算によって生じる待ち時間を低減するバッファを有し、ECCアルゴリズムの待ち時間を考慮して、ホスト・プロセッサにNANDレディ/ビジー信号を管理するプロトコル・インタフェース回路を含み、前記ECCコントローラは、さらに、前記プロセッサから選択されたNANDメモリ・デバイスへリダイレクトしている間、前記プロセッサが複数のNANDメモリデバイスを単一のNANDメモリデバイスとして駆動することを可能にする無線通信システム。
【請求項11】
前記ECCコントローラは、前記プロセッサが前記複数のNANDメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理することを可能にする、
請求項10に記載の無線通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
(本文中に技術分野に該当する記載なし)
【背景技術】
【0002】
今日の通信装置は、機能を増大させるのに際して、より精巧で多様になり続けている。これらの装置は、より高い容量メモリを必要とするマルチメディア、特には複数チップ・パッケージ設計で提供されるマルチメディアに役立っている。通信リンク、バス、チップ間相互接続および記憶媒体は、固有の信号/記憶の故障を高いレベルで伴って動作することがある。これらの通信装置には、エラー検出/訂正メカニズムが組み込まれていることが求められる。ECC(エラー訂正符号)が、メモリ記憶構造中に用いられてきているが、更なる改善が必要とされる。
【図面の簡単な説明】
【0003】
本発明とみなされる主題は、添付の特許請求の範囲において、具体的に指摘されるとともに明確に特許請求される。ただし、構成および動作方法に関して、本発明の目的、特徴、および利点とともに本発明は、以下の詳細な説明を添付の図面と併せて参照することにより最適に理解することができる。
【
図1】本発明に係るECCアルゴリズムを実行し、ホスト・プロセッサとNANDメモリのスタックとの間のデータ転送を管理するための仮想化ECC-NANDコントローラを組み込んだ無線アーキテクチャの図である。
【
図2】メモリ・インターフェースに対するホスト・プロセッサの図であって、仮想化ECC−NANDコントローラが、ECCアルゴリズムを実行するとともにNANDメモリのスタックへのデータ転送を管理する機能ブロックを提供する様を示す図である。
【
図3】仮想化ECC-NANDコントローラの更なる詳細を示す図である。
【発明を実施するための形態】
【0004】
図示の簡略化および明確化のために、図中の要素は必ずしも原寸に比例して描かれていないことが理解されるであろう。たとえば、明確化のために、いくつかの要素の寸法が、他の要素に対して誇張されていることがあってもよい。さらに、対応しているまたは類似している要素を示すために、参照番号を複数の図面で必要に応じて繰り返している。
【0005】
以下の詳細な説明では、本発明の完全な理解を実現するために多数の具体的詳細について述べる。ただし、こうした具体的詳細なしに本発明が実施され得ることが、当業者には理解されるであろう。他の例では、本発明が分かりにくくならないように、周知の方法、手順、構成部品および回路を詳細には説明していないこともある。
【0006】
図1に示す実施形態は、本発明に係る、複数のNANDフラッシュ装置を使用可能にする仮想化ECC-NANDコントローラを有する不揮発性メモリを含み得る通信装置10を示す。本発明は、無線通信の実施形態に限定されるものではなく、他の非無線の応用例に本発明を使用してもよい。この無線実施形態に示すように、通信装置10には、無線機が他の無線通信装置と通信を行うのを可能にするための1つまたは複数のアンテナ構造体14が含まれる。したがって、通信装置10は、セルラ式装置、または、たとえばWi-Fi(Wireless Fidelity)、WiMax、モバイルWiMax、WCDMA(広帯域符号化分割多元接続)、GSM(汎欧州移動体通信システム)ネットワークなどの無線ネットワーク中で動作する装置として動作し得る。ただし、本発明は、これらのネットワーク中のみでの動作に限定されない。通信装置10の同一プラットホーム中に配置された無線サブシステムが、無線周波数空間中の様々な周波数帯を用いてネットワーク中の他の装置と通信を行う機能を提供する。
【0007】
本実施形態では、変調/復調を調節するためのトランシーバ12へのアンテナ構造体14の結合を示している。一般には、アナログ・フロントエンド・トランシーバ12は、スタンドアロン型無線周波数(RF)ディスクリート回路またはスタンドアロン型無線周波数集積アナログ回路であっても、あるいはトランシーバ12は1つまたは複数のプロセッサ・コア16および18を有するホスト中央処理ユニット(CPU)20に組み込まれていてもよい。これら複数のコアにより、処理負荷を各コアで共有することが可能となり、ベースバンド機能およびアプリケーション機能が取り扱われる。データおよび命令は、メモリ・インターフェース28を介してCPUとメモリ記憶装置との間を転送され得る。
【0008】
システム・メモリ22には、たとえばNANDメモリ構造体24などの揮発性メモリと不揮発性メモリとの両方が含まれ得る。これら揮発性メモリおよび不揮発性メモリは、別々に実装されても、積重ねプロセスで組み合わせられてもよいことに留意されたい。具体的には、ボード上のフットプリントを減少させるために、これらの複数のNANDメモリ構造体はマルチチップ・パッケージ(MCP)内に配置されてもよい。したがって、通信製品中の限られたスペースを利用するためにメモリ・デバイスとメモリ構成とを混合することにより様々な方法で、メモリ・デバイスは配置され得、低電力で信頼度の高い正しい組合せを見つけるために様々な実装オプションで用いられ得ることが、システム・メモリ22の様々な実施形態に示される。
【0009】
従来技術では、NANDメモリ内部で実施されるECC(エラー訂正符号)アルゴリズムは、単一のメモリ・デバイスのみに適用可能なエラー検出/訂正メカニズムを提供するように制限されている。新たなNAND技術をサポートするために、固定されたホスト・プラットホームをアップデートすることは、ECCの必要性、ページ・サイズ、アドレス能力、新たなコマンド・セット適用等の点から高コストである。さらに、ECCアルゴリズムを制限することは、特定の技術に向けてのことである。たとえば、シングル・レベル・セル(SLC)技術とマルチ・レベル・セル(MLC)技術とを交換すると、使用されているECCアルゴリズムが無効になる。さらに、製品シュリンクレベルの異なるメモリへの置換えにより、現行のECCアルゴリズムの改変が必要になる。また、内部に組み込まれたECCを備える現在のメモリ・デバイスには、フラッシュおよびECCアルゴリズム論理回路向けのダイ・エリアの組合せに基づくコスト上の不利益が存在する。
【0010】
これらの不備を解消するために、本発明によれば、
図2に示すアーキテクチャにより、単一の仮想化ECC-NANDコントローラ26が複数のNANDメモリ構造体、すなわち「raw」メモリ・スタック24にサービスすることが可能になっている。「raw」の語は、NANDメモリ・デバイスがECCアルゴリズムを内部で実施しないことを意味する。ホストCPU20が、仮想化ECC-NANDコントローラ26およびraw NANDメモリ構造体を、内部のraw NANDメモリの数に関わらず単一のメモリ・システムとして駆動する。さらに、この解決手法では、1度に1つのNANDを選択することができるので、従来技術のスタック・アーキテクチャと比較して電力消費が減少する。仮想化ECC-NANDコントローラ26には、ホストCPU20と信号を交換するプロトコル・インタフェース30と、ECCアルゴリズムを実施するように機能するECCエンジン32と、メモリ・スタック24を管理するNANDインタフェース34とが含まれる。
【0011】
仮想化ECC-NANDコントローラ26は、ホストNANDインタフェースからraw NANDメモリ・スタックへのブリッジとして機能し、システム・メモリ中に設けられたraw NANDに対する正しいECCアルゴリズムをホストに供給する。ホスト側は、自体の標準NANDインタフェース、アドレス空間、コマンド・セット、ページ・サイズ、ECC等を用いて動作し、仮想化ECC-NANDコントローラ26は、メモリ・スタック中に組み込まれた特定のraw NANDにホスト側を適応させる。
【0012】
NANDスタック中の個々のNANDメモリ・デバイスからECC機能を取り除き、この機能をECC-NANDコントローラ26に組み込むことにより、様々な特徴を実現させることができる。NANDメモリ・デバイスの外にあるECC-NANDコントローラ26の場合、ホスト側では、複数のNANDメモリ・デバイスが記憶システム中に存在しても、ホストがシステムを単一のNANDチップとして駆動することを可能にする仮想化アドレス空間が実現する。したがって、ホストCPU20は、より多くのチップをインタフェースにおいて自由に管理することができる。すなわち、ホストCPU20が1つのチップをインタフェースにおいて管理すれば、仮想化ECC-NANDコントローラ26がスタック・メモリ中の複数のNANDメモリ・デバイスを管理することができる。
【0013】
従来技術の製品では、ECCが、たとえばFTL(Flash Translation Layer)、ウエアレベリング、不良ブロック管理等のデータ管理アルゴリズムとともに共通の集積回路に組み込まれている。これに対して、図に示すアーキテクチャでは、ECCがデータ管理アルゴリズムから分離している。仮想化ECC-NANDコントローラ26は、ECCアルゴリズムのみを実行し、他のデータ管理アルゴリズムを実行しない。これにより、ホストCPU20は、データ・ページおよびメタデータ・エリアについて仮想化メモリの完全な制御を維持することができ、仮想化ECC-NANDコントローラ26は、より良好なECCエンジンを提供することができる。
【0014】
ホストNANDインタフェースからraw NANDメモリ・スタックへのブリッジとして仮想化ECC-NANDコントローラ26を利用する際には、ホスト・プラットホームは、raw NANDのページ・サイズとは異なるページ・サイズを管理することもできる。さらに、仮想化ECC-NAND26は、ホスト・プラットホームをメモリ・スタックから分離し、これにより、ホストCPU20が、raw NANDにサポートされていないいくつかのコマンドを使用することが可能になる。一実施形態では、ホストCPU20は、仮想化ECC-NAND中の物理メモリ・デバイスのコマンド・セットよりも大きなコマンド・セットを有することができ、別の実施形態では、ホストのコマンド・セットを、仮想化ECC-NAND中のコマンド・セットと比較して縮減したコマンド・セットとすることができる。どちらの実施形態でも、ECC-NANDコントローラ26中の論理回路により、ホストCPU20のコマンド・セットが物理メモリ・デバイスのコマンド・セットに適応される。ホスト・プラットホームは、基本NANDコマンド・セットを使用してもよく、また仮想化NANDコントローラ26は、拡張新規コマンド・セットを使用してもよい。
【0015】
図3は、ホストCPU20が、プロトコル仕様から変化していない電気的接続を介してプロトコル・インタフェース30にインタフェースをとることを可能にし、これにより、ホストが、エラーの無い広いアドレス空間を用いて単一のメモリ・システムと通信を行うことが可能になる、更なる詳細を示す。言い換えると、このアーキテクチャは、ホストCPU20がメモリ・スタック24とのデータ交換を標準NANDインタフェースとして実現することを可能にし、これにより、仮想コマンド・セットおよびアドレス空間を維持している。
【0016】
同時に、ホスト・プラットホームに内部論理回路を追加することなく、ECC-NAND26は、raw NAND中のビットエラーを訂正することによりデータ交換の総合的信頼度を増大させるためのECC機能を提供する。仮想化ECC-NANDコントローラ26がスタックの選択されたNANDにデータをリダイレクトし、その一方で、ホストCPU20が接続されたメモリ・デバイスを単一のNANDチップであるかのように駆動するので、このアドレス指定は仮想化されたものである。このように、単一の仮想化ECC-NANDコントローラ26が、NANDフラッシュ・メモリのスタックを管理し、ECCアルゴリズムを実行する。
【0017】
さらに、仮想化ECC-NANDコントローラ26をホストCPU20とメモリ・スタック24との間に有するこのアーキテクチャにより、様々なチップイネーブル(CE)ピンを使用してNANDメモリの組を管理することの可能なホストに、単一のNANDデバイスの使用を適用することができるようになる。一実施形態では、ホスト・インタフェースが、CE信号を使用して様々なフラッシュ・メモリを選択的に駆動するが、仮想化ECC-NANDは、より密度の高い単一のNANDチップからなるものである。仮想化ECC-NANDコントローラ26の内部論理回路が、ホストCPU20からの要求を変換し、これにより、CEの1つがアサートされてNANDアレイの一部分をアドレス指定し、こうすることにより、選択されたNANDメモリ・デバイス自体によってサポートされたアドレス・サイクルにこのホストCPU20からの要求が符号化される。ホストCPU20は、raw NANDメモリ・デバイスに必要なサイクル数よりも低いアドレス・サイクル数を有してもよいことに留意されたい。さらに、このホスト・プラットホームは、raw NANDメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理し得、たとえばマルチプレーン(multi-plane)・オペレーションやキャッシュ(cache)・オペレーションなどの、メモリ・デバイスにサポートされていないいくつかのコマンドを使用さえし得る。
【0018】
たとえば、raw NANDメモリ・デバイスがマルチプレーン・オペレーションをサポートしていない場合、仮想化ECC-NANDコントローラ26は、これらマルチプレーン・オペレーションのコマンドを2つのチャンネルでエミュレートすることができる。raw NANDメモリ・デバイスがキャッシュ・オペレーションをサポートしていない場合、仮想化ECC-NANDコントローラ26は、内部ピンポン・バッファ等を用いてこれらキャッシュ・オペレーションのコマンドをエミュレートすることができる。さらに、ホスト・プラットホームがraw NANDメモリ・デバイスのページ・サイズと異なるページ・サイズを必要とする場合、仮想化ECC-NANDコントローラ26は、ページ・サイズおよびページ数が実際のものとは異なる仮想化物理的ブロックを提供する。
【0019】
プロトコル・インタフェース30は、仮想化ECC-NANDコントローラ26の、標準NAND通信プロトコルを用いてホストCPU20と通信を行う部分である。プロトコル・インタフェース30は、任意の受信コマンドを解釈し、さらに、ホストが転送する任意のデータの格納を指示する。さらに、プロトコル・インタフェース30は、ECCアルゴリズムによるレイテンシ(待ち時間)を考慮に入れるために、NANDレディ/ビジー(Ready/Busy)信号を管理する。プロトコル・インタフェース30は、ホストCPU20により送信されるデータをプログラム動作中格納するための内部バッファ36を有する。プロトコル・インタフェース30は、確認コマンドに従って、仮想化ECC-NANDコントローラ26へのいかなるデータ・オペレーションをも回避するためにビジー信号をロー(low)にセットする。
【0020】
バッファ36のサイズは、ECCの計算によるレイテンシを短縮するように適当に選択される。バッファ・サイズが適当であれば、ホストCPU20は、書込み動作中に前のフラッシュ動作が終了するのを待つことなく新たなページを送り始めることができる。このタイミング的利点は、順次読取り動作中に有益であり、したがって、ECCエンジン30が現在のページの冗長度を計算しながら、次のページをraw NANDから取り出すことができる。
【0021】
ECCエンジン32は、仮想化ECC-NANDコントローラ26の、ホストCPU20から送られたデータの冗長度を計算するECCアルゴリズムを実施するように機能する部分である。ECCアルゴリズムは、オリジナルの情報に対して、スタック・メモリ24への格納、書込み、またはそこからの読出し中に起こるエラーを検出および訂正するのに使用される。ECCアルゴリズムは、多値、巡回、エラー訂正、可変長デジタル符号を実行して、複数のランダムなエラーパターンを訂正することができる。よって、ECCエンジン32は、BCH符号またはリード・ソロモン・アルゴリズムを実行することができる。
【0022】
書込み動作中、ECCアルゴリズムにより、ホストから送られたデータの冗長度が計算される。冗長度が計算されると、それはホスト・データに加えられて、NANDフラッシュ・ページ・バッファに転送される。読取り動作中、ECCエンジン32は、raw NANDからのデータの冗長度を再度計算し、この冗長度を、先立ってフラッシュ・メモリ中に記憶していた古い冗長値と比較する。2つの冗長度が等しい場合、データは正しいものであり、そのデータはプロトコル・インタフェース・バッファからホストCPU20に転送することができる。ただし、2つの冗長度が等しくない場合、ECCエンジン32が誤ったデータ・ビットを訂正し、その後、データをホストCPU20に転送し得る。エラーの数がECC訂正能力を上回る場合、読取り失敗の信号がホストCPU20に送られる。
【0023】
NANDインタフェース34は、仮想化ECC-NANDコントローラ26の、ホストCPU20から先立って受け取ったコマンド及びアドレスの両方を再構成することによりraw NANDと通信を行うように機能する部分である。こうして、書込み動作中、データは、プロトコル・インタフェース・バッファから、選択されたフラッシュ・メモリに転送される。この機能では、NANDインタフェース34は、アドレスを復号して、受け取ったデータを選択されたNANDにリダイレクトし、ECC冗長度を加えたデータの新たなペイロードを、スタック・メモリ24中の選択されたraw NANDに送る。この動作中、ビジー信号はローに維持され、raw NANDプログラム動作が終了すると、高信号レベルに移行する。
【0024】
読取り動作中、NANDインタフェース34は、選択されたraw NANDからのデータをプロトコル・インタフェース30中のバッファ36に転送する。一方、ECCエンジン32は、このデータを処理して関連パリティを計算し、フラッシュ・ストレージから読み取った冗長度と比較し、必要に応じて、ビット訂正が実施される。
【0025】
プロトコル・インタフェース30が1つのチップイネーブル・ピンを有し、NANDインタフェース34が2つ以上のチップイネーブル・ピンを有する場合、メモリ・スタックの選択されたraw NANDメモリ・デバイスにデータをリダイレクトするためにアドレスが復号される。他方、プロトコル・インタフェース30がNANDインタフェース34よりも多くのチップイネーブル・ピンを有する場合、どのチップイネーブルがローであるかに応じてraw NANDの正しい部分にデータをリダイレクトするために、アドレスが復号される。
【0026】
仮想化ECC-NANDコントローラ26を使用して、NANDフラッシュ・メモリのスタックの外部でECCアルゴリズムを実行することにより、技術およびメモリ・デバイスの数に関してフレキシブルなメモリ・システムの解決手法が保証される。実際、仮想化ECC-NANDコントローラ26は、メモリ・スタック24に含まれる不揮発性メモリがSLCかMLCかに関係なく動作し続けることができる。さらに、仮想化ECC-NANDコントローラ26は、複数のフラッシュNANDデバイスを管理することが可能であり、様々なシュリンクレベルのメモリ・デバイスを収容しさえする。また、仮想化ECC-NANDコントローラ26中のECC訂正機能の変更は、フラッシュNAND設計に影響を与えないことに留意されたい。さらに、
図3に示すアーキテクチャで例示する解決手法では、1度に1つのNANDメモリ・デバイスを選択することができるので、従来のスタック・アーキテクチャと比較して消費電力が減少する。
【0027】
新たなメモリ技術により、単一のセル中に格納するビット数が増大するにつれて、読取りエラー、書込みエラー、及び保持エラーの確率が上昇する。これにより、訂正力の向上した符号を有するより完全なECCアルゴリズムを使用することが必要になる。これらの技術的困難を解消するために、先に示した本発明の実施形態により、単一のコントローラがECCアルゴリズムを実施することに加えて、NANDフラッシュ・メモリのスタックを管理するアーキテクチャが提供されるということが明らかになったはずである。このアーキテクチャにより、ホストCPUが、エラーの無い広いアドレス空間で、標準NANDプロトコルを使用して単一のメモリ・システムを駆動することが可能になる。ECC訂正機能を外部コントローラ中に置くことにより、フラッシュ・マスク(flash mask)の変更の必要なしに、ECCアルゴリズムの変更を容易化することができる。また、こうした外部コントローラは、コントローラおよびNANDメモリに対する様々な技術の使用を可能にし、様々なシュリンクレベルのメモリ・デバイスを可能にする。
【0028】
本発明の特定の特徴の例示および説明を本明細書中で行ってきたが、当業者は、多くの修正形態、代替形態、変更形態、均等物を見出すであろう。したがって、添付の特許請求の範囲は、本発明の真の趣旨に含まれる全てのこうした修正形態および変更形態を包含することを意図するものであることを理解されたい。