CN112634975A - 一种数据存储纠错方法、装置及电子设备 - Google Patents
一种数据存储纠错方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112634975A CN112634975A CN202011546073.2A CN202011546073A CN112634975A CN 112634975 A CN112634975 A CN 112634975A CN 202011546073 A CN202011546073 A CN 202011546073A CN 112634975 A CN112634975 A CN 112634975A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- stored
- block
- data block
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1806—Address conversion or mapping, i.e. logical to physical address
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)
Abstract
本发明实施例提供了一种数据存储纠错方法、装置及电子设备,该方法包括:将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据;根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。通过本发明实施例,实现了固态硬盘在进行数据写入时的纠错能力,提高了该固态硬盘所存储的数据的可靠性。
Description
技术领域
本发明涉及数据存储技术领域,尤其涉及一种数据存储纠错方法、装置及电子设备。
背景技术
当前,NAND闪存技术的发展推动了固态硬盘(Solid State Disk,SSD)产业。SSD的性能不仅取决于NAND闪存的性能,而且在很大程度上收到NAND控制器算法的影响。NAND是一种非易失性存储设备,最小可读取单位叫页(page),最小可擦除的单位叫块(block),一个块往往由很多页构成。在块擦除后,可以对块内的页进行写入操作。写入操作很慢,比读取操作慢得多,而擦除操作又比写入更加慢得多。
现有SSD主要由NAND闪存、用于缓存数据的静态随机存取存储器(Static Random-Access Memory,SRAM),以及一个主控芯片(SSD Controller)所构成。有时候,还需要断电保护***。为了保障整个SSD的写性能,当主控芯片将从主机获取的数据发送给NAND内存后,将不同步等待页编程(NAND PAGE PROGRAM)完毕,主控芯片就会直接返回正确的状态给主机。即主控芯片并未确定数据是否写成功,就已经通知主机,数据已经写成功了。
可见,现有的SSD技术存在着一个致命的问题,在闪存发生了编程失败(PAGEPROGRAM FAIL)的情况时,那么当前页以及它的对偶页(Pair Page)都会造成数据错误。并且该页所属于块的其他页,其数据的正确性也将无法得到保障。从而导致***丢失数据甚至整个文件***的损坏,造成无法评估的损失。
发明内容
本发明实施例的目的是提供一种数据存储纠错方法、装置及电子设备,以解决在闪存发生了编程失败的情况时造成数据错误,并且该页所属于块的其他页,其数据的正确性也将无法得到保障,从而导致***丢失数据甚至整个文件***的损坏的问题。
为了解决上述技术问题,本发明实施例是这样实现的:
第一方面,本发明实施例提供了一种数据存储纠错方法,包括:
将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
第二方面,本发明实施例提供了一种数据存储纠错装置,包括:
数据接收模块,用于将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
数据保存模块,用于根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
数据纠错模块,用于在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如第一方面所述的数据存储纠错方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的数据存储纠错方法步骤。
由以上本发明实施例提供的技术方案可见,本发明实施例通过将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据;根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。通过本发明实施例,实现了固态硬盘在进行数据写入时的纠错能力,提高了该固态硬盘所存储的数据的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据存储纠错方法的一种流程示意图;
图2为本发明实施例提供的固态硬盘的一种结构示意图;
图3为本发明实施例提供的数据映射表的一种映射关系示意图;
图4为本发明实施例提供的数据映射表的又一种映射关系示意图;
图5为本发明实施例提供的数据存储纠错装置的模块组成示意图;
图6为本发明实施例提供的电子设备的结构示意图。
具体实施方式
本发明实施例提供了一种数据存储纠错方法、装置及电子设备。
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1、图2所示,本发明实施例提供一种数据存储纠错方法,该方法的执行主体可以为固态硬盘。该方法具体可以包括以下步骤:
步骤S01、将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器。
如图2所示,本发明实施例的固态硬盘100包括:主控芯片101、第一存储器102、第二存储器103和NAND闪存104。其中,所述第一存储器102为静态随机存取存储器(SRAM),所述第二存储器103为非挥发性的磁性随机存储器(Magnetoresistive Random AccessMemory,MRAM)。与所述固态硬盘100连接的主机200可通过预设的数据接口对所述固态硬盘100进行读/写操作,所述数据接口可以为SATA接口或PCIe总线接口。所述固态硬盘100与所述主机还可以通过无线的方式进行数据传输。
在需要存储数据时,所述主机200可将待存数据通过数据接口发送给固态硬盘100。所述固态硬盘100的主控芯片101则将接收到的待存数据分别保存到第一存储器101和第二存储器102中,将所述第一存储器101中的待存数据称为第一数据,将所述第二存储器102中的待存数据称为第二数据。
步骤S02、根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址。
固态硬盘100的数据映射表以映射项的形式记录了可分配的存储地址,所述映射项具体包括:所述NAND闪存104中的数据块的块号和该数据块下的数据页的页码。从而可根据该数据映射表,确定所述待存数据对应的存储地址,即所述待存数据所述对应的各第一数据块的地址和所述第一数据块下的各第一数据页的地址。以单页的数据量为单位,将所述第一存储器101中的第一数据进行分段,然后依次发送给对应的第一数据块的第一数据页,以对所述第一数据页执行写入操作,即进行页编程操作。如图3所示,所述数据映射表中可为待存数据分配的存储地址为数据块X的第0页到第2N-1页,将第一存储器101中的第一数据分为第0页数据-第2N-1页数据,并依次写入到数据块X的第0页到第2N-1页中。
在将所述第一数据依次写入到对应的第一数据块的第一数据页的过程中,查询各第一数据页的状态,具体可通过相应的状态读取命令进行查询操作,例如,使用READSTATUS命令。
步骤S03、在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
若查询到的所述第一数据页的状态为正确,则继续查询下一个数据页的状态。
而若查询到的所述第一数据页的状态为错误,则判定所述第一数据页的页编程出错,并可认为所述第一数据页所在的第一数据块中保存的数据均存在错误。
从其它的数据块中选择一个好的数据块(goodblock)作为第二数据块。从第二存储器103保存的第二数据中查找到当前所述第一数据块已保存的第一数据所对应的第二数据,并写入到第二数据块中。例如,如图4所示,若所述数据块X当前已保存了第一数据中第0页数据-第N页数据,即所述数据块X中的第0页-第N页中存在相应的第一数据,则从第二存储器103中查找到与所述第一数据中的第0页数据-第N页数据对应的第二数据的第0页数据-第N页数据,并将该部分的第二数据写入到数据块Y的第0页-第N页中。所述第二数据作为备份数据,可以保证数据的准确性。
同时,对所述数据映射表进行更新,将所述数据映射表中的第一数据块的地址改为第二数据块的地址,相当于,为所述待存数据重新分配了新的存储地址,如图4所示,将所述数据映射表中的数据块X改为数据块Y。从而实现的逻辑地址到物理地址的重映射。
进一步的,在所述步骤S03后,所述方法还包括:
步骤S04、根据更新后的数据映射表,将所述第一存储器102的剩余的第一数据写入到所述第二数据块中。
第一存储器102在将第一数据分段发送给第一数据块的第一数据页进行写入操作后,将从所述第一存储器102中删除该第一数据分段。因此,在对所述数据映射表进行更新后,可将所述第一存储器102中剩余的第一数据,发送到对应的第二数据块的第二数据页中进行写入操作。
同理,在对第二数据页进行写入操作的过程中,同样需要对所述第二数据页进行状态查询,并根据状态查询的结果确定是否需要对第二数据块中进行替换。
进一步的,所述在查询得到所述第一数据页的状态为错误的情况下,所述方法还包括:
停止将所述第一存储器102中的第一数据写入到第一数据块中。
由于在查询得到所述第一数据页的状态为错误时,认为所述第一数据块中的数据均出错,因此,若当前所述第一存储器102依然在向所述第一数据块发送第一数据,则先停止所述第一存储器102向第一数据块发送第一数据。待完成对数据映射表的更新后,使所述第一存储器102将剩余的第一数据发送给第二数据块。
而若当前所述第一存储器102已开始向第三数据块发送第一数据,则可以无需要停止所述第一存储器102向所述第三数据块发送第一数据,即无需停止向第三数据块写入数据。
由以上本发明实施例提供的技术方案可见,本发明实施例通过将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据;根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。通过本发明实施例,实现了固态硬盘在进行数据写入时的纠错能力,提高了该固态硬盘所存储的数据的可靠性。
进一步的,所述方法还包括:
在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。
由于任一第一数据页的页编程出现错误都会影响到整个第一数据块的数据,因此,所述第二存储器中可能需要保存整个第一数据块对应的第二数据,即所述第二存储器的容量必须大于等于数据块的容量。
在对所述第一数据块的所有第一数据页进行状态查询后,若所述第一数据块的所有第一数据页的状态均正常,则为了节省所述第二存储器中的空间,可将与所述第一数据块对应的第二数据全部清除或覆盖,而所述第二存储器则重新启动对下一数据块的数据备份。
由以上本发明实施例提供的技术方案可见,本发明实施例通过在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。通过本发明实施例,实现了减少了对MRAM容量的需求,提高了产品的性价比。
对应上述实施例提供的数据存储纠错方法,基于相同的技术构思,本发明实施例还提供了一种数据存储纠错装置,图5为本发明实施例提供的数据存储纠错装置的模块组成示意图,该数据存储纠错装置用于执行图1至图4描述的数据存储纠错方法,如图5所示,该数据存储纠错装置包括:数据接收模块501、数据保存模块502和数据纠错模块503。
所述数据接收模块501用于将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;所述数据保存模块502用于根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;所述数据纠错模块503用于在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
进一步的,所述数据保存模块502,还用于,根据更新后的数据映射表,将所述第一存储器中保存的剩余的第一数据写入到所述第二数据块中。
进一步的,所述数据纠错模块503还用于,停止将所述第一存储器中的第一数据写入到第一数据块中。
由以上本发明实施例提供的技术方案可见,本发明实施例通过通过将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据;根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。通过本发明实施例,实现了固态硬盘在进行数据写入时的纠错能力,提高了该固态硬盘所存储的数据的可靠性。
进一步的,所述装置还包括:数据清除模块,用于在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。
由以上本发明实施例提供的技术方案可见,本发明实施例通过在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。通过本发明实施例,实现了减少了对MRAM容量的需求,提高了产品的性价比。
本发明实施例提供的数据存储纠错装置能够实现上述数据存储纠错方法对应的实施例中的各个过程,为避免重复,这里不再赘述。
需要说明的是,本发明实施例提供的数据存储纠错装置与本发明实施例提供的数据存储纠错方法基于同一发明构思,因此该实施例的具体实施可以参见前述数据存储纠错方法的实施,重复之处不再赘述。
对应上述实施例提供的数据存储纠错方法,基于相同的技术构思,本发明实施例还提供了一种电子设备,该电子设备用于执行上述的数据存储纠错方法,图6为实现本发明各个实施例的一种电子设备的结构示意图,如图6所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在电子设备上执行存储器602中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606。
具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现以下方法步骤:
将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
本申请实施例还提供一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现以下方法步骤:
将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据存储纠错方法,其特征在于,所述方法包括:
将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
2.根据权利要求1所述的数据存储纠错方法,其特征在于,在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址的步骤后,所述方法还包括:
根据更新后的数据映射表,将所述第一存储器中保存的剩余的第一数据写入到所述第二数据块中。
3.根据权利要求1所述的数据存储纠错方法,其特征在于,所述在查询得到所述第一数据页的状态为错误的情况下,所述方法还包括:
停止将所述第一存储器中的第一数据写入到第一数据块中。
4.根据权利要求1所述的数据存储纠错方法,其特征在于,所述方法还包括:
在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。
5.一种数据存储纠错装置,其特征在于,所述装置包括:
数据接收模块,用于将接收到的待存数据分别保存到第一存储器和第二存储器中作为第一数据和第二数据,所述第一存储器为静态随机存取存储器,所述第二存储器为非挥发性的磁性随机存储器;
数据保存模块,用于根据数据映射表为所述待存数据分配存储地址,将所述第一存储器中的第一数据依次写入到第一数据块的第一数据页中,并查询所述第一数据页的状态;所述存储地址包括与所述待存数据对应的第一数据块的地址,以及所述第一数据块下的第一数据页的地址;
数据纠错模块,用于在查询得到所述第一数据页的状态为错误的情况下,将所述第二存储器中保存的与所述第一数据块已写入的第一数据对应的第二数据写入到第二数据块,并在所述数据映射表中将所述第一数据块的地址更新为所述第二数据块的地址。
6.根据权利要求5所述的数据存储纠错装置,其特征在于,所述数据保存模块,还用于,根据更新后的数据映射表,将所述第一存储器中保存的剩余的第一数据写入到所述第二数据块中。
7.根据权利要求5所述的数据存储纠错装置,其特征在于,所述数据纠错模块还用于,停止将所述第一存储器中的第一数据写入到第一数据块中。
8.根据权利要求5所述的数据存储纠错装置,其特征在于,所述装置还包括:数据清除模块,用于在查询得到所述第一数据块下所有的第一数据页的状态均正常时,将所述第二存储器中保存的与所述第一数据块已保存的第一数据对应的第二数据进行清除。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线;其中,所述处理器、所述通信接口以及所述存储器通过总线完成相互间的通信;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现如权利要求1-4任一项所述的数据存储纠错方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4任一项所述的数据存储纠错方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011546073.2A CN112634975A (zh) | 2020-12-24 | 2020-12-24 | 一种数据存储纠错方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011546073.2A CN112634975A (zh) | 2020-12-24 | 2020-12-24 | 一种数据存储纠错方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112634975A true CN112634975A (zh) | 2021-04-09 |
Family
ID=75324361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011546073.2A Pending CN112634975A (zh) | 2020-12-24 | 2020-12-24 | 一种数据存储纠错方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112634975A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114327258A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
TWI811674B (zh) * | 2021-05-06 | 2023-08-11 | 大陸商北京集創北方科技股份有限公司 | 快閃記憶體的操作方法、系統單晶片及資訊處理裝置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131736A1 (en) * | 2008-11-21 | 2010-05-27 | Jae Don Lee | Memory device and method of operation |
US20150143198A1 (en) * | 2013-11-15 | 2015-05-21 | Qualcomm Incorporated | Method and apparatus for multiple-bit dram error recovery |
US20170052708A1 (en) * | 2015-08-21 | 2017-02-23 | Mstar Semiconductor, Inc. | Method for accessing flash memory and associated memory controller and electronic device |
US20180225176A1 (en) * | 2017-02-06 | 2018-08-09 | Samsung Electronics Co., Ltd. | Storage device for processing corrupted metadata and method of operating the same |
US20180307558A1 (en) * | 2017-04-25 | 2018-10-25 | Silicon Motion, Inc. | Data Storage Devices and Methods for Rebuilding a Memory Address Mapping Table |
US20190138445A1 (en) * | 2017-11-03 | 2019-05-09 | Hefei Core Storage Electronic Limited | Mapping table updating method, memory control circuit unit and memory storage device |
-
2020
- 2020-12-24 CN CN202011546073.2A patent/CN112634975A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100131736A1 (en) * | 2008-11-21 | 2010-05-27 | Jae Don Lee | Memory device and method of operation |
US20150143198A1 (en) * | 2013-11-15 | 2015-05-21 | Qualcomm Incorporated | Method and apparatus for multiple-bit dram error recovery |
US20170052708A1 (en) * | 2015-08-21 | 2017-02-23 | Mstar Semiconductor, Inc. | Method for accessing flash memory and associated memory controller and electronic device |
US20180225176A1 (en) * | 2017-02-06 | 2018-08-09 | Samsung Electronics Co., Ltd. | Storage device for processing corrupted metadata and method of operating the same |
US20180307558A1 (en) * | 2017-04-25 | 2018-10-25 | Silicon Motion, Inc. | Data Storage Devices and Methods for Rebuilding a Memory Address Mapping Table |
US20190138445A1 (en) * | 2017-11-03 | 2019-05-09 | Hefei Core Storage Electronic Limited | Mapping table updating method, memory control circuit unit and memory storage device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI811674B (zh) * | 2021-05-06 | 2023-08-11 | 大陸商北京集創北方科技股份有限公司 | 快閃記憶體的操作方法、系統單晶片及資訊處理裝置 |
CN114327258A (zh) * | 2021-11-30 | 2022-04-12 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
WO2023098269A1 (zh) * | 2021-11-30 | 2023-06-08 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及非易失性可读存储介质 |
CN114327258B (zh) * | 2021-11-30 | 2023-08-15 | 苏州浪潮智能科技有限公司 | 一种固态硬盘处理方法、***、设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2920700B1 (en) | Memory segment remapping to address fragmentation | |
US10468077B2 (en) | Adaptive object buffering and meta-data indexing using persistent memory to improve flash memory durability in tiered storage | |
US8650379B2 (en) | Data processing method for nonvolatile memory system | |
US20110320689A1 (en) | Data Storage Devices and Data Management Methods for Processing Mapping Tables | |
CN112634975A (zh) | 一种数据存储纠错方法、装置及电子设备 | |
CN111831215A (zh) | 用于在存储器***中传输映射信息的装置 | |
US20230384947A1 (en) | Dynamic repartition of memory physical address mapping | |
CN114356248A (zh) | 一种数据处理方法和装置 | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
US10942811B2 (en) | Data processing method for solid state drive | |
CN110989931A (zh) | 存储设备坏块处理方法、装置、设备及存储介质 | |
CN117632781A (zh) | 用于共享存储器快照的***、非暂时性计算机可读存储媒体和方法 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN115079957A (zh) | 请求处理方法、装置、控制器、设备及存储介质 | |
CN112083883B (zh) | 存储***以及用于存储***中的方法 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
KR20230081505A (ko) | 메모리 컨트롤러 및 그의 동작 방법 | |
CN110286850B (zh) | 固态硬盘元数据的写入方法、恢复方法及固态硬盘 | |
JP2013196155A (ja) | メモリシステム | |
CN108509295B (zh) | 存储器***的操作方法 | |
US11188265B2 (en) | Method for performing storage space management, associated data storage device, and controller thereof | |
US20240193085A1 (en) | Data Storage Device with Memory Services based on Storage Capacity | |
US11366611B2 (en) | Apparatus for transmitting map information in a memory system | |
US20230305721A1 (en) | Method and apparatus for memory management in memory disaggregation environment | |
CN113703671B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210409 |