CN111625481B - 一种防止闪存比特错误放大的方法和装置以及设备 - Google Patents
一种防止闪存比特错误放大的方法和装置以及设备 Download PDFInfo
- Publication number
- CN111625481B CN111625481B CN202010351017.7A CN202010351017A CN111625481B CN 111625481 B CN111625481 B CN 111625481B CN 202010351017 A CN202010351017 A CN 202010351017A CN 111625481 B CN111625481 B CN 111625481B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- detection result
- error
- transmitted 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
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)
- Read Only Memory (AREA)
Abstract
本发明公开了一种防止闪存比特错误放大的方法和装置以及设备。其中,所述方法包括:给上位机和闪存之间进行数据传输,和在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果,和根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据,以及通过闪存控制器将该正确的数据输送到闪存的缓存器中。通过上述方式,能够实现避免出现闪存比特错误被放大的情况出现。
Description
技术领域
本发明涉及闪存技术领域,尤其涉及一种防止闪存比特错误放大的方法和装置以及设备。
背景技术
随着Nand Flash(闪存)技术的发展,闪存已从SLC(Single-Level Cell,单层存储单元)固态硬盘发展到了QLC(Quad-Level Cell,四层存储单元)固态硬盘,从每个存储单元存放1Bit(binary digit,比特)数据到存放4Bit数据,随之而来的是出现Bit错误概率的增大,从而要求闪存控制器具备越来越强大的错误纠正算法,来保证数据的正确性。
但是从成本的考虑来说,闪存控制器不可能无限加强纠错能力,而且控制器也必须要具备一定的向后兼容能力,对于新出的Nand Flash需要具备一定的支持能力,在新控制器诞生之前的过渡期内对新的Nand Flash提供尽可能好的支持。
众所周知,Nand Flash在进入TLC(Triple-Level Cell,三层存储单元)技术之后,对于控制器的纠错能力大幅提高,而另一方面,由于容量的不断提升,使得Nand Flash的Page Size(页面大小)越来越大。基于Nand Flash本身算法的需要,内部之间的数据搬移是非常频繁的,控制器都是用Nand Flash内置的Copy-Back(回写式)命令进行搬移。这个回写式命令通过一组“读取-编程”的命令就可以将一个Page(页面)的数据在Nand Flash内部搬移到另一个指定Page,而无需与闪存控制器之间进行任何的数据传输,从而提高了数据搬移的速度。
然而,正是因为这种搬移缺少了闪存控制器的参与,由于Nand Flash本身Bit错误几率的大增,在Nand Flash内部的“读”命令将数据从存储单元读取到内部的Register(缓存器)中时,这个Bit错就可能发生了,而在内部的“编程”命令将这些数据写入到另一个Page的时候,相当于原始数据本来就是错误的,那么在将来这个Page的数据被读取时,同时又可能产生新的Bit错误,从而使得Bit错误被放大了。
发明内容
有鉴于此,本发明的目的在于提出一种防止闪存比特错误放大的方法和装置以及设备,能够实现避免出现闪存比特错误被放大的情况出现。
根据本发明的一个方面,提供一种防止闪存比特错误放大的方法,包括:将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA;给上位机和闪存之间进行数据传输;在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果;根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据。
其中,所述给上位机和闪存之间进行数据传输,包括:通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输。
其中,所述在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果,包括:在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到所述传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到所述传输的数据是在错误可被安全纠正的范围内的检测结果。
其中,所述根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据,包括:根据所述得到的检测结果,在所述检测结果是所述传输的数据是在错误可被安全纠正的范围内时,对所述在错误可被安全纠正的范围内的数据不进行纠错,在所述检测结果是所述传输的数据是不在错误可被安全纠正的范围内时,对所述比特错误数据进行纠错得到正确的数据。
其中,在所述给上位机和闪存之间进行数据传输之前,还包括:将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA。
根据本发明的另一个方面,提供一种防止闪存比特错误放大的装置,包括:传输模块、检测模块、纠错模块和输送模块;所述传输模块,用于给上位机和闪存之间进行数据传输;所述检测模块,用于在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果;所述纠错模块,用于根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据;所述输送模块,用于通过闪存控制器将所述正确的数据输送到闪存的缓存器中。
其中,所述传输模块,具体用于:通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输。
其中,所述检测模块,具体用于:在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到所述传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到所述传输的数据是在错误可被安全纠正的范围内的检测结果。
其中,所述纠错模块,具体用于:根据所述得到的检测结果,在所述检测结果是所述传输的数据是在错误可被安全纠正的范围内时,对所述在错误可被安全纠正的范围内的数据不进行纠错,在所述检测结果是所述传输的数据是不在错误可被安全纠正的范围内时,对所述比特错误数据进行纠错得到正确的数据。
其中,所述防止闪存比特错误放大的装置,还包括:分页模块;所述分页模块,用于将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA。
根据本发明的又一个方面,提供一种防止闪存比特错误放大的设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的防止闪存比特错误放大的方法。
根据本发明的再一个方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的防止闪存比特错误放大的方法。
可以发现,以上方案,可以给上位机和闪存之间进行数据传输,和可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果,和可以根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据,以及可以通过闪存控制器将该正确的数据输送到闪存的缓存器中,能够实现避免出现闪存比特错误被放大的情况出现。
进一步的,以上方案,可以通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输,这样的好处是能够实现通过该闪存控制器内部的缓冲区空间来给上位机和闪存之间进行数据传输做中转,能够达到避免闪存比特错误被放大的目的。
进一步的,以上方案,可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到该传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到该传输的数据是在错误可被安全纠正的范围内的检测结果,这样的好处是能够实现在避免出现闪存比特错误被放大的情况出现的同时又将闪存的数据处理速度损耗减到最小。
进一步的,以上方案,可以根据该得到的检测结果,在该检测结果是该传输的数据是在错误可被安全纠正的范围内时,对该在错误可被安全纠正的范围内的数据不进行纠错,在该检测结果是该传输的数据是不在错误可被安全纠正的范围内时,对该比特错误数据进行纠错得到正确的数据,这样的好处是因为对该在错误可被安全纠正的范围内的数据不进行纠错,那么回传到闪存的缓存器的过程就可以省略,能够节省该在错误可被安全纠正的范围内的数据的传输时间。
进一步的,以上方案,可以将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA,这样的好处是能够实现后续便于通过仅在该分页成的至少两个DMA中存在闪存比特错误的页进行随机插入纠错数据进行纠错,而在该分页成的至少两个DMA中不存在闪存比特错误的页不进行随机插入纠错数据的方式,从而能够尽可能的节省该在上位机和闪存之间进行数据传输的传输时间,将闪存的数据处理速度损耗减到最小。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明防止闪存比特错误放大的方法一实施例的流程示意图;
图2是本发明防止闪存比特错误放大的方法另一实施例的流程示意图;
图3是本发明防止闪存比特错误放大的装置一实施例的结构示意图;
图4是本发明防止闪存比特错误放大的装置另一实施例的结构示意图;
图5是本发明防止闪存比特错误放大的设备一实施例的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种防止闪存比特错误放大的方法,能够实现避免出现闪存比特错误被放大的情况出现。
请参见图1,图1是本发明防止闪存比特错误放大的方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
S101:给上位机和闪存之间进行数据传输。
其中,该给上位机和闪存之间进行数据传输,可以包括:
通过闪存控制器内部的Buffer(缓冲区)空间,给上位机和闪存之间进行数据传输,这样的好处是能够实现通过该闪存控制器内部的缓冲区空间来给上位机和闪存之间进行数据传输做中转,能够达到避免闪存比特错误被放大的目的。
其中,在该给上位机和闪存之间进行数据传输之前,还可以包括:
将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA(DirectMemory Access,直接内存存取页),这样的好处是能够实现后续便于通过仅在该分页成的至少两个DMA中存在闪存比特错误的页进行Random(随机)插入纠错数据进行纠错,而在该分页成的至少两个DMA中不存在闪存比特错误的页不进行随机插入纠错数据的方式,从而能够尽可能的节省该在上位机和闪存之间进行数据传输的传输时间,将闪存的数据处理速度损耗减到最小。
在本实施例中,闪存是可以支持随机的数据插入的,由于闪存控制器的DMA传输和纠错大多基于512B(Byte,字节)或者1024B的,而闪存的Page Size通常都是8KB(Kilobyte,千字节)或16KB,一个页面会被分页成多个DMA传输,这样就会出现有的DMA数据有错,有的DMA数据无错,这样就可以将整个在上位机和闪存之间进行的数据传输过程优化成在存在闪存比特错误的页进行随机插入纠错数据进行纠错,其它的则可以省略,从而尽可能的节省在上位机和闪存之间进行的数据传输的传输时间,将闪存的数据处理速度损耗减到最小。
S102:在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果。
其中,该在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果,可以包括:
在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到该传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到该传输的数据是在错误可被安全纠正的范围内的检测结果,这样的好处是能够实现在避免出现闪存比特错误被放大的情况出现的同时又将闪存的数据处理速度损耗减到最小。
S103:根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据。
其中,该根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据,可以包括:
根据该得到的检测结果,在该检测结果是该传输的数据是在错误可被安全纠正的范围内时,对该在错误可被安全纠正的范围内的数据不进行纠错,在该检测结果是该传输的数据是不在错误可被安全纠正的范围内时,对该比特错误数据进行纠错得到正确的数据,这样的好处是因为对该在错误可被安全纠正的范围内的数据不进行纠错,那么回传到闪存的缓存器的过程就可以省略,能够节省该在错误可被安全纠正的范围内的数据的传输时间。
在本实施例中,在闪存进行回写式命令时,一般是不需要进行数据的传输的,只是一个从存储单元-->Register-->存储单元的过程。如果在数据到达Register之后让闪存控制器介入,可以将数据从Register读出到闪存控制器内部的Buffer中,而在这个过程中可以在数据通过闪存控制器的总线时,闪存控制器内部的纠错模块例如ECC(ErrorCorrecting Code,错误检查和纠正)模块、LDPC(Low Density Parity Check Code,低密度奇偶校验码)模块等可以将已经发生的Bit错误纠正,因此闪存控制器内部的Buffer中的数据就是正确的数据了。
S104:通过闪存控制器将该正确的数据输送到闪存的缓存器中。
在本实施例中,闪存控制器可以介入编程命令,将正确的数据传输到Register中,从而写入新页面的数据就是纠正过了的真正的原始数据,而不是发生了Bit错误的错误数据了,这样也就避免了Bit错误在不断的数据搬移过程中被不断放大的情况出现。
可以发现,在本实施例中,可以给上位机和闪存之间进行数据传输,和可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果,和可以根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据,以及可以通过闪存控制器将该正确的数据输送到闪存的缓存器中,能够实现避免出现闪存比特错误被放大的情况出现。
进一步的,在本实施例中,可以通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输,这样的好处是能够实现通过该闪存控制器内部的缓冲区空间来给上位机和闪存之间进行数据传输做中转,能够达到避免闪存比特错误被放大的目的。
进一步的,在本实施例中,可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到该传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到该传输的数据是在错误可被安全纠正的范围内的检测结果,这样的好处是能够实现在避免出现闪存比特错误被放大的情况出现的同时又将闪存的数据处理速度损耗减到最小。
进一步的,在本实施例中,可以根据该得到的检测结果,在该检测结果是该传输的数据是在错误可被安全纠正的范围内时,对该在错误可被安全纠正的范围内的数据不进行纠错,在该检测结果是该传输的数据是不在错误可被安全纠正的范围内时,对该比特错误数据进行纠错得到正确的数据,这样的好处是因为对该在错误可被安全纠正的范围内的数据不进行纠错,那么回传到闪存的缓存器的过程就可以省略,能够节省该在错误可被安全纠正的范围内的数据的传输时间。
请参见图2,图2是本发明防止闪存比特错误放大的方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:
S201:将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA。
S202:给上位机和闪存之间进行数据传输。
可如上S101所述,在此不作赘述。
S203:在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果。
可如上S102所述,在此不作赘述。
S204:根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据。
可如上S103所述,在此不作赘述。
S205:通过闪存控制器将该正确的数据输送到闪存的缓存器中。
可如上S104所述,在此不作赘述。
可以发现,在本实施例中,可以将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA,这样的好处是能够实现后续便于通过仅在该分页成的至少两个DMA中存在闪存比特错误的页进行随机插入纠错数据进行纠错,而在该分页成的至少两个DMA中不存在闪存比特错误的页不进行随机插入纠错数据的方式,从而能够尽可能的节省该在上位机和闪存之间进行数据传输的传输时间,将闪存的数据处理速度损耗减到最小。
本发明还提供一种防止闪存比特错误放大的装置,能够实现避免出现闪存比特错误被放大的情况出现。
请参见图3,图3是本发明防止闪存比特错误放大的装置一实施例的结构示意图。本实施例中,该防止闪存比特错误放大的装置30包括传输模块31、检测模块32、纠错模块33和输送模块34。
该传输模块31,用于给上位机和闪存之间进行数据传输。
该检测模块32,用于在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果。
该纠错模块33,用于根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据。
该输送模块34,用于通过闪存控制器将该正确的数据输送到闪存的缓存器中。
可选地,该传输模块31,可以具体用于:
通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输。
可选地,该检测模块32,可以具体用于:
在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到该传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到该传输的数据是在错误可被安全纠正的范围内的检测结果。
可选地,该纠错模块33,可以具体用于:
根据该得到的检测结果,在该检测结果是该传输的数据是在错误可被安全纠正的范围内时,对该在错误可被安全纠正的范围内的数据不进行纠错,在该检测结果是该传输的数据是不在错误可被安全纠正的范围内时,对该比特错误数据进行纠错得到正确的数据。
请参见图4,图4是本发明防止闪存比特错误放大的装置另一实施例的结构示意图。区别于上一实施例,本实施例所述防止闪存比特错误放大的装置40还包括分页模块41。
该分页模块41,用于将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA。
该防止闪存比特错误放大的装置30/40的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明又提供一种防止闪存比特错误放大的设备,如图5所示,包括:至少一个处理器51;以及,与至少一个处理器51通信连接的存储器52;其中,存储器52存储有可被至少一个处理器51执行的指令,指令被至少一个处理器51执行,以使至少一个处理器51能够执行上述的防止闪存比特错误放大的方法。
其中,存储器52和处理器51采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器51和存储器52的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器51处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器51。
处理器51负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器52可以被用于存储处理器51在执行操作时所使用的数据。
本发明再提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
可以发现,以上方案,可以给上位机和闪存之间进行数据传输,和可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误得到检测结果,和可以根据该得到的检测结果,对关联该检测结果的比特错误数据进行纠错得到正确的数据,以及可以通过闪存控制器将该正确的数据输送到闪存的缓存器中,能够实现避免出现闪存比特错误被放大的情况出现。
进一步的,以上方案,可以通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输,这样的好处是能够实现通过该闪存控制器内部的缓冲区空间来给上位机和闪存之间进行数据传输做中转,能够达到避免闪存比特错误被放大的目的。
进一步的,以上方案,可以在该传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测该传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到该传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到该传输的数据是在错误可被安全纠正的范围内的检测结果,这样的好处是能够实现在避免出现闪存比特错误被放大的情况出现的同时又将闪存的数据处理速度损耗减到最小。
进一步的,以上方案,可以根据该得到的检测结果,在该检测结果是该传输的数据是在错误可被安全纠正的范围内时,对该在错误可被安全纠正的范围内的数据不进行纠错,在该检测结果是该传输的数据是不在错误可被安全纠正的范围内时,对该比特错误数据进行纠错得到正确的数据,这样的好处是因为对该在错误可被安全纠正的范围内的数据不进行纠错,那么回传到闪存的缓存器的过程就可以省略,能够节省该在错误可被安全纠正的范围内的数据的传输时间。
进一步的,以上方案,可以将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA,这样的好处是能够实现后续便于通过仅在该分页成的至少两个DMA中存在闪存比特错误的页进行随机插入纠错数据进行纠错,而在该分页成的至少两个DMA中不存在闪存比特错误的页不进行随机插入纠错数据的方式,从而能够尽可能的节省该在上位机和闪存之间进行数据传输的传输时间,将闪存的数据处理速度损耗减到最小。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种防止闪存比特错误放大的方法,其特征在于,包括:
将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA;
给上位机和闪存之间进行数据传输;
在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果;
根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据;
通过闪存控制器将所述正确的数据输送到闪存的缓存器中;
所述根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据,包括:
根据所述得到的检测结果,在所述检测结果是所述传输的数据是在错误可被安全纠正的范围内时,对所述在错误可被安全纠正的范围内的数据不进行纠错,在所述检测结果是所述传输的数据是不在错误可被安全纠正的范围内时,对所述比特错误数据进行纠错得到正确的数据;
其中,所述根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据,包括:
在存在闪存比特错误的页进行随机插入纠错数据进行纠错。
2.如权利要求1所述的防止闪存比特错误放大的方法,其特征在于,所述给上位机和闪存之间进行数据传输,包括:
通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输。
3.如权利要求1所述的防止闪存比特错误放大的方法,其特征在于,所述在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果,包括:
在所述传输的数据从缓存器中读出闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到所述传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到所述传输的数据是在错误可被安全纠正的范围内的检测结果。
4.一种防止闪存比特错误放大的装置,其特征在于,包括:
传输模块、检测模块、纠错模块、输送模块和分页模块;
所述传输模块,用于给上位机和闪存之间进行数据传输;
所述检测模块,用于在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误得到检测结果;
所述纠错模块,用于根据所述得到的检测结果,对关联所述检测结果的比特错误数据进行纠错得到正确的数据;
所述输送模块,用于通过闪存控制器将所述正确的数据输送到闪存的缓存器中;
所述分页模块,用于将需要在上位机和闪存之间进行数据传输的数据页分页成至少两个DMA;
所述纠错模块,具体用于:
根据所述得到的检测结果,在所述检测结果是所述传输的数据是在错误可被安全纠正的范围内时,对所述在错误可被安全纠正的范围内的数据不进行纠错,在所述检测结果是所述传输的数据是不在错误可被安全纠正的范围内时,对所述比特错误数据进行纠错得到正确的数据;
所述纠错模块,具体还用于:
在存在闪存比特错误的页进行随机插入纠错数据进行纠错。
5.如权利要求4所述的防止闪存比特错误放大的装置,其特征在于,所述传输模块,具体用于:
通过闪存控制器内部的缓冲区空间,给上位机和闪存之间进行数据传输。
6.如权利要求4所述的防止闪存比特错误放大的装置,其特征在于,所述检测模块,具体用于:
在所述传输的数据从缓存器中读出到闪存控制器内部的缓冲区空间的过程中,通过闪存控制器检测所述传输的数据是否存在比特错误的数量不小于预设错误阈值的情况,在检测出是不小于预设的错误阈值的情况时得到所述传输的数据是不在错误可被安全纠正的范围内的检测结果,在检测出是小于预设的错误阈值的情况时得到所述传输的数据是在错误可被安全纠正的范围内的检测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351017.7A CN111625481B (zh) | 2020-04-28 | 2020-04-28 | 一种防止闪存比特错误放大的方法和装置以及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351017.7A CN111625481B (zh) | 2020-04-28 | 2020-04-28 | 一种防止闪存比特错误放大的方法和装置以及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111625481A CN111625481A (zh) | 2020-09-04 |
CN111625481B true CN111625481B (zh) | 2022-07-26 |
Family
ID=72270830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010351017.7A Active CN111625481B (zh) | 2020-04-28 | 2020-04-28 | 一种防止闪存比特错误放大的方法和装置以及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111625481B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112767976B (zh) * | 2021-01-09 | 2023-09-01 | 深圳市德明利技术股份有限公司 | 平稳闪存写速度的方法、装置、存储介质和计算机设备 |
CN112397136B (zh) * | 2021-01-21 | 2021-05-14 | 武汉精鸿电子技术有限公司 | 一种半导体存储器测试软件的参数测试方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE40252E1 (en) * | 1998-12-10 | 2008-04-22 | Kabushiki Kaisha Toshiba | Flash memory control method, flash memory system using the control method and flash memory device using the control method |
CN102411548A (zh) * | 2011-10-27 | 2012-04-11 | 忆正存储技术(武汉)有限公司 | 闪存控制器以及闪存间数据传输方法 |
CN103295634A (zh) * | 2012-02-22 | 2013-09-11 | 慧荣科技股份有限公司 | 读取快闪存储器中所储存的数据的方法、存储器控制器与系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2630573B1 (en) * | 2010-10-22 | 2015-05-20 | ST-Ericsson SA | Methods and devices for reducing compressed page loading time on page fault |
CN110764693B (zh) * | 2019-09-12 | 2023-03-28 | 深圳市德明利技术股份有限公司 | 一种提高Nand flash数据稳定性的方法以及装置 |
-
2020
- 2020-04-28 CN CN202010351017.7A patent/CN111625481B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE40252E1 (en) * | 1998-12-10 | 2008-04-22 | Kabushiki Kaisha Toshiba | Flash memory control method, flash memory system using the control method and flash memory device using the control method |
CN102411548A (zh) * | 2011-10-27 | 2012-04-11 | 忆正存储技术(武汉)有限公司 | 闪存控制器以及闪存间数据传输方法 |
CN103295634A (zh) * | 2012-02-22 | 2013-09-11 | 慧荣科技股份有限公司 | 读取快闪存储器中所储存的数据的方法、存储器控制器与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111625481A (zh) | 2020-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7231580B2 (en) | Nonvolatile memory apparatus and data processing system | |
US11557352B2 (en) | Adjustable read retry order based on decoding success trend | |
US8238244B2 (en) | Packet deconstruction/reconstruction and link-control | |
US9081662B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US20090307537A1 (en) | Flash storage device with data correction function | |
CN111625481B (zh) | 一种防止闪存比特错误放大的方法和装置以及设备 | |
US20070234142A1 (en) | Memory system, memory system controller, and a data processing method in a host apparatus | |
US8301981B2 (en) | Data access method for flash memory and storage system and controller thereof | |
US9063888B2 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
CN112612634A (zh) | 存储器系统和主机的操作方法以及计算系统 | |
CN103984506A (zh) | 闪存存储设备数据写的方法和系统 | |
CN108345514B (zh) | 存储器件、存储系统及其操作方法 | |
CN108762975B (zh) | 一种ecc数据存储方法、系统及存储介质 | |
CN110058955B (zh) | 具有错误纠正功能的内存和相关内存系统 | |
US9652378B2 (en) | Writing method, memory controller and memory storage device | |
CN102508730B (zh) | 非挥发性内存模块、内存处理系统及其内存管理方法 | |
CN112162935B (zh) | 存储芯片的数据处理方法、装置、计算机设备及存储介质 | |
CN110321073B (zh) | 一种闪存的数据存储方法和装置以及设备 | |
CN110471818B (zh) | 一种对闪存出错物理地址的标记方法和装置以及设备 | |
US10169224B2 (en) | Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit | |
US20200210274A1 (en) | Data processing device | |
CN113936728A (zh) | 一种数据处理方法、系统、计算机设备及可读存储介质 | |
CN118113207A (zh) | 数据写入方法、存储装置及电子设备 | |
CN113612484A (zh) | 一种硬判决和软判决相结合的高效ldpc纠错算法的实现方法 | |
CN114627938A (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 | ||
CB02 | Change of applicant information |
Address after: 2501, 2401, block a, building 1, Shenzhen new generation industrial park, 136 Zhongkang Road, Meidu community, Meilin street, Futian District, Shenzhen, Guangdong 518000 Applicant after: Shenzhen deminli Technology Co.,Ltd. Address before: 701, 707, wisdom Valley Innovation Park, 1010 Bulong Road, Xinniu community, Minzhi street, Longhua District, Shenzhen, Guangdong 518000 Applicant before: Shenzhen deminli Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |