JP2007072839A - 記録制御装置および方法、並びにプログラム - Google Patents
記録制御装置および方法、並びにプログラム Download PDFInfo
- Publication number
- JP2007072839A JP2007072839A JP2005260307A JP2005260307A JP2007072839A JP 2007072839 A JP2007072839 A JP 2007072839A JP 2005260307 A JP2005260307 A JP 2005260307A JP 2005260307 A JP2005260307 A JP 2005260307A JP 2007072839 A JP2007072839 A JP 2007072839A
- Authority
- JP
- Japan
- Prior art keywords
- recording
- block
- data
- recorded
- error
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4239—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
Abstract
【課題】書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができるようにする。
【解決手段】 フラッシュメモリを構成する複数のブロックのうちのブロックAにおいて、先頭のページから順にデータを記録させている場合に、ブロックAの先頭から40番目のページであるp40で書き込みエラーが発生したことにより、ブロックAが欠陥ブロックとなったときに、フラッシュメモリを制御するメモリ制御部は、ブロックAのp40以降のデータを、退避ブロックとしてのブロックCに仮に記憶させる。本発明は、例えば、記録媒体に対するデータの記録を制御する記録制御装置に適用できる。
【選択図】図5
【解決手段】 フラッシュメモリを構成する複数のブロックのうちのブロックAにおいて、先頭のページから順にデータを記録させている場合に、ブロックAの先頭から40番目のページであるp40で書き込みエラーが発生したことにより、ブロックAが欠陥ブロックとなったときに、フラッシュメモリを制御するメモリ制御部は、ブロックAのp40以降のデータを、退避ブロックとしてのブロックCに仮に記憶させる。本発明は、例えば、記録媒体に対するデータの記録を制御する記録制御装置に適用できる。
【選択図】図5
Description
本発明は、記録制御装置および方法、並びにプログラムに関し、特に、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができる記録制御装置および方法、並びにプログラムに関する。
NAND型フラッシュメモリ(以下、単にフラッシュメモリと称する)は、複数のブロックからなり、そのブロックそれぞれは、所定バイト数からなるページが複数集められて構成されている。また、フラッシュメモリでは、例えば、データの記録(書き込み)は、ページ単位で行われ、データの消去はブロック単位で行われる。
例えば、記憶容量が2ギガビット(Gbit)のフラッシュメモリでは、図1に示すように、2048個のブロック(2048ブロック)で構成され、1ブロックは、64ページで構成されている。また、1ページは、2048バイトに冗長部64バイトを加えた2112バイトで構成されている。
このようなフラッシュメモリは、画像データなどの大容量ファイルの保存または運搬に適しており、近年、デジタルビデオカメラ(デジタルカメラ)、またはハードディスクやDVD (Digital Versatile Disc)などの記録媒体にコンテンツデータを記録する記録再生装置などに装着することができるようになってきている(例えば、特許文献1参照)。
ところで、フラッシュメモリでは、全ブロックのうちの所定数のブロックが、出荷時点から欠陥ブロックとなっていることがある。ここで、欠陥ブロックとは、使用不可能なブロック、換言すれば、データの記録ができないブロックである。
従って、フラッシュメモリを組み込んだシステムでは、フラッシュメモリを最初に使用する場合に、欠陥ブロックが(どこに)あるかどうかをチェックし、検出された欠陥ブロックを使用しないように制御する必要がある。
図1の例では、全2048ブロックのうちの所定数のブロックを、欠陥ブロックを代替する代替ブロックとして割り当てるブロックの領域である代替ブロック領域を設ける。そして、初期動作確認時の欠陥検出処理で検出された図示しない1つの欠陥ブロックの代替ブロックとして、代替ブロック領域内のブロックR(Rで示されているブロック)が割り当てられ、検出された欠陥ブロックに記録するべきデータが、ブロックRに記録されるようにする。
また、フラッシュメモリでは、出荷時点から存在する欠陥ブロックの他に、これまで使用可能だったブロックが使用中に欠陥ブロックとなることもある。即ち、データを記録している所定ブロック内のあるページで、エラー(書き込みエラー)が発生した場合、そのエラーが発生したページを含むブロックは、それ以降欠陥ブロックとなる。この場合も、出荷時点から存在している欠陥ブロックと同様に代替ブロックが割り当てられる。
図2を参照して、図1で示した2Gbitのフラッシュメモリにおいて、ブロックA(Aで示されるブロック)内のあるページでエラーが発生した場合における、従来の代替ブロック処理について説明する。
フラッシュメモリを制御する制御部が、バッファメモリからデータを取り出し、ブロックAの先頭ページであるp1から順に、p2,p3,・・・とデータを記録させる。そして、バッファメモリから取り出したデータをp40に記録させているときにエラーが発生したとする。ここで、p1乃至p39に記録されたデータをデータa1とする。
この場合、制御部は、ブロックAの代替ブロックとして、代替ブロック領域内のブロックB(Bで示されているブロック)を割り当てる。そして、制御部は、バッファメモリからブロックAのp1乃至p39に記録させたデータa1を再度取り出し、ブロックBに先頭ページから順に記録させる。そして、ブロックBのp1乃至p39に対して、データa1の記録が終了した後、制御部は、ブロックBのp40以降に記録するべきデータa2をバッファメモリから読み出し、ブロックBのデータa1に続けて記録させる。
上述したような従来の代替ブロック処理では、あるページでエラーが発生した場合に、ブロックの先頭のページからエラーが発生したページまでのデータを再度バッファメモリから読み出すので、ブロック内の全ページに対するデータの記録が正常に終了したことが確認されるまで、そのブロックに記録させるデータをバッファメモリで保持しておく必要がある。従って、バッファメモリには、少なくとも1ブロック分のデータ容量が必要となる。
また、上述の代替ブロック処理では、エラーが発生したページ(p40)以前のデータa1については、ブロックAとブロックBに対して2回書き込むことになり、データの記録速度が低下する。このことは、記録するデータが文書ファイルなどのリアルタイム性が要求されないデータであれば問題にはならないが、例えば、カメラで撮像された動画像データの記録などのように、連続して供給されるデータをリアルタイムに記録する必要のある場合には、一部の画像が記録されないなど致命的な問題が起こり得る。
記録速度の低下を補うために、フラッシュメモリを複数個並列に動作させる方法などもあるが、その方法は、回路規模および消費電力の増大という新たな問題を発生させる。例えば、16個のフラッシュメモリを並列に動作させた場合には、バッファメモリもそれに対応して1個のフラッシュメモリのときの16倍だけ必要となり、バッファメモリのさらなる増大につながる。
例えば、1個のフラッシュメモリに対しては上述したように少なくとも1ブロック分のバッファメモリがあれば良いが、エラーによる再書き込み中に再度エラーが発生することも考慮して、1個のフラッシュメモリに対して2ブロック分のバッファメモリを用意する場合、16個のフラッシュメモリを並列に動作させる構成では、約4メガバイト(2[ブロック]×2K[バイト/ページ]×64[ページ]×16[個])の容量のバッファメモリが必要となる。
本発明は、このような状況に鑑みてなされたものであり、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができるようにするものである。
本発明の一側面の記録制御装置は、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置において、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる記録制御手段を備える。
前記記録制御手段には、さらに、前記所定の記録ブロックを代替する代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記所定の記録ブロックの前記所定の記録単位より前までの前記記録単位に記録されている前記データであるエラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記退避ブロックに記録されている前記エラー記録単位以降データを記録させることができる。
前記記録制御手段には、前記記録媒体への前記データの記録または再生の処理が行われていないアイドル状態のときに、前記代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記エラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記エラー記録単位以降データを記録させることができる。
前記記録制御手段には、さらに、前記退避ブロックに記録されている前記エラー記録単位以降データが前記代替記録ブロックに記録された後に、前記退避ブロックの前記エラー記録単位以降データを消去させることができる。
前記退避ブロックおよび前記代替記録ブロックは、前記欠陥ブロックを代替する代替ブロック領域として確保されている前記記録ブロックのなかから決定させることができる。
前記記録媒体は、NAND型フラッシュメモリとすることができる。
本発明の一側面の記録制御方法は、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法において、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させるステップを含む。
本発明の一側面のプログラムは、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を、コンピュータに実行させるプログラムにおいて、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させるステップを含む。
本発明の一側面においては、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する際、複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データが、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録される。
記録制御装置は、独立した装置であっても良いし、記録制御処理を行うブロックであっても良い。
本発明の一側面によれば、書き込みのエラーに対して、少ないバッファメモリで、かつ、高速に対処することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の一側面の記録制御装置は、
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置(例えば、図3の記録装置12)において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる記録制御手段(例えば、図4のメモリ制御部41)
を備える。
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置(例えば、図3の記録装置12)において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる記録制御手段(例えば、図4のメモリ制御部41)
を備える。
本発明の一側面(第1の側面)の記録制御方法またはプログラムは、
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法、または、前記記録制御処理をコンピュータに実行させるプログラムにおいて、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる(例えば、図6のステップS17)
ステップを含む。
データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法、または、前記記録制御処理をコンピュータに実行させるプログラムにおいて、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる(例えば、図6のステップS17)
ステップを含む。
以下、図を参照して、本発明の実施の形態について説明する。
図3は、本発明を適用した情報処理システムの一実施の形態の構成例を示している。
図3の情報処理システムは、ホスト装置11と記録装置12により構成されている。
ホスト装置11は、例えば、パーソナルコンピュータ、デジタルビデオカメラ(デジタルカメラ)、ハードディスクやDVDなどの記録媒体にデータ(画像データなど)を記録する記録再生装置、テレビジョン受像機、携帯電話機、PDA(Personal Digital Assistant)、または、フラッシュメモリやハードディスクを有する携帯型のデジタルオーディオプレーヤなどのポータブルデバイスなどであり、自身(ホスト装置11)が受信または生成したデータを記録装置12に供給し、記憶させる。
また、ホスト装置11は、ドライブ21を備えており、そこに装着される、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア22から読み出されたプログラムやデータを記録装置12に供給する。
なお、ホスト装置11が、ルータ、モデムなどの通信部を有している場合には、ホスト装置11は、リムーバブルメディア22から読み出されたものの他、通信部を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体から取得されたプログラムやデータを、記録装置12に供給することもできる。
記録装置12は、記録媒体として、NAND型フラッシュメモリ31を有し、ホスト装置11から供給されるデータ(例えば、画像データ)をNAND型フラッシュメモリ31に記録(記憶)する。NAND型フラッシュメモリ31は、上述したように、複数のブロックからなり、そのブロックそれぞれは、所定バイト数からなるページが複数集められて構成される。
図4は、記録装置12の詳細な構成例を示すブロック図である。
記録装置12は、NAND型フラッシュメモリ31、メモリ制御部41、プログラム記憶部42、バッファメモリ43、フラッシュインタフェース44、ファイル管理部45、および論物アドレス変換テーブル46により構成されている。
NAND型フラッシュメモリ31(以下、単にフラッシュメモリ31と称する)は、図4に示すように、管理情報記録領域、データ記録領域、および代替ブロック領域により構成される。
管理情報記録領域には、フラッシュメモリ31の属性情報(例えば、記憶容量、ブロック数や1ブロック当たりのページ数などの構成情報)、どのブロックに何のデータが記録されているかを表すデータ情報、ブロックの使用、未使用、またはブロックが欠陥ブロックであるかを表すブロック情報、フラッシュメモリ31の物理アドレスと論理アドレスの対応を表す論物アドレス変換情報などが記憶される。
データ記録領域には、ホスト装置11から供給されたデータ(以下、適宜、記録データと称する)が記録される。代替ブロック領域は、出荷時点から存在する、または、使用中に発生した欠陥ブロックの代替ブロック用に割り当てられるブロックの領域である。
なお、フラッシュメモリ31は、従来の図1における場合と同様の記憶容量および代替ブロック領域を有しているものとする。
メモリ制御部41は、プログラム記憶部42に記憶されている制御プログラムに従い、記録装置12の各部を制御する。なお、レジスタ51には、各部を制御する際の一時的なデータが必要に応じて記憶される。
例えば、メモリ制御部41は、記録装置12が起動された場合、フラッシュメモリ31の管理情報記録領域に記憶されている属性情報、データ情報、ブロック情報、および論物アドレス変換情報を読み出し、属性情報、データ情報、およびブロック情報をファイル管理部45に、論物アドレス変換情報を論物アドレス変換テーブル46にそれぞれ記憶させる。なお、ファイル管理部45に記憶される属性情報とデータ情報を合わせてファイル情報と称する。
また、メモリ制御部41は、記録指令のコマンドとともに、ホスト装置11(図3)から供給される、記録データと、その記録データの記録先としてのフラッシュメモリ31の論理アドレス(ブロックアドレス)を取得する。なお、ホスト装置11は、ファイル管理部45に記憶されているファイル情報を参照し、空きブロックを指定することができる。
メモリ制御部41は、供給された記録データをバッファメモリ43に一旦記憶させるとともに、論物アドレス変換テーブル46に記憶されている論物アドレス変換情報を参照し、ホスト装置11に指定された論理アドレスを物理アドレスに変換する。そして、メモリ制御部41は、変換された物理アドレスのブロックに対して、記録データを1ページ分ずつバッファメモリ43から取り出し、フラッシュインタフェース44を介して、フラッシュメモリ31に供給する(転送する)。これにより、記録データがフラッシュメモリ31の所定のブロック(のページ)に書き込まれる。なお、メモリ制御部41は、1ページ分の記録データを転送するたびに、転送した記録データが所定のページに正常に書き込まれたかどうかをステータスにより確認する。
プログラム記憶部42は、記録装置12の各部を制御する制御プログラムを記憶する。ここに記憶されている制御プログラムは、例えば、ドライブ21に装着されたリムーバブルメディア22から読み出され、インストールされたものである。バッファメモリ43は、メモリ制御部41から供給される記録データを一時記憶する。フラッシュインタフェース44は、メモリ制御部41とフラッシュメモリ31との間でデータを中継する。
ファイル管理部45は、上述したように、メモリ制御部41から供給される、ファイル情報(属性情報およびデータ情報)およびブロック情報を記憶する。また、ファイル管理部45は、必要に応じてファイル情報をホスト装置11に供給する。論物アドレス変換テーブル46は、メモリ制御部41から供給される論物アドレス変換情報を記憶する。
次に、図5を参照して、図2で示した例と同様に、ブロックAに記録データを書き込んでいる最中に、p40においてエラー(書き込みエラー)が発生した場合の、記録装置12が行う代替ブロック処理について説明する。なお、図5において、図2と対応する部分については同一の符号を付してあり、その説明を適宜省略する。
図5Aに示すように、メモリ制御部41が、バッファメモリ43から1ページ分ずつ記録データを取り出し、その取り出した記録データをブロックAのp1から順に記録させる(フラッシュメモリ31に転送する)。そして、ブロックAのp40に対して記録データを記録させているときにエラーが発生したとする。
この場合、メモリ制御部41は、エラーの発生したp40のアドレス(エラーページアドレス)と、エラーの発生したブロックAのアドレス(エラーブロックアドレス)をレジスタ51に記憶する。そして、メモリ制御部41は、ブロックAのp40以降に記録するべき記録データであるデータa2を一時的に記憶させる退避ブロックを、代替ブロック領域のなかから決定する。図5Aでは、ブロックC(Cで示されているブロック)が、決定された退避ブロックを表している。
次に、メモリ制御部41は、バッファメモリ43に記憶されているデータa2を1ページ分ずつ順次取り出し、退避ブロックCに記録させる。これにより、ブロックAのp40乃至p64に記録するべきデータa2が、退避ブロックCのp1乃至p25に記録される。
その後、まだバッファメモリ43に記録データがある場合には、次のブロック(例えば、図5Aに示すブロックD)が決定され、そこに、次の記録データが書き込まれる。
そして、ホスト装置11から供給された記録データのフラッシュメモリ31への記録(転送)が一旦終了し、フラッシュメモリ31への記録データの書き込みまたはフラッシュメモリ31に記録されているデータの読み出しのいずれの処理も行われていない、記録装置12のアイドル状態のときに、メモリ制御部41は、図5Bおよび図5Cに示す処理を実行する。
即ち、メモリ制御部41は、ブロックAの代替ブロックを、代替ブロック領域内のブロックのなかから決定する。図5Bでは、ブロックBがブロックAの代替ブロックとして決定されている。次に、メモリ制御部41は、レジスタ51に記憶されているエラーブロックアドレス(ブロックAを示すアドレス)とエラーページアドレス(p40を示すアドレス)を読み出し、ブロックAのp1からp39(エラーページアドレスが表すページの前のページ)までのデータa1を代替ブロックBに記録させる。さらに、メモリ制御部41は、データa1に続けて、退避ブロックCに記録されているデータa2(エラーページアドレスが表すページ以降のデータ)を代替ブロックBに記録させる。
なお、メモリ制御部41が、フラッシュメモリ31に記憶されているデータを読み出し、読み出したブロックと異なるブロックに記録させる場合には、ホスト装置11から供給された記録データをフラッシュメモリ31に記録させる場合と同様に、フラッシュメモリ31から読み出したデータを1ページずつバッファメモリ43に記憶させ、代替ブロックB内のページに記録させる。
そして、ブロックAおよび退避ブロックCに記録されている全ての記録データが、即ち、データa1およびa2が、ブロックAの代替ブロックBに記録された後、メモリ制御部41は、図5Cに示すように、退避ブロックCに記録されているデータa2を消去する。
以上のように、記録装置12の代替ブロック処理によれば、ホスト装置11から供給されている記録データをフラッシュメモリ31に転送している最中に、ブロックAのp40でエラーが発生した場合には、エラーが発生したp40以降のデータa2を退避ブロックCに記憶させる。
そして、記録装置12がアイドル状態となったときに、ブロックAの代替ブロックとしてブロックBを決定し、ブロックAのp40より前に記録されているデータa1と、退避ブロックCに記録されているエラーが発生したp40以降のデータa2を、ブロックBに記録させる。
従って、ホスト装置11から供給される記録データが、動画像データなどのようにリアルタイム性が要求されるデータであっても、記録装置12から供給されて記録しているときに、バッファメモリ43から2回読み出す必要のあるデータは、ブロックAのp40に記録させる予定だった1ページ分のデータのみであるので、記録速度の低下を(ほとんど無視できる程度に)抑えることができる。
また、バッファメモリ43に必要な記憶容量も1ページ分のデータ量で済むことになり、従来における場合と比較して、回路規模および消費電力を極力少なくすることができる。このことは、装置の小型化やバッテリによる長時間駆動が求められるポータブルデバイスなどには効果が大きい。
なお、従来例と同様に、16個のフラッシュメモリを並列に動作させ、かつ、1個のフラッシュメモリに対して、エラーによる再書き込み中の再エラーも考慮して、2ページ分のバッファメモリを用意する場合、バッファメモリ43では、約64Kバイト(2[ページ]×2K[バイト/ページ]×16[個])の容量が必要となる。即ち、図4の記録装置12によれば、バッファメモリの容量を、従来の4メガバイトの1/64に削減することができる。フラッシュメモリの容量は、今後、増大していくことが予想され、その場合、必要となるバッファメモリの容量の差は、ますます大きくなり、本発明がより有用となる。
図6および図7のフローチャートを参照して、プログラム記憶部42に記憶された制御プログラムに従ってメモリ制御部41が行うブロック代替処理について説明する。図6は、ブロック代替処理のうちの、記録データがホスト装置11から供給されたときに実行されるリアルタイム記録処理のフローチャートであり、図7は、ブロック代替処理のうちの、記録装置12がアイドル状態となったときに実行される退避データ記録処理のフローチャートである。
記録指令のコマンドとともに、記録データと、その記録データの記録先としてのフラッシュメモリ31の論理アドレスが、ホスト装置11から記録装置12のメモリ制御部41に供給されると、メモリ制御部41は、供給された記録データをバッファメモリ43に記憶させるとともに、論物アドレス変換テーブル46に記憶されている論物アドレス変換情報を参照し、ホスト装置11に指定された論理アドレスを物理アドレスに変換する。また、メモリ制御部41は、変換された物理アドレスのなかの(最初の)ブロックを決定する。ここで、決定されたブロックを以下では、決定ブロックと称する。
初めに、ステップS11において、メモリ制御部41は、1ページ分の記録データをバッファメモリ43から取り出し、フラッシュインタフェース44を介して、フラッシュメモリ31に供給(転送)し、決定ブロック内の所定のページ(初回は、先頭のページ)に記録させて、ステップS12に進む。
ステップS12において、メモリ制御部41は、ステップS11の記録データの転送から、予め設定された所定時間が経過したか否かを判定し、所定時間が経過したと判定されるまで待機する。
ステップS12で、所定時間が経過したと判定された場合、ステップS13に進み、メモリ制御部41は、転送した記録データが所定のページに正常に書き込まれたかどうかを表すステータスを、フラッシュインタフェース44を介してフラッシュメモリ31から取得する。
ステップS14において、メモリ制御部41は、取得したステータスに基づいて、正常に書き込みが終了したか否かを判定する。ステップS14で、正常に書き込みが終了したと判定された場合、処理を終了する。
一方、ステップS14で、正常に書き込みが終了しなかったと判定された場合、即ち、ページに対する書き込みのエラーが発生した場合、ステップS15に進み、エラーが発生したページであるエラーページのアドレス(エラーページアドレス)と、エラーページを含むブロック、即ち、欠陥ブロックのアドレスをレジスタ51に記憶する。
ステップS16において、メモリ制御部41は、決定ブロックのエラーページ以降に記録するべき記録データを一時的に記憶させる退避ブロックを、代替ブロック領域のなかから決定して、ステップS17に進む。
ステップS17において、メモリ制御部41は、エラーページの記録データを再度バッファメモリ43から読み出し、退避ブロックに記録させ、処理を終了する。
以上のリアルタイム記録処理が、ページに対するエラー(書き込みエラー)が発生するまでの間、決定ブロック内の64ページそれぞれについて順番に実行される。決定ブロック内の64ページのいずれかのページでエラーが発生した場合には、図5を参照して説明したように、図6のステップS16で決定された退避ブロックにエラーページ以降の記録データが記録される。
そして、図6のリアルタイム記録処理において、あるページに対する書き込みでエラーが発生した場合、その後の記録装置12がアイドル状態となったとき、図7の退避データ記録処理が実行される。
即ち、ステップS31において、メモリ制御部41は、エラーページを含むブロックの代替ブロックを代替ブロック領域のなかから決定して、ステップS32に進む。図5に示した例では、これにより、ブロックBがブロックAの代替ブロックとして決定される。
ステップS32において、メモリ制御部41は、レジスタ51に記憶されているエラーページアドレスと欠陥ブロックのアドレスを読み出し、ステップS33に進む。図5に示した例では、メモリ制御部41は、エラーの発生したp40のアドレス(エラーページアドレス)と、エラーの発生したブロックAのアドレス(エラーブロックアドレス)をレジスタ51に記憶する。
ステップS33において、メモリ制御部41は、欠陥ブロックに記録されている、エラーページ前のデータを代替ブロックに記録させ、ステップS34に進む。図5に示した例では、メモリ制御部41は、ブロックAのp1からp39までのデータa1を代替ブロックBに記録させる。
ステップS34において、メモリ制御部41は、退避ブロックに記録されている、エラーページ以降のデータを代替ブロックに記録させ、ステップS35に進む。図5に示した例では、これにより、ブロックAのp40乃至p64に記録するべきデータa2が、退避ブロックCのp1乃至p25に記録される。
ステップS35において、メモリ制御部41は、退避ブロックに記録されているデータを消去して、ステップS36に進む。図5に示した例では、メモリ制御部41は、図5Cに示したように、退避ブロックCに記録されているデータa2を消去する。
ステップS36において、メモリ制御部41は、論物アドレス変換テーブル46に記憶されている論物アドレス変換情報を更新して、処理を終了する。即ち、メモリ制御部41は、欠陥ブロックの論理アドレスと対応付けられている物理アドレスを、代替ブロックの物理アドレスに変更して、処理を終了する。図5に示した例では、ブロックAの論理アドレスに対応付ける物理アドレスが、ブロックBの物理アドレスとされる。
以上のように、記録装置12のブロック代替処理によれば、フラッシュメモリ31を構成する複数のブロックのうちのブロックAにおいて、先頭のページから順にデータを記録させている場合に、p40でエラーが発生したことにより、ブロックAが欠陥ブロックとなったときに、メモリ制御部41は、ブロックAのp40以降に記録するべきデータを、退避ブロックとしてのブロックCに仮に記憶させる。そして、フラッシュメモリ31へのデータの記録または再生の処理が行われていないアイドル状態のときに、メモリ制御部41は、ブロックAを代替する代替記録ブロックとしてブロックBを決定し、ブロックBの先頭のページから、ブロックAのエラーページ(p40)より前までの(即ち、p1からp39までの)データを順に記録させ、それに続けて、ブロックCに記録されているデータを記録させる。
これにより、ホスト装置11から供給される記録データをフラッシュメモリ31に書き込む場合に、エラーが発生したときでも記録速度の低下を抑えることができる。また、フラッシュメモリ31に記録させる記録データを一時的に記憶するバッファメモリ43を少ない容量で構成することができ、回路規模の縮小および省電力を実現することができる。
なお、上述した例では、データを所定のブロックに記録させる際に、ブロックの先頭のページからデータを記録させるようにしたが、ブロックの任意のページにデータを記録させることが可能な場合には、ブロックAのp40で書き込みエラー発生後、仮ブロックとして決定したブロックCのp40以降にブロックAのp40以降に記録するべきデータを記録させ、アイドル時にブロックCのp1乃至p39にブロックAに記録されているデータを記録させるようにしてもよい。この場合、ブロックCをそのままブロックAの代替ブロックとすることができる。
また、上述した例では、欠陥ブロックの代替ブロック用にフラッシュメモリ31の一部の領域を代替ブロック領域として予め確保しておくようにしたが、代替ブロック領域を予め確保しておく必要は必ずしもなく、欠陥ブロックが発生した時点で、ファイル管理部45に記憶されているブロック情報に基づいて、フラッシュメモリ31内のブロックのなかから、欠陥ブロックでなく、未使用であるブロックを決定するようにしてもよい。
本発明は、NAND型フラッシュメモリに限らず、データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体で、記録ブロック内の1つの記録単位で書き込みエラーが発生したとき、その記録ブロックを欠陥ブロックとして扱う必要がある記録媒体に採用することができる。
本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
12 記録装置, 31 NAND型フラッシュメモリ, 41 メモリ制御部, 43 バッファメモリ, 51 レジスタ
Claims (8)
- データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録を制御する記録制御装置において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる記録制御手段
を備える記録制御装置。 - 前記記録制御手段は、さらに、前記所定の記録ブロックを代替する代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記所定の記録ブロックの前記所定の記録単位より前までの前記記録単位に記録されている前記データであるエラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記退避ブロックに記録されている前記エラー記録単位以降データを記録させる
請求項1に記載の記録制御装置。 - 前記記録制御手段は、前記記録媒体への前記データの記録または再生の処理が行われていないアイドル状態のときに、前記代替記録ブロックを決定し、前記代替記録ブロックの先頭の前記記録単位から、前記エラー記録単位前データを順に記録させ、前記エラー記録単位前データに続けて、前記エラー記録単位以降データを記録させる
請求項2に記載の記録制御装置。 - 前記記録制御手段は、さらに、前記退避ブロックに記録されている前記エラー記録単位以降データが前記代替記録ブロックに記録された後に、前記退避ブロックの前記エラー記録単位以降データを消去する
請求項3に記載の記録制御装置。 - 前記退避ブロックおよび前記代替記録ブロックは、前記欠陥ブロックを代替する代替ブロック領域として確保されている前記記録ブロックのなかから決定される
請求項1に記載の記録制御装置。 - 前記記録媒体は、NAND型フラッシュメモリである
請求項1に記載の記録制御装置。 - データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を行う記録制御方法において、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる
ステップを含む記録制御方法。 - データを記録するときの単位である記録単位が複数集められた記録ブロックを複数有する記録媒体に対する、前記データの記録制御処理を、コンピュータに実行させるプログラムにおいて、
複数の前記記録ブロックのうちの所定の記録ブロックにおいて、先頭の前記記録単位から順に前記データを記録させている場合に、所定の記録単位でエラーが発生したことにより、前記所定の記録ブロックが、データの記録が不可能な欠陥ブロックとなったときに、前記所定の記録ブロックの前記所定の記録単位以降に記録するべき前記データであるエラー記録単位以降データを、退避ブロックとしての、複数の前記記録ブロックのなかの1つの前記記録ブロックに仮に記録させる
ステップを含むプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005260307A JP2007072839A (ja) | 2005-09-08 | 2005-09-08 | 記録制御装置および方法、並びにプログラム |
US11/516,284 US20070067701A1 (en) | 2005-09-08 | 2006-09-06 | Recording control device, recording control method and program |
CN2006101447234A CN1932780B (zh) | 2005-09-08 | 2006-09-08 | 记录控制装置以及记录控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005260307A JP2007072839A (ja) | 2005-09-08 | 2005-09-08 | 記録制御装置および方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007072839A true JP2007072839A (ja) | 2007-03-22 |
Family
ID=37878625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005260307A Pending JP2007072839A (ja) | 2005-09-08 | 2005-09-08 | 記録制御装置および方法、並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070067701A1 (ja) |
JP (1) | JP2007072839A (ja) |
CN (1) | CN1932780B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018022379A (ja) * | 2016-08-04 | 2018-02-08 | 株式会社リコー | 電子機器、電子機器の制御方法およびプログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100888823B1 (ko) * | 2007-06-27 | 2009-03-17 | 삼성전자주식회사 | 비휘발성 메모리 시스템, 및 비휘발성 메모리 시스템의프로그램 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69033262T2 (de) * | 1989-04-13 | 2000-02-24 | Sandisk Corp | EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher |
US5935258A (en) * | 1997-03-04 | 1999-08-10 | Micron Electronics, Inc. | Apparatus for allowing data transfers with a memory having defective storage locations |
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
US20050204187A1 (en) * | 2004-03-11 | 2005-09-15 | Lee Charles C. | System and method for managing blocks in flash memory |
CN100399460C (zh) * | 2002-09-25 | 2008-07-02 | 联发科技股份有限公司 | 光盘数据管理方法 |
-
2005
- 2005-09-08 JP JP2005260307A patent/JP2007072839A/ja active Pending
-
2006
- 2006-09-06 US US11/516,284 patent/US20070067701A1/en not_active Abandoned
- 2006-09-08 CN CN2006101447234A patent/CN1932780B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018022379A (ja) * | 2016-08-04 | 2018-02-08 | 株式会社リコー | 電子機器、電子機器の制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20070067701A1 (en) | 2007-03-22 |
CN1932780B (zh) | 2010-06-16 |
CN1932780A (zh) | 2007-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI381272B (zh) | 快閃記憶體裝置及快閃記憶體的存取方法 | |
JP5378197B2 (ja) | メモリコントローラ、メモリカード、不揮発性メモリシステム | |
JP2007072839A (ja) | 記録制御装置および方法、並びにプログラム | |
CN1261944C (zh) | 记录再生盘控制装置和使用该控制装置的盘装置 | |
JP4372168B2 (ja) | 半導体メモリ情報蓄積装置とその蓄積データ処理方法 | |
US8165454B2 (en) | Recording control apparatus, recording control method and recording apparatus integral with camera | |
JP5178355B2 (ja) | 記録装置 | |
TW594690B (en) | Method for managing defects of optical disk | |
JP2007249662A (ja) | メモリカード及びメモリカードの制御方法 | |
JP2009140233A (ja) | 映像記録装置および監視システム | |
JP3631234B2 (ja) | ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体 | |
JPH11232791A (ja) | 情報記録方法及び装置 | |
JP3717922B2 (ja) | ファイルデータ記憶管理方法、ファイルデータ記憶装置、ファイルデータを記憶するための処理を実行するプログラムおよび記憶媒体 | |
US8509597B2 (en) | Recording apparatus, imaging and recording apparatus, recording method, and program | |
CN1258073A (zh) | 记录和/或再现设备和方法以及分配媒体 | |
JP3811127B2 (ja) | 情報記録装置及び情報記録方法 | |
JP2008112535A (ja) | 情報記録再生方法 | |
JP4664869B2 (ja) | データ記録システム | |
JP2007249509A (ja) | 不揮発性記憶装置のデータ管理方法 | |
JP5632628B2 (ja) | 記録装置、及びその制御方法 | |
JP2008217992A (ja) | 情報処理方法及び装置 | |
US20090313431A1 (en) | Disk Array Recording Apparatus and Recording Control Method Thereof | |
JP5051310B2 (ja) | 情報記録方法及び装置 | |
JP2016170595A (ja) | 映像収録再生装置、記憶媒体管理方法及びコンピュータプログラム | |
JP2010152832A (ja) | 情報記録装置、半導体記憶装置のファイル管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090205 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090602 |