JP4992835B2 - ディスク記憶装置およびプログラム - Google Patents

ディスク記憶装置およびプログラム Download PDF

Info

Publication number
JP4992835B2
JP4992835B2 JP2008165741A JP2008165741A JP4992835B2 JP 4992835 B2 JP4992835 B2 JP 4992835B2 JP 2008165741 A JP2008165741 A JP 2008165741A JP 2008165741 A JP2008165741 A JP 2008165741A JP 4992835 B2 JP4992835 B2 JP 4992835B2
Authority
JP
Japan
Prior art keywords
write
zone
write command
command
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008165741A
Other languages
English (en)
Other versions
JP2010009653A (ja
Inventor
哲也 田村
一也 鈴木
延治 佐々木
章 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2008165741A priority Critical patent/JP4992835B2/ja
Priority to US12/486,040 priority patent/US20090327598A1/en
Priority to CN200910149492XA priority patent/CN101615410B/zh
Publication of JP2010009653A publication Critical patent/JP2010009653A/ja
Application granted granted Critical
Publication of JP4992835B2 publication Critical patent/JP4992835B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1258Formatting, e.g. arrangement of data block or words on the record carriers on discs where blocks are arranged within multiple radial zones, e.g. Zone Bit Recording or Constant Density Recording discs, MCAV discs, MCLV discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10916Seeking data on the record carrier for preparing an access to a specific address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10935Digital recording or reproducing wherein a time constraint must be met
    • G11B2020/10981Recording or reproducing data when the data rate or the relative speed between record carrier and transducer is variable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1242Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc the area forming one or more zones, wherein each zone is shaped like an annulus or a circular sector
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1267Address data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Description

本発明は、例えばHDD(Hard disk drive)などのディスク状記憶媒体を用いてデータを記憶するディスク記憶装置およびこのディスク記憶装置に用いられるプログラムに関する。
通常、ホスト装置は、ハードディスク装置などのディスク記憶装置内のディスク上のデータの配置を意識しない。このため、ディスクに対して書き込みおよび読み出しが繰り返されるに連れて、1つのファイルのデータがディスク上の複数の離れた場所に記録されるフラグメンテーションの程度が高くなり、結果的にホスト装置から見たアクセス速度が低下する。
一方、ハードディスク装置などのディスク記憶装置では、前後のアクセスの場所を考慮することなく、単にI/O要求が発生した順に処理を行うので、無駄なシーク動作が多発するのが実情である。これはホスト装置がマルチタスクに対応するOS(Operating System)下で動作するパーソナルコンピュータなどの情報処理装置である場合には止むを得ない。タスク全体を見て記憶媒体上のデータの配置やアクセスの順番を制御することは極めて複雑であるし、その管理のために多くのリソースが消費されるためである。
しかしながら、例えば撮像部と録画部を備えるビデオカメラ(カムコーダ)などの民生機器では状況が異なる。民生機器の動作は概して定型的である。すなわち、民生機器では、ユーザの個々の操作に対して、どれだけ高速に、かつ確実に対応できるかという性能面が特に問われる。この要求に応えるための技術としてディスクスケジューリングがある。ディスクスケジューリングは、多くのコマンドがキューイングされた状況で、その実行順序を変えることで無駄なシーク動作を削減し、システムの性能を上げる(例えば、非特許文献1参照)。
ディスクスケジューリングのアルゴリズムの一つとしてSCANと呼ばれるものがある。これはヘッドを一方向に動かして、I/O要求をディスクの半径方向に従って処理する手法である。よく知られているように、ハードディスク装置では、ゾーンビット記録を採用しているために、ディスク外周の転送速度がディスク内周の転送速度より早い。それゆえファイルシステムがディスク全面を均等に使うようにした上で、ディスク記憶装置がSCANアルゴリズムに基づいてディスクスケジューリングを行うことにより、安定した転送速度を保証できる(例えば、非特許文献2参照)。
なお、ディスクスケジューリングと組み合わせてデータをディスク上にどのように配置するかについては多くの特許文献(例えば、特許文献1参照)がある。
岩波講座ソフトウェア科学,オペレーティングシステム(p343) Reddy,N,Wyllie,J."Disk Scheduling in Multimedia I/O System",Proc,ACM Multimedia 93 特開平9−185864号公報
しかしながら、カムコーダのような民生機器は、映像ストリームデータなどの比較的容量の大きいデータを書き込み用のデータとするとき、LBA(Logical Block Address)の値が小さい領域(ディスク外周)から順次使用するように書き込みコマンドを発行する。このような場合、SCAN方式のディスクスケジューリングによると、ディスクの空き容量が十分残っている場合はよいが、ディスクの空き容量が少なくなってくると、転送速度か低いディスク内周部に未使用の記憶領域が集中することから、ホスト装置から見たアクセス速度が低下する。
以上のような事情に鑑み、本発明の目的は、ホスト機器から見て、常に安定した転送速度を保証することのできるディスク記憶装置およびプログラムを提供することにある。
上記の課題を解決するために、本発明の第1の観点に基づくディスク記憶装置は、複数のブロックからなる第1のアドレス空間が割り当てられ転送速度が空間的に異なる記憶領域を有する記憶媒体に対する書き込みを制御するディスク記憶装置であって、ホスト装置から発行された、前記第1のアドレス空間のアドレスを含む書き込み命令を受領するコマンド受領部と、前記記憶領域を複数のゾーンに区分し、前記複数のブロックについて、前記第1のアドレス空間の先頭アドレス側のブロックから前記複数のゾーンに順次割り振った第2のアドレス空間を予め定義しておき、前記コマンド受領部にて受領した前記書き込み命令毎に、この書き込み命令に含まれる前記第1のアドレス空間のアドレスを前記第2のアドレス空間のアドレスにそれぞれ置き換え、書き込み先の前記ゾーンを巡回的に切り替えて選択し、選択された前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御する制御部とを具備する。
本発明によれば、ホスト装置より転送された書き込み用のデータを、所定容量のブロックの単位で、記憶媒体の記憶領域に割り当てられた第1のアドレス空間を区分する複数のゾーンに振り分けるとともに、書き込み先のゾーンを巡回的に切り替えて選択し、選択されたゾーンの単位で記憶媒体への書き込み処理を行うことによって、ホスト装置から見て、常に安定したデータ転送速度が保証される。
前記制御部は、書き込み用データのサイズが大きい書き込み命令の順に高い優先順位を設定し、この優先順位に従って前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御するようにしてもよい。これにより、ホスト装置から比較的サイズの大きい映像データが書き込み用データとして転送されてきた場合、これを優先して記憶媒体に書き込むことによって、ホスト装置から見たデータ転送速度が向上する。また、書き込み命令の順位が調整されることで、小さいデータの書き込み処理に伴う細かいシーク動作を減らすことができ、この点からも安定したデータ転送速度が保証される。
前記制御部は、データの書き込み先の前記第2のアドレス空間のアドレスが連続する複数の書き込み命令を判断し、これらの書き込み命令をこれらと等価な1つの書き込み命令として前記優先順位の設定を行うとともに、この書き込み命令に基づく書き込み処理を行うように制御を行うこととしてもよい。これにより、ホスト装置から見たデータ転送速度をより向上させることができる。
前記制御部は、1つの前記ゾーンに対する書き込み命令に基づく書き込み処理の回数が予め決められた上限値に達したとき、当該ゾーンに対する未処理の書き込み命令が残っていても、この未処理の書き込み命令による書き込み処理を見送って次の前記ゾーンに対する書き込み処理に移行するように制御を行うようにしてもよい。これにより、比較的サイズの大きいデータを記憶媒体に書き込んでいるときに、サイズの小さいデータの書き込み処理に伴う細かいシーク動作を減らすことができ、ホスト装置から見たデータ転送速度を向上させることができる。
前記制御部は、前記書き込み処理を見送った未処理の書き込み命令について、次にこの未処理の書き込み命令に対応する前記ゾーンが書き込み先として再び巡ってきたとき、前記優先順位の設定において前記未処理の書き込み命令を優遇することとしてもよい。これにより、サイズの小さいデータの書き込み処理がいつまでも実行されないことを回避できる。
前記制御部は、同種または異種の複数の記憶媒体の記憶領域を一の記憶領域としてこれに割り当てられた前記第1のアドレス空間の先頭アドレス側の前記ブロックから前記複数のゾーンに順次割り振った第2のアドレス空間を予め定義しておき、前記コマンド受領部にて受領した前記書き込み命令毎に、この書き込み命令に含まれる前記第1のアドレス空間のアドレスを前記第2のアドレス空間のアドレスにそれぞれ置き換え、書き込み先の前記ゾーンを巡回的に切り替えて選択し、選択された前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御することとしてもよい。
本発明の別の観点に基づくプログラムは、第1のアドレス空間が割り当てられ転送速度が空間的に異なる記憶領域を有する記憶媒体に対する書き込みを制御するプログラムであって、ホスト装置から発行された、前記第1のアドレス空間のアドレスを含む書き込み命令を受領するコマンド受領部と、前記記憶領域を複数のゾーンに区分し、前記複数のブロックについて、前記第1のアドレス空間の先頭アドレス側のブロックから前記複数のゾーンに順次割り振った第2のアドレス空間を予め定義しておき、前記コマンド受領部にて受領した前記書き込み命令毎に、この書き込み命令に含まれる前記第1のアドレス空間のアドレスを前記第2のアドレス空間のアドレスにそれぞれ置き換え、書き込み先の前記ゾーンを巡回的に切り替えて選択し、選択された前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御する制御部として、ディスク記憶装置が内蔵するコンピュータに対して機能させるものである。
以上のように、本発明のディスク記憶装置およびプログラムによれば、ホスト機器から見て、常に安定したデータ転送速度を保証することができる。
以下、本発明の実施の形態を図面に基づき説明する。
図1は本発明の一実施形態に係るディスク記憶装置の構成を示すブロック図である。
同図に示すように、本実施形態のディスク記憶装置10は、USB(Universal Serial Bus)インタフェース制御部11、内部バス12、インタフェース制御部13、制御部14、メモリ制御部15、バッファメモリ16、HDD(ハードディスクドライブ)17、メモリ18、およびCPU(Central Processing Unit)19を有する。
USBインタフェース制御部11は、ホスト装置20のUSBインタフェース制御部21との間でのインタフェースを制御するモジュールである。ホスト装置20は、例えばビデオカメラ、カムコーダ等の電子機器であり、CPU22、メモリ23、撮像部24、録画部25などを備える。USBインタフェース制御部11は、ホスト装置20のUSBインタフェース制御部11より送られてきた書き込みコマンドを内部バス12を通じて制御部14に供給したり、ホスト装置20より転送された書き込み用のデータを、USBインタフェース制御部11内のEP(End point FIFO)111に一杯になるまで保存し、一杯になったところで内部バス12を通じてメモリ制御部15に転送する。なお、ディスク記憶装置10とホスト装置20との間のインタフェースはUSB方式に限らず、その他、IEEE 1394など、USBと同等もしくはそれ以上の転送速度のインタフェースに変更してもよい。
内部バス12は、ディスク記憶装置10内の各モジュール間でコマンドおよびデータを伝送する伝送路である。
メモリ制御部15は、内部バス12を通じてUSBインタフェース制御部11より取得した書き込み用データをバッファメモリ16に設けられたライトバッファに書き込む。
バッファメモリ16は、HDD17に転送される書き込み用データが一時的に保持されるライトバッファのほかに、HDD17から転送された読み出しデータがホスト装置20へ転送される前に一時的に保持するリードバッファを有する。
インタフェース制御部13は、HDD17との間のインタフェースを制御するモジュールである。
制御部14は、ホスト装置20より発行された書き込みコマンド(例えばSCSI Write(10)コマンドなど)を、HDD17で解釈可能な形式の書き込みコマンド(例えばATAコマンドなど)に変換してインタフェース制御部13を通じてHDD17に与える。
また、制御部14は、HDD17の転送速度が空間的に異なるディスク記憶領域に割り当てられた外部LBA空間の先頭LBAから所定単位の各ブロックを、ディスク記憶領域を区分する複数のゾーンに順次均等に割り振った内部LBA空間を予め定義しておき、ホスト装置20より受領した書き込みコマンド毎に、この書き込みコマンドに含まれる、データの書き込み場所を指定する外部LBA空間のLBAを、内部LBA空間のLBAに置き換える処理を行う。ここで、外部LBA空間とは、ホスト装置20が使用する、ディスク記憶領域に割り当てられたLBA空間のLBAである。さらに、制御部14は、書き込み先のゾーンを巡回的に切り替えて選択し、現在選択されているゾーンに対する1以上の書き込みコマンドの間で優先順位を設定し、この優先順位に従ってゾーン単位の書き込み処理をHDD17に実行させるように制御を行う。
なお、ここで、HDD17のディスク記憶領域に割り当てられた外部LBA空間の先頭LBAから所定単位の各ブロックを複数のゾーンに均等に割り振った内部LBA空間を予め定義しておく、としたが、ゾーンのサイズや数、ブロックの容量などによっては、必ずしも、各ゾーンに均等に各ブロックが割り振れるとは限らない。
CPU19は、上記内部バス12を通じた各モジュール間でのコマンドやデータのやりとりなど、ディスク記憶装置10全体の総括的な制御を行う。メモリ18は、制御部15、CPU19の作業領域などとして利用される。
次に、図2を参照して外部LBA空間と内部LBA空間との関係を詳しく説明する。
同図の例では、ディスク記憶領域を転送速度が最大であるディスク最外周(LBA先頭)から所定サイズ例えば8G(ギガ)バイト毎に4つのゾーン0,1,2,3に区分し、これらのゾーン0,1,2,3に、外部LBA空間の先頭LBAから所定単位例えば2M(メガ)バイト毎のブロック(アドレスブロック)を割り振ったものが内部LBA空間として定義されている。
なお、この例は、FAT32のファイルシステムを用いた場合を前提とするが、他のファイルシステムの場合でも同様に、ディスク記憶領域の外部アドレス空間に対応する内部アドレス空間を定義することが可能である。この例では、HDD17の全体容量は32Gバイトである。32Gバイトの内部LBA空間の最小LBAは0x0000000、最大LBAは0x3FFFFFFとなる。ここで、書き込み用データが映像データの場合、2Mバイトは数100msec−1sec程度の再生時間分に相当する。
図3はブロックのサイズを2Mバイト、ゾーンのサイズを8Gバイトとした場合の外部LBAと内部LBAとの関係を示す表である。制御部14は、具体的には、外部LBAの値から次の式(1)により内部LBAの値を得ることができる。
内部LBA=ZNm*(0x1000000)+Zof*(0x1000)+Bof ・・・(1)
ここで、ZNmは、外部LBAの値を"1000"で割った商をゾーン数である"4"で割ったときの余り、Zofは外部LBAの値を"1000"で割った商をゾーン数である"4"で割って得た商、Bofは外部LBAの値を"1000"で割ったときの余りである。この計算により、図3に示したように外部LBAの値に対応する内部LBAの値が得られる。また、内部LBAが得られることによって、この内部LBAを包含するゾーンの番号も得られる。
なお、本発明において、HDD17の全体容量、ゾーンのサイズ、ゾーンの数、ブロックのサイズとも、上記の値に限定されない。
次に、このディスク記憶装置10においてホスト装置20からの書き込みコマンドを受領したときの動作を説明する。
ホスト装置20からディスク記憶装置10に書き込み命令(SCSI Write(10)コマンド)が送達されると、ディスク記憶装置10は書き込みを許可するACKをホスト装置20に返す。ホスト装置20はACKが返ってきたことを確認して書き込み用データをディスク記憶装置10に転送する。
ディスク記憶装置10は、ホスト装置20より転送されてきた書き込み用データをUSBインタフェース制御部11に置かれるEP111に一旦書き込み、EP111が満杯になった時点で、EP111に蓄えられ書き込み用データを内部バス12を通じてメモリ制御部15に転送し、バッファメモリ16(ライトバッファ)に保持させる。
また、ディスク記憶装置10のUSBインタフェース制御部11は、ホスト装置20から送達された書き込みコマンドを内部バス12を通じて制御部14に送る。制御部14は、この書き込みコマンドを次のように処理する。
図4は制御部14による書き込みコマンドに対する処理手順を示すフローチャートである。制御部14は、書き込みコマンドを受領すると(ステップS101)、前の書き込みコマンドによる書き込み処理が実行中であるかどうかを判定する(ステップS102)。前の書き込みコマンドによる書き込み処理が実行中でなければ(ステップS102のNO)、制御部14は、メモリ18に格納されたコマンド管理テーブルが現在空であるかどうかを調べる(ステップS103)。コマンド管理テーブルとは、ホスト装置20より送達された書き込みコマンドを管理するための情報が登録されるテーブルであり、その詳細は後で説明する。
コマンド管理テーブルが空ならば(ステップS103のYES)、制御部14はその書き込みコマンドをATAコマンドに変換し、インタフェース制御部13によりHDD17に送ってHDD17に書き込み処理を実行させる(ステップS104)。このように、ホスト装置20からの書き込みコマンドの発行頻度があまり高くなく、HDD17での書き込み処理が現在実行されていない時に新たに受領した書き込みコマンドについては、これを即座にATAコマンドに変換してHDD17に送って書き込み処理を実行させる。
また、制御部14は、ホスト装置20より複数の書き込みコマンドを連続して受領した場合など、前の書き込みコマンドの処理が完了する前に新たな書き込みコマンドを受領した場合には次のように制御を行う(ステップS102のYES)。制御部14は、コマンド管理テーブルに新しいエントリを作成し(ステップS105)、そこへ、今回ホスト装置20より受領した書き込みコマンドをもとに得た各情報を登録する(ステップS106)。すなわち、制御部14は、まず書き込みコマンドに含まれる外部LBAに対応する内部LBAを上記の式(1)により求めて、この内部LBAとこの内部LBAが属するゾーンの番号、さらには当該書き込みコマンドの書き込み対象である書き込み用データが保持されているライトバッファ上のアドレスを、コマンド管理テーブルに新規に作成したエントリに登録する。なお、ホスト装置20からの書き込みコマンドに含まれるLBAはスタートLBAとエンドLBAからなるので、内部LBAについてもスタートLBAとエンドLBAが得られ、これらがコマンド管理テーブルに登録される。
図5はこの時点でのコマンド管理テーブルを示す図である。
同図に示すように、コマンド管理テーブルは、エントリ毎の、エントリ番号、スタートLBA、エンドLBA、ゾーン番号、メモリアドレス、および連結フラグなどで構成される。ここで、スタートLBAとは、書き込みコマンドに含まれるスタートLBAに対応する内部LBAである。エンドLBAは書き込みコマンドに含まれるエンドLBAに対応する内部LBAである。ゾーン番号はスタートLBAおよびエンドLBAが属するゾーンの番号である。メモリアドレスは書き込み用データが保持されているライトバッファ上のアドレスである。そして連結フラグは、コマンド管理テーブルに登録されたエントリ間で内部LBAが連続する場合にこれらの連結の親子関係を示す情報である。なお、図5はコマンド管理テーブルに、まだ1つのエントリしか登録されていないので、連結フラグには連結が無いことを示す値(NC)が書き込まれている。
図4のフローチャートの説明に戻る。
制御部14は、ステップ107で、コマンド管理テーブルの全てのエントリにおけるLBAの連結関係を調査し、連結関係を有する各エントリに連結の親子関係を示す連結フラグを書き込む。この連結フラグの設定方法について、コマンド管理テーブルへ更なるエントリが追加された状況において説明する。
図6は図5に示したコマンド管理テーブルに更に3つのエントリ(2番目から4番目のエントリ)が追加された時点でのコマンド管理テーブルの例を示している。4番目のエントリにスタートLBA、エンドLBA、ゾーン番号、メモリアドレスの登録が完了したところで、制御部14は、今回新たに生成した4番目のエントリの内部LBA(スタートLBA、エンドLBA)と他のエントリの内部LBA(スタートLBA、エンドLBA)との連結関係を調査した結果、4番目のエントリと1番目のエントリとの間で内部LBAの連結関係があることを判定する。
ここで内部LBAの連結関係の調査とは、新たに生成したエントリのスタートLBAが他のエントリのエンドLBAと連続しているかどうか、さらには、新たに生成したエントリのエンドLBAが他のエントリのスタートLBAと連続しているかどうかを調べることによって行われる。なお、異なるゾーンを跨るLBAの連続は対象外とする。図6の例では、エントリ番号4のスタートLBAがエントリ番号1のエンドLBAと連続している。制御部14はこのような連続を発見した場合、該当する各エントリに親子関係を示す連結フラグを書き込む。すなわち、制御部14は、エントリ番号4のエントリに、当該エントリの親がエントリ番号1のエントリであることを示す連結フラグ"1"を書き込む。この"1"はエントリ番号1のエントリを示す。さらに、制御部14は、エントリ番号1のエントリに、当該エントリの子がエントリ番号4のエントリであることを示す連結フラグ"4"を書き込む。この"4"はエントリ番号4のエントリを示す。このようにして連結フラグが設定される。
図7は図6に示したコマンド管理テーブルに更に2つのエントリ(5番目と6番目のエントリ)が追加された時点でのコマンド管理テーブルの例を示している。6番目のエントリにスタートLBA、エンドLBA、ゾーン番号、メモリアドレスの書き込みが完了したところで、制御部14は、今回新たに生成した6番目のエントリの内部LBA(スタートLBA、エンドLBA)と他のエントリの内部LBA(スタートLBA、エンドLBA)の連結関係を調査した結果、4番目のエントリのエンドLBAが6番目のエントリのスタートLBAと連続していることを判定する。そこで制御部14は、エントリ番号4のエントリに、当該エントリの子がエントリ番号6のエントリであることを示す連結フラグ"6"を書き込む。この"6"はエントリ番号6のエントリを示す。さらに、制御部14は、エントリ番号6のエントリに、当該エントリの親がエントリ番号4のエントリであることを示す連結フラグ"4"を書き込む。この"4"はエントリ番号4のエントリを示す。このようにして連結フラグが再度設定される。
ホスト装置20からの連続的な書き込みコマンドの発行が途絶える、あるいは、ライトバッファが一杯になるなどの、所定の事象が発生すると、制御部14は、現在選択されているゾーンに対する1以上の書き込みコマンドの間で優先順位を設定し、この優先順位に従って書き込みコマンドに基づくゾーン単位の書き込み処理をHDD17に実行されるように制御を行う。
次に、HDD17へのゾーン単位での書き込み処理の制御について図8を参照して説明する。
図8はこのHDD17へのゾーン単位での書き込み処理のフローチャートである。
まず、書き込み先のゾーンが制御部14によって選択される。制御部14は、例えばゾーン0→1→2→3→0→・・・のようにHDD17のディスク記憶領域上で連続するゾーンのうちの1つを巡回的に切り替えて選択する。いま、あるゾーン(仮にゾーン0とする。)が書き込み先として選択されているものとする。
まず、制御部14は、コマンド管理テーブルから、ゾーン0に属するLBAを書き込み先とする書き込みコマンドに対応するエントリを検索する(ステップS201)。
次に、制御部14は、検索された各エントリに対して、スタートLBAとエンドLBAにより求められる書き込み用データのサイズが大きいものから順に高い優先順位を与える(ステップS202)。ここで、連結フラグによって親子関係があることが示された複数のエントリについては、制御部14は、これらを優先順位を決定するための1つのエントリとしてみなすこととする。図7のコマンド管理テーブルを例にとると、このコマンド管理テーブルにはゾーン0に属するエントリとしてエントリ番号"1"と"4"と"6"が存在し、しかもこれらのエントリは連結フラグによって親子関係を有している。したがって、これらのエントリに対応する書き込み用データのサイズの合計が、優先順位を決定するための条件となる。なお、図7のコマンド管理テーブルを例では、ゾーン0に属する他のエントリが不在であるので、エントリ番号"1"と"4"と"6"の優先順位が最も高く設定されることになる。
以上のようにして、ゾーン0を書き込み先とする1以上の書き込みコマンド間での優先順位が決定したところで、制御部14は、HDD17への書き込み処理が完了した数(処理数)を示す変数を初期化し(ステップS203)、優先順位に従って、ゾーン0を書き込み先とする書き込みコマンド(ATAコマンド)をインタフェース制御部13を通じてHDD17に発行し、HDD17に書き込み処理を実行させる(ステップS204)。その際、エントリ番号"1"と"4"と"6"の各エントリのように親子関係を有する各エントリについては、これらの書き込みコマンドをこれらと等価な1つの書き込みコマンド(ATAコマンド)に変換してインタフェース制御部13を通じてHDD17に発行するようにする。
この後、制御部14は、インタフェース制御部13を通じてHDD17より、書き込み処理の完了通知を受けて、コマンド管理テーブルからその書き込み処理が完了した書き込みコマンドに対応するエントリを削除し、処理数をインクリメントする(ステップS205)。
次に、制御部14は、コマンド管理テーブルに、当該ゾーンを書き込み先とする未処理のエントリが残っているかどうかを判定する(ステップS206)。未処理のエントリが残っているなら(ステップS206のYES)、制御部14は、処理数が予め決められた上限値に達したかどうかを調べる(ステップS207)。制御部14は、処理数が予め決められた上限値を達したことを判断すると(ステップS207のNO)、現在書き込み先として選択されているゾーンを書き込み先とする未処理の書き込みコマンドに対応するエントリがコマンド管理テーブルに残っていても、この未処理のエントリに対応する書き込みコマンドによる書き込み処理を見送って、書き込み先の選択ゾーンを次のゾーンに切り替える(ステップS209)。以降、切り替え先の新しいゾーン(例えばゾーン1)に対する書き込み処理のための制御が同様に行われる。
また、制御部14は、処理数が上限値に達していない場合でも、今回のゾーンを書き込み先とするすべてのエントリに対応する書き込み処理が完了したならば(ステップS206のNO)、書き込み先の選択ゾーンを次のゾーンに切り替える(ステップS209)。
なお、コマンド管理テーブル上の未処理のエントリに対しては、未処理であることを示す遅延フラグがセットされ(ステップS208)、例えば、次にこの未処理のエントリに対応するゾーンが書き込み先として再び巡ってきたとき、あるいはそれ以後に書き込み処理が行われる。
本実施形態によれば、次のような効果が得られる。
ホスト装置20が映像ストリームデータなどの比較的容量の大きいデータを書き込み用のデータとするとき、外部LBAの値が小さい領域(ディスク外周)から順次使用するように、また外部LBA空間を(ランダム若しくは規則的に)分散して使用するように書き込みコマンドを発行する。本実施形態によれば、このような場合、ホスト装置20より転送された書き込み用のデータが、所定容量のブロックの単位で、外部LBA空間を区分する複数のゾーンに振り分けられるとともに、書き込み先のゾーンを巡回的に切り替えて選択し、選択されたゾーンの単位で記憶媒体への書き込み処理を行うことによって、ホスト装置から見て、常に安定したデータ転送速度が保証される。
さらに、ゾーン単位の書き込み処理において、制御部14は、書き込み用データのサイズが大きい書き込みコマンドの実行を優先し、メタデータのようにサイズの小さいデータを書き込む書き込みコマンドの実行を後回しにする。これにより、ゾーン単位の書き込み処理において、サイズの小さいデータの書き込み処理に伴う細かいシーク動作を減らすことができ、この点からも安定したデータ転送速度が保証される。
さらに、本実施形態のディスク記憶装置10による書き込み制御は、ホスト装置20側の変更を要することがない。このため、様々な種類のホスト装置と接続して用いることができる。
次に、本実施形態の変形例を示す。
各ゾーンの容量は必ずしも同じである必要はない。例えば、ディスク外周側のゾーンよりゾーン単位の書き込み処理が開始される場合にはディスク外周側のゾーンよりディスク内周側のゾーンの容量を若干(1〜数ブロックサイズ程度)小さくしても問題はない。但し、ある程度各ゾーンの容量を同等にしないと、使用済みの容量がある程度大きくなってきたところで、フラグメンテーションなどによる影響と合わせて、安定したデータ転送速度が保証されなくなるおそれがある。
上記実施形態では、ゾーン単位での書き込み処理において、優先順位の低いエントリに対応する書き込みコマンドによる書き込み処理の実行は、次回以降に対応するゾーンが再び巡ってきたときまで見送られることがあるとした。見送られた未処理のエントリはそのままコマンド管理テーブルに残っており、そのエントリに対応する書き込みコマンドを、いつどのように処理するかについては様々な方法が考えられる。例えば、過去に見送られたことを示す履歴情報(遅延フラグ)をコマンド管理テーブル上で管理しておき、次に書き込み先として対応するゾーンが再び巡ってきたときに、再び他のエントリとの間での優先順位を決定して処理する方法の他に、優先順位の設定において、その見送られた未処理のエントリを優遇するために、例えば、見送られた回数に応じて優先順位を上げるようにしてもよい。
また、上記の実施形態では、記憶媒体としてHDD17を用いたが、本発明は複数のHDDを用いた場合にも適用可能である。この場合、複数のHDDの記憶領域を一の記憶領域として、この一の記憶領域に割り当てられた外部LBA空間に対応する内部LBA空間を制御部14において予め定義しておけばよい。また、HDDと他の種類の記憶媒体、例えば光学系のディスクドライブなどとを組み合わせ、これらの記憶領域を一の記憶領域とし、この一の記憶領域に外部LBA空間を割り当て、さらにその外部LBA空間に対応する内部LBA空間を制御部14において予め定義しておくことによって、異種媒体を用いたディスク記憶装置としても構成することが可能である。
本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々更新を加え得ることは勿論である。
本発明の一実施形態に係るディスク記憶装置の構成を示すブロック図である。 外部LBA空間と内部LBA空間との関係を説明するための図である。 外部LBAと内部LBAとの関係の表を示す図である。 書き込みコマンド受領時の処理手順を示すフローチャートである。 コマンド管理テーブルを示す図である。 図5のコマンド管理テーブルに更に3つのエントリが追加された時点でのコマンド管理テーブルの例を示す図である。 図6のコマンド管理テーブルに更に2つのエントリが追加された時点でのコマンド管理テーブルの例を示す図である。 ゾーン単位の書き込み時の処理手順を示すフローチャートである。
符号の説明
10…ディスク記憶装置
11…USBインタフェース制御部
12…内部バス
13…インタフェース制御部
14…制御部
15…メモリ制御部
16…バッファメモリ
17…HDD
18…メモリ
19…CPU
20…ホスト装置

Claims (3)

  1. 複数のブロックからなる第1のアドレス空間が割り当てられ転送速度が空間的に異なる記憶領域を有する記憶媒体に対する書き込みを制御するディスク記憶装置であって、
    ホスト装置から発行された、前記第1のアドレス空間のアドレスを含む書き込み命令を受領するコマンド受領部と、
    前記記憶領域を複数のゾーンに区分し、前記複数のブロックについて、前記第1のアドレス空間の先頭アドレス側のブロックから前記複数のゾーンに順次割り振った第2のアドレス空間を予め定義しておき、前記コマンド受領部にて受領した前記書き込み命令毎に、
    この書き込み命令に含まれる前記第1のアドレス空間のアドレスを前記第2のアドレス空間のアドレスにそれぞれ置き換え、書き込み先の前記ゾーンを巡回的に切り替えて選択し、選択された前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御する制御部と
    を具備し、
    前記制御部は、書き込み用データのサイズが大きい書き込み命令の順に高い優先順位を設定し、この優先順位に従って前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御し、
    1つの前記ゾーンに対する書き込み命令に基づく書き込み処理の回数が予め決められた上限値に達したとき、当該ゾーンに対する未処理の書き込み命令が残っていても、この未処理の書き込み命令による書き込み処理を見送って次の前記ゾーンに対する書き込み処理に移行するように制御し、
    前記書き込み処理を見送った未処理の書き込み命令について、次にこの未処理の書き込み命令に対応する前記ゾーンが書き込み先として再び巡ってきたとき、前記優先順位の設定において前記未処理の書き込み命令を優遇する
    ディスク記憶装置。
  2. 請求項1に記載のディスク記憶装置であって、
    前記制御部は、データの書き込み先の前記第2のアドレス空間のアドレスが連続する複数の書き込み命令を判断し、これらの書き込み命令をこれらと等価な1つの書き込み命令として前記優先順位の設定を行うとともに、この書き込み命令に基づく書き込み処理を行うように制御を行う
    ディスク記憶装置。
  3. 第1のアドレス空間が割り当てられ転送速度が空間的に異なる記憶領域を有する記憶媒体に対する書き込みを制御するプログラムであって、
    ホスト装置から発行された、前記第1のアドレス空間のアドレスを含む書き込み命令を受領するコマンド受領部と、
    前記記憶領域を複数のゾーンに区分し、前記複数のブロックについて、前記第1のアドレス空間の先頭アドレス側のブロックから前記複数のゾーンに順次割り振った第2のアドレス空間を予め定義しておき、前記コマンド受領部にて受領した前記書き込み命令毎に、この書き込み命令に含まれる前記第1のアドレス空間のアドレスを前記第2のアドレス空間のアドレスにそれぞれ置き換え、書き込み先の前記ゾーンを巡回的に切り替えて選択し、選択された前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御し、
    書き込み用データのサイズが大きい書き込み命令の順に高い優先順位を設定し、この優先順位に従って前記ゾーンの単位で前記記憶媒体への書き込み処理を行うように制御し、
    1つの前記ゾーンに対する書き込み命令に基づく書き込み処理の回数が予め決められた上限値に達したとき、当該ゾーンに対する未処理の書き込み命令が残っていても、この未処理の書き込み命令による書き込み処理を見送って次の前記ゾーンに対する書き込み処理に移行するように制御し、
    前記書き込み処理を見送った未処理の書き込み命令について、次にこの未処理の書き込み命令に対応する前記ゾーンが書き込み先として再び巡ってきたとき、前記優先順位の設定において前記未処理の書き込み命令を優遇する
    制御部
    として、ディスク記憶装置が内蔵するコンピュータに対して機能させるプログラム。
JP2008165741A 2008-06-25 2008-06-25 ディスク記憶装置およびプログラム Expired - Fee Related JP4992835B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008165741A JP4992835B2 (ja) 2008-06-25 2008-06-25 ディスク記憶装置およびプログラム
US12/486,040 US20090327598A1 (en) 2008-06-25 2009-06-17 Disk storage apparatus and program
CN200910149492XA CN101615410B (zh) 2008-06-25 2009-06-25 盘存储装置和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008165741A JP4992835B2 (ja) 2008-06-25 2008-06-25 ディスク記憶装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2010009653A JP2010009653A (ja) 2010-01-14
JP4992835B2 true JP4992835B2 (ja) 2012-08-08

Family

ID=41448935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008165741A Expired - Fee Related JP4992835B2 (ja) 2008-06-25 2008-06-25 ディスク記憶装置およびプログラム

Country Status (3)

Country Link
US (1) US20090327598A1 (ja)
JP (1) JP4992835B2 (ja)
CN (1) CN101615410B (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8922925B1 (en) 2013-12-09 2014-12-30 HGST Netherlands B.V. Actively written guard bands in a cold storage or mixed mode drive
US9489145B2 (en) 2013-12-09 2016-11-08 HGST Netherlands B.V. Disk drive including I-regions having configurable final logical block addresses
US8941943B1 (en) 2013-12-09 2015-01-27 HGST Netherlands B.V. Dynamic variable capacity hard disk drive
US8867153B1 (en) 2013-12-09 2014-10-21 HGST Netherlands B.V. Method and apparatus for dynamic track squeeze in a hard drive
CN103984655A (zh) * 2014-04-29 2014-08-13 三星半导体(中国)研究开发有限公司 数据访问的处理方法和装置
EP3251021B1 (en) * 2015-01-30 2023-07-19 Hewlett Packard Enterprise Development LP Memory network to prioritize processing of a memory access request
KR20200019431A (ko) * 2018-08-14 2020-02-24 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
US10692519B1 (en) * 2019-03-04 2020-06-23 Microsoft Tchnology Licensing, LLC Adjustable seek energy settings in storage device systems
FR3121778A1 (fr) * 2021-04-07 2022-10-14 Ipanematech Procédé d’optimisation d’écriture sur un disque dur

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03252832A (ja) * 1990-03-02 1991-11-12 Ricoh Co Ltd ファイルサーバー
US5555371A (en) * 1992-12-17 1996-09-10 International Business Machines Corporation Data backup copying with delayed directory updating and reduced numbers of DASD accesses at a back up site using a log structured array data storage
JPH07271513A (ja) * 1994-03-29 1995-10-20 Fujitsu Ltd ディスク制御方法及びディスク制御装置
JP3898782B2 (ja) * 1996-08-23 2007-03-28 オリンパス株式会社 情報記録再生装置
US6029226A (en) * 1996-09-30 2000-02-22 Lsi Logic Corporation Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command
JP2000039968A (ja) * 1998-05-19 2000-02-08 Matsushita Electric Ind Co Ltd デ―タ記憶装置及びその制御方法
JP2000013727A (ja) * 1998-06-19 2000-01-14 Matsushita Electric Ind Co Ltd 映像データ記録媒体及び映像データ記録/再生装置及びプログラム記録媒体
JP2000056932A (ja) * 1998-08-10 2000-02-25 Matsushita Electric Ind Co Ltd ディスク制御装置
US6799283B1 (en) * 1998-12-04 2004-09-28 Matsushita Electric Industrial Co., Ltd. Disk array device
US7088713B2 (en) * 2000-06-19 2006-08-08 Broadcom Corporation Switch fabric with memory management unit for improved flow control
CN1278239C (zh) * 2002-01-09 2006-10-04 株式会社瑞萨科技 存储系统和存储卡
CA2539077A1 (en) * 2003-10-29 2005-05-06 Matsushita Electric Industrial Co., Ltd. Drive device and related computer program
JP2005309653A (ja) * 2004-04-20 2005-11-04 Hitachi Global Storage Technologies Netherlands Bv ディスク装置及びキャッシュ制御方法
US8854758B2 (en) * 2005-09-07 2014-10-07 Agere Systems Inc. Track defect map for a disk drive data storage system
KR101305490B1 (ko) * 2005-10-01 2013-09-06 삼성전자주식회사 메모리 맵핑 방법 및 장치
JP4315178B2 (ja) * 2006-10-03 2009-08-19 船井電機株式会社 ディスク記録装置及びプログラム
US20090157940A1 (en) * 2007-12-15 2009-06-18 Hitachi Global Storage Technologies Netherlands, B.V. Techniques For Storing Data In Multiple Different Data Storage Media
US8275970B2 (en) * 2008-05-15 2012-09-25 Microsoft Corp. Optimizing write traffic to a disk

Also Published As

Publication number Publication date
CN101615410A (zh) 2009-12-30
JP2010009653A (ja) 2010-01-14
US20090327598A1 (en) 2009-12-31
CN101615410B (zh) 2011-06-08

Similar Documents

Publication Publication Date Title
JP4992835B2 (ja) ディスク記憶装置およびプログラム
JP5029513B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP6459644B2 (ja) ストレージ制御装置、制御システム及び制御プログラム
KR20140114515A (ko) 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법
US8458394B2 (en) Storage device and method of managing a buffer memory of the storage device
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
JP2005196769A (ja) フラッシュメモリのデータ管理装置及び方法
JP2016149051A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP5567545B2 (ja) 仮想ボリュームに領域を割り当てるための方法及び装置
JPWO2008126202A1 (ja) ストレージシステムの負荷分散プログラム、ストレージシステムの負荷分散方法、及びストレージ管理装置
JP4502375B2 (ja) ファイルシステムおよびその制御方法
JP2010237907A (ja) ストレージ装置および記録方法
JP2017049897A (ja) ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法
US20170371554A1 (en) Internal Data Transfer Management in a Hybrid Data Storage Device
EP2381354A2 (en) Data recording device
JP5910596B2 (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
KR20180133730A (ko) 스토리지 시스템 및 이의 동작 방법
US9058113B2 (en) Storage region providing device, storage region providing method, and recording medium
JP5335215B2 (ja) データ記憶装置、データ記憶方法及びプログラム
US20180335951A1 (en) Information processing apparatus, non-transitory computer-readable storage medium, and information processing method
JP2007249662A (ja) メモリカード及びメモリカードの制御方法
JP6464606B2 (ja) ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法
JP7000712B2 (ja) データ転送装置およびデータ転送方法
US11474947B2 (en) Information processing apparatus and non-transitory computer-readable storage medium storing cache control program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120322

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120410

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120423

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees