JP6893897B2 - ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 - Google Patents
ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 Download PDFInfo
- Publication number
- JP6893897B2 JP6893897B2 JP2018084363A JP2018084363A JP6893897B2 JP 6893897 B2 JP6893897 B2 JP 6893897B2 JP 2018084363 A JP2018084363 A JP 2018084363A JP 2018084363 A JP2018084363 A JP 2018084363A JP 6893897 B2 JP6893897 B2 JP 6893897B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- valid data
- stream identifier
- response
- stream
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Description
該SSDは、
データを格納するフラッシュメモリと、
フラッシュメモリへのデータのライト(write)及びフラッシュメモリからのデータのリード(read)を管理するSSDコントローラと、を含み、
前記SSDコントローラは、
データの属性に応答してストリーム識別子(ID)を選択する自動ストリーム検出ロジックと、
ガーベッジコレクションのために、フラッシュメモリ内の消去ブロックを選択し、自動ストリーム検出ロジックにより決定された第1ストリームIDに応答して第2ブロックに消去ブロックの有効データをプログラムするガーベッジコレクションロジックと、を含み、
自動ストリーム検出ロジックはガーベッジコレクションロジックがガーベッジコレクションのために消去ブロックを選択した後、第1ストリームIDを決定するように動作する。
SSDコントローラは、ホストコンピュータ上のアプリケーションからのリクエスト(request)を管理する入出力(I/O)キューを含み、
ガーベッジコレクションロジックは入出力キューに有効データに対するライト(write)リクエストを配置するライト(write)リクエストロジックを含む。
ガーベッジコレクションロジックは有効データをプログラムする前に、自動ストリーム検出ロジックから第1ストリームIDを要請するように動作するものの、
ガーベッジコレクションロジックは、
第1ストリームIDに応答して第2ブロックを選択するブロック選択ロジックと、及び第2ブロックに有効データを書き込むプログラミングロジックと、を包含する。
ガーベッジコレクションのためのソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
プログラミングを要請する消去ブロックの有効データを識別するステップと、及び
第2ブロックに消去ブロックの有効データをプログラミングするステップと、を包含するものの、第2ブロックはストリーム識別子(ID)に応答して選択され、ストリームIDはプログラムを要請する消去ブロックの有効データを識別するステップが識別された後に、有効データの属性に応答して決定される。
プログラミングを要請する消去ブロックの有効データを識別するステップの以前に、
アプリケーションからライトリクエストの有効データをSSDから受信するステップと、
有効データの属性に応答して第2ストリームIDを決定するステップと、
第2ストリームIDに応答して消去ブロックを選択するステップと、及び
第2ブロックに有効データを書き込むステップと、をさらに包含する。
有効データの属性に応答して、有効データに対するストリームIDを決定するステップと、
ストリームIDに応答して第2ブロックを選択するステップと、
第2ブロックに有効データをプログラムするステップと、を包含する。
ガーベッジコレクションのために、ソリッドステートドライブ(SSD)において消去ブロックを識別するステップと、
消去ブロックにおいてプログラムを要請する有効データを識別するステップと、
ストリーム識別子(ID)に応答して選択された第2ブロックに、消去ブロックの有効データをプログラムする(書き込む)ステップと、
ここで、ストリームIDはプログラミング(書き込み)を要請する消去ブロックが識別され、前記識別された消去ブロックの有効データを識別するステップがなされた後に、前記有効データの属性に応答して決定される。
有効データの属性に応答して第2ストリームIDを決定するステップと、
第2ストリームIDに応答して消去ブロックを選択するステップと、
消去ブロックに有効データを書き込むステップと、を、マシンにより実行される時、発生させる命令語を更に格納する。
有効データの属性に応答して有効データに対するストリームIDを決定するステップと、
ストリームIDに応答して第2ブロックを選択するステップと、
第2ブロックに有効データをプログラムするステップと、を包含する。
SSDコントローラ310はフラッシュメモリチップ315−1〜315−8上のガーベッジコレクションの動作と共に、リード及びライト動作を管理する。SSDコントローラ310は、斯かる管理の一部を遂行するフラッシュ変換階層325を包含する。SSDコントローラ310の機能の本願に係る詳細については、図7などを参照して後述する。図3は、4個のチャンネル320−1〜320−4として組織化された8個のフラッシュメモリチップ315−1〜315−8を包含するSSD120を図示するが、本発明の実施例は任意の個数のチャンネルとして組織された任意の個数のフラッシュメモリチップを支援できる。
斯かるチャンクは、消去ブロック又はスーパーブロック(superblocks)と命名され、任意の個数のページを包含できる。或るブロックがガーベッジコレクションの対象になると、現ブロック中の全てのページはフリー状態に遷移する。よって、現ブロック中の任意の現在有効データは、現ブロック中のページが消去される前に、何処か他のブロックのフラッシュメモリのフリーページに書き込まれ(斯かる処理過程はプログラム(プログラミング)と命名される)なければならない。
もしも、ガーベッジコレクションがブロック中の任意のデータが無効化されると直ちに、スタートすると仮定するならば、SSDは該ブロック中の有効ページから他のページにデータを移すのに相当膨大な時間を消費しなければならないはずである。消去ブロックからの有効データを他のページにプログラムすること自身が、それによる相当膨大なオーバヘッドを惹起するが、その事実を脇に措くとしても、フラッシュメモリは典型的に、限定された回数以上に書き込み(プログラム)アクセスされると信頼性が低下する(又は、より悪い場合には、使用不能になる)。
よって、消去ブロックからの有効データをプログラムするのに消費される時間量を最小化することが要求される。但し、同時に、ガーベッジコレクションは、消去ブロックの全てのページが無効としてマーキングされるまで遅延することはできない。フラッシュメモリはその全てのブロックが、有効又は無効としてマーキングされたページだけを含む(即ち、フリーページを含まない)状態になると、これは、これ以上データを該フラッシュメモリに書き込めないことを意味する。
アップデート頻度625:書き込まれたデータがどの程度頻繁にアップデート(現在データが書き込まれる場所のページを無効化する)されるであろうと期待されるか。
最新性630:書き込まれたデータのLBAが、どの程度近い以前に書き込まれたか。
ライトサイズ635:(同じ時期になされた他のライトに関するサイズに対して相対的な)書き込まれるべきデータのサイズ。
ライト時間640:(同じ時期になされた他のライトに関する書き込み時間に対して相対的な)データの書き込み時間。
リード頻度645:(他のデータのリード頻度に対して相対的に)リードされるべきデータがどの程度頻繁にリードされたか。
リード温度650:リードされるべきデータの“温度”、即ち、リードされるべきデータが“ホット(hot)”と考慮されるか“クール(cool)”と考慮されるか。
別の言葉で言えば、もし図5の有効データ510−3がこの時新しいライトリクエストの対象として受信されたと仮定すると、図5の有効データ510−3は、元来書き込まれた時に割り当てられたストリームと異なるストリームに割り当てられるであろう。図5の有効データ510−3をプログラムする時にストリームIDをアップデートすることの長所は、元来のストリームIDが図5の有効データ510−3を書き込むためのブロックを選択するのに使用されると仮定した場合に生起するであろう属性よりも、さらに類似した属性を有するデータを格納するブロックに有効データ510−3がプログラムされ得るという点である。
このような方式でライト(write)リクエストが処理される場合、有効データ510−3は、図1のSSD120の新たなページに書き込まれる。図1のSSD120の観点からは、このようなライト(write)リクエストは、図1のマシン105上を走るアプリケーションによって提起されるライト(write)リクエストと異なることはなく、同様に処理される。一旦ライト(write)リクエストが図7のI/Oキュー710に伝達されると、消去ロジック810は図5の消去ブロック505−2を消去する。ガーベッジコレクションロジック715は消去ロジック810を開始する前に、有効データが新たなページに書き込まれることを待つ必要のない点に留意されたい。何故ならば、該有効データは図7のI/Oキュー710内に完全に存在し、順に書き込まれるであろうから。もちろん、電力障害のような想定外の状況によってもデータが消失しないことを保証され場合には、消去ロジック810は図5の消去ブロック505−2を消去処理する前に、データの書き込みが成功するまで待たねばならない。但し、図1のSSD120がこのような保証を提供する場合は、想定外の状況によってもデータが消失しないように図7のI/Oキュー710のデータを保証する他のメカニズムが既に図1のSSD120内に通常、存在する。
図7のガーベッジコレクションロジック715は、図1のSSD120が異常に低いフリーページカウントを示す場合に開始され得る。但し、このような状況が発生すれば、有効データのプログラミング(書き込み)は何れにしても発生し、元来のライト(write)リクエストの書き込み遅延に対しては類似の影響を予期せざるを得ない。よって、有効データ510−3をプログラムする際に、あたかも元来のライト(write)リクエストの場合のようにI/Oキュー710を使用することは、伝統的な従来のガーベッジコレクションにおけるよりも大きい影響を惹起する可能性がない。そして、有効データ510−3は、残余寿命などの類似する属性を有する他のデータと共に配置される可能性が大きいので、ガーベッジコレクションの性能は、将来の有効データに対するプログラミング(書き込み)の機会を低減することにより、向上できる。
ブロック選択ロジック815は、図7の自動ストリーム検出ロジック415から受信されたストリームIDに基づいて任意の適切なブロックを選択できる点に留意されたい。例えば、選択されたブロックは、選択されたストリームIDを有する図1のマシン105上で走るアプリケーションから受信された元来のライト(write)リクエストに応答して、書き込みされたデータを保有するブロックでありうる。又は、選択されたブロックは、ガーベッジコレクションの結果としてプログラムされ、このようなストリームIDによって、割り当てられたデータのみ格納する特殊ブロックでありうる。なお、本発明の実施例は、他の方式で受信されたストリームIDに応答してブロックを選択するように、ブロック選択ロジック815を具現できる。
ステップ1130において、図7のガーベッジコレクションロジック715は、図5の消去ブロック505−2のような消去ブロックを識別する。ステップ1135において、図3のガーベッジコレクションロジック715は、図5の消去ブロック505−2内の有効データを識別する。そして、ステップ1140において、図7のガーベッジコレクションロジック715は、図7の自動ストリーム検出ロジック415によって決定されたとおりに、図10のストリームID1005に基づいて選択された、消去ブロック505−2とは相異なる第2ブロック505−8に図5の有効データ510−3をプログラムする。処理ステップはこの後、他の書き込み(又は他の)コマンドを処理するステップ1105に戻る。又は、他に消去すべきブロックがある場合はその消去ブロックを識別するステップ1130に戻る(図示せず)。
110 プロセッサ
115 メモリ
120 ソリッドステートドライブ(SSD)
125 メモリコントローラ
130 装置ドライバ
205 クロック
210 ネットワークコネクタ
215 バス
220 使用者インタフェース
225 入出力(I/O、Input/Output)エンジン
305 ホストインタフェースロジック
310 SSDコントローラ
315−1〜315−8 フラッシュメモリチップ
320−1〜320−4 チャンネル
325 フラッシュ変換階層
405−1〜405−4 ライトリクエスト
410、410−1〜410−4 論理ブロックアドレス(LBA)
415 自動ストリーム検出ロジック
420−1〜420−4 ストリーム識別子(ストリームID)
505−1〜505−10 ブロック、消去ブロック
510−1〜510−4、515−1〜515−4 ページ
510−3 (ページ410−3に格納された)有効データ
515−1〜515−4 フリーページ
605 属性の集合
610 アプリケーションID
615 残余寿命
620 順次性
625 アップデート頻度
630 最新性
635 ライトサイズ
640 ライト時間
645 リード頻度
645 リード温度
705 レシーバ
710 入出力(I/O)キュー
715 ガーベッジコレクションロジック
805 ライト(write)リクエストロジック
810 消去ロジック
815 ブロック選択ロジック
820 プログラミングロジック
1005 ストリーム識別子(ID)1010−3 フリーページ
1105〜1140 ステップ
1205〜1230 ステップ
Claims (24)
- ソリッドステートドライブ(SSD)であって、
データを格納するフラッシュメモリと、
ここで、前記フラッシュメモリは、ホストコンピュータからの第1書き込み要求に応答する第1ブロックに第1有効データを格納し、前記ホストコンピュータからの第2書き込み要求に応答する第2ブロックに第2有効データを格納し、前記第1ブロックは、前記第1書き込み要求に応答する第1ストリーム識別子(ID)に応答し、前記第2ブロックは、前記第2書き込み要求に応答する第2ストリーム識別子(ID)に応答し、
前記フラッシュメモリへのデータの書き込み及び前記フラッシュメモリからのデータの読み取りを管理するSSDコントローラと、
前記第1有効データの属性に応答する第3ストリーム識別子(ID)を選択するための自動ストリーム検出ロジックと、
ここで、前記第3ストリーム識別子(ID)は、前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、又は異なるストリーム識別子(ID)のいずれかであり得、前記自動ストリーム検出ロジックは、前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、前記第3ストリーム識別子(ID)、又は前記異なるストリーム識別子(ID)の内のいずれかを選択でき、
ガベージコレクションに対し前記フラッシュメモリ内の前記第1ブロックを選択し、前記自動ストリーム検出ロジックによって決定された前記第3ストリーム識別子(ID)に応答して、前記第1ブロックの前記第1有効データを第3ブロックにプログラムするガーベッジコレクションロジックと、を有し、
前記自動ストリーム検出ロジックは、前記ガーベッジコレクションロジックがガーベッジコレクションのための(for garbage collection)前記第1ブロックを選択した後、前記第3ストリーム識別子(ID)を決定することを特徴とするソリッドステートドライブ(SSD)。 - 前記SSDコントローラは、ホストコンピュータ上のアプリケーションからの要求(request)を管理する入出力(I/O)キューを含み、
前記ホストコンピュータ上のアプリケーションからの要求は、読み取り要求と書き込み要求の両方が含まれ
前記ガーベッジコレクションロジックは、前記第1有効データに対するプログラミング書き込み要求を前記入出力(I/O)キューに配置するための書き込み要求ロジックを含むことを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。 - 前記SSDコントローラは、前記アプリケーションからの以前の書き込み要求を受信するレシーバ(receiver)をさらに含み、
前記以前の書き込み要求は、前記第1有効データと、ガベージコレクションユニットが前記ガベージコレクションのために第1ブロック選択する前に前記第1有効データが前記第1ブロックに書き込まれる結果となる以前の書き込み要求と、を含むことを特徴とする請求項2に記載のソリッドステートドライブ(SSD)。 - 前記ソリッドステートドライブは、前記第1有効データを前記以前の書き込み要求に応答して前記第1ブロックに書き込み、前記自動ストリーム検出ロジックから前記第1ストリーム識別子(ID)を書き込み、
前記第1ストリーム識別子(ID)は、前記自動ストリーム検出ロジックが前記第1有効データに応答して選択される少なくとも2つのストリーム識別子(ID)の内の1つであることを特徴とする請求項3に記載のソリッドステートドライブ(SSD)。 - 前記ガーベッジコレクションロジックは、前記第1ブロックを消去するための消去ロジックをさらに含むことを特徴とする請求項2に記載のソリッドステートドライブ(SSD)。
- 前記消去ロジックは、前記プログラミング書き込み要求が前記ソリッドステートドライブによって処理された後、前記第1ブロックを消去するように動作することを特徴とする請求項5に記載のソリッドステートドライブ(SSD)。
- 前記消去ロジックは、前記書き込み要求ロジックがプログラミング書き込み要求を前記入出力(I/O)キューに配置した後、前記プログラミング書き込み要求が前記ソリッドステートドライブによって処理される前に、前記第1ブロックを消去するように動作することを特徴とする請求項5に記載のソリッドステートドライブ(SSD)。
- 前記ガーベッジコレクションロジックは、前記第1有効データをプログラムする前に、前記自動ストリーム検出ロジックから前記第3ストリーム識別子(ID)を要求し、
前記ガーベッジコレクションロジックは、前記第3ストリーム識別子(ID)に応答して第3ブロックを選択するためのブロック選択ロジックと、
前記第1有効データを前記第3ブロックに書き込むためのプログラミングロジックと、を含み、
前記第3ブロックは、前記ブロック選択ロジックによって選択される複数の第3ブロックの内の1つであることを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。 - 前記第3ブロックは、ガベージコレクション中にプログラムされたデータのみを格納する特別なブロックであることを特徴とする請求項8に記載のソリッドステートドライブ(SSD)。
- 前記第3ストリーム識別子(ID)は、前記ソリッドステートドライブへの前記第1有効データの書き込みを最初(originally)に担当するアプリケーションのアプリケーションID、前記第1有効データに対する残余寿命、前記第1有効データに対する順次性(sequentiality)、前記第1有効データに対する最新性(recency)、前記第1有効データに対する書き込みサイズ、前記第1有効データに対する書き込み時間、及び前記第1有効データに対する読み出し頻度の内の少なくとも一つに応答することを特徴とする請求項1に記載のソリッドステートドライブ(SSD)。
- ソリッドステートドライブ(SSD)のガーベッジコレクションに係る方法であって、
ガーベッジコレクションのためのソリッドステートドライブの第1ブロックを識別する(identifying)ステップと、
ここで、前記ソリッドステートドライブは、第2有効データを格納する第2ブロック、第1ストリーム識別子(ID)に応答する第1ブロック、及び第2ストリーム識別子(ID)に応答する第2ブロック、ホストコンピュータからの第1書き込み要求に応答して前記第1ブロックに格納された第1有効データ、及び前記ホストコンピュータからの第2書き込み要求に応答して第2ブロックに格納された第2有効データを含み、
プログラミングを要請する前記第1ブロックの前記第1有効データを識別するステップと、
自動ストリーム検出ロジックによって、前記第1有効データの属性(attributes)に応答する前記第1有効データに対する第3ストリーム識別子(ID)を選択するステップと、
ここで、前記自動ストリーム検出ロジックは、前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、及び前記第3ストリーム識別子(ID)としての異なるストリーム識別子(ID)の内のいずれかを選択でき、前記第3ストリーム識別子(ID)は、プログラミングを必要とする前記第1ブロック内の前記第1有効データが識別された後に選択され、
前記第1ブロックの前記第1有効データを前記第3ストリーム識別子(ID)に応答して選択される第3ブロックにプログラミングするステップと、を有することを特徴とする方法。 - 前記プログラミングを要請する前記第1ブロック内の前記第1有効データを識別する前に、
前記ソリッドステートドライブにおいて、ガベージコレクションのための前記ソリッドステートドライブの前記第1ブロックを識別する前に、アプリケーションからの第1書き込み要求で前記第1有効データを受信するステップと、
前記第1有効データの属性に応答する第1ストリーム識別子(ID)を決定するステップと、
前記第1ストリーム識別子(ID)に応答する前記第1ブロックを選択するステップと、
前記第1書き込み要求に応答して、前記第1有効データを前記第1ブロックに書き込むステップと、をさらに有することを特徴とする請求項11に記載の方法。 - 前記第1ブロックの前記第1有効データを前記第3ストリーム識別子(ID)に応答して選択された第3ブロックにプログラミングするステップは、プログラミング書き込み要求を入出力(I/O)キューに入れて、前記第1有効データを前記第3ブロックに書き込むステップを含み、
前記入出力(I/O)キューは、ホストコンピュータ上のアプリケーションからの要求を受信するよう動作し、
前記ホストコンピュータ上のアプリケーションからの要求は、読み取り要求と書き込み要求の両方を含むことを特徴とする請求項11に記載の方法。 - 前記第1ブロックを消去するステップをさらに有することを特徴とする請求項13に記載の方法。
- 前記第1ブロックを消去するステップは、前記第1有効データが前記第3ブロックに書き込まれる前に、前記第1ブロックを消去するステップを含むことを特徴とする請求項14に記載の方法。
- 前記第1ブロックの前記第1有効データを前記第3ストリーム識別子(ID)に応答して選択された第3ブロックにプログラミングするステップは、
前記第1有効データの属性に応答する前記第1有効データの前記第3ストリーム識別子(ID)を決定するステップと、
前記第3ストリーム識別子(ID)に応答する前記第3ブロックを選択するステップと、
前記第1有効データを前記第3ブロックにプログラミングするステップと、を含み、
前記第3ブロックは、前記第3ストリーム識別子(ID)に応答して選択される複数の第3ブロックの内の1つであることを特徴とする請求項11に記載の方法。 - 前記第3ストリーム識別子(ID)に応答する前記第3ブロックを選択するステップは、前記第3ストリーム識別子(ID)に応答する特別なブロックを選択するステップを含み、
前記特別なブロックは、前記ガーベッジコレクションの中にプログラムされたデータのみを格納することを特徴とする請求項16に記載の方法。 - 前記第3ストリーム識別子(ID)は、前記ソリッドステートドライブへの前記第1有効データの書き込みを最初(originally)に担当するアプリケーションのアプリケーションID、前記第1有効データに対する残余寿命、前記第1有効データに対する順次性(sequentiality)、前記第1有効データに対する最新性(recency)、前記第1有効データに対する書き込みサイズ、前記第1有効データに対する書き込み時間、及び前記第1有効データに対する読み出し頻度の内の少なくとも一つに応答することを特徴とする請求項11に記載の方法。
- 前記第1有効データの属性の値は、前記第1書き込み要求に応じて変化することを特徴とする請求項11に記載の方法。
- 非一時的なストレージ媒体を含む物品(article)であって、
前記非一時的なストレージ媒体は、マシンによって実行される時、下記の手順を結果する命令語を格納しており、
前記手順は、ガーベッジコレクションのためのソリッドステートドライブにおいて第1ブロックを識別するステップと、
ここで、前記ソリッドステートドライブは、第2有効データを格納する第2ブロック、第1ストリーム識別子(ID)に応答する第1ブロック、及び第2ストリーム識別子(ID)に応答する第2ブロック、ホストコンピュータからの第1書き込み要求に応答して前記第1ブロックに格納された第1有効データ、及び前記ホストコンピュータからの第2書き込み要求に応答して第2ブロックに格納された第2有効データを含み、
プログラミングを要請する前記第1ブロックの前記第1有効データを識別するステップと、
自動ストリーム検出ロジックによって、前記第1有効データの属性(attributes)に応答する前記第1有効データに対する第3ストリーム識別子(ID)を選択するステップと、
ここで、自動ストリーム検出ロジックは、前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、及び第3ストリーム識別子(ID)としての異なるストリーム識別子(ID)の内のいずれかを選択でき、前記第3ストリーム識別子(ID)は、プログラミングを必要とする前記第1ブロック内の前記第1有効データが識別された後に選択され、
前記第1ブロックの前記第1有効データを前記第3ストリーム識別子(ID)に応答して選択される第3ブロックにプログラミングするステップと、を有することを特徴とする物品。 - 前記第1ブロックの前記第1有効データを前記第3ストリーム識別子(ID)に応答して選択された第3ブロックにプログラミングするステップは、プログラミング書き込み要求を入出力(I/O)キューに入れて、前記第1有効データを前記第3ブロックに書き込むステップを含み、
前記入出力(I/O)キューは、ホストコンピュータ上のアプリケーションからの要求を受信するよう動作し、
前記ホストコンピュータ上のアプリケーションからの要求は、読み取り要求と書き込み要求の両方を含むことを特徴とする請求項20に記載の物品。 - ソリッドステートドライブ(SSD)のホストコンピュータから、第1有効データを含む第1書き込み要求を受信するステップと、
前記第1書き込み要求に応答する第1ストリーム識別子(ID)を選択するステップと、
前記第1書き込み要求に応答して、前記第1ストリーム識別子(ID)に応答する前記ソリッドステートドライブの第1ブロックに、前記第1有効データを書き込むステップと、
前記ソリッドステートドライブの前記ホストコンピュータから、第2有効データを含む第2書き込み要求を受信するステップと、
前記第2書き込み要求に応答して前記第1ストリーム識別子(ID)とは異なる第2ストリーム識別子(ID)を選択するステップと、
前記第2書き込み要求に応答して、前記第2ストリーム識別子(ID)に応答する前記ソリッドステートドライブの第2ブロックに、前記第2有効データを書き込むステップと、
前記第1有効データを前記第1ブロックに書き込み、前記第2有効データを前記第2ブロックに書き込んだ後、ガーベッジコレクションのための前記第1ブロックを識別するステップと、
前記第1ブロックの前記第1有効データをプログラミングが要請されるものとして識別するステップと、
自動ストリーム検出ロジックによって、前記第1有効データの属性(attributes)に応答する第3ストリーム識別子(ID)を選択するステップと、
ここで、前記第3ストリーム識別子(ID)は、前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、又は異なるストリーム識別子(ID)の内のいずれかであり、前記自動ストリーム検出ロジックは、前記第1有効データに対して前記第1ストリーム識別子(ID)、前記第2ストリーム識別子(ID)、又は前記異なるストリーム識別子(ID)の内のいずれかを選択することができ、
前記第3ストリーム識別子(ID)に応答して前記第1有効データを前記ソリッドステートドライブの第3ブロックにプログラミングするステップと、を有することを特徴とする方法。 - 前記第1有効データの属性に応答する前記第3ストリーム識別子(ID)を選択するステップは、前記第1有効データの属性に応答する前記第2ストリーム識別子(ID)を選択するステップを含み、
前記第3ブロックは、前記第2ブロックであることを特徴とする請求項22に記載の方法。 - ソリッドステートドライブ(SSD)のホストコンピュータから、第1有効データを含む第1書き込み要求を受信するステップと、
前記第1書き込み要求に応答する第1ストリーム識別子(ID)を選択するステップと、
前記第1書き込み要求に応答して、前記第1ストリーム識別子(ID)に応答する前記ソリッドステートドライブの第1ブロックに、前記第1有効データを書き込むステップと、
前記ソリッドステートドライブの前記ホストコンピュータから、第2有効データを含む第2書き込み要求を受信するステップと、
前記第2書き込み要求に応答して前記第1ストリーム識別子(ID)とは異なる第2ストリーム識別子(ID)を選択するステップと、
前記第2書き込み要求に応答して、前記第2ストリーム識別子(ID)に応答する前記ソリッドステートドライブの第2ブロックに、前記第2有効データを書き込むステップと、
前記ソリッドステートドライブの前記ホストコンピュータから、第3有効データを含む第3書き込み要求を受信するステップと、
前記第3書き込み要求に応答して前記第2ストリーム識別子(ID)を選択するステップと、
前記第3書き込み要求に応答して、前記第2ストリーム識別子(ID)に応答する前記ソリッドステートドライブの第3ブロックに、前記第3有効データを書き込むステップと、
前記第1有効データを前記第1ブロックに書き込み、前記第2有効データを前記第2ブロックに書き込み、前記第3有効データを前記第3ブロックに書き込んだ後、ガーベッジコレクションのための前記第1ブロックを識別するステップと、
前記第1ブロックの前記第1有効データをプログラミングが要請されるものとして識別するステップと、
自動ストリーム検出ロジックによって、前記第1有効データの属性(attributes)に応答する前記第1ストリーム識別子(ID)を選択するステップと、
前記第1ストリーム識別子(ID)に応答して前記第1有効データを、前記ソリッドステートドライブ上の第4ブロックにプログラミングするステップと、
ガーベッジコレクションのための前記第2ブロックを識別するステップと、
前記第2ブロックの前記第2有効データをプログラミングが要請されるものとして識別するステップと、
前記自動ストリーム検出ロジックによって、前記第2有効データの属性に応答する前記第1ストリーム識別子(ID)を選択するステップと、
前記第1ストリーム識別子(ID)に応答して前記第2有効データを、前記ソリッドステートドライブ上の第5ブロックにプログラミングするステップと、
ガーベッジコレクションのための前記第3ブロックを識別するステップと、
前記第3ブロックの前記第3有効データをプログラミングが要請されるものとして識別するステップと、
前記自動ストリーム検出ロジックによって、前記第3有効データの属性に応答する、前記第1ストリーム識別子(ID)及び前記第2ストリーム識別子(ID)とは異なる第3ストリーム識別子(ID)を選択するステップと、
前記第3ストリーム識別子(ID)に応答する前記第3有効データを前記ソリッドステートドライブ上の第6ブロックにプログラミングするステップと、を有することを特徴とする方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762490027P | 2017-04-25 | 2017-04-25 | |
US62/490,027 | 2017-04-25 | ||
US15/620,814 | 2017-06-12 | ||
US15/620,814 US10698808B2 (en) | 2017-04-25 | 2017-06-12 | Garbage collection—automatic data placement |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018185815A JP2018185815A (ja) | 2018-11-22 |
JP2018185815A5 JP2018185815A5 (ja) | 2021-06-10 |
JP6893897B2 true JP6893897B2 (ja) | 2021-06-23 |
Family
ID=63853844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018084363A Active JP6893897B2 (ja) | 2017-04-25 | 2018-04-25 | ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10698808B2 (ja) |
JP (1) | JP6893897B2 (ja) |
KR (1) | KR102615007B1 (ja) |
CN (1) | CN108733321B (ja) |
TW (1) | TWI771383B (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761750B2 (en) | 2017-03-09 | 2020-09-01 | Netapp Inc. | Selectively storing data into allocation areas using streams |
JP2018160195A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
US11379359B2 (en) * | 2020-02-11 | 2022-07-05 | Micron Technology, Inc. | Selecting data transfer units associated with a data stream for garbage collection |
KR20220022332A (ko) | 2020-08-18 | 2022-02-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220041593A (ko) | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220049329A (ko) | 2020-10-14 | 2022-04-21 | 삼성전자주식회사 | 스토리지 컨트롤러, 스토리지 장치, 및 스토리지 장치의 동작 방법 |
US11907123B2 (en) | 2021-04-20 | 2024-02-20 | International Business Machines Corporation | Flash memory garbage collection |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006235960A (ja) | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | ガーベッジコレクション高速化方法 |
US20090119352A1 (en) | 2007-11-05 | 2009-05-07 | Steven Joseph Branda | Method for Optimizing Generational Garbage Collection Through Object Life Heuristics |
US8429658B2 (en) | 2008-10-16 | 2013-04-23 | International Business Machines Corporation | Lock deferral for real-time garbage collection |
TWI460588B (zh) | 2009-07-17 | 2014-11-11 | Toshiba Kk | Memory management device and memory information processing device |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
US20130138915A1 (en) | 2010-08-11 | 2013-05-30 | Nec Corporation | Data processing system, data processing method, and program |
JP2012084127A (ja) | 2010-09-15 | 2012-04-26 | Toshiba Corp | 半導体装置 |
US20120110239A1 (en) | 2010-10-27 | 2012-05-03 | Seagate Technology Llc | Causing Related Data to be Written Together to Non-Volatile, Solid State Memory |
JP5500309B2 (ja) | 2011-09-07 | 2014-05-21 | 日本電気株式会社 | ストレージ装置 |
US10203881B2 (en) | 2011-12-19 | 2019-02-12 | Apple Inc. | Optimized execution of interleaved write operations in solid state drives |
JP5723812B2 (ja) | 2012-03-16 | 2015-05-27 | 株式会社 日立産業制御ソリューションズ | ファイルサーバ、データ入出力方法、i/oフックモジュールプログラム及びi/o代行デーモンプログラム |
US8886880B2 (en) | 2012-05-29 | 2014-11-11 | Dot Hill Systems Corporation | Write cache management method and apparatus |
US9158687B2 (en) | 2013-03-04 | 2015-10-13 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
US20160196076A1 (en) | 2013-07-08 | 2016-07-07 | Wilus Institute Of Standards And Technology Inc. | Memory system and method for controlling same |
KR102074329B1 (ko) | 2013-09-06 | 2020-02-06 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 처리 방법 |
US9854270B2 (en) | 2013-12-19 | 2017-12-26 | Qualcomm Incorporated | Device and method for scalable coding of video information |
US9459810B2 (en) | 2013-12-30 | 2016-10-04 | Sandisk Technologies Llc | Storage module and method for configuring command attributes |
US8874835B1 (en) | 2014-01-16 | 2014-10-28 | Pure Storage, Inc. | Data placement based on data properties in a tiered storage device system |
KR101544309B1 (ko) | 2014-02-26 | 2015-08-12 | 한양대학교 산학협력단 | 스트림 기반의 비휘발성 메모리 제어 방법 및 장치 |
TWI554944B (zh) * | 2014-06-20 | 2016-10-21 | 慧榮科技股份有限公司 | 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法 |
EP3021208B1 (en) | 2014-11-14 | 2019-01-09 | Dot Hill Systems Corporation | Method and apparatus for processing fast asynchronous streams |
US9519429B2 (en) | 2014-12-09 | 2016-12-13 | Intel Corporation | Techniques to manage multiple sequential write streams to a solid state drive |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
KR20160105624A (ko) | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 처리 시스템 및 그것의 동작 방법 |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160283125A1 (en) | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
US9760281B2 (en) * | 2015-03-27 | 2017-09-12 | Intel Corporation | Sequential write stream management |
US9996302B2 (en) | 2015-04-03 | 2018-06-12 | Toshiba Memory Corporation | Storage device writing data on the basis of stream |
US10261725B2 (en) | 2015-04-10 | 2019-04-16 | Toshiba Memory Corporation | Storage system capable of invalidating data stored in a storage device thereof |
US10013177B2 (en) | 2015-04-20 | 2018-07-03 | Hewlett Packard Enterprise Development Lp | Low write amplification in solid state drive |
US9696935B2 (en) | 2015-04-24 | 2017-07-04 | Kabushiki Kaisha Toshiba | Storage device that secures a block for a stream or namespace and system having the storage device |
US9594513B1 (en) | 2015-06-29 | 2017-03-14 | EMC IP Holding Company LLC | Data storage system with file system stream detection |
KR102381343B1 (ko) | 2015-07-27 | 2022-03-31 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
JP6403164B2 (ja) * | 2015-09-11 | 2018-10-10 | 東芝メモリ株式会社 | メモリシステム |
US9880780B2 (en) | 2015-11-30 | 2018-01-30 | Samsung Electronics Co., Ltd. | Enhanced multi-stream operations |
JP2018022275A (ja) * | 2016-08-02 | 2018-02-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
JP2018160195A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステムおよび不揮発性メモリの制御方法 |
-
2017
- 2017-06-12 US US15/620,814 patent/US10698808B2/en active Active
-
2018
- 2018-02-13 KR KR1020180017428A patent/KR102615007B1/ko active IP Right Grant
- 2018-03-05 TW TW107107148A patent/TWI771383B/zh active
- 2018-04-13 CN CN201810335530.XA patent/CN108733321B/zh active Active
- 2018-04-25 JP JP2018084363A patent/JP6893897B2/ja active Active
-
2020
- 2020-06-03 US US16/892,276 patent/US11194710B2/en active Active
-
2021
- 2021-12-06 US US17/543,710 patent/US11630767B2/en active Active
-
2023
- 2023-04-17 US US18/135,729 patent/US20230333977A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2018185815A (ja) | 2018-11-22 |
TW201839612A (zh) | 2018-11-01 |
US11194710B2 (en) | 2021-12-07 |
CN108733321B (zh) | 2023-05-23 |
US20200293443A1 (en) | 2020-09-17 |
US20180307596A1 (en) | 2018-10-25 |
US20220171701A1 (en) | 2022-06-02 |
KR102615007B1 (ko) | 2023-12-18 |
US20230333977A1 (en) | 2023-10-19 |
CN108733321A (zh) | 2018-11-02 |
US10698808B2 (en) | 2020-06-30 |
KR20180119470A (ko) | 2018-11-02 |
TWI771383B (zh) | 2022-07-21 |
US11630767B2 (en) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6893897B2 (ja) | ソリッドステートドライブ(ssd)、そのガーベッジコレクションに係る方法、及びその具現に係る物品 | |
US9418002B1 (en) | Processing unit reclaiming requests in a solid state memory device | |
US10579267B2 (en) | Memory controller and memory system | |
US9959046B2 (en) | Multi-streaming mechanism to optimize journal based data storage systems on SSD | |
TW202001573A (zh) | 記憶系統 | |
US20130080685A1 (en) | Storage devices and methods of driving storage devices | |
US20150149741A1 (en) | Storage System and Control Method Thereof | |
CN112684976A (zh) | 用于执行迁移操作的存储器系统及其操作方法 | |
US9569113B2 (en) | Data storage device and operating method thereof | |
US20150121033A1 (en) | Information processing apparatus and data transfer control method | |
KR101876574B1 (ko) | 데이터 입출력 컨트롤러 및 이를 포함하는 시스템 | |
US11182329B2 (en) | Data processing system and operating method thereof | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
US10042753B2 (en) | Data storage device for storing data storage information of data and method for operating the same | |
KR101477776B1 (ko) | 플래시 메모리에서의 페이지 교체 방법 | |
EP4325347A1 (en) | Submission queue entry age tracking | |
KR101466493B1 (ko) | Ssd의 버퍼 제어 장치 및 방법 | |
KR101691286B1 (ko) | 입출력 정보 공유 방법, 상기 방법을 수행하는 저장 장치 및 호스트 장치 | |
US20160034192A1 (en) | Data storage device and operation method thereof | |
KR20180016660A (ko) | 스토리지 내의 데이터 처리 장치의 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210426 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210426 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20210426 |
|
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: 20210525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210602 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6893897 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |