JP5758386B2 - データ転送管理 - Google Patents

データ転送管理 Download PDF

Info

Publication number
JP5758386B2
JP5758386B2 JP2012519670A JP2012519670A JP5758386B2 JP 5758386 B2 JP5758386 B2 JP 5758386B2 JP 2012519670 A JP2012519670 A JP 2012519670A JP 2012519670 A JP2012519670 A JP 2012519670A JP 5758386 B2 JP5758386 B2 JP 5758386B2
Authority
JP
Japan
Prior art keywords
data transfer
write
bandwidth
module
memory
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
JP2012519670A
Other languages
English (en)
Other versions
JP2012532398A (ja
Inventor
エム. ジェデロー,ジョセフ
エム. ジェデロー,ジョセフ
Original Assignee
マイクロン テクノロジー, インク.
マイクロン テクノロジー, インク.
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 マイクロン テクノロジー, インク., マイクロン テクノロジー, インク. filed Critical マイクロン テクノロジー, インク.
Publication of JP2012532398A publication Critical patent/JP2012532398A/ja
Application granted granted Critical
Publication of JP5758386B2 publication Critical patent/JP5758386B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Facsimiles In General (AREA)

Description

〔関連出願〕
本特許出願は、2009年7月6日に出願された米国特許出願第12/498,151号からの利益の優先権を主張し、その内容が参照により本明細書に組み込まれる。
電子機器は、通常、大容量記憶装置など、それらが利用可能な一種のメモリシステムを有する。一般的な例は、ハードディスクドライブ(HDD)である。HDDは、比較的低コストで大容量記憶を可能にし、現在のコンシューマ向けHDDでは、1テラバイト以上の容量が利用可能である。HDDは、一般に、回転磁気媒体またはディスク(platter)上にデータを格納する。実際には、結果として生じるデータ信号はアナログ信号であって、その山と谷がデータパターンの磁束反転の結果である。
HDDは、その機械的な本質に起因して、ある欠点を有する。HDDは、衝撃、振動または強磁場が原因で、ダメージを受けやすいか、または過度の読み取り書き込みエラーを起こしやすい。さらに、それらは、携帯用電子機器で、比較的大量の電力を消費する。大容量記憶装置のもう1つの例は、ソリッドステートドライブ(SSD)である。回転媒体上にデータを格納する代わりに、SSDは、それらのデータを格納するために、半導体メモリ装置を利用するが、多くの場合、それらのホストシステムに対して、それらがあたかも典型的なHDDであるかのように見えるようにするインタフェースおよびフォームファクタを含む。SSDの記憶装置は非揮発性のフラッシュ記憶装置を含み得る。
本開示の技術のいくつかの実施形態は、例として示されており、添付の図に限定されるものではない。
本発明の様々な実施形態に従い、ソリッドステートドライブ(SSD)へのデータ書き込みを管理するためのシステムを示す概略図である。 本発明の様々な実施形態に従い、データ書き込みを管理するように構成されたSSDを示す概略図である。 本発明の様々な実施形態に従い、データ書き込みを管理するように構成されたSSDコントローラのモジュールを示す概略図である。 本発明の様々な実施形態に従い、SSDへのデータ書き込みの管理に関与するいくつかの変数のリストを示す表である。 本発明の様々な実施形態に従い、図4に示す表の変数における変化を示すグラフである。 本発明の様々な実施形態に従い、SSDのデータ書き込み管理のためのアルゴリズムの実装を示す状態図である。 本発明の様々な実施形態に従い、SSDのデータ書き込み管理の方法を示す流れ図である。 本発明の様々な実施形態に従い、SSDのデータ書き込み管理のためのシステム例を示す概略図である。
データ転送管理のための方法およびシステムの例が説明される。説明のための次の記述では、実施形態例に対する理解を与えるために、例固有の詳細を有する多数の例が示される。しかし、当業者には、本例が、これら例固有の詳細がなくても、かつ/または本明細書で提供されるものとは異なる組み合わせの詳細でも、実施され得ることが明白であろう。
本明細書で説明されるいくつかの実施形態例は、ホストとメモリ間のデータ転送(例えば、データ書き込み)のモニタリングを含み得る。データ転送プロファイルが評価され得、評価結果が提供され得る。将来のデータ転送が、その評価結果に基づき調整され得る。本文書では、データ転送プロファイルは、以下でより詳細に説明される通り、例えば、データ転送サイズ(例えば、転送されるバイト数)、書き込み増幅(write amplification)値、および書き込み帯域幅(write bandwidth)に関連する1つまたは複数の値などを含む。
図1は、本発明の様々な実施形態に従った、ソリッドステートドライブ(SSD)110へのデータ書き込み管理のためのシステム100を示す概略図である。システム100は、プロセッサ120などのメモリアクセス装置と通信するSSD 110を含み得る。システム100は、例えば、プロセッサ120を経由して、SSD 110の操作を制御する、SSD 110のホストシステムと見なされ得る。システム100は、SSD 110にアクセスするために、1つまたは複数のアプリケーション(ホストアプリケーション)を使用し得る。システム100のいくつかの例は、パーソナルコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、デジタルカメラ、コンピュータゲーム、デジタルメディアプレーヤ/レコーダ、および同種類のものを含み得る。
プロセッサ120は、ディスクドライブコントローラまたは他の外部プロセッサを含み得る。プロセッサ120は、通信バス130を経由してSSD 110と通信し得る。通信バス130は、プロセッサ120をSSD 110と接続するために、周知のプロトコルを使用し得る。通信バス130のタイプは、システム100で利用されているドライブインタフェースのタイプによって決まり得る。従来型のディスクドライブインタフェースバスプロトコルのいくつかの例は、Integrated Drive Electronics(IDE)、Advanced Technology Attachment(ATA)、シリアルATA(SATA)、パラレルATA(PATA)、ファイバチャネルおよび小型コンピュータシステムインタフェース(SCSI)である。他のドライブインタフェースも存在し、当技術分野で周知である。SSD 110のメモリ装置は、不揮発性フラッシュメモリ装置を含み得る。SSD 110の特徴が、データ書き込み管理に関連して、以下でより詳細に説明される。
図2は、本発明の様々な実施形態に従い、データ書き込みを管理するように構成されたSSD 110を示す概略図である。SSD 110は、通信バス130(図1)を経由してホスト(例えば、図1のプロセッサ120、またはホストアプリケーション)との通信を可能にするインタフェース230に結合されているコントローラ210を含み得る。インタフェース230は、当業者には周知の多数のコネクタの1つであり得る。これらインタフェース230コネクタのいくつかの例は、IDE、拡張IDE、ATA、SATA、およびPersonal Computer Memory Card International Association(PCMCIA)コネクタを含み得る。
SSD 110内のメモリは、複数の記憶装置に構成され得、各々が、フラッシュメモリ装置など、1つまたは複数のメモリ装置を含む。メモリ装置内の記憶域は、ブロックにグループ分けされ得る。フラッシュメモリ装置では、128キロバイト(KB)、256KBおよび512KBの記憶容量を持つブロックが一般的である。ホストは、データ読み取り/書き込み操作のために、どのフラッシュメモリ装置が現在アドレス指定されているかを意識していない可能性がある。つまり、ホストは、実際のデータ転送(例えば、読み取りまたは書き込み)でアクセスされている、どの物理ブロックアドレス(PBA)も知らない。ホストは単に、論理ブロックアドレス(LBA)を処理するだけで、これがPBAに変換される。LBAからPBAへのこの変換は、SSD 110が、論理アドレスを指定したデータ転送要求を受信した後、SSD 110内で起こり得る。
フラッシュメモリ装置では、新規のデータを書き込む前に、その新規データ用に場所を空けるために、1ブロックのメモリが消去される。例えば、ホストが4KBだけのデータ書き込みを要求すると、4KBのデータを収容するために、1ブロックのメモリ(例えば、128KB)が消去される。その要求を処理するために2つの記憶装置(各々が、128KBの記憶容量を持つブロックからそれぞれ構成される)が割り当てられる場合には、4KBのデータを収容するために、2ブロック(2つの割り当てられた記憶装置の各々から1つ)が消去される。
消去時間が、フラッシュメモリ装置のアクセス時間を遅くする主要な要因を構成し得る。従来型のメモリ装置では、データは、フラッシュメモリ内の記憶域に有限数回、書き込むことができる。書き込み可能な回数が大規模(通常、10,100〜100,000)であっても、同じ位置に繰り返し書き込むと、その位置が摩耗(wear)し得る。従って、摩耗量を均一にするため、データ書き込みを利用可能な記憶域全体に均一に分散するのが賢明である。ウェアレベリングは、コントローラ210(SSDコントローラとも呼ばれる)が管理に対して責任を持つタスクの1つと考えられる。
データをSSD 110の複数の位置に格納し、ホスト120から隠して、SSD 110に対してデータの書き込みおよび取り出しを行うため大量の操作が実行され得る。データが次第にフラグメンテーションを生じるに従い、データを適切に書き込むため十分なサイズのメモリブロックが不足し得る。この時点で、SSD 110への追加の書き込みを可能にするために、メモリブロックを再利用するため、データ再利用(当業者によりガーベッジコレクションとも呼ばれる)プロシージャが使用される。データがSSD 110内で物理的に頻繁に移動されるほど、プログラムの消去サイクルが原因でドライブがより速く摩耗し得る。
一実施形態例では、ホストのデータ転送要求を処理する際に、ホストは、コントローラ210によって考慮される、データ転送帯域幅(例えば、最低許容書き込み帯域幅などの書き込み帯域幅、または読み取り帯域幅など)を指定し得る。「データ転送帯域幅(data transfer bandwidth)」という用語は、単位時間当たりに転送されるデータ量を含むと解釈されるべきであり、通常、キロビット/秒(Kb/s)またはメガビット/秒(Mb/s)で表される。データ転送要求を処理するために、より多くの記憶装置220を割り当てる(例えば、データ転送要求の処理に使用されるブロックを持ち得る記憶装置の数を確立する)ことにより、より大規模のデータ転送帯域幅が得られる。
コントローラ210にとって関係のある別の変数は、書き込み増幅(WA:write amplification)である。「書き込み増幅」という用語は、例えば、データ書き込み処理に使用するために割り当てられたメモリサイズの、その要求を処理するために割り当てられたメモリへ書き込まれた実際のデータサイズに対する比を指す。例えば、4KBのデータのSSD 110への書き込みは、コントローラ210が、使用可能な最少数の記憶装置(記憶ユニット)で、つまり、メモリの1つの記憶装置(記憶ユニット)で書き込み操作を処理するという結果になり、それは、例えば、128KBを格納できる1ブロックを含み得る。この場合、書き込み要求を構成する4KBの実際のデータだけがそのブロックに書き込まれるとしても、1つの割り当てられた記憶装置(記憶ユニット)220の128KBデータブロック内の記憶域が消去される。これは、WAが128/4、すなわち32、という結果になり、それは、望ましくないかもしれない。
より低いWA値でのSSD 110による操作は、SSD 110内のメモリ装置のより効率的な使用に繋がり得る。より低いWA値で操作すると、より均等に分散されたウェアレベリングにもなり得るが、同時に書き込み帯域幅も低くり得る。それ故、SSD 110は、ホストによって指定される書き込み帯域幅と、そのデータ書き込みから生じるWAとの間のトレードオフに直面し得る。
SSD 110は、このトレードオフに対処するように構成できる。例えば、SSD 110は、以下に説明する実施形態に基づき、コントローラ210を使用して、記憶装置220の割り当てを調整することにより、このトレードオフを解決し得る。
図3は、本発明の様々な実施形態に従い、データ書き込みを管理するためのSSDコントローラ210のモジュールを示す概略図である。図3に示すSSDコントローラ210は、例えば、1つまたは複数のマイクロプロセッサを備え得る。SSDコントローラ210は、メモリ310、モニタリングモジュール320、評価モジュール330、および調整モジュール340を含み得る。モニタリングモジュール320、評価モジュール330、および調整モジュール340は、メモリ310、または図2の記憶装置220に格納されたソフトウェアモジュールを包含し得る。一実施形態例では、これらのモジュールは、SSDコントローラ210内の組み込みハードウェアとして実装され得る。
モニタリングモジュール320は、ホスト(例えば、図1のプロセッサ120、またはホストアプリケーション)と、図2の記憶装置220に構成されたメモリなどのメモリとの間のデータ転送をモニタリングする働きをし得る。例えば、モニタリングモジュール320は、データ転送サイズ(例えば、転送されるバイト数)、書き込み増幅(データ転送に関連するWA)、およびそのデータ転送に関連する書き込み帯域幅(BW)など、1つまたは複数のデータ転送の特性をモニタリングする能力を有し得る。実施形態例では、再利用帯域幅(例えば、ガーベッジコレクション用に確保されたプロセッサ帯域幅)および読み取り帯域幅などの他の特性もモニタリングされ得る。
モニタリングモジュール320は、モニタリングした特性に関連する1つまたは複数の値をメモリ310に格納し得る。メモリ310は、1つまたは複数の構成レジスタの形式で使用されるスタティックランダムアクセスメモリ(SRAM)を含み得る。一実施形態例では、モニタリングモジュール320は、特性値を、図2の記憶装置220に構成されたフラッシュメモリ装置に格納し得る。格納された特性値は、ホストに関連付けられ得る。
一実施形態例では、評価モジュール330は、プロセッサ(例えば、マイクロプロセッサ)を備え得る。いくつかの実施形態では、モニタリングモジュール320および/または調整モジュール340も同じプロセッサを備え得る。評価モジュール330は、一定の期間に渡って記憶された特性値(特性の値)をメモリ310から取り出す働きをし得る。評価モジュール330は、少なくとも特性値に基づき、統計値を決定し得る。例えば、評価モジュール330は、一定の期間に渡って記憶されたWAまたは書き込み帯域幅の平均値を決定し得る。評価モジュール330は、一定の期間に渡るメモリ要求サイズの平均値も決定し得る。
評価モジュール330は、1つまたは複数の特性値および/または統計値(本明細書では、総称しておよび/または個別に、「データ転送プロファイル」と呼ぶ)を1つまたは複数のターゲット値と比較し得る。評価モジュール330は、例えば、平均WAをターゲットWAと比較して、結果を調整モジュール340に報告し得る。一実施形態例では、評価モジュール330は、特性値(例えば、WA)が、以前の値に比べて改善を示していることを示し得る。
調整モジュール340は、図5に関連して、以下でより詳細に説明する通り、2つ以上の特性値および/または統計値の間の関係を評価して、将来のデータ転送を処理するために割り当てられ記憶装置(記憶ユニット)の数を調整するようなアルゴリズムを実施し得る。
当技術分野で周知のように、本開示の範囲から逸脱することなく、追加または異なるモジュールをSSD 210内で実施できる。しかし、本開示は、かかる追加のモジュールなしで理解され得る。
図4は、本発明の様々な実施形態に従った、図1のSSD 110へのデータ書き込みの管理に関わるいくつかの変数の表400である。表400の変数は、メモリ要求サイズ(KB)、WA、およびデータ転送要求を処理するために割り当てられた記憶装置(記憶ユニット)の数(すなわち、LU)である。列420は、ホスト(例えば、図1のプロセッサ120またはホストアプリケーション)によって行われたいくつかの書き込み要求サイズをリストする。図2のコントローラ210は、データ書き込み用に、いくつかの記憶装置を割り当てることにより、各要求に応答し得る。列430、440、450、および460は、それぞれ、データ書き込み要求に対する2、4、6、および10の記憶装置(すなわち、2、4、6、および10 LUの各々ら1ブロック)の割り当てから生じた対応するWA値を表す。表400では、記憶装置の各ブロックは、128KBの記憶容量を持つと仮定される。他の容量も使用され得る。表400のデータは、図5に示すグラフにも示されている。
図5は、本発明の様々な実施形態に従った、図4に示す表400の変数における変化を示すグラフ500である。グラフ500は、データ書き込み要求を処理するために割り当てられた異なる数の記憶装置(記憶ユニット)に対するデータ書き込み要求サイズの関数として、WAの変化を示す。曲線510、520、530、および540の各々毎に、割り当てられた記憶装置の対応する数が、LU=2、4、6、および10として、グラフの凡例に示されている。グラフ500を見て分かるように、一般的な傾向は、要求されたデータ書き込みサイズの増加に伴って、WAが減少する。小規模なデータ書き込み要求サイズ(例えば、128KB未満)に対して、コントローラ210は、単一の記憶装置(要求を処理するために、単一の記憶装置からの単一ブロックが使用される)を割り当てる以外に選択肢がない可能性がある。しかし、要求されたデータ書き込みのサイズが増加するに従って、コントローラ210は、より多くの選択肢を持ち得る。
例えば、要求されたデータ書き込みのサイズが512KBに等しい場合、図2のコントローラ210は、4つの記憶装置を割り当て得、この場合、書き込み増幅は値1になる。そのデータ書き込み要求に対して8つの記憶装置を割り当てることを選択する場合、コントローラは、2の書き込み増幅を達成し得る。各記憶装置に対して128KBの記憶容量を仮定すると、1〜2の好ましいWAは、128KBより大きいデータ書き込み要求サイズで起こることが示されている。
図6は、本発明の様々な実施形態に従い、SSDデータ書き込み管理のためのアルゴリズムの実装を示す状態図600である。図3の調整モジュール340は、状態図600に示すアルゴリズムを実装し得る。状態図600は、いくつかの状態およびその状態間の遷移を示す。その状態は、図2のコントローラ210による、図1のSSD 110へのデータ書き込みに関連する、書き込みBWおよびWAなどの、変数によって定義され得る。望ましい状態610では、書き込み帯域幅は、BW0より大きいと考えられ、好ましい書き込み増幅は、WA1より小さいと考えられる。書き込み増幅BW0に対する下限またはWAに対する許容範囲(例えば、WA1とWA2の間)も、ホストによって指定され得る。例えば、ホストのユーザーは、70%読み取り、書き込みの30%および500Mb/sの最小書き込みBWなど、望ましい書き込みスループットのターゲットを指定し得る。ユーザーは、そのターゲット値をSSDコントローラ210(例えば、図3のメモリ310に)に格納し得る。
許容できる状態620では、書き込み帯域幅がBW0より大きく、WAが許容範囲内(例えば、WA2より小さく、かつ、WA1より大きい)である。アルゴリズムの目的は、他の全ての状態から、望ましい状態610または許容できる状態620に移行させることである。例えば、図3の調整モジュール340によって考えられている最初の状態は、状態630であると考えられ得る。この状態に入る前に、図2のコントローラ210は、図1のSSD 110上のN個の記憶装置を割り当てることにより、データ書き込み要求を処理している。かかる割り当ての結果は、図3のモニタリングモジュール320によってモニタリングされる通り、BW0より小さい書き込み帯域幅、およびWA1より小さいWAである。この状況に基づき、調整モジュール340はその状態を調整し得る。
調整モジュール340は、データ書き込み要求に対してより多くの記憶装置を割り当てることにより、状況を調整しようとし得る。これにより、望ましい状態610、許容できる状態620、または、状態640など、別の状態への遷移を引き起こし得る。状態640で、WAは許容範囲(許容できる範囲)内であるが、書き込み帯域幅はBW0より小さい。書き込み帯域幅を増加するため、調整モジュール340は、さらに多くの記憶装置を割り当てることにより、状況を改善しようとし得る。より多くの記憶装置の割り当てると、望ましい状態610、許容できる状態620、または状態650に入るという結果になり得る。
状態650は、帯域幅は許容値(許容できる値)まで増加しているが、WAは許容範囲外であるため、十分な数の記憶装置よりも多くを割り当てた結果と思われる。その状況は、図3の調整モジュール340に、割り当てられた記憶装置の数を減らさせ、その結果、望ましい状態610または許容できる状態620のいずれかに入ることになり得る。それは状態660に入ることにもなり得、これは、書き込み帯域幅および書き込み増幅のいずれも、状態620で指定された許容範囲内にないため、許容できない。従って、状態660からの次の遷移は、状態650に戻り、割り当てる記憶装置数に対して別の値(例えば、以前に試した値よりも大きな値)を試すことであろう。
実施形態例では、調整モジュール340は、記憶装置数に対して行われた調整や、各遷移の後のモニタリング結果(例えば、書き込みBW、およびWA)などの遷移情報を、図3のメモリ310に格納し得る。調整モジュール340は、その遷移情報を使用して、中間状態を回避することを試みかつ、図6のそれぞれ望ましいまたは許容できる状態610および620に直接移行することにより、その効率を高め得る。それぞれ、望ましいまたは許容できる状態610および620への直接移行がいずれも可能でない状況では、調整モジュール340は、WA値を更に大幅に引き下げようとし得る。
図7は、本発明の様々な実施形態に従い、SSDデータ書き込み管理の方法700を示す流れ図である。操作710で、図3のモニタリングモジュール320は、ホストと、図1のSSD 110の記憶装置220に構成されたメモリなどのメモリとの間のデータ転送をモニタリングし得る。モニタリングモジュール320は、一定の期間に渡ってデータ転送をモニタリングし得る。その期間は、データ転送に関連するトラフィック量によって決まり得る。図3の評価モジュール330は、操作720で、データ転送を評価して、評価結果を提供し得る。
評価結果は、WA,データ転送BW,および/または記憶装置数を含む、特性値を含み得る。いくつかの実施形態例では、特性値は追加または代替として、再利用帯域幅および読み取り帯域幅を含み得る。評価モジュール330は、少なくとも、特性値の平均値(例えば、一定の期間に渡る平均書き込み増幅)などのモニタリングした特性値に基づいて、統計値を決定し得る。
評価モジュール330は、特性値および/または統計値の少なくとも1つが、ホストによって指定された通り、1つまたは複数のターゲット値を満足するか否かを示す評価結果を提供し得る。分岐記号730で、評価結果が満足できる場合、制御は操作710に移る。そうでない場合は、操作740で、図3の調整モジュール340が、例えば、その評価結果に基づき、データ転送の特性の調整に使用され得る。アルゴリズムは、前述の通り、図3の調整モジュール340によって実装され得る。例えば、調整モジュール340は、書き込み帯域幅、書き込み増幅、および記憶装置数などの特性を調整する働きをする。
図3の調整モジュール340は、この操作を実行し得る。調整モジュール340は、前述の通り、評価結果に基づき、1つまたは複数のデータ転送の特性を変更するか、または特性を変更しないように機能し得る。例えば、データ書き込み要求を処理するために割り当てられた記憶装置(記憶ユニット)数が適切である場合(これは、入った状態が、それぞれ望ましいまたは許容できる状態610または620の場合に、適切であると判断される)、調整モジュール340は、割り当てられた記憶装置数を変更しない可能性がある。データ書き込み要求に対して割り当てられた記憶装置数が(例えば、書き込みBWがBW0より小さいことによって示されるように)適切でない場合、調整モジュール340は、書き込みBWを改善するために、より多くの記憶装置を割り当てることにより、その状況を改善し得る。
図8は、本発明の様々な実施形態に従い、SSDデータ書き込みを管理するためのシステム例800を示す概略図である。システム800は、プロセッサ810、メモリ820、メモリコントローラ830、グラフィックコントローラ840、および入出力(I/O)コントローラ850、ディスプレイ852、キーボード854、ポインティングデバイス856、および周辺機器858を含み得る。バス860がこれらの装置全てを連結する。クロック発生器870は、バス860を経由して、システム800の少なくとも1つの装置にクロック信号を提供する。クロック発生器870の一例は、マザーボードなどの回路基板内の発振器を含み得る。システム800に示す2つ以上の装置が単一チップ内に構成され得る。
メモリ820は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックRAM、またはフラッシュメモリを含む不揮発性メモリを含み得る。バス860は、回路基板上の相互接続配線(interconnect trace)であり得るか、または1つまたは複数のケーブルであり得る。バス860はまた、システム800の各装置を、例えば、電波などの電磁波放射によるなどの無線手段により、結合し得る。周辺機器858は、プリンタ、ディスクドライブ装置(例えば、CD−ROMおよびDVD読み取り装置および書き込み装置などの光デバイス、フロッピィディスクドライバなどの磁気デバイス読み取り装置および書き込み装置など)、またはマイクロホンなどのオーディオ装置を含み得る。
図8によって表されるシステム800は、コンピュータ(例えば、デスクトップ、ラップトップ、ハンドヘルド、サーバー、Webアプライアンス、ルーター、など)、無線通信装置(例えば、携帯電話、コードレス電話、ポケットベル、携帯情報端末、など)、コンピュータ関連周辺機器(例えば、プリンタ、スキャナ、モニター、など)、娯楽機器(例えば、テレビ、ラジオ、ステレオ、テープおよびコンパクトディスクプレーヤ、ビデオカセットレコーダ/プレーヤ、ビデオカメラ、デジタルカメラ、MP3(Motion Picture Experts Group、Audio Layer 3)プレーヤ/レコーダ、テレビゲーム、時計、など)、および同種類のものを含み得る。
実施形態例では、周辺機器858は、本明細書で説明した1つまたは複数の方法または機能を具体化する1つまたは複数の命令セット(例えば、ソフトウェア)が格納されている機械可読媒体を含み得る。メモリ820およびプロセッサ810も機械可読媒体を備え、その命令は、コンピュータシステム800によるその実行中にはメモリ820内および/またはプロセッサ810内にも、完全にまたは少なくともその一部が常駐し得る。
機械可読媒体は、実施形態例では単一媒体として示されているが、「機械可読媒体」という用語は、1つまたは複数の命令セットを格納する単一媒体または複数媒体(例えば、集中または分散データベース、および/または関連するキャッシュおよびサーバー)を含むと解釈されるべきである。「機械可読媒体」という用語はまた、機械で実行するための命令セットの格納、コード化、または持ち運びが可能であって、機械に本発明の任意の1つまたは複数の方法を実行させる任意の媒体を含むとも解釈されるべきである。「機械可読媒体」という用語は、従って、ソリッドステートメモリならびに光および磁気媒体を含むが、それらに限定されない、と解釈されるべきである。
SSDデータ書き込み操作を管理するための特定の方法およびシステムを説明してきたが、これらの実施形態に対して様々な修正および変更がなされ得ることは明らかであろう。それ故、明細書および図は、限定的意味ではなく、例示として考えられる。
発明の概要は、技術開示の本質を読者が素早く確認できるようにする要約を必要とする、米国特許規則37 C.F.R.§1.72(b)に従うために提供されている。それは、特許請求の範囲の解釈または限定に使用されないという了解の下で提示されている。さらに、前述した発明の詳細な説明では、本開示を簡素化する目的で、様々な特徴が単一の実施形態にまとめられているのが見られるであろう。開示のこの方法は、特許請求の範囲を制限するものと解釈されてはならない。従って、次の特許請求の範囲は、各請求項がそのまま別個の実施形態として、本明細書により発明の詳細な説明に組み込まれる。

Claims (28)

  1. ホストとメモリとの間のデータ転送をモニタリングすることと、
    前記データ転送を評価して、その評価結果を提供することであって、前記評価することは、少なくとも、前記データ転送に関連する書き込み帯域幅及び書き込み増幅を評価することを含む、ことと、
    少なくとも前記評価結果に基づき、別のデータ転送の書き込み帯域幅、書き込み増幅および記憶ユニットの数のうちの少なくとも一つを調整することと、
    を含み、
    前記調整することは、
    前記書き込み帯域幅が最低許容書き込み帯域幅よりも小さく、かつ、前記書き込み増幅が、許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を増加させることと、
    前記書き込み帯域幅が前記最低許容書き込み帯域幅よりも大きく、かつ、前記書き込み増幅が前記許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を減少させることと、
    を含む、方法。
  2. 前記データ転送が、前記メモリへの書き込み又は前記メモリからの読み取りのうちの少なくとも1つを含む、請求項1に記載の方法。
  3. 前記ホストがメモリアクセス装置を含み、前記メモリが、フラッシュメモリを含む不揮発性メモリを含む、請求項1に記載の方法。
  4. 前記ホストが、データ転送帯域幅、および/または、許容できる書き込み増幅の範囲を指定する、請求項1に記載の方法。
  5. 前記データ転送を評価することが、前記データ転送の特性を評価することを更に含み、
    前記特性が、前記書き込み増幅と、前記書き込み帯域幅と、前記データ転送のサイズ、再利用帯域幅、または読み取り帯域幅のうちの少なくとも1つと、を含む、請求項1に記載の方法。
  6. 一定の期間に渡って、前記評価された特性に関連する値を格納することをさらに含み、前記期間が、前記データ転送に関連するトラフィック量に依存する、請求項1に記載の方法。
  7. 少なくとも前記特性に関連する前記値に基づいて統計値を決定することをさらに含む、請求項6に記載の方法。
  8. 前記統計値が平均値を含む、請求項7に記載の方法。
  9. 前記評価することが、前記特性の値および/または前記統計値のうちの少なくとも1つを、ターゲット値と比較することを含む、請求項8に記載の方法。
  10. 前記提供された評価結果が、前記特性の値および/または前記統計値のうちの少なくとも1つが前記ターゲット値を満足するか否かを示す、請求項9に記載の方法。
  11. 前記提供された評価結果が、前記特性が改善を示しているか否かを示す、請求項5に記載の方法。
  12. 前記調整することが、前記別のデータ転送の特性を調整することを含む、請求項1に記載の方法。
  13. 前記別のデータ転送の特性を調整することが、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を調整することを含む、請求項12に記載の方法。
  14. 前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を調整することが、前記評価結果に基づき、前記数を変更しないことを含む、請求項13に記載の方法。
  15. ホストとメモリとの間のデータ転送をモニタリングするためのモニタリングモジュールと、
    前記データ転送に関連する少なくとも書き込み帯域幅及び書き込み増幅を評価して、その評価結果を提供する評価モジュールと、
    少なくとも前記評価結果に基づき、別のデータ転送の書き込み帯域幅、書き込み増幅および記憶ユニットの数のうちの少なくとも一つを調整するための調整モジュールと、
    を備え、
    前記調整モジュールは、
    前記書き込み帯域幅が最低許容書き込み帯域幅よりも小さく、かつ、前記書き込み増幅が、許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を増加させ、また、
    前記書き込み帯域幅が前記最低許容書き込み帯域幅よりも大きく、かつ、前記書き込み増幅が前記許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を減少させる、記憶装置コントローラ。
  16. 前記モニタリングモジュールが、前記データ転送の特性をモニタリングするためのモジュールであり、前記特性が、前記書き込み増幅と、前記書き込み帯域幅と、前記データ転送のサイズ、再利用帯域幅、および/または読み取り帯域幅のうちの少なくとも1つと、を含む、請求項15に記載のコントローラ。
  17. 一定の期間に渡って前記特性の値を格納するためのメモリをさらに備え、前記期間が、前記データ転送に関連するトラフィック量に依存する、請求項16に記載のコントローラ。
  18. 前記評価モジュールが、前記期間に渡って格納された前記特性の値を取り出すためのモジュールである、請求項17に記載のコントローラ。
  19. 前記評価モジュールが、1つまたはそれ以上のプロセッサを備える、請求項15に記載のコントローラ。
  20. 前記評価モジュールが、前記特性の値に関連した統計値を決定するためのモジュールであり、前記統計値が平均値を含む、請求項17に記載のコントローラ。
  21. 前記評価モジュールが、前記特性の値および/または前記統計値のうちの少なくとも1つをターゲット値と比較するためのモジュールである、請求項20に記載のコントローラ。
  22. 前記評価モジュールが、前記特性の値および/または前記統計値のうちの少なくとも1つが前記ターゲット値を満足するか否かを判断するためのモジュールである、請求項21に記載のコントローラ。
  23. 前記評価モジュールが、前記特性の値のうちの少なくとも1つが改善を示しているか否かを判断するためのモジュールである、請求項17に記載のコントローラ。
  24. 前記調整モジュールが、前記特性の値および/または前記統計値に対するターゲット値を達成するよう、いくつかの遷移において前記記憶ユニットの数を調整するためのモジュールであって、遷移情報が、メモリに格納され、かつ、調整効率を改善するために使用される、請求項15に記載のコントローラ。
  25. 前記記憶ユニットがメモリブロックを含む、請求項15に記載のコントローラ。
  26. メモリアクセス装置と、
    前記メモリアクセス装置に結合された記憶装置と、
    を備えるシステムであって、
    前記記憶装置は、
    メモリと、
    前記メモリアクセス装置と前記メモリとの間のデータ転送をモニタリングするためのモニタリングモジュールと、
    前記データ転送に関連する少なくとも書き込み帯域幅及び書き込み増幅を評価して、その評価結果を提供する評価モジュールと、
    少なくとも前記評価結果に基づき、別のデータ転送の書き込み帯域幅、書き込み増幅および記憶ユニットの数のうちの少なくとも一つを調整するための調整モジュールと、
    を備え、
    前記調整モジュールは、
    前記書き込み帯域幅が最低許容書き込み帯域幅よりも小さく、かつ、前記書き込み増幅が許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を増加させ、また、
    前記書き込み帯域幅が前記最低許容書き込み帯域幅よりも大きく、かつ、前記書き込み増幅が前記許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を減少させる、システム。
  27. 前記メモリが、フラッシュメモリを含む不揮発性メモリを含む、請求項26に記載のシステム。
  28. 命令を格納する機械可読媒体であって、
    前記命令が1つまたはそれ以上のプロセッサによって実行される場合に、
    前記命令は、
    ホストとメモリとの間でのデータ転送をモニタリングすることと、
    前記データ転送に関連する少なくとも書き込み帯域幅及び書き込み増幅を評価して、その評価結果を提供することと、
    少なくとも前記評価結果に基づき、別のデータ転送の書き込み帯域幅、書き込み増幅および記憶ユニットの数のうちの少なくとも一つを調整することと、
    を実行し、
    前記調整することは、
    前記書き込み帯域幅が最低許容書き込み帯域幅よりも小さく、かつ、前記書き込み増幅が許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を増加させることと、
    前記書き込み帯域幅が前記最低許容書き込み帯域幅よりも大きく、かつ、前記書き込み増幅が前記許容できる範囲にある場合に、前記別のデータ転送を処理するために割り当てられる前記記憶ユニットの数を減少させることと、
    を含む、機械可読媒体。
JP2012519670A 2009-07-06 2010-07-06 データ転送管理 Active JP5758386B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/498,151 US8291131B2 (en) 2009-07-06 2009-07-06 Data transfer management
US12/498,151 2009-07-06
PCT/US2010/041070 WO2011005763A2 (en) 2009-07-06 2010-07-06 Data transfer management

Publications (2)

Publication Number Publication Date
JP2012532398A JP2012532398A (ja) 2012-12-13
JP5758386B2 true JP5758386B2 (ja) 2015-08-05

Family

ID=43413233

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012519670A Active JP5758386B2 (ja) 2009-07-06 2010-07-06 データ転送管理

Country Status (7)

Country Link
US (3) US8291131B2 (ja)
EP (1) EP2452267B1 (ja)
JP (1) JP5758386B2 (ja)
KR (1) KR101600467B1 (ja)
CN (1) CN102473147B (ja)
TW (1) TWI485562B (ja)
WO (1) WO2011005763A2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US20100250830A1 (en) * 2009-03-27 2010-09-30 Ross John Stenfort System, method, and computer program product for hardening data stored on a solid state disk
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management
US9792074B2 (en) * 2009-07-06 2017-10-17 Seagate Technology Llc System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8429436B2 (en) 2009-09-09 2013-04-23 Fusion-Io, Inc. Apparatus, system, and method for power reduction in a storage device
US8984216B2 (en) * 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
JP5917163B2 (ja) * 2011-01-27 2016-05-11 キヤノン株式会社 情報処理装置、その制御方法及びプログラム並びに記憶媒体
US8671249B2 (en) * 2011-07-22 2014-03-11 Fusion-Io, Inc. Apparatus, system, and method for managing storage capacity recovery
US8850153B2 (en) * 2011-09-30 2014-09-30 International Business Machines Corporation Enabling throttling on average write throughput for solid state storage devices
US9329948B2 (en) 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
CN105103234A (zh) * 2012-11-20 2015-11-25 查尔斯·I·派德尔 固态驱动器体系结构
US11037625B2 (en) * 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
US9092146B2 (en) 2013-06-28 2015-07-28 International Business Machines Corporation Dynamically varying transfer size in a storage device for improved performance
US9348520B2 (en) * 2014-03-24 2016-05-24 Western Digital Technologies, Inc. Lifetime extension of non-volatile semiconductor memory for data storage device
US9342255B2 (en) * 2014-06-10 2016-05-17 International Business Machines Corporation Transfer size monitor, determination, and optimization engine for storage devices
JP6691284B2 (ja) 2014-08-11 2020-04-28 富士通株式会社 情報処理装置、ストレージシステムおよび通信制御プログラム
US9678677B2 (en) * 2014-12-09 2017-06-13 Intel Corporation Determining adjustments to the spare space in a storage device unavailable to a user based on a current consumption profile of a storage device
US9569136B2 (en) 2015-04-29 2017-02-14 International Business Machines Corporation Smart load balancing replication when adding or removing storage disks in a distributed storage system
CN105487823B (zh) * 2015-12-04 2018-06-05 华为技术有限公司 一种数据迁移的方法及装置
US10156999B2 (en) * 2016-03-28 2018-12-18 Seagate Technology Llc Dynamic bandwidth reporting for solid-state drives
CN107422995B (zh) * 2017-08-08 2020-06-19 苏州浪潮智能科技有限公司 一种固态硬盘写带宽调整方法及装置
US10733114B2 (en) * 2018-08-28 2020-08-04 International Business Machines Corporation Data cache performance
US11573962B2 (en) * 2018-10-19 2023-02-07 Oracle International Corporation Dynamic performance tuning based on implied data characteristics
US11568179B2 (en) 2018-10-19 2023-01-31 Oracle International Corporation Selecting an algorithm for analyzing a data set based on the distribution of the data set
US11163485B2 (en) * 2019-08-15 2021-11-02 International Business Machines Corporation Intelligently choosing transport channels across protocols by drive type
KR20210074876A (ko) 2019-12-12 2021-06-22 삼성전자주식회사 호스트 장치와 인터페이스를 수행하는 스토리지 장치 및 이의 동작 방법
CN114398303B (zh) * 2022-01-19 2022-10-28 扬州万方科技股份有限公司 一种实现低延时的数据传输方法及系统
CN114691698B (zh) * 2022-04-24 2022-11-08 山西中汇数智科技有限公司 一种计算机系统的数据处理系统及方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4841070B2 (ja) * 2001-07-24 2011-12-21 パナソニック株式会社 記憶装置
US7181578B1 (en) * 2002-09-12 2007-02-20 Copan Systems, Inc. Method and apparatus for efficient scalable storage management
AU2003261090A1 (en) * 2002-09-12 2004-04-30 Copan Systems, Inc. Method and apparatus for power-efficient high-capacity scalable storage system
KR101404083B1 (ko) 2007-11-06 2014-06-09 삼성전자주식회사 반도체 디스크 및 그것의 동작 방법
JP2006195569A (ja) * 2005-01-11 2006-07-27 Sony Corp 記憶装置
JP2006228138A (ja) * 2005-02-21 2006-08-31 Canon Inc 半導体記憶装置、記憶制御方法および情報機器
JP4473175B2 (ja) * 2005-05-13 2010-06-02 富士通株式会社 記憶制御方法、プログラム及び装置
TW200746161A (en) * 2005-12-21 2007-12-16 Nxp Bv Power partitioning memory banks
JP4932427B2 (ja) * 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
CN101174994A (zh) * 2006-11-01 2008-05-07 英业达股份有限公司 网络卡测试系统及其方法
TW200823667A (en) * 2006-11-24 2008-06-01 Phison Electronics Corp Single-serial-port-to-multiple-parallel-port high-speed data transmission device with SATA interface
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US7853759B2 (en) * 2007-04-23 2010-12-14 Microsoft Corporation Hints model for optimization of storage devices connected to host and write optimization schema for storage devices
US8438356B2 (en) * 2007-10-01 2013-05-07 Marvell World Trade Ltd. Flash memory controller
US8244995B2 (en) * 2008-10-30 2012-08-14 Dell Products L.P. System and method for hierarchical wear leveling in storage devices
WO2010144587A2 (en) * 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US8291131B2 (en) 2009-07-06 2012-10-16 Micron Technology, Inc. Data transfer management

Also Published As

Publication number Publication date
US20130042030A1 (en) 2013-02-14
EP2452267B1 (en) 2016-03-23
US20110004722A1 (en) 2011-01-06
TW201107979A (en) 2011-03-01
CN102473147B (zh) 2015-07-22
US8291131B2 (en) 2012-10-16
US20140223069A1 (en) 2014-08-07
US9047273B2 (en) 2015-06-02
WO2011005763A3 (en) 2011-04-14
TWI485562B (zh) 2015-05-21
US8706929B2 (en) 2014-04-22
WO2011005763A2 (en) 2011-01-13
JP2012532398A (ja) 2012-12-13
KR101600467B1 (ko) 2016-03-14
KR20120058506A (ko) 2012-06-07
EP2452267A2 (en) 2012-05-16
CN102473147A (zh) 2012-05-23
EP2452267A4 (en) 2013-07-17

Similar Documents

Publication Publication Date Title
JP5758386B2 (ja) データ転送管理
JP5907255B2 (ja) Lsb及びmsbページにおける選択的データ記憶
US10042586B2 (en) Managing operational state data in memory module
CN111506516A (zh) 数据存储装置及数据存储装置的操作方法
US20160350025A1 (en) Data storage device
US11392309B2 (en) Memory system for performing migration operation and operating method thereof
KR102681181B1 (ko) 메모리 시스템 및 그것의 동작방법
US20220269609A1 (en) Apparatus and method for improving input/output throughput of memory system
KR20150055413A (ko) 데이터 저장 장치
US11922062B2 (en) Controller and operating method thereof
US11409444B2 (en) Memory system and operation method thereof
KR20200115831A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20150041873A (ko) 데이터 처리 시스템
TWI749903B (zh) 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法
US9652172B2 (en) Data storage device performing merging process on groups of memory blocks and operation method thereof
US11586239B2 (en) Electronic device and method for controlling device clock frequencies based on detected link information
WO2018041258A1 (zh) 去分配命令处理的方法与存储设备
KR20230081505A (ko) 메모리 컨트롤러 및 그의 동작 방법
KR20190102998A (ko) 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법
KR102721567B1 (ko) 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법
US20220156003A1 (en) Controller and operation method thereof
KR20200114354A (ko) 메모리 시스템 및 그것의 동작 방법
JP2020115275A (ja) 情報処理装置およびプログラム
KR20180039340A (ko) 데이터 처리 시스템

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130603

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130603

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140424

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140424

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140523

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140625

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140625

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140723

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20150323

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150603

R150 Certificate of patent or registration of utility model

Ref document number: 5758386

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

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