(57)【要約】【課題】半導体記憶装置を効率的に使用できるようにする。【解決手段】記憶装置２５のデータ入出力を制御し、半導体記憶装置２４を記憶装置２５のキャッシュメモリ２４として機能させるキャッシュ制御部１２と、記憶装置２５からキャッシュメモリ２４へデータをステージングする場合に、ストレージ装置１の起動後、キャッシュメモリ２４へのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、第１の期間経過後、キャッシュメモリ２４からの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、第２の期間後の第３の期間には第３のステージング量制御を行なうステージング制御部１３とを備える。【選択図】図２
2015069353.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と半導体記憶装置とを有するストレージ装置であって、
前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なうステージング制御部と
を備えることを特徴とする、ストレージ装置。
【請求項２】
前記第１のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせることを特徴とする、請求項１記載のストレージ装置。
【請求項３】
前記第２のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項１又は２記載のストレージ装置。
【請求項４】
前記第３のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、請求項１〜３のいずれか１項に記載のストレージ装置。
【請求項５】
前記第３のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、請求項４記載のストレージ装置。
【請求項６】
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なう
ことを特徴とする、ステージング制御方法。
【請求項７】
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なう
処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。
【請求項８】
前記第２のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項７記載のステージング制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置，ステージング制御方法及びステージング制御プログラムに関する。
【背景技術】
【０００２】
近年、記憶媒体にフラッシュ（Flash）メモリを採用したＳＳＤ（Solid State Drive）の低価格化や大容量化、高性能化が進んでいる。これに伴い、エンタープライズ向けのストレージ装置においては、ＤＲＡＭ（Dynamic Random Access Memory）やＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous DRAM)）等の一般的な揮発性メモリに加え、ＳＳＤをデータキャッシュとして採用することで高性能化を図ることが行なわれている。
【０００３】
ここで、ＳＳＤは、上述した一般的な揮発性メモリ（以下、ＤＲＡＭ／ＤＤＲという）と比べて以下の特性を有する。
（１）容量が大きく、安価な不揮発メモリとして使用可能である。
（２）書込めるデータの総量に限界がある。すなわち、いわゆる寿命がある。なお、ＳＳＤの寿命は、ＳＳＤ内に搭載されているフラッシュメモリの種類（ＳＬＣ（Single Level Cell），ＭＬＣ（Multi Level Cell）)や搭載量により異なる。
【０００４】
（３）ＤＲＡＭ／ＤＤＲよりもアクセス性能が低い
一般に、アクセス性能が高いＤＲＡＭ／ＤＤＲは１次キャッシュとして使用され、ＳＳＤは２次キャッシュとして使用されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１５４１０１号公報
【特許文献２】特開２００８−３１０７４１号公報
【特許文献３】特開２００９−１６３６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来のストレージ装置において、ＳＳＤをストレージ装置の２次キャッシュとして使用する場合には、以下のような課題がある。
すなわち、上述の如くＳＳＤには寿命があり、ステージングが多いと、この寿命が短くなる。なお、ステージングとは、ＨＤＤ（Hard Disk Drive）等の記憶装置から読み出したデータを２次キャッシュ（ＳＳＤ）に書き込むことをいう。
【０００７】
また、ＳＳＤにおいては、リードとライトの総性能に上限があり、ＳＳＤに一度に大量のステージング（ライト）を行なうと、その分リード性能が低下する。
図１１はＳＳＤにおけるライト量とリード性能との関係を示す図である。この図１１に示すように、ＳＳＤにおいてライト量が増加すると（図中右方向参照）、リード性能が著しく低下する。これは、ＳＳＤでは一般的にリードに比べてライトの重みの方が大きいことによる。
【０００８】
１つの側面では、本発明は、半導体記憶装置を効率的に使用できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、このストレージ装置は、記憶装置と半導体記憶装置とを有するストレージ装置であって、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なうステージング制御部とを備える。
【発明の効果】
【００１０】
一実施形態によれば、半導体記憶装置を効率的に使用することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態の一例としてのストレージ装置のコントローラのハードウェア構成を示す図である。
【図２】実施形態の一例としてのストレージ装置のコントローラの機能構成を示す図である。
【図３】実施形態の一例としてのストレージ装置における１次キャッシュと２次キャッシュとの関係を示す図である。
【図４】実施形態の一例としてのストレージ装置におけるＳＳＤのリード量及びステージング量の時間推移を示す図である。
【図５】実施形態の一例としてのストレージ装置におけるＳＳＤ性能特性テーブルを例示する図である。
【図６】実施形態の一例としてのストレージ装置における短周期テーブルを例示する図である。
【図７】実施形態の一例としてのストレージ装置における長周期テーブルを例示する図である。
【図８】実施形態の一例としてのストレージ装置における装置起動時の処理を説明するフローチャートである。
【図９】実施形態の一例としてのストレージ装置におけるＳＳＤへのＩ／Ｏ要求が行なわれる場合の処理を説明するフローチャートである。
【図１０】実施形態の一例としてのストレージ装置におけるステージング制限処理を説明するフローチャートである。
【図１１】ＳＳＤにおけるライト量とリード性能との関係を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本ストレージ装置，ステージング制御方法及びステージング制御プログラムの実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１３】
図１は実施形態の一例としてのストレージ装置１のコントローラのハードウェア構成を示す図、図２はその機能構成を示す図である。
ストレージ装置１は、１つ以上（図１に示す例では３つ）のＨＤＤ（Hard Disk Drive）２５を備え、ホスト装置３（図３参照）に記憶領域を提供する。
ストレージ装置１は、図１に示すように、複数のＨＤＤ２５を備えるとともに、コントローラ２を備える。
【００１４】
コントローラ２は、ストレージ装置１における種々の制御を行なうものであり、ホスト装置３からのストレージアクセス要求（アクセス制御信号：ホストＩ／Ｏ）に従って、ＨＤＤ２５へのアクセス制御等、各種制御を行なう。コントローラ２は、例えば、コントローラモジュール（Controller Module；ＣＭ）と呼ばれることもある。なお、ストレージ装置１においては、２つ以上のコントローラ２を備えてもよい。
【００１５】
コントローラ２は、ホスト接続用Ｉ／Ｏコントローラ２１を介して図示しないネットワークに接続され、ホスト装置３からのリード／ライト等のコマンドを受け取り、ＨＤＤ接続用Ｉ／Ｏコントローラ２２を介してディスクの制御を行なう。
コントローラ２は、図２に示すように、ホスト接続用Ｉ／Ｏコントローラ２１，プロセッサ１０，ＨＤＤ接続用Ｉ／Ｏコントローラ２２，メインメモリ２３及びＳＳＤ２４を備える。又、コントローラ２において、これらのホスト接続用Ｉ／Ｏコントローラ２１，プロセッサ１０，ＨＤＤ接続用Ｉ／Ｏコントローラ２２，メインメモリ２３及びＳＳＤ２４はメインバス２６を介して相互に通信可能に接続されている。
【００１６】
ＨＤＤ２５は、各種データやプログラム等を格納する記憶装置である。ＨＤＤ２５は２つ以下もしくは４つ以上備えてもよい。又、複数のＨＤＤ２５を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を形成してもよい。
ホスト接続用Ｉ／Ｏコントローラ２１は、ホスト装置３とＬＡＮ（Local Area Network）や光回線等の通信回線を介して接続され、このホスト装置３との間で各種コマンドやデータの授受を行なう通信アダプタである。ホスト装置３から送信されるリードコマンドやライトコマンド等のＩ／Ｏコマンドや各種データは、このホスト接続用Ｉ／Ｏコントローラ２１により受信される。又、ＨＤＤ２５等から読み出されたデータ等は、このホスト接続用Ｉ／Ｏコントローラ２１を介してホスト装置３に送信される。
【００１７】
このホスト接続用Ｉ／Ｏコントローラ２１としては、ストレージ装置１とホスト装置３との間のインタフェースの規格に応じて、例えば、ＬＡＮインタフェースやＣＡ（Channel Adapter）等、種々のインタフェースを用いることができる。
ＨＤＤ接続用Ｉ／Ｏコントローラ２２は、各ＨＤＤ２５と通信可能に接続され、これらのＨＤＤ２５との間で各種コマンドやデータの授受を行なうストレージインタフェースである。このＨＤＤ接続用Ｉ／Ｏコントローラ２２は、例えば、デバイスアダプタ（Device Adapter；ＤＡ）と呼ばれることもある。
【００１８】
このＨＤＤ接続用Ｉ／Ｏコントローラ２２としては、ストレージ装置１とＨＤＤ２５との間のインタフェースの規格に応じて、例えば、ＳＣＳＩ（Small Computer System Interface）やｉＳＣＳＩ，ＦＣ（Fibre Channel）等、種々のインタフェースを用いることができる。
メインメモリ２３は、主記憶装置であり、プロセッサ１０が各種処理を実行する際のワーキングメモリとして利用されるとともに、ストレージ装置１としての１次キャッシュとしても用いられる。このメインメモリ２３としては、例えば、ＤＲＡＭやＤＤＲ  ＳＤＲＡＭ等の一般的な揮発性メモリが用いられる。
【００１９】
ＳＳＤ２４は、記憶媒体に半導体素子メモリを用いた半導体記憶装置であり、ストレージ装置１としての２次キャッシュとして用いられる。このＳＳＤ２４は、メインメモリ２３よりもアクセス性能が低く（低速）、且つ、メインメモリ２３よりも大容量である。
図３は実施形態の一例としてのストレージ装置１における１次キャッシュと２次キャッシュとの関係を示す図である。
【００２０】
この図３に示すように、ＨＤＤ２５から読み出されたデータは、２次キャッシュであるＳＳＤ２４に格納（ステージング）される。又、このＳＳＤ２４に格納されたデータは読み出され（キャッシュリード）、１次キャッシュであるメインメモリ２３に格納される。
ホスト装置３からリード要求が行なわれると、コントローラ２は、リード対象のデータがメインメモリ２３に格納されている場合には（キャッシュヒット）、このメインメモリ２３から読み出したデータをホスト装置３に応答する。リード対象のデータがメインメモリ２３に格納されていない場合には（キャッシュミス）、コントローラ２は、ＳＳＤ２４に読み出し対象のデータが格納されているか否かを確認する。
【００２１】
リード対象のデータがＳＳＤ２４に格納されている場合には（キャッシュヒット）、このＳＳＤ２４から読み出したデータをメインメモリ２３に格納した後、ホスト装置３に応答する。一方、リード対象のデータがＳＳＤ２４にも格納されていない場合（キャッシュミス）には、コントローラ２は、ＨＤＤ２５からリード対象のデータを読み出してＳＳＤ２４にステージングし、メインメモリ２３にキャッシュリードした後、ホスト装置３に応答する。
【００２２】
プロセッサ１０は、種々の制御や演算を行なう処理装置（コンピュータ）であり、図示しないＲＯＭ（Read Only Memory）やＨＤＤ２５に格納されたＯＳやプログラム（デバイスドライバ）を実行することにより、種々の機能を実現する。なお、これらのＯＳやプログラムはＳＳＤ２４に格納してもよい。
すなわち、プロセッサ１０は、図２に示すように、ホストＩ／Ｏ制御部１１，キャッシュ制御部１２，ステージング制御部１３，ＳＤＤ制御部１４及びストレージ制御部１５として機能する。
【００２３】
なお、これらのホストＩ／Ｏ制御部１１，キャッシュ制御部１２，ステージング制御部１３，ＳＤＤ制御部１４及びストレージ制御部１５としての機能を実現するためのプログラム（デバイスドライバ，ステージング制御プログラム）は、例えば図示しない記録媒体に記録された形態で提供される。そして、プロセッサ１０（コンピュータ）はその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してプロセッサ１０に提供するようにしてもよい。
【００２４】
ホストＩ／Ｏ制御部１１，キャッシュ制御部１２，ステージング制御部１３，ＳＤＤ制御部１４及びストレージ制御部１５としての機能を実現する際には、内部記憶装置（本実施形態ではメインメモリ２３等）に格納されたプログラムがプロセッサ１０によって実行される。このとき、記録媒体に記録されたプログラムをプロセッサ１０が読み取って実行するようにしてもよい。
【００２５】
ホストＩ／Ｏ制御部１１は、ホスト装置３との通信を制御する。このホストＩ／Ｏ制御部１１は、上述したホスト接続用Ｉ／Ｏコントローラ２１を介して、ホスト装置３との間でＩ／Ｏコマンドや各種データの授受を行なう。
ストレージ制御部１５は、ＨＤＤ２５のハードウェア制御を行なう。すなわち、ストレージ制御部１５は、ＨＤＤ２５へのデータのリードやライトの制御を行なう。このストレージ制御部１５は、例えば、キャッシュ制御部１２から、データのリード要求を受信し、ＨＤＤ２５から、この指定されたデータを読み出す。
【００２６】
ＳＤＤ制御部１４は、ＳＳＤ２４のハードウェア制御を行なう。すなわち、ＳＳＤ制御部１４は、ＳＳＤ２４へのデータのリードやライトの制御を行なう。このＳＳＤ制御部１４は、例えば、後述するステージング制御部１３による制御に従って、ＳＳＤ２４に対しするデータの書き込みを行なう。
具体的には、ＳＳＤ制御部１４は、後述の如くステージング制御部１３により求められたステージング量に応じて、ＳＳＤ２４に対するステージングを行なう。ステージングを行なう場合には、ストレージ制御部１５がＨＤＤ２５から読み出したデータをＳＳＤ制御部１４がＳＳＤ２４に書き込む。
【００２７】
これらのＳＳＤ制御部１４及びストレージ制御部１５としての機能は、例えば、ディスクドライバにより実現される。
キャッシュ制御部１２は、メインメモリ２３及びＳＳＤ２４を用いたキャッシュ制御を行なう。
キャッシュ制御部１２は、例えば、ホスト装置２からのリード要求に対応するデータがＳＳＤ２４に格納されていない場合には、ストレージ制御部１５に対象のデータをＨＤＤ２５から読み出させる。そして、キャッシュ制御部１２は、このＨＤＤ２５から読み出させたデータを、ＳＳＤ制御部１４によりＳＳＤ２４にステージングさせる。
【００２８】
また、キャッシュ制御部１２は、ホスト装置２からのリード要求に対応するデータがメインメモリ２３に格納されていない場合には、ＳＳＤ制御部１４に対象のデータをＳＳＤ２４からキャッシュリードさせ、メインメモリ２３に格納させる制御も行なう。
このキャッシュ制御部１２としての機能は、例えば、キャッシュドライバにより実現される。
【００２９】
ステージング制御部１３は、ＳＳＤ制御部１４によるステージングのライト量を制限（制御）する。具体的には、ステージング制御部１３は、ＳＳＤ（２次キャッシュ）２４の使用状況について学習及び予測を行ない、最適なステージング量を決定する。そして、この決定したステージング量に基づきＳＳＤ制御部１４によるキャッシュアクセス（ステージング及びリード）をコントロールする。
【００３０】
ここで、本ストレージ装置１の２次キャッシュとして用いられるＳＳＤ２４は、例えば数ＴＢ程度の比較的大きな容量を有するので、安定運用に達するまでに時間を要する。ストレージ装置１においては、装置起動後、ＳＳＤ２４が安定運用状態に達するまでに、ＳＳＤ２４においてリード量とステージング量とがそれぞれ特有の推移を示す。
図４は実施形態の一例としてのストレージ装置１におけるＳＳＤ２４のリード量及びステージング量の時間推移を示す図である。この図４においては、ストレージ装置１の起動時からの時間経過に伴うＳＳＤ２４へのリード量とライト量との各変化を示している。この図４に示すように、ＳＳＤ２４においては、ステージング量は時間経過に従って減少する一方で、リード量は時間経過に従って増加することがわかる。
【００３１】
以下、ＳＳＤ２４の使用期間を、ステージング期（第１の期間），学習期（第２の期間）及び安定期（第３の期間）の３つに分けて考える。
本ストレージ装置１の起動後、ＳＳＤ２４へのステージング量（ライト量）が所定の第１の閾値を超えるまでの期間をステージング期（第１の期間）という。
また、ステージング期の後、ＳＳＤ２４からの単位時間当たりのリード量の変動が所定範囲内になるまでの期間を学習期（第２の期間）という。更に、学習期後の期間を安定期（第３の期間）という。
【００３２】
図４に示すように、ステージング期においては、ステージング量が多い一方で、ＳＳＤ２４におけるキャッシュヒット量、すなわち、リード量は少ない（ほとんどない）。又、学習期においては、ステージング量は減少する一方で、ＳＳＤ２４におけるキャッシュヒット（リード）量は増加する。更に、安定期においては、ステージング量は少ない状態で安定する一方で、キャッシュヒット（リード）量は多い状態で安定する。なお、ステージング量は、詳細に見ると変動がある（図４中破線丸参照）。
【００３３】
ステージング制御部１３は、これらのステージング期、学習期及び安定期の各期間への切り替わりを検知する機能を備える。すなわち、ステージング制御部１３は、本ストレージ装置１の起動後、ＳＳＤ２４へのステージング量（ライト量）が所定の第１の閾値を超えたことを検知するまでの間はステージング期と認識する。
また、ＳＳＤ２４へのステージング量（ライト量）が所定の第１の閾値を超えたことを検知した後、学習期であると認識する。その後、ＳＳＤ２４からの単位時間当たりのリード量の変動が所定範囲内に安定したことを検知すると安定期と認識する。
【００３４】
なお、ステージング制御部１３は、これらの期間の切り替わりを検知すると、例えばメインメモリ２３等における所定の領域等に、いずれの期間であるかを示すフラグ等を設定することが望ましい。
また、ステージング制御部１３は、ＳＳＤ性能特性テーブルＴ１を作成する機能を備えるとともに、ＳＳＤ２４における処理履歴を短周期テーブルＴ２及び長周期テーブルＴ３として作成する機能を有する。
【００３５】
以下に、ステージング制御部１３による各テーブルの作成手法について説明する。
（１）ＳＳＤ性能特性テーブルＴ１
ステージング制御部１３は、例えば本ストレージ装置１の起動時に、ＳＳＤ２４のリード／ライト競合時の性能特性を測定し、この測定結果に基づいてＳＳＤ性能特性テーブルＴ１を作成する。
【００３６】
図５は実施形態の一例としてのストレージ装置１におけるＳＳＤ性能特性テーブルＴ１を例示する図である。
ＳＳＤ性能特性テーブルＴ１は、ＳＳＤ２４の性能限界（性能飽和）状態でのライト（ライト性能）とリードの負荷（リード負荷）の組み合わせを示す性能特性情報であり、図５に示す例においては、ライト量とリード量との組み合わせとして構成されている。
【００３７】
ライト量は、ライト負荷量を表す値であって、ＳＳＤ２４にライト処理だけを行わせた場合における、ライトの最大処理性能の値（例えばコマンド数やデータ量）を１００％とした場合の、この最大処理性能に対する比（単位：％）として表される。なお、ライトの最大処理性能は、例えば、それ以上ライト負荷を与えても処理量の増加が頭打ちとなることを検知することで判断することができる。
【００３８】
図５に示す例においては、ＳＳＤ性能特性テーブルＴ１に、ライト量として、１０％，２０％，３０％，・・・８０％及び９０％の９段階の負荷量が登録されている。
なお、このＳＳＤ性能特性テーブルＴ１におけるライト量はこれらの９段階に限定されるものではなく、８段階以下もしくは１０段階以上のライト量を登録してもよく、種々変形して実施することができることは言うまでもない。
【００３９】
リード量は、単位時間当たり（例えば、１秒毎）にＳＳＤ２４に書き込み可能なデータ量（例えば、単位：ＭＢ）であり、ＳＳＤ２４に上述したライト量で表されるライト負荷がかかっている状態で、リードすることができるデータ量である。そして、ＳＳＤ性能特性テーブルＴ１においては、リード負荷とライト性能とが対応付けられている。
すなわち、このＳＳＤ性能特性テーブルＴ１に登録されているライト量とリード量との組み合わせは、当該ライト量のライト処理を行なわせた状態で、当該リード量のリード処理を実行させると、ＳＳＤ２４が性能限界状態となり、処理能力が飽和状態となることを示す。例えば、ＳＳＤ２４に、そのライトの最大処理性能の１０％の負荷がかかっている状態においては、毎秒２００ＭＢのリード処理を行なわせると、当該ＳＳＤ２４の性能は飽和状態（性能限界）となる。
【００４０】
つまり、ＳＳＤ性能特性テーブルＴ１を参照することで、各ライト負荷の状態で、どれだけのリード量を付加すればＳＳＤ２４が性能限界状態となるかを知ることができる。
ＳＳＤ性能特性テーブルＴ１は、例えば以下の（ａ１），（ａ２）の手順で作成することができる。
（ａ１）ＳＳＤ２４に対して、その負荷状況を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。すなわち、ＳＳＤ２４の負荷状態が頭打ちになった時のライト要求の発行量を求める。特定したライトの最大性能値をメインメモリ２３等の記憶領域に格納する。なお、ＳＳＤ２４の負荷は、既知の種々の手法を用いて実現することができ、便宜上その説明は省略する。
【００４１】
（ａ２）求めたライト最大性能値を１００％とした場合の、０％〜１００％の範囲を複数段階に分割し、各段階のライト性能を示す値毎に、リード性能の増加が頭打ちになるリード負荷の上限値を求め、ＳＳＤ性能特性テーブルＴ１に登録する。
図５においては、ライト量を、１０％，２０％，３０％，４０％，５０％，６０％，７０％，８０％及び９０％の、１０％刻みの９段階に分割した例を示している。
【００４２】
ステージング制御部１３は、例えば、先ず、ライト最大性能値の１０％のライト負荷となるように複数のライト要求を発行する。そして、この状態で、ステージング制御部１３は、ＳＳＤ２４の負荷状況を測定しながら、ＳＳＤ制御部１４によりリード負荷を増加させていく。
ステージング制御部１３は、リード性能が頭打ちになった時点でのリード量（飽和リード量；図５に示す例では２００ＭＢ）を決定し、この飽和リード量をＳＳＤ性能特性テーブルＴ１に当該ライト量に対応付けて登録する。ステージング制御部１３は、ＳＳＤ性能特性テーブルＴ１における他のライト量についても同様の処理をそれぞれ行ない、各ライト負荷での飽和リード量をそれぞれ決定し、ＳＳＤ性能特性テーブルＴ１に登録することで、ＳＳＤ性能特性テーブルＴ１を完成させる。
【００４３】
（２）短周期テーブルＴ２及び長周期テーブルＴ３
ステージング制御部１３は、ＳＳＤ２４へのリードアクセスやライトアクセスを行なう毎に、その処理実績（実績情報）に基づいて短周期テーブルＴ２及び長周期テーブルＴ３を作成する。
ここで、短周期テーブルＴ２は、ＳＳＤ２４へのリードアクセスとライトアクセスとの実績を短周期（例えば１時間間隔）で集計した、ＳＳＤ２４の処理履歴情報である。又、長周期テーブルＴ３は、ＳＳＤ２４へのリードアクセスとライトアクセスとの実績を短周期よりも長い長周期（例えば１０日間隔）で集計した、ＳＳＤ２４の処理履歴情報である。
【００４４】
図６は実施形態の一例としてのストレージ装置１における短周期テーブルＴ２を例示する図、図７はその長周期テーブルＴ３を例示する図である。
これらの短周期テーブルＴ２及び長周期テーブルＴ３においては、リードアクセスの実績情報として、キャッシュ使用率及びヒット量（リード量）が格納される。又、ライトアクセスの実績情報として、ライト要求量及び実ライト量が格納される。
【００４５】
キャッシュ使用量は、ＳＳＤ２４に格納されているキャッシュデータ量を示す。図６及び図７に示す例では、キャッシュ使用量として、ＳＳＤ２４の容量に対する格納されているキャッシュデータのデータサイズの割合を％値で表している。
ヒット量は、ＳＳＤ２４においてリードリクエストに対して応答（リード）できた（キャッシュヒットした）データ量（リード量，キャッシュヒット量）である。
【００４６】
ライト要求量は、ＳＳＤ２４に対してライト要求が行なわれたデータ量であり、実ライト量は、実際にＳＳＤ２４に書き込まれたデータ量である。
これらのキャッシュ使用率，ヒット量，ライト要求量及び実ライト量の各情報は、既知の手法で取得することができ、例えば、上述したキャッシュ制御部１２によって管理される。
【００４７】
短周期テーブルＴ２においては、これらの情報を、所定期間（例えば１時間）毎に集計して登録している。なお、図６に示す例においては、時系列にエントリが並べて登録されており、図中上方が古い情報であり、最下部のエントリが直近（最新）の集計結果を示す。又、この図６に示す例においては、１時間単位で１０日分の実績情報が登録されている。
【００４８】
例えば、図６に示す例において、最新の１時間においては、平均してＳＳＤ２４の記憶領域の内５６％の領域にキャッシュデータが格納されており、又、ＳＳＤ２４から合計で２６ＭＢ分のリード応答が行なわれたことを示す。更に、この最新の１時間においては、ＳＳＤ２４に対して１１２，４７６ＭＢのライト要求が行なわれ、又、この内、９０，３７３ＭＢのデータがＳＳＤ２４に実際に格納されたことを示す。
【００４９】
長周期テーブルＴ３においては、上述したキャッシュ使用率，ヒット量，ライト要求量及び実ライト量の各情報を、短周期よりも長い所定期間（例えば１０日）毎に集計して登録している。例えば、長周期テーブルＴ３に登録された各データを積算等することにより、長周期テーブルＴ３の各データを算出してもよい。
なお、図７に示す例においては、図中下方が古い情報であり、最上部のエントリが直近（最新）の１０日間の集計結果を示す。又、この図７に示す例においては、１０日間単位で１００日分の実績情報が登録されている。
【００５０】
例えば、図７に示す例において、最新の１０日間においては、平均してＳＳＤ２４の記憶領域の内３０％の領域にキャッシュデータが格納されており、又、ＳＳＤ２４から積算して６８ＧＢ分のリード応答が行なわれたことを示す。更に、この最新の１０日間においては、ＳＳＤ２４に対して積算して３４，５６７ＧＢのライト要求が行なわれ、又、この内、２１，６７８ＧＢのデータがＳＳＤ２４に実際に格納されたことを示す。
【００５１】
なお、これらのＳＳＤ性能特性テーブルＴ１や短周期テーブルＴ２及び長周期テーブルＴ３は、メインメモリ２３等の所定の領域に格納される。
また、ステージング制御部１３は、上述した、ステージング期，学習期及び安定期の各期間で、それぞれＳＳＤ２４の最適なステージング量を決定する。
（Ａ）ステージング期
ステージング期においては、リード要求によるキャッシュヒットはほとんど見込めなく、又、ＳＳＤ２４を早く安定期に移行させるために、ステージング期においては、ステージング量の制限は行なわない。このステージング期においては、ステージング制御部１３は、ステージングを優先して実施する（第１のステージング量制御）。
【００５２】
すなわち、この第１のステージング量制御においては、ステージング制御部１３は、キャッシュ制御部１２からの指示に従い、ＨＤＤ２５から読み出される全てのデータをＳＳＤ２４にステージングさせる制御を行ない、ＳＳＤ２４へのステージング量の抑制は行なわない。リードはステージングの間に余裕があれば実施する。
（Ｂ）学習期
学習期においても、ステージング期と同様にステージングを優先して動作させる。ただし、リードについても、直近のヒット率から見込みを予測し、最低限のステージングの制限を実施する。
【００５３】
学習期においては、ＳＳＤ２４内のデータが短期的に変動するので、上述した短周期テーブルＴ２を参照して、直近１時間前のヒット量（キャッシュヒット量）と２時間前のヒット量とをそれぞれ読み出す。そして、これらのヒット量によって増加傾向を求め、その増加傾向に基づき、次の１時間でのヒット量を予測（ヒット量予測）する。
ステージング制御部１３は、例えば、以下の式（１）に基づき、予測ヒット量を算出する。
【００５４】
予測ヒット量＝｛（１時間前のヒット量）−（２時間前のヒット量）｝
＋（１時間前のヒット量）・・・（１）
ステージング制御部１３は、算出した予測ヒット量に基づき、上述したＳＳＤ性能特性テーブルＴ１を参照して、このヒット量に対応するライト量を決定する。
例えば、図６に例示する短周期テーブルＴ２において、１時間前のヒット量は２６ＭＢであり、２時間前のヒット量は２２ＭＢであるので、上記式（１）により、予測ヒット量は、（２６−２２）＋２６＝３０ＭＢとして求められる。
【００５５】
なお、このステージング制御部１３によるヒット量予測は、上記式（１）により行なうことに限定されるものではなく、種々変形して実施することができる。例えば、直近の３つ以上のヒット量を用いて増加傾向を求めてもよい。
ステージング制御部１３は、この予測ヒット量３０ＭＢに基づいて、図５に示すＳＳＤ性能特性テーブルＴ１を参照して、ライト量６０％を決定する。このライト量６０％との値は、３０ＭＢのリード量に影響を与えることなく、ＳＳＤ２４の最大限の性能を発揮できる値である。つまり、ＳＳＤ２４から予測ヒット量の３０ＭＢのリードを行なった状態では、ＳＳＤ２４のライトの最大性能の６０％の負荷でライトを行なわせると、ＳＳＤ２４をその最高の性能で活用できることを示す。
【００５６】
なお、算出した予測ヒット量と同じ値がＳＳＤ性能特性テーブルＴ１にない場合には、ＳＳＤ性能特性テーブルＴ１中における予測ヒット量に近似する値を用いることが望ましい。ただし、これに限定されるものではなく、予測ヒット量の値を、繰上げや繰り下げ、四捨五入等を行なうことで、ＳＳＤ性能特性テーブルＴ１中から対応する値を決定してもよく、種々変形して実施することができる。
【００５７】
ステージング制御部１３は、この決定したライト量に基づいて、ＳＳＤ制御部１４によるステージングを制限する。
具体的には、ステージング制御部１３は、前述したＳＳＤ２４のライトの最大処理性能の値に対して、決定したライト量をかけた値にＳＳＤ２４の負荷量が収まるようにライト量の負荷を制限する。
【００５８】
例えば、決定されたライト量が６０％である場合には、ステージング制御部１３は、ＳＳＤ２４の負荷がＳＳＤ２４の最大性能の６０％となるようにライト量を制限する。
このように、学習期においては、ステージング制御部１３は、リード性能に影響を与えることなくＳＳＤ２４の最大限の性能を発揮できるステージング量を決定して、ステージング制御（第２のステージング量制御）を実現する。
【００５９】
これにより、ＳＳＤ２４を、予測されるヒット量（リード量）で稼動させた状態で、ＳＳＤ２４の性能を最大限に発揮できるライト量でＳＳＤ２４を動作させることができる。すなわち、ＳＳＤ２４を効率的に稼動させることができる。
（Ｃ）安定期
安定期においては、リード（リードヒット）処理を優先して実行させ、ステージングについては、ＳＳＤ２４の寿命を全うさせられる量に制限し最低限に留める、第３のステージング量制御を行なう。
【００６０】
ステージング制御部１３はＳＳＤ２４をその寿命を全うさせて使用するための閾値（基準閾値）を以下の式（２）に基づいて算出する。
閾値＝（ＳＳＤ書込み可能量−既書込み量）÷（残使用年数×３６５×２４−ＳＳＤ既運用時間）÷（６０分×６０秒÷単位秒）  ・・・（２）
ここで、ＳＳＤ書込み可能量は、ＳＳＤ２４にのべ書き込み可能な総データ量（総書込み可能容量）であり、ＳＳＤ２４が寿命（耐用年数）を迎えるまでに書き込めるデータの総量（寿命性能情報）である。このＳＳＤ書込み可能量は、例えば、ＳＳＤ２４の製造メーカ等が提供する仕様等により知ることができる。既書込み量は、その時点で当該ＳＳＤ２４に書き込まれたデータの総量であり、例えば、ＳＳＤ２４の所定領域やストレージ装置１の管理情報から既知の手法で取得することができる。
【００６１】
残使用年数は、当該ＳＳＤ２４の使用を希望する期間（目標使用期間）であり、今後、当該ＳＳＤ２４を使用を予定する期間（例えば、年数）である。例えば、現在使用中のＳＳＤ２４を後５年間使用し続けたいと考える場合には、残使用年数＝５となる。
ＳＳＤ既運用時間は、当該ＳＳＤ２４を運用した時間（使用実績情報）であり、例えば、ＳＳＤ２４の所定領域やストレージ装置１の管理情報から既知の手法で取得することができる。
【００６２】
単位秒は、ステージング量の制御を行なう単位時間であり、例えば、１０秒である。安定期においては、ステージング制御部１３は、この単位秒毎（１０秒毎）にステージングの制御を行なう。この秒単位は、ユーザが任意に設定することができ、１０秒以上もしくは１０秒よりも短い時間を指定してもよい。以下、単位秒として１０秒の例について示す。
【００６３】
ステージング制御部１３は、上記式（２）により、使用中のＳＳＤ２４を、今後、残使用年数の間使用するためのステージング量の閾値を算出する。
すなわち、安定期においては、ステージング制御部１３は、ＳＳＤ２４の寿命を全うさせられる最低限のステージング量（閾値）を算出する。
そして、ステージング制御部１３が、単位秒（例えば１０秒）あたりに、算出した閾値以下のステージング量となるようにＳＳＤ制御部１４を制御することで、使用中のＳＳＤ２４を残使用年数いっぱいまで使用することが可能となる。
【００６４】
ステージング制御部１３は、安定期においては、この算出した閾値に基づいて、ＳＳＤ制御部１４によるステージングを制限する。具体的には、ステージング制御部１３は、単位時間（単位秒）あたりに、上述した閾値以下となるように、ステージング量を制限する。
また、ステージング制御部１３は、安定期においては、上述した閾値に基づき、小さな波で表されるステージング量の変動を吸収する制御と、突発的に発生する大きな波で表されるステージング量の変動を吸収する制御とを行なう。
【００６５】
具体的には、図４中破線丸中に示したように、ステージング量には変動があり、微細な波を形成している。そして、このステージング量の変動において、上記単位秒内のステージングの総計において、前述した閾値を下回る場合もある。
ステージング制御部１３は、このように、上記単位秒内のステージングの総計において閾値を下回った分については、その次の単位秒において相殺するようにステージング量を増加させるよう調整する。
【００６６】
例えば、上記式（２）により算出した閾値が１０ＭＢである場合に、単位秒としてのある１０秒間に行なわれたステージング量が８ＭＢであった場合には、ステージング制御部１３は、その次の１０秒間において、２ＭＢ余計にステージングを行なう。
このように、ステージング制御部１３は、ある単位時間において、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を、次の単位時間で余計に書き込めるようにする。すなわち、算出した閾値に基づき、書込が少ない部分があった場合に、次の単位時間に持ち越して行なうキャリーオーバーを実現する。なお、閾値との差分のステージング量であって、次の単位時間に持ち越されるステージング量をキャリーオーバー量という場合がある。
【００６７】
また、安定期において、ステージング制御部１３は、前述した短周期テーブルＴ２等を参照して、当日のピーク値を予測する。例えば、直近の１０日間のＳＳＤ２４における、所定期間（例えば１時間）あたりのライトのピーク値とヒット量のピーク値とを取得し、これらの平均値を算出することで、当日のピーク値を予測する。
ステージング制御部１３は、この予測したピーク値（予測ピーク値）において、上記式（２）により算出した閾値を超えるステージング量（余剰ステージング量）を算出する。そして、ステージング制御部１３は、この余剰ステージング量を所定期間（例えば２４時間）で分割した分割余剰ステージング量（キープ量）を、当該所定期間の閾値に加算することで、この２４時間のステージング量を均等に減らす。キープ量は、例えば、以下の式（３）で表すことができる。
【００６８】
キープ量＝（予測ピーク値−閾値）÷（２４時間×６０分×６０秒÷単位秒）
・・・（３）
すなわち、安定期においては、ステージング制御部１３は、予測したピーク値に備えて、予めステージング量を所定期間、均等にキープ量だけ差し引いておく（キープ）。これにより、ステージング量を一定に保つことができる。
【００６９】
これにより、ステージング制御部１３が、所定期間内におけるステージング量が、算出した閾値以下のステージング量となり、使用中のＳＳＤ２４を残使用年数いっぱいまで使用することが可能となる。
また、キャッシュ制御部１２から突出して増大するステージング量のステージング要求が行なわれた場合、すなわち、ステージング量の突発的な波が発生した場合には、ステージング制御部１３は、このステージング要求の突発的な波を吸収する処理を行なう。すなわち、ステージング量の突発的な波を検知した時点から所定期間（例えば、２４時間）、閾値から分割余剰ステージング量を減算することで、この２４時間のステージング量を均等に増加させる。
【００７０】
安定期において、ステージングのピークが発生した場合に、ステージング制御部１３は、閾値を予め算出したキープ量だけ低下させることでステージング量を所定期間増加させて、発生したステージングのピークを吸収する。つまり、ステージング量を一定に保つことができる。
これにより、ステージング制御部１３が、所定期間内におけるステージング量が、算出した閾値以下のステージング量となり、使用中のＳＳＤ２４を残使用年数いっぱいまで使用することが可能となる。
【００７１】
なお、ステージング量の突発的な波の検知は、種々の手法を用いて行なうことができる。例えば、キャッシュ制御部１２からのステージング要求量が、前記閾値を所定量以上（例えば、５倍以上）超える場合に、ステージング量の突発的な波が発生したと判断することができる。
上述の如く構成された実施形態の一例としてのストレージ装置１における装置起動時の処理を、図８に示すフローチャート（ステップＡ１，Ａ２）に従って説明する。
【００７２】
装置起動時において、ステージング制御部１３は、ＳＳＤ性能特性テーブルＴ１を作成する。
ステップＡ１において、ステージング制御部１３は、ＳＳＤ２４に対して、その負荷を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。
【００７３】
また、ステージング制御部１３は、ライト最大性能値を段階的に減少させた複数の負荷割合となるようにライト要求を発行するとともに、各負荷割合において、リード性能が飽和するまで複数のリード要求を発行する。
ステップＡ２において、ステージング制御部１３は、ライト負荷割合毎の飽和リード量をそれぞれ決定し、ＳＳＤ性能特性テーブルＴ１を作成する。
【００７４】
次に、図９に示すフローチャート（ステップＢ１〜Ｂ６）に従って、実施形態の一例としてのストレージ装置１におけるＳＳＤ２４へのＩ／Ｏ要求が行なわれる場合の処理を説明する。
ＳＳＤ２４対してＩ／Ｏ要求が行なわれると、ステップＢ１において、ステージング制御部１３は、当該Ｉ／Ｏ要求に伴ってステージング（ライト）を行なうか否かを確認する。
【００７５】
ステージングを行なう場合には（ステップＢ１のＹＥＳルート参照）、ステップＢ５において、ステージング制御部１３がステージング制限処理を行なう。なお、このステージング制限処理については、図１０を用いて後述する。
その後、ステップＢ６において、ステージング制限がされているか否かを確認する。ステージング制限がされていない場合には（ステップＢ６のＮＯルート参照）、Ｉ／Ｏ要求に基づき、短周期テーブルＴ２や長周期テーブルＴ３を更新する（ステップＢ２，Ｂ３）。その後、ステップＢ４において、ＳＳＤ制御部１４がＳＳＤ２４に対するＩ／Ｏ処理、すなわちステージング処理（ライト処理）を実行し、処理を終了する。
【００７６】
一方、ステージングを行なわない場合、すなわちＩ／Ｏ要求がリード要求である場合には（ステップＢ１のＮＯルート参照）、このＩ／Ｏ要求に基づき、短周期テーブルＴ２や長周期テーブルＴ３を更新する（ステップＢ２，Ｂ３）。その後、ステップＢ４において、ＳＳＤ制御部１４がＳＳＤ２４に対するＩ／Ｏ処理（リード処理）を実行し、処理を終了する。
【００７７】
また、ステージングが制限されている場合には（ステップＢ６のＹＥＳルート参照）、ステージング要求を処理せずに終了する。すなわち、ステップＢ２〜Ｂ４の処理をスキップして、処理を終了する。この場合、２次キャッシュにのせておきたいデータ（将来使われる可能性があるデータ）のステージング要求は、条件が合わず実施されないが、当該データは所詮リードキャッシュのデータなので問題はない。この後に当該データが必要となった場合には、ＨＤＤ２５内から読み出すことになる。
【００７８】
次に、実施形態の一例としてのストレージ装置１におけるステージング制限処理を、図１０に示すフローチャート（ステップＣ１〜Ｃ７）に従って説明する。
ステージング制御部１３は、キャッシュ制御部１２からステージング要求を受信すると、ステップＣ１において、ステージング期であるか否かを確認する。ステージング期である場合には（ステップＣ１のＹＥＳルート参照）、第１のステージング量制御を行なう。すなわち、ＳＳＤ２４へのステージング量の抑制を行なうことなく、ＨＤＤ５から読み出される全てのデータをＳＳＤ２４にステージングさせるべく、ステージング制御部１３はステージング制御なしと決定する。その後、図９に示すフローチャートのステップＢ６に移行する。
【００７９】
また、ステージング期でない場合には（ステップＣ１のＮＯルート参照）、ステージング制御部１３は、次に、ステップＣ２において、学習期であるか否かを確認する。学習期である場合には（ステップＣ２のＹＥＳルート参照）、第２のステージング量制御を行なう。すなわち、ステップＣ３において、ステージング制御部１３は、リード性能に影響を与えない最大限のステージング量を計算する。
【００８０】
ステップＣ４において、ステージング制御部１３は、受信したステージング要求を実行した場合に、ステージング量の総計がステップＣ３において算出したステージング量を超えるか否かを判定する。判定の結果、ステージング量の総計がステップＣ３において算出したステージング量を超える場合には（ステップＣ４のＹＥＳルート参照）、ステージング制御部１３はステージング制御ありと決定して、図９に示すフローチャートのステップＢ６に移行する。
【００８１】
一方、ステージング量の総計がステップＣ３において算出したステージング量を超えない場合には（ステップＣ４のＮＯルート参照）、ステージング制御部１３はステージング制御なしと決定して、図９に示すフローチャートのステップＢ６に移行する。
また、学習期でない場合には（ステップＣ２のＮＯルート参照）、以後、安定期の処理として、第３のステージング量制御を行なう。すなわち、ステップＣ５において、ステージング制御部１３は、上記式（２）を用いて、ＳＳＤ２４の寿命を全うさせられる最低限の単位秒あたりのステージング量を算出する。
【００８２】
そして、ステップＣ６において、ステージング制御部１３は、キャリーオーバー量を算出し、ステップＣ７において、ステージング制御部１３は、受信したステージング要求を実行した場合に、単位時間において、受信したステージング量とキャリーオーバー量との総計が、上記式（２）を用いて算出した閾値を超えるか否かを判定する。すなわちステージング量超えとなるか否かの判定を行なう。
【００８３】
判定の結果、ステージング量超えとなる場合には（ステップＣ７のＹＥＳルート参照）、ステージング制御部１３はステージング制御ありと決定して、図９に示すフローチャートのステップＢ６に移行する。又、ステージング量超えとならない場合には（ステップＣ７のＮＯルート参照）、ステージング制御部１３はステージング制御なしと決定して、図９に示すフローチャートのステップＢ６に移行する。
【００８４】
このように、実施形態の一例としてのストレージ装置１によれば、ＳＳＤ２４の使用期間を、ステージング期，学習期及び安定期の３つに分けて、各期間においてそれぞれ最適な手法でステージング制御を行なうことで、ＳＳＤ２４を効率的に使用することができる。
すなわち、ステージング期においては、ステージングを優先的に行なわせる第１のステージング量制御を行なうことで、ＳＳＤ２４を短時間で安定期に移行させることができる。
【００８５】
学習期においては、ステージング制御部１３は第２のステージング量制御を行なう。すなわち、ステージング制御部１３は、短周期テーブルＴ２に基づきヒット量（リード量）予測を行ない、更に、算出した予測ヒット量に基づき、上述したＳＳＤ性能特性テーブルＴ１を参照して、このヒット量に対応するライト量を決定する。そして、この決定したライト量に基づいて、ＳＳＤ制御部１４によるステージングを制限する。
【００８６】
つまり、学習期においては、ステージング制御部１３は、リード性能に影響を与えることなくＳＳＤ２４の最大限の性能を発揮できるステージング量を決定して、ステージング制御を実現する。これにより、ＳＳＤ２４を、予測されるヒット量（リード量）のリード性能を阻害することなく、ＳＳＤ２４の性能を最大限に発揮できるライト量でＳＳＤ２４を動作させることができる。すなわち、ＳＳＤ２４を効率的に稼動させることができる。
【００８７】
また、学習期においては、ＳＳＤ２４内のデータが短期的に変動するので、短周期テーブルＴ２を用いることで、信頼性の高いヒット量予測を行なうことができる。
安定期においては、ステージング制御部１３は第３のステージング量制御を行なう。すなわち、ステージング制御部１３は、上記式（２）を用いて、ＳＳＤ２４の寿命を全うさせられる最低限の単位秒あたりのステージング量（閾値）を算出する。そして、ステージング制御部１３は、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を次の単位時間に持ち越してステージングするキャリーオーバーを行なう。これにより、所定期間内におけるステージング量が算出した閾値以下となり、ＳＳＤ２４を指定する期間（残使用年数）いっぱいまで使用することが可能となり、ＳＳＤ２４を効率的に稼動させることができる。
【００８８】
また、安定期において、ステージング制御部１３は、短周期テーブルＴ２を参照して予測ピーク値の算出を行ない、又、上記式（２）により算出した閾値を超える余剰ステージング量を算出する。そして、ステージング制御部１３は、この余剰ステージング量を所定期間（例えば２４時間）内で分割した分割余剰ステージング量（キープ量）を、当該所定期間の閾値に加算することで、この２４時間のステージング量を均等に減らす。これにより、ステージング量を一定に保つことができ、使用中のＳＳＤ２４を残使用年数いっぱいまで使用することが可能となる。
【００８９】
さらに、安定期において、テージングのピークが発生した場合には、ステージング制御部１３は、閾値を予め算出したキープ量だけ低下させることでステージング量を所定期間増加させて、発生したステージングのピークを吸収する。つまり、ステージング量を一定に保つことができる。
装置起動時に、ＳＳＤ２４の性能限界となるリード量とライト量との組合せを示すＳＳＤ性能特性テーブルＴ１を作成することで、当該ストレージ装置１の装置状態に合ったステージング制御を行なうことができ、信頼性を向上させることができる。
【００９０】
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
【００９１】
（付記１）  記憶装置と半導体記憶装置とを有するストレージ装置であって、
前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なうステージング制御部と
を備えることを特徴とする、ストレージ装置。
【００９２】
（付記２）
前記第１のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記１記載のストレージ装置。
【００９３】
（付記３）
前記第２のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記１又は２記載のストレージ装置。
【００９４】
（付記４）
前記第３のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記１〜３のいずれか１項に記載のストレージ装置。
【００９５】
（付記５）
前記第３のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記４記載のストレージ装置。
【００９６】
（付記６）
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なう
ことを特徴とする、ステージング制御方法。
【００９７】
（付記７）
前記第１のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記６記載のステージング制御方法。
【００９８】
（付記８）
前記第２のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記６又は７記載のステージング制御方法。
【００９９】
（付記９）
前記第３のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記６〜８のいずれか１項に記載のステージング制御方法。
【０１００】
（付記１０）
前記第３のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記９記載のステージング制御方法。
【０１０１】
（付記１１）
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第１の閾値を超えるまでの第１の期間には第１のステージング量制御を行ない、前記第１の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第２の期間には第２のステージング量制御を行ない、前記第２の期間後の第３の期間には第３のステージング量制御を行なう
処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。
【０１０２】
（付記１２）
前記第１のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記１１記載のステージング制御プログラム。
【０１０３】
（付記１３）
前記第２のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記１１又は１２記載のステージング制御プログラム。
【０１０４】
（付記１４）
前記第３のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記１１〜１３のいずれか１項に記載のステージング制御プログラム。
【０１０５】
（付記１５）
前記第３のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記１４記載のステージング制御プログラム。
【符号の説明】
【０１０６】
１    ストレージ装置
２    コントローラ
３    ホスト装置
１０    プロセッサ
１１    ホストＩ／Ｏ制御部
１２    キャッシュ制御部
１３    ステージング制御部
１４    ＳＳＤ制御部
１５    ストレージ制御部
２１    ホスト接続用Ｉ／Ｏコントローラ
２２    ＨＤＤ接続用Ｉ／Ｏコントローラ
２３    メインメモリ
２４    ＳＳＤ
２５    ＨＤＤ
２６    メインバス
Ｔ１    ＳＳＤ性能特性テーブル
Ｔ２    短周期テーブル
Ｔ３    長周期テーブル
【図１】
2015069353.tif 000003
【図２】
2015069353.tif 000004
【図３】
2015069353.tif 000005
【図４】
2015069353.tif 000006
【図５】
2015069353.tif 000007
【図６】
2015069353.tif 000008
【図７】
2015069353.tif 000009
【図８】
2015069353.tif 000010
【図９】
2015069353.tif 000011
【図１０】
2015069353.tif 000012
【図１１】
2015069353.tif 000013