(57)【要約】【課題】半導体記憶装置において、突然の電源断、書き込みエラーで過去に書き込みを完了していたセル共有部分のデータが破壊されないようにすること。【解決手段】コマンド解析手段１６０にタイマ１６１を備える。書き込みコマンドが与えられたときに、前回の書き込みの完了から計測を開始していたタイマ１６１の値が所定の時間を超えたときに、新ブロック確保判断手段１７０が新たに物理ブロックを確保して書き込みを行う。こうすれば、書き込み途中に突然の電源断が発生したとしても、所定時間以前に書き込みを完了していたデータが破壊されることはなくなる。【選択図】図６
2010146150.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に接続される半導体記憶装置であって、
複数の物理ブロックにより構成される不揮発性メモリと、
前記ホスト機器より与えられる論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換手段と、
前記不揮発性メモリへデータの書き込みを行うデータ書き込み手段と、
前記不揮発性メモリからデータの読み出しを行うデータ読み出し手段と、
ホスト機器が発行するコマンドにかかる論理ブロックと前記不揮発性メモリの物理ブロックとの対応を記録してアドレス管理を行う論物変換テーブルを備えたブロック管理手段と、
前記ホスト機器から受けたコマンドを解析すると共に、少なくとも１個前に発行された書き込みコマンドと当該コマンドとの相関を解析するコマンド解析手段と、
前記ホスト機器からの書き込みコマンドが与えられたときに前記コマンド解析手段の解析結果と前記論物変換テーブルの情報をもとに新たな物理ブロックを確保するかを判断する新ブロック確保判断手段と、を具備し、
少なくとも１個前に発行された書き込みコマンドによる書き込みから所定時間経過後に書き込みを行うときにはデータが書かれていない物理ブロックに書き込む半導体記憶装置。
【請求項２】
前記新ブロック確保判断手段は、前記コマンド解析手段が電源投入後の最初の書き込み処理であると判断し、ホスト機器が転送を要求する論理アドレスに対応する物理ブロックが書き込み済み状態である場合、新たな物理ブロックを確保するものと判断する請求項１記載の半導体記憶装置。
【請求項３】
前記コマンド解析手段は、１個前の書き込みコマンドによるデータの書き込みの完了時からの経過時間を計測するタイマを備え、
前記新ブロック確保判断手段は、タイマ値が所定の経過時間を超えているときに、ホスト機器が転送を要求する論理アドレスに対応する物理ブロックが書き込み済みであっても、当該物理ブロックに追記せずに新たな物理ブロックを確保するものと判断する請求項１又は２記載の半導体記憶装置。
【請求項４】
前記ブロック管理手段は、各物理ブロックの使用可否を示す空きブロック管理テーブルの登録、更新を行うと共に、データ書き込み時に前記空きブロック管理テーブルに基づいて新規物理ブロックを抽出するものである請求項１記載の半導体記録装置。
【請求項５】
前記メモリは多値のフラッシュメモリであり、メモリセルを共有する単位をグループとすると前記物理ブロックは少なくとも１つのグループを含むものである請求項１記載の半導体記憶装置。
【請求項６】
前記物理ブロックは、
前記メモリの最小の消去単位及びその整数倍の消去単位のいずれかである請求項１乃至５のいずれか１項記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードなどの半導体記憶装置に関し、特に内部の不揮発性メモリで発生する書き込みのエラーを修復する技術に関する。
【背景技術】
【０００２】
従来、フラッシュメモリが内蔵されたカード型の記録媒体であるＳＤ（ＳｅｃｕｒｅＤｉｇｉｔａｌ）カード等の半導体記憶装置は、超小型、超薄型であり、その取り扱い易さから、ディジタルカメラ、携帯機器等において画像等のデータを記録するために広く利用されている。
【０００３】
この半導体記憶装置に内蔵されているフラッシュメモリは、一定サイズのブロック単位でデータを消去し書き換えできる不揮発性のメモリである。昨今の大容量化の要請に対応すべく、フラッシュメモリは1セルで２ビット以上のデータを蓄積可能なフラッシュメモリが商品化されている。
【０００４】
図１，図２を用いて、１セルあたり２ビットの情報を表現するＭＬＣ（マルチレベルセル）フラッシュメモリ（以下、多値フラッシュメモリ）のフローティングゲートに蓄積する電子の数と閾値電圧（Ｖｔｈ）の関係を説明する。
【０００５】
図１はフラッシュメモリの１セルの構成を示す。フラッシュメモリ１０はＰチャンネルサブストレート１１上にＮチャンネルのソース及びトレイン電極１２，１３が形成され、その間にトンネル酸化膜１４、フローティングゲート１５、絶縁酸化膜１６及びコントロールゲート１７が積層して構成される。このようにフラッシュメモリは揮発性ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）と異なり、フローティングゲート１５という電荷を保持する領域がトランジスタ内部に追加されている。フローティングゲート１５に蓄積されている電荷の状態によって、電流が流れる時の電圧の閾値が変わる。図１（ａ）は電荷が蓄積されていないデータ書き込み前の初期状態であり、図１（ｂ）は電荷が蓄積されておりデータを書き込んだ状態を示す。
【０００６】
図２に、多値フラッシュメモリのフローティングゲートに蓄積する電子の数と閾値電圧（Ｖｔｈ）の関係の一例を示す。２値フラッシュメモリの場合、フローティングゲートに電子のあるなしで電流が流れる時の電圧が変わるが、１セルあたり２ビットの情報を表現する４値フラッシュメモリの場合は電荷の量によって電流が流れる時の閾値電圧が４状態存在する。図２に示すように、４値のフラッシュメモリでは、フローティングゲートの電子の蓄積状態をその閾値電圧（Ｖｔｈ）に従って４状態で管理する。消去状態は電位が一番低く、これを（１，１）とする。そして電子が蓄積していくにつれて閾値電圧が離散的に上昇し、その状態を夫々（１，０）（０，０）（０，１）とする。このように、蓄積する電子の数に比例して電位が上昇するので、所定の電位の閾値に収まるように制御することによって、１つのメモリセルに２ビットのデータを記録することができる。
【０００７】
図３に４値のフラッシュメモリの１つの物理ブロックの模式図を示す。図３に示す物理ブロックは、２Ｋ個（Ｋは自然数）のページによって構成されている。そして、書き込み処理は、ページ番号０から昇順に実施される。ここで、ページ番号ｍ（０≦ｍ＜Ｋ）のページとページ番号（Ｋ＋ｍ）番のページは１つのメモリセルを共有している関係（以下、セル共有関係という）にあるとする。セル共有関係にあるページにおいて、最初に書き込むページを第１ページ、次に書き込むページを第２ページと呼ぶ。つまり、ページ番号ｍへの書き込み（第１ページへの書き込み）と、ページ番号（Ｋ＋ｍ）への書き込み（第２ページへの書き込み）は、同一のセルに電子をチャージしていることになる。図２を参照に説明すると、第１ページへの書き込みでは、電位は最大でも半分までしか上昇しないように制御し、次の第２ページへの書き込みでは、半分から最大まで電位が上昇するように制御する。
【０００８】
図４に、フラッシュメモリセルの状態遷移を示す。図４に示すように、フラッシュメモリの物理ブロックの１つのメモリセルの状態は、以下のように遷移する。
（ａ）データを消去した後は、メモリセルの状態は（１，１）
（ｂ）第１ページへの書き込み後は、セルの状態は（１，１）又は（１，０）
（ｃ）第２ページへの書き込み後は、セルの状態は（１，１），（１，０），（０，０）又は（０，１）
このように、多値のフラッシュメモリでは、閾値電圧Ｖｔｈに複数の状態を設けてフラッシュメモリの電子の蓄積量を制御する多値記録を行い、大容量化を実現している。
【０００９】
上記の（ｂ）（ｃ）について更に詳細に説明する。（ｂ）においては、対応する論理ページに１を書き込んだ後の状態が（１，１）である。また０を書き込んだ後の状態が（１，０）となる。更に（ｃ）においては、（ｂ）での状態によって遷移が限定される。即ち、（ｂ）で（１，１）の状態からの遷移は、１を書き込んだ場合は（１，１）の状態が保持され、０を書き込んだ場合は（０，１）となる。一方、（ｂ）で（１，０）の状態からの遷移は、１を書き込んだ場合は（１，０）の状態が保持され、０を書き込んだ場合は（０，０）となる。よって、同一物理ページにおいて、第１ページの値は、第２ビットに反映され、次に書き込む第２ページの値は第１ビットに反映される。
【００１０】
また、フラッシュメモリはフローティングゲート１５に蓄積した電荷を保持するために、絶縁機能を持つトンネル酸化膜１４を用いる。書き込み時や消去時には、この酸化膜を電子が通り抜けることになり、酸化膜が劣化していく。書き換えを繰り返すと酸化膜が損傷して、絶縁の役目を果たさなくなる。このため、書き換え回数が制限されるという特徴が存在する。
【００１１】
次に、書き込みエラーの発生について説明する。４値フラッシュメモリの場合は、メモリセルを第１ページと第２ページの２論理ページで共有している。図３に示すページ０〜ページ（Ｋ−１）の書き込みは第１ペ−ジの書き込みであり、この場合の書き込みエラーはＶｔｈが（１，１）の状態から（１，０）に上昇しないエラーである。また、図３に示すページＫ〜ページ（２Ｋ−１）の書き込みは第２ページの書き込みであり、Ｖｔｈの状態は（１，１）（１，０）（０，０）（０，１）になる。この場合の書き込みエラーは、
（エラー１）  Ｖｔｈ（１，０）が（０，０）に上昇しない。
（エラー２）  Ｖｔｈ（１，１）が（０，１）に上昇しない。
場合がある。エラー１の場合は、Ｖｔｈ（１，０）とＶｔｈ（０，０）が隣接しているが、エラー２の場合のＶｔｈ（１，１）とＶｔｈ（０，１）は間に２状態はさんでいる。特に、Ｖｔｈ（１，０）は第１ページの書き込み後の値であり、第２ページの書き込みによってＶｔｈが（１，０）にまでしか上昇しなかった場合は第２ページが書き込みエラーになるのみならず、第１ページのデータも破壊してしまうことになる。
【００１２】
次に、書き込み時のエラーが別ファイルを破壊する可能性についてより詳しく説明する。図５の左側が論理アドレス空間上の１つの論理ブロックであり、図５の右側のフラッシュメモリの物理アドレス空間の物理ブロックに対応している。この物理ブロックにファイル１が既に書き込まれていて、ファイル２をその後に追記するものとする。ファイル１が既に物理アドレス空間のページ０からページ（Ｋ−２）までに記録されており、ファイル２をページ（Ｋ−１）から（２Ｋ−１）までに追記するものとする。この例では、説明を簡易にするためにページを昇順に利用している。ファイル２の書き込み中に、例えば図５に示すように、ページＫの書き込み中に発生した書き込みエラーや突然の電源断により、ページ０に書き込み済みであったデータを破壊する可能性がある。つまり、ページ０のデータが破壊されれば、ファイル２の書き込みにより、ファイル１も破壊してしまう結果になる。
【００１３】
この課題を解決するために、特許文献１では、フラッシュメモリを制御するメモリコントローラにバッファメモリを設け、第２ページの書き込みが完了するまで、第１ページのデータをバッファメモリに格納しておき、第２ページの書き込みで書き込みエラーが発生した場合は、バッファメモリのデータをロードし、第１ページのデータもフラッシュメモリに書き込むように制御している。
【特許文献１】特開２００６−３１８３３６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、従来の手法では第２ページの書き込みが終了するまで第１ページのデータをバッファメモリに保持しておく必要がある。１つの物理ブロックに複数のファイルを書き込む場合には、現在書き込み中のファイル以外のデータは過去に書き込んだデータであり、ホスト機器、あるいは半導体記憶装置にデータが残っていないためにリトライできないケースがあり、復旧できないといった課題が発生する。
【００１５】
また、データ書き込み中の突然の電源断が発生した場合には、復旧するためのデータを保持していてもリトライ自体ができないために、復旧できないといった問題点もあった。
【００１６】
本発明は、上記問題を解決するものであり、データ書き込みのエラーや突然の電源断が発生した場合に、既に書き込みを終えて一定時間を経過しているデータに書き込みエラーが伝搬しない信頼性の高い半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
この課題を解決するために、本発明の半導体記憶装置は、ホスト機器に接続される半導体記憶装置であって、複数の物理ブロックにより構成される不揮発性メモリと、前記ホスト機器より与えられる論理アドレスを前記不揮発性メモリの物理アドレスに変換するアドレス変換手段と、前記不揮発性メモリへデータの書き込みを行うデータ書き込み手段と、前記不揮発性メモリからデータの読み出しを行うデータ読み出し手段と、ホスト機器が発行するコマンドにかかる論理ブロックと前記不揮発性メモリの物理ブロックとの対応を記録してアドレス管理を行う論物変換テーブルを備えたブロック管理手段と、前記ホスト機器から受けたコマンドを解析すると共に、少なくとも１個前に発行された書き込みコマンドと当該コマンドとの相関を解析するコマンド解析手段と、前記ホスト機器からの書き込みコマンドが与えられたときに前記コマンド解析手段の解析結果と前記論物変換テーブルの情報をもとに新たな物理ブロックを確保するかを判断する新ブロック確保判断手段と、を具備し、少なくとも１個前に発行された書き込みコマンドによる書き込みから所定時間経過後に書き込みを行うときにはデータが書かれていない物理ブロックに書き込むものである。
【００１８】
ここで前記新ブロック確保判断手段は、前記コマンド解析手段が電源投入後の最初の書き込み処理であると判断し、ホスト機器が転送を要求する論理アドレスに対応する物理ブロックが書き込み済み状態である場合、新たな物理ブロックを確保するものと判断してもよい。
【００１９】
ここで前記コマンド解析手段は、１個前の書き込みコマンドによるデータの書き込みの完了時からの経過時間を計測するタイマを備え、前記新ブロック確保判断手段は、タイマ値が所定の経過時間を超えているときに、ホスト機器が転送を要求する論理アドレスに対応する物理ブロックが書き込み済みであっても、当該物理ブロックに追記せずに新たな物理ブロックを確保するものと判断してもよい。
【００２０】
ここで前記ブロック管理手段は、各物理ブロックの使用可否を示す空きブロック管理テーブルの登録、更新を行うと共に、データ書き込み時に前記空きブロック管理テーブルに基づいて新規物理ブロックを抽出するものとしてもよい。
【００２１】
ここで前記メモリは多値のフラッシュメモリであり、メモリセルを共有する単位をグループとすると前記物理ブロックは少なくとも１つのグループを含むものとしてもよい。
【００２２】
ここで前記物理ブロックは、前記メモリの最小の消去単位及びその整数倍の消去単位のいずれかとしてもよい。
【発明の効果】
【００２３】
本発明の半導体記憶装置によれば、データの書き込み時に新ブロック確保判断手段が所定の条件を満たすと判断したときに、新たなブロックを確保する。従って本発明の半導体記憶装置は所定の時間よりも過去に書き込んだデータがある物理ブロックに記録されている場合に、データを追記する際にはデータが書かれていない物理ブロックに書き込みを行う。こうすることにより、セル共有している第１ページのデータには過去に記録したデータが含まれない。そのために、第２ページ書き込み中に突然の電源断、書き込みエラーが発生しても、現在書き込み中のデータから所定の時間内に書き込みを行ったデータのみの破壊にとどめることができ、所定の時間よりも過去に記録したデータへのエラー伝搬の影響を防止できる。また新たなブロックの確保を電源ＯＮ時と所定の時間経過後のみにすれば、書き換え回数もわずかな増加に抑えることができる。
【発明を実施するための最良の形態】
【００２４】
以下本発明を実施するための最良の形態について、図面を参照しながら説明する。図６は、本発明の実施の形態における半導体記憶システムの構成図である。半導体記憶システムは、半導体記憶装置１００と、半導体記憶装置１００を制御すると共にデータの書き込みと読み出しを行うホスト機器２００とを含んで構成される。半導体記憶装置１００はホスト機器２００から書き込みコマンドに従ってデータを記憶すると共に、読み出しコマンドに従ってデータを読み出し、ホスト機器２００に対して送出するものである。
【００２５】
次に本実施の形態による半導体記憶装置１００の各ブロックについて説明する。外部インターフェイス手段１１０は、ホスト機器２００からのコマンドやデータを受信し、データの転送を行うインターフェイスである。
【００２６】
アドレス変換手段１２０は後述する論物変換テーブルに基づいてホスト機器２００がデータの読み書きを要求した論理アドレスを半導体記憶装置１００内の物理メモリのアドレスに変換するものである。
【００２７】
データ書き込み手段１３０は、外部インターフェイス手段１１０より転送されてきたデータをフラッシュメモリ１４０の物理ブロックの各ページに記録するものである。
【００２８】
フラッシュメモリ１４０は４値のフラッシュメモリであり、多数の物理ブロックから構成される。物理ブロックは消去単位であって、夫々２Ｋ個（Ｋは自然数）のページを有する。フラッシュメモリの内部は前述した図３に示すように０〜（２Ｋ−１）までのページ番号で管理されている。このうちページ番号０〜（Ｋ−１）のＫページはメモリセルの第１ページにより構成され、ページ番号Ｋ〜（２Ｋ−１）のＫページはメモリセルの第２ページにより構成される。
【００２９】
データ読み出し手段１５０は、ホスト機器２００より読み出しコマンドが与えられたときに、指定された論理ブロックに対応するフラッシュメモリ１４０の物理ブロックより、データを読み出すものである。
【００３０】
コマンド解析手段１６０はホスト機器より出されたコマンドを解析するものであり、又以前に発行された書き込みコマンドと、新たに発行された書き込みコマンドの相関を解析する機能を有する。コマンド解析手段１６０は内部にタイマ１６１を含んでいる。タイマ１６１は、新ブロック確保判断手段１７０が新規に物理ブロックを確保するかどうかを判断するための条件となる前回の書き込みコマンドからの経過時間を計測するものである。
【００３１】
新ブロック確保判断手段１７０は、フラッシュメモリ１４０にデータを書き込む場合に、コマンド解析手段１６０の解析結果と論物変換テーブルの情報をもとに新規に物理ブロックを確保してから書き込むか、既に論理ブロックと対応づけられている物理ブロックの未記録領域に追記して書き込むかを判断するものである。
【００３２】
ブロック管理手段１８０は、論物変換テーブル１８１と空きブロック管理テーブル１８２を有している。論物変換テーブル１８１はホスト機器より指示される論理ブロックと、論理ブロックに対応するフラッシュメモリの物理ブロックのアドレスとを関連づけるものである。本実施の形態では、論物変換テーブル１８１は、フラッシュメモリ１４０の一部の領域を用いて記憶するものとして説明する。空きブロック管理テーブル１８２は電源の投入後に生成されるもので、各物理ブロックの使用又は未使用を示すテーブルである。
【００３３】
ブロック管理手段１８０は、これらのテーブルを登録、更新すると共に、データ書き込みの際に、論理ブロックに対応する新規物理ブロックを空きブロック管理テーブル１８２を参照して抽出し、新規の論理ブロックが物理ブロックに割り当てられた場合に論物変換テーブル１８１を更新するものである。
【００３４】
物理ブロック状態検出手段１９０は、ブロック管理手段１８０の情報をもとにアクセスする物理ブロックの状態を検出して新ブロック確保判断手段１７０に対して物理ブロック状態を通知するものである。
【００３５】
次に図７にフラッシュメモリ１４０の領域マップを示す。フラッシュメモリ１４０はＡ個（Ａは自然数）の物理ブロックより構成されており、本実施の形態では、Ａ個の物理ブロックに対して０〜（Ａ−１）の物理ブロック番号を付している。１つの物理ブロックには多値フラッシュメモリのメモリセルを共有する少なくとも１つのグループが含まれている。
【００３６】
そして、物理ブロック番号０〜（Ｂ−１）（Ｂは、Ｂ＜Ａを満たす自然数）のＢ個の物理ブロックをフラッシュメモリ１４０の第１領域１４１、物理ブロック番号Ｂ〜（Ａ−１）の（Ａ−Ｂ）個の物理ブロックをメモリの第２領域１４２とする。フラッシュメモリ１４０の第１領域１４１にはホストから転送されるユーザデータを記録し、第２領域１４２には論物変換テーブル１８１等のシステムデータを記録する。
【００３７】
また論理ブロック番号は０〜（Ｂ−ｍ）（ｍ＞１）とすると、論理ブロックに対応するフラッシュメモリの第１領域の物理ブロック数を論理ブロック数より多く割り当てる。これにより、書き込み済みの論理ブロックを書き換える場合において、当該論理ブロックに対応して書き込まれている物理ブロックとは別の物理ブロックに書き込むことが可能となる。よって、ホスト機器から同一の論理ブロックに集中して書き込みコマンドが発行された場合においても、書き換えが同一の物理ブロックに集中することを防止している。
【００３８】
フラッシュメモリは、
（ａ）書き込み済みのページに上書きすることはできない。
（ｂ）フラッシュメモリには書き換え回数寿命がある。
といった特徴がある。このため、論理ブロック番号と物理ブロック番号の対応表である論物変換テーブル１８１を作成し、ブロック管理手段１８０により管理している。
【００３９】
以下、ブロック管理手段１８０について詳細に説明する。論物変換テーブル１８１は図８に一例を示すように、論物変換主テーブル１８１ａと論物変換補助テーブル１８１ｂを有している。論物変換主テーブル１８１ａでは、論理ブロック番号ＬＢ０の論理ブロックが物理ブロック番号ＰＢ３の物理ブロックに、論理ブロック番号ＬＢ１の論理ブロックが物理ブロック番号ＰＢ６の物理ブロックにマッピングされていることを示している。また論理ブロック番号ＬＢＬ及びＬＢ（Ｌ＋１）の論理ブロックには、対応する物理ブロックとして無効な番号Ａが記録されている。これはこれらの論理ブロックＬＢＬ，ＬＢ（Ｌ＋１）にデータが書かれていないことを示している。
【００４０】
また図８（ｂ）に示す論物変換補助テーブル１８１ｂは、１つの論理ブロックに複数の物理ブロックが割り当てられたときに追加の物理ブロックの番号を保持するものである。この論物変換補助テーブル１８１ｂへの登録数は少なくとも１つとし、ここでは登録数が１の場合について説明する。
【００４１】
ブロック管理手段１８０では、空きブロック管理テーブル１８２を管理しながら半導体記憶装置全体のブロック管理を実施している。図９は空きブロック管理テーブル１８２の一例であり、各物理ブロックの使用状態を示す。使用状態が１の物理ブロックは使用中、０の物理ブロックは空きブロックで新たに使用できることを示す。
【００４２】
ブロック管理手段１８０は、電源が供給されると、空きブロック管理テーブル１８２の全ブロックを空き状態に初期化し、不良ブロックを使用済みに更新する。不良ブロックの管理は発明の本質から外れるので詳細な説明はしないが、フラッシュメモリの固定位置に書き込みしておく。次いで論物変換テーブル１８１を読み出し、これに基づいて使用されている物理ブロックを使用済みに更新する。また書き込み済みの論理ブロックを書き換えるときは、空きブロック管理テーブル１８２よりランダムにサーチして空き物理ブロックを新規物理ブロックとして選択する。選択された物理ブロックにデータが書き込まれると、そのブロックを使用済みブロックに、当該論理ブロックに対応していた直前の物理ブロックを空きブロックに更新する。
【００４３】
次に、データの更新について説明する。図１０は、１つの物理ブロックのサイズに対応する論理ブロック、例えばＬＢ１のデータを、１つの物理ブロック、例えばＰＢ６に記録している図である。ここでこの論理ブロックＬＢ１の一部の領域、例えばページ（Ｋ−１）を書き換える場合には、フラッシュメモリ１４０の新しい物理ブロックを抽出して消去し、書き換えが必要な領域に所望のデータを書き込み、書き込みが必要な領域以外の物理ブロックＰＢ６のデータを新物理ブロックの対応するページにコピーする必要がある。図１０においては、ページ（Ｋ−１）を書き換える場合、新規の物理ブロック、例えばＰＢ１１を抽出し、そのブロックにページ（Ｋ−１）のデータを書き込むと共に、ページ（Ｋ−１）以外のページをコピーする。しかし、書き換え毎にこの処理を行うと、書き込み速度や書き換え回数などの点において課題がある。書き込み速度の観点では、物理ブロック内の一部分の書き込みにおいて毎回物理ブロック分の書き込みが発生し、物理ブロック分の書き込み時間が必要になる。書き換え回数の点においても、同様に必要な書き込み回数以上の書き込みが必要になり、フラッシュメモリ１４０の寿命を短くする結果となる。
【００４４】
このために、本実施の形態では、一時的に２つの物理ブロックを利用して１つの論理アドレス空間を構成する。アドレス変換手段１２０が行う１つの論理アドレス空間を２つの物理ブロックから構成するアドレス変換方法について図１１を用いて説明する。図１１の左側は１つの論理ブロック、例えばＬＢ６であり、この論理ブロックのデータを１つの物理ブロック、例えばＰＢ８に記録しており、論理ブロックＬＢ６の一部の領域を書き換える場合には、別の新規の物理ブロックを確保する。つまり、物理ブロックＰＢ８を残したまま新たに物理ブロックＰＢ５を確保して、物理ブロックＰＢ５側にデータを追記していく。追記したデータについては、最新のデータで論理アドレス空間のデータを構成するが、追記が行われていないデータについては、物理ブロックＰＢ８に記録されているデータで論理アドレス空間のデータを構成する。このように２つ目の物理ブロックへの書き込みを行った場合には、１つ目の物理ブロックに記録されているデータにエラーが伝搬されることはない。
【００４５】
次にこの半導体記憶装置の全体動作について、以下詳細に説明する。図１２はこの実施の形態の動作を示すフローチャートであり、図１３は使用例を示す。ここではホスト機器２００をカメラレコーダ、半導体記憶装置１００をその映像を記憶する媒体とし、通常１秒に３０枚程度の画像を動画として記録する場合について説明する。映像を記録する場合は、継続的かつ連続アドレスへの記憶領域に記憶していく特徴がある。また、万が一、記録中に突然の電源断が発生した場合には、その瞬間の映像フレームを記録することは難しいために、電源断発生時には３３ｍｓ程度の映像が記録されない場合が発生する。更に、セル共有による影響により記録中の位置を含む物理ブロック内のデータへの影響がおよぶ場合がある。そこで本実施の形態では、所定時間以上、過去に記録しておいたファイルが存在する場合には、そのファイルへの影響を及ぼさないようにしている。ここでは、一秒以上過去に記録しておいたデータの影響をさける動作の具体例である。
【００４６】
図１３のパターン１は、電源ＯＮ直後の記録を説明する図である。電源ＯＮ後に記録する際には、それ以前のファイルの破壊は許されないために、書き込みコマンドがあれば、新物理ブロックにデータの書き込みを行う。まず、半導体記憶装置１００の電源が投入されると、Ｓ１１において半導体記憶装置１００は内部の各モジュールの初期化を行う。初期化が終了すると、コマンド解析手段１６０は初期化が完了状態であることから、外部インターフェイス手段１１０に対してホスト機器２００からのコマンドの受信を許可する（Ｓ１２）。コマンド解析手段１６０は、電源ＯＮ後に書き込み処理が発生したかどうかを状態として管理しておく。電源ＯＮ後は、「書き込み処理が発生していない状態」を新ブロック確保判断手段１７０に対して通知する。
【００４７】
さて、ホスト機器２００が半導体記憶装置１００に書き込みコマンドを出すと、アドレス変換手段１２０は、ホスト機器２００が書き込みを要求した論理アドレスを実際に書き込みを行う物理アドレスに変換する（Ｓ１４）。アドレス変換手段１２０は、新ブロック確保判断手段１７０に対して書き込みを行うブロックを新規に確保すべきかどうかの判断を要求する。物理ブロック状態検出手段１９０は、書き込みコマンドに対応する物理ブロックの少なくとも一部にはデータが書かれている状態（以下、書き込み済み状態という）か、データが書かれていない状態（以下、未書き込み状態という）であるかを判断する（Ｓ１６）。新ブロック確保判断手段１７０は、この情報を得て、物理ブロックの一部にデータが書かれていれば追記の状態になるので、コマンド解析手段１６０の電源ＯＮ後に未書き込み状態と合わせて新物理ブロックを確保するかを判断して、アドレス変換手段１２０に対して通知を行う。物理ブロック状態検出手段１９０が書き込み済み状態と判断すれば、新ブロック確保判断手段１７０は新物理ブロックを確保すると判断する。一方、物理ブロック状態検出手段１９０が未書き込み状態と判断すれば、新ブロック確保判断手段１７０は新物理ブロックを確保しないと判断する。新物理ブロックの確保が必要であれば、ブロック管理手段１８０は空きブロック管理テーブル１８２をサーチして新規物理ブロックを確保する（Ｓ１７）。データ書き込み手段１３０は、新たに物理ブロックが確保された後に、フラッシュメモリ１４０に対して書き込みを行う（Ｓ１８）。
【００４８】
この方法によれば、過去に書き込んだファイルを破壊しないで書き込むことができる。これについて、図１４を用いて更に詳細に説明する。図１４では左側の論理アドレス空間の論理ブロックＬＢ６の一部に、図示のようにファイル１が既に書き込み済みであり、論理ブロックＬＢ６に対応する物理ブロックＰＢ８のページ０から（Ｋ−２）までにファイル１が書き込まれているものとする。この場合の論物変換テーブル１８１の状態の変化を説明する。図１５は図１４の物理ブロックＰＢ８が登録されていることを示す論物変換テーブルである。即ち論物変換主テーブル１８１ａの論理ブロック番号ＬＢ６は物理アドレス空間の物理ブロックＰＢ８に割り当てられている。
【００４９】
さてこの状態で論理ブロックＬＢ６にファイル２を追記する。通常の書き込みであれば、ファイル２は、物理ブロックＰＢ８のページ（Ｋ−１）からページ（２Ｋ−1）に書き込むことになる。しかし、物理ブロックＰＢ８に追記している途中のエラーや突然の電源断が発生した場合には、ファイル１が破壊される可能性がある。そこで、物理ブロックＰＢ８へ追記はせずに新たに物理ブロックＰＢ５を確保し、この物理ブロックＰＢ５にファイル２を書き込む。図１５（ｂ）は、論理ブロックが２つの物理ブロックから構成される場合に利用する論物変換補助テーブル１８１ｂであり、このテーブルに示すように論理ブロックＬＢ６が右下側の物理ブロックＰＢ５にも割り当てられている。こうすれば、ファイル２の書き込み中に突然の電源断が発生しても、ファイル１とは物理ブロックが異なるために、ファイル１の破壊を回避することができる。
【００５０】
こうすれば図１３のパターン１に示すように書き込みコマンドＷＣ０に基づく書き込みにより、以前に記録済であった他のファイルが破壊されることはない。そして書き込みコマンドＷＣ０の書き込み処理終了時にタイマ１６１の値がリセットされ、その後タイマは書き込み終了時からの時間の計測を開始する（Ｓ１９）。
【００５１】
次に、図１３に示すパターン２は、直前の書き込みコマンドＷＣ１によるデータの書き込みの完了から所定時間Ｔが経過した後の書き込みの場合である。所定時間Ｔが経過後に、書き込みコマンド(ＷＣ２)があったときは、新物理ブロックを確保して、この物理ブロックへの書き込みを行う。即ちコマンド解析手段１６０は、ホスト機器２００から新たに書き込みコマンド（ＷＣ２）を受信した場合、Ｓ１５，Ｓ２０からＳ１６に進んで新ブロック確保判断手段１７０は、タイマ１６１の経過時間と、物理ブロック状態検出手段１９０から通知されている値から、パターン１と同様に新ブロックを確保するかどうかを判断する。所定時間Ｔが経過し、対応物理ブロックにデータが記録されている場合には、新たな物理ブロックへの書き込みを行う。このことにより、ＷＣ１で書き込まれたファイルを含む他のファイルへの影響を回避することができ、所定時間以上過去に記録を完了しているデータへの影響を避けることができる。
【００５２】
しかしながらすべての書き込みに対して、パターン１又はパターン２で書き込みを行うと、処理速度、書き換え回数の点で課題が発生する。
【００５３】
図１３に示すパターン３は、直前のライトコマンド（ＷＣ１）による書き込み処理の完了から所定時間Ｔを経過する前に新たに書き込みコマンド（ＷＣ３）が与えられた場合である。この場合は、タイマ１６１が経過時間Ｔを計数していないので、Ｓ２０からＳ２１に進み、対応する物理ブロックの一部にのみ書き込みデータがあれば、新規ブロックを確保せずに、その物理ブロックに追記を行う（Ｓ２２）。即ち図１６に示すようにファイル１が書かれている論理ブロックＬＢ６に対してファイル２を追加する場合に、物理ブロックＰＢ８のページ（Ｋ−１）からページ（２Ｋ−１）までファイル２を追記する。パターン３での処理では、書き込みコマンド（ＷＣ２）の書き込み中に電源断が発生した場合には、セル共有部分のデータへの影響が発生する。しかし影響の範囲は時間的に直前に書き込みを行ったデータに限定され、所定時間以上過去に記録を完了しているデータへの影響はない。この処理は、新たに物理ブロックを確保する必要がないために書き換え回数、書き込み処理時間への影響を最小限に抑えることが可能になる。
【００５４】
パターン１，２による書き込みでは図１４に示すように、１つの論理ブロックに対して２つの物理ブロックが必要になり、容量的に課題がある。このために、データの書き込みや読み出しを行っていないときに、新たな物理ブロックを確保して、２つの物理ブロックから有効なページのみを集めて１つの物理ブロックに集約する必要がある。集約処理について図１７，図１８を用いて説明する。集約処理では、図１７の右側に示すように、新たに物理ブロック、ここではＰＢ１０を確保する。そして同一の論理ブロックＬＢ６に対応する２つの物理ブロックＰＢ８と物理ブロックＰＢ５の有効なページのデータを集めて、物理ブロックＰＢ１０にコピーをする。コピーが完了すると、図１８のように論物変換主テーブル１８１ａでは論理ブロックＬＢ６に対して物理ブロックＰＢ１０を登録すると共に、論物変換補助テーブル１８１ｂの論理ブロックＬＢ６に無効番号であるＡを登録する。
【００５５】
図１９を用いて、実施の形態における書き込み処理を映像記録に適応する場合について、発生するパターンをより具体的に説明する。電源をオンとした後に映像を記録する場合には、記録開始直後の書き込みはパターン１になり、それ以降は記録停止までパターン３が継続することになる。つまり、記録中は、追記状態が継続することにより、転送速度を低下させることなく映像を記録することが可能になる。また記録停止後に、記録を再開する場合には、パターン２から始まり、それ以降は記録停止までパターン３が継続することになる。このように記録再開時には、パターン２の書き込みから始まるために、記録中に電源断が発生したとしても、記録再開よりも前に記録してある映像の破壊は発生しない。
【００５６】
かかる構成によれば、タイマにより前回の書き込みからの経過時間を計測して、所定時間以上経過している場合に、破壊が許されない過去のデータに影響を与えないように新物理ブロックを確保して書き込むことにより、書き込み中に突然の電源断が発生しても過去に書き込み済みであるファイルの破壊を回避することができる。又所定時間以内の書き込みに対しては新規に物理ブロックを確保せず追記書き込みを行うことにより、転送速度・書き換え回数への影響をなくすことが可能になる。
【００５７】
なお、ここではホスト機器から半導体記憶装置に映像を記録する場合の説明を行ったが、ホスト機器がパーソナルコンピュータ（ＰＣ）であってファイルを書き込む場合も、１つのファイルの書き込みを行うと図１９に示すようにパターン１に続いて少なくとも１つのパターン３での記録をするので、同等の効果を得ることが可能になる。
【００５８】
また本実施の形態では、多値フラッシュメモリの１つのメモリセルに格納するビット数を２ビットとしたが、更に状態を増加させ１メモリセルに３ビット以上格納できるフラッシュメモリにも適応可能であることはいうまでもない。
【００５９】
更に、フラッシュメモリのみならず、他の不揮発性メモリに適応しても同様の効果が得られることはいうまでもない。また、ホスト機器から転送されるデータを記録する半導体記憶装置として説明したが、ホスト機器内に半導体記憶装置を備えた装置であっても同様の効果が得られることはいうまでもない。
【００６０】
尚ここでは物理ブロックを消去の最小の単位として説明しているが、物理ブロックは論理ブロックに対応するブロックとして規定されるものであるため、物理ブロックのサイズと消去の単位とが異なるものとしてもよい。この場合には１つの物理ブロックを消去の最小単位の整数倍のサイズとすることもできる。この場合には各消去の単位毎に現在の状態を空きブロック管理テーブル等で管理する必要がある。尚消去の単位は多値フラッシュメモリにおいてはメモリの共有関係を有するグループとして考えることができる。
【産業上の利用可能性】
【００６１】
本発明の半導体記憶装置は、セル共有部分のデータの破壊による影響を最小限にとどめることができるので、信頼性を必要とされる業務用分野等で有用である。
【図面の簡単な説明】
【００６２】
【図１】多値フラッシュメモリの構造を示す模式図
【図２】多値フラッシュメモリの電子の蓄積状態を示す模式図
【図３】多値フラッシュメモリの物理ブロックのセル共有を示す図
【図４】多値フラッシュメモリのセルの状態遷移図
【図５】多値フラッシュメモリを用いた場合のファイルの追加によるエラー伝搬発生の説明図
【図６】本発明の実施の形態における半導体記憶装置の構成図
【図７】フラッシュメモリにおけるメモリ領域の説明図
【図８】本実施の形態の論物変換テーブルの説明図
【図９】本実施の形態の空きブロック管理テーブルの説明図
【図１０】物理ブロック内で部分的書き換えをする場合の説明図
【図１１】本実施の形態の論理アドレス空間を２つの物理ブロックで構成をする場合説明図
【図１２】本実施の形態の半導体記憶装置の動作を示すフローチャート
【図１３】本実施の形態の新物理ブロックを確保するかどうかの判断を示す説明図
【図１４】本実施の形態のファイルを別物理ブロックに書き込む手順を示す説明図
【図１５】本実施の形態の１つの論理ブロックを２つの物理ブロックから構成する論物変換テーブルの説明図
【図１６】本実施の形態のファイルを同一物理ブロックに追記して書き込む手順を示す説明図
【図１７】本実施の形態の２つの物理ブロックを１ブロックに集約する手順を示す説明図
【図１８】本実施の形態の１つの論理ブロックを１つの物理ブロックから構成する論物変換テーブルの説明図
【図１９】映像記録に適用した書き込み処理を示す図
【符号の説明】
【００６３】
１００  半導体記憶装置
１１０  外部インターフェイス手段
１２０  アドレス変換手段
１３０  データ書き込み手段
１４０  フラッシュメモリ
１５０  データ読み出し手段
１６０  コマンド解析手段
１６１  タイマ
１７０  新ブロック確保判断手段
１８０  ブロック管理手段
１９０  物理ブロック状態検出手段
１８１  論物変換テーブル
１８１ａ  論物変換主テーブル
１８１ｂ  論物変換補助テーブル
１８２  空きブロック管理テーブル
２００  ホスト機器
【図１】
2010146150.tif 000003
【図２】
2010146150.tif 000004
【図３】
2010146150.tif 000005
【図４】
2010146150.tif 000006
【図５】
2010146150.tif 000007
【図６】
2010146150.tif 000008
【図７】
2010146150.tif 000009
【図８】
2010146150.tif 000010
【図９】
2010146150.tif 000011
【図１０】
2010146150.tif 000012
【図１１】
2010146150.tif 000013
【図１２】
2010146150.tif 000014
【図１３】
2010146150.tif 000015
【図１４】
2010146150.tif 000016
【図１５】
2010146150.tif 000017
【図１６】
2010146150.tif 000018
【図１７】
2010146150.tif 000019
【図１８】
2010146150.tif 000020
【図１９】
2010146150.tif 000021