JP6215631B2 - コンピュータシステム及びそのデータ管理方法 - Google Patents

コンピュータシステム及びそのデータ管理方法 Download PDF

Info

Publication number
JP6215631B2
JP6215631B2 JP2013202243A JP2013202243A JP6215631B2 JP 6215631 B2 JP6215631 B2 JP 6215631B2 JP 2013202243 A JP2013202243 A JP 2013202243A JP 2013202243 A JP2013202243 A JP 2013202243A JP 6215631 B2 JP6215631 B2 JP 6215631B2
Authority
JP
Japan
Prior art keywords
node
data
segment
area
computer system
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.)
Active
Application number
JP2013202243A
Other languages
English (en)
Other versions
JP2014071906A5 (ja
JP2014071906A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014071906A publication Critical patent/JP2014071906A/ja
Publication of JP2014071906A5 publication Critical patent/JP2014071906A5/ja
Application granted granted Critical
Publication of JP6215631B2 publication Critical patent/JP6215631B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本出願は、2012年9月28日に韓国特許庁に出願した韓国特許出願第10−2012−0109177号に対し、優先権を主張し、その内容のすべては参照によって本明細書に含まれる。
本発明は、コンピュータシステム及びそのデータ管理方法に係り、より詳細にはログ構造化ファイルシステム(log structured filesystem)を利用したコンピュータシステム及びそのデータ管理方法に関する。
ログ構造化ファイルシステムは、ハードディスクドライブ(Hard Disk Drive)を使用するサーバストレージシステムから提案された。ハードディスクドライブは回転モータを使用するため、ハードディスクドライブの動作はシークレイテンシ(seek latency)とローテーションレイテンシ(rotational latency)を有する。したがって、ログ構造化ファイルシステムはディスク全体を一つのログとして構成し、シーケンシャル書込み(sequential write)動作のみを行う。すなわち、ログ構造化ファイルシステムは、ファイルを修正する際、本来の位置のデータを修正せず、ログの最後の部分に修正したデータを付加する。
韓国特許出願公開2007−0096429号
一方、ログ構造化ファイルシステムは修正したデータと関連する多くのメタデータも修正しなければならない。すなわち、付加的な書き込み動作が必要である。これを「wandering tree」問題という。
本発明が解決しようとする課題は、ワンダリングツリー(wandering tree)問題を最小化したコンピュータシステムのデータ管理方法を提供することにある。
本発明が解決しようとする他の課題は、ワンダリングツリー問題を最小化したコンピュータシステムを提供することにある。
本発明が解決しようとする他の課題は、ワンダリングツリー問題を最小化したストレージ装置を提供することにある。
本発明が解決しようとする課題は、上述の課題に制限されず、上述されていないまた他の課題は次の記載から当業者が明確に理解できるであろう。
前記課題を解決するための本発明のコンピュータシステムのデータ管理方法の一実施形態は、ストレージ装置を第1領域と第2領域とに分けて、前記第2領域に多数のデータと、前記多数のデータと関連する多数のノード(node)とを格納し、前記第1領域にノードアドレステーブル(node address table)を格納し、前記ノードアドレステーブルは前記多数のノード各々に対応する多数のノード識別子と、前記多数のノード識別子各々に対応する多数の物理アドレスとを含む。
前記第2領域での書き込み動作は順次アクセス(sequential access)方式を利用して行い、前記第1領域での書き込み動作はランダムアクセス(random access)方式を利用して行ってもよい。
前記第1領域は前記ストレージ装置の前部に格納され、前記第2領域は前記ストレージ装置の後部に格納され得る。
前記ストレージ装置はSSD(Static Solid Disk)を含み得る。
前記第2領域は互いに分離されたデータセグメント(data segment)とノードセグメント(node segment)とを含み、前記多数のデータは前記データセグメントに格納され、前記多数のノードは前記ノードセグメントに格納され得る。
前記第2領域は多数のセグメントを含み、各セグメントには多数のページが格納され、前記方法は前記第1領域にセグメント情報テーブル(segment information table)を格納することをさらに含み、前記セグメント情報テーブルは前記各セグメントの有効なページの数と、前記多数のページのビットマップとを含み得る。
前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、前記方法は前記第1領域にセグメント要約領域(segment summary area)を格納することをさらに含み、前記セグメント要約領域は前記各セグメントの前記多数のブロックが属するノードに関する情報を含み得る。
前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、前記各セグメントの少なくとも一つのブロックにセグメント要約情報を格納し、前記セグメント要約情報は前記各セグメントの前記多数のブロックが属するノードに関する情報を含み得る。
前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、前記各ブロックはOOB(Out Of Band)領域を含み、前記各ブロックの前記OOB領域にセグメント要約情報を格納し、前記セグメント要約情報は前記各ブロックが属するノードに関する情報を含み得る。
前記多数のデータは一つのファイルに対応し、前記多数のノードはiノード(inode)、ダイレクトノード(direct node)、インダイレクトノード(indirect node)を含み得る。
前記ノードアドレステーブルは前記iノードのノード識別子、前記ダイレクトノードのノード識別子及び前記インダイレクトノードのノード識別子を格納し得る。
前記多数のデータのうち第1データは、第1物理アドレスに対応する第1ブロック内に格納され、前記第1データを指示する前記第1ダイレクトノードは、第2物理アドレスに対応する第2ブロック内に格納され、前記ノードアドレステーブル内で、前記第1ダイレクトノードは前記第2物理アドレスに対応し得る。
前記第1データを修正して第2データを生成し、前記第2データを前記第1物理アドレスと異なる第3物理アドレスに対応する第3ブロック内に格納し、前記第1ダイレクトノードが前記第2データを指示するように修正し、前記第2物理アドレスと異なる第4物理アドレスに対応する第4ブロック内に格納することをさらに含み、前記ノードアドレステーブル内で、前記第1ダイレクトノードは、前記第2物理アドレスを上書きする(overwrite)、前記第4物理アドレスに対応し得る。
前記課題を解決するための本発明のコンピュータシステムの一実施形態は、ノードアドレステーブルを格納する第1領域と、多数のデータと、前記多数のデータと関連する多数のノードとを格納する第2領域を含むストレージ装置を含み、前記ノードアドレステーブルは前記ノード各々に対応する多数のノード識別子と、前記多数のノード識別子各々に対応する多数の物理アドレスとを含むホスト装置を含む。
前記第1領域は前記ストレージ装置の前部に位置し、前記第2領域は前記ストレージ装置の後部に位置し得る。
前記第2領域での書き込み動作は順次アクセス方式を利用して行い、前記第1領域での書き込み動作はランダムアクセス方式を利用して行ってもよい。
前記第2領域は多数のセグメントを含み、各セグメントには多数のページが格納され、前記第1領域はセグメント情報テーブルを格納し、前記セグメント情報テーブルは前記各セグメントの有効なページの数と、前記多数のページのビットマップとを含み得る。
前記課題を解決するための本発明のコンピュータシステムの他の実施形態は、ストレージ領域を含むストレージ装置と、前記ストレージ装置にデータを書き込みすることをコントロールするホストとを含み、前記ホストは前記ストレージ領域を第1領域と第2領域とに区分するファイルシステムを含み、前記第2領域は多数のデータと、前記多数のデータと関連する多数のノードとを順次アクセス方式を利用して格納し、前記第1領域はノードアドレステーブルを格納し、前記ノードアドレステーブルは前記ノード各々に対応する多数のノード識別子と、前記多数のノード識別子各々に対応する多数の物理アドレスとを含み、ノード識別子に対応する物理アドレスは前記ノード識別子に対応するノードの新しい位置を指示するように更新され得る。
前記多数のデータのうち第1データは第1物理アドレスに対応する前記第2領域の第1ブロック内に格納され、前記第1データを指示する第1ダイレクトノードは第2物理アドレスに対応する前記第2領域の第2ブロック内に格納され、前記ノードアドレステーブルは前記第1ダイレクトノードに対応するノード識別子及び前記ノード識別子に対応する前記第2物理アドレスを含み得る。
前記第1データを修正して第2データを生成し、前記第2データを前記第1物理アドレスと異なる第3物理アドレスに対応する第3ブロック内に格納し、前記第1ダイレクトノードが前記第2データを指示するように修正し、前記第2物理アドレスと異なる第4物理アドレスに対応する第4ブロック内に格納することをさらに含み、前記ノードアドレステーブルは、前記第2物理アドレスを上書きする、前記ノード識別子に対応する前記第4物理アドレスを含むように更新され得る。
本発明のその他具体的な内容は詳細な説明及び図面に含まれている。
本発明の一実施形態によるコンピュータシステムを説明するためのブロック図。 図1のホストを説明するためのブロック図。 図1のストレージ装置を説明するためのブロック図。 図1のストレージ装置に格納されるファイルの構造を説明するための図。 図1のストレージ装置を説明するためのブロック図。 ノードアドレステーブルを説明するための図。 本発明の一実施形態によるコンピュータシステムのデータ管理方法を説明するための概念図。 本発明の一実施形態によるコンピュータシステムのデータ管理方法を説明するための概念図。 本発明の他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図。 本発明のまた他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図。 本発明のまた他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。 本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図。
本発明の利点及び特徴、これらを達成する方法は添付する図面と共に詳細に後述する実施形態において明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、互いに異なる多様な形態で実現されるものであり、本実施形態は、単に本発明の開示を完全にし、本発明が属する技術分野で通常の知識を有する者に発明の範疇を完全に知らせるために提供されるものであり、本発明は、請求項の範囲によってのみ定義される。図面に表示する構成要素のサイズおよび相対的なサイズは説明を明瞭するため、誇張したものであり得る。明細書全体にかけて同一参照符号は同一構成要素を指称する。
一つの素子(elements)が他の素子と「接続された(connected to)」または「カップリングされた(coupled to)」と指称されるものは、他の素子と直接連結またはカップリングされた場合または中間に他の素子を介在する場合をすべて含む。反面、一つの素子が他の素子と「直接接続された(directly connected to)」または「直接カップリングされた(directly coupled to)」と指称されるものは中間に他の素子を介在しないことを示す。
例えば、何れか一つの構成要素が他の構成要素にデータまたは信号を「伝送または出力」する場合、前記構成要素は前記他の構成要素に直接前記データまたは信号を「伝送または出力」することができ、少なくとも一つまた他の構成要素を介して前記データまたは信号を前記他の構成要素に「伝送または出力」できることを意味する。
「および/または」は、言及されたアイテムの各々および一つ以上のすべての組合せを含む。
第1、第2などが多様な素子、構成要素を叙述するために使用されるが、これら素子、構成要素はこれらの用語によって制限されないことはいうまでもない。これらの用語は、単に一つ構成要素を他の構成要素と区別するために使用するものである。したがって、以下で言及される第1素子、第1構成要素または第1セクションは本発明の技術的思想内で第2素子、第2構成要または第2セクションであり得ることは勿論である。
本明細書で使用された用語は実施形態を説明するためであり、本発明を制限しようとするものではない。本明細書で、単数型は文句で特に言及しない限り複数型も含む。明細書で使用される「含む(comprises)」および/または「含む(comprising)」は言及された構成要素、段階、動作および/または素子は一つ以上の他の構成要素、段階、動作および/または素子の存在または追加を排除しない。
他に定義されなければ、本明細書で使用されるすべての用語(技術及び科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者に共通に理解できる意味で使用される。また一般的に使用される辞書に定義されている用語は特別に定義して明らかにしない限り理想的にまたは過度に解釈されない。
図1は、本発明の一実施形態によるコンピュータシステムを説明するためのブロック図である。図2は、図1のホストを説明するためのブロック図である。図3及び図5は、図1のストレージ装置を説明するためのブロック図である。図4は、図1のストレージ装置に格納されるファイルの構造を説明するための図である。図6は、ノードアドレステーブルを説明するための図である。
まず、図1を参照すると、本発明の一実施形態によるコンピュータシステム1はホスト10とストレージ装置20とを含む。
ホスト10とストレージ装置20とは特定のプロトコルを利用して通信する。例えば、USB(Universal Serial Bus)プロトコル、MMC(multimedia card)プロトコル、PCI(peripheral component interconnection)プロトコル、PCI−E(PCI−express)プロトコル、ATA(Advanced Technology Attachment)プロトコル、Serial−ATAプロトコル、Parallel−ATAプロトコル、SCSI (small computer small interface)プロトコル、ESDI(enhanced small disk interface)プロトコル、及びIDE(Integrated Drive Electronics)プロトコルなどのような多様なインターフェースプロトコルのうち少なくとも一つにより通信できるが、これに限定されるものではない。
ホスト10はストレージ装置20をコントロールする。例えば、ホスト10はストレージ装置20にデータを書き込んだり、ストレージ装置20からデータを読み込んだりすることができる。
図2を参照すると、このようなホスト10はユーザスペース(user space)11とカーネル空間(kernel space)13とを含む。
ユーザスペース11はユーザアプリケーション(user application)12が実行される領域であり、カーネル空間13はカーネル実行のための制限的な保障(restrictively reserved)領域である。ユーザスペース11からカーネル空間13にアクセスするため、システムコール(system call)を利用する。
カーネル空間13は仮想ファイルシステム14、ファイルシステム16、装置ドライバ18などを含み得る。ファイルシステム16は一つ以上のファイルシステム16を使用して具現される。例えば、ファイルシステム16はext2、ntfs、smbfs、procなどである。また、本発明の一実施形態によるコンピュータシステム1はF2FSファイルシステムを含み得る。F2FSファイルシステムについては図3ないし図11を参照して後述する。
仮想ファイルシステム14は一つ以上のファイルシステム16が相互動作できるようにする。互いに異なるメディアの互いに異なるファイルシステム16に対し、読み込み/書き込み作業をするため、標準化システムコールを使用できるようにする。例えば、open()、read()、write()のようなシステムコールは、ファイルシステム16の種類に関係なく使用できる。すなわち、仮想ファイルシステム14はユーザスペース11とファイルシステム16との間に存在する抽象化層である。
装置ドライバ18は、ハードウェアとユーザアプリケーション(またはオペレーティングシステム)との間のインターフェースを制御する。装置ドライバ18はハードウェアが特定のオペレーティングシステム下で正常に動作するために必要なプログラムである。
以下では、F2FSファイルシステムがストレージ装置20をどのように制御するかについて説明する。
ストレージ装置20は、SSD(Static Solid Disk)、HDD(Hard Disk Drive)、eMMCのような各種カードストレージ、データサーバなどであるが、これに限定されない。
ストレージ装置20は、例えば、図3に図示するように構成される。セグメント(SEGMENT)53は多数のブロック(BLK)51を含み、セクション(SECTION)55は多数のセグメント53を含み、ゾーン(ZONE)57は多数のセクション55を含む。例えば、ブロック51は4Kbyteであり、セグメント53は512個のブロック51を含み、2M byteであり得る。このような構成は、ストレージ装置20のフォーマット(format)時点で決定されるが、これに限定されない。セクション55とゾーン57のサイズはフォーマット時点で修正され得る。F2FSファイルシステムはすべてのデータを4Kbyteのページ単位で読み込み/書き込みすることができる。すなわち、ブロック51に一つのページが格納され、セグメント53に多数のページが格納され得る。
一方、ストレージ装置20に格納されるファイルは図4に図示するように、インデックス構造(indexing structure)を有する。一つのファイルは多数のデータと、多数のデータに関連する多数のノードを含む。データブロック70はデータを格納する部分であり、ノードブロック80,81〜88,91〜95はノードを格納する部分である。
ノードブロック80,81〜88,91〜95はダイレクトノードブロック(direct node block)81〜88、インダイレクトノードブロック(indirect node block)91〜95、iノードブロック(inode block)80を含む。
ダイレクトノードブロック81〜88はデータブロック70を直接指すデータポインタ(data pointer)を含む。
インダイレクトノードブロック91〜95はデータブロック70ではない、他のノードブロック83〜88(すなわち、下位のノードブロック)を指すポインタを含む。インダイレクトノードブロック91〜95は、例えば、第1インダイレクトノードブロック91〜94、第2インダイレクトノードブロック95などを含む。第1インダイレクトノードブロック91〜94はダイレクトノードブロック83〜88を指す第1ノードポインタを含む。第2インダイレクトノードブロック95は第1インダイレクトノードブロック93,94を指す第2ノードポインタを含む。
iノードブロック80はデータポインタ、ダイレクトノードブロック81,82を指す第1ノードポインタ、第1インダイレクトノードブロック91,92を指す第2ノードポインタ、第2インダイレクトノードブロック95を指す第3ノードポインタのうち少なくとも一つを含む。一つのファイルは、例えば、最大3Tbyteであり得、このような大容量のファイルは次のようなインデックス構造を有し得る。例えば、iノードブロック80内のデータポインタは994個であり、994個のデータポインタ各々は994個のデータブロック70各々を指す。第1ノードポインタは2個であり、2個の第1ノードポインタ各々は2個のダイレクトノードブロック81,82を指す。第2ノードポインタは2個であり、2個の第2ノードポインタ各々は2個の第1インダイレクトノードブロック91,92を指す。第3ノードポインタは1個であり、第2インダイレクトノードブロック95を指す。
また、ファイルごとにiノードメタデータを含むiノードページが存在する。
一方、図5のように、本発明の一実施形態によるコンピュータシステム1において、ストレージ装置20は第1領域Iと第2領域IIとに分けられる。ファイルシステム16はフォーマットする際、ストレージ装置20を第1領域Iと第2領域IIとに分けるが、これに限定されない。第1領域Iはシステム全体によって管理される各種情報が格納される空間であり、例えば、現在割当てられたファイル数、有効なページ数、位置などの情報を含む。第2領域IIは実際ユーザが使用している各種ディレクトリ情報、データ、ファイル情報などを格納する空間である。
また、第1領域Iはストレージ装置20の前部に格納され、第2領域IIはストレージ装置20の後部に格納される。ここで、前部とは後部より物理アドレス(physical address)を基準に前にあることを意味する。
具体的には、第1領域Iはスーパーブロック(super block)61,62、チェックポイント領域(CheckPoint area、CP)63、セグメント情報テーブル(Segment Information Table、SIT)64、ノードアドレステーブル(Node Address Table、NAT)65、セグメント要約領域(Segment Summary Area、SSA)66などを含む。
先ず、スーパーブロック61,62には、ファイルシステム16のデフォルト情報が格納される。例えば、ブロック51のサイズ、ブロック51の数、ファイルシステム16の状態フラグ(clean、stable、active、logging、unknown)などのような情報が格納される。図示するように、スーパーブロック61,62は2個であり得、各々には同一の内容が格納される。したがって、二つのスーパーブロック61,62のうち何れか一つに問題が発生しても、他の一つを利用することができる。
チェックポイント領域63はチェックポイントを格納する。チェックポイントは論理的なブレークポイントであって、このようなブレークポイントまでの状態が完全に保存される。コンピュータシステムの動作中にトラブル(例えば、シャットダウン(shutdown))が発生すると、ファイルシステム16は保存されているチェックポイントを利用してデータを復旧することができる。このようなチェックポイントは、例えば、マウント時(mount)、またはシステムシャットダウン時に生成するが、これに限定されない。
ノードアドレステーブル(NAT)65は図6に図示するように、ノード各々に対応する多数のノード識別子(NODE ID)と、多数のノード識別子各々に対応する多数の物理アドレスを含む。例えば、ノード識別子N0に対応するノードブロックは物理アドレスaに対応し、ノード識別子N1に対応するノードブロックは物理アドレスbに対応し、ノード識別子N2に対応するノードブロックは物理アドレスcに対応する。すべてのノード(iノード、ダイレクトノード、インダイレクトノードなど)は各々固有のノード識別子を有する。言い換えると、すべてのノード(iノード、ダイレクトノード、インダイレクトノードなど)はノードアドレステーブル65から固有のノード識別子を割り当てられる。ノードアドレステーブル65はiノードのノード識別子、ダイレクトノードのノード識別子及びインダイレクトノードのノード識別子などを格納する。各ノード識別子に対応する各物理アドレスはアップデートされる。
セグメント情報テーブル(SIT)64は、各セグメントの有効なページの数と、多数のページのビットマップを含む。ビットマップは各ページが有効であるかどうかを0または1と示すものを意味する。セグメント情報テーブル64はクリーニング(cleaning)作業(またはガーベジコレクション(garbage collection))で使用され得る。特にビットマップはクリーニング作業を行う際、不要の読み込み要請を減らすことができ、アダプティブデータロギング(adaptive data logging)際、ブロック割り当てるときに利用される。
セグメント要約領域(SSA)66は第2領域IIの各セグメントの要約情報を集めておいた領域である。具体的には、セグメント要約領域66は第2領域IIの各セグメントの多数のブロックが属するノードの情報を記述する。セグメント要約領域66はクリーニング作業(またはガーベジコレクション)で使用され得る。具体的に説明すると、ノードブロック(80,81〜88,91〜95)はデータブロック70または下位のノードブロック(例えば、ダイレクトノードブロックなど)の位置を確認するため、ノード識別子リストまたはアドレスを有している。これに対し、セグメント要約領域66はデータブロック70または下位のノードブロック(80,81〜88,91〜95)が上位のノードブロック(80,81〜88,91〜95)の位置を確認できるインデックスを提供する。セグメント要約領域66は多数のセグメント要約ブロックを含む。一つのセグメント要約ブロックは、第2領域IIに位置する一つのセグメントに対する情報を有している。また、セグメント要約ブロックは多数の要約情報で構成されており、一つの要約情報は一つのデータブロックまたは一つのノードブロックに対応する。
また、第2領域IIは互いに分離されたデータセグメント(DS0,DS1)とノードセグメント(NS0,NS1)を含む。多数のデータはデータセグメント(DS0,DS1)に格納され、多数のノードはノードセグメント(NS0,NS1)に格納される。データとノードが分離する領域が互いに異なると、効率的にセグメントを管理することができ、データを読み込みするとき、より効果的に短時間内に読み込みすることができる。
一方、第2領域IIでの書き込み動作は順次アクセス方式を利用して行い、第1領域Iでの書き込み動作はランダムアクセス方式を利用して行う。物理アドレスの観点から、第2領域IIはストレージ装置20の後部に格納され、第1領域Iはストレージ装置20の前部に格納される。
ストレージ装置20は、例えば、SSD(Static Solid Disk)である場合、SSD内部にバッファがある場合もある。バッファは例えば、読み込み/書き込み動作の速度が速いSLC(Single Layer Cell)メモリである。したがって、このようなバッファは限定された空間のランダムアクセス方式の書き込み速度を速くすることができる。
図面では、第1領域Iはスーパーブロック61,62、チェックポイント領域63、セグメント情報テーブル64、ノードアドレステーブル65、セグメント要約領域66の順序で図示しているが、これに限定されない。例えば、セグメント情報テーブル64とノードアドレステーブル65の位置が変わってもよく、ノードアドレステーブル65とセグメント要約領域66の位置が変わってもよい。
以下では、図7と図8を参照して本発明の一実施形態によるコンピュータシステムのデータ管理方法について説明する。図7と図8は、本発明の一実施形態によるコンピュータシステムのデータ管理方法を説明するための概念図である。
図7を参照すると、ファイルシステム16はストレージ装置を第1領域Iと第2領域IIとに分ける。前述したように、フォーマット時点で第1領域Iと第2領域IIとに分けられる。
ファイルシステム16は、図4を参照して説明したように、一つのファイルを多数のデータと、多数のデータと関連する多数のノード(例えば、iノード、ダイレクトノード、インダイレクトノードなど)で構成し、ストレージ装置20内に格納する。この際、すべてのノードは、ノードアドレステーブル65からノード識別子(NODE ID)を割り当てられる。例えば、第1ノードないし第5ノードが各々ノード識別子N0〜N5を割り当てられたと仮定する。N0〜N5に対応するノードブロックは各々物理アドレスa、b、c … dに対応する。図7に図示するハッチング部分は、第2領域II内で多数のデータ、多数のノードが書き込まれた部分を意味する。
例えば、ノード識別子N5によって指示される第5ノードであるダイレクトノードN5はDATA10を指す。ダイレクトノードN5は物理アドレスdに該当するノードブロックに格納されている。すなわち、ノードアドレステーブル65内で、物理アドレスdはノード識別子N5に対応し、ダイレクトノードN5は物理アドレスdに対応するノードブロックに格納されていることを示す。
図8は、ファイル内で一部データDATA10(第1データ)をDATA10a(第2データ)に修正する場合を示す。
前述したように、情報は第2領域IIで順次アクセス方式を利用して書き込む。したがって、修正されたデータDATA10aは新しい位置に空いているデータブロック内に格納される。また、ダイレクトノードN5は、修正されたデータDATA10aが格納されたデータブロックを指すように修正され、物理アドレスfに対応する空いているノードブロック内に新しく格納される。
情報は第1領域Iでランダムアクセス方式を利用して書き込む。したがって、ノードアドレステーブル65は物理アドレスfがノード識別子N5に対応するように更新され、以前の物理アドレスdを上書きし、ダイレクトノードN5は物理アドレスfに対応するノードブロックに格納されていることを示す。
ファイル内の一部データの修正を整理すると、多数のデータのうち第1データは第1物理アドレスに対応する第1ブロック内に格納され、第1ダイレクトノードは第1データを指示し、第1ダイレクトノードは第2物理アドレスに対応する第2ブロック内に格納される。ノードアドレステーブル内で、第1ダイレクトノードの第1ノード識別子は格納される第2物理アドレスに対応する。ここで、第1データを修正して第2データを生成する。第2データを第1物理アドレスと異なる第3物理アドレスに対応する第3ブロック内に書き込む。第1ダイレクトノードが第2データを指示するように修正し、第2物理アドレスと異なる第4物理アドレスに対応する第4ブロック内に書き込む。また、ノードアドレステーブル内で、第1ダイレクトノードの第1ノード識別子に対応する第2物理アドレスは上書きされ、第1ノード識別子は第4物理アドレスに対応する。
ログ構造化ファイルシステムで、ノードアドレステーブル65を利用すると、ファイルの一部データを修正する際、修正するデータ及びノードの量を最小化することができる。すなわち、修正されたデータと、修正されたデータを直接指すダイレクトノードのみを順次アクセス方式を利用して書き込みし、ダイレクトノードを指すインダイレクトノードまたはiノードなどは修正する必要がない。ノードアドレステーブル65内で、ダイレクトノードに対応する物理アドレスを修正したからである。
図9は、本発明の他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図である。以下では説明の便宜上、図1ないし図8を参照して説明した内容と異なる点を中心に説明する。
図9を参照すると、本発明の他の実施形態によるコンピュータシステムのストレージ装置において、第2領域IIは互いに分離された多数のセグメント(S1〜Sn、ただし、nは自然数)を含む。各セグメント(S1〜Sn)には、データとノードに関係なく格納される。
反面、図5に図示する本発明の一実施形態によるコンピュータシステムにおいて、ストレージ装置は互いに分離されたデータセグメントDS0,DS1、ノードセグメントNS0,NS1を含む。多数のデータはデータセグメントDS0,DS1に格納され、多数のノードはノードセグメントNS0,NS1に格納される。
図10は、本発明のまた他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図である。以下では説明の便宜上、図1ないし図8を参照して説明した内容と異なる点を中心に説明する。
図10を参照すると、本発明のまた他の実施形態によるコンピュータシステムのストレージ装置で、第1領域Iはセグメント要約領域(図5のSSA66を参照)を含まない。すなわち、第1領域Iはスーパーブロック61,62、チェックポイント領域63、セグメント情報テーブル64、ノードアドレステーブル65を含む。
セグメント要約情報は第2領域II内に格納される。具体的には、第2領域IIは多数のセグメントS0〜Snを含み、各セグメントS0〜Snは多数のブロックに区分される。各セグメントS0〜Snのうち少なくとも一つのブロックSS0〜SSnにセグメント要約情報を格納できる。
図11は、本発明のまた他の実施形態によるコンピュータシステムのストレージ装置に格納されるファイルの構造を説明するためのブロック図である。以下では説明の便宜上、図1ないし図8を参照して説明した内容と異なる点を中心に説明する。
図11を参照すると、本発明のまた他の実施形態によるコンピュータシステムのストレージ装置で、第1領域Iはセグメント要約領域(図5のSSA66を参照)を含まない。すなわち、第1領域Iはスーパーブロック61,62、チェックポイント領域63、セグメント情報テーブル64、ノードアドレステーブル65を含む。
セグメント要約情報は第2領域II内に格納される。第2領域IIは多数のセグメント53を含み、各セグメント53は多数のブロックBLK0〜BLKmに区分され、各ブロックBLK0〜BLKmはOOB(Out Of Band)(OOB1〜OOBm、ただし、mは自然数)領域を含む。OOB領域OOB1〜OOBmにセグメント要約情報を格納できる。
以下では、本発明のいくつかの実施形態によるコンピュータシステムが適用される具体的なシステムについて説明する。以下で説明するシステムは例示的なものに過ぎず、これに限定されない。
図12は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な一例を説明するためのブロック図である。
図12を参照すると、ホストサーバ300はネットワーク320を介して多数のデータベースサーバ330,340,350,360と接続されている。ホストサーバ300内に、データベースサーバ330,340,350,360のデータを管理するためのファイルシステム316が設けられる。ファイルシステム316は、例えば、図1ないし図11を参照して説明したF2FSファイルシステムであり得る。
図13ないし図15は、本発明のいくつかの実施形態によるコンピュータシステムの具体的な他の例を説明するためのブロック図である。
先ず、図13を参照すると、ストレージ装置1000(図1のストレージ装置20に対応する)は不揮発性メモリ装置1100及びコントローラ1200を含む。
ここで、不揮発性メモリ装置1100には、前述したスーパーブロック61,62、チェックポイント領域63、セグメント情報テーブル64、ノードアドレステーブル65などが格納されている。
コントローラ1200はホスト及び不揮発性メモリ装置1100に連結される。ホスト(Host)からの要請に応答し、コントローラ1200は不揮発性メモリ装置1100にアクセスするように構成される。例えば、コントローラ1200は不揮発性メモリ装置1100の読み込み、書き込み、削除{さくじょ}、及びバックグラウンド(background)動作を制御するように構成される。コントローラ1200は不揮発性メモリ装置1100とホストとの間にインターフェースを提供するように構成される。コントローラ1200は不揮発性メモリ装置1100を制御するためのファームウェア(firmware)を駆動するように構成される。
例示的には、コントローラ1200はRAM(Random Access Memory)、プロセシングユニット(processing unit)、ホストインターフェース(host interface)、及びメモリインターフェース(memory interface)のようなよく知られた構成要素をさらに含む。RAMは、プロセシングユニットの動作メモリ、不揮発性メモリ装置1100とホストとの間のキャッシュメモリ、及び不揮発性メモリ装置1100とホストとの間のバッファメモリのうち少なくとも一つのとして利用される。プロセシングユニットはコントローラ1200の諸般動作を制御する。
コントローラ1200と不揮発性メモリ装置1100は一つの半導体装置内に集積される。例示的に、コントローラ1200と不揮発性メモリ装置1100は一つの半導体装置に集積され、メモリカードを構成することができる。例えば、コントローラ1200と不揮発性メモリ装置1100は一つの半導体装置に集積され、PCカード(PCMCIA、personal computer memory card international association)、コンパックフラッシュカード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)などのようなメモリカードを構成できる。
コントローラ1200と不揮発性メモリ装置1100は一つの半導体装置に集積されSSD(Solid State Drive)を構成する。SSDは半導体メモリにデータを格納するように構成される格納装置を含む。システム1000が半導体ドライブ(SSD)として利用される場合、システム1000に連結されたホストの動作速度は画期的に改善される。
他の例として、システム1000は、コンピュータ、UMPC(Ultra MobilePC)、ワークステーション、ネットブック(net−book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピュータ、ウェブタブレット(web tablet)、無線電話機(wireless phone)、携帯電話(mobile phone)、スマートフォン(smart phone)、e−ブック(e−book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、スリーディーテレビ(3−dimensional television)、デジタルオーディオレコーダ(digital audio recorder)、デジタルオーディオプレーヤ(digital audio player)、デジタル画像レコーダ{ろくが そうち}(digital picture recorder)、デジタル画像プレーヤ(digital picture player)、デジタルビデオレコーダ(digital video recorder)、デジタルビデオプレーヤ(digital video player)、情報を無線環境で送受信できる装置、ホームネットワークを構成する多様な電子装置のうちの一つ、コンピュータネットワークを構成する多様な電子装置のうちの一つ、テレマティックスネットワークを構成する多様な電子装置のうちの一つ、RFID装置、またはコンピュータシステムを構成する多様な構成要素のうちの一つなどのような電子装置の多様な構成要素のうちの一つとして提供される。
例示的には、不揮発性メモリ装置1100またはシステム1000は多様な形態のパッケージで実装される。例えば、不揮発性メモリ装置1100またはシステム1000は、Package on Package(PoP)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)などのような方式でパッケージ化して実装される。
次いで、図14を参照すると、システム2000は不揮発性メモリ装置2100とコントローラ2200を含む。不揮発性メモリ装置2100は複数の不揮発性メモリチップを含む。複数の不揮発性メモリチップは複数のグループに分割される。複数の不揮発性メモリチップの各グループは一つの共通チャンネルを介してコントローラ2200と通信するように構成される。例えば、複数の不揮発性メモリチップは第1ないし第kチャンネルCH1〜CHkを介してコントローラ2200と通信することが図示されている。
図14を参照すると、一つのチャンネルに複数の不揮発性メモリチップが連結されることが図示されている。しかし、一つのチャンネルに一つの不揮発性メモリチップが連結するようにシステム2000が変形され得ることを理解できるであろう。
次いで、図15を参照すると、システム3000は、中央処理装置(CPU)3100、RAM(Random Access Memory)3200、ユーザインターフェース3300、電源3400、及び図14のシステム2000を含む。
システム2000は、システムバス3500を介して中央処理処置(CPU)3100、RAM3200、ユーザインターフェース3300、及び電源3400に電気的に接続する。ユーザインターフェース3300を介して提供されたり、中央処理装置3100によって処理されたデータはシステム2000に格納される。
図15は、不揮発性メモリ装置2100がコントローラ2200を介してシステムバス3500に連結されることが図示されている。しかし、不揮発性メモリ装置2100はシステムバス3500に直接連結するように構成してもよい。
以上添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野で通常の知識を有する者は、本発明がその技術的思想や必須の特徴を変更しない範囲で他の具体的な形態で実施され得ることを理解することができる。したがって、上記実施形態はすべての面で例示的なものであり、限定的なものではないものと理解しなければならない。
10 ホスト
20 ストレージ装置
61,62 スーパーブロック
63 チェックポイントブロック
64 セグメント情報テーブル
65 ノードアドレステーブル
66 セグメント要約領域

Claims (11)

  1. ストレージ装置を第1領域と第2領域とに分け、
    前記第2領域に多数のデータと、前記多数のデータ関連する多数のノードとを格納し、前記多数のデータは、第1物理アドレスに対応する第1ブロックに格納される第1データを含み、前記多数のノードは、第2物理アドレスに対応する第2ブロックに格納され、前記第1データを指示する第1ノードを含み、前記第1領域にノードアドレステーブルを格納し、前記ノードアドレステーブルは、前記第1ノードに対応する第1ノード識別子を含む前記多数のノード各々に対応する多数のノード識別子と、前記第1ノード識別子に対応する前記第2物理アドレスを含む前記多数のノード識別子各々に対応する多数の物理アドレスとを含み、
    前記第1データを修正して第2データを生成し、前記第2データを第3物理アドレスに対応する空いている第3ブロックに格納し、
    前記第1ノードを修正して前記第2データを指示し、前記第1ノードを第4物理アドレスに対応する空いている第4ブロックに格納し、
    前記第2物理アドレスを、前記ノードアドレステーブル内の前記第1ノード識別子と、前記第4物理アドレスとに関連付けて上書きすることを含むコンピュータシステムのデータ管理方法。
  2. 前記第2領域での書き込み動作は順次アクセス方式を利用して行い、
    前記第1領域での書き込み動作はランダムアクセス(random access)方式を利用して行う請求項1に記載のコンピュータシステムのデータ管理方法。
  3. 前記第1領域は前記ストレージ装置の前部に格納され、
    前記第2領域は前記ストレージ装置の後部に格納される請求項1に記載のコンピュータシステムのデータ管理方法。
  4. 前記ストレージ装置はSSD(Static Solid Disk)を含む請求項3に記載のコンピュータシステムのデータ管理方法。
  5. 前記第2領域は互いに分離されたデータセグメントとノードセグメントとを含み、
    前記多数のデータは前記データセグメントに格納され、
    前記多数のノードは前記ノードセグメントに格納される請求項1に記載のコンピュータシステムのデータ管理方法。
  6. 前記第2領域は多数のセグメントを含み、各セグメントには多数のページが格納され、
    前記方法は前記第1領域にセグメント情報テーブルを格納することをさらに含み、前記セグメント情報テーブルは、前記各セグメントの有効なページの数と、前記多数のページのビットマップとを含む請求項1に記載のコンピュータシステムのデータ管理方法。
  7. 前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、
    前記方法は前記第1領域にセグメント要約領域を格納することをさらに含み、前記セグメント要約領域は前記各セグメントの前記多数のブロックが属するノードに関する情報を含む請求項1に記載のコンピュータシステムのデータ管理方法。
  8. 前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、
    前記各セグメントの少なくとも一つのブロックにセグメント要約情報を格納し、前記セグメント要約情報は前記各セグメントの前記多数のブロックが属するノードに関する情報を含む請求項1に記載のコンピュータシステムのデータ管理方法。
  9. 前記第2領域は多数のセグメントを含み、前記各セグメントは多数のブロックに区分され、前記各ブロックはOOB(Out Of Band)領域を含み、
    前記各ブロックの前記OOB領域にセグメント要約情報を格納し、前記セグメント要約情報は前記各ブロックが属するノードに関する情報を含む請求項1に記載のコンピュータシステムのデータ管理方法。
  10. 前記多数のデータは一つのファイルに対応し、
    前記多数のノードはiノード(inode)、ダイレクトノード(direct node)、インダイレクトノード(indirect node)を含む請求項1に記載のコンピュータシステムのデータ管理方法。
  11. 前記ノードアドレステーブルは、前記iノードのノード識別子、前記ダイレクトノードのノード識別子及び前記インダイレクトノードのノード識別子を格納する請求項10に記載のコンピュータシステムのデータ管理方法。
JP2013202243A 2012-09-28 2013-09-27 コンピュータシステム及びそのデータ管理方法 Active JP6215631B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120109177A KR101979715B1 (ko) 2012-09-28 2012-09-28 컴퓨팅 시스템 및 그 데이터 관리 방법
KR10-2012-0109177 2012-09-28

Publications (3)

Publication Number Publication Date
JP2014071906A JP2014071906A (ja) 2014-04-21
JP2014071906A5 JP2014071906A5 (ja) 2016-11-04
JP6215631B2 true JP6215631B2 (ja) 2017-10-18

Family

ID=50386223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013202243A Active JP6215631B2 (ja) 2012-09-28 2013-09-27 コンピュータシステム及びそのデータ管理方法

Country Status (3)

Country Link
US (1) US9424262B2 (ja)
JP (1) JP6215631B2 (ja)
KR (1) KR101979715B1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190057887A (ko) 2017-11-21 2019-05-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102509987B1 (ko) * 2021-01-13 2023-03-15 삼성전자주식회사 호스트 및 스토리지 시스템을 포함하는 컴퓨팅 시스템
US11875036B2 (en) 2021-01-13 2024-01-16 Samsung Electronics Co., Ltd. Computing system including host and storage system and having increased write performance

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537588A (en) 1994-05-11 1996-07-16 International Business Machines Corporation Partitioned log-structured file system and methods for operating the same
AU2001265075A1 (en) 2000-05-26 2001-12-11 Infolibria, Inc. High performance efficient subsystem for data object storage
JP2003296039A (ja) * 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US7065619B1 (en) 2002-12-20 2006-06-20 Data Domain, Inc. Efficient data storage system
US7257690B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation Log-structured temporal shadow store
KR100622130B1 (ko) 2004-12-21 2006-09-19 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법
US8055702B2 (en) * 2005-04-25 2011-11-08 Netapp, Inc. System and method for caching network file systems
JP4766240B2 (ja) 2005-11-08 2011-09-07 日本電気株式会社 ファイル管理方法、装置、およびプログラム
KR20070096429A (ko) 2006-03-24 2007-10-02 부산대학교 산학협력단 빠른 마운팅을 지원하는 낸드 플래시 메모리에 적용되는파일시스템
JP2008003932A (ja) * 2006-06-23 2008-01-10 Sony Corp データ記憶装置、データ記憶方法およびコンピュータプログラム
US8683228B2 (en) 2007-01-16 2014-03-25 Terry Lee Stokes System and method for WORM data storage
KR100895429B1 (ko) 2007-04-27 2009-05-07 중앙대학교 산학협력단 플래시 메모리 파일 장치 및 그 마운트 방법
US7856522B2 (en) * 2007-05-16 2010-12-21 Oracle International Corporation Flash-aware storage optimized for mobile and embedded DBMS on NAND flash memory
US8024525B2 (en) 2007-07-25 2011-09-20 Digi-Data Corporation Storage control unit with memory cache protection via recorded log
KR100954603B1 (ko) 2008-05-16 2010-04-26 주식회사 휴원 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
US9122579B2 (en) * 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer

Also Published As

Publication number Publication date
KR20140042426A (ko) 2014-04-07
JP2014071906A (ja) 2014-04-21
US20140095552A1 (en) 2014-04-03
US9424262B2 (en) 2016-08-23
KR101979715B1 (ko) 2019-05-17

Similar Documents

Publication Publication Date Title
KR102002830B1 (ko) 세그먼트 클리닝 장치 및 방법
JP6343438B2 (ja) コンピュータシステム及びコンピュータシステムのデータ管理方法
US10289304B2 (en) Physical address management in solid state memory by tracking pending reads therefrom
KR102007650B1 (ko) 세그먼트 그룹을 고려하는 세그먼트 클리닝 장치 및 방법
US9697116B2 (en) Storage system and writing method thereof
KR101977575B1 (ko) 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체
KR102050723B1 (ko) 컴퓨팅 시스템 및 그 데이터 관리 방법
US9201787B2 (en) Storage device file system and block allocation
KR20120105294A (ko) 불휘발성 메모리를 제어하는 메모리 컨트롤러
US20160378375A1 (en) Memory system and method of operating the same
US20140095771A1 (en) Host device, computing system and method for flushing a cache
JP6215631B2 (ja) コンピュータシステム及びそのデータ管理方法
US9575883B2 (en) Control device, storage device, and storage control method
US20140095558A1 (en) Computing system and method of managing data thereof
KR20140042520A (ko) 비트맵을 이용한 세그먼트 클리닝 장치 및 상기 비트맵을 저장하는 스토리지 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160914

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160914

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20161222

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20161228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170921

R150 Certificate of patent or registration of utility model

Ref document number: 6215631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250