CN102508732A - 改善一次性可编程存储器使用性能的方法及装置 - Google Patents
改善一次性可编程存储器使用性能的方法及装置 Download PDFInfo
- Publication number
- CN102508732A CN102508732A CN2011103277563A CN201110327756A CN102508732A CN 102508732 A CN102508732 A CN 102508732A CN 2011103277563 A CN2011103277563 A CN 2011103277563A CN 201110327756 A CN201110327756 A CN 201110327756A CN 102508732 A CN102508732 A CN 102508732A
- Authority
- CN
- China
- Prior art keywords
- block
- otp
- data
- burning
- crc
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例公开了一种改善一次性可编程存储器使用性能的方法及装置,用于数据的烧录及启动程序的运行。本发明实施例方法包括:确定OTP存储器中空片OTP区块及OTP区块存储空间的大小;将待烧录数据按照OTP区块的大小划分数据块,确定起始数据块及起始OTP区块,依次将数据块烧录OTP区块中,且完成数据块烧录之后,对烧入该数据块的OTP区块进行CRC校验,若通过CRC校验,则对下个待烧录数据块进行烧录及校验的过程,若未通过CRC校验,则将未烧录成功的数据块再次进行烧录及校验的过程,直至烧录成功,再对下一个数据块进行烧录校验,提高了OTP存储器的良品率。
Description
技术领域
本发明主要涉及半导体技术,尤其涉及改善一次性可编程存储器使用性能的方法及装置。
背景技术
一次性可编程(OTP,One Time Programmable)存储器可以是用于在各种计算机相关应用中(例如在蜂窝式电话、个人数字助理等小型手持式数字装置中)提供非易失性存储器的有效且低成本机构。
在现有技术中,OTP存储器大量应用在嵌入式控制芯片中,作为控制芯片的数据的存储介质,其中,数据是指芯片的设置参数数据及用户程序。
研究人员在研究中发现,现有技术中的OTP存储器在数据烧录至的过程中,并不能验证烧录至的数据是否出现错误,必需等到所有的数据都烧录至后,再将烧录至的数据读取出来与原来的数据进行对比分析,若出现数据内容不一致,即存在坏块时,则将该OTP存储器作为不良品,不能正常使用,导致OTP存储器良品率低,且由于OTP芯片在多次使用后,其中存储的数据也有可能发生变化,生成坏块,嵌入式芯片运行错误的用户程序将导致芯片运行不正常甚至使得使用该芯片的产品产生误操作,因此,现有技术中OTP存储器的良品率低,且难以确保OTP存储器中的用户程序稳定可靠的运行。
发明内容
本发明实施例提供了一种改善一次性可编程存储器使用性能的方法及装置,用于OTP存储器的数据烧录及确保OTP存储器中的用户程序能够稳定可靠的运行。
本发明实施例中的方法包括:确定OTP存储器中空片OTP区块及OTP区块存储空间的大小;将待烧录数据按照OTP区块的存储空间的大小划分数据块;确定起始数据块及起始空片OTP区块;将数据块烧录到OTP区块中,启动循环冗余校验码CRC电路生成数据块对应的CRC码;根据CRC码,启动CRC电路对OTP区块中的数据进行CRC校验;若OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码的步骤;若OTP区块中的数据通过CRC校验,则将OTP区块的偏移地址、有效标记位及数据块的CRC码写入OTP存储器对应的配置表中;判断数据块是否为待烧录数据的最后一个数据块;若数据块不是待烧录数据的最后一个数据块,确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码的步骤;若数据块为待烧录数据的最后一个数据块,则停止数据烧录;确定下一个待烧录数据的空片OTP区块,将配置表烧录到OTP区块中。
本发明实施例中的方法包括:OTP存储器所在的芯片上电后,芯片中的中央处理器CPU获取OTP存储器中校验正确的配置表;根据配置表,获取OTP存储器中保存的有效OTP区块;依次对有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在CPU的寄存器中。
本发明实施例中的装置包括:
获取单元,用于确定OTP存储器中将要烧录数据的OTP区块及OTP区块存储空间的大小,及将待烧录数据按照OTP区块的存储空间的大小划分数据块,确定起始数据块及起始空片OTP区块;
数据烧录处理单元,用于将数据块烧录到OTP区块中,启动循环冗余校验码CRC电路生成数据块对应的CRC码;对OTP区块中的数据进行两次CRC校验,根据CRC码,启动CRC电路对OTP区块中的数据进行CRC校验;若OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码的步骤;若OTP区块中的数据通过CRC校验,则将OTP区块的偏移地址、有效标记位及数据块的CRC码写入OTP存储器对应的配置表中;判断数据块是否为待烧录数据的最后一个数据块;若数据块不是待烧录数据的最后一个数据块,确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码的步骤;若数据块为待烧录数据的最后一个数据块,则停止数据烧录;
配置表烧录单元,用于确定下一个待烧录数据的空片OTP区块,将配置表烧录到OTP区块中。
本发明实施例中的装置包括:
配置表获取单元,OTP存储器所在的芯片上电后,获取OTP存储器中校验正确的配置表;
区块获取单元,用于根据配置表,获取OTP存储器中保存的有效OTP区块;
校验保存单元,用于依次对有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在CPU的寄存器中。
从以上技术方案可以看出,本发明实施例具有以下优点:
数据块依次烧录空片OTP区块中,且每次在将数据块烧录到OTP区块中时,启动循环冗余校验码(CRC,Cyclic Redundancy Check)电路生成该数据块对应的CRC码,并根据该CRC码对OTP区块中的数据进行CRC校验,若通过校验,则将OTP区块的偏移地址、有效标记位及数据块的CRC码写入OTP存储器对应的配置表中,若未通过校验,则重新进行烧录,直至所有的待烧录的数据块均已完成有效烧录,使得数据块在烧录的过程中,即使出现坏块,也不会影响数据块的烧录及OTP存储器的使用,提高了OTP存储器的良品率,同时,通过在烧录过程中,保存有效OTP区块的偏移地址、有效标记位及数据库块的CRC码,使得该OTP存储器在上电运行时,能够根据配置表中保存的有效OTP区块的CRC码再次进行CRC校验,并能够将校验成功的OTP区块的偏移地址保存到CPU的寄存器中,使得CPU能够高效访问OTP存储器中的数据,同时能够有效的提高OTP存储器中的用户程序运行的可靠性,整体上改善了OTP存储器的使用性能。
附图说明
图1为本发明实施例中改善OTP存储器使用性能的方法的一个示意图;
图2为本发明实施例中配置表烧录方法的一个示意图;
图3为本发明实施例中OTP存储器烧录之后数据结构图;
图4为本发明实施例中改善OTP存储器使用性能的方法的另一示意图;
图5为本发明实施例中配置表的校验方法的一个示意图;
图6为本发明实施例中改善OTP存储器使用性能的装置的另一示意图;
图7为本发明实施例中改善OTP存储器使用性能的装置的另一示意图;
图8为本发明实施例中改善OTP存储器使用性能的装置的另一示意图;
图9为本发明实施例中改善OTP存储器使用性能的装置的另一示意图。
具体实施方式
本发明实施例提供了一种改善OTP存储器使用性能的方法及装置,用于在对OTP存储器进行数据烧录的过程中,提高OTP存储器的良品率,及在OTP所在的芯片上电运行时,使得CPU能够高效访问OTP存储器中的数据,及提高OTP存储器中用户程序运行的可靠性。
在本发明实施例中,可通过改善OTP存储器的数据烧录的过程来改善OTP存储器的使用性能,请参阅图1,为本发明实施例中改善OTP存储器使用性能的方法的实施例,包括:
101、确定OTP存储器中空片OTP区块及OTP区块存储空间的大小;
在本发明实施例中,若OTP存储器为第一次进行数据烧录,烧录控制器将根据待烧录数据的数据量的大小,将OTP存储器的存储空间划分为至少两个OTP区块,并将OTP区块的存储空间的大小写入OTP存储器的配置表中;或者,若OTP存储器为非第一次进行数据烧录,烧录控制器则从该OTP存储器的配置表中获取空片OTP区块的偏移地址及OTP区块的大小,其中,可用于烧录数据的OTP区块为空片OTP区块,即未烧录过数据的OTP区块。
在本发明实施例中,烧录控制器将确定OTP存储器中将要烧录数据的OTP区块及OTP区块存储空间的大小。
102、将待烧录数据按照OTP区块的存储空间的大小划分数据块,确定起始数据块及起始空片OTP区块;
在本发明实施例中,数据是以数据块为单位烧录到OTP存储器中空片OTP区块中的,因此,烧录控制器将待烧录数据按照OTP区块的存储空间的大小划分数据块,例如,待烧录数据的大小为2KB,OTP区块的存储空间的大小为512bit,则可将待烧录数据划分为4个大小均为512bit的数据块。
在本发明实施例中,烧录控制器将确定起始数据块及起始空片OTP区块。
在本发明实施例中,数据块的烧录是顺序烧录,即从起始数据块开始烧录,一个数据块烧录成功之后,再烧录下一个数据块。
103、将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码;
在本发明实施例中,CRC能够生成数据的CRC码及实现对数据的CRC校验。
在本发明实施例中,烧录控制器将起始数据块烧录到OTP区块中,同时启动CRC电路生成该数据块对应的CRC码,需要说明的是,烧录控制器将数据发送给CRC电路,由该CRC电路根据数据块中的数据生成CRC码。
104、根据CRC码,启动CRC电路对OTP区块中的数据进行CRC校验;
在本发明实施例中,数据块在烧录到OTP区块中之后,烧录控制器将根据数据块的CRC码,启动CRC电路对OTP区块中的数据进行CRC校验,具体为:CRC电路启动之后,CRC电路读取该OTP区块中已烧录的数据和之前产生的CRC码校验,如果校验成功,则说明数据块在烧录到OTP区块的过程中时未出现错误,通过CRC校验,若不成功,则说明数据块在烧录到OTP区块的过程中出现错误,未通过CRC校验。
105、若OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行步骤103;
在本发明实施中,若OTP区块中的数据未通过CRC校验,烧录控制器将确定下一个待烧录数据的空片OTP区块,返回执行步骤103,即将数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码,对未有效烧录的数据再次进行烧录及CRC校验过程,直至该数据块完成有效烧录。
106、若OTP区块中的数据通过CRC校验,则将OTP区块的偏移地址、有效标记位及数据块的CRC码写入OTP存储器对应的配置表中;
在本发明实施例中,若OTP区块中的数据通过CRC校验,烧录控制器将该OTP区块的偏移地址,有效标记位及数据块的CRC码写入OTP存储器对应的配置表中。
需要说明的是,若需要对待烧录数据进行备份,则在对一个数据块成功完成一次烧录之后,再对该数据块继续执行烧录过程,直至完成两次有效的数据烧录,以达到对数据备份的目的,在本发明实施例中,备份数据块的具体操作为:在步骤106之后,判断该数据块是否已经完成两次有效的烧录到OTP区块的过程,若否,则确定下一个待烧录数据的空片OTP区块,返回执行步骤103。
107、判断数据块是否为待烧录数据的最后一个数据块,若否,则执行步骤108,若是,则执行步骤109;
烧录控制器在对一个数据块完成有效的数据烧录之后,将判断该数据块是否为待烧录数据的最后一个数据块,并根据判断结果,确定是否继续执行数据烧录的过程。
108、确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行步骤103;
在本发明实施例中,当数据块不是待烧录数据的最后一个数据块时,烧录控制器将确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块。并返回执行步骤103,即将该数据块烧录到OTP区块中,启动CRC电路生成数据块对应的CRC码,并完成根据该CRC码进行CRC校验的过程。
109、停止数据烧录;
在本发明实施例中,当数据块是待烧录数据的最后一个数据块时,烧录控制器将停止数据烧录。
110、确定下一个待烧录数据的空片OTP区块,将配置表烧录到OTP区块中。
待烧录数据完成烧录过程之后,烧录控制器将进行配置表的烧录,即确定下一个待烧录数据的空片OTP区块,将配置表烧录到OTP区块中。
在本发明实施例中,通过将OTP存储器的存储空间划分为OTP区块,且将待烧录的数据按照OTP区块的存储空间的大小依次烧录到OTP区块中,每次在将数据块烧录到OTP区块时,将启动CRC电路生产该数据块的CRC码,该数据块烧录完之后,对该OTP区块中的数据进行CRC校验,若未通过校验,则说明出现坏块,则将未烧录成功的数据块再次进行烧录,直至成功为止,使得OTP存储器中即使出现坏块,也不会导致OTP存储器不能使用的情况,提高了OTP存储器的良品率,且还可以通过将待烧录数据进行备份的方式,进一步提高OTP存储器中的用户程序运行的可靠性,改善了OTP存储器的性能。
需要说明的是,在本发明实施例中,为了确保OTP存储器中配置表烧录的正确性,可通过对烧录配置表的OTP区块进行校验确定烧录是否成功,请参阅图2,为本发明实施例中一种配置表烧录方法的实施例,包括:
201、将配置表烧录到OTP区块中,启动CRC电路生成所述配置表对应的CRC码;
202、根据CRC码,启动CRC电路对OTP区块中的数据进行CRC校验;
在本发明实施例中,烧录控制器将配置表烧录到OTP区块中,启动CRC电路生成所述配置表对应的CRC码,并根据该CRC码,启动CRC电路对OTP区块中的数据进行CRC校验。
203、若OTP区块中的数据通过CRC校验,则将配置表的CRC码保存到配置表中,设置配置表的标识码,当配置表已完成两次有效的烧录之后,停止配置表的烧录;
在本发明实施例中,若OTP区块中的数据通过CRC校验,则说明此次配置表的烧录有效,烧录控制器将配置表的CRC码保存到配置表中,并设置该配置表的标识码,该标识码用于芯片上电运行后,芯片CPU查找标识码确定配置表。且为了提高配置表烧录的正确性,可对配置表完成两次有效的烧录,进行配置表的备份,当配置表完成两次有效的烧录之后,再停止配置表的烧录。具体为:在对配置表进行一次有效烧录之后,再确定一个待烧录数据的空片OTP区块,按照本发明实施例中的步骤201至204的过程在执行一次配置表的有效烧录过程,实现配置表的备份。
204、确定下一个待烧录数据的空片OTP区块,返回执行步骤201。
在本发明实施例中,若OTP区块中的数据未通过校验,则说明配置表的烧录失败,烧录工具将确定下一个待烧录数据的恐怕OTP区块,返回执行步骤201中,即再次对未有效烧录的配置表进行烧录及校验过程,直至完成配置表的有效烧录。
需要说明的是,烧录控制器可以是一种数据烧录工具,或者是具有控制能力的芯片,能够按照本发明实施例中图1及图2所示的实施例实现数据的烧录,在实际应用中,可根据具体的情况确定烧录控制器,此处不做限定。
为了更好的理解,请参考图3,为本发明实施例中采用图1及图2所示实施例的方法对OTP存储器进行烧录之后,可能得到的OTP存储器的数据结构图。
在本发明实施例中,图1及图2所示的实施例为通过优化OTP区块的数据烧录过程,利用CRC校验的方法,有效的提高OTP存储器的良品率。下面将从使用OTP存储器的角度描述有效提高OTP存储器的用户程序运行的可靠性的方法,请参阅图4,为本发明实施例中一种改善OTP存储器的使用性能的方法的实施例,包括:
401、OTP存储器所在的芯片上电后,芯片中的CPU获取OTP存储器中校验正确的配置表;
在本发明实施例中,OTP存储器所在的芯片上电后,芯片中的CPU将获取该OTP存储器中校验正确的配置表。
需要说明的是,CPU可通过配置表的标识码在OTP存储器中查找到配置表,并通过对配置表进行CRC校验获得校验正确的配置表,例如,可设置配置表的标识码为“DW”,通过搜索标识“DW”找到配置表。
402、根据配置表,获取OTP存储器中保存的有效OTP区块;
在本发明实施例中,配置表中保存了有效数据块的偏移地址,OTP区块的存储空间的大小,有效OTP区块的有效标记位及CRC校验值,对于坏块,即未成功烧录数据的OTP区块,则保存了该区块的无效标记位,因此,CPU可根据配置表中有效标记位获取保存的有效OTP区块。
403、依次对有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在CPU的寄存器中。
在本发明实施例中,CPU将依次对有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在CPU的寄存器中。
在本发明实施例中,通过对有效OTP区块进行CRC校验,能够有效的避免运行错误的用户程序导致芯片运行不正常或者误操作,且通过将校验正确的OTP区块的偏移地址保存到CPU寄存器中,使得CPU能够正确高效访问到用户程序,改善了OTP存储器的使用性能。
为了更好的理解本发明中的技术方案,请参阅图5,为本发明实施例中一种配置表的校验方法的实施例,包括:
501、根据主配置表的标识码,确定主配置表所在的OTP区块;
502、对OTP区块中的主配置表进行CRC校验;
在本发明实施例中,配置表为主配置表或者备份配置表,即烧录控制器在进行烧录时,OTP存储器的配置表进行了两次有效的烧录,芯片的CPU将根据主配置表的标识码,确定主配置表所在的OTP区块。
CPU通过配置表的标识码查找到主配置表之后,将对该主配置表进行CRC校验,并根据校验结果,确定OTP区块中的数据是否通过CRC校验。
503、若OTP区块中的数据通过CRC校验,则确定OTP区块中的主配置表为校验正确的配置表;
504、若主配置表未通过CRC校验,则根据备份配置表的标识码确定备份配置表所在的OTP区块,对OTP区块中的数据进行CRC校验,若OTP区块中的数据通过CRC校验,则确定OTP区块中的备份配置表为校验正确的配置表。
在本发明实施例中,若OTP区块中的数据通过CRC校验,则可确定该OTP区块中的主配置表为校验正确的配置表,若OTP区块中的数据未通过CRC校验,则需要对备份配置表进行校验,具体为:根据备份配置表的标识码确定备份配置表所在的OTP区块,对该OTP区块中的数据进行CRC校验,若该OTP区块中的数据通过CRC校验,则确定该OTP区块中的备份配置表为校验正确的配置表。
需要说明的是,在本发明实施例中,若未查找到配置表,或者主配置表及备份配置表均未通过验证,或者两个已烧录相同数据块的OTP区块的数据验证均未通过,则生成指示信息,指示该OTP存储器中的数据出现错位,不能正确运行。
在本发明实施例中,通过利用备份配置表及备份数据,能够有效的提高OTP存储器的利用率;通过对配置表及OTP区块中的数据进行CRC校验,能够有效的提高用户程序运行的可靠性及稳定性;通过将通过验证的OTP区块的偏移地址保存在CPU的寄存器中,能够有效的提高CPU访问OTP存储器中的数据的效率,改善了OTP存储器的使用性能。
下面将描述执行图1及图2所示实施例的装置,需要说明的是,该装置可以是数据烧录工具,或者是具有控制能力的芯片,请参阅图6,为本发明实施例中改善OTP存储器使用性能的装置的实施例,包括:
获取单元601,用于确定OTP存储器中将要烧录数据的OTP区块及OTP区块存储空间的大小,及将待烧录数据按照OTP区块的存储空间的大小划分数据块,确定起始数据块及起始空片OTP区块;
数据烧录处理单元602,用于用于将所述数据块烧录到所述OTP区块中,启动循环冗余校验码CRC电路生成所述数据块对应的CRC码;,根据所述CRC码,启动CRC电路对所述OTP区块中的数据进行CRC校验;若所述OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;若所述OTP区块中的数据通过CRC校验,则将所述OTP区块的偏移地址、有效标记位及所述数据块的CRC码写入所述OTP存储器对应的配置表中;判断所述数据块是否为所述待烧录数据的最后一个数据块;若所述数据块不是所述待烧录数据的最后一个数据块,所述确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;若所述数据块为所述待烧录数据的最后一个数据块,则停止数据烧录;
配置表烧录单元603,用于确定下一个待烧录数据的空片OTP区块,将所述配置表烧录到所述OTP区块中。
为了更好的理解本发明实施例中的装置,请参阅图7,为本发明实施例中改善OTP存储器使用性能的另一个实施例,包括:
图6所示实施例中描述的获取单元601,数据烧录处理单元602,配置表烧录单元603,且与图6所示实施例描述的内容相似,此处不再赘述。
其中,获取单元601包括:
划分单元701,用于若OTP存储器为第一次进行数据烧录,则根据待烧录数据的数据量的大小,将OTP存储器的存储空间划分为至少两个OTP区块;
写入单元702,用于将OTP区块的存储空间的大小写入OTP区块的配置表中;
区块大小获取单元703,用于若OTP存储器为非第一次进行数据烧录,则从OTP存储器的配置表中获取OTP区块的大小。
在本发明实施例中,通过将OTP存储器的存储空间划分为OTP区块,且将待烧录的数据按照OTP区块的存储空间的大小依次烧录到OTP区块中,每次在将数据块烧录到OTP区块时,将启动CRC电路生产该数据块的CRC码,该数据块烧录完之后,对该OTP区块中的数据进行CRC校验,若未通过校验,则说明出现坏块,则将未烧录成功的数据块再次进行烧录,直至成功为止,使得OTP存储器中即使出现坏块,也不会导致OTP存储器不能使用的情况,提高了OTP存储器的良品率,且还可以通过将待烧录数据进行备份的方式,进一步提高OTP存储器中的用户程序运行的可靠性,改善了OTP存储器的性能。
下面将描述执行图4及图5所示实施例的装置,该装置可以是芯片中的CPU,请参阅图8,为本发明实施例中改善OTP存储器使用性能的装置的实施例包括:
配置表获取单元801,OTP存储器所在的芯片上电后,获取OTP存储器中校验正确的配置表;
区块获取单元802,用于根据配置表,获取OTP存储器中保存的有效OTP区块;
校验保存单元803,用于依次对有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在CPU的寄存器中。
在本发明实施例中,通过对有效OTP区块进行CRC校验,能够有效的避免运行错误的用户程序导致芯片运行不正常或者误操作,且通过将校验正确的OTP区块的偏移地址保存到CPU寄存器中,使得CPU能够正确高效访问到用户程序,改善了OTP存储器的使用性能。
为了更好的理解本发明实施例中的装置,请参阅图9,为本发明实施例中改善OTP存储器使用性能的装置的实施例,包括:
图8所示实施例中描述的配置表获取单元801,区块获取单元802,校验保存单元803,且与图8所示实施例中描述的内容相似,此处不再赘述。
其中,配置表获取单元801包括:
主配置表校验单元901,用于根据主配置表的标识码,确定所述主配置表所在的OTP区块;对所述OTP区块中的数据进行CRC校验;若所述OTP区块中的数据通过CRC校验,则确定所述OTP区块中的主配置表为所述校验正确的配置表;
备份配置表校验单元902,用于若所述主配置表未通过CRC校验,则根据备份配置表的标识码确定所述备份配置表所在的OTP区块,对所述OTP区块中的数据进行CRC校验,当所述OTP区块中的数据通过CRC校验,则确定所述OTP区块中的备份配置表为所述校验正确的配置表。
需要说明的是,在本发明实施例中,若未查找到配置表,或者主配置表及备份配置表均未通过验证,或者两个已烧录相同数据块的OTP区块的数据验证均未通过,则生成指示信息,指示该OTP存储器中的数据出现错位,不能正确运行。
在本发明实施例中,通过利用备份配置表及备份数据,能够有效的提高OTP存储器的利用率;通过对配置表及OTP区块中的数据进行CRC校验,能够有效的提高用户程序运行的可靠性及稳定性;通过将通过验证的OTP区块的偏移地址保存在CPU的寄存器中,能够有效的提高CPU访问OTP存储器中的数据的效率,改善了OTP存储器的使用性能。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上对本发明所提供的一种改善OTP存储器的使用性能的方法及装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种改善一次性编程OTP存储器使用性能的方法,其特征在于,包括:
确定OTP存储器中空片OTP区块及所述OTP区块存储空间的大小;
将待烧录数据按照所述OTP区块的存储空间的大小划分数据块;
确定起始数据块及起始空片OTP区块;
将所述数据块烧录到所述OTP区块中,启动循环冗余校验码CRC电路生成所述数据块对应的CRC码;
根据所述CRC码,启动CRC电路对所述OTP区块中的数据进行CRC校验;
若所述OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;
若所述OTP区块中的数据通过CRC校验,则将所述OTP区块的偏移地址、有效标记位及所述数据块的CRC码写入所述OTP存储器对应的配置表中;
判断所述数据块是否为所述待烧录数据的最后一个数据块;
若所述数据块不是所述待烧录数据的最后一个数据块,所述确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;
若所述数据块为所述待烧录数据的最后一个数据块,则停止数据烧录;
确定下一个待烧录数据的空片OTP区块,将所述配置表烧录到所述OTP区块中。
2.根据权利要求1所述的方法,其特征在于,所述确定OTP存储器中空片OTP区块及所述OTP区块存储空间的大小具体包括:
若所述OTP存储器为第一次进行数据烧录,则根据待烧录数据的数据量的大小,将所述OTP存储器的存储空间划分为至少两个OTP区块;
将所述OTP区块的存储空间的大小写入所述OTP存储器对应的配置表中;
或者,
若所述OTP存储器为非第一次进行数据烧录,则从所述OTP存储器的配置表中获取空片OTP区块的偏移位置及OTP区块的大小。
3.根据权利要求1所述的方法,其特征在于,所述则将所述OTP区块的偏移地址、有效标记位及所述数据块的CRC码写入所述配置表中之后还包括:
判断所述数据块是否已经完成两次有效的烧录到OTP区块的过程,若否,则确定下一个待烧录数据的空片OTP区块,返回执行所述启动CRC电路生成所述数据块对应的CRC码,将所述数据块烧录到所述OTP区块中的步骤。
4.根据权利要求1所述的方法,其特征在于,所述将所述配置表烧录到所述OTP区块中包括:
将所述配置表烧录到所述OTP区块中,启动CRC电路生成所述配置表对应的CRC码;
根据所述CRC码,启动所述CRC电路对所述OTP区块中的数据进行CRC校验;
若所述OTP区块中的数据通过CRC校验,则将所述配置表的CRC码保存到所述配置表中,设置所述配置表的标识码,当所述配置表已完成两次有效的烧录之后,停止所述配置表的烧录;
若所述OTP区块中的数据未通过CRC校验,则所述确定下一个待烧录数据的空片OTP区块,返回执行所述启动CRC电路生成所述配置表对应的CRC码,将所述配置表烧录到所述OTP区块中的步骤。
5.一种改善一次性编程OTP存储器使用性能的方法,其特征在于,包括:
OTP存储器所在的芯片上电后,所述芯片中的中央处理器CPU获取所述OTP存储器中校验正确的配置表;
根据所述配置表,获取所述OTP存储器中保存的有效OTP区块;
依次对所述有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在所述CPU的寄存器中。
6.根据权利要求5所述的方法,其特征在于,所述依次对所述有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在所述CPU的寄存器中具体包括:
获取起始有效OTP区块;
对所述OTP区块中的数据进行CRC校验;
当所述OTP区块中的数据通过校验时,将所述OTP区块的偏移地址保存到所述CPU的寄存器中,确定下下一个有效OTP区块的位置,返回执行所述对所述OTP区块中的数据进行CRC校验的步骤;
当所述OTP区块中的数据未通过校验时,确定下一个有效OTP区块的位置,返回执行所述对所述OTP区块中的数据进行CRC校验的步骤。
7.根据权利要求5所述的方法,其特征在于,所述配置表为主配置表或者备份配置表;
则所述芯片中的中央处理器CPU获取所述OTP存储器中校验正确的配置表包括:
根据主配置表的标识码,确定所述主配置表所在的OTP区块;
对所述OTP区块中的数据进行CRC校验;
若所述OTP区块中的数据通过CRC校验,则确定所述OTP区块中的主配置表为所述校验正确的配置表;
若所述主配置表未通过CRC校验,则根据备份配置表的标识码确定所述备份配置表所在的OTP区块,对所述OTP区块中的数据进行CRC校验,若所述OTP区块中的数据通过CRC校验,则确定所述OTP区块中的备份配置表为所述校验正确的配置表。
8.一种改善一次性编程OTP存储器使用性能的装置,其特征在于,包括:
获取单元,用于确定OTP存储器中将要烧录数据的OTP区块及所述OTP区块存储空间的大小,及将待烧录数据按照所述OTP区块的存储空间的大小划分数据块,确定起始数据块及起始空片OTP区块;
数据烧录处理单元,用于将所述数据块烧录到所述OTP区块中,启动循环冗余校验码CRC电路生成所述数据块对应的CRC码;对所述OTP区块中的数据进行两次CRC校验,根据所述CRC码,启动CRC电路对所述OTP区块中的数据进行CRC校验;若所述OTP区块中的数据未通过CRC校验,则确定下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;若所述OTP区块中的数据通过CRC校验,则将所述OTP区块的偏移地址、有效标记位及所述数据块的CRC码写入所述OTP存储器对应的配置表中;判断所述数据块是否为所述待烧录数据的最后一个数据块;若所述数据块不是所述待烧录数据的最后一个数据块,所述确定下一个待烧录的数据块及下一个待烧录数据的空片OTP区块,返回执行所述将所述数据块烧录到所述OTP区块中,启动CRC电路生成所述数据块对应的CRC码的步骤;若所述数据块为所述待烧录数据的最后一个数据块,则停止数据烧录;
配置表烧录单元,用于确定下一个待烧录数据的空片OTP区块,将所述配置表烧录到所述OTP区块中。
9.根据权利要求8所述的装置,其特征在于,所述获取单元包括:
划分单元,用于若所述OTP存储器为第一次进行数据烧录,则根据待烧录数据的数据量的大小,将所述OTP存储器的存储空间划分为至少两个OTP区块;
写入单元,用于将所述OTP区块的存储空间的大小写入所述OTP区块的配置表中;
或者,
区块大小获取单元,用于若所述OTP存储器为非第一次进行数据烧录,则从所述OTP存储器的配置表中获取OTP区块的大小。
10.一种改善一次性编程OTP存储器使用性能的装置,其特征在于,包括:
配置表获取单元,OTP存储器所在的芯片上电后,获取所述OTP存储器中校验正确的配置表;
区块获取单元,用于根据所述配置表,获取所述OTP存储器中保存的有效OTP区块;
校验保存单元,用于依次对所述有效OTP区块进行CRC校验,将校验正确的OTP区块的偏移地址保存在所述CPU的寄存器中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110327756.3A CN102508732B (zh) | 2011-10-25 | 2011-10-25 | 改善一次性可编程存储器使用性能的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110327756.3A CN102508732B (zh) | 2011-10-25 | 2011-10-25 | 改善一次性可编程存储器使用性能的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508732A true CN102508732A (zh) | 2012-06-20 |
CN102508732B CN102508732B (zh) | 2015-08-19 |
Family
ID=46220824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110327756.3A Active CN102508732B (zh) | 2011-10-25 | 2011-10-25 | 改善一次性可编程存储器使用性能的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508732B (zh) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019950A (zh) * | 2012-12-28 | 2013-04-03 | 信利光电(汕尾)有限公司 | 一次性可编程芯片的空间分配方法、使用方法,及装置 |
CN104391727A (zh) * | 2014-12-15 | 2015-03-04 | 福州瑞芯微电子有限公司 | 数据烧写方法、系统、烧写设备以及目标设备 |
CN104461641A (zh) * | 2014-12-15 | 2015-03-25 | 福州瑞芯微电子有限公司 | 一种数据烧写方法、系统、烧写设备以及目标设备 |
CN105243042A (zh) * | 2015-09-30 | 2016-01-13 | 广东小天才科技有限公司 | 数据烧录方法和数据烧录装置 |
CN105653332A (zh) * | 2015-12-30 | 2016-06-08 | 深圳市芯海科技有限公司 | 一种可修正otp烧录问题的mcu系统及烧录方法 |
CN106098100A (zh) * | 2016-06-20 | 2016-11-09 | 乐鑫信息科技(上海)有限公司 | 一种otp rom的单向比特错误纠正方法 |
CN106293841A (zh) * | 2016-08-11 | 2017-01-04 | 青岛海信移动通信技术股份有限公司 | 一种烧录数据的方法和装置 |
CN106792186A (zh) * | 2016-11-29 | 2017-05-31 | 青岛海信宽带多媒体技术有限公司 | 媒体网络终端的中间件访问控制方法和装置 |
CN106933603A (zh) * | 2015-12-29 | 2017-07-07 | 深圳市博巨兴实业发展有限公司 | 一种芯片烧录的方法、装置和微控制器 |
CN107992317A (zh) * | 2017-12-01 | 2018-05-04 | 惠州市蓝微电子有限公司 | 一种电芯的电量管理和电流监控ic的烧录校验的方法 |
CN108153611A (zh) * | 2018-01-10 | 2018-06-12 | 芜湖美的厨卫电器制造有限公司 | 故障自检方法、故障自检装置、微控制器和可读存储介质 |
CN109273041A (zh) * | 2018-08-29 | 2019-01-25 | 珠海市微半导体有限公司 | 一种otp的写入方法 |
CN109889722A (zh) * | 2019-01-04 | 2019-06-14 | 信利光电股份有限公司 | 一种摄像头的高低温拍摄方法、装置及摄像头 |
CN110187920A (zh) * | 2019-04-01 | 2019-08-30 | 深圳市德名利电子有限公司 | 基于otp的主控芯片的boot代码扩展方法 |
CN110321136A (zh) * | 2019-07-04 | 2019-10-11 | 北京集创北方科技股份有限公司 | 数据存取装置、方法和芯片 |
CN111104050A (zh) * | 2018-10-26 | 2020-05-05 | 珠海格力电器股份有限公司 | 一种otp优化存储结构、存储方法、读取方法、控制芯片 |
CN111309361A (zh) * | 2020-02-13 | 2020-06-19 | 北京集创北方科技股份有限公司 | 数据读写方法及装置、电子设备、存储介质 |
CN113050880A (zh) * | 2019-12-26 | 2021-06-29 | 新唐科技股份有限公司 | 一次性可编程存储器装置及其容错方法 |
CN116230060A (zh) * | 2023-05-08 | 2023-06-06 | 无锡国芯微高新技术有限公司 | 一次性可编程存储器的数据编程校验方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009581A (zh) * | 2006-01-24 | 2007-08-01 | 北京畅通达通信技术有限公司 | 基于传输质量分析的线路无损伤自动切换方法与装置 |
CN101335785A (zh) * | 2007-06-28 | 2008-12-31 | 王忱 | 电话数据终端系统及其数据自动传输方法 |
CN102063318A (zh) * | 2010-12-22 | 2011-05-18 | Tcl通力电子(惠州)有限公司 | 一种供电mcu的升级方法 |
CN102360316A (zh) * | 2011-10-20 | 2012-02-22 | 深圳芯邦科技股份有限公司 | 一次性可编程存储器中启动程序的运行方法及装置 |
-
2011
- 2011-10-25 CN CN201110327756.3A patent/CN102508732B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009581A (zh) * | 2006-01-24 | 2007-08-01 | 北京畅通达通信技术有限公司 | 基于传输质量分析的线路无损伤自动切换方法与装置 |
CN101335785A (zh) * | 2007-06-28 | 2008-12-31 | 王忱 | 电话数据终端系统及其数据自动传输方法 |
CN102063318A (zh) * | 2010-12-22 | 2011-05-18 | Tcl通力电子(惠州)有限公司 | 一种供电mcu的升级方法 |
CN102360316A (zh) * | 2011-10-20 | 2012-02-22 | 深圳芯邦科技股份有限公司 | 一次性可编程存储器中启动程序的运行方法及装置 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019950B (zh) * | 2012-12-28 | 2016-01-20 | 信利光电股份有限公司 | 一次性可编程芯片的空间分配方法、使用方法,及装置 |
CN103019950A (zh) * | 2012-12-28 | 2013-04-03 | 信利光电(汕尾)有限公司 | 一次性可编程芯片的空间分配方法、使用方法,及装置 |
CN104461641B (zh) * | 2014-12-15 | 2017-11-21 | 福州瑞芯微电子股份有限公司 | 一种数据烧写方法、系统、烧写设备以及目标设备 |
CN104391727A (zh) * | 2014-12-15 | 2015-03-04 | 福州瑞芯微电子有限公司 | 数据烧写方法、系统、烧写设备以及目标设备 |
CN104461641A (zh) * | 2014-12-15 | 2015-03-25 | 福州瑞芯微电子有限公司 | 一种数据烧写方法、系统、烧写设备以及目标设备 |
CN104391727B (zh) * | 2014-12-15 | 2017-11-21 | 福州瑞芯微电子股份有限公司 | 数据烧写方法、系统、烧写设备以及目标设备 |
CN105243042A (zh) * | 2015-09-30 | 2016-01-13 | 广东小天才科技有限公司 | 数据烧录方法和数据烧录装置 |
CN106933603B (zh) * | 2015-12-29 | 2024-03-05 | 深圳市博巨兴微电子科技有限公司 | 一种芯片烧录的方法、装置和微控制器 |
CN106933603A (zh) * | 2015-12-29 | 2017-07-07 | 深圳市博巨兴实业发展有限公司 | 一种芯片烧录的方法、装置和微控制器 |
CN105653332A (zh) * | 2015-12-30 | 2016-06-08 | 深圳市芯海科技有限公司 | 一种可修正otp烧录问题的mcu系统及烧录方法 |
CN105653332B (zh) * | 2015-12-30 | 2019-05-24 | 深圳市芯海科技有限公司 | 一种可修正otp烧录问题的mcu系统及烧录方法 |
US10817368B2 (en) | 2016-06-20 | 2020-10-27 | Espressif Systems (Shanghai) Co., Ltd. | Unidirectional bit error correcting method for OTP ROM |
WO2017219478A1 (zh) * | 2016-06-20 | 2017-12-28 | 乐鑫信息科技(上海)有限公司 | 一种otp rom的单向比特错误纠正方法 |
CN106098100A (zh) * | 2016-06-20 | 2016-11-09 | 乐鑫信息科技(上海)有限公司 | 一种otp rom的单向比特错误纠正方法 |
CN106098100B (zh) * | 2016-06-20 | 2019-12-10 | 乐鑫信息科技(上海)股份有限公司 | 一种otp rom的单向比特错误纠正方法 |
CN106293841A (zh) * | 2016-08-11 | 2017-01-04 | 青岛海信移动通信技术股份有限公司 | 一种烧录数据的方法和装置 |
CN106792186A (zh) * | 2016-11-29 | 2017-05-31 | 青岛海信宽带多媒体技术有限公司 | 媒体网络终端的中间件访问控制方法和装置 |
CN107992317A (zh) * | 2017-12-01 | 2018-05-04 | 惠州市蓝微电子有限公司 | 一种电芯的电量管理和电流监控ic的烧录校验的方法 |
CN107992317B (zh) * | 2017-12-01 | 2021-01-29 | 惠州市蓝微电子有限公司 | 一种电芯的电量管理和电流监控ic的烧录校验的方法 |
CN108153611A (zh) * | 2018-01-10 | 2018-06-12 | 芜湖美的厨卫电器制造有限公司 | 故障自检方法、故障自检装置、微控制器和可读存储介质 |
CN108153611B (zh) * | 2018-01-10 | 2021-02-23 | 芜湖美的厨卫电器制造有限公司 | 故障自检方法、故障自检装置、微控制器和可读存储介质 |
CN109273041A (zh) * | 2018-08-29 | 2019-01-25 | 珠海市微半导体有限公司 | 一种otp的写入方法 |
CN109273041B (zh) * | 2018-08-29 | 2020-09-01 | 珠海市一微半导体有限公司 | 一种otp的写入方法 |
CN111104050A (zh) * | 2018-10-26 | 2020-05-05 | 珠海格力电器股份有限公司 | 一种otp优化存储结构、存储方法、读取方法、控制芯片 |
CN109889722A (zh) * | 2019-01-04 | 2019-06-14 | 信利光电股份有限公司 | 一种摄像头的高低温拍摄方法、装置及摄像头 |
CN109889722B (zh) * | 2019-01-04 | 2021-01-26 | 信利光电股份有限公司 | 一种摄像头的高低温拍摄方法、装置及摄像头 |
CN110187920A (zh) * | 2019-04-01 | 2019-08-30 | 深圳市德名利电子有限公司 | 基于otp的主控芯片的boot代码扩展方法 |
CN110321136A (zh) * | 2019-07-04 | 2019-10-11 | 北京集创北方科技股份有限公司 | 数据存取装置、方法和芯片 |
CN110321136B (zh) * | 2019-07-04 | 2023-03-21 | 北京集创北方科技股份有限公司 | 数据存取装置、方法和芯片 |
CN113050880A (zh) * | 2019-12-26 | 2021-06-29 | 新唐科技股份有限公司 | 一次性可编程存储器装置及其容错方法 |
CN113050880B (zh) * | 2019-12-26 | 2023-09-29 | 新唐科技股份有限公司 | 一次性可编程存储器装置及其容错方法 |
CN111309361A (zh) * | 2020-02-13 | 2020-06-19 | 北京集创北方科技股份有限公司 | 数据读写方法及装置、电子设备、存储介质 |
CN116230060A (zh) * | 2023-05-08 | 2023-06-06 | 无锡国芯微高新技术有限公司 | 一次性可编程存储器的数据编程校验方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102508732B (zh) | 2015-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508732A (zh) | 改善一次性可编程存储器使用性能的方法及装置 | |
KR101969008B1 (ko) | 영구 메모리에서의 에러 처리 기술 | |
CN102360316B (zh) | 一次性可编程存储器中启动程序的运行方法及装置 | |
US9542269B1 (en) | Controller controlling semiconductor memory device and operating method thereof | |
US7822965B2 (en) | BIOS file switching method and controller device thereof | |
CN106910528B (zh) | 一种固态硬盘数据巡检的优化方法及装置 | |
TW201035984A (en) | Data error recovery in non-volatile memory | |
CN110727597B (zh) | 一种基于日志排查无效代码补全用例的方法 | |
WO2015058591A1 (zh) | 一种数据校验的方法、设备和系统 | |
US20150046772A1 (en) | Method and device for error correcting code (ecc) error handling | |
US9465538B2 (en) | Flash memory control chip and data storage device and flash memory control method | |
CN116880782B (zh) | 一种内嵌式存储器及其测试方法 | |
JP2006302129A (ja) | コンピュータシステム、及びメモリの不良救済方法 | |
TW201526007A (zh) | Nand快閃記憶體燒錄資料的處理、使用方法及裝置、運行系統 | |
CN102279757A (zh) | 一种系统程序启动的方法及装置 | |
CN107807870B (zh) | 一种存储服务器主板掉电保护功能的测试方法和系统 | |
WO2018041151A1 (zh) | 数据存储的方法、装置以及非易失性存储器 | |
TW200935230A (en) | Redundant bit patterns for column defects coding | |
CN109101279B (zh) | 一种多版本系统的兼容性启动方法 | |
CN103294573B (zh) | 一种智能终端及其数据备份方法 | |
CN108664250B (zh) | 一种代码处理方法及装置 | |
CN115543720A (zh) | 文件系统读写正确性测试方法、装置及存储介质 | |
CN112764778A (zh) | 远程升级底层根文件系统的处理方法及相关设备 | |
CN102467522A (zh) | 一种基于nand闪存的文件系统的自编程方法及装置 | |
CN107017026B (zh) | 非易失性存储器装置及其读取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |