CN102073600A - 数据备份方法、闪存控制器及闪存储存*** - Google Patents
数据备份方法、闪存控制器及闪存储存*** Download PDFInfo
- Publication number
- CN102073600A CN102073600A CN2009102228793A CN200910222879A CN102073600A CN 102073600 A CN102073600 A CN 102073600A CN 2009102228793 A CN2009102228793 A CN 2009102228793A CN 200910222879 A CN200910222879 A CN 200910222879A CN 102073600 A CN102073600 A CN 102073600A
- Authority
- CN
- China
- Prior art keywords
- data
- soon
- district
- flash
- speed cache
- 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
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种数据备份方法、闪存控制器及闪存储存***。本数据备份方法用于备用暂存于一闪存储存装置的一高速缓存中的数据,其中此闪存储存装置具有多个实体单元。本数据备用方法包括将这些实体单元的一部分逻辑地分组为一数据区与一快取区。本数据备份方法也包括判断是否接收到一触发信号;以及当接收到该触发信号时,将储存于高速缓存中的数据复制至快取区中。基此,可快速地将暂存于高速缓存中的数据写入至实体单元中,由此避免逾时的问题。
Description
技术领域
本发明是有关于一种数据备份方法,且特别是有关于一种用于备份暂存于闪存储存装置的高速缓存中的数据的方法及使用此方法的闪存控制器与闪存储存***。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对数字内容的储存需求也急速增加。由于闪存(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合使用者随身携带作为数字文件传递与交换的储存媒体。固态硬盘(Solid State Drive,SSD)就是以闪存作为储存媒体的一个例子,并且已广泛使用于计算机主机***中作为主硬盘。
一般来说,在闪存储存***的设计上,闪存储存***的闪存实体单元会分组为多个实体单元并且此些实体单元会分组为数据区(data area)与备用区(spare area)。归类为数据区的实体单元中会储存由写入指令所写入的有效数据,而备用区中的实体单元是用以在执行写入指令时替换数据区中的实体单元。具体来说,当闪存储存***接受到主机的写入指令而欲对数据区的实体单元进行写入时,闪存储存***会从备用区中提取一实体单元并且将在数据区中欲写入的实体单元中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体单元,并且将已写入新数据的实体单元关联为数据区,并且将原本数据区的实体单元进行抹除并关联为备用区。为了能够让主机能够顺利地存取以轮替方式储存数据的实体单元,闪存储存***会提供逻辑单元给主机。也就是说,闪存储存***会通过在逻辑地址-实体地址映射表(logicaladdress-physical address mapping table)中记录与更新逻辑单元与数据区的实体单元之间的映射关系来反映实体单元的轮替,所以主机仅需要针对所提供逻辑单元进行写入而闪存储存***会依据逻辑地址-实体地址映射表对所映射的实体单元进行读取或写入数据。
然而,相较于计算机主机***的运作(例如,数据传输),闪存储存装置执行上述实体单元轮替以写入数据的所需时间是相对较长,因此为了提升闪存储存装置的效率,一般来说闪存储存装置内会配置高速缓存以缩短其完成相关指令的时间。
例如,在闪存储存装置需花费相对多的时间才能完成计算机主机***的写入指令下,当计算机主机***下达写入指令时,闪存储存***会将欲写入的数据暂存于高速缓存中并回复计算机主机***已完成写入指令。之后,闪存储存装置会利用非忙碌期间将数据写入至其闪存中。
然而,在使用高速缓存的闪存储存装置的架构中,倘若高速缓存暂存相当大数据量的数据或者所暂存的数据是需写入至多个不同的逻辑单元时,当计算机主机***下达清空(flush)高速缓存的指令时,闪存储存装置会需要很长的时间方能将暂存高速缓存中的数据写入至实体单元中,因此会造成严重延迟计算机主机***的运作。
发明内容
本发明提供一种数据备份方法,其能够在闪存储存装置接收到触发信息时快速地备用暂存于在闪存储存装置的高速缓存中的数据。
本发明提供一种闪存控制器,其能够在闪存储存装置接收到触发信息时快速地备用暂存于在闪存储存装置的高速缓存中的数据。
本发明提供一种闪存储存***,其能够在接收到触发信息时快速地备用暂存于高速缓存中的数据。
本发明实施例提出一种数据备份方法,用于备用暂存于一闪存储存装置的一高速缓存中的多笔数据,其中此闪存储存装置具有多个实体单元并且每一实体单元具有多个实体地址。本数据备用方法包括提供一闪存控制器;提供多个逻辑地址并且将逻辑地址分组为多个逻辑单元;以及由闪存控制器将这些实体单元的一部分逻辑地分组为一数据区与一快取区,其中此些逻辑地址映射至数据区或快取区,且暂存于此高速缓存中的每一笔数据对应此数据区所映射之逻辑地址的其中之一。本数据备份方法也包括由闪存控制器判断是否接收到一触发信号;以及当接收到该触发信号时,由闪存控制器将暂存于该高速缓存中至少一部分数据复制至快取区中,其中暂存于高速缓存中的数据至少包含第一数据与第二数据,并且第一数据与第二数据被连续地写入至快取区中相邻的实体地址。此外,第一数据与第二数据分别地对应于逻辑区块之中的同一个逻辑区块内不连续的逻辑地址。
本发明实施例提出一种闪存控制器,配置于一闪存储存装置中,其中此闪存储存装置具有一高速缓存与多个实体单元,每一实体单元具有多个实体地址,并且高速缓存暂存多笔数据。本闪存控制器包括微处理器单元、闪存接口单元、主机接口单元以及内存管理单元。闪存接口单元是电性连接至微处理器单元,并且用以电性连接至此些实体单元。主机接口单元是电性连接至微处理器单元,并且用以电性连接至主机***。内存管理单元是电性连接至微处理器单元,并且用以提供多个逻辑地址并且将此些逻辑地址分组为多个逻辑单元。此外,内存管理单元将此些实体单元的一部分逻辑地分组为一数据区与一快取区,其中此些逻辑地址映射至数据区或快取区,且暂存于高速缓存中的每一笔数据对应数据区所映射之逻辑地址的其中之一。再者,内存管理单元判断微处理器单元是否接收到一触发信号。并且,当接收到该触发信号时,内存管理单元将暂存于高速缓存中的至少一部分数据复制至快取区中,其中暂存于高速缓存中的数据至少包含第一数据与第二数据,并且第一数据与第二数据被连续地写入至快取区中相邻的实体地址。此外,第一数据与第二数据分别地对应于逻辑区块之中的同一个逻辑区块内不连续的逻辑地址。
本发明实施例提出一种闪存储存***,其包括、连接器、闪存控制器以及高速缓存。闪存芯片具有多个实体单元。连接器是用以电性连接至主机***。闪存控制器是电性连接至闪存芯片与连接器,并且用以提供多个逻辑地址并且将此些逻辑地址分组为多个逻辑单元。高速缓存是电性连接至闪存控制器,并且用以暂存多笔数据。在此,闪存控制器将此些实体单元的一部分逻辑地分组为一数据区与一快取区,其中该些逻辑地址映射至该数据区或该快取区,且暂存于该高速缓存中的每一笔数据对应该数据区中之该些逻辑地址的其中之一。此外,闪存控制器会判断是否检测到一触发信号。并且,当检测到触发信号时,闪存控制器会将暂存于该高速缓存中至少一部分数据复制至快取区中,其中暂存于高速缓存中的数据至少包含第一数据与第二数据,并且第一数据与第二数据被连续地写入至快取区中相邻的实体地址。此外,第一数据与第二数据分别地对应于逻辑区块之中的同一个逻辑区块内不连续的逻辑地址。另外,当接收到至少一主机写入指令时上述闪存控制器分别地依据第一数据与第二数据所对应的逻辑地址将第一数据与第二数据写入至数据区。
基于上述,本发明实施例的数据备份方法及使用此方法的闪存控制器与闪存储存装置能够避免因主机***下达清除指令而可能造成的逾时问题。此外,本发明实施例的数据备份方法及使用此方法的闪存控制器与闪存储存装置能够避免因不正常断电发生所造成遗失高速缓存中的数据的问题。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
附图说明
图1A是本发明第一实施例中使用闪存储存装置的主机***;
图1B是本发明第一实施例中计算机、输入/输出装置与闪存储存装置的示意图;
图1C是本发明第一实施例中主机***与闪存储存装置的示意图;
图2是图1A中闪存储存装置的概要方块图;
图3是本发明另一实施例中闪存控制器的方块图;
图4是本发明第一实施例中闪存芯片的概要方块图;
图5~图8是本发明第一实施例中闪存芯片的运作示意图;
图9是本发明第一实施例中数据备份的流程图;
图10是本发明第一实施例中当主机***与闪存储存装置重新启动后加载所复制数据的流程图;
图11是本发明第二实施例中闪存储存装置的概要方块图;
图12是本发明第二实施例中数据备份方法的流程图。
附图标记说明
1000:主机***; 1100:计算机;
1102:微处理器; 1104:随机存取内存;
1106:输入/输出装置; 1108:***总线;
1110:数据传输接口; 1202:鼠标;
1204:键盘; 1206:显示器;
1208:打印机; 1212:随身碟;
1214:记忆卡; 1216:固态硬盘;
1310:数字相机; 1312:SD卡;
1314:MMC卡; 1316:记忆棒;
1318:CF卡; 1320:嵌入式储存装置;
100:闪存储存装置; 102:连接器;
104、104′:闪存控制器; 106:闪存芯片;
108:高速缓存; 202:微处理器单元;
204:内存管理单元; 206:主机接口单元;
208:闪存接口单元; 252:缓冲存储器;
254:电源管理单元; 256:错误校正单元;
210:第一闪存模块; 220:第二闪存模块;
350-(0)~350-(H):逻辑单元; 310-(0)~310-(N):实体单元;
802:内存管理单元; 804:定时器;
704:闪存控制器; 302:***区;
304:数据区; 306:备用区;
308:快取区; 310:备份信息区;
350-(0)~350-(H):逻辑单元; 700:闪存储存装置;
210-(0)~210-(N)、220-(0)~220-(N):实体区块;
S901、S903、S905:备份数据的步骤;
S1001、S1003、S1005:加载备份数据的步骤;
S1201、S1203、S1205、S1207、S1209、S12011:备份数据的步骤。
具体实施方式
闪存储存装置一般而言包括闪存芯片与控制器(亦称,控制电路)。通常闪存储存装置会与主机***一起使用,以使主机***可将数据写入至闪存储存装置或从闪存储存装置中读取数据。另外,亦有闪存储存装置是包括嵌入式闪存与可执行于主机***上以实质地作为此嵌入式闪存之控制器的软件。
第一实施例
图1A是本发明第一实施例中使用闪存储存装置的主机***。
请参照图1A,主机***1000包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取内存(random accessmemory,RAM)1104、***总线1108以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106还可包括其它装置。
在本发明实施例中,闪存储存装置(亦称为闪存储存***)100是通过数据传输接口1110与主机***1000的其它组件电性连接。通过微处理器1102、随机存取内存1104与输入/输出装置1106的主机***1000可将数据写入至闪存储存装置100或从闪存储存装置100中读取数据。例如,闪存储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid StateDrive,SSD)1216。
一般而言,主机***1000为可储存数据的任意***。虽然在本实施例中,主机***1000是以计算机***来作说明,然而,在本发明另一实施例中,主机***1000亦可以是数字相机、摄影机、通信装置、音讯播放器或视讯播放器等***。如图1C所示,在主机***为数字相机1310时,闪存储存装置则为其所使用的SD(secure digital)卡1312、MMC(Multi Media Card)卡1314、记忆棒(memory stick)1316、或CF(Compact Flash)卡1318或嵌入式储存装置1320。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机***的基板上。
图2是图1A中闪存储存装置100的概要方块图。
请参照图2,闪存储存装置100包括连接器102、闪存控制器104、闪存芯片106与高速缓存108。
连接器102是电性连接至闪存控制器104并且用以电性连接至主机***1000。在本实施例中,连接器102为序列先进附件(Serial Advanced TechnologyAttachment,SATA)连接器。然而,必须了解的是本发明不限于此,连接器102亦可以是平行先进附件(Parallel Advanced Technology Attachment,PATA)连接器、通用序列总线(Universal Serial Bus,USB)连接器、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394连接器、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)连接器、安全数字(secure digital,SD)接口连接器、记忆棒(Memory Sick,MS)接口连接器、多媒体储存卡(Multi Media Card,MMC)接口连接器、小型快闪(CompactFlash,CF)接口连接器、整合式驱动电子接口(Integrated Device Electronics,IDE)连接器或其它适合的连接器。
闪存控制器104会执行以硬件型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机***1000的指令在闪存芯片106中进行数据的写入、读取与抹除等运作。闪存控制器104包括微处理器单元202、内存管理单元204、主机接口单元206与闪存接口单元208。
微处理器单元202为闪存控制器104的主控单元,用以与内存管理单元204、主机接口单元206与闪存接口单元208等协同合作以进行闪存储存装置100的各种运作。
内存管理单元204是电性连接至微处理器单元202,用以执行根据本实施例的数据写入机制与区块管理机制,内存管理单元204的运作将在图式中作详细说明。
在本实施例中,内存管理单元204是以一韧体型式实作在闪存控制器104中。例如,将包括多个控制指令的内存管理单元204烧录至一程序内存(例如,只读存储器(Read Only Memory,ROM))中并且将此程序内存嵌入在闪存控制器104中,当闪存储存装置100运作时,内存管理单元204的多个控制指令会由微处理器单元202来执行以完成根据本发明实施例的数据备份机制、数据写入机制与区块管理机制。
在本发明另一实施例中,内存管理单元204的控制指令亦可以程序代码型式储存于闪存芯片106的特定区域(例如,闪存芯片中专用于存放***数据的***区)中。同样的,当闪存储存装置100运作时,内存管理单元204的多个控制指令会由微处理器单元202来执行。此外,在本发明另一实施例中,内存管理单元204亦可以一硬件型式实作在闪存控制器104中。
主机接口单元206是电性连接至微处理器单元202并且用以接收与识别主机***1000所传送的指令与数据。也就是说,主机***1000所传送的指令与数据会通过主机接口单元206来传送至微处理器单元202。在本实施例中,主机接口单元206是对应连接器102为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元206亦可以是PATA接口、USB接口、IEEE1394接口、PCI Express接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存接口单元208是电性连接至微处理器单元202并且用以存取闪存芯片106。也就是说,欲写入至闪存芯片106的数据会经由闪存接口单元208转换为闪存芯片106所能接受的格式。
在本发明另一实施例中,闪存控制器亦还可包括其它功能模块。图3是本发明第一实施例中闪存控制器的概要方块图。
请参照图3,除了上述微处理器单元202、内存管理单元204、主机接口单元206与闪存接口单元208之外,根据本发明另一实施例的闪存控制器104′还包括缓冲存储器252、电源管理单元254与错误校正单元256。
缓冲存储器252是电性连接至微处理器单元202并且用以暂存来自于主机***1000的数据与指令或来自于闪存芯片106的数据。
电源管理单元254是电性连接至微处理器单元202并且用以控制闪存储存装置100的电源。
错误校正单元256是电性连接至微处理器单元202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当内存管理单元204从主机***1000中接收到主机写入指令时,错误校正单元256会为对应此主机写入指令的写入数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且内存管理单元204会将此写入数据与对应的错误校正码写入至闪存芯片106中。之后,当内存管理单元204从闪存芯片106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正单元256会依据此错误校正码对所读取的数据执行错误校正程序。
请再参照图2,闪存芯片106是电性连接至闪存控制器104并且用以储存数据。另外,高速缓存108是电性连接至闪存控制器104并且用以暂时地储存来自于主机***1000的写入数据或从闪存芯片106中所读取的数据。在此,高速缓存108是一易失性内存。例如,高速缓存108为动态随机存取内存(Dynamic Random Access memory,DRAM)或静态随机存取内存(StaticRandom Access memory,SRAM)。在另一实施例中,高速缓存108亦可是一非易失性内存,如单层记忆胞(Single Level Cell,SLC)NAND或只使用快页(fast page)的多层记忆胞(Multi Level Cell,SLC)NAND。
图4是本发明第一实施例中闪存芯片的概要方块图。
在本实施例中,闪存芯片106包括第一闪存模块210与第二闪存模块220,其中第一闪存模块210具有实体区块210-(0)~210-(N)并且第二闪存模块220具有实体区块220-(0)~220-(N)。值得一提的是,虽然本发明实施例闪存芯片106是由2个闪存模块所组成,然而,本发明不限于此,在本发明另一实施例中,闪存芯片可由1个闪存模块或更多闪存模块所组成。在本范例实施中,第一闪存模块210与第二闪存模块220为多层记忆胞(Multi Level Cell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,第一闪存模块210与第二闪存模块220亦可以是单层记忆胞(SingleLevel Cell,SLC)NAND闪存。
第一闪存模块210具有实体区块210-(0)~210-(N)并且第二闪存模块220具有实体区块220-(0)~220-(N)。实体区块为抹除之最小单位。亦即,每一实体区块含有最小数目的、并被抹除的记忆胞。每一实体区块通常会分割为数个实体地址(即,页面(page))。由于在本实施例中,闪存芯片106的第一闪存模块210与第二闪存模块220为MLC NAND闪存,因此,页面为程序化(program)的最小单元。换言之,页面为写入数据或读取数据的最小单元。每一页面通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存***的数据(例如,错误检查与校正码(ErrorChecking and Correcting Code,ECC Code)。在本实施例中,闪存芯片106的每一页面具有为8千字节(kilo byte,KB)。
在本实施例中,每一实体区块具有192个页面,然而,必须了解的是,本发明不限于此,本发明亦可具有128、256或其它复数页面。此外,第一闪存模块210与第二闪存模块220的实体区块通常也可被分组为数个区域(zone),以每一独立的区域来管理实体区块210-(0)~210-(N)与实体区块220-(0)~220-(N)可增加操作执行的平行程度且简化管理的复杂度。
此外,闪存控制器104的内存管理单元204会将第一闪存模块210与第二闪存模块220中的实体区块逻辑地分组为多个实体单元来管理,例如1个实体单元包括2个实体区块,并且以实体单元作为抹除的单位。在本发明实施例中,实体区块210-(0)~210-(N)与实体区块220-(0)~220-(N)会被逻辑地分组为实体单元310-(0)~310-(N)。必须了解的是,尽管本实施例是以2个实体区块所组成的实体单元来进行管理。然而,本发明不限于此,在本发明另一实施例中,1个实体单元亦可是仅由1个实体区块或由3个以上的实体区块所组成。
图5、图6、图7与图8是本发明第一实施例中闪存芯片的运作示意图。
请参照图5,内存管理单元204会将实体单元310-(0)~310-(N)逻辑地分组为***区302、数据区304、备用区306、快取区308与备份信息区310。***区302包括实体单元310-(0)~实体单元310-(S),数据区304包括实体单元310-(S+1)~实体单元310-(D),备用区306包括实体单元310-(D+1)~实体单元310-(A),快取区308包括实体单元310-(A+1)~310-(C),并且备份信息区310包括实体单元310-(C+1)~310-(N)。在本实施例中,上述S、D、A、C与N为正整数,其代表各区配置的实体单元数量,其可由闪存储存***的制造商依据所使用的闪存模块的容量而设定。
逻辑上属于***区302的实体单元用以记录***数据,其中此***数据包括关于闪存芯片的制造商与型号、每一闪存模块的实体区块数、每一实体区块的页面数等。
逻辑上属于数据区304的实体单元用以储存使用者数据。一般来说,数据区304的实体单元就是主机***1000所存取的逻辑单元所映射的实体单元。也就是说,数据区304的实体单元为储存有效数据的单元。
逻辑上属于备用区306的实体单元是用以轮替数据区304中的实体单元,因此在备用区306中的实体单元为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区304与备用区306的实体单元会以轮替方式来储存主机***1000对闪存储存装置100写入的数据。
例如,请同时参照图6、图7与图8,当闪存控制器104从主机***1000中接收到主机写入指令而欲写入数据至数据区304的实体单元310-(S+1)时,内存管理单元204会从备用区306中提取实体单元310-(D+1)来轮替数据区304的实体单元310-(S+1)。然而,当内存管理单元204将新数据写入至实体单元310-(D+1)的同时,内存管理单元204不会立刻将实体单元310-(S+1)中的所有有效数据搬移至实体单元310-(D+1)而抹除实体单元310-(S+1)。具体来说,内存管理单元204会将实体单元310-(S+1)中欲写入页面之前的有效数据(即,页P0与P1)复制至实体单元310-(D+1)(如图6),并且将新数据(即,实体单元310-(D+1)的页P2与P3)写入至实体单元310-(D+1)(如图7)。此时,内存管理单元204即完成写入的动作。因为实体单元310-(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体单元310-(S+1)中的所有有效数据搬移至替换实体单元310-(D+1)可能会造成无谓的搬移。在本实施例中,暂时地维持此等母子瞬时关系(即,实体单元310-(S+1)与实体单元310-(D+1))的动作称为开启(open)母子单元。
之后,当需要将实体单元310-(S+1)与实体单元310-(D+1)的内容真正合并时,内存管理单元204会将实体单元310-(S+1)与实体单元310-(D+1)整并为一个实体单元,由此提升区块的使用效率,在此,合并母子单元的动作称为关闭(close)母子单元。例如,如图8所示,当进行关闭母子单元时,内存管理单元204会将实体单元310-(S+1)中剩余的有效数据(即,页P4~PN)复制至替换实体单元310-(D+1),然后将实体单元310-(S+1)抹除并关联至备用区306,同时,将实体单元310-(D+1)关联至数据区304。
基于上述,由于内存管理单元204是以轮替方式来使用实体单元来储存数据,因此关于实体单元被分组为***区302、数据区304与备用区306的分组关系会动态地变动。值得一提的是,图6~图8仅是一写入范例,本发明不限于此。
请再参照图5,由于闪存芯片106的实体单元是以上述轮替方式提供主机***1000来储存数据,因此内存管理单元204会提供逻辑地址给主机***1000以进行数据存取。此外,如上所述,内存管理单元204是以实体单元为单位来管理闪存,所以内存管理单元204会将所提供的逻辑地址分组为逻辑单元350-(0)~350-(H)。例如,每一逻辑地址是属于逻辑单元350-(0)~350-(H)的其中之一,并且当主机***1000欲对某一逻辑地址进行存取时,内存管理单元204会根据一配置单元(图未示)或一表达式来识别此逻辑地址所属的逻辑单元;根据逻辑单元-实体单元映射表(logical unit-physical unit mapping table)来识别映射此逻辑单元的实体单元;并且根据映射结果在闪存芯片106上存取数据。特别是,逻辑单元350-(0)~350-(H)是映射至数据区304与快取区308中的实体区块,例如,逻辑单元350-(0)~350-(D)是映射至数据区304的实体单元,而逻辑单元350-(D+1)~350-(H)是映射至快取区308的实体单元。另外,备份信息区310及备用区306中的实体区块无映射至逻辑单元。
在本发明另一实施例中,数据区304的实体单元所映射的逻辑单元的逻辑地址会提供给主机***1000来存取,而快取区308的实体单元所映射的逻辑单元的逻辑地址则不会提供给主机***1000来存取。换句话说,主机***1000无法下指令将数据储存至快取区308,且快取区308只可供内存管理单元204来使用。例如,在数据区304有128G的容量且快取区308有1G的容量的例子中,当闪存储存装置100与主机***1000连接时,主机***1000会将闪存储存装置100视为只具有127G的容量。
逻辑上属于快取区308的实体单元是用以备份暂存于高速缓存108中的数据,并且逻辑上属于备份信息区310的实体单元是用以储存关于复制在快取区308中的数据的相关信息。
在本实施例中,当微处理器单元202接收到一触发信号时,内存管理单元204会将暂存于高速缓存108中的至少部份数据,如全部或80%,复制至快取区308,并且建立快取映射表来记录快取区308中数据的映射关系,其中所建立的快取映射表是储存于备份信息区310中。特别是,内存管理单元204是连续的在快取区308的实体地址中写入暂存于高速缓存108中的至少部份数据。也就是说,既使暂存于高速缓存108中的数据包含属于同一个逻辑单元内不同逻辑地址的多笔数据时,此些数据仍会依序地被写入至快取区308内的连续实体地址中,而不会以图6、图7与图8所述的方式来被写入快取区308中。
在此,此触发信号为主机***1000所传送清除(flush)指令。具体来说,清除指令是由主机***1000传送给闪存储存装置100以指示清空高速缓存108中所暂存的数据。特别是,在主机***1000欲进行关机运作时,主机***1000会传送清除指令至闪存储存装置100,以避免断电后暂存于高速缓存108中的数据遗失。也就是说,在高速缓存108暂存主机***1000所写入的多笔数据的例子中,当微处理器单元202接收到清除指令时,内存管理单元204需立即将暂存于高速缓存108中的数据写入至闪存芯片106中。特别是,当微处理器单元202接收到清除指令时,内存管理单元204会将暂存于高速缓存108中的数据复制至快取区308中,并且将记录所复制的数据的信息的快取映射表储存在备份信息区310中。由于内存管理单元204是将至少部份暂存于高速缓存108中的数据快速地复制至快取区308的实体单元的连续地址中,因此在主机***1000产生逾时(time out)之前内存管理单元204会完成数据的备用,并且将完成清除指令的确认信息(acknowledge message)传送给主机***1000。
图9是本发明第一实施例中数据备份的流程图。
请参照图9,在步骤S901中内存管理单元204会判断微处理器单元202是否从主机***1000中接收到清除指令。倘若未接收到清除指令时则图9所示的流程会被结束。
倘若接收到清除指令时,则在步骤S903中内存管理单元204将暂存于高速缓存108中的数据复制至快取区308中。例如,步骤S903中,内存管理单元204从快取区308的起始地址开始将暂存于高速缓存108中的数据写入至快取区308中。
并且,在步骤S905中内存管理单元204会建立快取映射表以及将所建立的快取映射表储存于备份信息区310中。之后,图9所示的流程会被结束。
在本实施例中,快取映射表具有一映射关系字段与一状态区位。映射关系字段是记录暂存于高速缓存108中的数据所对应的逻辑地址。也就是说,映射关系字段是用以记录暂存于高速缓存108中的数据是属于那个逻辑地址。状态区位是记录暂存于高速缓存108中的数据的状态。具体来说,当暂存于高速缓存108中的数据已被写入至数据区304时,则在状态区位中此数据的状态会被标记为无效。反之,当暂存于高速缓存108中的数据还未被写入至数据区304时,则在状态区位中此数据的状态会被标记为有效。
例如,主机***1000所写入的数据是被暂存于高速缓存108中并且内存管理单元204尚未完成将此些数据写入至闪存芯片106的数据区304的运作。因此,在主机***1000于断电之后再重新启动的例子中,当内存管理单元204接收到开机信号时,内存管理单元204会从快取区308加载备份数据。之后,当内存管理单元204接收到主机写入指令时内存管理单元204依据快取映射表中的信息来将高速缓存108中的数据写入至数据区304。也就是说,在快取映射表中仅被标记为有效的数据会被写入至数据区304。
此外,值得一提的是,在本实施例中,内存管理单元204将部分的实体单元独立地分组为备份信息区310来储存快取映射表。然而,本发明不限于此,在本发明另一实施例中,快取映射表亦可被储存于***区302或数据区304中,而无需配置备份信息区310。
图10是本发明第一实施例中当主机***与闪存储存装置重新启动后加载所复制数据的流程图。
请参照图10,当主机***1000重新开启并启动闪存储存装置100(即,内存管理单元204接收到开机信号)时,在步骤S1001中内存管理单元204会判断快取区308中是否存有先前所复制的备份数据。倘若在快取区308中未存有先前所复制的备份数据时,则图10所示的流程会被结束。
倘若在快取区308中存有先前所复制的备份数据时,则在步骤S1003中内存管理单元204会从备份信息区310中读取快取映射表,并且在步骤S1005中内存管理单元204从快取区308中将数据加载至高速缓存108中。之后,内存管理单元204会在闪存储存装置100接收到主机写入指令时将高速缓存108中的至少一部分数据写入至闪存芯片106的数据区304。
值得一提的是,在本实施例中,内存管理单元204是依据来自于主机***1000的清除指令来启动执行备用高速缓存108中数据的机制。然而,本发明不限于此。例如,在本发明另一实施例中,当闪存储存装置100具有一电容并且在闪存储存装置100断电时此电容可短暂地提供电源给闪存装置100中的组件下,内存管理单元204会检测此事件来启动备用高速缓存108中之数据的机制。具体来说,当主机***1000断电且闪存储存装置100的电源切换为由此电容供应时,电源管理单元254会发送驱动信号给微处理器单元202并且内存管理单元204会根据此驱动信号开始执行图9所示的步骤。
第二实施例
本发明第二实施例的闪存储存装置与主机***本质上是相同于第一实施例的闪存储存装置与主机***,其中差异在于在第二实施例中当微处理器单元接收到清除指令内存管理单元会先尝试将高速缓存中的数据写入至数据区中,并且当无法于预定时间内完成写入运作时内存管理单元才会启动备用高速缓存108中数据的机制。
图11是本发明第二实施例中闪存储存装置的概要方块图,其中以下将针对第二实施例与第一实施例的差异进行说明。
请参照图11,闪存储存装置700包括连接器102、闪存控制器704、闪存芯片106与高速缓存108。
闪存控制器704会执行以硬件型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机***1000的指令在闪存芯片106中进行数据的写入、读取与抹除等运作。闪存控制器704包括微处理器单元202、内存管理单元802、主机接口单元206、闪存接口单元208与定时器804。
内存管理单元802是电性连接至微处理器单元202,且内存管理单元802本质上是相同于内存管理单元204,以下将针对内存管理单元802与内存管理单元204的差异进行说明。
在本实施例中,当微处理器单元202接收到来自于主机***1000的清除指令时,内存管理单元802会启动电性连接至微处理器单元202的定时器804来计数一时间值。同时,内存管理单元802会开始将暂存于高速缓存108中的数据写入至闪存芯片106的数据区304。
特别是,在将暂存于高速缓存108中的数据写入至闪存芯片106的数据区304的期间,当定时器804所计数的一时间值超过一启动门槛值时,内存管理单元802会停止写入的运作,并且将暂存于高速缓存108中的数据复制至快取区308中以及将记录所复制的数据的信息的快取映射表储存在备份信息区310中。在此,启动门槛值为适当的任意数值,例如,在本实施例中,启动门槛值是设定为6秒。
在本实施例中,定时器804是以一硬件型式来实作。然而,本发明不限于此,定时器804亦可以一韧体型式来实作。
图12是本发明第二实施例中数据备份方法的流程图。
请参照图12,在步骤S1201中内存管理单元802会判断微处理器单元202是否从主机***1000中接收到清除指令。倘若未接收到清除指令时则图12所示的流程会被结束。
倘若接收到清除指令时,则在步骤S1203中内存管理单元802启动定时器804来计数一时间值。
接着,在步骤S1205中内存管理单元802逐笔将暂存于高速缓存108中的数据写入至闪存芯片106的数据区304。同时,在步骤S1207中内存管理单元804会判断定时器804所计数的时间值是否大于启动门槛值。倘若定时器804所计数的时间值非大于启动门槛值,则步骤S1205会被执行。
倘若定时器804所计数的时间值大于启动门槛值,则在步骤S1209中内存管理单元802将暂存于高速缓存108中的数据复制至快取区308中。例如,步骤S1209中,内存管理单元802从快取区308的起始地址开始将暂存于高速缓存108中的数据写入至快取区308中。
并且,在步骤S1211中内存管理单元204会建立快取映射表以及将所建立的快取映射表储存于备份信息区310中。之后,图12所示的流程会被结束。
综上所述,本发明实施例的数据备份方法是通过配置快取区并且在接收到清除指令时快速地将暂存于高速缓存中的数据复制至快取区中同时记录所复制数据的相关信息,由此可快速地储存暂存于高速缓存中的数据以避免逾时的问题。此外,在接收到使用电容之驱动信号时快速地将暂存于高速缓存中的数据复制至快取区中同时记录所复制数据的相关信息,由此可避免因不正常断电造成遗失暂存于高速缓存中数据的问题。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (20)
1.一种数据备份方法,用于备用暂存于一闪存储存装置的一高速缓存中的多笔数据,其中该闪存储存装置具有多个实体单元并且每一该些实体单元具有多个实体地址,该数据备用方法包括:
提供一闪存控制器;
提供多个逻辑地址并且将该些逻辑地址分组为多个逻辑单元;
由该闪存控制器将该些实体单元的一部分逻辑地分组为一数据区与一快取区,其中该些逻辑地址映射至该数据区或该快取区,且暂存于该高速缓存中的每一笔数据对应该数据区所映射的该些逻辑地址的其中之一;
由该闪存控制器判断是否接收到一触发信号;以及,
当接收到该触发信号时,由该闪存控制器将暂存于该高速缓存中该些数据的至少一部分复制至该快取区中,
其中暂存于该高速缓存中的数据至少包含一第一数据与一第二数据,并且该第一数据与该第二数据被连续地写入至该快取区中相邻的该些实体地址,
其中该第一数据与该第二数据分别地对应于该些逻辑区块中的同一个逻辑区块内不连续的该些逻辑地址。
2.根据权利要求1所述的数据备份方法,还包括:
当接收到至少一主机写入指令时分别地依据该第一数据与该第二数据所对应的逻辑地址将该第一数据与该第二数据写入至该数据区。
3.根据权利要求1所述的数据备份方法,其中该触发信号为一清除指令,其中该清除指令是由与该闪存储存装置所电性连接的一主机***所传送。
4.根据权利要求1所述的数据备份方法,其中该闪存储存装置包括一电容并且该触发信号为一驱动信号,其中当该电容开始输出电源时该驱动信号会被传送至该闪存控制器。
5.根据权利要求1所述的数据备份方法,还包括:
由该闪存控制器建立一快取映射表,其中该快取映射表用以记录所复制数据所对应的逻辑地址和所复制数据的状态。
6.根据权利要求5所述的数据备份方法,还包括:
由该闪存控制器将该些实体单元的另一部份逻辑地分组为一备份信息区;以及,
由该闪存控制器将该快取映射表储存于该备份信息区中。
7.根据权利要求3所述的数据备份方法,还包括:
配置一定时器;以及,
当接收到该触发信号时启动该定时器来计数一时间值。
8.根据权利要求7所述的数据备份方法,其中由该闪存控制器将储存于该高速缓存中的数据复制至该快取区中的步骤是在接收到该触发信号并且该时间值大于一启动门槛值时执行。
9.根据权利要求1所述的数据备份方法,其中该快取区所映射的该些逻辑地址无提供至一主机***。
10.根据权利要求1所述的数据备份方法,还包括:
当接收到一开机信号时,将复制于该快取区中的该至少一部分数据加载至该高速缓存中。
11.根据权利要求10所述的数据备份方法,还包括:
当接收到至少一主机写入指令时,判断所加载的该至少一部分数据是否有效并且将有效的该至少一部分数据从该高速缓存中写入至该数据区。
12.根据权利要求1所述的数据备份方法,其中由该闪存控制器将暂存于该高速缓存中的该些数据的至少一部分复制至该快取区中的步骤包括:
从该快取区的起始地址开始将该至少一部分数据写入至该快取区中。
13.一种闪存控制器,配置于一闪存储存装置中,其中该闪存储存装置具有一高速缓存与多个实体单元,每一该些实体单元具有多个实体地址,并且该高速缓存暂存多笔数据,该闪存控制器包括:
一微处理器单元;
一闪存接口单元,电性连接至该微处理器单元,用以电性连接至该些实体单元;
一主机接口单元,电性连接至该微处理器单元,用以电性连接至一主机***;以及,
一内存管理单元,电性连接至该微处理器单元,用以提供多个逻辑地址并且将该些逻辑地址分组为多个逻辑单元,
其中该内存管理单元将该些实体单元的一部分逻辑地分组为一数据区与一快取区,其中该些逻辑地址映射至该数据区或该快取区,且暂存于该高速缓存中的每一笔数据对应该数据区所映射的该些逻辑地址的其中之一,
其中该内存管理单元判断该微处理器单元是否接收到一触发信号,并且当接收到该触发信号时,该内存管理单元将暂存于该高速缓存中该些数据的至少一部分复制至该快取区中,
其中暂存于该高速缓存中的数据至少包含一第一数据与一第二数据,并且该第一数据与该第二数据被连续地写入至该快取区中相邻的该些实体地址,
其中该第一数据与该第二数据分别地对应于该些逻辑区块中的同一个逻辑区块内不连续的该些逻辑地址。
14.根据权利要求13所述的闪存控制器,其中当接收到至少一主机写入指令时该内存管理单元分别地依据该第一数据与该第二数据所对应的逻辑地址将该第一数据与该第二数据写入至该数据区。
15.根据权利要求13所述的闪存控制器,其中该触发信号为一清除指令,其中该清除指令是由该主机***经由该主机接口单元传送至该微处理器单元。
16.根据权利要求13所述的闪存控制器,还包括一电源管理单元,电性连接至该微处理器单元,并且该闪存储存装置包括一电容,电性连接至该电源管理单元,
其中该触发信号为一驱动信号,并且当该电容开始输出电源时该电源管理单元会传送该驱动信号至该微处理器单元。
17.根据权利要求15所述的闪存控制器,还包括一定时器,
其中当该微处理器单元接收到该触发信号时该内存管理单元启动该定时器来计数一时间值。
18.根据权利要求17所述的闪存控制器,其中该内存管理单元是在接收到该触发信号并且该时间值大于一启动门槛值时将储存于该高速缓存中的数据复制至该快取区中。
19.一种闪存储存***,包括:
一闪存芯片,具有多个实体单元;
一连接器,用以电性连接至一主机***;
一闪存控制器,电性连接至该闪存芯片与该连接器,并且用以提供多个逻辑地址并且将该些逻辑地址分组为多个逻辑单元;以及,
一高速缓存,电性连接至该闪存控制器,用以暂存多笔数据,
其中该闪存控制器将该些实体单元的一部分逻辑地分组为一数据区与一快取区,其中该些逻辑地址映射至该数据区或该快取区,且暂存于该高速缓存中的每一笔数据对应该数据区中的该些逻辑地址的其中之一,
其中该闪存控制器判断是否检测到一触发信号,并且当检测到该触发信号时,该闪存控制器将暂存于该高速缓存中该些数据的至少一部分复制至该快取区中,
其中暂存于该高速缓存中的数据至少包含一第一数据与一第二数据,并且该第一数据与该第二数据被连续地写入至该快取区中相邻的该些实体地址,
其中该第一数据与该第二数据分别地对应于该些逻辑区块之中的同一个逻辑区块内不连续的该些逻辑地址,
其中当接收到至少一主机写入指令时该闪存控制器分别地依据该第一数据与该第二数据所对应的逻辑地址将该第一数据与该第二数据写入至该数据区。
20.根据权利要求19所述的闪存储存***,其中该触发信号为一清除指令,其中该清除指令是由该主机***经由该连接器传送至该闪存控制器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910222879A CN102073600B (zh) | 2009-11-20 | 2009-11-20 | 数据备份方法、闪存控制器及闪存储存*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910222879A CN102073600B (zh) | 2009-11-20 | 2009-11-20 | 数据备份方法、闪存控制器及闪存储存*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102073600A true CN102073600A (zh) | 2011-05-25 |
CN102073600B CN102073600B (zh) | 2012-10-17 |
Family
ID=44032146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910222879A Active CN102073600B (zh) | 2009-11-20 | 2009-11-20 | 数据备份方法、闪存控制器及闪存储存*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102073600B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346653A (zh) * | 2011-09-16 | 2012-02-08 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储***及数据保护方法 |
CN102760063A (zh) * | 2011-04-25 | 2012-10-31 | 联想(北京)有限公司 | 一种文件加载方法及装置 |
CN103198861A (zh) * | 2012-01-06 | 2013-07-10 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与控制方法 |
CN107402716A (zh) * | 2016-05-20 | 2017-11-28 | 合肥兆芯电子有限公司 | 数据写入方法、内存控制电路单元与内存储存装置 |
CN108255437A (zh) * | 2018-01-26 | 2018-07-06 | 国科美国研究实验室 | 数据贮存装置及方法 |
TWI697780B (zh) * | 2019-07-23 | 2020-07-01 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
CN111949220A (zh) * | 2020-09-03 | 2020-11-17 | 合肥沛睿微电子股份有限公司 | 存储设备异常断电恢复方法及存储设备 |
US10871924B1 (en) | 2019-07-23 | 2020-12-22 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
US11347592B2 (en) | 2019-07-23 | 2022-05-31 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464834B (zh) * | 2007-12-19 | 2011-01-26 | 群联电子股份有限公司 | 闪存数据写入方法及使用此方法的控制器 |
CN101527169A (zh) * | 2008-03-03 | 2009-09-09 | 群联电子股份有限公司 | 闪存数据写入方法及其控制器 |
-
2009
- 2009-11-20 CN CN200910222879A patent/CN102073600B/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102760063A (zh) * | 2011-04-25 | 2012-10-31 | 联想(北京)有限公司 | 一种文件加载方法及装置 |
CN102760063B (zh) * | 2011-04-25 | 2015-08-26 | 联想(北京)有限公司 | 一种文件加载方法及装置 |
CN102346653A (zh) * | 2011-09-16 | 2012-02-08 | 成都市华为赛门铁克科技有限公司 | 存储阵列和存储***及数据保护方法 |
CN103198861A (zh) * | 2012-01-06 | 2013-07-10 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与控制方法 |
CN103198861B (zh) * | 2012-01-06 | 2016-08-24 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与控制方法 |
CN107402716A (zh) * | 2016-05-20 | 2017-11-28 | 合肥兆芯电子有限公司 | 数据写入方法、内存控制电路单元与内存储存装置 |
CN108255437A (zh) * | 2018-01-26 | 2018-07-06 | 国科美国研究实验室 | 数据贮存装置及方法 |
CN108255437B (zh) * | 2018-01-26 | 2021-03-02 | 国科美国研究实验室 | 数据贮存装置及方法 |
TWI697780B (zh) * | 2019-07-23 | 2020-07-01 | 慧榮科技股份有限公司 | 瞬間斷電回復處理方法及電腦程式產品以及裝置 |
US10871924B1 (en) | 2019-07-23 | 2020-12-22 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
US11347592B2 (en) | 2019-07-23 | 2022-05-31 | Silicon Motion, Inc. | Method and computer program product and apparatus for handling sudden power off recovery |
CN111949220A (zh) * | 2020-09-03 | 2020-11-17 | 合肥沛睿微电子股份有限公司 | 存储设备异常断电恢复方法及存储设备 |
CN111949220B (zh) * | 2020-09-03 | 2023-12-08 | 合肥沛睿微电子股份有限公司 | 存储设备异常断电恢复方法及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102073600B (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102073600B (zh) | 数据备份方法、闪存控制器及闪存储存*** | |
TWI385523B (zh) | 用於快閃記憶體的資料備份方法及其控制器與儲存系統 | |
US8166233B2 (en) | Garbage collection for solid state disks | |
CN102576332B (zh) | 用于电力中断管理的方法和包含电力中断管理的存储器*** | |
CN103270500A (zh) | 事务日志恢复 | |
CN101483067A (zh) | 快闪存储器数据写入方法及其快闪存储器控制器 | |
CN107273058A (zh) | 逻辑地址偏移 | |
JP2012515955A (ja) | 固体メモリフォーマッティング | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存***与控制器 | |
TWI498899B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存***及其控制器 | |
CN102456404A (zh) | 非易失性存储器存储装置、存储器控制器与数据存储方法 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存***及控制器 | |
CN102053796A (zh) | 闪存储存***、闪存控制器与数据处理方法 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN111399752A (zh) | 不同类型存储单元的控制装置及方法 | |
CN101527169A (zh) | 闪存数据写入方法及其控制器 | |
CN102129353A (zh) | 闪存储存***、闪存控制器与数据写入方法 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存***及其控制器 | |
CN102122233B (zh) | 区块管理与数据写入方法、闪存储存***与控制器 | |
CN102567221A (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
TWI414940B (zh) | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 | |
CN101944384A (zh) | 用于闪速存储器的数据写入方法及其控制电路与储存*** | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
Chen et al. | DCR: Deterministic crash recovery for NAND flash storage systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |