(57)【要約】【課題】複数ファイルの同時書き込みが行われた際に、キャッシュミスによる性能劣化をより防ぐことが出来る情報記録装置及び情報記録方法を提供する。【解決手段】外部からの書き込み要求に対応して書き込みをする複数のキャッシュバッファと、前記複数のキャッシュバッファのいずれに書き込みをするかＬＲＵ（Least Recently Used）アルゴリズムを用いて判定する制御部とを備え、前記制御部は、書き込み要求がいずれの前記複数のキャッシュバッファのキャッシュ範囲とも重なっていない場合には、ある前記キャッシュバッファの有効範囲がキャッシュ範囲の終端近くに到達している場合はＬＲＵアルゴリズムによる候補となる前記キャッシュバッファを使用することに替えて、有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファを優先的に使用する情報記録装置。【選択図】  図４
2011113129.tif 000002
【特許請求の範囲】
【請求項１】
外部からの書き込み要求に対応して書き込みをする複数のキャッシュバッファと、
前記複数のキャッシュバッファのいずれに書き込みをするかＬＲＵ（Least Recently Used）アルゴリズムを用いて判定する制御部とを備え、
前記制御部は、書き込み要求がいずれの前記複数のキャッシュバッファのキャッシュ範囲とも重なっていない場合には、ある前記キャッシュバッファの有効範囲がキャッシュ範囲の終端に到達している場合はＬＲＵアルゴリズムによる候補となる前記キャッシュバッファを使用することに替えて、有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファを優先的に使用する情報記録装置。
【請求項２】
外部からの書き込み要求に対応して書き込みをする複数のキャッシュバッファと、
前記複数のキャッシュバッファのいずれに書き込みをするかＬＲＵ（Least Recently Used）アルゴリズムを用いて判定する制御部とを備え、
前記制御部は、書き込み要求がいずれの前記複数のキャッシュバッファのキャッシュ範囲とも重なっていない場合には、ある前記キャッシュバッファの有効範囲がキャッシュ範囲の終端近くに到達している場合はＬＲＵアルゴリズムによる候補となる前記キャッシュバッファを使用することに替えて、有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファを優先的に使用する情報記録装置。
【請求項３】
前記制御部は、書き込み要求がいずれかの前記複数のキャッシュバッファのキャッシュ範囲と重なっている場合には、ライトバックを行わず、このキャッシュバッファ内の有効範囲と書き込み要求部分との間の領域をリードすることを特徴とする請求項１または２に記載の情報記録装置。
【請求項４】
外部からの書き込み要求に対応して書き込みをする複数のキャッシュバッファと、前記複数のキャッシュバッファのいずれに書き込みをするかＬＲＵ（Least Recently Used）アルゴリズムを用いて判定する制御部とを備えた情報記録装置における情報記録方法であって、
前記制御部は、書き込み要求がいずれの前記複数のキャッシュバッファのキャッシュ範囲とも重なっていない場合には、ある前記キャッシュバッファの有効範囲がキャッシュ範囲の終端又は終端近くに到達している場合はＬＲＵアルゴリズムによる候補となる前記キャッシュバッファを使用することに替えて、有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファを優先的に使用する情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報記録装置及び情報記録方法に係わり、特に記録デバイスのキャッシュ方法に関する。
【背景技術】
【０００２】
ＳＤカードに代表される不揮発性フラッシュメモリには、データ書き込みに有利な単位が存在し、そのデータ単位未満のアクセスを繰り返すと性能が劣化するという特徴がある。そこで、ＳＤホストコントローラドライバやファイルシステムでは書き込みデータ単位を大きくするために、書き込みのキャッシュを行う。しかしながら例えば特許文献１に記載されている記録デバイスのキャッシュ方法及びデータ記録装置では、ライトバックが無作為なため、キャッシュヒット率が犠牲となっているという問題があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３２２０７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、複数ファイルの同時書き込みが行われた際に、キャッシュミスによる性能劣化をより防ぐことが出来る技術を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明の情報記録装置は、外部からの書き込み要求に対応して書き込みをする複数のキャッシュバッファと、前記複数のキャッシュバッファのいずれに書き込みをするかＬＲＵ（Least Recently Used）アルゴリズムを用いて判定する制御部とを備え、前記制御部は、書き込み要求がいずれの前記複数のキャッシュバッファのキャッシュ範囲とも重なっていない場合には、ある前記キャッシュバッファの有効範囲がキャッシュ範囲の終端近くに到達している場合はＬＲＵアルゴリズムによる候補となる前記キャッシュバッファを使用することに替えて、有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファを優先的に使用する。
【発明の効果】
【０００６】
本発明によれば、複数ファイルの同時書き込みが行われた際に、キャッシュミスによる性能劣化をより防ぐことが出来る情報記録装置及び情報記録方法が得られる。
【図面の簡単な説明】
【０００７】
【図１】この発明の一実施形態を示すブロック構成図。
【図２】同実施形態の一部の詳細を示すブロック構成図。
【図３】同実施形態のメモリ空間の一例を説明するために示す図。
【図４】同実施形態における領域確保の様子を示す説明図。
【図５】他の実施形態を示す説明図。
【図６】先行技術を示す説明図。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態を説明する。
（実施形態１）
本発明による実施形態１を図１乃至図４及び図６を参照して説明する。
この実施の形態では、ＰＣ（personal computer）にこの発明を適用した例について説明するが、例えばデジタルテレビジョン放送受信装置や光ディスクレコーダ等、管理対象となる情報記録媒体に記録されるデータを管理するためのファイルシステムを備えるファイルシステム搭載機器であれば、同様にこの発明を適用することができる。
【０００９】
図１は、上記したＰＣの基本構成を示している。このＰＣ１００は、その主要部であって各部を集中的に制御するＣＰＵ１００１を備えている。このＣＰＵ１００１には、ＢＩＯＳ等を記録した読み出し専用メモリであるＲＯＭ等の不揮発性メモリ１００５と、各種データを書き替え可能に記録するＲＡＭ等のメモリ１００２とが、バス１００６で接続されている。
【００１０】
また、バス１００６には、記録領域割り当てプログラム等の各種のプログラムを格納するハードディスク１００４と、外付けのハードディスク（図示せず）をＰＣ１００に接続するためのＵＳＢ（universal serial bus）コネクタや、ＳＤカード等のメモリカード２００が挿入されるメモリカードインターフェース１０３等を備えたＩ／Ｆ１００３とが、図示しないＩ／Ｏを介して接続されている。
【００１１】
上記メモリ１００２は、各種データを書き替え可能に記録する性質を有していることから、ＣＰＵ１００１の作業エリアとして機能してバッファ等の役割を果たしている。
【００１２】
上記不揮発性メモリ１００５には、ＯＳ（operating system）や各種のプログラムが記録されている。ＣＰＵ１００１は、不揮発性メモリ１００５に記録されているプログラムを読み出し、ハードディスク１００４にインストールする。
【００１３】
なお、ファイルを記録する情報記録媒体としては、メモリカード２００のみに限らず、例えば、ＤＶＤ（digital versatile disk）等の各種の光ディスク、各種光磁気ディスク、フレキシブルディスク等の各種磁気ディスク、半導体メモリ等の各種方式のメディアを用いることができる。
【００１４】
また、図示しない通信制御装置を介してインターネット等のネットワークからプログラムをダウンロードし、ハードディスク１００４にインストールするようにしても良いものである。
【００１５】
なお、プログラムは、所定のＯＳ上で動作するものであっても良いし、その場合に各種処理の一部をＯＳに肩代わりさせるものであっても良いし、所定のアプリケーションソフトやＯＳ等を構成する群のプログラムファイルの部として含まれているものであっても良いものである。
【００１６】
このシステム全体の動作を制御するＣＰＵ１００１は、このシステムの主記録装置として使用されるハードディスク１００４上にロードされたプログラムに基づいて各種処理を実行する。
【００１７】
ＰＣ１００で実行されるプログラムは、後述する各部（ソフトウエア１０１、ファイルシステム１０２、メモリカードインターフェース１０３）を含むモジュール構成となっている。実際のハードウエアとしては、ＣＰＵ１００１（プロセッサ）が上記記録媒体からプログラムを読み出して実行することにより、上記各部が主記録装置上にロードされ、ソフトウエア１０１、ファイルシステム１０２、メモリカードインターフェース１０３が主記録装置上に生成されるようになっている。
【００１８】
図２は、この実施の形態で説明するＰＣ１００の主要部と、このＰＣ１００の管理対象となるメモリカード２００の主要部とを、それぞれ機能ブロックとして概略的に示している。各機能ブロックは、ハードウエアやコンピュータソフトウエアのいずれかまたは両者の組み合わせとして実現することができる。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から説明される。
【００１９】
このような機能が、ハードウエアとして実行されるか、または、ソフトウエアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様毎に、種々の方法でこれらの機能を実現し得るが、そのような実現を決定することは、この発明の範疇に含まれるものである。
【００２０】
図２に示すように、ＰＣ１００は、自己に挿入され接続されたメモリカード２００に対してアクセスを行なうためのハードウエア及びソフトウエア（システム）を備えている。まず、ＰＣ１００は、アプリケーション、オペレーティングシステム等のソフトウエア１０１を備えている。
【００２１】
このソフトウエア１０１は、メモリカード２００へのデータの書き込みや、メモリカード２００からのデータの読み出し等の処理が、ユーザの操作によって指示されると、ＣＰＵ（central processing unit）にその処理を実行させるものである。ソフトウエア１０１を実行したＣＰＵは、ファイルシステム１０２を介して、メモリカード
【００２２】
２００に対してデータの書き込みまたは読み出しを指示する。
このファイルシステム１０２は、管理対象となる情報記録媒体（メモリカード２００）に記録されているファイルを管理するための仕組みである。このファイルシステム１０２は、情報記録媒体の記録領域内に管理情報を記録し、この管理情報を用いてファイルを管理している。
【００２３】
すなわち、このファイルシステム１０２では、情報記録媒体におけるファイルやフォルダ等のディレクトリ情報の作成方法、ファイルやフォルダ等の移動方法や削除方法、データの記録方式、管理情報が記録されている場所やその利用方法等が定められている。このファイルシステム１０２は、ＦＡＴ（file allocation table）ファイルシステムを基礎としており、この実施の形態で以下に説明する動作を実行可能に構成されている。具体的な動作に関しては、適宜順を追って説明する。
【００２４】
また、上記ＰＣ１００は、メモリカードインターフェース１０３を備えている。このメモリカードインターフェース１０３は、ＰＣ１００とメモリカード２００のコントローラ２０１との間のインターフェース処理を行なうのに必要なハードウエアやソフトウエア等から構成されている。そして、ＰＣ１００は、メモリカードインターフェース１０３を介してメモリカード２００との通信を実行する。
【００２５】
この場合、メモリカードインターフェース１０３は、ＰＣ１００とメモリカード２００とが通信を行なうのに必要な各種の取り決めを規定している。すなわち、メモリカードインターフェース１０３は、メモリカード２００のコントローラ２０１を構成している後述するメモリカードインターフェース２０１ａと相互に認識可能な各種のコマンドの組を備えている。また、このメモリカードインターフェース１０３は、メモリカード２００のメモリカードインターフェース２０１ａと接続可能なハードウエア上の構成（ピンの配置、数等）も含んでいる。
【００２６】
上記メモリカード２００は、電源がオン状態のＰＣ１００に接続されたとき、または、電源がオフ状態のＰＣ１００に接続された状態でＰＣ１００の電源がオンされたときに、ＰＣ１００からの電力供給を受けて初期化動作を行なった後、ＰＣ１００からのアクセスに対応した処理を実行する。
【００２７】
このメモリカード２００は、ＮＡＮＤ型フラッシュメモリ等のメモリ２０２や、そのメモリ２０２を制御するための上記コントローラ２０１を備えている。このうち、メモリ２０２は、データを不揮発に記録するもので、複数のメモリセルからなるページと称される単位でデータの書き込みや読み出しを実行する。ページには、各ページに固有の物理アドレスが割り当てられている。また、メモリ２０２は、複数のページからなる物理ブロックと称される単位でデータの消去を実行する。なお、物理ブロック単位で物理アドレスが割り当てられていることもある。
【００２８】
また、上記コントローラ２０１は、メモリ２０２におけるデータの記録状態を管理している。この記録状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、ＰＣ１００により割り当てられたどの論理アドレスのデータを保持しているかを示す対応関係や、どの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない状態、または、無効なデータを保持している状態）であるか等を管理することである。
【００２９】
この場合、上記コントローラ２０１は、上記メモリカードインターフェース２０１ａ、ＭＰＵ（micro processing unit）２０１ｂ、ＲＯＭ（read only memory）２０１ｃ、ＲＡＭ（random access memory）２０１ｄ、ＮＡＮＤインターフェース２０１ｅ等を備えている。
【００３０】
このうち、メモリカードインターフェース２０１ａは、ＰＣ１００とコントローラ２０１との間のインターフェース処理を行なうのに必要なハードウエアやソフトウエア等から構成されている。そして、メモリカード２００は、メモリカードインターフェース２０１ａを介してＰＣ１００との通信を実行する。
【００３１】
このメモリカードインターフェース２０１ａは、ＰＣ１００のメモリカードインターフェース１０３と同様に、メモリカード２００とＰＣ１００との通信を可能とする取り決めを規定し、各種のコマンドの組を備え、ハードウエア上の構成（ピンの配置、数等）も含んでいる。また、メモリカードインターフェース２０１ａは、レジスタ２０１ｆを備えている。
【００３２】
上記ＭＰＵ２０１ｂは、メモリカード２００全体の動作を総括的に制御している。すなわち、ＭＰＵ２０１ｂは、例えば、メモリカード２００が電力供給を受けた際に、ＲＯＭ２０１ｃ内に格納されているファームウエア（制御プログラム）をＲＡＭ２０１ｄ上に読み出して処理を実行する。
【００３３】
また、上記ＭＰＵ２０１ｂは、制御プログラムに基づいて、後述する各種のテーブルをＲＡＭ２０１ｄ上で作成したり、ＰＣ１００から書き込みコマンド、読み出しコマンド、消去コマンド等を受けて、メモリ２０２に対する所定の処理を実行したりしている。
【００３４】
さらに、上記ＲＯＭ２０１ｃは、前述したように、ＭＰＵ２０１ｂが実行する制御プログラム等を格納している。
また、上記ＲＡＭ２０１ｄは、ＭＰＵ２０１ｂに作業エリアを提供しており、制御プログラムや各種のテーブルを記録している。このようなテーブルとしては、ＰＣ１００のファイルシステム１０２によってデータに割り当てられた論理アドレスと、その論理アドレスを有するデータを実際に記録しているページの物理アドレスとを対応させた変換テーブル（論物テーブル）が含まれる。
【００３５】
さらに、上記ＮＡＮＤインターフェース２０１ｅは、コントローラ２０１とメモリ２０２との間のインターフェース処理を行なっている。
ここで、上記メモリ２０２内の記録領域は、保存されるデータの種類に対応して複数の領域に区分けされている。この複数の領域としては、システムデータ領域２０２ａ、機密データ領域２０２ｂ、ユーザデータ領域２０２ｃが含まれる。
【００３６】
このうち、システムデータ領域２０２ａは、コントローラ２０１が、その動作に必要なデータを保存するためにメモリ２０２内に確保しておく領域である。すなわち、このシステムデータ領域２０２ａは、主にメモリカード２００に関する管理情報を格納しており、メモリカード２００のセキュリティ情報やメディアＩＤ（identification）等のカード情報を格納している。
【００３７】
また、機密データ領域２０２ｂは、暗号化に用いる鍵情報や認証時に使用する機密データ等を保存しておく領域である。この機密データ領域２０２ｂについては、ＰＣ１００はアクセスできないようになされている。
【００３８】
さらに、ユーザデータ領域２０２ｃは、ＰＣ１００が自由にアクセスして使用することが可能な領域である。このユーザデータ領域２０２ｃには、例えばＡＶ（audio visual）コンテンツファイルや映像データ等のユーザデータが格納される。以下の説明では、メモリ２０２の記録領域と言えば、このユーザデータ領域２０２ｃを指すものとする。
【００３９】
なお、上記したコントローラ２０１は、ユーザデータ領域２０２ｃの一部を確保しており、自己の動作に必要な制御データ（論物テーブル）を保存させている。このユーザデータ領域２０２ｃは、ＰＣ１００から別のボリュームとして論理フォーマットされ、ファイル管理されている。
【００４０】
次に、上記メモリ２０２の論理フォーマットについて説明する。メモリ２０２は、以下の形式で論理フォーマット化される。このメモリ２０２の論理フォーマット化は、上記ＰＣ１００内のファイルシステム１０２によって行なわれる。
【００４１】
ここで、上記ファイルシステム１０２によるメモリ２０１の論理フォーマット化の説明に先立ち、このファイルシステム１０２が基礎としているＦＡＴファイルシステムの概要について、図３を用いて説明しておくことにする。
【００４２】
図３は、ＦＡＴファイルシステムにより論理フォーマット化された、メモリ２０２のメモリ空間３０を示している。このメモリ空間３０には、以下に示す管理データが書き込まれている。なお、ここでいうメモリ空間３０は、ＦＡＴファイルシステムが自由にアクセスできるメモリ領域であり、図２のメモリ２０２においては、ユーザデータ領域２０２ｃに対応するものである。
【００４３】
図３に示すように、ＦＡＴファイルシステムは、管理対象となるメモリ空間３０を所定の大きさ（例えば１６ｋバイト）のクラスタに分割して管理している。このメモリ空間３０には、その最下位から所定のクラスタ番号で示される範囲までの領域に、管理データが割り当てられている。以下、管理データを記録する領域を、管理データブロック３１と称する。
【００４４】
なお、管理データブロック３１より高位のクラスタ番号で示される領域は、ファイルを構成する複数のファイルデータを書き込むためのデータ記録領域となっている。以下、このデータ記録領域をファイルデータブロック３２と称する。
【００４５】
そして、上記管理データブロック３１は、パーティションテーブルに割り当てられるパーティションテーブル領域３３、ブートセクタに割り当てられるブートセクタ領域３４、ＦＡＴ１に割り当てられるＦＡＴ１領域３５、ＦＡＴ２に割り当てられるＦＡＴ２領域３６、ルートディレクトリエントリに割り当てられるルートディレクトリエントリ領域３７に分けられている。
【００４６】
このうち、パーティションテーブル領域３３は、各パーティションのファイルシステムタイプやその先頭セクタ等の情報を格納している。また、ブートセクタ領域３４は、パーティションテーブルが示す先頭セクタに位置し、ＢＰＢ［ＢＩＯＳ（basic input／output system）parameter block］を格納している。
【００４７】
このＢＰＢは、ファイルシステムが使用する、メモリ２０２の様々なパラメータを示している。ＦＡＴファイルシステムでは、メモリ２０２を論理フォーマット化するとき、このパラメータを書き込んでいる。また、ＦＡＴファイルシステムは、起動時にＢＰＢを読み込むことにより、ファイルフォーマットのパラメータを認識する。
【００４８】
さらに、ＦＡＴ１領域３５は、メモリに書き込まれ、クラスタの大きさに分割されたファイルデータの一部（以下、単にファイルデータと称する）がどのクラスタに記録されているかを示す情報や、ファイルデータを復元するためのクラスタのつながりを示す情報を格納している。また、ＦＡＴ２領域３６は、ＦＡＴ１のバックアップ領域であり、ＦＡＴ１領域３５と同じ内容を格納している。
【００４９】
１つのファイルを構成する各ファイルデータは、連続するクラスタに割り当てられることが好ましいので、ＦＡＴファイルシステムでは、空いているクラスタを、クラスタ番号の順にしたがってファイルデータに割り当てている。そして、ＦＡＴ１及びＦＡＴ２は、ファイルデータを格納しているクラスタの接続関係を示す情報を格納している。これにより、ＦＡＴ１及びＦＡＴ２（以下、単にＦＡＴと記載する）に格納されている情報に基づいてクラスタからデータを読み出すことによって、元のファイルが復元される。
【００５０】
また、ルートディレクトリエントリ領域３７は、ルートディレクトリに属する各ファイルのファイルエントリを記録している。このファイルエントリには、ファイル名またはフォルダ名、ファイルサイズ、属性及びファイルの更新日時情報、どのクラスタがファイルの先頭クラスタであるかを示すフラグ等が含まれる。なお、ＦＡＴフォーマット形式のバージョン［例えば、ＦＡＴ１６、ＦＡＴ３２、ｅｘ（extended）ＦＡＴ等］によっては、
【００５１】
ルートディレクトリエントリをＦＡＴの後の任意のアドレスに置くことができる。
あるファイルが、ルートディレクトリに属するサブディレクトリに属する場合、ルートディレクトリエントリ領域３７には、ルートディレクトリに属するサブディレクトリのエントリ（サブディレクトリエントリ）に割り当てられているクラスタの番号が記載されている。
【００５２】
そして、サブディレクトリエントリは、自己に属する各ファイルのファイルエントリを保持している。このサブディレクトリエントリは、図３に示すように、ＦＡＴファイルシステムによって、ファイルデータブロック３２内の任意のクラスタ３８に書き込まれる。このサブディレクトリエントリも管理データに属しており、頻繁に書き換えられることが多いものである。
【００５３】
さて、図1のシステムで内蔵の不揮発性メモリ１００５か或いは外付けのメモリカード２００かは問わず、不揮発性メモリにデータを書き込む方式について説明する。
【００５４】
本システムでは書き込み要求を束ねるための複数のキャッシュバッファを持っている。この説明ではキャッシュバッファはメモリ１００２内にキャッシュＡおよびキャッシュＢの二つが存在するものとする。各キャッシュバッファのサイズは同一でなくてもよいが、ここでは二つとも例えば４ＭＢである。そして、先行技術に挙げた発明では同バッファ範囲に対する書き込み要求でも隙間の空いた場合には、一度前回の内容をライトバックした後に使用することになっていたが、本実施形態では後述のように隙間のデータをリードして前回の書き込み要求と結合するものとする。
【００５５】
図６のように、一般的なＬＲＵ（Least Recently Used）アルゴリズムを用いたシステムにおいて、複数ファイルの書き込みを行う場合を想定する。Least Recently Usedは「最近、最も使われていないもの」という意味である。ＬＲＵはメモリーキャッシュを管理するために一般に利用される方式で、キャッシュの利用効率は最もよくなるとされている。実際のＬＲＵアルゴリズムは、データを使用するたびにカウンタを増やしておき、カウンタ値の小さいデータを捨てるといった方法で実現される。
【００５６】
この先行技術ではキャッシュＡの範囲に書き込みが行われたのちにキャッシュＢの範囲に書き込みが行われ、新たに書き込み要求が来ている状況を表している。この場合、キャッシュＡの方が用いられたタイミングが古いため、キャッシュＡがライトバック候補となってしまう問題がある。
【００５７】
そこで本実施形態では、図４のようにキャッシュが再度利用される可能性を考慮する。つまり、キャッシュＢは既に終端まで書き込みが終わっている。書き込み処理が一般的に前から後ろに行われることを考えると、キャッシュＢが再度利用される可能性はキャッシュＡが再度利用される可能性よりも低い。そこで、キャッシュＢを優先的にライトバックすることでキャッシュヒット率の向上を図る。
【００５８】
なお上記の隙間のデータをリードする動作に関して説明する。これは、キャッシュＡが再度利用されるにあたり図４で相当する部分Ｐに対し、再度利用される部分以前の部分をリードして再度利用される部分と共にライトする動作を表す。
【００５９】
（実施形態２）
本発明による実施形態２を図１乃至図３及び図５を参照して説明する。実施形態１と共通する部分は説明を省略する。
実施形態１と同様に、この発明の派生として、図５のように終端近くまでキャッシュＢが書き込み終わっており、次の書き込み要求の先頭がその終端に近い場合についても、同様にＬＲＵアルゴリズムに基づいた動作をすることを提案する。これは、キャッシュＢへの書き込みがその近傍にシークした可能性が高いからである。
【００６０】
この終端近くまでという判定としては、キャッシュバッファの残りが何％あるいは何ＫＢという基準で行なう方法がある。キャッシュバッファを用いるプログラムの使用サイズなどの統計情報を用いてこれらの基準の既定値を定める、更には動的に変動させるのも好適である。なおキャッシュＡなどキャッシュＢ以外の残りを総合的に比較してどのキャッシュバッファを用いるかを決定するアルゴリズムを設けてもよい。
【００６１】
（実施形態のポイント）
キャッシュバッファの個数が限られている場合には、キャッシュミスが起こる度に無作為なライトバックを行うとキャッシュヒット率が低下する問題がある。そこで、まず近傍に対する書き込み要求を纏めることでキャッシュヒット率を向上させる。また、キャッシュミス時には以下のルールに従ってライトバックを行うことでキャッシュヒット率を向上させる。
【００６２】
（１）書き込み要求がいずれかのキャッシュ範囲と重なっている場合はそのキャッシュバッファを使用する   (その際、ライトバックを行わず、キャッシュ内の有効範囲との間の領域をリードする。) 。
【００６３】
（２）書き込み要求がいずれのキャッシュ範囲とも重なっていない場合には、最も用いられていないキャッシュバッファを使用する   (ここまでは標準的なＬＲＵアルゴリズムである。) 。
【００６４】
（２ａ）但し、キャッシュバッファの有効範囲がキャッシュ範囲の終端に到達している場合はそのキャッシュバッファを優先的に使用する。
（２ｂ）また、キャッシュバッファの有効範囲がキャッシュ範囲の終端に到達していない場合でもキャッシュ範囲の終端が書き込み要求範囲の先頭近傍であれば優先的に使用する。
【００６５】
上記の実施形態により、書き込みデータキャッシュのヒット率が向上し、ＳＤカードへの書き込み性能が向上する。
なお、この発明は上記実施形態に限定されるものではなく、この外その要旨を逸脱しない範囲で種々変形して実施することができる。例えばキャッシュバッファとしてはキャッシュＡとキャッシュＢの二つがある場合について説明したが、キャッシュバッファが三つ以上ある場合についても同様なアプローチが可能である。
【００６６】
また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係わる構成要素を適宜組み合わせても良いものである。
【符号の説明】
【００６７】
１００…ＰＣ、１０１…ソフトウエア、１０２…ファイルシステム、１０３…メモリカードインターフェース、２００…メモリカード、２０１…コントローラ、２０１ａ…メモリカードインターフェース、２０１ｂ…ＭＰＵ、２０１ｃ…ＲＯＭ、２０１ｄ…ＲＡＭ、２０１ｅ…ＮＡＮＤインターフェース、２０１ｆ…レジスタ、２０２…メモリ、２０２ａ…システムデータ領域、２０２ｂ…機密データ領域、２０２ｃ…ユーザデータ領域、１００１…ＣＰＵ、１００２…メモリ、１００３…Ｉ／Ｆ、１００４…ハードディスク、１００５…不揮発性メモリ。
【図１】
2011113129.tif 000003
【図２】
2011113129.tif 000004
【図３】
2011113129.tif 000005
【図４】
2011113129.tif 000006
【図５】
2011113129.tif 000007
【図６】
2011113129.tif 000008
【手続補正書】
【提出日】平成22年12月10日(2010.12.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部からの書込要求に対応した書込要求範囲にデータが書き込まれる複数のキャッシュバッファと、
前記書込要求範囲が前記複数のキャッシュバッファ夫々のキャッシュ範囲と重ならない場合であって、かつ、前記複数のキャッシュバッファのうちの何れかのキャッシュバッファの有効範囲が、当該キャッシュバッファのキャッシュ範囲の終端に到達している場合、前記複数のキャッシュバッファのうち前記有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファにデータを書き込む第１の書込手段と、
を備えることを特徴とする情報記録装置。
【請求項２】
前記書込要求範囲が前記複数のキャッシュバッファの何れかのキャッシュ範囲と重なっていた場合、当該キャッシュ範囲が重なっていたキャッシュバッファのデータをリードして、当該リードしたデータと前記書込要求範囲に書き込むデータとを共に前記キャッシュ範囲が重なっていたキャッシュバッファに書き込む第２の書込手段を更に備えることを特徴とする請求項１記載の情報記録装置。
【請求項３】
書込要求に対応した書込要求範囲にデータが書き込まれる複数のキャッシュバッファを備えた情報記録装置における情報記録方法であって、
前記書込要求範囲が前記複数のキャッシュバッファの何れかのキャッシュ範囲とも重なっていない場合であって、前記複数のキャッシュバッファのうちの何れかのキャッシュバッファの有効範囲が、当該キャッシュバッファのキャッシュ範囲の終端近くに到達している場合に、前記複数のキャッシュバッファのうち前記有効範囲がキャッシュ範囲の終端に到達している前記キャッシュバッファの前記書込要求範囲にデータを書き込むことを特徴とする情報記録方法。
【請求項４】
前記書込要求範囲が前記複数のキャッシュバッファの何れかのキャッシュ範囲と重なっていた場合、当該キャッシュ範囲が重なっていたキャッシュバッファのデータをリードして、当該リードしたデータと前記書込要求範囲に書き込むデータとを共に前記キャッシュ範囲が重なっていたキャッシュバッファに書き込むことを特徴とする請求項３記載の情報記録方法。
【手続補正書】
【提出日】平成23年3月14日(2011.3.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部からの書込要求に応じてデータが書き込まれる複数のキャッシュバッファと、
前記複数のキャッシュバッファのうち、データが終端位置まで書き込まれているキャッシュバッファに前記書込要求に応じたデータを優先的に書き込む第１の書込制御手段と、
を備えることを特徴とする情報記録装置。
【請求項２】
前記複数のキャッシュバッファのうちの１のキャッシュバッファに対して、前記１のキャッシュバッファ上の互いに離れた第１，第２の範囲にデータの書込みを要求する第１，第２の書込要求があった場合、前記第１の範囲と前記第２の範囲との間に書き込まれているデータを読み出し、前記第１の書込要求に対応するデータ、前記読み出した前記第１の範囲と前記第２の範囲との間に書き込まれていたデータ及び前記第２の書込要求に対応するデータを１のデータとして前記１のキャッシュバッファへ書き込む第２の書込制御手段をさらに備えることを特徴とする請求項１記載の情報記録装置。
【請求項３】
複数のキャッシュバッファへデータを書き込む情報記録方法であって、
外部からの書込要求に応じてデータが書き込まれる複数のキャッシュバッファのうち、データが終端位置まで書き込まれているキャッシュバッファに前記書込要求に応じたデータを優先的に書き込むことを特徴とする情報記録方法。
【請求項４】
前記複数のキャッシュバッファのうちの１のキャッシュバッファに対して、前記１のキャッシュバッファ上の互いに離れた第１，第２の範囲にデータの書込みを要求する第１，第２の書込要求があった場合、前記第１の範囲と前記第２の範囲との間に書き込まれているデータを読み出し、前記第１の書込要求に対応するデータ、前記読み出した前記第１の範囲と前記第２の範囲との間に書き込まれていたデータ及び前記第２の書込要求に対応するデータを１のデータとして前記１のキャッシュバッファへ書き込むことを特徴とする請求項３記載の情報記録方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
（実施形態２）
本発明による実施形態２を図１乃至図３及び図５を参照して説明する。実施形態１と共通する部分は説明を省略する。
実施形態１と同様に、この発明の派生として、図５のように終端近くまでキャッシュＢが書き込み終わっている場合についても、同様にＬＲＵアルゴリズムに背いた動作をすることを提案する。これは、キャッシュＢへの書き込みがその近傍にシークした可能性が高いからである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
（１）書き込み要求がいずれかのキャッシュ範囲においてデータが書き込まれていない範囲と重なっている場合はそのキャッシュバッファを使用する (その際、ライトバックを行わず、キャッシュ内の有効範囲との間の領域をリードする。) 。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
（２）書き込み要求がいずれのキャッシュ範囲においてデータが書き込まれていない範囲とも重なっていない場合には、最も用いられていないキャッシュバッファを使用する   (ここまでは標準的なＬＲＵアルゴリズムである。) 。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
（２ａ）但し、キャッシュバッファの有効範囲がキャッシュ範囲の終端に到達している場合はそのキャッシュバッファを優先的に使用する。
（２ｂ）また、キャッシュバッファの有効範囲がキャッシュ範囲の終端に到達していない場合でも、当該有効範囲が終端近傍であれば優先的に使用する。