JP6100750B2 - メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 - Google Patents

メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 Download PDF

Info

Publication number
JP6100750B2
JP6100750B2 JP2014257314A JP2014257314A JP6100750B2 JP 6100750 B2 JP6100750 B2 JP 6100750B2 JP 2014257314 A JP2014257314 A JP 2014257314A JP 2014257314 A JP2014257314 A JP 2014257314A JP 6100750 B2 JP6100750 B2 JP 6100750B2
Authority
JP
Japan
Prior art keywords
memory
partition
data
data storage
storage device
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
JP2014257314A
Other languages
English (en)
Other versions
JP2015158902A (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 JP2015158902A publication Critical patent/JP2015158902A/ja
Application granted granted Critical
Publication of JP6100750B2 publication Critical patent/JP6100750B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/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
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Description

概要
いくつかの実施の形態において、装置は、第1のメモリと、第2のメモリと、第1のメモリおよび第2のメモリに結合されたコントローラとを備えることができる。コントローラは、第1のメモリの第1のデータ記憶領域に記憶されるべき第1のデータを受けるように構成されることができ、第1のデータは、第1のメモリから第2のメモリへと転送されるべき他のデータのインジケータを含み、コントローラは、第1のデータに基づいて第2のメモリに他のデータを保存するように構成されることができる。
いくつかの実施の形態において、装置は、第1のデータ記憶媒体と、第2のデータ記憶媒体と、第1のデータ記憶媒体および第2のデータ記憶媒体に結合されるコントローラとを含むデータ記憶装置を備えることができる。コントローラは、ホストから受けた第1のデータを、第1のデータ記憶媒体の第1のデータ記憶領域において保存するように適合されることができ、第1のデータは、データ記憶装置を構成するためにホストからのデータを含み、コントローラは、情報に基づいてデータ記憶装置を構成するように適合されることができる。
いくつかの実施形態において、装置は、データ記憶装置内に記憶されたコンフィギュレーションデータを読出して、コンフィギュレーションデータに基づいて第1のデータ記憶媒体から第2のデータ記憶媒体へとユーザデータを転送するように構成されたデータ記憶装置を備えることができる。
ダイレクトヒントパーティションを有するメモリ装置を示す図である。 ダイレクトヒントパーティションを有するパーティション構造を示す図である。 ダイレクトヒントパーティションのデータ構造を示す図である。 ダイレクトヒントパーティションに情報を保存する方法を示す図である。 ダイレクトヒントパーティションに記憶される情報に基づいてメモリ装置を構成する方法を示す図である。 ダイレクトヒントパーティションに情報を保存する方法を示す図である。 ダイレクトヒントパーティションに保存される情報に基づいてメモリ装置を構成する別の方法を示す図である。 ダイレクトヒントパーティションを実現するように適合されたシステムを示す図である。
詳細な説明
以下の詳細な説明において、この詳細な説明の一部を形成し、図示によって示される添付の図面が参照される。この開示の範囲を逸脱することなく、さまざまな記述された実施の形態の特徴が組合せ可能であり、他の実施の形態が利用可能であり、構造的な変更がなされてもよい、ということが理解されるべきである。この開示の範囲を逸脱することなく、本明細書でのさまざまな実施の形態および実施例が組合わせ可能であり、交換可能であり、取除くことが可能である、ということが理解されるべきである。たとえば、以下の詳細な説明は、主にディスクドライブとフラッシュメモリとを参照するであろう。しかしながら、本明細書において記述される実施の形態は、如何なる種類のデータ記憶装置またはメモリ、または異なる種類のメモリの如何なる組合せにも適用可能である。いくつかの実施例において、1以上の異なる記憶特性を有する第1のメモリおよび第2のメモリを、たとえば第2のメモリタイプが第1のメモリタイプよりも高速のデータアクセス能力を有するように利用することができる。いくつかの実施形態において、たとえば単一レベルセル不揮発性ソリッドステートメモリおよびマルチレベルセル不揮発性ソリッドステートメモリ、または不揮発性ソリッドステートメモリおよび磁気ディスクメモリのように、異なるメモリ特性は、異なる構造の種類のメモリであってもよい。さまざまな構成において、メモリは、不揮発性ソリッドステートメモリ、揮発性ソリッドステートメモリ、磁気ディスクメモリ、他の種類のメモリ、またはそれらの如何なる組合せであってもよい。
メモリ(すなわちデータ記憶装置)の例が、ディスクドライブ100として図1に示される。ディスクドライブ100は、クランプ120によるカップリングを通じてスピンドルモータ(図示せず)によって回転させられる。アクチュエータアセンブリ130は、モータ140によって動かされて、磁気媒体110の表面に対して相対的にトランスデューサ(図示せず)を位置付ける。ディスクドライブ100は、さらに、DRAMまたは不揮発性メモリ(たとえばフラッシュメモリのような)、またはその両方とすることができるメモリ150を含む。ファームウェア160は、ハードウェア170を制御してディスクドライブ100の機能を実行する。これらの機能のうちのいくつかは、後に詳細に説明されるであろう。ストレージコントローラは、ファームウェア160およびハードウェア170を含むことができる。ファームウェア160は、メモリ150、磁気媒体110、ハードウェア170、または図示されない他のメモリに存在することができる。
データ記憶装置について有利な機会は、記憶されたデータにアクセスする時間を減少させることである。例示すると、デスクトップコンピュータは、DRAMとともに同じマザーボードに搭載されたマイクロプロセッサを用いることができる。ディスクドライブのようなデータ記憶装置は、ストレージインターフェイス標準コネクタおよびインターフェイス通信プロトコルを介してマザーボードに接続される。このアーキテクチャにおいて、DRAM中のデータ、情報およびプログラムにアクセスする時間は、ディスクドライブにアクセスする時間の数オーダー分の1の大きさである。
データ記憶装置におけるアクセス時間を減少するための1つの方法は、キャッシングを介することである。ディスクドライブにおいて、キャッシングは、DRAMのような、ディスクドライブの磁気媒体よりも高速のアクセス時間を有することができるキャッシュメモリによって達成可能である。たとえば、図1におけるメモリ150は、キャッシュメモリとして用いることができる。あるキャッシングの方法は、頻繁にアクセスされるデータをキャッシュに格納することであってもよい。他の方法は、データをキャッシュに格納するために時間的または空間的関係を用いることができる。これらのキャッシングの方法は、アクセス時間を減少することが可能であるが、高速のアクセス時間がさらに望ましい。
いくつかの実施例において、ソリッドステートハイブリッドドライブ(SSHD)は、フラッシュメモリのような不揮発性ソリッドステートメモリにデータをキャッシングすることによってディスクドライブの性能を改善することができ、そのような不揮発性ソリッドステートメモリは、キャッシュされたデータを読み出すときにレイテンシを減少する。すなわち、図1におけるメモリ150は、フラッシュメモリのような不揮発性ソリッドステートメモリとすることができる。磁気媒体の容量よりも不揮発性ソリッドステートメモリの容量が小さくあり得るため、不揮発性メモリにどのデータを記憶するのが有利であるかについて判断することができる。SSHDは、ホストオペレーティングシステムが行う(たとえばアクセス頻度、一時的関係、など)ときのような、これらの判断を行なうのに有利に役立つ情報(たとえばアクセス頻度、空間的および時間的関係、シーケンシャルアクセス、レイテンシなど)を有することができる。メモリは、キャッシュデータを記憶するように選択されてもよいが、それは、そのメモリが、より高速で、より信頼性が高く、他のメモリよりも電力の使用が少なく、あるいは他の理由によるためである。いくつかの例において、メモリの一部は、磁気ディスクの一部または、不揮発性ソリッドステートメモリの一部のようなキャッシュのために用いられることができる。
「自己ピニング」SSHDは、どのデータをキャッシュに格納するかを判断するためにSSHDの内部ファームウェアを用いることができる。これは、ホストシステムにデータキャッシングを制御させる設計において意義のある改善をもたらすことができる。改善は、いくつかの局面に由来する。その局面とは、たとえば、どのアクセスが長いレイテンシをもたらすかということをドライブが知っていること、ドライブファームウェアが、不揮発性メモリ内および磁気媒体上に塊データがあるということを確保できること、および判断およびデータの移動が、ホストシステムの何らかのリソースを利用することなく達成可能であるということである。
上記のように、どのデータをデータ記憶装置にキャッシュするかを判断するのに有益であり得るホストシステム(たとえばオペレーティングシステム)またはソフトウェアアプリケーションによって、情報を所有することができる。この情報により、データ記憶装置は、より大きな性能ゲインを与えることができる。ホストシステムは、読出および書込命令を介してドライブに示唆を送ることによって、どのデータ(たとえば、どのLBA)がキャッシュされるべきかをデータ記憶装置に対して「ヒントを与える」メカニズムを用いることができる。このメカニズムの実現は、問題があり得るとともに、ホストアルゴリズムとSSHDアルゴリズムとがともにうまく動くのを確保するために、開発において重要な相互作用を含み得る。そのメカニカルの実現は、また、ホストシステムソフトウェア開発において相当な作業を生成する。これは、データ記憶装置に情報を渡す間接的な方法と見なすことができる。
いくつかの実施例において、情報は、ソフトウェアアプリケーションまたはホスト(集合的には「システム」の例)オペレーティングシステム(OS)からデータ記憶装置に、データ記憶装置上の1組のLBAを、ソフトウェアアプリケーションまたはホストOSとデータ記憶装置との通信のための1組のレジスタとして使用することによって、渡されることができる。ある実施の形態において、アプリケーションソフトウェアまたはホストOSによって、一意のパーティションが、排他的使用のためにデータ記憶装置上に作成可能である。これは、あらゆる他のOSまたはソフトウェアアプリケーション機能が、一意のパーティションにおいてデータが衝突することを防ぐことが可能な、指定された1組のLBAを保存することができる。それは、一意のパーティションに割当てられた1組のLBAが変わらないであろうことを保証することができる。
パーティションおよびパーティションタイプは、マスタブートレコード(MBR)またはグローバル一意識別子(GUID)パーティションテーブル(GPT)から決定することができる。MBRパーティションテーブルは、パーティションタイプおよびロケーションを決定するために、電源投入時にホストシステムBIOSによって読出されることができる。GPTは、ユニファイドエクステンシブルファームウェアインターフェイス(「UEFI」)バイアス規格を用いる。UEFIバイアスを有するGPTは、ベンダーカスタマイゼーションに適用可能であるとともに、より簡単な実現を可能にする。GPTを用いることにより、特定のパーティションタイプ(「ダイレクトヒントパーティション」)は、ソフトウェアアプリケーションまたはホストOSが、カスタムコマンドまたは特別コマンドを実現するためにドライバを使用する必要なしに通信可能なように生成可能である。いくつかの実施の形態において、ダイレクトヒントパーティションは、ホストまたはデータ記憶デバイスシステム情報のために用いられる如何なるパーティションからも分離される。
GPTを用いるために、データ記憶装置において記憶されるパーティション構造が図2aを参照してまず説明される。GPTパーティション構造200は、レガシーシステムに用いられるプロテクティブMBR210を含む。プライマリGPTヘッダ220は、パーティションに利用可能なLBAアドバイス範囲を定義し、他のシステム情報を含む。パーティションエントリ230は、各々のパーティションのためのエントリを含む。GPTパーティション構造200の残りは、パーティション240として説明される。
図2bを参照して、パーティションエントリ230が説明される。示されているのは、パーティションエントリ230′であり、パーティションエントリ230′は、パーティションタイプGUIDエントリを含み、パーティションタイプGUIDエントリは、パーティションタイプに含まれるデータの種類と、どのようにパーティションタイプが使われるかとを識別する。一意パーティションGUIDは、一意識別子として、ダイレクトヒントパーティションに割当てられる。スタートLBAエントリおよびエンドLBAエントリは、パーティションのLBA範囲を定義する。属性エントリは、どのようにしてパーティションが用いられるかを記述する。パーティションネームエントリは、パーティションを名付けるために用いることができる。ユーザ、ソフトウェアアプリケーションまたは他のユーティリティが、パーティションを生成することができる。ウインドウズにおける「diskpart」機能が、データ記憶装置においてパーティションを生成するために用いられることができる。「create partition primary」コマンドは、「IB=XX」という因数とともに、パーティションエントリの一意パーティションGUIDのためのフィールドに、値XXを保存する。たとえば、ダイレクトヒントパーティションは、図1における磁気媒体110に作成することができる。
ダイレクトヒントパーティションが作成された後、ソフトウェアアプリケーションまたはホストOSは、OSファイルシステム、またはホストとデータ記憶装置との間で用いられる記憶インターフェイス規格への変更なしに、ダイレクトヒントパーティションを用いて、データ記憶装置との通信を可能にする。すなわち、ホストOSファイルシステムとインターフェイスシステムとに、ダイレクトヒントパーティションの使用に気付かなくすることができる。例示のため、ウインドウズOSにおいて実行されるソフトウェアアプリケーションが、SSHDのフラッシュメモリ(たとえば図1におけるメモリ150)へ、指定されたある特定のファイルを選択的に配置することができる。これを行うために、ソフトウェアアプリケーションは、DeviceIOControlと呼ばれるFSCTL_GET_RETRIEVAL_POINTERS制御コードを有するウインドウズカーネルAPI機能を呼出してファイルのためのLBAを取得することができる。これらの対応するLBAが読み出されると、ソフトウェアアプリケーションは、別のファイルへとLBAのリストを保存し、そのファイルは次にダイレクトヒントパーティションへと保存される。
図3には、ダイレクトヒントパーティション内の予め定義されたデータ構造が示される。そのデータ構造は、保存されたファイルにおける情報から取り込まれることができる。情報は、フラッシュメモリのようなSSHDの選択されたメモリに移動またはコピーされることが可能な、ヘッダ300およびLBA情報を含むことができる。ヘッダ300は、続くLBAが選択されたメモリ内に記憶されるということのインジケータを含むことができる。ヘッダ300は、また、ファイル情報が衝突していないことを確かめるためのチェックとして用いられることができる。エントリ310は、フラッシュメモリにおいて保存されるべき第1のLBAを識別する。エントリ320は、保存されるべき第1のLBAからLBA長さを識別する。エントリ310および320は、ファイルの一部、ファイル全体、複数のファイル、またはそれらの任意の組合せに対応するLBAとすることができる。エントリ330によって示されるように、追加のLBAが識別可能である。各エントリは、5バイトのような、予め定義されたサイズであるとともに同じサイズであり得る。
図2a,2bおよび図3を参照して、保存されたファイルを読出すための、データ記憶装置のための方法が説明される。データ記憶装置のファームウェアは、磁気媒体のLBA0が、図2aのパーティション構造200のプロテクティブMBR210のために保存されていることを把握する。ファームウェアは、また、プライマリGPTヘッダ220のためにLBA1が保存されることを把握する。ファームウェアは、さらに、LBA2〜33が、最大128のパーティションエントリ230を含むということを認識する。各パーティションエントリは128バイトであり、各LBAにおいて4つのエントリを有する。4つのエントリのうちの第1番目の各々が、LBA境界で開始される。
ファームウェアは、また、図2Bにおいてパーティションエントリ230′によって示されるような、各々のエントリの構造を把握する。ファームウェアは、ダイレクトヒントパーティションを識別する一意パーティションGUID(上記のXX)を探すLBA2〜33を通じて検索を開始する。一度見つかると、ファームウェアはパーティションエントリ230′のバイトを読出して、ダイレクトヒントパーティションのスタートLBAおよびエンドLBAを決定する。一度ファームウェアが、ダイレクトヒントパーティションのスタートLBAおよびエンドLBAを認識すると、それはそこに保存される情報を読出すことができる。すなわち、ファームウェアは、図3に示されるデータ構造を読出して、ソフトウェアアプリケーションが必要とするどのLBAが、SSHDのフラッシュメモリに保存されているかを決定する。これは、このデータの書込および読出への素早いアクセスを可能とするであろう。スタートLBAとエンドLBAとは、ファームウェアによって、将来の使用のために保存されることができる。
図4は、プロセス400を示す。ステップ410によりプロセス400が開始される。ステップ420において、ソフトウェアアプリケーションは、データ記憶装置にキャッシュされるべきであるとソフトウェアアプリケーションが決定したファイルネームを、アプリケーションプログラムインターフェイス(API)に与える。プロセス400は、次にステップ430に進む。ステップ430において、APIは、OSに問合せを行ない、ファイルネームに関連付けられたLBAを取得する。ステップ440において、APIは、LBAの関連するリストをダイレクトヒントパーティションに書込むことができる。APIは、ダイレクトヒントパーティションにアクセスして、LBAの関連するリストを書込むことができる。その代わりに、LBAは、ソフトウェアアプリケーションに戻されることもできる。ソフトウェアアプリケーションは、次に別のファイルにLBAのリストを保存し、次に、ダイレクトヒントパーティションに別のファイル(すなわちLBAのリスト)を保存する。プロセス400は、ステップ450において終了する。APIは、ソフトウェアアプリケーションから分離されたアプリケーションとすることができる。その代わりに、APIは、ソフトウェアアプリケーションのソースコード、モジュールまたはソフトウェアアプリケーションによって呼出される機能へと組込まれることができる。あるいは、APIは、ダイナミックリングライブラリ(DLL)のような、ソフトウェアアプリケーションが実行可能なファイルと関連付けられたファイルとすることができる。
図5のプロセス500において示されるように、データ記憶装置は、関連するLBAを使用することができる。ステップ510において開始された後、データ記憶装置のファームウェア(たとえば図1におけるファームウェア160)は、任意のリスト/ファイルを含む、ダイレクトヒントパーティションを読出して、指定されたLBAをステップ520において決定することができる。ステップ530において、指定されたLBAに関連するファイルおよびデータは、キャッシュメモリ(たとえば図1におけるメモリ150)に記憶することができる。プロセス500は、ステップ540において終了する。
上記の方法および装置は、任意の記憶インターフェイス規格(たとえばSCSI,SATA,USB)、ハードウェアおよびソフトウェア、ドライバ、OSファイルシステムなどとは独立に実現可能である。すなわち、インターフェイス制御システムと、OSファイルシステムとは、ソフトウェアプログラムが、キャッシュに記憶されるべき選択されたファイルを示すデータ記憶装置に情報を渡すことができるということに気付かなくてもよい。このシステムを実現するために、OSまたは規格インターフェイスに対する特別な変更は必要ではない。
上記の方法および装置は、また、LBA情報に加えて他の情報をデータ記憶装置に渡すために用いることができる。これは、図6および図7のプロセス600および700によって示される。ステップ610においてプロセス600が開始されると、プロセスはステップ610に進む。ステップ610において、ホストOSまたはソフトウェアアプリケーションは、ダイレクトヒントパーティションアドレスに情報を書込む。プロセス600は、ステップ630において終了する。プロセス700は、ダイレクトヒントパーティションにおいて情報を処理するためにデータ記憶装置によって用いられるステップを示す。ステップ710においてプロセスが開始されると、ステップ720において、データ記憶装置のファームウェアは、ダイレクトヒントパーティションから情報を読出す。そこから、ファームウェアは、たとえばダイレクトヒントパーティションから読出された情報を使用して、パラメータ、アルゴリズムまたは記憶装置の機能を最適化し、あるいはデータ記憶装置における優先度を設定することによって、データ記憶装置を構成する。
図8は、上記の方法および装置を使用することができるシステム800を示す。ソフトウェアアプリケーション810は、通信により、データ記憶装置850のLBAスペース840におけるダイレクトヒントパーティション830に保存したいファイルネームまたは情報を、ダイレクトヒントAPI820に与える。ダイレクトヒントAPI820は、システムOS860と接続されて、関連するLBAまたは他の必要な情報を取得して、ソフトウェアアプリケーション810によって与えられたファイルまたは情報を保存する。ダイレクトヒントAPI820は、データ記憶装置850に、関連するLBAまたは他の必要な情報を書込む。ファームウェア870は、ダイレクトヒントパーティション830を読出す。ソフトウェアアプリケーション810がキャッシュメモリ880に保存されるデータを必要とする場合、ファームウェア870は、データ記憶装置のデータ記憶媒体から、関連するLBAを読出して、LBAに配置されたデータを、キャッシュメモリ880に保存する。ファイル以外の情報(たとえばコンフィギュレーション情報)が、ダイレクトヒントパーティション830に送られた場合、応じて、ファームウェア870が応答する。また、破線によって示されるように、OS860は、ダイレクトヒントパーティション830に直接書込むことができる。
特に上記の方法および装置は、バックグラウンドアクティビティおよびフォアグラウンドアクティビティ、ホストまたはシステムの電源およびバッテリレベル、および他の環境情報、OSおよびドライバのようなホストまたはシステム構成、ホストまたはシステムのリソースの利用、などといった、ホスト情報またはシステム情報を与えることができる。1つの具体的な情報は、ホストまたはシステムが、データ記憶装置に対して、LBAに書き込まれるコンテンツの種類を特定するというものである。たとえば、ホストまたはシステムは、データ記憶装置に、特定のLBAに記憶されるデータが、メタデータまたは音声/画像データであるということを知らせることができる。データ記憶装置は、サービス品質最適化のような、データ記憶装置それ自身を構成するための情報を用いることができる。これは特にデジタルビデオデコーダにおいて有用であるが、それは、より速い応答および低い消費電力のために、メタデータがキャッシュされることが可能であるためである。APIは、データ記憶装置の構成を変更し、ファームウェアをダウンロードするために用いることができる。
診断目的のため、ソフトウェアモニタが、どのプロセスまたはコマンドが現在動作中であるかをデータ記憶装置に知らせることが可能であるシステム上に配置することが可能であるだろう。データ記憶装置の故障発生時、任意の故障分析が、入力として、これらの通知されたコマンドまたはプロセスを有してもよい。
バックグラウンドアクティビティを実行するデータ記憶装置によって引起されるレイテンシに対して特に敏感なシステムおよびソフトウェアは、ドライブに対して、時間に厳しい動作の間に、これらのバックグラウンドアクティビティが遅延するということを知らせることができてもよいであろう。逆に、データ記憶装置は、システムに対して、バックグラウンドアクティビティの準備中または、その実行中に通知してもよいであろう。したがってシステムは、動作を再調整可能であり得る。
以下のさらなる情報の例において、それらのいくつかは、ホストから受取られたとき、データ記憶装置の拡張されたキャッシングを可能にするであろう。SSHDによって得られる1つの利点は、OSのより速い起動である。SSHDは、起動に関連するすべてのデータを固定する事ができ、それを将来の起動のために保存することができる。SSHDは、直ちに始まるものと起動条件によって仮定することによって、起動プロセスの開始を決定することができる。しかしながら、起動プロセスの終わりと、最初のアプリケーションローディングの開始との間に区別があるときには困難が生じる。起動情報の終わりをSSHDに与えるホストは、フラッシュメモリの不要な使用を最小限とするであろう。
本明細書に記述されるシステムを実行するデータ記憶装置は、ユーザアプリケーションに関連するアクセスを識別することによって、エンドユーザに対して性能の利点を提供することができ、レイテンシの減少のために、キャッシュメモリにそれらを保存することができる。しかしながら、ウイルススキャンのような多くのバックグラウンドタスクが、データ記憶装置が、そうでなければユーザアクティビティと気づかずに識別して、データのキャッシングを起こすようなアクセスパターンを生成し得る。この種の誤った積極的なキャッシングのトリガは、多数のキャッシュメモリ容量を配置することができる一方で、エンドユーザに対して将来の利点をほとんど与えない。しかしながら、誤った積極的なキャッシュのトリガは、エンドユーザには一般的には見えないバックグラウンドアクティビティに対して性能ゲインを与えることができる。しかしながら、ホストOSは、ダイレクトヒントパーティションを介してデータ記憶装置を識別することができ、そのアクセスが、(フラッシュメモリにあることが好ましい)フォアグラウンドアクティビティ対(フラッシュメモリにあることが好ましくない)バックグラウンドアクティビティによって実行され、それは、キャッシュメモリが使用される効率を改善することができる。
他の例において、ホストOSは、実行のためにホストDRAMにアプリケーションファイルをロードするであろう。すべての開いたアプリケーションに関連付けられたファイルデータの量がDRAMのサイズを上回る場合、ホストOSは、ファイルスワッピングの技術を適用することができる。ホストが新しいアプリケーションをロードしようとして、システムDRAMに十分な空きがない場合、ホストは、最近使われていない、DRAMの既に存在するデータの部分を用い、DRAMにおいて空きを作るために、データ記憶装置の特定の領域にそれを保存するであろう。将来のユーザの相互作用が、再び、データ記憶装置に移されたデータを必要とするならば、OSは、データ記憶装置に以前に記憶されたデータのために、DRAMにおけるいくつかのデータの他の部分を「スワップ」するであろう。これは、ユーザパターンが変わるにつれて継続可能である。データ記憶装置に対しておよびデータ記憶装置からのデータのスワッピングは、ユーザに対して、性能の直接的な影響を与える。したがって、この動作は素早く完了することが望ましい。データ記憶装置が、ダイレクトヒントパーティションを介して、書込まれたデータが「スワップされた」ファイルであると知らされるならば、データ記憶装置は、このデータがキャッシュメモリに保存されるべきであると知ったであろう。次に、この「スワップされた」ファイルが、再び、DRAMにロードされる必要がある場合、スワップされたファイルは、ダイレクトヒントパーティションに保存されたインジケータにより、より高速のキャッシュメモリから読出されて、データ記憶装置の異なる記憶媒体からの場合に比べて高速になる可能性がある。
また、さらなる例において、電源投入後に、頻繁に使用されるアプリケーションのローディングを改善するために、いくつかのOSプリフェッチファイルは、素早く復帰するデータ記憶装置上のフォーマットでアプリケーションを保存する。最大の性能の利点のためには、プリフェッチされたファイルの読出は、キャッシュメモリから行なわれることが有利である。OSが、ダイレクトヒントパーティションを介して、データ記憶装置に、書込むファイルが、プリフェッチされるべきファイルであるという指示を与えるなら、データ記憶装置は、将来の高速の読出のために、これをキャッシュメモリに書込むということを知るだろう。
さらに、ノートブックシステムに実装されるデータ記憶装置の場合、ダイレクトヒントパーティションを介してキャッシュメモリに置かれるべきコンテンツを決定するために用いられるポリシーは、システムがAC電源に接続された場合、あるいはバッテリの電力で動作する場合に依存して変わり得る。ACに接続された場合、最も優先度の高いパラメータは、性能であり得る。この場合、データ記憶装置は、性能のためにキャッシュメモリを利用することができるが、他のメモリを、必要なデータがそこにある場合に高速のアクセスを与える状態としたままにするであろう。しかしながら、バッテリで動作する場合、選択肢は、電力節約のためにキャッシュメモリを使用するということである可能性がある。このモードにおいて、データ記憶装置は、他のメモリを、できるだけ低消費電力状態に保ち、キャッシュメモリを、他のメモリからの必要なデータがほとんどないように、使用される読出および書込データを一時的に格納するために用いるであろう。
ソフトウェアアプリケーションは、システムがACまたはバッテリ電力のいずれで動作しているかを、バッテリ電力レベルによって決定することができる。たとえば、ウインドウズOSの場合、ソフトウェアアプリケーションは、ISensOnNowインターフェイスおよびBatteryLow、OnACPower、OnBatteryPowerの方法を有するシステムイベント通知サービスを用いることができる。すなわち、ソフトウェアアプリケーションは、システムがACまたはバッテリ電力を用いていることを知らさせるであろう。次に、上記のように、ソフトウェアアプリケーションは、ファイルにおけるこの情報を、ダイレクトヒントパーティション保存することができる。図3において用いられたのとは異なるフォーマットを、情報を伝達するために使用することができる。そこから、データ記憶装置ソフトウェアは、ダイレクトヒントパーティションにおけるファイルを読出すことができ、システムが、AC上またはバッテリ電力上のいずれであるかに基づいて、データ記憶装置自身を構成することができる。
したがって、ファイルは、データの識別子とすることができる。外部または別のソフトウェアアプリケーションまたはシステムは、そのファイルを使用して、異なる装置上でデータと相互作用、たとえば消去、変更、移動、保存、読出、などを行なうことができる。OSのファイルシステムは、ファイルを、データ記憶装置の関連するLBAに翻訳することができる。この場合、OSおよび記憶インターフェイス規格は、変更する必要がない。
ダイレクトヒントパーティションにおける情報は、データ記憶装置の電源投入時、データ記憶装置の動作中のモニタ時、またはその両方において読出可能である。さらに、ダイレクトヒントパーティションに書込まれるべき情報は、ダイレクトヒントパーティションへの書込コマンドの処理中に決定可能である。ダイレクトヒントパーティションは、また、図1におけるメモリ150のような、データ記憶装置のメモリに含まれることができる。
上記の如何なる方法および装置も、ソフトウェアアプリケーションまたはホストOSとの通信のために、データ記憶装置のための機構を与えるために逆にすることができる。たとえば、データ記憶装置を、自己固定が可能なように使用し、装置が、固定されたLBA情報を、ダイレクトヒントパーティションに保存することができる。この情報は、次に、ホストによって読出されて、アクセスパターンへの見通しを高めることができる。この情報は、階層化記憶システムにおいてデータを移動させるときに有益であり得る。
上記のデータ記憶装置は、ハードディスクドライブ、SSHD、光学またはテープドライブ、RAIDのような記憶サブシステム、ネットワークに接続された記憶装置、記憶領域ネットワーク、分散ファイルシステム、およびクラウドとすることができる。データ記憶装置は、周辺デバイスであってもよく、ホストマザーボード上にあってもよい。オペレーティングシステムは、Linux(登録商標)、Unix(登録商標)、Windows(登録商標)、Apple(登録商標)、Android(登録商標)ベースおよびそれらの変形とすることができる。
階層化記憶システムにおいて、ダイレクトヒントパーティションは、任意の階層における任意のメモリとすることができる。階層化記憶システムのコントローラは、次にパーティションに保存されたファイルを読出して、応じてシステムを構成するであろう。たとえば、コントローラは、低速性能階層から高速性能階層へ、低速アクセス階層から高速アクセス階層へ、あるいは、より信頼性の低い階層からより信頼性の高い階層へとデータを移動させてもよいであろう。
さまざまな実施形態に従うと、本明細書に記述される機能および方法は、コンピュータプロセッサまたはコントローラ装置において実行される1以上のソフトウェアプログラムとして実現可能である。他の実施形態に従うと、本明細書において記述される機能および方法は、ディスクドライブのようなデータ記憶装置を用いるパーソナルコンピュータのようなコンピューティングデバイスにおいて実行される1以上のソフトウェアプログラムとして実現可能である。以下に限定されないが、特定用途集積回路、プログラマブルロジックアレイ、および他のハードウェア装置のような専用のハードウェアでの実現例が、同様に、本明細書において記述される方法を実現するために構成可能である。さらに、本明細書において記述される機能および方法は、実行されたときにプロセッサにその方法を実行させる命令を保存するハードウェア部品のような、コンピュータ読取可能な記憶媒体または装置として実現可能である。本明細書において開示される機能および方法を実行するための命令は、また、コンピュータ読取可能な伝送媒体を用いて、実行するための装置に対して配布されてもよい。
本明細書において記述された実施形態の図示は、さまざまな実施形態の構造の一般的な理解を与えるためのものであることを意図する。図示は、本明細書において記述された構造または方法を利用する装置およびシステムのすべての要素および特徴の完全な記述として与えられるということを意図するものではない。当業者にとっては、本開示を検討すれば多くの他の実施形態が明らかであり得る。他の実施形態が利用可能であるとともに本開示から導き出されることができる。たとえば、構造および論理の置き換えおよび変更が、本開示の範囲を逸脱することなくなされ得る。さらに、本明細書において特定の実施形態が図示され説明されたが、同じまたは類似の目的を達成するために設計された任意の後に続く構成が、示された特定の実施形態に置き換え可能であることが理解されるべきである。
本開示は、さまざまな実施形態の任意のおよびすべての後に続く適用または変形を包含することを意図する。上記の実施形態、および本明細書において具体的に記述されていない他の実施形態の組合せが、当業者にとって記述を検討すれば明らかであるだろう。さらに、図示は、単に表現のためであって、寸法通りに描かれていない可能性がある。図示において、特定の部分が強調される一方で、他の部分が削除されている可能性がある。したがって、開示および図面は、図示のためであり、限定とみなされるものではない。

Claims (3)

  1. 第1のメモリと、
    第2のメモリと、
    前記第1のメモリおよび前記第2のメモリに結合されるコントローラとを備え、
    前記コントローラは、前記第1のメモリの第1のデータ記憶領域に記憶されるべき第1のデータを受取るように構成され、前記第1のデータは、前記第1のメモリから前記第2のメモリへと転送されるべき他のデータのインジケータを含み、
    前記コントローラは、前記第1のデータに基づいて、前記第2のメモリに、前記他のデータを保存するように構成され
    前記第1のデータは、ヘッダを含み、
    前記インジケータは、1以上の論理ブロックアドレス(LBA)であり、
    前記ヘッダは、前記1以上のLBAに関連付けられた前記他のデータが、前記第2のメモリに記憶されるべきであることを示す第2のインジケータを含む、装置。
  2. 前記第1のデータ記憶領域は、前記第1のデータを保存するために予約されたパーティションである、ダイレクトヒントパーティションである、請求項1に記載の装置。
  3. 前記コントローラは、さらに、前記ダイレクトヒントパーティションの一意識別子を検索することによって、前記第1のデータ記憶領域を決定するように構成される、請求項2に記載の装置。
JP2014257314A 2013-12-20 2014-12-19 メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置 Expired - Fee Related JP6100750B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/136,483 2013-12-20
US14/136,483 US9436408B2 (en) 2013-12-20 2013-12-20 Direct hinting for a memory device

Publications (2)

Publication Number Publication Date
JP2015158902A JP2015158902A (ja) 2015-09-03
JP6100750B2 true JP6100750B2 (ja) 2017-03-22

Family

ID=54182814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014257314A Expired - Fee Related JP6100750B2 (ja) 2013-12-20 2014-12-19 メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置

Country Status (2)

Country Link
US (2) US9436408B2 (ja)
JP (1) JP6100750B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436408B2 (en) * 2013-12-20 2016-09-06 Seagate Technology Llc Direct hinting for a memory device
US11074004B2 (en) * 2019-01-15 2021-07-27 Intel Corporation Tenant-based telemetry for persistent storage media

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002369147A (ja) * 2001-06-11 2002-12-20 Toshiba Corp データ処理装置、データ処理方法
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
JP2008027383A (ja) * 2006-07-25 2008-02-07 Toshiba Corp 情報記録装置及びその制御方法
US8103844B2 (en) * 2008-02-01 2012-01-24 Donald Rozinak Beaver Secure direct platter access
US9354857B2 (en) * 2008-03-19 2016-05-31 Lenovo (Singapore) Pte. Ltd. System and method to update firmware on a hybrid drive
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
US7916528B2 (en) * 2009-03-30 2011-03-29 Seagate Technology Llc Predictive thermal preconditioning and timing control for non-volatile memory cells
JP5631750B2 (ja) * 2010-03-19 2014-11-26 株式会社東芝 複合メモリ
US9417794B2 (en) * 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
US10528116B2 (en) * 2013-03-14 2020-01-07 Seagate Technology Llc Fast resume from hibernate
US9436408B2 (en) * 2013-12-20 2016-09-06 Seagate Technology Llc Direct hinting for a memory device

Also Published As

Publication number Publication date
US9436408B2 (en) 2016-09-06
US20160011783A1 (en) 2016-01-14
US9946479B2 (en) 2018-04-17
JP2015158902A (ja) 2015-09-03
US20170060456A1 (en) 2017-03-02

Similar Documents

Publication Publication Date Title
US9164895B2 (en) Virtualization of solid state drive and mass storage drive devices with hot and cold application monitoring
US7979631B2 (en) Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method
KR101044220B1 (ko) 비휘발성 메모리 캐시 성능 향상
JP4988008B2 (ja) 情報処理装置およびドライバ
JP5767565B2 (ja) ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US20130013861A1 (en) Caching performance optimization
US20130145094A1 (en) Information Processing Apparatus and Driver
JP2007183961A (ja) ハードディスクドライブキャッシュメモリ及び再生デバイス
JP2006134321A (ja) システムパフォーマンスを改善するための外部メモリデバイスの使用
US20080091935A1 (en) Hard disk drive with disk embedded dos boot image and firmware download method
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
US8677061B2 (en) Information processing apparatus and cache control method
KR101392062B1 (ko) 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법
JP6100750B2 (ja) メモリおよびコントローラを備える装置およびデータ記憶装置を備える装置
JP5985529B2 (ja) ハイバネーションからの迅速な再開のための装置、方法およびデバイス
US11403211B2 (en) Storage system with file priority mechanism and method of operation thereof
US10430287B2 (en) Computer
US8521988B2 (en) Control system and control method of virtual memory
JP5025670B2 (ja) 情報処理装置およびデータ記憶装置
KR102145358B1 (ko) 변경된 운영체제 환경에서 디스크의 데이터 무결성을 보호하는 방법 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
KR20110116404A (ko) 하이브리드 하드 디스크 드라이브 장치 및 그 리드/라이트 제어 방법
US11494112B2 (en) Storage device and accessing method for operation log thereof
JPWO2014091629A1 (ja) 記憶装置の管理プログラム、電子装置及び記憶装置の管理方法
JP2012216033A (ja) 情報処理装置および情報処理装置の起動方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160411

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170105

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170223

R150 Certificate of patent or registration of utility model

Ref document number: 6100750

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

LAPS Cancellation because of no payment of annual fees