JP2016021271A - 記憶装置、及び制御方法 - Google Patents

記憶装置、及び制御方法 Download PDF

Info

Publication number
JP2016021271A
JP2016021271A JP2014143683A JP2014143683A JP2016021271A JP 2016021271 A JP2016021271 A JP 2016021271A JP 2014143683 A JP2014143683 A JP 2014143683A JP 2014143683 A JP2014143683 A JP 2014143683A JP 2016021271 A JP2016021271 A JP 2016021271A
Authority
JP
Japan
Prior art keywords
data
read
stored
storage unit
head
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.)
Granted
Application number
JP2014143683A
Other languages
English (en)
Other versions
JP6178287B2 (ja
Inventor
井上 裕章
Hiroaki Inoue
裕章 井上
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 JP2014143683A priority Critical patent/JP6178287B2/ja
Priority to US14/624,507 priority patent/US9606932B2/en
Priority to CN201510212991.4A priority patent/CN105278870A/zh
Publication of JP2016021271A publication Critical patent/JP2016021271A/ja
Application granted granted Critical
Publication of JP6178287B2 publication Critical patent/JP6178287B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】応答速度を向上させる。
【解決手段】実施形態の記憶装置は、不揮発性メモリと、磁気媒体と、ヘッドと、記憶部と、コントローラと、を備える。ヘッドは、磁気媒体からデータを読み出すための構成とする。記憶部は、不揮発性メモリに格納されたデータの位置及びサイズの情報と、当該データを読み出す際にシーケンシャルリードであるか否かを示す情報と、を対応付けて記憶する。コントローラは、読み出し要求されたデータの位置と、当該読み出し位置がシーケンシャルリードである旨を示す情報と、が記憶部に記憶されている場合に、不揮発性メモリからデータを読み出す間に、ヘッドを、不揮発性メモリから読み出されているデータの続きとなるデータが格納されている位置まで移動させる制御を行う。
【選択図】図1

Description

本発明の実施形態は、記憶装置、及び制御方法に関する。
従来、大容量化とデータアクセスの高速化を両立させるため、磁気ディスクなどのストレージデバイスのキャッシュとして、NAND型フラッシュメモリなどの半導体記憶媒体を使用したハイブリッドドライブがある。
特開2005−209119号公報
本発明の一つの実施形態は、ホストからのリード要求に対する応答速度を向上させる記憶装置、及び制御方法を提供することを目的とする。
実施形態の記憶装置は、不揮発性メモリと、磁気媒体と、ヘッドと、記憶部と、コントローラと、を備える。ヘッドは、磁気媒体からデータを読み出すための構成とする。記憶部は、不揮発性メモリに格納されたデータの位置及びサイズの情報と、当該データを読み出す際にシーケンシャルリードであるか否かを示す情報と、を対応付けて記憶する。コントローラは、読み出し要求されたデータの位置と、当該読み出し位置がシーケンシャルリードである旨を示す情報と、が記憶部に記憶されている場合に、不揮発性メモリからデータを読み出す間に、ヘッドを、不揮発性メモリから読み出されているデータの続きとなるデータが格納されている位置まで移動させる制御を行う。
図1は、第1の実施形態のデータ記憶装置の構成例を示すブロック図である。 図2は、第1の実施形態のキャッシュ情報記憶部のテーブル構造を例示した図である。 図3は、第1の実施形態のキャッシュ属性記憶部のテーブル構造を例示した図である。 図4は、第1の実施形態のCPUが制御プログラムを実行した際に実現される各構成を例示した図である。 図5は、第1の実施形態のデータ記憶装置におけるNANDメモリにキャッシュする処理の手順を例示したフローチャートである。 図6は、第1の実施形態のデータ記憶装置におけるデータの読み出し処理の手順を例示したフローチャートである。 図7は、第2の実施形態のキャッシュ情報記憶部のテーブル構造を例示した図である。 図8は、第2の実施形態の磁気媒体の状態に対応する、ヘッドのシークが可能になるまでに必要な動作を例示した図である。 図9は、第2の実施形態のデータ記憶装置における、磁気媒体の状態に応じた、データを読み出すまでの時間を例示した図である。
(第1の実施形態)
図1は、第1の実施形態のデータ記憶装置の構成例を示すブロック図である。図1の例に示されるように、データ記憶装置100は、ホストI/F101と、バッファ102と、第1の信号処理部103と、NANDメモリ104と、第2の信号処理部105と、ヘッド106と、磁気記録媒体107と、リードライトチャネル108と、VCM109と、スピンドルモータ110と、ドライバIC111と、メインコントローラ112と、フラッシュメモリ113と、を備えている。
なお、NANDメモリ104は、磁気記録媒体107と比べて、データの読み出しが速く開始される。例えば、磁気記録媒体107が定常回転で回転中だったとしても、データを読み出すまでに、シーク(ヘッド106の移動時間)、及び回転待ち時間が必要となる。これに対して、NANDメモリ104は、シーク、及び回転待ち時間が不要なため、即座にデータの読み出しを開始できる。
ホストI/F101は、ホスト(不図示)との間のインタフェース規格に従った処理を実施する。例えば、ホストI/F101は、ホストから受信した命令、データなどをHDC121に出力する。また、ホストI/F101は、NANDメモリ104又は磁気記録媒体107から読み出されたデータ、HDC121やCPU122からの応答などをホストへ送信する。
バッファ102は、NANDコントローラ142がホストから受信したデータをNANDメモリ104へ記憶するまでに一時的に格納する。また、バッファ102は、NANDメモリ104から読み出したデータをホストに送信するまでに一時的に格納する。さらに、バッファ102は、磁気記録媒体107から読み出したデータをホストに送信又はNANDメモリ104に格納するまでに一時的に格納する。バッファ102は、例えば、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの汎用メモリで構成される。
第1の信号処理部103は、バッファ102からNANDメモリ104に書き込まれるデータに対して、変換処理を施す。変換処理としては、例えばD/A変換や符号化処理等がある。さらに、第1の信号処理部103は、NANDメモリ104から読み出された信号に対して、変換処理を施す。施す変換処理としては、例えばA/D変換や復号化処理等がある。
第2の信号処理部105は、磁気記録媒体107に書き込まれるデータに対して、変換処理を施す。変換処理としては、例えばD/A変換や符号化処理等がある。さらに、第2の信号処理部105は、磁気記録媒体107から読み出された信号に対して、変換処理を施す。施す変換処理としては、例えばA/D変換や復号化処理等がある。さらに、第2の信号処理部105は、ヘッド106で読み出された信号の検出や、増幅を行っても良い。
ヘッド106は、磁気記録媒体107に対してデータを書き込むための構成である。また、ヘッド106は、磁気記録媒体107からデータを読み込むための構成である。
VCM(ボイスコイルモータ)109は、磁気記録媒体107に対するヘッド106の位置決め制御に用いられる構成である。
磁気記録媒体107は、データの読み書き可能な磁気ディスクであり、複数設けられている。スピンドルモータ110は、磁気記録媒体107として設けられた複数の磁気ディスクを回転させる。
ドライバIC111は、CPU111の制御に従って、VCM109の駆動を制御する。また、ドライバIC111は、CPU111の制御に従って、スピンドルモータ110の回転を制御する。
リードライトチャネル108は、ヘッド106とHDC121との間でデータの受け渡しを行う。例えば、リードライトチャネル108は、HDC121から供給される、磁気記録媒体107に書き込むためのデータをコード変調し、第2の信号処理部105に供給する。また、リードライトチャネル108は、ヘッド106により磁気記録媒体107から読み取られ、第2の信号処理部105で変換されたデータをコード復調し、デジタルデータとしてHDC121に出力する。
NANDメモリ104は、データ領域と、管理領域と、に分けて構成されている。データ領域は、ホストまたは磁気記録媒体107からのデータをキャッシュする領域であって、高速にデータの読み出しを可能とする。管理領域は、NANDメモリ104のデータ領域を管理するための情報を記憶し、例えば、キャッシュ情報記憶部131と、キャッシュ属性記憶部132と、を備えている。すなわち、キャッシュ情報記憶部131およびキャッシュ属性記憶部132は、不揮発な記憶部に格納されている。
キャッシュ情報記憶部131は、NANDメモリ104に格納したデータに関する情報を記憶する。図2は、本実施形態のキャッシュ情報記憶部131に記憶された情報の構造を例示した図である。図2に示されるように、キャッシュ情報記憶部131は、LBA(論理アドレス)と、ブロック(データのサイズ)と、属性と、を対応付けて記憶している。
LBA(論理アドレス)は、NANDメモリ104に格納されたデータの、ホストで管理される論理アドレスにおけるデータの開始位置を示している。ブロックは、NANDメモリ104に格納されたデータのサイズを示している。属性は、当該データにアクセスする際にホストから受け取った命令の属性を示している。
例えば、キャッシュ情報記憶部131が、LBA“1000h”、ブロック“2000h“、属性“シーケンシャルリード”を記憶している場合、開始アドレス(LBA)“1000h”から、ブロック“2000h“分のデータがNANDメモリ104に格納されていることを示している。
ところで、ランダムリードは、読み出すデータの位置が変更される毎に、シーク(ヘッド106の移動時間)、及び回転待ち時間が必要になる。これに対して、シーケンシャルリードは、一度シークし、回転待ちした後は、継続的にデータを読み取ることができる。このため、シーケンシャルリードは、回転待ちの後、データを比較的高速に読み出すことができる。
そこで、本実施形態では、シーケンシャルリードの場合、シーク、及び回転待ちに要する時間にホストへ転送可能な量のデータを、NANDメモリ104に格納することとした。つまり、CPU122が、ドライバIC111を介してヘッド106のシーク及び回転待ちをさせている間、NANDコントローラ142が、NANDメモリ104からデータを読み出す。そして、シーク、及び回転待ちが終了する際に、HDC121が、CPU122からの命令に従って、記憶媒体107から、NANDメモリ104から読み出したデータの続きを読み出す。これにより、シーケンシャルリードのデータの読み出しを高速にすると共に、NANDメモリ104に格納するデータ量を削減できるため、NANDメモリ104を有効に利用できる。
このため、キャッシュ情報記憶部131においては、NANDメモリ104に格納されたデータと、属性と、が対応付けられている。属性には、受け取った命令の属性として、少なくともシーケンシャルリードであるか否かを示す情報が設定されている。
図1に戻り、キャッシュ属性記憶部132は、NANDメモリ104に格納したデータに対して、実行するアクションを記憶する。図3は、キャッシュ属性記憶部132に記憶された情報の構造を例示した図である。図3に示されるように、キャッシュ属性記憶部132は、属性と、アクションと、を対応付けて記憶している。例えば、属性は、キャッシュ情報記憶部131の属性と同じものとする。つまり、NANDメモリ104からデータの読み出しが行われた際に、CPU122は、当該データとキャッシュ情報記憶部131で対応付けられた属性を検索キーとして、キャッシュ属性記憶部132を検索する。検索後、CPU122は、当該属性とキャッシュ属性記憶部132で対応付けられていたアクションを実行する。
SOC112は、HDC121と、CPU122と、SRAM123と、を備えている。
HDC121は、NANDコントローラ142を備え、CPU122からの命令に従って、ホストI/F101を介してホストとの間で、データの送受信を制御する。また、HDC121は、CPU122からの命令に従って、リードライトチャネル108を用いた、記憶媒体107に対するデータの書き込み又は読み出し制御を行う。さらには、HDC121は、バッファ102の制御、及び第2の信号処理部105を用いてデータの誤り訂正処理などを行う。
フラッシュメモリ113は、CPU122が実行するためのプログラム等を格納する。例えば、フラッシュメモリ113は、制御プログラム151を格納している。
SRAM123は、コマンド履歴記憶部141を備えている。本実施形態では、コマンド履歴記憶部141をSRAM123に格納する例について説明するが、コマンド履歴記憶部141の格納先をSRAM123に制限するものではなく、例えばDRAM等でも良い。
コマンド履歴記憶部141は、ホストI/F101が受信した命令(例えば読み出し要求、又は書き込み要求)の履歴を、当該命令のアクセス先の位置(データの開始位置)とともに記憶する。本実施形態のコマンド履歴記憶部141は、ホストから受信した命令(例えば、リード要求、ライト要求)と、アクセスするデータの開始位置(LBA)と、読み出し又は書き込みされたブロック数と、命令を受信した時間と、を少なくとも対応付けて記憶している。
本実施形態では、ホストI/F101がホストから命令を受信する毎に、CPU122が、コマンド履歴記憶部141に対して受信した命令に関する情報を登録する。コマンド履歴記憶部141は、命令毎に、命令を受信した時刻等が対応付けられているため、シーケンシャルにデータを読み出す要求か否かを判定できる。つまり、コマンド履歴記憶部141には、読み出し要求がなされたデータの開始位置と、当該読み出し要求がシーケンシャルリードであるか否かを特定可能な情報と、が記憶されている。
CPU122は、データ記憶装置100全体の制御を行う。例えば、CPU122は、ドライバIC111を介して、スピンドルモータ110を回転させる制御を行う。他の例としては、フラッシュメモリ113に記憶されている制御プログラム151を実行する。
図4は、CPU122が制御プログラム151を実行した際に実現される各構成を例示した図である。図4に示されるように、CPU122には、判定部401と、特定部402と、NANDメモリ指示部403と、磁気ディスク指示部404と、が構成される。
判定部401は、コマンド履歴記憶部141に格納された情報に基づいて、磁気記録媒体107に格納されたデータを、NANDメモリ104に格納(キャッシュ)するか否かを判別する。格納(キャッシュ)するか否かの基準は、周知を問わずどのような基準でも良いが、例えば、同一データに対して所定回数以上リード要求があった場合等とする。
特定部402は、キャッシュするデータにおける開始位置及びブロックを特定する。例えば、シーケンシャルリードが行われたデータをNANDメモリ104にキャッシュする場合、特定部402は、シーケンシャルリードが行われるデータのうち、ヘッド106が磁気記録媒体107から読み出し開始できるまでの時間(例えば、シーク及び回転待ちに要する時間)に基づいて、NANDメモリ104から読み出すデータのブロックを特定する。また、特定部402は、シーケンシャルリードが行われるデータの開始位置を、キャッシュするデータの開始位置として特定する。
磁気ディスク指示部404は、HDC121に対して、データの読み出し又は書き込みを指示する。例えば、磁気ディスク指示部404は、特定部402により特定されたデータの開始位置からブロック数分のデータを読み出すように指示する。
NANDメモリ指示部403は、NANDコントローラ142に対して、データの読み出し又は書き込みを指示する。例えば、NANDメモリ指示部403は、磁気ディスク指示部404の指示に従ってHDC121が読み出したデータを、NANDメモリ104に書き込むように、NANDコントローラ142に指示する。その際に、NANDメモリ指示部403は、NANDメモリ104に書き込んだデータに関する情報を、キャッシュ情報記憶部131に登録するように、NANDコントローラ142に指示する。
つまり、本実施形態のCPU122は、コマンド履歴記憶部141に基づいて、磁気記録媒体107に格納されているデータを、NANDメモリ104に書き込む。その際に、CPU122は、キャッシュ情報記憶部131に、データの読み出し位置と、少なくともシーケンシャルリードであるか否かを示された属性と、を対応付けて登録する。
これにより、本実施形態は、シーケンシャルリードされるデータをNANDメモリ104にキャッシュする場合、先頭の一部のデータのみをキャッシュすることができる。そして、ホストI/F101が、ホストからリード要求を受信した場合に、以下に示す処理を行う。
判定部401は、ホストI/F101で受信したリード要求に従って、読み出されるデータが、NANDメモリ104に格納されているか否かを判定する。本実施形態の判定部401は、キャッシュ情報記憶部131を参照して、読み出されるデータが、NANDメモリ104に格納されているか否かを判定する。さらに、判定部401は、キャッシュ情報記憶部131を参照して、リード要求がシーケンシャルリードの可能性が高いか否かを判定する。本実施形態では、読み出されるデータが、キャッシュ情報記憶部131で属性“シーケンシャルリード”と対応付けられている場合に、シーケンシャルリードの可能性が高いと判定する。
特定部402は、シーケンシャルリードの可能性が高いと判定された場合に、NANDメモリ104から読み出されたデータの続きとなるデータが格納された、磁気記録媒体107上のデータ開始位置(LBA)を特定する。
NANDメモリ指示部403は、リード要求で読み出されるデータが、NANDメモリ104に格納されていると判断された場合に、当該データをNANDメモリ104から読み出すように、NANDコントローラ142に指示する。
磁気ディスク指示部404は、リード要求で読み出されるデータが、NANDメモリ104に格納されていないと判断された場合に、当該データを磁気記録媒体107から読み出すように、HDC121に指示する。
また、磁気ディスク指示部404は、リード要求で読み出されるデータが、NANDメモリ104に格納され、且つシーケンシャルリードの可能性が高いと判定された場合に、NANDメモリ104から読み出されたデータの続きを、磁気記録媒体107から読み出すように、HDC121及びドライバIC111を制御する。
よってCPU122が、NANDメモリ104からデータを読み出す処理の間に、ドライバIC111を介して、NANDメモリ104から読み出されているデータの続きとなるデータの格納位置までヘッド106を移動させる制御を行う。移動制御の後、CPU122は、HDC121を介して、磁気記録媒体107からデータを読み込む制御を行う。本実施形態では、読み出し要求されたデータの読み出し位置が、キャッシュ情報記憶部131に記憶され、当該読み出し位置がキャッシュ情報記憶部131で“シーケンシャルリード”と対応付けられている場合に、当該移動制御及び読み込む制御が行われる。
次に、本実施形態のデータ記憶装置100におけるNANDメモリ104にキャッシュする処理について説明する。図5は、本実施形態のデータ記憶装置100における上述した処理の手順を例示したフローチャートである。
まず、CPU122の判定部401が、コマンド履歴記憶部141に記憶されたリード要求の履歴を解析する(処理S501)。次に、判定部401は、NANDメモリ104に保存すべきリード要求の履歴があるか否かを判定する(処理S502)。履歴がない場合(処理S502:No)、処理S508に遷移する。
一方、履歴があると判定した場合(処理S502:Yes)、CPU122の特定部402が、シーク、及び回転待ちに要する時間を取得する(処理S503)。なお、本実施形態は、磁気記録媒体107からデータを読み出す際の平均シーク時間、及び平均回転待ち時間の合計を、シーク、及び回転待ちに要する時間に用いる例とする。なお、本実施形態は、シーク、及び回転待ちに要する時間を、平均シーク時間、及び平均回転待ち時間の合計に制限するものではなく、例えば、最大シーク時間、及び最大回転待ち時間の合計でもよい。
そして、特定部402が、取得したシーク、及び回転待ちに要する時間で、NANDメモリ104から読み出させるデータのブロック数を特定する(処理S504)。
次に、CPU122の磁気ディスク指示部404が、磁気記録媒体107から、特定されたブロック数分のデータを、リード要求の開始位置から読み出すよう、HDC121に指示する(処理S505)。
そして、CPU122のNANDメモリ指示部403が、読み出したデータをNANDメモリ104に保存するよう、NANDコントローラ142に指示する(処理S506)。
CPU122のNANDメモリ指示部403が、保存したデータに関する情報を、キャッシュ情報記憶部131に保存するよう、NANDコントローラ142に指示する(処理S507)。NANDメモリ指示部403は、保存したデータの磁気記録媒体107上の読み出し開始位置(LBA)と、保存したデータのブロック(長)と、当該データの読み出しを行った命令の属性と、を対応付けて、キャッシュ情報記憶部131に記憶する。なお、属性としては、例えば、当該命令がシーケンシャルリードであったか否かを示す情報が少なくとも含まれる。
その後、判定部401は、コマンド履歴記憶部141に記憶された全ての履歴の解析が終了したか否かを判定する(処理S508)。全ての履歴の解析が終了していないと判定した場合(処理S508:No)、処理S501から再び行う。判定部401が、全ての履歴の解析が終了したと判定した場合(処理S508:Yes)、処理を終了する。
次に、本実施形態のデータ記憶装置100におけるデータの読み出し処理について説明する。図6は、本実施形態のデータ記憶装置100における上述した処理の手順を例示したフローチャートである。
まず、ホストI/F101が、ホストから、データの読み出し要求を受信する(処理S601)。次に、CPU122のNANDメモリ指示部403が、キャッシュ情報記憶部131に対する、読み出し要求されたデータの検索を、NANDコントローラ142に要求する(処理S602)。そして、判定部401が、検索結果に基づいて、NANDメモリ104に読み出し要求されたデータがあるか否かを判定する(処理S603)。
読み出し要求されたデータがNANDメモリ104にないと判定した場合(処理S603:No)、特定部402が、磁気記録媒体107上のデータの読み出し開始位置(LBA)を特定する(処理S604)。そして、ドライバIC111が、CPU122からの要求に従って、読み出すための準備を開始する。
ドライバIC111は、スピンドルモータ110が停止中か否かを判定する(処理S605)。停止中ではないと判定した場合(処理S605:No)、処理S607に遷移する。一方、停止中と判定した場合(処理S605:Yes)、ドライバIC111は、スピンドルモータ110の起動制御を行う(処理S606)。
次に、ドライバIC111は、ヘッド106がアンロードされているか否かを判定する(処理S607)。アンロードされていないと判定した場合(処理S607:No)、処理S609に遷移する。一方、アンロードされていると判定された場合(処理S607:Yes)、ドライバIC111は、ヘッド106をロードする(処理S608)。
その後、ドライバIC111は、特定された読み出し開始位置(LBA)までヘッド106のシークを行う(処理S609)。そして、HDC121が、CPU122に従って、読み出し要求されたデータを、磁気記録媒体107から読み出す(処理S610)。
一方、読み出し要求されたデータがNANDメモリ104にあると判定した場合(処理S603:Yes)、NANDメモリ指示部403が、NANDメモリ104からデータの読み出しを開始するように、NANDコントローラ142に指示する(処理S611)。
次に、判定部401が、読み出しが開始されたデータと対応付けられた属性がシーケンシャルリードであるか否かを判定する(処理S612)。シーケンシャルリードではないと判定した場合(処理S612:No)、処理を終了する。
一方、判定部401が、シーケンシャルリードであると判定した場合(処理S612:Yes)、特定部402は、NANDメモリ104から読み出しているデータの続きとなる、磁気記録媒体107上のデータの読み出し開始位置を特定する(処理S613)。特定手法としては、例えば、キャッシュ情報記憶部131に記憶されたデータの読み出し開始位置と、対応付けられたブロック分だけ後のアドレスを、データ開始位置として特定する。そして、ドライバIC111が、CPU122からの要求に従って、読み出すための準備を開始する。そして、処理S605〜処理S610と同様の処理手順で、データの読み出しが行われる(処理S614〜S619)。
本実施形態のデータ記憶装置100においては、リード要求のうち、シーケンシャルリードを学習する。例えば、NANDメモリ104にキャッシュする時は、先頭の一部のみをキャッシュする。その際に、NANDメモリ指示部403は、キャッシュ情報記憶部131に対して、キャッシュしたデータに、シーケンシャルリードである(シーケンシャルリードが継続する)旨を示した属性を対応付けて登録する。キャッシュされたデータを読み出す際、当該データに属性“シーケンシャルリード”が対応付けて登録されている場合、NANDメモリ104からリードしている間に、NANDメモリ104にキャッシュされたデータが無くなる位置に、ヘッド106を移動させる。
なお、本実施形態のデータ記憶装置100においては、磁気記録媒体107のデータをNANDメモリ104にキャッシュするタイミングを制限するものではなく、例えば、データ記憶装置100がアイドル時間中に行うなどが考えられる。
(第2の実施形態)
第1の実施形態では、NANDメモリ104にデータをキャッシュする際に、少なくともシーケンシャルリードであるか否かを含む属性を対応付ける例について説明した。しかしながら、読み出すデータと対応付ける情報を、属性に制限するものではなく、他の条件に基づいてNANDメモリ104に格納するデータの長さを決めても良い。
そこで、第2の実施形態では、キャッシュ情報記憶部131において、読み出すデータと、HDDの状態を対応付けた例について説明する。
本実施形態は、NANDメモリ104に格納されたキャッシュ情報記憶部131の構成と、コマンド履歴記憶部141の構成と、を除いて、第1の実施形態と同様の構成を備えているものとして、各構成の説明を省略する。
図7は、本実施形態のキャッシュ情報記憶部131のテーブル構造を例示した図である。図7に示されるように、本実施形態のキャッシュ情報記憶部131は、LBAと、ブロックと、属性と、HDDの状態と、を対応付けて記憶している。本実施形態のキャッシュ情報記憶部131は、第1の実施形態のキャッシュ情報記憶部131と比べて、HDDの状態が対応付けられている。
HDDの状態は、対応付けられたデータの読み出し要求を受信した際の磁気記録媒体107の状態とする。つまり、本実施形態では、ホストI/F101が命令を受信した際、CPU122が、コマンド履歴として、命令を受信した際の磁気記録媒体107の状態を、当該命令に関する情報と対応付けて、コマンド履歴記憶部141に記憶する。
そして、コマンド履歴記憶部141に基づいてデータをNANDメモリ104にキャッシュする際に、NANDコントローラ142は、HDDの状態を、キャッシュするデータと対応付けてキャッシュ情報記憶部131に記憶しておく。
ところで、磁気記録媒体107(HDD)の状態に応じて、データの読み出しが開始できるまでに必要な動作が異なる。図8は、磁気記録媒体107(HDD)の状態に対応する、ヘッド106のシークが可能になるまでに必要な動作を例示した図である。図8に示されるように、磁気記録媒体107(HDD)及びヘッド106のいずれかの動作状態としては、“スピンドルモータの停止”、“ヘッドが待避エリア”、及び“定常回転”がある。
“スピンドルモータの停止”とは、磁気記録媒体107に含まれる磁気ディスクの回転が停止し、ヘッド106がランプと呼ばれる退避エリアにある動作状態である。図8に示されるように、スピンドルモータ110が停止の場合、スピンドルモータ110を起動し、定常回転させる。その後、ヘッド106を磁気記録媒体107の磁気ディスク上に移動(浮上)させる動作(ヘッドロード)を行う必要がある。
“ヘッドが待避エリア”とは、スピンドルモータ110は回転し、ヘッド106が退避エリアにある動作状態である。図8に示されるように、ヘッド106が待避エリアの場合、ヘッドロードを行う必要がある。
“定常回転”は、スピンドルモータ110は回転し、磁気ヘッドは磁気媒体上にある動作状態である。図8に示されるように、定常回転の場合、即座にヘッド106のシーク、及び回転待ちに移行できる。
図9は、本実施形態のデータ記憶装置100における、磁気記録媒体107の状態に応じた、データを読み出すまでの時間を例示した図である。図9の(A)に示されるように、“スピンドルモータ110の停止”の時には、データを読み出すまで、1600ms(スピンドルモータ起動)+600ms(ヘッドロード)+15ms(シーク)+5ms(回転待ち)=2220msの時間を要する。このため、CPU122は、NANDメモリ104に、2220msで読み出し可能なデータを格納しておく。このように、特定部402は、スピンドルモータ110が停止している時、スピンドルモータ110の起動時間、及びヘッド106が磁気記録媒体107に移動するまでの時間を見積もって、NANDメモリ104にキャッシュする量を特定する。
図9の(B)に示されるように、“アンロード”の時には、データを読み出すまで、600ms(ヘッドロード)+15ms(シーク)+5ms(回転待ち)=620msの時間を要する。このため、CPU122は、NANDメモリ104に、620msで読み出し可能なデータを格納しておく。このように、特定部402は、ヘッド106が退避エリアにある時、ヘッド106が磁気記録媒体107に移動するまでの時間を見積もって、NANDメモリ104にキャッシュする量を特定する。
図9の(C)に示されるように、“定常回転”の時には、データを読み出すまで、15ms(シーク)+5ms(回転待ち)=20msの時間を要する。このため、CPU122は、NANDメモリ104に、20msで読み出し可能なデータを格納しておく。
このように、本実施形態のCPU122は、リードコマンドを受信した際の磁気記録媒体107及びヘッド106の状態(換言すればコマンド履歴記憶部141に記憶されたコマンド受信時の磁気記録媒体107及びヘッド106の状態)に応じて、NANDメモリ104に書き込むデータの長さを異ならせる。
例えば、“スピンドルモータ110の停止”、及び“ヘッド106が待避エリア”では、“定常回転”と比べて、NANDメモリ104にキャッシュとして記録するデータ量が多くなる。
このように、本実施形態のNANDメモリ104は、データをキャッシュする際、当該データの読み出し要求がきた際に、当該読み出し要求に関する属性と共に、磁気記録媒体107等の状態も対応付けて、キャッシュ情報記憶部131に記憶する。なお、データの読み出し時に行う処理は、第1の実施形態と同様として説明を省略する。
上述した実施形態では、キャッシュ情報記憶部が、データの読み出し位置及びサイズと、シーケンシャルリードであるか否かを示す情報と、を対応付けて記憶している。これにより、ホストI/F101がデータの読み出し要求を受信した際に、当該データがシーケンシャルリードである可能性が高いか否かを判定できる。従って、ホストI/F101がデータの読み出し要求を受信した際に、シーケンシャルリードの可能性が高いと判定した場合に、CPU122が、NANDメモリ104からデータを読み込んでいる間に、ヘッド106を読み込まれているデータの続きの位置まで移動させることが可能となる。これにより、シーケンシャルリードの場合に応答速度の向上を図ることができる。
上述した実施形態のデータ記憶装置100においては、コマンド履歴の中から今後リード要求がありそうなデータをディスクから読出し、NANDメモリ104に保存している。また、シーケンシャルリードする場合に、ヘッド106がデータを読み出すまでの時間に対応したデータ量を、NANDメモリ104に格納している。これにより、NANDメモリ104を書き込み回数の削減と、NANDメモリ104の容量を有効に利用することができる。これにより、NANDメモリ104の劣化を抑止すると共に、ヒット率の向上を実現できる。また、シーケンシャルリードが行われる際に、即座にデータの読み出しが可能なため、応答速度の向上を図ることができる。
つまり、上述した実施形態では、シーケンシャルリード時には、NANDメモリ104からデータを読み込んだ後に、継続して磁気記録媒体107のデータの読み込みにつなげることができるため、読み出しが途切れることのないシーケンシャルリードを実現できる。従って、NANDメモリ104の記憶容量を抑えつつ、性能の維持、向上を図ることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…データ記憶装置、101…ホストI/F、102…バッファ、103…第1の信号処理部、104…NANDメモリ、105…第2の信号処理部、106…ヘッド、107…磁気記録媒体、108…リードライトチャネル、109…VCM、110…スピンドルモータ、111…ドライバIC、112…SOC、113…フラッシュメモリ、121…HDC、122…CPU、123…SRAM、131…キャッシュ情報記憶部、132…キャッシュ属性記憶部、141…コマンド履歴記憶部、142…NANDコントローラ、151…制御プログラム、401…判定部、402…特定部、403…NANDメモリ指示部、404…磁気ディスク指示部。

Claims (6)

  1. 不揮発性メモリと、
    磁気媒体と、
    前記磁気媒体からデータを読み出すためのヘッドと、
    前記不揮発性メモリに格納されたデータの位置及びサイズの情報と、当該データを読み出す際にシーケンシャルリードであるか否かを示す情報と、を対応付けて記憶する記憶部と、
    前記読み出し要求されたデータの位置と、当該読み出し位置がシーケンシャルリードである旨を示す情報と、が前記記憶部に記憶されている場合に、前記不揮発性メモリからデータを読み出す間に、前記ヘッドを、前記不揮発性メモリから読み出されているデータの続きとなるデータが格納されている位置まで移動させる制御を行うコントローラと、
    を備える記憶装置。
  2. 前記コントローラは、さらに、前記ヘッドを、前記不揮発性メモリから読み出されているデータの続きとなるデータが格納されている位置まで移動させた後、前記磁気媒体から、データを読み込む制御を行う、
    請求項1に記載の記憶装置。
  3. データの読み出し要求を受信する通信部、をさらに備え、
    前記通信部で受信されたデータの読み出し要求の履歴を、読み出し要求された位置と、当該読み出し要求がシーケンシャルリードであるか否かを特定可能な情報と、を記憶する履歴記憶部を、さらに備え、
    前記コントローラは、前記履歴記憶部に記憶された情報に基づいて、前記磁気媒体に格納されているデータを前記不揮発性メモリに書き込み、当該データの読み出し位置及びサイズと、前記シーケンシャルリードであるか否かを示す情報と、を対応付けて前記記憶部に登録する、
    請求項1又は2に記載の記憶装置。
  4. 前記コントローラは、読み出し要求が行われたときの前記磁気媒体又は前記ヘッドの動作状態に応じて、前記不揮発性メモリに書き込むデータの長さを異ならせる、
    請求項1乃至3のいずれか一つに記載の記憶装置。
  5. 前記記憶部は、不揮発性である、
    請求項1乃至4のいずれか一つに記載の記憶装置。
  6. 不揮発性メモリと、磁気媒体と、前記磁気媒体からデータを読み出すためのヘッドと、を備える記憶装置の制御方法であって、
    前記不揮発性メモリに格納されたデータの位置及びサイズの情報と、当該データを読み出す際にシーケンシャルリードであるか否かを示す情報と、を対応付けて記憶部に記憶し、
    前記読み出し要求されたデータの位置と、当該読み出し位置がシーケンシャルリードである旨を示す情報と、が前記記憶部に記憶されている場合に、前記不揮発性メモリからデータを読み出す間に、前記ヘッドを、前記不揮発性メモリから読み出されているデータの続きとなるデータが格納されている位置まで移動させる制御を行うこと、
    を含む制御方法。
JP2014143683A 2014-07-11 2014-07-11 記憶装置、及び制御方法 Active JP6178287B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014143683A JP6178287B2 (ja) 2014-07-11 2014-07-11 記憶装置、及び制御方法
US14/624,507 US9606932B2 (en) 2014-07-11 2015-02-17 Storage device and control method thereof
CN201510212991.4A CN105278870A (zh) 2014-07-11 2015-04-29 存储装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014143683A JP6178287B2 (ja) 2014-07-11 2014-07-11 記憶装置、及び制御方法

Publications (2)

Publication Number Publication Date
JP2016021271A true JP2016021271A (ja) 2016-02-04
JP6178287B2 JP6178287B2 (ja) 2017-08-09

Family

ID=55067686

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014143683A Active JP6178287B2 (ja) 2014-07-11 2014-07-11 記憶装置、及び制御方法

Country Status (3)

Country Link
US (1) US9606932B2 (ja)
JP (1) JP6178287B2 (ja)
CN (1) CN105278870A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324631B2 (en) 2016-11-11 2019-06-18 Fujitsu Limited Control apparatus, storage apparatus and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137754A (ja) * 1994-11-10 1996-05-31 Fuji Xerox Co Ltd ディスクキャッシュ装置
JP2007034536A (ja) * 2005-07-25 2007-02-08 Sony Corp データ記憶装置及び方法、並びに記録再生システム
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
JP2007257718A (ja) * 2006-03-22 2007-10-04 Mitsubishi Electric Corp 映像情報処理装置
JP2009087487A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd ディスク装置及びデータの先読み方法
JP2012048361A (ja) * 2010-08-25 2012-03-08 Hitachi Ltd キャッシュを搭載した情報装置及びそれを用いた情報処理装置並びにプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006318B2 (en) * 2002-08-29 2006-02-28 Freescale Semiconductor, Inc. Removable media storage system with memory for storing operational data
JP4496790B2 (ja) 2004-01-26 2010-07-07 ソニー株式会社 データ記憶装置及び方法、並びに記録再生システム
JP2007293564A (ja) 2006-04-25 2007-11-08 Renesas Technology Corp メモリデバイスおよび情報記憶システム
KR100801015B1 (ko) * 2006-08-30 2008-02-04 삼성전자주식회사 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
JP2009151860A (ja) * 2007-12-20 2009-07-09 Hitachi Ltd 情報記録再生装置及び情報記録再生方法
JP2009237902A (ja) 2008-03-27 2009-10-15 Tdk Corp 記録装置及びその制御方法
CN101676872A (zh) * 2008-09-19 2010-03-24 刘杰 一种固态硬盘的结构及其加速初始化的方法
JP2011209973A (ja) 2010-03-30 2011-10-20 Hitachi Ltd ディスクアレイ構成プログラム、計算機、計算機システム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137754A (ja) * 1994-11-10 1996-05-31 Fuji Xerox Co Ltd ディスクキャッシュ装置
JP2007034536A (ja) * 2005-07-25 2007-02-08 Sony Corp データ記憶装置及び方法、並びに記録再生システム
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
JP2007257718A (ja) * 2006-03-22 2007-10-04 Mitsubishi Electric Corp 映像情報処理装置
JP2009087487A (ja) * 2007-10-01 2009-04-23 Hitachi Ltd ディスク装置及びデータの先読み方法
JP2012048361A (ja) * 2010-08-25 2012-03-08 Hitachi Ltd キャッシュを搭載した情報装置及びそれを用いた情報処理装置並びにプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324631B2 (en) 2016-11-11 2019-06-18 Fujitsu Limited Control apparatus, storage apparatus and method

Also Published As

Publication number Publication date
US20160011983A1 (en) 2016-01-14
JP6178287B2 (ja) 2017-08-09
CN105278870A (zh) 2016-01-27
US9606932B2 (en) 2017-03-28

Similar Documents

Publication Publication Date Title
KR100675010B1 (ko) 하이브리드 하드디스크 드라이브의 캐시 제어 방법, 이에적합한 기록 매체 그리고 이에 적합한 장치
US10163458B2 (en) Magnetic disk device and write method
JP2009020986A (ja) ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP4675881B2 (ja) 磁気ディスク装置およびその制御方法
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
US9727265B2 (en) Disk device and control method that controls amount of data stored in buffer
US20160378357A1 (en) Hybrid storage device and method for operating the same
US20200294540A1 (en) Magnetic disk device and method
KR20100030992A (ko) 특정 조건을 갖는 파일을 신속하게 판독할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체
US7451261B2 (en) Data storage device and control method with buffer control thereof
US9928871B2 (en) Storage device and a method for defect scanning of the same
JP2015082240A (ja) ストレージ装置、キャッシュコントローラ、及び不揮発性記憶媒体にデータを書き込む方法
JP2005267497A (ja) データ記憶装置、その制御方法及び磁気ディスク記憶装置
US10777218B2 (en) Disk-drive with efficient command reordering
US20120162809A1 (en) Magnetic disk drive and method of accessing a disk in the drive
US20060129716A1 (en) Data storage device and buffer control method thereof
JP6178287B2 (ja) 記憶装置、及び制御方法
US9047924B1 (en) Magnetic disk device and method of data refresh processing
CN109524028B (zh) 磁盘装置和磁头控制方法
JP4919983B2 (ja) データ記憶装置及びデータ記憶装置におけるデータ管理方法
JP5331670B2 (ja) 磁気ディスク・ドライブ及びそのリフレッシュ・ライト方法
US11756580B2 (en) Magnetic disk device, control method, and non-transitory computer-readable storage medium
JP7252448B2 (ja) テープ装置、制御装置および読み出し制御プログラム
US20240105216A1 (en) Magnetic disk device and control method
JP2009054209A (ja) 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170713

R151 Written notification of patent or utility model registration

Ref document number: 6178287

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151