JP2016062319A - データ読み出し装置、プログラムおよびデータ読み出し方法 - Google Patents

データ読み出し装置、プログラムおよびデータ読み出し方法 Download PDF

Info

Publication number
JP2016062319A
JP2016062319A JP2014189977A JP2014189977A JP2016062319A JP 2016062319 A JP2016062319 A JP 2016062319A JP 2014189977 A JP2014189977 A JP 2014189977A JP 2014189977 A JP2014189977 A JP 2014189977A JP 2016062319 A JP2016062319 A JP 2016062319A
Authority
JP
Japan
Prior art keywords
file
information
block
management information
file management
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.)
Granted
Application number
JP2014189977A
Other languages
English (en)
Other versions
JP6123766B2 (ja
Inventor
山田 俊介
Shunsuke Yamada
俊介 山田
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2014189977A priority Critical patent/JP6123766B2/ja
Priority to US14/855,628 priority patent/US10120791B2/en
Publication of JP2016062319A publication Critical patent/JP2016062319A/ja
Application granted granted Critical
Publication of JP6123766B2 publication Critical patent/JP6123766B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

【課題】不揮発性メモリからのデータの読み出しを高速低消費電力で行う。
【解決手段】電源ONに伴う初期化処理により、フラッシュメモリ12の各セクタ(1)121〜(N)12Nに記憶されたセクタ情報SJ1〜SJNとファイルの先頭データが記憶されている各セクタ12n…に記憶されたファイル管理情報F…を読み出し、当該フラッシュメモリ12より高速且つ低消費電力で動作するキャッシュメモリ16のFAT16Tに記憶させる。そして、前記キャッシュメモリ16のFAT16Tに記憶されたファイル管理情報Fとセクタ情報SJnに基づいて、前記フラッシュメモリ16に記憶された読み出し対象ファイルの実データD…の位置を特定しデータの読み出しを実行する。
【選択図】 図2

Description

本発明は、不揮発性メモリに記憶されたデータを読み出すためのデータ読み出し装置およびその制御プログラムに関する。
一般に、携帯端末等の電子機器のメモリには、不揮発性メモリであるフラッシュメモリが使用されている。このフラッシュメモリに記憶されたファイルのデータを的確にアクセスするためにはFAT(File Allocation Table)情報が必要になる。
フラッシュメモリのデータを管理する方法として、例えば次の(1)(2)に説明するものが考えられている。
(1)フラッシュメモリのブロック化されたセクタ毎に、当該セクタ内の各ファイルの記憶位置に対応する論理セクタ番号やセクタ使用中/使用済み等の管理情報の記憶領域を形成してデータの読み出し/書き込みの管理を行なう。これにより、前記フラッシュメモリにおけるデータの読み出し/書き込みの単位をその消去単位よりも小さくして管理できるフラッシュROM管理方法が考えられている(例えば、特許文献1参照。)。
(2)フラッシュメモリの前段に当該フラッシュメモリのブロック化された1セクタ分の容量のキャッシュメモリを設け、このキャッシュメモリにエントリしたセクタに書き込み/読み出しのアクセスを行なうことで、前記フラッシュメモリの実質書き込み回数を低減できるフラッシュメモリ駆動方法が考えられている。なお、書き込み/読み出しの対象セクタが前記キャッシュメモリにエントリされていなければ、読み出しは前記フラッシュメモリに対して直接に行い、書き込みは当該セクタを前記キャッシュメモリにエントリした上で該キャッシュメモリに行なう(例えば、特許文献2参照。)。
特開平09−097206号公報 特開2000−276402号公報
前記(1)フラッシュROM管理方法では、ファイルの削除や更新を行う場合、その管理情報を更新するのに、当該管理情報の記憶領域を形成したセクタの1ブロックをまるごと書き換える必要があり、同セクタの読み出し、イレース、書き込みと、前記フラッシュメモリへのアクセスが多くなり、処理速度が著しく低下してしまう。
前記(2)フラッシュメモリ駆動方法では、前記書き込み/読み出しの対象セクタが異なる度に前記キャッシュメモリから前記フラッシュメモリへのセクタのリエントリと当該フラッシュメモリから前記キャッシュメモリへの他のセクタのエントリが必要なり、前記(1)同様にフラッシュメモリへのアクセスが多くなり、処理速度が著しく低下してしまう。
一方、フラッシュメモリの先頭のセクタに他のセクタ全てのFAT情報を形成することも考えられているが、ファイルの読み出し、書き込み、更新、削除等、あらゆる場面で該当セクタへのアクセス/書き換えが著しく増加するだけでなく、これに伴い前記同様に処理速度が著しく低下してしまう。
本発明は、このような課題に鑑みなされたもので、不揮発性メモリからのデータの読み出しを迅速に行うことが可能になるデータ読み出し装置およびその制御プログラムを提供することを目的とする。
本発明に係るデータ読み出し装置は、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、揮発性記憶手段と、前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応付けられた一連の実データを読み出す実データ読み出し手段と、を備えたことを特徴としている。
本発明によれば、不揮発性メモリからのデータの読み出しを迅速に行うことが可能になる。
本発明のデータ読み出し装置の実施形態に係る電子機器10の電子回路の構成を示すブロック図。 前記電子機器10のフラッシュメモリ12とキャッシュメモリ16における領域割り当て状態を示す図。 前記フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nに記憶されるセクタ情報SJnの構成を示す図。 前記フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nのうちファイルの先頭データDが記憶されたセクタ(n)12nに記憶されるファイル管理情報Fの構成を示す図。 前記フラッシュメモリ12のセクタ(n)12nにおけるファイル管理情報Fの領域割り当て状態を示す図。 前記フラッシュメモリ12におけるセクタ(n)12n内の更新可能ファイル管理情報領域に確保された更新回数管理領域Rによる更新回数のカウント状態を説明する図。 前記電子機器10のファイル管理プログラムに従い実行される初期化処理を示すフローチャート。 前記電子機器10の初期化処理に伴うFAT情報形成処理を示すフローチャート。 前記電子機器10の初期化処理に伴うフラッシュメモリスキャン&データ修復処理(スキャンディスク処理)を示すフローチャート。 前記電子機器10のファイル管理プログラムに従い実行されるファイル書き込み処理(新規作成時/更新時)を示すフローチャート。 前記電子機器10のファイル書き込み処理(新規作成時)に従ったCPU11によるフラッシュメモリ12とキャッシュメモリ16の制御動作を示す図。 前記電子機器10のファイル書き込み処理(更新時)に伴うファイル管理情報更新処理を示すフローチャート。 前記電子機器10のファイル書き込み処理(更新時)に従った更新対象ファイル管理情報Fの更新可能ファイル管理情報領域における更新動作を説明する図。 前記フラッシュメモリ12のセクタブロック(小)12nsにおけるセクタ情報SJnとファイル管理情報Fの退避先として使用される他のセクタ12nのセクタ情報SJnを示す図。 前記電子機器10のファイル管理プログラムに従い実行されるファイル削除処理を示すフローチャート。 前記電子機器10のファイル削除処理に従ったCPU11によるフラッシュメモリ12とキャッシュメモリ16の制御動作を示す図。 前記電子機器10のファイル管理プログラムに従い実行されるファイルリネーム処理を示すフローチャート。 前記電子機器10のファイル管理プログラムに従い実行されるファイル管理処理(全体処理)を示すフローチャート。
以下図面により本発明の実施の形態について説明する。
図1は、本発明のデータ読み出し装置の実施形態に係る電子機器10の電子回路の構成を示すブロック図である。
この実施形態の電子機器10は、例えば運動支援機能を備えた携帯端末、車両移動状態記録機能を備えた携帯端末等として利用される。
この電子機器10は、コンピュータであるCPU11を備えている。
このCPU11は、不揮発性メモリであるフラッシュメモリ12に予め記憶された制御プログラム、あるいはメモリカード等の外部記録媒体13から記録媒体読み取り部14により読み取られて前記フラッシュメモリ12に記憶された制御プログラム、あるいは近距離無線通信部15を介して外部接続された通信ネットワーク上のプログラムサーバからダウンロードされて前記フラッシュメモリ12に記憶された制御プログラムに従い、揮発性メモリであるキャッシュメモリ16を作業領域として回路各部の動作を制御する。
なお、本実施形態の電子機器10は、例えば前記運動支援機能を備えた携帯端末として使用される場合、当該運動支援機能に従い前記フラッシュメモリ12に登録された各種のファイルデータを、前記近距離無線通信部15を介して接続したユーザ等所有のPCに適宜のタイミングで転送して利用するので、前記フラッシュメモリ12の記憶容量は前記PCに搭載されるメモリ容量よりも大幅に小さくてよく、セクタ個数として2000個程度でよい。
そして、前記キャッシュメモリ16は、前記フラッシュメモリ12よりも大幅に高速低消費電力で動作する。
前記フラッシュメモリ12に記憶される制御プログラムは、充電式バッテリ電源部Eからの電源供給信号、キー入力部17からのキー入力信号、加速度センサ/磁気センサ/気圧センサを備えたセンサ部18からの各センサ信号、GPS受信部19からの衛星電波の受信信号等に応じて起動される。
前記制御プログラムとしては、本電子機器10全体の動作を司るシステムプログラム、前記運動支援機能を司る各種のアプリケーションプログラムの他に、前記フラッシュメモリ12およびキャッシュメモリ16を対象とするファイル管理プログラムも含まれる。
図2は、前記電子機器10のフラッシュメモリ12とキャッシュメモリ16における領域割り当て状態を示す図である。
前記フラッシュメモリ12は、例えば2000個のセクタ(1)121,(2)122,…,(N)12Nを有し、各セクタ(1)121,(2)122,…,(N)12N毎にその先頭にセクタ情報SJ1〜SJNが記憶される。またこのフラッシュメモリ12に記憶されるファイルの先頭のデータを有するセクタ(ここでは、(1)121,(N−1)12N-1)には、それぞれそのセクタ情報SJ1,SJN-1の次に、該当するファイル管理情報(A)Fa,(B)Fbが記憶され、その後に実データD…が記憶される。
なお、前記ファイル管理情報Fのないセクタ12nの実データDは、前記セクタ情報SJnの次に記憶される。そして、各セクタ(1)121,(2)122,…,(N)12Nに記憶される実データD…の繋がりは、前記セクタ情報SJnの中に書き込まれる[次のセクタ番号](図3参照)によって管理される。
この実施形態の電子機器10では、前記フラッシュメモリ12に記憶された(実)データD…を、的確・高速に、且つ低非消費電力で読み出し可能とするために、電源投入時の初期化処理として、当該フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nに記憶されたセクタ情報SJ1〜SJNとファイル管理情報(A)Fa,(B)Fbを読み出して前記キャッシュメモリ16に記憶させFAT(File Allocation Table)16Tを形成するFAT情報形成処理(詳細は後述)を実行する。
これにより、前記CPU11が前記フラッシュメモリ12のデータD…を読み出す際には、必要とするデータDの位置を前記キャッシュメモリ16のFAT16Tから取得して直接読み出すことができるので、前記フラッシュメモリ12のFAT情報からデータDの位置を取得して当該データDを読み出す動作と比較して、大幅な高速低消費電力化を実現できる。
図3は、前記フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nに記憶されるセクタ情報SJnの構成を示す図である。
このセクタ情報SJnには、該当セクタ(n)12nが使用中か否かを示す情報[セクタの状態]、該当セクタ(n)12nが削除指定されているかを示す情報[セクタ論理削除フラグ]、該当セクタ(n)12nに前記ファイル管理情報Fが記憶されているか否か(ファイルの先頭データDが記憶されているか否か)を示す情報[データ情報]、該当セクタ(n)12nに記憶されているデータDに続く次のデータDの記憶先のセクタ番号を示す情報(“FFFF”の場合は該当セクタ(n)12nのデータDが末尾であることを示す)[次のセクタ番号]が書き込まれる。
図4は、前記フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nのうちファイルの先頭データDが記憶されたセクタ(n)12nに記憶されるファイル管理情報Fの構成を示す図である。
なお、このセクタ(n)12nの場合、前記セクタ情報SJnに書き込まれる[データ情報]は、ファイル先頭ありを示すメタデータとなる。
このファイル管理情報Fには、該当ファイルの[ファイル名][ファイル属性][ファイル生成日時][ファイル更新日時][ファイル長]、および該当ファイルが削除指定されているかを示す情報[ファイル管理情報論理削除フラグ]、メモリスキャン&データ修復処理により修正されたデータか否かを示す情報[修正データフラグ]が書き込まれる。
図5は、前記フラッシュメモリ12のセクタ(n)12nにおけるファイル管理情報Fの領域割り当て状態を示す図である。
前記ファイル管理情報Fの記憶領域は、1セクタ(n)12nをセクタブロック(大:64KB)とした当該セクタ(n)12n内の先頭のセクタブロック(小:4KB)12nsに、前記セクタ情報SJnの次に確保した更新可能ファイル管理情報領域として設定される。
この更新可能ファイル管理情報領域は、所定数(ここでは72個)のファイル管理情報領域(1)f1〜(N)fNと当該ファイル管理情報領域(1)f1〜(N)fNに対するファイル管理情報Fの書き込み更新回数を管理する更新回数管理領域Rに分割される。
そして、前記ファイル管理情報Fは、新規ファイル書き込み時にファイル管理情報領域(1)f1に書き込まれ、その後、ファイル書き換え(更新)が発生する度に、更新後のファイル管理情報Fを次のファイル管理情報領域(2)f2〜(N)fNに順番に書き込んで管理される。このため、現在何番目のファイル管理情報領域(n)fnが使用されているかは前記更新回数管理領域Rで管理される更新回数により判断できる。
図6は、前記フラッシュメモリ12におけるセクタ(n)12n内の更新可能ファイル管理情報領域に確保された更新回数管理領域Rによる更新回数のカウント状態を説明する図である。
この更新回数管理領域Rでは、前記72個のファイル管理情報領域(1)f1〜(N)fNを対象にファイル管理情報Fの更新書き込みが行われる毎に更新回数が16進数でカウントされる。例えば図6(A)に示すような更新回数のカウント値“21”を示す場合、22番目のファイル管理情報領域(22)f22に現在のファイル管理情報Fが書き込まれている(22番目のファイル管理情報領域(22)f22まで使用済みである)ことを判断できる。
なお、最新のファイル管理情報Fが前記ファイル管理情報領域(N)fNに書き込まれ、前記更新可能ファイル管理情報領域の全てのファイル管理情報領域(1)f1〜(N)fNが使用済みとなった後にファイル管理情報Fを更新する場合のファイル管理情報更新処理については後述する。
このように構成された電子機器10は、前記CPU11が前記制御プログラム(システムプログラム、各種アプリケーションプログラム、ファイル管理プログラム等を含む)に記述された命令に従い回路各部の動作を制御し、ソフトウエアとハードウエアとが協働して動作することにより、以下の動作説明で述べる機能を実現する。
次に、前記構成の電子機器10のファイル管理動作について説明する。
(初期化処理)
図7は、前記電子機器10のファイル管理プログラムに従い実行される初期化処理を示すフローチャートである。
図8は、前記電子機器10の初期化処理に伴うFAT情報形成処理を示すフローチャートである。
図9は、前記電子機器10の初期化処理に伴うフラッシュメモリスキャン&データ修復処理(スキャンディスク処理)を示すフローチャートである。
この初期化処理は、電源ON時や障害発生に伴うリセット時に対応して実行されるもので、最初に前記FAT情報形成処理(ステップSA)、次に前記フラッシュメモリスキャン&データ修復処理(スキャンディスク処理)(ステップSB)の順番で実行される。
前記FAT情報形成処理では、図2で示したように、先ず、前記CPU11により前記フラッシュメモリ12の各セクタ(1)121,(2)122,…,(N)12Nに記憶されているセクタ情報SJ1〜SJNが読み出され、前記キャッシュメモリ16に確保したFAT16Tのメモリマップエリア16Mに記憶される(ステップA1)。
すると、前記メモリマップ16Mに記憶された各セクタ情報SJ1〜SJNのうち先頭のセクタ情報SJ1が指定され(ステップA2)、当該セクタ情報SJ1に書き込まれている[データ情報]の内容が読み出される(ステップA3)。
すると、前記読み出されたセクタ情報SJ1のデータ情報が、該当するセクタ121にファイル管理情報Fが記憶されていることを示すメタデータであるか否かが判断される(ステップA4)。
この実施形態では、前記先頭のセクタ情報SJ1のデータ情報はメタデータであると判断されるので(ステップA4(Yes))、前記フラッシュメモリ12の該当セクタ121に記憶されているファイル管理情報Faが読み出され、前記キャッシュメモリ16に確保した前記FAT16Tのファイル管理情報群エリア16Fに当該セクタ121のセクタ番号1に対応付けて記憶される(ステップA5)。
すると、前記各セクタ(1)121,(2)122,…,(N)12Nの全てのセクタ情報SJ1〜SJNについて確認完了したか否かが判断される(ステップA6)。
ここでは、未だ前記全てのセクタ情報SJ1〜SJNについて確認完了していないと判断され(ステップA6(No))、前記メモリマップエリア16Mに記憶された各セクタ情報SJ1〜SJNのうち次のセクタ情報SJ2が指定される(ステップA7)。
すると前記同様に、前記指定されたセクタ情報SJnの[データ情報]の内容がメタデータ(ファイル管理情報付き)であると判断された場合に、該当セクタ12nのファイル管理情報Fを読み出して前記キャッシュメモリ16のFAT16Tのファイル管理情報群エリア16Fに記憶させる処理が、終端のセクタ情報SJNまで繰り返し実行される(ステップA3〜A7)。
そして、前記各セクタ(1)121,(2)122,…,(N)12Nの全てのセクタ情報SJ1〜SJNについて確認完了したと判断されると(ステップA6(Yes))、前記一連のFAT情報形成処理は終了され、前記キャッシュメモリ16に前記フラッシュメモリ12のFAT16Tが形成された状態になる。
次に、前記フラッシュメモリスキャン&データ修復処理(スキャンディスク処理)に移行されると、前記キャッシュメモリ16に形成されたFAT16Tのファイル管理情報群エリア16Fにおける先頭のファイル管理情報Faが確認対象に指定される(ステップB1)。
すると、前記指定されたファイル管理情報Faの[ファイル名]にその内容が書き込まれている一方で、[ファイル長]にその内容が書き込まれていない状態であるか否か、つまり前回のファイル書き込み動作中に電源遮断等の障害が発生し且つ当該電源遮断処理が失敗したときのファイル管理情報F(データ修復必要)である否かが判断される(ステップB2)。
そして、前記確認対象に指定されたファイル管理情報Fの[ファイル名]にその内容が有って[ファイル長]にその内容が無い(データ修復必要)と判断されると(ステップB2(Yes))、該当ファイル管理情報Fに対応したファイル先頭の[データ情報]を有するセクタ情報SJnが当該FAT16Tのメモリマップエリア16Mから読み出される(ステップB3)。
そして、前記ファイル先頭の[データ情報]を有するセクタ情報SJnから順に同セクタ情報SJnの[次のセクタ番号]に従いファイル末尾(次のセクタ番号が“FFFF”)のセクタ情報SJn-endが特定される(ステップB4)。
すると、前記ファイル末尾のセクタ情報SJn-endに対応した前記フラッシュメモリ12内のセクタ12n-endの実データDnにおいて、データが書かれている位置(“0xFF”(=0)でない)が特定される(ステップB5)。
そして、前記ファイルのデータ先頭から前記特定されたファイル末尾のデータが書かれている位置までのデータサイズが計算され、該当するファイル管理情報F(ファイル生成日時、ファイル長、修正データフラグ)が生成される(ステップB6)。
すると、前記ファイル先頭のセクタ12nの更新可能ファイル管理情報領域(図5参照)における更新されたファイル管理情報領域(n+1)fn+1に前記生成されたファイル管理情報Fが書き込まれ、該当ファイルの修復が完了する(ステップB7)。
すると、前記FAT16Tのファイル管理情報群エリア16Fにおける全てのファイル管理情報Fa,Fb,…について確認完了したか否かが判断される(ステップB8)。
ここで、未だ前記全てのファイル管理情報Fa,Fb,…について確認完了していないと判断されると(ステップB8(No))、前記ファイル管理情報群エリア16Fに記憶された各ファイル管理情報Fa,Fb,…のうち次のファイル管理情報Fが指定される(ステップB9)。
すると前記同様に、前記指定されたファイル管理情報Fにファイル名が有ってもファイル長が無くデータ修復必要と判断された場合に、該当ファイルのデータ末尾を特定して当該ファイル管理情報Fを修復し更新する処理が最後のファイル管理情報Fendまで繰り返し実行される(ステップB2〜B9)。
そして、前記FAT16Tのファイル管理情報群エリア16Fにおける全てのファイル管理情報Fa,Fb,…について確認完了したと判断されると(ステップB8(Yes))、前記一連のフラッシュメモリスキャン&データ修復処理は終了され、前記初期化処理が終了する。
(ファイル書き込み処理)
図10は、前記電子機器10のファイル管理プログラムに従い実行されるファイル書き込み処理(新規作成時/更新時)を示すフローチャートである。
図11は、前記電子機器10のファイル書き込み処理(新規作成時)に従ったCPU11によるフラッシュメモリ12とキャッシュメモリ16の制御動作を示す図である。
各種のアプリケーションプログラムに従い生成された新しいファイルの保存が指示された場合に、当該新規ファイルのファイル書き込み処理が起動されると、前記キャッシュメモリ16のFAT16Tのメモリマップエリア16Mに記憶されている各セクタ情報SJ1〜SJNに基づいて、その[セクタの状態]が「未使用」となっている空セクタ12newが特定される(ステップP1)。なお、当該セクタ情報SJnの[セクタ論理削除フラグ]にフラグが書き込まれているセクタ12nの実データDを削除して空セクタ12newとしてもよい
すると、前記特定されたフラッシュメモリ12の空セクタ(ファイル書き込み開始セクタ)12newの先頭にそのセクタ情報SJnewとファイル管理情報Fnewの一部が書き込まれる(ステップP2)。
そして、前記生成された新規ファイルの実データDnewが前記セクタ情報SJnewとファイル管理情報Fnewを書き込んだ空セクタ12newに書き込まれる(ステップP3)。
ここで、前記新規ファイルの前記空セクタ12newへの書き込み終了が判断される前に(ステップP4(No))、当該空セクタ12newのデータ書き込み位置がセクタ終端まで及んで空き容量がなくなった(セクタがいっぱいになった)と判断されると(ステップP5(Yes))、前記同様に、前記キャッシュメモリ16のメモリマップエリア16Mに記憶されている各セクタ情報SJ1〜SJNに基づいて次の空セクタ12new2が特定される(ステップP6)。
すると、前記空き容量がなくなったセクタ12newのセクタ情報SJnewに前記次の空セクタ12nwe2のセクタ番号が書き込まれ、また当該次の空セクタ12new2の先頭にそのセクタ情報SJnew2が書き込まれる(ステップP7)。
この後、前記同様に、前記新規ファイルの前記フラッシュメモリ12に対する書き込みが繰り返され当該ファイルの書き込みが終了したと判断されると(ステップP4(Yes))、前記ステップP2において該当のファイル管理情報Fnewを書き込んだファイル書き込み開始セクタ12newのファイル管理情報領域fn(図5参照)に、当該ファイル管理情報Fnewに書き込むべき残りの[ファイル長]等の情報が書き込まれる(ステップP8)。
すると、前記フラッシュメモリ12への新規ファイルの書き込みに応じて生成された各セクタ12new,12nwe2,…のセクタ情報SJnew,SJnwe2,…とファイル管理情報Fnewに従って、前記キャッシュメモリ16のFAT16Tが更新される(ステップP9)。
図12は、前記電子機器10のファイル書き込み処理(更新時)に伴うファイル管理情報更新処理を示すフローチャートである。
図13は、前記電子機器10のファイル書き込み処理(更新時)に従った更新対象ファイル管理情報Fの更新可能ファイル管理情報領域における更新動作を説明する図である。
各種のアプリケーションプログラムに従い更新されたファイルの保存が指示された場合に、当該更新ファイルのファイル書き込み処理が起動されると、図12におけるファイル管理情報更新処理に移行される(ステップPQ)。
このファイル管理情報更新処理では、先ず前記フラッシュメモリ12の更新対象のファイル管理情報Fが記憶されているセクタ12nの更新回数管理領域R(図5、図6参照)から、現在使用されているファイル管理情報領域(n)fnを示す更新回数の値が取得され(ステップQ1)、その更新回数の値が最大値N(本実施形態では“71”)に等しいか否かが判断される(ステップQ2)。
ここで、例えば図13(A)(B)に示すように、前記更新回数管理領域Rの更新回数が“0”であり、現在使用されている更新対象のファイル管理情報Fの記憶領域が更新可能ファイル管理情報領域におけるファイル管理情報領域(1)f1であることにより、前記最大値N(=71)ではないと判断されると(ステップQ2(No))、当該更新回数管理領域Rの更新回数が“1”に更新される(ステップQ3)。
そして、図13(C)に示すように、前記更新回数管理領域Rの更新回数“1”に対応したファイル管理情報領域(2)f2に対して、前記更新前のファイル管理情報領域(1)f1に記憶されているファイル管理情報Fのうち更新後も変更されない[ファイル名][ファイル属性][ファイル生成日時]等の情報が読み出され更新後のファイル管理情報として書き込まれる(ステップQ4)。
すると、前記同様の実データDの書き込み処理(ステップP3〜P7)に従い、今回ファイル管理情報Fが更新されたセクタ12nを先頭に当該更新後の実データDが書き込まれる。
この後、前記更新後のファイルの実データDの書き込みが終了したと判断されると(ステップP4(Yes))、前記ステップQ4において更新後のファイル管理情報Fを書き込んだファイル管理情報領域(2)f2(図13(C)参照)に、当該ファイル管理情報Fに書き込むべき残りの[ファイル更新日時][ファイル長]等の情報が書き込まれる(ステップP8)。
すると、前記フラッシュメモリ12への更新ファイルの書き込みに応じて更新されたセクタ12n,…のセクタ情報SJn,…とファイル管理情報Fに従って、前記キャッシュメモリ16のFAT16Tが更新される(ステップP9)。
一方、前記ステップQ1,Q2において、前記更新回数管理領域Rの更新回数が“71”であり、現在使用されている更新対象のファイル管理情報Fの記憶領域が更新可能ファイル管理情報領域における終端のファイル管理情報領域(72)f72で、前記最大値N(=71)に等しいと判断された場合は(ステップQ2(Yes))、該当セクタ12nのセクタ情報SJnと前記ファイル管理情報領域(72)f72の更新対象のファイル管理情報Fが当該フラッシュメモリ12内の予備(退避)ブロックにコピーされる(ステップQ5)。
そして、前記該当セクタ12nのセクタ情報SJnとファイル管理情報Fが記憶されているセクタブロック(小)12nsの内容が削除された後(ステップQ6)、同セクタブロック(小)12nsに前記予備ブロックに退避されたセクタ情報SJnと更新対象のファイル管理情報Fが書き戻される(ステップQ7)。この際、前記更新対象のファイル管理情報Fはファイル管理情報領域(1)f1に書き戻される。
そして、前記ファイル管理情報領域(1)f1には、前記更新対象のファイル管理情報Fのうち更新後も変更されない[ファイル名][ファイル属性][ファイル生成日時]等の情報が更新後のファイル管理情報として書き込まれる(ステップQ8)。
すると、前記同様の実データDの書き込み処理(ステップP3〜P7)に従い、今回ファイル管理情報Fが更新されたセクタ12nを先頭に当該更新後の実データDが書き込まれる。
そして、前記更新後のファイルの実データDの書き込みが終了したと判断されると(ステップP4(Yes))、前記ステップQ8において更新後のファイル管理情報Fを書き込んだファイル管理情報領域(1)f1に、当該ファイル管理情報Fに書き込むべき残りの[ファイル更新日時][ファイル長]等の情報が書き込まれる(ステップP8)。
すると、前記フラッシュメモリ12への更新ファイルの書き込みに応じて更新されたセクタ12n,…のセクタ情報SJn,…とファイル管理情報Fに従って、前記キャッシュメモリ16のFAT16Tが更新される(ステップP9)。
なお、前記セクタブロック(小)12nsの更新可能ファイル管理情報領域の全てのファイル管理情報領域(1)f1〜(N)fNが使用済みとなった後のファイル管理情報Fの更新に際して、該当セクタ12nのセクタ情報SJnと終端のファイル管理情報領域(N)fNにある更新対象のファイル管理情報Fの退避先として用意された予備ブロックは、当該フラッシュメモリ12内の固定アドレスに用意するのではなく、その必要に応じて、前記セクタ情報SJnに書き込まれている[セクタの状態]が未使用であるセクタ12nを判断して使用してもよい(図14参照)。
図14は、前記フラッシュメモリ12のセクタブロック(小)12nsにおけるセクタ情報SJnとファイル管理情報Fの退避先として使用される他のセクタ12nのセクタ情報SJnを示す図である。
すなわち、前記セクタ情報SJnとファイル管理情報Fの退避先として使用される他のセクタ12nのセクタ情報SJnには、該当セクタ12nが退避用エリアであるか否かを示す情報を書き込むことで使用可能となる。
(ファイル削除処理)
図15は、前記電子機器10のファイル管理プログラムに従い実行されるファイル削除処理を示すフローチャートである。
図16は、前記電子機器10のファイル削除処理に従ったCPU11によるフラッシュメモリ12とキャッシュメモリ16の制御動作を示す図である。
各種のアプリケーションプログラムに従いユーザ操作に応じてファイルの削除が指示された場合に、当該ファイル削除処理が起動されると、前記キャッシュメモリ16のFAT16Tにおけるファイル管理情報群エリア16Fから削除対象のファイル管理情報Fが読み出される(ステップE1)。
そして、前記FAT16Fから読み出された削除対象のファイル管理情報Fに基づき、該当ファイルが記憶されている前記フラッシュメモリ12のセクタ12nの内容が削除される。この際、当該削除対象となったセクタ12nのセクタ情報SJnの[セクタ論理削除フラグ]に論理削除済みを示すフラグを書き込むことで、同セクタ12nの内容は制御上削除されたものとして処理し、実際のデータ削除処理は、当該フラッシュメモリ12へのアクセスが無いタイミング等、制御上負荷の軽いタイミングで実施すればよい(ステップE2)。
すると、前記フラッシュメモリ12のファイル削除に応じて更新されたセクタ12nのセクタ情報SJnとファイル管理情報Fに従って、前記キャッシュメモリ16のFAT16Tが更新される(ステップE3)。
(リネーム処理)
図17は、前記電子機器10のファイル管理プログラムに従い実行されるファイルリネーム処理を示すフローチャートである。
各種のアプリケーションプログラムに従いユーザ操作に応じてファイル名の変更が指示された場合に、当該ファイルリネーム処理が起動されると、変更対象のファイル管理情報Fが前記キャッシュメモリ16のFAT16Tのファイル管理情報群エリア16Fから読み出される(ステップRe)。
そして、前記FAT16Tから読み出された変更対象のファイル管理情報Fについて、前記図12を参照して説明した同様のファイル管理情報更新処理を実行することで、その[ファイル名]のみが変更されて当該ファイル管理情報Fが更新される(ステップReQ)。
(ファイル読出処理)
図18は、前記電子機器10のファイル管理プログラムに従い実行されるファイル管理処理(全体処理)を示すフローチャートである。このファイル管理処理(図18)において、電源ONが検知されると(ステップF1)、初期化処理としてFAT情報形成処理(ステップSA、図8)が実行されてフラッシュメモリ12のセクタ情報とファイル管理情報が読み出されて、キャッシュメモリ16にメモリマップ16Mとファイル管理情報群16Fとしてキャッシュ(登録)される。なお初期化処理として、図7に示すように、FAT情報形成処理(ステップSA、図8)を行い、さらにフラッシュメモリデータ修復処理(図7のステップSB、図9)を行うようにしても良い。
ここで、ファイル読出処理が指示されると(ステップF2;Yes)、キャッシュメモリ16のファイル管理情報群16Fの読み出し対象のファイル管理情報と対応づけられた先頭のセクタ番号(ブロック位置)を参照(読み出し)して、前記フラッシュメモリ12に記憶された該当セクタ番号(該当ブロック)の実データを読み出す(ステップF3)。
次にキャッシュメモリ16のメモリマップ16Mの現在のセクタ番号(ブロック番号)の次のセクタ番号(ブロック位置)を参照(読み出し)して、前記フラッシュメモリ12に記憶された該当セクタ番号(該当ブロック)の実データを読み出す(ステップF4)。
そして、キャッシュメモリ16のメモリマップ16Mの現在のセクタ番号(ブロック番号)の次のセクタ番号(ブロック位置)が存在するか否かを判断し(ステップF5)、次のセクタ番号(ブロック位置)が存在する場合(ステップF5;Yes)ステップF4に移行して、続きの実データを読み出す。一方、次のセクタ番号(ブロック位置)が存在しない場合(ステップF5;No)は、これまでの一連の実データをファイル実データとして保存して読み出しを完了する。
なおステップF2において、ファイル読出処理が指示されない場合は(ステップF2;No)、上記で説明したファイル書き込み処理(図10)やファイル削除処理(図15)やリネーム処理(図17)等が行われることとなる。
以上のように、前記初期化処理、ファイル書き込み処理、ファイル削除処理、ファイルリネーム処理により管理されるフラッシュメモリ12のファイルについて、何れかのファイルの読み出しが指示された場合は、前記キャッシュメモリ16のFAT16Tに記憶されている読み出し対象ファイルのファイル管理情報Fと当該ファイル管理情報Fに対応するセクタ情報SJnに基づいて、前記フラッシュメモリ12における該当ファイルの実データDの位置が特定されそのデータDが読み出される。
したがって、前記構成の電子機器10におけるフラッシュメモリ12のファイル管理機能によれば、電源ONに伴う初期化処理により、前記フラッシュメモリ12の各セクタ(1)121〜(N)12Nに記憶されたセクタ情報SJ1〜SJNとファイルの先頭データが記憶されている各セクタ12n…に記憶されたファイル管理情報F…を読み出し、当該フラッシュメモリ12より高速且つ低消費電力で動作するキャッシュメモリ16のFAT16Tに記憶させる。そして、前記キャッシュメモリ16のFAT16Tに記憶されたファイル管理情報Fとセクタ情報SJnに基づいて、前記フラッシュメモリ16に記憶された読み出し対象ファイルの実データD…の位置を特定しデータの読み出しを実行する。
これにより、前記フラッシュメモリ16に記憶されている読み出し対象ファイルの実データDの位置を直接指定して当該データの読み出しを実行できるので、高速且つ低消費電力でデータの読み出しを行なうことが可能になる。なお、前記電子機器10の動作中に不測の電源遮断が発生して前記キャッシュメモリ16のFAT16Tが失われた場合でも、当該FAT16Tは前記フラッシュメモリ16内の各セクタ情報SJ1〜SJNとファイル管理情報F…に基づき再び容易に生成することができる。
また、前記構成の電子機器10におけるフラッシュメモリ12のファイル管理機能によれば、前記初期化処理に伴い、前記フラッシュメモリ12の各セクタ(1)121〜(N)12Nに記憶されたセクタ情報SJ1〜SJNは前記キャッシュメモリ16のFAT16Tにおけるメモリマップエリア16Mに記憶され、前記ファイルの先頭データが記憶されている各セクタ12n…に記憶されたファイル管理情報Fは、前記FAT16Tにおけるファイル管理情報群エリア16Fにそのセクタ番号に対応付けられて記憶される。そして、読み出し対象ファイルの実データD…は、そのファイル管理情報Fに対応付けられたセクタ情報SJnに書き込まれている次のセクタ番号に基づいて、前記フラッシュメモリ12上での記憶位置が特定されて読み出される。
また、前記構成の電子機器10におけるフラッシュメモリ12のファイル管理機能によれば、当該フラッシュメモリ12にファイルを書き込む場合、前記キャッシュメモリ16のFAT16Tに記憶されたセクタ情報SJn…に基づいて前記フラッシュメモリ12の空セクタ12nを特定し、当該書き込み対象ファイルの実データD…を書き込む。そして、当該ファイルの先頭データDを書き込んだセクタ(ファイル書き込み開始セクタ)12nには、ファイルの先頭を示すデータ情報および次のデータ書き込み先のセクタ番号を書き込んだセクタ情報SJnとファイル管理情報Fとが書き込まれ、前記次のセクタ番号に対応するセクタ12nには、更に次のデータ書き込み先のセクタ番号を書き込んだセクタ情報SJnが書き込まれる。そしてこの後、当該ファイル書き込み後のフラッシュメモリ12における該当セクタ12n…のセクタ情報SJn…とファイル管理情報Fに基づいて、前記キャッシュメモリ16のFAT16Tが更新される。
また、前記構成の電子機器10におけるフラッシュメモリ12のファイル管理機能によれば、当該フラッシュメモリ12のファイルの先頭データDを書き込んだセクタ12nに記憶されるファイル管理情報Fは、該当セクタ12nのセクタブロック(小)12ns内を複数に分割したファイル管理情報領域(1)f1〜(N)fNに対して、当該ファイルの更新毎にその更新後のファイル管理情報Fが順番に書き換えられて更新される。
そして、前記ファイルの更新回数は、前記セクタブロック(小)12ns内を分割して確保した更新回数管理領域Rにてその更新回数をカウントして管理されるので、当該更新回数に基づき現在のファイル管理情報Fが書き込まれているファイル管理情報領域(n)fnを特定できる。
そして、前記ファイルの更新に際し、前記更新回数管理領域Rにて管理される更新回数に基づいて、前記複数分割したファイル管理情報領域(1)f1〜(N)fNの終端のファイル管理情報領域(N)fNに現在のファイル管理情報F(更新前)が書き込まれていると判断された場合は、当該ファイル管理情報F(更新前)は他のセクタブロックに退避され、前記各ファイル管理情報領域(1)f1〜(N)fNの内容が削除された後にその先頭のファイル管理情報領域(1)f1に書き戻される。そして、当該ファイルの更新に応じて前記ファイル管理情報領域(1)f1に書き戻されたファイル管理情報F(更新前)が更新後のファイル管理情報Fに更新される。
なお、前記各実施形態において記載した電子機器10のファイル管理機能による各処理の手法、すなわち、図7〜図9のフローチャートに示す初期化処理、図10のフローチャートに示すファイル書き込み処理(新規作成時/更新時)、図12のフローチャートに示す前記ファイル書き込み処理(更新時)に伴うファイル管理情報更新処理、図15のフローチャートに示すファイル削除処理、図17のフローチャートに示すファイルリネーム処理等の各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記録装置(13)の媒体に格納して配布することができる。そして、電子機器のコンピュータ(11)は、この外部記憶装置の媒体(13)に記憶されたプログラムを記憶装置(12)に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記各実施形態において説明したファイル管理機能を実現し、前述した手法による同様の処理を実行することができる。
また、前記電子機器10は、コンピュータであるCPU11と内蔵メモリに予め記憶された制御プログラムと揮発性メモリであるキャッシュメモリ16とを備え、メモリカードスロット等で外部のフラッシュメモリ12と接続されて動作するようにしても良い。その場合、複数のブロックからなる不揮発性記憶手段であるフラッシュメモリは、最初に使用される際に初期設定されて、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定されるようにしても良い。その場合、本発明のファイル書き込み処理によって、最初の書込ブロック(セクタ)に、ブロック情報(セクタ情報)およびファイル管理情報が設定されて、続く書込ブロック(セクタ)にブロック情報(セクタ情報)が書き込まれて管理されることとなる。
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク上を伝送させることができ、この通信ネットワークに接続されたコンピュータ装置(プログラムサーバ)から前記プログラムのデータを電子機器に取り込んで記憶装置(12)に記憶させ、前述したファイル管理機能を実現することもできる。
本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、
揮発性記憶手段と、
前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、
前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、
前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、
を備えたことを特徴とするデータ読み出し装置。
[2]
前記不揮発性記憶手段に記憶されるファイル管理情報は当該ファイルの先頭の実データが記憶されるブロックに記憶され、
前記ブロック情報に書き込まれる次ブロック位置は、前記先頭の実データから続く実データが記憶されるブロック位置であり、
前記ファイル位置情報登録手段は、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出し、前記揮発性記憶手段の第1のエリアに前記ブロック情報を記憶させ、第2のエリアに前記ファイル管理情報を当該ファイル管理情報を読み出したブロック位置と対応付けて記憶させ、
前記実データ読み出し手段は、読み出し対象の前記揮発性記憶手段のファイル管理情報と対応づけられたブロック位置を参照して、前記不揮発性記憶手段に記憶された該当ブロックの実データを読み出し、当該実データを読み出したブロック位置の前記揮発性記憶手段の次のブロック位置を参照して、前記不揮発性記憶手段に記憶された該当ブロックの実データを読み出すことにより、前記ファイル管理情報に対応づけられた一連の実データとして読み出す、
ことを特徴とする[1]に記載のデータ読み出し装置。
[3]
前記不揮発性記憶手段のブロック毎に記憶されるブロック情報には、さらに当該ブロックが空ブロックか否かを示す情報が書き込まれ、
前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたブロック情報の空ブロックを示す情報に従って前記不揮発性記憶手段の該当ブロックに書き込み対象ファイルの実データを記憶させるファイル書き込み手段と、
前記ファイル書き込み手段により前記書き込み対象ファイルの実データが記憶された前記不揮発性記憶手段のブロックにそのブロック情報とファイル管理情報を書き込むファイル書き込み情報更新手段と、
前記ファイル書き込み情報更新手段により前記不揮発性記憶手段のブロックに書き込まれたブロック情報とファイル管理情報に基づいて前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたファイル位置情報を更新するファイル位置情報更新手段と、
を備えたことを特徴とする[1]または[2]に記載のデータ読み出し装置。
[4]
前記不揮発性記憶手段のブロックに記憶されたファイル管理情報は、当該ブロック内に複数設定したファイル管理情報領域に対して当該ファイルの更新毎にその更新後のファイル管理情報が順番に書き換えられて更新される、
ことを特徴とする[1]ないし[3]の何れかに記載のデータ読み出し装置。
[5]
前記不揮発性記憶手段のブロック内に複数設定したファイル管理情報領域に対応付けて当該ファイルの更新回数を記録する更新回数管理領域を設定した、
ことを特徴とする[4]に記載のデータ読み出し装置。
[6]
前記ファイルの更新に際し、前記更新回数管理領域に記録されたファイルの更新回数に基づいて前記複数設定したファイル管理情報領域の終端のファイル管理情報領域に現在のファイル管理情報が記憶されているかを判断する領域終端判断手段と、
前記領域終端判断手段により前記複数設定したファイル管理情報領域の終端のファイル管理情報領域に現在のファイル管理情報が記憶されていると判断された場合に、当該終端のファイル管理情報領域に記憶されている現在のファイル管理情報を他のブロックに退避し、前記複数のファイル管理情報領域に記憶されている各ファイル管理情報を削除した後に、その先頭のファイル管理情報領域に前記退避した現在のファイル管理情報を書き戻すファイル管理情報領域再生手段と、
前記ファイル管理情報領域再生手段により先頭のファイル管理情報領域に書き戻された現在のファイル管理情報を前記ファイルの更新に応じて更新するファイル管理情報更新手段と、
を備えたことを特徴とする[5]に記載のデータ読み出し装置。
[7]
ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定される複数のブロックからなる不揮発性記憶手段と接続されたデータ読み出し装置であって、
揮発性記憶手段と、
前記不揮発性記憶手段と前記揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、
前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、
前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、
を備えたことを特徴とするデータ読み出し装置。
[8]
ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、揮発性記憶手段と、を有する電子機器のコンピュータを制御するためのプログラムであって、
前記コンピュータを、
前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段、
前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として記憶させるファイル位置情報記憶手段、
前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたファイル位置情報を読み出し、当該読み出したファイル位置情報に従って前記不揮発性記憶手段から読み出し対象ファイルの一連の実データを読み出す実データ読み出し手段、
として機能させるためのプログラム。
[9]
揮発性記憶手段を備え、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定される複数のブロックからなる不揮発性記憶手段と接続され、前記不揮発性記憶手段と前記揮発性記憶手段に対する電源の供給をオンにする電源オン手段を備えた電子機器のコンピュータを制御するためのプログラムであって、
前記コンピュータを、
前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段、
前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段、
として機能させるためのプログラム。
11 …CPU
12 …フラッシュメモリ(不揮発性メモリ)
121〜12N…セクタ(1)〜セクタ(N)
SJ1〜SJN…セクタ情報
Fa,Fb…ファイル管理情報
D …実データ
13 …外部記録媒体
14 …記録媒体読み取り部
15 …近距離無線通信部
16 …キャッシュメモリ(揮発性メモリ)
16T…FAT(File Allocation Table)
16F…ファイル管理情報群エリア
16M…メモリマップエリア
17 …キー入力部
18 …センサ部
19 …GPS受信部
E …電源部
本発明は、不揮発性メモリに記憶されたデータを読み出すためのデータ読み出し装置プログラムおよびデータ読み出し方法に関する。
本発明は、このような課題に鑑みなされたもので、不揮発性メモリからのデータの読み出しを迅速に行うことが可能になるデータ読み出し装置プログラムおよびデータ読み出し方法を提供することを目的とする。
本発明に係るデータ読み出し装置は、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、揮発性記憶手段と、前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して、読み出されたブロック情報、または当該ブロック情報およびファイル管理情報を前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段に記憶されたファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、前記不揮発性記憶手段の或るブロックの第1ファイル管理情報領域に記憶されている前記ファイル管理情報を、当該或るブロック内に設定された第2ファイル管理情報領域に、更新させた態様で書き込むファイル管理情報更新手段と、を備えたことを特徴としている。
また本発明に係る他のデータ読み出し装置は、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定される複数のブロックからなる不揮発性記憶手段と接続されたデータ読み出し装置であって、揮発性記憶手段と、前記不揮発性記憶手段と前記揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、を備えたことを特徴としている。

Claims (9)

  1. ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、
    揮発性記憶手段と、
    前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、
    前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、
    前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、
    を備えたことを特徴とするデータ読み出し装置。
  2. 前記不揮発性記憶手段に記憶されるファイル管理情報は当該ファイルの先頭の実データが記憶されるブロックに記憶され、
    前記ブロック情報に書き込まれる次ブロック位置は、前記先頭の実データから続く実データが記憶されるブロック位置であり、
    前記ファイル位置情報登録手段は、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出し、前記揮発性記憶手段の第1のエリアに前記ブロック情報を記憶させ、第2のエリアに前記ファイル管理情報を当該ファイル管理情報を読み出したブロック位置と対応付けて記憶させ、
    前記実データ読み出し手段は、読み出し対象の前記揮発性記憶手段のファイル管理情報と対応づけられたブロック位置を参照して、前記不揮発性記憶手段に記憶された該当ブロックの実データを読み出し、当該実データを読み出したブロック位置の前記揮発性記憶手段の次のブロック位置を参照して、前記不揮発性記憶手段に記憶された該当ブロックの実データを読み出すことにより、前記ファイル管理情報に対応づけられた一連の実データとして読み出す、
    ことを特徴とする請求項1に記載のデータ読み出し装置。
  3. 前記不揮発性記憶手段のブロック毎に記憶されるブロック情報には、さらに当該ブロックが空ブロックか否かを示す情報が書き込まれ、
    前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたブロック情報の空ブロックを示す情報に従って前記不揮発性記憶手段の該当ブロックに書き込み対象ファイルの実データを記憶させるファイル書き込み手段と、
    前記ファイル書き込み手段により前記書き込み対象ファイルの実データが記憶された前記不揮発性記憶手段のブロックにそのブロック情報とファイル管理情報を書き込むファイル書き込み情報更新手段と、
    前記ファイル書き込み情報更新手段により前記不揮発性記憶手段のブロックに書き込まれたブロック情報とファイル管理情報に基づいて前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたファイル位置情報を更新するファイル位置情報更新手段と、
    を備えたことを特徴とする請求項1または請求項2に記載のデータ読み出し装置。
  4. 前記不揮発性記憶手段のブロックに記憶されたファイル管理情報は、当該ブロック内に複数設定したファイル管理情報領域に対して当該ファイルの更新毎にその更新後のファイル管理情報が順番に書き換えられて更新される、
    ことを特徴とする請求項1ないし請求項3の何れか1項に記載のデータ読み出し装置。
  5. 前記不揮発性記憶手段のブロック内に複数設定したファイル管理情報領域に対応付けて当該ファイルの更新回数を記録する更新回数管理領域を設定した、
    ことを特徴とする請求項4に記載のデータ読み出し装置。
  6. 前記ファイルの更新に際し、前記更新回数管理領域に記録されたファイルの更新回数に基づいて前記複数設定したファイル管理情報領域の終端のファイル管理情報領域に現在のファイル管理情報が記憶されているかを判断する領域終端判断手段と、
    前記領域終端判断手段により前記複数設定したファイル管理情報領域の終端のファイル管理情報領域に現在のファイル管理情報が記憶されていると判断された場合に、当該終端のファイル管理情報領域に記憶されている現在のファイル管理情報を他のブロックに退避し、前記複数のファイル管理情報領域に記憶されている各ファイル管理情報を削除した後に、その先頭のファイル管理情報領域に前記退避した現在のファイル管理情報を書き戻すファイル管理情報領域再生手段と、
    前記ファイル管理情報領域再生手段により先頭のファイル管理情報領域に書き戻された現在のファイル管理情報を前記ファイルの更新に応じて更新するファイル管理情報更新手段と、
    を備えたことを特徴とする請求項5に記載のデータ読み出し装置。
  7. ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定される複数のブロックからなる不揮発性記憶手段と接続されたデータ読み出し装置であって、
    揮発性記憶手段と、
    前記不揮発性記憶手段と前記揮発性記憶手段に対する電源の供給をオンにする電源オン手段と、
    前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段と、
    前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段と、
    を備えたことを特徴とするデータ読み出し装置。
  8. ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとを有する複数のブロックからなる不揮発性記憶手段と、揮発性記憶手段と、を有する電子機器のコンピュータを制御するためのプログラムであって、
    前記コンピュータを、
    前記不揮発性記憶手段と揮発性記憶手段に対する電源の供給をオンにする電源オン手段、
    前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として記憶させるファイル位置情報記憶手段、
    前記ファイル位置情報記憶手段により前記揮発性記憶手段に記憶されたファイル位置情報を読み出し、当該読み出したファイル位置情報に従って前記不揮発性記憶手段から読み出し対象ファイルの一連の実データを読み出す実データ読み出し手段、
    として機能させるためのプログラム。
  9. 揮発性記憶手段を備え、ブロック毎に、次ブロックの位置を書き込んだブロック情報または当該ブロック情報およびファイル管理情報を記憶するエリアと実データを記憶するエリアとが設定される複数のブロックからなる不揮発性記憶手段と接続され、前記不揮発性記憶手段と前記揮発性記憶手段に対する電源の供給をオンにする電源オン手段を備えた電子機器のコンピュータを制御するためのプログラムであって、
    前記コンピュータを、
    前記電源オン手段により電源の供給がオンされた際に、前記不揮発性記憶手段のブロック毎に記憶されたブロック情報、または当該ブロック情報およびファイル管理情報を読み出して前記揮発性記憶手段にファイル位置情報として登録するファイル位置情報登録手段、
    前記ファイル位置情報登録手段により前記揮発性記憶手段に登録されたファイル位置情報を参照して、前記不揮発性記憶手段から前記ファイル管理情報に対応づけられた一連の実データを読み出す実データ読み出し手段、
    として機能させるためのプログラム。
JP2014189977A 2014-09-18 2014-09-18 データ読み出し装置、プログラムおよびデータ読み出し方法 Active JP6123766B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014189977A JP6123766B2 (ja) 2014-09-18 2014-09-18 データ読み出し装置、プログラムおよびデータ読み出し方法
US14/855,628 US10120791B2 (en) 2014-09-18 2015-09-16 Data read apparatus, data read method, and storage medium storing data read program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014189977A JP6123766B2 (ja) 2014-09-18 2014-09-18 データ読み出し装置、プログラムおよびデータ読み出し方法

Publications (2)

Publication Number Publication Date
JP2016062319A true JP2016062319A (ja) 2016-04-25
JP6123766B2 JP6123766B2 (ja) 2017-05-10

Family

ID=55525757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014189977A Active JP6123766B2 (ja) 2014-09-18 2014-09-18 データ読み出し装置、プログラムおよびデータ読み出し方法

Country Status (2)

Country Link
US (1) US10120791B2 (ja)
JP (1) JP6123766B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028830A (ja) * 2016-08-19 2018-02-22 三菱電機株式会社 電子制御装置およびその情報記憶方法
CN111597153A (zh) * 2020-05-13 2020-08-28 湖南国科微电子股份有限公司 基于hls的文件管理方法、装置、电子设备和存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190007665A (ko) * 2017-07-13 2019-01-23 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US10734071B2 (en) 2018-12-13 2020-08-04 Western Digital Technologies, Inc. Multi-level cell programming using optimized multiphase mapping with balanced Gray code
US11133067B2 (en) 2019-03-08 2021-09-28 Western Digital Technologies, Inc. Multi-phased programming with balanced gray coding
CN114595189A (zh) * 2020-12-07 2022-06-07 安霸国际有限合伙企业 应用级sd卡空间管理

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07295866A (ja) 1994-04-20 1995-11-10 Casio Comput Co Ltd データ処理装置
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
JPH0997206A (ja) 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
GB9801373D0 (en) * 1998-01-22 1998-03-18 Memory Corp Plc Memory system
JP2000276402A (ja) 1999-03-24 2000-10-06 Kokusai Electric Co Ltd フラッシュメモリ駆動方法及びフラッシュメモリ装置
JP2006252535A (ja) 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd 記憶装置
US9003354B2 (en) * 2006-07-20 2015-04-07 Texas Instruments Incorporated Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008059228A (ja) * 2006-08-31 2008-03-13 Sharp Corp ファイルシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018028830A (ja) * 2016-08-19 2018-02-22 三菱電機株式会社 電子制御装置およびその情報記憶方法
CN111597153A (zh) * 2020-05-13 2020-08-28 湖南国科微电子股份有限公司 基于hls的文件管理方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
US20160085456A1 (en) 2016-03-24
US10120791B2 (en) 2018-11-06
JP6123766B2 (ja) 2017-05-10

Similar Documents

Publication Publication Date Title
JP6123766B2 (ja) データ読み出し装置、プログラムおよびデータ読み出し方法
JP4418439B2 (ja) 不揮発性記憶装置およびそのデータ書込み方法
KR100578143B1 (ko) 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2004280752A (ja) データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム
JP2013174975A (ja) メモリシステムとそのデータ書き込み方法
JP2008299848A (ja) 不揮発性メモリのデータ処理装置及びその処理方法
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
JP4586469B2 (ja) メモリ制御装置、メモリ制御方法、プログラム
JP2015088145A (ja) 情報処理装置
US11176089B2 (en) Systems and methods for implementing dynamic file systems
EP3136245B1 (en) Computer
JP2003271439A (ja) 情報処理装置およびプログラム
JP2009053993A (ja) ファイルシステム管理装置
JP2013033338A (ja) メモリシステム
CN109683914B (zh) 一种flash烧录方法、上位机及烧录系统
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
JP2005321843A (ja) ファームウェアの書換え方法
JP2009276883A (ja) 半導体補助記憶装置
JP6580920B2 (ja) 情報処理装置、情報処理装置の動作環境設定情報を更新する方法、及び、情報処理装置の動作環境設定情報を更新するプログラム
CN111090396A (zh) 一种文件的处理方法、装置及电子设备
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
KR101618999B1 (ko) 네트워크 부트 시스템
JP2010128605A (ja) 情報記憶装置、データ記憶方法、およびプログラム
JP2005222531A (ja) データ記録装置及びデータ記録方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170307

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6123766

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150