(57)【要約】【課題】ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制し、信頼性を向上させる。【解決手段】実施形態に係わるＮＡＮＤフラッシュメモリコントローラは、Ｎビット（Ｎは複数）のデータにＭビット（Ｍは複数）を付加することにより第１の書き込みデータを生成するエンコード部３ａ、及び、第１の読み出しデータのエラー訂正を行うことによりＮビットのデータを再生するデコード部３ｂを備えるエラー訂正回路３と、第１の書き込みデータを圧縮した第２の書き込みデータを生成する圧縮器４ａ、及び、第２の読み出しデータを伸長した第１の読み出しデータを生成する伸長器４ｂを備えるデータ圧縮／伸長器４とを有する。【選択図】図１
2014186614.tif 000002
【特許請求の範囲】
【請求項１】
Ｎビット（Ｎは複数）のデータにＭビット（Ｍは複数）を付加することにより第１の書き込みデータを生成するエンコード部、及び、第１の読み出しデータのエラー訂正を行うことにより前記Ｎビットのデータを再生するデコード部を備えるエラー訂正回路と、
前記第１の書き込みデータを圧縮した第２の書き込みデータを生成する圧縮器、及び、第２の読み出しデータを伸長した前記第１の読み出しデータを生成する伸長器を備えるデータ圧縮／伸長器と、
ホストからのデータ書き込みの指示により、前記第２の書き込みデータをＮＡＮＤフラッシュメモリへ送る動作を制御し、かつ、前記ホストからのデータ読み出しの指示により、前記第２の読み出しデータを前記ＮＡＮＤフラッシュメモリから受ける動作を制御する制御部とを具備し、
前記第２の書き込みデータは、前記伸長器によりデータ伸長処理を行うと前記第１の書き込みデータとはならない
ことを特徴とするＮＡＮＤフラッシュメモリコントローラ。
【請求項２】
前記データ圧縮／伸長器をバイパスするか否かを決めるフラグを記憶する記憶部をさらに具備し、
前記フラグが前記データ圧縮／伸長器をバイパスすることを示しているとき、
前記制御部は、前記データ書き込みの指示により、前記第１の書き込みデータを前記ＮＡＮＤフラッシュメモリへ送る動作を制御し、かつ、前記データ読み出しの指示により、前記第１の読み出しデータを前記ＮＡＮＤフラッシュメモリから受ける動作を制御する
請求項１に記載のＮＡＮＤフラッシュメモリコントローラ。
【請求項３】
前記フラグは、前記ＮＡＮＤフラッシュメモリ内の複数のブロックの各々に対して設けられ、
前記制御部は、前記複数のブロックのうち、前記フラグが前記データ圧縮／伸長器をバイパスすることを示しているブロック内のデータを、前記複数のブロックのうち、前記フラグが前記データ圧縮／伸長器をバイパスすることを示していないブロック内へ移動させる
請求項２に記載のＮＡＮＤフラッシュメモリコントローラ。
【請求項４】
前記データ圧縮／伸長器の複数のモードのうちの１つを選択するモード選択データを記憶する記憶部をさらに具備し、
前記データ圧縮／伸長器は、前記複数のモードに対応して、前記第１の書き込みデータの圧縮率が異なる複数の圧縮器、前記第２の読み出しデータの伸長率が異なる複数の伸長器、並びに、前記複数の圧縮器のうちの１つ及び前記複数の伸長器のうちの１つを選択する切り替え回路を備える
請求項１に記載のＮＡＮＤフラッシュメモリコントローラ。
【請求項５】
前記モード選択データは、前記ＮＡＮＤフラッシュメモリ内の複数のブロックの各々に対して設けられ、
前記制御部は、前記複数のブロックの各々の書き込み／消去回数の増加に応じて、前記第１の書き込みデータの圧縮率が小さくなる方向、又は、前記第２の読み出しデータの伸長率が小さくなる方向に、前記複数のモードを順次切り替える
請求項４に記載のＮＡＮＤフラッシュメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、ＮＡＮＤフラッシュメモリコントローラに関する。
【背景技術】
【０００２】
近年、ＮＡＮＤフラッシュメモリは、微細化の進行により、高いエラー訂正能力を持つエラー訂正回路（ＥＣＣ）を備えることが不可欠となっている。また、エラー訂正回路のエラー訂正能力は、メモリセルの経年劣化によるエラーの増加を考慮して決定される。即ち、ＮＡＮＤフラッシュメモリの寿命に近い後期においても、エラーを確実に訂正できるだけのエラー訂正能力が必要とされる。
【０００３】
これに対し、ＮＡＮＤフラッシュメモリの使用を開始した直後の初期においては、メモリセルの経年劣化によるエラーは、ほとんどないため、エラー訂正回路のエラー訂正能力が最大限に使用されることはない。しかし、このような場合においても、書き込み／読み出し動作において、エラー訂正回路は、最大限のエラー訂正を可能にするためのエンコード／デコードを行う。
【０００４】
このように、ＮＡＮＤフラッシュメモリの初期においては、エラー訂正回路の能力が十分に発揮されていない。一方、ＮＡＮＤフラッシュメモリは、メモリセルに対して書き込みデータの上書きができないという特徴を有するため、書き込みの度に、メモリセルが劣化していくという課題を有する。従って、この劣化を抑えるためには、書き込みデータのビット数を減らすことが有効である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１４６２２６号公報
【特許文献２】特開２００７−９４６３９号公報
【特許文献３】特開２００８−１５２３３９号公報
【特許文献４】特表２００６−５２４８５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制し、信頼性を向上させることが可能な技術を提案する。
【課題を解決するための手段】
【０００７】
実施形態によれば、ＮＡＮＤフラッシュメモリコントローラは、Ｎビット（Ｎは複数）のデータにＭビット（Ｍは複数）を付加することにより第１の書き込みデータを生成するエンコード部、及び、第１の読み出しデータのエラー訂正を行うことにより前記Ｎビットのデータを再生するデコード部を備えるエラー訂正回路と、前記第１の書き込みデータを圧縮した第２の書き込みデータを生成する圧縮器、及び、第２の読み出しデータを伸長した前記第１の読み出しデータを生成する伸長器を備えるデータ圧縮／伸長器と、ホストからのデータ書き込みの指示により、前記第２の書き込みデータをＮＡＮＤフラッシュメモリへ送る動作を制御し、かつ、前記ホストからのデータ読み出しの指示により、前記第２の読み出しデータを前記ＮＡＮＤフラッシュメモリから受ける動作を制御する制御部とを備える。
【図面の簡単な説明】
【０００８】
【図１】ＮＡＮＤフラッシュメモリコントローラを示す図。
【図２】ルックアップテーブルを示す図。
【図３】データ圧縮／伸長器を示す図。
【図４】書き込みフローを示す図。
【図５】読み出しフローを示す図。
【図６】エラー訂正回路のエラー訂正能力とエラービット数との関係を示す図。
【図７】ＮＡＮＤフラッシュメモリコントローラを示す図。
【図８】ＮＡＮＤフラッシュメモリコントローラを示す図。
【図９】書き込みフローを示す図。
【図１０】読み出しフローを示す図。
【図１１】ＮＡＮＤフラッシュメモリコントローラの実装例を示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施例を説明する。
【００１０】
［概要］  
以下の実施例では、ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制し、信頼性を向上させることが可能な技術を提案する。
【００１１】
ＮＡＮＤフラッシュメモリの使用を開始した直後の初期においては、エラー訂正回路の能力が十分に発揮されていない。一方、ＮＡＮＤフラッシュメモリにおいて、メモリセルの経年劣化を抑えるためには、書き込みデータのビット数を減らすことが有効である。
【００１２】
そこで、ＮＡＮＤフラッシュメモリコントローラ内に、書き込みデータのビット数を減らすためのデータ圧縮器／データ伸長器を付加する。これにより、ＮＡＮＤフラッシュメモリのメモリセルの経年劣化を抑制し、信頼性の向上を図る。
【００１３】
一方、書き込みデータのビット数の削減を行うと、ＮＡＮＤフラッシュメモリに格納されるデータは、有効データが欠落した少ないビット数となることを意味する。従って、読み出し時に、データ伸張器により復元されたデータは、エラーを有することになる。
【００１４】
以下の実施例では、このエラーをエラー訂正回路により訂正する。これは、特に、エラー訂正回路の能力が十分に発揮されないＮＡＮＤフラッシュメモリの初期において、非常に有効な技術である。即ち、信頼性の向上のために、書き込みデータのビット数の削減を行ったデメリットを、十分なエラー訂正能力を持ちながらそれを十分に発揮していなかったエラー訂正回路により、解消することができる。
【００１５】
尚、ＮＡＮＤフラッシュメモリの寿命に近い後期においては、メモリセルの経年劣化によるエラーが増加することから、データ圧縮器／データ伸長器をバイパスし、書き込みデータのビット数の削減を行わない処理も可能である。
【００１６】
［実施例］  
図１は、ＮＡＮＤフラッシュメモリコントローラを示している。
【００１７】
ＮＡＮＤフラッシュメモリコントローラ１０は、ＣＰＵ（制御部）１、内部バス２、エラー訂正回路（ＥＣＣ）３、データ圧縮／伸長器４、ホストインターフェイスモジュール（ＨＩＭ）５、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）６、及び、ルックアップテーブル（記憶部）７を備える。
【００１８】
エラー訂正回路３は、例えば、Ｎビット（Ｎは複数）のデータにＭビット（Ｍは複数）を付加することにより符号化（エンコード）処理された第１の書き込みデータＷ１を生成するエンコード部３ａ、及び、第１の読み出しデータＲ１のエラー訂正を行うことによりＮビットのデータを再生するデコード部３ｂを備える。
【００１９】
データ圧縮／伸長器４は、第１の書き込みデータＷ１のビット数を減らした（圧縮した）第２の書き込みデータＷ２を生成する圧縮器４ａ、及び、第２の読み出しデータＲ２のビット数を増やした（伸長した）第１の読み出しデータＲ１を生成する伸長器４ｂを備える。第２の書き込みデータＷ２は、ＮＡＮＤフラッシュメモリ１２へ書き込まれ、第２の読み出しデータＲ２は、ＮＡＮＤフラッシュメモリ１２から読み出される。
【００２０】
圧縮器４ａは、準可逆圧縮器である。準可逆圧縮器とは、圧縮したデータを、伸長器（復元器）により１００％復元できない圧縮器のことである。これに対し、可逆圧縮器とは、圧縮したデータを、伸長器（復元器）により１００％復元できる圧縮器のことである。以下、同じ。
【００２１】
準可逆圧縮器は、可逆圧縮器に比べ、同一の圧縮率を仮定したときに、回路規模が小さくなるという利点がある。また、準可逆圧縮器は、可逆圧縮器に比べ、同一の回路規模を仮定したときに、圧縮率が高くなるという利点がある。そして、準可逆圧縮器のデメリットである１００％の復元が不可能である点に関しては、後述するように、エラー訂正回路３により補う。
【００２２】
ホストインターフェイスモジュール５は、ホスト１１に対するインターフェイスとして機能し、例えば、ＵＳＢ（Universal serial bus）、ＳＡＴＡ（Serial Advanced Technology Attachment）などを使用可能である。ＮＡＮＤフラッシュメモリインターフェイス６は、ＮＡＮＤフラッシュメモリ１３に対するインターフェイスとして機能する。
【００２３】
ルックアップテーブル７は、例えば、ＮＡＮＤフラッシュメモリ内の複数のブロックの各々の書き込み／消去回数（経年劣化）を記憶する。
【００２４】
また、図２に示すように、ルックアップテーブル７は、ＮＡＮＤフラッシュメモリ内の複数のブロックＢＫ０，…ＢＫｎの各々について、データ圧縮／伸長器４のモードを選択するモード選択データModeや、データ圧縮／伸長器４のバイパス（使用／不使用）を決めるフラグBypass flagを記憶してもよい。
【００２５】
図２の例では、データ圧縮／伸長器４のモードを選択するモード選択データModeは、２ビットである。この場合、例えば、図３に示すように、データ圧縮／伸長器４のデータの圧縮率に応じて、３つのモードを設定することができる。
【００２６】
第１のモードは、データの圧縮率が最も高いモードである。このモードが選択されたときは、図３の切り替え回路４ｃ，４ｄにより、データ圧縮／伸長器４内の準可逆圧縮器４ａ-large及び伸長器４ｂ-largeが選択される。例えば、図２のルックアップテーブル内のモード選択データModeが００のとき、第１のモードが選択される。
【００２７】
第２のモードは、データの圧縮率が中間のモードである。このモードが選択されたときは、図３の切り替え回路４ｃ，４ｄにより、データ圧縮／伸長器４内の準可逆圧縮器４ａ-middle及び伸長器４ｂ-middleが選択される。例えば、図２のルックアップテーブル内のモード選択データModeが０１のとき、第２のモードが選択される。
【００２８】
第３のモードは、データの圧縮率が最も低いモードである。このモードが選択されたときは、図３の切り替え回路４ｃ，４ｄにより、データ圧縮／伸長器４内の準可逆圧縮器４ａ-small及び伸長器４ｂ-smallが選択される。例えば、図２のルックアップテーブル内のモード選択データModeが１０のとき、第３のモードが選択される。
【００２９】
また、これら複数のモードの切り替えは、ＮＡＮＤフラッシュメモリ１２内の複数のブロックの各々の書き込み／消去回数の増加に応じて、第１の書き込みデータＷ１の圧縮率が小さくなる方向、又は、第２の読み出しデータＲ２の伸長率が小さくなる方向に、それぞれ行うのが望ましい。すなわち、ＮＡＮＤフラッシュメモリの使用を開始した直後の初期においては、準可逆圧縮器４ａ-large及び伸長器４ｂ-largeを選択し、ＮＡＮＤフラッシュメモリの経年劣化が進むと共に準可逆圧縮器４ａ-small及び伸長器４ｂ-smallを選択するように制御するのが望ましい。
【００３０】
但し、第１の書き込みデータＷ１の圧縮率は、(Bitw1-Bitw2)/Bitw1で表され、第２の読み出しデータＲ２の伸長率は、(Bitr1-Bitr2)/Bitr1で表されるものとする。Bitw1は、第１の書き込みデータのビット数であり、Bitw2は、第２の書き込みデータのビット数である。Bitr1は、第１の読み出しデータのビット数であり、Bitr2は、第２の読み出しデータのビット数である。
【００３１】
また、図２の例では、フラグBypass flagが０のとき、データ圧縮／伸長器４を使用したデータ圧縮／伸長が行われ、フラグBypass flagが１のとき、データ圧縮／伸長器４を使用したデータ圧縮／伸長が行われない（バイパス）。
【００３２】
例えば、ＮＡＮＤフラッシュメモリ１２内の各ブロックの書き込み／消去回数（経年劣化）の増加に応じて、第１のモード→第２のモード→第３のモード→バイパスという順序で、モードを切り替えることにより、エラー訂正回路３の能力を超えない範囲で、ＮＡＮＤフラッシュメモリ１２内の各ブロックの書き込み／消去回数の増加を抑制することができる。結果として、ＮＡＮＤフラッシュメモリの信頼性を向上できる。
【００３３】
尚、ＮＡＮＤフラッシュメモリ１２内の複数のブロックのうち、フラグBypass flagがデータ圧縮／伸長器４をバイパスすることを示しているブロックについては、経年劣化が著しいと判断することができる。従って、このようなブロックは、近い将来、不良ブロックになる可能性が高い。
【００３４】
そこで、ＮＡＮＤフラッシュメモリ１２のブロックの不良化を防ぐため、フラグBypass flagがデータ圧縮／伸長器４をバイパスすることを示しているブロック内のデータを、フラグBypass flagがデータ圧縮／伸長器４をバイパスすることを示していないブロック内へ移動させることが望ましい。
【００３５】
ところで、ＣＰＵ１は、ホスト１１からのデータ書き込みの指示により、第２の書き込みデータをＮＡＮＤフラッシュメモリ１２へ送る動作を制御し、かつ、ホスト１１からのデータ読み出しの指示により、第２の読み出しデータをＮＡＮＤフラッシュメモリ１２から受ける動作を制御する。
【００３６】
ＣＰＵ１による動作制御の例を説明する。
【００３７】
図４は、ホストからデータ書き込みの指示があったときのフローを示している。
【００３８】
まず、書き込みデータは、ホストインターフェイスモジュール（ＨＩＭ）を経由して、エラー訂正回路（ＥＣＣ）内のエンコード部で、エンコード処理される（ステップＳＴ１〜ＳＴ２）。
【００３９】
次に、ルックアップテーブルを参照し、データ圧縮器内において準可逆圧縮を行うか否かを決める（ステップＳＴ３）。
【００４０】
準可逆圧縮を行わないとき、即ち、フラグがデータ圧縮／伸長器をバイパスすることを示しているとき、エンコード処理された書き込みデータは、準可逆圧縮されずに、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）を経由して、ＮＡＮＤフラッシュメモリへ転送される（ステップＳＴ５）。
【００４１】
これに対し、準可逆圧縮を行うとき、即ち、フラグがデータ圧縮／伸長器をバイパスしないことを示しているとき、エンコード処理された書き込みデータは、準可逆圧縮された後に、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）を経由して、ＮＡＮＤフラッシュメモリへ転送される（ステップＳＴ４〜ＳＴ５）。
【００４２】
ここで、準可逆圧縮のモードについては、ルックアップテーブルを参照することにより決定される。
【００４３】
図５は、ホストからデータ読み出しの指示があったときのフローを示している。
【００４４】
まず、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）からの読み出しデータについて、ルックアップテーブルを参照し、データ伸長器内においてデータ伸長を行うか否かを決める（ステップＳＴ１１〜ＳＴ１２）。
【００４５】
データ伸長を行わないとき、即ち、フラグがデータ圧縮／伸長器をバイパスすることを示しているとき、読み出しデータは、伸長されずに、エラー訂正回路（ＥＣＣ）へ転送される（ステップＳＴ１４）。読み出しデータは、エラー訂正回路内のデコード部で、デコード処理された後に、ホストインターフェイスモジュールを経由して、ホストへ転送される（ステップＳＴ１５）。
【００４６】
これに対し、データ伸長を行うとき、即ち、フラグがデータ圧縮／伸長器をバイパスしないことを示しているとき、読み出しデータは、伸長された後に、エラー訂正回路へ転送される（ステップＳＴ１３〜ＳＴ１４）。また、伸長された読み出しデータは、エラー訂正回路内のデコード部で、デコード処理された後に、ホストインターフェイスモジュールを経由して、ホストへ転送される（ステップＳＴ１５）。ここで、伸長された読み出しデータは、エラーを含んだ読み出しデータとなっている。すなわち、ＮＡＮＤフラッシュメモリから読み出されている読み出しデータは準可逆圧縮されたデータであるため、伸長処理を行っても１００％のデータに伸長されない。したがって、伸長処理されたデータは、準可逆圧縮される前のデータと一致しない。しかし、エラー訂正回路内のデコード部において、エラーを含んだ読み出しデータについてエラー訂正を行ったデコード処理を実行することが可能なため、エラーの無い読み出しデータをホストへ転送することが可能になる。
【００４７】
ここで、データ伸長のモードについては、ルックアップテーブルを参照することにより決定される。
【００４８】
図６は、エラー訂正回路の訂正可能な最大ビット数と準可逆圧縮によるエラービット数との関係を示している。
【００４９】
同図において、Bit-maxは、エラー訂正回路のエラー訂正可能な最大ビット数であり、Bit-lossは、準可逆圧縮によるエラービット数であり、Bit-errorは、ＮＡＮＤフラッシュメモリの経年劣化によるエラービット数であり、Bit-surplusは、Bit-maxからBit-error及びBit-lossを差し引いた余剰ビット数である。
【００５０】
同図の（ａ）に示すように、実施例では、Bit-lossが新たに追加されているため、初期状態から経年劣化状態にかけて、エラー訂正回路が効率よく使用されている。特に、初期状態では、Bit-lossとBit-errorとにより、エラービット数の合計が増えるが、このエラービット数の合計は、エラー訂正回路の最大のエラー訂正能力、即ち、Bit-maxを超えるものではない。
【００５１】
従って、Bit-lossの追加によるデメリットはなく、逆に、エラー訂正回路の能力を初期状態から有効に使えるというメリットが発生する。
【００５２】
ここで、経年劣化状態（Ｔ）において、Bit-lossとBit-errorの合計が所定の閾値（Ｑ）を超えたときは、同図に示すように、バイパス処理により、その後のBit-lossをなくせば、Bit-lossとBit-errorの合計がエラー訂正回路の最大のエラー訂正能力、即ち、Bit-maxを超えることはない。
【００５３】
これに対し、同図の（ｂ）に示すように、比較例では、初期状態において、Bit-lossがないため、Bit-surplusが非常に多くなっている。即ち、比較例では、初期状態から経年劣化状態にかけて、エラー訂正回路が効率よく使用されていない。
【００５４】
尚、実施例において、Bit-lossとBit-errorの合計が所定の閾値を超えたときは、例えば、図２のルックアップテーブルのフラグBypass flagを１にセットする。
【００５５】
以上、説明したように、実施例によれば、ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制し、信頼性を向上させることができる。
【００５６】
［変形例］  
図７は、図１のＮＡＮＤフラッシュメモリコントローラの第１の変形例を示している。
【００５７】
この変形例の特徴は、図１と比べると、ＮＡＮＤフラッシュメモリコントローラ１０が、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）８をさらに備えている点にある。その他の点については、実施例と同じであるため、詳細な説明を省略する。
【００５８】
ダイレクトメモリアクセスコントローラ８は、ホスト１１からＮＡＮＤフラッシュメモリ１２への書き込みデータの転送、並びに、ＮＡＮＤフラッシュメモリ１２からホスト１１への読み出しデータの転送を、直接、行うことを可能にする。この場合、書き込みデータ又は読み出しデータをバースト転送することにより、データ転送の高速化を図ることができる。
【００５９】
尚、バースト転送とは、アドレス指定などの一部の処理を省略することにより、連続データを高速転送する手法のことである。
【００６０】
図８は、図１のＮＡＮＤフラッシュメモリコントローラの第２の変形例を示している。
【００６１】
この変形例の特徴は、図１と比べると、ＮＡＮＤフラッシュメモリコントローラ１０が、データ圧縮／伸長器９をさらに備えている点にある。その他の点については、実施例と同じであるため、詳細な説明を省略する。
【００６２】
データ圧縮／伸長器９は、可逆圧縮器９ａと伸長器９ｂとを備える。データ圧縮／伸長器９は、ホスト１１からの書き込みデータのビット数を、予め、データ圧縮により低減しておくことを目的としているため、エラー訂正回路３とホストインターフェイスモジュール５との間に接続される。
【００６３】
即ち、データ圧縮／伸長器９の対象となる書き込みデータは、エラー訂正回路３によるエンコード処理前のデータであるため、データ復元に関しては、１００％の復元率が要求される。従って、圧縮器９ａは、準可逆圧縮器ではなく、可逆圧縮器である必要がある。
【００６４】
図８のＣＰＵ１による動作制御の例を説明する。
【００６５】
図９は、ホストからデータ書き込みの指示があったときのフローを示している。
【００６６】
まず、書き込みデータは、ホストインターフェイスモジュール（ＨＩＭ）を経由して、データ圧縮器内に入力される。データ圧縮器では、可逆圧縮を行うか否かを決める（ステップＳＴ２１〜ＳＴ２２）。
【００６７】
可逆圧縮を行わないとき、書き込みデータは、可逆圧縮されずに、エラー訂正回路（ＥＣＣ）内へ入力される。また、書き込みデータは、エラー訂正回路内のエンコード部で、エンコード処理される（ステップＳＴ２４）。
【００６８】
これに対し、可逆圧縮を行うとき、書き込みデータは、可逆圧縮された後に、エラー訂正回路内へ入力される。また、可逆圧縮された書き込みデータは、エラー訂正回路内のエンコード部で、エンコード処理される（ステップＳＴ２３〜ＳＴ２４）。
【００６９】
ここで、可逆圧縮を行うか否かは、ルックアップテーブルを参照することにより決定される。
【００７０】
次に、ルックアップテーブルを参照し、データ圧縮器内において準可逆圧縮を行うか否かを決める（ステップＳＴ２５）。
【００７１】
準可逆圧縮を行わないとき、即ち、フラグがデータ圧縮／伸長器をバイパスすることを示しているとき、エンコード処理された書き込みデータは、準可逆圧縮されずに、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）を経由して、ＮＡＮＤフラッシュメモリへ転送される（ステップＳＴ２７）。
【００７２】
これに対し、準可逆圧縮を行うとき、即ち、フラグがデータ圧縮／伸長器をバイパスしないことを示しているとき、エンコード処理された書き込みデータは、準可逆圧縮された後に、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）を経由して、ＮＡＮＤフラッシュメモリへ転送される（ステップＳＴ２６〜ＳＴ２７）。
【００７３】
ここで、準可逆圧縮のモードについては、ルックアップテーブルを参照することにより決定される。
【００７４】
図１０は、ホストからデータ読み出しの指示があったときのフローを示している。
【００７５】
まず、ＮＡＮＤフラッシュメモリインターフェイスモジュール（ＮＩＭ）からの読み出しデータについて、ルックアップテーブルを参照し、データ伸長器内においてデータ伸長を行うか否かを決める（ステップＳＴ３１〜ＳＴ３２）。
【００７６】
データ伸長を行わないとき、即ち、フラグがデータ圧縮／伸長器をバイパスすることを示しているとき、読み出しデータは、伸長されずに、エラー訂正回路（ＥＣＣ）へ転送される。また、読み出しデータは、エラー訂正回路内のデコード部で、デコード処理される（ステップＳＴ３４）。
【００７７】
これに対し、データ伸長を行うとき、即ち、フラグがデータ圧縮／伸長器をバイパスしないことを示しているとき、読み出しデータは、伸長された後に、エラー訂正回路へ転送される。また、伸長された読み出しデータは、エラー訂正回路内のデコード部で、デコード処理される（ステップＳＴ３３〜ＳＴ３４）。
【００７８】
ここで、データ伸長のモードについては、ルックアップテーブルを参照することにより決定される。
【００７９】
次に、データ伸長器内においてデコード処理された読み出しデータについてデータ伸長を行うか否かを決める（ステップＳＴ３５）。データ伸長を行わないとき、デコード処理された読み出しデータは、伸長されずに、ホストインターフェイスモジュールを経由して、ホストへ転送される（ステップＳＴ３７）。
【００８０】
これに対し、データ伸長を行うとき、デコード処理された読み出しデータは、伸長された後に、ホストインターフェイスモジュールを経由して、ホストへ転送される（ステップＳＴ３６〜ＳＴ３７）。
【００８１】
ここで、データ伸長を行うか否かは、ルックアップテーブルを参照することにより決定される。
【００８２】
本例によれば、データ圧縮／伸長器９を追加することで、ＮＡＮＤフラッシュメモリ１２への書き込みデータをさらに低減し、ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制することができる。
【００８３】
［実装例］  
図１１は、ＮＡＮＤフラッシュメモリコントローラの実装例を示している。
【００８４】
上述の実施例及び変形例に係わるＮＡＮＤフラッシュメモリコントローラとＮＡＮＤフラッシュメモリとは、例えば、１つのパッケージ２１内に組み込むことが可能である。尚、パッケージの種類は、本例に限定されることはない。
【００８５】
１つのパッケージ２１内には、ＮＡＮＤフラッシュメモリコントローラ（チップ）２２及び複数のＮＡＮＤフラッシュメモリ（チップ）２３が互いに積み重ねられる。ＮＡＮＤフラッシュメモリコントローラ２２上に積み重ねるＮＡＮＤフラッシュメモリ２３の数は、１つであってもよいし、複数であってもよい。
【００８６】
また、ＮＡＮＤフラッシュメモリコントローラ２２とＮＡＮＤフラッシュメモリ２３とは、ボンディングワイヤや、ＴＳＶ（Through Silicon Via）などの配線技術により、互いに接続される。
【００８７】
［むすび］  
以上、実施例によれば、ＮＡＮＤフラッシュメモリのメモリセルの劣化を抑制し、信頼性を向上させることができる。
【００８８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８９】
１：  ＣＰＵ、  ２：  内部バス、  ３：  エラー訂正回路、  ４，９：  データ圧縮／伸長器、  ５：  ホストインターフェイスモジュール、  ６：  ＮＡＮＤフラッシュメモリインターフェイスモジュール、  ７：  ルックアップテーブル、  ８：  ダイレクトメモリアクセスコントローラ、  １０：  ＮＡＮＤフラッシュメモリコントローラ、  １１：  ホスト、  １２：  ＮＡＮＤフラッシュメモリ。
【図１】
2014186614.tif 000003
【図２】
2014186614.tif 000004
【図３】
2014186614.tif 000005
【図４】
2014186614.tif 000006
【図５】
2014186614.tif 000007
【図６】
2014186614.tif 000008
【図７】
2014186614.tif 000009
【図８】
2014186614.tif 000010
【図９】
2014186614.tif 000011
【図１０】
2014186614.tif 000012
【図１１】
2014186614.tif 000013