发明内容
有鉴于此,本发明的目的在于提出一种对闪存出错物理地址的标记方法和装置以及设备,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
根据本发明的一个方面,提供一种对闪存出错物理地址的标记方法,包括:
在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中;
将所述出错的物理地址和所述已经出错的用户数据一同发送到上位机;
控制所述上位机对所述已经出错的用户数据和原数据进行比较,根据所述比较出的出错数据的结果立即得出出错数据对应的物理页地址。
其中,所述在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中,包括:
在闪存的主控芯片读取物理页数据发生数据出错时,获取所述读取的物理页数据的逻辑地址和数据长度;
根据所述获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出所述读取的物理页数据在闪存中的物理页地址;
通过控制信号读取所述计算出的物理页地址对应的数据;
通过错误校验码对所述读取出的所述物理页地址对应的数据进行验证并纠错,在所述纠错失败时,则得出所述物理页地址对应的数据出错;
将所述数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中。
其中,所述控制所述上位机对所述已经出错的用户数据和原数据进行比较,根据所述比较出的出错数据的结果立即得出出错数据对应的物理页地址,包括:
控制所述上位机根据所述出错的物理地址和所述已经出错的用户数据,比较出错数据是否满足出错标记,在所述出错数据满足出错标记时,从所述已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址。
其中,所述控制所述上位机对所述已经出错的用户数据和原数据进行比较,根据所述比较出的出错数据的结果立即得出出错数据对应的物理页地址之后,还包括:
根据所述得出的出错数据对应的物理页地址,对所述得出的出错数据对应的物理页地址中的数据进行数据出错情况分析。
根据本发明的另一个方面,提供一种对闪存出错物理地址的标记装置,包括:
记录模块、发送模块和比较模块;
所述记录模块,用于在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中;
所述发送模块,用于将所述出错的物理地址和所述已经出错的用户数据一同发送到上位机;
所述比较模块,用于控制所述上位机对所述已经出错的用户数据和原数据进行比较,根据所述比较出的出错数据的结果立即得出出错数据对应的物理页地址。
其中,所述记录模块,具体用于:
在闪存的主控芯片读取物理页数据发生数据出错时,获取所述读取的物理页数据的逻辑地址和数据长度,和根据所述获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出所述读取的物理页数据在闪存中的物理页地址,和通过控制信号读取所述计算出的物理页地址对应的数据,和通过错误校验码对所述读取出的所述物理页地址对应的数据进行验证并纠错,在所述纠错失败时,则得出所述物理页地址对应的数据出错,以及将所述数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中。
其中,所述比较模块,具体用于:
控制所述上位机对所述已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在所述出错数据满足出错标记时,从所述已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址。
其中,所述对闪存出错物理地址的标记装置,还包括:
分析模块;
所述分析模块,用于根据所述得出的出错数据对应的物理页地址,对所述得出的出错数据对应的物理页地址中的数据进行数据出错情况分析。
根据本发明的又一个方面,提供一种对闪存出错物理地址的标记设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的对闪存出错物理地址的标记方法。
根据本发明的再一个方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的对闪存出错物理地址的标记方法。
可以发现,以上方案,可以在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中,和可以将该出错的物理地址和该已经出错的用户数据一同发送到上位机,以及控制该上位机根据该出错的物理地址和该已经出错的用户数据,比较出错数据,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
进一步的,以上方案,可以在闪存的主控芯片读取物理页数据发生数据出错时,获取该读取的物理页数据的逻辑地址和数据长度和根据该获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出该读取的物理页数据在闪存中的物理页地址,和通过控制信号读取该计算出的物理页地址对应的数据,和通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,以及将该数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中,这样的好处是能够实现通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,并将出错的物理地址记录在已经出错的用户数据中。
进一步的,以上方案,可以控制该上位机对该已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在该出错数据满足出错标记时,从该已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址,这样的好处是能够实现能够根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
进一步的,以上方案,可以根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,这样的好处是能够实现对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,得出数据出错原因,能够避免再次出现同样的数据出错情况。
具体实施方式
下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种对闪存出错物理地址的标记方法,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
请参见图1,图1是本发明对闪存出错物理地址的标记方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:
S101:在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中。
其中,该在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中,可以包括:
在闪存的主控芯片读取物理页数据发生数据出错时,获取该读取的物理页数据的逻辑地址和数据长度;
根据该获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出该读取的物理页数据在闪存中的物理页地址;
通过控制信号读取该计算出的物理页地址对应的数据;
通过ECC(Error Correcting Code,错误校验码)对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错;
将该数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中,这样的好处是能够实现通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,并将出错的物理地址记录在已经出错的用户数据中。
在本实施例中,由于闪存的存储特性,存储在物理页上的数据可能会出现Bit(binary digit,比特)反转,所以在写入普通数据的同时往往需要加入错误校验ECC码对数据进行保护。在数据读取过时,通过ECC算法,可以计算出该页数据是否出错,如果出错的Bit在ECC纠错能力范围内,可以将错误的Bit纠正过来。如果出错的Bit数超出了ECC的纠错能力,则无法纠错,但是闪存的主控芯片能够得知该物理页数据已经损坏。
在本实施例中,物理页数据无论是否出错都会被读入闪存的主控芯片的RAM(Random Access Memory,随机存取存储器)中。
在本实施例中,如果通过ECC校验方式,发现闪存的物理页发生错误,并无法纠错时,可以将RAM中出错的物理页数据的前预设数值的字节如4Byte(字节)修改为该出错物理页的地址,并在后续4Byte记录为数据出错的类型。出错的类型可以分别记录为:数据Bit出错记录为0Xbbbbbb01,数据全1出错记录为0Xbbbbbb02,数据全0出错记录为0Xbbbbbb03。
S102:将该出错的物理地址和该已经出错的用户数据一同发送到HOST(上位机)。
在本实施例中,可以将该出错的物理地址和该已经出错的用户数据一同同时发送到上位机,也可以将该出错的物理地址和该已经出错的用户数据一前一后一同发送到上位机,本发明不加以限定。
S103:控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
其中,该控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址,可以包括:
控制该上位机对该已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在该出错数据满足出错标记时,从该已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址,这样的好处是能够实现能够根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
其中,在该控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址之后,还可以包括:
根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,这样的好处是能够实现对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,得出数据出错原因,能够避免再次出现同样的数据出错情况。
在本实施例中,可以控制该上位机根据该出错的物理地址和该已经出错的用户数据,比较出错数据,通过比较出错数据的前8Byte,如果后4Byte满足出错标记例如0Xbbbbbb01,0Xbbbbbb02,0Xbbbbbb03,则说明该物理页数据出错,并且可以通过前4Byte得到出错的物理页地址。数据比较软件将所有出错的物理页地址记录并整理,能够实现通过出错的物理页数据和出错的类型情况分析该存储器数据出错的原因。
可以发现,在本实施例中,可以在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中,和可以将该出错的物理地址和该已经出错的用户数据一同发送到上位机,以及控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
进一步的,在本实施例中,可以在闪存的主控芯片读取物理页数据发生数据出错时,获取该读取的物理页数据的逻辑地址和数据长度和根据该获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出该读取的物理页数据在闪存中的物理页地址,和通过控制信号读取该计算出的物理页地址对应的数据,和通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,以及将该数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中,这样的好处是能够实现通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,并将出错的物理地址记录在已经出错的用户数据中。
进一步的,在本实施例中,可以控制该上位机对该已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在该出错数据满足出错标记时,从该已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址,这样的好处是能够实现能够根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
请参见图2,图2是本发明对闪存出错物理地址的标记方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:
S201:在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中。
可如上S101所述,在此不作赘述。
S202:将该出错的物理地址和该已经出错的用户数据一同发送到上位机。
可如上S102所述,在此不作赘述。
S203:控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
可如上S103所述,在此不作赘述。
S204:根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析。
可以发现,在本实施例中,可以根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,这样的好处是能够实现对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,得出数据出错原因,能够避免再次出现同样的数据出错情况。
本发明还提供一种对闪存出错物理地址的标记装置,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
请参见图3,图3是本发明对闪存出错物理地址的标记装置一实施例的结构示意图。本实施例中,该对闪存出错物理地址的标记装置30包括记录模块31、发送模块32和比较模块33。
该记录模块31,用于在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中。
该发送模块32,用于将该出错的物理地址和该已经出错的用户数据一同发送到上位机。
该比较模块33,用于控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
可选地,该记录模块31,可以具体用于:
在闪存的主控芯片读取物理页数据发生数据出错时,获取该读取的物理页数据的逻辑地址和数据长度,和根据该获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出该读取的物理页数据在闪存中的物理页地址,和通过控制信号读取该计算出的物理页地址对应的数据,和通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,以及将该数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中。
可选地,该比较模块33,可以具体用于:
控制该上位机对该已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在该出错数据满足出错标记时,从该已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址。
请参见图4,图4是本发明对闪存出错物理地址的标记装置另一实施例的结构示意图。区别于上一实施例,本实施例所述对闪存出错物理地址的标记装置40还包括分析模块41。
该分析模块,用于根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析。
该对闪存出错物理地址的标记装置30/40的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明又提供一种对闪存出错物理地址的标记设备,如图5所示,包括:至少一个处理器51;以及,与至少一个处理器51通信连接的存储器52;其中,存储器52存储有可被至少一个处理器51执行的指令,指令被至少一个处理器51执行,以使至少一个处理器51能够执行上述的对闪存出错物理地址的标记方法。
其中,存储器52和处理器51采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器51和存储器52的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器51处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器51。
处理器51负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器52可以被用于存储处理器51在执行操作时所使用的数据。
本发明再提供一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
可以发现,以上方案,可以在闪存的主控芯片读取物理页数据发生数据出错时,将出错的物理地址记录在已经出错的用户数据中,和可以将该出错的物理地址和该已经出错的用户数据一同发送到上位机,以及控制该上位机对该已经出错的用户数据和原数据进行比较,根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址,能够实现在读取闪存物理页数据发生数据出错时,能够立即得知对应的是闪存的哪一个物理地址出错。
进一步的,以上方案,可以在闪存的主控芯片读取物理页数据发生数据出错时,获取该读取的物理页数据的逻辑地址和数据长度和根据该获取的物理页数据的逻辑地址和数据长度,通过逻辑映射表计算出该读取的物理页数据在闪存中的物理页地址,和通过控制信号读取该计算出的物理页地址对应的数据,和通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,以及将该数据出错的物理页地址对应的物理地址记录在已经出错的用户数据中,这样的好处是能够实现通过错误校验码对该读取出的该物理页地址对应的数据进行验证并纠错,在该纠错失败时,则得出该物理页地址对应的数据出错,并将出错的物理地址记录在已经出错的用户数据中。
进一步的,以上方案,可以控制该上位机对该已经出错的用户数据和原数据进行比较,比较出错数据是否满足出错标记,在该出错数据满足出错标记时,从该已经出错的用户数据的预设位置上的数据立即得出出错数据对应的物理页地址,这样的好处是能够实现能够根据该比较出的出错数据的结果立即得出出错数据对应的物理页地址。
进一步的,以上方案,可以根据该得出的出错数据对应的物理页地址,对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,这样的好处是能够实现对该得出的出错数据对应的物理页地址中的数据进行数据出错情况分析,得出数据出错原因,能够避免再次出现同样的数据出错情况。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。