JP2009288988A - バッファ制御方法及び記憶装置 - Google Patents

バッファ制御方法及び記憶装置 Download PDF

Info

Publication number
JP2009288988A
JP2009288988A JP2008140121A JP2008140121A JP2009288988A JP 2009288988 A JP2009288988 A JP 2009288988A JP 2008140121 A JP2008140121 A JP 2008140121A JP 2008140121 A JP2008140121 A JP 2008140121A JP 2009288988 A JP2009288988 A JP 2009288988A
Authority
JP
Japan
Prior art keywords
buffer
data
storage area
recording medium
command
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.)
Withdrawn
Application number
JP2008140121A
Other languages
English (en)
Inventor
Tatsuya Haga
達也 芳賀
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008140121A priority Critical patent/JP2009288988A/ja
Priority to US12/388,340 priority patent/US20090300234A1/en
Publication of JP2009288988A publication Critical patent/JP2009288988A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/063Dynamically variable buffer size

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】バッファ制御方法及び記憶装置において、シーケンシャルアクセス時の記憶装置の性能低下を抑制することを目的とする。
【解決手段】記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、記録媒体にライトするべきデータ又は記録媒体からリードされたデータをバッファの記憶領域内の連続したアドレスに格納し、バッファの記憶領域内の未使用領域又は使用済領域に応じてバッファの記憶領域のサイズを可変設定し、バッファをバッファ・リングとして使用する。
【選択図】図2

Description

本発明は、バッファ制御方法及び記憶装置に係り、特にシーケンシャルアクセスで用いられるバッファを制御するバッファ制御方法及び記憶装置に関する。
ホスト装置から磁気ディスク装置等の記憶装置に対して、磁気ディスクの論理アドレス上連続してライト動作を行うよう指示するシーケンシャルライトコマンドが発行された場合、磁気ディスク装置はライトデータをバッファの連続したアドレスに格納する。ライトデータをバッファの連続したアドレスに格納することにより、バッファに格納したライトデータを磁気ディスクの回転待ち無く連続的に磁気ディスクにライトすることが可能となる。バッファの連続した記憶領域を一定量使用した際、次にデータを格納するアドレスをシーケンシャルライトコマンドに応答してデータを格納し始めたアドレスに戻すことにより、バッファをバッファ・リング(Buffer Ring)として使用し続けることができる。
又、ホスト装置から磁気ディスク等の記憶装置に対して、磁気ディスクの論理アドレス上連続してリード動作を行うよう指示するシーケンシャルリードコマンドが発行された場合も、シーケンシャルライトの場合と同様に、磁気ディスク装置は磁気ディスクの連続した論理アドレスからリードされたリードデータをバッファの連続したアドレスに格納する。バッファの連続した記憶領域を一定量使用した際、次にデータを格納するアドレスをシーケンシャルリードコマンドに応答してデータを格納し始めたアドレスに戻すことにより、バッファをバッファ・リング(Buffer Ring)として使用し続けることができるのも、シーケンシャルライト時の場合と同様である。しかし、シーケンシャルリードの場合、磁気ディスク装置は、ホスト装置へのリードデータの転送終了後も磁気ディスクからデータをリードし続け、コマンドの発行を伴わなくとも、連続した論理アドレスのデータをバッファに格納し続ける動作を行う。
従来、シーケンシャルライト、シーケンシャルリード等のシーケンシャルアクセスで用いられるバッファの記憶領域のサイズは固定である。このため、ホスト装置と磁気ディスク装置との間でシーケンシャルアクセスに伴うデータ転送が行われる時、ホスト装置のデータ処理速度や磁気ディスク装置のデータ転送速度によっては、リード時のバッファフル(Buffer Full)状態やライト時のバッファエンプティ(Buffer Empty)状態の発生により磁気ディスクの回転待ちが発生する。バッファフル状態とは、バッファに格納するべきデータ(例えば、磁気ディスクからリードしたリードデータ)があるもののバッファの未使用記憶領域が不足している(或いは、未使用記憶領域が無い)状態を指し、バッファエンプティ状態とは、バッファから読み出すべきデータ(例えば、磁気ディスクにライトするべきライトデータ)がバッファに格納されていない状態を指す。
更に、磁気ディスクの回転待ち中にリード時のバッファエンプティ状態又はライト時のバッファフル状態が発生すると、磁気ディスク装置はホスト装置に対してコマンド終了応答を行うことができなくなり、磁気ディスク装置の性能が低下する。このような磁気ディスク装置の性能低下を避けるためにシーケンシャルアクセスで用いられるバッファの記憶領域を大きくすると、キャッシュデータを保持しているバッファのキャッシュデータ領域に上書きをすることになる。この場合、キャッシュデータ領域に保持可能なキャッシュデータ量が少なくなり、キャッシュデータへのヒット率が低下して、結果的に磁気ディスク装置の性能が低下してしまう。
従来のバッファ制御方法としては、例えば特許文献1乃至4にて提案されている如きバッファ制御方法がある。
特開2000−10898号公報 特開2006−285809号公報 特開2001−5724号公報 特開2006−139459号公報
従来、シーケンシャルアクセス時のバッファ制御に伴い記憶装置の性能が低下してしまうという問題があった。
そこで、本発明は、シーケンシャルアクセス時に記憶装置の性能低下を抑制可能なバッファ制御方法及び記憶装置を提供することを目的とする。
本発明の一観点によれば、記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータをバッファの記憶領域内の連続したアドレスに格納する格納ステップと、前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定する可変設定ステップを有し、前記バッファをバッファ・リングとして使用するバッファ制御方法が提供される。
本発明の一観点によれば、記録媒体と、バッファと、前記記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータを前記バッファの記憶領域内の連続したアドレスに格納するコントローラを備え、前記コントローラは、前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定し、前記バッファをバッファ・リングとして使用する記憶装置が提供される。
開示のバッファ制御方法及び記憶装置によれば、シーケンシャルアクセス時の記憶装置の性能低下を抑制することが可能である。
開示のバッファ制御方法及び記憶装置では、シーケンシャルアクセスで用いられるバッファの記憶領域のサイズを、バッファの記憶領域の使用状態に応じて可変設定して、バッファをバッファ・リングとして使用する。これにより、バッファの記憶領域を、バッファエンプティ状態及びバッファフル状態が発生しない最適な記憶領域を設定することができる。
ホスト装置のデータ処理速度又は記憶装置のデータ処理速度に応じてバッファの記憶領域のサイズを決定すれば、従来手法と比べてバッファの記憶領域をホスト装置により適合したサイズに設定することができる。これにより、データを保持しているバッファのキャッシュデータ領域への上書きを抑制すると共に、バッファフル状態及びバッファエンプティ状態の発生を抑制することができ、記憶装置の性能低下を抑制可能である。又、ユーザが記憶装置及びホスト装置を有するシステムを使用する使用環境に応じてバッファの記憶領域のサイズをチューニングする必要はなく、その分記憶装置内のデータ処理量の増大も抑制可能となる。
以下に、本発明のバッファ制御方法及び記憶装置の各実施例を、図面と共に説明する。
図1は、本発明の一実施例におけるシステムを示す図である。図1に示すシステム1では、ホスト装置11及び記憶装置12が有線及び/又は無線のインタフェース13を介して接続されている。システム1は、例えばデータ処理システム、ストレージシステム等である。
ホスト装置11は、例えば周知の構成を有する汎用コンピュータである。本実施例では、ホスト装置11は、CPU等のプロセッサや記憶部を含む本体部111、表示部112及びキーボード113を有する。
記憶装置12は、本実施例では周知の構成を有する磁気ディスク装置である。記憶装置12は、図1に示す如く接続されたハードディスクコントローラ(HDC:Hard Disk Controller)21、データバッファ22、リード/ライト制御部23、アクチュエータ24、磁気ディスク25等を有する。HDC21は、コマンド制御部31及びデータバッファ制御部32を有する。アクチュエータ24は、磁気ディスク25にデータを書き込み、磁気ディスク25からデータを再生する磁気ヘッド41を有する。
尚、記憶装置12は磁気ディスク装置に限定されるものではなく、記憶装置12が用いる記録媒体も磁気ディスク25等の磁気記録媒体に限定されるものではない。記録媒体には、例えば光ディスク等の光記録媒体、光磁気ディスク等の光磁気記録媒体等を用いても良い。
コマンド制御部31は、ホスト装置11からのコマンド受領処理、キャッシュ制御等を行う。データバッファ制御部32は、ホスト装置11及び磁気ディスク25から転送されたデータをデータバッファ22に格納し、データバッファ22からホスト装置11及び磁気ディスク25に転送する制御を行う。リード/ライト制御部23は、リード/ライトチャネル等を有し、磁気ディスク25やアクチュエータ24を制御する。
図2は、本実施例の動作を説明するフローチャートである。図2に示す処理の各ステップ(又は、手順)は、本実施例におけるバッファ制御方法の各ステップに相当する。図2に示すステップS1,S2,S4〜S6はHDC21により実行され、ステップS4,S7はリード/ライト制御部23により実行される。
図2において、ステップS1では、コマンド制御部31がホスト装置11が発行したシーケンシャルアクセスコマンドを受領する。ステップS2では、データバッファ制御部32が、シーケンシャルアクセスコマンドに基づいて、データバッファ22の記憶領域を最大サイズと比較して小さいサイズに初期設定する。
図3は、ステップS2におけるデータバッファ22の記憶領域のサイズの初期設定を説明する図である。図3において、SBはデータバッファ22のシーケンシャルバッファとして用いられる記憶領域を示し、BRは他のデータData1, ..., Data6等が格納される他の記憶領域を示し、MAXはデータバッファ22の記憶領域の最大サイズを示す。記憶領域SBはバッファ・リングとして使用される。CMD1, ..., CMD5は、記憶領域SBに格納されるか、或いは、記憶領域SBから読み出されるデータを示す。図3及び後述する図4乃至図6では、左下がりのハッチングは、シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合は記憶領域SBを経由して既に磁気ディスク25にライトされたライトデータを示し、シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合は記憶領域SBを経由して既にホスト装置11に転送済みのリードデータを示す。又、右下がりのハッチングは、シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合は記憶領域SBを経由して未だ磁気ディスク25にライトされていないライトデータを示し、シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合は記憶領域SBを経由して未だホスト装置11に転送していないリードデータを示す。図3乃至図6中、(a)はデータバッファの記憶領域を示し、(b)はデータバッファがバッファ・リングとして使用される様子を示す。
図2において、ステップS3では、リード/ライト制御部23がシーケンシャルアクセスコマンドに応じたアクセス処理を実行する。シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合、リード/ライト制御部23は、ホスト装置11から転送されてきたライトデータをデータバッファ22の記憶領域SBに格納し、記憶領域SBに格納されたライトデータを磁気ヘッド41により磁気ディスク25にライトする。一方、シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合、リード/ライト制御部23は、磁気ヘッド41により磁気ディスク25からリードされたリードデータをデータバッファ22の記憶領域SBに格納し、記憶領域SBに格納されたリードデータをホスト装置11へ転送する。
記憶領域SBのサイズの初期設定では、シーケンシャルアクセスコマンドに基づいて、記憶領域SBをデータバッファ22の記憶領域の最大サイズMAXと比較して小さいサイズにされる。このため、データバッファ22においてバッファフル状態又はバッファエンプティ状態が発生すると、記憶装置12では磁気ディスク25の回転待ちが発生する。磁気ディスク25の回転待ちが発生すると、データバッファ22の記憶領域SBを経由したデータの転送単位での処理が可能となるまで、磁気ディスク25の回転は維持されるが記憶装置12は待ち状態となる。バッファフル状態とは、データバッファ22に格納するべきデータ(例えば、磁気ディスク25からリードしたリードデータ)があるもののデータバッファ22の未使用の記憶領域SBが不足している(或いは、未使用の記憶領域SBが無い)状態を指し、バッファエンプティ状態とは、データバッファ22から読み出すべきデータ(例えば、磁気ディスク25にライトするべきライトデータ)がデータバッファ22の記憶領域SBに格納されていない状態を指す。
図4は、記憶装置12において磁気ディスク25の回転待ちが発生した状態を説明する図である。図4中、図3と同一部分には同一符号を付し、その説明は省略する。図4(b)において、シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合、記憶領域SBを経由して磁気ディスク25にライトするべきライトデータが記憶領域SBに格納されていないので、この場合はバッファエンプティ状態となる。一方、シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合、磁気ディスク25からリードされ記憶領域SBを経由してホスト装置11に転送するべきリードデータを記憶領域SBに格納できないので(リードデータを格納するのに十分なサイズの記憶領域SBが確保できないので)、この場合はバッファフル状態となる。
図2において、ステップS4では、データバッファ制御部32がデータバッファ22でバッファフル状態又はバッファエンプティ状態が発生しているか否かを判定する。データバッファ22の記憶領域SBのサイズと、データバッファ22を介して磁気ディスク25又はホスト装置11へ転送するデータの転送単位は予めわかっているので、ステップS4では周知の方法でバッファフル状態又はバッファエンプティ状態の発生の有無を判定可能である。ステップS4の判定結果がYESであると処理はステップS5へ進み、判定結果がNOであると処理は後述するステップS7へ進む。
図2において、ステップS5では、コマンド制御部31が磁気ディスク25の回転待ち中にホスト装置11が発行するシーケンシャルアクセスコマンドが要求する磁気ディスク25のセクタ数及びデータ転送速度、コマンドの発行間隔及び記憶装置12内でのホスト装置11からのコマンド受領からデータ転送開始までの内部処理時間を周知の方法で計測する。データ転送開始は、例えばライトデータのデータバッファ22から磁気ディスク25への転送の開始、或いは、リードデータの磁気ディスク25からデータバッファ22への転送の開始である。又、ステップS5では、計測結果に基づいてホスト装置11のデータ処理速度と、記憶装置12内の磁気ディスク25のデータ転送速度を算出する。磁気ディスク25のデータ転送速度とは、磁気ディスク25とデータバッファ22との間のデータ転送速度を指す。ホスト装置11のデータ処理速度と磁気ディスク25のデータ転送速度は、例えば次のような式に基づいて算出可能である。ここで、WBSはシーケンシャルライト処理を実行する時点でのデータバッファ22の記憶領域SBのサイズ、RBSはシーケンシャルリード処理を実行する時点でのデータバッファ22の記憶領域SBのサイズ、DPSはホスト装置11のデータ処理速度、DTSは磁気ディスク25のデータ転送速度、DRTは磁気ディスク25の1回転に要する時間(以下、1回転時間と言う)を示す。
WBS=DPS*DRT
RBS=DTS*DRT
図2において、ステップS6では、データバッファ制御部32がステップS5で算出された結果を用いて、記憶装置12のデータバッファ22の記憶領域SBのサイズを回転待ち中のバッファフル状態又はエンプティ状態が起こらない限界サイズまで拡大、或いは、縮小することで、記憶領域SBのサイズを再設定する。
図5は、ステップS6によるデータバッファ22の記憶領域SBのサイズの再設定を説明する図である。図5中、図3と同一部分には同一符号を付し、その説明は省略する。
図4(b)において、シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合、記憶領域SBを経由して磁気ディスク25にライトするべきライトデータが記憶領域SBに格納されていないので、この場合はバッファエンプティ状態となる。一方、シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合、磁気ディスク25からリードされ記憶領域SBを経由してホスト装置11に転送するべきリードデータを記憶領域SBに格納できないので(即ち、リードデータを格納するのに十分なサイズの記憶領域SBが確保できないので)、この場合はバッファフル状態となる。
ステップS6の後、処理はステップS4へ戻り、ステップS4〜S6の処理は、ステップS4の判定結果がNOになるまで繰り返される。このような処理は、記憶装置12において磁気ディスク25の回転待ち中に、バッファフル状態又はバッファエンプティ状態が発生するまでの期間で行うため、記憶装置12は、ホスト装置11からのコマンドに対してコマンド終了応答ができない状態になることは少なく、初期設定でデータバッファ22の記憶領域SBを小さく設定して磁気ディスク25の回転待ちを発生させるデメリットも少ない。
ステップS4の判定結果がNOになると、ステップS7では、リード/ライト制御部23がシーケンシャルアクセスコマンドに応じたアクセス処理、即ち、シーケンシャルライト処理又はシーケンシャルリード処理を終了する。
次に、シーケンシャルライトコマンドの実行時の具体例を説明する。例えば、1コマンドのセクタ数が64セクタ、データ転送速度が130MB/s、コマンドの発行間隔が0.0003s、コマンド受領からデータ転送開始までの内部処理時間が0.0002sの場合、ホスト装置11の処理速度は、43.5MB/sとなる。又、説明の便宜上、磁気ディスク25の1回転時間は0.0111sであり、磁気ディスク24のデータ転送速度は50MB/sであるものとする。
従来手法を用いた場合、図6で示すようにデータバッファの記憶領域SBcのサイズは例えば0.4MBに固定される。図6は、従来手法を用いた場合に記憶装置において磁気ディスクの回転待ちが発生した状態を説明する図である。この場合、約0.062sに一度バッファエンプティ状態が発生し、記憶装置では回転待ちが発生する。回転待ち中に0.4MBのデータバッファにホスト装置のデータ処理速度でデータを受領すると、0.0092sでバッファフル状態が発生し、記憶装置が磁気ディスクへのデータライトを実行できるようになるまでの0.0019s(=0.0111s−0.0092s)の間、記憶装置はホスト装置へコマンド終了応答をすることができなくなり、記憶装置の性能が低下する。
これに対し、本実施例の手法を用いた場合、図3に示すように、先ずはデータバッファ22の小さい範囲を記憶領域(シーケンシャルバッファの領域)SBとして確保する。現在の磁気ディスク25のデータ転送速度50MB/sに対して、ホスト装置11の最大データ転送速度は磁気ディスク25のデータ転送速度を確実に上回るため、データバッファ22の状態による記憶装置12の回転待ちが発生しないことから、記憶領域SBのサイズ(又は、シーケンシャルバッファサイズ)は制御し得る最小サイズに設定しても何ら支障がなく、この例では0.2MBに設定する。ホスト装置11が上記データ処理速度を有する場合、0.031sに一度バッファエンプティ状態が発生する。記憶装置12の回転待ち中に、記憶装置12はホスト装置11のデータ処理速度が43.5MB/sであると計測し、図5と共に説明したように、データバッファ22の記憶領域SBのサイズを0.2MBから0.483MB (=43.5MB/s*0.0111s)まで拡大する。このようにデータバッファ22の記憶領域SBを拡大することにより、バッファフル状態が発生せずに記憶装置12の性能低下を防ぐことが可能となる。
又、従来手法を用いた場合に比べ、本実施例の手法を用いるとデータバッファ22の記憶領域SBのサイズを0.083MB増加させるだけで、記憶装置12の性能低下を防ぐことが可能であり、有用なキャッシュデータを最大限保持することも可能となる。
尚、ステップS5での計測タイミングは記憶装置12の回転待ち中に限らず、リード処理又はライト処理中に計測を行うことも可能である。更に、リード処理の場合も上記ライト処理の場合と同様に、バッファフル状態又はバッファエンプティ状態の違いのみで、ホスト装置11が発行するシーケンシャルアクセスコマンドが要求する磁気ディスク25のセクタ数及びデータ転送速度、コマンドの発行間隔及び記憶装置12内でのホスト装置11からのコマンド受領からデータ転送開始までの内部処理時間を計測することが可能である。
上記実施例では、ホスト装置のデータ処理速度を監視してデータバッファの記憶領域SBのサイズ(又は、シーケンシャルバッファサイズ)を決定するため、従来手法と比べるとホスト装置の性能等に適合したシーケンシャルバッファサイズを設定することができる。これにより、データバッファに格納済みデータの保持と、バッファフル状態又はバッファエンプティ状態の発生の低減を両立でき、無駄なく記憶装置の性能を向上することができる。又、ユーザがホスト装置及び記憶装置を有するシステムを使用する使用環境におけるシーケンシャルバッファサイズのチューニングの必要がなく、その分記憶装置内のデータ処理量の増大も抑制可能となる。
尚、本発明は、以下に付記する発明をも包含するものである。
(付記1)
記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータをバッファの記憶領域内の連続したアドレスに格納する格納ステップと、
前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定する可変設定ステップを有し、
前記バッファをバッファ・リングとして使用する、バッファ制御方法。
(付記2)
前記可変設定ステップは、
前記バッファの状態がデータを格納するための前記記憶領域内の未使用領域が不足している第1状態又は読み出すべきデータが前記記憶領域内の使用済領域に格納されていない第2状態の一方であるか否かを判定する判定ステップと、
前記判定ステップが前記第1又は第2の状態を判定すると、前記シーケンシャルアクセスコマンドを発行するホスト装置のデータ処理速度及び前記記録媒体のデータ転送速度を算出する算出ステップと、
前記算出ステップの算出結果に基づいて前記バッファの前記記憶領域のサイズを再設定する再設定ステップを有する、付記1記載のバッファ制御方法。
(付記3)
前記再設定ステップは、前記記録媒体及び前記バッファを有する記憶装置の状態に起因する前記ホスト装置のデータ処理速度の低下に伴い前記バッファの前記記憶領域のサイズを増加させる、付記2記載のバッファ制御方法。
(付記4)
前記再設定ステップは、前記シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合は前記ホスト装置のデータ処理速度に基づいて前記バッファの前記記憶領域のサイズを再設定し、前記シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合は前記記録媒体のデータ転送速度に基づいて前記バッファの前記記憶領域のサイズを再設定する、付記2又は3記載のバッファ制御方法。
(付記5)
前記シーケンシャルアクセスコマンドに基づいて、前記バッファの前記記憶領域を最大サイズと比較して小さいサイズに初期設定するサイズ設定ステップを更に有する、付記2乃至4のいずれか1項記載のバッファ制御方法。
(付記6)
記録媒体と、
バッファと、
前記記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータを前記バッファの記憶領域内の連続したアドレスに格納するコントローラを備え、
前記コントローラは、前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定し、
前記バッファをバッファ・リングとして使用する、記憶装置。
(付記7)
前記コントローラは、
前記バッファの状態がデータを格納するための前記記憶領域内の未使用領域が不足している第1状態又は読み出すべきデータが前記記憶領域内の使用済領域に格納されていない第2状態の一方であるか否かを判定するデータバッファ制御部と、
前記データバッファ制御部が前記第1又は第2の状態を判定すると、前記シーケンシャルアクセスコマンドを発行するホスト装置のデータ処理速度及び前記記録媒体のデータ転送速度を算出するコマンド制御部を有し、
前記データバッファ制御部は、前記コマンド制御部の算出結果に基づいて前記バッファの前記記憶領域のサイズを再設定する、付記6記載の記憶装置。
(付記8)
前記データバッファ制御部は、前記記録媒体及び前記バッファを有する記憶装置の状態に起因する前記ホスト装置のデータ処理速度の低下に伴い前記バッファの前記記憶領域のサイズを増加させる、付記7記載の記憶装置。
(付記9)
前記データバッファ制御部は、前記シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合は前記ホスト装置のデータ処理速度に基づいて前記バッファの前記記憶領域のサイズを再設定し、前記シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合は前記記録媒体のデータ転送速度に基づいて前記バッファの前記記憶領域のサイズを再設定する、付記7又は8記載の記憶装置。
(付記10)
前記データバッファ制御部は、前記シーケンシャルアクセスコマンドに基づいて、前記バッファの前記記憶領域を最大サイズと比較して小さいサイズに初期設定する、付記7乃至9のいずれか1項記載の記憶装置。
(付記11)
前記コマンド制御部は、前記シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合には前記バッファの状態が前記第1の状態であるか否かを判定し、前記シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合には前記バッファの状態が前記第2の状態であるか否かを判定する、付記7乃至10のいずれか1項記載の記憶装置。
(付記12)
前記記録媒体はディスクであり、
前記第1又は第2の状態では、前記ディスクの回転待ちが発生する、付記6乃至11のいずれか1項記載の記憶装置。
以上、本発明を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
本発明の一実施例におけるシステムを示す図である。 実施例の動作を説明するフローチャートである。 データバッファの記憶領域のサイズの初期設定を説明する図である。 記憶装置において磁気ディスクの回転待ちが発生した状態を説明する図である。 データバッファの記憶領域のサイズの再設定を説明する図である。 従来手法を用いた場合に記憶装置において磁気ディスクの回転待ちが発生した状態を説明する図である。
符号の説明
1 システム
11 ホスト装置
12 記憶装置
13 インタフェース
21 HDC
22 データバッファ
23 リード/ライト制御部
24 アクチュエータ
25 磁気ディスク
31 コマンド制御部
32 データバッファ制御部
41 磁気ヘッド

Claims (5)

  1. 記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータをバッファの記憶領域内の連続したアドレスに格納する格納ステップと、
    前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定する可変設定ステップを有し、
    前記バッファをバッファ・リングとして使用する、バッファ制御方法。
  2. 記録媒体と、
    バッファと、
    前記記録媒体の論理アドレス上連続してアクセス動作を行うよう指示するシーケンシャルアクセスコマンドに基づいて、前記記録媒体にライトするべきデータ又は前記記録媒体からリードされたデータを前記バッファの記憶領域内の連続したアドレスに格納するコントローラを備え、
    前記コントローラは、前記バッファの記憶領域内の未使用領域又は使用済領域に応じて前記バッファの前記記憶領域のサイズを可変設定し、
    前記バッファをバッファ・リングとして使用する、記憶装置。
  3. 前記コントローラは、
    前記バッファの状態がデータを格納するための前記記憶領域内の未使用領域が不足している第1状態又は読み出すべきデータが前記記憶領域内の使用済領域に格納されていない第2状態の一方であるか否かを判定するデータバッファ制御部と、
    前記データバッファ制御部が前記第1又は第2の状態を判定すると、前記シーケンシャルアクセスコマンドを発行するホスト装置のデータ処理速度及び前記記録媒体のデータ転送速度を算出するコマンド制御部を有し、
    前記データバッファ制御部は、前記コマンド制御部の算出結果に基づいて前記バッファの前記記憶領域のサイズを再設定する、請求項2記載の記憶装置。
  4. 前記データバッファ制御部は、前記記録媒体及び前記バッファを有する記憶装置の状態に起因する前記ホスト装置のデータ処理速度の低下に伴い前記バッファの前記記憶領域のサイズを増加させる、請求項3記載の記憶装置。
  5. 前記データバッファ制御部は、前記シーケンシャルアクセスコマンドがシーケンシャルライトコマンドの場合は前記ホスト装置のデータ処理速度に基づいて前記バッファの前記記憶領域のサイズを再設定し、前記シーケンシャルアクセスコマンドがシーケンシャルリードコマンドの場合は前記記録媒体のデータ転送速度に基づいて前記バッファの前記記憶領域のサイズを再設定する、請求項3又は4記載の記憶装置。
JP2008140121A 2008-05-28 2008-05-28 バッファ制御方法及び記憶装置 Withdrawn JP2009288988A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008140121A JP2009288988A (ja) 2008-05-28 2008-05-28 バッファ制御方法及び記憶装置
US12/388,340 US20090300234A1 (en) 2008-05-28 2009-02-18 Buffer control method and storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008140121A JP2009288988A (ja) 2008-05-28 2008-05-28 バッファ制御方法及び記憶装置

Publications (1)

Publication Number Publication Date
JP2009288988A true JP2009288988A (ja) 2009-12-10

Family

ID=41381202

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008140121A Withdrawn JP2009288988A (ja) 2008-05-28 2008-05-28 バッファ制御方法及び記憶装置

Country Status (2)

Country Link
US (1) US20090300234A1 (ja)
JP (1) JP2009288988A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2505884B (en) * 2012-09-12 2015-06-03 Imagination Tech Ltd Dynamically resizable circular buffers
US9542321B2 (en) * 2014-04-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Slice-based random access buffer for data interleaving
US11379151B2 (en) * 2020-03-31 2022-07-05 Western Digital Technologies, Inc. Flow control of large sequential host read commands based on a queue threshold
US11513691B2 (en) * 2021-01-09 2022-11-29 Western Digital Technologies, Inc. Systems and methods for power and performance improvement through dynamic parallel data transfer between device and host

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置
JP2001312373A (ja) * 2000-04-21 2001-11-09 Internatl Business Mach Corp <Ibm> データの書き込み方法およびディスクドライブ装置
US7054790B1 (en) * 2000-05-18 2006-05-30 Maxtor Corporation Method and apparatus for storage device performance measurement
US6944717B2 (en) * 2001-07-27 2005-09-13 Fujitsu Limited Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom
JP2006139459A (ja) * 2004-11-11 2006-06-01 Hitachi Global Storage Technologies Netherlands Bv メディア・ドライブ及びそのパワー・セーブ方法
JP2006285809A (ja) * 2005-04-04 2006-10-19 Hitachi Ltd ストリーミング向け性能保証を行うストレージ装置

Also Published As

Publication number Publication date
US20090300234A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
US20210397346A1 (en) Dynamic cache management in hard drives
US8578100B1 (en) Disk drive flushing write data in response to computed flush time
JP4788528B2 (ja) ディスク制御装置、ディスク制御方法、ディスク制御プログラム
US8819375B1 (en) Method for selective defragmentation in a data storage device
JP4836647B2 (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
JP2008034085A (ja) 複数の動作モードを有する不揮発性メモリを備えたディスクドライブ
US7840753B1 (en) Hard disk drive as hybrid drive
JP2006139548A (ja) メディア・ドライブ及びそのコマンド実行方法
JP2006139459A (ja) メディア・ドライブ及びそのパワー・セーブ方法
JP5914148B2 (ja) Ssd(ソリッドステートドライブ)装置
JP2007193441A (ja) 不揮発性キャッシュメモリを用いる記憶装置とその制御方法
US20100088466A1 (en) Storage device, storage control device, and control method
US20110167203A1 (en) Method and apparatus for cache control in a data storage device
US7949795B2 (en) Power conservation in data storage device by only starting the active state when the measured time indicates data is present on the interface
US8327041B2 (en) Storage device and data transfer method for the same
JP2001117817A (ja) キャッシュメモリの制御方法、コンピュータシステム、ハードディスクドライブ装置およびハードディスク制御装置
JP2009288988A (ja) バッファ制御方法及び記憶装置
US8797675B2 (en) Adaptive seek latency
US10152410B2 (en) Magnetoresistive random-access memory cache write management
US9471227B2 (en) Implementing enhanced performance with read before write to phase change memory to avoid write cancellations
US9286079B1 (en) Cache optimization of a data storage device based on progress of boot commands
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム
JP2010218485A (ja) ストレージ装置、データ書き込み方法、及びデータ書き込みプログラム
US8949521B1 (en) Actuator prepositioning for disk drive
JP2007011661A (ja) ディスク装置及びディスク装置のキャッシュメモリ制御方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100910

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20110617