JP2010176305A - 情報処理装置およびデータ記憶装置 - Google Patents

情報処理装置およびデータ記憶装置 Download PDF

Info

Publication number
JP2010176305A
JP2010176305A JP2009016960A JP2009016960A JP2010176305A JP 2010176305 A JP2010176305 A JP 2010176305A JP 2009016960 A JP2009016960 A JP 2009016960A JP 2009016960 A JP2009016960 A JP 2009016960A JP 2010176305 A JP2010176305 A JP 2010176305A
Authority
JP
Japan
Prior art keywords
data
storage means
read
storage
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009016960A
Other languages
English (en)
Inventor
Takehiko Kurashige
剛彦 蔵重
Shinji Saito
伸二 斎藤
Yukihiro Suda
幸宏 須田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009016960A priority Critical patent/JP2010176305A/ja
Publication of JP2010176305A publication Critical patent/JP2010176305A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】不揮発性半導体メモリをキャッシュとして内蔵する場合におけるデータアクセスを効率的に行うことを実現した情報処理装置を提供する。
【解決手段】情報処理装置1の外部記憶装置であるハイブリッドHDD19は、記憶部196のキャッシュとして半導体不揮発性メモリ194を内蔵する。ホスト側からリード要求を受けると、制御部191は、記憶部196から読み出したデータを、最も最近読み出された順にキャッシュされるように入れ替えを行いながら半導体不揮発性メモリ194に格納する。また、ホスト側からライト要求を受けると、制御部191は、この書き込みに伴って更新すべきデータが半導体不揮発性メモリ194に格納されていないかを調べ、格納されていれば、記憶部196へのデータ書き込みと共に、その更新対象データを半導体不揮発性メモリ194内において無効化する。
【選択図】図2

Description

この発明は、例えば不揮発性半導体メモリを内蔵するハイブリッドHDD(Hard Disk Drive)等に適用して好適なレスポンス性能の向上化技術に関する。
近年、ノートブックタイプやデスクトップタイプ等、様々な種類のパーソナルコンピュータが広く利用されている。この種のパーソナルコンピュータは、起動ディスクとする外部記憶装置としてHDDを搭載することが一般的である。
また、最近では、HDDのレスポンス性能を向上させるために、HDDに不揮発性メモリを内蔵させ、不揮発性半導体メモリをキャッシュとして利用するといった、いわゆるハイブリッドHDDに関する提案も種々なされている(例えば特許文献1等参照)。
特開2003−167781号公報
通常、第1の記憶媒体に対するデータアクセスを、第2の記憶媒体をキャッシュとして利用しながら行うとした場合に、データの更新を目的とした書き込みが発生した際、当該更新対象のデータがキャッシュである第2の記憶媒体に存在していたとすると、この第2の記憶媒体に対して当該データの書き込みを実施する。この場合における第1の記憶媒体に対するデータ書き込みは、例えばライトスルー方式を採用していれば即時に、ライトバック方式を採用していれば所定のタイミング到来時に実施される。
ところで、追記型の記憶媒体である不揮発性半導体メモリにおけるデータの更新は、更新前データを無効化して更新後データを新たに書き込むことによって行われる。例えばSSD(Solid State Drive)などは、複数の不揮発性半導体メモリを搭載するので、更新前データの無効化および更新後データの書き込みを、異なる不揮発性半導体メモリを用いて並列実行することにより、データ更新時におけるレスポンス性能が悪化することを防止している。
一方、ハイブリッドHDDのように、HDDのキャッシュとして利用する場合には、容量面やコスト面から不揮発性半導体メモリは単体で搭載されることになる。よって、データの読み出しはHDDよりも高速であるものの、場合によっては(データの更新を目的とする場合には)、データの書き込みがHDDよりも低速となり、従前のキャッシュ技術をそのまま適用すると、却ってレスポンス性能を悪化させてしまうおそれがある。
この発明はこのような事情を考慮してなされたものであり、不揮発性半導体メモリをキャッシュとして内蔵する場合におけるデータアクセスを効率的に行うことを実現した情報処理装置およびデータ記憶装置を提供することを目的とする。
前述した目的を達成するために、この発明の情報処理装置は、外部記憶装置と、前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、を具備し、前記外部記憶装置は、不揮発性の第1の記憶手段と、不揮発性の第2の記憶手段と、前記本体装置からデータの読み出しを要求された際、読み出し対象のデータが前記第2の記憶手段に格納されている場合、前記第2の記憶手段に格納されているデータを読み出して前記本体装置に転送し、読み出し対象のデータが前記第2の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第1の記憶手段から読み出して前記本体装置に転送すると共に、当該読み出したデータを前記第2の記憶手段に格納するリード制御手段と、前記本体装置からデータの書き込みを要求された際、書き込み対象のデータを前記第1の記憶手段に格納すると共に、この書き込みに伴って更新されるべきデータが前記第2の記憶手段に格納されている場合、当該更新されるべきデータを前記第2の記憶手段内において無効化するライト制御手段と、を有する、ことを特徴とする。
この発明によれば、不揮発性半導体メモリをキャッシュとして内蔵する場合におけるデータアクセスを効率的に行うことが実現される。
本発明の一実施形態に係る情報処理装置(パーソナルコンピュータ)のシステム構成を示す図。 同実施形態のコンピュータが備えるハイブリッドHDDの構成および動作原理を説明するための概念図。 同実施形態のコンピュータが備えるハイブリッドHDDの制御部が実行する不揮発性半導体メモリ内におけるデータの入れ替えの基本原理を説明するための図。 同実施形態のコンピュータにおいてリードコマンドが発行された場合のハイブリッドHDDの動作を説明するための図。 同実施形態のコンピュータにおいてライトコマンドが発行された場合のハイブリッドHDDの動作を説明するための図。 同実施形態のコンピュータにおいてライトコマンドが発行された場合のハイブリッドHDDの動作手順を示すフローチャート。 同実施形態のコンピュータが備えるハイブリッドHDDの制御部がリード要求を学習しながら実行する不揮発性半導体メモリ内におけるデータの入れ替えの基本原理を説明するための図。
以下、図面を参照して、この発明の実施形態を説明する。
図1は、本発明の一実施形態に係る情報処理装置1のシステム構成を示す図である。本情報処理装置1は、パーソナルコンピュータ(PC)として実現されている。
図1に示すように、本コンピュータ1は、CPU11、ノースブリッジ12、主メモリ13、表示コントローラ14、ビデオメモリ(VRAM)14A、サウスブリッジ15、サウンドコントローラ16、BIOS(Basic Input/Output System)−ROM17、LANコントローラ18、ハイブリッドHDD19、ODD(optical disc drive)20、無線LANコントローラ21、USBコントローラ22およびエンベデッドコントローラ/キーボードコントローラ(EC/KBC)23等を備えている。
CPU11は、本コンピュータ1の動作を制御するプロセッサであり、ハイブリッドHDD19やODD20から主メモリ13にロードされる、オペレーティングシステム(OS)や当該OS配下で動作する各種アプリケーションプログラムを実行する。また、CPU11は、BIOS−ROM17に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。
ノースブリッジ12は、CPU11のローカルバスとサウスブリッジ15との間を接続するブリッジデバイスである。ノースブリッジ12には、主メモリ13をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ12は、表示コントローラ14との通信を実行する機能も有している。
表示コントローラ14は、本コンピュータ1のアウトプットデバイスとして使用される表示装置を制御するデバイスである。この表示コントローラ14によって表示信号が生成される。
サウスブリッジ15は、PCI(Peripheral Component Interconnect)バス上およびLPC(Low Pin Count)バス上の各デバイスを制御する。また、サウスブリッジ15は、ハイブリッドHDD19およびODD20を制御するためのIDE(Integrated Drive Electronics)コントローラおよびBIOS−ROM17をアクセス制御するメモリコントローラが内蔵されている。さらに、サウスブリッジ15は、サウンドコントローラ16およびLANコントローラ18との通信を実行する機能も有している。
サウンドコントローラ16は音源デバイスであり、再生対象のオーディオデータをアウトプットデバイスとして使用されるスピーカに出力する。
LANコントローラ18は、例えばEthernet(登録商標)規格の有線通信を実行する有線通信デバイスであり、無線LANコントローラ21は、例えばIEEE 802.11規格の無線通信を実行する無線通信デバイスである。また、USBコントローラ22は、例えばUSB2.0規格のケーブルを介して外部機器との通信を実行する。
EC/KBC23は、電力管理を行うためのエンベデッドコントローラと、本コンピュータ1のインプットデバイスとして使用されるキーボードやポインティングデバイスを制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC23は、ユーザの操作に応じて本コンピュータ1をパワーオン/パワーオフする機能を有している。
以上のような構成をもつ本コンピュータ1は、起動ディスクとする主要な外部記憶装置として、ハイブリッドHDD19を備える。そして、本コンピュータ1は、このハイブリッドHDD19のレスポンス性能を維持する(レスポンス性能を悪化させることを防止する)ための仕組みを設けたものであり、以下、この点について詳述する。
図2は、本コンピュータ1が備えるハイブリッドHDD19の構成および動作原理を説明するための概念図である。
図2に示すように、ハイブリッドHDD19は、制御部191、ATAC(AT Attachment Controller)192、HDC(Hard Disk Controller)193、不揮発性半導体メモリ194、揮発性半導体メモリ195、記憶部196等を有している。
制御部191は、本ハイブリッドHDD19内の動作を制御するマイクロプロセッサである。ATAC192は、ホスト側、具体的には、サウスブリッジ15との間をATA I/Fで接続するコントローラである。HDC193は、記憶部196を駆動制御するコントローラである。
また、不揮発性半導体メモリ194は、例えばNANDフラッシュであり、揮発性半導体メモリは、例えばDRAMであり、記憶部196は、磁気ディスク(HD)や磁気ヘッド等からなる本ハイブリッドHDD19の記憶部である。ホスト側に論理アドレス空間として認識される本ハイブリッドHDD19の物理アドレス空間は、すべて記憶部196上に割り当てられ、揮発性半導体メモリ195は、この記憶部196へ書き込むデータおよび記憶部196から読み出されたデータを一時的に格納するために用いられる。また、不揮発性半導体メモリ194は、記憶部196から読み出されたデータを最近に読み出された順に所定量格納するために用いられる。例えばNANDフラッシュである不揮発性半導体メモリ194は、磁気ディスクや磁気ヘッド等からなる記憶部196よりもデータの読み出し速度が速いので、最近に読み出されたデータほど再び読み出される確率が高いことを考慮すると、たとえ電源がオフされた後に再び電源がオンされた場合であっても、電源オフ直前に読み出されたデータの再読み出しを高速に行えることになり、本ハイブリッドHDD19のレスポンス性能を向上させることができる。
図3は、制御部191が実行する不揮発性半導体メモリ194内におけるデータの入れ替えの基本原理を説明するための図である。
ここでは、記憶部196の記憶容量を120Gバイト、不揮発性半導体メモリ194の記憶容量を2Gバイト、記憶部196から読み出されたデータを不揮発性半導体メモリ194内に格納する際の単位であるラインサイズを64Kバイトと想定し、また、キャッシュ技術の1つである4wayセットアソシアティブ方式を採用するものと想定する。
ホスト側がI/O要求(リードコマンド,ライトコマンド)を発行する際に指定される論理アドレス(LBA:Logical Block Address)は、記憶部196の記憶容量120Gバイトを表すのに28ビットの大きさをもつことになる。LBAの下位7(0−6)ビットは、ラインサイズ64Kバイトから決定される。即ち、64Kバイト=16ビット、1セクタ=512バイト=9ビットから、16−9=7。
また、LBAの中位13(7−19)ビットは、ここではIndexL部と称することとし、不揮発性半導体メモリ194内に格納されているデータを管理するディレクトリを参照するためのインデックスとなる。ディレクトリは、制御部191が管理するメモリ上におかれ、適宜に不揮発性半導体メモリ196に格納される。また、このIndexLの13ビットは、不揮発性半導体メモリ196の記憶容量2Gバイト、ラインサイズ64Kバイト、Way数4から決定される。即ち、不揮発性半導体メモリ196の記憶容量2Gバイト=31ビット、ラインサイズ64Kバイト=16ビット、Way数4=2ビットから、31−16−2=13。
そして、LBAの上位8(20−27)ビット、ここではIndexH部と称することとし、ディレクトリに管理されるIndexHの値と比較される。ディレクトリは、(IndexL分の行数)×(セットアソシアティブWay数分の列数)で構成される表形式のデータ構造体となる。この例の場合、8,192行×4列の表になる。
ディレクトリの各列には、IndexHフィールド(H)と、LRU(Least Recently Used)カウンタフィールド(L)とが設けられる。初期値として、IndexHフィールドにはIndexH部として取り得ない値、例えばハイバリュー(FFFF)、LRUカウンタフィールドには0が設定される。
いま、ホスト側からリードコマンドが発行されたとすると、ハイブリッドHDD19側においては、制御部191が、指定されたLBAのIndexL部を検索キーとしてラインごとにディレクトリを参照し、該当行にLBAのIndexH部と一致するIndexHが保持されているか各々比較することにより、読み出し対象のデータが不揮発性半導体メモリ194内に存在するか否かを判定する。もし、存在していたら、記憶部196からの読み出しに代えて、不揮発性半導体メモリ194からの読み出しを行うことで高速化を図り、レスポンス性能を向上させる。
この不揮発性半導体メモリ194からの読み出しを行った場合、制御部191は、当該データに対応する列(Way)のLRUカウンタフィールドの値を最大値に更新する。LRUカウンタフィールドの値は、0からWay数(ここでは0−4)の値を取り、制御部191は、ここでは、LRUカウンタフィールドの値を4に更新する。また、この際、更新前の値よりも大きい値をもつ他の列のLRUカウンタフィールドが存在すれば、その値を1ずつデクリメントすべく更新する。この操作により、読み出しが要求された時が時間的に近い順に、LRUカウンタフィールドは、4→3→2→1、または、初期値である0の値をもつことになる。
読み出し対象のデータが不揮発性半導体メモリ194内に存在しない場合は、記憶部196からの読み出しが行われることになるが、この際、制御部191は、読み出されたデータを不揮発性半導体メモリ194内に格納する。その時点で、LBAのIndexL部が一致する(IndexH部が異なる)他のデータが既にWay数分、つまり4つ格納されていたら、LRUカウンタフィールドの値が最小(1)のデータを追い出して、当該データを入れ替わりに格納する。また、この際、格納したデータのLRUカウンタフィールドの値を最大値に設定し、その他のLRUカウンタフィールドの値を1ずつデクリメントすべく更新する。格納数が4に達していない場合には、空きWayに当該データを格納するすると共に、そのデータのLRUカウンタフィールドの値を最大値に設定し、かつ、他に格納されたデータが存在すれば、それらのLRUカウンタフィールドの値を1ずつデクリメントすべく更新する。
つまり、図4に示すように、本ハイブリッドHDD19では、ホスト側からリードコマンドが発行された場合、読み出し対象のデータが不揮発性半導体メモリ194内に存在していれば、記憶部196よりもデータの読み出し速度の速い不揮発性半導体メモリ194からの読み出しを実行する(図4の(1))。また、読み出し対象のデータが不揮発性半導体メモリ194内に存在しなければ、記憶部196からの読み出しを実行し、近い将来に行われる可能性の高い再読み出しに備えて、読み出されたデータを不揮発性半導体メモリ194に格納する(図4の(2))。
このように、不揮発性半導体メモリ194からの読み出しを、当該不揮発性半導体メモリ194からの読み出しよりも速度の遅い記憶部196からの読み出しに代えて実行する仕組みを設けることにより、本ハイブリッドHDD19は、レスポンス性能を向上させている。
ところで、本ハイブリッドHDD19は、リードコマンドに対するレスポンス性能を向上させるために、120Gバイトという大容量の記憶部196のキャッシュとして、2Gバイトという小容量の不揮発性半導体メモリ194を内蔵するものである。2Gバイト程度の記憶容量の不揮発性半導体メモリ194であれば、単体(1チップ)のNANDフラッシュで構成されることになる。また、NANDフラッシュで構成される不揮発性半導体メモリ194は、追記型の記憶媒体であるので、データの更新は、更新前データを無効化して更新後データを新たに書き込むことによって行われる。
本ハイブリッドHDD19に内蔵される不揮発性半導体メモリ194は単体のNANDフラッシュで構成されるので、更新前データの無効化と、更新後データの書き込みとはシリアルに実行されることになる。従って、データの更新を目的とする書き込みの場合、記憶部196よりも時間を要するおそれもある。よって、従前のキャッシュ技術をそのまま適用して、データの書き込みに伴って更新されるべきデータが不揮発性半導体メモリ194に存在した場合に、当該データの更新を不揮発性半導体メモリ194内において実行すると、却って、ライトコマンドに対するレスポンス性能を悪化させるおそれがある。
このライトコマンドに対するレスポンス性能の悪化を防止するために、本ハイブリッドHDD19の制御部191は、指定されたLBAのIndexL部を検索キーとしてラインごとにディレクトリを参照し、該当行にLBAのIndexH部と一致するIndexHが保持されていれば、そのIndexHフィールドおよびLRUカウンタフィールドの値を初期化する。つまり、図5に示すように、ホスト側からライトコマンドが発行された場合、記憶部196への書き込みを実行すると共に、この書き込みに伴って更新すべきデータが不揮発性半導体メモリ194内に存在していたならば、そのデータの無効化を併せて実行する。また、この時、同一IndexL内で、初期化前のLRUカウンタフィールドの値よりも小さい他のLRUカウンタフィールド(0以外)が存在したら、それらを1ずつインクリメントする。
このように、不揮発性半導体メモリ194内におけるデータの更新を回避する仕組みを設けることにより、本ハイブリッドHDD19は、レスポンス性能を維持する(レスポンス性能を悪化させることを防止する)ことを実現する。
図6は、本コンピュータ1においてライトコマンドが発行された場合のハイブリッドHDD19の動作手順を示すフローチャートである。
ホスト側からライトコマンドが発行されると、まず、ハイブリッドHDD19の制御部191は、ホスト側から送られてくるデータの記憶部196への書き込みを実行する(ステップA1)。続いて、制御部191は、この書き込みに伴って更新すべきデータが不揮発性半導体メモリ194内に存在するか否かを判定し(ステップA2)、存在していたならば(ステップA2のYES)、不揮発性半導体メモリ194内に存在する更新対象データを無効化する(ステップA3)。
なお、以上の説明では、LBAのIndexL部が一致するもの同士を1グループとして、読み出しが要求された時が時間的に近い順に、読み出したデータをWay数分ずつ不揮発性半導体メモリ194に格納していく例を示した。この場合、データの重要度等は考慮されないので、例えば使用頻度の低いデータが読み出された場合においても、(当該データよりも使用頻度の高いデータを追い出して)当該データの不揮発性半導体メモリ194への格納が行われる。
そこで、次に、ホスト側からのリード要求を、ハイブリッドHDD19側において学習し、再読み出しが行われる確率の高いデータを優先的に不揮発性半導体メモリ194に格納することによって、リードコマンドに対するレスポンス性能をより向上させることを実現する仕組みについて説明する。
図7は、制御部191がリード要求を学習しながら実行する不揮発性半導体メモリ194内におけるデータの入れ替えの基本原理を説明するための図である。
この場合においても、キャッシュ技術の1つである4Wayセットアソシアティブ方式を採用することを想定するが、ディレクトリは、図示のように、リード学習用として2Way分追加して、(IndexL分の行数)×(セットアソシアティブWay数+リード学習用Way数分の列数)で構成される表形式のデータ構造体とする。よって、この例の場合には、8,192行×6(=4+2)列の表になる。
また、ディレクトリの各列には、IndexHフィールド(H)およびLRUカウンタフィールド(L)に加えて、リードカウンタフィールド(R)、Cachedビットフィールド(C)、Wayポインタフィールド(W)が設けられる。
リードコマンドが発生した際、指定されたLBAのIndexL部を検索キーとしてディレクトリを参照し、該当行にLBAのIndexH部と一致するIndexHが保持されているか各々比較することにより、読み出し対象のデータがディレクトリに登録されているか否かを判定する。もし、登録されていれば、続いて、Cachedビットフィールドを参照し、読み出し対象のデータが不揮発性半導体メモリ194内に存在するか否かを判定する。Cachedビットフィールドが”1”であれば、不揮発性半導体メモリ194内に存在し、”0”であれば、ディレクトリに登録されているのみで、不揮発性半導体メモリ194内には存在しないことを示す。
本ハイブリッドHDD19では、ディレクトリは6Way列分の表形式で構成し、実際の不揮発性半導体メモリ194へのデータ格納は4Way分行う。そこで、Wayポインタフィールドを設け、どのWayにデータを格納したかを管理する。つまり、Cachedビットフィールドが”1”であった場合、さらにWayポインタフィールドを参照することにより、目的のデータを不揮発性半導体メモリ194から読み出す。この時、LRUカウンタフィールドの値を最大値(ディレクトリ上のWay数である6)にし、更新前の値よりも大きい値をもつ他のLRUカウンタフィールドの値を1ずつデクリメントする。
一方、Cachedビットフィールドが”0”の場合、つまり、ディレクトリには登録されているものの、不揮発性半導体メモリ194内には存在しない場合には、記憶部196からデータを読み出すことになる。リードカウンタフィールドは、当該データが何回読み出されたかを計数するためのカウンタ領域であり、記憶部196からデータを読み出した時に、その値と、不揮発性半導体メモリ194への格納を行うか否かの判断基準として定義されるしきい値とを比較する。ここでは、しきい値として、2が定義されているものと想定する。なお、リードカウンタフィールドは、0からしきい値+1(0−3)の値を取る。
しきい値未満であった場合(2回目の読み出しの場合)は、リードカウンタフィールドを1インクリメントする(2にする)と共に、LRUカウンタフィールドの値を最大値にし、更新前の値よりも大きい値をもつ他のLRUカウンタフィールドの値を1ずつデクリメントする。この時は、当該読み出しデータの不揮発性半導体メモリ194への格納は行わない。
また、しきい値と等しい場合(ここでは、3回目を越える読み出しの場合となる)、同一IndexL内で不揮発性半導体メモリ194に格納された他のデータの中で、読み出されたデータのその時点でのLRUカウンタフィールドの値よりも小さいLRUカウンタフィールドの値をもつものが存在するか否かを判定する。存在しなければ、LRUカウンタフィールドの値を最大値にし、更新前の値よりも大きい値をもつ他のLRUカウンタフィールドの値を1ずつデクリメントする。この時も、当該読み出したデータの不揮発性半導体メモリ194への格納は行わない。また、リードカウンタフィールドの値は、そのまましきい値に維持される。
同一IndexL内で不揮発性半導体メモリ194に格納された他のデータの中で、読み出されたデータのその時点でのLRUカウンタフィールドの値よりも小さいLRUカウンタフィールドの値をもつものが存在する場合、その中でLRUカウンタフィールドの値が最小のデータを、不揮発性半導体メモリ194内において無効化し、読み出したデータを入れ替えに不揮発性半導体メモリ194に格納する。無効化するデータについては、Cachedビットフィールドを”0”にし、リードカウンタフィールドの値をしきい値にする。また、入れ替えに不揮発性半導体メモリ194に格納するデータについては、Cachedビットフィールドを”1”にし、リードカウンタフィールドの値を1インクリメントする(3にする)と共に、LRUカウンタフィールドの値を最大値にし、更新前の値よりも大きい値をもつ他のLRUカウンタフィールドの値を1ずつデクリメントする。
つまり、不揮発性半導体メモリ194に格納されていないデータについては、しきい値を越える読み出しが行われ、かつ、不揮発性半導体メモリ194に格納された他のデータのいずれかに先んじて2回続けて読み出しが行われた場合に、当該他のデータとの入れ替えを実行する。
さらに、読み出し対象のデータがディレクトリに登録されていなければ、ディレクトリには登録されているが、Cachedビットフィールドが”0”、つまり不揮発性半導体メモリ194内には存在しない他のデータのうち、LRUカウンタフィールドの値が最小の他のデータに代えて、今回の読み出しデータをディレクトリに登録する。この際、リードカウンタフィールドの値を1にすると共に、LRUカウンタフィールドの値を最大値にし、他の列のLRUカウンタフィールドの値を1ずつデクリメントする。
なお、ライトコマンドが発行された際、指定されたLBAと一致する更新されるべきデータがディレクトリに登録されていた場合には、前述と同様、そのIndexHフィールド、LRUカウンタフィールド、Cachedビットフィールドの値を初期化することによって、不揮発性半導体メモリ194内における無効化を実施する。
このように、ホスト側からのリード要求を、ハイブリッドHDD19側において学習する仕組みを設けることにより、リードコマンドに対するレスポンス性能をより向上させることを実現する
以上のように、本コンピュータ1によれば、不揮発性半導体メモリ194を(HD等からなる)記憶部196のキャッシュとして内蔵する場合におけるデータアクセスを効率的に行うことが実現される。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
1…情報処理装置(PC)、11…CPU、12…ノースブリッジ、13…主メモリ、14…表示コントローラ、14A…ビデオメモリ、15…サウスブリッジ、16…サウンドコントローラ、17…BIOS−ROM、18…LANコントローラ、19…ハイブリッドHDD、20…ODD、21…無線LANコントローラ、22…USBコントローラ、25…エンベデッド/キーボードコントローラ(EC/KBC)、191…制御部、192…ATAC、193…HDC、194…不揮発性半導体メモリ、195…揮発性半導体メモリ、196…記憶部(HD)。

Claims (10)

  1. 外部記憶装置と、
    前記外部記憶装置へのデータの書き込みおよび前記外部記憶装置からのデータの読み出しを実行する本体装置と、
    を具備し、
    前記外部記憶装置は、
    不揮発性の第1の記憶手段と、
    不揮発性の第2の記憶手段と、
    前記本体装置からデータの読み出しを要求された際、読み出し対象のデータが前記第2の記憶手段に格納されている場合、前記第2の記憶手段に格納されているデータを読み出して前記本体装置に転送し、読み出し対象のデータが前記第2の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第1の記憶手段から読み出して前記本体装置に転送すると共に、当該読み出したデータを前記第2の記憶手段に格納するリード制御手段と、
    前記本体装置からデータの書き込みを要求された際、書き込み対象のデータを前記第1の記憶手段に格納すると共に、この書き込みに伴って更新されるべきデータが前記第2の記憶手段に格納されている場合、当該更新されるべきデータを前記第2の記憶手段内において無効化するライト制御手段と、
    を有する、
    ことを特徴とする情報処理装置。
  2. 前記第2の記憶手段は、前記第1の記憶手段よりも記憶容量が小さく、かつ、前記第1の記憶手段よりもデータの読み出しが高速であって、前記第1の記憶手段よりもデータの更新が低速であることを特徴とする請求項1記載の情報処理装置。
  3. 前記外部記憶装置は、
    前記第1の記憶手段が磁気ディスクを記憶部として備えてなり、
    前記第2の記憶手段が不揮発性半導体メモリを記憶部として備えてなる、
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記外部記憶装置は、
    前記リード制御手段が、データの読み出しを要求する際に前記本体装置が指定するアドレスを示すビット列中の所定の範囲に位置するビット列の値が一致するアドレスを1グループとして、各グループ毎に、読み出しを要求された時が時間的に近い順に所定数ずつ読み出し対象のデータが前記第2の記憶手段に格納されるように、前記第2の記憶手段内におけるデータの入れ替えを実行するデータ管理手段を含むことを特徴とする請求項1記載の情報処理装置。
  5. 前記外部記憶装置は、
    前記リード制御手段が、データの読み出しを要求する際に前記本体装置が指定するアドレスを示すビット列中の所定の範囲に位置するビット列の値が一致するアドレスを1グループとして、各グループ毎に、読み出しを要求される頻度が高く、かつ、読み出しを要求された時が時間的に近い順に所定数ずつ読み出し対象のデータが前記第2の記憶手段に格納されるように、前記第2の記憶手段内におけるデータの入れ替えを実行するデータ管理手段を含むことを特徴とする請求項1記載の情報処理装置。
  6. 不揮発性の第1の記憶手段と、
    不揮発性の第2の記憶手段と、
    データの読み出しを要求された際、読み出し対象のデータが前記第2の記憶手段に格納されている場合、前記第2の記憶手段に格納されているデータを読み出して要求元に転送し、読み出し対象のデータが前記第2の記憶手段に格納されていない場合、当該読み出し対象のデータを前記第1の記憶手段から読み出して要求元に転送すると共に、当該読み出したデータを前記第2の記憶手段に格納するリード制御手段と、
    データの書き込みを要求された際、書き込み対象のデータを前記第1の記憶手段に格納すると共に、この書き込みに伴って更新されるべきデータが前記第2の記憶手段に格納されている場合、当該更新されるべきデータを前記第2の記憶手段内において無効化するライト制御手段と、
    を具備することを特徴とするデータ記憶装置。
  7. 前記第2の記憶手段は、前記第1の記憶手段よりも記憶容量が小さく、かつ、前記第1の記憶手段よりもデータの読み出しが高速であって、前記第1の記憶手段よりもデータの更新が低速であることを特徴とする請求項6記載のデータ記憶装置。
  8. 前記第1の記憶手段が磁気ディスクを記憶部として備えてなり、
    前記第2の記憶手段が不揮発性半導体メモリを記憶部として備えてなる、
    ことを特徴とする請求項7記載のデータ記憶装置。
  9. 前記リード制御手段は、データの読み出しを要求する際に要求元が指定するアドレスを示すビット列中の所定の範囲に位置するビット列の値が一致するアドレスを1グループとして、各グループ毎に、読み出しを要求された時が時間的に近い順に所定数ずつ読み出し対象のデータが前記第2の記憶手段に格納されるように、前記第2の記憶手段内におけるデータの入れ替えを実行するデータ管理手段を含むことを特徴とする請求項6記載の情報処理装置。
  10. 前記リード制御手段は、データの読み出しを要求する際に要求元が指定するアドレスを示すビット列中の所定の範囲に位置するビット列の値が一致するアドレスを1グループとして、各グループ毎に、読み出しを要求される頻度が高く、かつ、読み出しを要求された時が時間的に近い順に所定数ずつ読み出し対象のデータが前記第2の記憶手段に格納されるように、前記第2の記憶手段内におけるデータの入れ替えを実行するデータ管理手段を含むことを特徴とする請求項6記載のデータ記憶装置。
JP2009016960A 2009-01-28 2009-01-28 情報処理装置およびデータ記憶装置 Pending JP2010176305A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009016960A JP2010176305A (ja) 2009-01-28 2009-01-28 情報処理装置およびデータ記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009016960A JP2010176305A (ja) 2009-01-28 2009-01-28 情報処理装置およびデータ記憶装置

Publications (1)

Publication Number Publication Date
JP2010176305A true JP2010176305A (ja) 2010-08-12

Family

ID=42707243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009016960A Pending JP2010176305A (ja) 2009-01-28 2009-01-28 情報処理装置およびデータ記憶装置

Country Status (1)

Country Link
JP (1) JP2010176305A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8824221B2 (en) 2011-09-26 2014-09-02 Samsung Electronics Co., Ltd. Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device
JP2014235677A (ja) * 2013-06-05 2014-12-15 株式会社東芝 データ記憶装置およびデータ記憶制御方法
US8947815B2 (en) 2013-03-19 2015-02-03 Kabushiki Kaisha Toshiba Disk storage apparatus and data storage method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6010013823, Adam Leventhal, "Flash Storage Memory", Communications of the ACM, 200807, Volume 51 , Issue 7, pp.47−51, US, ACM *
JPN7010000773, Roger Bitar, "DEPLOYING HYBRID STORAGE POOLS", DEPLOYING HYBRID STORAGE POOLS, 20091219, Revision 1.1, US *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8824221B2 (en) 2011-09-26 2014-09-02 Samsung Electronics Co., Ltd. Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device
US8947815B2 (en) 2013-03-19 2015-02-03 Kabushiki Kaisha Toshiba Disk storage apparatus and data storage method
US9354817B2 (en) 2013-03-19 2016-05-31 Kabushiki Kaisha Toshiba Disk storage apparatus and data storage method
JP2014235677A (ja) * 2013-06-05 2014-12-15 株式会社東芝 データ記憶装置およびデータ記憶制御方法
US10268415B2 (en) 2013-06-05 2019-04-23 Kabushiki Kaisha Toshiba Data storage device including a first storage unit and a second storage unit and data storage control method thereof

Similar Documents

Publication Publication Date Title
US9910597B2 (en) Memory system having a plurality of writing modes
US7610438B2 (en) Flash-memory card for caching a hard disk drive with data-area toggling of pointers stored in a RAM lookup table
JP4988008B2 (ja) 情報処理装置およびドライバ
JP4988007B2 (ja) 情報処理装置およびドライバ
US20170235681A1 (en) Memory system and control method of the same
JP5434738B2 (ja) ディスク装置
US20110231598A1 (en) Memory system and controller
US8112589B2 (en) System for caching data from a main memory with a plurality of cache states
US10740251B2 (en) Hybrid drive translation layer
US20160026579A1 (en) Storage Controller and Method for Managing Metadata Operations in a Cache
US20130275650A1 (en) Semiconductor storage device
US8825946B2 (en) Memory system and data writing method
JP2013137770A (ja) Lbaビットマップの使用
JP2011128998A (ja) 半導体記憶装置
JP2010152909A (ja) 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
TW201040722A (en) Method and system to perform caching based on file-level heuristics
US20200225882A1 (en) System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance
US20130086307A1 (en) Information processing apparatus, hybrid storage apparatus, and cache method
US20140258591A1 (en) Data storage and retrieval in a hybrid drive
JP2010176305A (ja) 情報処理装置およびデータ記憶装置
JP5025670B2 (ja) 情報処理装置およびデータ記憶装置
JP2012078939A (ja) 情報処理装置およびキャッシュ制御方法
JP2010191672A (ja) データ記憶システム
USRE49818E1 (en) Information processing method in a multi-level hierarchical memory system

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101115

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101122

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110107