JP4283288B2 - ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置 - Google Patents

ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置 Download PDF

Info

Publication number
JP4283288B2
JP4283288B2 JP2006167290A JP2006167290A JP4283288B2 JP 4283288 B2 JP4283288 B2 JP 4283288B2 JP 2006167290 A JP2006167290 A JP 2006167290A JP 2006167290 A JP2006167290 A JP 2006167290A JP 4283288 B2 JP4283288 B2 JP 4283288B2
Authority
JP
Japan
Prior art keywords
block
data
recording
recording medium
blocks
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
JP2006167290A
Other languages
English (en)
Other versions
JP2006351175A (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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of JP2006351175A publication Critical patent/JP2006351175A/ja
Application granted granted Critical
Publication of JP4283288B2 publication Critical patent/JP4283288B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0611Improving I/O performance in relation to response time
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/32Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on separate auxiliary tracks of the same or an auxiliary record carrier
    • G11B27/327Table of contents
    • G11B27/329Table of contents on a disc [VTOC]
    • 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
    • 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/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1294Increase of the access speed
    • G11B2020/1295Increase of the access speed wherein the focus is on the read access speed
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本発明は、一般にデータ・ストレージ・システム分野に関するものであって、更に詳細には、データ・ストレージ・デバイスのデータ記録を最適化するための装置および方法に関する。
ブロック・データ・ストレージ・デバイスは、ホスト・デバイスから個別にアドレス指定されるブロックの形でデジタル・データの記録および/又は取り出しを行う。例示的なブロック・データ・ストレージ・デバイスには、ハードディスク・ドライブ、光ディスク・レコーダおよびプレーヤおよび磁気的デジタル・テープ・レコーダおよびプレーヤが含まれる。
そのようなデバイスは、典型的には、バッファ(第1の記録場所)、通信チャネルおよび記録メディア(第2の記録場所)を有するハードウエア/ファームウエア・ベースのインタフェース回路を含む。第2の記録場所のユーザ・メモリ・スペースは、アドレス指定可能な複数のブロックに分割され、それらには、ホスト・レベルのアドレス(しばしば論理ブロック・アドレス又はLBAと呼ばれる)が割当てられる。各LBAは、望みのLBAにアクセスするようにデータ変換ヘッドを記録メディアの適切な部分に揃えるためのサーボ制御回路が使用される対応する物理ブロック・アドレス(PBA)を有するのが普通である。
メディアにデータを書き込むために、ホスト・デバイスは、ストレージ・デバイスが記録すべきユーザ・データのほかに、ユーザ・データを記録すべきLBAのリストを含む書込みコマンドを発行する。ストレージ・デバイスは、ユーザ・データを第1の記録場所に一時的に記録し、データ変換ヘッドをメディア上の正しい位置へ移動させるようにスケジュールし、更に、通信チャネルの書込みチャネル部分を使用して、選ばれたLBAにデータを書き込むためにデータの適正な符号化および調整を供給する。
後にストレージ・デバイスからデータを読み出すときは、ホスト・デバイスは、取り出すべきデータが含まれるLBAを指定する読出しコマンドを発行する。ストレージ・デバイスは、データ変換ヘッドをメディア上の正しい位置に移動させるようにスケジュールし、更に、通信チャネルの読出しチャネル部分を使用して、読み戻したデータを復号化し、それらを第1の記録場所(バッファ)に置いた後、ホスト・デバイスに転送して戻す。
実際には、ファイルが生成され、拡大され、消去されるに伴って、利用可能なディスク・メディアが細分化(フラグメント化)される。ほとんどあらゆるコンピュータのディスク指向型ファイル・システムは、ファイル・データのフラグメンテーションの問題に悩まされている。ファイル・システムは、フラグメントをディスク上で互いに論理的に接近するように保持することによって、関連付けられるフラグメント間のシーク時間を最小化しようと努める。ファイル・システムは、その背景にある物理的ディスク構成およびアーキテクチャを正しく理解できないため、互いに接近したアドレスを有する論理ブロックは、メディア上で物理的にも接近していると仮定して設計される。
メディアからファイル・フラグメントを読み出すたびに、ホスト上およびディスク・ドライブ内の両方で別々のメディア・アクセス・コマンドが必要となる。内部ディスク・ドライブのコマンド処理のためのオーバー・ヘッド値は、ファイル・システムにとって未知であるため、システムは、無意識にファイル・フラグメントのブロックをメディア上で選択し、そのため、最良の動作性能どころか、最悪の動作性能をもたらすことになりかねない。このことは、ディスク上でほぼ逐次的になっていても、各フラグメントがコマンド処理時間のせいでアクセスを妨害し、ヘッドが要求のあったブロックを寸前で取り逃してしまい、ディスクがもう一回転するのを待って再度挑戦しなければならないなど、読出し/書込み動作のたびに余分なディスク回転を招く場合に発生する。
オブジェクト・ベースのストレージ・デバイス(OSD)技術は、ディスク・ドライブ・レベルで開発途上にある。ホストによるOSDアクセスは、標準的なブロック指向のプロトコルと厳密には、異なる。データは、オブジェクトとしてアドレス指定され、OSDディスク・ドライブにおけるアドレッシング可能な最小単位は、バイトである。更に、ファイル・システムの大部分は、ディスク・ドライブの内部で抽象化される。データの物理的位置や構成は、ホストから見えず、ディスク・ドライブ・ユニットによって管理される。
オブジェクト・ベースの記録は、スモール・コンピュータ・システム・インタフェース(SCSI)のコマンド・セットの拡張である。オブジェクト・ベースのストレージ・コマンド・セットは、特定の機能および知能をホストから個別ストレージ・デバイスにシフトあるいは、委譲する。このことは、ファイルおよびメタデータを一緒に1つの密接なオブジェクトとして管理および記録し、その関係をオブジェクト・ベースのストレージ・デバイス(例えば、コントローラ、ディスク・アレイ、あるいは、個別ディスク・ドライブ)レベルにまで保持することによって行われる。
上位レベルのインフラストラクチャ機能が最下位レベルのデバイスに委譲されることで、トラヒックが減少し、ソフトウエアだけでは、提供できない新しい機能が可能となる。このことは、拡張性および動作性能、動的再構成、ホスト相互運用性、生来的安全性および拡張された信頼性を強化する。
オブジェクト・ベースのストレージ・デバイスは、ネットワークに接続されたストレージ・デバイスでもよく、それは、要求のスケジューリングおよびデータのレイアウトなどのデータ記録の詳細を処理するために、逐次的に番号を振られた固定サイズのブロックではなく可変長で任意に命名されたデータ・オブジェクトのインタフェースを提供する。メタデータは、1又は複数の特殊用途のメタデータ・サーバが別々に管理する。データおよびメタデータの記録および管理を分離することによって、大規模な分散型のストレージ・システムへの非常に高いアクセス帯域幅が得られる。
OSDアーキテクチャは、記録をブロックでもファイルでもなく、オブジェクトとして扱う。ファイルとオブジェクトの主要な違いは、オブジェクトは、オブジェクト・データと一次メタデータとの結合を維持することである。一次メタデータは、アクセス時間、パーミッション、論理的オブジェクト・サイズ等を含む。例えば、オブジェクトは、単一のデータベース・レコード、又はテーブル、又はデータベース自身の全体でもよい。オブジェクトは、ファイルを含むことができるがファイルの一部だけでもよい。ストレージ・デバイスは、この内容を知っており、ブロック割当てのような下位レベルの詳細なデバイス管理を処理することができる。
典型的なディスク・ドライブ・インタフェース・プロトコル(例えば、SCSI、FC、ATA等)は、論理ブロック単位でディスク・データにアクセスする。このとき、ファイル・システム全体の構成は、ホスト内部で抽象化される。ディスク・ドライブのアドレッシング最小単位は、ブロックである。対照的に、OSDディスク・ドライブでのアドレッシング最小単位は、バイトである。更に、ファイル・システムの大部分は、ディスク・ドライブ内部で抽象化される。データは、オブジェクトとしてアドレッシングされる。データの物理的位置や構成は、ホストから見えず、ディスク・ドライブ・ユニットで管理される。
オブジェクト指向型ファイル・システムの特徴を活かしてファイル・アクセス時のシーク・オーバーヘッドを最小化することが望ましい。
本発明は、記録メディア、記録ヘッドを記録メディアに隣接して位置決めするためのアームおよびオブジェクトを受信しオブジェクトの情報に基づいて記録ヘッドが書き込むべき記録メディア上のブロックを選択するコントローラを含む装置を提供する。
別の態様では、本発明は、データをデータ・ストレージ・デバイスに書き込む方法を提供する。本方法は、オブジェクトのアクセス・コマンドを受信する工程、オブジェクトの情報に基づいて記録ヘッドが書き込むべき記録メディア上のブロックを選択する工程および選ばれたブロックにオブジェクトからデータを書き込む工程を含む。
図面を参照すると、図1は、本発明に従って構築できるディスク・ドライブ10の機械的部分の模式的図である。ディスク・ドライブは、ディスク・ドライブの各部品を収容するような寸法および構成を有する容器12(上側部分を取り外してあるため、この図では、下側部分が見えている)を含む。ディスク・ドライブは、容器内部で少なくとも1つのデータ記録メディア16(ここでは、磁気ディスク)を回転させるためのスピンドル・モータ14を含む。少なくとも1つのアーム18が容器12に内蔵されていて、各アーム18は、記録および/又は読出し用ヘッド又はスライダ22を備えた第1の端部20と、ベアリング26によってピボット回転するようにシャフトに搭載された第2の端部24とを有する。アクチュエータ・モータ28は、ボイス・コイル・モータでよいがアームの第2の端部24に位置しており、ヘッド22をディスク16の所望のセクタ上に位置決めするようにアームをピボット回転させる。データは、記録メディアの複数の同心円トラック27に記録される。ディスク・ドライブのコマンドおよび制御用電子回路は、容器内部に設置されたプリント回路基板(PCB)に搭載される。
ディスク・ドライブ制御回路32を含むオブジェクト・ベースのストレージ・システム30の機能的ブロック図が図2に与えられている。ホスト・コンピュータ34がディスク・ドライブ制御プロセッサ36を最上位レベルで制御し、後者が次にダイナミック・ランダム・アクセス・メモリ(DRAM)38および不揮発性フラッシュ・メモリ40に記録されたプログラムおよび情報に従ってディスク・ドライブ30の動作を制御する。
ディスク・ドライブが記録すべきデータは、ホスト・コンピュータ34からインタフェース回路42に転送される。インタフェース回路42は、データを一時的に保存するデータ・バッファと、データ転送動作中に読出し/書込みチャネル44およびプリアンプ/ドライバ回路46の動作を指示するためのシーケンサとを含む。スピンドル・モータ52によってディスク50の回転を制御するためにスピンドル回路48が設けられる。
サーボ回路54が設けられており、ヘッド56、プリアンプ/ドライバ46、サーボ回路54およびアクチュエータ・アームの位置を制御するコイル58によって構成されるサーボ・ループの一部として1又は複数のディスク50に相対的な1又は複数の記録ヘッド56の位置を制御するようになっている。サーボ回路54は、2つの重要なサーボ動作、すなわち、シークおよびトラック・フォローイングを実行するようにプログラムされたデジタル信号プロセッサ(DSP)を含む。
図3は、本発明に従うOSDディスク・ドライブ62を含むオブジェクト・ベースのストレージ・システム60のブロック図である。複数のアプリケーション66を走らせるホスト・コンピュータ64は、システム・コール・インタフェース68およびファイル・システム・ユーザ・コンポネント70を含む。ホストは、オブジェクト・インタフェース72を介してOSDディスク・ドライブ62に情報を送信する。ディスク・ドライブは、ファイル・システム・コンポネント74、ブロック入出力マネージャ76および1又は複数の記録メディア78を含む。
本発明は、フラグメント化したOSDファイル・システムに対処して、フラグメント化が重大な性能劣化を引き起こさないことを保証する。本方法は、ファイルのフラグメントを最適に構成することにより、またほぼ連続した読出しおよび書込みアクセスのコマンド・オーバーヘッドを無くすことによってファイル・アクセス時のシーク・オーバーヘッドを最小化する。
本発明は、オブジェクト生成および追加書込み動作の間に、オブジェクト・フラグメントの位置を選択して、ディスクの物理的レイアウトの要因を明らかにすることによってフラグメント間のシーク時間を最小化する。選択操作で考慮する記録メディアの因子又は特性には、前のフラグメントの最後のブロックと次のフラグメントの先頭のブロックとの間の合計位相差が含まれる。位相差は、次のコマンド選択ソートの間に計算される値である。待ち行列に含まれる各コマンドは、先頭位相と末尾位相とを含む。先頭位相は、現在のコマンドに関して転送すべき最後のブロックのディスク上での位置である。読出しコマンドに関しては、これは、読出しルック・アヘッド・データを含む。末尾位相は、候補の次のコマンドの最初のブロックである。先頭位相から末尾位相までの時間差が位相差である。コマンド・ソート操作の目的は、最小の位相差を有する次のコマンドを見つけて、コマンドからコマンドへの迅速な実行を実現することである。位相差を計算するときに考慮すべき要素は、2つある。回転待ち時間とシーク時間である。回転待ち時間は、目標ブロックがヘッド下を回転するのに要する時間である。シーク待ち時間は、アクチュエータが正しい次のトラックに移動するのに要する時間である。
図4は、OSDとインタフェース・ファームウエア層との通信のブロック図である。OSD層は、ドライブに対するブロック要求を行うために、ファームウエア・アプリケーション・プログラム・インタフェース(API)80を使用する。メタデータおよびユーザ・データ・オブジェクトに関するフリー・ブロックのリスト84が用意される。OSDファイル・システム84は、WRITE、WRITE APPEND、又はCREATEコマンドを満たすために新しいユーザ・データ・ブロックが必要となったときに、OSD層に対して候補となる先頭ブロック位置を提供する。物理的ディスク・レイアウト・マネージャ86は、コマンドを受信して、トラック・フォーマット、ゾーン、欠陥およびトラック位置88を制御する。
図5は、ドライブ・ファームウエアのより詳細なブロック図である。OSDファームウエア層90は、コマンド解析92、能力チェックおよびパーミッション/セキュリティ94、メタデータ・フェッチ96、スペース管理(OSDファイル・システム)98、コマンド実行100およびエラー管理102のためのファームウエアを含む。アプリケーション・インタフェース104は、接続されたブロック転送106、ディスクのみ転送108、ホストのみ操作110およびキャッシュおよび形状要求112を実施するためのファームウエアを含む。標準ファームウエア114は、トラック・フォーマット、ゾーン、欠陥および現在のトラック位置116を決定し、この情報を物理的ディスク・レイアウト・マネージャ118に与える。
OSD層は、OSDコマンドを解析および実行するファームウエアを含む。実行される各OSDコマンドは、典型的には、複数の工程に分割される。すなわち、構文解析、メタデータ・フェッチ、オブジェクト・データ位置計算、標準ファームウエア・ブロック・コマンド構築およびOSD APIを介してなされる転送要求に分割される。APIは、4つの一般的な関数、すなわち、接続された転送、ディスクのみ転送、ホストのみ転送およびキャッシュおよび形状要求を実現するように構築される。接続された転送は、ディスクとの間で、あるいは、ホスト・インタフェースとの間でデータを転送するために用いられる。ディスクのみ転送は、ホスト・インタフェースとの間の転送を含まないディスク読出しおよび書込みを表す。ホストのみ転送は、ホスト・インタフェースとの間でデータ転送するために用いられる。キャッシュおよび形状要求(geometry request)は、進行中のOSDコマンドのためのバッファ・メモリを確保し、与えられたゾーンでのトラック当たりのセクタ数など記録の物理的形状に関する特別なサービスを要求するために使用される。形状要求は、この説明で述べた操作を実施するために使用される。
図4および5に示した関数は、ディスク・ドライブ・コントローラ中にファームウエアとして実現することができる。典型的には、1つのOSDコマンドが複数のブロック・コマンド要求を発生し、それらが定常的なブロック要求の流れとしてディスク・ドライブ・ソート・アルゴリズムに与えられる。これは、一般的なファイル・システム演算の実行時に普通に行われることである。例えば、標準的な工業用ファイル・システムで、ファイル読出し要求は、ファイル・パスの名前の付いた構文解析、ファイル・データの物理的場所を決めるためのファイルに関連するメタデータのフェッチ、ファイル・データのフェッチおよび最後にメタデータの日付、発行情報等の更新を含む。OSDファイル・システム・アーキテクチャも同様である。違いは、ファイル・システムがブロック・ストレージ・デバイスによって管理されることであり、従って、ファイル・システムの下位レベルでの操作は、クライアントのコンピュータ・システムから見えない。
ここで説明するように、オブジェクトは、ユーザ・データ、システム属性およびユーザ定義による属性の独立したユニークな集合体であり、一意的なラベルで識別され、そのデータは、バイト単位(グラニュラリティ)で任意にアクセスすることができる。それは、ファイルと類似しているが、オブジェクトは、ファイルと違って属性をファイル・データに結合させる。各オブジェクトは、メタデータとユーザ・データとを含む。OSD層は、メディア82上のファイル・システム・メタデータとユーザ・データとのレイアウトを決定する。メタデータ・ブロックは、ユーザ・データ・ブロックの身元(アイデンティティ)、属性および場所を記録するために使用され、ユーザ・オブジェクトをユーザ・データ・フラグメントに関連付ける。
ここで使用されるフラグメントとは、同じファイルやオブジェクトの一部である他のユーザ・データに連続する形で記録されていないユーザ・データの一部である。もし一連のファイル・データが記録空間に散乱すれば、ファイルは、フラグメント化する。フラグメント化したファイルは、フラグメント化していないファイルと比較した場合、一般に読出し/書込み動作で劣る。フラグメントの位置を選択するために、OSDコマンドをサポートするファームウエア層が既存のインタフェース・ファームウエア・モジュールの上に追加される。
OSD層は、OSDコマンド要求を満たすメディア・ブロックの選択を担当する。しかし、OSD層は、前のフラグメントの最終ブロックの位置が与えられたとき、どのブロックがシーク時間を最小化するか正確には知らない。このことが図6に示されている。図6は、1から13まで番号を振ったオブジェクト・フラグメントを含む簡略化されたディスク・メディア・ウエッジ・レイアウト120の模式図である。このメディアは、矢印122で示した方向に回転する。各ブロックは、順に番号を振ってあり、ブロックは、順番にアクセスされる。点線は、OSDシステムによって以前に確保されたオブジェクト・フラグメントを表す。以前に確保されたブロックは、この、あるいは、別のオブジェクトが使用しているデータ・ブロックである。これらのブロックは、前に割当てられたものであり、フリーではないので、新しいデータ範囲に割当てることはできない。確保されたブロックは、0、1および2である。
新しい書込みコマンドに対して別のウエッジが必要であるが、真に連続した次の最良のブロックが別のオブジェクト用として確保されているため利用できないと仮定する。図7は、2つのオブジェクト・フラグメントが確保されているディスク・ブロック・レイアウト124の模式図である。ディスクは、矢印126で示された方向に回転する。図7の例で、第2のオブジェクトがブロック3および4を確保している。問題のオブジェクトは、それ自身のためにデータ・ブロックの割当てを現在要求しているオブジェクトである。問題のオブジェクトが付加的なブロックを必要とし、次に続くブロックが利用できないため、次の最良の利用可能なブロックをこのオブジェクトのために確保する必要がある。
一般に、実際の物理的レイアウトが明確に知られていないため、ブロック5が最も近接しているように見える。しかし実際には、ブロック5まで回転するよりもトラックを切り替えるほうが速くできるため、ブロック10がブロック5よりもブロック2の末尾に近い。ブロック9は、コマンド・セットアップ・オーバーヘッドがディスク・ハードウエアを時間内にセットアップするのに時間を取りすぎるため近いとは、言いがたい。
従来の装置では、ファイル・システムは、物理的レイアウトを知らないため実際に最良の候補を確信をもって決定することができない。本発明は、一連の逐次的ブロックを入力として与えられた場合に、最良のシーク時間を決定するために典型的な位相差計算を逆に実行するように物理的レイアウト・マネージャに要求することによってこの問題を解決する。
ディスク・ドライブは、物理的記録ゾーンの集合を把握しており、それらは、1つのトラック中の物理ブロック数が互いに異なっており、転送されるビットの周波数が異なっている。目標のゾーンは、未割当てのブロックに対して現在の要求に合致する十分なブロックが存在するとOSDが決定したゾーンである。OSD層は、目標ゾーン中の平均ブロック数に要求の中で必要とされるブロック数を加えた値に基づいて一連のブロック候補を提供する。本質的に、物理的レイアウト・マネージャには、戦闘のシーク・ブロック位置、先頭の候補となるブロック位置および候補となるブロックに続く考慮すべきブロック数が与えられる。OSDファイル・システムは、すべてのブロックの記録を保持し、それには、物理的位置と、それがオブジェクトに割当てられているかどうかが含まれる。与えられるブロック数は、OSD要求によって必要とされる実際のブロック数よりも少なくとも1トラックだけ多い。
OSD層は、メディア・フォーマットの物理的特性に関与しない。ブロックがフォーマットの間に再割当てされたかスリップされたかを知らない。更に、トラック末端へのブロックの向きやブロックのアドレスの別のブロックとの位相差関係も分からない。そのため、OSDは、メディア・フォーマットのこれらの物理的特性を知っているファームウエアに対して一連のブロック候補を提供する。この情報を得ることによって、メディアを知っているファームウエアは、どこであっても最適な先頭ブロックを見出すことができる。これは、1つのトラック全体のどこであっても、そこから先頭ブロックを選ぶのに十分なブロックが与えられるためである。ファームウエアは、先頭位相の知識に基づいて最良の末尾位相を計算するように、回転待ち時間およびシーク待ち時間の両方を最適化することができる。物理的レイアウト・マネージャは、先頭シーク・ブロックから最も近いブロックを検索し、それをOSD層に戻す。この情報から、OSD層は、最良の候補となる先頭ブロックを提供され、それによってフラグメントを確保できる。他方、必要とされるブロック数のみがメディアを知っているファームウエアに対して提供された場合、解は、制約される。それは、メディアを知っているファームウエアもどのブロックが使用中でどのブロックがフリーであるかまでは、知らないためである。更に、もしOSDがそれ自身で先頭ブロックを選択しても、選ばれたブロックが最適な動作性能を示すかどうかは、見当が付かない。
図8は、ほぼ連続的なオブジェクト・フラグメントを備えるOSDディスク・レイアウト128の模式図である。ディスクは、矢印130で示された方向に回転する。図8は、既存のオブジェクトが論理的オブジェクトの末端にブロックを追加する必要がある場合を示している。この場合、割当てを必要とするオブジェクトは、既にブロック0−2を所有している。理想的には、ブロック3−4が0−2に連続しているのでこれらを割当てるべきであろう。しかし、別のオブジェクトが既にブロック3−4を要求している。アルゴリズムは、最良の候補としてブロック10−11を戻す。それは、それらが初期のオブジェクト・フラグメントの末尾の位相ブロック2の最後との間で最小の位相差を有するためである。ブロック9は、選ばれない。これは、ブロック転送をセットアップするコマンド・オーバーヘッドが大きすぎて、ディスクの追加的回転を引き起こすことなしにこのブロックにアクセスできないためである。
位相計算は、次のようにしてシーク時間(Seek Time)を決める。シーク時間(MINIMUM)=現在の位置+リストのなかの最良候補の先頭ブロック。ここで、リストは、多数のブロックを含んでおり、その中から1つを選択できるようになっている。
これは、本質的に既存のシステムによって次の最良のコマンドを決定する方法であり、その他は、同じである。OSDシステムは、コマンドに対してこれらの計算を使用せず、1つのコマンドに関する一連の候補ブロックに対して使用する。従って、このオブジェクトから今後要求があった場合、ほぼ連続したアクセスに予め決定論的にソートされていることが保証される。この方法は、逐次的アクセスの静的ソートを実現する。フラグメント化されたオブジェクトの割当てが逐次的な形で最適化されてしまえば、コマンド・ソート・ファームウエアは、要求を動的にソートする必要がなくなる。もしこれによって性能上の特長が得られるのであれば、コマンドは、本質的に先に実行された静的ソートによって予めソートされていることになる。
OSD装置に特化した本方法は、それが決定論的である点で以前の方法と異なる。以前の方法は、ストレージ・デバイス・ホストに依存して好適な順序でコマンドを送信し、すべての要求が互いに関連してメリットを得ることを保証する。これは、理論上のことであって、同じ装置に複数のホストがアクセスする場合や、ホストのファイル・システムが実行中の複数の関連しないアプリケーションを実行している場合には、疑わしい。
ここにOSDの決定方法が登場する。それは、これがホストによって要求されるか書き込まれた複数のデータ・ブロックが互いに関連しているかどうかを確信して知ることができ、従って、書込みおよび読出しの動作性能を決定論的に最大化できる方法によってディスク上でデータ・ブロックを割当てられる唯一の方法である。
OSD方法は、最終的にシーク時間に影響するすべての因子を計算し、最小のシーク時間をもたらす最良のトラック/セクタを選び、それらのセクタにデータを書き込む。そのような因子には、ブロック・コマンド・オーバーヘッド、前のフラグメントから連続する最後のブロックからの位相差の最小化、再割当てされたセクタ、スリップされたセクタ、トラック交差、ゾーン交差、1つのトラック当たりのブロック数およびトラック歪みが含まれる。OSD方法は、書込み割当てのためにブロックを選択する前に以前に書き込まれたオブジェクトのフラグメントの末尾がどこに位置するかを知っているため割当てに関して有利である。この情報は、非OSDのインタフェースには、存在しない。
OSD方法は、任意のブロック長での書込み操作をサポートする。OSD方式では、書込み要求が関連性を有するかどうかを同じオブジェクトの一部となることで知ることができるため、最適化が決定論的となる。OSD方式は、どのブロックが関連しており、どういう順序でブロックを読み出せば逐次的アクセスを実現するかを知っている。
OSD方式は、ブロック・ビット・マップによって記述されるように、次の利用可能なブロックが最も近いブロックであると仮定しない割当て方法を利用する。更に、それは、汎用的な命名規則を採用し、それは、何台のホストがアクセスをしようとしているかに関わらず完全に一義的である。
本発明は、いくつかの実施の形態に関して説明してきたが、当業者には、明らかなように、以下の特許請求の範囲に提示された本発明の範囲から外れることなく、提示された実施例に対して各種の変更をなし得る。
本発明に従って構築できるディスク・ドライブの機械的部分の模式的図。 本発明に従って構築できるディスク・ドライブを含むシステムのブロック図。 オブジェクト・ベースのストレージ・システムのブロック図。 ディスク・ドライブ・コントローラのファームウエアの一部分のブロック図。 ディスク・ドライブ・コントローラのファームウエアの一部分のブロック図。 ディスク記録メディアの模式図。 ディスク記録メディアの模式図。 ディスク記録メディアの模式図。
符号の説明
10 ディスク・ドライブ
12 容器
14 スピンドル・モータ
16 記録メディア
18 アーム
20 第1の端部
22 ヘッド
24 第2の端部
26 ベアリング
27 トラック
28 ボイス・コイル・モータ
30 オブジェクト・ベースのストレージ・システム
32 ディスク・ドライブ制御回路
34 ホスト・コンピュータ
36 ディスク・ドライブ制御プロセッサ
38 DRAM
40 不揮発性フラッシュ・メモリ
42 インタフェース回路
44 R/Wチャネル
46 プリアンプ/ドライバ回路
48 スピンドル回路
50 ディスク
52 スピンドル・モータ
54 サーボ回路
56 記録ヘッド
58 コイル
60 オブジェクト・ベースのストレージ・システム
62 OSDディスク・ドライブ
64 ホスト・コンピュータ
66 アプリケーション
68 システム・コール・インタフェース
70 ファイル・システム・ユーザ・コンポネント
72 オブジェクト・インタフェース
74 ファイル・システム・ストレージ・コンポネント
76 ブロックI/Oマネージャ
78 記録メディア
80 ファームウエア・アプリケーション・プログラム・インタフェース(API)
82 フリー・ブロックのリスト
84 OSDファイル・システム
86 物理的ディスク・レイアウト・マネージャ
88 トラック・フォーマット、ゾーン、欠陥、現在のトラック位置
90 OSDファームウエア層
92 OSDコマンド構文解析
94 能力チェック(パーミッション/セキュリティ)
96 OSDメタデータ・フェッチ
98 OSDスペース管理(OSDファイル・システム)
100 OSDコマンド実行
102 OSDエラー管理
104 アプリケーション・インタフェース
106 接続されたブロック転送
108 ディスクのみ転送(メタデータ操作)
110 ホストのみ操作(ステータス、属性)
112 キャッシュ要求および形状要求
114 標準ファームウエア
116 トラック・フォーマット、ゾーン、欠陥、現在のトラック位置
118 物理的ディスク・レイアウト・マネージャ
120 簡略化ディスク・メディア・ウエッジ・レイアウト
122 矢印
124 ディスク・ブロック・レイアウト
126 矢印
128 OSDディスク・レイアウト
130 矢印

Claims (17)

  1. 記録メディアと、
    記録ヘッドを記録メディアに隣接して位置決めするためのアームと、
    オブジェクトを受信し、オブジェクトの情報に基づいて、記録ヘッドが書き込むべき記録メディア上のブロックを選択するためのコントローラと、
    を含み、前記コントローラは、
    オブジェクト・ベースのファイル・マネージャと、
    物理的レイアウト・マネージャと、
    を含む装置。
  2. 請求項記載の装置であって、オブジェクト・ベースのファイル・マネージャおよび物理的レイアウト・マネージャがファームウエアとして実現される前記装置。
  3. 請求項記載の装置であって、オブジェクト・ベースのファイル・マネージャがオブジェクトに関する候補の先頭ブロックを指定する前記装置。
  4. 請求項1記載の装置を用いたデータ・ストレージ・デバイスであって、前記メディアが回転可能なデータ記録ディスクを含んでおり、前記ブロックがデータ記録ディスクの表面に定義されたトラック上に配置されている前記データ・ストレージ・デバイス。
  5. 請求項1記載の装置を用いたデータ・ストレージ・デバイスであって、前記オブジェクトが一連の逐次的データ・ブロックを含んでいる前記データ・ストレージ・デバイス。
  6. 請求項1記載の装置を用いたデータ・ストレージ・デバイスであって、前記オブジェクトがユーザ・データおよびメタデータを含んでいる前記データ・ストレージ・デバイス。
  7. 記録メディアと、
    記録ヘッドを記録メディアに隣接して位置決めするためのアームと、
    オブジェクトを受信し、オブジェクトの情報に基づいて、記録ヘッドが書き込むべき記録メディア上のブロックを選択するためのコントローラと、
    を含み、前記コントローラは、オブジェクト生成および追加書込み操作の間にオブジェクト・フラグメントの位置を選択し、記録メディアの物理的レイアウト特性を利用してフラグメント間のシーク時間を最小化する、装置
  8. 記録メディアと、
    記録ヘッドを記録メディアに隣接して位置決めするためのアームと、
    オブジェクトを受信し、オブジェクトの情報に基づいて、記録ヘッドが書き込むべき記録メディア上のブロックを選択するためのコントローラと、
    を含み、前記コントローラは、前のフラグメントの最後のブロックと次のフラグメントの最初のブロックとの間の合計位相差を用いて、オブジェクト・フラグメントの位置を選択する、装置
  9. データ・ストレージ・デバイスにデータを書き込む方法であって、
    オブジェクトに対するアクセス・コマンドを受信する工程と、
    オブジェクトの情報に基づいて記録ヘッドが書き込むべき記録メディア上のブロックを選択する工程と、
    オブジェクトから選ばれたブロックにデータを書き込む工程と、
    を含む方法であって、
    ブロックを選択する前記工程は、オブジェクトに関する候補となる先頭ブロック位置と前記候補となるブロック位置に続く複数のブロックとを指定する工程を含み、
    候補となるブロック位置に続くブロックの数がオブジェクトが実際に必要とするブロック数よりも多い、ことを特徴とする前記方法。
  10. 請求項記載の方法であって、データ・オブジェクトが一連の逐次的データ・ブロックを含んでいる前記方法。
  11. 請求項記載の方法であって、オブジェクトがユーザ・データとメタデータとを含んでいる前記方法。
  12. データ・ストレージ・デバイスにデータを書き込む方法であって、
    オブジェクトに対するアクセス・コマンドを受信する工程と、
    オブジェクトの情報に基づいて記録ヘッドが書き込むべき記録メディア上のブロックを選択する工程と、
    オブジェクトからのデータを選択されたブロックに書き込む工程と、
    を含む方法であって、ブロックを選択する前記工程は、記録メディアの物理的レイアウト特性を利用して、フラグメント間のシーク時間を最小化するために、オブジェクトの生成および追加書込み操作の間にオブジェクト・フラグメントの位置を選択する工程を含んでいる前記方法。
  13. 請求項12記載の方法であって、物理的レイアウト特性は、
    ブロック・コマンド・オーバーヘッド、位相差、再割当てされたセクタ、スリップされたセクタ、トラック交差、ゾーン交差、トラック当たりのブロック数およびトラック歪みのうちの1又は複数の項目を含んでいる前記方法。
  14. 請求項12記載の方法であって、オブジェクト・フラグメントの位置は、前のフラグメントの最後のブロックと次のフラグメントの先頭ブロックとの間の合計位相差を用いて選択される前記方法。
  15. 請求項12記載の方法であって、1つのオブジェクトが複数のブロック要求を発生する前記方法。
  16. 請求項12記載の方法であって、更に、
    トラック当たりの物理ブロック数が互いに異なり、転送されるビットの周波数が異なる物理的記録ゾーンの集合を維持する工程、
    を含む前記方法。
  17. データ・ストレージ・デバイスにデータを書き込む方法であって、
    オブジェクトに対するアクセス・コマンドを受信する工程と、
    オブジェクトの情報に基づいて記録ヘッドが書き込むべき記録メディア上のブロックを選択する工程と、
    オブジェクトからのデータを選択されたブロックに書き込む工程と、
    オブジェクトに関する要求を決定論的に予めソートする工程
    を含む前記方法。
JP2006167290A 2005-06-16 2006-06-16 ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置 Expired - Fee Related JP4283288B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/154,307 US7590799B2 (en) 2005-06-16 2005-06-16 OSD deterministic object fragmentation optimization in a disc drive

Publications (2)

Publication Number Publication Date
JP2006351175A JP2006351175A (ja) 2006-12-28
JP4283288B2 true JP4283288B2 (ja) 2009-06-24

Family

ID=37574709

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006167290A Expired - Fee Related JP4283288B2 (ja) 2005-06-16 2006-06-16 ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置

Country Status (2)

Country Link
US (1) US7590799B2 (ja)
JP (1) JP4283288B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947800B2 (en) 2021-10-27 2024-04-02 Red Hat, Inc. Determining weights for cache storage of fragmented data

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9002795B2 (en) * 2006-01-26 2015-04-07 Seagate Technology Llc Object-based data storage device
KR100883651B1 (ko) 2006-05-18 2009-02-18 삼성전자주식회사 파일을 저장할 디스크의 공간을 할당하는 방법 및 장치
US20080313364A1 (en) 2006-12-06 2008-12-18 David Flynn Apparatus, system, and method for remote direct memory access to a solid-state storage device
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
WO2009079478A1 (en) * 2007-12-14 2009-06-25 Virident Systems, Inc. Distributing metadata across multiple different disruption regions within an asymmetric memory system
US20090172048A1 (en) * 2007-12-31 2009-07-02 Intel Corporation Memory storage of file fragments
JP2009163516A (ja) * 2008-01-07 2009-07-23 Hitachi Ltd 情報記録再生装置及びその制御方法、並びにプログラム
US20100217977A1 (en) * 2009-02-23 2010-08-26 William Preston Goodwill Systems and methods of security for an object based storage device
US10089023B2 (en) * 2015-06-23 2018-10-02 Western Digital Technologies, Inc. Data management for object based storage
US10802853B2 (en) 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
US10930310B1 (en) * 2020-02-04 2021-02-23 Western Digital Technologies, Inc. Data storage device sorting access commands based on peak current for multiple actuators

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2718708B2 (ja) 1988-08-26 1998-02-25 株式会社日立製作所 記憶制御システムの制御方法および記憶制御システムならびに記憶制御装置
US5345575A (en) 1991-09-26 1994-09-06 Hewlett-Packard Company Write optimized disk storage device
US5708793A (en) 1995-03-31 1998-01-13 International Business Machines Corporation Method and apparatus using address and read head location information to provide optimal operation of a disk system
TW332284B (en) 1995-10-30 1998-05-21 Sony Co Ltd Method and apparatus for controlling access to a recording disk
US6298401B1 (en) 1997-08-11 2001-10-02 Seagate Technology Llc Object oriented storage device having a disc drive controller providing an interface exposing methods which are invoked to access objects stored in a storage media
WO1999010893A2 (en) 1997-08-28 1999-03-04 Seagate Technology, Inc. Object reconstruction on object oriented data storage device
CA2289958C (en) 1998-11-19 2003-01-21 Tomoyuki Okada Information recording medium, apparatus and method for recording or reproducing data thereof
US6636941B1 (en) 2000-01-18 2003-10-21 International Business Machines Corporation Enhanced stable disk storage
US6754036B2 (en) 2001-01-29 2004-06-22 Seagate Technology Llc Automated tuning of disc drive seek profile
EP1433086A4 (en) 2001-09-26 2006-07-26 Emc Corp EFFICIENT MANAGEMENT OF LARGE SIZE FILES
US7124152B2 (en) 2001-10-31 2006-10-17 Seagate Technology Llc Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
US7882081B2 (en) * 2002-08-30 2011-02-01 Netapp, Inc. Optimized disk repository for the storage and retrieval of mostly sequential data
US7185020B2 (en) 2003-10-01 2007-02-27 Hewlett-Packard Development Company, L.P. Generating one or more block addresses based on an identifier of a hierarchical data structure

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11947800B2 (en) 2021-10-27 2024-04-02 Red Hat, Inc. Determining weights for cache storage of fragmented data

Also Published As

Publication number Publication date
JP2006351175A (ja) 2006-12-28
US20060288156A1 (en) 2006-12-21
US7590799B2 (en) 2009-09-15

Similar Documents

Publication Publication Date Title
JP4283288B2 (ja) ディスク・ドライブにおけるosd決定論的オブジェクト・フラグメンテーション最適化の方法および装置
US7826161B2 (en) Object based storage device with storage medium having varying media characteristics
US7783828B1 (en) File system write to storage without specifying location reference
US8756382B1 (en) Method for file based shingled data storage utilizing multiple media types
US7472219B2 (en) Data-storage apparatus, data-storage method and recording/reproducing system
US20010047451A1 (en) Method and apparatus for disc drive defragmentation
US7373477B2 (en) Fragmentation executing method and storage device
EP0165382A2 (en) Data processing system including a data storage unit and its method of operation
US10152236B2 (en) Hybrid data storage device with partitioned local memory
US8607021B2 (en) Method and data storage system for providing multiple partition support
US6925539B2 (en) Data transfer performance through resource allocation
KR20050118731A (ko) 유니버셜 드라이브장치용 포맷 매핑 방식
KR20100137768A (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
JP2012234609A (ja) データ格納方法及びハイブリッドデータストレージ機器
US6693754B2 (en) Method and apparatus for a disc drive adaptive file system
US20060294315A1 (en) Object-based pre-fetching Mechanism for disc drives
JP4106702B2 (ja) 情報処理装置、データ記録再生方法、データ記録再生方法のプログラム及びデータ記録再生方法のプログラムを記録した記録媒体
KR20070060301A (ko) 불휘발성 메모리를 쓰기 캐시로 구비한 하드 디스크드라이버
JP4470471B2 (ja) 記録再生装置及び方法、並びに記録再生システム
KR101072730B1 (ko) 기록 재생 장치 및 기록 방법
US20030200386A1 (en) Data retention prioritization for a data storage device
JP4301026B2 (ja) データ記録装置及びデータ記録方法、並びに記録再生システム
US20170242792A1 (en) Storage device that carries out a read cache operation
JP2006313514A (ja) 複合型記憶装置、アクセス方法及びプログラム
JP2008117491A (ja) 記録装置、記録方法、およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080627

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

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: 20090220

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: 20090318

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120327

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130327

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140327

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees