CN106502928B - 一种存储***掉电保护方法、存储控制器及电子设备 - Google Patents
一种存储***掉电保护方法、存储控制器及电子设备 Download PDFInfo
- Publication number
- CN106502928B CN106502928B CN201610872062.0A CN201610872062A CN106502928B CN 106502928 B CN106502928 B CN 106502928B CN 201610872062 A CN201610872062 A CN 201610872062A CN 106502928 B CN106502928 B CN 106502928B
- Authority
- CN
- China
- Prior art keywords
- mapping table
- level
- mapping relations
- log
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储***掉电保护方法、存储控制器及电子设备,涉及通信技术领域,能够解决存储***需要耗费大量时间进行映射关系恢复的问题。该方法包括:当CPU前次下电属于异常下电后,存储控制器根据一级映射表的索引信息逐级确定二、三级映射表的索引信息,且读取日志缓存区中所有数据的映射关系,以及日志区中所有数据的映射关系;并向CPU发送所获取的映射关系;当有至少一个数据在日志缓存区的映射关系或者在日志区中的映射关系与在三级映射表中的映射关系不同时,存储控制器替换三级映射表中的映射关系,并逐级更新二、一级映射表的索引信息,且将更新后的二级映射表中在更新前后发生改变的映射关系保存至DRAM。本发明适用于存储***。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种存储***掉电保护方法、存储控制器及电子设备。
背景技术
随着闪存技术的普及,基于flash(中文:闪存)的存储设备(如SSD,Solid StateDrive,中文:固态硬盘)在开发、测试,以及用户使用过程中,可能由于终端产生异常掉电而造成闪存状态异常,从而导致数据被破坏,最终造成设备开机失败。
目前,为了实现终端产生异常掉电时的掉电保护,在写数据时,元数据存储模块,通常在每个块的每一页的OOB(英文:Out Of Band,中文:带外空间)区域,或是在最后一页的OOB区域记录数据的信息摘要,其中,信息摘要包括块上所有页的逻辑地址和物理地址的映射关系;由于在属于非易失性介质的SSD中的数据进行改写时,并不是在原有数据所存储的位置进行改写,而是将改写的内容存储在SSD中的其他位置,且当需要存储至SSD中的映射关系达到一定数量时,才能够下写至SSD中,因此,在发生掉电时,新的映射关系虽然已经生成,但考虑到SSD是以数据块为单位进行存储的,这样可能会导致新的映射关系还未下写到SSD中,及新的映射关系不能被及时存储在SSD中;当存储***上电时,存储阵列扫描模块通过对整个SSD扫描每一页的OOB区域,或是扫描最后一页的OOB区域,来获取所有数据页的映射关系,之后根据所获取的所有数据页的映射关系的新旧程度,确定同一逻辑地址对应的最新的物理地址,从而确定最新的映射关系,以实现掉电保护。
但是,由于SSD的容量很大,对SSD进行全盘扫描会耗费大量的时间。因此,采用上述方法来实现掉电保护,对于大容量的SSD,存储***需要耗费大量时间进行映射关系的恢复。
发明内容
本发明提供一种存储***掉电保护方法、存储控制器及电子设备,能够解决存储***需要耗费大量时间进行映射关系恢复的问题。
为达到上述目的,本发明实施例采用如下技术方案:
一方面,本发明提供一种存储***掉电保护方法,该方法用于一种电子设备,电子设备中包括:中央处理器(英文:,简称:CPU)、存储控制器、flash、高速非易失性存储器和动态随机存取存储器(英文:,简称:DRAM),高速非易失性存储器中保存有一级映射表和日志缓存区,flash中保存有二级映射表、三级映射表和日志区,其中,
日志缓存区用于保存在电子设备正常工作时,CPU在将数据的映射关系写到DRAM的同时,通过存储控制器写到日志缓存区中数据的映射关系;
日志区用于在若日志缓存区中的存储空间达到第一阈值后,保存存储控制器从日志缓存区中读取的数据的映射关系;
三级映射表的索引信息为数据的映射关系,三级映射表用于在日志区中的数据达到第二阈值时,三级映射表被刷新并保存日志区中数据的映射关系;
一级映射表的索引信息为二级映射表的映射关系;
二级映射表的索引信息为三级映射表的映射关系;
映射关系为逻辑地址与物理地址的对应关系;
该方法包括:
当CPU前次下电属于异常下电后,存储控制器根据一级映射表的索引信息确定二级映射表的物理地址,并根据二级映射表的物理地址找到二级映射表,通过访问二级映射表的索引信息来确定三级映射表的物理地址,之后根据三级映射表的物理地址找到三级映射表,确定三级映射表的索引信息;
存储控制器读取日志缓存区中所有数据的映射关系,以及日志区中所有数据的映射关系;
存储控制器向CPU发送三级映射表的索引信息、日志缓存区中所有数据的映射关系,以及日志区中所有数据的映射关系;
当存储控制器在CPU根据三级映射表的索引信息、日志缓存区中所有数据的映射关系判断有至少一个数据在日志缓存区的映射关系或者在日志区中的映射关系与在三级映射表中的映射关系不一致时,使用至少一个数据在日志缓存区的映射关系或者在日志区中的映射关系替换掉在三级映射表中的映射关系,其中,在替换时,优先使用至少一个数据在日志缓存区的映射关系进行替换;
存储控制器根据刷新后的三级映射表更新二级映射表的索引信息,之后根据更新后的二级映射表更新一级映射表的索引信息,且将更新后的二级映射表中在更新前后发生改变的映射关系保存至DRAM。
其中,本发明实施例中,高速非易失性存储器是指读写速度比flash更快,同时,每次可直接操作数据的粒度更小(例如,按字节进行操作而不像flash一样按块进行操作)的存储器,例如,MRAM(英文:Magnetic Random Access Memory,中文:磁性随机存取存储器)或者PCM(英文:Phase-change memory,中文:相变存储器)。但高速非易失性存储器通常成本比flash高,容量也比flash小,无法适合大规模使用。
本实施例中,设置了各级映射表以及日志缓存区、日志区等多个位置来保存数据的映射关系,使得CPU断电后,存储控制器能够根据保存的各个映射关系进行恢复,在这过程中,由于是通过各级映射表一级一级地查找,而不是使用现有技术全盘扫描的方式,因此,在查找数据的映射关系的过程中提升了速度。
另一方面,在保存各个映射关系时,还充分利用了高速非易失性存储器以及flash的特点。具体的,以高速非易失性存储器为MRAM为例,由于MRAM速度快的特性,可以将日志缓存区放在MRAM中,由于CPU在将数据映射关系写到DRAM时,也会写到MRAM,这是个使用频率很高的操作,如果速度慢,会对整个***造成影响,因此,这里使用MRAM来保存日志缓存区的数据,能够最大程度保证***的性能。
同时,本实施例还将一级映射表也放置在MRAM中,由于一级映射表是用于查找二、三级映射表的,所以必须先知道一级映射表的地址,且这个地址需要固定。如果将一级映射表放置在flash一片固定地址中,由于flash本身的特性,不断读写这一块区域时,会产生过多磨损,最终导致flash发生故障。而MRAM并不存在这个问题,因此,可以在MRAM中专门开辟一块区域来进行一级映射表的放置。同时,由于一级映射表的容量也不会很大(仅保存二级表的索引信息),因此,也适合使用MRAM来保存映射表。而其他表(例如,二级映射表、三级映射表)占用空间相对较大,可以利用flash大容量的特性放置在flash当中,从而达到最优配置。
在一种可能的设计中,在CPU上电之后,存储控制器需要向CPU上报用于反应异常下电的标志位,该标志位位于存储控制器的寄存器,使得CPU根据标志位判断前次下电是否属于异常下电。
由此可见,采用上述上报标志位的方式,能够使CPU快速且有效区分前次下电是否属于异常下电,若属于正常下电,则触发正常上电流程,否则,则触发上述异常上电流程。
在一种可能的设计中,日志缓存区被划分为n个队列,n个队列用Q1至Qn表示,其中,n为大于或等于1的正整数,日志区包括至少两个区块,且每个区块对应日志缓存区中的一个队列;在日志缓存区中的存储空间达到第一阈值后,存储控制器从日志缓存区中读取日志缓存区中的数据的映射关系,并保存到日志区,具体包括:在日志缓存区中目标列的存储空间达到第一阈值后,存储控制器将目标列中数据的映射关系存储至日志区中目标区块对应的位置,目标区块为目标列对应的区块。
考虑到日志缓存区中的存储空间有限,这样一来不仅可以保证日志缓存区中存在足够的空闲存储资源,同时还可以保证,批量将数据的映射关系写到flash的日志区中,即满足了日志区对于数据的映射关系的存储要求。
在一种可能的设计中,在电子设备正常工作时,若三级映射表在刷新后被修改条目的数量达到第三阈值,则存储控制器根据刷新后的三级映射表刷新二级映射表的索引信息;若二级映射表在刷新后被修改条目的数量达到第四阈值,则存储控制器根据刷新后的二级映射表更新一级映射表的索引信息。
在本发明中,索引信息是逐级刷新的,且根据三级映射表刷新二级映射表,以及根据二级映射表刷新一级映射表的过程,均是在映射表中被修改条目的数量达到一定阈值时,才进行刷新的。由此可见,采用上述批量刷新的方式,能够在尽可能确保映射表处于较新状态的前提条件下,减少映射表的刷新频次,同时,满足映射表对于刷新操作的需求。
另一方面,本发明提供一种存储控制器,该存储控制器可以实现上述方法示例中存储控制器所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
又一方面,本发明提供一种电子设备,该电子设备中包括:CPU、上述存储控制器、flash、高速非易失性存储器和动态随机存取存储器(英文:Dynamic Random AccessMemory,简称:DRAM),该存储控制器用于执行上述方法中存储控制器的相应功能。该电子设备中还可以包括通信接口,用于与其他设备之间进行通信。
又一方面,本发明提供了一种计算机存储介质,用于储存为上述存储控制器所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
本发明提供的存储***掉电保护方法、存储控制器及电子设备,高速非易失性存储器是指读写速度比flash更快,同时,每次可直接操作数据的粒度更小的存储器,例如,MRAM或者PCM。但高速非易失性存储器通常成本比flash高,容量也比flash小,无法适合大规模使用。在本发明中,设置了各级映射表以及日志缓存区、日志区等多个位置来保存数据的映射关系,使得CPU断电后,存储控制器能够根据保存的各个映射关系进行恢复,在这过程中,由于是通过各级映射表逐级地查找,而不是使用现有技术全盘扫描的方式,因此,在查找数据的映射关系的过程中提升了速度。并且,在保存各个映射关系时,还充分利用了高速非易失性存储器以及flash的特点。具体的,以高速非易失性存储器为MRAM为例,由于MRAM速度快的特性,可以将日志缓存区放在MRAM中,由于CPU在将数据映射关系写到DRAM时,也会写到MRAM,这是个使用频率很高的操作,如果速度慢,会对整个***造成影响,因此,这里使用MRAM来保存日志缓存区的数据,能够最大程度保证***的性能。同时,本发明还将一级映射表也放置在MRAM中,由于一级映射表是用于查找二、三级映射表的,所以必须先知道一级映射表的地址,且这个地址需要固定。如果将一级映射表放置在flash一片固定地址中,由于flash本身的特性,不断读写这一块区域时,会产生过多磨损,最终导致flash发生故障。而MRAM并不存在这个问题,因此,可以在MRAM中专门开辟一块区域来进行一级映射表的放置。同时,由于一级映射表的容量也不会很大,因此,也适合使用MRAM来保存映射表。而其他表占用空间相对较大,可以利用flash大容量的特性放置在flash当中,从而达到最优配置。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种电子设备的结构示意图;
图2为本发明实施例提供的一种存储***掉电保护方法流程图;
图3至图6为本发明实施例提供的另一种MRAM的结构示意图;
图7为本发明实施例提供的另一种存储***掉电保护方法流程图;
图8为本发明实施例提供的一种存储控制器的结构示意图;
图9为本发明实施例提供的另一种存储控制器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图1,本发明适用于一种电子设备,该电子设备中包括CPU、存储控制器、flash、高速非易失性存储器和DRAM。其中,DRAM具体可以为内存,高速非易失性存储器具体可以为MRAM,存储控制器可以用FPGA来实现。
在本发明中,高速非易失性存储器中保存有一级映射表和日志缓存区,flash中保存有二级映射表、三级映射表和日志区,其中,日志缓存区用于保存在电子设备正常工作时,CPU在将数据的映射关系写到DRAM的同时,通过存储控制器写到日志缓存区中数据的映射关系;日志区用于在若日志缓存区中的存储空间达到第一阈值后,保存存储控制器从日志缓存区中读取的数据的映射关系;三级映射表的索引信息为数据的映射关系,三级映射表用于在日志区中的数据达到第二阈值时,三级映射表被刷新并保存日志区中数据的映射关系;一级映射表的索引信息为二级映射表的映射关系;二级映射表的索引信息为三级映射表的映射关系;映射关系为逻辑地址与物理地址的对应关系。
需要说明的是,上述第一阈值,以及后文所提及的第二至第四阈值,在设定时,均可以依据经验值或是具体的应用场景来预先设定。其中,第一阈值的作用在于判别日志缓存区中存储的数据的映射关系是否需要写到flash的日志区中;第二阈值的作用在于判别日志区中存储的数据的映射关系是否需要写到flash的三级映射表中;第三阈值的作用在于判别刷新后的三级映射表中被修改的条目是否需要刷新到二级映射表中;第四阈值的作用在于判别刷新后的二级映射表中被修改的条目是否需要刷新到一级映射表中。还需要说明的是,第一、第二阈值均作为存储空间占用情况的参考值,比如,该第一阈值和/或该第二阈值可以被设置为100%,90%等用于表示存储空间占用情况的参数,其中,若将该第一阈值设置为100%,则表明在日志缓存区中的存储空间已满后,存储控制器将日志缓存区中的数据的映射关系写到flash的日志区中;第三、第四阈值均作为被修改条目的数量的参考值,比如,该第三阈值和/或该第四阈值可以被设置为50条,100条等用于表示修改条目的数量的参数,其中,若将该第三阈值设置为50条,则表明三级表在刷新后被修改的条目达到50条后,则存储控制器会根据刷新后的三级映射表刷新二级映射表的索引信息。另外,在本发明中,第一阈值与第二阈值的取值可以相同或不同,第三阈值与第四阈值的取值也可以相同或不同,在此不做限定,且上述阈值的设置方式以及参数类型也不做限制,比如,参数类型可以为百分数、整数等其他类型。
另外,若日志缓存区中的数据的映射关系已经写到flash的日志区中,那么为了节省存储空间,存储控制器可以直接将日志缓存区中已经写到日志区的内容删除,同时释放已删除内容所占用的空间,以确保党日志缓存区需要存储新的数据的映射关系时,该日志缓存区仍然能够为缓存过程提供足够的存储空间,即存储资源。或者,存储控制器不对日志缓存区中的内容进行删除,而是对该部分内容进行标记,并当新的数据的映射关系写到日志缓存区时,直接覆盖已被标记的那部分内容,这样一来,同样可以达到空间充分利用的效果。对于三级映射表而言,若日志区所存储的数据达到第二阈值后,存储控制器同样需要将日志区中的内容按区块写到三级映射表中,并且,为了节省flash的存储空间,也需要将日志区的内容进行删除。
本发明实施例提供一种存储***掉电保护方法,如图2所示,该方法均可以由上述存储控制器来执行。
需要说明的是,该存储控制器具体可以包括MRAM控制器和SSD控制器,其中,MRAM控制器可以用于监控MRAM中一级映射表和日志缓存区的状态,例如,判断日志缓存区的存储空间是否达到一定阈值,此外,MRAM控制器还可以根据MRAM的状态,通知SSD控制器执行相应操作;同理,SSD控制器可以用于监控flash中二级映射表、三级映射表和日志区的状态,例如,判断当前三级映射表中的数据的映射关系是否需要逐级刷新到二级映射表和一级映射表中,此外,SSD控制器还可以根据flash的状态,通知MRAM控制器执行相应操作。
另外,上述存储控制器的具体实现过程会在下文提出,在此不做赘述,且上述SSD控制器与MRAM控制器仅作为存储控制器的一种具体的实现方式,但并不仅限于上述实现方式。
该方法流程包括:
101、当CPU前次下电属于异常下电后,存储控制器根据一级映射表的索引信息确定二级映射表的物理地址,并根据二级映射表的物理地址找到二级映射表,通过访问二级映射表的索引信息来确定三级映射表的物理地址,之后根据三级映射表的物理地址找到三级映射表,确定三级映射表的索引信息。
102、存储控制器读取日志缓存区中所有数据的映射关系,以及日志区中所有数据的映射关系。
103、存储控制器向CPU发送三级映射表的索引信息、日志缓存区中所有数据的映射关系,以及日志区中所有数据的映射关系。
104、当存储控制器在CPU根据三级映射表的索引信息、日志缓存区中所有数据的映射关系判断有至少一个数据在日志缓存区的映射关系或者在日志区中的映射关系与在三级映射表中的映射关系不一致时,使用至少一个数据在日志缓存区的映射关系或者在日志区中的映射关系替换掉在三级映射表中的映射关系。
其中,在替换时,优先使用至少一个数据在日志缓存区的映射关系进行替换。
105、存储控制器根据刷新后的三级映射表更新二级映射表的索引信息,之后根据更新后的二级映射表更新一级映射表的索引信息,且将更新后的二级映射表中在更新前后发生改变的映射关系保存至DRAM。
在本发明中,为了节省flash的存储资源,可以在DRAM保存了更新后的二级映射表之后,将flash中的二级映射表清空。
需要说明的是,当CPU正常下电时,在软件层面,存储控制器的一些程序模块(例如,驱动)可以调用算法下电接口,通知算法进行正常下电操作;算法调用saveMap3inSSD函数,并通过驱动逻辑将DRAM中所有更新的三级映射表下写到flash中,并返回新写入flash中三级映射表的物理地址;根据返回的flash中新写入的三级映射表的物理地址来更新DRAM中二级映射表的内容;将更新后的DRAM中所有的有更新的二级映射表写到flash中,并返回新写入二级映射表的物理地址;将返回的二级映射表的物理地址保存到MRAM的一级映射表中;将flash中当前的日志区内所有块全部设置为垃圾块,并向驱动返回算法下电操作完成,同时驱动可以将存储控制器的寄存器中用于反应前次下电过程是否属于异常下电的标志位flag设置为1,即表示前次下电过程属于正常下电。
在本发明中,高速非易失性存储器是指读写速度比flash更快,同时,每次可直接操作数据的粒度更小(例如,按字节进行操作而不像flash一样按块进行操作)的存储器,例如,MRAM或者PCM。但高速非易失性存储器通常成本比flash高,容量也比flash小,无法适合大规模使用。
本实施例中,设置了各级映射表以及日志缓存区、日志区等多个位置来保存数据的映射关系,使得CPU断电后,存储控制器能够根据保存的各个映射关系进行恢复,在这过程中,由于是通过各级映射表一级一级地查找,而不是使用现有技术全盘扫描的方式,因此,在查找数据的映射关系的过程中提升了速度。
另一方面,在保存各个映射关系时,还充分利用了高速非易失性存储器以及flash的特点。具体的,以高速非易失性存储器为MRAM为例,由于MRAM速度快的特性,可以将日志缓存区放在MRAM中,由于CPU在将数据映射关系写到DRAM时,也会写到MRAM,这是个使用频率很高的操作,如果速度慢,会对整个***造成影响,因此,这里使用MRAM来保存日志缓存区的数据,能够最大程度保证***的性能。
同时,本实施例还将一级映射表也放置在MRAM中,由于一级映射表是用于查找二、三级映射表的,所以必须先知道一级映射表的地址,且这个地址需要固定。如果将一级映射表放置在flash一片固定地址中,由于flash本身的特性,不断读写这一块区域时,会产生过多磨损,最终导致flash发生故障。而MRAM并不存在这个问题,因此,可以在MRAM中专门开辟一块区域来进行一级映射表的放置。同时,由于一级映射表的容量也不会很大(仅保存二级表的索引信息),因此,也适合使用MRAM来保存映射表。而其他表(例如,二级映射表、三级映射表)占用空间相对较大,可以利用flash大容量的特性放置在flash当中,从而达到最优配置。
由于在CPU这一次上电之前,CPU可能为正常下电或是异常下电,而不同的下电状态,会使CPU再一次上电时触发不同的处理流程,因此,在本发明实施例的一个实现方式中,当CPU上电时,可以通过读取存储控制器发送的标志位来确定此前的下电过程属于正常下电或是异常下电操作,之后根据下电状态来选择不同的处理流程。因此,在CPU上电之后,存储控制器向CPU上报用于反映异常下电的标志位。
具体的,标志位可以位于存储控制器中的寄存器,在CPU正常下电时,存储控制器中的驱动可以对标志位进行设置,比如将标志位flag设置为1;而在CPU异常下电时,由于存储控制器断电,因此无法完成对标志位进行设置的操作,因此,当CPU再次上电时所读取到的flag值为在正常工作时的一个值(如0),而不是1时,表明上次CPU下电是异常下电。需要说明的是,对于区分CPU是否为正常下电的方式不仅限于上述设置标志位的实现方式,还可以为其他可以用于区分CPU下电状态的其他操作,在此不做赘述。
在本实施中,采用上述读取标志位的方式,能够使存储控制器快速且有效的区分前次下电是否属于异常下电,若属于正常下电,则触发CPU的正常上电流程,否则,则触发上述异常上电流程。
本实施例中,CPU正常上电流程为:CPU接收到存储控制器的驱动读取到标志位,调用算法初始化接口,传输标志位。当标志位flag=1时,算法正常调用上电流程。即算法通过驱动逻辑,读取高速非易失性存储器中一级映射表的内容,并根据一级映射表中记载的二级映射表的物理地址,找到flash中二级映射表的位置,访问二级映射表的内容,将读取到的二级映射表的内容保存在主存中,即保存在DRAM中,并给驱动返回确定信息。
当CPU为正常上电时,CPU可以直接根据高速非易失性存储器中存储的一级映射表中的映射关系找到存储在SSD的二级映射表的物理地址,之后访问二级映射表,并将二级映射表中的映射关系同步至DRAM中,以便于后续读取数据时,能够根据DRAM中的二级映射表,来确定三级映射表在flash中存储的物理地址,并通过访问三级映射表来确定数据的存储地址。
当CPU为异常上电时,即CPU的前次下电属于异常下电,存储介质还来不及执行任何操作就已经掉电了。这就意味着,存储在DRAM中的映射关系因异常下电而丢失,仅有具有非易失性特性的高速非易失性存储器和flash中存储的数据仍然保留。因此,存储控制器可以根据一级映射表中的映射关系找到存储在flash的二级映射表的物理地址,之后访问二级映射表,并根据二级映射表中的映射关系找到存储在flash的三级映射表的物理地址,并读取三级映射表中存储的数据的映射关系。
在另一实施例中,为了方便将日志缓存区中的内容批量下写到flash的日志区中,日志缓存区可以被划分为n个队列,其中,n个队列可以用Q0至Qn来表示,n为大于或等于1的正整数,日志区包括至少两个区块,且每个区块对应日志缓存区中的一列。在本发明实施例中,当满足一定条件时,存储控制器可以将日志缓存区中存储的内容按队列写到日志区。因此,在日志缓存区中的存储空间达到第一阈值后,存储控制器从日志缓存区中读取日志缓存区中的数据的映射关系,并保存到日志区,具体可以实现为:
在日志缓存区中目标列的存储空间达到第一阈值后,存储控制器将目标列中数据的映射关系存储至日志区中目标区块对应的位置,目标区块为目标列对应的区块。
需要说明的是,区块可以被视为与队列对应的一块区域。区块的构成与队列是相同的,均是由多个表项构成的一块区域。
例如:在MRAM处于如图3所示的状态时,若CPU正常下电,则存储控制器可以将日志缓存区的Q0至Qn队列中的映射关系写到flash的日志区,并在日志缓存区中的存储空间达到第一阈值后,将日志区中的内容刷新到三级映射表,以及二级映射表和一级映射表,即最终刷新MRAM中的映射表索引区。其中,将三级映射表中的内容逐级刷新到二级映射表和一级映射表的过程,会在后文提出,在此不做赘述。需要说明的是,图中状态表区对应flash的日志区中的各个区块,因此,当三级映射表更新时,位于MRAM中的状态表区也会更新。
如图4所示,为将已经产生的映射关系写到MRAM中对应队列之后,MRAM中的日志缓存区的存储状态。
如图5所示,当Q0至Qn队列中存在至少一个队列的存储空间达到所述第一阈值后,则将该至少一个队列所存储的数据的映射关系写到flash的日志区中,之后根据已写到flash的日志区的映射关系更新状态表区。
在CPU进行正常下电之后,高速非易失性存储器的存储状态如图6所示,即日志缓存区的Q0至Qn队列中的数据已写到flash的日志区,并在完成写操作之后,清除日志缓存区的所有内容。
当CPU在某个时刻异常下电时,也就是CPU发生异常掉电时,存储介质还来不及执行任何操作就已经掉电了,则MRAM的存储状态为如图3至5所示的任意一种状态。此时,MRAM中的内容没有执行任何操作,标志位也未被更改,即为CPU异常下电。
当CPU再次上电时,存储控制器先读取标志位并上报给CPU,这样可以确定CPU为异常上电。此时,Q0至Qn队列、日志区中均存储着最新或是较新的映射信息,各级映射表中的部分内容为非最新的映射信息。存储控制器可以分区块读取Q0至Qn队列、日志区以及三级映射表所存储的内容,并进行比较。其中,映射关系的新旧程度依次为Q0至Qn队列、日志区、三级映射表。通过比较后,存储控制器可以根据最新的映射信息刷新三级映射表,从而在满足一定刷新条件之后逐级更新二级映射表和一级映射表,之后清空Q0至Qn队列,以及日志区,从而完成映射关系的恢复。
在本发明中,考虑到日志缓存区中的存储空间有限,这样一来不仅可以保证日志缓存区中存在足够的空闲存储资源,同时还可以保证,批量将数据的映射关系写到flash的日志区中,即满足了日志区对于数据的映射关系的存储要求。
在本发明实施例的一个实现方式中,在电子设备正常工作时,从三级映射表逐级刷新二级映射表与一级映射表的过程,可以实现为如图7所示的实现方式:
201、若三级映射表在刷新后被修改条目的数量达到第三阈值,则存储控制器根据刷新后的三级映射表刷新二级映射表的索引信息。
202、若二级映射表在刷新后被修改条目的数量达到第四阈值,则存储控制器根据刷新后的二级映射表更新一级映射表的索引信息。
由此可见,从三级映射表逐级刷新二级映射表与一级映射表的过程中,是依据映射表在刷新后被修改条目的数量来确定是否需要刷新到下一级映射表。采取上述刷新过程,不仅能够满足flash对于写操作的需求,同时,也能够减少为了刷新而进行写操作的次数。
上述主要从电子设备中存储控制器的角度对本发明实施例提供的方案进行了介绍。可以理解的是,存储控制器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对存储控制器等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,或是采用集成的单元的情况下,图8示出了上述实施例中所涉及的存储控制器的一种可能的结构示意图。存储控制器30包括:确定模块31、获取模块32、发送模块33、处理模块34和存储模块35。例如,确定模块31,用于执行图2的过程101;获取模块32,用于执行图2的过程102;发送模块33,用于执行图2的过程103;处理模块34,用于执行图2的过程104和过程105,以及图4的过程201和过程202;存储模块35,用于保存存储控制器的程序代码和数据。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
上述确定模块31和处理模块34可以集成在处理器上,该处理器可以为中央处理器(英文:Central Processing Unit,简称:CPU),通用处理器,数字信号处理器(英文:Digital Signal Processor,简称:DSP),专用集成电路(英文:Application-SpecificIntegrated Circuit,简称:ASIC),现场可编程门阵列(英文:Field Programmable GateArray,简称:FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。获取模块32与发送模块33具体可以为收发器、收发电路或通信接口等。存储模块35可以是存储器。
当确定模块31和处理模块34为处理器,获取模块32和发送模块33为通信接口,存储模块35为存储器时,本发明实施例所涉及的存储控制器可以为图9所示的存储控制器40。
参阅图9所示,该存储控制器40包括:处理器41、通信接口42、存储器43以及总线44。其中,处理器41、通信接口42和存储器43通过总线44相互连接;总线44可以是外设部件互连标准(英文:Peripheral Component Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended Industry Standard Architecture,简称:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:Random Access Memory,简称:RAM)、闪存、只读存储器(英文:Read Only Memory,简称:ROM)、可擦除可编程只读存储器(英文:ErasableProgrammable ROM,简称:EPROM)、电可擦可编程只读存储器(英文:Electrically EPROM,简称:EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(简称:CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种存储***掉电保护方法,其特征在于,所述方法用于一种电子设备,所述电子设备中包括:中央处理器CPU、存储控制器、闪存flash、高速非易失性存储器和动态随机存取存储器DRAM,所述高速非易失性存储器中保存有一级映射表和日志缓存区,所述flash中保存有二级映射表、三级映射表和日志区,其中,
所述日志缓存区用于保存在所述电子设备正常工作时,所述CPU在将数据的映射关系写到DRAM的同时,通过所述存储控制器写到所述日志缓存区中所述数据的映射关系;
所述日志区用于在若所述日志缓存区中的存储空间达到第一阈值后,保存所述存储控制器从所述日志缓存区中读取的数据的映射关系;
所述三级映射表的索引信息为数据的映射关系,所述三级映射表用于在所述日志区中的数据达到第二阈值时,所述三级映射表被刷新并保存所述日志区中数据的映射关系;
所述一级映射表的索引信息为所述二级映射表的映射关系;
所述二级映射表的索引信息为所述三级映射表的映射关系;
所述映射关系为逻辑地址与物理地址的对应关系;
所述方法包括:
当所述CPU前次下电属于异常下电后,所述存储控制器根据一级映射表的索引信息确定二级映射表的物理地址,并根据二级映射表的物理地址找到二级映射表,通过访问二级映射表的索引信息来确定三级映射表的物理地址,之后根据三级映射表的物理地址找到三级映射表,确定三级映射表的索引信息;
所述存储控制器读取所述日志缓存区中所有数据的映射关系,以及所述日志区中所有数据的映射关系;
所述存储控制器向所述CPU发送所述三级映射表的索引信息、所述日志缓存区中所有数据的映射关系,以及所述日志区中所有数据的映射关系;
当所述存储控制器在所述CPU根据所述三级映射表的索引信息、所述日志缓存区中所有数据的映射关系判断有至少一个数据在所述日志缓存区的映射关系或者在所述日志区中的映射关系与在所述三级映射表中的映射关系不一致时,使用所述至少一个数据在所述日志缓存区的映射关系或者在所述日志区中的映射关系替换掉在所述三级映射表中的映射关系,其中,在替换时,优先使用所述至少一个数据在所述日志缓存区的映射关系进行替换;
所述存储控制器根据刷新后的三级映射表更新二级映射表的索引信息,之后根据更新后的二级映射表更新一级映射表的索引信息,且将更新后的二级映射表中在更新前后发生改变的映射关系保存至所述DRAM。
2.根据权利要求1所述的方法,其特征在于,在所述CPU上电之后,所述方法还包括:
所述存储控制器向所述CPU上报用于反映异常下电的标志位,所述标志位位于所述存储控制器的寄存器,使得所述CPU根据所述标志位判断前次下电是否属于异常下电。
3.根据权利要求1或2所述的方法,其特征在于,所述日志缓存区被划分为n个队列,所述n个队列用Q1至Qn表示,其中,n为大于或等于1的正整数,所述日志区包括至少两个区块,且每个区块对应所述日志缓存区中的一个队列;
在所述日志缓存区中的存储空间达到第一阈值后,所述存储控制器从所述日志缓存区中读取所述日志缓存区中的数据的映射关系,并保存到所述日志区,具体包括:
在所述日志缓存区中目标列的存储空间达到所述第一阈值后,所述存储控制器将所述目标列中数据的映射关系存储至所述日志区中目标区块对应的位置,所述目标区块为所述目标列对应的区块。
4.根据权利要求1所述的方法,其特征在于,在所述电子设备正常工作时,所述方法还包括:
若所述三级映射表在刷新后被修改条目的数量达到第三阈值,则所述存储控制器根据刷新后的三级映射表刷新二级映射表的索引信息;
若所述二级映射表在刷新后被修改条目的数量达到第四阈值,则所述存储控制器根据刷新后的二级映射表更新一级映射表的索引信息。
5.一种存储控制器,其特征在于,所述存储控制器用于一种电子设备,所述电子设备中还包括:中央处理器CPU、闪存flash、高速非易失性存储器和动态随机存取存储器DRAM,所述高速非易失性存储器中保存有一级映射表和日志缓存区,所述flash中保存有二级映射表、三级映射表和日志区,其中,
所述日志缓存区用于保存在所述电子设备正常工作时,所述CPU在将数据的映射关系写到DRAM的同时,通过所述存储控制器写到所述日志缓存区中所述数据的映射关系;
所述日志区用于在若所述日志缓存区中的存储空间达到第一阈值后,保存所述存储控制器从所述日志缓存区中读取的数据的映射关系;
所述三级映射表的索引信息为数据的映射关系,所述三级映射表用于在所述日志区中的数据达到第二阈值时,所述三级映射表被刷新并保存所述日志区中数据的映射关系;
所述一级映射表的索引信息为所述二级映射表的映射关系;
所述二级映射表的索引信息为所述三级映射表的映射关系;
所述映射关系为逻辑地址与物理地址的对应关系;
所述存储控制器包括:
确定模块,用于当所述CPU前次下电属于异常下电后,根据一级映射表的索引信息确定二级映射表的物理地址,并根据二级映射表的物理地址找到二级映射表,通过访问二级映射表的索引信息来确定三级映射表的物理地址,之后根据三级映射表的物理地址找到三级映射表,确定三级映射表的索引信息;
获取模块,用于读取所述日志缓存区中所有数据的映射关系,以及所述日志区中所有数据的映射关系;
发送模块,用于向所述CPU发送所述三级映射表的索引信息、所述日志缓存区中所有数据的映射关系,以及所述日志区中所有数据的映射关系;
处理模块,用于当所述存储控制器在所述CPU根据所述三级映射表的索引信息、所述日志缓存区中所有数据的映射关系判断有至少一个数据在所述日志缓存区的映射关系或者在所述日志区中的映射关系与在所述三级映射表中的映射关系不一致时,使用所述至少一个数据在所述日志缓存区的映射关系或者在所述日志区中的映射关系替换掉在所述三级映射表中的映射关系,其中,在替换时,优先使用所述至少一个数据在所述日志缓存区的映射关系进行替换;
所述处理模块,还用于根据刷新后的三级映射表更新二级映射表的索引信息,之后根据更新后的二级映射表更新一级映射表的索引信息,且将更新后的二级映射表中在更新前后发生改变的映射关系保存至所述DRAM。
6.根据权利要求5所述的存储控制器,其特征在于,在所述CPU上电之后,所述发送模块,还用于向所述CPU上报用于反映异常下电的标志位,所述标志位位于所述存储控制器的寄存器,使得所述CPU根据所述标志位判断前次下电是否属于异常下电。
7.根据权利要求5或6所述的存储控制器,其特征在于,所述日志缓存区被划分为n个队列,所述n个队列用Q0至Qn表示,其中,n为大于或等于1的正整数,所述日志区包括至少两个区块,且每个区块对应所述日志缓存区中的一列;
所述存储控制器还包括:
存储模块,用于若所述日志缓存区中目标列的存储空间达到所述第一阈值,则将所述目标列中数据的映射关系存储至所述日志区中目标区块对应的位置,所述目标区块为所述目标列对应的区块。
8.根据权利要求5所述的存储控制器,其特征在于,在所述电子设备正常工作时,所述处理模块,还用于:
若所述三级映射表在刷新后被修改条目的数量达到第三阈值,则根据刷新后的三级映射表刷新二级映射表的索引信息;
若所述二级映射表在刷新后被修改条目的数量达到第四阈值,则根据刷新后的二级映射表更新一级映射表的索引信息。
9.一种电子设备,其特征在于,所述电子设备中包括:中央处理器CPU、如权利要求5至8中任意一项所述的存储控制器、闪存flash、高速非易失性存储器和动态随机存取存储器DRAM,所述高速非易失性存储器中保存有一级映射表和日志缓存区,所述flash中保存有二级映射表、三级映射表和日志区,其中,
所述日志缓存区用于保存在所述电子设备正常工作时,所述CPU在将数据的映射关系写到DRAM的同时,通过所述存储控制器写到所述日志缓存区中所述数据的映射关系;
所述日志区用于在若所述日志缓存区中的存储空间达到第一阈值后,保存所述存储控制器从所述日志缓存区中读取的数据的映射关系;
所述三级映射表的索引信息为数据的映射关系,所述三级映射表用于在所述日志区中的数据达到第二阈值时,所述三级映射表被刷新并保存所述日志区中数据的映射关系;
所述一级映射表的索引信息为所述二级映射表的映射关系;
所述二级映射表的索引信息为所述三级映射表的映射关系;
所述映射关系为逻辑地址与物理地址的对应关系。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610872062.0A CN106502928B (zh) | 2016-09-29 | 2016-09-29 | 一种存储***掉电保护方法、存储控制器及电子设备 |
PCT/CN2017/103249 WO2018059361A1 (zh) | 2016-09-29 | 2017-09-25 | 一种存储***掉电保护方法、存储控制器及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610872062.0A CN106502928B (zh) | 2016-09-29 | 2016-09-29 | 一种存储***掉电保护方法、存储控制器及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502928A CN106502928A (zh) | 2017-03-15 |
CN106502928B true CN106502928B (zh) | 2019-08-20 |
Family
ID=58291240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610872062.0A Active CN106502928B (zh) | 2016-09-29 | 2016-09-29 | 一种存储***掉电保护方法、存储控制器及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106502928B (zh) |
WO (1) | WO2018059361A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502928B (zh) * | 2016-09-29 | 2019-08-20 | 华为技术有限公司 | 一种存储***掉电保护方法、存储控制器及电子设备 |
CN107168888B (zh) * | 2017-05-19 | 2020-06-02 | 惠州佰维存储科技有限公司 | Nand闪存的映射表管理方法及其*** |
KR102430791B1 (ko) * | 2017-07-19 | 2022-08-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
CN107506311B (zh) * | 2017-08-30 | 2020-10-20 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的ftl表的刷写方法及装置 |
CN108228376A (zh) * | 2017-12-29 | 2018-06-29 | 北京联想核芯科技有限公司 | 一种ssd硬盘的数据处理方法和装置 |
CN108647157B (zh) * | 2018-03-14 | 2021-10-01 | 深圳忆联信息***有限公司 | 一种基于相变存储器的映射管理方法及固态硬盘 |
CN108804026B (zh) * | 2018-03-27 | 2022-02-18 | 深圳忆联信息***有限公司 | 一种固态硬盘全盘扫描方法及固态硬盘 |
CN108804033B (zh) * | 2018-05-18 | 2021-04-20 | 记忆科技(深圳)有限公司 | 基于断电重续的全盘扫描方法、装置、计算机设备及介质 |
CN108959589B (zh) * | 2018-07-11 | 2021-08-10 | 中电海康集团有限公司 | 基于stt-mram加速固态存储器件日志文件保存恢复的方法 |
CN109086222B (zh) * | 2018-07-24 | 2023-08-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据恢复方法以及固态硬盘 |
CN109059913B (zh) * | 2018-08-27 | 2021-08-03 | 立得空间信息技术股份有限公司 | 一种用于车载导航***的零延迟组合导航初始化方法 |
CN109213690A (zh) * | 2018-09-21 | 2019-01-15 | 浪潮电子信息产业股份有限公司 | 一种l2p表的重建方法及相关装置 |
CN109684238A (zh) * | 2018-12-19 | 2019-04-26 | 湖南国科微电子股份有限公司 | 一种固态硬盘映射关系的存储方法、读取方法及固态硬盘 |
CN110502452B (zh) * | 2019-07-12 | 2022-03-29 | 华为技术有限公司 | 访问电子设备中的混合缓存的方法及装置 |
CN112346647B (zh) * | 2019-08-06 | 2024-03-29 | 浙江宇视科技有限公司 | 数据存储方法、装置、设备和介质 |
CN110543434B (zh) * | 2019-09-05 | 2022-07-01 | 北京兆易创新科技股份有限公司 | Nand快闪器件、存储表管理方法、设备和存储介质 |
CN111142792B (zh) * | 2019-12-17 | 2022-11-22 | 尧云科技(西安)有限公司 | 一种存储装置的掉电保护方法 |
US11138110B1 (en) * | 2020-04-30 | 2021-10-05 | Sage Microelectronics Corporation | Data management for memory devices |
CN111858508B (zh) * | 2020-06-17 | 2023-01-31 | 远光软件股份有限公司 | 一种日志***的调控方法、装置、存储介质及电子设备 |
CN111832088B (zh) * | 2020-07-13 | 2024-02-13 | 深圳忆联信息***有限公司 | 固态硬盘低功耗模式数据保护方法、装置、计算机设备及存储介质 |
CN112395215B (zh) * | 2020-12-03 | 2024-02-13 | 深圳忆联信息***有限公司 | DRAM-less固态硬盘映射表管理方法、装置、计算机设备及存储介质 |
JP2022114726A (ja) | 2021-01-27 | 2022-08-08 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN113568579B (zh) * | 2021-07-28 | 2022-05-03 | 深圳市高川自动化技术有限公司 | 一种存储器、数据存储方法以及数据读取方法 |
CN114168076A (zh) * | 2021-12-06 | 2022-03-11 | 陕西空天动力研究院有限公司 | 一种数据存储方法、装置及*** |
CN116909493B (zh) * | 2023-09-12 | 2023-11-17 | 合肥康芯威存储技术有限公司 | 一种存储器及其控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
CN103294607A (zh) * | 2012-02-27 | 2013-09-11 | 北京华虹集成电路设计有限责任公司 | 一种存储管理方法 |
CN105511583A (zh) * | 2015-12-02 | 2016-04-20 | 福建星网锐捷网络有限公司 | 用于存储设备的掉电保护电路及方法 |
CN105760313A (zh) * | 2015-08-07 | 2016-07-13 | 深圳市证通金信科技有限公司 | 基于SPI-Flash的文件***的数据处理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101782875B (zh) * | 2010-01-29 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 存储设备和数据存储方法 |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
CN106502928B (zh) * | 2016-09-29 | 2019-08-20 | 华为技术有限公司 | 一种存储***掉电保护方法、存储控制器及电子设备 |
-
2016
- 2016-09-29 CN CN201610872062.0A patent/CN106502928B/zh active Active
-
2017
- 2017-09-25 WO PCT/CN2017/103249 patent/WO2018059361A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294607A (zh) * | 2012-02-27 | 2013-09-11 | 北京华虹集成电路设计有限责任公司 | 一种存储管理方法 |
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
CN105760313A (zh) * | 2015-08-07 | 2016-07-13 | 深圳市证通金信科技有限公司 | 基于SPI-Flash的文件***的数据处理方法及装置 |
CN105511583A (zh) * | 2015-12-02 | 2016-04-20 | 福建星网锐捷网络有限公司 | 用于存储设备的掉电保护电路及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106502928A (zh) | 2017-03-15 |
WO2018059361A1 (zh) | 2018-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502928B (zh) | 一种存储***掉电保护方法、存储控制器及电子设备 | |
US8990538B2 (en) | Managing memory with limited write cycles in heterogeneous memory systems | |
CN106326134B (zh) | Ftl地址映射的方法及装置 | |
CN105243025B (zh) | 一种映射表的形成及加载方法、电子设备 | |
US7861122B2 (en) | Monitoring health of non-volatile memory | |
EP2626792A1 (en) | Wear leveling method, memory device, and information system | |
US20200117368A1 (en) | Method for achieving data copying in ftl of solid state drive, system and solid state drive | |
CN101719099B (zh) | 减小固态硬盘写入放大的方法及装置 | |
Lee et al. | Shortcut-JFS: A write efficient journaling file system for phase change memory | |
CN105224478A (zh) | 一种映射表的形成、更新和恢复方法及电子设备 | |
US8495286B2 (en) | Write buffer for improved DRAM write access patterns | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
JP2013069322A (ja) | マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法 | |
CN103744611A (zh) | 基于固态硬盘为缓存的计算机***及缓存加速方法 | |
US7080220B2 (en) | Page replacement with a re-reference indicator | |
CN108897642A (zh) | 持久性事务内存***中日志机制的优化方法及装置 | |
CN105393228A (zh) | 读写闪存中数据的方法、装置及用户设备 | |
US8417903B2 (en) | Preselect list using hidden pages | |
US7007135B2 (en) | Multi-level cache system with simplified miss/replacement control | |
CN102521144A (zh) | 一种闪存转换层*** | |
CN104778132A (zh) | 一种多核处理器目录缓存替换方法 | |
CN109871337B (zh) | 一种ssd存储媒介切换方法及其*** | |
CN105608014B (zh) | 一种使用mram的存储设备 | |
US11188265B2 (en) | Method for performing storage space management, associated data storage device, and controller thereof | |
WO2022021337A1 (zh) | 闪存控制方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |