(57)【要約】【課題】  フラッシュメモリなどの半導体記憶デバイスにおける記憶データの信頼性を高める。【解決手段】  m個のデータ記憶エリアを有し、データの書き込み、読み出し、消去等が一括して行われる物理記憶領域をn+1個具備し、上位ホストから書き込みデータとして入力される一連のデータを並び替えて、それら一連のデータをn個の物理記憶領域に分離して格納する。各物理記憶領域に分離された一連のデータ1〜データnに対するエラー訂正データを別の物理記憶領域n+1にデータp1として格納する。同様にデータn+1〜データ2nに対するエラー訂正データp2、…、データ(m-1)n+1〜データmnに対するエラー訂正データpmを格納する。例えば物理記憶領域2に記憶されているデータの一部あるいは全部に異常があった場合には、代替物理記憶領域に、エラー訂正により復元された物理記憶領域2のデータを格納し、物理記憶領域2データは全て消去する。【選択図】      図７
2005234883.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数のデータ記憶エリアを備えた複数の物理記憶領域からなり、各物理記憶領域単位で、データの書き込み、または読み出し動作が一括して実行される記憶手段を有する記憶装置のデータ書き込み、読み出し方法において、
前記記憶手段へのデータ格納時には、上位ホストから入力される前記物理記憶領域単位毎に書き込まれるべき一連のデータを並び替えることによって複数の前記物理記憶領域に分離して書き込み、前記記憶手段からのデータ読み出し時には、前記複数の物理記憶領域の各物理記憶領域からそれぞれ一括して読み出されたデータを再度並び替えることにより、前記入力された一連のデータに戻して出力することを特徴とする記憶装置のデータ書き込み、読み出し方法。
【請求項２】
前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータに対するエラーを訂正するためのエラー訂正データが書き込まれたエラー訂正用物理記憶領域が設けられており、前記複数の物理記憶領域に格納されたデータにエラーが検出されたとき、該データエラーが検出された物理記憶領域の全てのデータについて検査を行い、正常データは代替用の物理記憶領域における対応位置に退避書き込みを行うとともに、エラーデータは前記エラー訂正用物理記憶領域のエラー訂正データを用いて訂正して前記代替用の物理記憶領域における対応位置に書き込み、前記データエラーが検出された物理記憶領域のデータは全て消去することを特徴とする請求項１に記載の記憶装置のデータ書き込み、読み出し方法。
【請求項３】
前記データエラーが検出された物理記憶領域の全てのデータ消去に成功したとき、当該物理記憶領域を代替候補物理記憶領域として登録し、前記データエラーが検出された物理記憶領域の全てのデータ消去に失敗したときには、当該物理記憶領域をＮＧ物理記憶領域として登録することを特徴とする請求項２に記載の記憶装置のデータ書き込み、読み出し方法。
【請求項４】
前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータのエラー検出及び訂正するための第１のエラー訂正データが書き込まれたエラー訂正用物理記憶領域を設けるとともに、前記各物理記憶領域に書き込まれたデータのエラー検出及び訂正するための第２のエラー訂正データが書き込まれたエラー訂正データ記憶エリアを前記各物理記憶領域にそれぞれ設け、前記第１及び第２のエラー訂正データにより、前記複数の物理記憶領域から読み出されたデータのエラー検出および訂正を行うことを特徴とする請求項１に記載の記憶装置のデータ書き込み、読み出し方法。
【請求項５】
それぞれが複数のデータ記憶エリアを備えた複数の物理記憶領域からなり、各物理記憶領域単位でデータの書き込みまたは読み出し動作が一括して実行される記憶手段と、上位ホストから入力された前記記憶手段への書き込みデータを並び替えて前記記憶手段へ出力する機能と、前記記憶手段から読み出されたデータを並び替えて前記上位ホストへ出力する機能を有する並び替え手段と、前記記憶手段および並び替え手段の動作を制御する制御手段を備え、
前記並び替え手段は、前記上位ホストから入力される前記物理記憶領域単位毎に書き込まれるべき一連のデータを並び替えることによって複数の前記物理記憶領域に分離して書き込む機能と、前記複数の物理記憶領域の各物理記憶領域からそれぞれ一括して読み出されたデータを再度並び替えることにより、前記入力された一連のデータに戻して出力する機能を有していることを特徴とするデータ記憶システム。
【請求項６】
前記記憶手段には、前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータのエラーを訂正するためのエラー訂正データが書き込まれたエラー訂正用物理記憶領域が設けられており、前記制御手段は、前記記憶手段に格納されたデータにエラーが検出されたとき、該エラーが検出された物理記憶領域の全てのデータについて検査を行い、該検査の結果正常と判定されたデータを代替用の物理記憶領域における対応位置に退避書き込むとともに、エラーと判定されたデータを前記エラー訂正用物理記憶領域のエラー訂正データを用いて訂正して前記代替用の物理記憶領域における対応位置に書き込み、前記エラーが検出された物理記憶領域のデータを全て消去する制御を実行する機能を有していることを特徴とする請求項５に記載のデータ記憶システム。
【請求項７】
前記制御手段は、前記データエラーが検出された物理記憶領域の全データの消去に成功したときには、当該物理記憶領域を代替候補物理記憶領域として登録し、前記データエラーが検出された物理記憶領域の全データの消去に失敗したときには、当該物理記憶領域をＮＧ物理記憶領域として登録する機能を有していることを特徴とする請求項６に記載のデータ記憶システム。
【請求項８】
前記記憶手段には、前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータのエラー検出及び訂正するための第１のエラー訂正データが書き込まれたエラー訂正用物理記憶領域が設けられるとともに、前記各物理記憶領域に書き込まれたデータのエラー検出及び訂正するための第２のエラー訂正データが書き込まれたエラー訂正データ記憶エリアが前記各物理記憶領域にそれぞれ設けられており、該記憶手段から読み出されて前記データ並び替え手段に入力された前記第１及び第２のエラー訂正データを含む書き込みデータに対して、エラー訂正を行うエラー訂正手段を備えていることを特徴とする請求項５に記載のデータ記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置のデータ書き込みおよび読み出し方法に関し、特に、フラッシュメモリ等の半導体記憶装置に対するデータの書き込みおよび読み出し方法に関する。
【背景技術】
【０００２】
コンピュータ、ＰＤＡ（Personal Data Assistance、Personal Digital Assistants：個人向け携帯型情報通信機器）、家庭用ゲーム機、デジタルカメラ、または携帯電話機、ＰＨＳ（Personal Handy-phone System）などの情報機器において、半導体メモリなどに代表されるデータ記憶デバイスの記憶容量は年々増加の一途をたどっている。特に電気的に記憶の消去・書き込みができるＲＯＭ（Read Only Memory）であるフラッシュメモリは、外部から電力を供給しなくても記憶が消えない不揮発タイプのメモリであり、各方面において多用されている。
【０００３】
またフラッシュメモリは、全データ一括またはデータ消去の単位であるブロック毎に消去し、またブロック単位にデータの書き込みまたは読み出しが行われるという特徴を有している（特許文献１、２等参照）。
【０００４】
従来、フラッシュメモリは製造面、価格面などの制約から、搭載容量が他の記憶デバイスと比較して小容量であったが、比較的安価に大容量のメモリが製造可能なＮＡＮＤ型フラッシュメモリや、多値論理タイプのＮＯＲ型フラッシュメモリの開発により、大容量タイプのメモリが登場したこと、デジタルカメラの普及、携帯電話の高機能化などによる大容量不揮発メモリの需要の増大により、不揮発タイプの半導体メモリにおける記憶容量は著しく増加している。
【０００５】
しかし、ＮＡＮＤ型メモリはその構成上多くの場合において、メーカー出荷時点からある一定の不良領域を含むことが前提となっており、またメーカー出荷後にある一定確率または一定量の不良が発生することも前提となっていることが多い。さらに従来、他の記憶デバイスと比較してデータの蓄積という点では高信頼性を有していたＮＯＲ型フラッシュメモリも多値化などによりその信頼性は従来よりも低くなっている。
【０００６】
【特許文献１】特開２０００−１７３２８９号公報
【特許文献２】特開２００２−２８８０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、フラッシュメモリなどの記憶デバイスでは、大容量化の影響によりデータの信頼性が従来よりも低くなってきており、システム動作に直接影響するような重要なデータを格納する手段としてそのまま利用することが困難な状況も生じている。そのため、一度不具合を生じた記憶領域は以後使用しないことが多く、代替の領域のために予備領域を多数用意しておく必要が生じ、記憶容量を効率的に利用することが難しくなってきている。
【０００８】
また、従来、データのエラー訂正のためにある任意のデータ単位毎にパリティ等の冗長的なデータを付加することにより、エラー検出、エラー訂正を行っている（特許文献１、２等参照）が、通常このエラー訂正データと対になるデータの一部またはすべてが、単一の物理的な記憶領域内に記憶されているため、物理的な不具合によりデータエラー等が発生した場合には一まとまりのデータのうち大部分が失われてしまい、エラー訂正を行うことが不可能となるという問題があった。
【０００９】
本発明の目的は、上記問題点に鑑み、フラッシュメモリなどの半導体記憶デバイスにおける記憶データの信頼性を高めるとともに、不具合となった領域も再利用することによって記憶領域の効率的な利用を可能にする手段を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、それぞれが複数のデータ記憶エリアを備えた複数の物理記憶領域からなり、各物理記憶領域単位で、データの書き込み、または読み出し動作が一括して実行される記憶手段を有する記憶装置のデータ書き込み、読み出し方法において、前記記憶手段へのデータ格納時には、上位ホストから入力される前記物理記憶領域単位毎に書き込まれるべき一連のデータを並び替えることによって複数の前記物理記憶領域に分離して書き込み、前記記憶手段からのデータ読み出し時には、前記複数の物理記憶領域の各物理記憶領域からそれぞれ一括して読み出されたデータを再度並び替えることにより、前記入力された一連のデータに戻して出力することを特徴とする。
【００１１】
また、前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータに対するエラーを訂正するためのエラー訂正データが書き込まれたエラー訂正用物理記憶領域が設けられており、前記複数の物理記憶領域に格納されたデータにエラーが検出されたとき、該データエラーが検出された物理記憶領域の全てのデータについて検査を行い、正常データは代替用の物理記憶領域における対応位置に退避書き込みを行うとともに、エラーデータは前記エラー訂正用物理記憶領域のエラー訂正データを用いて訂正して前記代替用の物理記憶領域における対応位置に書き込み、前記データエラーが検出された物理記憶領域のデータは全て消去することを特徴とする。
【００１２】
そして、前記データエラーが検出された物理記憶領域のデータ消去を実行した結果、全てのデータ消去に成功したときには、当該物理記憶領域を代替候補物理記憶領域として登録して再度代替物理記憶領域として使用可能にし、前記データエラーが検出された物理記憶領域の全てのデータを消去できなかったときには、当該物理記憶領域をＮＧ物理記憶領域として登録して、以後、当該物理記憶領域は使用しないようにする。
【００１３】
また、本発明のデータ記憶システムは、それぞれが複数のデータ記憶エリアを備えた複数の物理記憶領域からなり、各物理記憶領域単位でデータの書き込みまたは読み出し動作が一括して実行される記憶手段と、上位ホストから入力された前記記憶手段への書き込みデータを並び替えて前記記憶手段へ出力する機能と、前記記憶手段から読み出されたデータを並び替えて前記上位ホストへ出力する機能を有する並び替え手段と、前記記憶手段および並び替え手段の動作を制御する制御手段を備えており、前記並び替え手段は、前記上位ホストから入力される前記物理記憶領域単位毎に書き込まれるべき一連のデータを並び替えることによって複数の前記物理記憶領域に分離して書き込む機能と、前記複数の物理記憶領域の各物理記憶領域からそれぞれ一括して読み出されたデータを再度並び替えることにより、前記入力された一連のデータに戻して出力する機能を有していることを特徴とする。
【００１４】
また、前記記憶手段には、前記複数の物理記憶領域における各対応位置にそれぞれ書き込まれたデータのエラーを訂正するためのエラー訂正データが書き込まれたエラー訂正用物理記憶領域が設けられており、前記制御手段は、前記記憶手段に格納されたデータにエラーが検出されたとき、該エラーが検出された物理記憶領域の全てのデータについて検査を行い、該検査の結果正常と判定されたデータを代替用の物理記憶領域における対応位置に退避書き込むとともに、エラーと判定されたデータを前記エラー訂正用物理記憶領域のエラー訂正データを用いて訂正して前記代替用の物理記憶領域における対応位置に書き込み、前記エラーが検出された物理記憶領域のデータを全て消去する制御を実行する機能を有していることを特徴とする。
【００１５】
即ち本発明では、フラッシュメモリなどのデータ記憶システムにおいて、各データを、不具合が生じる物理的単位の記憶領域にまたがってデータおよびエラー訂正情報が配置される構成とすることにより、ある任意の不具合の生じる物理的な単位のデータ記憶領域が不具合を生じた場合においても、容易に元のデータの復元を可能にすることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、１つの物理記憶領域に格納されるべき一連のデータを、複数の物理記憶領域に分離して格納し、そのエラー訂正データもまた別の物理記憶領域に格納しているので、製造時の欠陥、電気的なマイグレーションや静電気などによる破壊など特定の領域に発生する各種不具合により、１つまたはエラー訂正可能な任意の数の物理記憶領域がデータ読み出し不可能になった場合でも、容易にデータを復元することが可能となる。
【００１７】
また、エラーが発生した物理記憶領域でも、消去を行って再利用可能な場合には再度利用する動作をしているので、データの長期保存性が劣る記憶デバイスであっても、ある程度の信頼性をもって利用することが可能となる。
【００１８】
さらに、データ格納方法が従来のデータ格納方法と異なり、本来１つの物理記憶領域に格納されるべき一連のデータを複数の物理記憶領域に分離して格納していること、加えてデータ格納の順番を暗号化すること等により、書き込み済みの記憶デバイスのみを他のシステムに接続してもデータを正常に読み出すことができない構成とすることが可能であり、セキュリティー用途として用いることも可能である。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明の第１の実施形態を示すデータ記憶システムのブロック図である。
【００２０】
本実施形態のデータ記憶システムは、物理記憶領域１１１、物理記憶領域１１２、・・・、物理記憶領域１１ｎのｎ個の物理的に分かれた記憶領域を含む記憶手段１０４を有している。ここでいう物理記憶領域とは、データの書き込み、読み出し、消去などのいずれかもしくは全ての行為に対して同時に動作する一まとまりの機能を有する記憶領域であり、製造時の欠陥、電気的なマイグレーションや静電気などによる破壊など特定の領域に発生する不具合、また制御回路の不良や、電源電圧の安定性の影響による不具合などの各種不具合の発生する一まとまりの領域を示している。
【００２１】
図２は、その具体的な例として、一般的なフラッシュメモリにおけるデータ記憶構成を示している。フラッシュメモリでは、バイト単位、ワード単位などの、データ読み書きの最小単位のデータが、データ１からデータＸまで一まとめにされ、この連続するＸ個のデータのかたまりが１ページとして記憶される。そして、通常高速読み込み対応型のフラッシュメモリでは、このページ単位の読み込み機能を有していることが多い。
【００２２】
また、ここでこのページをＹ個一まとめにしたかたまりを１ブロックとする。通常フラッシュメモリではＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）などとは違い、このブロック単位での消去しかできない。またＮＡＮＤ型フラッシュメモリではそれに加えて、通常このブロック単位での読み書きしかできない。ここでは、このブロックＺ個のまとまりが１つのフラッシュメモリを構成するものとする。本実施形態では、具体例として、ここで定義したブロックを物理記憶領域の単位とし、Ｚ個の物理記憶領域がある記憶装置をその対象として説明する。
【００２３】
本実施形態におけるデータ記憶システムの特徴は、データ並び替え手段１０３を有していることである。このデータ並び替え手段１０３は、記憶手段１０４の複数（ｎ個）の物理記憶領域（ブロック）に順次記憶されるように入力された一連のデータの並び替えを行い、本来一かたまりの連続データとして１つの物理記憶領域に格納されるべきデータを複数（ｎ個）の物理記憶領域にまたがるように分離して格納する。
【００２４】
フラッシュメモリは１ページ単位などの読み出しなど、通常一つの物理記憶領域内のデータを連続データとして読み書きする機能しかないため、本実施形態により記憶された記憶装置に対して従来と同様な読み書きを行うとデータ並びが異なるため、通常のＣＰＵ（Central Processing Unit：中央演算処理装置）などの上位ホスト１０１では、そのままではデータとして取り扱うことができない。そのため、複数（ｎ個）の物理記憶領域からそれぞれ読み出されたデータ列はデータ並び替え手段１０３により再度並び替えられ、通常のＣＰＵ等で取り扱うことのできるデータ列へと変換されることにより、上位ホスト１０１がそのままデータとして取り扱うことを可能にする。
【００２５】
制御手段１０２は記憶手段１０４およびデータ並び替え手段１０３を制御する手段であり、上位ホスト１０１からのデータ読み出し、書き込み要求により、記憶手段１０４からのデータの読み出し制御、記憶手段１０４へのデータ書き込み制御を行う。また、データの読み出し、書き込みの切り替えや、チップセレクト、アドレス指定などの各種制御信号の送受信もこの制御手段１０２により行われる。
【００２６】
本実施形態におけるデータ記憶システムでは、読み出し、書き込みデータの送受信を行うデータ信号はデータ並び替え手段１０３と接続され、データ読み書きを行うアドレスを示すアドレス信号は記憶手段１０４へと接続されていることを想定しているが、実施の形態によっては様々な接続方法が考えられる。データ並び替え手段１０３と記憶手段１０４の間にはデータ信号（データバス）が接続されており、記憶手段１０４に書き込まれるデータあるいは記憶手段１０４から読み出されるデータは、必ずデータ並び替え手段１０３によって並び替えられてから記憶手段１０４へあるいは上位ホスト１０１へ出力される。上位ホスト１０１はデータ読み書きを制御手段１０２に対して要求する手段であり、ＣＰＵやメモリコントローラなどのデータ処理装置である。
【００２７】
図３〜図４は、従来および本実施形態におけるデータ格納方法を説明するための図であり、図５〜図６は、本実施形態のデータ格納方法を実現するためのデータ並び替え手段の一例を示す構成図である。以下、図１〜図６を参照して本実施形態の動作について説明する。
【００２８】
図３に示すように、記憶手段１０４には物理記憶領域１（３０１）、物理記憶領域２（３０２）、・・・、物理記憶領域ｎ（３０ｎ）のｎ個の物理記憶領域が含まれている。ここでいう物理記憶領域とは、例えば図２に示すような構造をもつフラッシュメモリでは消去の最小単位であるブロックがこれに相当する。図３において、一つの物理記憶領域（ブロック）にはそれぞれｍ個ずつのデータ記憶エリアがある。この例では、記憶手段１０４にはｍ×ｎ個のデータ記憶エリアがあることになる。
【００２９】
１つのデータ記憶エリアに記憶することのできるデータ量は通常、１ｂｙｔｅまたは２ｂｙｔｅ（＝１ｗｏｒｄ）、４ｂｙｔｅ（＝２ｗｏｒｄ）などの単位であることが多い。従来のデータ記憶システムにおいては、図３に示すようにデータは（データ１）〜（データｍ）までが物理記憶領域１（３０１）に格納され、その後連続する物理記憶領域２（３０２）には（データｍ＋１）〜（データ２ｍ）、物理記憶領域３（３０３）には（データ２ｍ＋１）〜（データ３ｍ）、・・・、物理記憶領域ｎ（３０ｎ）には（データ（ｎ−１）ｍ＋１）〜（データｎｍ）までが含まれるといったように一つの物理記憶領域が埋まってから次の物理記憶領域へという順にデータが格納されている。
【００３０】
一方、本実施形態におけるデータ記憶システムでは、図４に示すように物理記憶領域１（４０１）の１番目の領域に（データ１）、物理記憶領域２（４０２）の１番目の領域に（データ２）、物理記憶領域３（４０３）の１番目の領域に（データ３）、・・・、物理記憶領域ｎ（４０ｎ）の１番目の領域に（データｎ）が格納され、次に物理記憶領域１（４０１）の２番目の領域に（データｎ＋１）、物理記憶領域２（４０２）の２番目の領域に（データｎ＋２）、・・・、物理記憶領域ｎ（４０ｎ）の２番目の領域に（データ２ｎ）、・・・、物理記憶領域１（４０１）のｍ番目の領域に（データ（ｍ−１）ｎ＋１）、・・・、物理記憶領域ｎ（４０ｎ）のｍ番目の領域に（データｍｎ）が格納されるというようにデータが順次格納される。
【００３１】
このように、本実施形態におけるデータ格納方法では、記憶手段１０４に対して従来と異なる順にデータが格納されているため、そのままではデータを利用しづらい。そこで、記憶手段１０４の各物理記憶領域から一括読み出しされたデータを、データ並び替え手段１０３により並び替えを行って上位ホスト１０１へ出力し、また、上位ホスト１０１から送られてきた書き込みデータの並び替えを行って記憶手段１０４に書き込む。従って、本実施形態では、ｍ×ｎ個のデータ記憶エリア（ｎ個の物理記憶領域）が一括データ書き込みまたは一括データ読み出しのためのサイズとして機能する。
【００３２】
図５（ａ）および（ｂ）は本実施形態におけるデータ読み出し時のデータ並び替えのイメージおよびデータ書き込み時のデータ並び替えのイメージを示しており、図５（ａ）の５０１、５０２および図５（ｂ）の５０４、５０５は、図１のデータ並び替え手段１０３に相当し、図５の５０３が図１の記憶手段１０４に相当する。図５では簡単のため、４つのデータ記憶エリアを有する物理記憶領域が４つあり、４×４＝１６のデータ記憶エリアを持つものとしている。
【００３３】
記憶手段５０３には図４のデータ格納方法に従ってデータが格納されているため、データ読み出し時には、記憶手段５０３の４つの物理記憶領域に格納されているデータを、一旦データ並び替え手段の５０２内に設けられた４つのルートにそれぞれ格納し、５０２から５０１を通過する間に、先ずデータ１、データ２、データ３、データ４の並びに並び替えられて出力され、以下、順次データ５〜データ８、データ９〜データ１２、データ１３〜データ１６のデータが読み出される。
【００３４】
一方、データ書き込み時には、書き込みデータは、データ並び替え手段５０５、５０４を経由して記憶手段５０３に格納される。例えばデータ列（１，２，３，４）が５０５に入力されると、これら４つのデータはそれぞれ５０４内の別ルートを通過し、以下、同様に（５，６，７，８）、（９，１０，１１，１２）、（１３，１４，１５，１６）の４つのデータがそれぞれ５０４内の別ルートを通過するようにデータの並び替えが行われる。その後、各ルートのデータ列ごとに、記憶手段５０３のそれぞれの物理記憶領域に一括格納される。
【００３５】
図６は、図５（ａ）に示すデータ読み出し時のデータ並び替え手段を、シフトレジスタによって実現した例を示している。
【００３６】
図６（ａ）は４つのＤ型フリップフロップで構成される４ｂｉｔシフトレジスタの一般的な回路であり、これを図６（ｂ）に示すような図で表現すると、図５（ａ）に示すデータ並び替え回路は図６（ｃ）のように、４つの４ｂｉｔシフトレジスタからの各々の出力が、別の１つの４ｂｉｔシフトレジスタにおける各プリセット端子に接続される回路で実現することが可能である。
【００３７】
ここで記憶手段１０４には、例えば図５（ａ）の５０３のようにデータが格納されており、物理記憶領域単位でまとめて読み出す機能を有しているとする。最初に並び替え前データとして（１，５，９，１３）の順にデータがまとめて読み出される。この際にＳ１〜Ｓ４のスイッチのうち、Ｓ１だけがＯＮになっており、ＦＦ１１〜ＦＦ１４にデータが順次格納される。次にＳ２のみがＯＮとなった状態でデータ列（２，６，１０，１４）が読み出され、以後順次、Ｓ３のみＯＮ時にデータ列（３，７，１１，１５）、Ｓ４のみＯＮ時にデータ列（４，８，１２，１６）が読み出される。
【００３８】
ＦＦ１１〜ＦＦ１４，ＦＦ２１〜ＦＦ２４、ＦＦ３１〜ＦＦ３４、ＦＦ４１〜ＦＦ４４の１６個のすべてのフリップフロップにデータが格納されると、次にＦＦ５１〜ＦＦ５４が動作するように制御される。出力Ｂ１〜Ｂ４がＦＦ５１〜ＦＦ５５のプリセット端子に接続されているため順次データが取り出される。即ち、最初のタイミングではデータ列（１，２，３，４）がＦＦ５１〜ＦＦ５４にセットされ、Ｂ５から出力される。さらに次のタイミングでは次のＢ１〜Ｂ４の出力がＦＦ５１〜ＦＦ５４にセットされ、データ列（５，６，７，８）が取り出される。以後、同様にデータ列（９，１０，１１，１２）、（１３，１４，１５，１６）の順にデータが取り出される。
【００３９】
またデータ書き込みの並び替え回路についても図５（ｂ）のイメージに従って、図６と同様にシフトレジスタを用いた回路構成により容易に実現可能である。
【００４０】
本実施形態では、複数の物理記憶領域からなり、一つの物理記憶領域単位にデータの書き込み、または読み出し動作が一括して実行される記憶装置に対して、一連のデータを一つの物理記憶領域単位に格納しないで複数の物理記憶領域に分離して記憶するので、書き込み済みの記憶デバイスのみを他のシステムに接続してもデータを正常に読み出すことができないため、例えば、データ格納の順番を暗号化することによりセキュリティー用途に用いることができる。
【００４１】
図７は、本発明の第２の本実施形態を示す図であり、本実施形態におけるデータおよびエラー訂正データの格納方法を示している。また、図８は、本実施形態におけるエラー発生時の物理記憶領域代替イメージを示している。
【００４２】
フラッシュメモリ等においては、通常、データのエラー訂正のためにある任意のデータ単位毎にパリティ等の冗長的なデータを付加することにより、エラー検出、エラー訂正を行っているが、このエラー訂正データと対になるデータの一部またはすべてが、単一の物理的な記憶領域内に記憶されているため、物理記憶領域の不具合によりデータエラー等が発生した場合にはこの物理記憶領域に格納された一まとまりのデータのうち大部分が失われてしまい、エラー訂正を行うことが不可能となるという問題がある。
【００４３】
そこで、本実施形態では、一連のデータを一つの物理記憶領域単位に格納しないで複数の物理記憶領域に分離して記憶するとともに、エラー訂正データを格納する物理記憶領域を加え、複数の物理領域に格納されているデータに対するエラー訂正データをこの物理記憶領域に一括して格納することにより、１つまたはエラー訂正可能な任意の数の物理記憶領域がデータ読み出し不可能になった場合でも、容易にエラー訂正を実行することができデータを復元することが可能となる。以下、本実施形態のデータ記憶システムにおけるデータ復元方法について説明する。
【００４４】
図７では、ｍ個のデータ記憶エリアを有する物理記憶領域をｎ＋１個具備している記憶手段を示しており、この記憶手段には計（ｍ）×（ｎ＋１）個のデータ記憶エリアがある。ここでデータ１〜データｎを一まとまりとして、その一まとまりのデータのエラー訂正データを別の物理記憶領域ｎ＋１にデータｐ１として格納する。同様にデータｎ＋１〜データ２ｎに対するエラー訂正データｐ２、・・・、データ（ｍ−１）ｎ＋１〜データｍｎに対するエラー訂正データｐｍを格納する。
【００４５】
このようにデータを格納することにより、例えば図７の物理記憶領域２に記憶されているデータに異常があった場合には、図８に示すように代わりの物理記憶領域Ａにエラー訂正により復元されたデータを格納し、通常状態に復帰することが可能である。このエラー訂正データにはデータの重要度、付加可能なデータ量、回路規模等に応じて、一般的に用いられているさまざまなタイプのものが使用可能である。パリティや巡回符号であるＣＲＣ（Cyclic Redundancy Code）符号、ＢＣＨ符号、ＲＳ（Reed-Solomon）符号などがその代表的な例である。
【００４６】
ここで１つのデータ記憶エリアが４ビットで構成され、パリティによってデータ訂正がされる場合について図９を用いて説明する。図９に示すようにデータ１がビット１−１、ビット１−２、ビット１−３、ビット１−４、データ２がビット２−１、・・・、データｎがビットｎ−１、ビットｎ−２、ビットｎ−３、ビットｎ−４と構成されている場合にはビット１−１、ビット２−１、・・・、ビットｎ−１を一まとまりとしたデータ列に対してパリティ１を決定し、同様にパリティ２、パリティ３、パリティ４を決定することによりエラー訂正が可能となる。
【００４７】
図１０は、本実施形態におけるエラー訂正の手順を示すフローチャートであり、図１１はこのデータ復元動作のイメージ図である。以下、図７〜図１１を参照して、本実施形態のデータ復元動作について説明する。
【００４８】
まず通常通りに、データ記憶エリアｉ（１≦ｉ≦ｍｎ）に格納されたデータのリードまたはライト（１００２）を行っているときに、エラー発生（リード不可、あるいはライト失敗）が検出された場合（１００３ＹＥＳ）には、この不具合が、データｉが含まれる１つの物理記憶領域（ブロック）全体に対するものなのか、それともデータｉが格納される特定のデータ記憶エリアのみのものなのかを判別するために、まず同ブロック内の他データを読み込む（１００４）。
【００４９】
同ブロック内の他の全てのデータもしくは任意に設定された数のエラーがあった場合（１００５ＹＥＳ）には、上記不具合は、データｉが含まれる１つの物理記憶領域（ブロック）全体に対するものである可能性が高いので、このブロックに格納されたデータは使用しないでそのままエラーブロックの消去（１００７）を行う。それ以外の場合には、上記不具合は、データｉが格納される特定のデータ記憶エリアのみであるとみなし、正常リードされたデータのみを別ブロックへ退避（１００６）してからエラーブロック消去（１００７）を行う。
【００５０】
この後、ブロック消去が失敗したかどうかの判定（１００８）を行う。ここでブロック消去が成功した場合（１００８ＮＯ）には、エラー発生ブロックを代替候補ブロックへ登録（１００９）する。この代替候補ブロックはＮＧブロックが発生した場合に、ＮＧブロックの代わりに使用するブロックの候補であり、通常はソフトで実現されたメモリ管理システムにて管理されている。判定（１００８）でブロック消去に失敗した場合（１００８ＹＥＳ）には、該当ブロックはＮＧブロックとして登録（１０１０）され、以降使用されないように管理される。
【００５１】
その後、代替ブロックが割り当て（１０１１）られる。次に代替ブロックにデータが復元されるのであるが、まずステップ（１００６）で退避したデータが存在するかどうかのチェック（１０１２）が行われる。退避データがない場合には単純に残りのブロックのデータとエラー訂正データ（パリティ）から、ＮＧブロックに記憶されていたデータを全て復元（１０１３）する（図１１（ｂ））。また退避データがある場合には退避データを代替ブロックへ書き込み（１０１４）、退避されていないエラーデータのみをエラー訂正にて復元する（図１１（ａ））。
【００５２】
以上の様な動作により、データエラーが１つの物理記憶領域（ブロック）にのみ発生した際にはデータが復元される。このように本実施形態では、エラー発生した同ブロックの他データを読み込むなどのＮＧブロックを特定する動作があるため、通常エラー検出しか出来ないパリティ検出ビットを図９のように１つのデータ列に対して１ビット設けるだけでもエラー訂正が可能である。
【００５３】
以上のような動作を動的に行うことにより、例えば、製造時の欠陥、電気的なマイグレーションや静電気などによる破壊など特定の領域に発生する不具合、また制御回路の不良や、電源電圧の安定性の影響による不具合などの各種不具合の発生する一まとまりの物理記憶領域に不具合が生じている場合にはすぐにデータを復元することができる。また、上位ホストはそれを意識することなく安定してデータの読み書きが可能になる。さらに、ＮＧが発生したブロックでも消去などにより再利用可能な不具合の場合には代替候補ブロックにして使いまわすことが可能である。
【００５４】
なお、上記動作において、ＮＧが発生したブロックでも消去などにより再利用可能な場合には代替候補ブロックにするとしたが、ある設定された任意の回数以上、同じブロックにＮＧが発生した場合には以後使用しないように制御することにより、信頼性を高めることもできる。
【００５５】
図１２は、本発明の他の実施形態を示すデータ記憶システムのブロック図である。
【００５６】
本実施形態は、その基本的構成は上記の実施形態と同様であるが、ハード的なエラー訂正手段１０５を加えた点を特徴としている。エラー訂正手段１０５はデータ並び替え手段１０３に入力されたデータに対して、エラー訂正を行う手段である。またエラー訂正手段は制御手段１０２によりエラー訂正を行うか行わないかの制御、エラー訂正方法の制御などが指示される。さらにエラー訂正手段１０５はエラー検出の機能も有している。
【００５７】
図１３は、本実施形態におけるデータおよびエラー訂正データの格納方法の一例を示しており、図１４は、本実施形態におけるエラー訂正動作を示している。以下、図１２〜図１４を用いて本実施形態の動作について説明する。
【００５８】
図１３に示すように、本実施形態におけるデータの格納は、図７と同様に物理記憶領域間にまたがるデータ１、データ２、データ３、・・・、データｎのデータ列に対するエラー訂正データをｐ１とし格納するが、本実施形態では、物理記憶領域１のデータであるデータ１、データｎ＋１、データ２ｎ＋１、・・・、データ（ｍ−１）ｎ＋１のデータ列に対するエラー訂正データをｑ１として格納する。同様にしてｐ２〜ｐｍ、およびｑ２〜ｑ（ｎ＋１）を格納する。このようにエラー訂正データを配置することにより、例えばエラー訂正データとしてパリティを用いた場合において、不具合のある物理記憶領域を特定しなくても直接エラー訂正が可能である。
【００５９】
図１４を用いて具体的に説明する。ここで１４０３は記憶手段、１４０１、１４０２はデータ並べ替え手段を示している。記憶手段１４０３のデータ６に不具合がある場合、データ並び替え手段１４０２にデータが入力された際に、エラー訂正手段１０５によりエラー検出が行われ、エラーが検出された場合にはエラー訂正が行われる。パリティなどを用いた場合には図１４に示されているようにｐ２、ｑ２のエラー訂正データを用いてエラーの検出および訂正が行われる。
【００６０】
このように、本実施形態では、ハード的なエラー訂正手段を設けているので、より複雑なエラー訂正方法を用いた場合においても、エラー訂正の処理速度が速いという効果が得られる。
【００６１】
なお、以上の実施例においては、データ並び替え手段はシフトレジスタを用いた例を説明したが、この例に限らず、例えばＳＲＡＭ（Static RAM）やフラッシュメモリ、ＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）などを利用して、ソフト的に並び替えることも可能である。そのような場合には図１３に示すように、２軸方向に対してエラー訂正データを付加することで並べ替え手段としてのメモリ自体に物理記憶領域単位での不具合があった場合にも同様に復元が可能となるという効果がある。
【００６２】
また、上記の実施例ではエラー訂正データを１データ記憶エリア分としたが、エラー訂正方法に応じて、１つのデータ列に対して複数のデータ記憶エリアを与えることも可能である。さらに複数のフラッシュメモリを１つのパッケージにスタックし封入したフラッシュメモリＬＳＩの場合には、狭い視点での物理記憶領域はブロックであり、より大きな視点での物理記憶領域は１つのフラッシュメモリそのものである。
【００６３】
そのような場合には２階層にわけて、本発明を適用することが可能なことは明らかである。また本実施例はデータ並び替え、エラー訂正に時間がかかるためデータ破損によるダメージが大きいファイル管理エリア、重要なユーザーデータなどの一部分にのみ適用するという利用方法に対して最も効果がある。
【００６４】
なお、本発明が上記各実施例に限定されず、本発明の技術思想の範囲内において、各実施例は適宜変更され得ることは明らかである。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態を示すデータ記憶システムのブロック図である。
【図２】一般的なフラッシュメモリにおけるデータ記憶の構成を示す図である。
【図３】従来例におけるデータ格納方法を示す図である。
【図４】本実施形態におけるデータ格納方法を示す図である。
【図５】本実施形態におけるデータ読み出しおよび書き込み時のデータ並び替えのイメージを示す図である。
【図６】本実施形態におけるデータ読み出し時のデータ並び替え手段を、シフトレジスタによって実現した例を示す図である。
【図７】本発明の第２の本実施形態におけるデータおよびエラー訂正データの格納方法を示す図である。
【図８】本実施形態の一例の動作を説明するための図である。
【図９】本実施形態の一例の動作を説明するための図である。
【図１０】本実施形態におけるエラー訂正の手順を示すフローチャートである。
【図１１】本実施形態におけるデータ復元動作のイメージ図である。
【図１２】本発明の第３の実施形態を示すデータ記憶システムのブロック図である。
【図１３】本実施形態におけるデータおよびエラー訂正データの格納方法の一例を示す図である。
【図１４】本実施形態におけるエラー訂正動作を示す図である。
【符号の説明】
【００６６】
１０１  上位ホスト
１０２  制御手段
１０３  データ並び替え手段
１０４  記憶手段
１０５  エラー訂正手段
１１１〜１１ｎ  物理記憶領域
【図１】
2005234883.tif 000003
【図２】
2005234883.tif 000004
【図３】
2005234883.tif 000005
【図４】
2005234883.tif 000006
【図５】
2005234883.tif 000007
【図６】
2005234883.tif 000008
【図７】
2005234883.tif 000009
【図８】
2005234883.tif 000010
【図９】
2005234883.tif 000011
【図１０】
2005234883.tif 000012
【図１１】
2005234883.tif 000013
【図１２】
2005234883.tif 000014
【図１３】
2005234883.tif 000015
【図１４】
2005234883.tif 000016