CN108572791A - 数据储存装置及其数据维护方法 - Google Patents
数据储存装置及其数据维护方法 Download PDFInfo
- Publication number
- CN108572791A CN108572791A CN201710281073.6A CN201710281073A CN108572791A CN 108572791 A CN108572791 A CN 108572791A CN 201710281073 A CN201710281073 A CN 201710281073A CN 108572791 A CN108572791 A CN 108572791A
- Authority
- CN
- China
- Prior art keywords
- data
- reading
- program
- maintenance
- flash memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012423 maintenance Methods 0.000 title claims abstract description 35
- 238000013500 data storage Methods 0.000 title abstract description 4
- 230000015654 memory Effects 0.000 claims abstract description 72
- 230000000694 effects Effects 0.000 claims description 51
- 230000002035 prolonged effect Effects 0.000 claims description 2
- 230000003247 decreasing effect Effects 0.000 claims 1
- 238000004064 recycling Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 206010016322 Feeling abnormal Diseases 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- 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
- 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/0629—Configuration or reconfiguration of 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种数据储存装置及其数据维护方法。数据储存装置包括一快闪存储器以及一控制器。控制器自一主机接收用以读取一数据的一读取命令,分析读取命令所需的多个读取作业,以及根据读取命令的一输入/输出延迟时间以及读取作业的数量,决定每一读取作业的一作业时间,其中在读取作业的一第一读取作业中,控制器自快闪存储器读取数据的一部分,将部分传送给主机,并且根据一既定条件执行一第一维护程序,其中既定条件包括一剩余时间,并且剩余时间为作业时间减去第一读取作业已花费的时间。
Description
技术领域
本发明有关于一种存储器装置的数据维护方法;特别有关于一种在读取程序中的数据维护方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作记忆卡(memory card)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD)、嵌入式快闪存储器模组(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个个区块(blocks),各区块包括多个页(pages),其中浮置栅极晶体管可用以构成快闪存储器。浮置栅极晶体管中的浮置栅极,可捕捉的电荷以储存数据。但浮置栅极所捕捉的电荷的能力可能会因为时间、环境以及使用程度损坏。因此,快闪存储器需要时常对数据进行维护。然而,数据维护会造成程序时间上的延迟,造成使用者感受到不顺畅的操作。
发明内容
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。控制器自一主机接收用以读取一数据的一读取命令,分析读取命令所需的多个读取作业,以及根据读取命令的一输入/输出延迟时间以及读取作业的数量,决定每一读取作业的一作业时间,其中在读取作业的一第一读取作业中,控制器自快闪存储器读取数据的一部分,将部分传送给主机,并且根据一既定条件执行一第一维护程序,其中既定条件包括一剩余时间,并且剩余时间为作业时间减去第一读取作业已花费的时间。
在一实施例中,作业时间为输入/输出延迟时间除以读取作业的数量所获得之值,并且作业时间小于一数据子集读出时间。在另一实施例中,作业时间随着读取作业的执行顺序而递减,并且每一作业时间小于一数据子集读出时间。
另外,控制器更用以在将所读取的部分传送给主机后,决定多个维护程序,其中维护程序用以维护快闪存储器中的数据。在一实施例中,维护程序包括一耗损平均程序、一读取回收程序、一更新程序以及一数据集中程序。当快闪存储器的区块中最小的抹除次数与最大的抹除次数的差大于一既定差值时,控制器判断维护程序包括一耗损平均程序。当快闪存储器中的数据的错误位元数大于一既定错误位元数时,控制器判断维护程序包括一读取回收程序。当快闪存储器中的数据的读取次数大于一既定读取次数时,控制器判断维护程序包括一更新程序。当区块中的三阶备用区块的数量小于一既定区块数量时,控制器判断维护程序包括一数据集中程序。
在一实施例中,在第一读取作业中,控制器根据既定条件,在维护程序中选择一者作为第一维护程序,其中既定条件还包括维护程序的优先权。举例而言,读取回收程序的优先权大于数据集中程序,数据集中程序的优先权大于更新程序,并且更新程序的优先权大于耗损平均程序。
在另一实施例中,在第一读取作业中,控制器还用以在第一维护程序结束后,判断剩余时间是否超过一既定值,当剩余时间超过既定值时,根据既定条件,选择尚未执行的维护程序中的一第二维护程序,并且执行第二维护程序。当剩余时间小于既定值时,结束第一读取作业,以执行读取作业中的一第二读取作业。
本发明亦提供一种数据维护方法,适用于具有一快闪存储器的一数据储存装置。数据维护方法包括:自一主机接收用以读取一数据的一读取命令;分析读取命令所需的多个读取作业;以及根据读取命令的一输入/输出延迟时间以及读取作业的数量,决定每一读取作业的一作业时间。读取作业的一第一读取作业包括:自快闪存储器读取数据的一部分;将部分传送给主机;以及根据一既定条件执行一第一维护程序,其中既定条件包括一剩余时间,并且剩余时间为作业时间减去第一读取作业已花费的时间。
在一实施例中,作业时间为输入/输出延迟时间除以读取作业的数量所获得的值,并且作业时间小于一数据子集读出时间。在另一实施例中,作业时间随着读取作业的执行顺序而递减,并且每一作业时间小于一数据子集读出时间。
另外,第一读取作业还包括:在将所读取的部分传送给主机后,决定多个维护程序;以及根据既定条件,在维护程序中选择一者作为第一维护程序。其中,维护程序用以维护快闪存储器中的数据,并且维护程序包括一耗损平均程序、一读取回收程序、一更新程序以及一数据集中程序。决定维护程序的步骤还包括:当区块中最小的抹除次数与最大的抹除次数的差大于一既定差值时,判断维护程序包括一耗损平均程序;当快闪存储器中的数据的错误位元数大于一既定错误位元数时,判断维护程序包括一读取回收程序;当快闪存储器中的数据的读取次数大于一既定读取次数时,判断维护程序包括一更新程序;以及当区块中的三阶备用区块的数量小于一既定区块数量时,判断维护程序包括一数据集中程序。
在一实施例中,既定条件还包括维护程序的优先权,其中读取回收程序的优先权大于数据集中程序,数据集中程序的优先权大于更新程序,并且更新程序的优先权大于耗损平均程序。
另外,第一读取作业还包括:在第一维护程序结束后,判断剩余时间是否超过一既定值;当剩余时间超过既定值时,根据既定条件,选择尚未执行的维护程序中的一第二维护程序;以及当剩余时间小于既定值时,结束第一读取作业,以执行读取作业中的一第二读取作业。
附图说明
图1是本发明的一种实施例的电子系统的方块图。
图2A及2B是本发明的一种实施例的数据维护方法的流程图。
符号说明
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
166 随机存取存储器;
180 快闪存储器;
S200~S220 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机120所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,唯读存储器ROM)164以及随机存取存储器(RAM)166。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程序码与参数以提供控制器160根据所载入的程序码与参数动作。举例而言,控制器160可执行读取作业以及维护程序。
快闪存储器180包括多个区块,每一区块包括多个页面。值得注意的是,快闪存储器180以区块为最小单位进行抹除,并且页面为最小单位进行写入。值得注意的是,快闪存储器180中的区块具有不同的属性,其中区块可分为单阶区块(Single-Level Cell block,SLC block)以及三阶区块(Triple-Level Cell Block,TLC block),但本发明不限于此。在其他实施例中,区块可仅有三阶区块,而没有单阶区块。三阶区块以及单阶区块是使用不同的程序化(program)方式将数据进行写入,并且三阶区块的数据容量为单阶区块的三倍,其中具有有效数据的单阶区块为单阶数据区块,不具有又效数据且没有损坏的单阶区块为单阶备用区块。具有有效数据的三阶区块为三阶数据区块,不具有又效数据且没有损坏的三阶区块为三阶备用区块。在一实施例中,使用者的数据会被存入三阶区块中。另外,使用者可藉由主机120将数据自快闪存储器180中读出。
在一实施例中,当控制器160自主机120接收到一读取命令时,控制器160必须在一输入/输出延迟时间(I/O latency)内,将读取命令所指定的数据自快闪存储器180中读出,并且将所读出的数据全部传送至主机120。换言之,控制器160必须在输入/输出延迟时间内将读取命令执行完毕。举例而言,输入/输出延迟时间可为2秒,但本发明不限于此。在其他实施例中,输入/输出延迟时间可为电路设计者或者规格制定者所设定的其他时间。另外,当读取命令所指定的数据超过快闪存储器180的一读取单位时,读取命令所指定的数据会被分为数个数据段陆续传送给主机120,其中读取单位可为一个页面的数据量或者一既定长度,本发明不限于此。举例而言,若读取命令所指定的数据总共有96K位元组并且快闪存储器180的读取单位为32K位元组时,控制器160会对先读取数据中具有32K位元组的一第一数据段,并在第一数据段传送至主机120后,接着读取剩余数据中具有32K位元组的一第二数据段,最后在第二数据段传送至主机120后,读取所剩余的具有32K位元组的一第三数据段并将第三数据段传送至主机120。在一实施例中,每个数据段的读取作业必须在一数据子集读出时间(Read time-out time)内完成。换言之,对第一数据段、第二数据段以及第三数据段进行读取的读取作业,从自快闪存储器180读出数据段开始到读取下一个数据段的时间必须少于数据子集读出时间。举例而言,数据子集读出时间可为100毫秒,但本发明不限于此。在其他实施例中,数据子集读出时间可为厂商、电路设计者或者规格制定者所设定的其他时间。
除了满足工作时间(输入/输出延迟时间以及数据子集读出时间)的限制,为了避免快闪存储器180中的数据损坏以及妥善利用快闪存储器180中的存储器空间,控制器160亦会在适当的时间,根据读取次数、抹除次数、错误位元数以及三阶备用区块的数量,对快闪存储器180进行数据维护程序。在一实施例中,快闪存储器180还可用以储存至少一参数表用以分别纪录每一页面的读取次数、每一区块的抹除次数、每一页面中的数据的错误位元以/或快闪存储器180中三阶备用区块的数量,但本发明不限于此。在其他实施例中,每一页面的读取次数以及每一区块的抹除次数亦可储存于相应的区块或者页面内,其中读取次数为区块曾经被读取过的次数,抹除次数为区块曾经被抹除的次数。另外,控制器160可藉由读取快闪存储器180的数据,并将所读取的数据与校验码进行比对演算来获得每一页中的数据的错误位元数。在一实施例中,控制器160会在接收到读取命令后,在读取命令执行时同时进行数据维护程序。然而,若数据维护程序执行的时间太长,则会超过规格及/或厂商所限制的工作时间(输入/输出延迟时间以及数据子集读出时间),并且造成使用者的使用感觉不佳。
有鉴于此,当接收到读取命令时,控制器160会进入读取状态,并且在读取状态中会进入到背景工作状态(eMMC background operations,BKOPS)来执行数据维护程序,其中控制器160更用以根据计时器(GC timer)来记录已消耗的时间,并且根据所剩余的时间动态调整维护程序。
详细而言,自主机120接收用以读取一数据的一读取命令后,控制器160分析该读取命令所需的多个读取作业,其中每一读取作业用以读取快闪存储器180的一个读取单位的数据或者相应于读取命令中一个逻辑地址(LBA)的数据。换言之,在接收到读取命令后,控制器160根据读取命令所指示的数据的长度以及地址,分析出所需要执行的读取作业的数量、每一读取作业的数据地址与长度以及相关的指令。接着,控制器160根据该读取命令的一输入/输出延迟时间(I/O latency)以及读取作业的数量,决定每一读取作业的作业时间。在一实施例中,作业时间为输入/输出延迟时间除以读取作业的数量所获得之值,并且作业时间小必须于数据子集读出时间。换言之,每一读取作业的作业时间都相同,若作业时间为输入/输出延迟时间除以读取作业的数量所获得的值大于数据子集读出时间时,作业时间等于数据子集读出时间,但本发明不限于此。在另一实施例中,作业时间随着读取作业的执行顺序而递减,并且每一作业时间小于一数据子集读出时间。换言之,作业时间可具有预设的多个个值,控制器160会根据读取作业的数量以及输入/输出延迟时间等,将具有较长时间的作业时间分配给先执行的读取作业,并将具有较短时间的作业时间分配给后面执行的读取作业。如上所述,藉由预先决定每一读取作业的作业时间,控制器160可控制维护程序在所决定的作业时间内执行完毕,以避免上述超过规格及/或厂商所限制的工作时间(输入/输出延迟时间以及数据子集读出时间)以及造成使用者的使用感觉不佳的问题。
然而,控制器160亦必须使用特定的规则来控制维护程序在所决定的作业时间内执行完毕。在一实施例中,控制器160是根据所剩余的作业时间及/或维护程序的重要程度,在所需执行的维护程序中选择执行适合的维护程序,以达到控制维护程序在所决定的作业时间内执行完毕的目的。详细而言,在读取作业中的一第一读取作业中,控制器160先自快闪存储器180读取所接收的读取命令所指定的数据的一部分,并将所读取的部分传送给主机120。在将所读取的数据的部分传送给主机120后,控制器160还用以决定目前快闪存储器180所需的多个维护程序,其中维护程序用以维护快闪存储器180中的数据。
在一实施例中,维护程序的种类包括耗损平均程序、读取回收程序、更新程序以及数据集中程序。
当区块中最小的抹除次数与最大的抹除次数的差大于一既定差值时,控制器160判断所需的维护程序包括一耗损平均程序(wear-leveling)。换言之,当快闪存储器180中具有最大抹除次数的区块以及具有最小抹除次数的区块的抹除次数差异大于既定差值时,控制器160需要藉由耗损平需程序来降低抹除次数的差异。在一实施例中,既定差值为50,但本发明不限于此。在其他实施例中,既定差值亦可为电路设计者所制定的其他数值。
当快闪存储器180中的数据的错误位元数大于一既定错误位元数时,控制器160判断所需的维护程序包括一读取回收程序(read reclaim)。换言之,当控制器160在读取数据的过程中,发现快闪存储器180中的至少一页面的错误位元大于既定错误位元数时,控制器160则可藉由读取回收程序,来将错误位元过高的数据搬移至其他页面或者区块,以避免数据损毁。
当快闪存储器180中的数据的读取次数大于一既定读取次数时,控制器160判断所需的维护程序包括一更新程序(read refresh)。换言之,当控制器160发现快闪存储器180中任一页面的读取次数大于既定读取次数时,控制器160则可藉由更新程序,来将读取次数过高的数据搬移至其他页面或者区块,以避免数据损毁。
当区块中的三阶备用区块的数量小于一既定区块数量时,控制器160判断所需的维护程序包括一数据集中程序。换言之,当快闪存储器180中可以写入使用者数据的三阶备用区块数量小于既定区块数量时,表示快闪存储器180的空间不足够。因此,控制器160可藉由数据集中程序将有效数据集中写入一新的区块中以释放被占用的区块。举例而言,快闪存储器180具有一第一三阶数据区块、一第二三阶数据区块、一第三三阶数据区块以及一第四三阶备用区块,其中每一三阶区块具有16个页面,第一三阶数据区块包括10个具有有效数据的页面以及6个不具有有效数据的页面,第二三阶数据区块包括4个具有有效数据的页面以及12个不具有有效数据的页面,第三三阶数据区块包括1个具有有效数据的页面以及15个不具有有效数据的页面,并且第四三阶备用区块不具有任何有效数据。在数据集中程序中,控制器160将第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块中的有效数据写入第四三阶备用区块的15个页面中,并且释放第一三阶数据区块、第二三阶数据区块以及第三三阶数据区块为三个新的三阶备用区块,以增加三阶备用区块的数量。值得注意的是,单阶备用区块的数量亦可藉由上述的方法增加。
在决定目前快闪存储器180所需的多个维护程序后,控制器160还以根据一既定条件,在维护程序中选择一者作为一第一维护程序。举例而言,控制器160根据读取次数、抹除次数、错误位元数以及三阶备用区块的数量决定目前所需要的维护程序有耗损平均程序以及读取回收程序,并且根据既定条件在耗损平均程序以及读取回收程序中选择读取回收程序作为第一维护程序,但本发明不限于此。接着,控制器160还继续在第一读取作业中,根据一既定条件执行第一维护程序。在一实施例中,既定条件包括一剩余时间,并且剩余时间为作业时间减去第一读取作业已花费的时间,但本发明不限于此。举例而言,控制器160会优先选择可在剩余时间内结束的维护程序作为第一维护程序。在另一实施例中,既定条件还包括维护程序的优先权。举例而言,当多个维护程序皆可在剩余时间内完成时,控制器160还用以优先选择优先权较高的维护程序作为第一维护程序。在一实施例中,其中读取回收程序的优先权大于数据集中程序,数据集中程序的优先权大于更新程序,并且更新程序的优先权大于耗损平均程序,但本发明不限于此。在其他实施例中,电路设计者可自行依照维护程序的重要程度分配优先权。值得注意的是,一般而言耗损平均程序以及数据集中程序是在写入程序中进行的维护程序。因此,在本实施例中,耗损平均程序以及数据集中程序具有较低的优先权。
值得注意的是,在某些实施例中,所需的维护程序可能只有一个。因此,控制器160不需要在多个维护程序中选择一个,其可直接根据既定条件判断维护程序是否可在剩余时间内执行完毕。当既定条件可在剩余时间内执行完毕时,控制器160将仅有一个的维护程序做为第一维护程序,并执行第一维护程序。
接着,在第一读取作业中,控制器160还用以在第一维护程序结束后,判断剩余时间是否超过一既定值。当剩余时间超过既定值时,控制器160还用以继续根据既定条件,选择尚未执行的维护程序中的一第二维护程序,并且在第一读取作业中继续执行第二维护程序。当剩余时间小于既定值时,控制器160则结束第一读取作业,并接着执行读取作业中尚未执行的一第二读取作业。
图2是本发明的另一种实施例的数据维护方法的流程图。数据维护方法适用于图1所示的数据储存装置140。流程开始于步骤S200。
在步骤S200中,控制器160自主机120接收到用以读取一数据的一读取命令。
接着,在步骤S202中,控制器160分析读取命令所需的多个读取作业,并且根据读取命令的一输入/输出延迟时间(I/O latency)以及读取作业的数量,决定每一读取作业的作业时间。其中,每一读取作业用以读取快闪存储器180的一个读取单位的数据或者相应于读取命令中的一个逻辑地址(LBA)的数据。换言之,在接收到读取命令后,控制器160根据读取命令所指示的数据的长度以及地址,分析出所需要执行的读取作业的数量、每一读取作业的数据地址与长度以及相关的指令。接着,控制器160根据该读取命令的一输入/输出延迟时间(I/O latency)以及读取作业的数量,决定每一读取作业的作业时间。在一实施例中,作业时间为输入/输出延迟时间除以读取作业的数量所获得的值,并且作业时间小必须于数据子集读出时间。换言之,每一读取作业的作业时间都相同,若作业时间为输入/输出延迟时间除以读取作业的数量所获得的值大于数据子集读出时间时,作业时间等于数据子集读出时间做为,但本发明不限于此。在另一实施例中,作业时间随着读取作业的执行顺序而递减,并且每一作业时间小于一数据子集读出时间。换言之,作业时间可具有预设的多个个值,控制器160会根据读取作业的数量以及输入/输出延迟时间等,将具有较长时间的作业时间分配给先执行的读取作业,并将具有较短时间的作业时间分配给后面执行的读取作业。
接着,在步骤S204中,控制器160选择一尚未执行的读取作业,以开始所选择的读取作业。其中,控制器160可根据地址的顺序选择读取作业,但本发明不限于此。
接着,在步骤S206中,控制器160先自快闪存储器180读取所接收的读取命令所指定的数据的一部分,并将所读取的部分传送给主机120,其中控制器160所读取的部分为相应于在步骤S204中所选择的读取作业的数据段。
接着,在步骤S208中,控制器160将所读取的数据的部分传送给主机120。
接着,在步骤S210中,控制器160决定目前快闪存储器180所需的多个维护程序,其中维护程序用以维护快闪存储器180中的数据。在一实施例中,维护程序的种类包括耗损平均程序、读取回收程序、更新程序以及数据集中程序,但本发明不限于此。当区块中最小的抹除次数与最大的抹除次数的差大于一既定差值时,控制器160判断所需的维护程序包括一耗损平均程序(wear-leveling)。当快闪存储器180中的数据的错误位元数大于一既定错误位元数时,控制器160判断所需的维护程序包括一读取回收程序(read reclaim)。当快闪存储器180中的数据的读取次数大于一既定读取次数时,控制器160判断所需的维护程序包括一更新程序(read refresh)。当区块中的三阶备用区块的数量小于一既定区块数量时,控制器160判断所需的维护程序包括一数据集中程序。
接着,在步骤S212中,控制器160根据一既定条件,在维护程序中选择尚未被执行之一者作为一特定维护程序。在一实施例中,既定条件包括一剩余时间,并且剩余时间为作业时间减去目前的读取作业已花费的时间,但本发明不限于此。举例而言,控制器160会优先选择可在剩余时间内结束的维护程序作为特定维护程序。在另一实施例中,既定条件还包括维护程序的优先权。举例而言,当多个维护程序皆可在剩余时间内完成时,控制器160还用以优先选择优先权较高的维护程序作为特定维护程序。在一实施例中,其中读取回收程序的优先权大于数据集中程序,数据集中程序的优先权大于更新程序,并且更新程序的优先权大于耗损平均程序,但本发明不限于此。在其他实施例中,电路设计者可自行依照维护程序的重要程度分配优先权。值得注意的是,一般而言耗损平均程序以及数据集中程序是在写入程序中进行的维护程序。因此,在本实施例中,耗损平均程序以及数据集中程序具有较低的优先权。
接着,在步骤S214中,控制器160执行所选择的特定维护程序。
接着,在步骤S216中,控制器160判断剩余时间是否超过一既定值。当剩余时间超过既定值时,流程回到步骤S212,控制器160根据既定条件选择另一维护程序。当剩余时间小于既定值时,流程进行至步骤S218。
在步骤S218中,目前的读取作业结束。
接着,在步骤S220中,控制器160判断是否有其他读取作业尚未执行。换言之,在步骤S200接收到的读取命令所指示的数据是否已全部传送至主机120。当有其他读取作业尚未执行时,流程进行回到步骤S204,控制器160选择另一尚未执行的读取作业以开始另一读取作业。当没有其他读取作业尚未执行时,流程结束于步骤S220。
由上述可知,数据储存装置140以及数据维护方法可根据输入/输出延迟时间决定作业时间,并且根据所剩余的作业时间动态调整维护程序,以在读取状态中同时进行背景的维护程序,并使得背景的维护程序不影响读取程序的正常操作。
本发明的方法,或特定型态或其部份,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬碟、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可透过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或申请专利范围不须达成本发明所揭示的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (26)
1.一种数据储存装置,包括:
一快闪存储器;以及
一控制器,自一主机接收用以读取一数据的一读取命令,分析该读取命令所需的多个读取作业,以及根据该读取命令的一输入/输出延迟时间以及这些读取作业的数量,决定每一这些读取作业的一作业时间,其中在这些读取作业的一第一读取作业中,该控制器自快闪存储器读取该数据的一部分,将该部分传送给该主机,并且根据一既定条件执行一第一维护程序,其中该既定条件包括一剩余时间,并且该剩余时间为该作业时间减去该第一读取作业已花费的时间。
2.根据权利要求1所述的数据储存装置,其特征在于,该作业时间为该输入/输出延迟时间除以这些读取作业的数量所获得之值,并且该作业时间小于一数据子集读出时间。
3.根据权利要求1所述的数据储存装置,其特征在于,这些作业时间随着这些读取作业的执行顺序而递减,并且每一这些作业时间小于一数据子集读出时间。
4.根据权利要求1所述的数据储存装置,其特征在于,该控制器更用以在将所读取的该部分传送给该主机后,决定多个维护程序,其中这些维护程序用以维护该快闪存储器中的数据。
5.根据权利要求4所述的数据储存装置,其特征在于,该快闪存储器具有多个区块,并且每一这些区块具有一抹除次数,当这些区块中最小的该抹除次数与最大的该抹除次数的差大于一既定差值时,该控制器判断这些维护程序包括一耗损平均程序。
6.根据权利要求4所述的数据储存装置,其特征在于,当该快闪存储器中的数据的错误位元数大于一既定错误位元数时,该控制器判断这些维护程序包括一读取回收程序。
7.根据权利要求4所述的数据储存装置,其特征在于,当该快闪存储器中的数据的读取次数大于一既定读取次数时,该控制器判断这些维护程序包括一更新程序。
8.根据权利要求4所述的数据储存装置,其特征在于,该快闪存储器具有多个区块,当这些区块中的三阶备用区块的数量小于一既定区块数量时,该控制器判断这些维护程序包括一数据集中程序。
9.根据权利要求4所述的数据储存装置,其特征在于,在该第一读取作业中,该控制器根据该既定条件,在这些维护程序中选择一者作为该第一维护程序。
10.根据权利要求9所述的数据储存装置,其特征在于,在该既定条件还包括这些维护程序的优先权。
11.根据权利要求10所述的数据储存装置,其特征在于,这些维护程序包括一耗损平均程序、一读取回收程序、一更新程序以及一数据集中程序,其中该读取回收程序的优先权大于该数据集中程序,该数据集中程序的优先权大于该更新程序,并且该更新程序的优先权大于该耗损平均程序。
12.根据权利要求10所述的数据储存装置,其特征在于,在该第一读取作业中,该控制器还用以在该第一维护程序结束后,判断该剩余时间是否超过一既定值,当该剩余时间超过该既定值时,根据该既定条件,选择尚未执行的这些维护程序中的一第二维护程序,并且执行该第二维护程序。
13.根据权利要求12所述的数据储存装置,其特征在于,当该剩余时间小于该既定值时,结束该第一读取作业,以执行这些读取作业中的一第二读取作业。
14.一种数据维护方法,适用于具有一快闪存储器的一数据储存装置,包括:
自一主机接收用以读取一数据的一读取命令;
分析该读取命令所需的多个读取作业;以及
根据该读取命令的一输入/输出延迟时间以及这些读取作业的数量,决定每一这些读取作业的一作业时间,其中这些读取作业的一第一读取作业包括:
自快闪存储器读取该数据的一部分;
将该部分传送给该主机;以及
根据一既定条件执行一第一维护程序,其中该既定条件包括一剩余时间,并且该剩余时间为该作业时间减去该第一读取作业已花费的时间。
15.根据权利要求14所述的数据维护方法,其特征在于,该作业时间为该输入/输出延迟时间除以这些读取作业的数量所获得的值,并且该作业时间小于一数据子集读出时间。
16.根据权利要求14所述的数据维护方法,其特征在于,这些作业时间随着这些读取作业的执行顺序而递减,并且每一这些作业时间小于一数据子集读出时间。
17.根据权利要求14所述的数据维护方法,其特征在于,该第一读取作业还包括:
在将所读取的该部分传送给该主机后,决定多个维护程序,其中这些维护程序用以维护该快闪存储器中的数据。
18.根据权利要求17所述的数据维护方法,其特征在于,该快闪存储器具有多个区块,每一这些区块具有一抹除次数,并且上述决定这些维护程序的步骤还包括:
当这些区块中最小的该抹除次数与最大的该抹除次数的差大于一既定差值时,判断这些维护程序包括一耗损平均程序。
19.根据权利要求17所述的数据维护方法,其特征在于,上述决定这些维护程序的步骤还包括:
当该快闪存储器中的数据的错误位元数大于一既定错误位元数时,判断这些维护程序包括一读取回收程序。
20.根据权利要求17所述的数据维护方法,其特征在于,上述决定这些维护程序的步骤还包括:
当该快闪存储器中的数据的读取次数大于一既定读取次数时,判断这些维护程序包括一更新程序。
21.根据权利要求17所述的数据维护方法,其特征在于,该快闪存储器具有多个区块,上述决定这些维护程序的步骤还包括:
当这些区块中的三阶备用区块的数量小于一既定区块数量时,判断这些维护程序包括一数据集中程序。
22.根据权利要求17所述的数据维护方法,其特征在于,该第一读取作业还包括:
根据该既定条件,在这些维护程序中选择一者作为该第一维护程序。
23.根据权利要求22所述的数据维护方法,其特征在于,在该既定条件还包括这些维护程序的优先权。
24.根据权利要求23所述的数据维护方法,其特征在于,这些维护程序包括一耗损平均程序、一读取回收程序、一更新程序以及一数据集中程序,其中该读取回收程序的优先权大于该数据集中程序,该数据集中程序的优先权大于该更新程序,并且该更新程序的优先权大于该耗损平均程序。
25.根据权利要求23所述的数据维护方法,其特征在于,该第一读取作业还包括:
在该第一维护程序结束后,判断该剩余时间是否超过一既定值;
当该剩余时间超过该既定值时,根据该既定条件,选择尚未执行的这些维护程序中的一第二维护程序;以及
执行该第二维护程序。
26.根据权利要求25所述的数据维护方法,其特征在于,当该剩余时间小于该既定值时,结束该第一读取作业,以执行这些读取作业中的一第二读取作业。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106107358 | 2017-03-07 | ||
TW106107358A TWI602116B (zh) | 2017-03-07 | 2017-03-07 | 資料儲存裝置及其資料維護方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108572791A true CN108572791A (zh) | 2018-09-25 |
CN108572791B CN108572791B (zh) | 2021-04-23 |
Family
ID=61010931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710281073.6A Active CN108572791B (zh) | 2017-03-07 | 2017-04-26 | 数据储存装置及其数据维护方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10296231B2 (zh) |
CN (1) | CN108572791B (zh) |
TW (1) | TWI602116B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214157A (zh) * | 2019-07-10 | 2021-01-12 | 慧荣科技股份有限公司 | 主机输出输入命令的执行装置及方法及计算机可读取存储介质 |
US12014087B2 (en) | 2022-07-20 | 2024-06-18 | Silicon Motion, Inc. | Method and apparatus for performing data management of memory device with aid of targeted protection control |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US12039165B2 (en) | 2016-10-04 | 2024-07-16 | Pure Storage, Inc. | Utilizing allocation shares to improve parallelism in a zoned drive storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US12032848B2 (en) | 2021-06-21 | 2024-07-09 | Pure Storage, Inc. | Intelligent block allocation in a heterogeneous storage system |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10466911B2 (en) * | 2017-12-18 | 2019-11-05 | Western Digital Technologies, Inc. | Method using logical based addressing for latency reduction |
US12001688B2 (en) | 2019-04-29 | 2024-06-04 | Pure Storage, Inc. | Utilizing data views to optimize secure data access in a storage system |
KR102578188B1 (ko) * | 2018-05-15 | 2023-09-14 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
KR102686435B1 (ko) * | 2019-06-28 | 2024-07-19 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법 |
US12001684B2 (en) | 2019-12-12 | 2024-06-04 | Pure Storage, Inc. | Optimizing dynamic power loss protection adjustment in a storage system |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US12099742B2 (en) | 2021-03-15 | 2024-09-24 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
US11994723B2 (en) | 2021-12-30 | 2024-05-28 | Pure Storage, Inc. | Ribbon cable alignment apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164037A (zh) * | 2005-02-16 | 2008-04-16 | 桑迪士克股份有限公司 | 闪速存储器中的直接数据文件存储 |
CN104641396A (zh) * | 2012-07-20 | 2015-05-20 | 高通股份有限公司 | 用于调度图形处理单元命令流的延迟抢占技术 |
US20150178001A1 (en) * | 2013-12-20 | 2015-06-25 | Silicon Motion, Inc. | Data Storage Device and Data Maintenance Method Thereof |
US20150243338A1 (en) * | 2014-02-21 | 2015-08-27 | Samsung Electronics Co., Ltd. | Memory device and memory system having the same |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7500128B2 (en) * | 2005-05-11 | 2009-03-03 | Intel Corporation | Mobile systems with seamless transition by activating second subsystem to continue operation of application executed by first subsystem as it enters into sleep mode |
US7415557B2 (en) * | 2006-06-06 | 2008-08-19 | Honeywell International Inc. | Methods and system for providing low latency and scalable interrupt collection |
US8683148B2 (en) | 2010-06-30 | 2014-03-25 | Sandisk Il Ltd. | Status indication when a maintenance operation is to be performed at a memory device |
TWI461913B (zh) | 2011-11-30 | 2014-11-21 | Silicon Motion Inc | 快閃記憶裝置及其資料讀取方法 |
KR102025263B1 (ko) * | 2012-10-05 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 교정 방법 |
US9619381B2 (en) | 2013-12-24 | 2017-04-11 | International Business Machines Corporation | Collaborative health management in a storage system |
US9684568B2 (en) | 2013-12-26 | 2017-06-20 | Silicon Motion, Inc. | Data storage device and flash memory control method |
-
2017
- 2017-03-07 TW TW106107358A patent/TWI602116B/zh active
- 2017-04-26 CN CN201710281073.6A patent/CN108572791B/zh active Active
-
2018
- 2018-01-06 US US15/863,889 patent/US10296231B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101164037A (zh) * | 2005-02-16 | 2008-04-16 | 桑迪士克股份有限公司 | 闪速存储器中的直接数据文件存储 |
CN104641396A (zh) * | 2012-07-20 | 2015-05-20 | 高通股份有限公司 | 用于调度图形处理单元命令流的延迟抢占技术 |
US20150178001A1 (en) * | 2013-12-20 | 2015-06-25 | Silicon Motion, Inc. | Data Storage Device and Data Maintenance Method Thereof |
US20150243338A1 (en) * | 2014-02-21 | 2015-08-27 | Samsung Electronics Co., Ltd. | Memory device and memory system having the same |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214157A (zh) * | 2019-07-10 | 2021-01-12 | 慧荣科技股份有限公司 | 主机输出输入命令的执行装置及方法及计算机可读取存储介质 |
CN112214157B (zh) * | 2019-07-10 | 2023-11-03 | 慧荣科技股份有限公司 | 主机输出输入命令的执行装置及方法及存储介质 |
US12014087B2 (en) | 2022-07-20 | 2024-06-18 | Silicon Motion, Inc. | Method and apparatus for performing data management of memory device with aid of targeted protection control |
Also Published As
Publication number | Publication date |
---|---|
TWI602116B (zh) | 2017-10-11 |
US20180260137A1 (en) | 2018-09-13 |
TW201833755A (zh) | 2018-09-16 |
US10296231B2 (en) | 2019-05-21 |
CN108572791B (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108572791A (zh) | 数据储存装置及其数据维护方法 | |
CN107608908B (zh) | 用于数据储存装置的磨损平均方法 | |
CN104915147B (zh) | 数据储存装置及快闪存储器零散数据收集方法 | |
CN103425597B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
CN107977161A (zh) | 数据储存装置及其数据写入方法 | |
CN107918588A (zh) | 数据储存装置及其数据写入方法 | |
US20100199020A1 (en) | Non-volatile memory subsystem and a memory controller therefor | |
US10990325B2 (en) | Write control method, associated data storage device and controller thereof | |
CN104346292B (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
CN110673789B (zh) | 固态硬盘的元数据存储管理方法、装置、设备及存储介质 | |
CN101231885A (zh) | 快闪存储器件和操作该器件的方法 | |
CN104346288B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
US8489942B1 (en) | Memory management method, and memory controller and memory storage device using the same | |
CN110058795A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN107918523A (zh) | 数据储存装置及其数据写入方法 | |
CN111651371B (zh) | 非对称型平面管理方法以及数据存储装置及其控制器 | |
JP2011070346A (ja) | メモリシステム | |
US20100169586A1 (en) | Memory storage device and a control method thereof | |
US20190347192A1 (en) | Memory management method and storage controller | |
US20110219172A1 (en) | Non-volatile memory access method and system, and non-volatile memory controller | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN107291377A (zh) | 数据储存装置及其数据维护方法 | |
CN104951249A (zh) | 存储器控制设备、信息处理设备及其控制方法 | |
US20160054935A1 (en) | Data storing method and memory controller and memory storage device using the same | |
CN115114180A (zh) | 在快闪存储器中进行耗损平衡操作的方法和相关控制器以及储存系统 |
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 |