CN116185309B - 一种数据处理方法及数据存储设备 - Google Patents
一种数据处理方法及数据存储设备 Download PDFInfo
- Publication number
- CN116185309B CN116185309B CN202310465181.4A CN202310465181A CN116185309B CN 116185309 B CN116185309 B CN 116185309B CN 202310465181 A CN202310465181 A CN 202310465181A CN 116185309 B CN116185309 B CN 116185309B
- Authority
- CN
- China
- Prior art keywords
- data
- voltage
- decoding
- data unit
- array
- 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 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]
-
- 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
- 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/30—Power supply circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Read Only Memory (AREA)
Abstract
本发明公开了一种数据处理方法及数据存储设备,属于存储技术领域。所述数据处理方法包括以下步骤:建立解码地图,所述解码地图标识闪存页中的每个数据单元的解码状态;获取读取电压,并在一所述读取电压下,对所述闪存页内的所述数据单元进行解码;在所述读取电压下,若存在解码成功的所述数据单元,则依据所述数据单元的解码状态进行数据传输;若不存在解码成功的所述数据单元,则更新读取电压,并在更新的所述读取电压下,对所述闪存页内的所述数据单元进行解码,直至完成所述闪存页中所述数据单元的传输,或遍历所有所述读取电压。通过本发明提供的一种数据处理方法,可提高数据读取能力和效率。
Description
技术领域
本发明属于存储技术领域,特别涉及一种数据处理方法及数据存储设备。
背景技术
数据存储设备在工作过程中,由于数据存储设备的老化、读写干扰、温差等问题会导致数据发生错误。故在将数据写入的过程中,会将数据和纠错码(Error CorrectingCode,ECC)编码写入闪存单元,在读取数据时,会依据ECC编码对数据进行解码。
由于闪存所在的环境不同、闪存页中每个数据单元的擦除次数不同、读取次数不同,以及电荷流失程度不同,在解码时,每个数据单元的最佳读取电压不同。在一个读取电压下,闪存页内的部分数据单元读取成功,但是部分数据单元读取失败。导致数据读取效率低下,读取能力差。
发明内容
本发明的目的在于提供一种数据处理方法及数据存储设备,解决读取效率低下,读取能力差的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种数据处理方法,至少包括以下步骤:
建立解码地图,所述解码地图标识闪存页中的每个数据单元的解码状态;
获取读取电压,并在一所述读取电压下,对所述闪存页内的所述数据单元进行解码;
在所述读取电压下,若存在解码成功的所述数据单元,则依据所述数据单元的解码状态进行数据传输;若不存在解码成功的所述数据单元,则更新读取电压,并在更新的所述读取电压下,对所述闪存页内的所述数据单元进行解码,直至完成所述闪存页中所述数据单元的传输,或遍历所有所述读取电压。
在本发明一实施例中,依据所述数据单元的解码状态进行数据传输包括以下步骤:将解码成功的所述数据单元中的数据传递至主机,并更新所述解码地图。
在本发明一实施例中,所述数据处理方法还包括以下步骤:
判断所述闪存页中的所述数据单元是否解码完成,若所述闪存页中的所述数据单元解码完成,则结束流程,若所述闪存页中的存在未被解码的所述数据单元,则判断是否存在未使用的所述读取电压。
在本发明一实施例中,所述数据处理方法还包括建立最佳解码电压数组和电压长度数组,所述最佳解码电压数组中的元素记录所述数据单元的最佳读取电压,所述电压长度数组中的元素记录所述最佳读取电压对应的所述数据单元以及该所述数据单元后所述最佳读取电压覆盖的连续的所述数据单元的数量。
在本发明一实施例中,依据所述数据单元的解码状态进行数据传输包括以下步骤:更新所述解码地图、所述最佳解码电压数组和所述电压长度数组。
在本发明一实施例中,依据所述数据单元的解码状态进行数据传输还包括以下步骤:判断所述闪存页中,是否每个所述数据单元都存在所述最佳读取电压,若每个所述数据单元都存在所述最佳读取电压,则依据所述最佳解码电压数组和所述电压长度数组读取所述闪存页中的每个所述数据单元中的数据。
在本发明一实施例中,更新所述解码地图、所述最佳解码电压数组和所述电压长度数组包括以下步骤:
依据所述数据单元的排列顺序,定位一数据单元,并判断所述数据单元是否被成功解码。
在本发明一实施例中,当所述数据单元被成功解码时,获取当前读取电压下,所述闪存页的电压长度数组中,所述数据单元对应的第一元素,以及前一读取电压下,所述闪存页的电压长度数组中,所述数据单元对应的第二元素。
在本发明一实施例中,当所述第一元素大于或等于所述第二元素时,在所述闪存页的电压长度数组中,以所述第一元素覆盖所述第二元素,在所述闪存页的最佳解码电压数组中,以当前的读取电压覆盖前一读取电压。
在本发明一实施例中,当所述第一元素小于所述第二元素,在所述闪存页的电压长度数组中,保持所述第二元素不变,在所述闪存页的最佳解码电压数组中,保持前一读取电压不变。
本发明还提供一种数据存储设备,所述数据存储设备上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法。
如上所述本发明提供的一种数据处理方法及数据存储设备,在不同的读取电压下,对闪存页中的数据单元进行解码。并在不同的读取电压下,对一个闪存页内的数据单元进行数据传输,保证闪存页内的数据单元在一个、两个或多个读取电压下完成数据的传输。提高了解码能力和解码效率。且通过设置最佳解码电压数组和电压长度数组,获取每个数据单元的最佳读取电压,使得主机在读取闪存页中的数据时,具有最少的读取次数,进一步提高了解码效率。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请中一种数据存储设备结构示意图。
图2为本申请中一种数据处理方法的流程图。
图3为本申请中另一种数据处理方法的流程图。
图4为本申请中每个数据单元最佳解码电压数组和电压长度数组的更新流程图。
图5为本申请中一种闪存页组成及解码地图结构示意图。
图6为本申请中第0组读取电压下,解码地图、最佳解码电压数组以及电压长度数组的状态图。
图7为本申请中第1组读取电压下,解码地图、最佳解码电压数组以及电压长度数组的状态图。
图8为本申请中第2组读取电压下,解码地图、最佳解码电压数组以及电压长度数组的状态图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本申请提出一种电子设备,电子设备包括主机200和数据存储设备100。其中,主机200和数据存储设备100可以被实现为单独的芯片,模块,或者设备,或者可以被包括在单一设备中。例如,数据存储设备100可以为集成的单一存储设备,然后被连接至主机200。然而,本公开不限于该示例。也就是说,在另一示例中,主机200和数据存储设备100可以被集成到单一设备中。
请参阅图1所示,在一些实施例中,数据存储设备100经由接口及电源线与主机200(例如信息处理装置)连接。主机200例如由个人计算机、CPU核或者与网络连接的服务器等构成。主机200对数据存储设备100执行数据存取控制,例如,通过向数据存储设备100发送写请求、读请求及删除请求,对数据存储设备100执行数据的写入、读取及删除。
请参阅图1所示,在一些实施例中,数据存储设备100例如可以固态硬盘(SolidState Disk,SSD)。且数据存储设备100可以包括控制器110和非易失性存储单元120。非易失性存储单元120是即使切断电源也不会丢失数据的非易失性存储单元120(非暂时的存储器),非易失性存储单元120可以为NAND闪存、垂直NAND(VNAND)、NOR闪存、电阻随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。非易失性存储单元120可以包括连接到字线、串选择线、地选择线和位线的存储单元阵区块。非易失性存储单元120可以包括包含多个存储块的超级块。多个存储块可以包括多个页面。非易失性存储单元120可以包括二维(2D)存储器阵区块或三维(3D)存储器阵区块。也可以使用其他类型的非易失性存储单元120。本实施例中,以NAND型闪速存储器的结构为例进行说明,可以理解,在其他的实施例中,也可以采用其他类型的非易失性存储单元120结构。
请参阅图1所示,在一些实施例中,非易失性存储单元120电性连接至控制器110,并且用以储存主机200所写入数据。非易失性存储单元120中具有闪存块。闪存块可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一闪存块分别具有多个闪存页,并且每一闪存页具有至少一物理扇区,其中属于同一个闪存块的闪存页可被独立地写入且被同时地抹除。例如,每一闪存块是由128个闪存页所组成。在另一实施例中,每一闪存块是可由64个闪存页、256个闪存页或其它任意个闪存页所组成。
请参阅图1所示,闪存块(block)为抹除的最小单位。亦即,每一闪存块含有最小数目的一并被抹除的存储单元。闪存页可以为可编程的最小单元。即,闪存页为读取数据和写入数据的最小单元。然而,在一些实施例中,写入数据和写入的最小单元亦可以是更小的存储单元。每一闪存页通常包括数据位区与冗余位区。数据位区用以储存使用者的数据,而冗余位区用以储存系统的数据(例如,错误检查与校正码)。
请参阅图1所示,在一些实施例中,在对数据进行纠错时,在主机将数据写入的过程中,会将数据和纠错码(Error Correcting Code,ECC)编码写入闪存单元,在读取数据时,会依据ECC编码对数据进行解码。在本实施例中,在对数据进行编发或解码时,编码或解码的长度为2KB或4KB。在本申请中,将同时编码或解码的单元称为数据单元(CodeWord,CW),即为数据单元的大小为2KB或4KB。在其他实施例中,也可以将依据编码或解码的长度设定数据单元的大小。在本申请中,可将数据单元定义为可编程的最小单元。即,数据单元为读取数据和写入数据的最小单元。
请参阅图1所示,在一些实施例中,非易失性存储单元120为多层存储单元(MultiLevel Cell,MLC)NAND闪存模块。在其他实施例中,非易失性存储单元120亦可是单层存储单元(Single Level Cell,SLC)NAND闪存模块、三层存储单元(Trinary-Level Cell,TLC)NAND闪存模块、四层存储单元(Quad-Level Cell,QLC)NAND闪存模块、五层存储单元(Penta-level cell,PLC)NAND闪存模块、其它闪存模块或其它具有相同特性的存储器模块。
请参阅图1所示,在本发明一实施例中,在非易失性存储单元120中存储有逻辑地址到物理地址(L2P)映射表和数据,每个逻辑地址到物理地址映射表中存储有每条逻辑地址对应的物理地址。在读取数据时,可以依据逻辑地址到物理地址映射表查找需要的数据在非易失性存储单元120中具体的物理地址。
请参阅图1所示,在本发明一实施例中,控制器110内配置有缓存111,缓存111可以为能够高速写入或读取数据的存储器的易失性存储器,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),锁存器、触发器或寄存器。
请参阅图1所示,在本发明一实施例中,控制器110中还设置有控制单元112,控制单元112用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机200的指令在非易失性存储单元120中进行数据的写入、读取与抹除等运作。
请结合图1至图2所示,本发明提供的数据存储设备100为一种计算机可读存储设备,数据存储设备100上存储有计算机程序,所述计算机程序被控制器110执行时实现如本发明所述的数据处理方法。本发明提供的数据处理方法包括步骤S101至S109。
步骤S101、建立解码地图。
请参阅图1和图2所示,在本发明一实施例中,可在缓存111中,对于每个要读取的闪存页,建立一个解码地图,该解码地图可标识闪存页中的数据单元是否解码成功。解码地图中设置有至少一个字节,且解码地图中标识位的数量与闪存页中数据单元的数量相等。解码地图中的每个标识位与闪存页中的数据单元对应设置,每一个标识位表示一个数据单元的解码状态。
请参阅图5所示,在本发明一实施例中,一个闪存页的大小例如为32KB,一个数据单元的大小为例如4KB,则一个闪存页中包括例如8个数据单元。则该闪存页对应的解码地图为一个字节的长度,包括8个比特,每个比特为一个标识位,每个标识位表示一个数据单元的解码状态。当一个标识位置位为第一数据时,则表示当前数据单元尚未成功解码,当一个标识位置位为第二数据时,则表示当前数据单元被成功解码或表示主机不需要读取这段数据。在本实施例中,第一数据例如为1,第二数据例如为0。
步骤S102、获取读取电压。
在本发明一实施例中,读取电压可以包括数据存储设备默认的多个档位的读取电压。在本发明另一些实施例中,读取电压也可以包括依据历史读取电压范围设定的多个档位的读取电压。在本发明再一些实施例中,读取电压还可以包括依据闪存的温度、擦写次数、读取次数、电荷流失程度设定的多个档位的读取电压。
步骤S103、在一读取电压下对闪存页中的数据单元进行解码。
在本发明一实施例中,在步骤S103中,所述一读取电压为在步骤S102中获取的多个档位的读取电压中的任意一个读取电压。在一读取电压下对闪存页中的数据单元进行解码时,仅对闪存页中未被读取的单元进行解码。即仅对置位为第一数据的比特对应的数据单元进行解码。
步骤S104、判断是否存在解码成功的数据单元,若存在解码成功的数据单元,则执行步骤S105至步骤S107,若不存在解码成功的数据单元,则执行步骤S108。
步骤S105、将解码成功的数据单元中的数据传递至主机。
步骤S106、更新解码地图。
步骤S107、判断闪存页中的数据单元是否解码完成,若解码完成,则表示读取成功,结束流程。若还存在未解码的数据单元,则执行步骤S108。
请参阅图2所示,在本发明一实施例中,当在步骤S104中,在某一读取电压下,存在解码成功的数据单元,则先执行步骤S105和步骤S106,将解码成功的数据单元中的数据传递至主机,完成该数据单元中数据的传递。并在存在解码成功的数据单元时,更新解码地图。即将此次在步骤S104中完成解码的数据单元对应的标识位由第一数据修改为第二数据。在本申请中,步骤S105和步骤S106可以同步执行,也可以前后执行。在前后执行时,并不限制步骤S105和步骤S106的顺序,可以先执行步骤S105,再执行步骤S106,也可以先执行步骤S106,再执行步骤S105。
请参阅图2所示,在本发明一实施例中,数据单元对应的标识位由第一数据修改为第二数据后,标识位不被清除。此时,在更新读取电压时,在前一读取电压下任为第二数据,不需要再次被读取,进一步提高解码效率。
请参阅图2所示,在本发明一实施例中,在解码成功的数据单元中的数据传递至主机,并更新解码地图后,执行步骤S107、判断闪存页中的数据单元是否解码完成。在本申请中,可通过判断解码地图中的标识位是否全部为第二数据,判断闪存页中的数据单元是否解码完成。若解码地图中的标识位全部为第二数据时,则表示闪存页中的数据单元解码完成,若解码地图中的标识位存在有第一数据时,则表示闪存页中还存在需要解码的数据单元。当闪存页中的数据单元解码完成时,表示读取成功,即结束该流程。若闪存页中还存在需要解码的数据单元,则需要调整读取电压,再次对闪存页中的数据单元进行解码。
步骤S108、判断是否存在未使用的读取电压,若不存在未使用的电压,则表示读取失败,若存在未使用的电压,则执行步骤S109。
步骤S109、更新读取电压,并返回步骤S103。
在本发明一实施例中,在步骤104中,不存在解码成功的数据单元,以及在步骤S107中闪存页中的数据单元未完成解码时,执行步骤S108、判断是否存在未使用的读取电压。其中,未使用的读取电压为在步骤S103中获取的,且在对该闪存页进行解码时未被使用的读取电压。即未使用的读取电压为在步骤S103中获取的,且在步骤S103中或在循环步骤S109中未被选取的读取电压。
在本发明一实施例中,若还存在未使用的电压,则执行步骤S109、更新读取电压。即在未使用的读取电压中再选取一个读取电压,重新执行步骤S103至步骤S109。若不存在未使用的读取电压,则表示在步骤S103中获取的读取电压被用尽,且闪存页中还存在未解码的数据单元,此时,表示对该闪存页的读取失败。
请参阅图2所示,在本发明一实施例中,在步骤S101至步骤S109中,在完成一个数据单元的解码后,就会将解码成功的数据单元中的数据传递至主机。在将数据传递给主机时,需要启动直接内存访问(Direct Memory Access,DMA)将解码成功的数据单元中的数据传递给主机。每次启动DMA时,需要配置好需要传输的数据单元的启示位置和长度。对于闪存页中解码成功的数据单元不连续时,需要依据数据单元的分部多次启动DMA。如图5所示,一次性解码成功的数据单元CW4和数据单元CW6,就需要启动两次DMA,才能将两个数据单元中的数据传递至主机。且在多次将数据传递至主机的过程中,若最后存在不能被解码的数据单元,前期传送至主机的数据也无法使用,会造成资源浪费。
在本发明另一实施例中,请参阅图3所示,还提供一种数据处理方法,所述数据处理方法包括步骤S201至步骤S209。
步骤S201、建立解码地图、最佳解码电压数组和电压长度数组。
请参阅图3所示,在本发明另一实施例中,步骤S201中的解码地图与步骤S101中的解码地图相同,可标识闪存页中的数据单元是否解码成功。解码地图中的每个标识位表示一个数据单元的解码状态。一个标识位置位为第一数据时,则表示当前数据单元在该读取电压下尚未成功解码,当一个标识位置位为第二数据时,则表示当前数据单元在该读取电压下已被成功解码或表示主机不需要读取这段数据。
请参阅图3所示,在本发明另一实施例中,数据单元对应的标识位由第一数据修改为第二数据后,在更新读取电压时,标识位先被清除(标识位被置位为第一数据)。则在不同的读取电压下,解码地图中的标识为具有一个解码状态。在本实施例中,在更新读取电压时,由于标识位先被清除,故在每个读取电压下,数据单元均会被重新读取。
请参阅图1和图3所示,在本发明另一实施例中,在缓存111中,还建立一个最佳解码电压数组和电压长度数组。其中,最佳解码电压数组和电压长度数组包括多个元素,最佳解码电压数组和电压长度数组中的每个元素对应闪存页中的一个数据单元。其中,最佳解码电压数组中的元素记录对应数据单元的最佳读取电压,电压长度数组中的元素记录最佳读取电压对应的数据单元以及该数据单元后最佳读取电压覆盖的连续的数据单元的数量。
请参阅图6所示,在本发明另一实施例中,当使用第0组读取电压读取闪存页,且该闪存页的数据单元CW4和数据单元CW6被解码时。则在第0组读取电压对应的解码地图中,数据单元CW4和数据单元CW6的标识位被置位为第二数据,即为0。其他数据单元的标识位认为第一数据,即为1。而在此时的最佳解码电压数组中,数据单元CW4和数据单元CW6对应的元素设置为0,表示,第0组读取电压为数据单元CW4和数据单元CW6的最佳读取电压。在此时的电压长度数组中,数据单元CW4和数据单元CW6对应的元素设置为1,表示,在第0组读取电压(最佳读取电压)下,仅有数据单元CW4和数据单元CW6可被解码,在数据单元CW4和数据单元CW6后没有其他数据单元可在第0组读取电压下被解码,数量为1。
步骤S202、获取读取电压。
请参阅图3所示,在本发明另一实施例中,读取电压可以包括数据存储设备默认的多个档位的读取电压。在本发明另一些实施例中,读取电压也可以包括依据历史读取电压范围设定的多个档位的读取电压。在本发明再一些实施例中,读取电压还可以包括依据闪存的温度、擦写次数、读取次数、电荷流失程度设定的多个档位的读取电压。
步骤S203、在一读取电压下对闪存页中的数据单元进行解码。
请参阅图3所示,在本发明另一实施例中,在步骤S203中,所述一读取电压为在步骤S202中获取的多个档位的读取电压中的任意一个读取电压。在一读取电压下对闪存页中的读取单元进行解码时,对闪存页中未被读取的单元进行解码。即仅对置位为第一数据的比特对应的数据单元进行解码。
步骤S204、判断是否存在解码成功的数据单元,若存在解码成功的数据单元,则执行步骤S205至步骤S207,若不存在解码成功的数据单元,则执行步骤S108。
步骤S205、更新解码地图、最佳解码电压数组和电压长度数组。
请参阅图6至图8所示,在本发明另一实施例中,在更新解码地图时,每个读取电压下对应有一个解码地图,表示在当前读取电压下,闪存页中每个数据单元的解码状态。
请参阅4所示,在本发明一实施例中,更新最佳解码电压数组和电压长度数组包括步骤S2051至步骤S2058。
S2051、依据数据单元排列顺序,定位一数据单元。
请参阅图1所示,在本发明另一实施例中,可以依据数据单元排列顺序,先定位一数据单元。在本实施例中,首先可定位到数据单元CW0。在其他实施例中,首先可定位到数据单元CW7。
S2052、判断在该读取电压下,该数据单元是否被成功解码,若被成功解码,则执行步骤S2053至步骤S2055,若未被成功解码,则执行步骤S2056。
请参阅图1所示,在本发明另一实施例中,可以依据当前解码地图中,判断该数据单元对应的标识位是否为第二数据,确定当前数据单元在该读取电压下是否被成功解码。若该数据单元在该读取电压下被成功解码,则执行执行步骤S2053至步骤S2056,若该数据单元在该读取电压下未被成功解码,则执行步步骤S2057。
S2053、获取当前读取电压下,该闪存页的电压长度数组中,该数据单元对应的第一元素,以及前一读取电压下,该闪存页的电压长度数组中,该数据单元对应的第二元素。
S2054、判断第一元素是否大于或等于第二元素,若第一元素大于或等于第二元素,则执行步骤S2055,若第一元素小于第二元素,执行步骤S2056。
S2055、在电压长度数组中,以第一元素覆盖第二元素,在最佳解码电压数组中,以当前的读取电压覆盖前一读取电压。
S2056、保持最佳解码电压数组和电压长度数组不变。
S2057、判断当前数据单元是否为最后一个数据单元,若当前数据单元是最后一个数据单元,则结束流程。若当前数据单元并不是最后一个数据单元,则执行步骤S2058、切换到下一个数据单元,并返回步骤S2052。
请参阅图4所示,在本发明一实施例中,若第一元素大于或等于第二元素,则以当前读取电压下,获取的读取电压和电压长度作为最佳解码电压数组和电压长度数组该数据单元中该数据单元的元素。若第一元素小于第二元素,则以前一读取电压下,获取的读取电压和电压长度作为最佳解码电压数组和电压长度数组中该数据单元的元素。
请参阅图6所示,在本发明另一实施例中,首先使用第0组读取电压读取闪存页。此时,闪存页的数据单元CW4和数据单元CW6被解码。则在第0组读取电压对应的解码地图中,数据单元CW4和数据单元CW6的标识位被置位为0,其他数据单元的标识位被置位为1。则在循环中,在最佳解码电压数组和电压长度数组中,仅对数据单元CW4和数据单元CW6对应的元素进行更新,不会对数据单元CW0、数据单元CW1、数据单元CW2、数据单元CW3、数据单元CW5和数据单元CW7对应的元素进行更新。
请参阅图6所示,在本发明另一实施例中,对数据单元CW4和数据单元CW6更新时,当前读取电压(第0组读取电压)下,该闪存页的电压长度数组中,数据单元CW4和数据单元CW6对应的第一元素为1。由于不存在前一读取电压,则前一读取电压下,该闪存页的电压长度数组中,数据单元CW4和数据单元CW6对应的第二元素为0。此时,第一元素1大于第二元素0,则将电压长度数组中,数据单元CW4和数据单元CW6对应的元素均使用第二元素覆盖第一元素,即修改为1。在最佳解码电压数组中,将数据单元CW4和数据单元CW6对应的元素修改为当前读取电压,即0。表示数据单元CW4和数据单元CW6的最佳读取电压为第0组读取电压。
请参阅图6至图7所示,在本发明另一实施例中,接着使用第1组读取电压读取闪存页。此时,闪存页的数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7被解码。则在第1组读取电压对应的解码地图中,数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7的标识位被置位为0,其他数据单元的标识位被置位为1。则在循环中,在最佳解码电压数组和电压长度数组中,对数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7对应的元素进行更新,不会对数据单元CW0、数据单元CW1、数和数据单元CW5对应的元素进行更新。
请参阅图6至图7所示,在本发明另一实施例中,对数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7对应的元素进行更新。当前读取电压(第1组读取电压)下,该闪存页的电压长度数组中,数据单元CW2对应的第一元素为3,数据单元CW3对应的第一元素为2,数据单元CW4对应的第一元素为1,数据单元CW6对应的第一元素为2,数据单元CW7对应的第一元素为1。在前一读取电压(第0组读取电压)下,该闪存页的电压长度数组中,数据单元CW4和数据单元CW6对应的第二元素为1,数据单元CW2、数据单元CW3、数据单元CW6对应的第二元素为0。此时,在电压长度数组中,数据单元CW2的第一元素大于第二元素,数据单元CW3的第一元素大于第二元素,数据单元CW4的第一元素等于第二元素,数据单元CW6的第一元素大于第二元素,数据单元CW7的第一元素等于第二元素。则将在电压长度数组中,数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7对应的元素均使用第一元素覆盖第二元素。即在电压长度数组中,数据单元CW2对应的元素为3,数据单元CW3对应的元素为2,数据单元CW4对应的元素为1,数据单元CW6对应的元素为2,数据单元CW7对应的元素为1。并在最佳解码电压数组中,将数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7对应的元素修改为当前读取电压,即为1。表示数据单元CW2、数据单元CW3、数据单元CW4、数据单元CW6和数据单元CW7的最佳读取电压为第1组读取电压。
请参阅图7至图8所示,在本发明另一实施例中,接着使用第2组读取电压读取闪存页。此时,闪存页的数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7被解码。则在第1组读取电压对应的解码地图中,数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7的标识位被置位为0,其他数据单元的标识位被置位为1。则在循环中,在最佳解码电压数组和电压长度数组中,对数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7对应的元素进行更新,不会对数据单元CW2、数据单元CW3、数和数据单元CW4对应的元素进行更新。
请参阅图7至图8所示,在本发明另一实施例中,对数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7对应的元素进行更新。当前读取电压(第2组读取电压)下,该闪存页的电压长度数组中,数据单元CW0对应的第一元素为2,数据单元CW1对应的第一元素为1,数据单元CW5对应的第一元素为3,数据单元CW6对应的第一元素为2,数据单元CW7对应的第一元素为1。在前一读取电压(第1组读取电压)下,该闪存页的电压长度数组中,数据单元CW0对应的第二元素为0,数据单元CW1对应的第二元素为0,数据单元CW5对应的第二元素为0,数据单元CW6对应的第二元素为2,数据单元CW7对应的第二元素为1。此时,在电压长度数组中,数据单元CW0的第一元素大于第二元素,数据单元CW1的第一元素大于第二元素,数据单元CW5的第一元素等于第二元素,数据单元CW6的第一元素等于第二元素,数据单元CW7的第一元素等于第二元素。则将在电压长度数组中,数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7对应的元素均使用第一元素覆盖第二元素。即在电压长度数组中,数据单元CW0对应的元素为2,数据单元CW1对应的元素为2,数据单元CW5对应的元素为3,数据单元CW6对应的元素为2,数据单元CW7对应的元素为1。并在最佳解码电压数组中,将数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7对应的元素修改为当前读取电压,即为2。表示数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7的最佳读取电压为第2组读取电压。
步骤S206、判断是否每个数据单元都存在最佳读取电压,若每个数据单元都存在最佳读取电压,则执行步骤S207,若存在没有最佳读取电压的数据单元,则执行步骤S208。
步骤S207、依据最佳解码电压数组和电压长度数组读取闪存页中每个数据单元中的数据。
步骤S208、判断是否存在未使用的读取电压,若不存在未使用的电压,则表示读取失败,若存在未使用的电压,则执行步骤S209。
步骤S209、更新读取电压,并返回步骤S203。
请参阅图4所示,在本发明另一实施例中,在步骤S207中,当每个数据单元都存在最佳读取电压时,即表示该闪存页的每个数据单元均可在已存在的读取电压下被解码出来。则依据最佳解码电压数组和电压长度数组读取闪存页中每个数据单元中的数据。此时,可以依据最佳解码电压数组和电压长度数组中的元素对每个数据单元进行解码,即使用最佳解码电压数组中记录的读取电压对对应的数据单元进行解码。
请参阅图4所示,在本发明另一实施例中,在步骤204中,不存在解码成功的数据单元,以及在步骤S206中并非每个数据单元都存在最佳读取电压时,执行步骤S208、判断是否存在未使用的读取电压。其中,未使用的读取电压为在步骤S203中获取的,且在对该闪存页进行解码时未被使用的读取电压。即未使用的读取电压为在步骤S203中获取的,且在步骤S203中或在循环步骤S209中未被选取的读取电压。
请参阅图4所示,在本发明另一实施例中,若还存在未使用的电压,则执行步骤S209、更新读取电压。即在未使用的读取电压中再选取一个读取电压,重新执行步骤S203至步骤S209。若不存在未使用的读取电压,则表示在步骤S203中获取的读取电压被用尽,且闪存页中还存在未解码的数据单元,此时,表示对该闪存页的读取失败。
请参阅图6至图8所示,当使用同一读取电压读取一个闪存页时,对于图6至图8所示的闪存页,在多个读取电压下,均读取失败,不能对该闪存页进行读取。当使用如图2所示的数据处理方法读取该闪存页时,需要进行三次读取,第一次读取数据单元CW4和数据单元CW6,第二次读取数据单元CW2、数据单元CW3和数据单元CW7,第三次读取数据单元CW0、数据单元CW1和数据单元CW5。使用如图2所示的数据处理方法,可增加数据读取能力,提高读取效率。当使用如图3所示的数据处理方法读取该闪存页时,仅需要进行二次读取,第一次读取数据单元CW2、数据单元CW3和数据单元CW4,第二次读取数据单元CW0、数据单元CW1、数据单元CW5、数据单元CW6和数据单元CW7。使用如图3所示的数据处理方法,可进一步提高读取效率。
综上所述,本发明提供的数据存储设备的管理方法,首先,建立解码地图,再获取读取电压,并在一读取电压下,对闪存页内的数据单元进行解码。在读取电压下,若存在解码成功的数据单元,则依据数据单元的解码状态进行数据传输。若不存在解码成功的数据单元,则更新读取电压,并在更新的读取电压下,对闪存页内的所述数据单元进行解码,直至完成闪存页中数据单元的传输,或遍历所有读取电压。
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种数据处理方法,其特征在于,至少包括以下步骤:
建立解码地图,所述解码地图标识闪存页中的每个数据单元的解码状态;
获取读取电压,并在一所述读取电压下,对所述闪存页内的所述数据单元进行解码;
在所述读取电压下,若存在解码成功的所述数据单元,则依据所述数据单元的解码状态进行数据传输;若不存在解码成功的所述数据单元,则更新读取电压,并在更新的所述读取电压下,对所述闪存页内未被读取的所述数据单元进行解码,直至完成所述闪存页中所述数据单元的传输,或遍历所有所述读取电压;
建立最佳解码电压数组和电压长度数组,所述最佳解码电压数组中的元素记录所述数据单元的最佳读取电压,所述电压长度数组中的元素记录所述最佳读取电压对应的所述数据单元以及该所述数据单元后所述最佳读取电压覆盖的连续的所述数据单元的数量。
2.根据权利要求1所述的数据处理方法,其特征在于,依据所述数据单元的解码状态进行数据传输包括以下步骤:将解码成功的所述数据单元中的数据传递至主机,并更新所述解码地图。
3.根据权利要求1所述的数据处理方法,其特征在于,所述数据处理方法还包括以下步骤:
判断所述闪存页中的所述数据单元是否解码完成,若所述闪存页中的所述数据单元解码完成,则结束流程,若所述闪存页中的存在未被解码的所述数据单元,则判断是否存在未使用的所述读取电压。
4.根据权利要求1所述的数据处理方法,其特征在于,依据所述数据单元的解码状态进行数据传输包括以下步骤:更新所述解码地图、所述最佳解码电压数组和所述电压长度数组。
5.根据权利要求4所述的数据处理方法,其特征在于,依据所述数据单元的解码状态进行数据传输还包括以下步骤:判断所述闪存页中,是否每个所述数据单元都存在最佳读取电压,若每个所述数据单元都存在最佳读取电压,则依据所述最佳解码电压数组和所述电压长度数组读取所述闪存页中的每个所述数据单元中的数据。
6.根据权利要求4所述的数据处理方法,其特征在于,更新所述解码地图、所述最佳解码电压数组和所述电压长度数组包括以下步骤:
依据所述数据单元的排列顺序,定位一数据单元,并判断所述数据单元是否被成功解码。
7.根据权利要求6所述的数据处理方法,其特征在于,当所述数据单元被成功解码时,获取当前读取电压下,所述闪存页的电压长度数组中,所述数据单元对应的第一元素,以及前一读取电压下,所述闪存页的电压长度数组中,所述数据单元对应的第二元素。
8.根据权利要求7所述的数据处理方法,其特征在于,当所述第一元素大于或等于所述第二元素时,在所述闪存页的电压长度数组中,以所述第一元素覆盖所述第二元素,在所述闪存页的最佳解码电压数组中,以当前的读取电压覆盖前一读取电压。
9.根据权利要求7所述的数据处理方法,其特征在于,当所述第一元素小于所述第二元素,在所述闪存页的电压长度数组中,保持所述第二元素不变,在所述闪存页的最佳解码电压数组中,保持前一读取电压不变。
10.一种数据存储设备,其特征在于,所述数据存储设备上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1所述的数据处理方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310465181.4A CN116185309B (zh) | 2023-04-27 | 2023-04-27 | 一种数据处理方法及数据存储设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310465181.4A CN116185309B (zh) | 2023-04-27 | 2023-04-27 | 一种数据处理方法及数据存储设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116185309A CN116185309A (zh) | 2023-05-30 |
| CN116185309B true CN116185309B (zh) | 2023-08-08 |
Family
ID=86446595
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310465181.4A Active CN116185309B (zh) | 2023-04-27 | 2023-04-27 | 一种数据处理方法及数据存储设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116185309B (zh) |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101221813A (zh) * | 2006-10-20 | 2008-07-16 | 三星电子株式会社 | 闪存设备中恢复数据的方法和相关闪存设备存储系统 |
| CN105304114A (zh) * | 2014-07-28 | 2016-02-03 | 三星电子株式会社 | 存储装置和操作存储系统的方法 |
| US9633740B1 (en) * | 2016-02-11 | 2017-04-25 | Seagate Technology Llc | Read retry operations where likelihood value assignments change sign at different read voltages for each read retry |
| CN107437433A (zh) * | 2017-06-12 | 2017-12-05 | 中国科学院微电子研究所 | Nand闪存存储器的读操作方法、电子设备和计算机可读存储介质 |
| WO2018119900A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 数据读取方法及闪存设备 |
| CN111104044A (zh) * | 2018-10-25 | 2020-05-05 | 上海宝存信息科技有限公司 | 数据储存装置及其适应性数据读取方法 |
| CN113393883A (zh) * | 2021-06-22 | 2021-09-14 | 武汉理工大学 | 一种nand闪存的数据读取方法、装置及nand闪存系统 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9086984B2 (en) * | 2011-01-04 | 2015-07-21 | Seagate Technology Llc | Detection and decoding in flash memories with selective binary and non-binary decoding |
| US9135112B2 (en) * | 2012-12-11 | 2015-09-15 | Seagate Technology Llc | Policy for read operations addressing on-the-fly decoding failure in non-volatile memory |
| US10636495B2 (en) * | 2018-06-12 | 2020-04-28 | Western Digital Technologies, Inc. | Adjustable read retry order based on decoding success trend |
| CN111104245B (zh) * | 2018-10-29 | 2023-07-14 | 建兴储存科技(广州)有限公司 | 固态存储装置的读取重试方法 |
-
2023
- 2023-04-27 CN CN202310465181.4A patent/CN116185309B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101221813A (zh) * | 2006-10-20 | 2008-07-16 | 三星电子株式会社 | 闪存设备中恢复数据的方法和相关闪存设备存储系统 |
| CN105304114A (zh) * | 2014-07-28 | 2016-02-03 | 三星电子株式会社 | 存储装置和操作存储系统的方法 |
| US9633740B1 (en) * | 2016-02-11 | 2017-04-25 | Seagate Technology Llc | Read retry operations where likelihood value assignments change sign at different read voltages for each read retry |
| WO2018119900A1 (zh) * | 2016-12-29 | 2018-07-05 | 华为技术有限公司 | 数据读取方法及闪存设备 |
| CN107437433A (zh) * | 2017-06-12 | 2017-12-05 | 中国科学院微电子研究所 | Nand闪存存储器的读操作方法、电子设备和计算机可读存储介质 |
| CN111104044A (zh) * | 2018-10-25 | 2020-05-05 | 上海宝存信息科技有限公司 | 数据储存装置及其适应性数据读取方法 |
| CN113393883A (zh) * | 2021-06-22 | 2021-09-14 | 武汉理工大学 | 一种nand闪存的数据读取方法、装置及nand闪存系统 |
Non-Patent Citations (1)
| Title |
|---|
| 基于一种NAND闪存页缓存器设计的C/F读取算法研究;陈珂;杜智超;叶松;王颀;霍宗亮;;电子学报(第11期);全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116185309A (zh) | 2023-05-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7809994B2 (en) | Error correction coding for multiple-sector pages in flash memory devices | |
| JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
| US20070300130A1 (en) | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices | |
| US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
| CN111625188B (zh) | 一种存储器及其数据写入方法与存储系统 | |
| US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
| US9213636B2 (en) | Data accessing method for flash memory storage device having data perturbation module, and storage system and controller using the same | |
| CN113031856A (zh) | 存储器子系统中的断电数据保护 | |
| CN113485867A (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
| JP2009048680A (ja) | 記憶装置 | |
| US20250147896A1 (en) | Write requests with partial translation units | |
| KR102744552B1 (ko) | 데이터 저장 장치 및 이의 동작 방법 | |
| US11379362B2 (en) | Memory system and operating method thereof | |
| CN112230849A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
| JP2022096478A (ja) | メモリシステム及び制御方法 | |
| US12056367B2 (en) | Memory system and operating method thereof for performing urgent fine program operation | |
| US20190278703A1 (en) | Memory system, operating method thereof and electronic device | |
| CN116185309B (zh) | 一种数据处理方法及数据存储设备 | |
| CN113094307B (zh) | 映射信息管理方法、存储器存储装置及存储器控制器 | |
| CN114647595B (zh) | 固态硬盘及数据处理方法 | |
| KR101996136B1 (ko) | 빠른 판독 다중 레벨 3d nand가 수명 용량 향상시키는 것을 가능하게 하는 데이터 매핑 | |
| CN113220502B (zh) | 存储器管理方法、存储器存储装置及存储器控制器 | |
| US11762735B2 (en) | Interleaved ECC coding for key-value data storage devices | |
| CN120762581A (zh) | 存储器管理方法与存储装置 | |
| CN117170587A (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |