(57)【要約】【課題】不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術を提供することを目的とする。【解決手段】意図せず書き換えられやすいデータを多く含む元データに対して、エラー耐性コード変換を施すことにより、意図せず書き換えられやすいデータを多く含まない変換データを生成してメモリ４に書き込む。ホストシステム１が元データを処理するときには、メモリ４は変換データを読み出す操作を行い、コード逆変換部３３は変換データに対してエラー耐性コード変換に係る逆変換を施すことにより、元データと同一データである復元データを生成してホストシステム１に出力する。以上の手段により、データが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減することができる。【選択図】図２
2008204528.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対する書き込みアクセスおよび読み出しアクセスを制御するメモリ制御方法であって、
元データにコード変換を施して生成された変換データを、前記メモリに対して書き込む変換データ書き込み工程と、
前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施して生成された復元データを、前記元データを処理するホストシステムに対して出力する復元データ出力工程と、
を備えることを特徴とするメモリ制御方法。
【請求項２】
請求項１に記載のメモリ制御方法において、
前記変換データ書き込み工程は、
前記コード変換の種類を前記元データの特徴に応じて選択して、前記メモリに対して前記コード変換の種類を書き込む工程、
を含むことを特徴とするメモリ制御方法。
【請求項３】
請求項１または請求項２に記載のメモリ制御方法において、
前記コード変換は、
ハフマン符号変換、
を含むことを特徴とするメモリ制御方法。
【請求項４】
請求項１または請求項２に記載のメモリ制御方法において、
前記コード変換は、
ランレングス符号変換、
を含むことを特徴とするメモリ制御方法。
【請求項５】
請求項１または請求項２に記載のメモリ制御方法において、
前記コード変換は、
二値反転変換、
を含むことを特徴とするメモリ制御方法。
【請求項６】
請求項１または請求項２に記載のメモリ制御方法において、
前記コード変換は、
恒等変換、
を含むことを特徴とするメモリ制御方法。
【請求項７】
請求項２ないし請求項６のいずれかに記載のメモリ制御方法において、
前記復元データ出力工程は、
前記メモリから読み出した前記コード変換の種類に基づいて、前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施す工程、
を含むことを特徴とするメモリ制御方法。
【請求項８】
請求項１ないし請求項７のいずれかに記載のメモリ制御方法において、
前記変換データ書き込み工程および前記復元データ出力工程は、前記メモリの所定単位ごとに行われることを特徴とするメモリ制御方法。
【請求項９】
メモリと、メモリに対するアクセスを制御するメモリコントローラと、を備えるメモリシステムであって、
前記メモリは、
ホストシステムが処理する元データをコード変換することにより生成された変換データを格納する変換データ格納手段、
を備え、
前記メモリコントローラは、
前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施した後に、前記コード変換に係る逆変換により生成された復元データを前記ホストシステムに出力する変換データ復元手段、
を備えることを特徴とするメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術に関する。
【背景技術】
【０００２】
不揮発性メモリの中でも、ＮＡＮＤフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、ＳＤメモリカードなどに大量に採用されている。
【０００３】
最近では、ＮＡＮＤフラッシュメモリは、ゲーム機などにも採用されている。ＮＡＮＤフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、ＮＡＮＤフラッシュメモリがＲＯＭとして採用されることが多くなりつつある。
【０００４】
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
【０００５】
図３は、ＮＡＮＤフラッシュメモリの模式図である。ＮＡＮＤフラッシュメモリは、格子状に配線されたビット線５１とワード線５２、５３、５４、メモリセル６２、６３、選択トランジスタ６４などから構成されている。
【０００６】
メモリセル６２が格納する二値データ（“０”または“１”）を読み出す場合を考える。この場合、メモリセル６２は選択セル６２、メモリセル６３は非選択セル６３と呼ばれている。まず、選択トランジスタ６４により、選択セル６２が属するビット線５１が指定される。次に、選択セル６２が属するワード線５２に対して、低ゲート電圧Ｖ（Ｌｏｗ）＝０Ｖが印加される。そして、非選択セル６３が属するワード線５３に対して、高ゲート電圧Ｖ（Ｈｉｇｈ）〜５Ｖが印加される。このとき、非選択セル６３は微弱な書き込み状態にあるため、非選択セル６３のフローティングゲートに、電子がトラップされ、蓄積される。すなわち、選択セル６２が格納する二値データが繰り返し読み出されると、非選択セル６３の閾値電圧がシフトして、非選択セル６３が格納している二値データが、“１”から“０”に意図せず書き換えられる可能性がある。
【０００７】
もっとも、非選択セル６３が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル６３の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル６３の機能を回復させることができなくなる。
【０００８】
以上に説明した“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
【０００９】
【特許文献１】米国特許出願公開第２００５／０２１０１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の特許文献は、メモリセル内部の制御方法により、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供するものである。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能なものではない。つまり、メモリのセル構造に依存することなく、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避できる方策ではない。
【００１１】
そこで、本発明は前記問題点に鑑み、メモリのセル構造に制約を受けることなく、様々なタイプの不揮発性メモリにおいても、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる手段を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、請求項１記載の発明は、メモリに対する書き込みアクセスおよび読み出しアクセスを制御するメモリ制御方法であって、元データにコード変換を施して生成された変換データを、前記メモリに対して書き込む変換データ書き込み工程と、前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施して生成された復元データを、前記元データを処理するホストシステムに対して出力する復元データ出力工程と、を備えることを特徴とする。
【００１３】
請求項２記載の発明は、請求項１に記載のメモリ制御方法において、前記変換データ書き込み工程は、前記コード変換の種類を前記元データの特徴に応じて選択して、前記メモリに対して前記コード変換の種類を書き込む工程、を含むことを特徴とする。
【００１４】
請求項３記載の発明は、請求項１または請求項２に記載のメモリ制御方法において、前記コード変換は、ハフマン符号変換、を含むことを特徴とする。
【００１５】
請求項４記載の発明は、請求項１または請求項２に記載のメモリ制御方法において、前記コード変換は、ランレングス符号変換、を含むことを特徴とする。
【００１６】
請求項５記載の発明は、請求項１または請求項２に記載のメモリ制御方法において、前記コード変換は、二値反転変換、を含むことを特徴とする。
【００１７】
請求項６記載の発明は、請求項１または請求項２に記載のメモリ制御方法において、前記コード変換は、恒等変換、を含むことを特徴とする。
【００１８】
請求項７記載の発明は、請求項２ないし請求項６のいずれかに記載のメモリ制御方法において、前記復元データ出力工程は、前記メモリから読み出した前記コード変換の種類に基づいて、前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施す工程、を含むことを特徴とする。
【００１９】
請求項８記載の発明は、請求項１ないし請求項７のいずれかに記載のメモリ制御方法において、前記変換データ書き込み工程および前記復元データ出力工程は、前記メモリの所定単位ごとに行われることを特徴とする。
【００２０】
請求項９記載の発明は、メモリと、メモリに対するアクセスを制御するメモリコントローラと、を備えるメモリシステムであって、前記メモリは、ホストシステムが処理する元データをコード変換することにより生成された変換データを格納する変換データ格納手段、を備え、前記メモリコントローラは、前記メモリから読み出した前記変換データに前記コード変換に係る逆変換を施した後に、前記コード変換に係る逆変換により生成された復元データを前記ホストシステムに出力する変換データ復元手段、を備えることを特徴とする。
【発明の効果】
【００２１】
意図せず書き換えられやすい二値データを多く含む元データに対して、意図せず書き換えられやすい二値データを減少させるエラー耐性コード変換を施す。そして、エラー耐性コード変換により生成された変換データをメモリに書き込む。ホストシステムが元データを処理するときに、変換データに対してエラー耐性コード変換に係る逆変換を施す。そして、エラー耐性コード変換に係る逆変換により生成された復元データをホストシステムに出力する。ここで、復元データと元データは同一データである。
【００２２】
ホストシステムは意図せず書き換えられやすい二値データを多く含む元データを処理するが、メモリは意図せず書き換えられやすい二値データを多く含まない変換データを格納する。そのため、メモリから変換データが読み出されるときに、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。
【００２３】
元データに対してエラー耐性コード変換を施すときに、元データの特徴に応じて、エラー耐性コード変換の種類を選択することができる。また、元データに対するエラー耐性コード変換は、メモリの所定単位ごとに行うことができる。たとえば、メモリの読み出しページ単位または消去ブロック単位ごとに行うことができる。そのため、メモリから変換データが読み出されるときに、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象をより効果的に回避または低減することができる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照しつつ、本発明の実施の形態について説明する。図１は、メモリが格納するデータの内容を示す図である。元データ４１Ｒは、プログラム開発者により作成されたデータである。通常の場合においては、元データ４１Ｒがメモリ４に書き込まれる。
【００２５】
しかし、元データ４１Ｒが意図せず書き換えられやすい二値データを多く含むデータである場合がある。前述したように、意図せず書き換えられやすい二値データとは、特定のデータが繰り返し読み出されるときに、その二値データを格納するメモリセルが微弱な書き込み状態にあることにより、他方の二値データに書き換えられやすい二値データのことである。この場合には、元データ４１Ｒがメモリ４から繰り返し読み出されるときに、データが意図せず書き換えられるという“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することは困難である。
【００２６】
そこで、本実施の形態においては、意図せず書き換えられやすい二値データを多く含まない変換データ４１Ｔを元データ４１Ｒから生成して、変換データ４１Ｔをメモリ４に格納している。そのため、変換データ４１Ｔがメモリ４から繰り返し読み出されるときに、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。元データ４１Ｒから変換データ４１Ｔを生成する方法および変換データ４１Ｔをメモリ４に格納する方法については、後に説明する。
【００２７】
しかし、本実施の形態においても、通常の場合と同様に、本来メモリ４から読み出したいデータは、変換データ４１Ｔではなく、元データ４１Ｒである。そのため、メモリ４から読み出した変換データ４１Ｔから元データ４１Ｒを生成している。変換データ４１Ｔから元データ４１Ｒを生成する方法については、図２を用いて説明する。
【００２８】
まず、元データ４１Ｒから変換データ４１Ｔを生成する方法として、元データ４１Ｒにエラー耐性コード変換を施して、変換データ４１Ｔを生成している。本実施の形態においては、エラー耐性コード変換として、ハフマン符号変換Ａ、ランレングス符号変換Ｂ、二値反転変換Ｃ、恒等変換Ｅを使用している。ここで、恒等変換Ｅに代えて、無変換を使用することもできる。また、エラー耐性コード変換Ａ、Ｂ、Ｃ、Ｅを、元データ４１Ｒに複数回施すこともできる。たとえば、同一のエラー耐性コード変換を複数回施すことや、異なるエラー耐性コード変換を多重に施すこともできる。さらに、他のエラー耐性コード変換を使用するときにも、本発明を実施することができる。
【００２９】
元データ４１Ｒから変換データ４１Ｔを生成するときに、エラー耐性コード変換Ａ、Ｂ、Ｃ、Ｅから、元データ４１Ｒの特徴に応じて、適当なエラー耐性コード変換を選択することができる。たとえば、元データ４１Ｒにエラー耐性コード変換Ａ、Ｂ、Ｃ、Ｅを試験的に施して、各変換データ４１Ｔを生成する。そして、各変換データ４１Ｔから、意図せず書き換えられやすい二値データを最も少なく含む変換データ４１Ｔを選択する。この変換データ４１Ｔに係るエラー耐性コード変換を、元データ４１Ｒの特徴に応じて適当なエラー耐性コード変換として選択するのである。
【００３０】
本実施の形態においては、メモリ４として、Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ（ＳＬＣ）形式のＮＡＮＤフラッシュメモリを使用している。この場合には、意図せず書き換えられやすい二値データとは“１”のデータである。そのため、たとえば、元データ４１Ｒにエラー耐性コード変換Ａ、Ｂ、Ｃ、Ｅを試験的に施して生成した各変換データ４１Ｔから、“１”のデータを最も少なく含む変換データ４１Ｔを選択すればよい。そして、この変換データ４１Ｔに係るエラー耐性コード変換を、元データ４１Ｒの特徴に応じて適当なエラー耐性コード変換として選択すればよい。
【００３１】
次に、変換データ４１Ｔをメモリ４に格納する方法として、変換データ４１Ｔのみならず、元データ４１Ｒの特徴に応じて適当なエラー耐性コード変換の種類を示すフラグをも、メモリ４に格納している。また、適当なエラー耐性コード変換の種類を示すフラグを、メモリ４の所定単位ごとに設定することができる。本実施の形態においては、適当なエラー耐性コード変換の種類を示すフラグを、メモリ４の読み出しページ単位ごとに設定して、メモリ４の各ページの冗長領域に格納している。しかし、適当なエラー耐性コード変換の種類を示すフラグを、メモリ４の消去ブロック単位ごとに設定するなどしてもよい。
【００３２】
たとえば、本来はメモリ４のページ１に格納すべき元データ４１Ｒについて、エラー耐性コード変換Ａ、Ｂ、Ｃ、Ｅから、元データ４１Ｒの特徴に応じて、適当なエラー耐性コード変換Ａを選択している。そして、元データ４１Ｒにエラー耐性コード変換Ａを施して、変換データ４１Ｔを生成している。変換データ４１Ｔとエラー耐性コード変換Ａの種類を示すフラグを、それぞれ、変換データ領域４１−１と冗長領域４２−１に格納している。本来はメモリ４のページ２ないしページＮに格納すべき元データ４１Ｒについても、本来はメモリ４のページ１に格納すべき元データ４１Ｒについての処理の流れと同様な処理の流れを実施している。
【００３３】
ここで、変換データ４１Ｔをメモリ４に書き込む方法として、たとえば以下の方法が考えられる。まず、メモリ４を製造するときに、元データ４１Ｒから変換データ４１Ｔを生成して、変換データ４１Ｔをメモリ４に書き込む方法がある。次に、メモリ４を含む情報処理装置を販売した後に、ダウンロードサーバにおいて元データ４１Ｒから変換データ４１Ｔを生成して、ダウンロードした変換データ４１Ｔをメモリ４に書き込む方法がある。さらに、メモリ４を含む情報処理装置を販売した後に、情報処理装置内において、ダウンロードした元データ４１Ｒから変換データ４１Ｔを生成して、変換データ４１Ｔをメモリ４に書き込む方法がある。最後に掲げた方法を実施するときには、ダウンロードした元データ４１Ｒから変換データ４１Ｔを生成することを、メモリ４を含む情報処理装置内のいずれの場所で行ってもよい。
【００３４】
次に、ホストシステムが元データ４１Ｒを処理するための処理の流れについて、図２を用いて説明する。ホストシステム１とメモリシステム２は、メモリシステム２内部のインターフェース部３１を介して接続されている。ホストシステム１は、元データ４１Ｒに係る読み出しコマンドをメモリシステム２に出力する。そして、ホストシステム１は、後に説明する復元データをメモリシステム２から入力して処理する。ここで、元データ４１Ｒと復元データは同一データであるため、ホストシステム１は、結果的に元データ４１Ｒを処理することができる。
【００３５】
メモリシステム２は、メモリコントローラ３とメモリ４から構成されている。メモリコントローラ３は、ホストシステム１が元データ４１Ｒを処理するために、メモリ４に対するアクセスを制御する。メモリ４は、図１を用いて説明したメモリである。すなわち、メモリ４は、元データ４１Ｒにエラー耐性コード変換を施して生成した変換データ４１Ｔを格納する。
【００３６】
メモリコントローラ３は、インターフェース部３１、アドレスデコーダ部３２、コード逆変換部３３などから構成されている。
【００３７】
インターフェース部３１は、ホストシステム１とメモリシステム２の間で、元データ４１Ｒに係る読み出しコマンドや復元データなどのやりとりを行うためのインターフェースである。
【００３８】
アドレスデコーダ部３２は、ホストシステム１から入力する元データ４１Ｒに係る読み出しコマンドから、元データ４１Ｒに係る読み出しアドレスを抽出してメモリ４に出力する。
【００３９】
コード逆変換部３３は、メモリ４から入力する変換データ４１Ｔにエラー耐性コード変換に係る逆変換を施して、復元データを生成する。そして、コード逆変換部３３は、復元データをホストシステム１に出力する。元データ４１Ｒに対して、エラー耐性コード変換を施した後に、エラー耐性コード変換に係る逆変換を施すことにより、復元データを生成している。そのため、元データ４１Ｒと復元データは同一データである。
【００４０】
以上に説明したホストシステム１およびメモリシステム２から構成される情報処理装置において、ホストシステム１が元データ４１Ｒを処理するための処理の流れについて説明する。本実施の形態においては、本来はメモリ４のページ１に格納すべき元データ４１Ｒをホストシステム１が処理するときを考えている。しかし、本来はメモリ４のページ２ないしページＮに格納すべき元データ４１Ｒをホストシステム１が処理するときにも、本来はメモリ４のページ１に格納すべき元データ４１Ｒをホストシステム１が処理するときと同様な処理の流れを実施すればよい。
【００４１】
ホストシステム１は、元データ４１Ｒに係る読み出しコマンドを、インターフェース部３１を介して、アドレスデコーダ部３２に出力する。そして、アドレスデコーダ部３２は、ホストシステム１から入力した元データ４１Ｒに係る読み出しコマンドから、元データ４１Ｒに係る読み出しアドレスを抽出してメモリ４に出力する。
【００４２】
メモリ４は、アドレスデコーダ部３２から入力した元データ４１Ｒに係る読み出しアドレスに基づいて、ページ１の変換データ領域４１−１に格納している変換データ４１Ｔと、ページ１の冗長領域４２−１に格納しているエラー耐性コード変換Ａの種類を示すフラグを読み出す操作を行う。そして、メモリ４は、変換データ４１Ｔとエラー耐性コード変換Ａの種類を示すフラグを、コード逆変換部３３に出力する。
【００４３】
コード逆変換部３３は、メモリ４から入力したエラー耐性コード変換Ａの種類を示すフラグに基づいて、メモリ４から入力した変換データ４１Ｔに対して、エラー耐性コード変換Ａに係る逆変換を施す。ここで、エラー耐性コード変換に係る逆変換を示す記号について、Ａ、Ｂ、Ｃ、Ｅの右肩に付した“−１”は、Ａ、Ｂ、Ｃ、Ｅの逆変換であることを示している。そして、コード逆変換部３３は、エラー耐性コード変換Ａに係る逆変換により生成した復元データを、インターフェース部３１を介して、ホストシステム１に出力する。すると、ホストシステム１は、復元データを入力することにより、結果的に元データ４１Ｒを処理することができるのである。
【００４４】
本実施の形態においては、メモリコントローラ３がコード逆変換部３３を備えている。しかし、変換データ４１Ｔから復元データを生成することを、ホストシステム１およびメモリシステム２から構成される情報処理装置内のいずれの場所で行ってもよい。
【００４５】
ホストシステム１は意図せず書き換えられやすい二値データを多く含む元データ４１Ｒを処理するが、メモリ４は意図せず書き換えられやすい二値データを多く含まない変換データ４１Ｔを格納する。すると、メモリ４から直接的に読み出されるデータは、元データ４１Ｒではなく、変換データ４１Ｔである。そのため、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。
【００４６】
また、元データ４１Ｒから変換データ４１Ｔを生成するときに、メモリ４の所定単位ごとに変換データ４１Ｔを生成することができるため、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象に対して、よりきめ細かな対応をとることができる。
【図面の簡単な説明】
【００４７】
【図１】メモリが格納するデータの内容を示す図である。
【図２】ホストシステムが元データを処理するための処理の流れを示す図である。
【図３】ＮＡＮＤフラッシュメモリの模式図である。
【符号の説明】
【００４８】
１  ホストシステム
２  メモリシステム
３  メモリコントローラ
４  メモリ
３１  インターフェース部
３２  アドレスデコーダ部
３３  コード逆変換部
４１Ｒ  元データ
４１Ｔ  変換データ
４１−１、４１−２、４１−３、４１−４、４１−Ｎ  変換データ領域
４２−１、４２−２、４２−３、４２−４、４２−Ｎ  冗長領域
５１  ビット線
５２、５３、５４  ワード線
６２  選択セル
６３  非選択セル
６４  選択トランジスタ
【図１】
2008204528.tif 000003
【図２】
2008204528.tif 000004
【図３】
2008204528.tif 000005