(57)【要約】  複数の不揮発性メモリデバイスと、複数の不揮発性メモリデバイスに接続された、メモリコントローラに接続するためのインターフェースデバイスとを備える複合半導体メモリデバイスであって、インターフェースデバイスが誤り訂正符号化(ECC)エンジンを有する。メモリコントローラと、メモリコントローラによって、読み書きされるように構成された、内蔵のECCエンジンを含む、複合半導体メモリデバイスとを備えるメモリシステム。複数の不揮発性メモリデバイスを備える複合半導体メモリデバイスと、少なくとも1つの複合半導体メモリデバイスに接続され、複合半導体メモリデバイスに読み書きコマンドを発行して、データが、不揮発性メモリデバイスのそれぞれについて読み書きされるようにするメモリコントローラとを備え、複合半導体メモリデバイスが、データのエラーなしの書き込みおよび読み出しを行うメモリシステム。
2013522779.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリデバイスと、
前記複数の不揮発性メモリデバイスに接続された、メモリコントローラに接続するためのインターフェースデバイスとを備え、前記インターフェースデバイスが誤り訂正符号化(ECC)エンジンを有する、
複合半導体メモリデバイス。
【請求項２】
前記誤り訂正符号化(ECC)エンジンが、前記メモリコントローラから受け取ったデータを前記不揮発性メモリデバイスのいずれかに書き込む前に、前記受け取ったデータの誤り訂正符号化を行い、前記ECCエンジンが、前記不揮発性メモリデバイスのいずれかから読み出されたデータを前記メモリコントローラに送る前に、前記読み出されたデータの誤り訂正復号化をさらに行う、請求項1に記載の複合半導体メモリデバイス。
【請求項３】
前記インターフェースデバイスが、
前記ECCエンジンに接続されたバッファメモリと、
前記ECCエンジンと前記不揮発性メモリデバイス間に接続された第1のインターフェースと、
前記バッファメモリに接続された、前記メモリコントローラに接続するための第2のインターフェースと、
前記ECCエンジン、前記バッファメモリ、前記第1のインターフェース、および前記第2のインターフェースを制御するための制御信号生成器と
を備える、請求項2に記載の複合半導体メモリデバイス。
【請求項４】
前記第1のインターフェースを前記不揮発性メモリデバイスのそれぞれと接続するための並列バスをさらに備える、請求項3に記載の複合半導体メモリデバイス。
【請求項５】
前記第1のインターフェースが、第1の内部インターフェース回路および第2の内部インターフェース回路を備え、前記複合半導体メモリデバイスが、前記第1の内部インターフェース回路を前記不揮発性メモリデバイスの第1のサブセット内の各デバイスに接続するための第1の並列バスをさらに備え、前記複合半導体メモリデバイスが、前記第2の内部インターフェース回路を前記不揮発性メモリデバイスの第2のサブセット内の各デバイスに接続するための第2の並列バスをさらに備える、請求項3に記載の複合半導体メモリデバイス。
【請求項６】
前記複合半導体メモリデバイスが、前記第1のインターフェースと前記不揮発性メモリデバイスのそれぞれとの間に専用の接続部をさらに備える、請求項3に記載の複合半導体メモリデバイス。
【請求項７】
前記ECCエンジンが、第1のECCエンジンおよび第2のECCエンジンを備え、前記第1のECCエンジンおよび前記第2のECCが、並列に動作して、前記誤り訂正符号化および前記誤り訂正復号化を行う、請求項2に記載の複合半導体メモリデバイス。
【請求項８】
前記インターフェースデバイスが、
前記ECCエンジンに接続されたバッファメモリと、
前記ECCエンジンと前記不揮発性メモリデバイスとの間に接続された第1のインターフェースと、
前記バッファメモリに接続された、前記メモリコントローラに接続するための第2のインターフェースと、
前記第1のECCエンジン、前記第2のECCエンジン、前記バッファメモリ、前記第1のインターフェース、および前記第2のインターフェースを制御するための制御信号生成器と
を備える、請求項7に記載の複合半導体メモリデバイス。
【請求項９】
前記第1のインターフェースを前記不揮発性メモリデバイスのそれぞれと接続するための並列バスをさらに備える、請求項8に記載の複合半導体メモリデバイス。
【請求項１０】
前記第1のインターフェースが、第1の内部インターフェース回路および第2の内部インターフェース回路を備え、前記複合半導体メモリデバイスが、前記第1の内部インターフェース回路を前記不揮発性メモリデバイスの第1のサブセット内の各デバイスに接続するための第1の並列バスをさらに備え、前記複合半導体メモリデバイスが、前記第2の内部インターフェース回路を前記不揮発性メモリデバイスの第2のサブセット内の各デバイスに接続するための第2の並列バスをさらに備える、請求項8に記載の複合半導体メモリデバイス。
【請求項１１】
前記複合半導体メモリデバイスが、前記第1のインターフェースと前記不揮発性メモリデバイスのそれぞれとの間に専用の接続部をさらに備える、請求項8に記載の複合半導体メモリデバイス。
【請求項１２】
前記ECCエンジンが、第1のECCエンジンおよび第2のECCエンジンを備え、前記第1のECCエンジンが、前記メモリコントローラから受け取った書き込みデータを前記不揮発性メモリデバイスの第1のサブセット内のいずれかのデバイスに書き込む前に、この受け取った書き込みデータの誤り訂正符号化を行うとともに、前記不揮発性メモリデバイスの第1のサブセット内のいずれかのデバイスから受け取った読み出しデータを前記メモリコントローラに送る前に、この受け取った読み出しデータの誤り訂正復号化をさらに行い、前記第2のECCエンジンが、前記メモリコントローラから受け取った書き込みデータを前記不揮発性メモリデバイスの第2のサブセット内のいずれかのデバイスに書き込む前に、この受け取った書き込みデータの誤り訂正符号化を行うとともに、前記不揮発性メモリデバイスの第2のサブセット内のいずれかのデバイスから受け取った読み出しデータを前記メモリコントローラに送る前に、この受け取った読み出しデータの誤り訂正復号化をさらに行う、請求項2に記載の複合半導体メモリデバイス。
【請求項１３】
前記インターフェースデバイスが、
前記ECCエンジンに接続されたバッファメモリと、
前記ECCエンジンと前記不揮発性メモリデバイスとの間に接続された第1のインターフェースと、
前記バッファメモリに接続された、前記メモリコントローラに接続するための第2のインターフェースと、
前記第1のECCエンジン、前記第2のECCエンジン、前記バッファメモリ、前記第1のインターフェース、および前記第2のインターフェースを制御するための制御信号生成器と
を備える、請求項12に記載の複合半導体メモリデバイス。
【請求項１４】
前記第1のインターフェースを前記不揮発性メモリデバイスのそれぞれと接続するための並列バスをさらに備える、請求項13に記載の複合半導体メモリデバイス。
【請求項１５】
前記第1のインターフェースが、第1の内部インターフェース回路および第2の内部インターフェース回路を備え、前記複合半導体メモリデバイスが、前記第1の内部インターフェース回路を前記不揮発性メモリデバイスの前記第1のサブセット内の各デバイスに接続するための第1の並列バスをさらに備え、前記複合半導体メモリデバイスが、前記第2の内部インターフェース回路を前記不揮発性メモリデバイスの前記第2のサブセット内の各デバイスに接続するための第2の並列バスをさらに備える、請求項13に記載の複合半導体メモリデバイス。
【請求項１６】
前記複合半導体メモリデバイスが、前記第1のインターフェースと前記不揮発性メモリデバイスのそれぞれとの間に専用の接続部をさらに備える、請求項13に記載の複合半導体メモリデバイス。
【請求項１７】
前記バッファメモリが、前記第1のECCエンジンと前記第2のインターフェースとの間に接続された第1のメモリ格納部、および前記第2のECCエンジンと前記第2のインターフェースとの間に接続された第2のメモリ格納部を備える、請求項13に記載の複合半導体メモリデバイス。
【請求項１８】
前記メモリコントローラから受け取り、前記不揮発性メモリデバイスのうちの特定の1つに向けられたあるデータの誤り訂正符号化が、制御データを生成し、さらに前記インターフェースデバイスによって、前記あるデータおよび前記制御データが前記特定のメモリデバイスに書き込まれるようにする、請求項2に記載の複合半導体メモリデバイス。
【請求項１９】
前記制御データが、パリティビットを備える、請求項18に記載の複合半導体メモリデバイス。
【請求項２０】
前記不揮発性メモリデバイスのそれぞれが、各ページがデータフィールドをおよび予備のフィールドを有する複数のページを備え、前記インターフェースデバイスによって、前記あるデータが前記特定のメモリデバイスの特定のページの前記データフィールドに書き込まれるようにし、また前記制御データが前記特定のメモリデバイスの前記特定のページの前記予備のフィールドに書き込まれるようにする、請求項18に記載の複合半導体メモリデバイス。
【請求項２１】
前記メモリコントローラから受け取った前記あるデータが、メタデータを伴う、請求項20に記載の複合半導体メモリデバイス。
【請求項２２】
前記メタデータが、消去サイクル数、アドレス情報、および不良ブロック情報のうちの少なくとも1つを含む、請求項21に記載の複合半導体メモリデバイス。
【請求項２３】
前記インターフェースデバイスによって、前記メタデータが前記特定のメモリデバイスの前記特定のページの前記データフィールドに書き込まれるようにする、請求項21に記載の複合半導体メモリデバイス。
【請求項２４】
前記インターフェースデバイスによって、前記メタデータが前記特定のメモリデバイスの前記特定のページの前記予備のフィールドに書き込まれるようにする、請求項21に記載の複合半導体メモリデバイス。
【請求項２５】
前記メモリコントローラから受け取った前記あるデータが、前記あるデータのいずれかの部分に対して誤り訂正符号化を予め行ったことに起因する制御データを含まない、請求項18に記載の複合半導体メモリデバイス。
【請求項２６】
前記不揮発性メモリデバイスの特定の1つから読み出されたあるデータの誤り訂正復号化のステップが、
前記あるデータから制御データを生成するステップと、
前記あるデータに関連づけられた予め生成された制御データを読み出すステップと、
前記生成された制御データと前記予め生成された制御データとの間に不整合がある場合、前記あるデータを前記メモリコントローラに送信する前に前記あるデータを修正するステップと
を含む、請求項2に記載の複合半導体メモリデバイス。
【請求項２７】
前記特定のメモリデバイスが、各ページがデータフィールドおよび予備のフィールドを有する複数のページを備え、前記あるデータが、前記ページの特定の1つの前記データフィールド内にあり、前記あるデータに関連づけられた予め生成された制御データを読み出すステップが、前記特定のページの前記予備のフィールドから前記予め生成された制御データを読み出すステップを含む、請求項26に記載の複合半導体メモリデバイス。
【請求項２８】
前記不揮発性メモリデバイスの特定の1つからメタデータを読み出すステップおよび前記メタデータを前記メモリコントローラに送信するステップをさらに含む、請求項27に記載の複合半導体メモリデバイス。
【請求項２９】
前記メタデータが、消去サイクル数、アドレス情報、および不良ブロック情報のうちの少なくとも1つを含む、請求項28に記載の複合半導体メモリデバイス。
【請求項３０】
前記メタデータが、前記特定のページの前記データフィールド内にある、請求項28に記載の複合半導体メモリデバイス。
【請求項３１】
前記メタデータが、前記特定のページの前記予備のフィールド内にある、請求項28に記載の複合半導体メモリデバイス。
【請求項３２】
前記不揮発性メモリデバイスが、互いに積み重ねられている、請求項2に記載の複合半導体メモリデバイス。
【請求項３３】
前記インターフェースデバイスおよび前記不揮発性メモリデバイスが、基板上に互いに積み重ねられている、請求項2に記載の複合半導体メモリデバイス。
【請求項３４】
前記インターフェースデバイスと前記不揮発性メモリデバイスのそれぞれとの間に電気的な接続部をさらに備える、請求項33に記載の複合半導体メモリデバイス。
【請求項３５】
前記接続部が、前記基板を貫通して作製されている、請求項34に記載の複合半導体メモリデバイス。
【請求項３６】
前記不揮発性メモリデバイスの少なくとも1つが、複数の積み重ねられた不揮発性メモリデバイスを含むマルチチップパッケージを備える、請求項2に記載の複合半導体メモリデバイス。
【請求項３７】
前記不揮発性メモリデバイスが、フラッシュメモリデバイスである、請求項1に記載の複合半導体メモリデバイス。
【請求項３８】
前記不揮発性メモリデバイスが、相変化メモリデバイスである、請求項1に記載の複合半導体メモリデバイス。
【請求項３９】
前記ECCエンジンによって、前記複合半導体メモリデバイスが、前記メモリコントローラの視点から判断して、エラーなしの書き込みおよび読み出しを実行するようにする、請求項1に記載の複合半導体メモリデバイス。
【請求項４０】
メモリコントローラと、
前記メモリコントローラによって、書き込まれ、また読み出されるように構成された、内蔵の誤り訂正符号化(ECC)エンジンを含む、少なくとも1つの複合半導体メモリデバイスと
を備えるメモリシステム。
【請求項４１】
前記メモリコントローラが、制御信号を印加することによって無効にされるように構成された誤り制御符号化回路を備える、請求項40に記載のメモリシステム。
【請求項４２】
前記メモリコントローラに、誤り制御符号化回路がない、請求項40に記載のメモリシステム。
【請求項４３】
前記少なくとも1つの複合半導体メモリデバイスのうちの少なくとも1つが、
複数の不揮発性メモリデバイスと、
前記メモリコントローラと前記不揮発性メモリデバイスとの間でインターフェースするためのインターフェースデバイスとを備え、前記インターフェースデバイスが前記内蔵のECCエンジンを備える、請求項40に記載のメモリシステム。
【請求項４４】
前記内蔵のECCエンジンが、前記メモリコントローラから受け取ったデータを前記不揮発性メモリデバイスのいずれかに書き込む前に、この受け取ったデータの誤り訂正符号化を行い、前記内蔵のECCエンジンが、前記不揮発性メモリデバイスのいずれかから読み出されたデータを前記メモリコントローラに送る前に、この読み出されたデータの誤り訂正復号化をさらに行う、請求項43に記載のメモリシステム。
【請求項４５】
前記複数の不揮発性メモリデバイスおよび前記インターフェースデバイスが、基板上で互いに積み重ねられている、請求項43に記載のメモリシステム。
【請求項４６】
前記複数の不揮発性メモリデバイスが、フラッシュメモリデバイスである、請求項45に記載のメモリシステム。
【請求項４７】
前記メモリコントローラが、フラッシュコントローラである、請求項46に記載のメモリシステム。
【請求項４８】
前記少なくとも1つの複合半導体メモリデバイスが、複数の複合半導体メモリデバイスを備え、前記複数の複合半導体メモリデバイスのそれぞれが、前記メモリコントローラによって書き込まれ、および読み出されるように構成され、さらにそれぞれの内蔵ECCエンジンを有する、請求項40に記載のメモリシステム。
【請求項４９】
複数の不揮発性メモリデバイスを備える複合半導体メモリデバイスと、
前記複合半導体メモリデバイスに接続され、前記複合半導体メモリデバイスに読み出しおよび書き込みコマンドを発行して、データが、前記不揮発性メモリデバイスのそれぞれに書き込まれる、または前記不揮発性メモリデバイスのそれぞれから読み出されるようにするメモリコントローラとを備え、前記複合半導体メモリデバイスが、前記メモリコントローラの視点から、前記データのエラーなしの書き込みおよび読み出しを行う、メモリシステム。
【請求項５０】
前記メモリコントローラが、少なくとも2つのコマンドを発行して、前記それぞれのコマンドに関連するデータが、前記メモリコントローラを通って同時に流れるように構成された、請求項49に記載のメモリシステム。
【請求項５１】
前記複合半導体メモリデバイスが、
複数の不揮発性メモリデバイスと、
前記メモリコントローラと前記不揮発性メモリデバイスとの間でインターフェースするためのインターフェースデバイスとを備え、前記インターフェースデバイスがECCエンジンを備える、請求項50に記載のメモリシステム。
【請求項５２】
前記ECCエンジンが、前記メモリコントローラから受け取ったデータを前記不揮発性メモリデバイスのいずれかに書き込む前に、この受け取ったデータの誤り訂正符号化を行い、前記ECCエンジンが、前記不揮発性メモリデバイスのいずれかから読み出されたデータを前記メモリコントローラに送る前に、この読み出されたデータの誤り訂正復号化をさらに行う、請求項51に記載のメモリシステム。
【請求項５３】
前記少なくとも2つのコマンドが、(i)前記不揮発性メモリデバイスのうちの所与の第1の不揮発性メモリデバイスからデータ読み出し、または前記不揮発性メモリデバイスのうちの所与の第1の不揮発性メモリデバイスにデータを書き込む第1のコマンド、および(ii)前記不揮発性メモリデバイスのうちの前記所与の第1の不揮発性メモリデバイスとは異なる、前記不揮発性メモリデバイスのうちの所与の第2の不揮発性メモリデバイスからデータを読み出し、または前記不揮発性メモリデバイスのうちの所与の第2の不揮発性メモリデバイスにデータを書き込む第2のコマンドを含む、請求項51に記載のメモリシステム。
【請求項５４】
前記複数の不揮発性メモリデバイスおよび前記インターフェースデバイスが、基板上で互いに積み重ねられている、請求項51に記載のメモリシステム。
【請求項５５】
前記複数の不揮発性メモリデバイスが、フラッシュメモリデバイスである、請求項51に記載のメモリシステム。
【請求項５６】
前記メモリコントローラが、フラッシュコントローラである、請求項55に記載のメモリシステム。
【請求項５７】
前記メモリコントローラが、制御信号を印加することによって無効にされるように構成された誤り制御符号化回路を備える、請求項49に記載のメモリシステム。
【請求項５８】
前記メモリコントローラに、誤り訂正制御符号化回路がない、請求項49に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り訂正を有する複合半導体メモリデバイスに関するものである。
【背景技術】
【０００２】
民生用電子機器(デジタルオーディオ/ビデオプレーヤ、携帯電話、携帯ユニバーサルシリアルバス(USB)ドライブおよびソリッドステートドライブ(SSD))などのデータ記憶の要求が著しく増加している。この密度の要求は、フラッシュデバイスとして一般に知られているフラッシュメモリを組み込んだ不揮発性半導体メモリデバイスによって比較的低コストで満たすことができる。現在、主に2つのタイプのフラッシュメモリ、すなわち、NORフラッシュおよびNANDフラッシュがあり、これら2つのうち、NANDフラッシュは、殊のほか一般的になってきた。
【０００３】
しかし、フラッシュデバイスがより高密度になり、より低価格になるにつれ、提供することが期待される記憶量がさらに一層増大する。この期待は、今度は、これらのデバイスをさらに一層低コストでさらに一層高密度にする、さらなる圧力をかける。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「2G x 8 Bit / 4G x 8 Bit / 8G x 8 Bit NAND Flash Memory」
【非特許文献２】Robert Pierce、「Mr. NAND's Wild Ride: Warning-Surprises Ahead」、Denali Software Inc.、2009年
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明の一態様によれば、複数の不揮発性メモリデバイスと、この複数の不揮発性メモリデバイスに接続された、メモリコントローラに接続するためのインターフェースデバイスとを備える複合半導体メモリデバイスであって、インターフェースデバイスが誤り訂正符号化(ECC)エンジンを有する、複合半導体メモリデバイスが提供される。
【０００６】
本発明の別の態様によれば、メモリコントローラと、メモリコントローラによって、書き込まれ、また読み出されるように構成された、内蔵の誤り訂正符号化(ECC)エンジンを含む、少なくとも1つの複合半導体メモリデバイスとを備える、メモリシステムが提供される。
【０００７】
本発明の別の態様によれば、複数の不揮発性メモリデバイスを有する複合半導体メモリデバイスと、複合半導体メモリデバイスに読み出しおよび書き込みコマンドを発行して、不揮発性メモリデバイスのそれぞれにデータが書き込まれるか、または不揮発性メモリデバイスのそれぞれからデータが読み出されるようにする、少なくとも1つの複合半導体メモリデバイスに接続されたメモリコントローラとを備えるメモリシステムであって、複合半導体メモリデバイスが、メモリコントローラの視点から、データのエラーなしの書き込みおよび読み出しを実現する、メモリシステムが提供される。
【０００８】
本発明の他の態様および特徴は、添付の図面とともに本発明の具体的な実施形態の以下の説明を精査することによって当業者には明らかになるであろう。
ここで、本発明の実施形態は、付属の図を参照して、例示としてのみ、説明される。
【図面の簡単な説明】
【０００９】
【図１】非限定的な実施形態による、不揮発性メモリシステムを示すブロック図である。
【図２】非限定的な実施形態による、単一の複合半導体メモリデバイスを使用する不揮発性メモリシステムを示すブロック図である。
【図３】非限定的な実施形態による、複数の複合半導体メモリデバイスを使用する不揮発性メモリシステムを示すブロック図である。
【図４】非限定的な実施形態による、複数の複合半導体メモリデバイスを使用する不揮発性メモリシステムを示すブロック図である。
【図５】非限定的な実施形態による、複数の複合半導体メモリデバイスを使用する不揮発性メモリシステムを示すブロック図である。
【図６】非限定的な実施形態による、複合半導体メモリデバイスのある構成要素を示すブロック図である。
【図７Ａ】非限定的な実施形態による、複合半導体メモリデバイスの断面を示す図である。
【図７Ｂ】非限定的な実施形態による、複合半導体メモリデバイスの断面を示す図である。
【図８Ａ】非限定的な実施形態による、複合半導体メモリデバイスの断面を示す図である。
【図８Ｂ】非限定的な実施形態による、複合半導体メモリデバイスの断面を示す図である。
【図９】NANDフラッシュの機能ブロックを示すブロック図である。
【図１０】NANDフラッシュのセルアレイ構造を示すブロック図である。
【図１１】NANDフラッシュのブロック構造を示すブロック図である。
【図１２】NANDフラッシュのページ構造を示すブロック図である。
【図１３】NANDフラッシュにおいてページ単位のリード動作を示すブロック図である。
【図１４】NANDフラッシュにおいてページ単位のプログラム動作を示すブロック図である。
【図１５】NANDフラッシュにおけるブロック単位の消去動作を示すブロック図である。
【図１６】非限定的な実施形態による、複合半導体メモリデバイスの内部機能のアーキテクチャーを示すブロック図であり、複数の不揮発性半導体メモリデバイスがマルチドロップ法で相互に接続される。
【図１７】図16における複数の不揮発性半導体メモリデバイスへのマルチドロップ相互接続に関するより詳細を示すブロック図である。
【図１８】非限定的な実施形態による、複合半導体メモリデバイスの内部機能のアーキテクチャーを示すブロック図であり、複数の不揮発性半導体メモリデバイスが、専用のインターフェースチャンネルを使用して相互に接続される。
【図１９】非限定的な実施形態による、複合半導体メモリデバイスの内部機能のアーキテクチャーを示すブロック図であり、複数の不揮発性半導体メモリデバイスが、グループ単位でインターフェースチャンネルを使用して相互に接続される。
【図２０】非限定的な実施形態による、複合半導体メモリデバイスの内部構成を示すブロック図である。
【図２１】非限定的な実施形態による、複合半導体メモリデバイスの内部構成を示すブロック図である。
【図２２】非限定的な実施形態による、複合半導体メモリデバイスの内部構成を示すブロック図である。
【図２３】誤り訂正符号化処理を示すブロック図である。
【図２４】誤り訂正復号化処理を示すブロック図である。
【図２５】非限定的な実施形態による、インターフェースデバイスに書き込まれたデータと、インターフェースデバイスによって不揮発性メモリデバイスに書き込まれたデータとの差を強調する図である。
【図２６】非限定的な実施形態による、インターフェースデバイスに書き込まれたデータと、インターフェースデバイスによって不揮発性メモリデバイスに書き込まれたデータとの差を強調する図である。
【図２７】非限定的な実施形態による、メモリコントローラの機能ブロック図である。
【発明を実施するための形態】
【００１０】
図1は、非限定的な実施形態による、不揮発性メモリシステム100のブロック図を示す。不揮発性メモリシステム100は、通信リンク104を介してメインシステムまたはプロセッサ98と通信するためのメモリコントローラ102を備える。また、不揮発性メモリシステム100は、通信リンク108を介してメモリコントローラ102に接続される少なくとも1つの複合半導体メモリデバイス106を備える。メモリコントローラ102は、フラッシュメモリコントローラであってよい。
【００１１】
非限定的な実施形態において、図2に示すように不揮発性メモリシステム100内に単一の複合半導体メモリデバイス106があってよい。他の非限定的な実施形態において、図3、4および5に示すように不揮発性メモリシステム100内に複数の半導体メモリデバイス106があってよい。4つの半導体メモリデバイス106が示されているが、不揮発性メモリシステム100に含むことができる複合半導体デバイス106の数には特に制限がないことを理解されるべきである。
【００１２】
不揮発性メモリシステム100内に、複数の複合半導体デバイス106がある実施形態では、通信リンク108は様々な形式を呈することができる。具体的には、図3に示す非限定的な実施形態によると、通信リンク108は、共通のインターフェースチャンネル(例えばマルチドロップ並列バス)302を含むことができる。加えて、専用のチップイネーブル信号304を、様々な複合半導体メモリデバイス106に供給することができる。対応する専用のチップイネーブル信号304をアサートすることによって、個々の複合半導体メモリデバイス106を選択することができる。図4に示す非限定的な実施形態によると、通信リンク108は、メモリコントローラ102と複合半導体メモリデバイス106との間の複数の専用インターフェースチャンネル406を用いることができる。この場合、複合半導体メモリデバイス106のそれぞれは、それ自身の専用インターフェースチャンネル406を有する。図5に示す非限定的な実施形態によると、通信リンク108は、メモリコントローラ102と複合半導体メモリデバイス106との間の複数の専用インターフェースチャンネル506を用いることができる。この場合、共通インターフェースチャンネル506のそれぞれは、2つ以上の複合半導体メモリデバイス106のグループによって共有されている。
【００１３】
非限定的な実施形態において、および図6を参照して、複合半導体メモリデバイス106は、複数の不揮発性メモリデバイス602A、602B、602C、602Dおよびインターフェースデバイス604を備える。4つの不揮発性メモリデバイス602A、602B、602C、602Dが示されているが、インターフェースデバイス604に接続することができる不揮発性メモリデバイス602A、602B、602C、602Dの数には特に制限がないことを理解されるべきである。インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dとの間の通信は、図16〜19を参照して後述されるようにインターフェースチャンネルを使用して実現される。インターフェースデバイス604は誤り訂正符号化(ECC)エンジン606を含むことができる。ECCエンジン606によって、複合メモリデバイス106は、不揮発性メモリデバイス602A、602B、602C、602Dへのエラーなしの(メモリコントローラ102の視点から判断して)データ書き込み、および不揮発性メモリデバイス602A、602B、602C、602Dからのエラーなしの(メモリコントローラ102の視点から判断して)データ読み出しが可能となる。
【００１４】
図7A、7B、8Aおよび8Bを参照して、インターフェースデバイス604および不揮発性メモリデバイス602A、602B、602C、602Dは、マルチチップパッケージ(MCP)などの、単一つの筐体704に封入することができる。具体的には、不揮発性メモリデバイス602A、602B、602C、602Dは、基板706上に互いに積み重ねられる。図7Aおよび8Aにおいて、インターフェースデバイス604は、不揮発性メモリデバイス602Dの上部に配置されているとして示されているが、図7Bおよび8Bにおいては、インターフェースデバイス604が、不揮発性メモリデバイスのスタックの底部にあるとして示されている。本発明の範囲から逸脱せずに、さらに他の構成が可能である。また、複合半導体メモリデバイス106とその外部の他の構成要素との間の電気的接続を可能にするため、基板706に付着されたボンディングパッド708が示されている。インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dのそれぞれとの間に接続部も設けられている。また、図7Aおよび7Bの実施形態において、インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dのそれぞれとの間にワイヤボンド702が、基板706を介して構築されている。対照的に、図8Aおよび8Bの実施形態においては、直接接続802が、インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dのそれぞれとの間で構築されている。インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dのそれぞれとの間を相互接続するさらに他の方法が可能である。また、積み重ねられたダイ構成が示されているが、これは限定的なものとして解釈されるべきではない。
【００１５】
不揮発性メモリデバイス602A、602B、602C、602D
【００１６】
不揮発性メモリデバイス602A、602B、602C、602Dは、ほんのいくつかの非限定的な可能性をあげれば、NANDフラッシュメモリデバイス、NORフラッシュメモリデバイス、または相変化メモリデバイスであってよい。不揮発性メモリデバイス602A、602B、602C、602Dは、ほんのいくつかの非限定的な可能性をあげれば、非同期で、または同期して動作することができる。また、不揮発性メモリデバイス602A、602B、602C、602Dは、ほんのいくつかの非限定的な可能性をあげれば、シングルデータレート(SDR)デバイス、またはダブルデータレート(DDR)デバイスとして動作することができる。具体的な非限定的な実施形態において、不揮発性メモリデバイス602A、602B、602C、602Dは、Samsungの製品K9GAG08U0D、K9LBG08U1D、K9HCG08U5D用の(Samsung Electronicsから入手可能で、2G x 8 Bit / 4G x 8 Bit / 8G x 8 Bit NAND Flash Memoryの題名の文書に記載されているような)16Gb多値レベルセルNANDフラッシュ仕様書などの業界の仕様書に準拠することができ、この仕様書は、デバイスの動作およびタイミングの詳細を提供しており、参照により本明細書に組み込まれる。もちろん、不揮発性メモリデバイス602、602B、602C、602Dとして、入手可能な他のメーカーまたはモデルのフラッシュメモリを使用することができる。
【００１７】
図9は、NANDフラッシュメモリデバイスとして実施された不揮発性メモリデバイス(例えば、この例では、デバイス602A)の様々な機能要素を概念的に示す。
【００１８】
デバイス602Aは、以下のポートおよび信号を利用する。
・  入力/出力(I/O)ポート(I/O0〜I/O7):I/Oポートは、デバイス602Aに、およびデバイス602Aから、アドレス、コマンド、および入力/出力データを転送するために使用される。具体的には、デバイス602Aに書き込まれるデータは、I/OポートI/O0〜I/O7に到達し、メモリセルアレイ902に格納される前に1組のグローバルバッファ916に一時的に配置される。デバイス602Aから読み出されるデータは、メモリセルアレイ902から抽出され、I/OポートI/O0〜I/O7にリリースされる前にグローバルバッファ916の組に配置される。
・  ライトイネーブルポート(WE#):WE#ポートは、I/Oポートからのデータの取得を制御するために使用されるWE#信号を受け取る。
・  コマンドラッチイネーブルポート(CLE):CLEポートは、コマンドレジスタ910内への動作モードコマンドの読み込みを制御するために使用されるCLE信号を受け取る。CLE信号がアサートしている間に、コマンドは、WE#信号の立ち上がりエッジでI/Oポートからコマンドレジスタ910内へラッチされる。
・  アドレスラッチイネーブル(ALE)ポート:ALEポートは、内部アドレスレジスタ912内へのアドレス情報の読み込みを制御するために使用されるALE信号を受け取る。ALE信号がアサートしている間に、アドレス情報は、WE#信号の立ち上がりエッジでI/Oポートからアドレスレジスタ912内へラッチされる。
・  レディ/ビジー(R/B#)ポート:R/B#ポートはオープンドレインピンであって、出力R/B#信号は、デバイス602Aによって使用され、デバイス602Aの動作状態を示す。具体的には、R/B#信号は、デバイスが実行可能(ready)か使用中(busy)かを示す。デバイス602Aが使用状態(読み出し、プログラムおよび消去動作のような)にあるとき、デバイス602A内のR/B#回路914は、R/B#信号をアサート停止にする。動作完了の後、R/B#回路914は、R/B#信号を再アサートして、デバイス602Aが実行可能状態にあることを示す。
・  チップイネーブル(CE#)ポート:CE#ポートはCE#信号を受け取る。CE#信号がアサート停止され、デバイス602Aが実行可能状態にある場合(R/B#信号がアサートされている場合)、デバイス602Aは低電力待機モードに入る。しかし、デバイス602Aが、読み出し、プログラム、消去動作などの使用状態にある場合(R/B#信号がアサート停止されている場合)、CE#信号は無視される。換言すると、デバイス602Aが使用状態にある場合、デバイス602Aは、CE#信号がアサート停止されているかどうかに関わらず待機モードには入らない。
・  リードイネーブル(RE#)ポート:RE#ポートは、シリアルデータ出力を制御するために使用されるRE#信号を受け取る。具体的には、デバイス602によって出力されるデータは、RE#信号立ち下がりエッジ後に(すなわち、RE#信号がアサートされたときに)、I/OポートI/O0〜IO7に配置される。内部列アドレスカウンタもRE#信号の立ち下がりエッジでインクリメントされる(アドレス=アドレス+1)。
・  書き込み禁止(WP#)ポート:WP#ポートは、偶発的プログラミングまたは消去からデバイス602Aを保護するために使用されるWP#信号を受け取る。WP#信号がアサートされると、内部電圧レギュレータ(読み出し、プログラム、消去動作中に必要な高電圧および基準電圧を提供する高電圧発生器918)がリセットされる。WP#信号は、入力信号が無効の場合に、電源オン/オフシーケンス中にメモリセルアレイ902に保存されたデータを保護するために使用することができる。
【００１９】
図10は、n個の消去可能なブロック1002-0〜1002-(n-1)を含む、メモリセルアレイ902のセルアレイ構造を示す。各ブロックは、図11に示されるようなm個のプログラム可能なページ1102-0〜1102-(m-1)へ再分割される。次に、各ページは、それぞれ、図2に示すような(j+k)個の8ビットバイトへ再分割される。具体的には、それぞれのページの各バイトは、jバイトのデータ格納領域(データフィールド1202)およびkバイトのデータ格納領域(予備のフィールド1204)に分割される。それゆえ、メモリセルアレイ902のサイズの合計はnブロックであり、これは(n*m)ページに相当し、したがって(n*m*(j+k))バイトに等しい。
【００２０】
予備のフィールド1204は、エラー管理機能用(例えば、誤り制御符号化パリティビットを格納するため)に使用することができる。また、各ページおよび/またはブロックのメタデータ(例えば、消去サイクル数、アドレス情報、不良ブロック情報など)は、本実施例に従って、データフィールド1202または予備のフィールド1204に保存することができる。
【００２１】
NANDフラッシュメモリ内の予備のフィールド1204の必要なサイズは、ページサイズ、プロセス技術、1個のセル当たりのビット数(すなわち、1個のセル当たり1ビット、1個のセル当たり2ビット、1個のセル当たり3ビットなど)、およびビット誤り率の関数である。初期世代のNANDフラッシュメモリにおけるページサイズは、データフィールド1202に対しては512バイト、予備のフィールド1204に対しては16バイトであった。プロセス技術の発展とともに、ページサイズは大きくなり、これにより、より大きな記録密度の実現が可能となった。しかし、この増大によって、ビット誤り率がより高くなり、したがってより強力な誤り訂正符号化を使用する必要性が生じてきた。最近のページサイズの一例は、データフィールド1202用に8Kバイト、および予備のフィールド1204用に436バイトである。また、データフィールド1202および予備のフィールド1204のサイズは、フラッシュメモリのメーカー間で異なることがある。しかし、当業者は、本発明の実施形態が、データフィールド1202または予備のフィールド1204の絶対的または相対的なサイズに対していかなる特定の制約も課さないことを認識されるべきである。
【００２２】
図9を再び参照して、デバイス602Aのメモリコアは、メモリセルアレイ902に加えて、行デコーダ920、センスアンプ/ページバッファ904および列デコーダ922有している。行デコーダ920は、読み出し動作もしくはプログラム動作のいずれかに対してページを選ぶために、または消去動作に対してブロックを選ぶために使用される。
【００２３】
より具体的には、読み出し動作中に、メモリセルアレイ902内の選択されたページのデータは、センスアンプ/ページバッファ904でセンスされ、ラッチされる。次に、センスアンプ/ページバッファ904に保存されたデータは、列デコーダ922およびグローバルバッファ916を介して連続して読み出される。プログラム動作中に、グローバルバッファ916からの入力データは、列デコーダ922を介してセンスアンプ/ページバッファ904に連続して読み込まれる。次に、センスアンプ/ページバッファ904にラッチされた入力データが、メモリセルアレイ902の選択されたページへプログラムされる。
【００２４】
また、デバイス602Aは、ステータスレジスタ928を含み、このステータスレジスタ928は、読み出し、プログラムまたは消去動作の期間、デバイス602Aのステータスを追跡する。ステータスは、動作がパスしたかフェイルしたか、デバイス602Aが使用中か実行可能かを反映するためにコード化することができる。
【００２５】
デバイス602Aは、さらに制御回路930を含み、この制御回路930は、様々な動作モード中にデバイス602Aを制御する状態マシンを有する中央ユニットである。例えば、前述のコマンドレジスタ910は、グローバルバッファ916からの入力コマンドをデコードし、デコードされたコマンドは、制御回路930へ入力される。
【００２６】
加えて、デバイス602Aは、入力ポート、すなわちCE#、CLE、ALE、WE#、RE#、WP#ポート上の信号の現在の組合せに基づいて、現在の動作モード(コマンド入力、アドレス入力、データ入力、データ出力および状態出力など)を決定する制御バッファ932を含む。
【００２７】
さらに、デバイス602Aは、前述のアドレスレジスタ912を含み、このアドレスレジスタ912は、多重化された列アドレスおよび行アドレスを格納する。このアドレスはアドレスレジスタによって逆多重化され、行プリデコーダ934および列プリデコーダ936へ転送される。
【００２８】
動作に際して、読み出し、プログラムおよび消去動作は、コマンドによって推進される。読み出し動作およびプログラム動作は、ページ単位で実行され、消去動作は、ブロック単位で実行される。本例に対しては、j=4096(=4K)、k=218、m=128およびn=4096を仮定する。したがって、ページ、ブロック、プレーンおよびデバイスの容量は、以下のように与えられる。
【００２９】
1ページ=(4K+218)バイト。
【００３０】
1ブロック=128ページ=(4K+218)バイトx128=(512K+27.25K)バイト。
【００３１】
1プレーン=2048ブロック=(512K+27.25K)バイトx2048=(8G+436M)ビット。
【００３２】
1デバイス=2プレーン=(8G+436M)ビット*2=(16G+872M)ビット。
【００３３】
ここで、ページ単位(1ページ当たり(4K+218)バイト=4,314バイトを有する)で実行される読み出し動作を考える。この動作は、共通のI/Oピン(l/O0〜I/O7)を介して到達する読み出しコマンドをコマンドレジスタ910内にラッチし、これに続いて共通のI/Oピン(l/O0〜I/O7)を介して到達するアドレスをアドレスレジスタ912内にラッチした後に開始する。図13を参照して、特定されたページの4,314バイトのデータは、tR(データ転送時間)未満でセンスされ、センスアンプ/ページバッファ904に転送される。一旦4,314バイトのデータが、センスされ、メモリセルアレイ902内の選択されたページからセンスアンプ/ページバッファ904に転送されると、センスアンプ/ページバッファ904内のデータは、連続してデバイス602Aから読み出すことができる。
【００３４】
次に、やはりページ単位で実行されるプログラム動作を考える。この動作は、共通のI/Oピン(I/O0〜I/O7)を介して到達するプログラムコマンドをコマンドレジスタ910内にラッチし、これに続いて共通のI/Oピン(I/O0〜I/O7)を介して到達するアドレスをアドレスレジスタ912内にラッチし、これに続いて共通のI/Oピン(I/O0〜I/O7)を介して到達する4,314バイトのデータをセンスアンプ/ページバッファ904内にラッチした後に開始する。図14を参照して、これらの4,314バイトのデータは、tPROG(ページプログラム時間)未満でメモリセルアレイ902内の選択されたページにプログラムされる。
【００３５】
ここで、ブロック単位で実行される消去動作を考える。この動作は、共通のI/Oピン(I/O0〜I/O7)を介して到達する消去コマンドをコマンドレジスタ910内にラッチし、これに続いて共通のI/Oピン(I/O0〜I/O7)を介して到達するアドレスをアドレスレジスタ912内にラッチした後に開始する。図15を参照して、(512K+27.25K)バイトのデータは、tBERS(ブロック消去時間)未満で消去される。
【００３６】
デバイス602A、602B、602C、602Dとの通信
【００３７】
ここで、図16および17を参照すると、複合半導体メモリデバイス106は、インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dとの間の通信をサポートする共通の内部インターフェースチャンネル1602を使用することができる。共通のインターフェースチャンネル1602は、すべての信号CLE、ALE、WE#、RE#、WP#、R/B#および共通のI/OピンI/O0〜I/O7のためのマルチドロップ並列バスとして実装することができる。加えて、専用のチップイネーブル信号CE#_1604A、CE#_1604B、CE#_1604C、CE#_1604Dは、不揮発性メモリデバイス602A、602B、602C、602Dにそれぞれ供給され、読み出し、プログラムまたは消去動作を実行する個別の不揮発性メモリデバイスを選択することができる。例えば、CE#_1604Aをアサートすることによって、不揮発性半導体デバイス602Aを選択しアクセスすることができる。残りのデバイス(すなわち、デバイス602B、602C、602D)は、CE#_1604B、CE#_1604CおよびCE#_1604Dをアサート停止することによって選択されず、その結果メモリコントローラ102からのいかなる入力(コマンド、アドレス、またはデータ)も無視される。また、未選択のデバイスの出力信号は、ハイインピーダンス(すなわち、HiZ)状態である。
【００３８】
図18を参照して、複合半導体メモリデバイス106は、複数の専用のインターフェースチャンネル1802A、1802B、1802C、1802Dを使用することができ、これらは、それぞれ不揮発性メモリデバイス602A、602B、602C、602Dに接続されている。
【００３９】
図19を参照して、複合半導体メモリデバイス106は、インターフェースデバイス604と不揮発性メモリデバイス602A、602B、602C、602Dとの間の通信をサポートするために複数の専用のインターフェースチャンネル1902、1904を使用することができる。この場合、第1のグループの2つの不揮発性メモリデバイス(例えば、デバイス602Aおよび602B)が、共通のインターフェースチャンネル1902を共有し、第2のグループの2つの不揮発性メモリデバイス(例えば、デバイス602C、602D)が、共通のインターフェースチャンネル1904を共有する。しかし、グループの数(したがって、共通のインターフェースチャンネルの数)、ならびに共通のインターフェースチャンネルあたりの不揮発性メモリデバイスの数は、特に制限されないことを理解されるべきである。
【００４０】
図20は、非限定的な実施形態による、インターフェースデバイス604のある機能要素を示す。この非限定的な実施形態によると、インターフェースデバイス604は、外部インターフェースブロック2004を含むことができ、この外部インターフェースブロック2004は、前述した通信リンク108によってメモリコントローラ102と互いにインターフェースする。他の機能の中でも、外部インターフェースブロック2004は、メモリコントローラ102からの/メモリコントローラ102に対する制御信号、ならびにメモリコントローラ102からの/メモリコントローラ102への入力/出力データをバッファし/生成する。外部インターフェースブロック2004は、いくつかの非限定的な可能性をあげると、非同期式NANDフラッシュ、非同期式ダブルデータレート(DDR)、または同期式DDRとして特徴付けられる振る舞いまたは機能性を有することができる。また、インターフェースデバイス604は、内部インターフェースブロック2002を含むことができ、この内部インターフェースブロック2002は、前述したように、1つまたは複数のインターフェースチャンネル(すなわち、1602、または1802A、1802B、1802C、1802D、もしくは1902、1904)によって、不揮発性メモリデバイス602A、602B、602C、602Dと互いにインターフェースする。他の機能の中でも、内部インターフェースブロック2002は、不揮発性メモリデバイス602A、602B、602C、602Dからの/不揮発性メモリデバイス602A、602B、602C、602Dに対する制御信号、およびメモリコントローラ102からの/メモリコントローラ102への入力/出力データをバッファし/生成する。内部インターフェースブロック2002は、いくつかの非限定的な可能性をあげると、非同期式NANDフラッシュ、非同期式ダブルデータレート(DDR)、または同期式DDRとして特徴付けられる振る舞いまたは機能性を有することができる。
【００４１】
加えて、インターフェースデバイス604は、前述のECCエンジン606を含んでいる。ECCエンジン606は、メモリコントローラ102から受け取ったデータが不揮発性メモリデバイス602A、602B、602C、602Dのうちのいずれかに書き込まれる前に、この受け取ったデータの誤り訂正符号化を行うとともに、不揮発性メモリデバイス602A、602B、602C、602Dのうちのいずれかから読み出されたデータがメモリコントローラ102へ送られる前に、この読み出されたデータの誤り訂正復号化を行う。
【００４２】
加えて、インターフェースデバイス604は、バッファメモリ2006(スタティックランダムアクセスメモリ-SRAMなど)を有することができ、このバッファメモリ2006は、ECC符号化前のメモリコントローラ102からの入力データ、およびECC復号化後のメモリコントローラ102への出力データを一時的に格納する。
【００４３】
また、インターフェースデバイス604は、制御ブロックおよびタイミング制御信号発生器2008を備え、このタイミング制御信号発生器2008は、外部インターフェースブロック2004、内部インターフェースブロック2002、バッファメモリ2006、およびECCエンジン606を制御するために必要なタイミング制御信号を含む様々な制御信号を生成する。
【００４４】
図20の実施形態の変形形態を図21に示す。ここで、ECCエンジンは、誤り制御符号化および復号化を行う作業負荷を分担するために、並列して動作するように構成された第1のECCエンジン2102および第2のECCエンジン2104として実装されている。ECCエンジン606の全体の作業負荷を共同して実行するために実装することができるECCエンジン2102、2104の数は、特に制限されないことを認識されるべきである。
【００４５】
この非限定的な実施形態において、ECCエンジン2102、2104のそれぞれを、不揮発性メモリデバイス602A、602B、602C、602Dの対応する所定のサブセットに割り当てることは可能であるが、これは必要ではない。具体的には、必要が生じたときに、ECCエンジン2102、2104のそれぞれを、不揮発性メモリデバイス602A、602B、602C、602Dの異なるサブセットに動的に割り当てることが、共通インターフェースチャンネル1602を介してすべての不揮発性メモリデバイス602A、602B、602C、602Dへのアクセスを提供する内部インターフェースブロック2002のおかげで柔軟に行える。
【００４６】
図21の実施形態において、バッファメモリが、第1のECCエンジン2102に関連づけられた第1のメモリ格納部2106、および第2のECCエンジン2104に関連づけられた第2のメモリ格納部2108として実装されていることにも留意されたい。しかし、ECCエンジン2102、2104との間で共有される、単一のより大きなメモリ格納部を使用することも可能である。
【００４７】
図20の実施形態の第2の変形形態を図22に示す。ここで、ECCエンジンは、誤り制御符号化および復号化を行う作業負荷を分担するために、並列して動作するように構成された第1のECCエンジン2102および第2のECCエンジン2104としてやはり実装されている。また、図21の実施形態のように、バッファメモリは、第1のECCエンジン2102に関連づけられた第1のメモリ格納部2106、および第2のECCエンジン2104に関連づけられた第2のメモリ格納部2108として実装されていることに留意されたい。この場合もやはり、ECCエンジン606の全体の作業負荷を共同して実行するために実装することができるECCエンジン2102、2104の数は、特に制限されておらず、ECCエンジン2102、2104との間で共有される単一のより大きなメモリ格納部を使用することが可能であることを思い起こすこともできる。
【００４８】
この実施形態において、ECCエンジン2102、2104のそれぞれは、不揮発性メモリデバイス602A、602B、602C、602Dのそれぞれの所定のサブセットに割り当てられる。この割り当ては、内部インターフェースブロックの構成によって決定され、この内部インターフェースブロックは、第1の内部インターフェースブロック2202(共通インターフェースチャンネル1902によって不揮発性メモリデバイス602A、602Bと通信する)および第2の内部インターフェースブロック2204(共通インターフェースチャンネル1904によって不揮発性メモリデバイス602C、602Dと通信する)として実装されている。
【００４９】
ECCエンジン606
【００５０】
プログラム動作中に、ECCエンジン606は、メモリコントローラ102からの入力データに対応するパリティデータ(以降、パリティビット)などのECC制御データを生成し、この入力データをECCパリティデータと組み合わせ、次に、両方を不揮発性メモリデバイス602A、602B、602C、602Dの選択された1つにプログラムする。
【００５１】
より具体的には、図23を参照して、および単なる非限定的な例として、BCH ECCコードおよび4KBページサイズに値する入力データを使用するECC符号化処理を示す。ECCエンジン606は、パリティ発生器2304を備えている。パリティ発生器2304は、例えば、不揮発性メモリデバイス602A内のターゲットページ向けの4KBの入力データ2302を使用して、パリティデータ2306を生成する。パリティデータ2306は、入力データ2302のセグメント(例えば、4KBのうちの1KB)によって生成されてもよく、または入力データ2302すべてを使用して生成されてもよい(Robert Pierce、「Mr. NAND's Wild Ride: Warning-Surprises Ahead」、Denali Software Inc.、2009を参照されたく、本文献は、参照により本明細書に組み込まれる)。入力データ2302は、ターゲットページのデータフィールド1202へプログラムされ、パリティデータ2306は、ターゲットページの予備のフィールド1204へプログラムされる。
【００５２】
読み出し動作中に、ECCエンジン606は、ECCパリティデータを備えた出力データを不揮発性メモリデバイス602A、602B、602C、602Dのうちの選択された1つから読み出し、その次にECC動作を実行して、出力データに相当するECCパリティデータを生成する。その後、ECCエンジン606は、抽出され生成されたECCパリティデータを比較し、必要な場合、出力データをメモリコントローラ102に供給する前に出力データを訂正する。
【００５３】
より具体的には、図24を参照して、および単なる非限定的な例として、BCH ECCコードおよび4KBのページサイズに値する出力データを使用するECC復号化処理を示す。ECCエンジン606は、シンドローム発生器2406、Berlekampブロック2408、Chienブロック2410およびデータ訂正器2412を備えている。シンドローム発生器2406は、なんらかのエラーがあるかどうかを判定するために、例えば、不揮発性メモリデバイス602Aから読み出される4Kbの出力データ2402およびパリティデータ2404を使用してシンドロームを計算し生成する。シンドロームは、エラーロケータ多項式およびエラー数を決定するBerlekampブロック2408へ入力される。Chienブロック2410は、Berlekampブロック2408によってエラーロケータ多項式出力における(エラー位置である)多項式の根を見つける。最後に、出力データ2402は、Chienブロック2410の出力に基づいて実際になんらかのエラーがあると分かった場合、データ訂正器ブロック2412によって訂正される。したがって、データ訂正器ブロック2412の出力は、次にメモリコントローラ102に提供される訂正されたデータ2414である。
【００５４】
簡単にするため、上記の実施形態は、誤り訂正符号化処理および復号化処理された入力データおよび出力データが、全データフィールド1202を占有していると仮定した。メタデータを含むことが望まれる場合、このメタデータは、予備のフィールド1204に格納することができる。代替の実施形態において、メタデータは、データフィールド1202の一部を占有することができ、誤り訂正符号化/復号化処理された入力データ/出力データは、メタデータを含んでいないデータフィールド1202の部分を占有することができる。
【００５５】
上記したECC動作は、単純化されており、全く限定的でないことを認識されるべきである。当業者は、不揮発性メモリデバイスへデータを読み書きする状況において、誤り訂正符号化および復号化を実施することができ、また本発明の文脈の範囲内で使用することができる数多くの可能な方法があることを理解されるだろう。誤り訂正符号化(ECC)アルゴリズムの訂正強度(訂正することができるビットエラーの数)は、エラーを訂正するために使用されるECCアルゴリズムに依存する(これらのアルゴリズムは、ハードウェアまたはソフトウェアのいずれで実施されてもよい)。単純なハミングコード(Hamming code)は、シングルビットエラーを訂正することができる。リードソロモンコード(Reed-Solomon code)は、より多くのエラーを訂正することができ、幅広く使用されている。また、BCH(Bose、Ray-Chaudhuri、Hocquenghem)コードは、マルチビットエラーを訂正することができ、リードソロモンコードに対して効率が改善されるため普及している。さらに他の非限定的な例には、低密度パリティコード(LDPC)、ターボコード、ゴーレイコード(Golay code)、ならびに様々な連接(concatenated)、畳込み(convolutional)、およびブロックコードなどが存在する。
【００５６】
メモリコントローラ102の視点から、および図25における非限定的な実施形態を参照して、最終的なページフォーマット(すなわち、メモリコントローラ102と複合メモリデバイス106との間で交換されるデータのサイズ)は、予備のフィールド1204内のデータに関わらず、データフィールド1202内のデータのみを含んでいる可能性がある。すなわち、メモリコントローラ102は、予備のフィールド1204に対してデータの読み書きを行わない。むしろ、ECCエンジン606によって生成されたパリティビットで予備のフィールド1204を埋めるのは、インターフェースデバイス604である。そうした実施形態において、予備のフィールド1204は、ユーザ(実際にはメモリコントローラ102)に隠され、メモリコントローラ102は、誤り制御符号化または復号化に関わる必要はない。これによって、メモリコントローラ102は、ECCの機能性が無効にされた状態で、またはECCの機能性が全くない状態で機能することが可能となる。
【００５７】
上記した図25の実施形態において、メタデータは、メモリコントローラ102によって複合半導体デバイス106に提供されないか、またはそうしたメタデータがデータフィールド1202内にすでに埋め込まれていることが認識されるであろう。メタデータが、データフィールド1202以外で、別個に提供される実施形態も存在する。具体的には、図26に示す非限定的な実施形態において、最終的なページフォーマット(すなわち、メモリコントローラ102と複合メモリデバイス106との間で交換されるデータのサイズ)は、データフィールド1202内のデータだけでなく、予備のフィールド1204のサイズより小さな、小さい追加の予備のフィールド2602(例えば、限定されないが16または20バイト)も含んでよい。追加の予備のフィールド2602は、ページ用のメタデータ(例えば、消去サイクル数、アドレス情報、不良ブロック情報など)を格納するために使用することができる。本実施形態において、インターフェースデバイス604は、(i)ECCエンジン606によって生成されたパリティビットおよび(ii)予備のフィールド2602からのメタデータで予備のフィールド1204を埋める。そうした実施形態においては、追加の予備のフィールド2602のみがユーザに見え、予備のフィールド1204は、ユーザならびにメモリコントローラ102には隠されたままである。ここで、やはり、メモリコントローラ102は、誤り制御符号化または復号化に関わる必要はなく、したがってメモリコントローラ102は、ECCの機能性が無効にされた状態で、またはECCの機能性が全くない状態で機能することが可能となる。
【００５８】
メモリコントローラ102
【００５９】
ここで、図27を参照すると、非限定的な実施形態による、メモリコントローラ102の機能ブロック図が示されている。メモリコントローラ102は、クロック発振器および制御ブロック2704に供給されるベースクロック信号を提供する水晶2702を備える。クロック発振器および制御ブロック2704は、中央処理装置(CPU)2706、デバイス管理ブロック2710、および物理層トランシーバ2740(この例では、シリアルATAのPHY)に様々なクロック信号を供給する。CPU2706(マイクロプロセッサコントローラであってよい)は、共通バス2742によって他のサブシステムと通信する。加えて、ランダムアクセスメモリ(RAM)および読み出し専用メモリ(ROM)を収容するメモリ格納部2708を備えることができる。RAMは、バッファメモリとして使用され、ROMは、CPU2706によって実行可能なコンピュータ可読コード(命令)を格納する。
【００６０】
デバイス管理ブロック2710は、物理的なインターフェース2714、およびファイル/メモリ管理ブロック2712を含む。少なくとも1つの複合半導体メモリデバイス106は、物理的なインターフェース2714を介してアクセスされる。ファイル/メモリ管理ブロック2712は、論理アドレスと物理アドレスの変換を行い、ウェアレベリングアルゴリズム(wear-leveling algorithm)を適用する。
【００６１】
非限定的な一実施形態において、デバイス管理ブロック2710は、CPU2706からディスエーブル信号2718を受け取ると、制御可能に無効にすることができるECC(誤り訂正符号)エンジン2716を有する。別の非限定的な実施形態において、ECCエンジン2716は、ハードウェアにおいて無効にされる。さらに別の非限定的な実施形態において、デバイスメモリコントローラ102は、ECCエンジンまたは誤り訂正回路を含まない。ECCエンジン2716は、提供される場合、少なくとも1つの複合半導体メモリデバイス106からアクセスされるデータをチェックし訂正することができる。
【００６２】
複合半導体メモリデバイス106がメモリコントローラ102へなお一層多く接続されても、メモリコントローラ102のECC処理負荷は変わらないことを認識されるべきである。これは、ECCの要求事項が複合半導体メモリデバイス106間で分散されるためである。実際、不揮発性メモリデバイス602A、602B、602C、602Dのエラーなしの性能(メモリコントローラ102の視点から判断されるとして)がインターフェースデバイス604内のECCエンジン606によって保証されるので、メモリコントローラ102は、誤り訂正符号化または復号化のいずれをも実行することを要求されない。
【００６３】
さらに、インターフェースデバイス604は、並行して多重読み出しおよび/または書き込みをするために、ECCを並行して実行するように設計することができ、このことは、メモリアクセス時間が改善される可能性につながる。
【００６４】
加えて、各複合半導体メモリデバイス106は、それ自身のECCエンジン606を有しているので、メモリコントローラ102は、同時に1回の読み出しまたは書き込みに制約されない。むしろ、メモリコントローラ102は、これらのコマンドと関連するデータ(例えば、各コマンドに対する読み出しデータまたは書き込みデータ)が、メモリコントローラ102を通って同時に流れるようにする2つの(または、場合によってはより多くの)コマンドを発行することができる。
【００６５】
さらに、ECCエンジン606がインターフェースデバイス604内に位置するので、進化するECC要求事項は、インターフェースデバイス604の設計における進歩によって追尾されるが、その間、同じメモリコントローラ102を使用し続けることができることを認識されるべきである。メモリコントローラの同一在庫を、フラッシュメモリデバイスの複数の異なる世代にわたって再使用し続けていくことができる可能性があり、また数多くの製造業者およびプロセス技術にまたがって再使用することもできるのが有利である。さらに、予備のフィールド1204のサイズの変化(進化するECC要求事項によって推進されうる)は、メモリコントローラ102の設計に影響を及ぼさない。
【００６６】
加えて、ユーザの視点から予備のフィールド1204を隠すことによって、メモリコントローラ102を設計および使用する場合、開発者の労力が簡素化される。さらに、予備のフィールド2602がユーザによって使用される場合、予備のフィールド2602は、ページ管理のために必要なメタデータ(例えば、消去サイクル数、アドレス情報、不良ブロック情報など)を格納する程度に小さく、首尾一貫したサイズにしておくことができる。
【００６７】
上記した実施形態において、便宜上、図に示すようにデバイス要素および回路は、互いに接続されている。本発明の実際の応用において、要素、回路などは、互いに直接接続されてもよい。同様に、要素、回路などは、適切な動作に必要な、他の要素、回路などを介して互いに間接的に接続されてもよい。したがって、実際の構成では、回路要素と回路は、互いに直接または間接的に結合されもしくは接続される。
【００６８】
本発明の上記の実施形態は、単に例示であることが意図されている。変更形態、修正形態および変形形態は、もっぱら添付の特許請求の範囲によって定義される本発明の範囲から逸脱せずに、当業者によって特定の実施形態として達成されてもよい。
【符号の説明】
【００６９】
100  不揮発性メモリシステム
102  メモリコントローラ
104  通信リンク
106  複合半導体メモリデバイス
108  通信リンク
302  インターフェースチャンネル
406  インターフェースチャンネル
506  インターフェースチャンネル
602A  不揮発性メモリデバイス
602B  不揮発性メモリデバイス
602C  不揮発性メモリデバイス
602D  不揮発性メモリデバイス
604  インターフェースデバイス
606  ECCエンジン
702  ワイヤボンド
704  筐体
706  基板
708  ボンディングパッド
802  直接接続
1202  データフィールド
1204  予備のフィールド
1802A  インターフェースチャンネル
1802B  インターフェースチャンネル
1802C  インターフェースチャンネル
1802D  インターフェースチャンネル
1902  インターフェースチャンネル
1904  インターフェースチャンネル
2002  内部インターフェースブロック
2004  外部インターフェースブロック
2006  バッファメモリ
2008  制御ブロックおよびタイミング制御信号発生器
2102  ECCエンジン
2104  ECCエンジン
2106  メモリ格納部
2108  メモリ格納部
2202  内部インターフェースブロック
2204  内部インターフェースブロック
2302  入力データ
2304  パリティ発生器
2306  パリティデータ
2402  出力データ
2404  パリティデータ
2412  データ訂正器ブロック
2414  データ
2602  予備のフィールド
2706  CPU
2710  デバイス管理ブロック
2712  ファイルならびにメモリ管理のブロック
2716  ECCエンジン
2718  ディスエーブル信号
【図１】
2013522779.tif 000003
【図２】
2013522779.tif 000004
【図３】
2013522779.tif 000005
【図４】
2013522779.tif 000006
【図５】
2013522779.tif 000007
【図６】
2013522779.tif 000008
【図７Ａ】
2013522779.tif 000009
【図７Ｂ】
2013522779.tif 000010
【図８Ａ】
2013522779.tif 000011
【図８Ｂ】
2013522779.tif 000012
【図９】
2013522779.tif 000013
【図１０】
2013522779.tif 000014
【図１１】
2013522779.tif 000015
【図１２】
2013522779.tif 000016
【図１３】
2013522779.tif 000017
【図１４】
2013522779.tif 000018
【図１５】
2013522779.tif 000019
【図１６】
2013522779.tif 000020
【図１７】
2013522779.tif 000021
【図１８】
2013522779.tif 000022
【図１９】
2013522779.tif 000023
【図２０】
2013522779.tif 000024
【図２１】
2013522779.tif 000025
【図２２】
2013522779.tif 000026
【図２３】
2013522779.tif 000027
【図２４】
2013522779.tif 000028
【図２５】
2013522779.tif 000029
【図２６】
2013522779.tif 000030
【図２７】
2013522779.tif 000031
【国際調査報告】
2013522779.tif 000032
2013522779.tif 000033