JP2004280752A - データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム - Google Patents

データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP2004280752A
JP2004280752A JP2003074931A JP2003074931A JP2004280752A JP 2004280752 A JP2004280752 A JP 2004280752A JP 2003074931 A JP2003074931 A JP 2003074931A JP 2003074931 A JP2003074931 A JP 2003074931A JP 2004280752 A JP2004280752 A JP 2004280752A
Authority
JP
Japan
Prior art keywords
management information
block
data
update
information
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
JP2003074931A
Other languages
English (en)
Inventor
Kenichi Nakanishi
健一 中西
Junko Sasaki
淳子 佐々木
Nobuhiro Kaneko
暢宏 金子
Osamu Nagata
理 永田
Hideaki Okubo
英明 大久保
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003074931A priority Critical patent/JP2004280752A/ja
Priority to TW093104314A priority patent/TWI247988B/zh
Priority to KR1020047018663A priority patent/KR20050107557A/ko
Priority to US10/514,985 priority patent/US7444460B2/en
Priority to CNA2004800002463A priority patent/CN1698035A/zh
Priority to EP04717886A priority patent/EP1507209A4/en
Priority to PCT/JP2004/002924 priority patent/WO2004084074A1/ja
Publication of JP2004280752A publication Critical patent/JP2004280752A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】管理情報の更新に伴う書き込みエラーに対する耐性の高いデータ記憶装置および管理情報更新方法を提供する。
【解決手段】フラッシュメモリのアドレス管理情報であるFAT等のファイル管理情報をメモリの管理情報領域に格納するとともに、FAT構成データの格納ブロックとして2つのブロックからなるブロック組を設定し、ブロック組を構成する2つのブロックの各ページを交互に適用して更新FAT情報を書き込む。ブロック組を構成する1つのブロックに更新直前のFAT情報を保持したまま、更新情報をもう一方のブロックに書き込む構成としたので、更新管理情報の書き込みエラー発生時にも更新直前のFAT情報を利用した処理が可能となる。
【選択図】 図15

Description

【0001】
【発明の属する技術分野】
本発明は、データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラムに関する。さらに、詳細には、フラッシュメモリに格納する管理情報、例えば論理物理アドレス変換テーブル、あるいはFAT(File Allocation Table)等のファイル管理情報の書き込み処理を実行する装置および方法に関する。特に、管理情報の情報消失エラーに対する耐性高めることを可能としたデータ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
昨今、PC(パーソナルコンピュータ)、データ記録または再生装置、PDA、ビデオカメラ等、各種の電子機器におけるデータ記憶装置としてフラッシュメモリが多く利用されている。データの書き込みおよび消去が容易なフラッシュメモリは、小型、軽量、高速性、低消費電力といった特性を有し、例えば画像データ、音声データ、テキストファイル、プログラム等の記憶媒体として利用される。
【0003】
特に、フラッシュメモリを電子機器に対して着脱自在な構成としたメモリカードが盛んに利用されており、例えばビデオカメラで取得した画像データを蓄積したメモリカードをPCに装着して再生したり、あるいはPCにおいてインターネットを介して、あるいはCD、DVD、MD等の記憶媒体から取得した音楽データをメモリカードに格納し、携帯プレーヤにメモリカードを装着して再生するなどの利用がなされる。
【0004】
図1に示すように、フラッシュメモリには、データの消去処理単位としてのブロック110、および、データの読み出し、書き込み単位としてのページ120が規定されている。フラッシュメモリは、複数のブロックを有し、1ブロックは複数ページによって構成される。1ページは、例えば512Byteのデータ格納領域121と、パリティーデータなどを書き込む16Byteの拡張領域(Extra領域)122とから構成される。なお、データ格納領域、拡張領域のデータサイズはフラッシュメモリに応じて様々である。例えば、2048Byteのデータ格納領域121と、64Byteの拡張領域(Extra領域)122との組み合わせ等もある。
【0005】
フラッシュメモリに対するデータの書き込み、データの読み出し、あるいは消去処理は、フラッシュメモリの特定のデータ領域をアドレスにより指定することが必要となる。フラッシュメモリにおけるアドレス指定では、フラッシュメモリを利用する電子機器からのアドレス指定情報としての論理アドレスから、フラッシュメモリにおける物理的位置情報としての物理アドレスに変換する処理が行われる。
【0006】
フラッシュメモリは、論理アドレスを物理アドレスに変換するための変換情報を格納したテーブルである論理−物理アドレス変換テーブルをフラッシュメモリ内の特定のブロックに設定された管理情報領域に記憶している。
【0007】
フラッシュメモリにおける論理−物理アドレス変換テーブルの適用構成については、例えば特許文献1に記載されている。
【0008】
フラッシュメモリにおいては、例えばあるページに書き込まれたデータをPC等の電子機器が読み出してデータ更新を行った場合、その更新データは、読み出したページ位置とは異なる位置に書き込まれる。これは、記憶素子の書き込み/消去の繰り返し回数に上限があり、フラッシュメモリの均一な利用を行ってフラッシュメモリ全体としての寿命を高めるためである。
【0009】
論理−物理アドレス変換テーブルを適用したアドレス変換処理により、例えば上述のようなデータ更新が実行されて物理的なデータ書き込み位置を変更した場合であっても論理アドレスを不変とすることが可能となり、電子機器側では、更新前後において同一の論理アドレスを適用したデータ読み出しまたは書き込みが可能となる。
【0010】
また、PC等において適用されるファイル管理システムとして、例えばFAT(File Allocation Table)がある。FATは、ハードディスク、フロッピーディスク等におけるファイル格納位置情報の管理情報として従来から利用されている。1つのデータファイルの格納位置をデータ格納領域の単位としてのクラスタの連鎖によって管理するテーブルであり、FATはクラスタ連鎖情報を記録している。このFATは、上述したフラッシュメモリのファイル管理情報としても適用されている。
【0011】
フラッシュメモリにおいて適用するFATにおけるデータ格納領域単位としての1クラスタは、フラッシュメモリにおいて例えば1ブロックに相当する。すなわち、1つのデータファイルがフラッシュメモリの複数ブロック(クラスタに相当)にわたって書き込まれている場合、複数ブロックの連鎖情報がFATに格納される。
【0012】
論理−物理アドレス変換テーブルおよびFATは、フラッシュメモリの所定ブロックに書き込まれ、フラッシュメモリを利用するホスト機器、すなわちPC等の電子機器が、フラッシュメモリを使用する際にホスト機器内のRAM(Random Access Memory)に読み込んで利用する。ホスト機器のRAMに読み込まれた論理−物理アドレス変換テーブルおよびFATは、例えば、フラッシュメモリに格納する音楽データや画像データの更新等に応じてホスト機器のCPUの制御の下に併せて更新される。更新された管理情報は、再びフラッシュメモリの管理情報領域に書き込まれる。
【0013】
PC等、フラッシュメモリを持つメモリカードを装着したホスト機器において、メモリカードに対するデータ書き込みまたはデータ読み出し処理シーケンスの概要はいかの通りである。アプリケーション処理プログラムの要求に伴ってFATによるファイル記憶位置管理が参照され、FATに基づくクラスタ連鎖情報に基づくブロック連鎖情報としての論理アドレスを取得し、さらに、論理−物理アドレス変換テーブルに基づいて論理−物理アドレス変換が行われて、物理アドレスに従ってアクセス位置が決定され実際のアクセスが行われることになる。
【0014】
上述したように、フラッシュメモリに対するデータ書き込み、読み出し、あるいは消去等の処理には、FATおよび論理−物理アドレス変換テーブルが適用される。これらFATおよび論理−物理アドレス変換テーブル等の管理情報は、フラッシュメモリのブロックに書き込まれる。
【0015】
上述したように、フラッシュメモリに格納するデータ更新に伴い管理情報の更新も必要となる。図2に示すフローチャートを用いて、フラッシュメモリの管理情報の更新処理手順について説明をする。ここでは、ある管理情報がフラッシュメモリ内の所定のブロックに書き込まれているとする。
【0016】
まず、ステップS21において、データ書き込み/読み出し/消去処理制御手段としてのCPUが、フラッシュメモリ内の所定のブロックを検索し、ブロック内に空ページがあるかどうかを判断する。ブロック内に空ページがない場合はステップS23に進み、ブロック内に空ページがある場合はステップS22に進む。
【0017】
ステップS22において、CPUは、更新直前の管理情報が書き込まれているページと同一のブロックにある空ページを、更新した管理情報を書き込むための新しいページとして確保する。
【0018】
ステップS23において、CPUは、管理情報が書き込まれているページが当該ブロックの最後のページであるため、フラッシュ内の空きブロックを確保し、その先頭ページを更新した管理情報を書き込むための新しいページとして確保する。
【0019】
ステップS24,S25において、CPUは、ステップS22またはステップS23で確保した新しいページに更新した管理情報を書き込む。ステップS26では、ステップS25が終了すると更新前の管理情報の書き込まれた管理情報を全て消去、つまりブロック単位の消去処理を実行して、空きブロックにする。以上で更新処理は終了する。
【0020】
図2のフローチャートを用いて説明したように管理情報の更新が行われると、フラッシュメモリのブロックは図3に示すように管理情報が更新されていく。
【0021】
管理情報が書き込まれるブロックをブロック151、ブロック152とすると、まず、ブロック151のページ番号0から管理情報は書き込まれ、ページ番号nまで書き込まれる。続いて、ブロック152へと移り、ブロック152のページ番号0から管理情報が書き込まれる。このようにして、フラッシュメモリのブロックへは、ブロック毎に順番に管理情報が更新されていく。
【0022】
また、フラッシュメモリの管理情報の更新処理で、更新処理に失敗した場合、あるいは更新処理中に異常が発生し、新しい管理情報を正常な状態で書き込むことが出来なかった場合、CPUは、更新直前の管理情報を最新の値として扱うことになる。
【0023】
ところで、フラッシュメモリは、ページにデータを書き込む処理においてエラーが発生した場合、そのページが属するブロック内のデータ全体にエラーが及ぶ串刺しエラーという現象を生じてしまう特性がある。
【0024】
串刺しエラーとは、図4に示すように、ブロック内のページのあるビットにエラーが生じると、ブロック内の他の全てのページの同一ビットもエラーが生じブロック内全てのデータがダメージを被るというものである。
【0025】
図2のフローチャートを参照して説明したフラッシュメモリ内の管理情報の更新では、ブロック内の更新前の管理情報が書き込まれているページの次の空きページに管理情報を書き込むので、更新処理に失敗しエラーが生じた場合、エラーが生じたページを有するブロック内の全ての管理情報にエラーが生じてしまう。したがって、更新処理に失敗した場合に必要となる更新直前の管理情報にもエラーが生じてしまい、管理情報を失い、更新処理はもちろん読み出し処理も行えなくなるといった問題がある。
【0026】
さらに、従来フラッシュメモリの一つのメモリセルには1bitの情報しか記憶できなかったが、フラッシュメモリの低コスト化、大容量化のために一つのメモリセルに2bit、さらには4bitといった情報を記憶する多値化が行われた場合、上述の串刺しエラーは広範囲のビットに及ぶことになり、誤り訂正コードだけでは対処できないといった問題がある。
【0027】
【特許文献1】
特開2000−47932号公報
【0028】
【発明が解決しようとする課題】
本発明は上述した従来技術における問題点に鑑みてなされたものであり、管理情報の更新に伴う書き込みエラーから、管理情報を保護することを可能としたデータ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0029】
本発明は、特にFAT等のファイル管理情報を複数のブロックを適用して、更新データを、順次ブロックを切り替えて書き込むことにより、エラーに対する耐性を高めたデータ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラムを提供することを目的とする。
【0030】
【課題を解決するための手段】
本発明の第1の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置において、
前記データ記憶部は、所定容量のデータを記憶可能なページが複数設定されたブロックに分割され、ユーザデータの格納領域としてのデータ領域と、該データ領域に対するアクセスのためのアドレス情報を含む管理情報領域とを有し、
前記管理情報領域は、前記データ領域に格納されたデータファイルのアドレス連鎖情報を持つファイル管理情報を格納し、
前記制御部は、
前記ファイル管理情報の更新情報を、2つの異なるブロックを一対としたブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する構成であることを特徴とするデータ記憶装置にある。
【0031】
さらに、本発明のデータ記憶装置の一実施態様において、前記ファイル管理情報は、FAT(File Allocation Table)であり、前記制御部は、FAT更新情報の書き込み処理において、前記2つの異なるブロックを一対としたブロック組を適用し、ブロック組を構成する2ブロックの構成ページに対して、2ブロックを交互に適用して更新FAT情報を書き込む処理を実行する構成であることを特徴とする。
【0032】
さらに、本発明のデータ記憶装置の一実施態様において、前記ファイル管理情報に対して設定される1つの論理アドレスに対応して前記ブロック組のアドレス情報としての2つの物理アドレスが設定され、前記制御部は、更新すべきファイル管理情報を指定した論理アドレスに応じて前記2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別する構成であることを特徴とする。
【0033】
さらに、本発明のデータ記憶装置の一実施態様において、前記制御部は、ユーザデータの格納領域としてのデータ領域に対するユーザデータ書き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報の書き込み処理を実行する構成であることを特徴とする。
【0034】
さらに、本発明のデータ記憶装置の一実施態様において、前記データ記憶部の管理情報領域には、さらに、前記データ領域に格納されたデータに対応して設定される論理アドレスと、前記データ領域に格納されたデータの物理的位置に対応して設定される物理アドレスとを対応付けた論理物理アドレス変換テーブルとを格納した構成であることを特徴とする。
【0035】
さらに、本発明のデータ記憶装置の一実施態様において、前記制御部は、さらに、前記論理物理アドレス変換テーブルの更新情報を、2つの異なるブロックを一対としたブロック組を構成する一方のブロックの構成ページに更新前論理物理アドレス変換テーブル構成情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後論理物理アドレス変換テーブル構成情報を書き込む処理を実行する構成を有することを特徴とする。
【0036】
さらに、本発明のデータ記憶装置の一実施態様において、前記データ記憶装置は、情報処理装置に着脱可能な構成を有するとともに、前記情報処理装置とのデータ入出力可能なインタフェース手段を有し、前記制御部は、前記インタフェース手段を介して情報処理装置からの論理アドレスを入力し、該入力論理アドレスに従って2つの物理アドレスを取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックの組として識別する構成であることを特徴とする。
【0037】
さらに、本発明のデータ記憶装置の一実施態様において、前記制御部は、前記ファイル管理情報の更新処理をページ単位で実行し、前記ブロック組を構成する2つのブロックの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行し、該ブロック組を構成する2ブロックの構成ページに空きページがない場合に、更新直前のファイル管理情報が格納されたブロックと異なるブロックのデータを消去し、該消去ブロックの先頭ページに更新ファイル管理情報の書き込み処理を実行する構成であることを特徴とする。
【0038】
さらに、本発明の第2の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置における管理情報更新方法であり、
更新管理情報に対応する論理アドレスを入力する論理アドレス入力ステップと、
前記論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別するブロック組識別ステップと、
前記ブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップと、
を有することを特徴とするデータ記憶装置における管理情報更新方法にある。
【0039】
さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様において、前記ファイル管理情報は、FAT(File Allocation Table)であり、前記更新情報書き込みステップは、前記ブロック組を構成する2ブロックの構成ページに対して、2ブロックを交互に適用して更新FAT情報を書き込む処理を実行することを特徴とする。
【0040】
さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様において、ユーザデータの格納領域としてのデータ領域に対するユーザデータ書き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報書き込みステップを実行することを特徴とする。
【0041】
さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様において、前記データ記憶装置における管理情報更新方法は、さらに、前記論理アドレス入力ステップにおいて入力する論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新すべき論理物理アドレス変換テーブル構成情報を書き込むブロックを構成するブロック組として識別するブロック組識別ステップと、前記ブロック組を構成する一方のブロックの構成ページに更新前論理物理アドレス変換テーブル構成情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後論理物理アドレス変換テーブル構成情報を書き込む処理を実行する更新情報書き込みステップと、を実行することを特徴とする。
【0042】
さらに、本発明のデータ記憶装置における管理情報更新方法の一実施態様において、前記更新情報書き込みステップは、前記ファイル管理情報の更新処理をページ単位で実行し、前記ブロック組を構成する2つのブロックの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行し、該ブロック組を構成する2ブロックの構成ページに空きページがない場合に、更新直前のファイル管理情報が格納されたブロックと異なるブロックのデータを消去し、該消去ブロックの先頭ページに更新ファイル管理情報の書き込み処理を実行することを特徴とする。
【0043】
さらに、本発明の第3の側面は、
データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置における管理情報更新処理を実行するコンピュータ・プログラムであり、
更新管理情報に対応する論理アドレスを入力する論理アドレス入力ステップと、
前記論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別するブロック組識別ステップと、
前記ブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【0044】
【作用】
本発明の構成によれば、フラッシュメモリのアドレス管理情報であるFAT等のファイル管理情報をメモリの管理情報領域に格納するとともに、FAT構成データの格納ブロックとして2つのブロックからなるブロック組を設定し、ブロック組を構成する2つのブロックの各ページを交互に適用して更新FAT情報を書き込み、ブロック組を構成する1つのブロックに更新直前のFAT情報を保持したまま、更新情報をもう一方のブロックに書き込む構成としたので、更新管理情報の書き込みエラー発生時にも更新直前のFAT情報が記憶保持され、更新直前のFAT情報を利用した処理、たとえば更新直前のFAT情報を利用したデータアクセス、および更新直前のFAT情報を利用したFAT情報の管理情報の再更新処理等が可能となる。
【0045】
さらに、本発明の構成によれば、FATに対応する1つの論理アドレスに対応して2つの異なる物理アドレスを設定して論理アドレスに基づいて更新データを書き込むブロック組を構成する2つのブロックを即座に抽出可能とするとともに、直前の更新前データが書き込まれたブロックおよびページに基づいて更新データを書き込むブロックおよびページを決定する構成としたので、更新管理情報の書き込みブロックおよびページの決定を高速に実行することが可能となる。
【0046】
また、本発明の構成によれば、FAT等のファイル管理情報の更新処理において、従来のデータ再格納シーケンスとして実行する消去済みブロックの取得、更新前データの格納されていたブロックから消去済みブロックに対するページデータのコピー等の処理を実行する必要がなくなるので、管理情報の更新処理時間が短縮される。従って、データ更新後にユーザによるホストからのメモリカードの抜き取り等が行われた場合であっても、FAT、論理物理アドレス変換テーブルを含む管理情報更新処理が短時間で実行されるため、管理情報の書き込み未了に基づくエラー発生の可能性が減少する。
【0047】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0048】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づく、より詳細な説明によって明らかになるであろう。
【0049】
【発明の実施の形態】
以下、図面を参照しながら、本発明のデータ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラムの詳細について説明する。
【0050】
[データ記憶装置(メモリカード)の構成]
まず、図5を参照してフラッシュメモリとコントロールICとを備えたデータ記憶装置としてのメモリカードの構成について説明をする。
【0051】
データ記憶装置200は、フラッシュメモリ(FMEM)230と、コントロールIC(Control IC)210とを備え、PC、データ記録再生機、ビデオカメラ等の様々なホスト機器(HOST)300に装着して利用される。1つのホスト機器に対して固定的に装着して利用する構成も可能であるが、ホスト機器に対して着脱可能な構成であり、必要に応じて様々なホスト機器に装着して利用可能である。
【0052】
データ記憶装置200は、電源端子となるVCCとグランドとなるVSS端子を有し、データ記憶装置200を装着するホスト機器300からこれらの端子を介して電源が供給される。検出端子(INS)は、ホスト機器300がデータ記憶装置200の着脱状態を検出するために使用される。データ記憶装置200内部では、この検出端子(INS)は接地されており、ホスト機器300によりプルアップ抵抗を介して電源に接続される。したがって、検出端子(INS)は、データ記憶装置200の装着状態では「L」レベルになり、非装着時には「H」レベルになる。
【0053】
フラッシュメモリ(FMEM)230はデータの消去処理単位としてのブロック、および、データの読み出し、書き込み単位としてのページによって構成され、ページは例えば、512Byteのデータ領域と、パリティーデータを書き込む16Byteの拡張領域(Extra領域)とを備えている。フラッシュメモリの詳細構成については図6以下を参照して後段で説明する。なお、データ領域と拡張領域のデータ容量は様々な設定が可能であり、例えば2048Byteのデータ領域と、64Byteの拡張領域(Extra領域)との構成をもつデータ記憶装置200などがある。
【0054】
コントロールIC(Control IC)210内のI/F216は、データ記憶装置200を装着したホスト機器300とのデータ転送制御を実行し、主にシリアル/パラレル変換処理を実行する。フラッシュメモリ230へのデータ書き込み時には、双方向データ信号(SDIO0〜3)路を通じ、転送クロック(SCLK)に同期して、ホスト機器300から送られてきたシリアルデータを、複数ビット(例えば8ビット,16ビット)のパラレルデータに変換する。制御用コマンドもデータも、ここでシリアルデータからパラレルデータに変換される。
シリアルデータはSDIO0のみを使用した場合は1ビットデータであり、SDIO0〜3までを使用した場合は4ビットデータである。
【0055】
一方、フラッシュメモリ230からのデータ読み出し処理は以下のように行われる。まず、データ記憶装置200内部のフラッシュメモリ230に記憶されているデータが複数ビットのパラレルデータとして読み出され、I/F216においてシリアルデータに変換され、双方向データ信号(SDIO0〜3)路を通じて、ホスト機器300に出力される。
【0056】
レジスタ211は、ステータスレジスタ、パラメータレジスタ等からなり、双方向データ信号(SDIO0〜3)路を介してデータが入/出力される。双方向データ信号(SDIO0〜3)路は、制御データや実データそのものを書き込み、読み出し用として適用される。双方向データ信号(SDIO0〜3)路を介して入出力される制御データによりデータ記憶装置200内部のメモリのアクセス制御が行なわれる。
【0057】
ページバッファ212は、I/F216とフラッシュメモリ230間の転送データの一時的なデータ記憶領域である。アトリビュートROM213は、コントロールIC210の物理的情報を記憶する。OSCコントローラ(OSC Cont)215は、コントロールIC210のクロックを発生しコントロールIC210の動作タイミングを制御する。
【0058】
フラッシュメモリ230とのデータ転送制御を実行する制御部214は、CPU等によって構成される制御部としてのシーケンサ221と、転送データに対して付加したり、転送データの誤り検出処理を行なうエラー訂正コード発生部(ECC)222と、フラッシュメモリ230に対するインタフェースとしてのフラッシュインタフェース(FlashI/F)223とを有する。エラー訂正コード発生部(ECC)222において、エラー訂正を行うことにより、フラッシュメモリ230格納データの信頼性が確保される。
【0059】
データ記憶装置200には、電源(VCC)端子と、ホスト機器300との接続のためのデータ入/出力(SDIO0〜3)端子と、バスステート(BS)の入力端子と、シリアルクロック(SCLK)の入力端子と、装着検出(INS)用の検出端子と、接地(VSS)端子とが構成される。
【0060】
データ入/出力(SDIO0〜3)端子により、双方向データ線を介して、データが入/出力される。バスステート(BS)の入力端子には、バスステート(BS)が供給される。バスステート(BS)は、データ入/出力(SDIO0〜3)端子を介した双方向データ信号線上のデータステータスを示す。例えば、データアクセスを行う前の制御データやデータそのものにより、そのステートを変化させることにより、データ記憶装置200の処理が実行される。
【0061】
シリアルクロック(SCLK)の入力端子には、データ転送用クロックが供給される。データ転送用クロックは、制御データや実データ転送制御に適用するクロックである。転送用クロックは、バスステート(BS)信号により制御される。
【0062】
次に、図6を参照して、図5に示すデータ記憶装置200内のフラッシュメモリ(FMEM)230の詳細構成について説明する。
【0063】
前述したように、フラッシュメモリには、データの消去処理単位としてのブロック、および、データの読み出し、書き込み単位としてのページが規定されている。フラッシュメモリは、複数のブロックを有し、1ブロックは複数ページによって構成される。1ページは、例えば512Byteのデータ格納領域121と、パリティーデータなどを書き込む16Byteの拡張領域(Extra領域)122とから構成される。なお、データ格納領域、拡張領域のデータサイズはフラッシュメモリに応じて様々であり、2048Byteのデータ格納領域と、64Byteの拡張領域(Extra領域)を持つ構成などのデータサイズの設定が可能である。
【0064】
図6(a)は、フラッシュメモリのデータ構造を示している。フラッシュメモリとしての記憶領域は、セグメントと呼ばれる固定長のデータ単位が大区分として設定される。このセグメントは、例えば1セグメントあたり4MB(メガバイト)あるいは8MB、16MB等に規定されるサイズであり、1つのフラッシュメモリ内におけるセグメント数は、そのフラッシュメモリの容量に依存して異なってくる。図では、0〜7の8セグメントを持つフラッシュメモリの構成例を示してある。
【0065】
ローダ(Loader)領域は、起動時のロードデータを格納した領域である。コントロールIC210は電源オン直後にローダ領域から、起動に必要な情報を読み込む。管理情報領域は、論理物理アドレス変換テーブル、FAT等のファイル管理情報、を格納するブロックと代替ブロックとして未使用なブロックからなる領域である。データ領域は、画像、音声、テキスト、プログラム等のユーザデータの格納されたブロックからなる領域とされる。データ領域には、これらの実データおよび、索引情報としての先頭アドレス情報を含むディレクトリ情報が格納されたブロックも含まれる。管理情報を適用した処理については、後述する。
【0066】
図6(b)に示すように、各セグメント(b−1)は、ブロックと呼ばれる固定長のデータ単位に区切られる。1セグメントを512ブロックとした場合、図6(b−2)に示すブロック数nは、n=511とされる。但し、フラッシュメモリでは、書き込み不可なブロックが存在することや、書き込み中にエラーを発生する後発不良ブロックが存在するため、データ書き込みが有効とされる実質的なブロック数を対象とすれば、有効ブロック数nは511よりも少なくなる。
【0067】
1ブロックは、図6(b−3)に示すように、ページ0〜mにより分割される。1ページは、図6(b−4)に示すように、例えば512バイトのデータ部と16バイトの拡張部からなる。拡張部の構成については後述する。
【0068】
ブロック内のページ構造は、ローダ領域、管理情報領域、データ領域すべてにおいて共通であり、図6(b−4)に示すように、データ部と拡張部とからなる。フラッシュメモリでは、データの読み出し、および書き込み処理はページ単位で行われ、データの消去処理はブロック単位で行われる。さらに、データの書き込みは、消去済みのページに対してしか行われない。従って、実際のデータの書き換えや書き込みは、原則としてブロック単位を対象として行われることになる。
【0069】
ただし、本発明の構成においては、管理情報領域の格納情報、たとえば論理物理アドレス変換テーブルおよびFAT等のファイル管理情報についてのデータ書き込み処理は、特殊な書き込み処理方式に従って実行する。これらの処理については後述する。
【0070】
ページの構成について、図7を参照して説明する。ページは、図7に示すようにデータ部と拡張部からなり、データ部には、ローダ領域、管理情報領域、データ領域の各領域毎、各領域に対応したデータが格納される。例えばローダ領域の構成ブロックに属するページであれば、コントロールICが起動するために必要な情報等が格納され、管理情報領域の構成ブロックに属するページであれば、論理物理アドレス変換テーブル、FAT等のファイル管理情報等の各情報が格納される。データ領域の構成ブロックに属するページであれば、ユーザデータとしての画像、音声、テキスト、プログラム等様々なデータファイルおよびディレクトリ情報が格納される。
【0071】
ページの拡張領域には、例えばエラー訂正コード(ECC)および属性情報が格納される。属性情報は、図に示すように論理ブロック管理情報と、物理ブロック管理情報によって構成される。
【0072】
図8に管理情報領域の詳細構成を示す。管理情報領域には、ホストの指定する論理アドレスから物理アドレスへの変換処理に適用するテーブルとしての論理物理アドレス変換テーブルを格納した論理物理アドレス変換テーブルブロック、フラッシュメモリに格納するデータの連鎖情報としてのファイル管理情報である例えばFATを格納するファイル管理情報ブロック、後発不良ブロックが発生した場合の代替用ブロックあるいは更新処理時新しいブロックを取得するための空きブロックとしての代替ブロックが格納される。
【0073】
本発明の構成においては、論理物理アドレス変換テーブルおよびファイル管理情報(FAT)について複数ブロックを利用して順次、更新された情報を書き込む構成を有する。具体的には、1ページ分の論理物理アドレス変換テーブルまたはFATデータについて、それぞれ2つの異なるブロックをブロック組として割り当て、ブロック組を構成する2つのブロックのページに交互に更新データを書き込む処理を実行する。この更新処理により、更新直前の論理物理アドレス変換テーブルまたはFATも消去されることなく維持され、万が一、更新後の論理物理アドレス変換テーブルまたはFATが消失した場合であっても更新直前の情報の利用が可能となり、更新直前の管理情報を利用したデータアクセス、および更新直前の管理情報を利用した管理情報の再交信処理等が可能となる。
【0074】
なお、ファイル管理情報としては従来からハードディスクのファイル管理情報として適用されるFATを例として以下、説明するが、本発明において適用するファイル管理情報はFATに限定されるものではなく、その他のファイル管理情報、例えばNTFS、HFS等を用いた構成においても適用可能である。
【0075】
次に、図9を参照してフラッシュメモリの管理情報領域に格納される各情報ブロックにおける属性情報を構成する論理ブロック管理情報(図7参照)の構成および格納情報について説明する。
【0076】
前述したように、フラッシュメモリの管理情報領域には、論理物理アドレス変換テーブル、FAT等のファイル管理情報、代替ブロックが格納される。図9は、これらの各ブロックを構成するページに設定される属性情報中の論理ブロック管理情報の構成および格納情報について説明する図である。
【0077】
論理ブロック管理情報のデータ構成は、ブロックタイプ毎に異なる構成となり、ブロックタイプは、論理ブロック管理情報として保持している。例としては、ブロックタイプを2Bitで表現するとすれば、論理物理アドレス変換テーブルは[00]、FAT等のファイル管理情報は[01]、代替ブロックは[11]が設定される。
【0078】
論理物理アドレス変換テーブルブロックは、データ部には、論理アドレスを物理アドレスに変換するための情報が格納され、論理ブロック管理情報には、データ部に格納された論理物理アドレス変換テーブルがどのセグメントに対応するかを示すブロックナンバーが格納される。論理アドレスは物理ブロックに対して割り当てられる値である。なお、論理物理アドレス変換テーブルは各セグメント毎に設定される。さらに、データ部に格納された論理物理アドレス変換テーブルが更新処理中であるか否かを示すアップデートフラグ、更新時に+1の加算処理がなされる版情報としてのリビジョンデータが論理ブロック管理情報に格納される。ファイル管理情報は、セクタと呼ぶ512バイトを基本単位として、さらにクラスタと呼ぶn個のセクタからなる512×nバイトを定義し、クラスタ単位でデータの配置情報を管理する。
【0079】
論理アドレスはセクタアドレスをさしており、アドレス変換する際にはセクタアドレスの下位ビットは物理ブロック内のページを指す値として使用する。例えば、ブロックあたりのページ数が32ページの場合は、下位5ビットがページアドレスとなる。ここではページアドレスは物理的なブロック内のページと一意である場合について説明するが、論理アドレスの単位をページにすることも可能である。
【0080】
ファイル管理情報としてのFATを格納するファイル管理情報ブロックは、データ部にファイル管理情報としてのFATが格納される。すべてのFATを格納するためには、複数のファイル管理情報ブロックが必要になるため、論理ブロック管理情報にはデータ部に格納されたFATの論理アドレスに対応したブロックナンバーと、FATの更新時に+1の加算処理がなされる版情報としてのリビジョンデータが格納される。
【0081】
代替ブロックは、後発不良ブロックが発生した場合の代替用ブロックであり、論理アドレスの割り当てられていない、消去済みの物理ブロックである。
【0082】
次に、図10を参照してフラッシュメモリの管理情報領域に格納される各情報ブロックにおける属性情報を構成する物理ブロック管理情報(図7参照)の構成および格納情報について説明する。
【0083】
物理ブロック管理情報は、フラッシュメモリの管理情報領域に格納される論理物理アドレス変換テーブル、FAT等のファイル管理情報、代替ブロックにおいて共通の構成であり、図に示すように、不良ブロックフラグ、消去フラグを有し、不良ブロックフラグには、ブロックが正常の読み書き可能なブロックであるかを示す正常[1]、不良[0]のフラグが設定される。消去フラグには、ブロックの未消去[1]、消去[0]の別を示すフラグが設定される。論理アドレスが割り当てられ使用中であるブロックは、正常[1]、未消去〔1〕となり、代替ブロックで正常〔1〕、消去[1]となる。
【0084】
[管理情報の更新処理]
次に、例えばフラッシュメモリに格納されたファイルデータの更新によって実行することが要請される管理情報の更新処理、具体的には論理物理アドレス変換テーブルおよびファイル管理情報(FAT等)の更新処理について説明する。
【0085】
前述したように、フラッシュメモリでは、データの読み出し、および書き込みはページ単位で行われ、データの消去はブロック単位で行われる。さらに、データの書き込みは、消去済みのページに対してしか行われない。従って、フラッシュメモリから読み出したデータを更新してフラッシュメモリに更新データを書き込む場合、更新データは、更新前のデータの書き込まれていたページに上書きするのではなく、消去済みの書き込み可能なページを抽出してその抽出した消去済みページに書き込むことになる。従って、データ書き込み位置としての物理アドレスがデータ更新に伴い頻繁に変更される。
【0086】
このようにデータ更新がなされ、データ記録位置が変更されて物理アドレスが変更された場合でも、ホスト機器側で利用する論理アドレスを一定とすれば、ホスト側では物理アドレスの変更と無関係に更新されたデータに対して同じ論理アドレスを適用することが可能となる。この処理のため、論理物理アドレス変換テーブルの更新がデータ更新に応じて実行されることになる。
【0087】
データ更新処理に伴う論理物理アドレス変換テーブルの更新処理について以下説明する。図11(a)には、あるセグメント内から4つのブロックを抜き出して、これを模式的に示している。3つのブロックに対しては固定的に物理アドレスが付与されるおり、もう1つのブロックは代替ブロックである。この物理アドレスはメモリにおけるブロックの物理的な配列順に従って決まり、あるブロックとこれに設定された物理アドレスとの関係は不変となる。図11(a)に示す4ブロックに対して、上から順に物理アドレスの値として、アドレス[0x11]、[0x12]、[0x13][0x14]が付与されているとする。なお、0xは16進データを意味する。0xの後の2つの数値が実際のアドレスを表現している。
【0088】
データ更新前の論理アドレスと物理アドレスとの対応は、(a)に示すように、論理アドレス(0x02)に対して物理アドレス[0x11]、論理アドレス(0x03)に対して物理アドレス[0x12]、論理アドレス(0x04)に対して物理アドレス[0x14]であったとする。物理アドレス[0x13]は代替ブロックのため論理アドレスは割り当てられていない。
【0089】
物理アドレス[0x11]と[0x12]のブロック0,ブロック1にはホストによって書き込まれたファイルデータが格納されているとする。
【0090】
ここで、ホスト機器が、論理アドレス(0x02)によってデータ読み出しを実行すると、論理物理アドレス変換テーブルは、論理アドレス(0x02)を物理アドレス[0x11]に変換し、ブロック0のデータをホストに出力する。
【0091】
ホストにおいて、ブロック0のデータを更新し、フラッシュメモリに格納する場合、前述したように、更新前のデータの書き込まれていたページに上書きするのではなく、消去済みの書き込み可能なページを抽出してその抽出した消去済みページに更新データを書き込むことになる。この場合、ブロック0は、更新前の値を保持しており、消去されていないので、消去済みのブロックである代替ブロック、ここではブロック2に更新データを書き込む。
【0092】
この場合、更新データの論理アドレスを、更新前のデータに対する論理アドレス(0x02)と同一に保持するため、論理物理アドレス変換テーブルの更新が実行される。図11(b)に示すように、論理アドレス(0x02)を更新データの書き込まれたブロック2の物理アドレス[0x13]に対応付け、ブロック0の物理アドレス[0x11]はブロック2への書き込み処理の実行前あるいは終了後に消去し、新たな代替ブロックとする。この処理により、ホスト側では、更新前後とも同じ論理アドレスを用いてデータアクセスを行うことが可能となる。
【0093】
論理アドレスは、ブロックに対して書き込まれたデータに付随するようにして割り振られるアドレスであり、この論理アドレスが、後述するFATファイルシステムが管理するアドレスである。これに対して、物理アドレスはブロックに対して固定的に付与されるアドレスである。
【0094】
このようにブロックのスワップ処理を行うことで、同一の記憶領域(ブロック)に対して繰り返し集中的にアクセスされることが無くなり、書き換え回数の上限があるフラッシュメモリの寿命を延ばすことが可能となる。
【0095】
データ更新に伴い、論理アドレスと物理アドレスの変換テーブルを更新することで、同一の論理アドレスを使用した処理が可能となる。なお、論理物理アドレス変換テーブルはセグメント単位で保持され、データ更新が行われた場合であっても他のセグメントに更新データが書き込まれることはない。
【0096】
図12にデータ更新に伴う、論理物理アドレス変換テーブルの更新例を示す。論理物理アドレス変換テーブルは、前述したようにフラッシュメモリの管理情報領域に格納され、上記のようなデータ更新が行われた場合などに併せて更新される。
【0097】
図11のデータ更新に対応する論理物理アドレス変換テーブルの更新例を示したのが図12である。更新前の論理物理アドレス変換テーブルを図12(a)に示し、更新後の論理物理アドレス変換テーブルを図12(b)に示している。論理物理アドレス変換テーブルは、シーケンシャルな論理アドレスに対応する物理アドレスの列として構成される。
【0098】
更新前は、(論理アドレス)と[物理アドレス]の対応が、
(0x02)[0x11]
(0x03)[0x12]
(0x04)[0x14]
(0x05)[0x15]
となっているが、
更新前は、(論理アドレス)と[物理アドレス]の対応が、
(0x02)[0x13]
(0x03)[0x12]
(0x04)[0x14]
(0x05)[0x15]
となるように変更される。
このとき、物理アドレス[0x11]のブロックは消去され、該当する物理ブロック管理情報が更新される。
【0099】
本発明の構成においては、これらの書き換えられた論理物理変換テーブルを2つのブロック組を使用して、各ブロックのページに対して交互に更新データを書き込む構成としている。すなわち、1ページ分の論理物理変換テーブル構成データに2つの異なるブロックを割り当てて交互に更新データを書き込む処理を実行する。この更新処理により、更新直前の論理物理変換テーブルもブロック組の一方のブロック内のページに消去されることなく保持され、万が一、更新後の論理物理変換テーブルが消失した場合であっても更新直前の論理物理変換テーブルの利用が可能となる。これらの処理については後述する。
【0100】
上述したように、ブロックのスワップ処理が行われることで、物理アドレスと論理アドレスの対応は変化する。従って、フラッシュメモリに対するデータの書き込み及び読み出しのためのアクセスを実現するには、物理アドレスと論理アドレスとの対応が示される論理物理アドレス変換テーブルが必要となる。つまり、論理物理アドレス変換テーブルをファイル管理情報(FAT)が参照することで、FATが指定した論理アドレスに対応する物理アドレスが特定され、この特定された物理アドレスにより示されるブロックにアクセスすることが可能になる。次に、FAT等のファイル管理情報の利用について図13を参照して説明する。
【0101】
フラッシュメモリに格納するデータファイルは、クラスタという単位で管理される。フラッシュメモリのデータ領域上の物理セクタは、フラッシュメモリの場合の書き込み読み取り単位としてのページに相当するが、ファイル管理情報(FAT)の管理単位としてのクラスタは複数のセクタからなる。ファイルはクラスタを単位として構成されるが、フラッシュメモリに格納するデータファイルは、複数のクラスタに渡って格納される場合が多い。FATは、このような複数のクラスタに分散格納されたデータファイルについてのクラスタ連鎖情報を持つテーブルである。FATのエントリは、フラッシュメモリのクラスタ、例えばブロックと1対1に対応する論理アドレスの連鎖情報を格納する。ファイルの先頭クラスタはファイル名とともにディレクトリに記録される。
【0102】
図13には、フラッシュメモリのデータ領域に格納されたデータファイルの(a)ディレクトリ、管理情報領域に格納されるファイル管理情報としての(b)FATを示している。
【0103】
FATは、データ格納領域単位としてのクラスタの連鎖情報を格納したテーブルであり、データファイルが複数のクラスタに渡って記録されている場合、FATに従って連鎖情報を取得することで、データファイルを構成する全データのクラスタ位置を取得可能となりデータファイルを構成する全データに対するアクセスが可能となる。クラスタは、フラッシュメモリにおいて例えば1ブロックに相当する。すなわち、1つのデータファイルがフラッシュメモリの複数ブロック(クラスタに相当)にわたって書き込まれている場合、複数ブロックの連鎖情報がFATに格納される。FATに設定される連鎖情報としてのクラスタ識別子は、論理物理アドレス変換テーブルで適用する論理アドレスに相当する。
【0104】
フラッシュメモリのデータ領域に格納されるディレクトリには、図13(a)に示すように、例えばファイル名、拡張子、さらに、先頭のクラスタ識別子が格納される。ホストは、ディレクトリに格納された先頭クラスタ識別子に従って、FATを参照し、1つのファイルデータの格納されたクセスタの連鎖を知ることができ、連鎖情報に従って、クラスタ識別子を順次取得する。クラスタ識別子は論理アドレスに相当する。これらの論理アドレスを前述の論理物理アドレス変換テーブルを適用して物理アドレスを取得してデータ格納位置からデータを取得する。
【0105】
図13に示す(a)ディレクトリ中のファイル[ABC.txt]は、先頭クラスタ識別子が(0x08)であり、FATの0x08の位置には次のクラスタ識別子としての0x10が記録され、0x10の位置には0x18、0x18の位置には終了を示す0xFFが記録されている。従って、ファイル[ABC.txt]は、(0x08),(0x10),(0x18)の順に記録されていることが認識される。また、ファイル[EFG.jpg]は、先頭クラスタ識別子が(0x19)であり、FATの0x19の位置には次のクラスタ識別子としての0x25が記録され、順次FATに記録されたクラスタ識別子をたどることで、ファイル[EFG.jpg]の格納位置を知ることができる。
【0106】
クラスタ識別子(クラスタアドレス)は、前述したように、論理アドレスに相当するものであり、FATから取得したクラスタアドレスからページアドレスを除いた値を前述の論理物理アドレス変換テーブルに従って物理アドレスに変換してフラッシュメモリにおける実際の物理的データ格納位置を取得し、データアクセスを行う。
【0107】
FATは、新たなデータの追加、書き換え処理等により、随時変更される。1クラスタのサイズは、例えば32セクタの場合、16KByteになる。従って、例えばあるデータファイルが更新されデータ量が増加すると新たなクラスタを取得することが必要となり、FATの書き換え、すなわち更新処理が必要となる。
【0108】
更新されたFATは、フラッシュメモリの管理情報領域に格納される。本発明の構成においては、更新したFATを、前述の論理物理アドレス変換テーブルと同様、1ページ分のFATデータに2つの異なるブロックからなるブロック組を割り当てて、ブロック組を構成する各ブロックの構成ページを利用してブロック交互に更新データを書き込む処理を実行する。この更新処理により、更新直前のFATも消去されることなく維持され、万が一、更新後のFATが消失した場合であっても更新直前のFATの利用が可能となる。以下、これらの処理について詳述する。
【0109】
フラッシュメモリの管理情報領域(図6参照)に格納される論理物理アドレス変換テーブル、FAT等のファイル管理情報の更新処理について説明する。
【0110】
図14は、フラッシュメモリに格納する論理物理アドレス変換テーブル、FATの各管理情報の格納構成の概念図を示した図である。図14に示すように、論理物理アドレス変換テーブル、FATの各管理情報は、(a)フラッシュメモリの管理情報領域に格納される。
【0111】
(b)FAT格納テーブルに示すように、FATの構成データの各々には、2つの異なるブロックをブロック組として割り当てられる。図に示すように、FAT1−偶数、FAT1−奇数が1つのブロック組であり、以下、FAT2−偶数、FAT2−奇数〜FATn−偶数、FATn−奇数まで、FAT構成データ用に2つの異なるブロックがFAT格納ブロック組として設定される。なお、図では隣接ブロックをブロック組として示してあるが、離間したブロックをブロック組として設定してもよい。
【0112】
同様に、(c)論理物理アドレス変換テーブルに示すように、論理物理アドレス変換テーブルの構成データの各々についても、2つの異なるブロックがブロック組として割り当てられる。図に示すように、論理物理アドレス変換テーブル1−偶数、論理物理アドレス変換テーブル1−奇数が1つのブロック組であり、以下、論理物理アドレス変換テーブル2−偶数、論理物理アドレス変換テーブル2−奇数〜論理物理アドレス変換テーブルn−偶数、論理物理アドレス変換テーブルn−奇数まで、論理物理アドレス変換テーブル構成データ用に2つの異なるブロックが論理物理アドレス変換テーブル格納ブロックとして設定される。
【0113】
なお、各組を構成する奇数、偶数は、ブロックを区別するために便宜的に使用しているもので、2つの異なるブロックの組であれば、ブロックNoが奇数同士でも偶数同士でもかまわない。
【0114】
FATおよび論理物理アドレス変換テーブルの更新においては、交互に更新データを書き込む処理を実行する。例えば、FAT1−奇数の1つのページに書き込まれたFAT構成データが更新されると、更新データは、FAT−1偶数のページに書き込まれる。したがって更新前のデータもFAT1−奇数のページに保持される。FAT−1偶数のページに書き込まれたFAT構成データが更新されると、更新データは、FAT−1奇数のページに書き込まれる。論理物理アドレス変換テーブルの更新においても、偶数、奇数の各ブロックに交互に更新データの書き込みが実行される。
【0115】
図15は、フラッシュメモリの管理情報領域(図6参照)に格納される論理物理アドレス変換テーブル、FAT等のファイル管理情報の更新処理手順を説明する図である。本発明の構成おいては、上述したように1ページ分の論理物理アドレス変換テーブル構成データに2つの異なるブロックをブロック組として割り当てて、ブロック組を構成するページに対してブロック交互に更新データを書き込む処理を実行する。FAT等のファイル管理情報についても同様に、FATデータ構成データに2つの異なるブロックをブロック組として割り当てて、ブロック組を構成するページに対してブロック交互に更新データを書き込む処理を実行する。論理物理アドレス変換テーブル、FATの更新処理シーケンスは基本的には同様であるので、FATの更新処理を例として図15を参照して説明する。
【0116】
図14を参照して説明したように、フラッシュメモリの管理情報領域のFAT格納ブロックは、更新情報を書き込むブロックを2つ1組としたブロック組が用意される。図に示すように(a)FAT格納ブロックP(偶数ブロック)501と(b)FAT格納ブロックQ(奇数ブロック)502である。
【0117】
さらに偶数ブロック、奇数ブロック内のページには、図15に示すように通し番号(版番号)が0から設定される。更新されたFAT情報は、この通し番号の順に各ブロックの各ページに記録される。例えば、図15に示すように、偶数ブロック501には0,2,4,6…とページ通し番号が与えられ、奇数ブロック502には、1,3,5,7…とページ通し番号が与えられる。更新されたFAT報は、通し番号0,1,2,3,4,5,6,7…の順番にページ内に書き込まれていくことになる。
【0118】
なお、偶数ブロック501、奇数ブロック502の各ページにはそれぞれ各ブロック独立のページ番号が与えられていて、上述の通し番号と対応させると通し番号0と通し番号1のページ番号は0、通し番号2と通し番号3のページ番号は1というような関係になる。
【0119】
なお、偶数ブロック501、奇数ブロック502の各ページに与える通し番号は、説明のために便宜的に与えるものである。したがって、ホスト機器が更新されたFAT情報を書き込む際には、直接通し番号を指定するのではなく、ブロック内の所定の基準となるページから数えてN番目のページに所望の管理情報を書き込むというよう指定情報に基づいて更新データの書き込みを実行する。
【0120】
本発明の構成においては、2つの異なるブロックを一対としたブロック組を構成する一方のブロックの構成ページに更新前の管理情報、すなわち更新前のFAT等のファイル管理情報あるいは論理物理変換テーブルを残し、ブロック組を構成する他方のブロックの構成ページに更新後の管理情報を書き込む処理を実行する。
【0121】
このように、本発明の構成においては、ブロック組を構成する2つのブロックの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行する。ブロック組を構成する2ブロックの構成ページに空きページがない場合には、代替ブロックの中から新たなブロックを確保し、先頭ページに更新管理情報を書き込み後、更新直前の管理情報が格納されたブロックと異なるブロックのデータを消去する。
【0122】
本発明の構成においては、管理情報、すなわちFAT等のファイル管理情報あるいは論理物理変換テーブルに対して設定される1つの論理アドレスに対してブロック組を構成する2つのブロックの2つの物理アドレスが対応付けられ、データ記憶装置の制御部は、更新すべきファイル管理情報を指定した論理アドレスに応じて、2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別して、ブロック組を構成する2つのブロックの構成ページを交互に適用した更新情報書き込み処理を実行する。
【0123】
次に、図16以下の各図を参照してホスト機器によるフラッシュメモリに対するデータ書き込み、データ読み取り処理のシーケンスについて説明する。
【0124】
まず、図16を参照して、上述したフラッシュメモリを搭載したメモリカードを装着したホスト(PCなど)の起動時の処理、すなわちホストがメモリカードの使用を可能とするための初期設定処理について説明する。
【0125】
ホストは、まずステップS101において、フラッシュメモリのローダ(Loader)領域(図6参照)の情報を読み込む。フラッシュメモリのローダ(Loader)領域にはコントロールICが動作するための初期情報が格納されている。
【0126】
ステップS102、ステップS103において、フラッシュメモリの管理情報領域の各ブロックの属性情報を読み出し、ROM上に読み出した情報に基づくエントリを管理テーブルに登録し、その後ステップS104で管理情報領域の全ブロックの属性情報の管理テーブルに対する登録が終了したことを確認してホストからのコマンド、例えばデータ読み取り、書き込み等の処理コマンドを待機する。
【0127】
フラッシュメモリの管理情報領域の各ブロックの属性情報に基づいて生成する管理テーブルは、フローの右に示すように、ブロックタイプ、ブロックナンバー/エントリナンバー、物理アドレスブロック1、物理アドレスブロック2の各項目を有する。
【0128】
図8他を参照して説明したように、フラッシュメモリの管理情報領域には、論理物理アドレス変換テーブル、FAT等のファイル管理情報、代替ブロックの各ブロックが格納されている。これらの各ブロックの属性情報(図7、図9参照)から読み出したデータに基づいて図16に示す管理テーブルが生成される。
【0129】
ここでは、本発明に関連する論理物理変換テーブルおよびFAT等のファイル管理情報について説明する。図に示すように、FATについては、ブロックタイプとしては、FATであることを示すブロックタイプIDが格納される。項目[ブロックナンバー/エントリナンバー]には、図9を参照して説明したように、論理フォーマット上でのセクターアドレスから算出した論理アドレスが格納される。これは、FATデータの格納された論理アドレスを示す。項目[物理アドレスブロック1]、[物理アドレスブロック2]には、上述した偶数ブロックと奇数ブロックの2つのブロックそれぞれの物理アドレスが格納される。
【0130】
項目[ブロックナンバー/エントリナンバー]に格納された論理アドレスに対応するFATデータの更新の際には、項目[物理アドレスブロック1]、[物理アドレスブロック2]のブロックを用いて、上述した偶数ブロックと奇数ブロックの各ページを交互に利用したFAT更新処理が実行される。
【0131】
フラッシュメモリの管理情報領域のブロックに対応する属性情報が全て読み出されてRAM上に管理テーブルが生成されると、フラッシュメモリに対するデータ書き込みあるいは読み出しが可能となる。
【0132】
データの読み出しおよび書き込み処理について、図17を参照して説明する。図17(a)のデータ読み出し処理の手順についてまず説明する。まず、ステップS201において、読み出しデータファイルのディレクトリを検索する。ディレクトリは、図13を参照して説明したように、各データファイルの名称等の識別子と、先頭の論理アドレスとしてのクラスタ識別子を持つ。
【0133】
次に、ステップS202において、ディレクトリからデータファイルの先頭のクラスタアドレスを取得し、このクラスタアドレスに基づいて論理アドレスを論理物理アドレス変換テーブルに従って、物理アドレスに変換し、物理アドレスに基づいて特定されるフラッシュメモリのデータ格納位置からデータを取得する。論理物理アドレス変換テーブルの格納位置は、前述の管理テーブルに基づいて取得される論理物理アドレス変換テーブルの物理アドレスに従って特定可能となる。
【0134】
さらに、ステップSS203において、前述したFATに基づくクラスタ連鎖情報に基づいてファイルデータを構成する連続するクラスタ識別子、すなわち次の論理アドレスを取得する。FATの格納位置は、前述の管理テーブルに基づいて取得されるFAT格納物理アドレスによってアクセスされる。FATに基づいて取得した連鎖クラスタ情報に基づく論理アドレスは、さらに論理物理アドレス変換テーブルに従って、物理アドレスに変換し、物理アドレスに基づいて特定されるフラッシュメモリのデータ格納位置からデータを取得する。
【0135】
ステップS202およびステップS203の処理をデータファイルの最終データであることがステップS204で確認されるまで繰り返し実行することで、複数のクラスタ(ブロック)に格納されたデータファイルの読み出しが完了する。
【0136】
次に、フラッシュメモリに対するデータ書き込み処理について、図17(b)の処理フローを参照して説明する。まず、ステップS301において、書き込む論理アドレスを決定するためのFAT、ディレクトリ検索を行う。
【0137】
ステップS302において、取得されたブロックの構成ページに順次、データ書き込みが実行され、ステップS303において、データ書き込みを行ったブロックに対応する物理アドレスと論理アドレスの対応関係が設定される。すなわち論理物理アドレス変換テーブルの更新処理が実行される。この論理物理アドレスの更新は先に図15を参照して説明したように、2つの異なるブロックの構成ページを交互に利用する態様で実行される。具体的な処理手順については、図18を参照して後段で説明する。
【0138】
ステップS304において、書き込みデータが終了したか否かを判定し、終了していなければ、ステップS305において、さらに論理アドレスをFATに基づいて決定し、ステップS302において決定した論理アドレスの構成ページにデータを順次書き込む。
【0139】
ステップS303では、管理情報の更新、すなわち、論理物理アドレス変換テーブルの更新処理、およびアドレス連鎖情報(クラスタ連鎖情報)としてのFATの更新処理を実行する。ステップS302〜S305を繰り返し実行し、ステップS304において書き込みデータが終了したとの判定に基づいて処理が終了する。
【0140】
ステップS303で実行する論理物理アドレス変換テーブルの更新処理、およびアドレス連鎖情報を示すクラスタ連鎖情報を持つFATの更新処理は、先に図15を参照して説明したように、異なるブロックの組に対して交互にページを利用して実行する。この具体的な処理手順について図18の処理フローを参照して説明する。図18の処理フローでは、図15を参照して説明したと同様、偶数ブロックと奇数ブロックを、論理物理アドレス変換テーブルあるいはFAT等のファイル管理情報を交互に書き込むブロックの組とする。
【0141】
管理情報の更新処理の開始に際し、制御部は、ステップS501において、フラッシュメモリで更新直前の管理情報が書き込まれているページを検索する。これは前述の管理テーブルの情報に基づいて取得する。なお、本フローにおける管理情報は、論理物理アドレス変換テーブルあるいはFAT等のファイル管理情報の両者を含む意味である。
【0142】
ステップS502において、更新前データの書き込みページが、ブロック組を構成するブロック中の奇数ブロックのページであるか否かを判定する。更新前データの書き込みページが、奇数ブロックのページである場合は、ステップS503に進み、奇数ブロックのページでない場合は、ステップS506に進む。更新管理情報は、先に図15を参照して説明したように、更新直前の管理情報が書き込まれているページの次の通し番号が与えられたページ、すなわち更新前の管理情報書き込みブロックとは異なるブロックのページに書き込まれることになる。
【0143】
奇数ブロックのページに更新直前の管理情報が書き込まれていた場合は、更新管理情報を書き込むのは偶数ブロックとなり、ステップS503において、制御部は、更新直前の管理情報が書き込まれている奇数ブロックのページ番号を1だけインクリメントしたページ番号に対応する偶数ブロックのページ番号を、更新管理情報の書き込みページ番号として算出する。
【0144】
ステップS504において、偶数ブロックに、ステップS503で算出したページ番号に相当する空ページがあるかどうかの判断をし、該当する空ページがある場合はステップS509に進み、空ページがない場合は工程をステップS505に進む。
【0145】
ステップS504の判定処理は、更新直前の管理情報が書き込まれている奇数ブロックのページが奇数ブロックの最後のページであるかどうかを判断する工程に相当する。つまり奇数ブロックの最後のページである場合は上述のステップS504において、偶数ブロックのページ番号を1インクリメントしても該当するページは存在しない。
【0146】
このステップS504で偶数ページに更新管理情報を書き込む空ページが存在するかどうかを判断し、更新した管理情報を書き込むページがない場合に、ステップS505において、偶数ブロックとして代替ブロックの中から新たなブロックを取得し、旧偶数ブロックに書き込まれている古い管理情報を全て消去し、先頭ページ、つまりページ番号0(通し番号0)のページを更新した管理情報を書き込むページとして確保し確保した先頭ページに更新した管理情報、すなわち、論理物理アドレス変換テーブルの更新データあるいはFAT等のファイル管理情報の更新データの書き込み処理を実行する。
【0147】
ステップS504において、偶数ブロックに、ステップS503で算出したページ番号に相当する空ページがあると判定した場合は、ステップS509において、その空ページに対して更新した管理情報、すなわち、論理物理アドレス変換テーブルあるいはFAT等のファイル管理情報の書き込み処理を実行する。
【0148】
ステップS502において、更新前データの書き込みページが、奇数ブロックのページでないと判定した場合は、ステップS506に進み、更新直前の管理情報が書き込まれているページのページ番号が偶数ブロックの先頭のページ、つまりページ番号0(通し番号0)であるかどうかを判断する。
【0149】
偶数ブロックの先頭ページ、つまりページ番号0(通し番号0)に更新直前の管理情報が書き込まれている場合には、ステップS507に進み、奇数ブロックに書き込まれている全ての情報を消去して、奇数ブロックの先頭ページ、つまりページ番号0(通し番号1)を更新管理情報の書き込み領域として確保する。
【0150】
ステップS506において、偶数ブロックの先頭ページ以外のページに更新直前の管理情報が書き込まれていると判定した場合には、ステップS508に進み、更新直前の管理情報が書き込まれている偶数ブロックのページ番号と同じページ番号を、奇数ブロックにおける更新管理情報の書き込みページ領域として確保する。
【0151】
ステップS509において、制御部は、奇数ブロックに確保したページに更新した管理情報、すなわち、論理物理アドレス変換テーブルの更新データあるいはFAT等のファイル管理情報の更新データの書き込み処理を実行する。
【0152】
上述したように、本発明の構成においては、論理物理アドレス変換テーブルの更新あるいはFAT等のファイル管理情報の更新処理を、2つのブロックをブロック組として設定し、ブロック交互に各ページを利用して更新管理情報を書き込む構成としたので、例えば管理情報の更新処理の最中にホスト機器からのメモリカードの取りはずしを行ってしまったような場合、あるいは電源がOFFになってしまった場合等、更新管理情報の書き込みエラーが発生した場合であっても、更新直前のデータは消失することなく記憶保持されることになり、少なくとも更新前の管理情報を利用した処理が可能となる。
【0153】
従って、更新前の管理情報を利用したデータアクセス、さらに更新直前管理情報を用いた管理情報の再更新処理を行うことが可能となり、エラーに対する耐性の高い管理情報記憶構成が実現される。
【0154】
論理物理アドレス変換テーブルの更新あるいはFAT等のファイル管理情報の更新処理は、フラッシュメモリのデータ領域に格納するユーザデータのデータ書き込みが実行される毎に行う処理態様と、ユーザデータのデータ書き込みが複数回、行われた後にまとめて実行する形態とがある。
【0155】
図19に、フラッシュメモリのデータ領域に対するデータ書き込み毎に管理情報の更新データをフラッシュメモリの管理情報領域に書き込む処理を実行するシーケンスと、フラッシュメモリのデータ領域に対する複数回のデータ書き込みが終了後に管理情報の更新データをまとめてフラッシュメモリの管理情報領域に書き込む処理を実行するシーケンスとをそれぞれ(a)、(b)のフローとして示した。
【0156】
(a)のように、ステップS711のデータ書き込みに対して、ステップS712で、管理情報、すなわち論理物理アドレス変換テーブルの更新データあるいはFAT等のファイル管理情報の更新データを書き込み、ステップS713でデータ書き込み、ステップS714で管理情報の更新データ書き込み、以下同様にデータ書き込みと管理情報書き込みを繰り返して実行した場合、例えばステップS713でのデータ書き込みの後、これらの書き込みデータに対応する更新管理情報の書き込み(S714)が完了する以前にメモリカードがホストから抜かれるなど、メモリカードに対する電源供給が停止してしまった場合には、ステップS713での書き込みデータのみのアドレス情報が管理情報領域のFAT、論理物理アドレス変換テーブルに書き込まれないため、アクセスが不能となる。
【0157】
一方、(b)には、データ書き込み処理4回に1回の比率で管理情報の更新処理を実行するシーケンスを示している。ステップS724〜S727の4回のデータ書き込みに対して、ステップS728で、管理情報、すなわち論理物理アドレス変換テーブルの更新データあるいはFAT等のファイル管理情報の更新データを書き込む。この場合、例えばステップS727でのデータ書き込みの後、ステップS724〜S727の4回の書き込みデータに対応する更新管理情報の書き込み(S728)が完了する以前にメモリカードがホストから抜かれるなど、メモリカードに対する電源供給が停止してしまった場合には、ステップS724〜S727の4回の書き込みデータのみのアドレスが管理情報領域のFAT、論理物理アドレス変換テーブルに書き込まれないため、アクセスが不能となる。
【0158】
このように、管理情報の更新は、図19(a)に示すようにユーザデータの書き込み毎に実行するほうが更新管理情報に基づくアクセスが不能となるデータ量が減少することになり好ましい。
【0159】
さらに、図20を参照して上述した本発明の管理情報更新処理、すなわち、論理物理アドレス変換テーブルおよびFAT等のファイル管理情報を2つの異なるブロックを一対にしてブロック交互にページを利用して更新する処理のシーケンスについて説明する。
【0160】
図20は、管理情報の更新処理シーケンスを示すものであり、例えばホストがフラッシュメモリのデータ領域からをユーザデータを読み出してデータ更新をして、フラッシュメモリに再書き込みを実行した場合に行われる論理物理アドレス変換テーブルあるいはFAT等のファイル管理情報の更新処理シーケンスを示している。
【0161】
図20を参照して管理情報更新シーケンスを説明する。まず、ステップS701において、更新すべき管理情報に対応する論理アドレスが入力される。この論理アドレスは前述の管理テーブル(図16参照)に基づいて取得される。
【0162】
ステップS702において、管理テーブルに基づいて更新管理情報を書き込むべきブロックを取得する。本発明の構成においては、前述したように、管理情報領域に格納された管理情報、すなわち論理物理アドレス変換テーブルおよびFAT等のファイル管理情報データは、2つのブロック(偶数ブロック、奇数ブロック)の構成ページを交互に利用して更新データの書き込み処理を実行する。従って、1つの論理アドレスに対して2つの物理ブロックが対応付けされている。
【0163】
ステップS703において、更新管理情報、すなわち更新された論理物理アドレス変換テーブルまたはFAT等のファイル管理情報の書き込みブロックおよびページを決定する。この決定処理は、先に図18を参照して説明した手順に従って実行される。
【0164】
書き込みブロックおよびページが決定すると、ステップS704において、ホストからの更新情報としての更新された論理物理アドレス変換テーブルまたはFAT等のファイル管理情報の書き込み処理が実行され、管理情報更新が終了する。
【0165】
図に示す例では、ブロックBに更新直前の管理情報がそのまま残り、ブロックCに更新された管理情報が記録されることになる。このように、本発明の構成においては、更新前の管理情報、すなわち、論理物理アドレス変換テーブル、FAT等のファイル管理情報を消去することなく、維持することになり、前述した更新処理におけるエラー発生時に更新前のデータが保護されるという効果があるばかりでなく、更新処理において、新たな消去済みブロックの抽出処理や、更新前データ格納ブロックの更新不要ページのコピー処理等が不要となり、管理情報更新処理における処理時間の短縮が図られる。
【0166】
前述したように、フラッシュメモリにおけるデータの再書き込みは、通常、消去済みブロックに対して実行されることになり、消去済みブロックの確保処理、更新前データの書き込みブロックの新規書き込みブロックに対するデータコピー処理等が毎更新ごとに必要となっていた。本発明においては、管理情報の書き込みブロックとして予め2つのブロックが割り当てられており、更新されたページのみをページ単位で順次異なるブロックに書き込む処理を実行するのみで管理情報更新が可能となり、大幅な処理時間の短縮が可能となる。消去済みのブロックの確保処理は、割り当てられたページを全て使用した場合にのみ発生するため、処理速度への影響は小さい。したがって、データ更新後にユーザによるホストからのメモリカードの抜き取り等が行われた場合であっても、FAT、論理物理アドレス変換テーブルを含む管理情報更新処理が短時間で実行されるため、管理情報の書き込み未了に基づくエラー発生の可能性が減少する。
【0167】
例えば、
1ページのデータ読込み時間:Tr
1ページのデータ書き込み時間:Tw
1ブロック消去時間:Te
1ブロックのページ数:Pn
としたとき、
従来の処理方法、すなわち、消去ブロックに更新前のデータが格納されていた旧ブロックのデータをコピーして、さらに更新ページの書き込みを行うと、処理時間は、
Tr×(Pn−1)+Tw×Pn+Te
となる。
上記式において、Tr×(Pn−1)は、更新不要ページ(ページ数:Pn−1)のコピー処理に必要な旧ブロックのページ読み取り時間を示し、Tw×Pnは、新規ブロックに対する更新ページ+コピーページ(ページ数:Pn)の書き込み時間、Teはブロックの消去時間を示す。
【0168】
一方、本発明の構成、すなわちブロック組を利用した更新情報の書き込み処理の所要時間は、
最小で、1ページの書き込み時間のみ、すなわち、
Twであり、
最大、すなわちブロック組の空ページがなくなった場合でも、
Tw+Teに過ぎない。
このように、本発明の構成、すなわちブロック組を利用した更新情報の書き込み処理の所要時間は、従来の処理時間に比較して大幅に短縮される。従って、データ更新後にユーザによるホストからのメモリカードの抜き取り等が行われた場合であっても、管理情報更新処理が短時間で実行され、管理情報の書き込み未了に基づくエラー発生の可能性が減少する。
【0169】
[ホスト機器の構成]
最後にフラッシュメモリを利用するホスト機器、すなわち情報処理装置の構成例としてPCのハード構成例について図21を参照して説明する。
【0170】
CPU(Central Processing Unit)701は、ROM(Read Only Memory)702、またはHDD704等に記憶されているプログラムに従って、各種の処理を実行する。RAM703には、CPU701が実行するプログラムやデータが適宜記憶される。CPU701、ROM702、およびRAM703、HDD704は、バス705を介して相互に接続されている。
【0171】
バス705には、入出力インタフェース706が接続されており、入出力インタフェース706には、例えば、ユーザにより操作されるキーボード、スイッチ、ボタン、あるいはマウス等により構成される入力部707、ユーザに各種の情報を提示するLCD、CRT、スピーカ等により構成される出力部708が接続される。さらに、データ送受信手段として機能する通信部709、さらに、上述したフラッシュメモリを持つメモリカード711を装着可能で、メモリカード711からのデータ読み出しあるいは書き込み用インタフェースとしてのフラッシュメモリI/F710が接続される。
【0172】
図21に示す構成は、フラッシュメモリを利用する情報処理装置の一例としてのパーソナルコンピュータ(PC)の例であるが、フラッシュメモリを利用する情報処理装置としては、PCに限らず、ビデオカメラ、携帯電話、PDA等の携帯通信端末、その他、再生装置、ディスプレイ等の様々な電子機器がある。従って、それぞれの機器固有のハードウェア構成を持つことが可能であり、そのハードウェアに従った処理を実行する。
【0173】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0174】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0175】
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0176】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0177】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0178】
【発明の効果】
以上、説明したように、本発明の構成によれば、フラッシュメモリのアドレス管理情報であるFAT等のファイル管理情報をメモリの管理情報領域に格納するとともに、FAT構成データの格納ブロックとして2つのブロックからなるブロック組を設定し、ブロック組を構成する2つのブロックの各ページを交互に適用して更新FAT情報を書き込み、ブロック組を構成する1つのブロックに更新直前のFAT情報を保持したまま、更新情報をもう一方のブロックに書き込む構成としたので、更新管理情報の書き込みエラー発生時にも更新直前のFAT情報が記憶保持され、更新直前のFAT情報を利用した処理、たとえば更新直前のFAT情報を利用したデータアクセス、および更新直前のFAT情報を利用したFAT情報の管理情報の再更新処理等が可能となる。
【0179】
さらに、本発明の構成によれば、FATに対応する1つの論理アドレスに対応して2つの異なる物理アドレスを設定して論理アドレスに基づいて更新データを書き込むブロック組を構成する2つのブロックを即座に抽出可能とするとともに、直前の更新前データが書き込まれたブロックおよびページに基づいて更新データを書き込むブロックおよびページを決定する構成としたので、更新管理情報の書き込みブロックおよびページの決定を高速に実行することが可能となる。
【0180】
また、本発明の構成によれば、FAT等のファイル管理情報の更新処理において、従来のデータ再格納シーケンスとして実行する消去済みブロックの取得、更新前データの格納されていたブロックから消去済みブロックに対するページデータのコピー等の処理を実行する必要がなくなるので、管理情報の更新処理時間が短縮される。従って、データ更新後にユーザによるホストからのメモリカードの抜き取り等が行われた場合であっても、FAT、論理物理アドレス変換テーブルを含む管理情報更新処理が短時間で実行されるため、管理情報の書き込み未了に基づくエラー発生の可能性が減少する。
【図面の簡単な説明】
【図1】フラッシュメモリにおけるブロック、ページ構成を説明する図である。
【図2】フラッシュメモリにおけるデータ書き込み処理を説明するフロー図である。
【図3】フラッシュメモリのメモリ構成を説明する図である。
【図4】フラッシュメモリにおけるエラーの発生について説明するための図である。
【図5】本発明のメモリカードの構成を説明するブロック図である。
【図6】本発明のフラッシュメモリのデータ格納構成を説明する図である。
【図7】本発明のフラッシュメモリのページ構成を説明する図である。
【図8】本発明のフラッシュメモリの管理情報領域の格納情報について説明する図である。
【図9】本発明のフラッシュメモリの管理情報領域の格納情報の属性情報としての論理ブロック管理情報について説明する図である。
【図10】本発明のフラッシュメモリの管理情報領域の格納情報の属性情報としての物理ブロック管理情報について説明する図である。
【図11】フラッシュメモリにおける論理物理アドレス変換テーブルの更新処理について説明する図である。
【図12】フラッシュメモリにおける論理物理アドレス変換テーブルの更新処理について説明する図である。
【図13】フラッシュメモリにおけるFATの更新処理について説明する図である。
【図14】本発明のフラッシュメモリにおける論理物理アドレス変換テーブルおよびFATの格納構成について説明する図である。
【図15】本発明のフラッシュメモリにおける論理物理アドレス変換テーブルまたはFATの格納ブロック構成について説明する図である。
【図16】本発明のフラッシュメモリを装着したホスト機器における初期設定処理および管理テーブルについて説明する図である。
【図17】本発明のフラッシュメモリにおけるデータ読み取りおよび書き込み処理について説明するフロー図である。
【図18】本発明のフラッシュメモリにおける論理物理アドレス変換テーブルおよびFAT等の管理情報更新処理について説明するフロー図である。
【図19】本発明のフラッシュメモリにおける論理物理アドレス変換テーブルおよびFAT等の管理情報更新処理タイミングについて説明するフロー図である。
【図20】本発明のフラッシュメモリにおける論理物理アドレス変換テーブルおよびFAT等の管理情報更新処理手順について説明する図である。
【図21】フラッシュメモリを装着し、データの読み取り書き込みを実行する情報処理装置としてのPCのハードウェア構成例を示すブロック図である。
【符号の説明】
110 ブロック
120 ページ
121 データ格納領域
122 拡張領域(Extra領域)
151,152 ブロック
200 データ記憶装置
210 コントロールIC
211 レジスタ
212 ページバッファ
213 アトリビュートROM
214 制御部
215 OSCコントローラ
221 制御部
221 シーケンサ
222 エラー検出コード発生部
223 フラッシュインタフェース
230 フラッシュメモリ
300 ホスト機器
501 FAT格納ブロックP(偶数ブロック)
502 FAT格納ブロックQ(奇数ブロック)
201 CPU
202 ROM
203 RAM
204 HDD
205 バス
206 入出力インタフェース
207 入力部
208 出力部
209 通信部
210 フラッシュメモリI/F
211 メモリカード

Claims (14)

  1. データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置において、
    前記データ記憶部は、所定容量のデータを記憶可能なページが複数設定されたブロックに分割され、ユーザデータの格納領域としてのデータ領域と、該データ領域に対するアクセスのためのアドレス情報を含む管理情報領域とを有し、
    前記管理情報領域は、前記データ領域に格納されたデータファイルのアドレス連鎖情報を持つファイル管理情報を格納し、
    前記制御部は、
    前記ファイル管理情報の更新情報を、2つの異なるブロックを一対としたブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する構成であることを特徴とするデータ記憶装置。
  2. 前記ファイル管理情報は、FAT(File Allocation Table)であり、前記制御部は、FAT更新情報の書き込み処理において、前記2つの異なるブロックを一対としたブロック組を適用し、ブロック組を構成する2ブロックの構成ページに対して、2ブロックを交互に適用して更新FAT情報を書き込む処理を実行する構成であることを特徴とする請求項1に記載のデータ記憶装置。
  3. 前記ファイル管理情報に対して設定される1つの論理アドレスに対応して前記ブロック組のアドレス情報としての2つの物理アドレスが設定され、
    前記制御部は、更新すべきファイル管理情報を指定した論理アドレスに応じて前記2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別する構成であることを特徴とする請求項1に記載のデータ記憶装置。
  4. 前記制御部は、
    ユーザデータの格納領域としてのデータ領域に対するユーザデータ書き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報の書き込み処理を実行する構成であることを特徴とする請求項1に記載のデータ記憶装置。
  5. 前記データ記憶部の管理情報領域には、さらに、前記データ領域に格納されたデータに対応して設定される論理アドレスと、前記データ領域に格納されたデータの物理的位置に対応して設定される物理アドレスとを対応付けた論理物理アドレス変換テーブルとを格納した構成であることを特徴とする請求項1に記載のデータ記憶装置。
  6. 前記制御部は、さらに、
    前記論理物理アドレス変換テーブルの更新情報を、2つの異なるブロックを一対としたブロック組を構成する一方のブロックの構成ページに更新前論理物理アドレス変換テーブル構成情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後論理物理アドレス変換テーブル構成情報を書き込む処理を実行する構成を有することを特徴とする請求項5に記載のデータ記憶装置。
  7. 前記データ記憶装置は、情報処理装置に着脱可能な構成を有するとともに、前記情報処理装置とのデータ入出力可能なインタフェース手段を有し、
    前記制御部は、
    前記インタフェース手段を介して情報処理装置からの論理アドレスを入力し、該入力論理アドレスに従って2つの物理アドレスを取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックの組として識別する構成であることを特徴とする請求項1に記載のデータ記憶装置。
  8. 前記制御部は、
    前記ファイル管理情報の更新処理をページ単位で実行し、前記ブロック組を構成する2つのブロックの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行し、該ブロック組を構成する2ブロックの構成ページに空きページがない場合に、更新直前のファイル管理情報が格納されたブロックと異なるブロックのデータを消去し、該消去ブロックの先頭ページに更新ファイル管理情報の書き込み処理を実行する構成であることを特徴とする請求項1に記載のデータ記憶装置。
  9. データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置における管理情報更新方法であり、
    更新管理情報に対応する論理アドレスを入力する論理アドレス入力ステップと、
    前記論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別するブロック組識別ステップと、
    前記ブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップと、
    を有することを特徴とするデータ記憶装置における管理情報更新方法。
  10. 前記ファイル管理情報は、FAT(File Allocation Table)であり、
    前記更新情報書き込みステップは、
    前記ブロック組を構成する2ブロックの構成ページに対して、2ブロックを交互に適用して更新FAT情報を書き込む処理を実行することを特徴とする請求項9に記載のデータ記憶装置における管理情報更新方法。
  11. ユーザデータの格納領域としてのデータ領域に対するユーザデータ書き込み処理の一処理単位毎に、前記ファイル管理情報の更新情報書き込みステップを実行することを特徴とする請求項9に記載のデータ記憶装置における管理情報更新方法。
  12. 前記データ記憶装置における管理情報更新方法は、さらに、
    前記論理アドレス入力ステップにおいて入力する論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新すべき論理物理アドレス変換テーブル構成情報を書き込むブロックを構成するブロック組として識別するブロック組識別ステップと、
    前記ブロック組を構成する一方のブロックの構成ページに更新前論理物理アドレス変換テーブル構成情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後論理物理アドレス変換テーブル構成情報を書き込む処理を実行する更新情報書き込みステップと、
    を実行することを特徴とする請求項9に記載のデータ記憶装置における管理情報更新方法。
  13. 前記更新情報書き込みステップは、
    前記ファイル管理情報の更新処理をページ単位で実行し、前記ブロック組を構成する2つのブロックの構成ページを交互にシーケンシャルに使用して更新管理情報の書き込み処理を実行し、該ブロック組を構成する2ブロックの構成ページに空きページがない場合に、更新直前のファイル管理情報が格納されたブロックと異なるブロックのデータを消去し、該消去ブロックの先頭ページに更新ファイル管理情報の書き込み処理を実行することを特徴とする請求項9に記載のデータ記憶装置における管理情報更新方法。
  14. データ記憶部と、該データ記憶部に対するデータ入出力制御を実行する制御部とを有するデータ記憶装置における管理情報更新処理を実行するコンピュータ・プログラムであり、
    更新管理情報に対応する論理アドレスを入力する論理アドレス入力ステップと、
    前記論理アドレスに応じて2つの物理アドレス情報を取得して、該2つの物理アドレスに基づいて特定される2ブロックを更新ファイル管理情報の書き込みブロックを構成するブロック組として識別するブロック組識別ステップと、
    前記ブロック組を構成する一方のブロックの構成ページに更新前ファイル管理情報を残し、前記ブロック組を構成する他方のブロックの構成ページに更新後ファイル管理情報を書き込む処理を実行する更新情報書き込みステップと、
    を有することを特徴とするコンピュータ・プログラム。
JP2003074931A 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム Pending JP2004280752A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2003074931A JP2004280752A (ja) 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
TW093104314A TWI247988B (en) 2003-03-19 2004-02-20 Data storage device, management information updating method in data storage device, and computer program
KR1020047018663A KR20050107557A (ko) 2003-03-19 2004-03-05 데이터 기억 장치, 및 데이터 기억 장치에 있어서의 관리정보 갱신 방법, 및 컴퓨터 프로그램
US10/514,985 US7444460B2 (en) 2003-03-19 2004-03-05 Data storage device, method for updating management information in data storage device, and computer program
CNA2004800002463A CN1698035A (zh) 2003-03-19 2004-03-05 数据存储装置、更新数据存储装置中的管理信息的方法和计算机程序
EP04717886A EP1507209A4 (en) 2003-03-19 2004-03-05 DATA STORAGE DEVICE, METHOD FOR UPDATING ADMINISTRATIVE INFORMATION IN A DATA STORAGE DEVICE AND COMPUTER PROGRAM
PCT/JP2004/002924 WO2004084074A1 (ja) 2003-03-19 2004-03-05 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003074931A JP2004280752A (ja) 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2004280752A true JP2004280752A (ja) 2004-10-07

Family

ID=33027853

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003074931A Pending JP2004280752A (ja) 2003-03-19 2003-03-19 データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム

Country Status (7)

Country Link
US (1) US7444460B2 (ja)
EP (1) EP1507209A4 (ja)
JP (1) JP2004280752A (ja)
KR (1) KR20050107557A (ja)
CN (1) CN1698035A (ja)
TW (1) TWI247988B (ja)
WO (1) WO2004084074A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179286A (ja) * 2005-12-27 2007-07-12 Megachips Lsi Solutions Inc 記憶装置および情報処理装置
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
WO2009090692A1 (ja) * 2008-01-16 2009-07-23 Panasonic Corporation 半導体記録装置及び半導体記録システム
US8625386B2 (en) 2012-03-22 2014-01-07 Seiko Epson Corporation Non-volatile memory device, circuit board, printing material container and printer
JP2015095262A (ja) * 2013-11-08 2015-05-18 三星電子株式会社Samsung Electronics Co.,Ltd. 更新されたファイルにアクセスする方法、及びそれを具現するコンピュータとソフトウェア製品
KR20160146506A (ko) * 2015-06-12 2016-12-21 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
WO2018207489A1 (ja) * 2017-05-10 2018-11-15 オリンパス株式会社 動画生成装置、動画生成方法、及び動画生成プログラム
JP2019020837A (ja) * 2017-07-12 2019-02-07 株式会社デンソー 電子制御装置

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050152251A1 (en) * 2004-01-08 2005-07-14 Victor Company Of Japan, Ltd. Method and apparatus for recording check data of file system on recording medium
JP2005258851A (ja) * 2004-03-12 2005-09-22 Renesas Technology Corp メモリカード
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP4547028B2 (ja) * 2005-08-03 2010-09-22 サンディスク コーポレイション ブロック管理を伴う不揮発性メモリ
JP4859837B2 (ja) * 2005-09-22 2012-01-25 パナソニック株式会社 情報記録媒体アクセス装置、及びデータ記録方法
US7836105B2 (en) * 2005-11-14 2010-11-16 Apple Inc. Converting file-systems that organize and store data for computing systems
KR100755700B1 (ko) * 2005-12-27 2007-09-05 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법
KR100737919B1 (ko) * 2006-02-28 2007-07-10 삼성전자주식회사 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
CN100485681C (zh) * 2006-03-23 2009-05-06 北京握奇数据***有限公司 智能卡存储***及该***中文件创建管理的方法
DE102006013765A1 (de) 2006-03-24 2007-09-27 Robert Bosch Gmbh Verfahren zur Belegung eines Speichers
JP4676378B2 (ja) * 2006-05-18 2011-04-27 株式会社バッファロー データ記憶装置およびデータ記憶方法
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム
KR100845137B1 (ko) * 2006-10-02 2008-07-09 삼성전자주식회사 메모리 장치의 배드 블록 주소를 번역하는 방법, 메모리장치의 배드 블록 주소를 번역하는 장치 및 이를 포함하는메모리 장치 컨트롤러
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US20080313364A1 (en) 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
JP4402103B2 (ja) * 2006-12-11 2010-01-20 富士通株式会社 データ記憶装置、そのデータ再配置方法、プログラム
KR101442145B1 (ko) * 2007-01-11 2014-09-23 삼성전자 주식회사 데이터 관리 장치 및 방법
KR100877609B1 (ko) * 2007-01-29 2009-01-09 삼성전자주식회사 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법
JP2009003783A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
JP2009003784A (ja) * 2007-06-22 2009-01-08 Toshiba Corp 不揮発性メモリの制御装置及び制御方法及び記憶装置
US8103936B2 (en) * 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for data read of a synchronous serial interface NAND
US7675776B2 (en) * 2007-12-21 2010-03-09 Spansion, Llc Bit map control of erase block defect list in a memory
US8239611B2 (en) * 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
US8296506B2 (en) * 2009-11-09 2012-10-23 Lite-On It Corporation Method for managing a non-violate memory and computer readable medium thereof
TWI425355B (zh) * 2010-03-17 2014-02-01 Phison Electronics Corp 資料存取方法、記憶體控制器與儲存系統
TWI498731B (zh) * 2010-03-17 2015-09-01 Phison Electronics Corp 非揮發性記憶體儲存系統
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
JP2013003701A (ja) * 2011-06-14 2013-01-07 Sony Corp 情報処理装置及び方法、並びにプログラム
CN102591807B (zh) * 2011-12-30 2015-03-11 记忆科技(深圳)有限公司 一种固态硬盘掉电和写异常处理方法及***
TWI451248B (zh) * 2012-01-13 2014-09-01 Phison Electronics Corp 資料保護方法、記憶體控制器與記憶體儲存裝置
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
JP5659178B2 (ja) * 2012-03-16 2015-01-28 株式会社東芝 不揮発性記憶装置及び不揮発性メモリの制御方法
JP6072428B2 (ja) * 2012-05-01 2017-02-01 テセラ アドバンスト テクノロジーズ インコーポレーテッド 制御装置、記憶装置、記憶制御方法
US11086521B2 (en) 2015-01-20 2021-08-10 Ultrata, Llc Object memory data flow instruction execution
US11755202B2 (en) 2015-01-20 2023-09-12 Ultrata, Llc Managing meta-data in an object memory fabric
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US9904607B2 (en) * 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
EP3387548B1 (en) 2015-12-08 2023-08-02 Ultrata LLC Memory fabric operations and coherency using fault tolerant objects
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
EP3387547B1 (en) 2015-12-08 2023-07-05 Ultrata LLC Memory fabric software implementation
US10248337B2 (en) 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
KR102299880B1 (ko) * 2017-04-04 2021-09-09 에스케이하이닉스 주식회사 데이터 변환 장치 및 방법
CN107357528A (zh) * 2017-06-29 2017-11-17 长沙伟确科技发展有限公司 一种基于flash的文件***
JP2019179455A (ja) * 2018-03-30 2019-10-17 東芝メモリ株式会社 記憶装置及びコンピュータシステム
KR102089164B1 (ko) 2018-07-18 2020-03-13 고진호 격투기용 신체보호대
CN114116366A (zh) * 2020-08-26 2022-03-01 宸展光电(厦门)股份有限公司 一种检测存储器安装状态的方法、装置及***
US11429287B2 (en) * 2020-10-30 2022-08-30 EMC IP Holding Company LLC Method, electronic device, and computer program product for managing storage system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330028B1 (en) 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable
JPH10207788A (ja) 1997-01-28 1998-08-07 Casio Comput Co Ltd 情報記録装置及びそのデータ管理方法並びに記録媒体
JPH11144478A (ja) * 1997-11-10 1999-05-28 Hitachi Device Eng Co Ltd 不揮発性半導体メモリの情報記憶方法および電子機器
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
JP4281185B2 (ja) * 1999-03-25 2009-06-17 ソニー株式会社 編集装置および方法
US7167561B1 (en) * 1999-03-03 2007-01-23 Sony Corporation Recording apparatus, recording method, reproducing apparatus, and reproducing method
JP4779183B2 (ja) * 1999-03-26 2011-09-28 ソニー株式会社 再生装置および再生方法
JP3524428B2 (ja) * 1999-04-20 2004-05-10 東京エレクトロンデバイス株式会社 記憶装置、記憶システム、メモリ管理方法及び記録媒体
US6643731B2 (en) * 1999-12-31 2003-11-04 Texas Instruments Incorporated Low cost memory management that resists power interruption
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
TW539950B (en) 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
JP2007179286A (ja) * 2005-12-27 2007-07-12 Megachips Lsi Solutions Inc 記憶装置および情報処理装置
WO2009090692A1 (ja) * 2008-01-16 2009-07-23 Panasonic Corporation 半導体記録装置及び半導体記録システム
JP5491201B2 (ja) * 2008-01-16 2014-05-14 パナソニック株式会社 半導体記録装置及び半導体記録システム
US8751770B2 (en) 2008-01-16 2014-06-10 Panasonic Corporation Semiconductor recording apparatus and semiconductor recording system
US8625386B2 (en) 2012-03-22 2014-01-07 Seiko Epson Corporation Non-volatile memory device, circuit board, printing material container and printer
JP2015095262A (ja) * 2013-11-08 2015-05-18 三星電子株式会社Samsung Electronics Co.,Ltd. 更新されたファイルにアクセスする方法、及びそれを具現するコンピュータとソフトウェア製品
JP2019016395A (ja) * 2013-11-08 2019-01-31 三星電子株式会社Samsung Electronics Co.,Ltd. 更新されたファイルにアクセスする方法及びシステム並びにソフトウェア製品
KR20160146506A (ko) * 2015-06-12 2016-12-21 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
JP2017004524A (ja) * 2015-06-12 2017-01-05 三星電子株式会社Samsung Electronics Co.,Ltd. ファイルアクセス提供方法、コンピュータ、及びソフトウェア製品
KR102316198B1 (ko) 2015-06-12 2021-10-25 삼성전자주식회사 파일 액세스 방법, 컴퓨터, 및 컴퓨터-읽기 가능한 매체에 실행 가능한 소프트웨어 제품
WO2018207489A1 (ja) * 2017-05-10 2018-11-15 オリンパス株式会社 動画生成装置、動画生成方法、及び動画生成プログラム
JP2019020837A (ja) * 2017-07-12 2019-02-07 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
TWI247988B (en) 2006-01-21
EP1507209A1 (en) 2005-02-16
EP1507209A4 (en) 2008-08-27
US20050182892A1 (en) 2005-08-18
CN1698035A (zh) 2005-11-16
US7444460B2 (en) 2008-10-28
KR20050107557A (ko) 2005-11-14
TW200506609A (en) 2005-02-16
WO2004084074A1 (ja) 2004-09-30

Similar Documents

Publication Publication Date Title
JP2004280752A (ja) データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP4122972B2 (ja) データ記録装置及びフラッシュメモリに対するデータ書き込み方法
KR100847506B1 (ko) 기억 장치, 메모리 관리 방법 및 프로그램
US8312554B2 (en) Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus
JP4828816B2 (ja) メモリカード、半導体装置、及びメモリカードの制御方法
US9058255B2 (en) Solid state drive and method for constructing logical-to-physical table thereof
US8156278B2 (en) Non-volatile data storage system and method thereof
JP2007280108A (ja) 記憶媒体制御装置、記憶媒体制御方法、プログラム
JPWO2005003952A1 (ja) 記憶装置および記憶システム
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
US20130013885A1 (en) Memory storage device, memory controller, and method for identifying valid data
JP4460967B2 (ja) メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法
JP2006011533A (ja) メモリカード、半導体装置、及び半導体メモリの制御方法
JP5002944B2 (ja) 情報処理装置、撮像装置、および情報処理方法、並びにコンピュータ・プログラム
JP2003271439A (ja) 情報処理装置およびプログラム
JP2007026453A (ja) 記憶装置および記憶システム
JP2008299455A (ja) データ記憶装置及びデータ管理方法
JP4468342B2 (ja) データ管理方法
JP3620241B2 (ja) ファイル管理装置、ファイル管理方法、記録媒体及びファイル管理システム
JP2005222531A (ja) データ記録装置及びデータ記録方法
JP2011215871A (ja) 書き込み装置、書き込み方法、及び書き込みプログラム
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
JP2006155461A (ja) 情報処理装置、情報処理方法、並びにプログラム
TWI669610B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
JP2006302315A (ja) 記憶装置および記憶システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216