(57)【要約】【課題】不揮発性メモリからデータが繰り返し読み出されることにより、データが書き換えられる可能性を回避または低減する技術を提供することを目的とする。【解決手段】アドレス比較部３３は、ホストシステム１が読み出したデータのアドレスを格納する。また、バッファ部３７は、そのデータをメモリ４から読み出して格納する。ホストシステム１が新たに読み出そうとするデータのアドレスが、アドレス比較部３３がすでに格納しているアドレスに含まれている場合には、ホストシステム１は、新たに読み出そうとするデータを、メモリ４からではなく、バッファ部３７から読み出す。以上の手段により、データが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減することができる。【選択図】図１
2008181399.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置に対するアクセスを制御するメモリコントローラであって、
前記記憶装置が格納するデータを処理するホストシステムが出力する読み出しアドレス（第１アドレス）と、前記ホストシステムが前記第１アドレスを出力する前に出力した読み出しアドレス(第２アドレス)と、を比較するアドレス比較部と、
前記第２アドレスのデータを格納するバッファ部と、
前記第１アドレスが前記第２アドレスに含まれている場合には、前記ホストシステムに対して、前記バッファ部から前記第１アドレスのデータを出力し、前記第１アドレスが前記第２アドレスに含まれていない場合には、前記ホストシステムに対して、前記記憶装置から読み出した前記第１アドレスのデータを出力する手段と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムが前記第１アドレスを出力する直前の出力に係る読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項３】
請求項１に記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムが前記第１アドレスを出力する直前の所定回の出力に係る読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項４】
請求項１に記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムが前記第１アドレスを出力する直前の所定回の出力に係る読み出しアドレスのうち、読み出し回数が所定条件を満たす読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項５】
請求項１に記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムが処理した際にエラーが発生したデータに係る読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項６】
請求項１ないし請求項５のいずれかに記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムの電源がオンにされる際に、前記ホストシステムが前記第１アドレスを出力する前に出力したものとして処理されるみなし読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項７】
請求項６に記載のメモリコントローラにおいて、
前記みなし読み出しアドレスは、
前記ホストシステムの電源がオンにされる直前にオフにされた際における前記第２アドレス、
を含むことを特徴とするメモリコントローラ。
【請求項８】
請求項１ないし請求項４のいずれかに記載のメモリコントローラにおいて、
前記第２アドレスは、
前記ホストシステムの電源がオンにされる際に、前記ホストシステムが前記第１アドレスを出力する前に出力したものとして処理される固定アドレス、
を含むことを特徴とするメモリコントローラ。
【請求項９】
記憶装置に対するアクセスを制御するメモリコントローラであって、
前記記憶装置が格納するデータを処理するホストシステムが出力する読み出しアドレスと、あらかじめ設定された所定アドレスと、を比較するアドレス比較部と、
前記所定アドレスのデータを格納するバッファ部と、
前記読み出しアドレスが前記所定アドレスに含まれている場合には、前記ホストシステムに対して、前記バッファ部から前記読み出しアドレスのデータを出力し、前記読み出しアドレスが前記所定アドレスに含まれていない場合には、前記ホストシステムに対して、前記記憶装置から読み出した前記読み出しアドレスのデータを出力する手段と、
を備えることを特徴とするメモリコントローラ。
【請求項１０】
請求項９記載のメモリコントローラにおいて、
前記所定アドレスは、
前記ホストシステムが繰り返し出力する可能性が高いと想定される読み出しアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項１１】
請求項９記載のメモリコントローラにおいて、
前記所定アドレスは、
前記ホストシステムが処理する際にエラーが発生する可能性が高いと想定されるデータに係るアドレス、
を含むことを特徴とするメモリコントローラ。
【請求項１２】
請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、さらに、
前記バッファ部からデータを出力する場合には、前記バッファ部と前記ホストシステム間のアクセスを設定し、前記記憶装置から読み出したデータを出力する場合には、前記記憶装置と前記ホストシステム間のアクセスを設定するデータセレクタ部、
を備えることを特徴とするメモリコントローラ。
【請求項１３】
請求項１ないし請求項１２のいずれかに記載のメモリコントローラにおいて、さらに、
前記バッファ部からデータを出力する場合には、前記ホストシステムに対して通知する前記バッファ部の動作状態をアクセス可能状態に固定する手段と、
前記記憶装置から読み出したデータを出力する場合には、前記ホストシステムに対して、前記記憶装置の動作状態を通知する手段と、
を備えることを特徴とするメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリからデータが繰り返し読み出されることにより、データが意図せず書き換えられる可能性を回避または低減する技術に関する。
【背景技術】
【０００２】
不揮発性メモリの中でも、ＮＡＮＤフラッシュメモリは、単純な回路構成による高集積化や製造コスト減、ユーザによる書き込みの容易化を図ることを可能とするため、ＳＤメモリカードなどに大量に採用されている。
【０００３】
最近では、ＮＡＮＤフラッシュメモリは、ゲーム機などにも採用されている。ＮＡＮＤフラッシュメモリがゲーム機などで使用される際には、書き込みは発生せず、連続的な読み出しが発生する。すなわち、ＮＡＮＤフラッシュメモリがＲＯＭとして採用されることが多くなりつつある。
【０００４】
しかし、ゲーム機などでは、特定のプログラムが繰り返し読み出されることが多いため、プログラムが意図せず書き換えられる可能性が指摘され始めている。このような現象は“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象と呼ばれており、本現象が発生するメカニズムについて、以下に簡単に説明する。
【０００５】
図７は、ＮＡＮＤフラッシュメモリの模式図である。ＮＡＮＤフラッシュメモリは、格子状に配線されたビット線４１とワード線４２、４３、４４、メモリセル５２、５３、選択トランジスタ５４などから構成されている。
【０００６】
メモリセル５２が格納する二値データ（“０”または“１”）を読み出す場合を考える。この場合、メモリセル５２は選択セル５２、メモリセル５３は非選択セル５３と呼ばれている。まず、選択トランジスタ５４により、選択セル５２が属するビット線４１が指定される。次に、選択セル５２が属するワード線４２に対して、低ゲート電圧Ｖ（Ｌｏｗ）＝０Ｖが印加される。そして、非選択セル５３が属するワード線４３に対して、高ゲート電圧Ｖ（Ｈｉｇｈ）〜５Ｖが印加される。このとき、非選択セル５３は微弱な書き込み状態にあるため、非選択セル５３のフローティングゲートに、電子がトラップされ、蓄積される。すなわち、選択セル５２が格納する二値データが繰り返し読み出されると、非選択セル５３の閾値電圧がシフトして、非選択セル５３が格納している二値データが、“１”から“０”に意図せず書き換えられる可能性がある。
【０００７】
もっとも、非選択セル５３が格納している二値データが意図せず書き換えられたとしても、データが新たに書き込まれる前に一括して消去される際に、非選択セル５３の機能を回復させることができる。しかし、書き込みは発生せず、連続的な読み出しが発生する場合には、非選択セル５３の機能を回復させることができなくなる。
【０００８】
以上に説明した“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供する文献として、以下の特許文献が挙げられる。
【０００９】
【特許文献１】米国特許出願公開第２００５／０２１０１８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述の特許文献は、メモリセル内部の制御方法により、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避する手段を提供するものである。しかし、ここで開示されている方法は、特定のセル構造を有するメモリに対して適用可能な方法であり、他のセル構造に適用可能なものではない。つまり、メモリのセル構造に依存することなく、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避できる方策ではない。
【００１１】
そこで、本発明は前記問題点に鑑み、メモリのセル構造に制約を受けることなく、様々なタイプの不揮発性メモリにおいても、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる手段を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、請求項１記載の発明は、記憶装置に対するアクセスを制御するメモリコントローラであって、前記記憶装置が格納するデータを処理するホストシステムが出力する読み出しアドレス（第１アドレス）と、前記ホストシステムが前記第１アドレスを出力する前に出力した読み出しアドレス(第２アドレス)と、を比較するアドレス比較部と、前記第２アドレスのデータを格納するバッファ部と、前記第１アドレスが前記第２アドレスに含まれている場合には、前記ホストシステムに対して、前記バッファ部から前記第１アドレスのデータを出力し、前記第１アドレスが前記第２アドレスに含まれていない場合には、前記ホストシステムに対して、前記記憶装置から読み出した前記第１アドレスのデータを出力する手段と、を備えることを特徴とする。
【００１３】
請求項２記載の発明は、請求項１に記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムが前記第１アドレスを出力する直前の出力に係る読み出しアドレス、を含むことを特徴とする。
【００１４】
請求項３記載の発明は、請求項１に記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムが前記第１アドレスを出力する直前の所定回の出力に係る読み出しアドレス、を含むことを特徴とする。
【００１５】
請求項４記載の発明は、請求項１に記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムが前記第１アドレスを出力する直前の所定回の出力に係る読み出しアドレスのうち、読み出し回数が所定条件を満たす読み出しアドレス、を含むことを特徴とする。
【００１６】
請求項５記載の発明は、請求項１に記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムが処理した際にエラーが発生したデータに係る読み出しアドレス、を含むことを特徴とする。
【００１７】
請求項６記載の発明は、請求項１ないし請求項５のいずれかに記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムの電源がオンにされる際に、前記ホストシステムが前記第１アドレスを出力する前に出力したものとして処理されるみなし読み出しアドレス、を含むことを特徴とする。
【００１８】
請求項７記載の発明は、請求項６に記載のメモリコントローラにおいて、前記みなし読み出しアドレスは、前記ホストシステムの電源がオンにされる直前にオフにされた際における前記第２アドレス、を含むことを特徴とする。
【００１９】
請求項８記載の発明は、請求項１ないし請求項４のいずれかに記載のメモリコントローラにおいて、前記第２アドレスは、前記ホストシステムの電源がオンにされる際に、前記ホストシステムが前記第１アドレスを出力する前に出力したものとして処理される固定アドレス、を含むことを特徴とする。
【００２０】
請求項９記載の発明は、記憶装置に対するアクセスを制御するメモリコントローラであって、前記記憶装置が格納するデータを処理するホストシステムが出力する読み出しアドレスと、あらかじめ設定された所定アドレスと、を比較するアドレス比較部と、前記所定アドレスのデータを格納するバッファ部と、前記読み出しアドレスが前記所定アドレスに含まれている場合には、前記ホストシステムに対して、前記バッファ部から前記読み出しアドレスのデータを出力し、前記読み出しアドレスが前記所定アドレスに含まれていない場合には、前記ホストシステムに対して、前記記憶装置から読み出した前記読み出しアドレスのデータを出力する手段と、を備えることを特徴とする。
【００２１】
請求項１０記載の発明は、請求項９記載のメモリコントローラにおいて、前記所定アドレスは、前記ホストシステムが繰り返し出力する可能性が高いと想定される読み出しアドレス、を含むことを特徴とする。
【００２２】
請求項１１記載の発明は、請求項９記載のメモリコントローラにおいて、前記所定アドレスは、前記ホストシステムが処理する際にエラーが発生する可能性が高いと想定されるデータに係るアドレス、を含むことを特徴とする。
【００２３】
請求項１２記載の発明は、請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、さらに、前記バッファ部からデータを出力する場合には、前記バッファ部と前記ホストシステム間のアクセスを設定し、前記記憶装置から読み出したデータを出力する場合には、前記記憶装置と前記ホストシステム間のアクセスを設定するデータセレクタ部、を備えることを特徴とする。
【００２４】
請求項１３記載の発明は、請求項１ないし請求項１２のいずれかに記載のメモリコントローラにおいて、さらに、前記バッファ部からデータを出力する場合には、前記ホストシステムに対して通知する前記バッファ部の動作状態をアクセス可能状態に固定する手段と、前記記憶装置から読み出したデータを出力する場合には、前記ホストシステムに対して、前記記憶装置の動作状態を通知する手段と、を備えることを特徴とする。
【発明の効果】
【００２５】
請求項１記載の発明は、ホストシステムが繰り返し読み出すデータを、メモリコントローラ内部のバッファ部に格納することにより、ホストシステムが新たにそのデータを読み出す際には、メモリからではなく、バッファ部から読み出すことができる。そこで、ホストシステムがそのデータをメモリから繰り返し読み出すことはなくなるため、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。
【００２６】
請求項２記載の発明は、ホストシステムが前回読み出したデータを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００２７】
請求項３記載の発明は、ホストシステムが最近所定回の読み出しに係るデータを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００２８】
請求項４記載の発明は、ホストシステムが最近所定回の読み出しに係るデータのうち、読み出し回数が所定条件を満たすデータを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００２９】
請求項５記載の発明は、ホストシステムが処理したデータのうち、ホストシステムが処理したときにエラーが発生したデータを今回も読み出す際には、誤り訂正がされたデータを、メモリからではなく、バッファ部から読み出すことができる。
【００３０】
請求項６記載の発明は、ホストシステムの電源をオンにする際に、バッファ部が格納するデータを初期化することができる。
【００３１】
請求項７記載の発明は、ホストシステムに対する操作を中断した後に再開する場合に、中断直前にバッファ部が格納していたデータを、再開直後にバッファ部がそのまま格納することができる。
【００３２】
請求項８記載の発明は、ホストシステムの電源をオンにする際に、バッファ部が格納するデータを、固定データに初期化することができる。
【００３３】
請求項９記載の発明は、所定データを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００３４】
請求項１０記載の発明は、ホストシステムが繰り返し読み出す可能性が高いと想定される所定データを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００３５】
請求項１１記載の発明は、ホストシステムが処理するときにエラーが発生する可能性が高いと想定される所定データを今回も読み出す際には、メモリからではなく、バッファ部から読み出すことができる。
【００３６】
請求項１２記載の発明は、ホストシステムおよびバッファ部またはメモリの間に、アクセスパスを設定することができる。
【００３７】
請求項１３記載の発明は、ホストシステムがバッファ部からデータを読み出す場合に、バッファ部の動作状態を示す信号を，ＲＥＡＤＹ状態を示す信号に固定することにより、高速にバッファ部からデータを読み出すことができる。
【発明を実施するための最良の形態】
【００３８】
｛第１の実施の形態｝
以下、図面を参照しつつ第１の実施の形態について説明する。図１は、第１の実施の形態に係るメモリモジュールのブロック図である。ホストシステム１とメモリモジュール２は、メモリモジュール２内部のインターフェース部３１を介して接続されている。ホストシステム１は、メモリモジュール２に読み出しコマンドを出力する。また、メモリモジュール２内部のメモリ４から読み出すプログラムなどのデータを処理する。ホストシステム１としてゲーム機本体、メモリモジュール２としてゲームカートリッジなどが挙げられる。
【００３９】
メモリモジュール２は、メモリコントローラ３とメモリ４から構成されている。メモリコントローラ３は、ホストシステム１がメモリ４からデータを読み出す際に、メモリ４に対するアクセスを制御することができる。その一方で、ホストシステム１がメモリ４からデータを繰り返し読み出す際には、メモリ４に対する直接的なアクセスを行わないこともできる。このメモリコントローラ３により、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。本現象を回避または低減する具体的な方法については、後で詳述する。
【００４０】
メモリ４は、ホストシステム１が読み出すデータを格納するための記憶装置である。ホストシステム１がゲーム機本体である場合、メモリ４が格納するデータは、ホストシステム１が処理するゲームプログラムである。メモリ４は、不揮発性メモリであり、第１の実施の形態においては、Ｓｉｎｇｌｅ−Ｌｅｖｅｌ  Ｃｅｌｌ（ＳＬＣ）方式のＮＡＮＤフラッシュメモリである。しかし、Ｍｕｌｔｉ−Ｌｅｖｅｌ  Ｃｅｌｌ（ＭＬＣ）方式のＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリなどの他の不揮発性メモリにおいても、本発明を実施することは可能である。
【００４１】
メモリコントローラ３は、インターフェース部３１、アドレスデコーダ部３２、アドレス比較部３３、データセレクタ部３４、ＲＤＹ／ＢＳＹセレクタ部３５、アクセスコントローラ部３６、バッファ部３７などから構成されている。
【００４２】
インターフェース部３１は、ホストシステム１とメモリモジュール２の間で、読み出しコマンドや読み出しデータなどのやりとりを行うためのインターフェースである。
【００４３】
アドレスデコーダ部３２は、ホストシステム１から入力される読み出しコマンドから、読み出しアドレスを抽出する。そして、その読み出しアドレスを、アドレス比較部３３およびアクセスコントローラ部３６に出力する。
【００４４】
アドレス比較部３３は、アドレスデコーダ部３２から入力される読み出しアドレスを格納する。そして、今回入力される読み出しアドレスと、前回入力された読み出しアドレスを比較する。
【００４５】
今回入力される読み出しアドレスが、前回入力された読み出しアドレスと一致している場合、アドレス比較部３３は、バッファアクセスパスへの切替信号を、データセレクタ部３４およびＲＤＹ／ＢＳＹセレクタ部３５に出力する。また、メモリアクセス不可信号を、アクセスコントローラ部３６に出力する。すなわち、ホストシステム１が前回読み出したデータを今回も読み出す際には、メモリ４にアクセスすることはできず、バッファ部３７にアクセスすることになる。
【００４６】
今回入力される読み出しアドレスが、前回入力された読み出しアドレスと一致していない場合、アドレス比較部３３は、メモリアクセスパスへの切替信号を、データセレクタ部３４およびＲＤＹ／ＢＳＹセレクタ部３５に出力する。また、メモリアクセス要求信号を、アクセスコントローラ部３６に出力する。
【００４７】
アドレス比較部３３において、今回入力される読み出しアドレスと前回入力された読み出しアドレスを比較することにより、ホストシステム１が前回読み出したデータを今回も読み出す際には、メモリ４にアクセスすることなく、バッファ部３７にアクセスすれば足りるため、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。
【００４８】
データセレクタ部３４は、アドレス比較部３３から入力されるバッファアクセスパスへの切替信号に従って、バッファ部３７とホストシステム１の間のアクセスを設定する。また、データセレクタ部３４は、アドレス比較部３３から入力されるメモリアクセスパスへの切替信号に従って、メモリ４とホストシステム１の間のアクセスを設定する。
【００４９】
ＲＤＹ／ＢＳＹセレクタ部３５は、アドレス比較部３３から入力されるバッファアクセスパスへの切替信号に従って、バッファ部３７の常時ＲＥＡＤＹ状態を示す常時ＲＤＹ信号を、ホストシステム１に対して出力する。また、ＲＤＹ／ＢＳＹセレクタ部３５は、アドレス比較部３３から入力されるメモリアクセスパスへの切替信号に従って、メモリ４のそれぞれＲＥＡＤＹ状態およびＢＵＳＹ状態を示すＲＤＹ信号およびＢＳＹ信号を、ホストシステム１に対して出力する。
【００５０】
ホストシステム１がバッファ部３７からデータを読み出す場合に、バッファ部３７の動作状態を示す信号をＲＤＹ信号に固定することにより、高速にバッファ部３７からデータを読み出すことができる。
【００５１】
アクセスコントローラ部３６は、メモリ４に対する直接的なアクセスを制御することができる。すなわち、アクセスコントローラ部３６は、アドレス比較部３３から入力されるメモリアクセス不可信号に従って、アドレスデコーダ部３２からアドレス比較部３３に入力される読み出しアドレスにアクセスしない。また、アクセスコントローラ部３６は、アドレス比較部３３から入力されるメモリアクセス要求信号に従って、アドレスデコーダ部３２からアドレス比較部３３に入力される読み出しアドレスにアクセスする。
【００５２】
バッファ部３７は、ホストシステム１が読み出すデータを格納する。ホストシステム１がメモリ４からデータを読み出す場合、バッファ部３７は、その読み出しデータを新たにメモリ４から読み出して格納する。ホストシステム１がバッファ部３７からデータを読み出す場合、バッファ部３７は、その読み出しデータを新たにメモリ４から読み出して格納することなく、すでに格納されている読み出しデータをそのまま保持する。
【００５３】
バッファ部３７は、読み出しデータを新たに格納することがあるため、書き換え可能なメモリである必要がある。第１の実施の形態においては、ホストシステム１とバッファ部３７の間のアクセスを高速にするため、バッファ部３７としてＳＲＡＭを使用している。しかし、他の書き換え可能なメモリにおいても、本発明を実施することは可能である。
【００５４】
以上に説明したホストシステム１およびメモリモジュール２から構成される情報処理装置において、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減するための処理の流れを説明する。図２は、第１の実施の形態に係るホストシステム１がデータを読み出す処理の流れを示す図である。図２でのステップＳは、図１でのステップＳに対応している。第１の実施の形態においては、ホストシステム１は、ページ単位でデータを読み出している。また、バッファ部３７は、１ページ分のデータを格納することができる。
【００５５】
まず、ホストシステム１にメモリモジュール２を装着する。ホストシステム１がゲーム機本体、メモリモジュール２がゲームカートリッジである場合、ホストシステム１にメモリモジュール２を挿入する。そして、ホストシステム１の電源をオンにする。
【００５６】
アクセスコントローラ部３６は、アドレス比較部３３が設定した初期値を取得する（ステップＳ１）。ここで、初期値および後で詳述する現在値は、ページやブロックの先頭箇所などである。第１の実施の形態においては、ホストシステム１は、ページ単位でデータを読み出しているため、初期値および現在値は、ページの先頭箇所としている。
【００５７】
アドレス比較部３３が初期値を設定する方法について、具体例を挙げて説明する。まず、以前にホストシステム１の電源をオフにした際に、アドレス比較部３３が設定していた現在値を、ホストシステム１の電源をオンにする際に、そのまま初期値として設定する方法がある。次に、ホストシステム１の電源をオンにするたびに、ある特定の初期値を設定する方法がある。
【００５８】
アドレス比較部３３が初期値を設定するにあたり、ホストシステム１の電源をオフにしているときにも初期値を格納している不揮発性メモリを、メモリモジュール２が有していることが望ましい。初期値を格納する不揮発性メモリとして、アドレス比較部３３内部の不揮発性メモリ、不揮発性メモリであるメモリ４の一部、その他の別個の不揮発性メモリなどが挙げられる。もっとも、ホストシステム１の電源をオンにするたびに、ある特定の初期値を設定するときには、メモリ４がその特定の初期値を格納するようにしてもよい。
【００５９】
アドレス比較部３３が設定した初期値を取得したアクセスコントローラ部３６は、その初期値が示すアドレスのデータを、メモリ４にアクセスして読み出す。そして、そのデータは、バッファ部３７に格納される（ステップＳ２）。以上に説明した処理の流れにより、初期化段階は終了する。
【００６０】
次に、ホストシステム１から出力された読み出しコマンドが、インターフェース部３１を介して、アドレスデコーダ部３２に入力される（ステップＳ３）。アドレスデコーダ部３２は、その読み出しコマンドから読み出しアドレスを抽出して、アドレス比較部３３およびアクセスコントローラ部３６に出力する（ステップＳ４）。
【００６１】
アドレス比較部３３は、ステップＳ１で設定した初期値が示すアドレスと、アドレスデコーダ部３２から入力された読み出しアドレスを比較する（ステップＳ５）。初期値が示すアドレスと読み出しアドレスが一致することは、ホストシステム１が読み出そうとするデータは、ステップＳ２でバッファ部３７に格納されたデータと一致することを示している。また、初期値が示すアドレスと読み出しアドレスが一致しないことは、ホストシステム１が読み出そうとするデータは、ステップＳ２でバッファ部３７に格納されたデータと一致しないことを示している。以下において、初期値が示すアドレスと読み出しアドレスが一致する場合と一致しない場合のそれぞれについて、処理の流れを説明する。
【００６２】
まず、ステップＳ１で設定した初期値が示すアドレスと、アドレスデコーダ部３２から入力された読み出しアドレスが一致する場合を考える。アドレス比較部３３は、バッファアクセスパスへの切替信号“０”を、データセレクタ部３４およびＲＤＹ／ＢＳＹセレクタ部３５に出力する（ステップＳ６）。また、アドレス比較部３３は、アクセスコントローラ部３６に、メモリアクセス不可信号を出力する（ステップＳ７）。
【００６３】
アドレス比較部３３は、ステップＳ１で設定した初期値が示すアドレスを、アドレスデコーダ部３２から入力された読み出しアドレスに更新する（ステップＳ８）。ステップＳ１で説明した現在値は、後者のアドレスを示すものである。両アドレスが一致する場合を考えているため、アドレス比較部３３がステップＳ１で設定した初期値が示すアドレスを更新しないようにしてもよい。
【００６４】
メモリアクセス不可信号を入力されたアクセスコントローラ部３６は、Ｎｏ  ｏｐｅｒａｔｉｏｎ状態になる（ステップＳ９）。バッファアクセスパスへの切替信号“０”を入力されたＲＤＹ／ＢＳＹセレクタ部３５は、インターフェース部３１を介して、ＲＤＹ／ＢＳＹ信号（固定値“１”）を、ホストシステム１に出力する。ＲＤＹ／ＢＳＹ信号（固定値“１”）は、バッファ部３７の動作状態によらない、常時ＲＤＹ信号を示している。ホストシステム１は、ＲＤＹ／ＢＳＹ信号（固定値“１”）をポーリングして、ステップＳ２でバッファ部３７に格納されたデータを読み出す（ステップＳ１０）。すなわち、バッファ部３７の動作状態によらず、ホストシステム１は、バッファ部３７から高速にデータを読み出すことができる。バッファ部３７は、ステップＳ２で格納されたデータをそのまま保持する（ステップＳ１１）。
【００６５】
ホストシステム１の電源をオフにしないならば、処理はステップＳ３から続行される。続行される処理の流れについては、後で簡単に説明する。ホストシステム１の電源をオフにするならば、処理は終了する。
【００６６】
以上に説明した処理の流れにより、ステップＳ１で設定した初期値が示すアドレスと、アドレスデコーダ部３２から入力された読み出しアドレスが一致する場合には、ホストシステム１は、メモリ４にアクセスすることなく、バッファ部３７にアクセスすることにより、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減して、データを読み出すことができる。
【００６７】
次に、ステップＳ１で設定した初期値が示すアドレスと、アドレスデコーダ部３２から入力された読み出しアドレスが一致しない場合を考える。アドレス比較部３３は、メモリアクセスパスへの切替信号“１”を、データセレクタ部３４およびＲＤＹ／ＢＳＹセレクタ部３５に出力する（ステップＳ１２）。また、アドレス比較部３３は、アクセスコントローラ部３６に、メモリアクセス要求信号を出力する（ステップＳ１３）。
【００６８】
アドレス比較部３３は、ステップＳ１で設定した初期値が示すアドレスを、アドレスデコーダ部３２から入力された読み出しアドレスに更新する（ステップＳ１４）。ステップＳ１で説明した現在値は、後者のアドレスを示すものである。
【００６９】
メモリアクセス要求信号を入力されたアクセスコントローラ部３６は、アドレスデコーダ部３２からアドレス比較部３３に入力された読み出しアドレスにアクセスする（ステップＳ１５）。メモリアクセスパスへの切替信号“１”を入力されたＲＤＹ／ＢＳＹセレクタ部３５は、インターフェース部３１を介して、ＲＤＹ／ＢＳＹ信号をホストシステム１に出力する。ホストシステム１は、ＲＤＹ／ＢＳＹ信号をポーリングすることにより、メモリ４がＲＥＡＤＹ状態にあることを確認したうえで、メモリ４に格納されたデータを読み出す（ステップＳ１６）。バッファ部３７は、ステップＳ２で格納されたデータを、ホストシステム１が読み出したデータに更新する（ステップＳ１７）。
【００７０】
ホストシステム１の電源をオフにしないならば、処理はステップＳ３から続行される。すなわち、ホストシステム１から出力された新たな読み出しコマンドに係る読み出しアドレスと、現在値が示すアドレスを、アドレス比較部３３が比較する（ステップＳ５）。読み出しコマンドと現在値が示すアドレスが一致する場合には、ホストシステム１はバッファ部３７からデータを読み出す（ステップＳ１０）。読み出しコマンドと現在値が示すアドレスが一致しない場合には、ホストシステム１はメモリ４からデータを読み出す（ステップＳ１６）。ホストシステム１がさらに新たな読み出しコマンドを出力する際にも、同様の処理が続行される。ホストシステム１の電源をオフにするならば、処理は終了する。
【００７１】
以上に説明した処理の流れにおいて、ホストシステム１が次々に読み出しコマンドを出力する際に、アドレス比較部３３が格納する初期値または現在値が示すアドレスおよび読み出しアクセス対象がどのように変化するかを具体的に説明する。
【００７２】
図３は、第１の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。上部から下部まで移動するに従って、時間が経過していることを示している。図３の二重線以下の１行目は、初期値または現在値が示すアドレスがページＰ１である際に、ホストシステム１がページＰ１を読み出しアドレスとする読み出しコマンドを出力すると（ステップＳ３）、アドレス比較部３３が両アドレスは一致していると判断したため（ステップＳ５）、バッファ部３７が読み出しアクセス対象となることを示している（ステップＳ１０）。
【００７３】
アドレス比較部３３は、初期値または現在値が示すアドレスを、読み出しアドレスに更新する（ステップＳ８）。両アドレスが一致する場合には、アドレス比較部３３が、初期値または現在値が示すアドレスを更新しないようにしてもよい。また、バッファ部３７は、すでに格納されているページＰ１のデータをそのまま保持する（ステップＳ１１）。
【００７４】
図３の二重線以下の３行目は、現在値が示すアドレスがページＰ１である際に、ホストシステム１がページＰ２を読み出しアドレスとする読み出しコマンドを出力すると（ステップＳ３）、アドレス比較部３３が両アドレスは一致しないと判断したため（ステップＳ５）、メモリ４が読み出しアクセス対象となることを示している（ステップＳ１６）。
【００７５】
アドレス比較部３３は、現在値が示すアドレスを、読み出しアドレスに更新する（ステップＳ１４）。また、バッファ部３７は、すでに格納されているページＰ１のデータを、ページＰ２のデータに更新する（ステップＳ１７）。図３の二重線以下の５行目および７行目においても、図３の二重線以下の１行目および３行目で説明したような処理が行われている。
【００７６】
{第２の実施の形態}
第１の実施の形態において、ホストシステム１が前回読み出したデータを今回も読み出す際には、メモリ４にアクセスすることなく、バッファ部３７にアクセスすることにより、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。ここで、ホストシステム１が、ページＰ１およびページＰ２を読み出しアドレスとする読み出しコマンドを、たとえば交互に出力するような場合であっても、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる手段について、第２ないし第４の実施の形態において、それぞれ、図４ないし図６を用いて説明する。ここで、第２ないし第４の実施の形態におけるメモリモジュール２の構成と機能などは、図１で示した第１の実施の形態におけるものと同様である。
【００７７】
図４は、第２の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。初期値または現在値が示すアドレスは、ホストシステム１が最近３回出力した読み出しコマンドに係る読み出しアドレスであり、アドレス比較部３３に格納されている。図４では、アドレス比較部３３に格納されている読み出しアドレスを、ホストシステム１から出力された順序で、左端から右端に向けて記載している。たとえば、「ページＰ１、Ｐ２、Ｐ３」とは、ホストシステム１が、Ｐ１、Ｐ２、Ｐ３の順序で読み出しアドレスを出力したことを示している。ホストシステム１は、ページ単位でデータを読み出している。また、バッファ部３７は、アドレス比較部３３が３個のアドレスを格納することに対応して、３ページ分のデータを格納することができる。
【００７８】
新たな読み出しアドレスが初期値または現在値が示すアドレスに含まれている場合には、バッファ部３７が読み出しアクセス対象となる。バッファ部３７は、すでに格納されたデータをそのまま保持する。
【００７９】
新たな読み出しアドレスが初期値または現在値が示すアドレスに含まれていない場合には、メモリ４が読み出しアクセス対象となる。バッファ部３７は、上述した最近３回の読み出しコマンドのデータのうち、最先の読み出しコマンドのデータを、新たな読み出しコマンドのデータに更新する。
【００８０】
新たな読み出しアドレスが初期値または現在値が示すアドレスに含まれている場合と含まれていない場合に関わらず、アドレス比較部３３は、初期値または現在値が示すアドレスを更新する。すなわち、ホストシステム１が新たな読み出しコマンドを出力する前における、上述した最近３回の読み出しコマンドに係る読み出しアドレスのうち、最先の読み出しコマンドに係る読み出しアドレスを削除して、新たな読み出しコマンドに係る読み出しアドレスを追加する更新をする。
【００８１】
{第３の実施の形態}
図５は、第３の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。初期値または現在値が示すアドレスは、ホストシステム１が最近５回出力した読み出しコマンドに係る読み出しアドレスのうち、読み出し回数が多い上位２位の読み出しアドレスであり、アドレス比較部３３に格納されている。ホストシステム１は、ページ単位でデータを読み出している。また、バッファ部３７は、アドレス比較部３３が読み出し回数が多い上位２位のアドレスを格納することに対応して、２ページ分のデータを格納することができる。
【００８２】
ここで、第３の実施の形態においては、アドレス比較部３３は、初期値または現在値が示すアドレスのみならず、ホストシステム１が最近５回に出力した読み出しコマンドに係る読み出しアドレスをも格納する必要がある。もっとも、バッファ部３７は、最近５回に出力した読み出しコマンドのデータすべてを格納する必要はなく、読み出し回数が多い上位２位のデータを格納すればよい。
【００８３】
第３の実施の形態を応用する実施例として、アドレス比較部３３は、ホストシステム１が出力した読み出しコマンドに係る読み出しアドレスについて、出力回数のヒストグラムを格納する。そして、アドレス比較部３３は、格納するヒストグラムを参照して、出力回数の多い読み出しアドレスを選択して、ホストシステム１が今回出力する読み出しコマンドに係る読み出しアドレスと比較するのである。
【００８４】
アドレス比較部３３が出力回数のヒストグラムを格納する実施例として、まず、ホストシステム１の電源をオンにしてからオフにするまでの間に、ホストシステム１が出力した読み出しコマンドに係る読み出しアドレスについて、アドレス比較部３３は出力回数のヒストグラムを格納する。そして、出力回数が多い読み出しアドレスを、次回にホストシステム１の電源をオンにする際に、初期値が示すアドレスとして設定することができる。
【００８５】
アドレス比較部３３が出力回数のヒストグラムを格納する実施例として、次に、ホストシステム１が所定回数の出力において出力した読み出しコマンドに係る読み出しアドレスについて、アドレス比較部３３は出力回数のヒストグラムを格納する。出力回数が多い所定条件を満たす読み出しアドレスを比較アドレスとして設定して、比較アドレスに係るデータをバッファ部３７に格納する。
【００８６】
比較アドレスに係るデータをバッファ部３７に格納した後に、アドレス比較部３３は既に格納している出力回数のヒストグラムを消去する。ホストシステム１が次の所定回数の出力において出力する読み出しコマンドに係る読み出しアドレスが、既に設定されている比較アドレスと一致する場合には、ホストシステム１はバッファ部３７から読み出しアドレスに係るデータを読み出す。
【００８７】
ホストシステム１が次の所定回数の出力において出力した読み出しコマンドに係る読み出しアドレスについて、アドレス比較部３３は出力回数のヒストグラムを新たに格納する。出力回数が多い所定条件を満たす読み出しアドレスを新たな比較アドレスとして設定して、新たな比較アドレスに係るデータをバッファ部３７に格納する。ここで、新たな比較アドレスに係るデータが既にバッファ部３７に格納されていれば、新たな比較アドレスに係るデータをメモリ４からバッファ部３７に改めて格納しなくてもよい。以後は同様な処理の流れが続行されることになる。
【００８８】
{第４の実施の形態}
図６は、第４の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。初期値または現在値が示すアドレスは、ある特定の初期値が示す３個のアドレスであり、ホストシステム１が次々に読み出しコマンドを出力する際にも、アドレス比較部３３によって更新されないアドレスである。ホストシステム１は、ページ単位でデータを読み出している。また、バッファ部３７は、アドレス比較部３３が３個のアドレスを格納することに対応して、３ページ分のデータを格納することができる。
【００８９】
上述したある特定の初期値が示すアドレスとして、具体例として以下のようなアドレスが挙げられる。まず、ホストシステム１が繰り返し出力する可能性が高いと想定される読み出しコマンドに係る読み出しアドレスが挙げられる。この場合には、アドレス比較部３３は、このアドレスを更新することなく格納して、バッファ部３７は、このアドレスに係るデータを更新することなく格納することになる。メモリ４が格納するデータを設計する際に、ホストシステム１がある特定のデータを繰り返し読み出す可能性が高いと想定される場合に便利である。
【００９０】
上述したある特定の初期値が示すアドレスとして、次に、ホストシステム１が処理する際にエラーが発生する可能性が高いと想定されるデータに係るアドレスが挙げられる。ホストシステム１がデータを処理する際にエラーが発生する場合として、たとえば、メモリ４からデータが読み出される際に、そのデータにエラーが発生する場合と、メモリ４からデータが読み出される際に、他のデータにエラーが発生する場合などが考えられる。メモリ４からデータが読み出される際に、他のデータにエラーが発生する場合においては、読み出し対象でないメモリセルが格納するデータが意図せず書き換えられる場合を考慮している。
【００９１】
ホストシステム１がデータを処理する際にエラーが発生する場合においても、アドレス比較部３３は、このアドレスを更新することなく格納して、バッファ部３７は、このアドレスに係るデータを更新することなく格納することになる。メモリ４のメモリセルアレイの構造上、エラーが発生する可能性が高いと想定されるデータが特定されている場合に便利である。
【００９２】
｛第５の実施の形態｝
第１ないし第４の実施の形態において、ホストシステム１が繰り返し読み出すデータについて、“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。ここで、ホストシステム１が繰り返し読み出すデータについて、実際にエラーが発生した場合にも、本発明を実施することができる。
【００９３】
ホストシステム１がデータを処理してエラーが発生するたびに、アドレス比較部３３は、エラーが発生したデータに係るアドレスを格納する。また、バッファ部３７は、誤り訂正が施されたデータを格納する。ホストシステム１の電源をオフにした際に、アドレス比較部３３が格納していたエラーが発生したデータに係るアドレスを、ホストシステム１の電源をオンにする際に、アドレス比較部３３はそのまま格納する。
【００９４】
ホストシステム１は、実際にエラーが発生した後に誤り訂正が施されたデータを今後も繰り返し読み出す場合にも、メモリ４から読み出すことなく、バッファ部３７から読み出すことができるため、更なる“Ｒｅａｄ  Ｄｉｓｔｕｒｂ”現象を回避または低減することができる。
【図面の簡単な説明】
【００９５】
【図１】第１ないし第４の実施の形態に係るメモリモジュールのブロック図である。
【図２】第１の実施の形態に係るホストシステムがデータを読み出す処理の流れを示す図である。
【図３】第１の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。
【図４】第２の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。
【図５】第３の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。
【図６】第４の実施の形態に係る初期値または現在値が示すアドレスおよび読み出しアクセス対象の時系列変化を示す図である。
【図７】ＮＡＮＤフラッシュメモリの模式図である。
【符号の説明】
【００９６】
１  ホストシステム
２  メモリモジュール
３  メモリコントローラ
４  メモリ
３１  インターフェース部
３２  アドレスデコーダ部
３３  アドレス比較部
３４  データセレクタ部
３５  ＲＤＹ／ＢＳＹセレクタ部
３６  アクセスコントローラ部
３７  バッファ部
４１  ビット線
４２、４３、４４  ワード線
５２  選択セル
５３  非選択セル
５４  選択トランジスタ
【図１】
2008181399.tif 000003
【図２】
2008181399.tif 000004
【図３】
2008181399.tif 000005
【図４】
2008181399.tif 000006
【図５】
2008181399.tif 000007
【図６】
2008181399.tif 000008
【図７】
2008181399.tif 000009