CN109002265B - 一种数据处理的方法以及相关装置 - Google Patents
一种数据处理的方法以及相关装置 Download PDFInfo
- Publication number
- CN109002265B CN109002265B CN201810837094.6A CN201810837094A CN109002265B CN 109002265 B CN109002265 B CN 109002265B CN 201810837094 A CN201810837094 A CN 201810837094A CN 109002265 B CN109002265 B CN 109002265B
- Authority
- CN
- China
- Prior art keywords
- information
- storage area
- control chip
- main control
- subcontext
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一种数据处理的方法,包括:当目标数据写入第一存储区域失败时,主控芯片将目标数据写入至第二存储区域;主控芯片从第二存储区域中读取目标上下文信息;主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息;主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息。本发明实施例还公开了一种数据处理装置。本发明实施例中提供了一种方法,实现了在出现写错误时,可以对数据进行处理,使得数据可以成功存储至闪存芯片中,保证用户存储数据的完整性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理的方法以及相关装置。
背景技术
随着互联网、云计算、物联网以及大数据等技术的发展及广泛应用,每时每刻都需要对海量数据进行处理和存储,因此,对存储系统的性能提出了更高的要求。而固态硬盘(Solid State Drives,SSD)因为其具有读写速度快以及能耗低等特点,被广泛的应用。
在SSD中重要的组成部分是与非型(Nand Flash)颗粒,Nand Flash颗粒具有容量大、写入快等特性,但是存在着存储性能不稳定以及寿命相对较短的缺点,在SSD的读写操作中,由Nand Flash颗粒导致的读写错误是难以避免的。一旦发生了写错误,在不做相应的处理的情况下会丢失数据,从而给用户带来不可挽回的损失。
发明内容
本发明实施例提供了一种数据处理的方法以及相关装置,实现了当写错误发生时,对写错数据的重写操作,降低了数据丢失的概率。
有鉴于此,本发明第一方面提供了一种数据处理的方法,包括:
当目标数据写入第一存储区域失败时,主控芯片将所述目标数据写入至第二存储区域;
所述主控芯片从所述第二存储区域中读取目标上下文信息,所述目标上下文信息包括所述目标数据以及所述目标数据的地址信息;
所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及所述第一子数据所对应的地址信息;
所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息。
结合本发明实施例的第一方面,在第一方面的第一种可能的实现方式中,所述第一子数据所对应的地址信息包括所述第一子数据所对应的逻辑地址;
所述方法还包括:
所述主控芯片将所述目标数据对应的逻辑地址写入所述第二存储区域;
所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
所述主控芯片对所述目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址。
结合本发明实施例的第一方面,在第一方面的第二种可能的实现方式中,所述目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,所述第一物理地址为存储于所述第二存储区域中所述目标数据所对应的物理地址,所述第二物理地址为所述第一存储区域中出现写入失败所对应的物理地址;
所述第一子数据所对应的地址信息包括所述第一子数据所对应的第一物理地址;
所述方法还包括:
所述主控芯片将所述目标数据对应的第一物理地址写入所述第二存储区域;
所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
所述主控芯片对所述目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
结合本发明实施例的第一方面的第二种可能的实现方式,本发明实施例的第一方面的第三种可能的实现方式中,以使所述第一存储区域存储所述多个第一子上下文信息,包括:
所述主控芯片在目标周期内向所述第一存储区域发送一个写入请求,以使所述第一存储区域存储一个所述第一子上下文信息;
或,
所述主控芯片在所述目标周期内向所述第一存储区域发送多个写入请求,以使所述第一存储区域存储多个所述第一子上下文信息。
结合本发明实施例的第一方面至第一方面的第三种可能的实现方式中的任一种实现方式,本发明实施例的第一方面的第四种可能的实现方式中,其特征在于,所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息之后,所述方法还包括:
1)所述主控芯片判断第一子上下文信息是否在所述第一存储区域中存储成功,其中,所述第一子上下文信息为所述多个第一子上下文信息中的任意一个信息;
2)若所述第一子上下文信息已在所述第一存储区域中存储成功,则所述主控芯片删除存储于所述第二存储区域的所述第一子上下文信息;
重复执行步骤1)和步骤2),直至所述主控芯片从所述第一存储区域删除所述多个第一子上下文信息。
本发明第二方面提供了一种数据处理装置,所述数据读取装置包括:
写入模块,用于当目标数据写入第一存储区域失败时,主控芯片将所述目标数据写入至第二存储区域;
读取模块,用于所述主控芯片从所述第二存储区域中读取目标上下文信息,所述目标上下文信息包括所述目标数据以及所述目标数据的地址信息;
错误处理模块,用于所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及所述第一子数据所对应的地址信息;
发送模块,用于所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息。
结合本发明实施例的第二方面,在第二方面的第一种可能的实施例中,提供了一种数据处理装置,包括:
写入模块,还用于所述主控芯片将所述目标数据对应的逻辑地址写入所述第二存储区域;
错误处理模块,还用于所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
主控芯片对所述目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址。
结合本发明实施例的第二方面可能的实施例,第二方面的第二种可能的实施例中,提供了一种数据处理装置,包括:
所述目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,所述第一物理地址为存储于所述第二存储区域中所述目标数据所对应的物理地址,所述第二物理地址为所述第一存储区域中出现写入失败所对应的物理地址;
所述第一子数据所对应的地址信息包括所述第一子数据所对应的第一物理地址;
写入模块,还用于所述主控芯片将所述目标数据对应的第一物理地址写入所述第二存储区域;
错误处理模块,用于所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
错误处理模块,具体用于所述主控芯片对所述目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
结合本发明实施例的第二方面的第二种可能的实施例,第二方面的第三种可能的实施例中,提供了一种数据处理装置,包括:
发送模块,还用于在目标周期内向所述第一存储区域发送一个写入请求,以使所述第一存储区域存储一个所述第一子上下文信息;
或,
发送模块,还用于在所述目标周期内向所述第一存储区域发送多个写入请求,以使所述第一存储区域存储多个所述第一子上下文信息。
结合本发明实施例的第二方面至第二方面的第三种可能的实现方式中的任一种实现方式,本发明实施例的第二方面的第四种可能的实现方式中所述数据处理装置,包括:
错误处理模块,还用于:
1)所述主控芯片判断第一子上下文信息是否在所述第一存储区域中存储成功,其中,所述第一子上下文信息为所述多个第一子上下文信息中的任意一个信息;
2)若所述第一子上下文信息已在所述第一存储区域中存储成功,则所述主控芯片删除存储于所述第二存储区域的所述第一子上下文信息;
重复执行步骤1)和步骤2),直至所述主控芯片从所述第一存储区域删除所述多个第一子上下文信息。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种数据处理的方法,运行于SSD主控芯片上的固件,在出现写错误时可以对数据进行处理,使得数据可以成功存储至闪存芯片中,保证用户存储数据的完整性。
附图说明
图1为本发明实施例中数据处理的方法的SSD的示意图;
图2为本发明实施例中数据处理的方法的一个实施例示意图;
图3为本发明实施例中数据处理装置的一个实施例示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种数据处理的方法以及相关装置,实现了当写错误发生时,对写错数据的重写操作,降低了数据丢失的概率。
应理解,本发明主要应用于固态硬盘(solid state drives,SSD)的数据处理中,其中SSD的闪存类型为与非型闪存(not and flash,Nand Flash),为了便于理解,请查阅图1,图1为本发明实施例中数据处理的方法的SSD的示意图,本发明实施例为应用于SSD的数据处理的方法,下面结合图1展开说明。
如图1所示,SSD中可分为三个部分,分别为主控芯片、与非型闪存以及缓存芯片,其中,主控芯片,用于运行包括SSD的固件在内的操作指令,主控芯片上存在与主机端(host)相连的接口;与非型闪存,其中与非型闪存中包含两个部分:逻辑执行单元(logicalunit number,LUN)用于处理主控芯片下发的命令,并根据命令在闪存芯片上读取、写入或者擦除目标数据,一个闪存芯片上存在多个LUN,典型的为4或8个,这些LUN可以并行处理命令,此处不作限定。闪存芯片用于存储目标数据,其中闪存芯片为Nand型闪存,根据电子单元密度的差异,Nand型闪存还可以分为单层式存储单元(single-level cell,SLC)、多层式存储单元(multi-level cell,MLC)以及三层式存储单元(trinary-level cell,TLC),此处不对Nand型闪存的类型作限定,在SSD中,通常包含有8、16或32块Nand型闪存芯片组成的阵列。缓存芯片,用于存储主控芯片上运行的操作指令所暂时需要的数据,缓存芯片的类型主要为动态随机存取存储器(dynamic random access memory,DRAM),也可以为静态随机存取存储器(static random access memory,SRAM)此处不做限定。在Nand Flash型闪存中,存储数据依靠的是单元(cell)的0/1变更实现的,在写操作时,修改相应单元的0或者1,Cell是最小操作擦写读单元,对应一个浮栅晶体管,可以存储1bit或多bit数据,NandFlash型芯片中,最小写入的单元是页(page),一般的大小为4千字节(kilobyte,KB)或512字节(byte,B),此处不做限定,最小擦除单元为块(block),对应于SSD硬件端的块称为物理块(physical block),SSD写入数据是以超级页(super page,superPage)的方式写入,一个superPage分布在不同的physical block上。
如图1所示,SSD上的主控芯片中闪存转换层(flash translation layer,FTL)接收主机端的写入指令将目标数据写入闪存芯片中,当发生写入失败时,主控芯片将目标数据写入至缓存芯片中,同时写入的还有目标数据在主机端对应的逻辑地址。然后,主控芯片从缓存芯片中读取包括有目标数据的目标上下文信息,在目标上下文信息中还包括了目标数据对应的地址信息,其中,地址信息中包括有第一物理地址以及第二物理地址,第一物理地址为存储于缓存芯片中目标数据所对应的物理地址,第二物理地址为闪存芯片中出现写入失败所对应的物理地址。然后,主控芯片对目标上下文信息进行数据拆分操作,已得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及第一子数据所对应的地址信息,第一子数据所对应的地址信息包括第一子数据所对应的第一物理地址,对物理地址进行数据拆分操作时,可以为根据一定的数据大小间隔,截取物理地址,截取的物理地址为子数据所对应的物理地址,一般该数据大小间隔为4KB或512B,此处不做限制。地址信息中,还包括拆分的目标子数据对应的逻辑地址,主控芯片得到目标子数据对应的逻辑地址的过程包括在对应目标子数据对应的第一物理地址后,依照预设的偏移量查找目标子数据对应的逻辑地址。主控芯片在对目标上下文信息进行数据拆分操作,得到多个第一子上下文信息后,主控芯片上的FTL根据第一子上下文信息向闪存芯片发送写入请求,发送写入请求包括发送一个写入请求,一个写入请求中包括一个第一子上下文信息,用于在闪存芯片中写入一个第一子上下文信息对应的子数据,也可以发送多个写入请求,多个写入请求中包括多个第一子上下文信息,用于在闪存芯片中写入多个第一子上下文信息对应的子数据。当主控芯片判断第一子上下文信息在闪存芯片中存储成功后,主控芯片可以通过删除缓存芯片中存储的对应第一子上下文信息,释放缓存芯片的空间,以便存储新的上下文信息,同时避免同一个子上下文经过多次重复处理,造成数据错误以及资源的浪费。
下面对本发明中数据处理的方法进行解释,请参阅图2,本发明实施例中,数据处理的方法的一个实施例示意图,包括:
101、主控芯片将目标数据写入至第二存储区域;
本实施例中,运行于SSD主控芯片的固件接收主机端的写入指令将目标数据写入闪存芯片中,将闪存芯片命名为第一存储区域,当目标数据写入第一存储区域失败时,主控芯片将目标数据写入至缓存芯片中,将缓存芯片命名为第二存储区域。
102、主控芯片从第二存储区域中读取目标上下文信息;
本实施例中,运行于SSD主控芯片的固件从第二存储区域中读取目标上下文信息,目标上下文信息包括目标数据以及目标数据对应的地址信息。
103、主控芯片对目标上下文信息进行数据拆分处理;
本实施例中,运行于SSD主控芯片的固件对读取到的目标上下文信息进行数据拆分处理,拆分后得到多个第一子上下文信息,第一子上下文信息中包括第一子数据以及第一子数据所对应的地址信息。
其中,将目标数据按照4KB或512B数据大小进行拆分处理,得到的子数据命名为第一子数据,将包含第一子数据的子上下文信息命名为第一子上下文信息。
104、主控芯片向第一存储区域发送多个第一子上下文信息。
本实施例中,运行于SSD主控芯片的固件向运行于SSD主控芯片的FTL发送写请求,FTL处理接收到的写请求后,主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息。
其中,FTL根据预设的坏块表避开第一存储区域中的不能存储的Block,进行数据写入操作,坏块表由SSD生产厂商预设在SSD中,以供主控芯片调用,坏块表的存在模式一般为在Block的首页或尾页进行标记,当使用过程中出现读错误或写错误时,可以更新坏块表,更新方式可以为在出现错误的Block的首页或尾页进行标记,还可以为制定一个数组,数组中存在着与Block一一对应的比特(bit),当出现错误时,对对应的bit进行修改,如正常时该bit为0,错误时修改为1,此处对坏块表存在的方式以及标记方式不作限定。
本发明实施例中,提供了一种数据处理的方法,首先运行于SSD主控芯片的固件接收主机端的写入指令将目标数据写入闪存芯片中,将闪存芯片命名为第一存储区域,当目标数据写入第一存储区域失败时,主控芯片将目标数据写入至缓存芯片中,将缓存芯片命名为第二存储区域。其次,运行于SSD主控芯片的固件从第二存储区域中读取目标上下文信息,目标上下文信息包括目标数据以及目标数据对应的地址信息。再次,运行于SSD主控芯片的固件对读取到的目标上下文信息进行数据拆分处理,拆分后得到多个第一子上下文信息,第一子上下文信息中包括第一子数据以及第一子数据所对应的地址信息。再次,运行于SSD主控芯片的固件向运行于SSD主控芯片的FTL发送写请求,FTL处理接收到的写请求后,主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息。通过上述方式,实现了当写错误发生时,对写错数据的重写操作,降低了数据丢失的概率。
可选地,在图2对应实施例的基础上,本发明实施例提供的第二种数据处理的方法的实施例中,第一子数据所对应的地址信息包括第一子数据所对应的逻辑地址;还包括:
主控芯片将目标数据对应的逻辑地址写入第二存储区域;
主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
主控芯片对目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址。
本实施例中,主控芯片将目标数据写入第二存储区域的过程中,还包括将目标数据对应的逻辑地址写入第二存储区域,主控芯片将目标上下文信息进行数据拆分处理中,还包括对目标数据对应的逻辑地址进行数据拆分处理,得到的多个第一子数据中包括第一子数据对应的逻辑地址。
本发明实施例中,当目标数据写入第一存储区域失败时,主控芯片将目标数据写入第二存储区域,该写入过程还包括将目标数据对应的逻辑地址写入第二存储区域,主控芯片从第二存储区域中读取生成的目标上下文信息中包括有目标数据以及目标数据对应的逻辑地址,当主控芯片对目标上下文信息进行拆分时,在拆分目标数据以外还拆分目标数据对应的逻辑地址,已得到目标子数据对应的逻辑地址。以便于后续步骤的展开,提升方案的可行性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的数据处理的方法的第三个实施例中,目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,第一物理地址为存储于第二存储区域中目标数据所对应的物理地址,第二物理地址为第一存储区域中出现写入失败所对应的物理地址;
第一子数据所对应的地址信息包括第一子数据所对应的第一物理地址;
还包括:
主控芯片将目标数据对应的第一物理地址写入第二存储区域;
主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
主控芯片对目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
本实施例中,主控芯片将目标数据写入第二存储区域时,还写入了目标数据写入第一存储区域中出现写入失败所对应的物理地址,用于在更新存储于SSD中的坏块表,该物理地址命名为第二物理地址,在读取生成的目标上下文信息中,包含了目标数据当前存储于第二存储区域中对应的物理地址,该物理地址命名为第一物理地址。当主控芯片对目标上下文信息进行拆分时,拆分的还有第一物理地址,已得到多个第一子数据所对应的第一物理地址。
本发明实施例中,目标上下文信息中包含的地址信息除了目标数据对应的逻辑地址外,还包含有第一物理地址以及第二物理地址,第二物理地址用于指示主控芯片更新坏块表,第一物理地址用于拆分得到子数据对应的物理地址,以便后续步骤的展开,提升方案的可行性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的数据处理的方法的第四个实施例中,主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息,包括:
主控芯片在目标周期内向第一存储区域发送一个写入请求,以使第一存储区域存储一个第一子上下文信息;
或,
主控芯片在目标周期内向第一存储区域发送多个写入请求,以使第一存储区域存储多个第一子上下文信息。
本实施例中,主控芯片在拆分生成多个第一子上下文信息后,向第一存储区域发送多个第一子上下文信息,该发送过程包括:主控芯片向第一存储区域发送写入请求,其中发送一个写入请求时,主控芯片向第一存储区域写入一个第一子上下文信息,当发送多个写入请求时,主控芯片向第一存储区域写入多个第一子上下文信息。
其中,由于主控芯片上的FTL具有同时处理多个写入请求的能力,因此发送多个写入请求可以依照预设时间间隔依次发送,也可以同时发送,此处不作限定。
本发明实施例中,主控芯片向第一存储区域发送多个第一子上下文信息的方法,包括发送一个写入请求,其中用以写入一个第一子上下文信息。还包括发送多个写入请求,用以写入多个第一子上下文信息。提升了方案的实现灵活性。
可选地,在上述图2对应的实施例的基础上,本发明实施例提供的数据处理的方法的第五个实施例中,主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息之后,方法还包括:
1)主控芯片判断第一子上下文信息是否在第一存储区域中存储成功,其中,第一子上下文信息为多个第一子上下文信息中的任意一个信息;
2)若第一子上下文信息已在第一存储区域中存储成功,则主控芯片删除存储于第二存储区域的第一子上下文信息;
重复执行步骤1)和步骤2),直至主控芯片从第一存储区域删除多个第一子上下文信息。
本实施例中,在主控芯片向第一存储区域发送多个第一子上下文信息,第一存储区域将接收到的多个第一子上下文信息写入后,执行步骤1)主控芯片判断第一子上下文信息是否在第一存储区域中存储成功,其中,中第一子上下文信息为多个第一子上下文信息中的任意一个信息,然后执行步骤2)若第一子上下文信息已在第一存储区域中存储成功,则主控芯片删除存储于第二存储区域的第一子上下文信息。主控芯片重复执行步骤1)与步骤2)直到直至主控芯片从第二存储区域删除多个第一子上下文信息。
本发明实施例中,主控芯片判断第一子上下文信息是否在第一存储区域中存储成功,若成功则删除存储于第二存储区域的第一子上下文信息,直到删除多个第一子上下文信息,通过上述方法,主控芯片在存储目标子数据成功的情况下,可以通过删除存储于第二存储区域中已成功存储的目标子上下文,释放第二存储区域的存储空间,以便存储新的数据。提升了方案的可行性。
下面对本发明中数据处理装置进行详细描述,请参阅图3,图3为本发明实施例中数据处理装置的一个实施例示意图,本发明实施例提供的数据处理装置20的第一个实施例中,数据处理装置20包括:
写入模块201,用于当目标数据写入第一存储区域失败时,主控芯片将目标数据写入至第二存储区域;
读取模块202,用于主控芯片从第二存储区域中读取目标上下文信息,目标上下文信息包括目标数据以及目标数据的地址信息;
错误处理模块203,用于主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及第一子数据所对应的地址信息;
发送模块204,用于主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息。
本实施例中,写入模块201,用于当目标数据写入第一存储区域失败时,主控芯片将目标数据写入至第二存储区域;读取模块202,用于主控芯片从第二存储区域中读取目标上下文信息,目标上下文信息包括目标数据以及目标数据的地址信息;错误处理模块203,用于主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及第一子数据所对应的地址信息;发送模块204,用于主控芯片向第一存储区域发送多个第一子上下文信息,以使第一存储区域存储多个第一子上下文信息。
本发明实施例中,提供了一种数据处理装置,首先,SSD上的主控芯片中闪存转换层(flash translation layer,FTL)接收主机端的写入指令将目标数据写入闪存芯片中,当发生写入失败时,主控芯片将目标数据写入至缓存芯片中,同时写入的还有目标数据在主机端对应的逻辑地址。然后,主控芯片从缓存芯片中读取包括有目标数据的目标上下文信息,在目标上下文信息中还包括了目标数据对应的地址信息,其中,地址信息中包括有第一物理地址以及第二物理地址,第一物理地址为存储于缓存芯片中目标数据所对应的物理地址,第二物理地址为闪存芯片中出现写入失败所对应的物理地址。然后,主控芯片对目标上下文信息进行数据拆分操作,已得到多个第一子上下文信息,其中,每个第一子上下文信息包括第一子数据以及第一子数据所对应的地址信息,第一子数据所对应的地址信息包括第一子数据所对应的第一物理地址,对物理地址进行数据拆分操作时,可以为根据一定的数据大小间隔,截取物理地址,截取的物理地址为子数据所对应的物理地址,一般该数据大小间隔为4KB或512B,此处不做限制。地址信息中,还包括拆分的目标子数据对应的逻辑地址,主控芯片得到目标子数据对应的逻辑地址的过程包括在对应目标子数据对应的第一物理地址后,依照预设的偏移量查找目标子数据对应的逻辑地址。主控芯片在对目标上下文信息进行数据拆分操作,得到多个第一子上下文信息后,主控芯片上的FTL根据第一子上下文信息向闪存芯片发送写入请求,发送写入请求包括发送一个写入请求,一个写入请求中包括一个第一子上下文信息,用于在闪存芯片中写入一个第一子上下文信息对应的子数据,也可以发送多个写入请求,多个写入请求中包括多个第一子上下文信息,用于在闪存芯片中写入多个第一子上下文信息对应的子数据。当主控芯片判断第一子上下文信息在闪存芯片中存储成功后,主控芯片可以通过删除缓存芯片中存储的对应第一子上下文信息,释放缓存芯片的空间,以便存储新的上下文信息,同时避免同一个子上下文经过多次重复处理,造成数据错误以及资源的浪费。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的数据处理装置20的第二个实施例中,
写入模块201,还用于主控芯片将目标数据对应的逻辑地址写入第二存储区域;
错误处理模块203,还用于主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
主控芯片对目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址。
本发明实施例中,当目标数据写入第一存储区域失败时,主控芯片将目标数据写入第二存储区域,该写入过程还包括将目标数据对应的逻辑地址写入第二存储区域,主控芯片从第二存储区域中读取生成的目标上下文信息中包括有目标数据以及目标数据对应的逻辑地址,当主控芯片对目标上下文信息进行拆分时,在拆分目标数据以外还拆分目标数据对应的逻辑地址,已得到目标子数据对应的逻辑地址。以便于后续步骤的展开,提升方案的可行性。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的数据处理装置20的第三个实施例中,目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,第一物理地址为存储于第二存储区域中目标数据所对应的物理地址,第二物理地址为第一存储区域中出现写入失败所对应的物理地址;
第一子数据所对应的地址信息包括第一子数据所对应的第一物理地址;
写入模块201,还用于主控芯片将目标数据对应的第一物理地址写入第二存储区域;
错误处理模块203,用于主控芯片对目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
错误处理模块203,具体用于主控芯片对目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
本发明实施例中,目标上下文信息中包含的地址信息除了目标数据对应的逻辑地址外,还包含有第一物理地址以及第二物理地址,第二物理地址用于指示主控芯片更新坏块表,第一物理地址用于拆分得到子数据对应的物理地址,以便后续步骤的展开,提升方案的可行性。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的数据处理装置20的第四个实施例中,
发送模块204,还用于在目标周期内向所述第一存储区域发送一个写入请求,以使所述第一存储区域存储一个所述第一子上下文信息;
或,
发送模块204,还用于在所述目标周期内向所述第一存储区域发送多个写入请求,以使所述第一存储区域存储多个所述第一子上下文信息。
本发明实施例中,主控芯片向第一存储区域发送多个第一子上下文信息的方法,包括发送一个写入请求,其中用以写入一个第一子上下文信息。还包括发送多个写入请求,用以写入多个第一子上下文信息。提升了方案的实现灵活性。
可选地,在上述图3对应的实施例的基础上,本发明实施例提供的数据处理装置20的第五个实施例中,错误处理模块203,还用于:
1)主控芯片判断第一子上下文信息是否在第一存储区域中存储成功,其中,第一子上下文信息为多个第一子上下文信息中的任意一个信息;
2)若第一子上下文信息已在第一存储区域中存储成功,则主控芯片删除存储于第二存储区域的第一子上下文信息;
重复执行步骤1)和步骤2),直至主控芯片从第一存储区域删除多个第一子上下文信息。
本发明实施例中,主控芯片判断第一子上下文信息是否在第一存储区域中存储成功,若成功则删除存储于第二存储区域的第一子上下文信息,直到删除多个第一子上下文信息,通过上述方法,主控芯片在存储目标子数据成功的情况下,可以通过删除存储于第二存储区域中已成功存储的目标子上下文,释放第二存储区域的存储空间,以便存储新的数据。提升了方案的可行性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据处理的方法,其特征在于,包括:
当目标数据写入第一存储区域失败时,主控芯片将所述目标数据写入至第二存储区域;
所述主控芯片将所述目标数据对应的逻辑地址写入所述第二存储区域;
所述主控芯片从所述第二存储区域中读取目标上下文信息,所述目标上下文信息包括所述目标数据以及所述目标数据的地址信息;
所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,所述主控芯片对所述目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址,
其中,每个第一子上下文信息包括第一子数据以及所述第一子数据所对应的地址信息;
所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息。
2.根据权利要求1所述的方法,其特征在于,所述目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,所述第一物理地址为存储于所述第二存储区域中所述目标数据所对应的物理地址,所述第二物理地址为所述第一存储区域中出现写入失败所对应的物理地址;
所述第一子数据所对应的地址信息包括所述第一子数据所对应的第一物理地址;
所述方法还包括:
所述主控芯片将所述目标数据对应的第一物理地址写入所述第二存储区域;
所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
所述主控芯片对所述目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
3.根据权利要求2所述的方法,其特征在于,所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息,包括:
所述主控芯片在目标周期内向所述第一存储区域发送一个写入请求,以使所述第一存储区域存储一个所述第一子上下文信息;
或,
所述主控芯片在所述目标周期内向所述第一存储区域发送多个写入请求,以使所述第一存储区域存储多个所述第一子上下文信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息之后,所述方法还包括:
1)所述主控芯片判断第一子上下文信息是否在所述第一存储区域中存储成功,其中,所述第一子上下文信息为所述多个第一子上下文信息中的任意一个信息;
2)若所述第一子上下文信息已在所述第一存储区域中存储成功,则所述主控芯片删除存储于所述第二存储区域的所述第一子上下文信息;
重复执行步骤1)和步骤2),直至所述主控芯片从所述第一存储区域删除所述多个第一子上下文信息。
5.一种数据处理装置,其特征在于,
写入模块,用于当目标数据写入第一存储区域失败时,主控芯片将所述目标数据写入至第二存储区域;
所述写入模块,还用于将所述目标数据对应的逻辑地址写入所述第二存储区域;
读取模块,用于所述主控芯片从所述第二存储区域中读取目标上下文信息,所述目标上下文信息包括所述目标数据以及所述目标数据的地址信息;
错误处理模块,用于所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,所述主控芯片对所述目标数据对应的逻辑地址进行数据拆分处理,以得到多个第一子数据所对应的逻辑地址,其中,每个第一子上下文信息包括第一子数据以及所述第一子数据所对应的地址信息;
发送模块,用于所述主控芯片向所述第一存储区域发送所述多个第一子上下文信息,以使所述第一存储区域存储所述多个第一子上下文信息。
6.根据权利要求5所述的数据处理装置,其特征在于,所述目标数据的地址信息包括:第一物理地址以及第二物理地址,其中,所述第一物理地址为存储于所述第二存储区域中所述目标数据所对应的物理地址,所述第二物理地址为所述第一存储区域中出现写入失败所对应的物理地址;
所述第一子数据所对应的地址信息包括所述第一子数据所对应的第一物理地址;
所述写入模块,还用于所述主控芯片将所述目标数据对应的第一物理地址写入所述第二存储区域;
所述错误处理模块,用于所述主控芯片对所述目标上下文信息进行数据拆分处理,以得到多个第一子上下文信息,包括:
所述错误处理模块,具体用于所述主控芯片对所述目标数据对应的第一物理地址进行数据拆分处理,以得到多个第一子数据所对应的第一物理地址。
7.根据权利要求6所述的数据处理装置,其特征在于,
所述发送模块,还用于在目标周期内向所述第一存储区域发送一个写入请求,以使所述第一存储区域存储一个所述第一子上下文信息;
或,
所述发送模块,还用于在所述目标周期内向所述第一存储区域发送多个写入请求,以使所述第一存储区域存储多个所述第一子上下文信息。
8.根据权利要求5至7中任一项所述的数据处理装置,其特征在于,
所述错误处理模块,还用于:
1)所述主控芯片判断第一子上下文信息是否在所述第一存储区域中存储成功,其中,所述第一子上下文信息为所述多个第一子上下文信息中的任意一个信息;
2)若所述第一子上下文信息已在所述第一存储区域中存储成功,则所述主控芯片删除存储于所述第二存储区域的所述第一子上下文信息;
重复执行步骤1)和步骤2),直至所述主控芯片从所述第一存储区域删除所述多个第一子上下文信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810837094.6A CN109002265B (zh) | 2018-07-26 | 2018-07-26 | 一种数据处理的方法以及相关装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810837094.6A CN109002265B (zh) | 2018-07-26 | 2018-07-26 | 一种数据处理的方法以及相关装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109002265A CN109002265A (zh) | 2018-12-14 |
| CN109002265B true CN109002265B (zh) | 2021-12-17 |
Family
ID=64597098
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810837094.6A Active CN109002265B (zh) | 2018-07-26 | 2018-07-26 | 一种数据处理的方法以及相关装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109002265B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114296639B (zh) * | 2021-12-10 | 2024-02-20 | 深圳大普微电子科技有限公司 | 命令处理方法及闪存设备 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102298555A (zh) * | 2011-08-22 | 2011-12-28 | 宜兴市华星特种陶瓷科技有限公司 | 基于nand技术的模块化闪存管理系统 |
| CN107102821A (zh) * | 2017-04-21 | 2017-08-29 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash阵列写失败的处理方法 |
| CN107247563A (zh) * | 2017-07-06 | 2017-10-13 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash芯片的块信息标识实现方法 |
| CN107562649A (zh) * | 2016-06-30 | 2018-01-09 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9164929B2 (en) * | 2013-01-03 | 2015-10-20 | International Business Machines Corporation | False power failure alert impact mitigation |
-
2018
- 2018-07-26 CN CN201810837094.6A patent/CN109002265B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102298555A (zh) * | 2011-08-22 | 2011-12-28 | 宜兴市华星特种陶瓷科技有限公司 | 基于nand技术的模块化闪存管理系统 |
| CN107562649A (zh) * | 2016-06-30 | 2018-01-09 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
| CN107102821A (zh) * | 2017-04-21 | 2017-08-29 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash阵列写失败的处理方法 |
| CN107247563A (zh) * | 2017-07-06 | 2017-10-13 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash芯片的块信息标识实现方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109002265A (zh) | 2018-12-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12461851B2 (en) | Memory system, data storage device, user device and data management method thereof | |
| EP3726364B1 (en) | Data write-in method and solid-state drive array | |
| CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
| CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
| JP5649742B2 (ja) | トランザクションログの復元 | |
| KR101447786B1 (ko) | 파워 인터럽트 관리 | |
| CN113849420B (zh) | 存储器系统和控制方法 | |
| CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
| CN118302740A (zh) | 使用写时复制的固态驱动器上复制技术 | |
| CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
| CN103164345A (zh) | 固态存储装置遭遇断电后的数据存储方法 | |
| US10459803B2 (en) | Method for management tables recovery | |
| TWI479505B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
| KR20120081351A (ko) | Ftl을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법 | |
| US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
| CN110347613A (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
| TWI516934B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TW201303584A (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
| CN111026325B (zh) | 闪存控制器、闪存控制器的控制方法及相关的电子装置 | |
| TW201935232A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
| CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
| CN113835617A (zh) | 数据处理方法及对应的数据储存装置 | |
| CN103218308A (zh) | 缓冲存储器管理方法、存储器控制器与存储器储存装置 | |
| CN114974365A (zh) | Ssd有限窗口数据去重识别方法、装置和计算机设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |