(57)【特許請求の範囲】
【請求項１】
ホストに通信可能に接続するテープドライブにおいて、データを一時保管するためのバッファの消費電力を低減するための方法であって、前記バッファは少なくとも２以上のバッファ領域を含み、
ホストからのまたはホストへのデータの転送速度を検出するステップと、
前記データの転送速度に基づきテープへのデータの書き込みまたは読み出し速度を決定するステップと、
前記データの転送速度と、前記データの書き込みまたは読み出し速度と、前記バッファの容量とを含む所定の条件が満たされるか否かを判定するステップと、
前記所定の条件が満たされる場合、前記バッファ領域の少なくとも１つを選択するステップと、
選択された前記バッファ領域を省電力モードに切り替えるステップと、を含み、
前記所定の条件は、前記バッファの容量のうち省電力モードに切り替えてもよい容量Ｃｐと、前記バッファ領域の容量Ｃｂとを用いて、
Ｃｐ＜Ｃｂ＊Ｎ
ただし、Ｎは省電力モードにするバッファ領域の数、
で表され、
前記容量Ｃｐは、テープのバックヒッチ動作に要する時間をＴｂ、前記データの転送速度の最大値をＨｍ、前記バッファの最大容量をＣｍとした場合、
Ｃｐ＝Ｃｍ−（Ｈｍ＊Ｔｂ）
で表される、方法。
【請求項２】
前記テープのバックヒッチ動作に要する時間をＴｂは、テープの加速時間Ｔａと、テープドライブのヘッド位置をトラッキングさせるまでの時間Ｔｔとを用いて、
Ｔｂ＝４Ｔａ＋２Ｔｔ
で表される、請求項１の方法。
【請求項３】
前記バッファ領域はＤＲＡＭチップを含み、
前記バッファ領域を省電力モードに切り替えるステップは、選択された前記ＤＲＡＭチップを動作停止状態にするまたはセルフリフレッシュするステップを含む、請求項１の方法。
【請求項４】
請求項１〜３のいずれか１項の方法の各ステップを前記テープドライブ内のコントローラに実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テープドライブに関し、より具体的には、テープドライブのバッファの消費電力を低減するための方法に関する。
【背景技術】
【０００２】
ＬＴＦＳ等のファイルシステム上で利用可能なテープドライブがある。そのテープドライブでは、書き込み時にホストから送られるデータ、及び読み出し時にテープから読み出したデータをバッファに一端格納する。バッファ内のデータは、書き込み時に順次テープに書き込まれ、読み出し時に順次ホストへ転送される。
【０００３】
テープへのデータ書き込みあるいはテープからのデータの読み出しのデータ転送速度（以下、「テープ転送速度」という）は、ホストからあるいはホストへのデータ転送速度（以下、「ホスト転送速度」という）に応じて設定される。その理由は、テープ転送速度とホスト転送速度との関係に応じて、バッファ内のデータ量が変化するため、テープ転送速度とホスト転送速度を管理しながらホストへのあるいはホストからのデータ転送をできるだけ中断しないようにする必要があるからである。
【０００４】
バッファのサイズは、テープドライブがサポートする最大のテープ転送速度に基づいて設計される。しかし、実環境において、ホスト転送速度はその最大のテープ転送速度の半分以下の速度である場合がほとんどである。すなわち、バッファのサイズはホストを介したデータの読み書きにおいてかなり余裕がある場合が多い。したがって、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることが可能である。
【０００５】
特許文献１は、データを送信する前や受信した後にいったんバッファメモリに格納する通信装置において、データをバッファメモリに入出力する際のデータ入出力速度に関する情報に基づき、データを格納するデータバッファのサイズを決定することを開示する。
【０００６】
特許文献２は、サーバ等のＩＨＳの利用状況が低い場合に、ストレージネットワーク上の選択したＲＡＩＤコントローラを省電力モードに切り替えることを開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−３０３４５８号公報
【特許文献２】米国特許第８１４５９３２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１及び特許文献２の方法は、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることを開示するものではない。
【０００９】
したがって、本発明の目的は、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図る方法を提供することである。
【課題を解決するための手段】
【００１０】
本発明は、ホストに通信可能に接続するテープドライブにおいて、データを一時保管するためのバッファの消費電力を低減するための方法を提供する。その方法においては、バッファは少なくとも２以上のバッファ領域を含み、ホストからのまたはホストへのデータの転送速度を検出するステップと、データの転送速度に基づきテープへのデータの書き込みまたは読み出し速度を決定するステップと、データの転送速度と、データの書き込みまたは読み出し速度と、バッファの容量とを含む所定の条件が満たされるか否かを判定するステップと、所定の条件が満たされる場合、バッファ領域の少なくとも１つを選択するステップと、選択されたバッファ領域を省電力モードに切り替えるステップと、を含む。
【００１１】
本発明によれば、ホスト転送速度に応じて、より具体的には、ホストからのまたはホストへのデータの転送速度と、テープへのデータの書き込みまたは読み出し速度と、バッファの容量との関係に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることができる。
【００１２】
本発明の一態様では、前記バッファの容量のうち省電力モードに切り替えてもよい容量Ｃｐと、前記バッファ領域の容量Ｃｂが、Ｃｐ＜Ｃｂ＊Ｎ、ただし、Ｎは省電力モードにするバッファ領域の数で表される条件が満たされる場合に、バッファ領域の少なくとも１つを選択して、その選択されたバッファ領域を省電力モードに切り替える。
【００１３】
本発明の一態様によれば、使用しなくても良いバッファ領域をバッファの空き容量を適切に管理しながら選択し、その選択されたバッファ領域を省電力モードに切り替えることができる。
【００１４】
本発明の一態様では、バッファ領域はＤＲＡＭチップを含み、バッファ領域を省電力モードに切り替えるステップは、選択されたＤＲＡＭチップを動作停止状態にするまたはセルフリフレッシュするステップを含む。
【００１５】
本発明の一態様によれば、ＤＲＡＭチップの動作停止あるいはセルフリフレッシュにより、ＤＲＡＭチップの消費電力を低減することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明のテープドライブが利用されるファイルシステムの構成例を示す図である。
【図２】本発明のテープドライブの構成例を示す図である。
【図３】本発明のバッファの構成例を示す図である。
【図４】本発明の方法のフローを示す図である。
【図５】本発明のホスト転送速度とテープ転送速度との関係を説明するための図である。
【図６】本発明のＤＲＡＭチップの構成例を示す図である。
【図７】本発明のＤＲＡＭチップのセルフリフレッシュのための構成例を示す図である。
【発明を実施するための形態】
【００１７】
図面を参照しながら本発明の実施の形態を説明する。図１は、本発明のテープドライブが利用されるファイルシステムの構成例を示す図である。ファイルシステム１００は、ネットワーク３６を介して相互に通信可能なテープドライブ１０、ホスト（サーバー）３０、ＰＣ（端末）３２、３４からなる。図１では、テープドライブ１０とホスト（サーバー）３０は、それぞれ１つしか描かれていないが、これはあくまで例示であって、２以上のテープドライブ１０やホスト（サーバー）３０を含むことができることは言うまでもない。
【００１８】
ファイルシステム１００は、例えばＬＴＦＳ（Linear Tape File System）とすることができる。ＬＴＦＳは、ＨＤＤやＵＳＢメモリ、あるいはＣＤ−Ｒを始めとする他のリムーバブルな記録媒体同様に、テープカートリッジをテープドライブに挿入すれば、そのテープカートリッジに保存されたファイルに直接アクセスできる仕組みである。
【００１９】
図２は、本発明のテープドライブの構成例を示す図である。テープドライブ１０は、ホストインターフェイス（以下、「ホストＩ／Ｆ」という）１１と、バッファ１２と、チャネル１３と、ヘッド１４と、モータ１５とを含む。また、コントローラ１６と、ヘッド位置制御システム１７と、モータドライバ１８とを含む。更に、テープドライブ１０には、テープカートリッジ２０が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ２０も図示している。このテープカートリッジ２０は、リール２１、２２に巻かれたテープ２３を含む。テープ２３は、リール２１、２２の回転に伴い、リール２１からリール２２の方向へ、又は、リール２２からリール２１の方向へ、長手方向に移動する。なお、テープ２３としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【００２０】
また、テープカートリッジ２０は、カートリッジメモリ（ＣＭ）２４も含む。このＣＭ２４は、例えば、テープ２３上にどのようにデータが書かれたかの情報を記録する。そして、例えばＲＦインターフェイスを用いて非接触でテープ２３に書かれたデータのインデックスやテープ２３の使用状況等を調べることにより、データへの高速アクセスを可能としている。なお、図２では、このＲＦインターフェイスのようなＣＭ２４へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス（以下、「ＣＭＩ／Ｆ」という）１９として示している。
【００２１】
ここで、ホストＩ／Ｆ１１は、ホスト（サーバー）３０や他のＰＣ３２等との通信を行う。例えば、ホスト３０のＯＳから、テープ２３へのデータの書込みを指示するコマンド、テープ２３を目的の位置に移動させるコマンド、テープ２３からのデータの読出しを指示するコマンドを受け取る。上述したＬＴＦＳの例では、デスクトップＯＳなどから直接、テープドライブ内のデータを参照でき、ＨＤ内のファイルを扱うのと同様に、ダブルクリックでファイルを実行したり、ドラッグアンドドロップでコピーしたりできる。
【００２２】
バッファ１２は、ホスト３０から転送されテープ２３に書き込むデータやテープ２３から読み出されホスト３０へ転送されるデータを一時的に蓄積するメモリである。バッファ１２の詳細については後述する。
【００２３】
チャネル１３は、テープ２３に書き込むべきデータをヘッド１４に送ったり、テープ２３から読み出されたデータをヘッド１４から受け取ったりするために用いられる通信経路である。ヘッド１４は、テープ２３が長手方向に移動するとき、テープ２３に対して情報を書き込んだり、テープ２３から情報を読み出したりする。モータ１５は、リール２１、２２を回転させる。なお、図２では、１つの矩形でモータ１５を表しているが、モータ１５としては、リール２１、２２の各々に１つずつ、合計２個設けるのが好ましい。
【００２４】
一方、コントローラ１６は、テープドライブ１０の全体を制御する。例えば、ホストＩ／Ｆ１１で受け付けたコマンドに従って、データのテープ２３への書込みやテープ２３からの読出しを制御する。後述する本発明の方法の各ステップもコントローラ１６によって実行され得る。また、コントローラ１６は、ヘッド位置制御システム１７やモータドライバ１８の制御も行う。ヘッド位置制御システム１７は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ２３上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド１４を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム１７で行う。
【００２５】
モータドライバ１８は、モータ１５を駆動する。尚、上述したように、モータ１５を２個使用する場合であれば、モータドライバ１８も２個設けられる。ＣＭＩ／Ｆ１９は、例えば、ＲＦリーダライタにより実現され、ＣＭ２４への情報の書込みや、ＣＭ２４からの情報の読出しを行う。
【００２６】
図３は、バッファ１２の構成例を示す図である。図３は、バッファ１２を２つのバッファ領域を成すＤＲＡＭ１２１、１２２で構成する場合の一例を示している。ＤＲＡＭ１２１、１２２は、バス１２４を介してメモリコントローラ（ＭＣ）１６０に接続する。ＤＲＡＭ１２１、１２２の各々は、２つのＤＲＡＭチップ（０、１）、（２、３）を含む。２つのＤＲＡＭチップで１つのアドレス空間を構成している。ＭＣ１６０は、図２のコントローラ１２の一部として、あるいはＤＲＡＭチップ専用のものとして個別に構成することができる。
【００２７】
ＭＣ１６０は、チップセレクト信号ＣＳ＿Ｎにより、２つのバッファ領域のいずれか（ＤＲＡＭ１２１または１２２）をアクセスするバッファとして選択することができる。以下の説明では、この図３の構成を基に説明を行うが、バッファ領域（ＤＲＡＭ）の数は２に限られず、少なくとも２以上の任意の数の場合にも本発明が適用できることは言うまでもない。また、ＤＲＡＭ以外の他の種類のメモリ（半導体メモリ、磁気記憶メモリ等）を含むように構成してもよい。
【００２８】
図４を参照しながら本発明のバッファの消費電力を低減するための方法のフローについて説明する。図４のフローは、例えば図２、図３の構成において、コントローラ１６／メモリコントローラ１６０で実行されるソフトウエアにより実施される。
【００２９】
ステップＳ１１において、ホストからのまたはホストへのデータの転送速度（ホスト転送速度）を検出する。ステップＳ１２において、ホスト転送速度に基づきテープへのデータの書き込みまたは読み出し速度（テープ転送速度）を決定する。ステップＳ１１及びＳ１２は、例えば図５に示されるスピードマッチング機構により実施される。スピードマッチング機構は、図２のコントローラ１６の一部の機能として実施される。
【００３０】
図５において、速度検出部１４２は、ホスト転送速度Ｈｓを検出する。その際、過去のある一定期間におけるホスト転送速度Ｈｓの最大値Ｈｍも取得する。速度算出部１４４は、速度検出部１４２から受け取ったホスト転送速度Ｈｓに基づきテープ転送速度Ｔｓ、すなわちテープの走行速度Ｔｓを算出する。テープ転送速度Ｔｓは、所定の計算式によって計算され、あるいは予め設定された複数の値の中から選択される。テープ転送速度Ｔｓは、速度制御部１４６は、速度算出部１４４から受け取ったテープ転送速度Ｔｓに基づきモータドライバ１８（図２）を介してテープの走行速度を制御する。
【００３１】
図４のフローに戻って、ステップＳ１３において、ホスト転送速度と、テープ転送速度と、バッファの容量とを含む所定の条件が満たされるか否かを判定する。所定の条件は、例えば、下記の（１）式で表すことができる。
Ｃｐ＜Ｃｂ＊Ｎ        （１）
ここで、Ｃｐはバッファの容量のうち省電力モードに切り替えてもよい容量を意味し、Ｃｂは１つのバッファ領域の容量を意味し、Ｎは省電力モードにするバッファ領域の数を意味する。この（１）式の条件が満たされる場合、省電力モードに切り替えてもよい少なくとも１つ以上のバッファ領域が存在していると判断することができる。
【００３２】
（１）式の容量Ｃｐは、テープのバックヒッチ動作に要する時間をＴｂ、データの転送速度の最大値をＨｍ、バッファの最大容量をＣｍとした場合、
Ｃｐ＝Ｃｍ−（Ｈｍ＊Ｔｂ）        （２）
で表すことができる。テープのバックヒッチ動作には、（ａ）テープ速度を減速し、（ｂ）テープが止まった後に逆方向に加速し、（ｃ）使用するテープ速度でＲ／Ｗ可能なテープ位置まで巻き戻し、（ｄ）再びテープ速度を減速し、（ｅ）テープが止まった後に、Ｒ／Ｗをする方向にテープ速度を加速し、（ｆ）ヘッド位置をトラッキングさせる、という一連の動作が含まれる。その一連のバックヒッチ動作に要する時間をＴｂは、例えば次の（３）式で近似的に求めることができる。
Ｔｂ＝４Ｔａ＋２Ｔｔ              （３）
ここで、Ｔａはテープの加速時間を意味し、Ｔｔはヘッド位置をトラッキングさせるまでの時間を意味する。
【００３３】
ステップＳ１４において、データの保管を止めて省電力モードに切り替えるバッファ領域（ＤＲＡＭチップ）を選択する。この選択は、図３のバッファ構成では、チップセレクト信号ＣＳ＿Ｎを用いて行われる。選択されるバッファ領域の数は、式（１）を満たす範囲において、バッファ領域の総数に応じて１以上の任意の数を選択することができる。
【００３４】
ステップＳ１５において、選択したバッファ領域（ＤＲＡＭチップ）を省電力モードに切り替える。この省電力モードに切り替えるステップは、ＤＲＡＭチップの場合、例えば、選択されたＤＲＡＭチップを動作停止状態／スリープ状態にするまたはセルフリフレッシュすることにより実行される。ステップＳ１６において、ホストからのデータ転送が終了したか否かを判定し、終了するまでステップＳ１１〜Ｓ１５が繰り返される。
【００３５】
次に、図６と図７を参照しながら、ＤＲＡＭチップのセルフリフレッシュによる省電力化のための構成について説明する。図６は、本発明のＤＲＡＭチップの構成例を示す図である。図６において、バッファ１２は、図３に示した２つのバッファ領域を成すＤＲＡＭ１２１、１２２からなる。各ＤＲＡＭ１２１、１２２は、複数のセグメント＃１〜＃Ｎからなり、各セグメントが、テープ２３に対する読み書きの単位であるデータセットを格納する。以下、テープへのデータの書き込み時におけるセルフリフレッシュについて説明する。なお、テープへのデータの読み取り時におけるセルフリフレッシュについても同様な動作により本発明の方法を機能させることができるので、ここでは書き込み時についてのみ説明する。
【００３６】
今、ホストから受け取ったデータを、ＤＲＡＭ１２１のセグメント＃Ｘからスタートし、ＤＲＡＭ１２２のセグメント＃（Ｘ＋１）、＃（Ｘ＋２）、・・・に続けて順番に格納していくものとする。各セグメントに格納されたデータは、符号化処理された後に、セグメント＃Ｘ、＃（Ｘ＋１）、＃（Ｘ＋２）、・・・の順番でテープに書き込まれていく。その際、符号化処理に所定の時間を要するので、例えば、ホストからバッファへのデータ転送（書き込み）がセグメント＃Ｘに対して行われている時、バッファからテープへのデータの書き込みは、セグメント＃（Ｘ―Ｗ）で発生する。すなわち、Ｗ個のセグメント分のデータが符号化処理終わっておらず、バッファ上で保管しなければならない状態にある。
【００３７】
ＤＲＡＭのセルフリフレッシュに入る場合、セグメント＃Ｘとセグメント＃（Ｘ―Ｗ）の両方が、ＤＲＡＭ１２１またはＤＲＡＭ１２２のいずれかに格納されるように、テープへの書き込みまたはホストからのデータの受け取りを一時中断する。テープへの書き込みを一時中断するには、例えば、バッファ内部でのデータの符号化処理を一時中断すればよい。ホストからのデータの受け取りを一時中断するには、例えば、ＳＣＳＩの場合はＷｒｉｔｅコマンドの完了をホストに返さなければよい。
【００３８】
この２つの一時中断のいずれかを行って、セグメント＃Ｘとセグメント＃（Ｘ―Ｗ）の両方が、ＤＲＡＭ１２１またはＤＲＡＭ１２２のいずれかに格納されたことを確認した後に、使用していないＤＲＡＭをセルフリフレッシュする。このセルフリフレッシュにより、ＤＲＡＭの消費電力を低減させることができる。例えば、Ａ社のＤＤＲ３  ＳＤＲＡＭでは、待機時（Active Standby current）の消費電力が77mA（x16 width）に対して、セルフリフレッシュの消費電力が22mAなので、３分の１以下（28.5%）に消費電力を低減することができる。
【００３９】
図７は、本発明のＤＲＡＭチップのセルフリフレッシュのための構成例を示す図である。図７の構成例は、メモリコントローラ１６０内のリクエストを調整するリクエスト・ハンドラー（以下「ＲＨ」と呼ぶ）１６２、セルフリフレッシュを制御するセルフリフレッシュ・コントローラ（以下「ＳＲＣ」と呼ぶ）１６４、及びＤＲＡＭ１２１、１２２へのコマンドを発行するコマンド・シーケンサ（以下「ＣＭＳ」と呼ぶ）１６６を含む。以下、図７の構成におけるセルフリフレッシュ動作について説明する。
【００４０】
ＳＲＣ１６４がＤＲＡＭをセルフリフレッシュに入れるリクエストであるセルフリフレッシュ・リクエストＳ１とそのＤＲＡＭのチップセレクト番号（ＣＳ＿Ｎ）をマイクロコードから受け取ると、ＳＲＣ１６４内のデータＣＳチェッカー（以下「ＤＣＣ」と呼ぶ）１６４１が以下の処理をおこなう。
（ａ）セルフリフレッシュに入れるＤＲＡＭのデータ転送が終了していない場合、すなわち、ＲＨ１６２で管理するデータ転送中のアドレスのＣＳ＿Ｎが、セルフリフレッシュに入れたいＤＲＡＭのＣＳ＿Ｎに等しい場合、ＲＨ１６２は、そのデータ転送が終了するまで待つ。その転送終了後に、ＤＣＣ１６４１は、セルフリフレッシュ・リクエストＳ１をＳＲＣ１６４内のリクエストＣＳチェッカー（以下「ＲＣＣ」と呼ぶ）１６４２に転送する。
（ｂ）セルフリフレッシュに入れるＤＲＡＭのデータ転送が終了している場合は、ＤＣＣ１６４１は、直ちにセルフリフレッシュ・リクエストＳ１をＲＣＣ１６４２へ転送する。
【００４１】
ＲＣＣ１６４２がＤＣＣ１６４１からセルフリフレッシュ・リクエストＳ１を受け取った場合、またはセルフリフレッシュが実行中の場合には以下の処理をおこなう。
（ｃ）Ｒ／ＷのためのアクセスリクエストのＤＲＡＭのＣＳ＿Ｎが、セルフリフレッシュに入れたいＤＲＡＭのＣＳ＿Ｎに等しい場合、エラーインターラプトをマイクロコードへ送って、そのアクセスリクエストを却下する。
（ｄ）上記の２つのＣＳ＿Ｎが等しくない場合は、ＣＭＳ１６６は、ＲＣＣ１６４２から受け取ったＣＳ＿Ｎ情報に基づき、セルフリフレッシュの開始のコマンドＳＥＬＦを発行して対象となるＤＲＡＭへ送り、さらにアクセスリクエストをリフレッシュしないＤＲＡＭへ転送する。
【００４２】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。例えば、上述した実施形態では、バッファとしてＤＲＡＭを用いてそのリフレッシュを行う場合を例にとり説明したが、本発明はこれに限られず、何らかの省電力モードへの移行が可能なバッファへの一時的なデータ蓄積を利用する全てのテープドライブにおいて適用可能である。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００４３】
１０  テープドライブ
１１  ホストＩ／Ｆ
１２、１２０、１２１、１２２  バッファ／バッファ領域／ＤＲＡＭ
１３  チャネル
１４  ヘッド
１５  モータ
１６  コントローラ
１７  ヘッド位置制御システム
１８  モータドライバ
１９  カートリッジメモリＩ／Ｆ
２０  テープカートリッジ
２１、２２  リール
２３、２３０  テープ
２４  カートリッジメモリ（ＣＭ）
３０、１３０  ホスト／サーバー
３２、３４  ＰＣ
３６  ネットワーク
１００  ファイルシステム
１６０  メモリコントローラ
【図１】
0005939582.tif 000002
【図２】
0005939582.tif 000003
【図３】
0005939582.tif 000004
【図４】
0005939582.tif 000005
【図５】
0005939582.tif 000006
【図６】
0005939582.tif 000007
【図７】
0005939582.tif 000008