(57)【要約】【課題】ディスク装置の繁忙期または閑散期を予測して、予測に基づいてモードを選択し、省電力モードの際の外部からのコマンドに対して従来に比して応答を早めることができるディスク装置を提供する。【解決手段】実施形態によれば、ディスク装置は、第１バッファと、ディスク媒体と、制御部と、を備える。第１バッファは、リードアクセスに関する履歴情報に基づいて記憶されたデータを有する。ディスク媒体は、アクセスがある時は第１回転状態で回転し、アクセスがない時は前記第１回転状態よりも回転数が少ない第２回転状態で回転する。制御部は、ディスク媒体が第２回転状態にある場合に、ホスト装置から第１バッファに記憶されている第１データを読み出すリードコマンドを受信し、第１回転状態に遷移せずに、第１バッファから第１データをホスト装置に送信して、リードコマンドの実行を完了した後で、ディスク媒体を第１回転状態に遷移させる。【選択図】図２
2019164857.tif 000002
【特許請求の範囲】
【請求項１】
リードアクセスに関する履歴情報に基づいて記憶されたデータを有する第１バッファと、
アクセスがある時は第１回転状態で回転し、アクセスがない時は前記第１回転状態よりも回転数が少ない第２回転状態で回転し、アドレスにしたがってデータが記憶されるディスク媒体と、
前記第１バッファと前記ディスク媒体との間のデータ転送を制御する制御部と、
を備え、
前記制御部は、
前記ディスク媒体が前記第２回転状態にある場合に、ホスト装置から前記第１バッファに記憶されている第１データを読み出すリードコマンドを受信し、
前記第１回転状態に遷移せずに、前記第１バッファから前記第１データを前記ホスト装置に送信して、前記リードコマンドの実行を完了した後で、前記ディスク媒体を前記第１回転状態に遷移させる、ディスク装置。
【請求項２】
ライトアクセスに関する過去の統計情報に基づいたデータを記憶可能な容量を有する第２バッファをさらに備え、
前記制御部は、前記ディスク媒体が前記第２回転状態にある場合に、前記ホスト装置から第２データを書き込むライトコマンドを受信し、
前記第１回転状態に遷移せずに、前記第２データを前記第２バッファに記憶して、前記ライトコマンドの実行を完了し、
その後に、前記第１回転状態に遷移し、
前記第２バッファに記憶した前記第２データを前記ディスク媒体に書き込む請求項１に記載のディスク装置。
【請求項３】
前記制御部は、単位期間ごとの前記アクセスの状況および前記第１バッファおよび前記第２バッファの記憶容量に対するアクセスデータ量の割合である繁閑レベルを含む前記履歴情報に基づいて、前記第１バッファ、前記第２バッファおよび前記ディスク媒体に対する設定を行う請求項２に記載のディスク装置。
【請求項４】
前記制御部は、前記第１回転状態から前記第２回転状態への遷移のタイマ設定が無効の場合でも、過去の単位期間の前記履歴情報の前記繁閑レベルが１００％未満の場合には、前記ディスク媒体を前記第２回転状態に遷移させる請求項３に記載のディスク装置。
【請求項５】
前記制御部は、過去の単位期間の前記履歴情報の前記繁閑レベルが１００％未満の場合には、前記第１回転状態から前記第２回転状態への遷移のタイマ設定にしたがって前記ディスク媒体を前記第２回転状態に遷移させる請求項３に記載のディスク装置。
【請求項６】
前記第２回転状態は、前記繁閑レベルに応じた複数の回転状態を有する請求項４または５に記載のディスク装置。
【請求項７】
前記制御部は、前記繁閑レベルが１００％未満の前記単位期間に、前記ディスク媒体のデータの記録状態の検査処理を実行する請求項３に記載のディスク装置。
【請求項８】
前記制御部は、前記繁閑レベルが１００％以上の前記単位期間に、前記ディスク媒体のデータの記録状態の検査処理の開始設定がされている場合に、前記検査処理を実行しない請求項３に記載のディスク装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスク装置に関する。
【背景技術】
【０００２】
従来のディスク装置には、コマンドにしたがった処理を行うアクティブモード、および処理が行われておらず、消費電力をアクティブモードよりも低減した省電力モードを含むパワーステート（電力状態）が設けられている。たとえばアクティブモードの時に、処理が行われない継続時間がある設定値になると、省電力モードへと遷移する。しかし、従来のディスク装置では、省電力モードの状態で、たとえば外部装置からのコマンドを受信した場合に、アクティブモードへと復帰してから応答を返すため、応答に時間がかかってしまっていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１３３８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、ディスク装置の繁忙期または閑散期を予測して、予測に基づいてモードを選択し、省電力モードの際の外部からのコマンドに対して従来に比して応答を早めることができるディスク装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一つの実施形態によれば、ディスク装置は、第１バッファと、ディスク媒体と、制御部と、を備える。前記第１バッファは、リードアクセスに関する履歴情報に基づいて記憶されたデータを有する。前記ディスク媒体は、アクセスがある時は第１回転状態で回転し、アクセスがない時は前記第１回転状態よりも回転数が少ない第２回転状態で回転し、アドレスにしたがってデータが記憶される。前記制御部は、前記第１バッファと前記ディスク媒体との間のデータ転送を制御する。前記制御部は、前記ディスク媒体が前記第２回転状態にある場合に、ホスト装置から前記第１バッファに記憶されている第１データを読み出すリードコマンドを受信し、前記第１回転状態に遷移せずに、前記第１バッファから前記第１データを前記ホスト装置に送信して、前記リードコマンドの実行を完了た後で、前記ディスク媒体を前記第１回転状態に遷移させる。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態によるディスク装置の概略構成の一例を模式的に示すブロック図である。
【図２】図２は、実施形態によるディスク装置の機能構成の一例を模式的に示すブロック図である。
【図３】図３は、実施形態による履歴情報の一例を示す図である。
【図４】図４は、実施形態によるＩＯスループット情報の一例を示す図である。
【図５】図５は、実施形態による繁閑レベルに応じたディスク回転数の設定値の一例を示す図である。
【図６】図６は、実施形態によるディスク装置の起動時の処理手順の一例を示すフローチャートである。
【図７】図７は、予測データに基づいた動作処理の手順の一例を示すフローチャートである。
【図８】図８は、実施形態による省電力モード時のコマンド処理の手順の一例を示すフローチャートである。
【図９】図９は、ディスク装置におけるアクセス頻度とディスクの回転との間の関係の一例を示す図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるディスク装置を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【０００８】
図１は、実施形態によるディスク装置の概略構成の一例を模式的に示すブロック図である。ディスク装置として、Hard  Disk  Drive（ＨＤＤ）などを例示することができる。
【０００９】
ディスク装置１０は、ディスク１１と、スピンドルモータ１２と、Head  Stack  Assembly（以下、ＨＳＡという）１３と、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣという）１４と、Random  Access  Memory（以下、ＲＡＭという）１５と、リード／ライトチャネル（以下、Ｒ／Ｗチャネルという）１６と、Hard  Disk  Controller（以下、ＨＤＣという）１７と、プロセッサの一例であるCentral  Processing  Unit（以下、ＣＰＵという）１８と、モータドライバＩＣ２０と、を備える。
【００１０】
ディスク１１は、データが記録される記録面Ｓを有し、スピンドルモータ１２によって回転駆動されるディスク媒体である。ディスク装置１０には、複数のディスク１１が設けられる。また、ディスク装置１０に含まれるすべての記録面Ｓには、記録面Ｓ上の物理位置を示す位置情報である物理アドレスが設定されている。物理アドレスは、たとえばセクタ単位で割り当てられる。スピンドルモータ１２は、モータドライバＩＣ２０から供給される電流（または電圧）によって駆動される。
【００１１】
ＨＳＡ１３は、ヘッドＨと、ヘッドサスペンション１３１と、Voice  Coil  Motor（以下、ＶＣＭという）１３２と、を有する。ヘッドＨは、ディスク１１の記録面Ｓ毎に設けられる。ヘッドＨは、ディスク１１へのデータの書き込みに用いるライトヘッドと、ディスク１１からのデータの読み出しに用いるリードヘッドとを有している。
【００１２】
ヘッドサスペンション１３１は、ヘッドＨを支持し、それぞれのヘッドＨに対して設けられる。ＶＣＭ１３２は、モータドライバＩＣ２０から供給される電流（または電圧）によって駆動される。ヘッドサスペンション１３１とＶＣＭ１３２とは、アクチュエータを構成する。アクチュエータは、ＶＣＭ１３２の駆動によって、ヘッドサスペンション１３１に支持されているヘッドＨをディスク１１の記録面Ｓ上の所定の位置まで移動制御する。このようなＨＳＡ１３の構成によって、ヘッドＨはディスク１１の記録面Ｓの半径方向に移動可能となる。
【００１３】
ヘッドアンプＩＣ１４は、Ｒ／Ｗチャネル１６から入力されるライトデータに応じたライト信号（電流）をヘッドＨに流す。また、ヘッドアンプＩＣ１４は、ヘッドＨから出力されたリード信号（ヘッドＨによりディスク１１から読み出されたリードデータ）を増幅して、Ｒ／Ｗチャネル１６に伝送する。
【００１４】
ＲＡＭ１５は、一時記憶領域として使用され、ＤＲＡＭ（Dynamic  RAM）またはＳＲＡＭ（Static  RAM）などの揮発性メモリによって構成される。ＲＡＭ１５には、ホスト装置ＨＣからのアクセス処理の際にアクセス対象のデータをバッファリングする領域、ディスク装置１０を制御するのに用いられる管理情報を記憶する領域、後述する履歴情報を取得する際に使用される領域などが設けられる。
【００１５】
Ｒ／Ｗチャネル１６は、信号処理回路である。Ｒ／Ｗチャネル１６は、ＨＤＣ１７から入力されたライトデータを符号化（コード変調）してヘッドアンプＩＣ１４に出力する。また、Ｒ／Ｗチャネル１６は、ヘッドアンプＩＣ１４から伝送されたリード信号からリードデータを復号化（コード復調）してＨＤＣ１７に出力する。
【００１６】
ＨＤＣ１７は、ホスト装置ＨＣとの通信を可能とする通信インタフェースである。具体的には、ＨＤＣ１７は、ホスト装置ＨＣからライトコマンドを受信した場合には、ライトデータをＲＡＭ１５のバッファ１５１に格納し、書き込み処理が終了するとホスト装置ＨＣに応答を返す。また、ＨＤＣ１７は、ホスト装置ＨＣからリードコマンドを受信した場合には、読み出し処理によってバッファ１５１に格納されたリードデータをホスト装置ＨＣに返す。
【００１７】
本実施形態では、ＨＤＣ１７は、ディスク装置１０のアクセス状況を監視し、監視した結果を統計処理した情報および監視結果に基づいて、ディスク装置１０の設定を行う。この処理の詳細については、後述する。
【００１８】
ＣＰＵ１８は、ディスク装置１０のメインコントローラであり、ヘッドＨによるライトデータの書き込みおよびリードデータの読み出しの制御処理、ディスク１１の記録面Ｓ上におけるヘッドＨの位置を制御するサーボ制御処理等の各種処理を実行する。なお、ＣＰＵ１８は、図示しないRead  Only  Memory（ＲＯＭ）およびディスク１１等の不揮発性の記憶媒体に記憶されたプログラムにより、上記の各種処理を実行する。
【００１９】
また、ＣＰＵ１８は、ディスク装置１０の電力状態（パワーステート）を制御する。本実施形態では、ディスク装置１０は、ホスト装置ＨＣからのコマンドにしたがって処理を実行するアクティブモードと、アクティブモードの状態でホスト装置ＨＣからのコマンドが来ない状態が所定の時間継続した時に遷移する省電力モードと、の間で遷移するものとする。省電力モードは、一例として、ディスク１１の回転数をアクティブモードの場合よりも低くしている状態である。アクティブモードから省電力モードへ遷移するか否かは、設定によって行われる。省電力モードへの遷移が行われる場合には、ホスト装置ＨＣからのコマンドが来ない状態の継続時間が設定され、継続時間をタイマによって計時されると、ＣＰＵ１８は、省電力モードへと遷移する。
【００２０】
モータドライバＩＣ２０は、スピンドルモータ１２に電流または電圧を供給し、スピンドルモータ１２を所定の回転速度で駆動する。また、モータドライバＩＣ２０は、ＣＰＵ１８から指定された電流または電圧をＶＣＭ１３２に供給することで、アクチュエータを駆動する。
【００２１】
たとえば、Ｒ／Ｗチャネル１６と、ＨＤＣ１７と、ＣＰＵ１８とは、１チップに集積されたＳｏＣ（System  on  Chip）と呼ばれる集積回路１９に組み込まれている。この集積回路１９が、広義のコントローラとして機能する。
【００２２】
つぎに、図２は、実施形態によるディスク装置の機能構成の一例を模式的に示すブロック図である。なお、ここでは、本実施形態に関連する機能処理部のみを示している。ディスク装置１０は、ＲＡＭ１５と、ディスク１１と、コントローラ１９ａと、が、バスライン２５を介して接続される。ここで、コントローラ１９ａは、Ｒ／Ｗチャネル１６、ＨＤＣ１７およびＣＰＵ１８によって構成される。
【００２３】
ＲＡＭ１５には、バッファ１５１と、履歴情報記憶領域１５２と、管理情報記憶領域１５３と、が設けられる。バッファ１５１は、ライトバッファ１５１ａと、リードバッファ１５１ｂと、を有する。ライトバッファ１５１ａは、ディスク１１へのライトデータの書き込みを指示するコマンド（以下、ライトコマンドという）によってディスク１１へと書き込まれるデータを一時的に格納する。リードバッファ１５１ｂは、ディスク１１からのリードデータの読み出しを指示するコマンド（以下、リードコマンドという）によってディスク１１から読み出されるデータを一時的に格納する。
【００２４】
ここで、ライトコマンドは、ディスク１１で管理される論理セクタ（ブロック）のうちライトデータの書込み先の論理セクタの開始Logical  Block  Address（以下、ＬＢＡという）およびライトデータ長を含む。また、リードコマンドは、ディスク１１で管理される論理セクタのうち読み出すリードデータが記憶される論理セクタの開始ＬＢＡおよびリードデータ長を含む。
【００２５】
履歴情報記憶領域１５２は、ディスク装置１０での所定の収集期間（以下、単位期間という）におけるアクセス状況である履歴情報１５２ａを記憶する。図３は、実施形態による履歴情報の一例を示す図である。履歴情報１５２ａは、単位期間におけるライトアクセスおよびリードアクセスのそれぞれについて、アクセス先である開始ＬＢＡおよび転送量を含む。転送量として、転送ブロック数または転送バイト数を用いることができる。ただし、転送バイト数を用いる場合には、転送量の記憶容量が多くなるので、より記憶容量を抑えられる転送ブロック数を用いることが望ましい。以下の例では、転送ブロック数を用いる場合を例に挙げる。図３の例では、８バイトの開始ＬＢＡと４バイトの転送ブロック数とを組として、単位期間内のアクセス状況をすべて記憶している。開始ＬＢＡの最上位ビット（６３ビット目）はリードまたはライトであることを示す。たとえば６３ビット目が０である場合はリードであることを示し、１である場合はライトであることを示す。詳細は後述するが、ここでの単位期間はたとえば１時間である。
【００２６】
管理情報記憶領域１５３は、ディスク装置１０を制御するのに必要な管理情報を記憶する。本実施形態では、管理情報には、単位期間入出力（以下、ＩＯという）スループット情報１５３ａおよび前履歴情報１５３ｂが含まれる。単位期間ＩＯスループット情報１５３ａは、過去の単位期間におけるアクセス状況の概要を示す情報であり、詳細については後述する。前履歴情報１５３ｂは、過去の単位期間における履歴情報１５２ａであり、現時点を含む単位期間でのディスク装置１０へのアクセスの予測に使用される情報である。
【００２７】
ディスク１１には、システムエリア１１１と、ユーザエリア１１２と、が設けられる。システムエリア１１１は、ディスク装置１０の制御に用いられるシステム情報が記憶される。システム情報は、たとえばアクセス管理情報１１１ａおよびＩＯスループット情報１１１ｂを含む。ユーザエリア１１２は、ホスト装置ＨＣからの指示によって書き込まれるデータなどを記憶する領域である。
【００２８】
アクセス管理情報１１１ａは、ＲＡＭ１５の履歴情報記憶領域１５２で記憶された履歴情報１５２ａを、所定の測定対象期間分保存した情報である。詳細は後述するが、測定対象期間は、単位期間を複数まとめたものである。たとえば測定対象期間を１日とし、単位期間を１時間とすると、２４時間分の履歴情報１５２ａがまとめられたものがアクセス管理情報１１１ａとなる。アクセス管理情報１１１ａの内容は、図３に示した内容を、単位期間を示す識別情報に対応付けたものとなる。
【００２９】
ＩＯスループット情報１１１ｂは、履歴情報記憶領域１５２で記憶された履歴情報１５２ａから統計処理によって生成された単位期間ＩＯスループット情報１５３ａを、測定対象期間分保存した情報である。図４は、実施形態によるＩＯスループット情報の一例を示す図である。ＩＯスループット情報１１１ｂは、測定対象期間内での単位期間を識別する識別情報、識別情報で識別される単位期間における繁閑レベル、リード系コマンドのアクセスブロック総数およびライト系コマンドのアクセスブロック総数を含む。繁閑レベルは、次式（１）によって求められる。
繁閑レベル＝（単位期間内でのデータ転送量／データバッファ容量）×１００［％］  ・・・（１）
【００３０】
（１）式で１００％未満の場合、すなわちデータ転送量がデータバッファ容量未満の場合には、閑散期であるとし、１００％以上の場合、すなわちデータ転送量がデータバッファ容量以上の場合には、繁忙期であるとする。リード系コマンドのアクセスブロック総数は、単位期間の履歴情報１５２ａ中のリード系コマンドの転送ブロック数の総和である。ライト系コマンドのアクセスブロック総数は、単位期間の履歴情報１５２ａ中のライト系コマンドの転送ブロック数の総和である。
【００３１】
図４で、各単位期間における繁閑レベル、リード系コマンドのアクセスブロック総数およびライト系コマンドのアクセスブロック総数を単位期間ＩＯスループット情報１５３ａとしている。すなわち、ＩＯスループット情報１１１ｂは、測定対象期間内のすべての単位期間についての単位期間ＩＯスループット情報１５３ａを含む。
【００３２】
コントローラ１９ａは、アクセス監視部１９１と、統計処理部１９２と、状態設定部１９３と、アクセス処理部１９４と、を備える。
【００３３】
アクセス監視部１９１は、ホスト装置ＨＣからのコマンドを監視し、ホスト装置ＨＣからコマンドを受信すると、コマンドからアクセス先に関する情報を取得し、その内容を履歴情報記憶領域１５２の履歴情報１５２ａに記憶する。具体的には、アクセス監視部１９１は、ホスト装置ＨＣからコマンドを受信すると、リードコマンドであるかライトコマンドであるかを判断し、リードコマンドである場合には、リードコマンド中の開始ＬＢＡおよびリードデータ長を取得して、それを履歴情報１５２ａに記憶する。ライトコマンドである場合には、ライトコマンド中の開始ＬＢＡおよびライトデータ長を取得して、それを履歴情報１５２ａに記憶する。
【００３４】
アクセス監視部１９１は、単位期間が終了すると、履歴情報記憶領域１５２の履歴情報１５２ａを、システムエリア１１１のアクセス管理情報１１１ａに、単位期間を識別する識別情報を含めて保存する。アクセス監視部１９１によって保存されるアクセス管理情報１１１ａの一例が図３でもある。ここで、単位期間および測定対象期間について説明する。測定対象期間および単位期間は、任意に設定することができる。たとえば、ディスク装置１０へのアクセスに周期性がある場合には、その周期に合わせて測定対象期間を設定することができる。また、測定対象期間中のアクセス頻度の傾向に合わせて単位期間を設定することができる。たとえば、毎日同じ時刻でのアクセスの状況に類似性が認められる場合には、測定対象期間を１日とし、単位期間を１日の０時００分００秒から始まる１時間ごとの期間とする。以下では、００分００秒から始まる１時間を単位期間とする場合を例に挙げるが、実施形態がこれに限定されるものではない。たとえば、単位期間を３０分としてもよいし、他の長さとしてもよい。また、１週間の同じ曜日の同じ時刻でアクセスの状況に類似性が認められる場合には、単位期間を１時間として、測定対象期間を日曜日の０時００分００秒からつぎの土曜日の２３時５９分５９秒までの１週間としてもよい。
【００３５】
統計処理部１９２は、単位期間が終了すると、履歴情報記憶領域１５２中の履歴情報１５２ａから単位期間ＩＯスループット情報１５３ａを生成し、単位期間を識別する識別情報を付してシステムエリア１１１のＩＯスループット情報１１１ｂに保存する。ここでは、統計処理部１９２は、履歴情報１５２ａからリード系コマンドの転送ブロック数を抽出し、その総和を算出する。統計処理部１９２は、履歴情報１５２ａからライト系コマンドの転送ブロック数を抽出し、その総和を算出する。また、統計処理部１９２は、リード系コマンドの転送ブロック数の総和とライト系コマンドの転送ブロック数の総和との和から転送ブロック総数を算出し、算出した転送ブロック総数とバッファ１５１の容量とから、（１）式を用いて繁閑レベルを算出する。統計処理部１９２は、算出したリード系コマンドの転送ブロック数の総和と、ライト系コマンドの転送ブロック数の総和と、繁閑レベルと、をシステムエリア１１１のＩＯスループット情報１１１ｂ内の対応する単位期間の格納位置に保存する。保存時に、以前に保存されたデータが書き込まれている場合には、上書き保存する。
【００３６】
状態設定部１９３は、システムエリア１１１のＩＯスループット情報１１１ｂに、前の測定対象期間での現在の時刻に対応する単位期間（以下、前単位期間という）の単位期間ＩＯスループット情報１５３ａが存在するかを判定し、単位期間ＩＯスループット情報１５３ａが存在する場合には、前単位期間の単位期間ＩＯスループット情報１５３ａをディスク１１から読み出して、管理情報記憶領域１５３に展開する。状態設定部１９３は、管理情報記憶領域１５３中の単位期間ＩＯスループット情報１５３ａから繁閑レベルを読み出し、繁閑レベルに応じてディスク装置１０の動作モードを設定する。
【００３７】
繁閑レベルが１００％以上の繁忙期である場合には、状態設定部１９３は、ディスク装置１０をアクティブモードの状態にする。アクティブモードでは、定常回転数でディスク１１は回転しているので、状態設定部１９３は、ディスク１１の回転数が定常回転数となるように設定する。
【００３８】
繁閑レベルが１００％未満の閑散期である場合には、状態設定部１９３は、ディスク装置１０を省電力モードの状態にするとともに、前単位期間での履歴情報、すなわち前履歴情１５３ｂを予測情報として、ホスト装置ＨＣからのアクセスに備えた準備を行う。ここでは、前単位期間の履歴情報を、現時点での単位期間（以下、本単位期間という）のホスト装置ＨＣからのアクセスの予測に用いる。すなわち、リードコマンドの場合には、前単位期間でのアクセス先へのアクセスが本単位期間でも行われ、ライトコマンドの場合には、前単位期間でのアクセスブロック総数が本単位期間のアクセスブロック総数と略等しいと仮定した処理を行う。
【００３９】
具体的には、状態設定部１９３は、システムエリア１１１のアクセス管理情報１１１ａから、現在の時刻に対応する前単位期間の履歴情報を読み出し、管理情報記憶領域１５３にロードする。そして、ロードした前履歴情報１５３ｂ中のすべてのリードコマンドについて、その開始ＬＢＡおよびリードデータ長で指定されるディスク１１のユーザエリア１１２からデータを読み出してバッファ１５１に記憶する。このデータが記憶された領域を含む領域がリードバッファ１５１ｂとなる。また、単位期間ＩＯスループット情報１５３ａ中のライト系コマンドのアクセスブロック総数を読み出し、バッファ１５１にアクセスブロック総数分の容量を確保する。この確保された領域を含む領域がライトバッファ１５１ａとなる。なお、繁閑レベルが１００％未満であるので、読み出したデータの総量と確保した容量との合計は、バッファ１５１に割り当てられる容量よりも小さいものとなる。
【００４０】
また、状態設定部１９３は、ディスク１１の回転数が定常回転数よりも低い回転数となるように設定する。このとき、状態設定部１９３は、繁閑レベルの値に応じて、ディスク１１の回転数を変えてもよい。図５は、実施形態による繁閑レベルに応じたディスク回転数の設定値の一例を示す図である。ここでは、繁閑レベルが１００％以上の場合には、定常回転（７２００回転）である場合を例に挙げている。繁閑レベルが低くなるにしたがってディスクの回転数も低くなるようにし、繁閑レベルが０％の場合に４０００回転となるようにしている。ただし、ホスト装置ＨＣからコマンドを受信し、アクティブモードに遷移して応答を返す場合に、ホスト装置ＨＣによってコマンドタイムアウトが検出されないように、回転数が調整されている。
【００４１】
繁閑レベルに応じてディスク１１の回転数を変化させることによって、繁閑レベルが１００％未満の閑散期の場合には、アクセス頻度に応じてさらに省電力モードにおける消費電力を抑えることができる。このように、繁閑レベルに応じてディスク回転数を変化させる場合には、図５の情報は、たとえば管理情報記憶領域１５３に記憶される。また、ここでは、図５の情報は、繁閑レベルとディスク１１の回転数とが対応付けられるものであれば、どのような形の情報であってもよい。なお、状態設定部１９３は、システムエリア１１１のＩＯスループット情報１１１ｂに、前単位期間の単位期間ＩＯスループット情報１５３ａが存在しない場合には、予測データ（履歴情報）に基づいた状態設定は行わない。
【００４２】
アクセス処理部１９４は、アクティブモードにある場合には、ホスト装置ＨＣから受信したコマンドにしたがって処理を行う。たとえば、リードコマンドを受信した場合には、指定される開始ＬＢＡから指定されるリードデータ長の長さのデータを読み出し、ホスト装置ＨＣに返す。また、ライトコマンドを受信した場合には、指定された開始ＬＢＡから指定されるデータ長のデータを書き込む。
【００４３】
アクセス処理部１９４は、省電力モードにある場合には、なるべくアクティブモードに遷移しないでコマンド処理を実行し、ホスト装置ＨＣへの完了の信号を送信した後に、アクティブモードへと遷移する。たとえば、上記のように状態設定部１９３によってリードバッファ１５１ｂおよびライトバッファ１５１ａが準備されているので、アクセス先のデータがリードバッファ１５１ｂに存在するリードコマンドを受信した場合、またはライトデータ長がライトバッファ１５１ａの空き容量の範囲内であるライトコマンドを受信した場合には、アクティブモードに遷移せずに、コマンドに対する処理を実行し、その後にアクティブモードに遷移する。なお、アクセス処理部１９４は、リードコマンドおよびライトコマンド以外のコマンドを受信した場合には、アクティブモードに遷移しないでコマンド処理を実行し、ホスト装置ＨＣへの完了の信号を送信した後に、省電力モードを維持する。
【００４４】
アクセス処理部１９４は、アクセス先のデータがリードバッファ１５１ｂに存在しないリードコマンドを受信した場合、またはライトデータ長がライトバッファ１５１ａの空き容量の範囲を超えるライトコマンドを受信した場合には、アクティブモードに遷移して、コマンドを実行する。
【００４５】
つぎに、このようなディスク装置１０での処理について説明する。図６は、実施形態によるディスク装置の起動時の処理手順の一例を示すフローチャートである。まず、ディスク装置１０の電源が投入されると（ステップＳ１１）、コントローラは、現在時刻の把握を行う（ステップＳ１２）。たとえばホスト装置ＨＣからディスク装置１０に対して発行されるSet  Time  StampコマンドによってＵＮＩＸ（登録商標）時間が通知され、ディスク装置１０では現在の時刻を把握することができる。
【００４６】
ついで、コントローラは、現在時刻がＸ時０分０秒であるかを判定する（ステップＳ１３）。現在時刻がＸ時０分０秒でない場合（ステップＳ１３でＮｏの場合）には、待ち状態となる。現在時刻がＸ時０分０秒である場合（ステップＳ１３でＹｅｓの場合）には、測定対象期間測定ループ処理に移る（ステップＳ１４）。この測定対象期間測定ループ処理での処理の開始はＸ時であり、処理の終了はＸ−１時である。ただし、Ｘは０から２３の整数であり、Ｘが０時の場合には、Ｘ−１時は２３時であるものとする。すなわち、この例での測定対象期間測定ループ処理は、１日を測定対象期間としている。
【００４７】
その後、単位期間測定ループ処理に移る（ステップＳ１５）。単位期間測定ループ処理での処理の開始は０分０秒であり、処理の終了は５９分５９秒である。すなわち、この例での単位期間測定ループ処理は、１時間を単位期間としている。そして、ホスト装置ＨＣからコマンドを受信すると、アクセス処理部１９４は、コマンドに基づいた処理を実行するとともに（ステップＳ１６）、アクセス監視部１９１は、履歴情報記憶領域１５２の履歴情報１５２ａに受信したコマンドの種別、開始ＬＢＡおよび転送ブロック数を記録する（ステップＳ１７）。アクセス監視部１９１は、時刻が５９分５９秒になったかを判定し（ステップＳ１８）、時刻が５９分５９秒になるまで、ステップＳ１６〜Ｓ１７の処理を実行する。
【００４８】
時刻が５９分５９秒になると、統計処理部１９２は、ステップＳ１５〜Ｓ１８の単位期間測定ループで取得した履歴情報１５２ａから、単位期間内のリード系コマンドの転送ブロック総数、単位期間内のライト系コマンドの転送ブロック総数、および単位期間での繁閑レベルを算出する（ステップＳ１９〜Ｓ２１）。その後、統計処理部１９２は、算出したリード系コマンドの転送ブロック総数、ライト系コマンドの転送ブロック総数および繁閑レベルを、システムエリア１１１内のＩＯスループット情報１１１ｂに単位期間に関連付けて保存する（ステップＳ２２）。また、アクセス監視部１９１は、履歴情報１５２ａをシステムエリア１１１のアクセス管理情報１１１ａに、単位期間に関連付けして保存する（ステップＳ２３）。
【００４９】
その後、アクセス監視部１９１は、終了時刻（この場合には、Ｘ−１時）になったかを判定する（ステップＳ２４）。終了時刻になっていない場合には、測定対象期間中のつぎの単位期間（この場合には、Ｘ＋１時）について、ステップＳ１４〜Ｓ２４までの処理が繰り返し実行される。
【００５０】
また、終了時刻になった場合には、コントローラは、予測データに基づいた動作処理を実行する（ステップＳ２５）。以上で、処理が終了する。
【００５１】
図７は、予測データに基づいた動作処理の手順の一例を示すフローチャートである。この処理では、コントローラは、現在時刻がＸ時０分０秒になったかを判定する（ステップＳ３１）。Ｘ時０分０秒になっていない場合（ステップＳ３１でＮｏの場合）には、待ち状態となる。Ｘ時０分０秒になると（ステップＳ３１でＹｅｓの場合）、状態設定部１９３は、システムエリア１１１のＩＯスループット情報１１１ｂから前単位期間の単位期間ＩＯスループット情報１５３ａを、管理情報記憶領域１５３にロードする（ステップＳ３２）。
【００５２】
状態設定部１９３は、前単位期間の単位期間ＩＯスループット情報１５３ａに基づいて、現在の単位期間は閑散期であるかを判定する（ステップＳ３３）。ここでは、状態設定部１９３は、一予測対象期間前の現在時刻に対応する単位期間（すなわち、前単位期間）の繁閑レベルを、現在の単位期間の繁閑状態とする。つまり、状態設定部１９３は、単位期間ＩＯスループット情報１５３ａの繁閑レベルを読み込み、繁閑レベルが１００％未満であるかを判定する。
【００５３】
現在の単位期間が閑散期である場合（ステップＳ３３でＹｅｓの場合）には、状態設定部１９３は、システムエリア１１１のアクセス管理情報１１１ａから現在時刻に対応する前単位期間の履歴情報を、管理情報記憶領域１５３に前履歴情報１５３ｂとしてロードする（ステップＳ３４）。ここでは、リードコマンドに関しては、前単位期間で読み出されたデータが、読み出されるものと予測する。また、ライトコマンドに関しては、前単位期間で書き込みされたデータと同じ量のデータが、書き込まれるものと予測する。つまり、状態設定部１９３は、前履歴情報１５３ｂを参照し、リードコマンドの開始ＬＢＡからリードデータ長を有するデータをユーザエリア１１２から読み出してバッファ１５１に書き込む。これを履歴情報１５２ａ中のすべてのリードコマンドについて行い、リードバッファ１５１ｂにリードデータを準備する（ステップＳ３５）。また、状態設定部１９３は、前履歴情報１５３ｂあるいは単位期間ＩＯスループット情報１５３ａを参照し、ライトバッファ１５１ａにライト系コマンドの転送ブロック総数分の領域を確保する（ステップＳ３６）。さらに、状態設定部１９３は、繁閑レベルに応じてディスク１１の回転数を変更する（ステップＳ３７）。たとえば、状態設定部１９３は、図５に示される繁閑レベルとディスク回転数とを対応付けたディスク回転数情報を参照して、繁閑レベルに対応するディスク回転数となるように設定する。このように、閑散期であると予測された場合には、状態設定部１９３は、ディスク装置１０が省電力モードとなるように設定する。
【００５４】
一方、ステップＳ３３で現在の単位期間は閑散期でない場合（ステップＳ３３でＮｏの場合）、すなわち、繁閑レベルが１００％以上である場合には、状態設定部１９３はディスク１１の回転数を定常回転数に設定する（ステップＳ３８）。つまり、繁忙期であると予測された場合には、状態設定部１９３は、ディスク装置１０をアクティブモードに設定する。
【００５５】
その後またはステップＳ３７の後は、図６のステップＳ１５〜Ｓ２４と同様の処理が実行される（ステップＳ３９〜Ｓ４７）。そして、処理がステップＳ３１へと戻る。
【００５６】
なお、ステップＳ３３で現在の単位期間が閑散期であり、かつ省電力モードへのタイマが無効である場合でも、省電力モードへと状態遷移させ、積極的に消費電力の低減を行ってもよい。
【００５７】
また、ステップＳ３３で現在の単位期間が閑散期であり、かつ省電力モードへのタイマが有効である場合には、タイマにしたがって省電力モードへと遷移させつつ、段階的に回転数を下げてもよい。これによって、積極的に消費電力を低減することができる。
【００５８】
ここで、状態設定部１９３によってディスク装置１０が省電力モードに設定された場合のステップＳ４０でのコマンド処理について説明する。図８は、実施形態による省電力モード時のコマンド処理の手順の一例を示すフローチャートである。
【００５９】
アクセス処理部１９４は、コマンドを受信すると（ステップＳ７１）、コマンドの種類を判定する。すなわち、受信したコマンドがリードコマンドまたはライトコマンドであるかを判定する（ステップＳ７２）。リードコマンドまたはライトコマンドである場合（ステップＳ７２でＹｅｓの場合）には、受信したコマンドがリードコマンドであるかを判定する（ステップＳ７３）。
【００６０】
リードコマンドである場合（ステップＳ７３でＹｅｓの場合）には、アクセス処理部１９４は、キャッシュヒットしたかを判定する（ステップＳ７４）。すなわち、リードコマンドで指示される開始ＬＢＡからリードデータ長のデータがバッファ１５１に記憶されているかを判定する。
【００６１】
キャッシュヒットしていない場合（ステップＳ７４でＮｏの場合）、すなわちリードコマンドで指示されるデータがバッファ１５１に記憶されていない場合には、アクセス処理部１９４はディスク装置１０をアクティブモードに復帰させ（ステップＳ７６）、ディスク１１が定常回転に戻った後にコマンドを実行する（ステップＳ７７）。そして、処理が終了する。
【００６２】
また、キャッシュヒットした場合（ステップＳ７４でＹｅｓの場合）、すなわちリードコマンドで指示されるデータがバッファ１５１に記憶されている場合には、アクセス処理部１９４は、省電力モードのままコマンドを実行し、コマンドの実行が完了した後にホスト装置ＨＣに応答を送信する（ステップＳ７８）。その後、アクセス処理部１９４は、ディスク装置１０をアクティブモードに復帰させ（ステップＳ７９）、処理が終了する。
【００６３】
ステップＳ７３でリードコマンドでない場合（ステップＳ７３でＮｏの場合）、すなわちコマンドがライトコマンドである場合には、アクセス処理部１９４は、ライトコマンドで指示されたライトデータ量を記憶することができるだけの空き容量がバッファ１５１にあるかを判定する（ステップＳ７５）。バッファ１５１に空きがない場合（ステップＳ７５でＮｏの場合）には、ステップＳ７６に処理が移る。また、バッファ１５１に空きがある場合（ステップＳ７５でＹｅｓの場合）には、ステップＳ７８に処理が移る。このとき、ステップＳ７９では、バッファ１５１に記憶されたデータが所定のタイミングでディスク１１のユーザエリア１１２に保存される。
【００６４】
また、ステップＳ７２で受信したコマンドがリードコマンドおよびライトコマンドではない場合（ステップＳ７２でＮｏの場合）、すなわち、リードバッファ１５１ｂまたはライトバッファ１５１ａに対するコマンドなどのディスク１１を使用しないコマンドの場合には、アクセス処理部１９４は、省電力モードのままコマンドを実行し、コマンドの実行が完了した後にホスト装置ＨＣに応答を送信する（ステップＳ８０）。その後、省電力モードを維持し（ステップＳ８１）、処理が終了する。以上のように、省電力モード時の場合に、コマンドが実行される。
【００６５】
なお、予測データからつぎの単位期間が閑散期であり、コントローラ１９ａの動作が明らかに少ない場合に、繁忙期のスループットを向上させるため、媒体データの記録状態を検査する処理を実施してもよい。媒体データの記録状態を検査する処理として、ＢＭＳ(Background  Medium  Scan）処理またはＡＴＩ（Adjacent  Track  Interference）対策処理を例示することができる。ＢＭＳ処理は、アイドル期間中にBackground  Taskとして、全ユーザデータ中のＬＢＡをシーケンシャルにスキャンし、将来不良セクタになる可能性があるセクタを早期に検出する処理である。ＡＴＩ処理は、ディスク１１へのデータ書き込み動作により発生するサイドイレーズなどの影響をデータの書き直しにより修復し、データの消失を防ぐ処理である。このとき、ＢＭＳ処理またはＡＴＩ対策処理の開始時間でなくても、閑散期であれば、ＢＭＳ処理またはＡＴＩ対策処理を実施できるようにしてもよい。
【００６６】
また、予測データからつぎの単位期間が繁忙期であり、コントローラ１９ａの動作が明らかに多い場合に、スループットを向上させるため、ＢＭＳ処理の動作時刻を、繁忙期からずらしたり、緊急時以外のＡＴＩ対策処理を抑止したりしてもよい。さらに、より消費電力の低いパワーステートに遷移しないように、状態遷移の期間（Interval）を、予め設定された時間よりも長く設定してもよい。
【００６７】
図９は、ディスク装置におけるアクセス頻度とディスクの回転との間の関係の一例を示す図であり、（ａ）はアクセス頻度の推移の一例を示す図であり、（ｂ）はディスクの回転数の一例を示す図である。ここでは、測定対象期間を１日とし、単位期間を１時間とした場合を示している。図９（ａ）で、横軸は単位期間（時間）を示しており、縦軸は繁閑レベル（％）を示している。また、繁閑レベルが１００％以上の場合は１００％と表示している。図９（ｂ）で、横軸は単位期間（時間）を示しており、縦軸はディスク回転数［ｒｐｍ］を示している。
【００６８】
図９（ａ）に示されるように、０時〜７時までは繁閑レベルは１０％以下となっているが、７時〜１０時にかけて繁閑レベルは急激に上昇し、１０時〜１９時は１００％となっている。その後、２２時まで繁閑レベルは急激に減少し、２２時で１５％になり、その後２４時にかけて繁閑レベルは徐々に減少し、２４時で約０％となる。
【００６９】
本実施形態では、図５のディスク回転情報を参照してディスク１１の回転数を繁閑レベルに応じて設定する。そのため、０時〜７時までは、ディスク１１の回転数は４０００回転であり、その後、繁閑レベルの上昇に合わせてディスク１１の回転数も、５２８０回転、６２４０回転、そして定常回転の７２００回転と上昇していく。その後、１９時から２４時にかけて、ディスク１１の回転数は５９２０回転、５２８０回転、４３２０回転、４０００回転と回転数が落ちていく。
【００７０】
このように、繁閑レベルが１００％に近い単位期間ではディスク１１の回転数をより定常回転数に近い値としている。これによって、ホスト装置ＨＣからアクセスがあった場合に、ディスク１１を定常回転数にするまでの時間を短縮し、処理を早めることができる。一方、繁閑レベルが０％に近い単位期間ではディスク１１の回転数をより低くしている。これは、ホスト装置ＨＣからのアクセス頻度が少ないため、ディスク１１を定常回転数にするまでの時間を多少長くしても処理の遅延が問題にならないからである。
【００７１】
実施形態では、状態設定部１９３は、前単位期間が閑散期である場合に、前履歴情報１５３ｂから、前単位期間で読み出したデータをバッファ１５１に保存するとともに、ディスク１１の回転数を繁閑レベルに応じた値にする。この状態で、ホスト装置ＨＣからリードコマンドを受信した場合に、リードコマンドの指示するデータがバッファ１５１に存在する場合には、ディスク１１の回転数を維持したまま、アクセス処理部１９４はコマンド処理を実行し、処理が終了後にホスト装置ＨＣに応答を返し、その後に、アクティブモードへと遷移させる。これによって、ディスク１１が定常回転数にない場合でも、ホスト装置ＨＣからのコマンドに対して迅速に対応することができるとともに、ディスク装置１０の消費電力を抑制することができるという効果を有する。
【００７２】
また、前単位期間のデータを予測情報として用いるので、ある測定対象期間で繰り返し同じようなアクセスがある場合に、消費電力を抑えながら、ホスト装置ＨＣへの応答を早めることができるという効果も有する。
【００７３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７４】
１０  ディスク装置、１１  ディスク、１２  スピンドルモータ、１３  ＨＳＡ、１４  ヘッドアンプＩＣ、１５  ＲＡＭ、１６  Ｒ／Ｗチャネル、１７  ＨＤＣ、１８  ＣＰＵ、１９  集積回路、１９ａ  コントローラ、２０  モータドライバＩＣ、２５  バスライン、１１１  システムエリア、１１１ａ  アクセス管理情報、１１１ｂ  ＩＯスループット情報、１１２  ユーザエリア、１３１  ヘッドサスペンション、１３２  ＶＣＭ、１５１  バッファ、１５１ａ  ライトバッファ、１５１ｂ  リードバッファ、１５２  履歴情報記憶領域、１５２ａ  履歴情報、１５３  管理情報記憶領域、１５３ａ  単位期間ＩＯスループット情報、１５３ｂ  前履歴情報、１９１  アクセス監視部、１９２  統計処理部、１９３  状態設定部、１９４  アクセス処理部。
【図１】
2019164857.tif 000003
【図２】
2019164857.tif 000004
【図３】
2019164857.tif 000005
【図４】
2019164857.tif 000006
【図５】
2019164857.tif 000007
【図６】
2019164857.tif 000008
【図７】
2019164857.tif 000009
【図８】
2019164857.tif 000010
【図９】
2019164857.tif 000011