(57)【要約】【課題】不揮発性半導体メモリをキャッシュとして内蔵する場合におけるデータアクセスを効率的に行うことを実現した情報処理装置を提供する。【解決手段】ハイブリッドＨＤＤ１９は、記憶部１９６のキャッシュとして半導体不揮発性メモリ１９４を内蔵する。ホスト側からリード要求を受けると、制御部１９１は、記憶部１９６から読み出したデータを、最も最近読み出された順にキャッシュされるように入れ替えを行いながら半導体不揮発性メモリ１９４に格納する。また、ホスト側で動作する起動期間通知モジュール１０１は、パワーオンまたはリセットに伴う起動処理実行時、起動期間に関する通知をハイブリッドＨＤＤ１９に対して行い、制御部１９１は、起動開始後、ホスト側から起動完了通知をなされるまでの間にリード要求を受けたデータを優先的に半導体不揮発性メモリ１９４に格納するデータ管理を実行する。【選択図】図２
2010176306.tif 000002
【特許請求の範囲】
【請求項１】
外部記憶装置と、
前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、
を具備し、
前記本体装置は、電源投入指示または再起動指示に応答して起動処理を行う場合に、少なくとも起動完了時を含む起動期間に関する通知を前記外部記憶装置に送信する起動期間通知手段を有し、
前記外部記憶装置は、
不揮発性の第１の記憶手段と、
不揮発性の第２の記憶手段と、
前記本体装置からデータの読み出しを要求された際、読み出し対象のデータが前記第２の記憶手段に格納されている場合、前記第２の記憶手段に格納されているデータを読み出して前記本体装置に転送し、読み出し対象のデータが前記第２の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第１の記憶手段から読み出して前記本体装置に転送すると共に、当該読み出したデータを前記第２の記憶手段に格納するリード制御手段と、
を有し、
前記リード制御手段は、
前記本体装置における起動処理に伴って前記外部記憶装置が稼働を開始した後、前記本体装置から起動完了を示す通知が送信されるまでの間に、前記本体装置から読み出しが要求されたデータを、前記本体装置の起動期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納する第１のデータ管理手段と、
前記第１のデータ管理手段によって前記本体装置の起動期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納されたデータを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象のデータが前記第２の記憶手段に格納されるように、前記第２の記憶手段内におけるデータの入れ替えを実行する第２のデータ管理手段と、
を含むことを特徴とする情報処理装置。
【請求項２】
前記外部記憶装置は、前記本体装置からデータの書き込みを要求された際、書き込み対象のデータを前記第１の記憶手段に格納すると共に、この書き込みに伴って更新されるべきデータが前記第２の記憶手段に格納されている場合、当該更新されるべきデータを前記第２の記憶手段内において無効化するライト制御手段をさらに具備することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記外部記憶装置の前記リード制御手段に含まれる前記第１のデータ管理手段は、前記本体装置における起動処理に伴って前記外部記憶装置が稼働を開始する都度、前記本体装置の起動期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納済みのデータについて、前記本体装置の起動期間中において読み出しが要求されたデータであることを識別するために付与される属性を無効化することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記外部記憶装置は、前記第２の記憶手段が、前記第１の記憶手段よりも記憶容量が小さいことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記外部記憶装置は、
前記第１の記憶手段が磁気ディスクを記憶部として備えてなり、
前記第２の記憶手段が不揮発性半導体メモリを記憶部として備えてなる、
ことを特徴とする請求項４記載の情報処理装置。
【請求項６】
不揮発性の第１の記憶手段と、
不揮発性の第２の記憶手段と、
データの読み出しを要求された際、読み出し対象のデータが前記第２の記憶手段に格納されている場合、前記第２の記憶手段に格納されているデータを読み出して要求元に転送し、読み出し対象のデータが前記第２の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第１の記憶手段から読み出して要求元に転送すると共に、当該読み出したデータを前記第２の記憶手段に格納するリード制御手段と、
を具備し、
前記リード制御手段は、
稼働を開始した後、所定の通知が送信されるまでの所定の期間に、読み出しが要求されたデータを、前記所定の期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納する第１のデータ管理手段と、
前記第１のデータ管理手段によって前記所定の期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納されたデータを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象のデータが前記第２の記憶手段に格納されるように、前記第２の記憶手段内におけるデータの入れ替えを実行する第２のデータ管理手段と、
を有することを特徴とするデータ記憶装置。
【請求項７】
データの書き込みを要求された際、書き込み対象のデータを前記第１の記憶手段に格納すると共に、この書き込みに伴って更新されるべきデータが前記第２の記憶手段に格納されている場合、当該更新されるべきデータを前記第２の記憶手段内において無効化するライト制御手段と、
を具備することを特徴とする請求項６記載のデータ記憶装置。
【請求項８】
前記リード制御手段の前記第１のデータ管理手段は、稼働を開始する都度、前記所定の期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納済みのデータについて、前記所定の期間中において読み出しが要求されたデータであることを識別するために付与される属性を無効化することを特徴とする請求項６記載のデータ記憶装置。
【請求項９】
前記第２の記憶手段は、前記第１の記憶手段よりも記憶容量が小さいことを特徴とする請求項６記載のデータ記憶装置。
【請求項１０】
前記第１の記憶手段が磁気ディスクを記憶部として備えてなり、
前記第２の記憶手段が不揮発性半導体メモリを記憶部として備えてなる、
ことを特徴とする請求項６記載のデータ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば不揮発性半導体メモリを内蔵するハイブリッドＨＤＤ（Hard Disk Drive）を起動ディスクとして搭載するパーソナルコンピュータ等に適用して好適なデータ管理技術に関する。
【背景技術】
【０００２】
近年、ノートブックタイプやデスクトップタイプ等、様々な種類のパーソナルコンピュータが広く利用されている。この種のパーソナルコンピュータは、起動ディスクとする外部記憶装置としてＨＤＤを搭載することが一般的である。
【０００３】
また、最近では、ＨＤＤのレスポンス性能を向上させるために、ＨＤＤに不揮発性メモリを内蔵させ、不揮発性半導体メモリをキャッシュとして利用するといった、いわゆるハイブリッドＨＤＤに関する提案も種々なされている（例えば特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１６７７８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常、第１の記憶媒体に対するデータアクセスを、第２の記憶媒体をキャッシュとして利用しながら行う場合、最近にアクセスされたデータほど再度アクセスされる可能性が高いことを考慮して、アクセスされた時が時間的に近い順に優先的に存在するように、第２の記憶媒体内のデータの入れ替え制御を実施する。よって、ハイブリッドＨＤＤを搭載するパーソナルコンピュータを電源オンする場合には、前回の電源オフ時直前にアクセスされたデータでキャッシュである不揮発性半導体メモリ内が占められていることになる。
【０００６】
ところで、パーソナルコンピュータに対しては、電源オン操作を行ってから利用可能な状態になるまでの時間を少しでも短くして欲しいという要望が強い。そのため、ハイブリッドＨＤＤを起動ディスクとして搭載する場合、（前回の電源オフ時直前にアクセスされたデータでキャッシュである不揮発性半導体メモリ内が占められる）従前のキャッシュ技術をそのまま適用するのではなく、電源オン時にアクセスされる可能性の高いデータが優先的に不揮発性半導体メモリ内に保持されるように制御する仕組みが求められる。
【０００７】
この発明はこのような事情を考慮してなされたものであり、不揮発性半導体メモリをキャッシュとして内蔵するハイブリッドＨＤＤを起動ディスクとして搭載するパーソナルコンピュータ等の起動時間を短縮することのできる情報処理装置およびデータ記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前述した目的を達成するために、この発明の情報処理装置は、外部記憶装置と、前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、を具備し、前記本体装置は、電源投入指示または再起動指示に応答して起動処理を行う場合に、少なくとも起動完了時を含む起動期間に関する通知を前記外部記憶装置に送信する起動期間通知手段を有し、前記外部記憶装置は、不揮発性の第１の記憶手段と、不揮発性の第２の記憶手段と、前記本体装置からデータの読み出しを要求された際、読み出し対象のデータが前記第２の記憶手段に格納されている場合、前記第２の記憶手段に格納されているデータを読み出して前記本体装置に転送し、読み出し対象のデータが前記第２の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第１の記憶手段から読み出して前記本体装置に転送すると共に、当該読み出したデータを前記第２の記憶手段に格納するリード制御手段と、を有し、前記リード制御手段は、前記本体装置における起動処理に伴って前記外部記憶装置が稼働を開始した後、前記本体装置から起動完了を示す通知が送信されるまでの間に、前記本体装置から読み出しが要求されたデータを、前記本体装置の起動期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納する第１のデータ管理手段と、前記第１のデータ管理手段によって前記本体装置の起動期間中において読み出しが要求されたデータであることを識別可能に前記第２の記憶手段に格納されたデータを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象のデータが前記第２の記憶手段に格納されるように、前記第２の記憶手段内におけるデータの入れ替えを実行する第２のデータ管理手段と、を含むことを特徴とする。
【発明の効果】
【０００９】
この発明によれば、不揮発性半導体メモリをキャッシュとして内蔵するハイブリッドＨＤＤを起動ディスクとして搭載するパーソナルコンピュータ等の起動時間を短縮することが実現される。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る情報処理装置（パーソナルコンピュータ）のシステム構成を示す図。
【図２】同実施形態のコンピュータが備えるハイブリッドＨＤＤの構成および動作原理を説明するための概念図。
【図３】同実施形態のコンピュータが備えるハイブリッドＨＤＤの制御部が実行する不揮発性半導体メモリ内におけるデータの入れ替えの基本原理を説明するための図。
【図４】同実施形態のコンピュータのパワーオン時またはリブート時におけるハイブリッドＨＤＤ１９の動作手順を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照して、この発明の実施形態を説明する。
【００１２】
図１は、本発明の一実施形態に係る情報処理装置１のシステム構成を示す図である。本情報処理装置１は、パーソナルコンピュータ（ＰＣ）として実現されている。
【００１３】
図１に示すように、本コンピュータ１は、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、表示コントローラ１４、ビデオメモリ（ＶＲＡＭ）１４Ａ、サウスブリッジ１５、サウンドコントローラ１６、ＢＩＯＳ（Basic Input/Output System）−ＲＯＭ１７、ＬＡＮコントローラ１８、ハイブリッドＨＤＤ１９、ＯＤＤ（optical disc drive）２０、無線ＬＡＮコントローラ２１、ＵＳＢコントローラ２２およびエンベデッドコントローラ／キーボードコントローラ（ＥＣ／ＫＢＣ）２３等を備えている。
【００１４】
ＣＰＵ１１は、本コンピュータ１の動作を制御するプロセッサであり、ハイブリッドＨＤＤ１９やＯＤＤ２０から主メモリ１３にロードされる、オペレーティングシステム（ＯＳ）１００や当該ＯＳ１００配下で動作するユーティリティを含む各種アプリケーションプログラムを実行する。本コンピュータ１のＯＳ１００は、後述する起動期間通知モジュール１０１を有している。また、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１７に格納されたＢＩＯＳも実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００１５】
ノースブリッジ１２は、ＣＰＵ１１のローカルバスとサウスブリッジ１５との間を接続するブリッジデバイスである。ノースブリッジ１２には、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ１２は、表示コントローラ１４との通信を実行する機能も有している。
【００１６】
表示コントローラ１４は、本コンピュータ１のアウトプットデバイスとして使用される表示装置を制御するデバイスである。この表示コントローラ１４によって表示信号が生成される。
【００１７】
サウスブリッジ１５は、ＰＣＩ（Peripheral Component Interconnect）バス上およびＬＰＣ（Low Pin Count）バス上の各デバイスを制御する。また、サウスブリッジ１５は、ハイブリッドＨＤＤ１９およびＯＤＤ２０を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラおよびＢＩＯＳ−ＲＯＭ１７をアクセス制御するメモリコントローラが内蔵されている。さらに、サウスブリッジ１５は、サウンドコントローラ１６およびＬＡＮコントローラ１８との通信を実行する機能も有している。
【００１８】
サウンドコントローラ１６は音源デバイスであり、再生対象のオーディオデータをアウトプットデバイスとして使用されるスピーカに出力する。
【００１９】
ＬＡＮコントローラ１８は、例えばEthernet（登録商標）規格の有線通信を実行する有線通信デバイスであり、無線ＬＡＮコントローラ２１は、例えばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。また、ＵＳＢコントローラ２２は、例えばUSB2.0規格のケーブルを介して外部機器との通信を実行する。
【００２０】
ＥＣ／ＫＢＣ２３は、電力管理を行うためのエンベデッドコントローラと、本コンピュータ１のインプットデバイスとして使用されるキーボードやポインティングデバイスを制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このＥＣ／ＫＢＣ２３は、ユーザの操作に応じて本コンピュータ１をパワーオン／パワーオフする機能を有している。
【００２１】
以上のような構成をもつ本コンピュータ１は、起動ディスクとする主要な外部記憶装置として、ハイブリッドＨＤＤ１９を備える。そして、本コンピュータ１は、このハイブリッドＨＤＤ１９を起動ディスクとした場合における起動時間の短縮を実現するための仕組みを設けたものであり、以下、この点について詳述する。
【００２２】
図２は、起動ディスクとしてハイブリッドＨＤＤ１９を搭載する本コンピュータ１の構成および動作原理を説明するための概念図である。
【００２３】
図２に示すように、ハイブリッドＨＤＤ１９は、制御部１９１、ＡＴＡＣ（AT Attachment Controller）１９２、ＨＤＣ（Hard Disk Controller）１９３、不揮発性半導体メモリ１９４、揮発性半導体メモリ１９５、記憶部１９６等を有している。一方、ホスト側では、ＯＳ１００の起動期間通知モジュール１０１が動作する。この起動期間通知モジュール１０１は、本コンピュータ１がパワーオンまたはリブートされた際、起動完了時にその旨をハイブリッドＨＤＤ１９側（制御部１９１）に通知するプログラムである。また、リブート時においては、起動期間通知モジュール１０１は、再起動の開始時を認識させるために、シャットダウンが完了した旨の通知も実行する。なお、起動期間通知モジュール１０１によるシャットダウン完了通知に代えて、ＢＩＯＳからの起動開始通知によって、起動開始をハイブリッドＨＤＤ１９側に認識させるようにしても良い。パワーオン時については、ハイブリッドＨＤＤ１９側は、通電が開始された際に起動の開始時を認識することができる。
【００２４】
制御部１９１は、本ハイブリッドＨＤＤ１９内の動作を制御するマイクロプロセッサである。ＡＴＡＣ１９２は、ホスト側、具体的には、サウスブリッジ１５との間をＡＴＡ  Ｉ／Ｆで接続するコントローラである。ＨＤＣ１９３は、記憶部１９６を駆動制御するコントローラである。
【００２５】
また、不揮発性半導体メモリ１９４は、例えばＮＡＮＤフラッシュであり、揮発性半導体メモリは、例えばＤＲＡＭであり、記憶部１９６は、磁気ディスク（ＨＤ）や磁気ヘッド等からなる本ハイブリッドＨＤＤ１９の記憶部である。ホスト側に論理アドレス空間として認識される本ハイブリッドＨＤＤ１９の物理アドレス空間は、すべて記憶部１９６上に割り当てられ、揮発性半導体メモリ１９５は、この記憶部１９６へ書き込むデータおよび記憶部１９６から読み出されたデータを一時的に格納するために用いられる。また、不揮発性半導体メモリ１９４は、記憶部１９６から読み出されたデータを最近に読み出された順に所定量格納するために用いられる。例えばＮＡＮＤフラッシュである不揮発性半導体メモリ１９４は、磁気ディスクや磁気ヘッド等からなる記憶部１９６よりもデータの読み出し速度が速いので、最近に読み出されたデータほど再び読み出される確率が高いことを考慮すると、たとえ電源がオフされた後に再び電源がオンされた場合であっても、電源オフ直前に読み出されたデータの再読み出しを高速に行えることになり、本ハイブリッドＨＤＤ１９のレスポンス性能を向上させることができる。
【００２６】
図３は、制御部１９１が実行する不揮発性半導体メモリ１９４内におけるデータの入れ替えの基本原理を説明するための図である。
【００２７】
ここでは、記憶部１９６の記憶容量を１２０Ｇバイト、不揮発性半導体メモリ１９４の記憶容量を２Ｇバイト、記憶部１９６から読み出されたデータを不揮発性半導体メモリ１９４内に格納する際の単位であるラインサイズを６４Ｋバイトと想定し、また、キャッシュ技術の１つである４ｗａｙセットアソシアティブ方式を採用するものと想定する。
【００２８】
ホスト側がＩ／Ｏ要求（リードコマンド，ライトコマンド）を発行する際に指定される論理アドレス（ＬＢＡ：Logical Block Address）は、記憶部１９６の記憶容量１２０Ｇバイトを表すのに２８ビットの大きさをもつことになる。ＬＢＡの下位７（０−６）ビットは、ラインサイズ６４Ｋバイトから決定される。即ち、６４Ｋバイト＝１６ビット、１セクタ＝５１２バイト＝９ビットから、１６−９＝７。
【００２９】
また、ＬＢＡの中位１３（７−１９）ビットは、ここではＩｎｄｅｘＬ部と称することとし、不揮発性半導体メモリ１９４内に格納されているデータを管理するディレクトリを参照するためのインデックスとなる。ディレクトリは、制御部１９１が管理するメモリ上におかれ、適宜に不揮発性半導体メモリ１９６に格納される。また、このＩｎｄｅｘＬの１３ビットは、不揮発性半導体メモリ１９６の記憶容量２Ｇバイト、ラインサイズ６４Ｋバイト、Ｗａｙ数４から決定される。即ち、不揮発性半導体メモリ１９６の記憶容量２Ｇバイト＝３１ビット、ラインサイズ６４Ｋバイト＝１６ビット、Ｗａｙ数４＝２ビットから、３１−１６−２＝１３。
【００３０】
そして、ＬＢＡの上位８（２０−２７）ビット、ここではＩｎｄｅｘＨ部と称することとし、ディレクトリに管理されるＩｎｄｅｘＨの値と比較される。ディレクトリは、（ＩｎｄｅｘＬ分の行数）×（セットアソシアティブＷａｙ数分の列数）で構成される表形式のデータ構造体となる。この例の場合、８，１９２行×４列の表になる。
【００３１】
ディレクトリの各列には、ＩｎｄｅｘＨフィールド（Ｈ）と、ＬＲＵ（Least Recently Used）カウンタフィールド（Ｌ）とが設けられる。Ｂｏｏｔビットフィールド（Ｂ）については後述する。初期値として、ＩｎｄｅｘＨフィールドにはＩｎｄｅｘＨ部として取り得ない値、例えばハイバリュー（FFFF）、ＬＲＵカウンタフィールドには０が設定される。
【００３２】
いま、ホスト側からリードコマンドが発行されたとすると、ハイブリッドＨＤＤ１９側においては、制御部１９１が、指定されたＬＢＡのＩｎｄｅｘＬ部を検索キーとしてラインごとにディレクトリを参照し、該当行にＬＢＡのＩｎｄｅｘＨ部と一致するＩｎｄｅｘＨが保持されているか各々比較することにより、読み出し対象のデータが不揮発性半導体メモリ１９４内に存在するか否かを判定する。もし、存在していたら、記憶部１９６からの読み出しに代えて、不揮発性半導体メモリ１９４からの読み出しを行うことで高速化を図り、レスポンス性能を向上させる。
【００３３】
この不揮発性半導体メモリ１９４からの読み出しを行った場合、制御部１９１は、当該データに対応する列（Ｗａｙ）のＬＲＵカウンタフィールドの値を最大値に更新する。ＬＲＵカウンタフィールドの値は、０からＷａｙ数（ここでは０−４）の値を取り、制御部１９１は、ここでは、ＬＲＵカウンタフィールドの値を４に更新する。また、この際、更新前の値よりも大きい値をもつ他の列のＬＲＵカウンタフィールドが存在すれば、その値を１ずつデクリメントすべく更新する。この操作により、読み出しが要求された時が時間的に近い順に、ＬＲＵカウンタフィールドは、４→３→２→１、または、初期値である０の値をもつことになる。
【００３４】
読み出し対象のデータが不揮発性半導体メモリ１９４内に存在しない場合は、記憶部１９６からの読み出しが行われることになるが、この際、制御部１９１は、読み出されたデータを不揮発性半導体メモリ１９４内に格納する。その時点で、ＬＢＡのＩｎｄｅｘＬ部が一致する（ＩｎｄｅｘＨ部が異なる）他のデータが既にＷａｙ数分、つまり４つ格納されていたら、ＬＲＵカウンタフィールドの値が最小（１）のデータを追い出して、当該データを入れ替わりに格納する。また、この際、格納したデータのＬＲＵカウンタフィールドの値を最大値に設定し、その他のＬＲＵカウンタフィールドの値を１ずつデクリメントすべく更新する。格納数が４に達していない場合には、空きＷａｙに当該データを格納するすると共に、そのデータのＬＲＵカウンタフィールドの値を最大値に設定し、かつ、他に格納されたデータが存在すれば、それらのＬＲＵカウンタフィールドの値を１ずつデクリメントすべく更新する。
【００３５】
このように、不揮発性半導体メモリ１９４からの読み出しを、当該不揮発性半導体メモリ１９４からの読み出しよりも速度の遅い記憶部１９６からの読み出しに代えて実行する仕組みを設けることにより、本ハイブリッドＨＤＤ１９は、レスポンス性能を向上させている。
【００３６】
なお、ＮＡＮＤフラッシュで構成される不揮発性半導体メモリ１９４は、追記型の記憶媒体であるので、データの更新は、更新前データを無効化して更新後データを新たに書き込むことによって行われる。よって、例えば単体のＮＡＮＤフラッシュで構成される場合には、更新前データの無効化と、更新後データの書き込みとはシリアルに実行されることになる。従って、データの更新を目的とする書き込みの場合、記憶部１９６よりも時間を要するおそれもある。このような場合、制御部１９１は、ホスト側からライトコマンドが発行された際、記憶部１９６への書き込みを実行すると共に、この書き込みに伴って更新すべきデータが不揮発性半導体メモリ１９４内に存在していたならば、そのデータの無効化を併せて実行する。
【００３７】
一方、例えば複数のＮＡＮＤフラッシュで構成され、更新前データの無効化と、更新後データの書き込みとをパラレルに実行できる場合、つまり、データの更新を記憶部１９６よりも高速に行える場合には、制御部１９１は、不揮発性半導体メモリ１９４に対するアクセスを実行する。
【００３８】
また、本ハイブリッドＨＤＤ１９は、単に、最近に読み出されたデータほど再び読み出される確率が高いことのみに着目し、記憶部１９６のキャッシュとして不揮発性半導体メモリ１９４を利用するのではなく、本コンピュータ１の起動時間を短縮するために当該不揮発性半導体メモリ１９４を利用する仕組みをさらに備える。次に、この仕組みについて説明する。
【００３９】
本コンピュータ１の起動時間を短縮するために、図３に示すように、ディレクトリの各列には、Ｂｏｏｔビットフィールドがさらに設けられる。また、制御部１９１は、自身が管理するメモリ上にトレースバッファを確保する。
【００４０】
制御部１９１は、（１）通電が開始された場合、（２）ホスト側の起動期間通知モジュール１０１からシャットダウン完了通知を受けた場合、または、（３）ホスト側のＢＩＯＳから起動開始通知を受けた場合、ホスト側から読み出しが要求されたデータのＬＢＡをトレースバッファに記録していく処理を開始する。そして、制御部１９１は、このＬＢＡのトレースバッファへの記録を、ホスト側の起動期間通知モジュール１０１から起動完了の通知を受けるまでの間継続する。起動完了通知を受ける前に、トレースバッファが一杯になった場合も、制御部１９１は、このＬＢＡのトレースバッファへの記録を終了する。
【００４１】
ＬＢＡをトレースバッファに記録し終えた後、制御部１９１は、本ハイブリッドＨＤＤ１９がアイドル状態、つまりホスト側からのＩ／Ｏ要求に伴う処理を行っていない、いわゆる隙間の時間を利用して、次の処理を実行する。
【００４２】
まず、制御部１９１は、ディレクトリ内のすべてのＢｏｏｔビットフィールドを”０”（オフ）にする。前述の条件下で実行される当該処理は、間欠的に進められる可能性が高いので、制御部１９１は、どのＢｏｏｔビットフィールドまで当該処理を進行させたかを示す情報を管理する。
【００４３】
ディレクトリ内のすべてのＢｏｏｔビットフィールドを”０”にすると、制御部１９１は、トレースバッファに記録したＬＢＡを順次読み出し、読み出したＬＢＡに対応するデータが不揮発性半導体メモリ１９４内に存在するか、つまり、ディレクトリに登録されているかを調べ、登録されていれば、そのＢｏｏｔビットフィールドを”１”（オン）にする。一方、ディレクトリに登録されていなければ、起動完了後に読み出しが要求されたデータによって追い出されたことになるので、Ｂｏｏｔビットフィールドが”０”の中でＬＲＵカウンタフィールドの値が最小の他のデータを追い出して、当該データを入れ替わりに登録する。この際、そのＢｏｏｔビットフィールドを”１”にすると共に、ＬＲＵカウンタフィールドの値を最大値に設定し、その他のＬＲＵカウンタフィールドの値を１ずつデクリメントすべく更新する。なお、（確率は非常に低いが）他のデータのＢｏｏｔビットフィールドがすべて”１”である場合には、当該データについての不揮発性半導体メモリ１９４への格納は行わない。また、この処理も、前述の条件下で実行されるので、間欠的に進められる可能性が高い。よって、制御部１９１は、トレースバッファに記録したどのＬＢＡまで当該処理を進行させたかを示す情報を管理する。
【００４４】
上記したＢｏｏｔビットフィールドの”０”クリアと、トレースバッファに記録したＬＢＡのデータの不揮発性半導体メモリ１９４への格納とが終了すると、通常の処理に移行することになるが、制御部１９１は、読み出しが要求されたデータを不揮発性半導体メモリ１９４へ格納する際、つまりディレクトリへの登録を行う際、前述の追い出し対象とするデータの選択において、Ｂｏｏｔビットフィールドが”１”であるデータを対象から除外する。これにより、不揮発性半導体メモリ１９４には、起動期間に読み出しが行われたデータが格納されていることになるので、本ハイブリッドＨＤＤ１９を搭載する本コンピュータ１の起動時間を短縮することを実現する。
【００４５】
また、本ハイブリッドＨＤＤ１９側の制御により、本コンピュータ１の起動時毎に、Ｂｏｏｔフィールドのクリア、起動期間に読み出しが行われたデータの不揮発性半導体メモリ１９４への格納および当該データのＢｏｏｔフィールドのオンが実施されるので、例えば本コンピュータのＯＳ１００が更新された等、その動作環境に変化が生じた場合であっても、１回目の起動時に、変化後の動作環境下において起動期間に読み出しが行われたデータが不揮発性半導体メモリ１９４に格納されるように反映がなされ、２回目の起動時からは、動作環境の変更後の本コンピュータの起動時間が短縮されることになる。
【００４６】
図４は、本コンピュータ１のパワーオン時またはリブート時におけるハイブリッドＨＤＤ１９の動作手順を示すフローチャートである。
【００４７】
本コンピュータ１のパワーオンまたはリブートに伴う起動時、ハイブリッドＨＤＤ１９の制御部１９１は、ホスト側からの起動完了通知を監視し（ステップＡ１）、起動完了通知が送信されていなければ（ステップＡ１のＮＯ）、さらに、ホスト側からのデータ読み出し要求を監視する（ステップＡ２）。
【００４８】
起動完了通知前におけるデータ読み出し要求については、制御部１９１は、当該データを不揮発性半導体メモリ１９４または記憶部１９６から読み出してホスト側に転送すると共に（ステップＡ３）、当該データのＬＢＡをトレースバッファに記録する（ステップＡ４）。このＬＢＡの格納の際、制御部１９１は、トレースバッファが一杯になったかを調べ（ステップＡ５）、一杯になっていなければ（ステップＡ５のＮＯ）、ステップＡ１からの処理を繰り返す。
【００４９】
一方、起動完了通知が送信された場合（ステップＡ１のＹＥＳ）またはトレースバッファが一般になった場合（ステップＡ５のＹＥＳ）、制御部１９１は、ホスト側からの要求に応じた処理を行っていない期間を利用して、まず、不揮発性半導体メモリ１９４に格納されたデータを管理するためのディレクトリ内のすべてのＢｏｏｔビットフィールドをオフにし（ステップＡ６）、続いて、トレースバッファに記録されたＬＢＡのデータを不揮発性半導体メモリ１９４に格納すると共に、当該データに対応するディレクトリ内のＢｏｏｔビットフィールドをオンにする処理を実行する（ステップＡ７）。
【００５０】
以上のように、本コンピュータ１によれば、不揮発性半導体メモリ１９４を（ＨＤ等からなる）記憶部１９６のキャッシュとして内蔵するハイブリッドＨＤＤ１９を起動ディスクとして搭載する場合において起動時間を短縮することが実現される。
【００５１】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５２】
１…情報処理装置（ＰＣ）、１１…ＣＰＵ、１２…ノースブリッジ、１３…主メモリ、１４…表示コントローラ、１４Ａ…ビデオメモリ、１５…サウスブリッジ、１６…サウンドコントローラ、１７…ＢＩＯＳ−ＲＯＭ、１８…ＬＡＮコントローラ、１９…ハイブリッドＨＤＤ、２０…ＯＤＤ、２１…無線ＬＡＮコントローラ、２２…ＵＳＢコントローラ、２５…エンベデッド／キーボードコントローラ（ＥＣ／ＫＢＣ）、１００…オペレーティングシステム（ＯＳ）、１０１…起動期間通知モジュール１９１…制御部、１９２…ＡＴＡＣ、１９３…ＨＤＣ、１９４…不揮発性半導体メモリ、１９５…揮発性半導体メモリ、１９６…記憶部（ＨＤ）。
【図１】
2010176306.tif 000003
【図２】
2010176306.tif 000004
【図３】
2010176306.tif 000005
【図４】
2010176306.tif 000006
【手続補正書】
【提出日】平成22年5月19日(2010.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部記憶装置と、
前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、
を具備し、
前記本体装置は、電源投入指示または再起動指示に応答して起動処理を行う場合に、少なくとも起動完了時を含む起動期間に関する通知を前記外部記憶装置に送信する起動期間通知手段を有し、
前記外部記憶装置は、
不揮発性の第１の記憶手段と、
前記第１の記憶手段のキャッシュとして用いられる不揮発性の第２の記憶手段と、
起動時に、前記本体装置から前記通知が送信されるまでの間に前記本体装置から読み出しが要求されたデータを識別可能に前記第２の記憶手段に格納すると共に、当該データを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象データが前記第２の記憶手段に格納されるように前記第２の記憶手段内におけるデータの入れ替えを実行するリード制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記リード制御手段は、起動時毎に、前記本体装置から前記通知が送信されるまでの間に前記本体装置から読み出しが要求されたデータを識別するための属性の付与を伴う前記第２の記憶手段へのデータの格納を実行することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記外部記憶装置は、データの書き込みを要求された際、この書き込みに伴って更新されるべきデータが前記第２の記憶手段に格納されている場合、当該更新されるべきデータを前記第２の記憶手段内において無効化するライト制御手段をさらに有することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記リード制御手段は、起動時毎に、前記識別可能に前記第２の記憶手段に格納済みのデータについて、その識別のために付与される属性を無効化することを特徴とする請求項１記載の情報処理装置。
【請求項５】
不揮発性の第１の記憶手段と、
前記第１の記憶手段のキャッシュとして用いられる不揮発性の第２の記憶手段と、
起動時に、所定の通知が送信されるまでの所定の期間に読み出しが要求されたデータを識別可能に前記第２の記憶手段に格納すると共に、当該データを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象データが前記第２の記憶手段に格納されるように前記第２の記憶手段内におけるデータの入れ替えを実行するリード制御手段と、
を具備することを特徴とするデータ記憶装置。
【請求項６】
前記リード制御手段は、起動時毎に、前記所定の通知が送信されるまでの所定の期間に読み出しが要求されたデータを識別するための属性の付与を伴う前記第２の記憶手段へのデータの格納を実行することを特徴とする請求項５記載のデータ記憶装置。
【請求項７】
データの書き込みを要求された際、この書き込みに伴って更新されるべきデータが前記第２の記憶手段に格納されている場合、当該更新されるべきデータを前記第２の記憶手段内において無効化するライト制御手段をさらに具備することを特徴とする請求項５記載のデータ記憶装置。
【請求項８】
前記リード制御手段は、起動時毎に、前記識別可能に前記第２の記憶手段に格納済みのデータについて、その識別のために付与される属性を無効化することを特徴とする請求項５記載のデータ記憶装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
実施形態によれば、情報処理装置は、外部記憶装置と、前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、を具備し、前記本体装置は、電源投入指示または再起動指示に応答して起動処理を行う場合に、少なくとも起動完了時を含む起動期間に関する通知を前記外部記憶装置に送信する起動期間通知手段を有し、前記外部記憶装置は、不揮発性の第１の記憶手段と、前記第１の記憶手段のキャッシュとして用いられる不揮発性の第２の記憶手段と、起動時に、前記本体装置から前記通知が送信されるまでの間に前記本体装置から読み出しが要求されたデータを識別可能に前記第２の記憶手段に格納すると共に、当該データを前記第２の記憶手段内に残存させながら、読み出しを要求された時が時間的に近い順に読み出し対象データが前記第２の記憶手段に格納されるように前記第２の記憶手段内におけるデータの入れ替えを実行するリード制御手段とを有する。