JP2013257699A - データ記録装置、データ記録方法及びデータ記録プログラム - Google Patents

データ記録装置、データ記録方法及びデータ記録プログラム Download PDF

Info

Publication number
JP2013257699A
JP2013257699A JP2012132944A JP2012132944A JP2013257699A JP 2013257699 A JP2013257699 A JP 2013257699A JP 2012132944 A JP2012132944 A JP 2012132944A JP 2012132944 A JP2012132944 A JP 2012132944A JP 2013257699 A JP2013257699 A JP 2013257699A
Authority
JP
Japan
Prior art keywords
block
data
page
error
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012132944A
Other languages
English (en)
Inventor
Hisayoshi Kurosawa
寿好 黒澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2012132944A priority Critical patent/JP2013257699A/ja
Publication of JP2013257699A publication Critical patent/JP2013257699A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】不定確率で記憶セルにエラーが発生するNAND型フラッシュメモリ等の記憶媒体へ、複数のページに跨る連続したデータをスムーズに書き込むことを目的とする。
【解決手段】データ書込部40は、所定のブロックにおける先頭のページから順にデータを書き込む。ブロック特定部50は、データ書込部40がデータを書き込んだページでエラーが発生した場合、所定のブロックに代わる代替ブロックを特定する。データ書込部40は、データを書き込んだページでエラーが発生した場合、ブロック特定部50が特定した代替ブロックにおけるエラーが発生したページのページ番号が示すページから順に続きのデータを書き込む。
【選択図】図4

Description

この発明は、不定確率で記憶セルにエラーが発生するNAND型フラッシュメモリ等の記憶媒体へのデータの書き込み制御技術に関する。
例えば、人工衛星では、地上局と通信できない範囲(例えば、地上局の位置に対して地球の裏側)を飛行中は、カメラやセンサ等の観測機器が観測した観測データを、人工衛星内に保持しておく必要がある。そのため、人工衛星は、データ記録装置を搭載している。
観測機器は、観測データを内部に蓄える機能を有していないため、データ記録装置との間でデータ伝送のためのフロー制御を実現することは困難である。また、観測機器の高精細化に伴い、データ記録装置に入力される観測データは、サイズが大きくなり、単位時間当たりにデータ記録装置が記憶しなければならないデータ量が多くなってきている。
しかし、宇宙環境で正常動作可能なメモリが限られているために巨大なバッファメモリを保持できないという事情や、宇宙空間は真空であるため放出手段が乏しく、電子機器を高速動作させられないという事情が、データ記録装置にはある。
このため、観測機器で観測されたサイズの大きい観測データを、スムーズにデータ記録装置に記憶させるデータの書き込み制御が必要となる。
人工衛星等で使用されるデータ記録装置では、観測機器からの観測データのサイズが大きくなったことに伴い、NAND型フラッシュメモリのような大容量かつ低消費電力の不揮発メモリが搭載されつつある。NAND型フラッシュメモリは、不定確率で記憶セルにエラーが発生する特性を持つ記憶媒体であるため、特別なデータの書き込み制御が必要となる。
特許文献1には、NAND型フラッシュメモリへのデータの書き込み制御について記載されている。特許文献1では、データを書き込む際、エラーのあるブロックを管理するエラー管理テーブルを参照して、書き込み先のブロックにエラーがあるか判断する。そして、書き込み先のブロックにエラーがなければ、そのブロックにデータを書き込み、書き込み先のブロックにエラーがあれば、改めて他のブロックを書き込み先のブロックとしてエラーがあるか判断する。
特開2007−148965号公報
特許文献1に記載された書き込み制御では、データの書き込みをする度に、エラー管理テーブルを参照する必要がある。これは、複数のページに跨る連続したデータを書き込む場合に特に大きなオーバヘッドとなり、場合によってはデータの書き込みが間に合わず、データの欠損が発生する恐れがある。
この発明は、不定確率で記憶セルにエラーが発生するNAND型フラッシュメモリ等の記憶媒体へ、複数のページに跨る連続したデータをスムーズに書き込むことを目的とする。
この発明に係るデータ記録装置は、
記憶領域を複数に区切ったブロック単位でデータが管理され、各ブロックを複数に区切ったページ単位でデータの書き込みが行われる記憶装置への複数のページに跨るデータの書き込み制御を行うデータ記録装置であり、
所定のブロックを対応ブロックとして、前記対応ブロックにおける先頭のページから順にデータを書き込むデータ書込部と、
前記データ書込部がデータを書き込んだページでエラーが発生した場合、前記対応ブロックに代わる代替ブロックを特定するブロック特定部と、
を備え、
前記データ書込部は、前記エラーが発生したページのページ番号が示すページであって、前記ブロック特定部が特定した代替ブロックにおけるページから順に、エラーが発生したデータ以降のデータを書き込む
ことを特徴とする。
この発明に係る書込制御装置では、書き込みの度にエラー管理テーブルを参照することがない。また、エラーが発生した場合に、それまでに書き込んだデータを他のブロックへコピーすることがない。そのため、エラー発生時の処理に時間がかからず、データの欠損が発生することを防止できる。
NAND型フラッシュメモリの基本的な構成を示す図。 NAND型フラッシュメモリの基本的な管理テーブルを示す図。 実施の形態1に係るデータ記録装置100の構成図。 実施の形態1に係るアドレス変換テーブル10の構成図。 実施の形態1に係るデータ記録装置100の動作を示すフローチャート。 実施の形態1に係るデータ記録装置100の動作例を示す図。 実施の形態2に係るアドレス変換テーブル10と、エラーブロック管理テーブル30との構成図。 実施の形態2に係るデータ記録装置100の動作を示すフローチャート。 実施の形態2に係るデータ記録装置100の動作例を示す図。 実施の形態3に係るデータ記録装置100の構成図。 実施の形態3に係る書込ブロック管理テーブル70の構成図。 実施の形態3に係る代替ブロック特定処理を示すフローチャート。 実施の形態3に係るデータ記録装置100の動作例を示す図。 データ記録装置100のハードウェア構成の一例を示す図。
実施の形態1.
まず、NAND型フラッシュメモリの基本的な構成及び管理方法について説明する。
図1は、NAND型フラッシュメモリの基本的な構成を示す図である。
NAND型フラッシュメモリは、記憶領域を複数に区切ったブロックと、各ブロックをさらに複数に区切ったページとから構成される。図1では、NAND型フラッシュメモリがn個のブロックから構成され、各ブロックがk個のページから構成されている。
NAND型フラッシュメモリは、既にデータが記憶されている領域に新しいデータを記憶する場合、事前に既に記憶されたデータを消去しなければならないという特性がある。このデータの消去は、ブロック単位で行わなければならない。一方、データのリード(読み出し)及びライト(書き込み)は、ページ単位で行うことができる。
なお、一般に、ブロックは64〜256キロバイトであり、ページは1〜4キロバイトの記憶容量を持つ。
図2は、NAND型フラッシュメモリの基本的な管理テーブルを示す図である。図2(a)は、アドレス変換テーブル10(ブロック変換テーブル)の構成図であり、図2(b)は、物理ブロック管理テーブル20の構成図であり、図2(c)は、エラーブロック管理テーブル30の構成図である。
アドレス変換テーブル10は、論理アドレス(論理ブロック番号に等しい)と物理アドレス(物理ブロック番号に等しい)とが対応付けて記憶される。記憶セルエラーの発生により使用不可となった物理ブロックがあると、物理アドレスが不連続となり、利用勝手が低下する恐れがある。これを防ぐため、アドレス変換テーブル10は、アドレスの連続性を保証する論理アドレスを利用者へ提供するものである。図2においては、論理ブロック番号(3)へのアクセス(Read or Write)が要求された場合、データ記録装置では物理ブロック番号(n−1)のブロックへアクセスさせる。
物理ブロック管理テーブル20は、物理ブロック毎にエントリを持ち、各エントリには、対応するブロックの状態が記憶される。具体的には、各エントリには、対応するブロックへのデータ記録状態(記録中、記録済、消去済、エラー発生等)やそのブロックに対して行われた消去回数が記憶される。
エラーブロック管理テーブル30は、記憶セルエラーが発生したブロックの物理ブロック番号が記憶される。記憶セルエラーが発生したブロックは物理ブロック管理テーブル20にて管理可能ではあるが、参照頻度が高いため、エラーブロック管理テーブル30は一般に独立した管理テーブルとして設けられる。
なお、NAND型フラッシュメモリは、一般に同一のブロックに対する消去回数に上限が設けられている。この上限の消去回数以内に不定確率で発生する記憶セルエラーによるエラーブロックの発生は、全ブロック数の数パーセント以内に抑えられている。そのため、エラーブロック管理テーブルのエントリ数は、ブロック数の数パーセント程度だけ必要となる。
図3は、実施の形態1に係るデータ記録装置100の構成図である。
データ記録装置100は、アドレス変換テーブル10、物理ブロック管理テーブル20、エラーブロック管理テーブル30、データ書込部40、ブロック特定部50、関連情報記憶部60を備える。
アドレス変換テーブル10は、以下で詳しく構成を説明する。物理ブロック管理テーブル20、エラーブロック管理テーブル30は、図2に基づき説明した通りである。データ書込部40は、データをNAND型フラッシュメモリに書き込む。ブロック特定部50は、データ書込部40がデータを書き込むブロックを特定する。関連情報記憶部60は、上記各テーブルへデータを書き込む。
図4は、実施の形態1に係るアドレス変換テーブル10の構成図である。
アドレス変換テーブル10は、1つの論理ブロック番号に対して複数のエントリを持つ。各エントリには、エラーが発生したページのページ番号および物理ブロック番号が記憶される。
アドレス変換テーブル10において、ページ番号欄に“−”が記憶されている場合、対応するブロックでは記憶セルエラーが発生していないことを示す。また、物理ブロック番号欄に“−”が記憶されている場合は、対応するブロックが割り当てられていないことを示す。具体的には、エントリ0における物理ブロック番号欄に“−”が記憶されている場合は、その論理ブロック番号にはブロックが割り当てられていないことを示す。つまり、その論理ブロック番号へのデータの書込みは行われていないことを示す。また、エントリ1における物理ブロック番号欄に“−”が記憶されている場合は、エントリ0に記憶された物理ブロック番号が示すブロックにてエラーが発生していないか、その論理ブロック番号へのデータ書込みが行われていないことを示す。
図5は、実施の形態1に係るデータ記録装置100の動作を示すフローチャートである。データのライト命令を受けると、以下の処理が実行される。
まず、変数Eと変数Pとが0に初期化される(S101)。次に、データ書込部40は、アドレス変換テーブル10におけるライト命令で指定された論理ブロック番号(以下、指定論理ブロック番号)に対応するエントリ(E)から、物理ブロック番号を読み出す(S102)。そして、データ書込部40は、S102で読み出した物理ブロック番号が示すNAND型フラッシュメモリにおけるブロックのページ(P)へデータを書き込む(S103)。
ページ(P)へのデータの書き込みの際、データ書込部40は、記憶セルエラーが発生したか否かを判定する(S104)。記憶セルエラーが発生しなかった場合(S104でエラーなし)、データ書込部40は、書き込みが済んでいないデータが残っていれば変数Pに1加算して処理をS103へ戻し(S106)、残っていなければ処理を終了する(S105)。
一方、記憶セルエラーが発生した場合(S104でエラーあり)、ブロック特定部50は、物理ブロック管理テーブル20を参照して、状態が“消去済”となっている空きブロック(代替ブロック)を特定する(S107)。そして、関連情報記憶部60は、指定論理ブロック番号に対応するエントリ(E)のページ番号欄に変数Pの値を書き込む(S108)。また、関連情報記憶部60は、S102で読み出した物理ブロック番号をエラーブロック管理テーブル30に書き込む(S109)。また、関連情報記憶部60は、物理ブロック管理テーブル20の情報を更新する(S110)。さらに、関連情報記憶部60は、関連情報記憶部60は、S107で特定されたブロックの物理ブロック番号を、指定論理ブロック番号に対応するエントリ(E+1)の物理ブロック番号欄に書き込む(S111)。そして、データ書込部40は、変数Eに1加算して処理をS102へ戻す(S112)。
図6は、実施の形態1に係るデータ記録装置100の動作例を示す図である。
図6に示す例では、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックにデータを書き込み中に、ページ(2)で記憶セルエラーが発生した場合を示す。
論理ブロック番号(2)が指定されたライト命令を受けて処理が開始される。まず、変数E,Pが0に初期化される(S101)。次に、論理ブロック番号(2)に対応するエントリ(0)の物理ブロック番号(X)が読み出される(S102)。そして、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(0)にデータが書き込まれる(S103)。ここでは、記憶セルエラーは発生せず(S104でエラーなし)、書き込みが済んでいないデータが残っているため、変数Pに1(=0+1)が設定され、処理がS103へ戻される(S105)。
続いて、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(1)にデータが書き込まれ、変数Pに2(=1+1)が設定され、処理がS103へ戻される(S103−S105)。
続いて、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(2)にデータの書き込みが行われる(S103)。この際、記憶セルエラーが発生する(S104でエラーあり)。そのため、空きブロック(物理ブロック番号(Y))が特定される(S107)。そして、論理ブロック番号(2)に対応するエントリ(0)のページ番号欄に変数Pの値(2)が書き込まれ(S108)、物理ブロック番号(X)がエラーブロック管理テーブル30に書き込まれ(S109)、物理ブロック管理テーブル20の物理ブロック番号(X)(Y)の欄が更新される(S110)。また、論理ブロック番号(2)に対応するエントリ(1)の物理ブロック番号欄に物理ブロック番号(Y)が書き込まれる。そして、変数Eに1を設定され、処理がS102に戻される。
すると、論理ブロック番号(2)に対応するエントリ(1)の物理ブロック番号(Y)が読み出され(S102)、物理ブロック番号(Y)が示すNAND型フラッシュメモリにおけるブロックのページ(2)にデータが書き込まれる(S103)。その後、順次、物理ブロック番号(Y)が示すNAND型フラッシュメモリにおけるブロックのページ(3)以降にデータが書き込まれる。
以上のように、実施の形態1に係るデータ記録装置100では、データを記録する度にエラーブロック管理テーブル30を参照することはない。したがって、複数のページに跨る連続したデータを書き込む場合におけるオーバヘッドが小さい。
また、実施の形態1に係るデータ記録装置100では、記憶セルエラーが発生した場合に、記憶セルエラーが発生したブロックに既に書き込んだデータを新たなブロックへコピーすることがない。したがって、記憶セルエラーが発生した場合の処理に係る時間が短い。
なお、上記説明では、S102でエントリ(E)に物理ブロック番号が記憶されていることを前提とした。しかし、処理の開始直後においてはS102で読み出すエントリ(E)に物理ブロック番号が記憶されていないことも考えられる。この場合、S105と同様に、ブロック特定部50は、物理ブロック管理テーブル20を参照して、状態が“消去済”となっている空きブロックを特定し、そのエントリ(E)に書き込めばよい。
また、現在典型的なNAND型フラッシュメモリでは64〜128ページ/ブロックであるため、アドレス変換テーブル10におけるエラーが発生したページ番号の格納領域は、8ビットあれば十分に表現可能である。また、現在典型的なNAND型フラッシュメモリでは32768〜131072ブロック/チップであるため、アドレス変換テーブル10における物理ブロック番号の格納領域は、24ビットあれば十分に表現可能である。
したがって、アドレス変換テーブル10における各エントリは、従来のアドレス変換テーブル10のエントリサイズである4バイトと同じ領域サイズで表現できる。
実施の形態2.
実施の形態1では、アドレス変換テーブル10の構成を変えることにより、記憶セルエラーが発生したページ番号と、代替ブロックの物理ブロック番号とを管理した。実施の形態2では、エラーブロック管理テーブル30の構成を変えることにより、エラーが発生したページ番号と、代替ブロックの物理ブロック番号とを管理する。
実施の形態2に係るデータ記録装置100の構成は、図3に示す実施の形態1に係るデータ記録装置100の構成と同じである。
アドレス変換テーブル10、エラーブロック管理テーブル30は、以下で詳しく構成を説明する。物理ブロック管理テーブル20は、図2に基づき説明した通りである。データ書込部40、ブロック特定部50、関連情報記憶部60は、基本的な動作は実施の形態1と同じである。但し、関連情報記憶部60のデータの書き込み先等が異なる。
図7は、実施の形態2に係るアドレス変換テーブル10と、エラーブロック管理テーブル30との構成図である。
アドレス変換テーブル10は、論理ブロック番号に対して、代替の有無を示すフラグと、物理ブロック番号とが記憶される。物理ブロック番号には、ブロックで記憶セルエラーが発生していない場合は対応する物理ブロック番号がそのまま格納される。一方、ブロックで記憶セルエラーが発生した場合は、エラーブロック管理テーブル30のインデックス番号が格納される。
エラーブロック管理テーブル30は、各エントリに、エラーが発生したページ番号及び物理ブロック番号と、代替ブロックの物理ブロック番号が格納されているエラーブロック管理テーブル30内の位置を示すポインタとが格納される。
エラーブロック管理テーブル30において、エラーが発生したページ番号欄に“−”が記憶されている場合、対応する物理ブロック内に記憶セルエラーが発生していないことを示す。物理ブロック番号欄に“−”が記憶されている場合、そのエントリは未使用であることを示す。また、代替ブロックへのPTR欄に“−”が記憶されている場合、対応する物理ブロックに対して代替ブロックが割り当てられていないことを示す。つまり、物理ブロック内でエラーが発生していないことを示す。
図7では、論理ブロック番号(2)への入力データをブロック(X)へ書込んでいる途中、ページ(2)でエラーが発生し、代替ブロック(Y)へ継続して記録している状態を示している。
図8は、実施の形態2に係るデータ記録装置100の動作を示すフローチャートである。データのライト命令を受けると、以下の処理が実行される。
まず、変数Pが0に初期化される(S201)。次に、データ書込部40は、アドレス変換テーブル10における、指定論理ブロック番号に対応するエントリから、物理ブロック番号を読み出す(S202)。そして、データ書込部40は、S202で読み出した物理ブロック番号が示すNAND型フラッシュメモリにおけるブロックのページ(P)へデータを書き込む(S203)。
ページ(P)へのデータの書き込みの際、データ書込部40は、記憶セルエラーが発生したか否かを判定する(S204)。記憶セルエラーが発生しなかった場合(S204でエラーなし)、データ書込部40は、書き込みが済んでいないデータが残っていれば変数Pに1加算して処理をS203へ戻し(S206)、残っていなければ処理を終了する(S205)。
一方、記憶セルエラーが発生した場合(S204でエラーあり)、ブロック特定部50は、物理ブロック管理テーブル20を参照して、状態が“消去済”となっている空きブロック(代替ブロック)を特定する(S207)。そして、関連情報記憶部60は、S202で読み出した物理ブロック番号と、S207で特定した代替ブロックの物理ブロック番号とをエラーブロック管理テーブル30へ書き込む(S208)。また、関連情報記憶部60は、エラーブロック管理テーブル30におけるS202で読み出した物理ブロック番号を書き込んだエントリのページ番号欄に、変数Pの値を書き込むとともに、そのエントリのポインタ欄に、S207で特定した代替ブロックの物理ブロック番号を書き込んだエントリの位置を示すポインタを書き込む(S209)。また、関連情報記憶部60は、アドレス変換テーブル10における指定論理ブロック番号に対応するエントリのフラグを1(記憶セルエラーあり)に更新するとともに、そのエントリの物理ブロック番号欄を、エラーブロック管理テーブル30におけるS202で読み出した物理ブロック番号を書き込んだエントリの位置を示すポインタに更新する(S210)。
そして、データ書込部40は、S202で読み出した物理ブロック番号を、S207で特定した代替ブロックの物理ブロック番号に読み変えて、処理をS203へ戻す(S211)。
図9は、実施の形態2に係るデータ記録装置100の動作例を示す図である。
図9に示す例では、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックにデータを書き込み中に、ページ(2)で記憶セルエラーが発生した場合を示す。
論理ブロック番号(2)が指定されたライト命令を受けて処理が開始される。まず、変数Pが0に初期化される(S201)。次に、論理ブロック番号(2)に対応するエントリの物理ブロック番号(X)が読み出される(S202)。そして、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(0)にデータが書き込まれる(S203)。ここでは、記憶セルエラーは発生せず(S204でエラーなし)、書き込みが済んでいないデータが残っているため、変数Pに1(=0+1)が設定され、処理がS203へ戻される(S205)。
続いて、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(1)にデータが書き込まれ、変数Pに2(=1+1)が設定され、処理がS203へ戻される(S203−S205)。
続いて、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(2)にデータの書き込みが行われる(S203)。この際、記憶セルエラーが発生する(S204でエラーあり)。そのため、空きブロック(物理ブロック番号(Y))が特定される(S207)。そして、エラーブロック管理テーブル30のエントリ(0)に物理ブロック番号(X)が書き込まれ、エラーブロック管理テーブル30のエントリ(1)に物理ブロック番号(Y)が書き込まれる(S208)。また、エラーブロック管理テーブル30におけるエントリ(0)のページ番号欄に変数Pの値(2)が書き込まれ、エントリ(0)のポインタ欄にエントリ(1)の位置を示すポインタが書き込まれる(S209)。また、アドレス変換テーブル10における論理ブロック番号(2)に対応するエントリのフラグが1に更新され、そのエントリの物理ブロック番号欄がエラーブロック管理テーブル30のエントリ(1)の位置を示すポインタに更新される(S210)。
すると、物理ブロック番号(Y)に読み変えられ(S211)、物理ブロック番号(Y)が示すNAND型フラッシュメモリにおけるブロックのページ(2)にデータが書き込まれる(S203)。その後、順次、物理ブロック番号(Y)が示すNAND型フラッシュメモリにおけるブロックのページ(3)以降にデータが書き込まれる。
以上のように、実施の形態2に係るデータ記録装置100では、実施の形態1と同様に、データを記録する度にエラーブロック管理テーブル30を参照することはない。また、エラーが発生した場合に、エラーが発生したブロックに既に書き込んだデータを新たなブロックへコピーすることがない。したがって、実施の形態1と同様の効果を得ることができる。
なお、S102で読み出すエントリ(E)に物理ブロック番号が記憶されていない場合の処理は、実施の形態1と同様に行うことができる。
また、現在典型的なNAND型フラッシュメモリでは64〜128ページ/ブロックであるため、エラーブロック管理テーブル30におけるエラーが発生したページ番号の格納領域は、8ビットあれば十分に表現可能である。また、現在典型的なNAND型フラッシュメモリでは32768〜131072ブロック/チップであるため、エラーブロック管理テーブル30における物理ブロック番号の格納領域は、24ビットあれば十分に表現可能である。
したがって、エラーブロック管理テーブル30における各エントリは、従来のエラーブロック管理テーブル30のエントリサイズである4バイトと同じ領域サイズで表現できる。
実施の形態3.
実施の形態1,2では、記憶セルエラーが発生した場合に、代替ブロックを特定した。実施の形態3では、代替ブロックを高速に特定する方法について説明する。
図10は、実施の形態3に係るデータ記録装置100の構成図である。
データ記録装置100は、実施の形態1又2に係るデータ記録装置100の機能に加え、書込ブロック管理テーブル70を備える。
アドレス変換テーブル10、物理ブロック管理テーブル20、エラーブロック管理テーブル30、データ書込部40、ブロック特定部50は、実施の形態1又2で説明した通りである。関連情報記憶部60は、原則として実施の形態1又2で説明した通りであるが、代替ブロックの特定方法のみ異なる。書込ブロック管理テーブル70は、以下で詳しく構成を説明する。
図11は、実施の形態3に係る書込ブロック管理テーブル70の構成図である。
書込ブロック管理テーブル70は、状態が“消去済”となっている空きブロックの物理ブロック番号が記憶される。書込ブロック管理テーブル70に登録された順に、データの書き込み先のブロックとして選択される。
また、書込ブロック管理テーブル70は、次にデータの書き込み先のブロックとして選択される物理ブロック番号が記憶されたエントリを示す書込ブロックポインタが設定されている。
図12は、実施の形態3に係る代替ブロック特定処理を示すフローチャートである。つまり、図12は、図5に示す実施の形態1におけるS107の処理、及び、図8に示す実施の形態2におけるS207の処理を示すフローチャートである。
関連情報記憶部60は、書込ブロックポインタが設定されている書込ブロック管理テーブル70におけるエントリから物理ブロック番号を読み出し、その物理ブロック番号が示すブロックを代替ブロックとする(S301)。そして、関連情報記憶部60は、書込ブロックポインタを書込ブロック管理テーブル70における次のエントリに進める(S302)。
なお、データ書込部40が、S301で特定された代替ブロックへ続きのデータの書き込みを開始した後、関連情報記憶部60は、物理ブロック管理テーブル20を参照して、状態が“消去済”となっている空きブロックを特定し、書込ブロック管理テーブル70に追加する。
図13は、実施の形態3に係るデータ記録装置100の動作例を示す図である。
図13に示す例では、物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックにデータを書き込み中に、ページ(2)で記憶セルエラーが発生した場合を示す。
物理ブロック番号(X)が示すNAND型フラッシュメモリにおけるブロックのページ(2)にデータの書き込みが行われると(S103又はS203)、記憶セルエラーありと判定される(S104又はS204でエラーあり)。すると、S107又はS207が実行される。
S107又はS207では、まず、書込ブロックポインタが設定されている書込ブロック管理テーブル70におけるエントリから物理ブロック番号(Y)が読みだされる(S301)。そして、書込ブロックポインタが次のエントリに進められる(S302)。
すると、物理ブロック番号(Y)が示すNAND型フラッシュメモリにおけるブロックのページ(2)から順次データが書き込まれる。これと並行して、状態が“消去済”となっている空きブロックが特定され、書込ブロック管理テーブル70に追加される。
以上のように、実施の形態3に係るデータ記録装置100では、高速に代替ブロックを特定することができる。そのため、実施の形態1,2において代替ブロックの特定に使われていた時間も、データの書き込みに充てることができる。
なお、実施の形態3においては、書込ブロック管理テーブル70および書込みブロックポインタの保持、および書込みブロックポインタを更新する機能は、NAND型フラッシュメモリへデータを書き込むハードウェアで実現することが望ましい。
次に、実施の形態におけるデータ記録装置100のハードウェア構成について説明する。
図14は、データ記録装置100のハードウェア構成の一例を示す図である。
図14に示すように、データ記録装置100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、NAND型フラッシュメモリ920と接続され、これらのハードウェアデバイスを制御する。
ROM913などには、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
プログラム群923には、上記の説明において「データ書込部40」、「ブロック特定部50」、「関連情報記憶部60」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「アドレス変換テーブル10」、「物理ブロック管理テーブル20」、「エラーブロック管理テーブル30」、「書込ブロック管理テーブル70」等に記憶される情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
10 アドレス変換テーブル、20 物理ブロック管理テーブル、30 エラーブロック管理テーブル、40 データ書込部、50 ブロック特定部、60 関連情報記憶部、70 書込ブロック管理テーブル、100 データ記録装置。

Claims (8)

  1. 記憶領域を複数に区切ったブロック単位でデータが管理され、各ブロックを複数に区切ったページ単位でデータの書き込みが行われる記憶装置への複数のページに跨るデータの書き込み制御を行うデータ記録装置であり、
    所定のブロックを対応ブロックとして、前記対応ブロックにおける先頭のページから順にデータを書き込むデータ書込部と、
    前記データ書込部がデータを書き込んだページでエラーが発生した場合、前記対応ブロックに代わる代替ブロックを特定するブロック特定部と、
    を備え、
    前記データ書込部は、前記エラーが発生したページのページ番号が示すページであって、前記ブロック特定部が特定した代替ブロックにおけるページから順に、エラーが発生したデータ以降のデータを書き込む
    ことを特徴とするデータ記録装置。
  2. 前記データ記録装置は、さらに、
    前記対応ブロックの物理ブロック番号と、エラーが発生したページのページ番号と、前記ブロック特定部が特定した代替ブロックの物理ブロック番号とを関連付けて記憶する関連情報記憶部
    を備えることを特徴とする請求項1に記載のデータ記録装置。
  3. 前記データ記録装置は、さらに、
    物理ブロック番号とページ番号との組を1つのエントリとして、1つの論理ブロック番号に対して、複数のエントリを対応付けて記憶するブロック変換テーブル
    を備え、
    前記データ書込部は、前記ブロック変換テーブルで所定の論理ブロック番号に対応付けて記憶された1つ目のエントリにおける物理ブロック番号が示す前記記憶装置のブロックを対応ブロックとし、
    前記関連情報記憶部は、エラーが発生したページのページ番号を前記1つ目のエントリのページ番号とし、前記代替ブロックの物理ブロック番号を2つ目のエントリの物理ブロック番号として、前記ブロック変換テーブルに記憶する
    ことを特徴とする請求項2に記載のデータ記録装置。
  4. 前記データ記録装置は、さらに、
    物理ブロック番号と、そのブロックにおけるエラーが発生したページのページ番号とを関連付けて記憶するエラーブロック管理テーブル
    を備え、
    前記関連情報記憶部は、前記対応ブロックの物理ブロック番号と、エラーが発生したページのページ番号とを関連付けて前記エラーブロック管理テーブルに記憶するとともに、前記代替ブロックの物理ブロック番号を前記エラーブロック管理テーブルに記憶し、前記対応ブロックの物理ブロック番号を記憶したレコードと、前記代替ブロックの物理ブロック番号を記憶したレコードとを関連付ける
    ことを特徴とする請求項2に記載のデータ記録装置。
  5. 前記データ記録装置は、さらに、
    データを書込み可能なブロックの物理ブロック番号を記憶した書込ブロック管理テーブル
    を備え、
    前記ブロック特定部は、前記データ書込部がデータを書き込んだページでエラーが発生した場合、前記書込ブロック管理テーブルから物理ブロック番号を前記代替ブロックの物理ブロック番号として取得することにより、前記代替ブロックを特定する
    ことを特徴とする請求項1から4までのいずれかに記載のデータ記録装置。
  6. 前記記憶装置は、前記ブロック単位でデータの消去が行われ、前記ページ単位でデータの書き込みが行われ、データが書き込まれた記憶領域には、書き込まれたデータを消去しなければ書込みが行えない
    ことを特徴とする請求項1から5までのいずれかに記載のデータ記録装置。
  7. 記憶領域を複数に区切ったブロック単位でデータが管理され、各ブロックを複数に区切ったページ単位でデータの書き込みが行われる記憶装置への複数のページに跨るデータの書き込み制御を行うデータ記録方法であり、
    処理装置が、所定のブロックを対応ブロックとして、前記対応ブロックにおける先頭のページから順にデータを書き込むデータ書込工程と、
    処理装置が、前記データ書込工程でデータを書き込んだページでエラーが発生した場合、前記対応ブロックに代わる代替ブロックを特定するブロック特定工程と、
    を備え、
    前記データ書込工程では、前記エラーが発生したページのページ番号が示すページであって、前記ブロック特定工程で特定した代替ブロックにおけるページから順に、エラーが発生したデータ以降のデータを書き込む
    ことを特徴とするデータ記録方法。
  8. 記憶領域を複数に区切ったブロック単位でデータが管理され、各ブロックを複数に区切ったページ単位でデータの書き込みが行われる記憶装置への複数のページに跨るデータの書き込み制御を行うデータ記録プログラムであり、
    所定のブロックを対応ブロックとして、前記対応ブロックにおける先頭のページから順にデータを書き込むデータ書込処理と、
    前記データ書込処理でデータを書き込んだページでエラーが発生した場合、前記対応ブロックに代わる代替ブロックを特定するブロック特定処理と、
    をコンピュータに実行させ、
    前記データ書込処理では、前記エラーが発生したページのページ番号が示すページであって、前記ブロック特定処理で特定した代替ブロックにおけるページから順に、エラーが発生したデータ以降のデータを書き込む
    ことを特徴とするデータ記録プログラム。
JP2012132944A 2012-06-12 2012-06-12 データ記録装置、データ記録方法及びデータ記録プログラム Pending JP2013257699A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012132944A JP2013257699A (ja) 2012-06-12 2012-06-12 データ記録装置、データ記録方法及びデータ記録プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012132944A JP2013257699A (ja) 2012-06-12 2012-06-12 データ記録装置、データ記録方法及びデータ記録プログラム

Publications (1)

Publication Number Publication Date
JP2013257699A true JP2013257699A (ja) 2013-12-26

Family

ID=49954097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012132944A Pending JP2013257699A (ja) 2012-06-12 2012-06-12 データ記録装置、データ記録方法及びデータ記録プログラム

Country Status (1)

Country Link
JP (1) JP2013257699A (ja)

Similar Documents

Publication Publication Date Title
US9183136B2 (en) Storage control apparatus and storage control method
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US9164887B2 (en) Power-failure recovery device and method for flash memory
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US8825946B2 (en) Memory system and data writing method
US9058256B2 (en) Data writing method, memory controller and memory storage apparatus
TWI423026B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN108132890B (zh) 存储芯片的垃圾回收方法、装置、设备及存储介质
US8112589B2 (en) System for caching data from a main memory with a plurality of cache states
JP5347019B2 (ja) キャッシュメモリ装置、キャッシュメモリ制御方法、プログラムおよび集積回路
US9524110B2 (en) Page replacement algorithms for use with solid-state drives
JPWO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP2013097416A (ja) 記憶装置および計算機
KR20200116704A (ko) 메모리 시스템 및 그것의 동작방법
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
US20230342294A1 (en) Memory device and non-transitory computer readable recording medium
US9916255B2 (en) Data storage based on memory persistency
CN105653539A (zh) 索引分布式存储的实现方法和装置
US11347637B2 (en) Memory system and non-transitory computer readable recording medium
CN112181275A (zh) 一种数据处理器及数据处理方法
JP2013257699A (ja) データ記録装置、データ記録方法及びデータ記録プログラム
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
TW201624491A (zh) 資訊處理裝置及非暫態電腦可讀取記錄媒體