ホストからのハードディスクドライブへのアクセス要求に対して、前記ハードディスクドライブの設定数以上の連続するセクタのデータにアクセスするかを判定する判定手段と、記憶装置を前記ハードディスクドライブのキャッシュとして用いるキャッシュ手段であって、前記設定数以上の連続するセクタのデータにアクセスすると判定された場合に前記記憶装置をキャッシュとして用いない、キャッシュ手段と、を具備する情報処理装置。前記記憶装置は、フラッシュメモリを有する請求項1に記載の情報処理装置。前記判定手段は、前記ハードディスクドライブへの第1のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを有する管理データを管理し、前記判定手段は、前記第1のアクセスコマンドの次に、前記次のセクタ番号にアクセスするための第2のアクセスコマンドが発行された場合に、前記第2のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記判定手段は、前記第1のアクセスコマンドの次に、前記次のセクタ番号と異なるセクタ番号からのデータにアクセスするための第3のアクセスコマンドが発行された場合に、前記第3のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記判定手段は、前記管理データに基づいて、前記ハードディスクドライブの前記設定数以上の連続するセクタのデータにアクセスしているかを判定する請求項1に記載の情報処理装置。前記管理データは、前記次のセクタ番号および前記セクタ数の、所定の数の複数の組み合わせを有し、前記判定手段は、前記ハードディスクドライブへの第4のアクセスコマンドに含まれる最初のセクタ番号が前記管理データ内にない場合に、前記管理データ内の最も過去に更新された前記次のセクタ番号および前記セクタ数の組み合わせを削除し、前記第4のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを前記管理データに追加する、請求項3に記載の情報処理装置。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブのセクタ番号が連続する複数のセクタに第1のデータを書き込む場合、前記キャッシュ手段は、前記記憶装置に前記ライトアクセスされる前記複数のセクタ内の第1のセクタに格納されている第2のデータが前記記憶装置にキャッシュされているかを判定し、前記第2のデータが前記記憶装置にキャッシュされていると判定した場合、前記記憶装置にキャッシュされている前記第2のデータをキャッシュデータとして利用できないようにし、前記複数のセクタに前記第1のデータを書き込む請求項1に記載の情報処理装置。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブの連続する複数のセクタに第1のデータを書き込む場合、前記キャッシュ手段は、前記複数のセクタ内の第1のセクタに格納されている第2のデータのキャッシュデータである第3のデータが前記記憶装置に格納されているかを判定し、前記第3のデータが前記記憶装置に格納されていると判定した場合、前記ライトアクセスによって前記第1のセクタに書き込まれる第4のデータによって前記第3のデータを上書きし、前記第1のデータから前記第4のデータを除いたデータを前記複数のセクタから第1のセクタを除いたセクタに書き込む、請求項1に記載の情報処理装置。ハードディスクドライブと記憶装置とを有する、ハイブリッド記憶装置において、ホストからの前記ハードディスクドライブへのアクセス要求に対して、前記ハードディスクドライブの設定数以上の連続するセクタのデータにアクセスするかを判定する判定手段と、前記記憶装置を前記ハードディスクドライブのキャッシュとして用いるキャッシュ手段であって、前記設定数以上の連続するセクタのデータにアクセスすると判定された場合に前記記憶装置をキャッシュとして用いない、キャッシュ手段と、を具備するハイブリッド記憶装置。前記記憶装置は、フラッシュメモリを有する請求項7に記載のハイブリッド記憶装置。前記判定手段は、前記ハードディスクドライブへの第1のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを有する管理データを管理し、前記判定手段は、前記第1のアクセスコマンドの次に、前記次のセクタ番号にアクセスするための第2のアクセスコマンドが発行された場合に、前記第2のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記判定手段は、前記第1のアクセスコマンドの次に、前記次のセクタ番号と異なるセクタ番号からのデータにアクセスするための第3のアクセスコマンドが発行された場合に、前記第3のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記判定手段は、前記管理データに基づいて、前記ハードディスクドライブの前記設定数以上の連続するセクタのデータにアクセスしているかを判定する請求項7に記載のハイブリッド記憶装置。前記管理データは、前記次のセクタ番号および前記セクタ数の、所定の数の複数の組み合わせを有し、前記判定手段は、前記ハードディスクドライブへの第4のアクセスコマンドに含まれる最初のセクタ番号が前記管理データ内にない場合に、前記管理データ内の最も過去に更新された前記次のセクタ番号および前記セクタ数の組み合わせを削除し、前記第4のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを前記管理データに追加する、請求項9に記載のハイブリッド記憶装置。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブの連続する複数のセクタに第1のデータを書き込む場合、前記キャッシュ手段は、前記記憶装置に前記ライトアクセスされる前記複数のセクタ内の第1のセクタに格納されている第2のデータのキャッシュデータである第3のデータが前記記憶装置に格納されているかを判定し、前記第3のデータが前記記憶装置に格納されていると判定した場合、前記第3のデータをキャッシュデータとして利用できないようにし、前記複数のセクタに前記第1のデータを書き込む請求項7に記載のハイブリッド記憶装置。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブの連続する複数のセクタに第1のデータを書き込む場合、前記キャッシュ手段は、前記記憶装置に前記ライトアクセスされる前記複数のセクタ内の第1のセクタに格納されている第2のデータのキャッシュデータである第3のデータが前記記憶装置に格納されているかを判定し、前記第3のデータが前記記憶装置に格納されていると判定した場合、前記第3のデータを前記ライトアクセスによって前記第1のセクタに書き込まれる第4のデータによって上書きし、前記第1のデータから前記第4のデータを除いたデータを前記複数のセクタから前記第1のセクタを除いたセクタに書き込む、請求項7に記載のハイブリッド記憶装置。記憶装置をハードディスクドライブのキャッシュとして用いるキャッシュ方法であって、ホストからのハードディスクドライブへのアクセス要求に対して、前記ハードディスクドライブの設定数以上の連続するセクタのデータにアクセスするかを判定し、前記設定数以上の連続するセクタのデータにアクセスすると判定された場合に前記記憶装置をキャッシュとして用いない、キャッシュ方法。前記記憶装置は、フラッシュメモリを有する請求項13に記載のキャッシュ方法。前記判定は、前記ハードディスクドライブへの第1のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを有する管理データを管理し、前記第1のアクセスコマンドの次に、前記次のセクタ番号にアクセスするための第2のアクセスコマンドが発行された場合に、前記第2のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記第1のアクセスコマンドの次に、前記次のセクタ番号と異なるセクタ番号からのデータにアクセスするための第3のアクセスコマンドが発行された場合に、前記第3のアクセスコマンドに基づいて前記管理データ内の前記セクタ番号と前記セクタ数とを更新し、前記管理データに基づいて、前記ハードディスクドライブの前記設定数以上の連続するセクタのデータにアクセスしているかを判定する請求項13に記載のキャッシュ方法。前記管理データは、前記次のセクタ番号および前記セクタ数の、所定の数の複数の組み合わせを有し、前記ハードディスクドライブへの第4のアクセスコマンドに含まれる最初のセクタ番号が前記管理データ内にない場合に、前記管理データ内の最も過去に更新された前記次のセクタ番号および前記セクタ数の組み合わせを削除し、前記第4のアクセスコマンドに含まれる最初のセクタ番号とセクタ数に基づいて、連続してアクセスされた最後のセクタ番号の次のセクタ番号と連続してアクセスされたセクタ数とを前記管理データに追加する、請求項15に記載のキャッシュ方法。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブの連続する複数のセクタに第1のデータを書き込む場合、前記記憶装置に前記ライトアクセスされる前記複数のセクタ内の第1のセクタに格納されている第2のデータのキャッシュデータである第3のデータが前記記憶装置に格納されているかを判定し、前記第3のデータが前記記憶装置に格納されていると判定した場合、前記第3のデータをキャッシュデータとして利用できないようにし、前記複数のセクタに前記第1のデータを書き込む、請求項13に記載のキャッシュ方法。前記ハードディスクドライブへのアクセスがライトアクセスであり、前記ハードディスクドライブの連続する複数のセクタに第1のデータを書き込む場合、前記記憶装置に前記ライトアクセスされる前記複数のセクタ内の第1のセクタに格納されている第2のデータのキャッシュデータである第3のデータが前記記憶装置に格納されているかを判定し、前記第3のデータが前記記憶装置に格納されていると判定した場合、前記第3のデータを前記ライトアクセスによって前記第1のセクタに書き込まれる第4のデータによって上書きし、前記第1のデータから前記第4のデータを除いたデータを前記複数のセクタから前記第1のセクタを除いたセクタに書き込む、請求項13に記載のキャッシュ方法。最近、ホストとHDDとの間で音楽や動画等の大きなサイズのファイルを転送することが多くなっている。このようなファイルの転送は、シーケンシャルアクセスになることが多い。シーケンシャルアクセスに対してキャッシュを行った場合に問題が発生する可能性がある。例えば、シーケンシャルリードアクセスの場合、2つの問題が発生する可能性がある。シーケンシャルリードされるデータは、近い将来再度リードされる確率が低く、リードされたとしても再度シーケンシャルリードされる確率が高い。シーケンシャルリードのデータをキャッシュに学習すると、再度リードされる可能性がより高いデータを追い出すことになり、キャッシュヒット率の低下につながる可能性がある。また、HDDはシーケンシャルリードの性能が高いため、データを学習する分、キャッシュを使用しないときよりも逆に性能低下する可能性がある。また、シーケンシャルライトアクセスの場合、アクセス性能が低下する可能性がある。一般にSSDをHDDのキャッシュとして使用する場合、HDDに対してはシーケンシャルライトであっても、SSDに対してはランダムライトとなる。そのため、SSDのランダムライト性能がHDDのシーケンシャルリードよりも低い場合、シーケンシャルライトアクセスデータをSSDに書き込むことにより、HDDにライトするよりも性能が低下してしまう可能性がある。本発明の目的は、記憶装置をHDDのキャッシュとして利用する場合に、アクセス性能の低下、およびキャッシュヒット率の低下を抑制することが可能な情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法を提供することにある。実施形態によれば、情報処理装置は、判定手段と、キャッシュ手段とを具備する。判定手段は、ホストからのハードディスクドライブへのアクセス要求に対して、前記ハードディスクドライブの設定数以上の連続するセクタのデータにアクセスするかを判定する。キャッシュ手段は、記憶装置を前記ハードディスクドライブのキャッシュとして用いる。キャッシュ手段は、前記設定数以上の連続するセクタのデータにアクセスすると判定された場合に前記記憶装置をキャッシュとして用いない。以下、実施の形態について図面を参照して説明する。<第1の実施形態>図1は、第1の実施形態に係る情報処理装置のシステム構成を示す図である。本実施形態の情報処理装置は、パーソナルコンピュータとして実現されている。図1に示すように、本情報処理装置は、CPUCentralprocessingunit11、MCHMemorycontrollerhub12、メインメモリ揮発性メモリ13、ICHIocontrollerhub14、GPUGraphicsprocessingunit15、ビデオメモリVRAM15A、サウンドコントローラ16、BIOS-ROMReadonlymemory17、HDDHarddiskdrive18、ODDOpticaldiscdrive20、各種周辺機器21、EEPROMElectricallyerasableprogrammableROM22、EC/KBCEmbeddedcontrollerkeyboardcontroller23等を備えている。CPU11は、本情報処理装置10の動作を制御するプロセッサであり、HDD18やODD20からメインメモリ13にロードされる各種プログラムを実行する。このCPU11によって実行される各種プログラムの中には、リソース管理を司るオペレーティングシステムOS110や、当該OS110の配下で動作する、キャッシュドライバ120および各種アプリケーションプログラム130等が存在する。キャッシュドライバ120は、後述するSSD201をキャッシュデバイスとして利用するプログラムである。このプログラムは、接続されたHDD18と他の記憶装置例えば、SSDとを、ホスト例えば、PC本体からは、一つのストレージに見せて、リード及びライトを制御して応答性能を向上させる、いわゆるHDDアクセラレータとして、機能させるプログラムである。具体的には、HDDアクセラレータは、OS上で動作するドライバという位置づけで、キャッシュドライバ120が動作する。また、CPU11は、BIOS-ROM17に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。以下では、BIOS-ROM17の格納物であるBIOS自体についてもBIOS17と表記することがある。MCH12は、CPU11とICH14との間を接続するブリッジとして動作すると共に、メインメモリ13をアクセス制御するメモリコントローラとして動作する。また、MCH12は、GPU15との通信を実行する機能を有している。GPU15は、本情報処理装置に組み込まれ、または、外部接続される表示装置を制御する表示コントローラである。GPU15は、VRAM15Aを有する。ICH14は、HDD18およびODD20を制御するためのATAATAttachmentコントローラを内蔵する。ICH14は、PCIPeripheralcomponentinterconnectバスに接続された各種周辺機器21の制御も行う。また、ICH14は、サウンドコントローラ16との通信機能も有している。サウンドコントローラ16は音源デバイスであり、各種プログラムが再生対象とするオーディオデータを、本情報処理装置に組み込まれた、または、外部接続されるスピーカ等に出力する。EEPROM22は、例えば本情報処理装置の個体情報や環境設定情報などを格納するためのメモリデバイスである。そして、EC/KBC23は、電力管理を行うためのエンベデッドコントローラと、キーボードやポインティングデバイス等の操作によるデータ入力を制御するためのキーボードコントローラとが集積された1チップMPUMicroprocessingunitである。キャッシュドライバ120は、SSD201の少なくとも一部の領域NVCNonVolatileCacheと主メモリ13の一部の領域L1をHDD18のキャッシュメモリとして用いる。次に、キャッシュドライバ120の機能について図2を参照して説明する。図2は、図1に示す情報処理装置の主要部を示すブロック図である。メインメモリ13内には、ユーザバッファ領域301、L1キャッシュ領域302、およびマージ用バッファ領域303が確保される。また、キャッシュドライバ120によって、L1キャッシュ管理情報304、NVC管理情報305、シーケンシャルリード検出用データSeqRead検出用データ306がメモリ13内に作成される。L1キャッシュ領域302は、NVC311とともにHDD18のキャッシュとして使用するバッファである。L1キャッシュ領域302は、フィルタドライバがロードされるときにメインメモリに確保される。なお、L1キャッシュ領域302の容量は16MB程度である。また、マージ用バッファ領域303は、キャッシュの方式がライトバックWriteBack方式の場合に使用される。マージ用バッファ領域303は、リードアクセス時に、L1キャッシュ領域302に一部のデータが格納されている場合に、HDD18から読み出されたL1キャッシュ領域302に格納されていないデータを一時的に格納するために用いられる。L1キャッシュ管理情報304は、L1キャッシュ領域302に格納されているキャッシュデータを管理するための情報である。NVC管理情報305は、NVC311に格納されているキャッシュデータを管理するための情報である。NVC管理情報305内には、複数のエントリが設定され、各エントリ内にはキャッシュデータの格納場所、キャッシュデータに対応するHDD18の格納場所、キャッシュデータとHDD18内のデータとが一致するかを示すデータ等が格納されている。シーケンシャルリード検出用データ306については後述する。情報処理装置10は、オペレーティングシステムOS110が制御する。オペレーティングシステム110からHDD18へのアクセスは、すべてキャッシュドライバ120を介して行われる。キャッシュドライバ120は、S-ATAコントローラ14AおよびUSBコントローラ14Bを直接的または間接的に制御する。S-ATAコントローラ14AにHDD18が接続されている。USBコントローラ14BにSSD201が接続されている。また、キャッシュドライバ120は、メモリコントローラ12Aを介して、メインメモリ13へのデータのアクセスを行う。キャッシュドライバ120、はシステムの起動時にメインメモリ13にロードされる。キャッシュドライバ120は、L1キャッシュ管理情報304を格納するための領域をメインメモリ13内に確保して初期化し、キャッシュには何も記録されていない状態にした後、キャッシュ制御処理を開始する。L1キャッシュ管理情報304は、キャッシュディレクトリなどのキャッシュデータを管理するためのデータを有する。キャッシュドライバ120の動作時、キャッシュドライバ120は、メインメモリ13内のL1キャッシュ管理情報304にライトキャッシュおよびリードキャッシュの学習データを管理するためのデータを記録する。シャットダウン時、キャッシュドライバ120は、メインメモリ13内のL1キャッシュ管理情報304を破棄する。なお、キャッシュドライバ120が動作を開始するまでは、BIOSプログラムがHDD18へのアクセスを制御する。S-ATAコントローラ14Aは、ホストからライトアクセス要求またはリードアクセス要求があった場合、HDD18にアクセスする。SSD201の一部または全部の領域がHDD18のキャッシュとして使用される。オペレーティングシステム110は、キャッシュデータの格納領域として使用されるSSD201のキャッシュに直接アクセスすることができない。本情報処理装置は、HDD18よりアクセス速度が速いSSDSolidStateDrive201と、主メモリ13に確保するL1キャッシュ領域302をHDD18のキャッシュとして利用することで、HDD18に対するアクセスの高速化を図る。SSD201は、フラッシュメモリ不揮発性メモリを有する。次に図3を参照して、NVC311をキャッシュとして用いる場合の動作の概要を説明する。キャッシュドライバは、401~412の12種類のデータ転送を組み合わせ、L1キャッシュ領域302、および、NVC311をHDD18のキャッシュとして使用し、HDD18のアクセスを高速化する。ライトスルーキャッシュここで、HDDへのリードアクセスに対してキャッシュを行う一般的な動作について説明する。まず、ライトスルーキャッシュと呼ばれているキャッシュ制御について、図4を参照して説明する。オペレーティングシステム110からHDD18へのアクセスコマンドが発行された場合、キャッシュドライバ120は、発行されたコマンドがリードコマンドであるかを判定するステップ501。リードコマンドであると判定した場合ステップ501のYes、キャッシュドライバ120は、L1キャッシュ管理情報304およびNVC管理情報305を参照することによって、リードコマンドに対応するデータがL1キャッシュ領域302とSSD202内のNVC311内に存在するかを判定するステップ502。データが存在すると判定した場合ステップ502のYes、L1キャッシュ領域302またはNVC311からリードコマンドに対応するデータを読み出すステップ503。データが存在しないと判定した場合、キャッシュドライバ120は、HDD18からリードコマンドに対応するデータをL1キャッシュ領域302に読み出し、ユーザバッファ領域301に渡すステップ504。そして、キャッシュドライバ120は、HDD18から読み出されたデータを、キャッシュデータとしてL1キャッシュ領域302からNVC311に書き込み、データを学習するステップ505。ステップ501において、リードコマンドではないつまり、ライトコマンドであると判定した場合ステップ501のNo、ライトコマンドに対応するアドレスのデータがL1キャッシュ領域302とSSD202内のNVC311内に存在するかを判定するステップ506。データがL1キャッシュ領域302またはNVC311内に存在すると判定した場合ステップ506のYes、L1キャッシュ領域302またはNVC311内に存在するキャッシュデータを書き換えると共に、ライトコマンドに対応するデータをHDD18に書き込むステップ507。データがL1キャッシュ領域302とNVC311内に存在しないと判定した場合ステップ506のNo、ライトコマンドに対応するデータをHDD18に書き込むステップ508。以上説明したリードアクセスを学習する場合のキャッシュドライバの動作において、リードアクセスが、音楽や動画等のように、データ容量が極端に大きいデータについてのリードアクセスの場合は、リード動作が連続する。このようにリード動作を、以下、シーケンシャルリードとして、説明する。シーケンシャルリードの場合、性能とキャッシュヒット率の2つの問題が発生する可能性がある。シーケンシャルリードされるデータは、連続してデータのリードが継続するため、近い将来再度リードされる確率が低く、リードされたとしても再度シーケンシャルリードされる確率が高い。もし、シーケンシャルリードのデータをNVC311に学習すると、データ量が大量になるため、それまでにキャッシュデータとしてNVC311に学習された、再度リードされる可能性がより高いデータを追い出すことになる。このため、キャッシュヒット率の低下につながるキャッシュヒット率の問題。一方、一般的にHDD18は、シーケンシャルリードの性能が高いため、NVC311に学習する分、キャッシュを使用しないときよりも逆に性能低下する可能性がある。また、SSD201のリード性能がHDD18のシーケンシャルリード性能と同等以下の場合は、データが近い将来再度リードされてキャッシュにヒットしたとしてもキャッシュの効果は期待できない性能問題。ライトバックキャッシュまた、HDDへのリードアクセスに対してキャッシュを行う一般的な動作の別の制御方法として、ライトバックキャッシュ方式がある。ライトバックキュッシュ方式の動作について図5を参照して説明する。ステップ501~ステップ505は、図4で説明したリードのキャッシュ動作と同様なので説明を省略する。ステップ501において、リードコマンドではないつまり、ライトコマンドであると判定した場合ステップ501のNo、ライトコマンドに対応するアドレスのデータが、SSD202のNVC311内に存在するかを判定するステップ1306。データがNVC311内に存在すると判定した場合ステップ1306のYes、キャッシュドライバ120は、NVC311内に存在するデータを書き換えるステップ1307。データがNVC311内に存在しないと判定した場合ステップ1306のNo、キャッシュドライバ120は、NVC管理情報305からエントリを見つけるステップ1308。キャッシュドライバ120は、見つけたNVC311のエントリに対応するアドレスにデータを書き込むステップ1309。以上説明したライトバック動作では、ライトされるデータがシーケンシャルライトの場合、ライト性能が悪化する可能性がある。SSD201のランダムライト性能がHDD18のシーケンシャルリードよりも遅い場合、SSD201に対してシーケンシャルライトすることにより、HDD18に直接書き込むよりも性能が低下してしまう。これは、HDD18に対するシーケンシャルライトであっても、SSD201に対してはランダムライトとなるからである。<シーケンシャルアクセスの判定方法>このような、シーケンシャルアクセスにおける問題を解決するため、本実施の形態のキャッシュドライバ120は、リードアクセスがシーケンシャルリードであるかを判定するために、シーケンシャルリード検出用データ306を使用する。シーケンシャルリード検出用データ306は、データはn行のテーブルである。行数nはあらかじめ決められているか、キャッシュドライバ120の起動時にパラメータとして与えられる。各行は、LRUカウンタLRUC、HDD識別番号HDD、次のLBANextLBAセクタ番号、これまでにリードしたセクタ数Sizeから構成される。LRUカウンタは最も過去に使用更新された行を見つけるためのカウンタで、n行の時0~n-1の値を取る。0の値が最も最近使用された行、n-1の値が最も過去に使用された行である。これにより、過去nプロセスのシーケンシャルリードを検出することができる。本実施形態の場合、n行のテーブルを用いてシーケンシャルリードであるかを判定している。まず、図6に示すような、あるプログラムAから1台のHDDHDD識別番号=1にアクセスする場合の動作について説明する。そして、図6に示すリードアクセスがあった場合のシーケンシャルリード検出用データ306n=1内の値の推移を図7を参照して説明する。シーケンシャルリードかどうかの閾値、すなわちシーケンシャルリード検出サイズは400hとする。先ず、プログラムAの動作によりCPU11がHDDに対し、アドレスが0100hhは16進数であることを示すために添付されているからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ801。キャッシュドライバ120は、シーケンシャルリード検出用データ306Aを生成する。シーケンシャルリード検出用データ306Aにおいて、HDD識別番号は1であり、NextLBAは180h、サイズは80hである。要求されたデータがHDDから読み出された後、プログラムAの動作によりCPU11がHDDに対し、アドレスが0180hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ802。キャッシュドライバ120は、シーケンシャルリード検出用データ306Bを生成する。シーケンシャルリード検出用データ306Bにおいて、HDD識別番号は1であり、NextLBAは200h、サイズは100hである。プログラムAの動作により、CPU11は、リードアクセスが終了するたびに連続するサイズが80hのデータのリードアクセスにアクセスするためのコマンドを発行する。要求されたデータがHDDから読み出された後、プログラムAの動作によりCPU11がHDDに対し、アドレスが0500hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ803。キャッシュドライバ120は、シーケンシャルリード検出用データ306Cを生成する。シーケンシャルリード検出用データ306Cにおいて、HDD識別番号は1であり、NextLBAは500h、サイズは400hである。要求されたデータがHDDから読み出された後、、プログラムAの動作によりCPU11が、HDDに対してアドレスが0500hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ804。キャッシュドライバ120は、シーケンシャルリード検出用データ306Dを生成する。シーケンシャルリード検出用データ306Dにおいて、HDD識別番号は1であり、NextLBAは500hである。図10に示すフローチャートのステップ605において算出されるサイズは480hである。そして、10に示すフローチャートのステップ606において、サイズ480hがシーケンシャルリード検出サイズより大きいと判断される。このため、図11のフローチャートのステップ702においてシーケンシャルリードであると判定されるので、リードアクセスされたデータの学習を行わななくなる。次に、図8に示すような、プログラムAの動作によりCPU11が1台のHDD_1HDD識別番号=1にアクセスし、プログラムBの動作によりCPU11が1台のHDD_2HDD識別番号=2にアクセスする場合の動作について説明する。そして、図8に示すリードアクセスがあった場合のシーケンシャルリード検出用データn=1内の値の推移を図9を参照して説明する。なお、シーケンシャルリード検出サイズは400hとする。先ず、プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0100hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1001。キャッシュドライバ120は、シーケンシャルリード検出用データ1101を生成する。シーケンシャルリード検出用データ1101において、HDD識別番号は1であり、NextLBAは180h、サイズは80hである。要求されたデータがHDDから読み出された後、プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0180hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1002。キャッシュドライバ120は、シーケンシャルリード検出用データ1102を生成する。シーケンシャルリード検出用データ1102において、HDD識別番号は1であり、NextLBAは200h、サイズは100hである。要求されたデータがHDDから読み出された後、プログラムBの動作によりCPU11が、HDD_2に対してアドレスが1000hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1003。キャッシュドライバ120は、シーケンシャルリード検出用データ1103を生成する。シーケンシャルリード検出用データ1103において、HDD識別番号は2であり、NextLBAは1000h、サイズは80hである。プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0200hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1004。キャッシュドライバ120は、シーケンシャルリード検出用データ1104を生成する。シーケンシャルリード検出用データ1104において、HDD識別番号は1であり、NextLBAは280、サイズは80hである。キャッシュドライバ120のシーケンシャルリードを検出する手順の一例について、図10のフローチャートを参照して説明する。このフローでは、リードコマンドのHDD識別子、LBAセクタ番号、セクタ数が入力として与えられ、TrueシーケンシャルリードまたはFalse非シーケンシャルリードを出力として返す。シーケンシャルリード検出サイズはあらかじめ決められているか、ドライバ起動時にパラメータとして与えられるたとえば16MB。キャッシュドライバ120は、シーケンシャルリード検出用データ306の中からリードアクセスが発行されたHDD識別番号と次のLBAセクタ番号とが一致する行を探すステップ601。一致する行があった場合ステップ602のYes、キャッシュドライバ120は、次のLBAセクタ番号の値に今回のアクセスサイズセクタ数を加えるステップ603。キャッシュドライバ120は、一致した行のLRUカウンタの値を0にし、その他の行のLRUカウンタの値を1加算するステップ604。そして、キャッシュドライバ120は、現在のSizeの値に今回のアクセスサイズセクタ数を加えたサイズを算出するステップ605。キャッシュドライバ120は、算出されたサイズがあらかじめ設定されたしきい値であるシーケンシャルリード検出サイズより大きいかを判定するステップ606。シーケンシャルリード検出サイズより大きいと判定した場合ステップ606のYes、キャッシュドライバ120は、Trueシーケンシャルリードを出力として返す。シーケンシャルリード検出サイズより大きくないと判定した場合ステップ606のNo、キャッシュドライバ120は、現在のサイズの値を算出されたサイズの値に更新するステップ607。そして、キャッシュドライバ120は、False非シーケンシャルリードを出力として返す。リードアクセスが発行されたHDD識別番号と次のLBAセクタ番号とが一致する行がなかった場合ステップ602のNo、キャッシュドライバ120は、LRUカウンタの値が最も多い行を検出するステップ608。キャッシュドライバ120は、検出された行のHDD識別番号にリードアクセスされたHDDに対応する値をセットし、NextLBAの値に今回のLBAセクタ番号とセクタ数との和をセットし、Sizeの値に今回のアクセスサイズセクタ数をセットするステップ609。そして、キャッシュドライバ120は、ステップ608において検出された行の行のLRUカウンタの値を0にし、その他の行のLRUカウンタの値を1加算するステップ610。そして、キャッシュドライバ120は、False非シーケンシャルリードを出力として返す。<シーケンシャルリードを検出後に学習を抑止する動作の説明>図11のフローチャートを参照して、シーケンシャルリードを検出した後に学習を抑止する機能を有するキャッシュドライバ120の動作例を説明する。HDD18に対するアクセスコマンドが発行された場合、キャッシュドライバ120は、当該コマンドがリードコマンドであるかを判定するステップ701。リードコマンドであると判定された場合ステップ701のYes、キャッシュドライバ120は、上記説明した図10の動作フローにより、リードコマンドがシーケンシャルリードであるかを判定するステップ702。シーケンシャルリードであると判定した場合ステップ702のYes、キャッシュドライバ120は、HDD18からデータを読み出すステップ703。一方、シーケンシャルリードではないと判定した場合ステップ702のNo、キャッシュドライバ120は、リードコマンドに対応するデータがNVC311内に存在するかを判定するステップ704。もし、データがNVC311内に存在すると判定した場合ステップ704のYesは、キャッシュドライバ120は、NVC311からデータを読み出すステップ705。データがNVC311内に存在しないと判定した場合ステップ704のNo、キャッシュドライバ120は、HDD18からデータを読み出すステップ706。そして、キャッシュドライバ120は、読み出したデータをNVC311に書き出し、HDD18から読み出されたデータを学習するステップ707。ステップ701において、リードコマンドではないライトコマンドであると判定した場合ステップ701のNo、ライトコマンドに対応するアドレスのデータがNVC内に存在するかを判定するステップ708。データがNVC311内に存在すると判定した場合ステップ708のYesは、NVC311内に存在するデータを書き換えると共に、ライトコマンドに対応するデータをHDD18に書き込むステップ709。もし、データがNVC311内に存在しないと判定した場合ステップ708のNo、ライトコマンドに対応するデータをHDD18に書き込むステップ710。以上の動作で、シーケンシャルリードを検出した後に、リードアクセスされたデータを学習しないようになり、性能の低下、およびキャッシュヒット率の低下を抑制することが可能になる。第1の実施形態の変形例プログラムAがシーケンシャルリードを行っていても、プログラムAのリードアクセスの間に、別のブログラムBがリードアクセスを行うと、サイズがリセットされるので、シーケンシャルリードを検出することが困難になる。ところが、シーケンシャルリード検出用データが2行のテーブルを有すると、二つのプログラムからリードアクセスが行われても、シーケンシャルリードを検出することが可能になる。次に、第1の実施の形態の変形例として、シーケンシャルリード検出用データが2行のテーブルである形態の遷移を、図12を用いて説明する。図8に示すリードアクセスがあった場合のシーケンシャルリード検出用データ306n=2内の値の推移を図12を参照して説明する。先ず、プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0100hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1001。キャッシュドライバ120は、シーケンシャルリード検出用データ1201を生成する。シーケンシャルリード検出用データ1201において、LRUCの値が1の行のHDD識別番号は1であり、NextLBAは180h、サイズは80hである。要求されたデータがHDDから読み出された後、プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0180hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1002。キャッシュドライバ120は、シーケンシャルリード検出用データ1202を生成する。シーケンシャルリード検出用データ1202において、LRUCの値が1の行のHDD識別番号は1であり、NextLBAは200h、サイズは100hである。要求されたデータがHDDから読み出された後、プログラムBの動作によりCPU11が、HDD_2に対してアドレスが1000hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1003。キャッシュドライバ120は、シーケンシャルリード検出用データ1203を生成する。シーケンシャルリード検出用データ1203において、LRUCの値が1の行のHDD識別番号は2であり、NextLBAは1000h、サイズは80hである。また、シーケンシャルリード検出用データ1203において、LRUCの値が2の行のHDD識別番号は1であり、NextLBAは200h、サイズは100hである。プログラムAの動作によりCPU11が、HDD_1に対してアドレスが0200hからセクタ数が80hのデータにリードアクセスするためのコマンドを発行するステップ1004。キャッシュドライバ120は、シーケンシャルリード検出用データ1204を生成する。シーケンシャルリード検出用データ1204において、LRUCの値が1の行のHDD識別番号は1であり、NextLBAは280、サイズは180hである。シーケンシャルリード検出用データ1204において、LRUCの値が2の行のHDD識別番号は2であり、NextLBAは1000h、サイズは80hである。このように、プログラムAのリードアクセスの間にプログラムBがリードアクセスを行っても、プログラムAのリードアクセスによるサイズの値がリセットされずに、更新されるので、プログラムAによるシーケンシャルリードアクセスを検出することが可能になる。<第2の実施形態>次に、シーケンシャルライトを検出したときに、キャッシュへの学習を抑止する実施形態を第2の実施形態として、説明する。シーケンシャルライトの場合に学習を行わない場合の動作について図13および図14を参照して説明する。なお、シーケンシャルライトの検出は、図10を参照して説明したシーケンシャルリードの検出と同様である。なお、キャッシュドライバ120は、シーケンシャルリード検出用データ306とは別のシーケンシャルライト検出用データを管理する。オペレーティングシステム110からHDD18へのアクセスコマンドが発行された場合、キャッシュドライバ120は、コマンドがリードコマンドであるかを判定するステップ1401。リードコマンドであると判定した場合ステップ1401のYes、キャッシュドライバ120は、NVC管理情報305を参照することによって、リードコマンドに対応するデータがNVC311内に存在するかを判定するステップ1402。データが存在すると判定した場合ステップ1402のYes、キャッシュドライバ120は、NVC管理情報305を参照することによって、リードコマンドに対応するNVC311内のデータと、リードコマンドに対応するHDD18内のデータとが一致するか、つまりHDD18内のデータがダーティーであるかを判定するステップ1403。ダーティーであると判定した場合ステップ1403のYes、キャッシュドライバ120は、NVC311からリードコマンドに対応するデータを読み出すステップ1404。データが存在しないと判定した場合ステップ1402のNo、またはダーティーではないと判定した場合ステップ1403のNo、キャッシュドライバ120は、リードアクセスがシーケンシャルリードであるかを判定するステップ1405。シーケンシャルリードであると判定した場合ステップ1405のYes、キャッシュドライバ120は、リードコマンドに対応するデータをHDD18から読み出すステップ1406。シーケンシャルリードではないと判定した場合ステップ1405のNo、キャッシュドライバ120は、NVC管理情報305を参照することによって、リードコマンドに対応するデータがNVC311内に存在するかを判定するステップ1407。データが存在すると判定した場合ステップ1402のYes、キャッシュドライバ120は、NVC311からリードコマンドに対応するデータを読み出すステップ1408。データが存在しないと判定した場合ステップ1402のNo、キャッシュドライバ120は、リードコマンドに対応するデータをHDD18から読み出すステップ1409。キャッシュドライバ120は、HDD18から読み出されたデータをNVC311に書き出し、データの学習を行うステップ1410。ステップ1401において、リードコマンドではない、すなわちライトコマンドであると判定した場合ステップ1401のNo、キャッシュドライバ120は、NVC管理情報305を参照することによって、ライトアクセスがシーケンシャルライトであるかを判定するステップ1411。シーケンシャルライトであると判定した場合にステップS1411のYes、ライトコマンドに対応するアドレスのデータがNVC311に格納されているかを判定するステップ1412。データが格納されていると判定した場合ステップ1412のYes、キャッシュドライバ120は、NVC311に格納されているデータを無効化する、またはNVC311に書き込まれているデータを上書きするステップ1413。そして、キャッシュドライバ120は、データをHDD18に書き込むステップ1414。ステップ1412において、データが存在しないと判定した場合ステップ1412のNo、キャッシュドライバ120は、データをHDD18に書き込むステップ1415。ステップ1411において、シーケンシャルライトではないと判定した場合ステップ1411のNo、ライトコマンドに対応するアドレスのデータがNVC311内に存在するかを判定するステップ1416。データがNVC311内に存在すると判定した場合ステップ1416のYes、キャッシュドライバ120は、NVC311内に存在するデータを書き換えるステップ1417。データがNVC311内に存在しないと判定した場合ステップ1416のNo、キャッシュドライバ120は、NVC管理情報305からエントリを見つけるステップ1418。キャッシュドライバ120は、見つけたNVC311のエントリに対応するアドレスにデータを書き込むステップ1419。以上の処理で、シーケンシャルライトアクセスの場合にNVC311をHDD18のライトバックキャッシュとして使用している場合、学習を行わないことでシーケンシャルライトの性能の低下を抑制することが可能になる。第3の実施形態先に説明した、第1の実施形態と第2の実施形態は、シーケンシャルリード検出用データとシーケンシャルライト検出用データとをそれぞれ設けて、シーケンシャルリードとシーケンシャルライトとを検出した。第3の実施形態として、HDD毎にシーケンシャルアクセス検出用データを設け、シーケンシャルアクセス検出用データに基づいてシーケンシャルリードとシーケンシャルライトとを検出する例について説明する。キャッシュドライバ120は、図15に示すように、HDD1用のシーケンシャルアクセス検出用データ1601と、HDD2用のシーケンシャルアクセス検出用データ1602とを管理する。シーケンシャルアクセス検出用データ1601、1602は、図165に示すように、2行のデータの配列を有する。キャッシュドライバ120のシーケンシャルアクセスを検出する手順の一例について図16のフローチャートを参照して説明する。このフローでは、アクセスコマンドのHDD識別子、LBAセクタ番号、セクタ数が入力として与えられ、TrueシーケンシャルアクセスまたはFalse非シーケンシャルアクセスを出力として返す。シーケンシャルアクセス検出サイズはあらかじめ決められているか、ドライバ起動時にパラメータとして与えられるたとえば16MB。キャッシュドライバ120は、シーケンシャルアクセス検出用データ1601、1602の内のアクセスコマンドが発行されたされたHDDに対応するシーケンシャルアクセス検出用データから次のLBAセクタ番号とが一致する行を探すステップ1701。一致する行があった場合ステップ1702のYes、キャッシュドライバ120は、次のLBAセクタ番号の値に今回のアクセスサイズセクタ数を加えるステップ1703。キャッシュドライバ120は、一致した行のLRUカウンタの値を0にし、その他の行のLRUカウンタの値を1加算するステップ1704。そして、キャッシュドライバ120は、現在のSizeの値に今回のアクセスサイズセクタ数を加えたサイズを算出するステップ1705。キャッシュドライバ120は、算出されたサイズがあらかじめ設定されたしきい値であるシーケンシャルアクセス検出サイズより大きいかを判定するステップ1706。シーケンシャルアクセス検出サイズより大きいと判定した場合ステップ1706のYes、キャッシュドライバ120は、Trueシーケンシャルアクセスを出力として返す。シーケンシャルアクセス検出サイズより大きくないと判定した場合ステップ1706のNo、キャッシュドライバ120は、現在のサイズの値を算出されたサイズの値に更新するステップ1707。そして、キャッシュドライバ120は、False非シーケンシャルアクセスを出力として返す。アクセスが発行されたHDD識別番号と次のLBAセクタ番号とが一致する行がなかった場合ステップ1702のNo、キャッシュドライバ120は、LRUカウンタの値が最も多い行を検出するステップ1708。キャッシュドライバ120は、検出された行のHDD識別番号にアクセスされたHDDに対応する値をセットし、NextLBAの値に今回のLBAセクタ番号とセクタ数との和をセットし、Sizeの値に今回のアクセスサイズセクタ数をセットするステップ1709。そして、キャッシュドライバ120は、ステップ1708において検出された行の行のLRUカウンタの値を0にし、その他の行のLRUカウンタの値を1加算するステップ1710。そして、キャッシュドライバ120は、False非シーケンシャルアクセスを出力として返す。なお、シーケンシャルアクセス検出用データ1601、1602は、1行のデータの配列を有していても良い。なお、本実施形態のSSD201を、HDD18のキャッシュとして用いる処理はコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に実現することができる。また、このコンピュータプログラムは、パーソナルコンピュータのみならず、プロセッサを内蔵した電子機器上で実行することができる。第4の実施形態上記実施形態では、SSD201を内蔵のHDD18のキャッシュリードキャッシュ、ライトバックキャッシュとして用いていた。しかし、SSD201をUSBやeS-ATA等の外部機器接続バスに接続された外部記憶装置のキャッシュリードキャッシュ、ライトバックキャッシュとして用いても良い。つまり、SSD201は、HDD18と外部記憶装置のキャッシュとして用いられる。外部記憶装置としてUSB-HDDを用いた例を図17に示す。図17に示すように、外部記憶装置としてのUSB-HDD202が、USBコントローラを有するICH14に接続されている。キャッシュドライバ1820は、SSD201をHDD18およびUSB-HDD202のキャッシュデバイスとして利用するプログラムである。このプログラムは、リード及びライトを制御して応答性能を向上させる、いわゆるHDDアクセラレータとして、機能させるプログラムである。具体的には、HDDアクセラレータは、OS上で動作するドライバという位置づけで、キャッシュドライバ1820が動作する。なお、図17において、図1と同一な部位には同一符合を附し、説明を省略する。次に、キャッシュドライバ1820の機能について、図18を参照して説明する。図18は、図17に示す情報処理装置の主要部を示すブロック図である。S-ATAコントローラ14AにHDD18が接続されている。USBコントローラ14BにSSD201およびUSB-HDD202が接続されている。情報処理装置10はオペレーティングシステムOS110が制御し、オペレーティングシステム110からHDD18およびUSB-HDD202へのアクセスは、すべてキャッシュドライバ1820を介して行われる。キャッシュドライバ1820は、S-ATAコントローラ14AおよびUSBコントローラ14Bを、直接的または間接的に制御する。また、キャッシュドライバ1820は、メモリコントローラ12Aを介して、メインメモリ13へのデータのアクセスを行う。SSD201の一部または全部の領域が、HDD18およびUSB-HDD202のキャッシュとして使用される。オペレーティングシステム110は、キャッシュデータの格納領域として使用されるSSD201のキャッシュに直接アクセスすることができない。本情報処理装置は、HDD18およびUSB-HDD202よりアクセス速度が速いSSDSolidStateDrive201を、HDD18およびUSB-HDD202のキャッシュとして利用することで、HDD18およびUSB-HDD202に対するアクセスの高速化を図る。第5の実施形態上記第4の実施形態では、SSD201とUSB-HDD202とが別体の例を示したが、これに限られない。第5の実施形態としては、図19に示すように、SSD201とUSB-HDD202とが一つの筐体内に設けられたハイブリッドハードディスクドライブ2000にも適用が可能である。このような構成においても、上記実施形態のキャッシュ制御を用いることが可能である。第6の実施形態また、第6の実施形態として、図20に示すように、ハイブリッドハードディスクドライブハイブリッド記憶装置内に、SSD201、HDD202の他に、制御部2101とメモリ2102を有するハイブリッドハードディスクドライブハイブリッド記憶装置2100に適用することも出来る。この場合、ハイブリッドハードディスクドライブハイブリッド記憶装置2100内の制御部2101が、メモリ2102を使用して、キャッシュ制御を行う。図20に示すように、メモリ2102内には、ユーザバッファ領域301、L1キャッシュ領域302、およびマージ用バッファ領域303、L1キャッシュバッファ領域304、SeqRead検出用データ306が確保される。第7の実施形態上記第6の実施形態では、制御部2101は、ハイブリッドハードディスクドライブハイブリッド記憶装置2100に設けられたメモリ2102をHDD202のキャッシュとして用いられるとしたが、これに限られない。第7の実施形態としては、図21に示すように、制御部2201のキャッシュドライバは、SSD201内の一部に設けられるNVC311を、HDD18およびHDD202のキャッシュとして用いてもよい。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。