第1の記憶装置および第2の記憶装置にコマンドを発行することによってデータの転送を行うコントローラと、前記第1の記憶装置を前記第2の記憶装置のリードキャッシュとして用いるキャッシュ手段であって、前記コントローラが前記第1の記憶装置に対して設定数より大きい数のコマンドを発行している場合、キャッシュデータを前記第1の記憶装置に書き込むためのライトコマンドを、発行しているコマンド数が前記設定数以下になるまで前記コントローラへの発行を保留する、キャッシュ手段と、を具備する情報処理装置。前記コントローラは、USBUniversalSerialBus規格に対応している、請求項1に記載の情報処理装置。前記第1の記憶装置は、フラッシュメモリを有する、請求項1に記載の情報処理装置。前記第2の記憶装置は、ハードディスクドライブを有する、請求項1に記載の情報処理装置。前記第1の記憶装置は、前記コントローラから発行される複数のコマンドを等しい優先度で処理する、請求項1に記載の情報処理装置。コントローラに接続された第1の記憶装置を前記コントローラに接続された第2の記憶装置のリードキャッシュとして用いるキャッシュ方法であって、前記コントローラが前記第1の記憶装置に対して設定数より大きい数のコマンドを発行している場合、キャッシュデータを前記第1の記憶装置に書き込むためのライトコマンドを、発行しているコマンド数が前記設定数以下になるまで前記コントローラへの発行を保留する、キャッシュ方法。前記コントローラは、USBUniversalSerialBus規格に対応している、請求項6に記載のキャッシュ方法。前記第1の記憶装置は、フラッシュメモリを有する、請求項6に記載のキャッシュ方法。前記第2の記憶装置は、ハードディスクドライブを有する、請求項6に記載のキャッシュ方法。前記第1の記憶装置は、前記コントローラから発行される複数のコマンドを等しい優先度で処理する、請求項6に記載のキャッシュ方法。USBコントローラに接続されたSSDUSB-SSDをUSBコントローラに接続されたハードディスクドライブUSB-HDDのリードキャッシュとして用いることが提案されている。USB-SSD第1の記憶装置をUSB-HDD第2の記憶装置のリードキャッシュとして用いた場合、リードキャッシュを使用しない場合に比べて性能が低下する場合があった。そのため、性能の低下を抑制することが望まれている。本発明の目的は、コントローラに接続された第1の記憶装置をコントローラに接続された第2の記憶装置のリードキャッシュとして用いた場合に性能の低下を抑制することが可能な情報処理装置およびキャッシュ方法を提供することである。実施形態によれば、情報処理装置は、コントローラと、キャッシュ手段とを具備する。コントローラは、第1の記憶装置および第2の記憶装置にコマンドを発行することによってデータの転送を行う。キャッシュ手段は、前記第1の記憶装置を前記第2の記憶装置のリードキャッシュとして用いる。キャッシュ手段は、前記コントローラが前記第1の記憶装置に対して設定数より大きい数のコマンドを発行している場合、キャッシュデータを前記第1の記憶装置に書き込むためのライトコマンドを、発行しているコマンド数が前記設定数以下になるまで前記コントローラへの発行を保留する。以下、実施の形態について図面を参照して説明する。図1は、実施形態に係る情報処理装置のシステム構成を示す図である。本実施形態の情報処理装置は、パーソナルコンピュータとして実現されている。図1に示すように、本情報処理装置は、CPUCentralprocessingunit11、MCHMemorycontrollerhub12、メインメモリ揮発性メモリ13、ICHIocontrollerhub14、GPUGraphicsprocessingunit15、ビデオメモリVRAM15A、サウンドコントローラ16、BIOS-ROMReadonlymemory17、HDDHarddiskdrive18、ODDOpticaldiscdrive20、各種周辺機器21、EEPROMElectricallyerasableprogrammableROM22、EC/KBCEmbeddedcontrollerkeyboardcontroller23等を備えている。CPU11は、本情報処理装置の動作を制御するプロセッサであり、HDD18やODD20からメインメモリ13にロードされる各種プログラムを実行する。このCPU11によって実行される各種プログラムの中には、リソース管理を司るOS110や、当該OS110の配下で動作する、キャッシュドライバ120および各種アプリケーションプログラム130等が存在する。キャッシュドライバ120は、後述するSSD202をキャッシュデバイスとして利用するプログラムである。また、CPU11は、BIOS-ROM17に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。以下では、BIOS-ROM17の格納物であるBIOS自体についてもBIOS17と表記することがある。MCH12は、CPU11とICH14との間を接続するブリッジとして動作すると共に、メインメモリ13をアクセス制御するメモリコントローラとして動作する。また、MCH12は、GPU15との通信を実行する機能を有している。GPU15は、本情報処理装置に組み込まれ、または、外部接続される表示装置を制御する表示コントローラである。GPU15は、VRAM15Aを有し、また、各種プログラムが表示しようとする画像をCPU11に代わって描画するアクセラレータを搭載している。ICH14は、HDD18およびODD20を制御するためのATAATAttachmentコントローラを内蔵する。ICH14は、PCIPeripheralcomponentinterconnectバスに接続された各種周辺機器21の制御も行う。また、ICH14は、サウンドコントローラ16との通信機能も有している。サウンドコントローラ16は音源デバイスであり、各種プログラムが再生対象とするオーディオデータを、本情報処理装置に組み込まれた、または、外部接続されるスピーカ等に出力する。EEPROM22は、例えば本情報処理装置の個体情報や環境設定情報などを格納するためのメモリデバイスである。そして、EC/KBC23は、電力管理を行うためのエンベデッドコントローラと、キーボードやポインティングデバイス等の操作によるデータ入力を制御するためのキーボードコントローラとが集積された1チップMPUMicroprocessingunitである。キャッシュドライバ120は、SSD202の少なくとも一部の領域NVCNonVolatileCacheをHDD201のキャッシュメモリとして用いる。次に、キャッシュドライバ120の機能について図2を参照して説明する。図2は、図1に示す情報処理装置の主要部を示すブロック図である。メインメモリ13内には、ユーザバッファ領域301、L1キャッシュ領域302、およびマージ用バッファ領域303が確保される。また、キャッシュドライバ120によって、L1管理情報304、NVC管理情報305、コマンド発行数確認用データ306がメモリ13内に作成される。L1キャッシュ領域302は、データをNVC311にコピーするときに使用するバッファである。L1キャッシュ領域302は、フィルタドライバがロードされるときにメインメモリに確保される。なお、L1キャッシュ領域302の容量は16MB程度である。また、マージ用バッファ領域303は、キャッシュの方式がライトバックWriteBack方式の場合に使用される。マージ用バッファ領域303は、リードアクセス時に、L1キャッシュ領域302に一部のデータが格納されている場合に、HDD201から読み出されたL1キャッシュ領域302に格納されていないデータを一時的に格納するために用いられる。マージ用バッファ領域303は、L1キャッシュ領域302と同じ容量である。L1管理情報304は、L1キャッシュ領域302に格納されているキャッシュデータを管理するための情報である。NVC管理情報305は、NVC311に格納されているキャッシュデータを管理するための情報である。NVC管理情報305内には、複数のエントリが設定され、各エントリ内にはキャッシュデータの格納場所、キャッシュデータに対応するHDD201の格納場所、キャッシュデータとHDD201内のデータとが一致するかを示すデータ等が格納されている。コマンド発行数確認用データ306の値は、SSD202に対して発行中のコマンドを確認するために設けられている。SSD202に対してコマンドライトコマンド、リードコマンドが発行された時にコマンド発行数確認用データ306の値がインクリメントされ、発行されたコマンドの完了通知が返ってきた時にコマンド発行数確認用データ306の値がデクリメントされる。情報処理装置10はオペレーティングシステムOS110が制御し、オペレーティングシステム110からHDD201へのアクセスはすべてキャッシュドライバ120を介して行われる。キャッシュドライバ120はUSBコントローラ14Aを直接的または間接的に制御する。USBコントローラ14Aを介してHDD201が接続されている。また、キャッシュドライバ120は、メモリコントローラ12Aを介して、メインメモリ13へのデータのアクセスを行う。キャッシュドライバ120はシステムの起動時にメインメモリ13にロードされる。キャッシュドライバ120は、キャッシュ管理情報301を格納するための領域をメインメモリ13内に確保して初期化し、キャッシュには何も記録されていない状態にした後、キャッシュ制御処理を開始する。キャッシュ管理情報301は、キャッシュディレクトリなどのキャッシュデータを管理するためのデータを有する。キャッシュドライバ120の動作時、キャッシュドライバ120は、メインメモリ13内のキャッシュ管理情報301にライトキャッシュおよびリードキャッシュの学習データを管理するためのデータを記録する。シャットダウン時、キャッシュドライバ120は、メインメモリ13内のキャッシュ管理情報301を破棄する。なお、キャッシュドライバ120が動作を開始するまでは、BIOSプログラムがHDD201へのアクセスを制御する。USBコントローラ14Aは、ホストからライトアクセス要求またはリードアクセス要求があった場合、HDD201にアクセスする。SSD202の一部または全部の領域がHDD201のキャッシュとして使用される。オペレーティングシステム110は、キャッシュデータの格納領域として使用されるSSD202のキャッシュに直接アクセスすることができない。本情報処理装置は、HDD201よりアクセス速度が速いSSDSolidStateDrive202をHDD201のキャッシュとして利用することで、HDD201に対するアクセスの高速化を図る。SSD202は、フラッシュメモリ不揮発性メモリを有する。次に図3を参照して、NVC311をキャッシュとして用いる場合の動作の概要を説明する。リードアクセスデータがL1キャッシュおよびNVC311内のキャッシュデータにヒットしない場合、キャッシュドライバ120は、HDD201からデータを読み出し、読み出したデータをL1キャッシュ領域302に書き込むステップ408。そして、キャッシュドライバ120は、L1キャッシュ領域302に書き込まれたデータをユーザバッファ領域301に書き込むステップ404。また、L1キャッシュ領域302へのアクセスがビジーの場合、キャッシュドライバ120は、HDD201からデータを読み出し、読み出したデータをユーザバッファ領域301に書き込むステップ412。リードアクセスデータの全てがL1キャッシュ領域302内のキャッシュデータにヒットした場合、キャッシュドライバ120は、L1キャッシュ領域302からデータを読み出して、ユーザバッファ領域301に書き込むステップ404。ライトアクセスデータの一部がL1キャッシュ領域302内のキャッシュデータにヒットした場合、キャッシュドライバ120は、ヒットしなかったデータをHDD201から読み出し、読み出されたデータをマージ用バッファ領域303に書き込むステップ410。そして、キャッシュドライバ120は、L1キャッシュ領域302内で、L1キャッシュ領域302内のヒットしたデータとマージ用バッファ領域303に書き込まれたデータとをマージするステップ409。キャッシュドライバ120は、マージされたデータをユーザバッファ領域301に格納するステップ404。キャッシュドライバ120は、マージされたデータをNVC311に格納するステップ405。リードアクセスデータがL1キャッシュ領域302内のキャッシュデータにミスし、リードアクセスデータのすべてがNVC311内のキャッシュデータにヒットした場合、キャッシュドライバ120は、NVC311からデータを読み出し、データをユーザバッファ領域301に書き込むステップ402。リードアクセスデータがL1キャッシュ領域302内のキャッシュデータにミスし、リードアクセスデータの一部がNVC311内のキャッシュデータにヒットした場合、ヒットしなかったデータをHDD201から読み出し、読み出されたデータをマージ用バッファ領域303に書き込むステップ410。そして、キャッシュドライバ120は、NVC311からヒットしたデータを読み出すステップ406。キャッシュドライバ120は、L1キャッシュ領域302内で、NVC311から読みだされたデータとマージ用バッファ領域303内のデータとをマージするステップ409。キャッシュドライバ120は、マージしたデータをユーザバッファ領域301に転送するステップ404。また、キャッシュドライバ120は、マージしたデータをNVC311に格納するステップ405。ライトアクセスデータがL1キャッシュ領域302およびNVC311内のキャッシュデータにヒットしない場合、キャッシュドライバ120は、ライトアクセスデータをL1キャッシュ領域302に一端書き込んだ後にステップ403、L1キャッシュ領域302内のライトアクセスデータをNVC311に書き込むステップ405。なお、L1キャッシュ領域302へのアクセスがビジーの場合、キャッシュドライバ120は、ライトアクセスデータを直接HDD201に書き込む。ライトアクセスデータがL1キャッシュ領域302内のキャッシュデータにヒットした場合、キャッシュドライバ120は、ライトアクセスデータをL1キャッシュ領域302に書き込みステップ403、L1キャッシュ領域302内のライトアクセスデータをNVC311に格納するステップ405。ライトアクセスデータがNVC311内のキャッシュデータにヒットした場合、ライトアクセスデータをNVC311に書き込むステップ401。L1キャッシュ領域302に書き込まれたキャッシュデータがハードディスクドライブに書き込まれていない場合、キャッシュドライバ120は、L1キャッシュ領域302に書き込まれているデータをHDD201に書き込むst407。NVC311に書き込まれたキャッシュデータがハードディスクドライブに書き込まれていない場合、キャッシュドライバ120は、NVC311からデータを読み出し、読み出したデータをL1キャッシュ領域302に書き込むステップ406。キャッシュドライバ120は、L1キャッシュ領域302に書き込まれたデータをHDD201に書き込むステップ407。キャッシュドライバ120は、ステップ401~ステップ412の基本データ転送機能の組み合わせで、データの転送を行う。ライトスルーキャッシュリードキャッシュはライトスルーキャッシュとも呼ばれている。一般的なリードキャッシュの動作について図4を参照して説明する。オペレーティングシステム110からHDD201へのアクセスコマンドが発行された場合、キャッシュドライバは、コマンドがリードコマンドであるかを判定するステップ501。リードコマンドであると判定した場合ステップ501のYes、キャッシュドライバは、NVC管理情報305を参照することによって、リードコマンドに対応するデータがNVC311内に存在するかを判定するステップ502。データが存在すると判定した場合ステップ502のYes、NVC311からリードコマンドに対応するデータを読み出すステップ503。データが存在しないと判定した場合、キャッシュドライバは、HDD201からリードコマンドに対応するデータを読み出すステップ504。そして、キャッシュドライバは、HDD201から読み出されたデータをNVC311に書き込み、データを学習するステップ505。ステップ501において、リードコマンドではないつまり、ライトコマンドであると判定した場合ステップ501のNo、ライトコマンドに対応するアドレスのデータがNVC311内に存在するかを判定するステップ506。データがNVC311内に存在すると判定した場合ステップ506のYes、NVC311内に存在するデータを書き換えると共に、ライトコマンドに対応するデータをHDD201に書き込むステップ507。データがNVC311内に存在しないと判定した場合ステップ506のNo、ライトコマンドに対応するデータをHDD201に書き込むステップ508。以上説明したのが、シーケンシャルリードを検出した後のリードアクセスを学習する場合のキャッシュドライバの動作である。実際のキャッシュ制御は、図4を参照して説明したよな直線的なフローではなく、記憶装置にコマンドを発行したら一旦制御を返し、記憶装置へのコマンドが終了したら続きの処理を行うように実装されるのが一般的である。キャッシュデバイスSSDへのコマンドは以下のように分類される。Aリードコマンドがキャッシュにヒットし、キャッシュからリードBライトコマンドがキャッシュにヒットし、キャッシュにライトCリードコマンドがキャッシュにミスし、HDDからリードしたデータを学習するために、キャッシュにライトここで、AおよびBはホストからのコマンドに対応して発行されるコマンドでる。これらのコマンドが完了するまではホストの実行を継続できないため、最優先で処理すべきコマンドである。これに対しCは、ホストからのリードコマンドはHDDからリードした時点で終了を返しているため、ホストの実行は継続している。すなわち、Cは優先度の低い処理である。キャッシュデバイスへのコマンドを下位モジュールに発行するときは、A、Bは高優先度で発行し、Cは低優先度で発行するのが一般的である。しかしながら、USB規格のような下位モジュールが優先度制御をサポートしていない場合、すべてのコマンドが等しい優先度で処理される。ホスト側は同時にいくつものプロセスを実行しており、記憶装置に対しても同時に多数のコマンドが発行されるのが一般的である。ここで、多くのリードコマンドがキャッシュにミスし、大量のCを発行中にAまたはBを発行した場合、たまっているCの実行が完了するまではAまたはBが実行されないことになり、システムの処理性能が低下してしまう。本実施形態の場合、キャッシュドライバ120は、SSD202に対して1より大きい数のコマンドが発行されている場合、キャッシュデータをNVC311に書き込むためのライトコマンドをUSBコントローラ14Aに発行しないことで、システムの処理性能の定価を抑制する。処理性能が低下する例について図5を参照して説明する。オペレーティングシステム110は、キャッシュドライバにHDD201へのリードコマンドを発行するステップ601。キャッシュドライバは、USBコントローラ14AにHDD201へのリードコマンドを発行するステップ602。USBコントローラ14Aは、HDD201に対してリードコマンドを発行するステップ603。HDD201は、データの転送が完了したら、USBコントローラ14Aに完了通知を発行するステップ604。USBコントローラ14Aは、キャッシュドライバに完了通知を発行するステップ605。キャッシュドライバはオペレーティングシステム110に完了通知を発行するステップ606。キャッシュドライバは、読み出されたデータを学習するために、読み出されたデータをキャッシュデータとしてSSD202に書き込むためのライトコマンドをUSBコントローラ14Aに発行するステップ607。オペレーティングシステム110は、HDD201にデータを書き込むためのライトコマンドをキャッシュドライバに発行するステップ608。USBコントローラ14Aは、HDD201から読み出されたデータをキャッシュデータとしてSSD202に書き込むためのライトコマンドをSSD202に発行するステップ608。オペレーティングシステム110は、キャッシュドライバにHDD201へのライトコマンドを発行するステップ609。キャッシュドライバは、USBコントローラ14AにHDD201へのライトコマンドを発行するステップ610。USBコントローラ14Aは、ステップ608のライトコマンドが発行中であるため、リードコマンドをHDD201に発行することができない。ステップ608のライトコマンドに応じた書き込みが終了すると、SSD202は、USBコントローラ14Aに完了通知を発行するステップ611。USBコントローラ14Aは、キャッシュドライバに完了通知を発行するステップ612。USBコントローラ14Aの発行中のコマンドが0になったので、USBコントローラ14Aは、ステップ610のライトコマンドに応じたライトコマンドをHDD201に発行するステップ613。ライトコマンドに応じたデータの書き込みが終了すると、HDD201は、USBコントローラに完了通知を発行するステップ614。USBコントローラ14Aは、完了通知をキャッシュドライバに発行するステップ615。キャッシュドライバは、完了通知をオペレーティングシステム110に発行する。USBコントローラ14Aは、ステップ610のHDD201へのライトコマンドを受信しても、ステップd508のライトコマンドが発行中であるため、ステップ610のライトコマンドに応じたライトコマンドをHDD201に発行することができない。そのため、処理性能が低下する。本実施形態は、優先度制御をサポートしていないUSBの記憶装置の場合に、Cの処理のためにAまたはBの処理が待たされないようにして、システムの性能の低下を抑制するキャッシュドライバ120を提供する。次に、図6のフローチャートを参照して、キャッシュドライバ120による処理の手順を説明する。オペレーティングシステム110からHDD201へのアクセスコマンドが発行された場合、キャッシュドライバ120は、コマンドがリードコマンドであるかを判定するステップ701。リードコマンドであると判定した場合ステップ701のYes、キャッシュドライバ120は、NVC管理情報305を参照することによって、リードコマンドに対応するデータがNVC311内に存在するかを判定するステップ702。データが存在すると判定した場合ステップ702のYes、NVC311からリードコマンドに対応するデータを読み出すステップ703。データが存在しないと判定した場合、キャッシュドライバ120は、HDD201からリードコマンドに対応するデータを読み出すステップ704。キャッシュドライバ120は、コマンド発行数確認用データ306の値を参照することによってNVC311SSD202へのコマンド発行数が設定数を超えているかを判定するステップ705。設定数を超えていないと判定した場合ステップ705のYes、キャッシュドライバ120は、HDD201から読み出されたデータをNVC311に書き込み、データを学習するステップ706。設定数を超えていると判定した場合ステップ705のNo、キャッシュドライバ120は、HDD201から読み出されたデータを学習しない。ステップ701において、リードコマンドではないつまり、ライトコマンドであると判定した場合ステップ701のNo、ライトコマンドに対応するアドレスのデータがNVC311内に存在するかを判定するステップ707。データがNVC311内に存在すると判定した場合ステップ707のYes、NVC311内に存在するデータを書き換えると共に、ライトコマンドに対応するデータをHDD201に書き込むステップ708。データがNVC311内に存在しないと判定した場合ステップ707のNo、ライトコマンドに対応するデータをHDD201に書き込むステップ709。SSD202に発行されたコマンドに対応する処理が終了していない場合に、データを学習しないことで、性能の低下を抑制することが可能になる。なお、本実施形態のSSD202をHDD201のキャッシュとして用いる処理はコンピュータプログラムによって実現されているので、このコンピュータプログラムをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータにインストールするだけで、本実施形態と同様の効果を容易に実現することができる。また、このコンピュータプログラムは、パーソナルコンピュータのみならず、プロセッサを内蔵した電子機器上で実行することができる。変形例なお、上記実施形態では、HDD201とSSD202とが別の例を示したが、図7に示すように、HDD201とSSD202とが一つの筐体内に設けられたハイブリッドハードディスクドライブ800にも上記実施形態のキャッシュ制御を用いることが可能である。なお、キャッシュドライバ120は、SSD202へのアクセスコマンドの発行数が設定数より大きい場合、発行数が設定数以下になるまでコントローラへのアクセスコマンドの発行を保留しておき、保留していたアクセスコマンドを発行してもよい。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。