JP7109949B2 - メモリシステム及びメモリシステムの制御方法 - Google Patents

メモリシステム及びメモリシステムの制御方法 Download PDF

Info

Publication number
JP7109949B2
JP7109949B2 JP2018055782A JP2018055782A JP7109949B2 JP 7109949 B2 JP7109949 B2 JP 7109949B2 JP 2018055782 A JP2018055782 A JP 2018055782A JP 2018055782 A JP2018055782 A JP 2018055782A JP 7109949 B2 JP7109949 B2 JP 7109949B2
Authority
JP
Japan
Prior art keywords
physical blocks
data
management unit
predetermined number
physical
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
JP2018055782A
Other languages
English (en)
Other versions
JP2019168898A (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.)
Kioxia Corp
Original Assignee
Kioxia Corp
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 Kioxia Corp filed Critical Kioxia Corp
Priority to JP2018055782A priority Critical patent/JP7109949B2/ja
Priority to US16/114,019 priority patent/US10783070B2/en
Publication of JP2019168898A publication Critical patent/JP2019168898A/ja
Application granted granted Critical
Publication of JP7109949B2 publication Critical patent/JP7109949B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • 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
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

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)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明の実施形態は、メモリシステム及びメモリシステムの制御方法に関する。
近年、不揮発性の半導体メモリであるNAND型フラッシュメモリを搭載したメモリシステムの大容量化が進行している。このようなメモリシステムとして、SSD(Solid State Drive)が注目されている。メモリシステムは、NAND型フラッシュメモリよりも高速にアクセス可能な半導体メモリを搭載している。
メモリシステムは、不正電源断が生じると、不正電源断後に再び電源が正常に供給されることに伴って起動後の処理を行う。起動後の処理では、不正電源断により、NAND型フラッシュメモリに書き込めなかったデータに関するデータの書き換えを行うことがある。
特開2010-157139号公報 特開2012-128643号公報
一つの実施形態は、不正電源断後の起動処理時間を短縮することができるメモリシステム及びメモリシステムの制御方法を提供することを目的とする。
実施形態のメモリシステムは、複数の物理ブロックを有する不揮発性の半導体メモリと、ホストからのデータに割り当てられたアドレスに対応する論理クラスタアドレスと前記論理クラスタアドレスに対応するデータの記憶位置を特定する番号であって前記複数の物理ブロックのうちの所定数の物理ブロックを纏めた複数の第1の管理単位をそれぞれ特定する第1の論理番号および前記第1の管理単位の前記所定数の物理ブロックにおける前記ホストからの最小のアクセス単位の整数倍のサイズを有する複数の第2の管理単位のそれぞれを一意に特定する第2の論理番号とが対応付けられた第1の管理情報、および、前記複数の物理ブロックのうちの前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号と前記第1の論理番号とが対応付けられた第2の管理情報を管理するコントローラ回路と、を備え、前記コントローラ回路は、前記ホストから第1の論理クラスタアドレスに対応するアドレスへの第1データの書き込みを指示する命令を受領したことに応じて、前記半導体メモリの前記複数の物理ブロックのうちの第の物理ブロックに前記第1データを書き込むときは、前記第2の管理情報を更新することなく、前記第1の論理クラスタアドレスと、前記第1の物理ブロックを含む前記所定数の物理ブロックに対応する第1の管理単位に付与された第1の論理番号および前記第1の物理ブロックにおける前記第1データの記憶位置に対応する第2の管理単位を示す第2の論理番号と、を対応付けるように、前記第1の管理情報を更新し、所定の電源遮断手順を経ない電源断である不正電源断後において、前記不正電源断前に前記半導体メモリに書き込み途中だった第の物理ブロックを含む第1の管理単位の前記所定数の物理ブロックに記憶された第2データを他の第1の管理単位の前記所定数の物理ブロックに移動させるときは、前記第1の管理情報を更新することなく、移動元である前記第1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に対応付けられた第1の論理番号の対応先を移動先である前記他の1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に変更して前記第2の管理情報を更新する。
図1は、実施形態にかかるメモリシステムの構成例を示す図である。 図2は、実施形態にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図3は、実施形態にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図4は、実施形態にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図5は、実施形態にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図6は、実施形態にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図7は、実施形態にかかるメモリシステムの制御動作の手順の一例を示すフローチャートである。 図8は、比較例にかかるメモリシステムの物理ブロックとブロックグループとの対応関係を説明する図である。 図9は、実施形態の変形例1にかかるメモリシステムの制御動作の手順の一例を示すフローチャートである。
以下に、本発明につき図面を参照しつつ詳細に説明する。なお、下記の実施形態により、本発明が限定されるものではない。また、下記実施形態における構成要素には、当業者が容易に想定できるものあるいは実質的に同一のものが含まれる。
図1~図9を用いて、実施形態のメモリシステム及びメモリシステムの制御処理について説明する。
[メモリシステムの構成例]
図1は、実施形態にかかるメモリシステム1の構成例を示す図である。図1に示すように、メモリシステム1は、ホスト2と所定の規格に基づいた通信インタフェースで接続される。ホスト2は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバ等である。メモリシステム1は、ホスト2からアクセスコマンドを受け付けることができる。アクセスコマンドは、リード(読み出し)コマンド、ライト(書き込み)コマンド、及びフラッシュコマンド等である。フラッシュコマンドは、遅滞しているデータのライトをNAND型フラッシュメモリ20に強制的に完遂させるコマンドである。各アクセスコマンドは、アクセス先を示す論理アドレスを含んでいる。論理アドレスは、メモリシステム1がホスト2に提供する論理アドレス空間内の位置を示す。メモリシステム1は、例えば、ライトコマンドとともに、書き込み対象のデータを受け付ける。また、メモリシステム1は、ホスト2からまたは他の装置から、電源を供給され、この電源により動作する。
メモリシステム1は、メモリコントローラ10と、NAND型フラッシュメモリ(以下、単にNANDメモリと称する)20と、を備えている。メモリコントローラ10は、ホスト2とNANDメモリ20との間のデータ転送を実行する回路である。なお、メモリシステム1は、NANDメモリ20の代わりに任意の不揮発性メモリ、例えばNOR型フラッシュメモリ、を備えることができる。
不揮発性の半導体メモリとしてのNANDメモリ20は、1以上のメモリチップ21を含む。図1の例では、NANDメモリ20は4つのメモリチップ21を含んでいる。各メモリチップ21は、複数の物理ブロック30を備える。物理ブロック30は、例えばデータのイレースが実行され得る最小の記憶領域である。物理ブロック30は、複数のページを備える。ページは、例えばNANDメモリ20内部でデータのリードまたはデータのプログラムが実行され得る最小の記憶領域である。各物理ブロック30には、1ページより小さい単位に対して物理アドレスが割り当てられる。この単位をクラスタという。1クラスタのサイズは、ホスト2からの最小のアクセス単位と等しくてもよいし大きくてもよい。1クラスタのサイズが、ホスト2からの最小のアクセス単位よりも大きい場合、1クラスタのサイズは、最小のアクセス単位の2以上の整数倍であればよい。
複数の物理ブロック30により、1つの論理的な管理単位(ブロックグループ)が構成される。例えば、それぞれが異なるメモリチップ21に属する複数の物理ブロック30によって、1つのブロックグループが構成される。ブロックグループを構成する複数の物理ブロック30に記憶されているデータは、一括してイレースされ得る。
1つのブロックグループに属する複数の物理ブロック30がそれぞれ備える複数のページ(物理ページ)は、1つの管理単位(ページグループ)を構成する。1つのページグループは、1つのブロックグループに属する複数の物理ブロック30それぞれの同一のページ番号のページによって構成される。1つのページグループを構成する複数のページには、データのリードまたはデータのプログラムが並列に実行され得る。
コントローラ回路としてのメモリコントローラ10は、ホスト2から、NANDメモリ20に対してデータをライトするアクセスコマンドを受理したことに応じて、NANDメモリ20の或る物理ブロック30にデータをライトする。物理ブロック30にデータがライトされたときは、メモリコントローラ10は、基本的には、後述する第1の対応テーブル41を更新する。また、メモリコントローラ10は、不正電源断が発生すると、不正電源断があったことを示すフラグを立てる。不正電源断とは、ホスト2から所定の終了コマンドが発行されることなくメモリシステム1への電源の供給が遮断されてしまうことである。また、メモリコントローラ10は、不正電源断後において、不正電源断時に書き込み途中だった物理ブロック30を含むブロックグループ内の複数(あるいは全て)の物理ブロック30のクリーンアップを、NANDメモリ20に行わせる。ここで、不正電源断時とは、不正電源断が起こった正にその時のことである。また、不正電源断後とは、不正電源断があった後、最初にメモリシステム1に電源が供給されたときのことである。クリーンアップとは、物理ブロック30内の有効データを他の物理ブロック30へ移動させることである。有効データとは、不正電源断時にデータの書き込みが行われていた物理ブロック30内に存在するデータのうち、不正電源断時の書き込み以前から存在していたデータ、及び不正電源断時に既に書き込みが終了していたデータのことである。不正電源断時に、或る物理ブロック30に書き込み途中だったデータは損傷している恐れがある。そこで、かかる物理ブロック30内の他の有効データの保全を図るため、メモリコントローラ10は、それら他の有効データを別の物理ブロック30に移動させる。クリーンアップが行われたことに伴って、メモリコントローラ10は、後述する第2の対応テーブル42を更新する。
上記機能を実現するため、メモリコントローラ10は、CPU(Central Processing Unit)11と、ホストインタフェース(ホストI/F)12と、RAM(Random Access Memory)13と、NANDコントローラ14と、を備える。
CPU11は、ファームウェアプログラムに基づいてメモリコントローラ10の制御を実行する。ファームウェアプログラムは、例えばNANDメモリ20などの不揮発性の半導体メモリに予め格納されており、起動時にNANDメモリ20から読み出され、RAM13に展開されてCPU11によって実行される。
CPU11は、ホスト2からの書き込み対象のデータをNANDメモリ20に書き込む際には、空き領域からそのデータの書き込み先の物理的位置を決定する。物理的位置は、物理アドレスによって表記される。空き領域とは、有効データが記憶されていない領域であり、新たなデータのライトが可能な領域である。CPU11は、当該データの位置を示す論理アドレスに、決定された書き込み先の物理的位置をマッピングする。
RAM13は、一時記憶領域を提供するメモリである。RAM13を構成するメモリの種類は、特定の種類に限定されない。例えば、RAM13は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)、またはこれらの組み合わせによって構成される。RAM13には、管理情報13aが格納される。
管理情報13aは、少なくとも、第1の管理情報としての第1の対応テーブル41及び第2の管理情報としての第2の対応テーブル42を含む。第1の対応テーブル41には、第1のアドレスとしての論理クラスタアドレスが登録されている。論理クラスタアドレスは、ホスト2に提供される論理アドレス空間内においてデータに割り当てられた位置を示す論理アドレスに対応し、第1の論理番号としてのブロックグループ番号および第2の論理番号としての論理クラスタ番号が対応付けられている。ブロックグループ番号および論理クラスタ番号は、それぞれ、メモリシステム1内の論理的な管理単位である。NANDメモリ20のいずれかの物理ブロック30にデータがライトされたときは、通常、第1の対応テーブル41が更新される。第2の対応テーブル42には、ブロックグループ番号とNANDメモリ20の複数の物理ブロック30それぞれに割り当てられた物理ブロック番号とが対応付けられて登録されている。不正電源断後のクリーンアップのように、多量のデータ移動が生じたときは、第2の対応テーブルが更新される。第1の対応テーブル41及び第2の対応テーブル42を参照することで、メモリコントローラ10は、ホスト2からアクセスコマンドとともに送信される論理アドレスを、NANDメモリ20における物理的なデータの記憶位置に対応付けることができる。
ホストインタフェース12は、メモリコントローラ10とホスト2との間の通信インタフェースの制御を実行する。ホストインタフェース12は、CPU11による制御の下で、ホスト2とRAM13との間のデータ転送を実行する。
NANDコントローラ14は、CPU11による制御の下で、NANDメモリ20とRAM13との間のデータ転送を実行する。即ち、CPU11による制御の下で、ホスト2とNANDメモリ20との間のデータ転送は、RAM13を介して実行される。
[第1、第2の対応テーブル]
次に、図2~図6を用い、NANDメモリ20の第1の対応テーブル41及び第2の対応テーブル42について更に説明する。図2~図6は、実施形態にかかるメモリシステム1の物理ブロック30a~30hとブロックグループ31lg,32lgとの対応関係を説明する図である。
図2に示すように、第2の対応テーブル42は、前述した物理ブロック番号と、前述したブロックグループ番号との対応関係を登録する。図2の例では、物理ブロック番号A~Dの物理ブロック30a~30dは、ブロックグループ番号#1のブロックグループ31lgに対応付けられている。物理ブロック番号E~Hの物理ブロック30e~30hは、ブロックグループ番号#2のブロックグループ32lgに対応付けられている。
また、図2においては、各物理ブロック30内に含まれるクラスタCのうち、有効データが記憶されているクラスタCのみ示している。なお、各物理ブロック30に含まれる全てのクラスタCには、論理クラスタ番号が付与されている。論理クラスタ番号は、1つのブロックグループ30lgにおいて、最初の物理ブロック30の最初のクラスタCから最後の物理ブロック30の最後のクラスタCまで順に番号を振ったものである。このとき、例えば、ブロックグループ31lgに対応付けられる物理ブロック30b内の所定位置にあるクラスタCの論理クラスタ番号は、ブロックグループ32lgに対応付けられる物理ブロック30e内の同一の所定位置にあるクラスタCの論理クラスタ番号と同一にすることが可能である。つまり、物理ブロック30b内の所定位置のクラスタCと、他の物理ブロック30e内の同一の所定位置のクラスタCとは、物理ブロック番号が異なるが論理クラスタ番号が同一の論理クラスタアドレスを有することができる。
図3に示すように、クラスタ番号順配列30clは、1つのブロックグループ30lg(ここではブロックグループ31lg)に対応付けられた複数の物理ブロック30(ここでは物理ブロック30a~30d)の各クラスタCを論理クラスタ番号順に並べて展開した様子の一例を示すものである。図3においては、複数のクラスタCのうち、有効データが記憶されているクラスタCのみについて、各物理ブロック30内の位置とクラスタ番号順配列30cl内の位置との対応関係を矢印で示している。図3に示すように、クラスタ番号順配列30cl内および各物理ブロック30内において、有効データが記憶されているクラスタCは纏まらず分散することがある。なお、クラスタ番号順配列30cl内には、必ずしも全ての論理クラスタ番号が格納されているとは限らない。論理クラスタ番号が格納されていない論理クラスタアドレスは、未使用か、ホスト2から無効化要求があって削除されたことを表すデータが格納される。
図4は、クラスタ番号順配列30clに展開されたクラスタCと、ブロックグループ30lg内におけるクラスタClgの位置との対応関係を示すものである。図4においては、複数のクラスタCのうち、有効なデータが記憶されているクラスタCのみについて、ブロックグループ30lg内の位置とクラスタ番号順配列30cl内の位置との対応関係を矢印で示している。
第1の対応テーブル41は、ホスト2から指定される論理アドレスに対応する論理クラスタアドレスと、これに対応するブロックグループ30lgのブロックグループ番号およびそのブロックグループ30lg内における論理クラスタ番号との対応関係を示す。つまり、所定の論理クラスタアドレスは、これに対応するブロックグループ番号と論理クラスタ番号とにより特定される。
ここで、図5に示すように、物理ブロック30aに、新たに2つのクラスタC分のデータが記憶されたものとする。それに応じて、メモリコントローラ10は、第1の対応テーブル41を更新する。つまり、第1の対応テーブル41に、新たにデータが追加された2つのクラスタCのブロックグループ番号および論理クラスタ番号が、この新たなデータに対応する論理クラスタアドレスに対応付けられる。
ところで、不正電源断後のクリーンアップでは膨大な量のデータの書き換えが発生する。これに伴って、書き換えられたデータに対応する論理アドレスと、このデータがNANDメモリ20内で記憶された物理的な位置と、の対応関係が変わる。そこで、メモリコントローラ10は、クリーンアップ時には、第1の対応テーブル41を更新する代わりに、第2の対応テーブル42を更新する。その詳細を図6に示す。
図6において、不正電源断時に、ブロックグループ31lgに含まれる物理ブロック30a~30dの一部の領域に対してデータの書き込み途中であったとする。メモリコントローラ10は、不正電源断後のクリーンアップにより、ブロックグループ31lg(物理ブロック30a~30d)の他の領域の全ての有効データ(書き込みが完了していたデータ及びすでに記憶されていた有効データ)を、例えばフロックグループ32lgに含まれる物理ブロック30e~30hに移動させる。このとき、NANDメモリ20は、各物理ブロック30a~30d内におけるデータの物理位置(物理的なクラスタ位置)を維持したまま、物理ブロック30e~30hに全ての有効データを移動させる。これにより、各データは、ブロックグループ番号が異なるが論理クラスタ番号が同一である物理的な位置に移動されることとなる。
これに伴って、メモリコントローラ10は、ブロックグループ番号と物理ブロック番号との対応関係を変更するよう第2の対応テーブル42を更新する。つまり、データの移動先である物理ブロック30e~30hの対応先を、ブロックグループ32lgからブロックグループ31lgに変更する。データの移動元である物理ブロック30a~30dは、ブロックグループ31lgから他のブロックグループ30lg(例えば、ブロックグループ32lg)に変更される。かかる対応付けの変更後には、移動後の各データが記憶されるクラスタCのブロックグループ番号および論理クラスタ番号は、移動前の各データが記憶されていたクラスタCのブロックグループ番号および論理クラスタ番号と同一となる。つまり、移動後の各データが記憶されるクラスタCの論理クラスタアドレスが、移動前の各データが記憶されていたクラスタCの論理クラスタアドレスと同一となる。
このように、第1の対応テーブル41を更新せず、第2の対応テーブル42を更新することで、移動したデータの論理クラスタアドレスを、移動後のデータの物理的な記憶位置に対応付けることができる。換言すれば、第2の対応テーブル42を更新するだけで、移動したデータの論理クラスタアドレスで、移動後のデータの物理的な記憶位置を特定することができる。
[メモリシステムの動作例]
次に、図7を用い、メモリシステム1における制御動作の例について説明する。図7は、実施形態にかかるメモリシステム1の制御動作の手順の一例を示すフローチャートである。
メモリシステム1における制御動作では、ホスト2から書き込み、またはフラッシュの命令が発行されてNANDメモリ20の物理ブロックのデータを更新するときは、そのデータに割り当てられた論理クラスタアドレスと、そのデータが新たに記憶されたデータ記憶位置(ブロックグループ番号および論理クラスタ番号)との対応を更新する。一方、メモリコントローラ10のデータ移動要求に応じて、NANDメモリ20の或る物理ブロックの所定数以上のデータを他の物理ブロックに移動するときは、データの移動元の物理ブロック番号に対応するブロックグループ番号の対応先をデータの移動先の物理ブロック番号に更新する。
すなわち、図7に示すように、S10において、メモリシステム1が起動されると、S20において、メモリシステム1は、起動処理を行う。起動処理においては、NANDメモリ20からのファームウェアプログラムの読み出し、NANDメモリ20に記憶される管理情報のRAM13への展開等が行われる。
また、S30において、メモリシステム1のメモリコントローラ10は、今回の起動が、不正電源断後の起動であるか否かを確認する。つまり、メモリコントローラ10は、不正電源断があったことを示すフラグの有無を確認する。不正電源断後の起動でなかった場合は(No)、処理はS51bへ進む。
不正電源断後の起動であった場合は(S30のYes)、S40において、メモリコントローラ10は、クリーンアップが必要か否かを判定する。クリーンアップが不要であれば(No)、処理はS51bへ進む。
不正電源断時に書き込み途中だった物理ブロック30が存在し、クリーンアップが必要な場合は(S40のYes)、S52aにおいて、メモリコントローラ10は、クリーンアップ処理を行う。クリーンアップ処理によりデータ移動がなされた後、つまり、多量のデータ移動がなされた後は、S60aにおいて、メモリコントローラ10は、第2の対応テーブル42を更新する。その後、S51bにおいて、メモリコントローラ10は、ホスト2からのアクセスコマンドの受信を待機し(No)、アクセスコマンドを受信したら(Yes)、S52bにおいてNANDメモリ20にデータを更新させ、S60bにおいて第1の対応テーブル41を更新する。
以上により、メモリシステム1の制御動作が終了する。
[比較例]
ここで図8を用いて、比較例のメモリシステムによる動作を説明する。比較例のメモリシステムにおいては、不正電源断後のクリーンアップ時において、第2の対応テーブル42’ではなく、第1の対応テーブル41’の更新により、論理クラスタアドレスと移動後のデータの物理的な記憶位置との対応を取る。
すなわち、図8に示すように、不正電源断時に書き込み途中であった物理ブロック30a’~30d’から物理ブロック30e’~30h’へとデータを移動させたものとする。比較例のメモリコントローラは、このデータの移動に伴って、通常のライト時と同様、第1の対応テーブル41’を更新する。しかしながら、これにより、膨大な量のデータ移動に伴う膨大な量の第1の対応テーブル41’の更新が必要となってしまい、起動処理時間が長期化してしまう。
実施形態のメモリシステム1においては、第1の対応テーブル41ではなく、第2の対応テーブル42を更新する。これにより、移動したデータが記憶された物理ブロック30とブロックグループ30lgとの対応を変更するだけの更新で、移動したデータの物理位置を特定することができる。このとき、移動前後で、論理クラスタアドレスとデータ記憶位置との対応は変更されない。よって、膨大な量のデータを移動させても、ごく簡単な更新作業で済み、起動処理時間を短縮することができる。
[変形例1]
実施形態の構成は、データ保持を図るリフレッシュ時にも適用することができる。
NAND型フラッシュメモリにおいては、自然放電により記憶したデータが失われること、または、隣接するセルへのリード処理が繰り返されることにより記憶したデータの値が変化することを抑制するため、記憶したデータを異なる物理位置に書き換えるリフレッシュが行われる。リフレッシュ時には、リフレッシュ対象となる物理ブロックから他の物理ブロックへとデータを移動させるため、膨大な量のデータ移動が発生する。
そこで、実施形態の変形例1のメモリコントローラ10aは、リフレッシュ時においても、第1の対応テーブル41ではなく、第2の対応テーブル42を更新する。
すなわち、実施形態の変形例の第2の対応テーブル42は、上述の実施形態と同様に、NAND型フラッシュメモリ20における複数の物理ブロックそれぞれの物理ブロック番号がブロックグループ番号に対応付けられている。データの保持を図るリフレッシュ時において、リフレッシュ対象のデータをそのデータが記憶されていた物理ブロックから他の物理ブロックに移動させるときは、データの移動元の物理ブロック番号に対応するブロックグループ番号の対応先がデータの移動先の物理ブロック番号に更新される。このときの、実施形態の変形例1にかかるメモリシステムの制御動作の手順の一例を、図9のフローチャートを用いて説明する。
図9に示すように、S140において、実施形態の変形例1のメモリコントローラ10aは、前回のプログラムまたはイレースからの経過時間が閾値に至ったか、隣接セルへのリード回数が閾値に至ったか、を含むリフレッシュの実行条件を満たすか否かを判定する。実行条件を満たさない場合(No)、メモリコントローラ10aは、S151bにおいて、ホスト2からのアクセスコマンドの受信を待機し(No)、アクセスコマンドを受信したら(Yes)、S152bにおいてNANDメモリ20にデータ更新させ、S160bにおいて第1の対応テーブル41を更新する。
リフレッシュの実行条件を満たしている場合は(S140のYes)、S151aにおいて、メモリコントローラ10aは、所定の物理ブロックに対するリフレッシュを行う。リフレッシュ要求に応じてデータ移動がなされた後、つまり、多量のデータ移動がなされた後は、S160aにおいて、メモリコントローラ10aは、第2の対応テーブル42を更新する。
これらの動作を、メモリコントローラ10aは、S170においてメモリシステムの電源が遮断されるまで繰り返す。
以上により、メモリシステムの制御動作が終了する。
このように、実施形態の変形例1のメモリシステムでは、リフレッシュに伴う多量のデータ移動時に、第1の対応テーブルではなく、第2の対応テーブルの更新を行う。これにより、素早くリフレッシュを完了させることができる。
[変形例2]
実施形態の構成は、書き込み数の均一化を図るウェアレベリング時にも適用することができる。
ウェアレベリングとは、書き込み頻度の低いデータを保持し、消去回数の少ない物理ブロックを保持するブロックグループのデータを、消去回数の多い物理ブロックを保持するブロックグループに移し替えることで、物理ブロック間における書き込み回数の均一化を図る技術である。消去回数の少ない物理ブロックを保持するブロックグループのデータを、消去回数の多い物理ブロックを保持するブロックグループに移し替える際に多量のデータ移動が生じ得る。
このように、実施形態の変形例2のメモリシステムでは、ウェアレベリングに伴う多量のデータ移動時に、第1の対応テーブルではなく、第2の対応テーブルの更新を行う。これにより、素早くウェアレベリングを完了させることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…メモリシステム、2…ホスト、10、10a…メモリコントローラ、11…CPU、12…ホストインタフェース、13…RAM、13a…管理情報、14…NANDコントローラ、20…NAND型フラッシュメモリ、30…物理ブロック、30lg…ブロックグループ、41…第1の対応テーブル、42…第2の対応テーブル、C…クラスタ。

Claims (9)

  1. 複数の物理ブロックを有する不揮発性の半導体メモリと、
    ホストからのデータに割り当てられたアドレスに対応する論理クラスタアドレスと前記論理クラスタアドレスに対応するデータの記憶位置を特定する番号であって前記複数の物理ブロックのうちの所定数の物理ブロックを纏めた複数の第1の管理単位をそれぞれ特定する第1の論理番号および前記第1の管理単位の前記所定数の物理ブロックにおける前記ホストからの最小のアクセス単位の整数倍のサイズを有する複数の第2の管理単位のそれぞれを一意に特定する第2の論理番号とが対応付けられた第1の管理情報、および、前記複数の物理ブロックのうちの前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号と前記第1の論理番号とが対応付けられた第2の管理情報を管理するコントローラ回路と、を備え、
    前記コントローラ回路は、
    前記ホストから第1の論理クラスタアドレスに対応するアドレスへの第1データの書き込みを指示する命令を受領したことに応じて、前記半導体メモリの前記複数の物理ブロックのうちの第の物理ブロックに前記第1データを書き込むときは、前記第2の管理情報を更新することなく、前記第1の論理クラスタアドレスと、前記第1の物理ブロックを含む前記所定数の物理ブロックに対応する第1の管理単位に付与された第1の論理番号および前記第1の物理ブロックにおける前記第1データの記憶位置に対応する第2の管理単位を示す第2の論理番号と、を対応付けるように、前記第1の管理情報を更新し、
    所定の電源遮断手順を経ない電源断である不正電源断後において、前記不正電源断前に前記半導体メモリに書き込み途中だった第の物理ブロックを含む第1の管理単位の前記所定数の物理ブロックに記憶された第2データを他の第1の管理単位の前記所定数の物理ブロックに移動させるときは、前記第1の管理情報を更新することなく、移動元である前記第1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に対応付けられた第1の論理番号の対応先を移動先である前記他の第1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に変更して前記第2の管理情報を更新する、
    メモリシステム。
  2. 複数の物理ブロックを有する不揮発性の半導体メモリと、
    ホストからのデータに割り当てられたアドレスに対応する論理クラスタアドレスと、前記論理クラスタアドレスに対応するデータの記憶位置を特定する番号であって前記複数の物理ブロックのうちの所定数の物理ブロックを纏めた複数の第1の管理単位をそれぞれ特定する第1の論理番号および前記第1の管理単位の前記所定数の物理ブロックにおける前記ホストからの最小のアクセス単位の整数倍のサイズを有する複数の第2の管理単位のそれぞれを一意に特定する第2の論理番号とが対応付けられた第1の管理情報、および、前記複数の物理ブロックのうちの前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号と前記第1の論理番号とが対応付けられた第2の管理情報を管理するコントローラ回路と、を備え、
    前記コントローラ回路は、
    前記ホストから第1の論理クラスタアドレスに対応するアドレスへの第1データの書き込みを指示する命令を受領したことに応じて、前記半導体メモリの前記複数の物理ブロックのうちの第の物理ブロックに前記第1データを書き込むときは、前記第2の管理情報を更新することなく、前記第1の論理クラスタアドレスと前記第1の物理ブロックを含む前記所定数の物理ブロックに対応する第1の管理単位に付与された第1の論理番号、および前記第1の物理ブロックにおける前記第1データの記憶位置に対応する第2の管理単位を示す第2の論理番号と、を対応付けるように、前記第1の管理情報を更新し、
    前記ホストからの前記命令とは独立して実行され、所定の第1の管理単位の記所定数の物理ブロックに記憶された第2データを他の第1の管理単位の前記所定数の物理ブロックに移動させるときは、前記第1の管理情報を更新することなく、移動元である前記第1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に対応付けられた第1の論理番号の対応先を移動先である前記他の1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に変更して前記第2の管理情報を更新する、
    メモリシステム。
  3. 記コントローラ回路は、
    前記移動元である前記第1の管理単位の前記所定数の物理ブロックにおける前記第2データが記憶されている前記第2の管理単位の配置位置を維持して前記移動先である前記他の前記第1の管理単位の前記所定数の物理ブロックに前記第2データを移動する、
    請求項1または請求項2に記載のメモリシステム。
  4. 記コントローラ回路は、
    前記移動元である前記第1の管理単位の前記所定数の物理ブロックにおける前記第2データが記憶されている前記第2の管理単位の第2の論理番号を維持して前記移動先である前記他の前記第1の管理単位の前記所定数の物理ブロックに前記第2データを移動する、
    請求項1乃至請求項3のいずれか1項に記載のメモリシステム。
  5. 前記ホストからの前記命令とは独立して実行される処理では、所定量以上のデータが、前記第1の管理単位の前記所定数の物理ブロックから前記他の前記第1の管理単位の前記所定数の物理ブロックに移動される、
    請求項2に記載のメモリシステム。
  6. 前記ホストからの前記命令とは独立して実行される処理は、所定の電源遮断手順を経ない電源断である不正電源断時にデータの書き込みが行われていた前記第1の管理単位の前記所定数の物理ブロック内に存在するデータのうち、不正電源断時の書き込み以前から存在していたデータ、及び不正電源断時に既に書き込みが終了していたデータを前記他の前記第1の管理単位の前記所定数の物理ブロックに移動させるクリーンアップ処理である、
    請求項2または請求項に記載のメモリシステム。
  7. 前記ホストからの前記命令とは独立して実行される処理は、自然放電により記憶したデータが失われる前、または、隣接するセルへのリード処理が繰り返されることにより記憶したデータの値が変化する前に、予め、前記第1の管理単位の前記所定数の物理ブロックに記憶したデータを前記他の前記第1の管理単位の前記所定数の物理ブロックに移動させるリフレッシュ処理である、
    請求項2または請求項に記載のメモリシステム。
  8. 前記ホストからの前記命令とは独立して実行される処理は、前記第1の管理単位の前記所定数の物理ブロックが属する消去回数の少ない前記複数の物理ブロックから、消去回数の多い複数の物理ブロックに移し替える場合に、前記第1の管理単位の前記所定数の物理ブロックに記憶したデータを前記他の前記第1の管理単位の前記所定数の物理ブロックに移動させるウェアレベリング処理である、
    請求項2または請求項に記載のメモリシステム。
  9. 複数の物理ブロックを有する不揮発性の半導体メモリ、及び前記半導体メモリを制御するコントローラ回路を具備し、ホストに接続されるメモリシステムの制御方法であって、
    前記コントローラ回路は、
    前記ホストからのデータに割り当てられたアドレスに対応する論理クラスタアドレスと前記論理クラスタアドレスに対応するデータの記憶位置を特定する番号であって前記複数の物理ブロックのうちの所定数の物理ブロックを纏めた複数の第1の管理単位をそれぞれ特定する第1の論理番号および前記第1の管理単位の前記所定数の物理ブロックにおける前記ホストからの最小のアクセス単位の整数倍のサイズを有する複数の第2の管理単位のそれぞれを一意に特定する第2の論理番号とが対応付けられた第1の管理情報、および、前記複数の物理ブロックのうちの前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号と前記第1の論理番号とが対応付けられた第2の管理情報を管理し
    前記コントローラ回路は、
    前記ホストから第1の論理クラスタアドレスに対応するアドレスへの第1データの書き込みを指示する命令を受領したことに応じて、前記半導体メモリの前記複数の物理ブロックのうちの第の物理ブロックに前記第1データを書き込むときは、前記第2の管理情報を更新することなく、前記第1の論理クラスタアドレスと前記第1の物理ブロックを含む前記所定数の物理ブロックに対応する第1の管理単位に付与された第1の論理番号および前記第1の物理ブロックにおける前記第1データの記憶位置に対応する第2の管理単位を示す第2の論理番号と、を対応付けるように、前記第1の管理情報を更新し、
    前記ホストからの前記命令とは独立して実行され、所定の第1の管理単位の前記所定数の物理ブロックに記憶された第2データを他の第1の管理単位の前記所定数の物理ブロックに移動させるときは、前記第1の管理情報を更新することなく、移動元である前記第1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に対応付けられた第1の論理番号の対応先を移動先である前記他の1の管理単位の前記所定数の物理ブロックにそれぞれ割り当てられた物理ブロック番号に変更して前記第2の管理情報を更新する、
    メモリシステムの制御方法。
JP2018055782A 2018-03-23 2018-03-23 メモリシステム及びメモリシステムの制御方法 Active JP7109949B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018055782A JP7109949B2 (ja) 2018-03-23 2018-03-23 メモリシステム及びメモリシステムの制御方法
US16/114,019 US10783070B2 (en) 2018-03-23 2018-08-27 Memory system having first and second correspondence tables and method of controlling memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018055782A JP7109949B2 (ja) 2018-03-23 2018-03-23 メモリシステム及びメモリシステムの制御方法

Publications (2)

Publication Number Publication Date
JP2019168898A JP2019168898A (ja) 2019-10-03
JP7109949B2 true JP7109949B2 (ja) 2022-08-01

Family

ID=67983565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018055782A Active JP7109949B2 (ja) 2018-03-23 2018-03-23 メモリシステム及びメモリシステムの制御方法

Country Status (2)

Country Link
US (1) US10783070B2 (ja)
JP (1) JP7109949B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021068129A (ja) * 2019-10-21 2021-04-30 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
CN112948173A (zh) * 2021-02-02 2021-06-11 湖南国科微电子股份有限公司 一种数据恢复方法、装置、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007119267A1 (ja) 2006-03-13 2007-10-25 Matsushita Electric Industrial Co., Ltd. フラッシュメモリ用のメモリコントローラ
JP2009211232A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP2013200741A (ja) 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、その制御方法及び情報処理装置
US20140019672A1 (en) 2012-07-13 2014-01-16 Kabushiki Kaisha Toshiba Memory system and control method thereof
US20150339223A1 (en) 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4751163B2 (ja) * 2005-09-29 2011-08-17 株式会社東芝 メモリシステム
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
JP2009211233A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
JP5317690B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP5317689B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
US8909851B2 (en) * 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
CN103902461A (zh) 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置
CN106843742A (zh) 2015-12-03 2017-06-13 广明光电股份有限公司 固态硬盘及其执行删除命令的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007119267A1 (ja) 2006-03-13 2007-10-25 Matsushita Electric Industrial Co., Ltd. フラッシュメモリ用のメモリコントローラ
JP2009211232A (ja) 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US20120124330A1 (en) 2008-03-01 2012-05-17 Kabushiki Kaisha Toshiba Memory system
JP2013200741A (ja) 2012-03-26 2013-10-03 Toshiba Corp 半導体記憶装置、その制御方法及び情報処理装置
US20140019672A1 (en) 2012-07-13 2014-01-16 Kabushiki Kaisha Toshiba Memory system and control method thereof
JP2014021622A (ja) 2012-07-13 2014-02-03 Toshiba Corp メモリシステムおよびその制御方法
US20150339223A1 (en) 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method

Also Published As

Publication number Publication date
JP2019168898A (ja) 2019-10-03
US20190294539A1 (en) 2019-09-26
US10783070B2 (en) 2020-09-22

Similar Documents

Publication Publication Date Title
TWI679642B (zh) 用於組態和控制非揮發性快取記憶體的系統及方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5031849B2 (ja) フラッシュメモリのブロック管理方法
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
US10055143B2 (en) Solid state drive and data programming method thereof
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
KR20100003244A (ko) 판독 실패 관리 방법 및 시스템
CN112346656A (zh) 控制器及其操作方法
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
KR20130050591A (ko) 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
JP2018101411A (ja) データストレージデバイスおよびその操作方法
CN111736755A (zh) 数据存储装置、其操作方法以及包括其的存储系统
JP2011070365A (ja) メモリシステム
JP7109949B2 (ja) メモリシステム及びメモリシステムの制御方法
US8527733B2 (en) Memory system
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JP2019148913A (ja) メモリシステム
US20190310917A1 (en) Memory system and method of controlling memory system
US11966610B2 (en) Storage device capable of adjusting size of zoned namespace and operating method thereof
JP2021033945A (ja) メモリシステムおよび制御方法
WO2022193270A1 (en) Write booster buffer flush operation
JP2023136082A (ja) メモリシステムおよび制御方法
JP2023002294A (ja) メモリシステムおよびリフレッシュ制御方法
CN111949212A (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
US11714577B2 (en) Snap read optimization for media management for a memory sub-system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180905

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200915

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220124

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220720

R151 Written notification of patent or utility model registration

Ref document number: 7109949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151