CN109885506A - 数据储存装置、主机装置、以及数据写入方法 - Google Patents

数据储存装置、主机装置、以及数据写入方法 Download PDF

Info

Publication number
CN109885506A
CN109885506A CN201810053071.6A CN201810053071A CN109885506A CN 109885506 A CN109885506 A CN 109885506A CN 201810053071 A CN201810053071 A CN 201810053071A CN 109885506 A CN109885506 A CN 109885506A
Authority
CN
China
Prior art keywords
data
check code
magnetic disk
independent magnetic
redundant array
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.)
Granted
Application number
CN201810053071.6A
Other languages
English (en)
Other versions
CN109885506B (zh
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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109885506A publication Critical patent/CN109885506A/zh
Application granted granted Critical
Publication of CN109885506B publication Critical patent/CN109885506B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及高容错力的数据储存装置、主机装置以及数据写入方法,其中提供一独立磁碟备援阵列编码引擎对一数据写入指令所包括的一使用者数据进行编码以产生一独立磁碟备援阵列校验码。使用者数据编程至一非挥发式存储器上该数据写入指令所指示的一目的物理地址,并将该独立磁碟备援阵列校验码编程至该非挥发式存储器的一预设物理地址。该使用者数据与该独立磁碟备援阵列校验码置于一带状区块的一带状页。

Description

数据储存装置、主机装置、以及数据写入方法
技术领域
本发明有关于数据储存装置以及其中非挥发式存储器的操作方法。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
一非挥发式存储器可与一控制器结合成一数据储存装置,由一主机操作。如何强化如此数据储存装置的容错度为本技术领域一项重要课题。
发明内容
根据本发明一种实施方式所实现的一种数据储存装置,包括:非挥发式存储器;以及微控制器,微控制器包括独立磁碟备援阵列编码引擎,独立磁碟备援阵列(RAID)编码引擎可对数据写入指令所包括的使用者数据进行编码以产生独立磁碟备援阵列校验码,微控制器可将使用者数据编程至非挥发式存储器的数据写入指令所包括的目的物理地址,并将独立磁碟备援阵列校验码编程至非挥发式存储器的预设物理地址,其中,使用者数据与独立磁碟备援阵列校验码置于带状区块的带状页。
根据本发明一种实施方式所实现的一种主机装置,用以控制一数据储存装置的运作,主机装置令数据储存装置将使用者数据储存至目的物理地址,令数据储存装置将独立磁碟备援阵列(RAID)校验码储存至预设物理地址,其中,主机装置依据区块状态表决定预设物理地址所属的逻辑单元编号(LUN)。
根据本发明一种实施方式实现的一种数据写入操作的方法,包括:接收数据写入指令;对数据写入指令的使用者数据产生独立磁碟备援阵列(RAID)校验码;将使用者数据编程至非挥发式存储器的数据写入指令的目标物理地址;接收独立磁碟备援阵列校验码输出指令;以及依据独立磁碟备援阵列校验码输出指令而将独立磁碟备援阵列校验码编程至非挥发式存储器的预设物理地址。其中,使用者数据与独立磁碟备援阵列校验码置于非挥发式存储器的带状区块的带状页中。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1为方块图,图解根据本发明一种实施方式所实现的一数据储存装置100;
图2图解根据本发明实施方式实现的RAID编码;
图3图解根据本发明实施方式实现的区块状态表;以及
图4为本发明主机106对数据储存装置100进行数据写入操作的方法流程图。
【符号说明】
100~数据储存装置;
102~快闪存储器;
104~微控制器;
106~主机:
108~驱动器;
112~独立磁碟备援阵列(RAID)编码引擎;
114~独立磁碟备援阵列(RAID)校验码缓存器;
Blk_Stripe#0、Blk_Stripe#1、Blk_Stripe#2~带状区块;
DRAM~动态随机存取存储器;
FTL~快闪存储器转换层;
LUN#0…LUN#N~逻辑单元编号;
Total_LUN~LUN可用数量;
NFC~与非门快闪存储器控制器;
NVMe~非挥发式存储器快速介面;
Parity_LUN~校验码逻辑单元编号;以及
S402…S414~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照申请专利范围界定。
非挥发式存储器可以是快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存之储存媒体,可用于实现数据储存装置、或应用于数据中心。以下特别以快闪存储器(Flash Memory)为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,用来实现记忆卡(Memory Card)、通用串行总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为一主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。储存媒体与主机两者采用相同的通信介面或通信协定以进行指令或数据的交换或传送。
快闪存储器实现的储存媒体也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为一主机,操作所连结的固态硬碟,以存取其中快闪存储器。
主机端是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)区别快闪存储器储存内容。快闪存储器的储存空间一般划分为多个区块(Blocks),各区块包括多页(Pages),一页的大小例如是16KB。各页可更划分为多个储存单元,储存单元的大小较佳等于使用者数据的大小,例如4KB。为了最佳化使用快闪存储器,快闪存储器的物理地址系动态配置对应主机所识别的逻辑地址。逻辑地址以及物理地址之间的对应关系需以L2P映射表管理。另外,当一个区块(空白的)被选取并用以储存使用者数据时,称之为主动区块(Active Block),并产生此主动区块的一P2L映射表,以记录此主动区块的使用者数据的物理地址以及逻辑地址之间的对应关。当此主动区块关闭而不再储存使用者数据时,P2L映射表通常写入至此主动区块的指定地址,例如:最后一页,并将此主动区块定义为数据区块,不再用以储存新的使用者数据。
另外,为了缩小L2P映射表以及P2L映射表的尺寸,L2P映射表较佳以逻辑地址为索引,项目为物理地址,并依序建立,在此设定下,仅物理地址记录至L2P映射表;相反地,P2L映射表较佳以物理地址为索引,项目为逻辑地址,并依序建立,在此设定下,仅逻辑地址记录至P2L映射表。
主机对快闪存储器多种操作都需参考、或可能牵动L2P映射表内容。例如,主机对快闪存储器的读取需要参考L2P映射表,主机对快闪存储器的写入则需更新L2P映射表。特别是,快闪存储器储存空间需以区块为单位进行抹除(Erase)后方能再次使用。由于各区块可承受的抹除次数有上限,快闪存储器的操作有抹写平均(Wear Leveling)议题需要考量。另外,使用者数据更新时,并非将使用者数据写入原储存地址,而是将更新的使用者数据写入另一地址,原储存地址所储存的旧的使用者数据则为无效数据。当一数据区块可能零星留存有效数据,故垃圾回收(Garbage Collection)需求相应产生。一数据区块中留存的零星有效数据(未被更新的使用者数据)可经垃圾回收技术搬移到一主动区块,使得徒留无效数据的数据区块得以被抹除而成为闲置区块,日后可被选为主动区块。上述抹写平均以及垃圾回收技术,都涉及L2P映射表管理。甚至,其他促进快闪存储器操作效能的技术,也都有可能与L2P映射表相关。如何确保L2P映射表上的资讯正确,又不因L2P映射表维护拖累效能,为本技术领域重要议题。
为了确保数据的正确性,数据储存装置可采用独立磁碟备援阵列(RedundantArray of Independent Disks,RAID)系统,除了储存使用者数据之外,更储存使用者数据的RAID校验码。如此一来,当使用者数据的内容有错误时,主机或微控制器可依据RAID校验码进行使用者数据的修复,确保使用者数据的正确性。
然而,产生使用者数据的RAID校验码需要花费时间及系统效能,本发明提出一种数据写入操作的方法及装置,兼顾使用者数据的正确性以及系统效能。
图1为方块图,图解根据本发明一种实施方式所实现的一数据储存装置100。数据储存装置100包括一快闪存储器102、一微控制器104以及一挥发式存储器(如动态随机存取存储器,DRAM)。一主机106可连结该数据储存装置100,通过该微控制器104存取该快闪存储器102,其中利用DRAM进行资讯暂存。另外,为了成本考量,数据储存装置100可不配置DRAM,并以微控制器104内建的静态随机存取存储器(SRAM)替代DRAM的功能。
本发明较佳采用一种开放通道(Open Channel)架构,由主机106建立并管理L2P映射表,即由主机106决定使用者数据的逻辑地址,亦决定使用者数据在数据储存装置的物理地址(目标物理地址)。此外,主机106亦决定RAID校验码在数据储存装置的物理地址(预设物理地址)。主机106上的驱动器(Driver)108除了提供一非挥发式存储器快速介面NVMe与微控制器104建立通讯,还提供一快闪存储器转换层(Flash Translation Layer,FTL)管理L2P映射表以及P2L映射表。微控制器104包括用以控制快闪存储器102运作的与非门快闪存储器控制器(NAND Flash Controller,NFC),更包括一RAID编码引擎112以及一RAID校验码缓存器(Parity Buffer)114。在另一实施例中,数据储存装置100的微控制器104提供FTL以管理L2P映射表以及P2L映射表,并提供L2P映射表的复件至主机106。
微控制器104可以多通道方式操作该快闪存储器102,各通道上的快闪存储器102可更被多个晶片致动(CE)信号分开驱动。微控制器104可将快闪存储器102的储存空间虚拟化,例如:将位于不同通道上的LUN/区块/页虚拟化成RAID系统的一带状空间(Stripe),而带状空间可储存使用者数据(多使用者数据)及RAID校验码。
如图2所示,快闪存储器102包括8个逻辑单元编号(Logical Unit Number,LUN),分别是LUN#0、LUN#1、LUN#2、LUN#3…LUN#7,每一LUN较佳具有相同数量的区块,例如:1024个区块,每一区块较佳具有相同数量的页,例如:512页,每一页较佳提供相同的数据储存量,例如:16KB。带状区块Blk_Stripe(Block Stripe)可包括LUN#0…LUN#N中同一区块编号的区块BLK,例如:带状区块Blk_Stripe#0包括LUN#0~#7中的每个区块BLK#0,共计8个区块BLK#0。或者,带状区块Blk_Stripe也可仅包含多个LUN中同一区块编号的区块BLK,例如:带状区块Blk_Stripe#10包括LUN#0~#3提供的区块BLK#10,带状区块Blk_Stripe#11包括LUN#4~#7提供的区块BLK#11。带状区块Blk_Stripe中其中一个LUN的区块BLK可作为RAID校验码区块,用以储存RAID校验码。
带状区块Blk_Stripe可包括多个带状页P_Stripe(Page Stripe),例如:512个带状页P_Stripe,每一带状页P_Stripe由带状区块Blk_Stripe中同一页编号的页所组成,例如:带状页P_Stripe#0由带状区块Blk_Stripe#0中的8个页#0所组成。配合快闪存储器的运作特性,本发明中以带状区块Blk_Stripe为RAID抹写单位,带状页P_Stripe为RAID存取单位。当带状区块Blk_Stripe决定后,使用者数据以及对应的RAID校验码即可写入带状页P_Stripe中。当带状区块Blk_Stripe中所有带状页P_Stripe皆已写满数据,则主机106选取另一带状区块Blk_Stripe,并重复上述步骤。上述架构仅方便说明本发明,但不以此为限。
来自主机106的使用者数据由微控制器104陆续地储存至该静态随机存取存储器SRAM,待储存的使用者数据的数量或数据量累积至一预定量,例如4笔使用者数据或数据量或一页的储存量时,或超过一数据收集时间时,微控制器104将使用者数据自动态随机存取存储器DRAM取出。使用者数据除了经由NFC编程至快闪存储器102,更交由RAID编码引擎112进行RAID校验码的计算,即对使用者数据进行XOR的计算,再将产出的(更新的)RAID校验码储存至RAID校验码缓存器114。
之后,微控制器104依据主机106的指令而将RAID校验码缓存器114所缓存的RAID校验码经该NFC编程至该快闪存储器102。其中,使用者数据编程至主机106所指定的物理地址(目的物理地址),使用者数据的逻辑地址及物理地址记录(更新)至L2P和P2L映射表。RAID校验码编程至预设物理地址,RAID校验码的逻辑地址及预设物理地址仅记录(更新)至P2L映射表,其中,主机106将RAID校验码的逻辑地址皆设为一预设值,例如:0xFFFF,或以带状区块Blk_Stripe或带状页P_Stripe的编号作为RAID校验码的逻辑地址。使用者数据与对应的RAID校验码储存至同一带状页P_Stripe,预设物理地址为RAID校验码区块中带状页P_Stripe所对应的页的物理地址。
在另一实施例中,微控制器104将使用者数据以及RAID校验码一并输出至NFC,再由NFC将使用者数据以及RAID校验码一并编程至该快闪存储器102。
为了达到本发明的目的,主机106的非挥发式存储器快速介面NVMe较佳定义一RAID初始化指令RAID_Parity_Init以及一RAID校验码输出指令RAID_Parity_Out。RAID初始化指令RAID_Parity_Init用于重置该RAID编码引擎112并重置该RAID校验码缓存器114,而RAID初始化指令RAID_Parity_Init的校验码逻辑单元编号Parity_LUN用来指定储存RAID校验码的LUN,即此LUN的区块BLK将作为RAID校验码区块,此LUN的区块BLK的页用以储存RAID校验码,页的地址为预设物理地址。RAID校验码输出指令RAID_Parity_Out则指示微控制器104将该RAID校验码自该RAID校验码缓存器114编程至该快闪存储器102,即校验码逻辑单元编号Parity_LUN所指定的LUN的区块BLK的页中。如此一来,主机106可以藉由RAID初始化指令RAID_Parity_Init以及RAID校验码输出指令RAID_Parity_Out控制微控制器104是否产生RAID校验码以及是否将RAID校验码编程至该快闪存储器102。
另外,顾及快闪存储器102的区块可能的损坏状况,RAID初始化指令RAID_Parity_Init较佳更提供一LUN可用数量Total_LUN以显示带状区块Blk_Stripe中可用LUN的总数,或是LUN中可用区块的总数。如图2所示,可用LUN#0~7所提供的区块BLK#0皆为正常且可用的区块,在图3的区块状态表中标记为"0",主机106将这些区块BLK组成带状区块Blk_Stripe#0,LUN可用数量Total_LUN的值为8,校验码逻辑单元编号Parity_LUN的值设定为0,这表示LUN#0的区块BLK#0将用以储存RAID校验码。待收到RAID校验码输出指令RAID_Parity_Out后,微控制器104输出RAID校验码至NFC,由NFC将RAID校验码编程至校验码逻辑单元编号Parity_LUN所指定的区块BLK#0的其中一页。
在带状区块Blk_Stripe#2中,LUN#2的区块BLK#2为损坏区块,在区块状态表的标记为"1",则主机106将LUN可用数量Total_LUN的值设定为7,校验码逻辑单元编号Parity_LUN设定为3。待收到RAID校验码输出指令RAID_Parity_Out后,微控制器104可输出RAID校验码至NFC,以将RAID校验码编程至LUN#3的BLK#2的其中一个页。由上述中可知,主机106可依据区块状态图随时调整LUN可用数量Total_LUN以及校验码逻辑单元编号Parity_LUN的值,让使用者数据以及RAID校验码可正确地编程至带状区块Blk_Stripe的带状页中。
在使用者数据的写入过程中,主机106可将RAID初始化指令RAID_Parity_Init的校验码逻辑单元编号Parity_LUN设定至同一个LUN,例如LUN#7,此设定类似RAID-4的设计。或是,利用值为8的余数(Mod)函数对带状区块Blk_Stripe的编号进行运算,并以函数的值来设定校验码逻辑单元编号Parity_LUN的值,例如:带状区块Blk_Stripe#0的余数函数值为0,故校验码逻辑单元编号Parity_LUN的值为0;带状区块Blk_Stripe#1的余数函数值为1,故校验码逻辑单元编号Parity_LUN的值为1;带状区块Blk_Stripe#2的余数函数值为2,故校验码逻辑单元编号Parity_LUN的值为2,以此类推。此设定类似RAID-5的设计,理论上将RAID校验码储存至不同的LUN可提升快闪存储器102数据读取频宽,因此,本发明数据写入操作的方法较佳采用RAID-5的设计,但不以此为限。
微控制器104可利用LUN可用数量Total_LUN来管理RAID校验码的产生。在产生RAID校验码的过程中,微控制器104每次输出使用者数据至RAID编码引擎112去计算(或更新)RAID校验码时,微控制器104就将LUN可用数量Total_LUN递减1。当接收RAID校验码输出指令RAID_Parity_Out时,LUN可用数量Total_LUN的值应该已递减至1。如果接收RAID校验码输出指令RAID_Parity_Out时,LUN可用数量Total_LUN并非为1者,这表示主机106并未提供足够数量或提供过多数量的使用者数据至微控制器104,则微控制器104回报该主机106一错误信息,再由主机106进行后续的错误管理。
图4为流程图,根据本发明一种实施方式说明主机106对数据储存装置100进行数据写入操作的方法。步骤S402,主机106输出辨识指令(Identify Command)至数据储存装置100的微控制器104。
步骤S404,微控制器104回报该快闪存储器102的RAID编码最大处理量(MaximumRAID Parity Number)至主机106。当接收来自主机106的辨识指令后,微控制器104除了回报主机106一组控制参数之后,更回报主机106微控制器104的RAID编码最大处理量,即带状区块Blk_Stripe最多可跨越的LUN的数量。例如,以4通道且各通道以两CE信号操作的快闪存储器102控制架构为例,总共可控制8个LUN,即LUN#0~#7,则RAID编码最大处理量的值为8。另外,微控制器104更可回回报主机106区块状态表,区块状态表列出损坏区块的编号或是每一区块的状态(良好或损坏)。当主机106收到区块状态表之后,较佳由主机106维持区块状态表的更新。
步骤S406,主机106输出RAID初始化指令RAID_Parity_Init至微控制器104,其中,RAID初始化指令RAID_Parity_Init包括LUN可用数量Total_LUN以及校验码逻辑单元编号Parity_LUN。主机106依据微控制器104所回报的RAID编码最大处理量来设定LUN可用数量Total_LUN以决定带状区块Blk_Stripe的设定值,即带状区块Blk_Stripe所跨越的LUN的数量,例如:数值8。校验码逻辑单元编号Parity_LUN的值为快闪存储器102的其中之一LUN的编号。例如:带状区块Blk_Stripe#0的校验码逻辑单元编号Parity_LUN的值为0,则LUN#1~#7的区块BLK#0用以储存使用者数据,LUN#0的区块BLK#0用以储存RAID校验码。更精准地说,带状区块Blk_Stripe#0的带状页P_Stripe#0~#511中,LUN#1~#7的区块BLK#0的页P#0~#511用以储存使用者数据,LUN#0的区块BLK#0的页P#0~#511用以储存RAID校验码。
另外,如果利用余数(Mod)函数所取得的校验码逻辑单元编号Parity_LUN的值,如果此时作为校验码逻辑单元编号Parity_LUN的区块BLK为损坏区块,则微控制器104可直接将LUN可用数量Total_LUN减1,并将校验码逻辑单元编号Parity_LUN的值也减1以避开此损坏区块。
此外,当收到来自主机106的RAID初始化指令RAID_Parity_Init后,微控制器104可重置该RAID编码引擎112、重置该RAID校验码缓存器114,并记录LUN可用数量Total_LUN以及校验码逻辑单元编号Parity_LUN。
步骤S408,主机106输出数据写入指令至数据储存装置100的微控制器104,其中,数据写入指令包括使用者数据以及目标物理地址,其中,使用者数据以及目标物理地址较佳为一对一对应,目标物理地址较佳为带状区块Blk_Stripe的带状页P_Stripe的其中之一的物理地址。
步骤S410,微控制器104对数据写入指令的使用者数据产生RAID校验码并将使用者数据编程至快闪存储器102。微控制器104依据数据写入指令而取得使用者数据(以及目标物理地址)后,令NFC将使用者数据编程至快闪存储器102中的目标物理地址,例如,目前选取的是带状区块Blk_Stripe#0的带状页P_Stripe#0,则使用者数据分别编程至LUN#1~#7的区块BLK#0的页P#0,并令RAID编码引擎112依据使用者数据产生RAID校验码。在另一实施例中,微控制器104先将使用者数据暂存于该动态随机存取存储器DRAM中,待使用者数据累积至预定量或超过数据收集时间后,再令NFC将使用者数据编程至快闪存储器102中的目标物理地址,并令RAID编码引擎112依据使用者数据产生RAID校验码。另外,RAID编码引擎112每次产生(更新)RAID校验码后,微控制器104就将LUN可用数量Total_LUN减1。
步骤S412,主机106输出RAID校验码输出指令RAID_Parity_Out至微控制器104。当收到来自主机106的RAID校验码输出指令RAID_Parity_Out时,微控制器104会先确认LUN可用数量Total_LUN的值是否等于1,如果不是,这表示主机106并未提供预设数量的使用者数据至微控制器104,则微控制器104回报该主机106错误信息,再由主机106进行后续的错误管理。
步骤S414,微控制器104依据RAID初始化指令的校验码逻辑单元编号Parity_LUN而将RAID校验码编程至快闪存储器102的预设物理地址,其中,预设物理地址为校验码逻辑单元编号Parity_LUN在带状页P_Stripe中所对应的物理地址。例如,目前选取的是带状区块Blk_Stripe#0的带状页P_Stripe#0,当主机106输出RAID校验码输出指令RAID_Parity_Out至微控制器104,则微控制器104将RAID编码引擎112所产生的RAID校验码编程至LUN#0的区块BLK#0的页P#0,此时,带状区块Blk_Stripe#0的带状页P_Stripe#0完成数据写入的操作,主机106可以开始对带状区块Blk_Stripe#0的带状页P_Stripe#1进行数据写入。
带状区块Blk_Stripe的数据写入操作的顺序较佳依LUN编号的顺序,但不以此为限。例如,在带状区块Blk_Stripe#1中,使用者数据的编程顺序可为LUN#2'LUN#3'LUN#4'LUN#5'LUN#6'LUN#7'LUN#0的区块Blk#1而RAID校验码编程至LUN#1的区块Blk#1,或是LUN#0'LUN#2'LUN#3'LUN#4'LUN#5'LUN#6'LUN#7的区块Blk#1而RAID校验码编程至LUN#1的区块Blk#1,或是依据每一通道的准备(Ready)状态与否来交错地编程。
物理地址较佳由通道编号、LUN编号、区块编号、页编号所组成,而目的物理地址以及预设物理地址具有相同的区块编号与页编号。以上述设定为例,初始化指令RAID_Parity_Init的LUN可用数量Total_LUN设为7,带状区块Blk_Stripe包括通道#0~3以及CE#0~1所控制的LUN#0~7。当带状区块Blk_Stripe决定时,则区块编号亦被决定,例如带状区块Blk_Stripe#1的区块编号为1。当带状页P_Stripe决定时,则页编号亦被决定,例如:带状页P_Stripe#2的页编号为2。假设校验码逻辑单元编号Parity_LUN的值为0,则RAID校验码的预设物理地址可为通道#0以及CE#0所控制的LUN#0的区块BLK#1的页P#2的物理地址;带状页P_Stripe#2的其他地址,即其他LUN的区块BLK#1的页P#2的物理地址,皆为目的物理地址。由上述中可知,目的物理地址以及预设物理地址具有相同的区块编号与页编号。
在上述说明中以页为数据管理的最小单位进行说明,然而,页包括多区段(sector),微控制器104亦可以以区段,而非页,作为数据管理的最小单位。在此设定下,目的物理地址则区段的地址,或为偏差值(Offset)。例如,一页的大小为16KB,区段的大小为4KB,则一页包括4区段,则带状区块Blk_Stripe#0的带状页P_Stripe#0可储存28笔使用者数据。然而,RAID编码引擎112较佳仍以页大小的使用者数据进行编码产生1页的RAID校验码,以提高RAID编码的速度。RAID编码引擎112亦可对相同区段编号的使用者数据进行编码产生1区段的RAID校验码,并将此RAID校验码编程至带状页P_Stripe#0在校验码逻辑单元编号Parity_LUN的页#0的相同区段编号的区段中。
在完成数据写入操作之后,主机106可启动数据读取操作而自数据储存装置100取得使用者数据。当使用者数据损坏或遗失时,主机106得知使用者数据的物理地址,配合校验码逻辑单元编号Parity_LUN的值、带状区块Blk_Stripe以及带状页P_Stripe的编号即能得知RAID校验码的储存位置,进而利用RAID校验码而进行使用者数据的修复。由于数据修复的方法并非本发明的重点,故不多作说明。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。

Claims (25)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一微控制器,包括一独立磁碟备援阵列编码引擎,该独立磁碟备援阵列编码引擎可对一数据写入指令所包括的一使用者数据进行编码以产生一独立磁碟备援阵列校验码,该微控制器可将该使用者数据编程至该非挥发式存储器的该数据写入指令所包括的一目的物理地址,并将该独立磁碟备援阵列校验码编程至该非挥发式存储器的一预设物理地址,其中,该使用者数据与该独立磁碟备援阵列校验码置于一带状区块的一带状页。
2.如权利要求1所述的数据储存装置,其特征在于,该数据写入指令来自于一主机。
3.如权利要求1所述的数据储存装置,其特征在于,该预设物理地址由来自一主机的一独立磁碟备援阵列初始化指令所决定。
4.如权利要求1所述的数据储存装置,其特征在于,该微控制器依据一独立磁碟备援阵列校验码输出指令而将该独立磁碟备援阵列校验码编程至该非挥发式存储器的该预设物理地址。
5.如权利要求1所述的数据储存装置,其特征在于,该微控制器还包括一独立磁碟备援阵列校验码缓存器,该独立磁碟备援阵列校验码缓存器用以暂存该独立磁碟备援阵列校验码。
6.如权利要求1所述的数据储存装置,其特征在于,该使用者数据与该独立磁碟备援阵列校验码同时编程至该非挥发式存储器。
7.如权利要求1所述的数据储存装置,其特征在于,该使用者数据与该独立磁碟备援阵列校验码依序编程至该非挥发式存储器。
8.如权利要求1所述的数据储存装置,其特征在于,该微控制器检查一逻辑单元编号可用数量的值是否等于一预设值,如果是,该微控制器将该独立磁碟备援阵列校验码编程至该非挥发式存储器的该预设物理地址。
9.一种主机装置,用以控制一数据储存装置的运作,该主机装置令该数据储存装置将一使用者数据储存至一目的物理地址,令该数据储存装置将一独立磁碟备援阵列校验码储存至一预设物理地址,其中,该主机装置依据一区块状态表决定该预设物理地址所属的一逻辑单元编号。
10.如权利要求9所述的主机装置,其特征在于,该主机装置还依据一函数以决定该预设物理地址所属的该逻辑单元编号。
11.如权利要求9项所述的主机装置,其特征在于,该主机装置将该使用者数据的该目的物理地址记录至一L2P映射表。
12.如权利要求9项所述的主机装置,其特征在于,该主机装置将该独立磁碟备援阵列校验码的一逻辑地址记录至一P2L映射表。
13.如权利要求12项所述的主机装置,其特征在于,该逻辑地址包括一带状区块或带状页的一编号。
14.如权利要求9项所述的主机装置,其特征在于,该主机装置输出一数据写入指令至该数据储存装置,该数据写入指令包括该使用者数据以及该目的物理地址。
15.如权利要求9项所述的主机装置,其特征在于,该独立磁碟备援阵列校验码由该数据储存装置自行产生。
16.如权利要求9项所述的主机装置,其特征在于,该主机装置藉由一独立磁碟备援阵列校验码输出指令以令该数据储存装置将该独立磁碟备援阵列校验码储存至该预设物理地址。
17.如权利要求9项所述的主机装置,其特征在于,该区块状态表由该数据储存装置所提供。
18.如权利要求9项所述的主机装置,其特征在于,该区块状态表由该主机装置所维持。
19.一种数据写入操作的方法,包括:
接收一数据写入指令;
对该数据写入指令的一使用者数据产生一独立磁碟备援阵列校验码;
将该使用者数据编程至一非挥发式存储器的该数据写入指令的一目标物理地址;
接收一独立磁碟备援阵列校验码输出指令;以及
依据该独立磁碟备援阵列校验码输出指令而将该独立磁碟备援阵列校验码编程至一非挥发式存储器的一预设物理地址,其中,该使用者数据与该独立磁碟备援阵列校验码置于一非挥发式存储器的一带状区块的一带状页。
20.如权利要求19所述的数据写入操作方法,其特征在于,该预设物理地址由来自一独立磁碟备援阵列初始化指令所决定。
21.如权利要求19所述的数据写入操作方法,其特征在于,该使用者数据与该独立磁碟备援阵列校验码同时编程至该非挥发式存储器。
22.如权利要求19所述的数据写入操作方法,其特征在于,该使用者数据与该独立磁碟备援阵列校验码依序编程至该非挥发式存储器。
23.如权利要求19所述的数据写入操作方法,其特征在于,,判断一逻辑单元编号可用数量的值是否等于一预设值,如果是,将该独立磁碟备援阵列校验码编程至该非挥发式存储器的该预设物理地址。
24.如权利要求23所述的数据写入操作方法,其特征在于,,该逻辑单元编号可用数量由一独立磁碟备援阵列初始化指令所提供。
25.如权利要求19所述的数据写入操作方法,其特征在于,还包括:
依据一辨识指令而输出一区块状态表。
CN201810053071.6A 2017-12-06 2018-01-19 数据储存装置、主机装置、以及数据写入方法 Active CN109885506B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106142715 2017-12-06
TW106142715A TWI661307B (zh) 2017-12-06 2017-12-06 資料儲存裝置、主機裝置、以及資料寫入方法

Publications (2)

Publication Number Publication Date
CN109885506A true CN109885506A (zh) 2019-06-14
CN109885506B CN109885506B (zh) 2022-11-11

Family

ID=66659177

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810053071.6A Active CN109885506B (zh) 2017-12-06 2018-01-19 数据储存装置、主机装置、以及数据写入方法

Country Status (3)

Country Link
US (1) US10783037B2 (zh)
CN (1) CN109885506B (zh)
TW (1) TWI661307B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112084070A (zh) * 2020-09-21 2020-12-15 深圳佰维存储科技股份有限公司 L2p映射数据恢复方法、装置、存储介质及电子设备
CN112099985A (zh) * 2019-06-17 2020-12-18 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347586B2 (en) * 2018-07-25 2022-05-31 ScaleFlux, Inc. Realizing high-speed and low-latency RAID across multiple solid-state storage device with host-side FTL
US11269562B2 (en) * 2019-01-29 2022-03-08 EMC IP Holding Company, LLC System and method for content aware disk extent movement in raid
CN112130749B (zh) 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI718709B (zh) * 2019-06-25 2021-02-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112783684A (zh) * 2019-11-06 2021-05-11 华为技术有限公司 一种校验数据计算方法及装置
US11449271B2 (en) 2019-12-30 2022-09-20 Micron Technology, Inc. Implementing fault tolerant page stripes on low density memory systems
US11709601B2 (en) 2021-08-20 2023-07-25 Micron Technology, Inc. Redundancy metadata for multi-plane memory access failure
US11860775B2 (en) 2021-09-29 2024-01-02 Silicon Motion, Inc. Method and apparatus for programming data into flash memory incorporating with dedicated acceleration hardware
US11972150B2 (en) 2021-09-29 2024-04-30 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for programming data into flash memory through dedicated acceleration hardware
CN115878020A (zh) * 2021-09-29 2023-03-31 慧荣科技股份有限公司 编码历程信息的存取方法和计算机可读取存储介质和装置
TWI797905B (zh) * 2021-12-23 2023-04-01 慧榮科技股份有限公司 驅動獨立磁碟冗餘陣列引擎的裝置及方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200903260A (en) * 2007-05-09 2009-01-16 Kingston Technology Corp Secure and scalable solid state disk system
CN101566924A (zh) * 2008-04-23 2009-10-28 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法
TW201013400A (en) * 2008-09-22 2010-04-01 Promise Technology Inc Memory control system, data recovery method and date reading method thereof
CN101772807A (zh) * 2007-08-08 2010-07-07 英特尔公司 在多通道大容量存储装置中的ecc功能块布局
TW201314437A (zh) * 2011-07-15 2013-04-01 Violin Memory Inc 快閃碟陣列及控制器
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device
US8850113B2 (en) * 2010-02-27 2014-09-30 Cleversafe, Inc. Data migration between a raid memory and a dispersed storage network memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392458B2 (en) * 2004-11-19 2008-06-24 International Business Machines Corporation Method and system for enhanced error identification with disk array parity checking
US9548108B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver for enhanced flash endurance
US9569320B2 (en) * 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
CN105556480B (zh) * 2013-09-16 2017-06-30 上海宝存信息科技有限公司 在基于闪存的存储系统中构建raid的方法及系统
US10346059B2 (en) * 2013-10-15 2019-07-09 Dell Products, Lp System and method for supporting read requests and write requests for drives having different sector alignments without a RAID
KR102177421B1 (ko) * 2014-10-15 2020-11-11 삼성전자주식회사 데이터 저장 시스템, 데이터 저장 장치 및 raid 컨트롤러
US9910786B2 (en) * 2015-11-03 2018-03-06 Intel Corporation Efficient redundant array of independent disks (RAID) write hole solutions
US10218789B2 (en) * 2016-03-04 2019-02-26 Western Digital Technologies, Inc. Erasure correcting coding using temporary erasure data
KR20180040767A (ko) * 2016-10-12 2018-04-23 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
KR20180051703A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10540231B2 (en) * 2018-04-04 2020-01-21 International Business Machines Corporation Log-structured array (LSA) partial parity eviction and reassembly

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200903260A (en) * 2007-05-09 2009-01-16 Kingston Technology Corp Secure and scalable solid state disk system
CN101772807A (zh) * 2007-08-08 2010-07-07 英特尔公司 在多通道大容量存储装置中的ecc功能块布局
CN101566924A (zh) * 2008-04-23 2009-10-28 中兴通讯股份有限公司 一种磁盘阵列的数据读写方法
TW201013400A (en) * 2008-09-22 2010-04-01 Promise Technology Inc Memory control system, data recovery method and date reading method thereof
US8850113B2 (en) * 2010-02-27 2014-09-30 Cleversafe, Inc. Data migration between a raid memory and a dispersed storage network memory
TW201314437A (zh) * 2011-07-15 2013-04-01 Violin Memory Inc 快閃碟陣列及控制器
US20130304970A1 (en) * 2012-04-20 2013-11-14 Stec, Inc. Systems and methods for providing high performance redundant array of independent disks in a solid-state device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112099985A (zh) * 2019-06-17 2020-12-18 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) * 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112084070A (zh) * 2020-09-21 2020-12-15 深圳佰维存储科技股份有限公司 L2p映射数据恢复方法、装置、存储介质及电子设备
CN112084070B (zh) * 2020-09-21 2024-04-26 深圳佰维存储科技股份有限公司 L2p映射数据恢复方法、装置、存储介质及电子设备

Also Published As

Publication number Publication date
US20190171522A1 (en) 2019-06-06
TWI661307B (zh) 2019-06-01
TW201926059A (zh) 2019-07-01
CN109885506B (zh) 2022-11-11
US10783037B2 (en) 2020-09-22

Similar Documents

Publication Publication Date Title
CN109885506A (zh) 数据储存装置、主机装置、以及数据写入方法
CN111164574B (zh) 基于存储设备内部地址的冗余编码条带
CN103502958B (zh) 逻辑地址转译
US20190163620A1 (en) Handling of unaligned writes
US8612836B2 (en) Non-volatile memory device with uncorrectable information region and operation method using the same
CN109726138B (zh) 数据储存装置以及非挥发式存储器操作方法
CN105573681B (zh) 一种ssd盘片内部raid组建方法及系统
CN110806839B (zh) 存储控制的方法、记忆装置、存储器控制器及存储服务器
US10474528B2 (en) Redundancy coding stripe based on coordinated internal address scheme across multiple devices
CN104866429B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN109977034A (zh) 数据储存装置以及非挥发式存储器操作方法
US20160357461A1 (en) Data storage system and specific command execution method thereof
CN105786411A (zh) 非易失性存储器装置的操作方法
US8074128B2 (en) Block management and replacement method, flash memory storage system and controller using the same
CN109976938A (zh) 数据储存装置以及非挥发式存储器操作方法
CN106486163A (zh) 非易失性存储器件、包括其的数据储存设备及其操作方法
CN109426441A (zh) 数据储存装置以及其操作方法
CN112099985A (zh) 数据储存装置以及非挥发式存储器控制方法
CN107590080A (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
CN109521944A (zh) 数据储存装置以及数据储存方法
CN103914391B (zh) 数据读取方法、存储器控制器与存储器存储装置
KR102578191B1 (ko) 리커버리 성능이 최적화된 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN103544118B (zh) 存储器储存装置、其存储器控制器与数据写入方法
CN104731710B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant