JP2006228138A - 半導体記憶装置、記憶制御方法および情報機器 - Google Patents
半導体記憶装置、記憶制御方法および情報機器 Download PDFInfo
- Publication number
- JP2006228138A JP2006228138A JP2005044461A JP2005044461A JP2006228138A JP 2006228138 A JP2006228138 A JP 2006228138A JP 2005044461 A JP2005044461 A JP 2005044461A JP 2005044461 A JP2005044461 A JP 2005044461A JP 2006228138 A JP2006228138 A JP 2006228138A
- Authority
- JP
- Japan
- Prior art keywords
- writing
- information
- size
- storage area
- information group
- 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.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】 不揮発メモリにおいて相対的に小さなサイズデータについて頻繁にアクセスが発生する場合におけるアクセス速度を改善する。
【解決手段】 本発明によれば、相対的に小さな第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、相対的に大きな第2の書き込みサイズを他印として情報を書き込む第2の不揮発メモリとを有する場合に、第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域を第1の不揮発メモリに割り当てるようにしたので、当該第1の情報群に関する記憶領域へのアクセス速度を従来よりも向上させることができる。
【選択図】 図8
【解決手段】 本発明によれば、相対的に小さな第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、相対的に大きな第2の書き込みサイズを他印として情報を書き込む第2の不揮発メモリとを有する場合に、第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域を第1の不揮発メモリに割り当てるようにしたので、当該第1の情報群に関する記憶領域へのアクセス速度を従来よりも向上させることができる。
【選択図】 図8
Description
本発明は、所定単位でデータを消去可能な半導体記憶装置における記憶制御技術に関する。
従来、所定単位でデータを消去可能な記憶媒体が種々の情報処理装置において利用されている。とくに、フラッシュメモリは、電源を供給せずとも記憶内容を保持できる不揮発メモリとして広く普及している。
一般に、フラッシュメモリは、複数のブロックからなり、このブロックを単位として消去処理が実行される。各ブロックは、複数のセクタからなり、通常、このセクタを単位として書き込み処理が実行される(特許文献1)。
フラッシュメモリは、磁気ディスク等とは異なり、既に書き込みがなされているセクタに対して上書きすることができない。そのため、空き領域が少ない場合には、適当なブロックをいくつか一括消去して空き領域を作る必要がある。一般に、セクタは、論理セクタ番号を書き込むための論理セクタ番号領域と、当該セクタの状態フラグ(未使用、使用済み、削除済み)を書き込むためのフラグ領域と、データを記憶するためのデータ領域とを含んでいる。フラッシュメモリで書き込みを行う場合、次の3つの状況が存在しうる。
(1)書き込み指定されたセクタ番号のデータ領域にはデータが存在せず、かつ、状態フラグが「未使用」となっているセクタが一定数以上存在する。
(2)書き込み指定されたセクタ番号のデータ領域にデータが既に存在するが、状態フラグが「未使用」となっているセクタが一定数以上存在する
(3)状態フラグが「未使用」となっているセクタが一定数以下である。
(1)書き込み指定されたセクタ番号のデータ領域にはデータが存在せず、かつ、状態フラグが「未使用」となっているセクタが一定数以上存在する。
(2)書き込み指定されたセクタ番号のデータ領域にデータが既に存在するが、状態フラグが「未使用」となっているセクタが一定数以上存在する
(3)状態フラグが「未使用」となっているセクタが一定数以下である。
(1)の状況では、状態フラグが「未使用」となっているセクタのデータ領域にデータを書き込むとともに、当該セクタの論理セクタ番号領域にセクタ番号を書き込み、かつ、状態フラグを「使用中」にすることでデータを書き込める。
(2)の状況では、指定されたセクタ番号のデータを無効にするセクタ無効動作を実行するとともに、(1)と同様の書き込み処理を実行する。セクタ無効動作とは、論理セクタ番号領域に、指定されたセクタ番号が格納されているセクタを検索し、抽出されたセクタの状態フラグを「削除済」にすることである。
(3)の状況では、書き込みを行う前に、いくつかのブロックを一括消去することで、状態フラグが「未使用」となっているセクタを増やす必要がある。この一括消去処理では、まず、消去対象ブロックを決定し、決定された消去ブロックに含まれる全てのセクタの状態フラグが「削除済」もしくは「未使用」であった場合は、当該ブロックを消去する。もし、少なくとも一つ以上のセクタが「使用中」であった場合、当該セクタの内容を、「未使用」セクタへとコピーする。このときの書き込み処理は、(2)の状況と同じである。コピーが終了したら、当該ブロックを消去する。その後の書き込み動作は、フラッシュメモリの状況により、(1)または(2)の書き込み動作を実行する。
特開2004−296014号公報
ところで、フラッシュメモリの大容量化に伴い、書き込み最小サイズが、例えば、2048バイトと大きくなりつつある。もしセクタのサイズが、最小書き込みサイズより小さければ(例えば、512バイトであれば)、一回の書き込みで数セクタづつ書き込みを行うことが可能になる。
しかしながら、この最近のフラッシュメモリでは、書き込み対象データのサイズが1セクタ分であっても、数セクタ分のデータ領域が消費されてしまう。これは、書き込み最小サイズがセクタサイズと等しい従来のフラッシュメモリに比べ、一括消去処理が頻繁に発生することを意味する。一括消去処理は、非常に時間のかかる処理であるため、この最近のフラッシュメモリでは、書き込み速度が大幅に低下するという課題がある。
とりわけ、フラッシュメモリが、FAT(ファイル・アロケーション・テーブル)フォーマットを採用している場合、FATのメンテナンス時に1セクタ単位での修正処理が頻発する。そのため、上記(3)書き込み処理が多く発生し、書き込み速度が低下してしまう。
そこで、本発明は、このような課題および他の課題の少なくとも1つを解決することを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
本発明は、例えば、第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、前記第1の書き込みサイズよりも大きい第2の書き込みサイズを単位として情報を書き込む第2の不揮発メモリと、前記第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域として前記第1の不揮発メモリを使用し、前記第1の書き込みサイズを超える書き込みが主要となる第2の情報群に関する記憶領域として前記第2の不揮発メモリを使用する記憶制御部とを含む。
本発明によれば、相対的に小さな第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリに、第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域を割り当てるようにしたので、当該第1の情報群に関する記憶領域へのアクセス速度を従来よりも向上させることができる。
図1は、実施形態におけるデジタルカメラの例示的な構成を表すブロック図である。本デジタルカメラは、本発明を適用可能な情報機器の一例である。本デジタルカメラは、例えば、デジタルスチルカメラ、デジタルビデオカメラ、カメラ付き携帯電話機、カメラ付きPCなどである。このデジタルカメラには、着脱可能な外部記憶媒体17を接続することができる。
本デジタルカメラにおいて、1はレンズであり、2はレンズ1を通った光を電気信号として出力するCCDユニットである。3はA/Dコンバータであり、CCDユニット2からのアナログ信号をデジタル信号へ変換する。4はSSGユニットであり、CCDユニット2とA/Dコンバータ3に同期信号を供給する。5はCPUであり、本カメラシステムにおける各種の制御を実現する演算回路である。
6は信号処理アクセラレータであり、信号処理を高速に実現する回路である。7は電池であり、8は、電池7よりの電力をデジタルカメラ全体へ供給するためのDC/DCコンバータである。9は電源コントローラユニットであり、DC/DCコンバータ8をコントロールする。10はパネル操作・表示装置・電源のコントロールを行うサブCPUである。11はユーザへ各種の情報を表示する表示装置であり、液晶パネル等が用いられる。12はコントロールパネルであり、ユーザが直接操作するレリーズスイッチ、及びメニューボタンを含む。
13はROMであり、ブートブログラムやOS等のコンピュータプログラムを格納する。14はDRAMであり、本デジタルカメラの主記憶装置である。15はフラッシュROMであり、不揮発性の内蔵記憶媒体として使用する。16はフラッシュメモリカードなどの外部記憶媒体17を接続するためのカードインターフェース部である。外部記憶媒体17は、フラッシュメモリカード等の半導体記憶装置である。また、18はDMAコントローラ、19はストロボである。
このデジタルカメラの撮影時の動作について説明する。コントロールパネル12のレリーズスイッチをユーザが押すと、CPU5がそのことを検出して撮影シーケンスを開始する。以下の動作は全てCPU5によるコントロールで行われることを前提とする。
さて、レリーズスイッチの押下により、SSG4がCCD2を駆動する。CCD2から出力されるアナログ信号は、A/Dコンバータ3でデジタル信号へ変換される。A/Dコンバータ3の出力は、DMAコントローラ18によってDRAM14へDMA転送される。1フレーム分のDMA転送が終了した時点でCPU5は、信号処理シーケンスを開始する。
信号処理シーケンスでは、フラッシュROM15から信号処理プログラムを主記憶(DRAM14)上に読み出し、主記憶上のデータを信号処理アクセラレータ6へ転送し信号処理を行う。ただし、信号処理アクセラレータ6は信号処理の全てを行うわけではなく、CPU5で行う処理の特に時間のかかる処理などを助ける演算回路であり、CPU5の処理ソフトウェアと連携して動作する。信号処理の一部または全部が終了すると、CPU5は、生成した画像データのファイルを、カードインターフェース16を介して外部記憶媒体17へと記録する。このとき、CPU5もしくは信号処理アクセラレータ6は、記録するファイルフォーマットが圧縮処理を必要とするのであれば画像ファイルの圧縮も行う。
図2は、外部記憶媒体17に記録される画像ファイルシステムの例示的な階層構造を示す概念図である。この例示的な画像ファイルシステムは、階層L1〜L4で構成されている。
最上位の階層L1は、ユーザアプリケーションである。ユーザアプリケーションは、デジタルカメラ内部で起動されるソフトウェアであり、外部記憶媒体17に記憶されるファイルについてのオープン、読み、書きおよびクローズを制御する。
階層L2は、ファイルシステムAPI(アプリケーション・プログラム・インタフェース)層である。この階層L2は、ユーザアプリケーションからファンクションコールによって呼び出される。階層L2がドライブ名とファイルシステムとを関連付けて管理している。
階層L3は、ファイルシステムアーキテクチャ層である。この階層が実際のファイル管理を行う部分である。ドライブごとにファイルシステムアーキテクチャ層をマウントするように構成しているため、複数のファイルシステムアーキテクチャ(例えばFAT、HP−FS、NFS、NTFS等)を混在させることが可能となっている。
最下位の階層L4がブロックデバイス層である。ファイルシステムアーキテクチャ層は、ブロックデバイス層が提供するサービスを利用してファイルの入出力処理を実現している。なお、ブロックデバイス層では、データをセクタと言う単位で管理している。1セクタのサイズは例えば512バイトである。ブロックデバイス層は、デバイスごとの入出力制御の違いや、ヘッドやシリンダ等のパラメータの違いを吸収する階層である。これにより、同時に複数の種類のデバイスを混在させたデジタルカメラを構築することができる。例えば、コンパクトフラッシュ(登録商標)カードやSDカードなどを同時に装備できるデジタルカメラを実現できる。
本実施形態では、外部記憶媒体17のブロックデバイス層によりファイルシステムへと提供されるサービスは、論理的なセクタ番号で指定されたセクタからのデータの読み出し処理と、論理的なセクタ番号で指定されたセクタへのデータの書き込み処理である。
図3は、実施形態に係る例示的な記憶媒体のデータ構造を示している。ここでは、一例としてFATファイルシステムについて説明する。MBR(Master Boot Record)301は、システム起動用の情報を記憶する記憶領域であり、記憶媒体の先頭から512バイトのデータサイズを占めている。
図4は、MBRの一例を示す図である。外部記憶媒体17が起動可能な記憶媒体である場合、ブートストラップローダ401に起動プログラムが記憶される。外部記憶媒体17が起動可能ではない場合、ブートストラップローダは存在しない。ブートストラップローダ401は、MBR301の先頭から446バイトまでを占める。402はパーティションテーブルであり、外部記憶媒体17のパーティション302〜30Nに関する情報が格納される。パーティションテーブル402は、MBR301の447バイト目から510バイト目までに格納されている。パーティションテーブル402には、各パーティションの物理的な開始位置、終了位置、論理的な開始位置、および総セクタ数に関する情報が格納されている。パーティションが一つの場合、例外的に、MBRを持たないことがある。その場合は、記憶媒体全体を一つのパーティションとみなすことになる。403は、シグニチャであり、ファイルシステムが正常な場合、マジックナンバが格納されることになっている。
図5は、FAT16ファイルシステムによりフォーマットした場合のデータ構造を示す図である。ここで、FATファイルシステムで論理フォーマットされたパーティションのデータ構造を説明する。501はPBR(Partition Boot Record)である。
502、及び503は、FAT(File Allocation Table)である。FAT502、503には、ユーザデータ領域505に格納されているファイルの位置情報が格納される。FATファイルシステムは、FAT502及び503により、パーティションに格納されているファイルの位置情報を取得する。そのため、ユーザデータ領域505にファイルが格納されていたとしても、FAT502および503に当該ファイルの位置情報が格納されていなければ、ファイルシステムは、当該ファイルを認識できない。FAT502及び503には、全く同じデータが収められている。片方はバックアップとして利用される。504は、ディレクトリエントリで、ルートディレクトリに格納されたファイルの管理情報が収められている。505はユーザデータ領域でファイルの本体が格納されている。
図6は、PBR501のデータ構造を示す図である。601は、ジャンプ命令であり、IPL(Initial Program Loader)603へのジャンプ命令が格納されている。602は、BPB(BIOS Parameter Block)であり、本パーティションに特化した情報が記録されている。603はIPLでこのパーティションの起動プログラムが収められている。604は、シグニチャであり、ファイルシステムが正常な場合、マジックナンバが格納されることになっている。
図7は、BPBに含まれるパラメータを示す図である。セクタサイズ701は、1セクタのサイズを表す情報である。リザーブセクタ数702は、予めリザーブされているセクタの数を表す情報である。FATの数703は、FATの数を表す情報である。FATサイズ704は、1FATのサイズを表す情報である。その他のパラメータもBPBには含まれているが、本実施形態では関連度の高いものを説明した。
本実施形態に係る外部記憶媒体17のメモリ領域は、MBR301と、1つのパーティション302で構成されるものとする。また、パーティション302は、FATファイルシステムでフォーマットされているものとする。
図8は、実施形態に係る外部記憶媒体17の例示的な構成を示すブロック図である。外部記憶媒体17は、上述のデジタルカメラから転送されるデータを格納するフラッシュメモリを少なくとも2種類具備している。
図8において、コントローラ801は、外部記憶媒体17の主要な制御回路であり、上述のデジタルから外部接続バス804を介して送られてくる制御命令や転送データを受信して処理したり、デジタルカメラへと制御命令やデータを送出したり、あるいは当該制御命令に対するデジタルカメラからのレスポンスや転送データを処理したりする。
ROM(Read Only Memory)802は、不揮発性の記憶回路であり、コントローラ801が使用する制御プログラム820や、外部記憶媒体17の固有情報等を格納している。RAM(Random Access Memory)803は、コントローラ801が制御プログラム820を実行する際のワーク領域として利用される揮発性の記憶回路である。これ以降、コントローラ801の制御は、RAM803内のデータを利用して行われるものとする。
フラッシュメモリ805は、カードの状況により変化する管理データを格納する不揮発性の記憶回路である。例えば、後述するFAT情報管理テーブル等がフラッシュメモリ805に記憶される。なお、フラッシュメモリ805は、電源を供給せずとも記憶内容を保持できる利点がある。
フラッシュメモリ群810は、上述のデジタルカメラのデータ格納領域として使用される。フラッシュメモリ群810は、少なくとも2種類のフラッシュメモリにより構成される。811はフラッシュメモリ群810を構成する第1のフラッシュメモリである。第1のフラッシュメモリ811の書き込みブロックサイズは、例えば、512バイトであり、相対的に小さなサイズとなっている。812はフラッシュメモリ群810を構成する第2のフラッシュメモリである。第2のフラッシュメモリ812の書き込みブロックサイズは、例えば、2048バイトであり、相対的に大きなサイズとなっている。
<小さなサイズのデータ群を記憶するための記憶領域の特定>
本実施形態によれば、FAT領域502および503に記憶されるFATなどは、いわば、ファイルの位置を管理するための管理情報である。すなわち、FATなどは、第1のフラッシュメモリ811の書き込みブロックサイズ程度以下である情報の書き込みが主要となる第1の情報群に相当する。本実施形態では、このFATなどの第1の情報群を記憶するための記憶領域として、第1のフラッシュメモリ811を利用する。一方、第1のフラッシュメモリ811の書き込みブロックサイズを超える書き込みが主要となる第2の情報群(画像ファイル本体など)に関する記憶領域として、第2のフラッシュメモリ812を利用する。
本実施形態によれば、FAT領域502および503に記憶されるFATなどは、いわば、ファイルの位置を管理するための管理情報である。すなわち、FATなどは、第1のフラッシュメモリ811の書き込みブロックサイズ程度以下である情報の書き込みが主要となる第1の情報群に相当する。本実施形態では、このFATなどの第1の情報群を記憶するための記憶領域として、第1のフラッシュメモリ811を利用する。一方、第1のフラッシュメモリ811の書き込みブロックサイズを超える書き込みが主要となる第2の情報群(画像ファイル本体など)に関する記憶領域として、第2のフラッシュメモリ812を利用する。
なお、第1の情報群の記憶領域については、領域特定手段によって特定することができる。すなわち、本実施形態においては、FAT領域502および503が領域特定手段によって特定されることになる。この領域特定手段は、例えば、フラッシュメモリ805に格納されているFAT情報管理テーブル830によって実現することができる。
図9は、実施形態に係るFAT情報管理テーブルの一例を示す図である。FAT情報管理テーブル830には、FAT領域502の先頭セクタを示すFAT領域開始セクタ番号901と、当該FAT領域の合計サイズを示すFAT領域サイズ902とが格納されている。FAT領域開始セクタ番号901とFAT領域サイズ902は、例えば、コントローラ801が、次式に基づいて算出する。
FAT領域開始セクタ番号 = (パーティションの開始アドレス/セクタサイズ)+リザーブセクタ数
FAT領域サイズ = FATサイズ・FATの数
パーティションの開始アドレスは、MBR301に格納されているパーティションテーブル402から読み出して取得する。セクタサイズ701およびリザーブセクタ数702は、MBR301のBPB602から読み出す。FATの数703およびFATサイズ704もMBR301のBPB602から読み出す。
FAT領域サイズ = FATサイズ・FATの数
パーティションの開始アドレスは、MBR301に格納されているパーティションテーブル402から読み出して取得する。セクタサイズ701およびリザーブセクタ数702は、MBR301のBPB602から読み出す。FATの数703およびFATサイズ704もMBR301のBPB602から読み出す。
FAT情報管理テーブル830のFAT領域サイズ902が0である場合、FAT情報管理テーブル830に格納されているデータは不定であるものと判定する。本実施形態に係る領域特定手段は、MBR301が正常であり、かつPBR501がFATファイルシステムにとって正常であることを前提としている。図6における前記MBRのシグニチャ603、及び図8における前記PBRのシグニチャ804が適切な値で無かった場合、正常ではないと判断し、FAT情報管理テーブルの値を不定にする。
<メモリの割り当て>
本実施形態に係るメモリ割り当て手段について説明する。図9によれば、FAT情報管理テーブル830と、外部記憶媒体17の仮想メモリ構造910との関係が示されている。この例によれば、当初、外部記憶媒体17の記憶領域は、すべて第2のフラッシュメモリ812に割り当てられているものとする。すなわち、第1のメモリ領域911、第2のメモリ領域912および第3のメモリ領域913は、全て第2のフラッシュメモリ812上に割り当てられている。次に、FAT502および503を格納するために第2のメモリ領域912が使用されることになると、コントローラ801は、第2のメモリ領域912を第1のフラッシュメモリ811上に割り当て直す。なお、第1のフラッシュメモリ811の記憶容量は、FAT領域のサイズ以上の大きさを有していなければならないことはいうまでもない。
本実施形態に係るメモリ割り当て手段について説明する。図9によれば、FAT情報管理テーブル830と、外部記憶媒体17の仮想メモリ構造910との関係が示されている。この例によれば、当初、外部記憶媒体17の記憶領域は、すべて第2のフラッシュメモリ812に割り当てられているものとする。すなわち、第1のメモリ領域911、第2のメモリ領域912および第3のメモリ領域913は、全て第2のフラッシュメモリ812上に割り当てられている。次に、FAT502および503を格納するために第2のメモリ領域912が使用されることになると、コントローラ801は、第2のメモリ領域912を第1のフラッシュメモリ811上に割り当て直す。なお、第1のフラッシュメモリ811の記憶容量は、FAT領域のサイズ以上の大きさを有していなければならないことはいうまでもない。
<アクセス要求の変換処理>
以上のように構成された外部記憶媒体17に対して、アクセス要求が発生した場合のアクセス要求を変換する手段について説明する。外部記憶媒体17は、ブロックデバイス層の下位に位置する。そのため、上位からのアクセス要求は、指定セクタ番号に対する読み出し要求と、指定セクタ番号に対する書き込み要求となる。
以上のように構成された外部記憶媒体17に対して、アクセス要求が発生した場合のアクセス要求を変換する手段について説明する。外部記憶媒体17は、ブロックデバイス層の下位に位置する。そのため、上位からのアクセス要求は、指定セクタ番号に対する読み出し要求と、指定セクタ番号に対する書き込み要求となる。
図10は、実施形態に係るアクセス要求の変換処理に関する例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム820に含まれており、当該制御プログラムをコントローラ801が実行することでアクセス要求の変換手段が実現される。
ステップS1001において、コントローラ801は、上位層からデータの読み出し命令または書き込み命令を受信する。
ステップS1002において、コントローラ801は、フラッシュメモリ805に記憶されているFAT情報管理テーブル830を参照し、FAT領域開始セクタ番号901やFAT領域サイズ902を読み出す。
ステップS1003において、コントローラ801は、読み出したFAT領域開始セクタ番号901やFAT領域サイズ902が不定であるか否かを判定する。すなわち、コントローラ810は、第1のフラッシュメモリ811が第1の情報群を格納するための特定領域として利用されている否かを判定することになる。不定であれば、コントローラ801は、ステップS1007に進み、通常どおり、受信した命令から指定セクタ番号を読み出す。さらにステップS1008に進み、コントローラ801は、第2のフラッシュメモリに対して、指定されたセクタ番号からデータを読み出し、上位層へと送信する(受信命令が読み出し命令の場合)。書き込み命令の場合、コントローラ801は、上位層から受信した書き込み対象データを、第2のフラッシュメモリにおける指定されたセクタ番号へと書き込む。一方、不定でなければ、第1のフラッシュメモリ811が第1の情報群を格納するための特定領域として利用されていることを意味するので、ステップS1004に進む。
ステップS1004において、コントローラ801は、受信した命令から指定セクタ番号を読み出す。
ステップS1005において、コントローラ801は、指定セクタ番号が特定範囲内であるか否かを判定する。特定範囲とは、FAT領域開始セクタ番号901から、FAT領域開始セクタ番号901とFAT領域サイズ902とによって特定されるFAT領域の終了セクタ番号までをいう。すなわち、この範囲が、少なくとも第1フラッシュメモリにより提供される記憶領域となる。指定セクタ番号が特定範囲内でなければ、ステップS1008に進み、上述の読み出し処理または書き込み処理を実行する。一方、指定セクタ番号が特定範囲内であれば、ステップS1006に進む。
ステップS1006において、コントローラ801は、第1のフラッシュメモリ対して、指定されたセクタ番号からデータを読み出し、上位層へと送信する(受信命令が読み出し命令の場合)。一方、書き込み命令の場合、コントローラ801は、上位層から受信した書き込み対象データを、第2のフラッシュメモリにおける指定されたセクタ番号へと書き込む。
このように本実施形態によれば、FAT情報管理テーブル830に基づいて、コントローラ801は、上位層から受信した読み出し命令または書き込み命令を、第1フラッシュメモリまたは第2のフラッシュメモリに対する読み出し命令または書き込み命令へと好適に変換することができる。
例えば、コントローラ801は、FAT情報管理テーブル830によって、第1フラッシュメモリの書き込みブロックサイズ程度以下の書き込みが主要となる第1の情報群については第1のフラッシュメモリ811を使用し、一方で、第1フラッシュメモリの書き込みブロックサイズを超える情報の書き込みが主要となる第2の情報群に関する記憶領域として第2のフラッシュメモリ812を使用することができる。
これにより、FATのメンテナンス時に頻発する1セクタ単位での修正処理に関しても、書き込み速度を従来よりも向上させることができるようになる。
<メモリの動的割り当て>
本実施形態に係る動的メモリ割り当て機能について説明する。上位層から受信した制御命令の内容を解析する制御命令解析手段が、上述の領域特定手段により特定された部分的な記憶領域を削除して移動するための制御命令(例えば、FAT領域の変更命令など)を検出すると、動的メモリ割り当て手段は、移動後の部分的な記憶領域を特定し、特定された部分的な記憶領域を第1のフラッシュメモリに割り当てる。
本実施形態に係る動的メモリ割り当て機能について説明する。上位層から受信した制御命令の内容を解析する制御命令解析手段が、上述の領域特定手段により特定された部分的な記憶領域を削除して移動するための制御命令(例えば、FAT領域の変更命令など)を検出すると、動的メモリ割り当て手段は、移動後の部分的な記憶領域を特定し、特定された部分的な記憶領域を第1のフラッシュメモリに割り当てる。
以下では、コントローラ801が、制御プログラム820に従って、部分領域の削除および移動を検出し、移動後の部分領域を第1フラッシュメモリ811によって提供できるよう、FAT情報管理テーブル830の内容を書き換える。ただし、なお、FAT情報管理テーブル830によりFAT領域を特定できなかった場合には、FAT領域が削除されたと判断し、FAT情報管理テーブル830の記憶内容を不定にする。
図11は、実施形態に係る動的メモリ割り当て処理の例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム820に含まれており、当該制御プログラムをコントローラ801が実行することで動的メモリ割り当て手段と制御命令解析手段とが実現される。
ステップS1101において、コントローラ801は、制御命令を上位層から受信する。
ステップS1102において、コントローラ801は、受信した制御命令が、FAT領域の削除命令や移動命令などの変更命令であるか否かを判定する。FAT領域の変更命令であれば、ステップS1103に進む。そうでなければ、ステップS1105に進み、通常どおり、制御命令を実行する。
ステップS1103において、コントローラ801は、制御命令に基づいて、FATを記憶するための変更後の記憶領域を特定する。例えば、FAT領域の開始セクタ番号やFATのサイズなどが特定されることになる。
ステップS1104において、コントローラ801は、特定されたFAT領域の開始セクタ番号やFATのサイズに基づいて、FAT情報管理テーブル830を修正する。
ステップS1105において、コントローラ801は、受信した制御命令を実行する。例えば、変更後のFAT領域に対してデータを書き込んだりする。
なお、本実施形態では、制御命令の実行前にステップS1102ないしS1104を実行したが、もちろん、制御命令を実行した後で、当該ステップらを実行してもよいことは言うまでもない。
以上説明したように、本実施形態によれば、書き込みブロックサイズの異なる複数のフラッシュメモリについて、動的に記憶領域を割り当てることができる。例えば、工場出荷時には、外部記憶媒体17の全メモリ領域が第2のフラッシュメモリ812に割り当てられていたとしても、その後、動的メモリ割り当て手段によって、外部記憶媒体17の一部のメモリ領域を動的に第1のフラッシュメモリ811に割り当てることができるようになる。すなわち、二種類のフラッシュメモリによって外部記憶媒体17のメモリ領域を好適に構成することが可能となる。
<FAT領域の変更検出>
上述したFAT領域の変更を検出するためのFAT領域変更検知手段(ステップS1102に相当)についてさらに説明する。
上述したFAT領域の変更を検出するためのFAT領域変更検知手段(ステップS1102に相当)についてさらに説明する。
図12は、実施形態に係るFAT領域の変更検出処理の例示的なフローチャートである。このフローチャートに係る手順は、制御プログラム820に含まれており、当該制御プログラムをコントローラ801が実行することでFAT領域変更検知手段が実現される。
ステップS1201において、コントローラ801は、受信した制御命令がメモリ領域へのアクセス要求であるかを判定する。メモリ領域へのアクセス要求であれば、ステップS1202に進み、そうでなければ、ステップS1204に進む。ステップS1204において、コントローラ801は、受信した制御命令がメモリ領域内のデータを変更する命令であるかを判定する。変更命令であれば、FATの変更を伴うことになるので、ステップS1103に進む。そうでなければ、FATの変更を伴うことはないので、ステップS1105に進む。
ステップS1202において、コントローラ801は、当該アクセス要求がBPBに対するアクセス要求であるかを判定する。BPBに対するアクセスであると判定した場合は、ステップS1205に進む。ステップS1205において、コントローラ801は、アクセス要求がFAT領域開始セクタ番号またはFAT領域サイズの少なくとも一方を変更するものであるかを判定する。ところで、上述したように、FAT領域開始セクタ番号は、リザーブセクタ数702に基づいて算出される。また、FAT領域サイズは、FATサイズ704及びFATの数703に基づいて算出される。従って、アクセス要求が、リザーブセクタ数701、FATサイズ704またはFATの数703を変更するものであるかどうかを判定することになる。このようにして、FAT領域開始セクタ番号またはFAT領域サイズの少なくとも一方を変更するものであると判定した場合、コントローラ801は、制御命令がFAT領域を変更する命令である判定し、ステップS1103に進む。
ステップS1203において、コントローラ801は、制御命令により要求されたサービスがMBRへのアクセス要求であるかを判定する。MBRへのアクセス要求であると判定された場合は、ステップS1206に進み、コントローラ801は、当該アクセス要求の実行によってMBR内のパーティションテーブルが変更されるかを判定する。パーティションテーブルへの変更があると判定した場合、受信した制御命令によりFAT領域が変更されることになるので、ステップS1103に進む。一方、制御命令により要求されたサービスがMBRへのアクセス要求でなければ、受信した制御命令によりFAT領域が変更されることはないので、ステップS1105に進む。
以上説明したように、本実施形態によれば、書き込みブロックサイズが異なる少なくとも2種類のフラッシュメモリを搭載する外部記憶媒体17において、外部記憶媒体17のFAT領域として書き込みブロックサイズの相対的に小さいフラッシュメモリ811を割り当て、それ以外の情報の記憶領域として書き込みブロックサイズの相対的に大きいフラッシュメモリ812を割り当てるようにした。これにより、FATメンテナンスに伴う小さなデータの書き込み処理による非効率なセクタの消費を抑制し、一括消去処理の発生頻度を低減できる。すなわち、FAT領域へのアクセス速度を従来よりも向上させることができる。
[他の実施形態]
上述の実施形態では、本発明をデジタルカメラに適用した例を説明した。しかしながら、本発明は、外部記憶媒体を装着可能ないかなる情報機器にも適用できることは言うまでもない。
上述の実施形態では、本発明をデジタルカメラに適用した例を説明した。しかしながら、本発明は、外部記憶媒体を装着可能ないかなる情報機器にも適用できることは言うまでもない。
また、上述の実施形態では、外部記憶媒体の内蔵コントローラ801が、上位層からのアクセス要求を、2種類のフラッシュメモリのいずれかへのアクセス要求へと好適に変換していた。しかしながら、本発明は、デジタルカメラに装備されるCPU5及びソフトウェアによって実現されてもよい。
さらに、上述の実施形態においては、着脱可能な外部記憶媒体を一例として説明したが、本発明は、デジタルカメラ等の情報機器に内蔵される記憶媒体に適用されてもよい。すなわち、このような内蔵記憶媒体であっても、書き込みブロックサイズの異なる少なくとも2種類のフラッシュメモリを搭載している場合は、同様の課題が生じうるので、本発明を好適に適用できる。
さらに、上述の実施形態においては、ファイルシステムアーキテクチャとしてFATファイルシステムを一例に挙げた。しかしながら、ファイルの位置情報を示す領域など、相対的に小さな単位でアクセスされる特定領域を使用する他のいずれのファイルシステムにおいても、本発明は好適に適用できる。このような特定領域として、書き込みブロックサイズの小さなフラッシュメモリを割り当てることで、本発明を好適に適用できることは言うまでもない。
さらに、上述実施形態においては、パーティションが一つである外部記憶媒体を一例として説明した。しかしながら、複数のパーティションが存在する場合であっても、FAT情報管理テーブル830に、各パーティションに対応するFAT領域開始セクタ番号とFAT領域サイズとを一組として格納しておくことで、本発明を好適に適用できることは言うまでもない。
さらに、上述の実施形態においては、書き込みブロックサイズの大きな第2のフラッシュメモリ812の最大記憶容量を、外部記憶媒体17が自己の最大記憶容量としてデジタルカメラに通知すると説明した。しかしながら、通知される最大記憶容量よりも、フラッシュメモリ812の最大記憶容量の方が大きい場合であっても、本発明を好適に適用できることは言うまでもない。さらに、通知される最大記憶容量よりも、フラッシュメモリ812の最大記憶容量の方が小さい場合であっても、第1のフラッシュメモリ811によって不足領域を補足でき、かつ外部記憶媒体17に上述の内蔵コントローラ801が搭載されていれば、本発明を好適に適用できることは言うまでもない。
さらに、上述の実施形態においては、第1のフラッシュメモリ811の記憶容量がFAT領域のサイズ以上である場合を説明した。しかしながら、FAT領域よりも小さい場合であっても、不足領域を第2のフラッシュメモリ812で補足できるのであれば、本発明を好適に適用できる。その場合、例えば、コントローラ801は、FAT情報管理テーブル830のFAT領域サイズ902を第1のフラッシュメモリ811の最大記憶容量に書き換えるよう動作する。
また、本発明の上述の各機能は、それぞれハードウエア回路によって実現してもよいし、一部またはすべてをソフトウェアによって実現しても良い。後者の場合は、各機能を実現するソフトウェアプログラムをROMなどの記憶装置に記憶しておき、それをCPUが実行することになる。もちろん、これらに相当するDSPなどのハードウエアを用いて本発明を実現しても良い。
なお、本発明は、前述した実施形態の各機能を実現するソフトウェアプログラムを、システム若しくは装置に対して直接または遠隔から供給し、そのシステム若しくは装置に含まれるコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。
従って、本発明の機能・処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、上記機能・処理を実現するためのコンピュータプログラム自体も本発明の一つである。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明の構成要件となる場合がある。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
1 レンズ
2 CCDユニット
3 A/Dコンバータ
4 SSGユニット
5 CPU
6 信号処理アクセラレータ
7 電池
8 DC/DCコンバータ
9 電源コントローラ
10 サブCPU
11 表示装置
12 コントロールパネル
13 ROM
14 DRAM
15 フラッシュROM
16 カードインターフェース
17 外部記憶媒体
18 DMAコントローラ
19 ストロボ
801 外部記憶媒体コントローラ
802 ROM
803 RAM
804 外部接続バス
805 フラッシュメモリ(管理用)
806 第1のフラッシュメモリ
807 第2のフラッシュメモリ
820 制御プログラム
830 FAT情報管理テーブル
2 CCDユニット
3 A/Dコンバータ
4 SSGユニット
5 CPU
6 信号処理アクセラレータ
7 電池
8 DC/DCコンバータ
9 電源コントローラ
10 サブCPU
11 表示装置
12 コントロールパネル
13 ROM
14 DRAM
15 フラッシュROM
16 カードインターフェース
17 外部記憶媒体
18 DMAコントローラ
19 ストロボ
801 外部記憶媒体コントローラ
802 ROM
803 RAM
804 外部接続バス
805 フラッシュメモリ(管理用)
806 第1のフラッシュメモリ
807 第2のフラッシュメモリ
820 制御プログラム
830 FAT情報管理テーブル
Claims (7)
- 第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、
前記第1の書き込みサイズよりも大きい第2の書き込みサイズを単位として情報を書き込む第2の不揮発メモリと、
前記第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域として前記第1の不揮発メモリを使用し、前記第1の書き込みサイズを超える書き込みが主要となる第2の情報群に関する記憶領域として前記第2の不揮発メモリを使用する記憶制御部と
を含むことを特徴とする半導体記憶装置。 - 前記第1の情報群は、前記第2の情報群の書き込み位置を管理するための管理情報群であることを特徴する請求項1に記載の半導体記憶装置。
- 前記記憶制御部は、
前記第1の不揮発メモリの記憶領域と前記第2の不揮発メモリの記憶領域とにより前記半導体記憶装置の記憶領域が定義される場合に、前記記憶媒体の記憶領域のうち、前記第1の情報群の記憶領域を特定するための領域特定手段
を含むことを特徴とする請求項2に記載の半導体記憶装置。 - 前記記憶制御部は、
前記半導体記憶装置に対するアクセス要求を受信する受信手段と、
受信した前記アクセス要求が前記第1の情報群の記憶領域に対するアクセス要求であるかを解析する解析手段と、
前記アクセス要求が前記第1の情報群の記憶領域に対するアクセス要求であると解析されると、該アクセス要求を前記第1の不揮発メモリへのアクセス要求に変換する変換手段と
を含むことを特徴とする請求項3に記載の半導体記憶装置。 - 前記記憶制御部は、
前記半導体記憶装置に対する制御命令を受信する受信手段と、
受信した前記制御命令が前記第1の情報群の記憶領域に関する変更命令であるかを解析する解析手段と、
前記制御命令が前記第1の情報群の記憶領域に関する変更命令であると解析されると、該制御命令の実行により変更された前記第1の情報群の記憶領域を前記第1の不揮発メモリに割り当て直す動的メモリ割り当て手段と
を含むことを特徴とする請求項3に記載の半導体記憶装置。 - 第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、該第1の書き込みサイズよりも大きい第2の書き込みサイズを単位として情報を書き込む第2の不揮発メモリとを有する半導体記憶装置に関する記憶制御方法であって、
前記第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域として前記第1の不揮発メモリを使用するステップと、
前記第1の書き込みサイズを超える書き込みが主要となる第2の情報群に関する記憶領域として前記第2の不揮発メモリを使用するステップと、
を含むことを特徴とする記憶制御方法。 - 第1の書き込みサイズを単位として情報を書き込む第1の不揮発メモリと、
前記第1の書き込みサイズよりも大きい第2の書き込みサイズを単位として情報を書き込む第2の不揮発メモリと、
前記第1の書き込みサイズ程度以下の書き込みが主要となる第1の情報群に関する記憶領域として前記第1の不揮発メモリを使用し、前記第1の書き込みサイズを超える書き込みが主要となる第2の情報群に関する記憶領域として前記第2の不揮発メモリを使用する記憶制御部と、
前記第2情報群として前記半導体記憶装置に記憶するためのデータを生成するデータ生成部と
を含むことを特徴とする情報機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005044461A JP2006228138A (ja) | 2005-02-21 | 2005-02-21 | 半導体記憶装置、記憶制御方法および情報機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005044461A JP2006228138A (ja) | 2005-02-21 | 2005-02-21 | 半導体記憶装置、記憶制御方法および情報機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006228138A true JP2006228138A (ja) | 2006-08-31 |
Family
ID=36989443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005044461A Withdrawn JP2006228138A (ja) | 2005-02-21 | 2005-02-21 | 半導体記憶装置、記憶制御方法および情報機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006228138A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116873A (ja) * | 2007-11-06 | 2009-05-28 | Samsung Electronics Co Ltd | ソリッドステートメモリ(ssm)、ssmを有するコンピュータシステム及びssm駆動方法 |
JP2010198470A (ja) * | 2009-02-26 | 2010-09-09 | Nikon Corp | 情報処理装置及び撮像装置 |
JP2012068862A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 半導体記憶制御装置 |
JP2012532398A (ja) * | 2009-07-06 | 2012-12-13 | マイクロン テクノロジー, インク. | データ転送管理 |
US8688895B2 (en) | 2009-02-27 | 2014-04-01 | Samsung Electronics Co., Ltd. | Memory system and data management method of flash translation layer thereof |
-
2005
- 2005-02-21 JP JP2005044461A patent/JP2006228138A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116873A (ja) * | 2007-11-06 | 2009-05-28 | Samsung Electronics Co Ltd | ソリッドステートメモリ(ssm)、ssmを有するコンピュータシステム及びssm駆動方法 |
JP2010198470A (ja) * | 2009-02-26 | 2010-09-09 | Nikon Corp | 情報処理装置及び撮像装置 |
US8688895B2 (en) | 2009-02-27 | 2014-04-01 | Samsung Electronics Co., Ltd. | Memory system and data management method of flash translation layer thereof |
JP2012532398A (ja) * | 2009-07-06 | 2012-12-13 | マイクロン テクノロジー, インク. | データ転送管理 |
US9047273B2 (en) | 2009-07-06 | 2015-06-02 | Micron Technology, Inc. | Data transfer management |
JP2012068862A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 半導体記憶制御装置 |
US8555027B2 (en) | 2010-09-22 | 2013-10-08 | Kabushiki Kaisha Toshiba | Semiconductor memory controlling device |
US9213604B2 (en) | 2010-09-22 | 2015-12-15 | Kabushiki Kaisha Toshiba | Semiconductor memory controlling device which writes data and error correction codes into different semiconductor storage drives |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7610434B2 (en) | File recording apparatus | |
KR100877448B1 (ko) | 비휘발성 기억 시스템 | |
US8977802B2 (en) | Access device, information recording device, controller, real time information recording system, access method, and program | |
US7350049B1 (en) | Method and apparatus for managing access to a file allocation table | |
KR100970523B1 (ko) | 기록 장치 및 방법, 및 컴퓨터 판독가능한 기록 매체 | |
JP2007220101A (ja) | ブロック方式のメモリにおいてデータの変更類型に応じてブロックを管理する方法および装置 | |
EP1826663A2 (en) | Apparatus, method and computer program for processing information | |
CN113590501A (zh) | 一种数据存储方法及相关设备 | |
JP4487954B2 (ja) | データ記録装置、データ記録方法、及びプログラム | |
JP2006228138A (ja) | 半導体記憶装置、記憶制御方法および情報機器 | |
WO2011121870A1 (ja) | データ記録装置、及びデータ記録方法 | |
JP2005302152A (ja) | 複合型記憶装置、データ書込方法及びプログラム | |
JP2007108853A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP2009205590A (ja) | アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム | |
JP2005301885A (ja) | データ記憶媒体へのアクセス方法,情報処理装置,データ記憶媒体へのアクセスプログラム | |
JP2021033615A (ja) | 制御装置 | |
JP2006260158A (ja) | 情報処理装置、情報処理方法、プログラム | |
JP2006155461A (ja) | 情報処理装置、情報処理方法、並びにプログラム | |
JP7435470B2 (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
JP2006099648A (ja) | メモリ制御装置 | |
JP2008027108A (ja) | 記録装置、記憶媒体および記録方法、記録プログラム | |
JP2007058671A (ja) | 情報処理装置および方法、プログラム、並びに記録媒体 | |
JPH1050084A (ja) | メモリ制御装置およびメモリアクセス方法 | |
JP5685070B2 (ja) | 情報処理装置、およびプログラム | |
JP2006178632A (ja) | 情報処理装置、情報処理方法、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20080513 |