説明

メモリシステム

【課題】フラッシュメモリの寿命を拡大させるメモリシステムを提供する。
【解決手段】ホストHSTよりコントローラCTLを介してフラッシュメモリFMに対して書き込み命令がなされた場合に、CTLは、当該書き込みデータをRAMに格納し(S101)、当該書き込みデータがオールゼロ(ALL 00h)か否かをオールゼロ判定部ALL0Jを用いて判定する(S104)。当該書き込みデータがオールゼロであった場合、CTLは、当該書き込み命令に伴う論理アドレスに対応したFMのブロックに対して消去コマンドを発生する(S105)。これによって、オールゼロの書き込み命令がなされたFMのブロックを消去状態(オールイチ(ALL FFh))に保てるため、このブロックを、不良ブロックの救済用や、オールゼロ以外の書き込み用で使用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリシステムに関し、特に、フラッシュメモリを含むストレージデバイスといったメモリシステムに適用して有効な技術に関するものである。
【背景技術】
【0002】
例えば、非特許文献1には、ATA/ATAPIのハードウェア構成や、コネクタピン配置、電気的特性などの物理仕様の概要が記載されている。非特許文献2には、PCカードの規格の基本概要や、ピンアサインや基本的なアクセスタイミングなどの電気的規格が記載されている。また、スマートメディア(登録商標)に対するECC(Error Correcting Code)の生成方法や、書き込みアルゴリズムなどが記載されている。非特許文献3には、SCSIインタフェースに関する各種仕様が記載されている。
【0003】
また、規格「ATA/ATAPI-4(NCITS 317-1998 )」、「PC Card Standard Release7」、「SCSI I/F」、「ATA/ATAPI-7(ANSI INCITS 397-2005)」には、IDEインタフェース、PCカードインタフェース、SCSIインタフェースならびにシリアルATAインタフェースに関する各種規格が定義されている。
【非特許文献1】「ATA(IDE)/ATAPIの徹底研究」、CQ出版社、p.8−p.29
【非特許文献2】「PCカード/メモリカードの徹底研究」、CQ出版社、p.8−p.39,p.200−p.215
【非特許文献3】「最新SCSIマニュアル」、CQ出版社、p.144−p.181
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、前記のようなフラッシュメモリを含むメモリシステムの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【0005】
近年、NAND型やAND型といったフラッシュメモリは、ハードディスクの代替え手段として需要が拡大している。このようなフラッシュメモリは、例えばセクタ(512バイト)単位やページ(512バイトや2Kバイト等)単位、あるいは複数の連続セクタからなるブロック単位などでアクセス可能となっており、プロセッサ等を含む各種ホスト機器に接続して使用される。
【0006】
図15は、本発明の前提として検討したメモリシステムにおいて、それに含まれるフラッシュメモリの記憶状態の一例を示す説明図である。図15に示すフラッシュメモリFMは、例えば、物理アドレス(PADD)#Nに該当するブロックBLKnに所定のデータ(DAT_A)が書き込まれており、PADD#L〜#Mに該当するブロックBLKl〜BLKmに全て‘0’となるデータ(ALL 00h)が書き込まれている。また、PADD#M+1〜#Kに該当するブロックBLKm1〜BLKkは、消去状態であり、結果として全て‘1’となるデータ(ALL FFh)が書き込まれている。ここで、「xxh」は16進数のバイト表示を意味するものである。
【0007】
各ブロックBLKn〜BLKkの記憶領域内には、通常、データ記憶領域に加えて冗長記憶領域が備わっている。この冗長記憶領域には、自ブロックの有効/無効を示すステータス領域STA_ARや、自ブロックに割り当てられた論理アドレス(LADD)を格納する論理アドレス領域LADD_ARや、自ブロックのデータに対して生成したエラーコードを格納するエラーコード領域ECC_ARなどが含まれている。エラーコードは、通常、ECC(Error Correcting Code)が用いられる。
【0008】
このようなフラッシュメモリFMは、例えば10万回といった書き込み回数の制約が課せられている。したがって、メモリシステムは、ホストHSTよりフラッシュメモリFMに対して書き込みを行う場合、フラッシュメモリの寿命を延ばすために、例えば書き込み回数を平均化する処理などを行う。図15の例では、ホストHSTが、例えばブロックBLKnの論理アドレス領域LADD_AR_Nに格納されている論理アドレスに対して書き込みを行う場合、当該データをBLKnに書き込まずに、消去状態である例えばブロックBLKm1に書き込む。そして、BLKm1の論理アドレス領域LADD_AR_M1に当該論理アドレスを格納し、また、生成したエラーコードをエラーコード領域ECC_AR_M1に格納する。その後、ホストHSTは、元のブロックBLKnに対して消去を行う。このブロックBLKnは、その後の新たな書き込みで使用される。
【0009】
このように、新たな書き込みを消去状態のブロック(未使用ブロック)に対して行うことで、特定のブロックに書き込みが集中することを避け、フラッシュメモリの寿命を延ばすことが可能となる。しかしながら、例えばパーソナルコンピュータシステムなどでは、ブロックBLKl〜BLKmに示すように、フォーマット時の空データなどの意味合いでALL‘0’を書き込む場合があることが本発明者の検討によって見い出された。また、例えば、画像データや音声データなどにおいて、変化が無い部分に該当するデータがこのようなデータになることも想定し得る。
【0010】
このようなALL 00hが書かれたブロックは、フラッシュメモリFM内でその状態が長く継続する可能性が高く、これにより、フラッシュメモリの寿命が短くなってしまう。これは、前述したような書き込みブロックの入れ替えが、この「ALL 00h」が書かれたブロックを除いたブロック間で行われることに起因する他、不良ブロックが発生した場合の対策となる予備ブロックの数が少なくなることにも起因する。不良ブロックが発生した場合は、例えば当該不良ブロックのステータス領域STA_ARで無効を定義し、その代わりに消去状態のブロックを新たに確保することで不良の救済が可能となる。
【0011】
さらに、ブロックに「ALL 00h」が書き込まれることで、処理速度の低下を招く恐れがある。すなわち、フレッシュメモリFMは、‘0’を書き込む際に多くの時間を要するため、「ALL 00h」が書かれたブロックが多数におよぶと、その書き込み時間の影響が無視できないものとなる。
【0012】
そこで、本発明の目的は、フラッシュメモリの寿命を拡大させるメモリシステムを提供することにある。また、本発明の他の目的は、ホストとフラッシュメモリ間の処理速度を向上させるメモリシステムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0013】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、次の通りである。
【0014】
本発明のメモリシステムは、不揮発性メモリ(フラッシュメモリ)と、ホストからの命令を受けてフラッシュメモリを制御するコントローラを含んだものとなっている。そして、コントローラは、ホストより第1論理アドレスに対する例えばオールゼロ(ALL 00h)の書き込み命令を受けた際に、当該第1論理アドレスに対応するフラッシュメモリの記憶領域を消去状態(オールイチ(ALL FFh))に保持する制御を行うものとなっている。
【0015】
このように、第1論理アドレスに対応するフラッシュメモリの記憶領域を消去状態に保持することによって、この記憶領域を、不良となった記憶領域の救済用や、オールゼロ以外のデータの書き込み用として使用することができ、フラッシュメモリの寿命を拡大することが可能となる。さらに、オールゼロのデータをフラッシュメモリに書き込まないため、これに伴う書き込み時間を削減でき、ホストとフラッシュメモリ間の処理速度を向上させることが可能となる。
【0016】
また、本発明のメモリシステムは、前述したような機能に加えて、更に、コントローラが、ホストから前述した第1論理アドレスに対する読み出し命令を受けた際に、ホストに対してオールゼロ(ALL 00h)を返信する機能を備えるものとなっている。これによって、ホストに対して正しいデータを返信することが可能となる。
【発明の効果】
【0017】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、フラッシュメモリの寿命が拡大可能となる。また、ホストとフラッシュメモリ間の処理速度が向上可能となる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。
【0019】
また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【0020】
(実施の形態1)
図1は、本発明の実施の形態1によるメモリシステムにおいて、その構成の一例を示すブロック図である。図1のメモリシステムは、NAND型、AND型といったセクタ単位又はページ単位あるいはブロック単位でアクセス可能なフラッシュメモリ(不揮発性メモリ)FMと、ホストHSTからの命令を受けてフラッシュメモリFMを制御するコントローラCTLによって構成される。コントローラCTLは、例えば、コマンド制御や通信制御といったホストHSTとフラッシュメモリFM間の一般的なインタフェース部(図示せず)を含む他に、エラーコード処理部ECCGと、揮発性メモリRAMと、オールゼロ判定部ALL0Jを備えている。
【0021】
エラーコード処理部ECCGは、フラッシュメモリFMへの書き込みデータやFMからの読み出しデータに対して例えばECC(Error Correcting Code)といったエラーコードを生成する。書き込みデータに対して生成されたエラーコードは、図15に示したように、書き込み対象ブロックBLKのエラーコード領域ECC_ARに書き込まれる。また、読み出しデータに対して生成されたエラーコードは、読み出し対象ブロックBLKのエラーコード領域ECC_ARから読み出されたエラーコードと比較判定され、その結果、エラー検出やエラー訂正が行われる。なお、エラーコード処理部ECCGは、例えばハードウェア回路によって実装される。揮発性メモリRAMは、例えばSRAMやSDRAM等であり、オールゼロ判定部ALL0Jは、フラッシュメモリFMへの書き込みデータ(エラーコード等は除く)が全て‘0’であるか否かを判定する機能を備えている。
【0022】
このような構成において、ホストHSTが、フラッシュメモリFMに対してオールゼロ(ALL 00h)の書き込み命令を発生すると、コントローラCTLが、この書き込み命令、書き込みデータ、ならびに書き込み対象の論理アドレスLADDなどを受けて、書き込みデータ(ALL 00h)をRAMに格納する(S101)。次いで、コントローラCTLは、このRAMに保存した書き込みデータをエラーコード処理部ECCGに転送することで当該書き込みデータに対するエラーコードを生成し(S102)、このエラーコードをRAMに格納する(S103)。
【0023】
続いて、コントローラCTLは、このRAMに格納された書き込みデータならびにエラーコードの内の書き込みデータの部分をオールゼロ判定部ALL0Jに転送する。オールゼロ判定部ALL0Jは、例えば、各バイト毎の比較やデータ総和によって書き込みデータがオールゼロか否かを判定する(S104)。図13は、図1におけるオールゼロ判定部の構成例を示す概略図であり、(a)は各バイト毎の比較を行う構成例、(b)はデータ総和によって判定を行う構成例である。
【0024】
図13(a)の構成例では、RAMより、例えばバイト単位で書き込みデータの大きさに応じた回数分(N回)の読み出しを行い、その都度各バイト毎にオールゼロか否かの判定を行う。具体的には、例えば「00h」を比較対象として判定を行ったり、8ビットのOR演算を行うなどで判定が可能である。図13(b)の構成例では、RAMより、例えばバイト単位で書き込みデータの大きさに応じた回数分(N回)の読み出しを行い、その各バイトのデータを加算器ADDによって全て加算する。書き込みデータがオールゼロの場合にのみ加算結果がゼロとなるため、オールゼロ判定が可能である。なお、オールゼロ判定部ALL0Jは、専用の回路を設ける他に例えばプロセッサを用いた演算処理などによっても実現可能である。
【0025】
ここで、オールゼロ判定部ALL0Jによって書き込みデータがオールゼロと判定された場合、コントローラCTLは、当該書き込み命令を無効にし、フラッシュメモリFMの記憶状態を変えないように制御する。言い換えれば、書き込み対象ブロックBLKが消去状態(オールイチ(ALL FFh))を維持できるように制御する。ここでは、その一例として、フラッシュメモリFMの書き込み対象ブロックBLKに対して消去コマンドを発生する(S105)。フラッシュメモリFMでは、消去状態のブロックBLKに対して消去コマンドが入力された場合、通常は、何も行われない。
【0026】
一方、例えば、ホストHSTからの書き込みデータがオールゼロでなかった場合、オールゼロ判定部ALL0Jによってオールゼロで無いと判定される。そして、これを受けてコントローラCTLは、例えば、図15で述べたようにフラッシュメモリFMの中から未使用ブロックBLKを確保し、当該ブロックに対して当該書き込みデータを書き込むと共に、エラーコード領域ECC_ARへのエラーコードの書き込みや、論理アドレス領域LADD_ARへの論理アドレスの書き込みなども併せて行う。したがって、例えば、ホストHSTよりオールイチ(ALL FFh)の書き込み命令があったような場合は、エラーコードや論理アドレスの書き込みが行われるため消去状態とは区別される。
【0027】
以上のように、本実施の形態1のメモリシステムを用いることで、ホストHSTからのオールゼロの書き込み命令に対して、当該書き込み対象ブロックBLKの消去状態を維持できるようになるため、当該書き込み対象ブロックBLKを後のオールゼロ以外の書き込み時に使用することができる。また、当該書き込み対象ブロックBLKを不良ブロックの救済用として使用することができる。したがって、フラッシュメモリFMの寿命を拡大することが可能となる。さらに、オールゼロの書き込みを行わずに済むため、この書き込みに要する時間を低減でき、ホストHSTとフラッシュメモリFM間の処理速度を向上させることが可能となる。
【0028】
なお、ここでは、消去状態がオールイチ(ALL FFh)のフラッシュメモリFMを用いる場合で説明を行ったが、消去状態がオールゼロ(ALL 00h)であるフラッシュメモリを用いる場合は、オールゼロ判定部ALL0Jを設ける代わりにオールイチ判定部を設けて、同様な動作を行えばよい。
【0029】
(実施の形態2)
図2は、本発明の実施の形態2によるメモリシステムにおいて、その構成の一例を示すブロック図である。図2のメモリシステムは、図1のメモリシステムにおけるオールゼロ判定部ALL0Jの代わりに、エラーコード(ここではECC)を参照することで書き込みデータがオールゼロ(ALL 00h)か否かの判定を行うECC判定部ECCJGEを備えた構成となっている。それ以外の構成については図1のメモリシステムと同様である。
【0030】
ECCでは、例えば512バイトの書き込みデータに対して32ビットのパリティビットを設けるなどでビットエラーの検出やエラー訂正を行っている。各パリティビットの値は、書き込みデータ内の所定のビットに対する排他的論理和(EXOR)の演算で算出されるが、書き込みデータがオールゼロ(ALL 00h)の場合には各パリティビットの値が全て‘0’(反転論理を用いる場合は全て‘1’)となる。一方、書き込みデータの中に‘1’が含まれている場合は、各パリティビットのいずれかが必ず‘1’(反転論理を用いる場合は‘0’)となるため、これによってオールゼロ(ALL 00h)であることを検出することが可能となる。なお、ECCによる判定ではオールゼロとオールイチの区別がつかないことも考えられるが、この場合は、実際の書き込みデータの一部を参照すればよい。
【0031】
さらに排他的論理和(EXOR)を用いないECC生成方法の場合でも、同様にオールゼロとオールイチのデータに対して固有のコードを作成する為、判断が可能である。
【0032】
このようにECCによるオールゼロの判定を用いると、書き込みデータ自身を判定する場合に比べて判定対象となるビット数が少なくてよいため、回路規模、または判定速度の点で有益となる。なお、オールゼロの判定処理は、これを行わない従来技術のメモリシステムから見るとオーバーヘッドとなるため、可能な限り高速であることが望ましい。
【0033】
(実施の形態3)
図3は、本発明の実施の形態3によるメモリシステムにおいて、その構成の一例を示すブロック図である。図3のメモリシステムは、図1や図2に示したメモリシステムにおける揮発性メモリRAMをコントローラCTLの外部に設けた構成となっている。RAMの記憶容量は、書き込み単位(セクタ、ページなど)や、例えば管理テーブル等を設ける場合にはそれに必要な容量などに応じて定められる。書き込み単位の大きさは、インタフェース規格に応じて様々であるため、これに応じて必要なRAMの容量も異なることになる。したがって、RAMを外部に設けることで、コントローラ内にRAMを内蔵または実装する場合と比較して、様々な規格に対して柔軟に対応することが可能となる。
【0034】
(実施の形態4)
図4は、本発明の実施の形態4によるメモリシステムにおいて、その構成の一例を示すブロック図である。図4のメモリシステムは、図1のメモリシステムにおける揮発性メモリRAM内に管理テーブルTBを備えた構成となっている。それ以外の構成については図1のメモリシステムと同様である。図14は、図4のメモリシステムにおける管理テーブルの構成例を示す概念図である。
【0035】
管理テーブルTBは、物理ブロックの状態情報、及び論理アドレスLADDを管理するものとなっている。図14の管理テーブルTBの例では、例えば、各物理アドレスのイレース済(Eraseフラグ)・正常性(不良フラグ)などの状態情報を管理している。また、別領域で各論理アドレスLADD毎に、それに割り当てられた物理アドレスPADDや、各論理アドレスの使用状態(使用フラグ)などを管理している。ここでは、論理アドレスLADD#Aは未使用状態(使用フラグが‘0’)で、物理アドレスPADD#Nが割り当てられ、論理アドレスLADD#A+1は使用状態(使用フラグが‘1’)で、物理アドレスPADD#N+1が割り当てられている。同様に論理アドレスLADD#A+2は使用状態で、物理アドレスPADD#N+3が割り当てられている状態を示している。
【0036】
このような構成において、ホストHSTよりオールゼロ(ALL 00h)の書き込み命令が生じた場合、図1のS101〜S104と同様にして、RAMへの格納やエラーコードの生成ならびにオールゼロの判定が行われる(S401〜S404)。ここで、オールゼロ判定を行う判定部(ALL0J/ECCJGE)によって書き込みデータがオールゼロであると判定された場合、コントローラCTLは、当該書き込みデータに伴う論理アドレスLADDの使用フラグを未使用状態として管理テーブルTBに登録する(S405)。
【0037】
これによって、コントローラCTLは、当該論理アドレスLADDの書き込みデータがオールゼロ(ALL 00h)であると認識しながら、実際には物理アドレスを割り当てずに、本来割り当てる筈の物理アドレスをその他の書き込み並びに不良の救済に用いることが可能となる。また、ここで、本来割り当てる筈の物理アドレスに対して消去コマンドを発生し(S406)、当該ブロックの消去完了を確認した上で管理テーブルTBを更新すると、より確実に消去状態を維持できる。なお、後に、当該論理アドレスLADDに対してオールゼロ以外の書き込み命令が生じた場合には、管理テーブルTBにおいて当該論理アドレスLADDに物理アドレスPADDを割り当て、使用フラグを使用状態とすればよい。
【0038】
(実施の形態5)
図5は、本発明の実施の形態5によるメモリシステムにおいて、その構成の一例を示すブロック図である。図5に示すメモリシステムは、例えば図4のメモリシステムにおけるRAMをコントローラCTLの外部に設けた構成に対して、遮断検出切替回路DETと、電力保持用のコンデンサC1を加えた構成となっている。それ以外の構成については、図4と同様である。
【0039】
図5のメモリシステムでは、ホストHSTからの電源が遮断検出切替回路DETを介してコンデンサC1に蓄えられ、更にこのコンデンサC1の電力をRAM、コントローラCTLおよびフラッシュメモリFMで使用可能な構成となっている。すなわち、ホストHSTからの電源供給を受けてRAM、CTLおよびFMが動作する構成となっている。
【0040】
このような構成において、ホストHSTからの電源供給が遮断された場合、遮断検出切替回路DETは、この電源遮断を検出し、コンデンサC1に蓄えられた電力がホストHST側にリークしないようにスイッチ等によってホストHSTからの電源供給経路とコンデンサC1とを切り離す。この際に、遮断検出切替回路DETは、コントローラCTLに向けて検出信号SPを送信する。以降、コントローラCTL、RAM、およびフラッシュメモリFMは、このコンデンサC1の電力で動作し、コントローラCTLは、この検出信号SPを受けてRAM内の管理テーブルTBを読み出し、これをフラッシュメモリFMの所定の物理アドレスへ退避する(S507)。なお、以降にホストHSTからの電源供給が行われた際、コントローラCTLは、フラッシュメモリFMに保存した管理テーブルTBを再びRAM上に展開して使用する。
【0041】
このように、電源遮断の際に管理テーブルTBをフラッシュメモリFMへ退避することで、ひとたび電源遮断が行われそれが復帰した以降においても、コントローラに、特定の論理アドレスのデータがオールゼロであることを認識させることができる。これによって、信頼性が高いメモリシステムが実現可能となる。
【0042】
(実施の形態6)
本実施の形態6のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図6は、本発明の実施の形態6によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【0043】
図6に示すメモリシステムは、図1等のメモリシステムと同様に、ホストHSTからの命令を受けるコントローラCTLと、フラッシュメモリFMで構成され、CTLが、アドレス制御部ADCTLaと、消去判定部ESJと、オールゼロ生成部ALL0Gを備えた構成となっている。アドレス制御部ADCTLaは、ホストHSTとの間の論理アドレスLADDとフラッシュメモリFMとの間の物理アドレスPADDとの変換などを行う。
【0044】
変換方法としては、図15で挙げているように、フラッシュメモリFMの例えばBLKnの冗長記憶領域に記載されている割り当てられている論理アドレスLADD_AR_Nをサーチして確認する方法などが考えられる。消去判定部ESJは、フラッシュメモリFMから読み出されたデータが消去状態か否かを判定する。オールゼロ生成部ALL0Gは、フラッシュメモリFMの読み出し単位(セクタ単位、ページ単位、ブロック単位等)に該当する大きさのオールゼロ(ALL 00h)データを生成する。
【0045】
図1等で述べたように、本実施の形態のメモリシステムは、オールゼロの書き込み対象となるブロックBLKが消去状態(すなわちALL FFh)を維持するものとなっている。一方、コントローラCTLは、ホストHSTからこのオールゼロを書き込んだ論理アドレスLADDを対象とする読み出し命令(Read)を受けた際には、ホストHSTに対してはオールゼロを返信する必要がある。
【0046】
そこで、図6の構成例では、コントローラCTLが、ホストHSTより論理アドレスLADDと共に読み出し命令を受けた際には(S601)、アドレス制御部ADCTLaを用いてこの論理アドレスLADDを物理アドレスPADDに変換し、フラッシュメモリFMの当該物理アドレスPADDを読み出しにいく(S602)。ここで、この論理アドレスLADDが、以前にオールゼロの書き込み命令を発生した論理アドレスである場合、当該論理アドレスに対応する物理アドレス上のデータは消去状態となっている筈である。したがって、フラッシュメモリFMからはオールイチ(ALL FFh)が読み出される(S603)。
【0047】
消去判定部ESJは、このフラッシュメモリFMから読み出されたデータを参照し、それが消去状態であると判定した場合、オールゼロ生成部ALL0Gに通知する(S604)。オールゼロ生成部ALL0Gは、この通知を受け、オールゼロ(ALL 00h)のデータを生成してホストHSTに向けて返信を行う(S605)。これによって、ホストHSTに対して正しいデータを返信することが可能となる。
【0048】
(実施の形態7)
本実施の形態7のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図7は、本発明の実施の形態7によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【0049】
図7に示すメモリシステムは、図6のメモリシステムと同様に、ホストHSTからの命令を受けるコントローラCTLと、フラッシュメモリFMで構成される。そして、コントローラCTLが、図6と同様のアドレス制御部ADCTLaと、消去判定部ESJと、図1等で述べたエラーコード処理部ECCGを備え、更に、フラッシュメモリFM内の特定の物理アドレスに、オールゼロ(ALL 00h)のデータとこのオールゼロのデータに対して生成されるエラーコード(ECC)が格納されていることが特徴となっている。
【0050】
このような構成において、コントローラCTLが、ホストHSTから以前にオールゼロの書き込み命令がなされた論理アドレスを対象とする読み出し命令を受けた場合(S701)、図6の場合と同様にアドレス制御部ADCTLaを介して対応する物理アドレスの読み出しを行う(S702,S703)。そして、消去判定部ESJが、この読み出しデータを受け、読み出しデータがオールイチ(ALL FFh)(すなわち消去状態)と判定した場合、コントローラCTLが、予め定めてある特定の物理アドレスに対して読み出しを行う(S704)。
【0051】
この特定の物理アドレスには、予めオールゼロ(ALL 00h)+エラーコード(ECC)が格納されており、コントローラCTLは、この読み出しデータをエラーコード処理部ECCGに転送する(S705)。そして、コントローラCTLは、エラーコード処理部ECCGによるエラー検出またはエラー訂正を経て、オールゼロ(ALL 00h)データをホストHSTに向けて返信する(S706)。
【0052】
これによって、ホストHSTに対して正しいデータを返信することが可能となる。また、エラーコード処理部ECCGによるエラー検出またはエラー訂正を介して返信を行うため、ホストHSTに向けた返信データの信頼性が向上する。さらに、フラッシュメモリFM内の特定の箇所に予めALL 00h+ECCを格納しておくことで、図6のようにコントローラCTL内でオールゼロのデータを生成する必要がないため、コントローラCTLの回路規模を低減でき、また、コントローラCTLは通常の読み出し動作と同様の処理を行えばよいため、その処理が簡素化される。すなわち、オールゼロデータと共に当該データに対応するエラーコードが格納されているため、通常の読み出し動作と同様にエラーコード処理部ECCGを介した処理を行っても不都合は生じない。
【0053】
(実施の形態8)
本実施の形態8のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図8は、本発明の実施の形態8によるメモリシステムにおいて、その構成の一例を示すブロック図である。前述した図7のメモリシステムでは、フラッシュメモリFM内に「オールゼロ(ALL 00h)+エラーコード(ECC)」の格納領域を設けたが、図8のメモリシステムでは、その代わりにコントローラCTLのRAM内に当該領域を備えた構成となっている。それ以外の構成に関しては図7と同様である。
【0054】
すなわち、図8のメモリシステムでは、図7と同様に消去判定部ESJによって読み出し対象ブロックが消去状態と判定されると、コントローラCTLは、RAM内の特定のアドレスに格納された「オールゼロ(ALL 00h)+エラーコード(ECC)」のデータを読み出す(S804)。そして、この読み出しデータは、図7の場合と同様にエラーコード処理部ECCGに転送され(S805)、エラー検出およびエラー訂正が行われた後に、オールゼロ(ALL 00h)のデータがホストHSTに向けて返信される(S806)。
【0055】
このように、RAM内に「オールゼロ(ALL 00h)+エラーコード(ECC)」のデータを設けることで、図7のようにフラッシュメモリFMに対してアクセスを行う必要が無くなるため、ホストHSTとの間の読み出し処理を高速化することが可能となる。
【0056】
(実施の形態9)
本実施の形態9のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図9は、本発明の実施の形態9によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【0057】
図9に示すメモリシステムは、図1等のメモリシステムと同様に、ホストHSTからの命令を受けるコントローラCTLと、フラッシュメモリFMで構成される。コントローラCTLは、アドレス制御部ADCTLbと、図1と同様のエラーコード処理部ECCGと、RAMを含み、RAM内には図4で説明したような管理テーブルTBが格納されている。また、フラッシュメモリFM内には、特定の物理アドレスに、オールゼロ(ALL 00h)のデータとこのオールゼロのデータに対して生成されるエラーコード(ECC)が格納されている。
【0058】
このような構成において、コントローラCTLがホストHSTから読み出し命令を受けた場合(S901)、アドレス制御部ADCTLbが、RAM内の管理テーブルTBを参照して、当該読み出し命令に伴う論理アドレスLADDが以前にオールゼロ書き込み命令がなされたアドレスか否かを判定する(S902)。例えば、図14のような管理テーブルTBであった場合は、当該論理アドレスLADDが#Aであった場合にオールゼロ書き込み命令がなされたアドレスとなる。この場合、コントローラCTLは、予め定めてある特定の物理アドレスに対して読み出し命令を発生する(S903)。
【0059】
この特定の物理アドレスには、予めオールゼロ(ALL 00h)+エラーコード(ECC)が格納されており、コントローラCTLは、この読み出したデータをエラーコード処理部ECCGに転送する(S904)。そして、コントローラCTLは、エラーコード処理部ECCGによるエラー検出またはエラー訂正を経て、オールゼロデータ(ALL 00h)をホストHSTに向けて返信する(S905)。
【0060】
これによって、ホストHSTに対して正しいデータを返信することが可能となる。また、図6等の構成例のように、オールゼロ書き込み命令がなされたアドレスか否かをフラッシュメモリFMを読み出すことで判定する必要がなく、コントローラCTL自身で判定可能となるため、判定処理の容易化または高速化が可能となる。さらに、フラッシュメモリFM内の特定の箇所に予めALL 00h+ECCを格納しておくことで、図7の場合と同様に、信頼性の向上や、コントローラCTLの回路規模の低減、あるいは読み出し動作に伴う処理の簡素化などが実現可能となる。
【0061】
(実施の形態10)
本実施の形態10のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図10は、本発明の実施の形態10によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【0062】
図10に示すメモリシステムは、図9のメモリシステムと同様にRAM内の管理テーブルTBによって読み出し命令を管理するとともに、コントローラCTL内に図6と同様のオールゼロ生成部ALL0Gを備えることでホストHSTに対して返信を行う構成となっている。すなわち、管理テーブルTBによって読み出し対象の論理アドレスが以前にオールゼロ書き込み命令がなされたアドレスであると判定された場合、コントローラCTLは、オールゼロ生成部ALL0Gを制御することでオールゼロ(ALL 00h)のデータをホストHSTに対して返信する。
【0063】
これによって、ホストHSTに対して正しいデータを返信することが可能となる。また、フラッシュメモリFMに対してアクセスを行わずに、コントローラCTL内のみで処理を完結することができるため、読み出し処理の高速化が図れる。
【0064】
(実施の形態11)
本実施の形態11のメモリシステムは、実施の形態1〜5で述べたように、オールゼロ(ALL 00h)の書き込み命令に対してフラッシュメモリの当該書き込み対象箇所の消去状態を維持するようなメモリシステムに適用される。図11は、本発明の実施の形態11によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【0065】
図11に示すメモリシステムは、図9のメモリシステムにおける管理テーブルTBが格納されたRAMをコントローラCTLの外部に設け、また、このRAM内に「オールゼロ(ALL 00h)+エラーコード(ECC)」のデータが格納された構成となっている。さらに、図11に示すメモリシステムは、これらに加えて、図5と同様の遮断検出切替回路DETおよびコンデンサC1を備えた構成となっている。
【0066】
読み出し時の動作に関しては、図9の場合とほぼ同様であり、管理テーブルTBによって読み出し対象の論理アドレスがオールゼロ書き込み履歴が有ると判定された場合に、コントローラCTLは、図9のようなフラッシュメモリFMからではなく、RAMからエラーコード処理部ECCGに向けて「ALL 00h+ECC」のデータを転送する。また、ホストHSTからの電源供給が遮断された場合に関しては、図5の場合と同様であり、コンデンサC1に蓄えられた電力によって管理テーブルTBをフラッシュメモリFMの特定の物理アドレスに退避する。
【0067】
これによって、ホストHSTに対して正しいデータを返信することが可能となる。また、RAMから「オールゼロ(ALL 00h)+エラーコード(ECC)」のデータを読み出すため、読み出し処理の高速化が図れる。さらに、図5の場合と同様に、電源遮断が行われた際にも信頼性が高いメモリシステムを実現可能となる。
【0068】
(実施の形態12)
図12は、本発明の実施の形態12によるメモリシステムにおいて、その構成の一例を示すブロック図である。図12のメモリシステムは、図1のメモリシステムにおけるオールゼロ判定部ALL0Jの代わりに、オールゼロ(ALL 00h)およびオールイチ(ALL FFh)の判定を行うオールゼロイチ判定部ALL01Jを設けた構成となっている。それ以外の構成については図1のメモリシステムと同様である。
【0069】
実施の形態1で述べたように、ホストHSTよりオールイチ(ALL FFh)の書き込み命令があった場合、当該書き込み対象ブロックは、消去状態を維持できなくなる。しかしながら、オールイチ(ALL FFh)の書き込みは、前述したオールゼロの場合と同様に特に意味が無い書き込みである可能性が高い。そこで、オールゼロの場合に加えてオールイチの場合も、当該書き込み対象ブロックの消去状態が維持できるように制御することで、フラッシュメモリの寿命を更に拡大させることが可能となる。
【0070】
以上、本発明者よりなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【0071】
本発明のメモリシステムは、NAND型またはAND型といったフラッシュメモリを含むPCカードなどのストレージデバイスに適用して特に有益な技術であり、これに限らず、CF(CompactFlash(登録商標))カード、SDカード、スマートメディア(登録商標)、メモリスティック(MEMORY STICK(登録商標))を代表とする各種メモリカードなどを含めて幅広く適用可能である。
【図面の簡単な説明】
【0072】
【図1】本発明の実施の形態1によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図2】本発明の実施の形態2によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図3】本発明の実施の形態3によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図4】本発明の実施の形態4によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図5】本発明の実施の形態5によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図6】本発明の実施の形態6によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図7】本発明の実施の形態7によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図8】本発明の実施の形態8によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図9】本発明の実施の形態9によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図10】本発明の実施の形態10によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図11】本発明の実施の形態11によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図12】本発明の実施の形態12によるメモリシステムにおいて、その構成の一例を示すブロック図である。
【図13】図1におけるオールゼロ判定部の構成例を示す概略図であり、(a)は各バイト毎の比較を行う構成例、(b)はデータ総和によって判定を行う構成例である。
【図14】図4のメモリシステムにおける管理テーブルの構成例を示す概念図である。
【図15】本発明の前提として検討したメモリシステムにおいて、それに含まれるフラッシュメモリの記憶状態の一例を示す説明図である。
【符号の説明】
【0073】
HST ホスト
CTL コントローラ
ECCG エラーコード処理部
ALL0J オールゼロ判定部
RAM 揮発性メモリ
FM フラッシュメモリ
ECCJGE ECC判定部
TB 管理テーブル
DET 遮断検出切替回路
C1 コンデンサ
ADCTL アドレス制御部
ESJ 消去判定部
ALL0G オールゼロ生成部
ALL01J オールゼロイチ判定部
ADD 加算部
REG レジスタ
LADD 論理アドレス
PADD 物理アドレス
BLK ブロック
STA_AR ステータス領域
LADD_AR 論理アドレス領域
ECC_AR エラーコード領域

【特許請求の範囲】
【請求項1】
不揮発性メモリと、
ホストから命令を受けて前記不揮発性メモリを制御するコントローラとを備え、
前記コントローラは、前記ホストから第1論理アドレスに対して第1レベルのデータ群の書き込みを行う第1命令を受けた際に、前記不揮発性メモリの前記第1論理アドレスに対応する記憶領域が消去状態を保てるように制御を行うことを特徴とするメモリシステム。
【請求項2】
請求項1記載のメモリシステムにおいて、
前記不揮発性メモリは、セクタ単位またはページ単位あるいはブロック単位でアクセス可能なフラッシュメモリであることを特徴とするメモリシステム。
【請求項3】
請求項1または2記載のメモリシステムにおいて、
前記コントローラは、前記第1命令を受けた際に、前記不揮発性メモリの前記第1論理アドレスに対応する記憶領域に向けて消去コマンドを発生することを特徴とするメモリシステム。
【請求項4】
請求項1または2記載のメモリシステムにおいて、
前記第1レベルは、‘0’レベルであることを特徴とするメモリシステム。
【請求項5】
請求項1または2記載のメモリシステムにおいて、
前記コントローラは、
前記ホストからの書き込み命令に伴う書き込みデータを保持するRAMと、
前記RAMに保持された書き込みデータに対してエラーコードを付加するエラーコード処理部と、
前記RAMに保持された書き込みデータが前記第1レベルのデータ群か否かを判定する第1レベル判定部とを備えることを特徴とするメモリシステム。
【請求項6】
請求項5記載のメモリシステムにおいて、
前記第1レベル判定部は、前記RAMから前記書き込みデータを分割して読み出し、この分割して読み出されたそれぞれのデータを全て加算することで前記第1レベルのデータ群か否かを判定することを特徴とするメモリシステム。
【請求項7】
請求項5記載のメモリシステムにおいて、
前記第1レベル判定部は、前記エラーコード処理部で付加されたエラーコードを参照することで前記第1レベルのデータ群か否かを判定することを特徴とするメモリシステム。
【請求項8】
請求項5記載のメモリシステムにおいて、
前記RAMは、更に、前記第1レベル判定部で前記第1レベルのデータ群と判定された前記第1論理アドレスの情報を管理する管理テーブルを備えることを特徴とするメモリシステム。
【請求項9】
請求項8記載のメモリシステムにおいて、
前記メモリシステムは、さらに、
前記ホストからの電源を蓄えるコンデンサと、
前記ホストからの電源が遮断された場合に、前記ホストと前記コンデンサとの接続を切り離す遮断検出切替部とを備え、
前記メモリシステムは、前記ホストからの電源が遮断された場合に、前記コンデンサに蓄えられた電源で動作し、前記管理テーブルを前記不揮発性メモリに退避することを特徴とするメモリシステム。
【請求項10】
請求項1または2記載のメモリシステムにおいて、
前記コントローラは、さらに、前記ホストから第2論理アドレスに対して第2レベルのデータ群の書き込みを行う第2命令を受けた際に、前記不揮発性メモリの前記第2論理アドレスに対応する記憶領域が消去状態を保てるように制御を行うことを特徴とするメモリシステム。
【請求項11】
不揮発性メモリと、
ホストから命令を受けて前記不揮発性メモリを制御するコントローラとを備え、
前記コントローラは、
前記ホストから第1論理アドレスに対して第1レベルのデータ群の書き込みを行う第1命令を受けた際に、前記不揮発性メモリの前記第1論理アドレスに対応する記憶領域が消去状態を保てるように制御を行う第1機能と、
前記ホストから前記第1論理アドレスに対する読み出し命令を受けた際に、前記ホストに対して前記第1レベルのデータ群を返信する第2機能とを有することを特徴とするメモリシステム。
【請求項12】
請求項11記載のメモリシステムにおいて、
前記不揮発性メモリは、セクタ単位またはページ単位あるいはブロック単位でアクセス可能なフラッシュメモリであることを特徴とするメモリシステム。
【請求項13】
請求項11または12記載のメモリシステムにおいて、
前記第1レベルは、‘0’レベルであることを特徴とするメモリシステム。
【請求項14】
請求項11または12記載のメモリシステムにおいて、
前記不揮発性メモリの特定の第1物理アドレスには、予め、前記第1レベルのデータ群と、前記第1レベルのデータ群に対して生成されたエラーコードとが格納され、
前記第2機能は、前記ホストから前記第1論理アドレスに対する読み出し命令を受けた際に、前記不揮発性メモリの前記第1物理アドレスを読み出し、前記エラーコードの確認を経て、前記第1物理アドレスから読み出した前記第1レベルのデータ群を前記ホストに向けて返信することを特徴とするメモリシステム。
【請求項15】
請求項11または12記載のメモリシステムにおいて、
前記コントローラは、RAMを備え、
前記RAMの特定の第1アドレスには、予め、前記第1レベルのデータ群と、前記第1レベルのデータ群に対して生成されたエラーコードとが格納され、
前記第2機能は、前記ホストから前記第1論理アドレスに対する読み出し命令を受けた際に、前記RAMの前記第1アドレスを読み出し、前記エラーコードの確認を経て、前記第1アドレスから読み出した前記第1レベルのデータ群を前記ホストに向けて返信することを特徴とするメモリシステム。
【請求項16】
請求項11または12記載のメモリシステムにおいて、
前記コントローラは、管理テーブルが格納されたRAMを備え、
前記第1機能は、前記管理テーブルを用いて、前記第1命令を受けた前記第1論理アドレスの情報を管理し、
前記第2機能は、前記ホストから前記第1論理アドレスに対する読み出し命令を受けた際に、前記管理テーブルを参照することで前記第1レベルのデータ群を前記ホストに向けて返信することを特徴とするメモリシステム。
【請求項17】
請求項16記載のメモリシステムにおいて、
前記メモリシステムは、さらに、
前記ホストからの電源を蓄えるコンデンサと、
前記ホストからの電源が遮断された場合に、前記ホストと前記コンデンサとの接続を切り離す遮断検出切替部とを備え、
前記メモリシステムは、前記ホストからの電源が遮断された場合に、前記コンデンサに蓄えられた電源で動作し、前記管理テーブルを前記不揮発性メモリに退避することを特徴とするメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate