(57)【要約】      （修正有）【課題】消費電力の少ないストレージ装置を提供する。【解決手段】ストレージ装置は、データを一時的に格納するメモリ１３と、磁気記録媒体１６と、外部からメモリ１３と磁気記録媒体１６へのアクセスを指示するコマンドを取得する外部インターフェイス１１と、コマンドを実行するプロセッサ１９とで構成される。プロセッサ１９は、記録媒体とメモリの間のデータ転送を考慮してメモリクロックを適切に制御し、メモリによる消費電力を低減する。【選択図】図１
2011013859.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するメモリと、
データを格納する磁気記録媒体と、
外部から前記メモリと前記磁気記録媒体へのアクセスを指示するコマンドを取得する取得部と、
前記取得部が取得した前記コマンドに基づいて、前記コマンドを実行するメモリクロックを設定する制御部と
を備えたことを特徴とするメモリクロック制御装置。
【請求項２】
前記制御部は、現在実行中のコマンドに対する前記磁気記録媒体へのアクセスと、前記取得部が取得した前記コマンドに対する前記磁気記録媒体へのアクセスが連続アクセスとなる場合に、前記取得部が取得した前記コマンドを実行する前記メモリクロックとして、予め定められた最大周波数を設定することを特徴とする請求項１に記載のメモリクロック制御装置。
【請求項３】
前記制御部は、現在実行中のコマンドに対する前記磁気記録媒体へのアクセスと、前記取得部が取得した前記コマンドに対する前記磁気記録媒体へのアクセスが不連続アクセスとなる場合に、前記取得部が取得した前記コマンドを実行する前記メモリクロックとして、予め定められた最大周波数よりも低い周波数を設定することを特徴とする請求項１に記載のメモリクロック制御装置。
【請求項４】
前記制御部は、前記コマンドが前記磁気記録媒体をリードするコマンドである場合に、当該リードに対応する前記磁気記録媒体へのアクセスの開始前であって、かつ当該コマンドに対する処理であって、前記磁気記録媒体へのアクセスの開始前に実行される実行前処理の実行後のタイミングにおいて、前記メモリクロックを更新することを特徴とする請求項１に記載のメモリクロック制御装置。
【請求項５】
前記制御部は、前記コマンドが前記磁気記録媒体へのライトを行うコマンドである場合に、当該ライトの直前のコマンドに対応する前記磁気記録媒体へのアクセスの完了後であって、かつ当該コマンド情報に対する処理であって、前記磁気記録媒体へのアクセスの開始前に実行される実行前処理の開始前のタイミングにおいて、前記メモリクロックを更新することを特徴とする請求項１に記載のメモリクロック制御装置。
【請求項６】
外部からメモリと磁気記録媒体へのアクセスを指示するコマンドを取得する取得ステップと、
前記取得ステップで取得した前記コマンドに基づいて、前記コマンドを実行するメモリクロックを設定する制御ステップと
を有することを特徴とするメモリクロック制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリクロックを制御するメモリクロック制御装置およびメモリクロック制御方法に関する。
【背景技術】
【０００２】
近年、装置の低消費電力化が要求されている。装置の低消費電力を実現する方法として、メモリクロックの周波数を制御する方法が提案されている。メモリクロックの制御方法としては、メモリに対するアクセスがないときにメモリクロックの周波数を落とすことにより省電力を実現する方法やメモリアクセスの頻度によってメモリクロックの周波数を制御する方法が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−９９５６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ストレージ装置におけるメモリへのアクセスは、外部インターフェイスとの間でのデータ送受信や、装置内部の記憶媒体との間のデータ送受信などにおいて行われる。したがって、メモリクロックの周波数には、これらのデータ転送を同時に行ってもメモリ起因でデータ転送が遅延しないような値が設定されている。
【０００５】
外部インターフェイスとの間のデータ送受信においては、外部インターフェイスに従ったメモリクロックの周波数が要求される。一方で、記憶媒体との間のデータ送受信においては、外部からのコマンドにより、コマンドが指定した記録媒体のアドレスへ読み書き装置(ヘッドなど)を移動するのに時間がかかることがある。このため、記録媒体との間のデータ転送中はメモリへのトラフィックは少なく、外部インターフェイスに従ったメモリの周波数ほど高い周波数は必要ない場合がある。しかしながら、上述の従来技術では、メモリに対するアクセス数しか考慮されていなかった。
【０００６】
開示の技術は、上記に鑑みてなされたものであって、記録媒体とメモリの間のデータ転送を考慮し、メモリクロックを適切に制御することのできるメモリクロック制御装置およびメモリクロック制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示するメモリクロック制御装置は、一つの態様において、データを格納するメモリと、データを格納する磁気記録媒体と、外部から前記メモリと前記磁気記録媒体へのアクセスを指示するコマンドを取得する取得部と、前記取得部が取得した前記コマンドに基づいて、前記コマンドを実行するメモリクロックを設定する制御部とを備える。
【０００８】
また、本願の開示するメモリクロック制御方法は、他の態様において、外部からメモリと磁気記録媒体へのアクセスを指示するコマンドを取得する取得ステップと、前記取得ステップで取得した前記コマンドに基づいて、前記コマンドを実行するメモリクロックを設定する制御ステップとを有する。
【発明の効果】
【０００９】
本願の開示するメモリクロック制御装置およびメモリクロック制御方法の一つの態様によれば、記録媒体とメモリの間のデータ転送を考慮し、メモリクロックを適切に制御することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、メモリクロック制御装置としての、実施例にかかるストレージ装置１の主要な構成を示すブロック図である。
【図２】図２は、ストレージ装置１によるメモリクロック制御処理を示すフローチャートである。
【図３】図３は、ライト属性のコマンドに対する処理を説明するための図である。
【図４】図４は、リード属性のコマンドに対する処理を説明するための図である。
【図５】図５は、メモリクロック更新処理（ステップＳ１２２）における詳細な処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本願の開示するメモリクロック制御装置およびメモリクロック制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１２】
図１は、メモリクロック制御装置としての、実施例にかかるストレージ装置１の主要な構成を示すブロック図である。ストレージ装置１は、外部インターフェイス１１と、外部インターフェイス制御部１２と、メモリ１３と、メモリコントローラ１４と、コマンドキューイング制御部１５と、磁気記録媒体１６と、媒体制御部１７と、ＦＩＦＯバッファ１８と、プロセッサ１９とを備えている。
【００１３】
外部インターフェイス１１は、取得部としてストレージ装置１外部からコマンドを受信する。ここで、コマンドとは、メモリ１３と磁気記録媒体１６の間のデータ転送を指示する情報である。例えば、メモリ１３から読み出したデータを磁気記録媒体１６に書き込むことを指示するコマンドや、磁気記録媒体１６から読み出したデータをメモリ１３に書き込むコマンドがある。外部インターフェイス制御部１２は、外部インターフェイス１１を制御する。メモリコントローラ１４は、メモリ１３を制御する。メモリ１３は、後述の磁気記録媒体１６とのデータ転送用のチャネルを含む複数の転送用のチャネルを有している。メモリ１３は、ＲＡＭやＲＯＭなど半導体メモリである。
【００１４】
コマンドキューイング制御部１５は、外部インターフェイス１１からコマンドを取得、蓄積する。メモリコントローラ１４は、プロセッサ１９により設定されたメモリクロックにより、メモリ１３と外部インターフェイス１１またはＦＩＦＯバッファ１８の間のデータ転送を制御する。
【００１５】
媒体制御部１７は、磁気記録媒体１６を制御する。磁気記録媒体１６は、例えばハードディスクなど外部記憶装置である。ＦＩＦＯバッファ１８は、ＲＡＭであり、メモリコントローラ１４と、媒体制御部１７の間に設けられている。ＦＩＦＯバッファ１８は、メモリ１３と磁気記録媒体１６の間で転送されるデータを一時的に格納する。プロセッサ１９は、ストレージ装置１全体を制御する。プロセッサ１９は、例えばコマンドキューイング制御部１５に蓄積されているコマンドの解析、実行を行う。なお、プロセッサ１９は、コマンドキューイング制御部１５に蓄積されているコマンドの実行順を任意に決定することができる。プロセッサ１９は、例えば制御部として外部インターフェイス１１を介して外部から取得したコマンドに基づいて、コマンドを実行する際のメモリクロックの周波数を決定する。
【００１６】
図２は、ストレージ装置１によるメモリクロック制御処理を示すフローチャートである。外部インターフェイス１１が外部からコマンドを取得すると（ステップＳ１００）、プロセッサ１９は、現在実行中のコマンドがあるか否かを判断する。実行中のコマンドがある場合には（ステップＳ１０２，Ｙｅｓ）、ステップＳ１１０へ進む。以下、説明の便宜上、実行中のコマンドを第１コマンド、ステップＳ１００において取得したコマンドを第２コマンドと称する。
【００１７】
ところで、実行中の第１コマンドの実行が終了した後、第２コマンドが実行される。第２コマンドの実行に際し、磁気記録媒体１６への媒体アクセスが発生する。媒体アクセスが不連続アクセス、すなわちランダムアクセスである場合には、読み書き装置が磁気記録媒体１６の所定のアドレスまで移動する必要がある。すなわち、この間メモリ１３へのトラフィックは少なく、メモリクロックの周波数を下げることが可能である。ステップＳ１００以降において、メモリクロックの周波数を低くするための処理を行う。
【００１８】
ステップＳ１０２において、実行中のコマンドがない場合には（ステップＳ１０２，Ｎｏ）、プロセッサ１９は、更新後の新たなメモリクロックの周波数を最大の周波数とする（ステップＳ１０４）。なお、ここで決定された新たなメモリクロックの周波数は、第２コマンドを実行するときのメモリクロックである。なお、最大の周波数とは、磁気記録媒体１６からのデータ転送に必要な最大周波数であり、予め設定された値である。
【００１９】
ステップＳ１１０において、プロセッサ１９は、ステップＳ１００において外部インターフェイス１１が取得したコマンドを解析する（ステップＳ１１０）。具体的には、プロセッサ１９は、コマンドの属性が磁気記録媒体１６からのリードを示すリード属性か、磁気記録媒体１６へのライトを示すライト属性かを特定する。さらに、第１コマンドおよび第２コマンドそれぞれがアクセスするアドレスに基づいて、第１コマンドと第２コマンドによる媒体アクセスが連続アクセスであるか、不連続アクセスであるかを特定する。
【００２０】
第１コマンドと第２コマンドの属性が同一である場合には（ステップＳ１１２，Ｙｅｓ）、プロセッサ１９は、さらに第２コマンドがライト属性か否かを判断する。第２コマンドがライト属性である場合には（ステップＳ１１４，Ｙｅｓ）、プロセッサ１９は、さらに第１コマンドと第２コマンドの媒体アクセスが連続アクセスか否かを判断する。第１コマンドおよび第２コマンドの媒体アクセスが連続アクセスである場合には（ステップＳ１１８，Ｙｅｓ）、ステップＳ１０４へ進む。
【００２１】
第１コマンドおよび第２コマンドの媒体アクセスが不連続アクセスの場合には（ステップＳ１１８，Ｎｏ）、ステップＳ１２０に進む。そして、プロセッサ１９は、メモリクロックの周波数の最大値よりも低い値を、第２コマンドに対する新たなメモリクロックの周波数とする（ステップＳ１２０）。次に、プロセッサ１９は、新たなメモリクロックに基づいて、第２コマンドに対するメモリクロックの更新を行う（ステップＳ１２２）。すなわち、新たなメモリクロックをメモリコントローラ１４に設定する。なお、メモリクロックの更新処理については後述する。
【００２２】
図３は、ライト属性のコマンドに対するメモリクロック周波数の設定処理（ステップＳ１２０）を説明するための図である。不連続アクセスの場合には、第２コマンドが実際に磁気記録媒体１６への媒体アクセスを実行する前に、第２コマンドにおいて指定された開始アドレスまでの読み書き装置の移動等を行う。また、ライトコマンドでは、媒体アクセスを開始する前に、メモリ１３から読み出したデータを一旦ＦＩＦＯバッファ１８に格納する。このように、媒体アクセスを開始する前に実行される処理である実行前処理を行った後に媒体アクセスが実行される。したがって、図３に示すように、第２コマンドの媒体アクセスまでの時間と第２コマンドの媒体アクセス実行時間が第２コマンドのライトデータ転送に使える時間となる。ここで、第２コマンドの媒体アクセスまでの時間とは、第２コマンドに対する実行前処理に要する時間である。
【００２３】
プロセッサ１９は、ライトデータの転送に使える時間に第２コマンドで指定された転送量のデータ転送が完了するようなメモリクロックの周波数を設定する。具体的には、プロセッサ１９は、まず第２コマンドの解析結果から、第２コマンドの媒体アクセスまでの時間と、第２コマンドによる磁気記録媒体１６へのデータ転送量を特定する。さらに、この転送量を磁気記録媒体１６に転送するのに要する時間、すなわち第２コマンドの媒体アクセス実行時間を特定する。そして、プロセッサ１９は、（式１）により、磁気記録媒体１６へのデータ転送に十分なメモリクロック周波数を決定する。
（データ転送に十分なメモリクロック）＝（第２コマンドの転送量）／（第２コマンドの媒体アクセスまでの時間＋第２コマンドの媒体アクセス実行時間）      ・・・（式１）
【００２４】
ライトコマンドの媒体アクセスにおいては、メモリ１３からＦＩＦＯバッファ１８へのデータ転送において、ＦＩＦＯバッファ１８がオーバーフローしないことがさらに要求される。そこで、プロセッサ１９は、ＦＩＦＯバッファ１８の容量と第２コマンドのデータ量（転送量）に基づいて、メモリ１３からＦＩＦＯバッファ１８へのデータ転送においてＦＩＦＯバッファ１８がオーバーフローしないために十分なメモリクロックの周波数を算出する。そして、プロセッサ１９は、（式１）により算出したデータ転送に十分なメモリクロックの周波数と、ＦＩＦＯバッファ１８がオーバーフローしないために十分なメモリクロックの周波数のうち大きい周波数を第２コマンドに対する新たなメモリクロックの周波数として決定する。
【００２５】
このように、第１コマンドおよび第２コマンドがともにライト属性であり、かつ第１コマンドおよび第２コマンドの媒体アクセスが不連続アクセスである場合には、第２コマンドの媒体アクセスまでの時間に基づいて、第２コマンドに対するメモリクロックの周波数を低くすることができる。
【００２６】
また、ライトコマンドでは、上述のように、実行中の第１コマンドの媒体アクセスが終了した時点から第２コマンドに対する処理を開始することができる。したがって、図３に示すように、第２コマンドに対するメモリクロックの周波数の更新のタイミングは、第１コマンドの媒体アクセス終了後とする。第１コマンドの媒体アクセス終了後とは、第２コマンドの媒体アクセス実行時間終了時点、すなわち第２コマンドの媒体アクセスまでの時間の開始時点である。このように、第１コマンドの媒体アクセス終了後にメモリクロックを更新することにより、第２コマンドを適切なメモリクロックで実行することができる。
【００２７】
一方、図２のステップＳ１１４において、第２コマンドがリード属性である場合には（ステップＳ１１４，Ｎｏ）、プロセッサ１９は、実行中の第１コマンドが現在媒体アクセスを行っているか否かを判断する。第１コマンドが媒体アクセスを行っていない場合、すなわち媒体アクセス開始前である場合には（ステップＳ１１６，Ｎｏ）、ステップＳ１１８へ進む。ステップＳ１１８以降の処理において、第１コマンドに対するメモリクロックの周波数を低くする処理を行う。なお、ステップＳ１１６において、既に媒体アクセスが開始している場合には（ステップＳ１１６，Ｙｅｓ）、第１コマンドに対するメモリクロックの周波数の更新は行えないので、ステップＳ１０４へ進む。
【００２８】
ステップＳ１１８において、リード属性の第２コマンドが第１コマンドの媒体アクセスからの連続アクセスでない場合には（ステップＳ１１８，Ｎｏ）、プロセッサ１９は、メモリクロックの周波数の最大値よりも低い値を、第１コマンドに対する新たなメモリクロックの周波数とする（ステップＳ１２０）。なお、ステップＳ１２０において設定する値の算出方法は、ライト属性のコマンドの場合と異なる。
【００２９】
図４は、リード属性のコマンドに対する処理を説明するための図である。リード属性のコマンドに対する処理としては、まず磁気記録媒体１６にアクセスし、データを読み出す。そして、読み出したデータを一旦ＦＩＦＯバッファ１８に格納し、ＦＩＦＯバッファ１８から読み出したデータをメモリ１３に格納する。したがって、図４に示すように、第１コマンドに対応する媒体アクセス実行時間と、第２コマンドに対応する媒体アクセスまでの時間が第１コマンドのリードデータ転送に使える時間となる。ここで、第２コマンドに対応する媒体アクセスまでの時間とは、第２コマンドに対応する媒体アクセス開始前に実行される実行前処理に要する時間である。
【００３０】
プロセッサ１９は、リードデータ転送に使える時間に第１コマンドで指定された転送量のデータ転送が完了するようなメモリクロックの周波数を算出する。具体的には、プロセッサ１９は、まず第１コマンドに対応する媒体アクセス実行時間と、第２コマンドに対応する媒体アクセスまでの時間と、第１コマンドによる磁気記録媒体１６からのデータ転送量を特定する。そして、プロセッサ１９は、（式２）により、磁気記録媒体１６からのデータ転送に十分なメモリクロック周波数を決定する。
（データ転送に十分なメモリクロック）＝（第１コマンドの転送量）／（第１コマンドの媒体アクセス実行時間＋第２アクセスの媒体アクセスまでの時間）      ・・・（式２）
【００３１】
ライト属性のコマンドに対する処理の場合と同様に、リードコマンドの媒体アクセスにおいては、磁気記録媒体１６からＦＩＦＯバッファ１８へのデータ転送において、ＦＩＦＯバッファ１８がオーバーフローしないことが要求される。そこで、プロセッサ１９は、ＦＩＦＯバッファ１８の容量と第１コマンドのデータ量（転送量）に基づいて、磁気記録媒体１６からＦＩＦＯバッファ１８へのデータ転送においてＦＩＦＯバッファ１８がオーバーフローしないために十分なメモリクロックの周波数を算出する。そして、プロセッサ１９は、（式２）により算出したデータ転送に十分なメモリクロックの周波数と、ＦＩＦＯバッファ１８がオーバーフローしないために十分なメモリクロックの周波数のうち大きい周波数を第１コマンドに対する新たなメモリクロックの周波数とする。
【００３２】
このように、第１コマンドおよび第２コマンドがともにリード属性であり、かつ第１コマンドおよび第２コマンドの媒体アクセスが不連続である場合には、第２コマンドの媒体アクセスまでの時間に基づいて、第１コマンドに対するメモリクロックの周波数を低くすることができる。
【００３３】
また、リードコマンドにおいては、第１コマンドの媒体アクセス開始前をメモリクロックの更新タイミングとする。第１コマンドの媒体アクセス開始前とは、第１コマンドの媒体アクセス実行時間の開始時点、すなわち第１コマンドの媒体アクセスまでの時間の終了時点である。これにより、第１コマンドを適切なメモリクロックで実行することができる。
【００３４】
図５は、メモリクロック更新処理（ステップＳ１２２）における詳細な処理を示すフローチャートである。上述のステップＳ１０４およびステップＳ１２０において新たなメモリクロックを決定する度に、メモリクロックの設定値の更新を行うこととするとメモリクロックの更新が頻繁になされることとなる。そこで、メモリクロック更新処理（ステップＳ１２２）においては、メモリクロックの更新を制限するための処理を行う。
【００３５】
具体的には、メモリコントローラ１４に、予め設定されたメモリクロックの下限閾値を格納しておく。そして、プロセッサ１９は、この下限閾値と新たに決定されたメモリクロックの周波数との比較結果に基づいて、メモリクロックの更新を行うか否かを決定する。なお、下限閾値は、現在設定されているメモリクロックの周波数に基づいて定まる値である。例えば、現在設定されているメモリクロックの周波数より所定の値だけ小さい値を下限閾値とする。
【００３６】
メモリクロック更新処理（ステップＳ１２２）においては、まずプロセッサ１９は、現在設定されているメモリクロックとステップＳ１２０またはステップＳ１０４において新たに決定されたメモリクロックとを比較する。新たなメモリクロックが現在のメモリクロックよりも大きい場合には（ステップＳ１３０，Ｎｏ）、プロセッサ１９はメモリクロックの更新を行う。すなわち、第２コマンドがライト属性である場合には（ステップＳ１４０，Ｙｅｓ）、プロセッサ１９は、第１コマンドに対応する媒体アクセス終了後にメモリクロックの周波数を新たな値に更新する（ステップＳ１４２）。次に、プロセッサ１９は、更新後のメモリクロックの周波数に基づいて、下限閾値を更新し（ステップＳ１４６）、処理が完了する。
【００３７】
第２コマンドがリード属性である場合には（ステップＳ１４０，Ｎｏ）、プロセッサ１９は、第１コマンドに対応する媒体アクセス開始前にメモリクロックの周波数を新たな値に更新し（ステップＳ１４４）、ステップＳ１４６へ進む。
【００３８】
また、ステップＳ１３０において、新たに決定されたメモリクロックが現在設定されているメモリクロック以下である場合には（ステップＳ１３０，Ｙｅｓ）、プロセッサ１９は、さらに新たなメモリクロックとプロセッサ１９に格納されている下限閾値とを比較する。新たなメモリクロックが下限閾値よりも大きい場合には（ステップＳ１３２，Ｙｅｓ）、メモリクロックの更新は行わずに（ステップＳ１３４）、処理が完了する。このように、メモリクロックの更新を新たなメモリクロックが下限閾値以下の場合のみに制限することにより、メモリクロックの更新回数を制限することができる。なお、ステップＳ１３２において、新たなメモリクロックが下限閾値以下である場合には（ステップＳ１３２，Ｎｏ）、ステップＳ１４０に進む。
【００３９】
以下、メモリクロック制御処理の具体例を説明する。ここでは、上記（式１）または（式２）により算出されたメモリクロックを５ＭＨｚ単位で切り上げた値を新たなメモリクロックとする。また、現在設定されているメモリクロックより５ＭＨｚ小さい値を下限閾値として設定する。さらに、以下のような条件とする。すなわち、１ブロック＝５１２ｂｙｔｅとし、ＤＤＲ  ＳＤＲＡＭ  ３２ｂｉｔのメモリを使用しているものとする。ＦＩＦＯバッファ１８は、１２８ｋＢｙｔｅ備えるものとする。磁気記録媒体１６は、１トラックに３０００ブロックのデータを有し、ディスクの回転速度は１５０００ｒｐｍとする。
【００４０】
第１の例としては、現在実行中のコマンドが０ｘ０１２３００００アドレスから１２８ブロック分の転送を行っているとする。さらに、次に実行するコマンドが０ｘ０１２３００８０アドレスから始まるとする。この場合、これら２つのコマンドは、連続アクセス可能なコマンドである。従って、ステップＳ１１８を経て、ステップＳ１０４においてメモリクロックを最大(４８ＭＨｚ)に設定する。
【００４１】
第２の例としては、現在実行中のコマンドが０ｘ０１２３００００アドレスから１２８ブロック分へのライト転送を１０ＭＨｚのメモリクロックで行っているとする。なお、このとき設定されている下限閾値を５ＭＨｚとする。次に実行するコマンドが０ｘ０１２３Ｆ０００アドレスから２５６ブロック分のライト転送であるとする。この場合、これら２つのコマンドは、連続アクセスできない。そこで、ステップＳ１２０において、新たなメモリクロックを決定する。
【００４２】
具体的には、まず媒体アクセスを開始するまでの時間（シーク時間＋回転待ち時間）と２５６ブロック分のデータを転送するのに必要な時間、すなわち媒体アクセス実行時間を見積もる。なお、本例においては、時間合計が２．００ｍｓと算出されたとする。それらの時間と転送数（２５６ブロック）から（式１）を利用して、（式３）から必要なメモリクロックが決定される。
（必要なメモリクロック）
＝１２８ｋＢｙｔｅ／２．００ｍｓ／４ｂｙｔｅ（３２ｂｉｔ）／２（ＤＤＲ）
＝８．１９２ＭＨｚ      ・・・（式３）
さらに、８．１９２ＭＨｚを５ＭＨｚ単位で切り上げ、１０ＭＨｚが得られる。１０ＭＨｚでは、ＦＩＦＯバッファ１８がオーバーフローすることはないので、ステップＳ１２０において、新たなメモリクロックの周波数は１０ＭＨｚと決定される。現在設定されているメモリクロックは１０ＭＨｚであるので、ステップＳ１３４において、メモリクロックの更新が行われることなく、処理が完了する。
【００４３】
第３の例としては、現在実行中のコマンドが０ｘ０１２３００００アドレスから１２８ブロック分のリード転送を１５ＭＨｚのメモリクロックで行っているとする。このときの下限閾値を１０ＭＨｚとする。次に実行するコマンドが０ｘ０１２３Ｆ０００アドレスから１２８ブロックの転送を行うこととする。さらに、これに続いて実行するコマンドが０ｘ３２１０３２１０アドレスから始まるとする。この場合、連続に媒体にアクセスすることができない。そこで、ステップＳ１２０において、新たなメモリクロックを決定する。
【００４４】
媒体アクセスを開始するまでの時間（シーク時間＋回転待ち時間）と１２８ブロックのデータを転送するのに必要な時間を見積もる。なお、本例においては、必要な時間として２．００ｍｓが算出される。この時間と転送数（１２８ブロック）から（式２）を利用して、（式４）から必要なメモリクロックが決定される。
（必要なメモリクロック）
＝６４ｋＢｙｔｅ／２．００ｍｓ／４ｂｙｔｅ（３２ｂｉｔ）／2(ＤＤＲ)
＝４．０９６ＭＨｚ      ・・・（式４）
よって、５ＭＨｚが得られる。ＦＩＦＯバッファ１８がオーバーフローすることはないので、ステップＳ１２０において、新たなメモリクロックの周波数は５ＭＨｚと決定される。さらに、現在のメモリクロックの下限閾値よりメモリクロックが遅いので、ステップＳ１３２を経て、ステップＳ１４４において５ＭＨｚにクロックを更新する。さらに、ステップＳ１４６において、下限閾値を現在のメモリクロックより５ＭＨｚ小さい値である０ＭＨｚに変更する。
【００４５】
以上のように、本実施の形態にかかるストレージ装置１においては、不連続アクセスを伴うコマンドに対するメモリクロックをより遅い周波数に設定することができる。これにより、省電力化を図ることができる。
【符号の説明】
【００４６】
１  ストレージ装置
１１  外部インターフェイス
１２  外部インターフェイス制御部
１３  メモリ
１４  メモリコントローラ
１５  コマンドキューイング制御部
１６  磁気記録媒体
１７  媒体制御部
１８  ＦＩＦＯバッファ
１９  プロセッサ
【図１】
2011013859.tif 000003
【図２】
2011013859.tif 000004
【図３】
2011013859.tif 000005
【図４】
2011013859.tif 000006
【図５】
2011013859.tif 000007