CN115512757A - 错误复现修复方法、装置、设备及存储介质 - Google Patents

错误复现修复方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN115512757A
CN115512757A CN202211360321.3A CN202211360321A CN115512757A CN 115512757 A CN115512757 A CN 115512757A CN 202211360321 A CN202211360321 A CN 202211360321A CN 115512757 A CN115512757 A CN 115512757A
Authority
CN
China
Prior art keywords
main control
control chip
error
original file
writing
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.)
Granted
Application number
CN202211360321.3A
Other languages
English (en)
Other versions
CN115512757B (zh
Inventor
曾庆聪
胡来胜
陈向兵
张如宏
张辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Sandi Yixin Electronics Co ltd
Original Assignee
Shenzhen Sandiyixin Electronic Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Sandiyixin Electronic Co ltd filed Critical Shenzhen Sandiyixin Electronic Co ltd
Priority to CN202211360321.3A priority Critical patent/CN115512757B/zh
Publication of CN115512757A publication Critical patent/CN115512757A/zh
Application granted granted Critical
Publication of CN115512757B publication Critical patent/CN115512757B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种错误复现修复方法、装置、设备及存储介质。该方法包括:控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序;控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件;按照写入顺序控制主控芯片往闪存颗粒写入原始文件,写入期间记录主控芯片的工作状态;基于工作状态对主控芯片进行错误修复;对主控芯片进行错误修复后把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间记录主控芯片的工作状态;基于工作状态对主控芯片进行错误修复。本申请能够复现主控芯片对历史数据写入过程,并快速、准确、定位和修复主控芯片,提高主控芯片的稳定性。

Description

错误复现修复方法、装置、设备及存储介质
技术领域
本发明涉及存储技术领域,尤其涉及一种错误复现修复方法、装置、设备及存储介质。
背景技术
闪存颗粒(NAND Flash,NF)因具有高容量、改写速度快等优点,其被广泛使用于各行各业当中,但由于闪存颗粒其不稳定的特点,闪存颗粒需要专门配置主控芯片来控制闪存颗粒实现数据的写入、读取等操作。
相关技术中需要测试主控芯片控制闪存颗粒写入数据时数据是否会发生错误,以此验证主控芯片的稳定性。但由于无法复现主控芯片对历史数据写入过程,导致无法快速、准确、定位和修复主控芯片的问题,这无疑会影响主控芯片的稳定性。
发明内容
为解决或者部分解决相关技术中的问题,本发明提供一种错误复现方法、装置、设备及存储介质,以解决无法复现主控芯片对历史数据写入过程,导致无法快速、准确、定位和修复主控芯片,影响主控芯片的稳定性的问题。
本申请第一方面提供一种错误复现修复方法,该错误复现修复方法,包括:
控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序;
控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件;
按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态;
基于工作状态对主控芯片进行错误修复;
对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态;
基于工作状态再次对主控芯片进行错误修复。
作为本申请一种可能的实施方式,在该实施方式中,控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序之前,还包括:
对需要写入至闪存颗粒中的原始文件进行编号;
记录原始文件的写入顺序,包括:
根据原始文件对应的编号,记录原始文件的写入顺序。
作为本申请一种可能的实施方式,在该实施方式中,读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件之后,还包括:
控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除。
作为本申请一种可能的实施方式,在该实施方式中,该错误复现修复方法,还包括:
判断主控芯片对应的错误复现修复次数;若主控芯片对应的错误修复次数大于或者等于预设调试次数,则结束执行对主控芯片的错误复现修复过程;
若主控芯片对应的错误修复次数小于预设调试次数,则继续执行对主控芯片的错误复现修复过程。
作为本申请一种可能的实施方式,在该实施方式中,记录主控芯片的工作状态,包括:
通过逻辑分析仪记录主控芯片的I/O端口时序状态;和/或
通过协议分析仪记录主控芯片的协议处理;和/或
通过ARM仿真器记录主控芯片的闪存转换层的算法逻辑。
作为本申请一种可能的实施方式,在该实施方式中,主控芯片进行错误修复,包括:
通过调整主控芯片的I/O端口时序对主控芯片进行错误修复;和/或
通过调整主控芯片的协议处理对主控芯片进行错误修复;和/或
通过调整主控芯片的闪存转换层的算法逻辑对主控芯片进行错误修复。
本申请第二方面提供错误复现修复装置,包括:
文件写入模块,用于控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序;
文件读取模块,用于控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件;
第一状态记录模块,用于按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态;
第一错误修复模块,用于基于工作状态对主控芯片进行错误修复;
第二状态记录模块,用于对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态;
第二错误修复模块,用于基于工作状态再次对主控芯片进行错误修复。
作为本申请一种可能的实施方式,在该实施方式中,错误复现修复装置,还包括:
编号模块,用于对需要写入至闪存颗粒中的原始文件进行编号;
文件写入模块,用于根据原始文件对应的编号,记录原始文件的写入顺序。
本申请第三方面提供一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上的错误复现修复方法。
本申请第四方面提供一种计算机可读存储介质,计算机可读存储介质存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上的错误复现修复方法。
本申请的技术方案,包括:通过控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序;控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件;按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态;基于工作状态对主控芯片进行错误修复;对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态;基于工作状态再次对主控芯片进行错误修复。与相关技术相比,本申请复现主控芯片对历史数据写入过程,并能够快速、准确、定位和修复主控芯片的问题,大大提高主控芯片的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其他目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请一实施例示出的错误复现修复方法的流程示意图;
图2是本申请一实施例示出的错误复现修复方法的应用示意图;
图3是本申请另一实施例示出的错误复现修复方法的流程示意图;
图4是本申请另一实施例示出的错误复现修复方法的流程示意图;
图5是本申请另一实施例示出的错误复现修复方法的流程示意图;
图6是本申请一实施例示出的错误复现修复装置的结构示意图;
图7是本申请另一实施例示出的错误复现修复装置的结构示意图;
图8是本申请另一实施例示出的错误复现修复装置的结构示意图;
图9是本申请一实施例示出的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
相关技术中需要测试主控芯片控制闪存颗粒写入数据时数据是否会发生错误,以此验证主控芯片的稳定性。但由于无法复现主控芯片对历史数据写入过程,导致无法快速、准确、定位和修复主控芯片的问题,这无疑会影响主控芯片的稳定性。
因此,为了解决上述技术问题,本申请公开了一种错误复现方法、装置、设备及存储介质,以解决或者部分解决无法复现主控芯片对历史数据写入过程,导致无法快速、准确、定位和修复主控芯片,影响主控芯片的稳定性的问题。
以下结合附图详细说明本申请的技术方案。
图1是本申请一实施例示出的一种错误复现修复方法的流程示意图。
请参阅图1,一种错误复现修复方法,包括如下步骤:
步骤S110、控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序。
本实施例中,电脑是控制主控芯片的电子设备,电脑预先创建有文件夹,该文件夹内可包括有一级文件夹,一级文件夹又包括有对应的二级文件夹,二级文件夹又包括有对应的三级文件夹,以此类推,N级文件夹又包括有对应的N+1文件夹。对于每一个文件夹而言,每个文件夹内都存储有文本、语音、视频等相关格式的原始文件。
当需要控制主控芯片往闪存颗粒写入原始文件时,电脑从文件夹内随机选取原始文件,将原始文件发送至主控芯片中,控制主控芯片往闪存颗粒中写入原始文件,并在写入期间记载原始文件的写入顺序。例如,电脑随机选取原始文件a1、原始文件b1、原始文件c1、原始文件d1、原始文件e1、原始文件f1和原始文件g1,将原始文件a1~g1依次发送给主控芯片,控制主控芯片按照依次发送顺序,往闪存颗粒写入原始文件,则依次发送顺序即为写入顺序。同时电脑会随机在其中一个相邻的两个原始文件之间设置掉/上电触发点,如在原始文件e1 和f1之间设置掉/上电触发点,掉/上电触发点是当电脑控制主控芯片成功写入原始文件e1后,电脑会控制主控芯片掉电,随后立即重新上电,重新上电后的主控芯片不会执行后续对原始文件f1和原始文件g1的写入任务。
步骤S120、控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
在本申请实施例中,由于主控芯片触发了掉/上电触发点,电脑控制主控芯片将已经成功写入的原始文件读取出来,并发送至电脑,电脑将读取出来的原始文件与写入之前的原始文件进行对比。
如主控芯片往闪存颗粒成功写入的原始文件分别是原始文件a1、原始文件b1、原始文件c1、原始文件d1和原始文件e1,而主控芯片从闪存颗粒读取出来的原始文件分别是原始文件a1、原始文件b1、原始文件c1、原始文件d11和原始文件e11。经过电脑的比对可知,原始文件d1和原始文件e1发生了数据错误。此时,需要定位出主控芯片控制闪存颗粒写入原始文件时具体某个环节出现问题,则要将写入过程复现出来。
需要说明的是,对于主控芯片控制闪存颗粒写入或者读取过程而言,由于写入文件的操作比读取文件的操作要复杂,因此写入过程发生问题的概率远远高于读取过程发生问题(即读取过程一般不会发生问题),因此定位和修复默认是写入过程中的问题。
经过电脑的比对可知,原始文件d1和原始文件e1在写入过程中会发生错误,而由于原始文件e1是最后一个发生数据错误对应的原始文件。因此,在错误复现环节的过程中,先分析出写入原始文件d1时可能发生的错误问题,定位修复完后再追加写入原始文件e1,这样为了避免在写入原始文件e1的过程中,因为写入原始文件e1而导致先前写入的原始文件发生了错误(如原始文件d1的错误),因此要消除掉原始文件e1的写入干扰,同时也能够在一定程度上提高错误的定位效率。
步骤S130、按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
本实施例中,由于电脑已经记载了原始文件的写入顺序,因此在错误环节复现的过程中,电脑按照记载的写入顺序再次控制主控芯片往闪存颗粒写入原始文件a1~e1,其中,本次写入过程不写入最后一个发生数据错误对应的原始文件e1。在写入原始文件a1~d1后,在写入的过程中,电脑均实时监控和记录主控芯片的工作状态。
请参阅图2,记录主控芯片的工作状态可以按照如下几种方式进行:
1.通过逻辑分析仪记录主控芯片的I/O端口时序状态。
需要说明的是,主控芯片控制闪存颗粒写入或者读取的过程中,必须满足其搭配的闪存颗粒的I/O端口时序,否则会引起写入数据时发生数据错误。
具体地,若电脑控制主控芯片要往闪存颗粒中写入数据时,需要控制主控芯片的I/O端口在对应的时序阶段,往闪存颗粒中传入操作命令、地址命令和数据命令等信号。闪存颗粒接收到上述信号后,根据信号执行相应的操作,进而完成数据的写入和读取的操作。若主控芯片记录闪存颗粒时的时序状态发生错乱,则可能会导致写入至闪存颗粒中的原始文件发生数据错误。
其中,主控芯片记录闪存时I/O端口的时序状态可以利用逻辑分析仪在电脑控制主控芯片往闪存颗粒写入原始文件a1~d1的过程中来抓取。逻辑分析仪会记录主控芯片控制闪存颗粒执行写入操作时的I/O端口时序状态,并把时序状态发送至电脑,在电脑上呈现时序状态。
1.通过协议分析仪记录主控芯片的协议处理。
由于主控芯片应用的产品有U盘、SD卡或者eMMC卡等存储类产品,针对不同产品的主控芯片,主控芯片需要内置对应的协议,如针对应用U盘的主控芯片,其内置有USB标准协议,对于原始文件的写入、读取、处理等都必须满足USB标准协议的处理逻辑。如针对应用SD卡的主控芯片,其内置有SD卡标准协议,对于原始文件的写入、读取、处理等都必须满足SD卡标准协议的处理逻辑。如针对应用eMMC卡的主控芯片,其内置有eMMC卡标准协议,对于原始文件的写入、读取、处理等都必须满足eMMC卡标准协议的处理逻辑。
若电脑控制主控芯片往闪存颗粒写入、读取或者处理时,主控芯片的上述标准协议的协议处理非正常,则会主控芯片控制闪存颗粒写入原始文件时发生数据错误。
其中,主控芯片的协议处理可以利用协议分析仪进行分析。协议分析仪记录主控芯片的协议处理的过程,并把协议处理的过程发送至电脑,在电脑上呈现协议处理的过程。
2.通过ARM仿真器记录主控芯片的闪存转换层的算法逻辑。
闪存转换层(Flash Translation Layter,FTL)能够完成电脑(或者用户,Host)逻辑地址空间到闪存颗粒物理地址空间的翻译,或者说映射(Mapping)。主控芯片每把一笔用户逻辑数据写入闪存颗粒地址空间,边记录下该逻辑地址到物理地址的映射关系。当电脑想读取该数据时,主控芯片便会根据这个映射,从闪存颗粒中读取这笔数据并返回给用户。若主控芯片的闪存转换层的算法逻辑发生错误,主控芯片可能就会返回错误数据给电脑。
步骤S140、基于工作状态对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复。
对主控芯片的修复可按照如下几种方式进行:
1.当分析出主控芯片的I/O端口时序发生错误时,通过调整主控芯片的I/O端口时序完成对主控芯片进行错误修复。
如对主控芯片的“ALE端口(地址锁存端口)”、“CLE端口(命令锁存端口)”或者“WE端口(写使能端口)”的时序进行调整,以此满足其搭配的闪存颗粒的I/O端口时序。进而完成对主控芯片的错误修复。
2.当分析出主控芯片的协议处理发生错误时,通过调整主控芯片的协议处理完成对主控芯片进行错误修复。
如针对应用于U盘产品的主控芯片,需要分析其内置的USB标准协议的处理逻辑是否正常,对于原始文件的写入、读取、处理等都必须满足USB标准协议的处理逻辑。
3.当分析出主控芯片的闪存转换层的算法逻辑发生错误时,通过调整所述主控芯片的闪存转换层的算法逻辑对主控芯片进行错误修复。
闪存转换层的算法逻辑如关于地址映射算法逻辑、磨损均衡算法逻辑、垃圾数据回收算法逻辑、写放大算法逻辑等,上述算法逻辑都是可能会发生错误的地方。
若上述算法逻辑发送错误,测试人员可对上述算法逻辑作出修改,修改完成后,电脑利用ARM仿真器对修改的部分进行运行。若运行正常意味着调试正确,以此来完成对主控芯片内置FTL算法逻辑的错误修复。
步骤S150、对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
本申请实施例中,在成功对主控芯片在写入原始文件a1~d1的过程进行错误修复后,电脑再让主控芯片控制闪存颗粒,把最后一个发生数据错误对应的原始文件e1追加写入至闪存颗粒中,在写入原始文件e1后,并控制主控芯片将闪存颗粒读取原始文件e1。在写入的过程中,电脑均实时监控和记录主控芯片的工作状态,记载主控芯片工作状态的方式请参照上述的几种方式,此处不再重复赘述。
步骤S160、基于工作状态再次对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复,主控芯片的修复方式请参照上述的几种方式,此处不再重复赘述。
本申请实施例中,对主控芯片写入原始文件的历史过程复现,通过实时记录主控芯片写入过程中的工作状态,根据工作状态及时、准确、快速地定位出主控芯片在写入原始文件中会发生的问题,并根据发生错误问题进行修复,实现对主控芯片的调整,能够大大提高主控芯片的稳定性。
图3是本申请另一实施例示出的一种错误复现修复方法的流程示意图。
请参阅图3,一种错误复现修复方法,包括如下步骤:
步骤S311、对需要写入至闪存颗粒中的原始文件进行编号。
在本申请实施例中,在电脑上准备一个文件夹,该文件夹内可包括有一级文件夹,一级文件夹又包括有对应的二级文件夹,则二级文件夹内包括有若干原始文件。在原始文件中可存储有文本、语音、视频等数据。文件夹内的原始文件均可以被电脑随机选取,则对文件夹内的每一个原始文件进行编号。
作为本申请一种可能的实施方式,比如:电脑随机选取原始文件包括有原始文件a1、原始文件b1、原始文件c1、原始文件d1、原始文件e1、原始文件f1和原始文件g1,上述原始文件a1~g1进行了编号处理,即:原始文件a1的编号为1、原始文件b1的编号为2、原始文件c1的编号为3、原始文件d1的编号为4、原始文件e1的编号可以为5、原始文件f1的编号为6和原始文件g1的编号可以为7。上述原始文件a1~g1可以来自同一个文件夹下,也可以来自于不同文件夹下。
其中,对原始文件进行编号,编号的作用在于能够节约电脑的内存占比,因为存放在文件夹中的原始文件会存放在某个N级文件夹中,若根据原始文件的存放路径来获取原始文件,则会占用电脑的内存占比,不利于电脑的正常运行。而且文件夹一般包含成百上千个一级文件夹,一级文件夹其名下又有对应的一级文件夹,这会使得原始文件的存放路径非常长,后期做复现环节还原写入原始文件的顺序时,会占用非常多的电脑的内存占比。而采用数字编号的方式,能够很好地解决此问题,避免后期做复现环节还原写入原始文件的顺序时,占用非常多的电脑的内存占比。
步骤S312、控制主控芯片往闪存颗粒写入原始文件,根据原始文件对应的编号,记录原始文件的写入顺序。
在本申请实施例中,作为本申请一种可能的实施方式,电脑控制主控芯片往闪存颗粒依次写入原始文件a1~g1,根据原始文件a1~g1对应的编号1-2-3-4-5-6-7,反映并记录原始文件a1~g1的写入顺序。
步骤S313、控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
在本申请实施例中,由于主控芯片触发了掉/上电触发点,电脑控制主控芯片将已经成功写入的原始文件读取出来,并发送至电脑,电脑将读取出来的原始文件与写入之前的原始文件进行对比。
如主控芯片往闪存颗粒成功写入的原始文件分别是原始文件a1、原始文件b1、原始文件c1、原始文件d1和原始文件e1,而主控芯片从闪存颗粒读取出来的原始文件分别是原始文件a1、原始文件b1、原始文件c1、原始文件d11和原始文件e11。经过电脑的比对可知,原始文件d1和原始文件e1发生了数据错误。此时,需要定位出主控芯片控制闪存颗粒写入原始文件时具体某个环节出现问题,则要将写入过程复现出来。
需要说明的是,对于主控芯片控制闪存颗粒写入或者读取过程而言,由于写入文件的操作比读取文件的操作要复杂,因此写入过程发生问题的概率远远高于读取过程发生问题(即读取过程一般不会发生问题),因此定位和修复默认是写入过程中的问题。
经过电脑的比对可知,原始文件d1和原始文件e1在写入过程中会发生错误,而由于原始文件e1是最后一个发生数据错误对应的原始文件。因此,在错误复现环节的过程中,先分析出写入原始文件d1时可能发生的错误问题,定位修复完后再追加写入原始文件e1,这样为了避免在写入原始文件e1的过程中,因为写入原始文件e1而导致先前写入的原始文件发生了错误(如原始文件d1的错误),因此要消除掉原始文件e1的写入干扰,同时也能够在一定程度上提高错误的定位效率。
步骤S314、控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除。
在本申请实施例中,由于闪存颗粒中已成功写入的原始文件,为了防止该先前已经写入的原始文件对后续错误复现修复的影响,需要进行擦除。电脑向控制芯片发送已经设定好的擦除指令(擦除指令如0xff),控制主控芯片将闪存颗粒中先前已经写入的原始文件进行擦除。
步骤S315、按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
本实施例中,由于电脑已经记载了原始文件的写入顺序,因此在错误环节复现的过程中,电脑按照记载的写入顺序再次控制主控芯片往闪存颗粒写入原始文件a1~e1,其中,本次写入过程不写入最后一个发生数据错误对应的原始文件e1。在写入原始文件a1~d1后,在写入的过程中,电脑均实时监控和记录主控芯片的工作状态。
请参阅图2,记录主控芯片的工作状态可以按照如下几种方式进行:
1、通过逻辑分析仪记录主控芯片的I/O端口时序状态。
需要说明的是,主控芯片控制闪存颗粒写入或者读取的过程中,必须满足其搭配的闪存颗粒的I/O端口时序,否则会引起写入数据时发生数据错误。
具体地,若电脑控制主控芯片要往闪存颗粒中写入数据时,需要控制主控芯片的I/O端口在对应的时序阶段,往闪存颗粒中传入操作命令、地址命令和数据命令等信号。闪存颗粒接收到上述信号后,根据信号执行相应的操作,进而完成数据的写入和读取的操作。若主控芯片记录闪存颗粒时的时序状态发生错乱,则可能会导致写入至闪存颗粒中的原始文件发生数据错误。
其中,主控芯片记录闪存时I/O端口的时序状态可以利用逻辑分析仪在电脑控制主控芯片往闪存颗粒写入原始文件a1~d1的过程中来抓取。逻辑分析仪会记录主控芯片控制闪存颗粒执行写入操作时的I/O端口的时序状态,并把时序状态发送至电脑,在电脑上呈现时序状态。
2、通过协议分析仪记录主控芯片的协议处理。
由于主控芯片应用的产品有U盘、SD卡或者eMMC卡等存储类产品,针对不同产品的主控芯片,主控芯片需要内置对应的协议,如针对应用U盘的主控芯片,其内置有USB标准协议,对于原始文件的写入、读取、处理等都必须满足USB标准协议的处理逻辑。如针对应用SD卡的主控芯片,其内置有SD标准协议,对于原始文件的写入、读取、处理等都必须满足SD标准协议的处理逻辑。如针对应用eMMC的主控芯片,其内置有eMMC标准协议,对于原始文件的写入、读取、处理等都必须满足eMMC标准协议的处理逻辑。
若电脑控制主控芯片往闪存颗粒写入、读取或者处理时,主控芯片的上述标准协议的协议处理非正常,则会主控芯片控制闪存颗粒写入原始文件时发生数据错误。
其中,主控芯片的协议处理可以利用协议分析仪进行分析。协议分析仪记录主控芯片的协议处理的过程,并把协议处理的过程发送至电脑,在电脑上呈现协议处理的过程。
3、通过ARM仿真器记录主控芯片的闪存转换层的算法逻辑。
闪存转换层(Flash Translation Layter,FTL)能够完成电脑(或者用户,Host)逻辑地址空间到闪存颗粒物理地址空间的翻译,或者说映射(Mapping)。主控芯片每把一笔用户逻辑数据写入闪存颗粒地址空间,边记录下该逻辑地址到物理地址的映射关系。当电脑想读取该数据时,主控芯片便会根据这个映射,从闪存颗粒中读取这笔数据并返回给用户。若主控芯片的闪存转换层的算法逻辑发生错误,主控芯片可能就会返回错误数据给电脑。
步骤S316、基于工作状态对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复。
对主控芯片的修复可按照如下几种方式进行:
1、当分析出主控芯片的I/O端口时序发生错误时,通过调整主控芯片的I/O端口时序完成对主控芯片进行错误修复。
如对主控芯片的“ALE端口(地址锁存端口)”、“CLE端口(命令锁存端口)”或者“WE端口(写使能端口)”的时序进行调整,以此满足其搭配的闪存颗粒的I/O端口时序。进而完成对主控芯片的错误修复。
2、当分析出主控芯片的协议处理发生错误时,通过调整主控芯片的协议处理完成对主控芯片进行错误修复。
如针对应用于U盘产品的主控芯片,需要分析其内置的USB标准协议的处理逻辑是否正常,对于原始文件的写入、读取、处理等都必须满足USB标准协议的处理逻辑。
3、当分析出主控芯片的闪存转换层的算法逻辑发生错误时,通过调整所述主控芯片的闪存转换层的算法逻辑对主控芯片进行错误修复。
闪存转换层的算法逻辑如关于地址映射算法逻辑、磨损均衡算法逻辑、垃圾数据回收算法逻辑、写放大算法逻辑等,上述算法逻辑都是可能会发生错误的地方。
若上述算法逻辑发送错误,测试人员可对FTL算法作出修改,修改完成后,电脑利用ARM仿真器对修改的部分进行运行。若运行正常意味着调试正确,以此来完成对主控芯片内置FTL算法的错误修复。
步骤S317、对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
本申请实施例中,在成功对主控芯片在写入原始文件a1~d1的过程进行错误修复后,电脑再让主控芯片控制闪存颗粒,把最后一个发生数据错误对应的原始文件e1追加写入至闪存颗粒中,在写入原始文件e1后,并控制主控芯片将闪存颗粒读取原始文件e1。在写入的过程中,电脑均实时监控和记录主控芯片的工作状态,记载主控芯片工作状态的方式请参照上述的几种方式,此处不再重复赘述。
步骤S318、基于工作状态再次对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复,主控芯片的修复方式请参照上述的几种方式,此处不再重复赘述。
在本申请实施例中,通过对原始文件编号的方式能够节约在复现环节过程中占用过多的电脑内存比,并通过预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除,能够防止该先前已经写入的原始文件对后续错误复现修复的影响,使本申请实施例中的错误复现修复方法更加准确,进一步保证主控芯片的稳定性。
本申请实施例中,与相关技术相比,本申请实施例即复现主控芯片对历史数据写入过程,又能够快速、准确、定位和修复主控芯片,大大提高主控芯片的稳定性。
图4是本申请另一实施例示出的一种错误复现修复方法的流程示意图。
请参阅图4,一种错误复现修复方法,包括如下步骤:
步骤S411、对需要写入至闪存颗粒中的原始文件进行编号。
在本申请实施例中,作为本申请一种可能的实施方式,比如:电脑随机选取原始文件包括有原始文件a1、原始文件b1、原始文件c1、原始文件d1、原始文件e1、原始文件f1和原始文件g1,上述原始文件a1~g1进行了编号处理,即:原始文件a1的编号为1、原始文件b1的编号为2、原始文件c1的编号为3、原始文件d1的编号为4、原始文件e1的编号可以为5、原始文件f1的编号为6和原始文件g1的编号可以为7。步骤S411请参照上述步骤S311,此处不再重复赘述。
步骤S412、控制主控芯片往闪存颗粒写入原始文件,根据原始文件对应的编号,记录原始文件的写入顺序。
在本申请实施例中,作为本申请一种可能的实施方式,电脑控制主控芯片往闪存颗粒依次写入原始文件a1~g1,根据原始文件a1~g1对应的编号,反映并记录原始文件a1~g1的写入顺序。
步骤S413、控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
在本申请实施例中,由于主控芯片触发了掉/上电触发点,电脑控制主控芯片将已经成功写入的原始文件读取出来,并发送至电脑,电脑将读取出来的原始文件与写入之前的原始文件进行对比。
经过电脑的比对可知,原始文件d1和原始文件e1在写入过程中会发生错误,并定位出原始文件e1是最后一个发生数据错误对应的原始文件。步骤S413请参照上述步骤S313,此处不再重复赘述。
步骤S414、控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除。
在本申请实施例中,由于闪存颗粒中已成功写入的原始文件,为了防止该先前已经写入的原始文件对后续错误复现修复的影响,需要进行擦除。电脑向控制芯片发送已经设定好的擦除指令(擦除指令如0xff),控制主控芯片将闪存颗粒中先前已经写入的原始文件进行擦除。
步骤S415、按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
本实施例中,由于电脑已经记载了原始文件的写入顺序,因此在错误环节复现的过程中,电脑按照记载的写入顺序再次控制主控芯片往闪存颗粒写入原始文件a1~e1,其中,本次写入过程不写入最后一个发生数据错误对应的原始文件e1。在写入原始文件a1~d1后,在写入的过程中,电脑均实时监控和记录主控芯片的工作状态。记载主控芯片工作状态的方式请参照上述的几种方式和请参阅图2,此处不再重复赘述。
步骤S416、基于工作状态对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复。主控芯片的修复方式请参照上述的几种方式,此处不再重复赘述。
步骤S417、对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
本申请实施例中,在成功对主控芯片在写入原始文件a1~d1的过程进行错误修复后,电脑再让主控芯片控制闪存颗粒,把最后一个发生数据错误对应的原始文件e1追加写入至闪存颗粒中,在写入原始文件e1后,并控制主控芯片将闪存颗粒读取原始文件e1。在写入的过程中,电脑均实时监控和记录主控芯片的工作状态,记载主控芯片工作状态的方式请参照上述的几种方式,此处不再重复赘述。
步骤S418、基于工作状态再次对主控芯片进行错误修复。
在本申请实施例中,通过实时监控和记录主控芯片的工作状态,来分析主控芯片的写入过程是否出现问题,若出现问题,则对主控芯片发生的问题进行修复,主控芯片的修复方式请参照上述的几种方式,此处不再重复赘述。
步骤S419、判断主控芯片对应的错误复现修复次数;若主控芯片对应的错误修复次数小于预设调试次数,则继续执行对主控芯片的错误复现修复过程;若主控芯片对应的错误修复次数大于或者等于预设调试次数,则结束执行对主控芯片的错误复现修复过程。
在本申请实施例中,设定预设调试次数,并确定主控芯片对应的错误复现修复次数。该错误复现修复方法为从步骤S411至步骤S418作为一次错误复现修复的循环。记录主控芯片完成的错误复现修复次数,判断错误复现修复次数与预设调试次数的关系。若主控芯片对应的错误修复次数小于预设调试次数,则返回继续执行步骤S412至步骤S418,对主控芯片的错误复现修复过程。若主控芯片对应的错误修复次数大于或者等于预设调试次数,则结束执行步骤S412至步骤S418,对主控芯片的错误复现修复过程。
作为本申请一种可能的实施方式,比如:预设调试次数可以为一千次等。并且,每一次随机选择的原始文件编号顺序和个数均可以不同,这样,可以尽量排除原始文件中数据错误产生的原因。
在本申请实施例中,设置预设调试次数的上限值目的:一方面是能够保证对主控芯片的错误定位、复现和修复上进行一定次数的要求,保证尽可能地对主控芯片内部存在的问题进行修复,使错误复现修复方法更加准确,进一步保证主控芯片的稳定性;另一方面限定调试次数,也是为了防止影响对主控芯片的调试效率。即,设置预设调试次数使在保证主控芯片的稳定性的同时,也保证了对主控芯片的调试效率。
本申请实施例中,与相关技术相比,本申请实施例即复现主控芯片对历史数据写入过程,又能够快速、准确、定位和修复主控芯片,大大提高主控芯片的稳定性。
图5是本申请另一实施例示出的一种错误复现修复方法的流程示意图。
请参阅图5,一种错误复现修复方法,包括如下步骤:
步骤S511、对需要写入至闪存颗粒中的原始文件进行编号,执行步骤S512。
步骤S512、控制主控芯片往闪存颗粒写入原始文件,根据原始文件对应的编号,记录原始文件的写入顺序,执行步骤S513。
步骤S513、控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件,执行步骤S514。
步骤S514、控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除,执行步骤S515。
步骤S515、按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,执行步骤S516或/和步骤S518或/和步骤S521。
步骤S516、写入期间通过逻辑分析仪记录主控芯片的I/O端口时序状态,执行步骤S517。
步骤S517、基于工作状态,通过调整主控芯片的I/O端口时序对主控芯片进行错误修复,执行步骤S523。
步骤S518、写入期间通过协议分析仪记录主控芯片的协议处理,执行步骤S519。
步骤S519、基于工作状态,通过调整主控芯片的协议处理对主控芯片进行错误修复,执行步骤S523。
步骤S521、写入期间通过ARM仿真器记录主控芯片的闪存转换层的算法逻辑,执行步骤S522。
步骤S522、基于工作状态,通过调整主控芯片的闪存转换层的算法逻辑对主控芯片进行错误修复,执行步骤S523。
步骤S523、对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,执行步骤S524或/和步骤S26或/和步骤S428。
步骤S524、写入期间通过逻辑分析仪记录主控芯片的I/O端口时序状态,执行步骤S525。
步骤S525、基于工作状态,通过调整主控芯片的I/O端口时序对主控芯片进行错误修复,执行步骤S531。
步骤S526、写入期间通过调整主控芯片的协议处理对主控芯片进行错误修复,执行步骤S527。
步骤S527、基于工作状态,通过调整主控芯片的协议处理对主控芯片进行错误修复,执行步骤S531。
步骤S528、写入期间通过ARM仿真器记录主控芯片的闪存转换层的算法逻辑,执行步骤S529。
步骤S529、基于工作状态,通过调整主控芯片的闪存转换层的算法逻辑对主控芯片进行错误修复,执行步骤S531。
步骤S531、判断主控芯片对应的错误复现修复次数是否小于预设调试次数,若是,则返回执行步骤S512;若否,则结束循环。
在本申请实施例中,采用三种分析主控芯片的工作状态的方式和对应的三种对主控芯片的工作状态进行错误修复的方式,使本申请实施例中的错误复现修复方法更加准确,进一步保证主控芯片的稳定性。
本申请实施例中,与相关技术相比,本申请实施例即复现主控芯片对历史数据写入过程,又能够快速、准确、定位和修复主控芯片,大大提高主控芯片的稳定性。
与前述的方法实施例相对应,本申请本提供了一种错误复现修复装置及相应的实施例。
如图6所示为本申请一实施例中的一种错误复现修复装置的结构示意图。
请参阅图6,一种错误复现修复装置600,包括:文件写入模块610、文件读取模块620、第一状态记录模块630、第一状态记录模块640、第二状态记录模块650和第二错误修复模块660。
文件写入模块610用于控制主控芯片往闪存颗粒写入原始文件,并记录原始文件的写入顺序。
文件读取模块620用于控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
第一状态记录模块630用于按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
第一错误修复模块640用于基于工作状态对主控芯片进行错误修复。
第二状态记录模块650用于对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
第二错误修复模块660用于基于工作状态再次对主控芯片进行错误修复。
需要说明的是,该实施例公开的错误复现修复装置所实现的错误复现修复方法如上述实施例,故在此不再进行详细讲述。可选地,本实施例中的各个模块和上述其他操作或功能分别为了实现前述实施例中的方法。
如图7所示为本申请另一实施例中的一种错误复现修复装置的结构示意图。
请参阅图7,一种错误复现修复装置700,包括:编号模块711、文件写入模块712、文件读取模块713、文件擦除模块714、第一状态记录模块715、第一状态记录模块716、第二状态记录模块717和第二错误修复模块718。
编号模块711用于对需要写入至闪存颗粒中的原始文件进行编号。
文件写入模块712用于控制主控芯片往闪存颗粒写入原始文件,根据原始文件对应的编号,记录原始文件的写入顺序。
文件读取模块713用于控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
文件擦除模块714用于控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除。
第一状态记录模块715用于按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
第一错误修复模块716用于基于工作状态对主控芯片进行错误修复。
第二状态记录模块717用于对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
第二错误修复模块718用于基于工作状态再次对主控芯片进行错误修复。
需要说明的是,该实施例公开的错误复现修复装置所实现的错误复现修复方法如上述实施例,故在此不再进行详细讲述。可选地,本实施例中的各个模块和上述其他操作或功能分别为了实现前述实施例中的方法。
如图8所示为本申请另一实施例中的一种错误复现修复装置的结构示意图。
请参阅图8,一种错误复现修复装置800,包括编号模块811、文件写入模块812、文件读取模块813、文件擦除模块814、第一状态记录模块815、第一状态记录模块816、第二状态记录模块817、第二错误修复模块818和循环判断模块819。
编号模块811用于对需要写入至闪存颗粒中的原始文件进行编号。
文件写入模块812用于控制主控芯片往闪存颗粒写入原始文件,根据原始文件对应的编号,记录原始文件的写入顺序。
文件读取模块813用于控制主控芯片读取闪存颗粒中成功写入的原始文件,并定位出最后一个发生数据错误对应的原始文件。
文件擦除模块814用于控制主控芯片基于预设擦除指令将闪存颗粒中成功写入的原始文件进行擦除。
第一状态记录模块815用于按照写入顺序再次控制主控芯片往闪存颗粒写入原始文件,其中本次写入过程不写入最后一个发生数据错误对应的原始文件,写入期间记录主控芯片的工作状态。
第一错误修复模块816用于基于工作状态对主控芯片进行错误修复。
第二状态记录模块817用于对主控芯片进行错误修复后再把最后一个发生数据错误对应的原始文件追加写入至闪存颗粒中,写入期间再次记录主控芯片的工作状态。
第二错误修复模块818用于基于工作状态再次对主控芯片进行错误修复。
循环判断模块819用于判断主控芯片对应的错误复现修复次数;若主控芯片对应的错误修复次数小于预设调试次数,则继续执行对主控芯片的错误复现修复过程;若主控芯片对应的错误修复次数大于或者等于预设调试次数,则结束执行对主控芯片的错误复现修复过程。
参阅图9,本申请另一实施例示出了一种计算电子设备900包括存储器910和处理器920。
处理器920可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器存储器910可以包括各种类型的存储单元,例如***内存、只读存储器(ROM)和永久存储装置。
其中,ROM可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。
另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。***内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。***内存可以存储一些或者所有处理器在运行时需要的指令和数据。
此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。
在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡和Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机指令代码),当可执行代码(或计算机程序或计算机指令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种错误复现修复方法,其特征在于,包括:
控制主控芯片往闪存颗粒写入原始文件,并记录所述原始文件的写入顺序;
控制主控芯片读取所述闪存颗粒中成功写入的所述原始文件,并定位出最后一个发生数据错误对应的所述原始文件;
按照所述写入顺序再次控制所述主控芯片往所述闪存颗粒写入所述原始文件,其中本次写入过程不写入所述最后一个发生数据错误对应的所述原始文件,写入期间记录所述主控芯片的工作状态;
基于所述工作状态对所述主控芯片进行错误修复;
对所述主控芯片进行错误修复后再把所述最后一个发生数据错误对应的所述原始文件追加写入至所述闪存颗粒中,写入期间再次记录所述主控芯片的所述工作状态;
基于所述工作状态再次对所述主控芯片进行错误修复。
2.根据权利要求1所述的错误复现修复方法,其特征在于,所述控制主控芯片往闪存颗粒写入原始文件,并记录所述原始文件的写入顺序之前,还包括:
对需要写入至闪存颗粒中的原始文件进行编号;
所述记录所述原始文件的写入顺序,包括:
根据所述原始文件对应的编号,记录所述原始文件的写入顺序。
3.根据权利要求1所述的错误复现修复方法,其特征在于,所述读取所述闪存颗粒中成功写入的所述原始文件,并定位出最后一个发生数据错误对应的所述原始文件之后,还包括:
控制所述主控芯片基于预设擦除指令将所述闪存颗粒中成功写入的所述原始文件进行擦除。
4.根据权利要求1所述的错误复现修复方法,其特征在于,还包括:
判断所述主控芯片对应的错误复现修复次数;若所述主控芯片对应的所述错误修复次数大于或者等于预设调试次数,则结束执行对所述主控芯片的错误复现修复过程;若所述主控芯片对应的所述错误修复次数小于所述预设调试次数,则继续执行对所述主控芯片的错误复现修复过程。
5.根据权利要求1至4中任一项所述的错误复现修复方法,其特征在于,所述记录所述主控芯片的工作状态,包括:
通过逻辑分析仪记录所述主控芯片的I/O端口时序状态;和/或
通过协议分析仪记录所述主控芯片的协议处理;和/或
通过ARM仿真器记录所述主控芯片的闪存转换层的算法逻辑。
6.根据权利要求5中所述的错误复现修复方法,其特征在于,所述主控芯片进行错误修复,包括:
通过调整所述主控芯片的所述I/O端口时序对所述主控芯片进行错误修复;和/或
通过调整所述主控芯片的所述协议处理对所述主控芯片进行错误修复;和/或
通过调整所述主控芯片的所述闪存转换层的所述算法逻辑对所述主控芯片进行错误修复。
7.一种错误复现修复装置,其特征在于,包括:
文件写入模块,用于控制主控芯片往闪存颗粒写入原始文件,并记录所述原始文件的写入顺序;
文件读取模块,用于控制主控芯片读取所述闪存颗粒中成功写入的所述原始文件,并定位出最后一个发生数据错误对应的所述原始文件;
第一状态记录模块,用于按照所述写入顺序再次控制所述主控芯片往所述闪存颗粒写入所述原始文件,其中本次写入过程不写入所述最后一个发生数据错误对应的所述原始文件,写入期间记录所述主控芯片的工作状态;
第一错误修复模块,用于基于所述工作状态对所述主控芯片进行错误修复;
第二状态记录模块,用于对所述主控芯片进行错误修复后再把所述最后一个发生数据错误对应的所述原始文件追加写入至所述闪存颗粒中,写入期间再次记录所述主控芯片的所述工作状态;
第二错误修复模块,用于基于所述工作状态再次对所述主控芯片进行错误修复。
8.根据权利要求7所述的错误复现修复装置,其特征在于,还包括:
编号模块,用于对需要写入至闪存颗粒中的原始文件进行编号;
所述文件写入模块,用于根据所述原始文件对应的编号,记录所述原始文件的写入顺序。
9.一种电子设备,包括:
处理器;以及
存储器,其上存储有可执行代码,其特征在于,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至6任一项所述的错误复现修复方法。
10.一种计算机可读介质,所述计算机可读介质存储有可执行代码,其特征在于,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1至6任一项所述的错误复现修复方法。
CN202211360321.3A 2022-11-02 2022-11-02 错误复现修复方法、装置、设备及存储介质 Active CN115512757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211360321.3A CN115512757B (zh) 2022-11-02 2022-11-02 错误复现修复方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211360321.3A CN115512757B (zh) 2022-11-02 2022-11-02 错误复现修复方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115512757A true CN115512757A (zh) 2022-12-23
CN115512757B CN115512757B (zh) 2023-03-21

Family

ID=84513056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211360321.3A Active CN115512757B (zh) 2022-11-02 2022-11-02 错误复现修复方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115512757B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138594A1 (en) * 2007-05-30 2010-06-03 Memoright Memoritech (Shenzhen) Co., Ltd. Flash memory data read/write processing method
CN106548671A (zh) * 2016-10-28 2017-03-29 网易(杭州)网络有限公司 一种信息处理方法、设备和***
CN110444247A (zh) * 2019-07-31 2019-11-12 至誉科技(武汉)有限公司 存储设备写错误纠错能力的测试装置
CN111198661A (zh) * 2019-12-30 2020-05-26 深圳佰维存储科技股份有限公司 存储设备写入操作过程的还原方法、装置和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138594A1 (en) * 2007-05-30 2010-06-03 Memoright Memoritech (Shenzhen) Co., Ltd. Flash memory data read/write processing method
CN106548671A (zh) * 2016-10-28 2017-03-29 网易(杭州)网络有限公司 一种信息处理方法、设备和***
CN110444247A (zh) * 2019-07-31 2019-11-12 至誉科技(武汉)有限公司 存储设备写错误纠错能力的测试装置
CN111198661A (zh) * 2019-12-30 2020-05-26 深圳佰维存储科技股份有限公司 存储设备写入操作过程的还原方法、装置和设备

Also Published As

Publication number Publication date
CN115512757B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
US9836392B2 (en) Storage control apparatus to control pre-processing operations
TWI401691B (zh) 具快閃記憶體測試功能的控制器及其儲存系統與測試方法
US8086787B2 (en) Wear leveling method, and storage system and controller using the same
CN110335635B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
US10409525B2 (en) Memory management method, memory control circuit unit and memory storage device
CN101853692B (zh) 具闪存测试功能的控制器及其储存***与测试方法
CN103577342A (zh) 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US11984181B2 (en) Systems and methods for evaluating integrity of adjacent sub blocks of data storage apparatuses
TWI486957B (zh) Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統
CN112997139B (zh) 存储器子***中的数据擦除
US9552287B2 (en) Data management method, memory controller and embedded memory storage apparatus using the same
KR101087313B1 (ko) 플래시 메모리용 데이터 기록 방법
TWI509615B (zh) 資料儲存方法、記憶體控制器與記憶體儲存裝置
US20090164869A1 (en) Memory architecture and configuration method thereof
CN112802530B (zh) Nand测试方法、装置、可读存储介质及电子设备
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
US7181641B2 (en) Data storage verification techniques for disk drivers
WO2024103600A1 (zh) 一种数据管理方法、装置及电子设备和非易失性可读存储介质
CN115512757B (zh) 错误复现修复方法、装置、设备及存储介质
US10734079B1 (en) Sub block mode read scrub design for non-volatile memory
CN107680632B (zh) 一种固态硬盘的寿命测试方法及装置
CN103870209A (zh) 工作模式切换方法、存储器控制器与存储器储存装置
CN111949198A (zh) 一种坏块管理方法、装置和存储设备
CN111949426A (zh) 一种固件程序错误的检测方法、装置及存储设备
CN111324286A (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518000 402-406, floor 4, building 4, Tianan Yungu Industrial Park, Gangtou community, Bantian street, Longgang District, Shenzhen, Guangdong Province

Patentee after: Shenzhen Sandi Yixin Electronics Co.,Ltd.

Address before: 518000 402-406, floor 4, building 4, Tianan Yungu Industrial Park, Gangtou community, Bantian street, Longgang District, Shenzhen, Guangdong Province

Patentee before: SHENZHEN SANDIYIXIN ELECTRONIC Co.,Ltd.