CN115248745A - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN115248745A CN115248745A CN202110453763.1A CN202110453763A CN115248745A CN 115248745 A CN115248745 A CN 115248745A CN 202110453763 A CN202110453763 A CN 202110453763A CN 115248745 A CN115248745 A CN 115248745A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- memory device
- memory
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例公开了一种数据处理方法和装置,涉及存储领域,能够提升数据写入的可靠性。具体方案为:处理器向内存发送第一访问请求,并在内存中备份第一数据;所述第一访问请求用于请求在闪存设备中写入第一数据,闪存设备包括缓存Cache和非易失性存储器,第一数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器;在闪存设备复位的情况下,处理器将内存中的备份数据重新写入闪存设备,备份数据包括第一数据。
Description
技术领域
本申请实施例涉及存储领域,尤其涉及一种数据处理方法和装置。
背景技术
目前,计算机系统广泛采用处理中心和存储中心分立的架构,处理中心用于对信息进行高速处理,而存储中心用于存储程序、数据和文件。
图1为一种存储系统的架构示意图,如图1所示,该存储系统包括片上系统(systemon achip,SoC)、闪存设备和内存。SoC包括处理器和闪存Flash控制器,闪存设备包括闪存控制器、缓存Cache和闪存NAND。为了提高数据写入速度,充分利用Cache能力,数据写入时可以采用非可靠写方式。如图2示,以非可靠写方式写入数据时,数据经由内存发送给闪存设备,闪存设备将数据暂存在Cache后立刻返回响应Response给SoC,闪存设备在空闲时再将Cache里的数据下刷到NAND。
但是,该数据处理方法在将数据以非可靠写方式写入Cache并正确返回Response的情况下,如果闪存设备发生掉电或异常复位,由于Cache为易失性存储器,而且SoC并不感知写入数据的存放位置是在Cache还是NAND,因此将造成暂存在Cache里的数据丢失,导致数据处理的可靠性较低。
发明内容
本申请实施例提供一种数据处理方法和装置,能够在确保数据写入速度较快的同时,提高数据写入的可靠性。
为达到上述目的,本申请实施例采用如下技术方案:
本申请实施例的第一方面,提供一种数据处理方法,该方法包括:处理器向内存发送第一访问请求,并在内存中备份第一数据;该第一访问请求用于请求在闪存设备中写入该第一数据,该闪存设备包括缓存Cache和非易失性存储器,第一数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器;在该闪存设备复位的情况下,上述处理器将内存中的备份数据重新写入闪存设备,该备份数据包括上述第一数据。基于本方案,通过在内存中备份以非可靠写方式待写入闪存设备的数据(例如,第一数据),并在闪存设备硬件复位后,将内存中的备份数据重新写入闪存设备,能够避免暂存在Cache中的数据丢失,因此本方案可以提高以非可靠写方式写入数据的可靠性,即本方案在确保数据写入速度较快的同时,能够提高数据写入的可靠性。
结合第一方面,在一种可能的实现方式中,上述处理器将内存中的备份数据重新写入上述闪存设备,包括:处理器将内存中的备份数据重新写入闪存设备的非易失性存储器。基于本方案,闪存设备硬件复位后,处理器在将内存中的备份数据重新写入闪存设备时,可以以可靠写的方式直接写入闪存设备的非易失性存储器,以避免闪存设备频繁复位,造成内存中的备份数据重复多次写入闪存设备,能够降低备份数据的重传次数。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理器将内存中的备份数据重新写入上述闪存设备,包括:处理器将内存中的备份数据重新写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器。基于本方案,闪存设备硬件复位后,处理器在将内存中的备份数据重新写入闪存设备时,可以以非可靠写的方式写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器。
可选的,在将内存中的备份数据重新写入闪存设备时可以以非可靠写的方式先写入闪存设备的Cache再下刷至闪存设备的NAND,也可以直接以可靠写的方式写入闪存设备的NAND。可以理解的,在将内存中的备份数据以非可靠写的方式重新写入闪存设备时,如果闪存设备频繁复位,将造成内存中的备份数据重复多次写入闪存设备,因此可以将内存中的备份数据以可靠写的方式重新写入闪存设备,以降低备份数据重传的次数。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述方法还包括:处理器接收来自闪存设备的第一响应信息,该第一响应信息用于指示备份数据已存储至非易失性存储器,该第一响应信息包括备份数据的逻辑区块地址和大小;基于该第一响应信息,删除内存中的备份数据。基于本方案,在将内存中的备份数据成功写入闪存设备的非易失性存储器的情况下,处理器可以删除内存中的备份数据,不仅可以释放一部分内存资源,还可以使得下次闪存设备复位时,仅将未成功写入非易失性存储器的数据重新写入即可,避免将已经写入非易失性存储器的数据重复写入非易失性存储器。也就是说,本方案中内存中的备份数据为未成功写入闪存设备的非易失性存储器的数据,一旦数据写入闪存设备的非易失性存储器,那么处理器可以将内存中的备份的该写入闪存设备的非易失性存储器的数据删除。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述第一访问请求包括第一目的地址,上述方法还包括:处理器向内存发送第二访问请求,该第二访问请求包括第二目的地址,该第二访问请求用于请求在闪存设备中写入第二数据,该第二数据写入闪存设备时先写入Cache,再由Cache下刷至非易失性存储器;在第二目的地址与第一目的地址相同的情况下,处理器将内存中备份的第一数据替换为第二数据。基于本方案,通过将内存中目的地址相同的待写入数据替换为最新数据,能够节省内存空间。而且通过在内存中备份非可靠写请求待写入的数据,从而能够在闪存设备硬件复位后,将内存中的备份数据重新写入闪存设备,避免暂存在Cache中的数据丢失,可以在确保数据写入速度较快的同时,提高数据写入的可靠性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在上述第一数据从闪存设备的Cache下刷至闪存设备的非易失性存储器的情况下,上述方法还包括:处理器接收来自闪存设备的第二响应信息,该第二响应信息用于指示上述第一数据已存储至闪存设备的非易失性存储器,该第二响应信息包括上述第一数据的逻辑区块地址和大小;处理器基于该第二响应信息,删除所述内存中备份的第一数据。基于本方案,在第一数据以非可靠写方式成功写入闪存设备的非易失性存储器的情况下,通过向处理器发送第二响应信息,使得处理器删除内存中备份的第一数据,从而确保内存中的备份数据为未成功写入非易失性存储器的数据。如此一来,可以在下次闪存设备硬件复位时,仅将未成功写入非易失性存储器的数据重新写入即可,避免将第一数据重复写入非易失性存储器。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述闪存设备为通用闪存UFS、嵌入式闪存卡eMMC,或固态硬盘。基于本方案,闪存设备可以为UFS、eMMC,或固态硬盘等Flash器件,并在该Flash器件硬件复位后,通过将内存中的备份数据重新写入该Flash器件,避免暂存在该Flash器件的Cache中的数据丢失,可以在确保数据写入速度较快的同时,提高数据写入的可靠性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述内存为双倍速率动态随机存取存储器DDR、静态随机存取存储器SRAM或磁性随机存取存储器MRAM。基于本方案,通过处理器在DDR、SRAM或MRAM等类型的内存中备份以非可靠写方式待写入Flash器件的数据,从而能够在Flash器件发生异常时,在Flash器件硬件复位后,将内存中的备份数据重新写入Flash器件,避免暂存在Flash器件的Cache中的数据丢失。因此本方案能够提高以非可靠写方式写入数据的可靠性,即本方案在确保数据写入速度较快的同时,能够提高数据写入的可靠性。
本申请实施例的第二方面,提供一种数据处理装置,该装置包括处理单元和通信单元;处理单元,用于通过通信单元向内存发送第一访问请求,并在内存中备份第一数据;第一访问请求用于请求在闪存设备中写入第一数据,闪存设备包括缓存Cache和非易失性存储器,第一数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器;处理单元,还用于在闪存设备复位的情况下,将内存中的备份数据重新写入闪存设备,该备份数据包括第一数据。
结合第二方面,在一种可能的实现方式中,上述处理单元具体用于将上述备份数据重新写入闪存设备的非易失性存储器。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述处理单元具体用于将上述备份数据重新写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述通信单元,还用于接收来自闪存设备的第一响应信息,该第一响应信息用于指示上述备份数据已存储至闪存设备的非易失性存储器,该第一响应信息包括备份数据的逻辑区块地址和大小;处理单元,还用于基于通信单元接收的第一响应信息,删除内存中的备份数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述第一访问请求包括第一目的地址,上述处理单元,还用于通过上述通信单元向内存发送第二访问请求,该第二访问请求包括第二目的地址,该第二访问请求用于请求在闪存设备中写入第二数据,该第二数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器;上述处理单元,还用于在第二目的地址与第一目的地址相同的情况下,将内存中备份的第一数据替换为第二数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述通信单元,还用于在第一数据从闪存设备的Cache下刷至闪存设备的非易失性存储器的情况下,接收来自闪存设备的第二响应信息,该第二响应信息用于指示上述第一数据已存储至闪存设备的非易失性存储器,该第二响应信息包括所述第一数据的逻辑区块地址和大小;处理单元,还用于基于通信单元接收的第二响应信息,删除内存中备份的第一数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述闪存设备为通用闪存UFS、嵌入式闪存卡eMMC,或固态硬盘。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,上述内存为双倍速率动态随机存取存储器DDR、静态随机存取存储器SRAM或磁性随机存取存储器MRAM。
上述第二方面以及第二方面的各种实现方式的效果描述可以参考第一方面相应效果的描述,在此不再赘述。
本申请实施例的第三方面,提供一种电子设备,该电子设备包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序,使得所述电子设备执行上述第一方面所述的方法。
本申请实施例的第四方面,提供一种芯片,所述芯片包括处理器和接口电路,所述处理器用于通过所述接口电路与其它装置通信,以实现上述第一方面所述的方法。
本申请实施例的第五方面,提供一种数据处理装置,所述数据处理装置包括处理器、内存和闪存设备,所述处理器与所述闪存设备通过所述内存传输数据,以实现上述第一方面所述的方法。
本申请实施例的第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序代码,当所述计算机程序代码在处理器上运行时,使得所述处理器执行上述第一方面所述的方法。
本申请实施例的第七方面,提供了一种计算机程序产品,该程序产品储存有上述处理器执行的计算机软件指令,该计算机软件指令包含用于执行上述第一方面所述方案的程序。
附图说明
图1为本申请实施例提供的一种计算系统的结构示意图;
图2为本申请实施例提供的一种数据处理方法的示意图;
图3为本申请实施例提供的一种数据处理方法的流程示意图;
图4为本申请实施例提供的另一种数据处理方法的示意图;
图5为本申请实施例提供的另一种数据处理方法的流程示意图;
图6为本申请实施例提供的另一种数据处理方法的流程示意图;
图7为本申请实施例提供的另一种数据处理方法的流程示意图;
图8为本申请实施例提供的另一种数据处理方法的流程示意图;
图9为本申请实施例提供的另一种数据处理方法的流程示意图;
图10为本申请实施例提供另一种数据处理装置的组成示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或,a和b和c,其中a、b和c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。比如,本申请实施例中的第一响应信息中的“第一”和第二响应信息中的“第二”仅用于区分不同的响应信息。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
需要说明的是,本申请中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
现代计算机系统广泛采用冯诺依曼体系,即处理中心和存储中心分立,处理中心对信息进行高速处理,而存储中心用于存储程序、数据和文件。随着半导体工艺节点的演进,处理中心的性能和速度已到达GHz量级,而存储中心受限于其物理原理和固有属性,无法在规模或者速度上与处理中心匹配。
一般计算机系统可以通过采用多级存储结构,来满足存储器件的性能、容量和成本指标,以弥补处理中心和存储中心之间巨大的性能鸿沟。多级存储结构一般包括高速缓存Cache、处理器可直接寻址的内存和大容量外存。
示例性的,图1为一种计算系统的结构示意图。如图1所示,该计算系统采用多级存储结构,该计算系统包括SoC、闪存设备(例如,Flash器件)和处理器可直接寻址的内存。其中,SoC和闪存设备通过内存传输数据。
可选的,SoC作为处理器,可以包括中央处理器(central processing unit,CPU)和闪存控制器。闪存设备作为外存,该闪存设备为一个微型计算机系统,可以由闪存控制器、缓存Cache和非易失性存储器件(例如,闪存NAND Flash)组成。内存可以为动态随机存取存储器(double data rate dynamic random access memory,DDR)。该内存的容量可以远大于闪存设备中缓存Cache的容量。
示例性的,由于高速缓冲存储器Cache的存取速度较快,为了提高数据写入速度,充分利用Cache能力,数据写入时可以采用非可靠写方式。如图2所示,以非可靠写方式在闪存设备中写入数据时,可以包括以下三个步骤。
步骤1:CPU将非可靠写数据经DDR发送给闪存设备;
步骤2:闪存设备将非可靠写数据暂存在缓存Cache后立刻返回响应Response给SoC;
步骤3:闪存设备空闲时将缓存Cache中的非可靠写数据下刷到NAND。
由于缓存Cache的写入速度远高于NAND的写入速度,通过将非可靠写方式待写入的数据暂时存放在缓存Cache,再异步下刷至NAND,能够提升数据的写入速度。但是,该数据处理方法在将数据以非可靠写方式写入Cache并正确返回响应Response的情况下,如果闪存器件发生掉电或异常复位,由于SoC并不感知写入数据的存放位置是在Cache还是NAND,因此SoC接收响应Response后认为写数据完成,故闪存器件发生掉电或异常复位后,SoC不会重新发送非可靠写数据,这将造成暂存在易失性存储器Cache中的非可靠写数据丢失,导致数据处理的可靠性较低。
示例性的,图3为一种数据处理方法,如图3所示,在非可靠写命令组包后,由SoC发送该非可靠写命令,并等待该非可靠写命令完成。在该非可靠写命令未完成且未超时的情况下,处理器一直等待该非可靠写命令完成。在该非可靠写命令完成或者超时仍未完成的情况下,硬件中断检查命令执行的结果。如果非可靠写命令执行成功(例如,数据成功写入闪存设备的缓存Cache中),那么该非可靠写命令执行结束。如果非可靠写命令执行异常,则根据返回的响应Response信息,确定Flash器件是否异常。若非Flash器件问题(即Flash器件正常),则SoC重新发送该非可靠写命令。若确认Flash器件异常,则SoC发送复位指令,复位Flash器件。Flash器件复位后,将造成所有暂存在易失性存储器Cache中的数据丢失。SoC可以进一步判断是否需要重传数据,如果确定需要重传,SoC重传传输异常的数据。
例如,结合图3,如图4所示,该数据处理方法包括:步骤1:SoC将数据D1以非可靠写方式发送给闪存设备;步骤2:闪存设备将D1暂存到Cache后立即返回Response给SoC,即数据D1写入成功;步骤3:SoC将数据D2以非可靠写方式发送给闪存设备;步骤4:闪存设备发生异常,无法成功返回Response给SoC;步骤5:SoC识别闪存设备异常,发送器件复位命令;步骤6:闪存设备复位,导致暂存在Cache中的D1和D2全部丢失;步骤7:SoC重传D2;步骤8:D2传输成功之后返回Response给SoC。
图4所示的数据处理方法中,在闪存设备复位后,SoC只会重传传输异常的非可靠写数据D2,而不会重传非可靠写数据D1,造成非可靠写数据D1丢失。即该SoC重传机制只能恢复传输异常的数据,而已经写入Cache但未下刷至Nand的数据在闪存设备复位的时候会丢失。
另一种数据处理方法,在图4中的步骤5发送器件复位命令之前,可以先发送SyncCache命令,Sync Cache命令用于将Cache里的数据下刷到NAND。但是,当闪存设备异常时,Sync Cache命令大概率无法执行成功,因此仍然存在数据丢失风险。
为了缓解现有技术中以非可靠写方式将数据写入闪存设备时,存在数据丢失风险,导致数据的可靠性较低的问题,本申请实施例提供一种数据处理方法,该方法能够提升数据写入的可靠性。
本申请实施例提供的数据处理方法,应用于图1所示的计算系统,结合图1,如图5所示,本申请实施例提供的数据处理方法包括以下步骤:
S501、处理器向内存发送第一访问请求,并在内存中备份第一数据。
该第一访问请求用于请求在闪存设备中写入该第一数据。闪存设备包括缓存Cache和非易失性存储器,该第一数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器。即,第一数据是以非可靠写的方式写入闪存设备的,该第一数据可以成为非可靠写数据。上述处理器和闪存设备之间可以通过内存传输数据。
可选的,上述第一访问请求中可以包括第一标识,该第一标识用于指示第一访问请求为非可靠写请求,该非可靠写请求在闪存设备中写入数据时,先将数据写入闪存设备的Cache,再在闪存设备空闲时将闪存设备的Cache中的数据下刷到闪存设备的非易失性存储器NAND中。即非可靠写请求待写入的数据(也可以称为,非可靠写数据)可以暂时存放在缓存Cache中,以提高数据的写入速度。需要说明的是,本申请实施例对于非易失性存储器的具体类型并不限定,下述实施例以非易失性存储器为NAND为例进行说明。
可选的,将Cache中的数据下刷到NAND是指将Cache中的数据发给NAND,并存储在NAND中,Cache中的数据下刷至NAND后,Cache中的数据被清除。
可选的,本申请实施例中SoC向内存发送非可靠写请求时,会在内存中备份该非可靠写请求待写入的数据。闪存设备的缓存Cache中存放的数据在内存中均已备份,内存的容量可以远大于闪存设备的缓存Cache的容量,内存中备份的非可靠写请求待写入的数据所占的内存空间不超过总内存空间的1%。
例如,通过在内存中分配一段存储空间,该存储空间的大小大于或等于闪存设备的缓存Cache容量,按照访问请求的下发顺序依次在分配的内存中备份非可靠写请求待写入的数据。比如,内存中分配的用于存储备份数据的存储空间可以小于1MB。
可选的,内存容量可以大于或等于闪存设备的缓存Cache容量的100倍。
示例性的,内存可以为双倍速率动态随机存取存储器(double data ratedynamic random access memory,DDR)、静态随机存取存储器(static random accessmemory,SRAM)或磁性随机存取存储器(magnetoresistive random access memory,MRAM)等存储器。
示例性的,闪存设备可以为通用闪存(universal flash storage,UFS)、嵌入式闪存卡(embedded multi_media card,eMMC)或固态硬盘等存储设备。
S502、在闪存设备复位的情况下,处理器将内存中的备份数据重新写入闪存设备。
该内存中的备份数据包括第一数据。可选的,内存中的备份数据还可以包括已写入闪存设备的Cache但未下刷至闪存设备的非易失性存储器的数据。
示例性的,上述步骤S502中的闪存设备复位是指复位整个闪存设备,而不是复位闪存设备中的部分模块。例如,处理器确定闪存设备故障时,发送复位命令,对闪存设备进行硬件复位。
可选的,上述步骤S502之前还可以包括,处理器确定第一数据是否写入成功,如果数据写入失败,处理器确定闪存设备是否异常,若闪存设备正常,则处理器重新发送第一访问请求。若闪存设备异常,处理器发送器件复位命令将闪存设备复位。可以理解的,对于每一个访问请求,处理器都可以检查命令是否执行成功,如果发生需要复位闪存设备才能修复的异常,那么处理器对闪存设备进行硬件复位。
当处理器对闪存设备进行硬件复位后,由于缓存Cache为易失性存储器,因此闪存设备的复位将导致暂存在Cache中的数据全部丢失。但是,本申请实施例通过在内存中备份非可靠写数据,从而在闪存设备复位后,处理器可以将内存中的备份数据重新写入闪存设备,以避免暂存在Cache中的数据丢失。
示例性的,第一种实现方式中,上述处理器将内存中的备份数据重新写入闪存设备,包括:处理器将备份数据重新写入Cache,再由Cache下刷至非易失性存储器。在该实现方式中,通过将内存中的备份数据重新以非可靠写的方式写入闪存设备,可以避免暂存在Cache中的数据丢失,能够在确保数据写入速度较快的同时,提高数据写入的可靠性。
示例性的,第二种实现方式中,上述处理器将内存中的备份数据重新写入闪存设备,包括:处理器将内存中的备份数据重新写入非易失性存储器。在该实现方式中,通过将内存中的备份数据重新以可靠写的方式写入闪存设备的非易失性存储器,可以避免暂存在Cache中的数据丢失,能够在确保数据写入速度较快的同时,提高数据写入的可靠性。
上述两种实现方式的区别在于,在将内存中的备份数据重新写入闪存设备时是以非可靠写的方式先写入Cache再下刷至NAND,还是直接以可靠写的方式写入NAND。可以理解的,在将内存中的备份数据以非可靠写的方式重新写入闪存设备时,如果闪存设备频繁复位,将造成内存中的备份数据重复多次写入闪存设备,因此可以将内存中的备份数据以可靠写的方式重新写入闪存设备,以降低备份数据重传的次数。
可以理解的,本申请实施例提供的数据处理方法,通过在内存中备份非可靠写请求待写入的数据,从而能够在闪存设备发生异常时,在闪存设备硬件复位后,将内存中的备份数据重新写入闪存设备,能够避免暂存在Cache中的数据丢失,提高以非可靠写方式写入数据的可靠性。即本方案在确保数据写入速度较快的同时,能够提高数据写入的可靠性。
可选的,本申请实施例还提供一种数据处理方法,如图6所示,在上述步骤S501-S502之后,该方法还可以包括步骤S503-S505。
S503、闪存设备向处理器发送第一响应信息。
该第一响应信息用于指示内存中的备份数据已存储至非易失性存储器,该第一响应信息包括备份数据的逻辑区块地址(logical block address,LBA)和大小。
可选的,若上述步骤S502中处理器将内存中的备份数据以非可靠写的方式重新写入闪存设备,那么在该备份数据从闪存设备的Cache下刷至闪存设备的非易失性存储器的情况下,闪存设备可以向处理器发送第一响应信息。
可选的,若上述步骤S502中处理器将内存中的备份数据以可靠写的方式重新写入闪存设备,那么在内存中的备份数据成功写入闪存设备的非易失性存储器的情况下,闪存设备可以向处理器发送第一响应信息。
可选的,上述步骤S503可以是由闪存设备中的闪存控制器向处理器发送第一响应消息。例如,在备份数据从闪存设备的Cache下刷至闪存设备的NAND的情况下,闪存控制器向处理器发送第一响应消息,指示内存中的备份数据已存储至NAND。再例如,在备份数据成功写入闪存设备的NAND的情况下,闪存控制器向处理器发送第一响应消息,指示内存中的备份数据已存储至NAND。
S504、处理器接收第一响应信息。
S505、处理器基于第一响应信息,删除内存中的备份数据。
可选的,处理器可以基于第一响应信息中的LBA和大小,删除内存中的备份数据。
可以理解的,本申请实施例在将内存中的备份数据成功写入非易失性存储器的情况下,通过删除内存中的备份数据,不仅可以释放一部分内存资源,而且可以在下次闪存设备复位时,仅将未成功写入非易失性存储器的数据重新写入即可,避免将已经写入非易失性存储器的数据重复写入非易失性存储器。
可选的,本申请实施例中内存中的备份数据为未成功写入闪存设备的NAND的数据。例如,内存中的备份数据既包括未成功写入闪存设备的Cache的数据,又包括写入闪存设备的Cache但未下刷至闪存设备的NAND的数据。当以非可靠写方式在闪存设备中写入数据时,如果Cache中的数据下刷至NAND,那么闪存设备可以向处理器发送响应信息,处理器可以将内存中的备份数据删除,因此不仅不能节省内存空间,而且能够确保内存中的备份数据为为未成功写入非易失性存储器的数据,避免在闪存设备复位时,将已经写入非易失性存储器的数据重复写入非易失性存储器。
可选的,本申请实施例还提供一种数据处理方法,如图7所示,该方法在上述步骤S501之后还可以包括步骤S506-S507。
S506、处理器向内存发送第二访问请求。
第二访问请求包括第二目的地址,该第二访问请求用于请求在闪存设备中写入第二数据,该第二数据写入闪存设备时先写入闪存设备的Cache,再由闪存设备的Cache下刷至闪存设备的非易失性存储器。
S507、在第二目的地址与第一目的地址相同的情况下,处理器将内存中备份的第一数据替换第二数据。
该第二目的地址为第二访问请求待访问的目的地址。该第一目的地址为第一访问请求待访问的目的地址。
处理器在内存中备份非可靠写数据时,可以按照命令下发的顺序依次在内存中备份,而且如果不同访问请求待访问的目的地址相同,那么处理器可以将目的地址相同的数据替换,保留最新数据,从而能够节省内存空间。
可选的,处理器在将内存中备份的第一数据替换为第二数据时,该第一数据可以未写入Cache,也可以写入Cache但未下刷至NAND。即处理器在备份数据时,对于同一个待访问的目的地址,可以仅在内存中保留最新的待写入数据,从而节省内存空间。
可以理解的,本实施例通过将内存中目的地址相同的待写入数据替换为最新数据,能够节省内存空间。而且通过在内存中备份非可靠写请求待写入的数据,从而能够在闪存设备硬件复位后,将内存中的备份数据重新写入闪存设备,避免暂存在Cache中的数据丢失,提高以非可靠写方式写入数据的可靠性。即本方案在确保数据写入速度较快的同时,能够提高数据写入的可靠性。
可选的,本申请实施例还提供一种数据处理方法,如图8所示,在第一数据从Cache下刷至非易失性存储器的情况下,在上述步骤S501之后还可以包括步骤S508-S510。
S508、闪存设备向处理器发送第二响应信息。
该第二响应信息用于指示第二数据已存储至非易失性存储器,该第二响应信息包括第一数据的LBA和大小。
S509、处理器接收第二响应信息。
S510、处理器基于第二响应信息,删除内存中备份的第一数据。
可选的,处理器可以基于第二响应信息中的LBA和大小,删除内存中备份的第一数据。
可以理解的,本申请实施例在第一数据以非可靠写方式成功写入闪存设备的非易失性存储器的情况下,通过向处理器发送第二响应信息,处理器删除内存中备份的第一数据,不仅可以释放一部分内存资源,而且可以确保内存中的备份数据为未成功写入非易失性存储器的数据。如此一来,在下次闪存设备硬件复位时,仅将未成功写入非易失性存储器的数据重新写入即可,避免将第一数据重复写入非易失性存储器。
示例性的,图9为本申请实施例提供的另一种数据处理方法,如图9所示,在非可靠写命令组包后,由SoC向内存发送该非可靠写命令,并在内存中备份该非可靠写命令待写入的数据,SoC等待该非可靠写命令完成。在该非可靠写命令未完成且未超时的情况下,处理器一直等待该非可靠写命令完成。在该非可靠写命令完成或者超时仍未完成的情况下,硬件中断检查命令执行的结果。如果非可靠写命令执行成功(例如,数据成功写入闪存设备的缓存Cache中),那么该非可靠写命令执行结束。如果非可靠写命令执行异常(例如,数据未写入闪存设备的缓存Cache中),则根据返回的响应Response信息,确定闪存设备是否异常。若非闪存设备问题(即闪存设备正常),则SoC重新发送该非可靠写命令。若确认闪存设备异常,则SoC发送复位指令,复位闪存设备。闪存设备复位后,将造成所有暂存在易失性存储器Cache中的数据丢失。因此,闪存设备复位后SoC可以将内存中备份的数据重新写入闪存设备。
上述主要从方法步骤的角度对本发明实施例提供的方案进行了介绍。可以理解的是,计算机为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件和计算机软件的结合形式来实现。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本申请实施例可以根据上述方法示例对处理器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图10为本申请实施例提供的一种数据处理装置的结构示意图,如图10所示,该数据处理装置500包括:处理单元501和通信单元502。处理单元501用于通过通信单元502执行图5中的S501-S502,或图6中的S501-S502、S504-S505,或,图7中的S501-S502、S504-S505、S506-S507,或图8中的S501、S509-S510。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,上述处理单元501可以为处理器,通信单元502可以为接口电路,处理器可以通过接口电路与其他设备通信,处理器用于执行上述图5至图9中任一实施例所示的数据处理方法。处理器可以是CPU,也可以是其他硬件,如现场可编程门阵列(Field-Programmable Gate Array,FPGA)等,或者两者的组合。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序代码,当上述处理器执行该计算机程序代码时,电子设备执行图5至图9中任一实施例所示的数据处理方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行图5至图9中任一实施例所示的数据处理方法。
本申请实施例还提供一种数据处理装置,该数据处理装置包括处理器、内存和闪存设备,所述处理器与所述闪存设备通过所述内存传输数据,以实现如图5至图9中任一实施例所示的数据处理方法。
本申请实施例还提供一种电子设备,该电子设备包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序,使得所述电子设备实现如图5至图9中任一实施例所示的数据处理方法。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electricallyEPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (20)
1.一种数据处理方法,其特征在于,所述方法包括:
处理器向内存发送第一访问请求,并在所述内存中备份第一数据;所述第一访问请求用于请求在闪存设备中写入所述第一数据,所述闪存设备包括缓存Cache和非易失性存储器,所述第一数据写入所述闪存设备时先写入所述Cache,再由所述Cache下刷至所述非易失性存储器;
在所述闪存设备复位的情况下,所述处理器将所述内存中的备份数据重新写入所述闪存设备,所述备份数据包括所述第一数据。
2.根据权利要求1所述的方法,其特征在于,所述处理器将所述内存中的备份数据重新写入所述闪存设备,包括:
所述处理器将所述备份数据重新写入所述非易失性存储器。
3.根据权利要求1所述的方法,其特征在于,所述处理器将所述内存中的备份数据重新写入所述闪存设备,包括:
所述处理器将所述备份数据重新写入所述Cache,再由所述Cache下刷至所述非易失性存储器。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
处理器接收来自所述闪存设备的第一响应信息,所述第一响应信息用于指示所述备份数据已存储至所述非易失性存储器,所述第一响应信息包括所述备份数据的逻辑区块地址和大小;
基于所述第一响应信息,删除所述内存中的所述备份数据。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述第一访问请求包括第一目的地址,所述方法还包括:
所述处理器向内存发送第二访问请求,所述第二访问请求包括第二目的地址,所述第二访问请求用于请求在闪存设备中写入第二数据,所述第二数据写入所述闪存设备时先写入所述Cache,再由所述Cache下刷至所述非易失性存储器;
在所述第二目的地址与所述第一目的地址相同的情况下,所述处理器将所述内存中备份的所述第一数据替换为所述第二数据。
6.根据权利要求1所述的方法,其特征在于,在所述第一数据从所述Cache下刷至所述非易失性存储器的情况下,所述方法还包括:
所述处理器接收来自所述闪存设备的第二响应信息,所述第二响应信息用于指示所述第一数据已存储至所述非易失性存储器,所述第二响应信息包括所述第一数据的逻辑区块地址和大小;
所述处理器基于所述第二响应信息,删除所述内存中备份的所述第一数据。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述闪存设备为通用闪存UFS、嵌入式闪存卡eMMC,或固态硬盘。
8.根据权利要求1-7中任一项所述的方法,其特征在于,所述内存为双倍速率动态随机存取存储器DDR、静态随机存取存储器SRAM或磁性随机存取存储器MRAM。
9.一种数据处理装置,其特征在于,所述装置包括处理单元和通信单元;
所述处理单元,用于通过所述通信单元向内存发送第一访问请求,并在所述内存中备份第一数据;所述第一访问请求用于请求在闪存设备中写入所述第一数据,所述闪存设备包括缓存Cache和非易失性存储器,所述第一数据写入所述闪存设备时先写入所述Cache,再由所述Cache下刷至所述非易失性存储器;
所述处理单元,还用于在所述闪存设备复位的情况下,将所述内存中的备份数据重新写入所述闪存设备,所述备份数据包括所述第一数据。
10.根据权利要求9所述的装置,其特征在于,所述处理单元具体用于将所述备份数据重新写入所述非易失性存储器。
11.根据权利要求9所述的装置,其特征在于,所述处理单元具体用于将所述备份数据重新写入所述Cache,再由所述Cache下刷至所述非易失性存储器。
12.根据权利要求10或11所述的装置,其特征在于,
所述通信单元,还用于接收来自所述闪存设备的第一响应信息,所述第一响应信息用于指示所述备份数据已存储至所述非易失性存储器,所述第一响应信息包括所述备份数据的逻辑区块地址和大小;
所述处理单元,还用于基于所述通信单元接收的所述第一响应信息,删除所述内存中的所述备份数据。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述第一访问请求包括第一目的地址,
所述处理单元,还用于通过所述通信单元向内存发送第二访问请求,所述第二访问请求包括第二目的地址,所述第二访问请求用于请求在闪存设备中写入第二数据,所述第二数据写入所述闪存设备时先写入所述Cache,再由所述Cache下刷至所述非易失性存储器;
所述处理单元,还用于在所述第二目的地址与所述第一目的地址相同的情况下,将所述内存中备份的所述第一数据替换为所述第二数据。
14.根据权利要求9所述的装置,其特征在于,
所述通信单元,还用于在所述第一数据从所述Cache下刷至所述非易失性存储器的情况下,接收来自所述闪存设备的第二响应信息,所述第二响应信息用于指示所述第一数据已存储至所述非易失性存储器,所述第二响应信息包括所述第一数据的逻辑区块地址和大小;
所述处理单元,还用于基于所述通信单元接收的所述第二响应信息,删除所述内存中备份的所述第一数据。
15.根据权利要求9-14中任一项所述的装置,其特征在于,所述闪存设备为通用闪存UFS、嵌入式闪存卡eMMC,或固态硬盘。
16.根据权利要求9-15中任一项所述的装置,其特征在于,所述内存为双倍速率动态随机存取存储器DDR、静态随机存取存储器SRAM或磁性随机存取存储器MRAM。
17.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序,使得所述电子设备实现如权利要求1-8中任一项所述的方法。
18.一种数据处理装置,其特征在于,所述数据处理装置包括处理器、内存和闪存设备,所述处理器与所述闪存设备通过所述内存传输数据,以实现如权利要求1-8中任一项所述的方法。
19.一种计算机可读存储介质,所述计算机可读存储介质中具有计算机程序代码,其特征在于,当所述计算机程序代码在处理器上运行时,使得所述处理器执行如权利要求1-8中任一项所述的方法。
20.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453763.1A CN115248745A (zh) | 2021-04-26 | 2021-04-26 | 一种数据处理方法和装置 |
PCT/CN2022/086422 WO2022228116A1 (zh) | 2021-04-26 | 2022-04-12 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110453763.1A CN115248745A (zh) | 2021-04-26 | 2021-04-26 | 一种数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115248745A true CN115248745A (zh) | 2022-10-28 |
Family
ID=83696912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110453763.1A Pending CN115248745A (zh) | 2021-04-26 | 2021-04-26 | 一种数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115248745A (zh) |
WO (1) | WO2022228116A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116643915A (zh) * | 2023-05-08 | 2023-08-25 | 西安秦派能智能科技有限公司 | 手机芯片数据恢复方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10489313B2 (en) * | 2016-10-31 | 2019-11-26 | Alibaba Group Holding Limited | Flash storage failure rate reduction and hyperscale infrastructure robustness enhancement through the MRAM-NOR flash based cache architecture |
CN106897231B (zh) * | 2017-02-28 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于高性能存储介质的数据缓存方法及系统 |
CN108255437B (zh) * | 2018-01-26 | 2021-03-02 | 国科美国研究实验室 | 数据贮存装置及方法 |
CN110896406A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 数据存储方法、装置及服务器 |
CN110673978B (zh) * | 2019-09-29 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种双控集群掉电后的数据恢复方法及相关装置 |
-
2021
- 2021-04-26 CN CN202110453763.1A patent/CN115248745A/zh active Pending
-
2022
- 2022-04-12 WO PCT/CN2022/086422 patent/WO2022228116A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2022228116A1 (zh) | 2022-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213440B (zh) | 存储器系统、存储器控制器及其操作方法 | |
KR102042904B1 (ko) | 비차단 제어 업데이트 동작을 수행하도록 구성되는 데이터 저장 디바이스 | |
US9772802B2 (en) | Solid-state device management | |
US10891078B2 (en) | Storage device with a callback response | |
US8356149B2 (en) | Memory migration | |
US11200003B2 (en) | Bounded latency and command non service methods and apparatus | |
CN103885895A (zh) | 容错集群存储系统中的写入性能 | |
US11422703B2 (en) | Data updating technology | |
US11275525B2 (en) | Apparatus and method for improving write throughput of memory system | |
US20040093454A1 (en) | USB endpoint controller flexible memory management | |
US20130111103A1 (en) | High-speed synchronous writes to persistent storage | |
CN111722793A (zh) | 开放通道存储设备的操作方法 | |
CN110865770B (zh) | 存储器系统 | |
US20190163493A1 (en) | Methods, systems and devices for recovering from corruptions in data processing units | |
CN107870868B (zh) | 存储装置和存储系统 | |
CN110928807A (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN111755039A (zh) | 在恢复进程期间减少存储器系统中单元干扰的设备及方法 | |
CN111752474A (zh) | 控制存储器系统的写入操作的设备和方法 | |
CN112667416A (zh) | 一种基于rdma的非易失内存系统的通信方法及服务器 | |
TWI704456B (zh) | 資料儲存裝置與資料存取方法 | |
WO2022228116A1 (zh) | 一种数据处理方法和装置 | |
WO2011151406A1 (en) | Asynchronous bad block management in nand flash memory | |
US10528426B2 (en) | Methods, systems and devices for recovering from corruptions in data processing units in non-volatile memory devices | |
US20200125435A1 (en) | Data storage device with deadlock recovery capabilities | |
US11340826B2 (en) | Systems and methods for strong write consistency when replicating data |
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 |