(57)【要約】【課題】メモリの書き込み時間のばらつきの影響を回避して、ファイル書き込みの完了時間を短時間に抑えることができるメモリ制御方法、メモリ制御プログラムおよび半導体集積回路装置の提供を図る。【解決手段】メモリ２に対するデータ書き込みを制御するメモリ制御方法であって、前記メモリに一時書込み領域Ｒ４を確保し、前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間（ｘ）に基づいて書き込みを行い、前記一時書込み領域Ｒ４における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う。【選択図】図１０
2015133001.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対するデータ書き込みを制御するメモリ制御方法であって、
前記メモリに一時書込み領域を確保し、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行い、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う、
ことを特徴とするメモリ制御方法。
【請求項２】
前記閾時間は、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して決定する、
ことを特徴とする請求項１に記載のメモリ制御方法。
【請求項３】
前記閾時間の決定は、
前記メモリを使用する装置に対して、前記メモリが接続されたとき、或いは、前記メモリが接続された装置の電源がオンしたときに行われる、
ことを特徴とする請求項２に記載のメモリ制御方法。
【請求項４】
前記メモリは、フラッシュメモリである、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載のメモリ制御方法。
【請求項５】
メモリに対するデータ書き込みを制御するメモリ制御プログラムであって、演算処理装置に対して、
前記メモリに一時書込み領域を確保する手順と、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行う手順と、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う手順と、を実行させる、
ことを特徴とするメモリ制御プログラム。
【請求項６】
さらに、前記演算処理装置に対して、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して前記閾時間を決定する手順を実行させる、
ことを特徴とする請求項５に記載のメモリ制御プログラム。
【請求項７】
演算処理装置と、一時記憶を行う第１メモリと、プログラムを格納する第２メモリと、データを書き込む外部メモリとのアクセスを制御するメディアアクセス装置と、を含む半導体集積回路装置であって、
前記演算処理装置は、前記メディアアクセス装置を介して、
前記外部メモリに一時書込み領域を確保し、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行い、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う、
ことを特徴とする半導体集積回路装置。
【請求項８】
前記演算処理装置は、前記メディアアクセス装置を介して、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して前記閾時間を決定する、
ことを特徴とする請求項７に記載の半導体集積回路装置。
【請求項９】
前記第１メモリは、
前記一時書き込み領域における書き込み済み個所の情報および未書き込み個所の情報を格納している、
ことを特徴とする請求項７または請求項８に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で言及する実施例は、メモリ制御方法、メモリ制御プログラムおよび半導体集積回路装置に関する。
【背景技術】
【０００２】
近年、例えば、デジタルカメラやスマートフォン等の携帯機器を始めとして、様々な電子装置にフラッシュメモリ(Flash EEPROM)が使用されている。このフラッシュメモリは、例えば、データの読み出し時間に対して消去時間に長時間を要し、また、全消去を行った後、書き込み領域に対して順に書き込みを行うメモリ(記憶媒体，二次記憶装置)である。
【０００３】
ところで、例えば、コンピュータ(ＣＰＵ)は、ＦＡＴ(File Allocation Table)ファイルシステムを使用して、メモリ上のデータをファイル／ディレクトリ単位で管理している。
【０００４】
例えば、デジタルカメラや携帯機器に使用されるＳＤカード(ＳＤメモリカード)等のフラッシュメモリでは、ＦＡＴファイルシステムが適用され、サイズが様々に異なるファイルに対して、メモリ(ＳＤカード)の領域を効率よく割り当てるようになっている。
【０００５】
従来、メモリ(記憶媒体，二次記憶装置)の管理方法、或いは、ＦＡＴファイルシステムに関連するメモリの制御技術としては、様々な提案がなされている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１８３６６号公報
【特許文献２】特開２００８−１１７４９１号公報
【特許文献３】特開２００９−２５８９２１号公報
【特許文献４】特開２００４−２１３７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述したように、デジタルカメラや携帯機器に使用されるＳＤカード等のフラッシュメモリは、ＦＡＴファイルシステムが適用され、サイズが様々に異なるファイルに対して、ＳＤカードの領域を効率よく割り当てるようになっている。
【０００８】
近年、ＳＤカード等のフラッシュメモリの記憶容量の増加は、目覚ましいものがあり、容量の不足を感じることがないほど、余裕が生じてきている。しかしながら、例えば、ＳＤカードに対する書き込み処理では、書き込み時間が短い場合と長い場合にはっきりと分かれることが多い。
【０００９】
ここで、書き込み時間が長い場合は、例えば、書き込み時間が短い場合の１００倍程度の時間がかかることもあるが、これは、書き込みの際にＳＤカード内部でフラッシュメモリの消去動作が発生するかしないかに起因すると考えられる。
【００１０】
すなわち、ＳＤカード等のフラッシュメモリでは、例えば、データ『１』からデータ『０』への書き換えはそのままできるが、データ『０』からデータ『１』への書き換えには、消去動作を行うことになる。
【００１１】
この消去動作には長時間を要するため、消去動作を行わないで書き換え処理に要した時間と、消去動作を行って書き換え処理に要した時間の間には、大きな時間差が生じることになる。このように、メモリの書き込み時間が大きくばらつくと、その影響により、ファイル書き込みの完了時間が長くなってしまう。
【課題を解決するための手段】
【００１２】
一実施形態によれば、メモリに対するデータ書き込みを制御するメモリ制御方法であって、前記メモリに一時書込み領域を確保し、前記メモリにデータを書き込むとき、前記一時書込み領域に対して閾時間に基づいて書き込みを行うメモリ制御方法が提供される。
【００１３】
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う。
【発明の効果】
【００１４】
開示のメモリ制御方法、メモリ制御プログラムおよび半導体集積回路装置は、メモリの書き込み時間のばらつきの影響を回避して、ファイル書き込みの完了時間を短時間に抑えることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、ＦＡＴファイルシステムにおけるメモリ上のデータ構造の一例を説明するための図である。
【図２】図２は、図１に示すデータ構造における１つのファイルの構成を説明するための図である。
【図３】図３は、フラッシュメモリの書き換え処理の一例(消去動作を伴わない場合)を説明するための図(その１)である。
【図４】図４は、フラッシュメモリの書き換え処理の一例(消去動作を伴わない場合)を説明するための図(その２)である。
【図５】図５は、フラッシュメモリの書き換え処理の他の例(消去動作を伴う場合)を説明するための図(その１)である。
【図６】図６は、フラッシュメモリの書き換え処理の他の例(消去動作を伴う場合)を説明するための図(その２)である。
【図７】図７は、メモリカードに対する書き込み時間を説明するための図である。
【図８】図８は、本実施例に係る半導体集積回路装置のハードウェア構成の一例を示すブロック図である。
【図９】図９は、本実施例に係る半導体集積回路装置のソフトウェア構成の一例を説明するための図である。
【図１０】図１０は、本実施例に係るメモリ制御方法が適用されるメモリ上のデータ構造例を説明するための図(その１)である。
【図１１】図１１は、本実施例に係るメモリ制御方法が適用されるメモリ上のデータ構造例を説明するための図(その２)である。
【図１２】図１２は、本実施例に係るメモリ制御プログラム(メモリ制御方法)における閾時間の決定処理の一例を説明するためのフローチャートである。
【図１３】図１３は、本実施例に係るメモリ制御プログラムにおけるデータ書き込み処理の一例を説明するためのフローチャートである。
【図１４】図１４は、本実施例に係るメモリ制御プログラムにおけるデータ参照処理の一例を説明するためのフローチャートである。
【図１５】図１５は、本実施例に係るメモリ制御プログラムにおけるデータ書き戻し処理の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１６】
まず、本実施例のメモリ制御方法、メモリ制御プログラムおよび半導体集積回路装置を詳述する前に、図１〜図７を参照して、半導体集積回路装置に適用されるメモリ(記憶媒体，二次記憶装置)におけるメモリ制御方法およびその課題を説明する。
【００１７】
例えば、フラッシュメモリ等のメモリに対して、デジタルカメラの画像データに対するメタデータを格納する場合、ＦＡＴ(File Allocation Table)ファイルシステムに基づいて、複数のメタデータを所定の書き込み領域へ順に書き込んでいる。
【００１８】
ＦＡＴファイルシステムは、例えば、コンピュータがデータを保持するために使用するもので、二次記憶装置(メモリ，記憶媒体)を管理するためのデータ構造であり、メモリ上のデータをファイル／ディレクトリ単位で管理する。
【００１９】
また、ＦＡＴファイルシステムは、例えば、サイズが様々に異なるファイルに対して、メモリの領域を効率よく割り当てることを主な目的としている。そのため、ＦＡＴファイルシステムでは、例えば、メモリを次のように管理している。
【００２０】
図１は、ＦＡＴファイルシステムにおけるメモリ上のデータ構造の一例を説明するための図であり、フラッシュメモリの一例としてのＳＤカード(ＳＤメモリカード)におけるデータ構造の一例を示す。図２は、図１に示すデータ構造における１つのファイルの構成を説明するための図である。
【００２１】
図１に示されるように、ＳＤカード上のＦＡＴファイルシステムのデータ構造(ＦＡＴパーティション)は、例えば、「ブートセクタ領域(Ｒ１)」、「ＦＡＴ領域(Ｒ２)」および「ファイル／ディレクトリ領域(Ｒ３)」の３つの領域に分割することができる。なお、これら３つの領域の他に、ルートディレクトリの情報領域(ルートディレクトリエントリ)を持つ場合もある。
【００２２】
ここで、ＳＤカード(メモリ)上のデータは、例えば、「セクタ」(一般的には、512byte)を最小単位として書き換えを行う。また、ファイル／ディレクトリ領域Ｒ３は、「クラスタ」と呼ばれるセクタより一回り大きな単位(一般的に、512byteから32KB)で管理される。
【００２３】
ファイルのデータに対しては、クラスタ単位でメモリの領域が割り当てられる。そして、クラスタをチェーンのように繋ぐことで１つのファイルデータが形成される。このクラスタのリンク構造を「クラスタチェーン」と呼ぶ。こうすることにより、メモリの領域の割り当てを、ファイルの位置関係やデータサイズに依存することなく、効率よく行うことが可能になる。
【００２４】
ここで、クラスタサイズ(クラスタのサイズ)は、セクタサイズの２n(２のｎ乗倍)の大きさとされている。また、クラスタは、セクタと同じサイズでも良いが、セクタと異なるサイズを許すことにより、柔軟な管理が可能になる。
【００２５】
なお、クラスタサイズは、小さい方がメモリの領域を無駄なく使うことができるが、大きなデータを管理する場合には、クラスタサイズが大きい方が好ましく、これらの間で最適なクラスタサイズが調整される。
【００２６】
図１において、ブートセクタ領域Ｒ１は、メモリ(記憶媒体，二次記憶装置)全体についての情報(メモリの容量、クラスタサイズ等)を保持する。ここで、ブートセクタ(ブートセクタ領域Ｒ１)は、例えば、１セクタ〜１２セクタの大きさを持つ領域である。
【００２７】
ＦＡＴ領域Ｒ２は、ファイル／ディレクトリ領域Ｒ３の各クラスタのリンク情報を格納し、例えば、１２ｂｉｔ，１６ｂｉｔまたは３２ｂｉｔの値が並んだ配列形式のデータを含み、１つのＦＡＴエントリは、１つのクラスタと一対一で対応している。
【００２８】
ＦＡＴのエントリには、「対応するクラスタに続くクラスタ番号」を示す値が格納される。なお、次に続くクラスタがない場合は、「ＥＯＣ(End Of Cluster)」を示す値が格納され、ＦＡＴのエントリに対応するクラスタが未使用の場合は「空」を示す値が格納される。
【００２９】
また、クラスタ番号は、２番から始まると決められているのに対して、ＦＡＴのエントリは、０番から始まる。そのため、０番目と１番目のＦＡＴエントリには、対応するクラスタがないので、予約領域「ＲＳＶ」を示す特別な値が設定される。
【００３０】
このように、クラスタのリンク構造は、ＦＡＴ領域Ｒ２に書かれた「次に続くクラスタ番号」で管理されるため、このＦＡＴ領域Ｒ２の値を書き換えることにより、どのクラスタ同士が繋がれているかが変化する。
【００３１】
ファイル／ディレクトリ領域Ｒ３は、ファイル中の「実データ」と、「ディレクトリエントリ」と呼ばれる管理情報を保持する。ディレクトリエントリは、例えば、ファイル名やファイルサイズといった、１つのファイルについての情報を含み、１つのファイルは、ディレクトリエントリを先頭に、クラスタ単位で繋がった実データを含む。
【００３２】
ここで、ディレクトリエントリ自身も、クラスタの中で管理され、ディレクトリエントリは、クラスタ内に複数格納することができる。また、ディレクトリエントリをデータとして持つ特殊なファイルを「ディレクトリ」と呼ぶことができる。
【００３３】
具体的に、図１に示されるように、ＦＡＴ領域Ｒ２において、例えば、０番目と１番目のＦＡＴエントリ(0)，(1)には、「ＲＳＶ」を示す特別な値が設定され、２番目のＦＡＴエントリ(3)には、「ＥＯＣ」を示す値が格納される。
【００３４】
また、ＦＡＴのエントリ(ＦＡＴ領域Ｒ２)において、例えば、クラスタ(3)，(4)，(5)，(12)には、次に続くクラスタ番号4，5，12，13を示す値が格納され、次に続くクラスタがないクラスタ(13)には、「ＥＯＣ」を示す値が格納されることになる。なお、ＦＡＴのエントリに対応するクラスタが未使用のクラスタ(6)〜(11)，(14)，(15)には、「空」を示す値が格納される。
【００３５】
さらに、図１および図２に示されるように、１つのファイル(ファイル１)は、ファイル名やファイルサイズといった情報を含むディレクトリエントリ(2)を先頭として、クラスタ(3)→(4)→(5)→(12)→(13)として繋がった実データを有する。
【００３６】
ここで、実データのサイズ(ファイルサイズ)は、５つのクラスタ(3)，(4)，(5)，(12)，(13)の合計サイズに満たないため、最後のクラスタ(13)には、約１／３程度の未使用部分(実データが格納されない部分)が含まれる。なお、クラスタ(13)の未使用部分は、クラスタ単位で管理されるため、他のファイルを格納するために使用されることはない。
【００３７】
ところで、ＳＤカード等のフラッシュメモリを使ったメモリ(記憶媒体，二次記憶装置)に対するデータ書き込みは、データ『０』とデータ『１』を自由に反転させることは難しい。すなわち、『１』を『０』に書き換えることは、ビットごとに(セクタ単位で)行うことができるが、『０』を『１』に書き換える場合は、消去ブロックと呼ばれる単位でまとめて行うようになっている。
【００３８】
このままでは、自由に『０』と『１』を反転できる磁気ディスクといった他の記憶媒体(記録メディア)と同様に扱うことができず、不便である。そのため、書込み手順が工夫され、あたかも『０』と『１』が自由に反転できるように見せる工夫がされている。
【００３９】
例えば、論理セクタと物理セクタを使う方法があり、この処理の例を図３〜図６を参照して説明する。図３および図４は、フラッシュメモリの書き換え処理の一例(消去動作を伴わない場合)を説明するための図である。
【００４０】
前述したように、ＳＤカード等のフラッシュメモリの書き換え処理として、データ『１』をデータ『０』に書き換えることは可能であるが、データ『０』をデータ『１』に書き換えるには消去動作(消去処理)を行う。
【００４１】
なお、データ『０』および『１』は便宜的なものであり、逆であってもよい。さらに、以下に説明する８ビットの書き換えデータも単なる例であり、様々な場合があり得るのはいうまでもない。
【００４２】
図３(a)は、初期状態を示し、図３(b)は、１番目のセクタをデータ『１０１０１０１０』に書き換える場合を示し、そして、図３(c)は、２番目のセクタをデータ『１１００１１００』に書き換える場合を示す。
【００４３】
また、図４(a)は、１番目のセクタをデータ『１１１１００００』に書き換える場合を示し、図４(b)は、１番目のセクタをデータ『１１１１１１００』に書き換える場合を示す。
【００４４】
まず、図３(a)に示されるように、初期状態では、例えば、全ての物理セクタは、『１１１１１１１１』(消去状態)とされている。
【００４５】
次に、図３(b)に示されるように、１番目のセクタ(論理セクタ)をデータ『１０１０１０１０』に書き換える場合、『１１１１１１１１』となっている１番目の物理セクタにおいて、上位から２，４，６，８ビット目のデータを『０』に書き換える。この場合、消去動作は不要なため、短時間で書き換え処理を完了することができる。
【００４６】
また、図３(c)に示されるように、２番目のセクタをデータ『１１００１１００』に書き換える場合、『１１１１１１１１』となっている２番目の物理セクタにおいて、上位から２，４，７，８ビット目のデータを『０』に書き換える。この場合も、消去動作は不要なため、短時間で書き換え処理を完了することができる。
【００４７】
さらに、図４(a)に示されるように、１番目のセクタをデータ『１１１１００００』に書き換える場合、図３(b)を参照して説明したように、１番目の物理セクタには、データ『１０１０１０１０』が書き込まれており、１番目の物理セクタは更新不可となる。
【００４８】
そこで、例えば、空いている(初期状態のまま『１１１１１１１１』となっている)５番目の物理セクタに対して、データ『１１１１００００』を書き込む。すなわち、上位から１〜４ビットのデータを『０』に書き換える。そして、１番目の論理セクタに対応する物理セクタを、５番目の物理セクタとする。
【００４９】
これにより、ユーザからは、１番目のセクタが『１０１０１０１０』から『１１１１００００』に書き換えられたようにみえる。この場合も、消去動作は不要なため、短時間で書き換え処理を完了することができる。
【００５０】
これに対して、図４(b)に示されるように、１番目のセクタをデータ『１１１１１１００』に書き換える場合、例えば、空いている(『１１１１１１１１』となっている)物理セクタが無いと、消去動作を実行した後に、改めて書き込み(書き換え)処理を行う。この場合、消去動作を行うことになるため、書き換え処理に長時間を要することになる。
【００５１】
図５および図６は、フラッシュメモリの書き換え処理の他の例(消去動作を伴う場合)を説明するための図である。図５(a)は、消去動作の開始状態を示し、図５(b)は、消去対象の物理セクタＡのうち、有効なデータを全て置換用の物理セクタＢにコピーする様子を示す。
【００５２】
また、図６(a)は、物理セクタＡと物理セクタＢの役割を入れ替え、物理セクタＢを新たなデータ用セクタとし、物理セクタＡを新たな置換用セクタとする様子を示し、図６(b)は、物理セクタＡを消去する様子を示す。
【００５３】
なお、図５(a)，図５(b)および図６(a)，図６(b)では、１つのデータ用セクタに対して１つの置換用セクタを設けているが、例えば、複数(例えば、１０個程度)のデータ用セクタに対して１つの置換用セクタを設けるようにしてもよい。
【００５４】
まず、図５(a)に示されるように、消去動作の開始状態は、例えば、図４(b)を参照して説明した、空いている物理セクタが無いときに対応する。このとき、データ用の物理セクタＡに対応する置換用の物理セクタＢを用意しておく。ここで、置換用の物理セクタＢは、全てのセクタが『１１１１１１１１』(消去状態)とされている。
【００５５】
次に、図５(b)に示されるように、消去対象の物理セクタＡのうち、有効なデータが書き込まれている２番目，４番目，７番目および８番目のセクタのデータを、置換用の物理セクタ８の２番目，４番目，７番目および８番目のセクタに書き込む。
【００５６】
さらに、図６(a)に示されるように、物理セクタＡと物理セクタＢの役割を入れ替え、物理セクタＢを新たなデータ用セクタとし、物理セクタＡを新たな置換用セクタとする。
【００５７】
これにより、データ用の物理セクタＢにおいて、２番目，４番目，７番目および８番目のセクタには、有効なデータが書き込まれていることになるが、１番目，３番目，５番目および６番目のセクタは、空きの状態になる。
【００５８】
従って、データ用の物理セクタＢにおける空き(『１１１１１１１１』)となっている１番目，３番目，５番目および６番目のセクタは、書き換えが可能になる。
【００５９】
そして、図６(b)に示されるように、置換用の物理セクタＡを消去して、全てのセクタを『１１１１１１１１』として、次に、データ用の物理セクタＢにおいて、空いている物理セクタが無いときに備える。
【００６０】
このように、例えば、図５(a)の空いている物理セクタが無いときには、図５(b)，図６(a)および図６(b)を参照して説明した処理を行い、データ用の物理セクタＢの空いているセクタに書き換えを行うことになる。
【００６１】
そのため、例えば、ＳＤカード等のメモリカード(フラッシュメモリ)に対する書き込みを行うとき、消去動作が不要な場合と消去動作を行った場合で、書き込み時間に大きな差(ばらつき)が生じることになる。
【００６２】
図７は、メモリカードに対する書き込み時間を説明するための図であり、ＳＤカードに一定サイズの小さなデータを繰り返し書き込む場合、その書き込みに要する時間を示すものである。なお、ＳＤカードに書き込むデータサイズは、全て１セクタの固定サイズとされている。
【００６３】
図７に示されるように、例えば、ＳＤカードに対する書き込み処理は、１回目〜５回目および７回目では数ｍｓ程度なのに対して、６回目では数百ｍｓになっている。
【００６４】
これは、６回目の書き込み処理において、上述した消去動作を行ったためであり、その書き込み処理に要する時間は、消去動作が不要な１回目〜５回目および７回目の処理時間の１００倍程度に達していることが分かる。
【００６５】
このように、ＳＤカード等のフラッシュメモリでは、書き込み時間に大きなばらつきがあるため、ファイル書き込みの完了時間(レスポンス)が長くなってしまう。すなわち、ＳＤカード等のメモリにデータを書き込む際、できる限り速く書き込みが完了するのが望ましい。特に、近年では、動画データを中心に大きなサイズのデータを書き込む処理が望まれている。
【００６６】
これに対して、メモリ側も速度を上げる工夫が多く施されており、近年の高速ＳＤカードでは、データ量の多いＨＤ(High Definition)動画等もコマ落ちすることなく記録できるようになっている。
【００６７】
しかしながら、向上が著しいのは、動画等の一定サイズのデータを連続して書き込む速度(書き込み転送速度)であり、例えば、メタデータ等の小さなデータを書き込む場合の書き込み完了時間(レスポンス)は必ずしも短くなっているとは限らない。
【００６８】
例えば、書込み転送速度が２０ＭＢ／ｓのメモリの場合、２０ＭＢのデータを１秒で書き込むことはできるが、１ＫＢのデータを５０μ秒(２万分の１秒)で書き込むことは困難である。実際には、１ＫＢのような小さなデータの書き込み時間は、通常、数ｍｓ程度である。
【００６９】
しかしながら、前述したように、この書き込み時間はばらつきが大きく、時には、数百ｍｓに達することがある。これは、ＳＤカード等、近年、幅広く使われているフラッシュメモリを使った記憶媒体において発生する現象であり、書き込み時にフラッシュメモリの消去動作が入ることによるものと考えられる。
【００７０】
ここで、記憶媒体(ＳＤカード等のフラッシュメモリ)にファイルを書き込む際には、実際のファイルデータだけでなく、ファイルシステムが持つ小さな管理データを多く書き込むことになる。
【００７１】
そのため、前述したように、小さなデータの書き込み完了時間が長い場合、たとえデータサイズの小さいファイルでも、１つのファイルを書き込む時間はとても長くなってしまう。これは、例えば、写真の連写等、多数のファイルを次々に書き込むような処理は不得意であることを意味する。
【００７２】
この書き込み処理に要する時間が長くなるのは、例えば、データ用の物理セクタに空きが無くなった場合に生じるため、そのタイミング(時間のばらつき)を制御するのが困難であり、例えば、デジタルカメラの動画撮影等においてコマ落ちを招く虞がある。
【００７３】
以下、本実施例のメモリ制御方法、メモリ制御プログラムおよび半導体集積回路装置を、添付図面を参照して詳述する。
【００７４】
図８は、本実施例に係る半導体集積回路装置のハードウェア構成の一例を示すブロック図であり、デジタルカメラの構成例を示すものである。
【００７５】
図８に示されるように、デジタルカメラ１は、例えば、バス１７を介して接続されたメディアアクセス装置１１，ＣＰＵ(演算処理装置)１２，ＲＡＭ(第１メモリ)１３，ＲＯＭ(第２メモリ)１４，表示部１５および入力部１６を含む。
【００７６】
メディアアクセス装置１１は、図示しないコネクタ(カードスロット)を介して、例えば、ＳＤカード等のフラッシュメモリ(記憶媒体，二次記憶装置：外部メモリ)２に接続され、例えば、撮影した画像データおよび管理データ等をメモリ(ＳＤカード)２に格納する。
【００７７】
表示部１５は、例えば、撮影時の画像や撮影済みの画像を表示し、或いは、各種設定内容を表示するための液晶表示装置を示し、また、入力部１６は、撮影条件の設定やシャッタおよび各種センサからの入力を示す。
【００７８】
ここで、メディアアクセス装置１１，ＣＰＵ１２，ＲＡＭ１３，ＲＯＭ１４およびバス１７は、例えば、一体化して１つの半導体集積回路装置(ＬＳＩ)を形成することができる。
【００７９】
なお、後述する本実施例のメモリ制御プログラムは、例えば、半導体集積回路装置におけるＲＯＭ１４に格納され、ＣＰＵ１２に各種処理を実行させることで、例えば、メディアアクセス装置１１を介してＳＤカード等のメモリ２を制御する。
【００８０】
また、ＲＯＭ１４は、例えば、書き換えが可能な不揮発性メモリであるフラッシュメモリやＭＲＡＭ(磁気抵抗ＲＡＭ)やＦeＲＡＭ(強誘電体ＲＡＭ)等であってもよく、また、ＲＡＭ１３もＭＲＡＭやＦeＲＡＭ等であってもよい。
【００８１】
図９は、本実施例に係る半導体集積回路装置のソフトウェア構成の一例を説明するための図である。図９に示されるように、半導体集積回路装置におけるソフトウェア３０は、例えば、デジタルカメラのアプリケーション３１、ファイルシステム(本実施例によるＦＡＴファイルシステム)３２およびメディアドライバ３３を含む。
【００８２】
ここで、メディアドライバ３３は、メモリ(ＳＤカード等のフラッシュメモリ)２をアクセスするメディアアクセス装置１１を駆動制御する。なお、本実施例が適用されるメモリ２は、ＳＤカードに限定されるものではなく、さらに、フラッシュメモリに限定されるものでもない。
【００８３】
ただし、本実施例が適用されるメモリ２としては、例えば、データ『１』を『０』に書き換えることはビットごとに(セクタ単位で)行うことができるが、データ『０』を『１』に書き換える場合は所定の単位でまとめて消去動作を行うものが好ましい。さらに、本実施例は、消去動作に要する時間が、データの書き換え(『１』を『０』に書き換え)処理に要する時間よりも十分に長いメモリ２に対して適用されるのが好ましい。
【００８４】
本実施例では、一時書込み領域Ｒ４の予約、閾時間の決定、一時書込み領域Ｒ４への書き込み、一時書込み領域Ｒ４への書き込みの再試行、並びに、一時書込み領域Ｒ４からの書き戻しを行う。
【００８５】
まず、図１０および図１１を参照して、一時書込み領域Ｒ４の予約について説明する。図１０および図１１は、本実施例に係るメモリ制御方法が適用されるメモリ上のデータ構造例を説明するための図である。
【００８６】
図１０と前述した図１の比較から明らかなように、本実施例に係るメモリ制御方法が適用されるメモリ２上のデータ構造は、図１を参照して説明したＦＡＴファイルシステムにおけるメモリ上のデータ構造に対して、「一時書き込み領域(Ｒ４)」が追加されている。ここで、一時書き込み領域Ｒ４は、例えば、ファイル／ディレクトリ領域Ｒ３と同様に、クラスタ単位で管理される。
【００８７】
なお、図１０において、一時書き込み領域Ｒ４は、ファイル／ディレクトリ領域Ｒ３の外側に(Ｒ３とは別に)確保されているが、ファイル／ディレクトリ領域Ｒ３に含めることもできる。この場合は、特別なファイルを用意して、そのファイルの実データを一時書込み領域Ｒ４として使用する。
【００８８】
具体的に、メモリ２が３２ＧＢの容量を持つフラッシュメモリの場合、例えば、半分の１６ＧＢをブートセクタ領域Ｒ１、ＦＡＴ領域Ｒ２およびファイル／ディレクトリ領域Ｒ３としてフォーマットし、残りの１６ＧＢを一時書き込み領域Ｒ４とすることができる。
【００８９】
或いは、例えば、全体の３２ＧＢをブートセクタ領域Ｒ１、ＦＡＴ領域Ｒ２およびファイル／ディレクトリ領域Ｒ３としてフォーマットし、ファイル／ディレクトリ領域Ｒ３の中に一時書き込み領域Ｒ４を設けることもできる。
【００９０】
図１１に示されるように、例えば、一時書き込み領域Ｒ４を管理するために、半導体集積回路装置におけるＲＡＭ１３上に、書き込み済みクラスタ(個所の)情報１３１および未書き込みクラスタ(個所の)情報１３２を格納するようになっている。
【００９１】
ここで、書き込み済みクラスタ情報１３１は、例えば、初期状態(消去状態)で『１１１１１１１１』となっているクラスタにデータ(『０』)を書き込み、書き込みが済んだクラスタ番号の情報である。また、未書き込みクラスタ情報１３２は、データ(『０』)が未だ書き込まれていない『１１１１１１１１』となっているクラスタに番号の情報である。
【００９２】
なお、書き込み済みクラスタ情報１３１および未書き込みクラスタ情報１３２のそれぞれにおけるクラスタ番号の初期値は、一時書込み領域Ｒ４の中で一番小さなクラスタ番号が設定されている。
【００９３】
そして、一時書込み領域Ｒ４に書き込みを行うたびに、未書き込みクラスタ情報１３２のクラスタ番号を１つ進めるようになっている。また、一時書込み領域Ｒ４からファイル／ディレクトリ領域Ｒ３へ書き戻すたびに、書き込み済みクラスタ情報１３１のクラスタ番号を１つ進めるようになっている。
【００９４】
このように、メモリ(ＳＤカード)の一部を、一時書込み領域Ｒ４として予約しておく。なお、一時書込み領域Ｒ４の獲得は、様々な手法が可能であり、特に、規定されるものではない。ただし、後に、詳述するように、一時書込み領域Ｒ４は、閾時間を超えた場合に再試行(再書き込み処理)を行うことになるため、十分に広い領域を確保するのが好ましい。
【００９５】
図１１では、例えば、一時書込み領域Ｒ４のクラスタＲ40，Ｒ41に一時書き込みされたデータは、後に、図１５を参照して説明するデータ書き戻し処理が行われて、本来のファイル／ディレクトリ領域Ｒ３におけるクラスタＲ3k，Ｒ3k+1に書き戻された様子を示す。
【００９６】
また、図１１において、例えば、一時書込み領域Ｒ４のクラスタＲ43およびＲ45は、後に、図１３を参照して説明する一時書込み領域Ｒ４への書き込みが、閾時間ｘが経過するまでに完了してデータが書き込まれた個所を示す。ただし、ファイル／ディレクトリ領域Ｒ３へのデータ書き戻し処理は、未だ行われていない。
【００９７】
さらに、図１１において、例えば、一時書込み領域Ｒ４のクラスタＲ42およびＲ44は、後に、図１３を参照して説明する一時書込み領域Ｒ４への書き込みが、閾時間ｘを経過しても完了せずに書き込みがキャンセルされた個所を示す。
【００９８】
次に、図１２を参照して、閾時間の決定について説明する。図１２は、本実施例に係るメモリ制御プログラム(メモリ制御方法)における閾時間の決定処理の一例を説明するためのフローチャートである。
【００９９】
閾時間の決定処理は、例えば、メモリ(ＳＤカード)を使用開始する際に、書き込み試行を複数回行って書き込み時間のばらつきを分析し、書き込み時間が短い場合と長い場合を区別するための閾時間(ｘ)を決めるものである。
【０１００】
なお、この閾時間の決定処理は、例えば、デジタルカメラのカードスロットにＳＤカード２が差し込まれたとき、或いは、予めＳＤカード２が差し込まれているデジタルカメラの電源をオンしたとき等のＳＤカード２を使用する初期化処理として行われる。
【０１０１】
すなわち、閾時間ｘの決定は、メモリ２を使用する装置に対して、そのメモリ２が接続されたとき、或いは、メモリ２が接続された装置の電源がオンしたときに行うことができる。
【０１０２】
図１２に示されるように、閾時間の決定処理が開始すると、ステップＳＴ１１において、「一時書込み領域Ｒ４」に対して、ｎ回(例えば、１００回程度)データを書き込み、書き込んだ際に、書き込みにかかった時間をＲＡＭ１３に記録する。ここで、一時書込み領域Ｒ４にｎ回データを書き込むのは、全て異なるクラスタを対象として書き込み処理を行う。
【０１０３】
さらに、ステップＳＴ１２に進んで、ｎ回の書き込みにかかった時間のうち、中間値(例えば、５０番目の値)をｘとし、さらに、ステップＳＴ１３に進んで、ｘを少し増加させる(例えば、１．１倍する)。
【０１０４】
すなわち、図７を参照して説明したように、例えば、消去動作を行うことにより書き込みに要する時間が長時間になるのは、例えば、１００回のデータを書き込み時間のうちの５０番目(中間)のものよりも長いと考えられる。そこで、小さい値(短い閾時間)ｘから始めて、少しずつ増加(１．１倍)するようにしている。
【０１０５】
そして、ステップＳＴ１４に進んで、ｎ回の各書き込みのうち、ｘより時間がかかった場合の回数をｎ-slowとし、さらに、ステップＳＴ１５に進んで、ｎ-slowが一定値(例えば、ｎ×０．１)を下回ったかどうかを判定する。
【０１０６】
ステップＳＴ１５において、ｎ-slowが一定値を下回っていない(ｎ-slow≧ｎ×０．１)と判定すると、ステップＳＴ１３に戻って、上述したステップＳＴ１３〜ＳＴ１５の処理を繰り返す。
【０１０７】
一方、ステップＳＴ１５において、ｎ-slowが一定値を下回った(ｎ-slow＜ｎ×０．１)と判定すると、ステップＳＴ１６に進んで、ｘを閾時間として、閾時間の決定処理を終了する。
【０１０８】
具体的に、例えば、ｎ＝１００のとき、ｎ-slowが１０を下回った、すなわち、消去動作を行うことにより書き込みに要する時間が長時間になるのは、１００回のうち１０回に満たないとして、その時の閾時間ｘを決定する。なお、決定された閾時間ｘは、例えば、デジタルカメラがオンしている間中、保持されることになる。
【０１０９】
ここで、閾時間ｘは、小さな値(短い時間)の方が書き込みの再試行のコストが小さくなるが、小さくしすぎると、「速く書き込みが終了する場合」を誤判定することになり、書き込み時間が長くなってしまう。
【０１１０】
逆に、閾時間ｘは、大きな値(長い時間)の方が書き込みの再試行のコストが大きくなるが、大きくしすぎると、本実施例を適用する効果が薄れてしまう。そのため、「速く書き込みが終了する場合」をできるだけ誤判定しない範囲で、閾時間ｘを小さな値に決定するのが好ましい。
【０１１１】
なお、図１２に示す各処理において、ｎ＝１００、１．１倍、および、ｎ×０．１等は単なる例であり、様々な値に設定することができる。さらに、閾時間ｘの決定処理は、図１２を参照して説明したものに限定されないのはもちろんである。
【０１１２】
図１３を参照して、一時書込み領域Ｒ４への書き込み、および、一時書込み領域Ｒ４への書き込みの再試行(再書き込み処理)について説明するについて説明する。図１３は、本実施例に係るメモリ制御プログラムにおけるデータ書き込み処理の一例を説明するためのフローチャートである。
【０１１３】
一時書込み領域Ｒ４への書き込み処理は、例えば、メタデータの書き込みを行う際に、直接対象の領域に書き込みを行うのではなく、一旦、一時書込み領域Ｒ４に対して書き込みを行う。
【０１１４】
また、一時書込み領域Ｒ４への書き込みの再試行は、一時書込み領域Ｒ４に書き込みを行う際、決められた閾時間(ｘ)を過ぎても書き込みが終了しなかった場合、その書き込みをキャンセルして、一時書込み領域Ｒ４の別の場所(クラスタ)に改めて書き込みを行う。これを、閾時間ｘ以内で書き込みが完了する場所が見つかるまで繰り返す。
【０１１５】
図１３に示されるように、データ書き込み処理が開始すると、ステップＳＴ２１において、一時書込み領域Ｒ４における「未書き込みクラスタ」へデータを書き込んで、ステップＳＴ２２に進み、書き込みが完了かどうかを判定する。
【０１１６】
ステップＳＴ２２において、書き込みが完了したと判定すると、データ書き込み処理を終了し、書き込みが完了していないと判定すると、ステップＳＴ２３に進んで、閾時間ｘを経過したかどうかを判定する。ここで、ステップＳＴ２２において、一時書込み領域Ｒ４における書き込みが完了したと判定した個所(クラスタ)は、例えば、図１１におけるクラスタＲ43，Ｒ45に対応する。
【０１１７】
ステップＳＴ２３において、閾時間ｘを経過したと判定すると、ステップＳＴ２４に進んで、書き込みをキャンセルしてステップＳＴ２５に進む。具体的に、例えば、ＳＤかーどの場合には、コマンドＣＭＤ１２を発行して、書き込みをキャンセルする。ここで、ステップＳＴ２４において、書き込みをキャンセルした個所は、例えば、図１１におけるクラスタＲ42，Ｒ44に対応する。
【０１１８】
ステップＳＴ２５では、一時書込み領域Ｒ４における「未書き込みクラスタ」を１つ進めて、ステップＳＴ２１に戻り、同様の処理を繰り返す。また、ステップＳＴ２３において、閾時間ｘを経過していないと判定すると、ステップＳＴ２２に戻り、同様の処理を繰り返す。
【０１１９】
図１４は、本実施例に係るメモリ制御プログラムにおけるデータ参照処理の一例を説明するためのフローチャートである。ここで、データ参照処理は、例えば、デジタルカメラにおいて、ＳＤカード２に格納された画像データを、表示部１５に表示する、或いは、デジタルカメラが接続されたパーソナルコンピュータやテレビ受像機等に転送する場合の処理に相当する。
【０１２０】
図１４に示されるように、データ参照処理が開始すると、ステップＳＴ３１において、「現在のクラスタ」を「書き込み済みクラスタ」に設定し、ステップＳＴ３２に進んで、「現在のクラスタ」に参照対象クラスタのデータがあるかどうかを判定する。
【０１２１】
ステップＳＴ３２において、「現在のクラスタ」に参照対象クラスタのデータがあると判定すると、ステップＳＴ３３に進んで、一時領域からデータを読み出して、処理を終了する。
【０１２２】
一方、ステップＳＴ３２において、「現在のクラスタ」に参照対象クラスタのデータがないと判定すると、ステップＳＴ３４において「現在のクラスタ」を１つ進め、ステップＳＴ３５に進んで、「現在のクラスタ」が「未書き込みクラスタ」かどうかを判定する。
【０１２３】
ステップＳＴ３５において、「現在のクラスタ」が「未書き込みクラスタ」であると判定すると、ステップＳＴ３６に進んで、参照対象クラスタからデータを読み出して、処理を終了する。なお、ステップＳＴ３５において、「現在のクラスタ」が「未書き込みクラスタ」ではないと判定すると、ステップＳＴ３２に戻って同様の処理を繰り返す。
【０１２４】
図１５を参照して、一時書込み領域Ｒ４からの書き戻しについて説明する。図１５は、本実施例に係るメモリ制御プログラムにおけるデータ書き戻し処理の一例を説明するためのフローチャートである。
【０１２５】
一時書込み領域Ｒ４からの書き戻し処理は、一時書込み領域Ｒ４への書き込みが完了した後、本来の書き込み対象領域へデータを書き戻す。一旦、一時書込み領域Ｒ４への書き込みが完了すれば、たとえ電源が落ちても書き込んだデータが保持されているので、データの書き戻し処理は、急いで行わなくてもよい。
【０１２６】
図１５に示されるように、データ書き戻し処理が開始すると、ステップＳＴ４１において、「書き込み済みクラスタ」に有効なデータがあるかどうかを判定、すなわち、ＲＡＭ１３に格納された書き込み済みクラスタ情報１３１を参照して判定を行う。
【０１２７】
ステップＳＴ４１において、有効なデータがあると判定すると、ステップＳＴ４２に進んで、「書き込み済みクラスタ」のデータを本来のクラスタへコピーしてステップＳＴ４３に進む。
【０１２８】
ここで、ステップＳＴ４２におけるデータのコピー処理は、例えば、図１１における一時書込み領域Ｒ４のクラスタＲ40，Ｒ41に一時書き込みされたデータを、本来のファイル／ディレクトリ領域Ｒ３におけるクラスタＲ3k，Ｒ3k+1に書き戻す処理に対応する。
【０１２９】
なお、ステップＳＴ４１において、「書き込み済みクラスタ」に有効なデータがないと判定すると、直接、ステップＳＴ４３に進む。ステップＳＴ４３では、「書き込み済みクラスタ」をクリアし、さらに、ステップＳＴ４４に進んで、「書き込み済みクラスタ」を１つ進めて、ステップＳＴ４５において、「書き込み済みクラスタ」が「未書き込みクラスタ」であるかどうかを判定する。
【０１３０】
ここで、「書き込み済みクラスタ」が「未書き込みクラスタ」であるかどうかの判定は、ＲＡＭ１３に格納された書き込み済みクラスタ情報１３１および未書き込みクラスタ１３２を参照して行う。
【０１３１】
ステップＳＴ４５において、「書き込み済みクラスタ」が「未書き込みクラスタ」であると判定すると、データ書き戻し処理を終了し、「書き込み済みクラスタ」が「未書き込みクラスタ」ではないと判定すると、ステップＳＴ４１に戻って同様の処理を繰り返す。
【０１３２】
このように、一時書込み領域Ｒ４への書き込みが完了した後、一時書込み領域Ｒ４へ書き込んだデータを本来の領域へ書き戻すようになっている。
【０１３３】
このように、本実施例によれば、例えば、ＳＤカード等のフラッシュメモリを使った二次記憶装置(記憶媒体，メモリ)に対する書き込み時間のばらつきの影響を回避して、ファイル書き込みの完了時間を短く抑えることができる。これにより、例えば、デジタルカメラによる写真の連続撮影等において、多数のファイルを次々に書き込む処理を高速に行うことが可能になる。
【０１３４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【０１３５】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
メモリに対するデータ書き込みを制御するメモリ制御方法であって、
前記メモリに一時書込み領域を確保し、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行い、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う、
ことを特徴とするメモリ制御方法。
【０１３６】
（付記２）
前記閾時間は、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して決定する、
ことを特徴とする付記１に記載のメモリ制御方法。
【０１３７】
（付記３）
前記閾時間の決定は、
前記メモリを使用する初期化処理として行われる、
ことを特徴とする付記２に記載のメモリ制御方法。
【０１３８】
（付記４）
前記閾時間の決定は、
前記メモリを使用する装置に対して、前記メモリが接続されたとき、或いは、前記メモリが接続された装置の電源がオンしたときに行われる、
ことを特徴とする付記２または付記３に記載のメモリ制御方法。
【０１３９】
（付記５）
前記一時書込み領域は、
前記メモリに設けられたファイル／ディレクトリ領域とは別に、確保される、
ことを特徴とする付記１乃至付記４のいずれか１項に記載のメモリ制御方法。
【０１４０】
（付記６）
前記一時書込み領域は、
前記メモリに設けられたファイル／ディレクトリ領域に含まれる、
ことを特徴とする付記１乃至付記４のいずれか１項に記載のメモリ制御方法。
【０１４１】
（付記７）
前記一時書込み領域に書き込まれたデータは、
前記メモリに設けられたファイル／ディレクトリ領域に書き戻される、
ことを特徴とする付記１乃至付記６のいずれか１項に記載のメモリ制御方法。
【０１４２】
（付記８）
前記メモリは、
データの読み出し時間に対して、消去時間に長時間を要し、
第１データから第２データへの書き換えには、消去動作が行われる記憶媒体である、
ことを特徴とする付記１乃至付記７のいずれか１項に記載のメモリ制御方法。
【０１４３】
（付記９）
前記メモリは、フラッシュメモリである、
ことを特徴とする付記１乃至付記８のいずれか１項に記載のメモリ制御方法。
【０１４４】
（付記１０）
前記メモリは、ＳＤカードである、
ことを特徴とする付記９に記載のメモリ制御方法。
【０１４５】
（付記１１）
メモリに対するデータ書き込みを制御するメモリ制御プログラムであって、演算処理装置に対して、
前記メモリに一時書込み領域を確保する手順と、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行う手順と、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う手順と、を実行させる、
ことを特徴とするメモリ制御プログラム。
【０１４６】
（付記１２）
さらに、前記演算処理装置に対して、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して前記閾時間を決定する手順を実行させる、
ことを特徴とする付記１１に記載のメモリ制御プログラム。
【０１４７】
（付記１３）
演算処理装置と、一時記憶を行う第１メモリと、プログラムを格納する第２メモリと、データを書き込む外部メモリとのアクセスを制御するメディアアクセス装置と、を含む半導体集積回路装置であって、
前記演算処理装置は、前記メディアアクセス装置を介して、
前記外部メモリに一時書込み領域を確保し、
前記メモリにデータを書き込むとき、前記一時書込み領域に対して、閾時間に基づいて書き込みを行い、
前記一時書込み領域における第１個所への書き込みが、前記閾時間が経過するまでに完了しない場合には、前記第１個所への書き込みをキャンセルして、前記一時書込み領域における、前記第１個所とは異なる第２個所への書き込みを行う、
ことを特徴とする半導体集積回路装置。
【０１４８】
（付記１４）
前記演算処理装置は、前記メディアアクセス装置を介して、
前記一時書込み領域に対する書き込み試行を複数回行い、書き込み時間のばらつきを分析して前記閾時間を決定する、
ことを特徴とする付記１３に記載の半導体集積回路装置。
【０１４９】
（付記１５）
前記第１メモリは、
前記一時書き込み領域における書き込み済み個所の情報および未書き込み個所の情報を格納している、
ことを特徴とする付記１３または付記１４に記載の半導体集積回路装置。
【符号の説明】
【０１５０】
１    デジタルカメラ
２    ＳＤカード(記憶媒体，二次記憶装置：外部メモリ)
１１    メディアアクセス装置
１２    ＣＰＵ(演算処理装置)
１３    ＲＡＭ(第１メモリ)
１４    ＲＯＭ(第２メモリ)
１５    表示部
１６    入力部
１７    バス
１３１    書き込み済みクラスタ情報(書き込み済み個所の情報)
１３２    未書き込みクラスタ情報(未書き込み個所の情報)
Ｒ１    ブートセクタ領域
Ｒ２    ＦＡＴ領域
Ｒ３    ファイル／ディレクトリ領域
Ｒ４    一時書込み領域
【図１】
2015133001.tif 000003
【図２】
2015133001.tif 000004
【図３】
2015133001.tif 000005
【図４】
2015133001.tif 000006
【図５】
2015133001.tif 000007
【図６】
2015133001.tif 000008
【図７】
2015133001.tif 000009
【図８】
2015133001.tif 000010
【図９】
2015133001.tif 000011
【図１０】
2015133001.tif 000012
【図１１】
2015133001.tif 000013
【図１２】
2015133001.tif 000014
【図１３】
2015133001.tif 000015
【図１４】
2015133001.tif 000016
【図１５】
2015133001.tif 000017