(58)【調査した分野】(Int.Cl.,DB名)
ホストに通信可能に接続するテープドライブにおいて、データを一時保管するためのバッファの消費電力を低減するための方法であって、前記バッファは少なくとも2以上のバッファ領域を含み、
ホストからのまたはホストへのデータの転送速度を検出するステップと、
前記データの転送速度に基づきテープへのデータの書き込みまたは読み出し速度を決定するステップと、
前記データの転送速度と、前記データの書き込みまたは読み出し速度と、前記バッファの容量とを含む所定の条件が満たされるか否かを判定するステップと、
前記所定の条件が満たされる場合、前記バッファ領域の少なくとも1つを選択するステップと、
選択された前記バッファ領域を省電力モードに切り替えるステップと、を含み、
前記所定の条件は、前記バッファの容量のうち省電力モードに切り替えてもよい容量Cpと、前記バッファ領域の容量Cbとを用いて、
Cp<Cb*N
ただし、Nは省電力モードにするバッファ領域の数、
で表され、
前記容量Cpは、テープのバックヒッチ動作に要する時間をTb、前記データの転送速度の最大値をHm、前記バッファの最大容量をCmとした場合、
Cp=Cm−(Hm*Tb)
で表される、方法。
【背景技術】
【0002】
LTFS等のファイルシステム上で利用可能なテープドライブがある。そのテープドライブでは、書き込み時にホストから送られるデータ、及び読み出し時にテープから読み出したデータをバッファに一端格納する。バッファ内のデータは、書き込み時に順次テープに書き込まれ、読み出し時に順次ホストへ転送される。
【0003】
テープへのデータ書き込みあるいはテープからのデータの読み出しのデータ転送速度(以下、「テープ転送速度」という)は、ホストからあるいはホストへのデータ転送速度(以下、「ホスト転送速度」という)に応じて設定される。その理由は、テープ転送速度とホスト転送速度との関係に応じて、バッファ内のデータ量が変化するため、テープ転送速度とホスト転送速度を管理しながらホストへのあるいはホストからのデータ転送をできるだけ中断しないようにする必要があるからである。
【0004】
バッファのサイズは、テープドライブがサポートする最大のテープ転送速度に基づいて設計される。しかし、実環境において、ホスト転送速度はその最大のテープ転送速度の半分以下の速度である場合がほとんどである。すなわち、バッファのサイズはホストを介したデータの読み書きにおいてかなり余裕がある場合が多い。したがって、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることが可能である。
【0005】
特許文献1は、データを送信する前や受信した後にいったんバッファメモリに格納する通信装置において、データをバッファメモリに入出力する際のデータ入出力速度に関する情報に基づき、データを格納するデータバッファのサイズを決定することを開示する。
【0006】
特許文献2は、サーバ等のIHSの利用状況が低い場合に、ストレージネットワーク上の選択したRAIDコントローラを省電力モードに切り替えることを開示する。
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1及び特許文献2の方法は、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることを開示するものではない。
【0009】
したがって、本発明の目的は、ホスト転送速度に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図る方法を提供することである。
【課題を解決するための手段】
【0010】
本発明は、ホストに通信可能に接続するテープドライブにおいて、データを一時保管するためのバッファの消費電力を低減するための方法を提供する。その方法においては、バッファは少なくとも2以上のバッファ領域を含み、ホストからのまたはホストへのデータの転送速度を検出するステップと、データの転送速度に基づきテープへのデータの書き込みまたは読み出し速度を決定するステップと、データの転送速度と、データの書き込みまたは読み出し速度と、バッファの容量とを含む所定の条件が満たされるか否かを判定するステップと、所定の条件が満たされる場合、バッファ領域の少なくとも1つを選択するステップと、選択されたバッファ領域を省電力モードに切り替えるステップと、を含む。
【0011】
本発明によれば、ホスト転送速度に応じて、より具体的には、ホストからのまたはホストへのデータの転送速度と、テープへのデータの書き込みまたは読み出し速度と、バッファの容量との関係に応じて、バッファの一部を使用しないようにして、バッファの省電力化を図ることができる。
【0012】
本発明の一態様では、前記バッファの容量のうち省電力モードに切り替えてもよい容量Cpと、前記バッファ領域の容量Cbが、Cp<Cb*N、ただし、Nは省電力モードにするバッファ領域の数で表される条件が満たされる場合に、バッファ領域の少なくとも1つを選択して、その選択されたバッファ領域を省電力モードに切り替える。
【0013】
本発明の一態様によれば、使用しなくても良いバッファ領域をバッファの空き容量を適切に管理しながら選択し、その選択されたバッファ領域を省電力モードに切り替えることができる。
【0014】
本発明の一態様では、バッファ領域はDRAMチップを含み、バッファ領域を省電力モードに切り替えるステップは、選択されたDRAMチップを動作停止状態にするまたはセルフリフレッシュするステップを含む。
【0015】
本発明の一態様によれば、DRAMチップの動作停止あるいはセルフリフレッシュにより、DRAMチップの消費電力を低減することができる。
【発明を実施するための形態】
【0017】
図面を参照しながら本発明の実施の形態を説明する。
図1は、本発明のテープドライブが利用されるファイルシステムの構成例を示す図である。ファイルシステム100は、ネットワーク36を介して相互に通信可能なテープドライブ10、ホスト(サーバー)30、PC(端末)32、34からなる。
図1では、テープドライブ10とホスト(サーバー)30は、それぞれ1つしか描かれていないが、これはあくまで例示であって、2以上のテープドライブ10やホスト(サーバー)30を含むことができることは言うまでもない。
【0018】
ファイルシステム100は、例えばLTFS(Linear Tape File System)とすることができる。LTFSは、HDDやUSBメモリ、あるいはCD−Rを始めとする他のリムーバブルな記録媒体同様に、テープカートリッジをテープドライブに挿入すれば、そのテープカートリッジに保存されたファイルに直接アクセスできる仕組みである。
【0019】
図2は、本発明のテープドライブの構成例を示す図である。テープドライブ10は、ホストインターフェイス(以下、「ホストI/F」という)11と、バッファ12と、チャネル13と、ヘッド14と、モータ15とを含む。また、コントローラ16と、ヘッド位置制御システム17と、モータドライバ18とを含む。更に、テープドライブ10には、テープカートリッジ20が挿入されることにより装填可能となっているので、ここでは、テープカートリッジ20も図示している。このテープカートリッジ20は、リール21、22に巻かれたテープ23を含む。テープ23は、リール21、22の回転に伴い、リール21からリール22の方向へ、又は、リール22からリール21の方向へ、長手方向に移動する。なお、テープ23としては、磁気テープが例示されるが、磁気テープ以外のテープ媒体でもよい。
【0020】
また、テープカートリッジ20は、カートリッジメモリ(CM)24も含む。このCM24は、例えば、テープ23上にどのようにデータが書かれたかの情報を記録する。そして、例えばRFインターフェイスを用いて非接触でテープ23に書かれたデータのインデックスやテープ23の使用状況等を調べることにより、データへの高速アクセスを可能としている。なお、
図2では、このRFインターフェイスのようなCM24へのアクセスを行うためのインターフェイスを、カートリッジメモリインターフェイス(以下、「CMI/F」という)19として示している。
【0021】
ここで、ホストI/F11は、ホスト(サーバー)30や他のPC32等との通信を行う。例えば、ホスト30のOSから、テープ23へのデータの書込みを指示するコマンド、テープ23を目的の位置に移動させるコマンド、テープ23からのデータの読出しを指示するコマンドを受け取る。上述したLTFSの例では、デスクトップOSなどから直接、テープドライブ内のデータを参照でき、HD内のファイルを扱うのと同様に、ダブルクリックでファイルを実行したり、ドラッグアンドドロップでコピーしたりできる。
【0022】
バッファ12は、ホスト30から転送されテープ23に書き込むデータやテープ23から読み出されホスト30へ転送されるデータを一時的に蓄積するメモリである。バッファ12の詳細については後述する。
【0023】
チャネル13は、テープ23に書き込むべきデータをヘッド14に送ったり、テープ23から読み出されたデータをヘッド14から受け取ったりするために用いられる通信経路である。ヘッド14は、テープ23が長手方向に移動するとき、テープ23に対して情報を書き込んだり、テープ23から情報を読み出したりする。モータ15は、リール21、22を回転させる。なお、
図2では、1つの矩形でモータ15を表しているが、モータ15としては、リール21、22の各々に1つずつ、合計2個設けるのが好ましい。
【0024】
一方、コントローラ16は、テープドライブ10の全体を制御する。例えば、ホストI/F11で受け付けたコマンドに従って、データのテープ23への書込みやテープ23からの読出しを制御する。後述する本発明の方法の各ステップもコントローラ16によって実行され得る。また、コントローラ16は、ヘッド位置制御システム17やモータドライバ18の制御も行う。ヘッド位置制御システム17は、所望のラップを追跡するシステムである。ここで、ラップとは、テープ23上の複数のトラックのグループである。ラップを切り換える必要が生じると、ヘッド14を電気的に切り換える必要も生じるので、このような切り換えの制御を、このヘッド位置制御システム17で行う。
【0025】
モータドライバ18は、モータ15を駆動する。尚、上述したように、モータ15を2個使用する場合であれば、モータドライバ18も2個設けられる。CMI/F19は、例えば、RFリーダライタにより実現され、CM24への情報の書込みや、CM24からの情報の読出しを行う。
【0026】
図3は、バッファ12の構成例を示す図である。
図3は、バッファ12を2つのバッファ領域を成すDRAM121、122で構成する場合の一例を示している。DRAM121、122は、バス124を介してメモリコントローラ(MC)160に接続する。DRAM121、122の各々は、2つのDRAMチップ(0、1)、(2、3)を含む。2つのDRAMチップで1つのアドレス空間を構成している。MC160は、
図2のコントローラ12の一部として、あるいはDRAMチップ専用のものとして個別に構成することができる。
【0027】
MC160は、チップセレクト信号CS_Nにより、2つのバッファ領域のいずれか(DRAM121または122)をアクセスするバッファとして選択することができる。以下の説明では、この
図3の構成を基に説明を行うが、バッファ領域(DRAM)の数は2に限られず、少なくとも2以上の任意の数の場合にも本発明が適用できることは言うまでもない。また、DRAM以外の他の種類のメモリ(半導体メモリ、磁気記憶メモリ等)を含むように構成してもよい。
【0028】
図4を参照しながら本発明のバッファの消費電力を低減するための方法のフローについて説明する。
図4のフローは、例えば
図2、
図3の構成において、コントローラ16/メモリコントローラ160で実行されるソフトウエアにより実施される。
【0029】
ステップS11において、ホストからのまたはホストへのデータの転送速度(ホスト転送速度)を検出する。ステップS12において、ホスト転送速度に基づきテープへのデータの書き込みまたは読み出し速度(テープ転送速度)を決定する。ステップS11及びS12は、例えば
図5に示されるスピードマッチング機構により実施される。スピードマッチング機構は、
図2のコントローラ16の一部の機能として実施される。
【0030】
図5において、速度検出部142は、ホスト転送速度Hsを検出する。その際、過去のある一定期間におけるホスト転送速度Hsの最大値Hmも取得する。速度算出部144は、速度検出部142から受け取ったホスト転送速度Hsに基づきテープ転送速度Ts、すなわちテープの走行速度Tsを算出する。テープ転送速度Tsは、所定の計算式によって計算され、あるいは予め設定された複数の値の中から選択される。テープ転送速度Tsは、速度制御部146は、速度算出部144から受け取ったテープ転送速度Tsに基づきモータドライバ18(
図2)を介してテープの走行速度を制御する。
【0031】
図4のフローに戻って、ステップS13において、ホスト転送速度と、テープ転送速度と、バッファの容量とを含む所定の条件が満たされるか否かを判定する。所定の条件は、例えば、下記の(1)式で表すことができる。
Cp<Cb*N (1)
ここで、Cpはバッファの容量のうち省電力モードに切り替えてもよい容量を意味し、Cbは1つのバッファ領域の容量を意味し、Nは省電力モードにするバッファ領域の数を意味する。この(1)式の条件が満たされる場合、省電力モードに切り替えてもよい少なくとも1つ以上のバッファ領域が存在していると判断することができる。
【0032】
(1)式の容量Cpは、テープのバックヒッチ動作に要する時間をTb、データの転送速度の最大値をHm、バッファの最大容量をCmとした場合、
Cp=Cm−(Hm*Tb) (2)
で表すことができる。テープのバックヒッチ動作には、(a)テープ速度を減速し、(b)テープが止まった後に逆方向に加速し、(c)使用するテープ速度でR/W可能なテープ位置まで巻き戻し、(d)再びテープ速度を減速し、(e)テープが止まった後に、R/Wをする方向にテープ速度を加速し、(f)ヘッド位置をトラッキングさせる、という一連の動作が含まれる。その一連のバックヒッチ動作に要する時間をTbは、例えば次の(3)式で近似的に求めることができる。
Tb=4Ta+2Tt (3)
ここで、Taはテープの加速時間を意味し、Ttはヘッド位置をトラッキングさせるまでの時間を意味する。
【0033】
ステップS14において、データの保管を止めて省電力モードに切り替えるバッファ領域(DRAMチップ)を選択する。この選択は、
図3のバッファ構成では、チップセレクト信号CS_Nを用いて行われる。選択されるバッファ領域の数は、式(1)を満たす範囲において、バッファ領域の総数に応じて1以上の任意の数を選択することができる。
【0034】
ステップS15において、選択したバッファ領域(DRAMチップ)を省電力モードに切り替える。この省電力モードに切り替えるステップは、DRAMチップの場合、例えば、選択されたDRAMチップを動作停止状態/スリープ状態にするまたはセルフリフレッシュすることにより実行される。ステップS16において、ホストからのデータ転送が終了したか否かを判定し、終了するまでステップS11〜S15が繰り返される。
【0035】
次に、
図6と
図7を参照しながら、DRAMチップのセルフリフレッシュによる省電力化のための構成について説明する。
図6は、本発明のDRAMチップの構成例を示す図である。
図6において、バッファ12は、
図3に示した2つのバッファ領域を成すDRAM121、122からなる。各DRAM121、122は、複数のセグメント#1〜#Nからなり、各セグメントが、テープ23に対する読み書きの単位であるデータセットを格納する。以下、テープへのデータの書き込み時におけるセルフリフレッシュについて説明する。なお、テープへのデータの読み取り時におけるセルフリフレッシュについても同様な動作により本発明の方法を機能させることができるので、ここでは書き込み時についてのみ説明する。
【0036】
今、ホストから受け取ったデータを、DRAM121のセグメント#Xからスタートし、DRAM122のセグメント#(X+1)、#(X+2)、・・・に続けて順番に格納していくものとする。各セグメントに格納されたデータは、符号化処理された後に、セグメント#X、#(X+1)、#(X+2)、・・・の順番でテープに書き込まれていく。その際、符号化処理に所定の時間を要するので、例えば、ホストからバッファへのデータ転送(書き込み)がセグメント#Xに対して行われている時、バッファからテープへのデータの書き込みは、セグメント#(X―W)で発生する。すなわち、W個のセグメント分のデータが符号化処理終わっておらず、バッファ上で保管しなければならない状態にある。
【0037】
DRAMのセルフリフレッシュに入る場合、セグメント#Xとセグメント#(X―W)の両方が、DRAM121またはDRAM122のいずれかに格納されるように、テープへの書き込みまたはホストからのデータの受け取りを一時中断する。テープへの書き込みを一時中断するには、例えば、バッファ内部でのデータの符号化処理を一時中断すればよい。ホストからのデータの受け取りを一時中断するには、例えば、SCSIの場合はWriteコマンドの完了をホストに返さなければよい。
【0038】
この2つの一時中断のいずれかを行って、セグメント#Xとセグメント#(X―W)の両方が、DRAM121またはDRAM122のいずれかに格納されたことを確認した後に、使用していないDRAMをセルフリフレッシュする。このセルフリフレッシュにより、DRAMの消費電力を低減させることができる。例えば、A社のDDR3 SDRAMでは、待機時(Active Standby current)の消費電力が77mA(x16 width)に対して、セルフリフレッシュの消費電力が22mAなので、3分の1以下(28.5%)に消費電力を低減することができる。
【0039】
図7は、本発明のDRAMチップのセルフリフレッシュのための構成例を示す図である。
図7の構成例は、メモリコントローラ160内のリクエストを調整するリクエスト・ハンドラー(以下「RH」と呼ぶ)162、セルフリフレッシュを制御するセルフリフレッシュ・コントローラ(以下「SRC」と呼ぶ)164、及びDRAM121、122へのコマンドを発行するコマンド・シーケンサ(以下「CMS」と呼ぶ)166を含む。以下、
図7の構成におけるセルフリフレッシュ動作について説明する。
【0040】
SRC164がDRAMをセルフリフレッシュに入れるリクエストであるセルフリフレッシュ・リクエストS1とそのDRAMのチップセレクト番号(CS_N)をマイクロコードから受け取ると、SRC164内のデータCSチェッカー(以下「DCC」と呼ぶ)1641が以下の処理をおこなう。
(a)セルフリフレッシュに入れるDRAMのデータ転送が終了していない場合、すなわち、RH162で管理するデータ転送中のアドレスのCS_Nが、セルフリフレッシュに入れたいDRAMのCS_Nに等しい場合、RH162は、そのデータ転送が終了するまで待つ。その転送終了後に、DCC1641は、セルフリフレッシュ・リクエストS1をSRC164内のリクエストCSチェッカー(以下「RCC」と呼ぶ)1642に転送する。
(b)セルフリフレッシュに入れるDRAMのデータ転送が終了している場合は、DCC1641は、直ちにセルフリフレッシュ・リクエストS1をRCC1642へ転送する。
【0041】
RCC1642がDCC1641からセルフリフレッシュ・リクエストS1を受け取った場合、またはセルフリフレッシュが実行中の場合には以下の処理をおこなう。
(c)R/WのためのアクセスリクエストのDRAMのCS_Nが、セルフリフレッシュに入れたいDRAMのCS_Nに等しい場合、エラーインターラプトをマイクロコードへ送って、そのアクセスリクエストを却下する。
(d)上記の2つのCS_Nが等しくない場合は、CMS166は、RCC1642から受け取ったCS_N情報に基づき、セルフリフレッシュの開始のコマンドSELFを発行して対象となるDRAMへ送り、さらにアクセスリクエストをリフレッシュしないDRAMへ転送する。
【0042】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。例えば、上述した実施形態では、バッファとしてDRAMを用いてそのリフレッシュを行う場合を例にとり説明したが、本発明はこれに限られず、何らかの省電力モードへの移行が可能なバッファへの一時的なデータ蓄積を利用する全てのテープドライブにおいて適用可能である。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。