(57)【要約】      （修正有）【課題】単一の仮想化ＥＣＣ-ＮＡＮＤコントローラが複数のＮＡＮＤメモリ構造体にサービスすることを可能にする。【解決手段】単一の仮想化ＥＣＣ-ＮＡＮＤコントローラ２６が、ＥＣＣアルゴリズムを実行し、ＮＡＮＤフラッシュ・メモリのスタック２４を管理する。この仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、スタック２４内の選択されたＮＡＮＤメモリ・デバイスにデータをリダイレクトし、その一方で、ホスト・プロセッサ２０がフラッシュ・メモリ・デバイスのスタックを単一のＮＡＮＤチップとして駆動することを可能にする。【選択図】図２
2014238871.tif 000002
【特許請求の範囲】
【請求項１】
ホストに結合された記憶システムであって、
前記記憶システム内の第１および第２のＮＡＮＤメモリ・デバイスと、
前記第１および第２のＮＡＮＤメモリ・デバイスの外部にあるコントローラであって、前記記憶システムが複数のＮＡＮＤメモリ・デバイスを含んでいても、前記ホストが前記記憶システムを単一のＮＡＮＤチップとして駆動することを可能にするための仮想化アドレス空間を、前記ホストにエクスポートするコントローラと、
を備える記憶システム。
【請求項２】
前記コントローラが、エラー訂正符号（ＥＣＣ）アルゴリズムを実施し、ウエアレベリングおよび不良ブロック管理のデータ管理アルゴリズムを実施しない、
請求項１に記載の記憶システム。
【請求項３】
前記コントローラが、前記ＥＣＣアルゴリズムの計算によるレイテンシを短縮するためのバッファを有するプロトコル・インタフェース回路を含む、
請求項２に記載の記憶システム。
【請求項４】
前記プロトコル・インタフェース回路が、ＥＣＣアルゴリズムレイテンシを考慮に入れるための前記ホスト・プロセッサへのＮＡＮＤレディ／ビジー信号を管理する、
請求項３に記載の記憶システム。
【請求項５】
前記コントローラが、前記ホストのページ・サイズとは異なる、前記第１のＮＡＮＤメモリ・デバイスのページ・サイズを管理する、
請求項１に記載の記憶システム。
【請求項６】
前記コントローラが、前記ホストにより発行され、前記第１および第２のＮＡＮＤメモリ・デバイスにサポートされていないコマンドを適応させる、
請求項１に記載の記憶システム。
【請求項７】
前記コントローラが、前記ホスト・プロセッサから受け取るデータを選択されたＮＡＮＤメモリ・デバイスにリダイレクトする不揮発性メモリ・デバイスである、
請求項１に記載の記憶システム。
【請求項８】
記憶システム内のＮＡＮＤメモリとのインタフェースをとるためのコントローラであって、
ホスト・プロセッサと信号を交換するためのプロトコル・インタフェース回路と、
ＥＣＣアルゴリズムを実行するためのＥＣＣエンジンと、
前記ＮＡＮＤメモリを管理するためのＮＡＮＤインタフェースと
を備え、
前記ホスト・プロセッサにより発行され、前記ＮＡＮＤメモリにサポートされていないコマンドが、前記コントローラ内でエミュレートされる、
コントローラ。
【請求項９】
前記コントローラが、ホストＮＡＮＤインタフェースから前記ＮＡＮＤメモリへのブリッジであり、
前記コントローラが、前記記憶システム内に備えられた前記ＮＡＮＤメモリについて、前記ホスト・プロセッサに対するＥＣＣアルゴリズムを選択する、
請求項８に記載のコントローラ。
【請求項１０】
前記コントローラが、前記ＮＡＮＤメモリのページ・サイズとは異なる、前記ホスト・プロセッサからのページ・サイズを管理する、
請求項８に記載のコントローラ。
【請求項１１】
前記コントローラが、前記ホスト・プロセッサに対する単一のＮＡＮＤインタフェースを提供し、こうすることにより、利用可能なアドレス入力サイクルに起因する、前記ＮＡＮＤメモリ内の使用可能なフラッシュの数の制限を取り除く、
請求項８に記載のコントローラ。
【請求項１２】
前記コントローラが、前記ホスト・プロセッサにデータを転送するためのバッファを備えるプロトコル・インタフェース回路を含み、
前記バッファが、順次読取り動作におけるＥＣＣアルゴリズム実行を並列化するためにデータの２番目のページを読み取るためのバッファリング能力を有する、
請求項８に記載のコントローラ。
【請求項１３】
前記プロトコル・インタフェース回路が、ＥＣＣアルゴリズムレイテンシを考慮に入れるための前記ホスト・プロセッサへのＮＡＮＤレディ／ビジー信号を管理する、
請求項１２に記載のコントローラ。
【請求項１４】
ＥＣＣアルゴリズムを内部で実行しないＮＡＮＤメモリ・デバイスのスタックを管理する方法であって、
ホスト・プロセッサと信号を交換するために、コントローラ・デバイスのプロトコル・インタフェース・ブロックを使用するステップであって、これにより、前記ホスト・プロセッサがエラーの無い広いアドレス空間を用いて通信を行うことを可能にする、ステップと、
前記コントローラ・デバイスに組み込まれたＥＣＣエンジン・ブロックを用いてＥＣＣアルゴリズムを実行するステップと、
前記ＮＡＮＤメモリ・デバイスのスタックへのデータ転送を管理するために、前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を、前記コントローラ・デバイスに組み込まれたＮＡＮＤインタフェース・ブロックを用いて再構成するステップと、
を含む方法。
【請求項１５】
前記ホスト・プロセッサからのデータの格納を命令するために、前記プロトコル・インタフェース・ブロックを用いて前記ホスト・プロセッサから受け取ったコマンドを解釈するステップをさらに含む、
請求項１４に記載の方法。
【請求項１６】
順次読取り動作においてＥＣＣアルゴリズム実行を並列化するためにデータの２番目のページを読み取るためのバッファリング能力を有する前記プロトコル・インタフェース・ブロック内のバッファを、ロードするステップをさらに含む、
請求項１４に記載の方法。
【請求項１７】
複数のＮＡＮＤメモリ・デバイスを含む無線通信システムであって、
トランシーバと、
前記トランシーバに結合され、第１および第２のプロセッサ・コアを有するプロセッサと、
ＥＣＣコントローラであって、
コマンドおよびアドレスを受け取るための、及び前記プロセッサと信号を交換するための組込みＮＡＮＤインタフェース・ブロック、
ＥＣＣアルゴリズムを実行するためのＥＣＣエンジン、ならびに
前記ホスト・プロセッサから受け取ったコマンド及びアドレスの両方を再構成して、前記複数のＮＡＮＤメモリ・デバイスとのデータ転送を命令するためのＮＡＮＤインタフェース回路、を有するＥＣＣコントローラと、
を備える無線通信システム。
【請求項１８】
前記ＥＣＣコントローラが、前記ＥＣＣアルゴリズムの計算によるレイテンシを短縮するためのバッファを有するプロトコル・インタフェース回路をさらに有する、
請求項１７に記載の無線通信システム。
【請求項１９】
前記ＥＣＣコントローラは、前記プロセッサから受け取るデータを選択されたＮＡＮＤメモリ・デバイスに前記ＥＣＣコントローラがリダイレクトし、その一方で、前記プロセッサが前記複数のＮＡＮＤメモリ・デバイスを単一のＮＡＮＤチップとして駆動することを可能にする、
請求項１７に記載の無線通信システム。
【請求項２０】
前記ＥＣＣコントローラは、前記プロセッサが前記複数のＮＡＮＤメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理することを可能にする、
請求項１７に記載の無線通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（本文中に技術分野に該当する記載なし）
【背景技術】
【０００２】
今日の通信装置は、機能を増大させるのに際して、より精巧で多様になり続けている。これらの装置は、より高い容量メモリを必要とするマルチメディア、特には複数チップ・パッケージ設計で提供されるマルチメディアに役立っている。通信リンク、バス、チップ間相互接続および記憶媒体は、固有の信号／記憶の故障を高いレベルで伴って動作することがある。これらの通信装置には、エラー検出／訂正メカニズムが組み込まれていることが求められる。ＥＣＣ（エラー訂正符号）が、メモリ記憶構造中に用いられてきているが、更なる改善が必要とされる。
【図面の簡単な説明】
【０００３】
本発明とみなされる主題は、添付の特許請求の範囲において、具体的に指摘されるとともに明確に特許請求される。ただし、構成および動作方法に関して、本発明の目的、特徴、および利点とともに本発明は、以下の詳細な説明を添付の図面と併せて参照することにより最適に理解することができる。
【図１】本発明に係るＥＣＣアルゴリズムを実行し、ホスト・プロセッサとＮＡＮＤメモリのスタックとの間のデータ転送を管理するための仮想化ＥＣＣ-ＮＡＮＤコントローラを組み込んだ無線アーキテクチャの図である。
【図２】メモリ・インターフェースに対するホスト・プロセッサの図であって、仮想化ＥＣＣ−ＮＡＮＤコントローラが、ＥＣＣアルゴリズムを実行するとともにＮＡＮＤメモリのスタックへのデータ転送を管理する機能ブロックを提供する様を示す図である。
【図３】仮想化ＥＣＣ-ＮＡＮＤコントローラの更なる詳細を示す図である。
【発明を実施するための形態】
【０００４】
図示の簡略化および明確化のために、図中の要素は必ずしも原寸に比例して描かれていないことが理解されるであろう。たとえば、明確化のために、いくつかの要素の寸法が、他の要素に対して誇張されていることがあってもよい。さらに、対応しているまたは類似している要素を示すために、参照番号を複数の図面で必要に応じて繰り返している。
【０００５】
以下の詳細な説明では、本発明の完全な理解を実現するために多数の具体的詳細について述べる。ただし、こうした具体的詳細なしに本発明が実施され得ることが、当業者には理解されるであろう。他の例では、本発明が分かりにくくならないように、周知の方法、手順、構成部品および回路を詳細には説明していないこともある。
【０００６】
図１に示す実施形態は、本発明に係る、複数のＮＡＮＤフラッシュ装置を使用可能にする仮想化ＥＣＣ-ＮＡＮＤコントローラを有する不揮発性メモリを含み得る通信装置１０を示す。本発明は、無線通信の実施形態に限定されるものではなく、他の非無線の応用例に本発明を使用してもよい。この無線実施形態に示すように、通信装置１０には、無線機が他の無線通信装置と通信を行うのを可能にするための１つまたは複数のアンテナ構造体１４が含まれる。したがって、通信装置１０は、セルラ式装置、または、たとえばＷｉ-Ｆｉ（Ｗｉｒｅｌｅｓｓ Ｆｉｄｅｌｉｔｙ）、ＷｉＭａｘ、モバイルＷｉＭａｘ、ＷＣＤＭＡ（広帯域符号化分割多元接続）、ＧＳＭ（汎欧州移動体通信システム）ネットワークなどの無線ネットワーク中で動作する装置として動作し得る。ただし、本発明は、これらのネットワーク中のみでの動作に限定されない。通信装置１０の同一プラットホーム中に配置された無線サブシステムが、無線周波数空間中の様々な周波数帯を用いてネットワーク中の他の装置と通信を行う機能を提供する。
【０００７】
本実施形態では、変調／復調を調節するためのトランシーバ１２へのアンテナ構造体１４の結合を示している。一般には、アナログ・フロントエンド・トランシーバ１２は、スタンドアロン型無線周波数（ＲＦ）ディスクリート回路またはスタンドアロン型無線周波数集積アナログ回路であっても、あるいはトランシーバ１２は１つまたは複数のプロセッサ・コア１６および１８を有するホスト中央処理ユニット（ＣＰＵ）２０に組み込まれていてもよい。これら複数のコアにより、処理負荷を各コアで共有することが可能となり、ベースバンド機能およびアプリケーション機能が取り扱われる。データおよび命令は、メモリ・インターフェース２８を介してＣＰＵとメモリ記憶装置との間を転送され得る。
【０００８】
システム・メモリ２２には、たとえばＮＡＮＤメモリ構造体２４などの揮発性メモリと不揮発性メモリとの両方が含まれ得る。これら揮発性メモリおよび不揮発性メモリは、別々に実装されても、積重ねプロセスで組み合わせられてもよいことに留意されたい。具体的には、ボード上のフットプリントを減少させるために、これらの複数のＮＡＮＤメモリ構造体はマルチチップ・パッケージ（ＭＣＰ）内に配置されてもよい。したがって、通信製品中の限られたスペースを利用するためにメモリ・デバイスとメモリ構成とを混合することにより様々な方法で、メモリ・デバイスは配置され得、低電力で信頼度の高い正しい組合せを見つけるために様々な実装オプションで用いられ得ることが、システム・メモリ２２の様々な実施形態に示される。
【０００９】
従来技術では、ＮＡＮＤメモリ内部で実施されるＥＣＣ（エラー訂正符号）アルゴリズムは、単一のメモリ・デバイスのみに適用可能なエラー検出／訂正メカニズムを提供するように制限されている。新たなＮＡＮＤ技術をサポートするために、固定されたホスト・プラットホームをアップデートすることは、ＥＣＣの必要性、ページ・サイズ、アドレス能力、新たなコマンド・セット適用等の点から高コストである。さらに、ＥＣＣアルゴリズムを制限することは、特定の技術に向けてのことである。たとえば、シングル・レベル・セル（ＳＬＣ）技術とマルチ・レベル・セル（ＭＬＣ）技術とを交換すると、使用されているＥＣＣアルゴリズムが無効になる。さらに、製品シュリンクレベルの異なるメモリへの置換えにより、現行のＥＣＣアルゴリズムの改変が必要になる。また、内部に組み込まれたＥＣＣを備える現在のメモリ・デバイスには、フラッシュおよびＥＣＣアルゴリズム論理回路向けのダイ・エリアの組合せに基づくコスト上の不利益が存在する。
【００１０】
これらの不備を解消するために、本発明によれば、図２に示すアーキテクチャにより、単一の仮想化ＥＣＣ-ＮＡＮＤコントローラ２６が複数のＮＡＮＤメモリ構造体、すなわち「ｒａｗ」メモリ・スタック２４にサービスすることが可能になっている。「ｒａｗ」の語は、ＮＡＮＤメモリ・デバイスがＥＣＣアルゴリズムを内部で実施しないことを意味する。ホストＣＰＵ２０が、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６およびｒａｗ ＮＡＮＤメモリ構造体を、内部のｒａｗ ＮＡＮＤメモリの数に関わらず単一のメモリ・システムとして駆動する。さらに、この解決手法では、1度に１つのＮＡＮＤを選択することができるので、従来技術のスタック・アーキテクチャと比較して電力消費が減少する。仮想化ＥＣＣ-ＮＡＮＤコントローラ２６には、ホストＣＰＵ２０と信号を交換するプロトコル・インタフェース３０と、ＥＣＣアルゴリズムを実施するように機能するＥＣＣエンジン３２と、メモリ・スタック２４を管理するＮＡＮＤインタフェース３４とが含まれる。
【００１１】
仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、ホストＮＡＮＤインタフェースからｒａｗ ＮＡＮＤメモリ・スタックへのブリッジとして機能し、システム・メモリ中に設けられたｒａｗＮＡＮＤに対する正しいＥＣＣアルゴリズムをホストに供給する。ホスト側は、自体の標準ＮＡＮＤインタフェース、アドレス空間、コマンド・セット、ページ・サイズ、ＥＣＣ等を用いて動作し、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、メモリ・スタック中に組み込まれた特定のｒａｗ ＮＡＮＤにホスト側を適応させる。
【００１２】
ＮＡＮＤスタック中の個々のＮＡＮＤメモリ・デバイスからＥＣＣ機能を取り除き、この機能をＥＣＣ-ＮＡＮＤコントローラ２６に組み込むことにより、様々な特徴を実現させることができる。ＮＡＮＤメモリ・デバイスの外にあるＥＣＣ-ＮＡＮＤコントローラ２６の場合、ホスト側では、複数のＮＡＮＤメモリ・デバイスが記憶システム中に存在しても、ホストがシステムを単一のＮＡＮＤチップとして駆動することを可能にする仮想化アドレス空間が実現する。したがって、ホストＣＰＵ２０は、より多くのチップをインタフェースにおいて自由に管理することができる。すなわち、ホストＣＰＵ２０が１つのチップをインタフェースにおいて管理すれば、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６がスタック・メモリ中の複数のＮＡＮＤメモリ・デバイスを管理することができる。
【００１３】
従来技術の製品では、ＥＣＣが、たとえばＦＴＬ（Ｆｌａｓｈ Ｔｒａｎｓｌａｔｉｏｎ Ｌａｙｅｒ）、ウエアレベリング、不良ブロック管理等のデータ管理アルゴリズムとともに共通の集積回路に組み込まれている。これに対して、図に示すアーキテクチャでは、ＥＣＣがデータ管理アルゴリズムから分離している。仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、ＥＣＣアルゴリズムのみを実行し、他のデータ管理アルゴリズムを実行しない。これにより、ホストＣＰＵ２０は、データ・ページおよびメタデータ・エリアについて仮想化メモリの完全な制御を維持することができ、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、より良好なＥＣＣエンジンを提供することができる。
【００１４】
ホストＮＡＮＤインタフェースからｒａｗ ＮＡＮＤメモリ・スタックへのブリッジとして仮想化ＥＣＣ-ＮＡＮＤコントローラ２６を利用する際には、ホスト・プラットホームは、ｒａｗ ＮＡＮＤのページ・サイズとは異なるページ・サイズを管理することもできる。さらに、仮想化ＥＣＣ-ＮＡＮＤ２６は、ホスト・プラットホームをメモリ・スタックから分離し、これにより、ホストＣＰＵ２０が、ｒａｗＮＡＮＤにサポートされていないいくつかのコマンドを使用することが可能になる。一実施形態では、ホストＣＰＵ２０は、仮想化ＥＣＣ-ＮＡＮＤ中の物理メモリ・デバイスのコマンド・セットよりも大きなコマンド・セットを有することができ、別の実施形態では、ホストのコマンド・セットを、仮想化ＥＣＣ-ＮＡＮＤ中のコマンド・セットと比較して縮減したコマンド・セットとすることができる。どちらの実施形態でも、ＥＣＣ-ＮＡＮＤコントローラ２６中の論理回路により、ホストＣＰＵ２０のコマンド・セットが物理メモリ・デバイスのコマンド・セットに適応される。ホスト・プラットホームは、基本ＮＡＮＤコマンド・セットを使用してもよく、また仮想化ＮＡＮＤコントローラ２６は、拡張新規コマンド・セットを使用してもよい。
【００１５】
図３は、ホストＣＰＵ２０が、プロトコル仕様から変化していない電気的接続を介してプロトコル・インタフェース３０にインタフェースをとることを可能にし、これにより、ホストが、エラーの無い広いアドレス空間を用いて単一のメモリ・システムと通信を行うことが可能になる、更なる詳細を示す。言い換えると、このアーキテクチャは、ホストＣＰＵ２０がメモリ・スタック２４とのデータ交換を標準ＮＡＮＤインタフェースとして実現することを可能にし、これにより、仮想コマンド・セットおよびアドレス空間を維持している。
【００１６】
同時に、ホスト・プラットホームに内部論理回路を追加することなく、ＥＣＣ-ＮＡＮＤ２６は、ｒａｗ ＮＡＮＤ中のビットエラーを訂正することによりデータ交換の総合的信頼度を増大させるためのＥＣＣ機能を提供する。仮想化ＥＣＣ-ＮＡＮＤコントローラ２６がスタックの選択されたＮＡＮＤにデータをリダイレクトし、その一方で、ホストＣＰＵ２０が接続されたメモリ・デバイスを単一のＮＡＮＤチップであるかのように駆動するので、このアドレス指定は仮想化されたものである。このように、単一の仮想化ＥＣＣ-ＮＡＮＤコントローラ２６が、ＮＡＮＤフラッシュ・メモリのスタックを管理し、ＥＣＣアルゴリズムを実行する。
【００１７】
さらに、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６をホストＣＰＵ２０とメモリ・スタック２４との間に有するこのアーキテクチャにより、様々なチップイネーブル（ＣＥ）ピンを使用してＮＡＮＤメモリの組を管理することの可能なホストに、単一のＮＡＮＤデバイスの使用を適用することができるようになる。一実施形態では、ホスト・インタフェースが、ＣＥ信号を使用して様々なフラッシュ・メモリを選択的に駆動するが、仮想化ＥＣＣ-ＮＡＮＤは、より密度の高い単一のＮＡＮＤチップからなるものである。仮想化ＥＣＣ-ＮＡＮＤコントローラ２６の内部論理回路が、ホストＣＰＵ２０からの要求を変換し、これにより、ＣＥの１つがアサートされてＮＡＮＤアレイの一部分をアドレス指定し、こうすることにより、選択されたＮＡＮＤメモリ・デバイス自体によってサポートされたアドレス・サイクルにこのホストＣＰＵ２０からの要求が符号化される。ホストＣＰＵ２０は、ｒａｗＮＡＮＤメモリ・デバイスに必要なサイクル数よりも低いアドレス・サイクル数を有してもよいことに留意されたい。さらに、このホスト・プラットホームは、ｒａｗＮＡＮＤメモリ・デバイスのページ・サイズとは異なるページ・サイズを管理し得、たとえばマルチプレーン（multi-plane）・オペレーションやキャッシュ（cache）・オペレーションなどの、メモリ・デバイスにサポートされていないいくつかのコマンドを使用さえし得る。
【００１８】
たとえば、ｒａｗ ＮＡＮＤメモリ・デバイスがマルチプレーン・オペレーションをサポートしていない場合、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、これらマルチプレーン・オペレーションのコマンドを２つのチャンネルでエミュレートすることができる。ｒａｗＮＡＮＤメモリ・デバイスがキャッシュ・オペレーションをサポートしていない場合、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、内部ピンポン・バッファ等を用いてこれらキャッシュ・オペレーションのコマンドをエミュレートすることができる。さらに、ホスト・プラットホームがｒａｗＮＡＮＤメモリ・デバイスのページ・サイズと異なるページ・サイズを必要とする場合、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、ページ・サイズおよびページ数が実際のものとは異なる仮想化物理的ブロックを提供する。
【００１９】
プロトコル・インタフェース３０は、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６の、標準ＮＡＮＤ通信プロトコルを用いてホストＣＰＵ２０と通信を行う部分である。プロトコル・インタフェース３０は、任意の受信コマンドを解釈し、さらに、ホストが転送する任意のデータの格納を指示する。さらに、プロトコル・インタフェース３０は、ＥＣＣアルゴリズムによるレイテンシ（待ち時間）を考慮に入れるために、ＮＡＮＤレディ／ビジー（Ready/Busy）信号を管理する。プロトコル・インタフェース３０は、ホストＣＰＵ２０により送信されるデータをプログラム動作中格納するための内部バッファ３６を有する。プロトコル・インタフェース３０は、確認コマンドに従って、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６へのいかなるデータ・オペレーションをも回避するためにビジー信号をロー（low）にセットする。
【００２０】
バッファ３６のサイズは、ＥＣＣの計算によるレイテンシを短縮するように適当に選択される。バッファ・サイズが適当であれば、ホストＣＰＵ２０は、書込み動作中に前のフラッシュ動作が終了するのを待つことなく新たなページを送り始めることができる。このタイミング的利点は、順次読取り動作中に有益であり、したがって、ＥＣＣエンジン３０が現在のページの冗長度を計算しながら、次のページをｒａｗＮＡＮＤから取り出すことができる。
【００２１】
ＥＣＣエンジン３２は、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６の、ホストＣＰＵ２０から送られたデータの冗長度を計算するＥＣＣアルゴリズムを実施するように機能する部分である。ＥＣＣアルゴリズムは、オリジナルの情報に対して、スタック・メモリ２４への格納、書込み、またはそこからの読出し中に起こるエラーを検出および訂正するのに使用される。ＥＣＣアルゴリズムは、多値、巡回、エラー訂正、可変長デジタル符号を実行して、複数のランダムなエラーパターンを訂正することができる。よって、ＥＣＣエンジン３２は、ＢＣＨ符号またはリード・ソロモン・アルゴリズムを実行することができる。
【００２２】
書込み動作中、ＥＣＣアルゴリズムにより、ホストから送られたデータの冗長度が計算される。冗長度が計算されると、それはホスト・データに加えられて、ＮＡＮＤフラッシュ・ページ・バッファに転送される。読取り動作中、ＥＣＣエンジン３２は、ｒａｗＮＡＮＤからのデータの冗長度を再度計算し、この冗長度を、先立ってフラッシュ・メモリ中に記憶していた古い冗長値と比較する。２つの冗長度が等しい場合、データは正しいものであり、そのデータはプロトコル・インタフェース・バッファからホストＣＰＵ２０に転送することができる。ただし、２つの冗長度が等しくない場合、ＥＣＣエンジン３２が誤ったデータ・ビットを訂正し、その後、データをホストＣＰＵ２０に転送し得る。エラーの数がＥＣＣ訂正能力を上回る場合、読取り失敗の信号がホストＣＰＵ２０に送られる。
【００２３】
ＮＡＮＤインタフェース３４は、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６の、ホストＣＰＵ２０から先立って受け取ったコマンド及びアドレスの両方を再構成することによりｒａｗ ＮＡＮＤと通信を行うように機能する部分である。こうして、書込み動作中、データは、プロトコル・インタフェース・バッファから、選択されたフラッシュ・メモリに転送される。この機能では、ＮＡＮＤインタフェース３４は、アドレスを復号して、受け取ったデータを選択されたＮＡＮＤにリダイレクトし、ＥＣＣ冗長度を加えたデータの新たなペイロードを、スタック・メモリ２４中の選択されたｒａｗＮＡＮＤに送る。この動作中、ビジー信号はローに維持され、ｒａｗ ＮＡＮＤプログラム動作が終了すると、高信号レベルに移行する。
【００２４】
読取り動作中、ＮＡＮＤインタフェース３４は、選択されたｒａｗ ＮＡＮＤからのデータをプロトコル・インタフェース３０中のバッファ３６に転送する。一方、ＥＣＣエンジン３２は、このデータを処理して関連パリティを計算し、フラッシュ・ストレージから読み取った冗長度と比較し、必要に応じて、ビット訂正が実施される。
【００２５】
プロトコル・インタフェース３０が１つのチップイネーブル・ピンを有し、ＮＡＮＤインタフェース３４が２つ以上のチップイネーブル・ピンを有する場合、メモリ・スタックの選択されたｒａｗＮＡＮＤメモリ・デバイスにデータをリダイレクトするためにアドレスが復号される。他方、プロトコル・インタフェース３０がＮＡＮＤインタフェース３４よりも多くのチップイネーブル・ピンを有する場合、どのチップイネーブルがローであるかに応じてｒａｗＮＡＮＤの正しい部分にデータをリダイレクトするために、アドレスが復号される。
【００２６】
仮想化ＥＣＣ-ＮＡＮＤコントローラ２６を使用して、ＮＡＮＤフラッシュ・メモリのスタックの外部でＥＣＣアルゴリズムを実行することにより、技術およびメモリ・デバイスの数に関してフレキシブルなメモリ・システムの解決手法が保証される。実際、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、メモリ・スタック２４に含まれる不揮発性メモリがＳＬＣかＭＬＣかに関係なく動作し続けることができる。さらに、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６は、複数のフラッシュＮＡＮＤデバイスを管理することが可能であり、様々なシュリンクレベルのメモリ・デバイスを収容しさえする。また、仮想化ＥＣＣ-ＮＡＮＤコントローラ２６中のＥＣＣ訂正機能の変更は、フラッシュＮＡＮＤ設計に影響を与えないことに留意されたい。さらに、図３に示すアーキテクチャで例示する解決手法では、１度に１つのＮＡＮＤメモリ・デバイスを選択することができるので、従来のスタック・アーキテクチャと比較して消費電力が減少する。
【００２７】
新たなメモリ技術により、単一のセル中に格納するビット数が増大するにつれて、読取りエラー、書込みエラー、及び保持エラーの確率が上昇する。これにより、訂正力の向上した符号を有するより完全なＥＣＣアルゴリズムを使用することが必要になる。これらの技術的困難を解消するために、先に示した本発明の実施形態により、単一のコントローラがＥＣＣアルゴリズムを実施することに加えて、ＮＡＮＤフラッシュ・メモリのスタックを管理するアーキテクチャが提供されるということが明らかになったはずである。このアーキテクチャにより、ホストＣＰＵが、エラーの無い広いアドレス空間で、標準ＮＡＮＤプロトコルを使用して単一のメモリ・システムを駆動することが可能になる。ＥＣＣ訂正機能を外部コントローラ中に置くことにより、フラッシュ・マスク（flash mask）の変更の必要なしに、ＥＣＣアルゴリズムの変更を容易化することができる。また、こうした外部コントローラは、コントローラおよびＮＡＮＤメモリに対する様々な技術の使用を可能にし、様々なシュリンクレベルのメモリ・デバイスを可能にする。
【００２８】
本発明の特定の特徴の例示および説明を本明細書中で行ってきたが、当業者は、多くの修正形態、代替形態、変更形態、均等物を見出すであろう。したがって、添付の特許請求の範囲は、本発明の真の趣旨に含まれる全てのこうした修正形態および変更形態を包含することを意図するものであることを理解されたい。
【図１】
2014238871.tif 000003
【図２】
2014238871.tif 000004
【図３】
2014238871.tif 000005
【手続補正書】
【提出日】平成26年8月28日(2014.8.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストプロセッサに連結する記憶システムであって、
前記記憶システムの構成が、
スタック・メモリ中の個々のＮＡＮＤメモリから誤り訂正コード（ＥＣＣ）アルゴリズムを取り除いた複数のｒａｗ ＮＡＮＤメモリを含むメモリ・スタックと、
前記記憶システムの消費電力を低減する時に、前記メモリ・スタック内の複数のｒａｗ ＮＡＮＤメモリのうちの単一のものに電力を供給するように構成され、前記複数のｒａｗ ＮＡＮＤメモリに結合されたＮＡＮＤインタフェースと、
前記ＮＡＮＤインタフェースと前記複数のｒａｗ ＮＡＮＤメモリと外部に接続され、メモリ・スタック内のｒａｗ ＮＡＮＤメモリの実際の数にかかわらず、ホストが単一のＮＡＮＤメモリなどの記憶システムを駆動できるようにホストプロセッサに仮想化されたアドレス空間を実現し、更に、複数のｒａｗ ＮＡＮＤメモリの各々のために、単一の仮想化されたＥＣＣアルゴリズムを提供するコントローラと、
を備える記憶システム。
【請求項２】
前記コントローラが、単一の仮想化されたＥＣＣアルゴリズムを実行し、ウェアレベリングおよび不良ブロック管理のデータ管理アルゴリズムを実装しない、
請求項１に記載の記憶システム。
【請求項３】
前記コントローラが、更に、単一の仮想化されたＥＣＣアルゴリズムの計算によるレイテンシを短縮し、ＥＣＣアルゴリズムのレイテンシを考慮して、ホストプロセッサにＮＡＮＤレディ／ビジー信号を管理するためのバッファを有するプロトコル・インタフェース回路を含む、
請求項１に記載の記憶システム。
【請求項４】
前記コントローラが、更に、シングルレベルセル（ＳＬＣ）技術およびマルチレベルセル（ＭＬＣ）技術の両方を同時にするための単一の仮想化されたＥＣＣアルゴリズムを提供するように構成される、
請求項１に記載の記憶システム。
【請求項５】
前記ＮＡＮＤインタフェースが、更に、複数のｒａｗ ＮＡＮＤメモリのうちの選択された１つに、データ及びＥＣＣの冗長情報のペイロードを送信するために、メモリ・スタックと通信するように構成される、
請求項１に記載の記憶システム。
【請求項６】
前記コントローラが、更に、メモリ・スタック内の各デバイスのホストプロセッサへの適切なＥＣＣアルゴリズムを提供するように構成されている、
請求項１に記載の記憶システム。
【請求項７】
前記記憶システムが、メモリ・スタック内のｒａｗ ＮＡＮＤメモリの実際の数とは関係なく、単一のデバイスとしてホストプロセッサによって管理される、
請求項１に記載の記憶システム。
【請求項８】
前記ＮＡＮＤインタフェースは、更に、メモリ・スタック内の複数のｒａｗ ＮＡＮＤメモリのうちの特定のものにホストプロセッサから受信したデータをリダイレクトするように構成される、
請求項１に記載の記憶システム。
【請求項９】
前記コントローラが、更に、マルチプレーンメモリ動作を実現する、
請求項１に記載の記憶システム。
【請求項１０】
複数のｒａｗ ＮＡＮＤメモリをインタフェースするコントローラは、記憶システム内のメモリ・スタックに含まれ、前記コントローラは、ホストプロセッサと信号を交換するプロトコル・インタフェースと、
前記プロトコル・インタフェースに結合されたエラー訂正符号（ＥＣＣ）エンジンは、メモリ・スタック内の前記複数のｒａｗ ＮＡＮＤメモリのためのＥＣＣアルゴリズムを実装するために、前記複数のｒａｗ ＮＡＮＤメモリのうちのいずれも、エラー訂正コード（ＥＣＣ）アルゴリズムを内部的に実装しておらず、そして、
前記複数のｒａｗ ＮＡＮＤメモリを管理するために前記ＥＣＣエンジンに結合されたＮＡＮＤインタフェースは、前記複数のｒａｗ ＮＡＮＤメモリによってサポートされていないホストプロセッサによって発行されたコマンドをエミュレートするように構成され、更に、記憶システム全体の消費電力を節約するために、ｒａｗ ＮＡＮＤメモリのうちの選択された一つに電力を供給するように構成されている、コントローラ。
【請求項１１】
前記プロトコル・インタフェースは、更に、ホストプロセッサから受け取ったコマンドを解釈するように構成されている、
請求項１０に記載のコントローラ。
【請求項１２】
前記ＥＣＣエンジンは、更に、メモリ・スタック内の複数のＮＡＮＤデバイスのそれぞれのシュリンクレベルのＥＣＣアルゴリズムを提供するように構成されている、
請求項１０に記載のコントローラ。
【請求項１３】
内部コード、前記方法は、誤り訂正（ＥＣＣ）アルゴリズムを内部に実装していないメモリ・スタック内のｒａｗ ＮＡＮＤメモリを管理する方法であって、
ホストプロセッサがメモリ・スタック内のｒａｗ ＮＡＮＤメモリデバイスの実際の数に関係なく、単一のデバイスとしてメモリ・スタックと通信することを可能にするように、ホストプロセッサと信号を交換するプロトコル・インタフェースを使用するステップと、
前記コントローラデバイスに埋め込まれたＥＣＣエンジンブロックによって前記複数のｒａｗ ＮＡＮＤメモリの各々のために、単一の仮想化されたＥＣＣアルゴリズムを実装するステップと、
一度にメモリ・スタック内のｒａｗ ＮＡＮＤメモリのうちの単一のものに電力を供給することにより、消費電力を低減するステップと、
を含む方法。
【請求項１４】
更に、前記複数のｒａｗ ＮＡＮＤメモリへのデータ転送を管理するためのコントローラデバイスに埋め込まれたＮＡＮＤインタフェースによって、ホストプロセッサから受け取ったコマンド及びアドレスの両方を再構成するステップを含む、請求項１３に記載の方法。
【請求項１５】
更に、ホストプロセッサから受信したデータの格納を指示するためにプロトコル・インタフェースによって、ホストプロセッサから受け取ったコマンドを解釈するステップと、
シーケンシャル読み出し時に、ＥＣＣアルゴリズムの実行を並列化するために、データの２番目のページを読み取る能力のバッファを有するプロトコル・インタフェースに、バッファリングロードするステップと、更に含む、
請求項１３に記載の方法。