CN115168115A - 一种基于otp模块的数据修复方法、otp控制器以及芯片 - Google Patents

一种基于otp模块的数据修复方法、otp控制器以及芯片 Download PDF

Info

Publication number
CN115168115A
CN115168115A CN202211081543.1A CN202211081543A CN115168115A CN 115168115 A CN115168115 A CN 115168115A CN 202211081543 A CN202211081543 A CN 202211081543A CN 115168115 A CN115168115 A CN 115168115A
Authority
CN
China
Prior art keywords
data
repair
otp
address
data block
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
CN202211081543.1A
Other languages
English (en)
Other versions
CN115168115B (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.)
Xiangdixian Computing Technology Chongqing Co ltd
Original Assignee
Beijing Xiangdixian Computing Technology 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 Beijing Xiangdixian Computing Technology Co Ltd filed Critical Beijing Xiangdixian Computing Technology Co Ltd
Priority to CN202211081543.1A priority Critical patent/CN115168115B/zh
Publication of CN115168115A publication Critical patent/CN115168115A/zh
Application granted granted Critical
Publication of CN115168115B publication Critical patent/CN115168115B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

本公开提供了一种基于OTP模块的数据修复方法、OTP控制器以及芯片,应用于OTP控制器;所述OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;所述目标存储器中的源数据包括至少两个数据块,所述修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为所述待替换数据块对应的目标存储器中失效数据块的存储地址;所述方法包括:将所述目标存储器中的源数据读取到临时存储器中;对所述OTP模块读取,获取修复数据集合;针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,以得到修复后的源数据。

Description

一种基于OTP模块的数据修复方法、OTP控制器以及芯片
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于OTP模块的数据修复方法、OTP控制器以及芯片。
背景技术
目前部分存储器中的数据在被烧写或者固化后,将不可被再次更改,这类存储器常见的有OTP(One Time Programmable)模块即一次性可编程存储器,以及ROM。一旦OTP模块中的数据烧写错误或者ROM中的数据固化错误,则该存储器将会被作废处理。
发明内容
针对上述技术问题,本公开提供一种基于OTP模块的数据修复方法、OTP控制器及芯片技术方案如下。
根据本公开的第一方面,提供了一种基于OTP模块的数据修复方法,应用于OTP控制器;所述OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;所述目标存储器中的源数据包括至少两个数据块,所述修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为所述待替换数据块对应的目标存储器中失效数据块的存储地址;所述方法包括:
将所述目标存储器中的源数据读取到临时存储器中;
对所述OTP模块读取,获取修复数据集合;
针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
在一个实施例中,所述目标存储器为所述OTP模块,所述OTP模块的第一存储区用于存储源数据,第二存储区用于存储修复数据集合;
所述将所述目标存储器中的源数据读取到临时存储器中,包括:将所述OTP模块的第一存储区中的源数据读取到临时存储器中;
对所述OTP模块读取,获取修复数据集合,包括:
对所述OTP模块的第二存储区进行读取,获取修复数据集合。
在一个实施例中,所述目标存储器为启动ROM,所述源数据包括启动固件以及校验信息;所述方法还包括:
在临时存储器中得到修复后的源数据后,利用修复后的校验信息对修复后的启动固件进行校验。
在一个实施例中,在所述将所述目标存储器中的源数据读取到临时存储器中后,还包括:针对源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
所述根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
对替换地址描述数据进行解析得到替换地址,利用替换地址和所述地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
在一个实施例中,所述OTP模块中还存储修复标识,所述修复标识用于标识修复数据的存储格式;所述存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
所述对所述OTP模块读取,获取修复数据集合,包括:
根据所述修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
所述针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
根据所述替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
在一个实施例中,所述修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
在一个实施例中,所述修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
在一个实施例中,所述修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
在一个实施例中,所述一组修复数据中还包括有效标识,用于标识修复数据是否有效;
所述对所述OTP模块读取,获取修复数据集合,包括:
根据所述有效标识对所述OTP模块读取,获取修复数据集合中的有效修复数据;
所述针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
根据本公开实施例的第二个方面,提供了一种OTP控制器,部署于芯片上,所述芯片还部署有OTP模块以及目标存储器,所述OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;所述目标存储器中的源数据包括至少两个数据块,所述修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为所述待替换数据块对应的目标存储器中失效数据块的存储地址;所述OTP控制器包括:
读取模块,用于将所述目标存储器中的源数据读取到临时存储器中;对所述OTP模块读取,获取修复数据集合;
修复模块,用于针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
在一个实施例中,所述目标存储器为所述OTP模块,所述OTP模块的第一存储区用于存储源数据,第二存储区用于存储修复数据集合;
所述读取模块,具体用于将所述OTP模块的第一存储区中的源数据读取到临时存储器中;对所述OTP模块的第二存储区进行读取,获取修复数据集合。
在一个实施例中,所述目标存储器为启动ROM,所述源数据包括启动固件以及校验信息;所述OTP控制器还包括:
校验模块,用于在临时存储器中得到修复后的源数据后,利用修复后的校验信息对修复后的启动固件进行校验。
在一个实施例中,所述读取模块,还用于在将目标存储器中的源数据读取到临时存储器中后,针对源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
所述修复模块,具体用于对替换地址描述数据进行解析得到替换地址,利用替换地址和所述地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
在一个实施例中,所述OTP模块中还存储修复标识,所述修复标识用于标识修复数据的存储格式;所述存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
所述读取模块,具体用于根据所述修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
所述修复模块,具体用于根据所述替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
在一个实施例中,所述修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
在一个实施例中,所述修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
在一个实施例中,所述修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
在一个实施例中,所述一组修复数据中还包括有效标识,用于标识修复数据是否有效;
所述读取模块,具体用于根据所述有效标识对所述OTP模块进行读取,获取修复数据集合中的有效修复数据;
所述修复模块,具体用于针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
根据本公开实施例的第三个方面,提供了一种芯片,包括上述第二方面所述的OTP控制器、OTP模块、临时存储器以及目标存储器。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本公开实施例的一种芯片的结构示意图;
图2为本公开实施例的一种OTP模块的结构示意图;
图3为本公开实施例的另一种OTP模块的存储结构示意图;
图4为本公开实施例的一种OTP模块中第二存储区的结构示意图;
图5为本公开实施例的一种OTP模块中修复数据集合的存储结构示意图;
图6为本公开实施例的另一种OTP模块中修复数据集合的存储结构示意图;
图7为本公开实施例的又一种OTP模块中修复数据集合的存储结构示意图;
图8为本公开实施例的一种基于OTP模块的数据修复方法的流程示意图;
图9为本公开实施例的另一种芯片的结构示意图;
图10为本公开实施例的一种启动ROM中数据存储结构示意图;
图11为本公开实施例的一种OTP模块中数据存储结构示意图;
图12为本公开实施例的另一种基于OTP模块的数据修复方法的流程示意图;
图13为本公开实施例的又一种基于OTP模块的数据修复方法的流程示意图;
图14为本公开实施例的一种OTP控制器的结构示意图。
具体实施方式
为了使本公开实施例中的技术方案及优点更加清楚明白,下面将结合附图对本公开实施例中的技术方案及优点进一步详细的说明,显然,所描述的实施例仅仅是本公开的一部分实施例,而不是全部的实施例,需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合,基于本公开中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在本公开中使用的术语是仅仅是为了描述特定实施例,而非为了限制申请的保护范围。在本公开中,除非上下文清楚地表示其他含义,否则所使用的单数形式的“一种”、“所述”和“该”也包括复数形式。还应当理解,本文中使用的术语“和/或”包括列出的多个相关联项目的任意或所有可能组合。
应当理解,尽管在本公开可能采用术语“第一”、“第二”等等来描述各种信息,但是这些信息不应当受这些术语限制。这些术语仅用来将一种类型的信息与另一种类型的信息区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果、例如”可以被解释成为“在……时”或“当……时”或“响应于确定”。 还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
目前通常将OTP模块部署在芯片上,用来存储芯片的编号、各种参数、产品规格和产品密钥等重要信息。由于OTP模块具有一次性可编程的特性,因此一旦OTP模块中的数据烧写错误,则无法对其中错误的数据进行修改。典型的OTP模块,如efuse,该存储器中每个比特位的初始值都为0,通过特定烧写接口可以将比特位从0烧写为1,其中每一比特位只能被编程一次。由于电气特性的影响,对efuse中每一比特位的烧写也存在失败的可能,即预期将一个比特位烧写为1,但烧写完成后该比特位还是0,然而对一个比特位只能烧写一次,因此无法将该比特位更改为1。进而,如果efuse中某个比特位烧写错误,则该efuse中的数据将无法被使用,也就只能将该efuse作废处理。其他OTP模块也类似,本说明对此不进行详述。为了应对上述问题,目前也存在一些解决方案,如使用相同的备份efuse,并对备份efuse也做相同的烧写,然后将两个efuse的数据读出,并针对两个efuse的每个比特位进行或运算(有一个为1则为1)得到最终的结果,这样在一个efuse烧写错误的情况下(某一比特位未烧写成功还为0),如果另一个efuse烧写成功(同一比特位烧写为1),两个efuse的相同比特位进行或运算后,该比特位的结果则为正确的数据(为1)。但是这样的解决方案,一方面需要一份相同的efuse部署在片上,需要占用芯片的更多的面积,另一方面也无法保证两个efuse中至少有一个efuse烧写正确,即还是无法避免两个efuse均烧写错误。对于其他类型OTP模块的解决方式也类似,本公开对此不进行详述。
此外,ROM作为一种只读存储器,也通常存储有重要的信息,如在芯片中通常部署有启动ROM,在该启动ROM中固化有启动固件即芯片启动代码,如果固化过程出错导致固化在启动ROM中的启动固件错误,则该启动ROM也会被作废处理。
本公开中将上述提到的只读存储器或一次性可编程存储器称为目标存储器。
为了解决上述问题,本公开提出一种基于OTP模块的数据修复方法,在OTP模块中预留空间,在该空间中存储修复数据,基于该修复数据对目标存储器中的数据进行修复,从而可以得到正确的目标存储器中的数据,避免在目标存储器中的数据错误的情况下,将目标存储器作废,进而提升了目标存储器的良率。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
下面以目标存储器为OTP模块为例进行说明,如图1所示,为本公开提出的一种芯片的结构示意图,该芯片中包括OTP模块110,OTP控制器120,临时存储器130。OTP模块110与OTP控制器120电性连接,OTP控制器120与临时存储器130电性连接,另外,OTP控制器作为由各种元器件组成的硬件电路,临时存储器130还可以是OTP控制器120中的一部分,本说明书对此不进行限定。
其中,OTP模块如图2所示,包括第一存储器以及第二存储区,第一存储区用于存储OTP源数据,本公开中OTP源数据是指存储在OTP模块中、期望使用的数据。第二存储区用于存储修复数据集合。
本公开提出可以根据需要替换的数据块的大小,将OTP源数据拆分为若干个数据块,如图3所示,存储在第一存储区的N个数据块即为OTP源数据。存储在第二存储区的修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址描述数据用于描述待替换数据块对应的第一存储区中失效数据块的存储地址。如图3所示,修复数据集合包括M组修复数据。本公开中将OTP模块中烧写失败的数据称为失效数据,将失效数据所在的数据块称为失效数据块。
可以理解的是,图3示出的第一存储区和第二存储区的存储形式仅为示意性的,在OTP模块中第二存储区和第一存储可以是地址相连或不相连的存储区。
在芯片出厂前将需要烧写的数据烧写到OTP模块的第一存储区作为OTP源数据,将第一存储区的OTP源数据读出并与期望烧写的正确数据进行对比,确定OTP源数据是否有比特位烧写失败,如果有烧写失败的比特位,则针对每个失效的比特位,确定其所在的失效数据块,将正确的待替换数据块以及替换地址描述数据作为一组修复数据烧写在第二存储区。在针对全部失效数据块写完修复数据后,即得到了修复数据集合。例如,图3中,确定某一比特位烧写失效,并且确定在数据块1中,则确定数据块1为失效数据块,则将正确的数据块1对应的数据作为待替换数据块烧写到第二存储区,并对应的在第二存储区中烧写用于描述数据块1在第一存储区中的存储位置的信息作为替换地址描述数据,这样待替换数据块以及替换地址描述数据则作为一组修复数据存储在了第二存储区中,例如为图中的修复数据1。
如图4所示,以OTP模块的空间为256x32比特为例,即每行32比特,一共256行,第一存储区为第1行-第200行,用于存储OTP源数据;第二存储区为第201行-256行,用于存储修复数据集合,以OTP源数据为6400比特为例进行说明。
数据块的大小和修复数据的存储格式可以根据实际需求进行选择和确定。
在一种实施方式中,可以将第一存储区的每一行存储的数据作为一个数据块,那么6400比特的OTP源数据则包括200个数据块,进一步将写到第一存储区的OTP源数据与期望烧写的有效数据进行对比,基于对比结果确定失效数据位于OTP源数据的哪行中,即位于哪个数据块中。例如共有10比特数据发生错误,且该10比特数据都在OTP模块的第一行中,则第一存储区中包括一个失效数据块;如果10比特的数据分别位于不同的行中,则第一存储区中包括10个失效数据块。
在本实施方式中,如图5所示为第二存储区中修复数据集合的具体存储格式,第二存储区中每组修复数据中以11比特的数据存储替换地址描述数据(如图5中的第一行中addr1[10:0]),以32比特的数据(一个数据块的长度)存储待替换数据块(如图5中data1[20:0]以及data1[31:21]),那么图5中第一组修复数据即为addr1[10:0]、data1[20:0] 以及data1[31:21],以此类推,将每组修复数据存储在第二存储区中。其中,每组修复数据中,待替换数据块的长度为OTP模块中的一行数据长度、替换地址描述数据的类型为用于描述一行数据的地址类型,即对该替换地址描述数据进行解析后可以得到OTP模块某一行的地址信息。
考虑到在OTP模块中每个比特位只能烧写一次,因此如果在烧写修复数据时烧写错误,则该修复数据即为无效的修复数据,基于该原因,本公开提出针对每组修复信息存储对应的有效标识,利用有效标识标记修复信息是否有效。具体的,在每组修复数据烧写完成后也需要将修复数据读取出来与正确的数据进行比对,在比对后发现修复数据错误的情况下,利用有效标识对该修复数据进行标识,确定该修复数据失效。如图5所示,描述一个地址行的描述数据最多需要8个比特,还有3比特可以用来作为该组修复信息的有效标识,如图5中addr1[10:0]中仅用低8比特来存储替换地址描述数据,高3位用来存储有效标识信息。
在一种具体的实施方式中,可以以标识信息为1表示该修复数据失效,以有效标识信息为0表示该修复数据有效,因此可以给有效标识信息预留一个比特位进行标识,另外,考虑到有效标识信息也可能烧写错误,例如当发现一组修复数据烧写错误,则需要将该组的有效标识烧写为1,如果有效标识也烧写失败,则该有效标识还是为0则无法标记该组修复数据烧写错误,因此本公开提出,为有效标识信息预留冗余比特位,如图5中,采用3个比特位来烧写有效标识,即预留2个冗余比特位,则在有效标识的3个比特位有一个为1的情况下,就确定该有效标识对应的修复数据失效。如图5中addr1[10:0]中的高三位,如果有一个比特位烧写为1,则表示addr1或者data1烧写错误,即修复数据addr1[10:0]、data1[20:0]以及data1[31:21]为失效的修复数据。
在对一组修复数据标识为失效后,可以重写烧写该组修复数据,并再次读出进行对比,直到烧写正确为止。
在一种实施方式中,可以将OTP源数据中1字节即8比特数据作为一个数据块。那么图4中的6400比特的OTP源数据则包括800个数据块,进一步将写到第一存储区的OTP源数据与期望烧写的有效数据进行对比,基于比对结果确定错误数据位于哪个数据块中。在本实施例中,如图6所示,第二存储区中每组修复数据的存储格式可以为以10比特的数据存储替换地址描述数据,如图中的addr1[9:0],以8比特的空间(一个数据块的长度)存储待替换数据块,如图中的data1[7:0],同样采用3比特的空间用于存储有效标识,如图中addr1[12:10]。具体的,在10比特的替换地址描述数据中,8比特用于描述数据所在的行,2比特用于描述数据块位于该行中位置,如(0,0)用于表示该数据块位于一行中的前8位(0-7比特),(0,1)用于表示该数据块位于一行中的第二个8位(8-15),(1,0)用于表示该数据块位于一行中的第三个8位(16-23),(1,1)用于表示该数据块位于一行中最后8位(24-32)。那么图6中第一组修复数据即为addr1[12:0]、data1[7:0],以此类推,将每组修复数据存储在第二存储区中。在本实施方式中,每组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型,即对替换地址描述数据进行解析后,可以得到OTP模块中某一行中的某个字节数据的地址。
在一种实施方式中,可以将OTP源数据中1比特数据作为一个数据块。那么图4中的6400比特的OTP源数据则包括6400个数据块,进一步将写到第一存储区的OTP源数据与期望烧写的有效数据进行对比,基于比对结果确定错误数据位于哪个数据块中。
在本实施例中,如图7所示,第二存储区中每组修复数据的存储格式可以为以13比特的数据存储替换地址描述数据,如图中的addr1[12:0],同样采用3比特的空间用于存储有效标识,如图中addr1[15:13]。由于对OTP模块如efuse烧写的目的就是将比特位从0烧写为1,如果烧写失效,则必定是期望烧写为1但是未烧写为1,因此待替换数据块的数据必定为1,因此在修复数据中不需要预留待替换数据块的存储空间。此外对于除了efuse以外的某些OTP模块,烧写的目的是将比特位从初始值1烧写为0,如果烧写失效,则必定是期望烧写为0但是未烧写为0,因此待替换数据块的数据必定为0,因此在修复数据中不需要预留待替换数据块的存储空间。具体的,在13比特的替换地址描述数据中,8比特[7:0]用于描述数据所在的行,5比特[12:8]用于描述数据块位于该行中位置,5个比特位排列组合可以排列出选择32种情况,用于描述数据块在行中的位置,例如00000表示位于该行的第1个比特位,11111表示位于该行的第32个比特位。那么图7中第一组修复数据即为addr1[15:0],以此类推,将每组修复数据存储在第二存储区中。因此在本实施方式中,每组修复数据中,待替换数据块的长度为零、替换地址描述数据的类型为用于描述一个比特数据的地址类型,即对替换地址描述数据进行解析后可以得到某一行中某个比特位的地址。在本实施方式中,可以理解为修复数据中的待替换数据块为默认值。
在一个实施方式中,为了应对烧写程序编写出错,即由于烧写程序错误导致某个不需要烧写的比特为被烧写了,如某个比特位初始为0,且不需要被烧写,而由于烧写程序出错导致将其烧写为了1,则在修复数据中,待替换数据块的长度为1比特,且存储实际需要替换的待替换数据块。因此在本实施方式中,待替换数据块的长度为1比特、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
上述多个实施方式提到了可以在第二存储区中以多种方式存储修复数据,为了使OTP控制器在进行数据修复时可以知晓采用何种修复方式,因此,可以在第二存储中存储修复标识,修复标识用于标识一组修复数据的存储格式,存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型。例如,上述实施方式中分别介绍了一组修复数据中,待替换数据块为OTP模块中的整行、待替换数据块为1字节、待替换数据块为1比特。因此,修复标识可以用于标识第二存储区中采用了那种一组修复数据的存储格式。如图6、7所示,在第二存储区的第一行中的TYPE1和TYPE0的位置来存储修复标识,具体的TYPE0=|bit[2:0], type1 = |bit[5:3],其中,|是比特相或的意思,即3-bit里面有任意1-bit被烧写为1,则表示该TYPE为1。这里,每个TYPE采用三个比特位进行或的方式,目的也是为了避免修复标识烧写错误,与上述介绍有效标识的考量相同,这里不再进行赘述。TYPE0和TYPE1可以组合为00、01和10,三种状态,用于标识一组修复数据的存储格式,例如用00标识一组修复数据的长度为44比特、待替换数据块的长度为OTP模块中的整行,即32比特,替换地址描述数据的类型为用于描述一行数据的地址类型;用01标识一组修复数据的长度为16比特、待替换数据块的长度为0比特,替换地址描述数据的类型为用于描述一个比特数据的地址类型;用10标识一组修复数据的长度为21比特、待替换数据块的长度为8比特,替换地址描述数据的类型为用于描述一个字节数据的地址类型。
具体的,OTP控制器可以预先存储各个修复标识与各种修复数据的存储格式的对应关系,在读取到修复标识后,可以确定修复数据的存储格式。
上述例子和实施方式中,均是以图4示出的OTP模块,即一行为32比特为例进行说明,然而,可以理解的是,各种常用的OTP模块均可以采用上述方式划分第一存储空区、第二存储区,并按照上述实施方式存储修复数据集合以及OTP源数据,本公开对OTP模块的存储空间的具体结构并不进行限定。
在采用上述任一实施方式,将OTP源数据存储到OTP模块的第一存储区,将修复数据集合存储到OTP模块的第二存储区后。在需要使用OTP源数据时或者在芯片上电后,OTP控制器可以执行如图8所示的步骤。
S801,将OTP模块的第一存储区中的OTP源数据读取到临时存储器中;
本步骤中可以根据第一存储区的地址范围对第一存储区中的全部数据进行读取,以读取到OTP源数据,OTP控制器在读取到源数据后可以将OTP源数据存储到临时存储器,临时存储器可以是SRAM存储器,本公开对此不进行限定。
在本步骤中,如果OTP模块的存储空间结构与临时存储器的存储空间结构完全相同,例如均如图4所示出的存储空间结构,即均为每行32比特,共256行。那么将第一存储区的OTP源数据读取到临时存储器后,OTP源数据中的每个数据块在两个存储空间的存储地址是相同的,在这种情况下,不需要记录OTP源数据存储在临时存储器中的存储地址。
另外,如果OTP模块的存储空间结构与临时存储器的存储空间结构不同,则需要针对OTP源数据中每个数据块,记录该数据块在第一存储区的地址以及在临时存储器中的地址之间的地址对应关系。
S802,对OTP模块的第二存储区进行读取,获取修复数据集合;
在本步骤中,仍以图4为例,如果修复数据的存储格式是默认的固定方式,具体为一组修复数据的长度为44比特、待替换数据块的长度为OTP模块中的整行,即32比特,替换地址描述数据的类型为用于描述一行数据的地址类型,即如图5所示的存储格式,则可以根据默认的存储格式从第二存储区依次读取每组修复数据。另外,如果存储格式不是默认的固定方式,且第二存储区中存储有修复标识,则可以根据修复标识确定每组修复数据的存储格式并基于存储格式分别获取每组修复数据,如根据修复标识确定修复数据的存储格式为一组修复数据的长度为16比特、待替换数据块的长度为0比特,替换地址描述数据的类型为用于描述一个比特数据的地址类型,即如图7所示的存储格式,则可以根据确定的存储格式确定第二存储区中每组修复数据的存储地址并基于存储地址分别获取每组修复数据。
另外,上文提到,在一组修复数据中还包括有效标识,用于标识修复数据是否有效,则在本步骤中,可以根据有效标识对第二存储区进行读取,获取修复数据集合中的有效修复数据,即只读取有效的修复数据而忽略失效的修复数据。
S803,针对修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块以在临时存储器中得到修复后的OTP源数据。
在获取了有效的修复数据,且知晓了替换地址描述数据的类型后,例如替换地址描述数据的类型是用于描述一行数据的地址类型,则可以对替换地址描述数据进行解析得到替换地址,然后根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
具体的,例如一组修复数据中的替换数据块为X,替换地址为(AAA)。如果OTP模块的存储空间结构与临时存储器的存储空间结构完全相同,则可以直接基于替换地址从临时存储器中找到该替换地址上存储的数据块,并确定为失效数据块,即直接确定临时存储器中地址AAA上存储的数据为失效数据块,并利用X对临时存储器中地址AAA上存储的失效数据块进行替换。
另外,如果OTP模块的存储空间结构与临时存储器的存储空间结构不同,则OTP模块可以根据在将OTP源数据从OTP模块读取到临时存储器时记录的地址对应,利用替换地址和地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
如,对一组修复数据中的替换数据描述数据进行解析后得到替换地址为BBB,待替换数据块为X,记录的地址对应关系中进行遍历,发现OTP源数据中的数据块X在OTP模块中存储的地址为BBB,读取到临时存储器中的地址为CCC,则确定目标地址为CCC,并将临时存储器中地址CCC上的失效数据块替换为待替换数据块X
采用上述方式可以将临时存储器中的失效数据块替换为待替换数据块以在临时存储器中得到修复后的OTP源数据,进而在需要使用OTP源数据时可以从临时存储器中获取修复后的OTP源数据并进行使用。在OTP模块中的数据烧写错误的情况下,不需要将OTP模块作废处理,提升了OTP模块的良率,并且通常情况下由于失效数据占OTP模块中数据总量的比例并不高,因此,只需要将少量的修复数据存储在OTP模块的第二存储区即可,也不需要占用OTP模块过多的存储空间。
由于本公开提出了将OTP模块分为第一存储区和第二存储区,因此在芯片流片前就需要确定第一存储区和第二存储区空间大小,确定的方式可以如下。
首先可以根据具体需求确定OTP模块中需要存储的数据,即确定OTP源数据的内容,并确定OTP源数据的数据量大小,在确定了OTP源数据的数据量后即可以确定OTP模块的第一存储区的存储空间,通常情况下,第一存储区的存储空间可以等于OTP源数据的数据量大小,另外,也可以预留一定的空间用来存储对OTP源数据的补充数据,即第一存储区的存储空间也可以大于OTP源数据的数据量大小。
在确定了第一存储区的存储空间之后,可以根据OTP源数据的数据量以及历史失效比例确定第二存储区的存储空间。
具体的,可以是获取若干个存储结构相同或不同的、具有失效数据的OTP模块,查看每个OTP模块中的数据总量和失效数据量,确定每个OTP模块中失效数据量占数据总量的失效比例;然后以该若干个OTP模块对应的失效比例的均值或者最大值,作为历史失效比例;根据OTP源数据的数据量、历史失效比例,确定第二存储区的空间大小。
以表1示出的内容为例:
Figure 102795DEST_PATH_IMAGE001
表1
如表1所示,共获取5个具有失效数据的OTP模块,分别为OTP模块A、OTP模块B、OTP模块C、OTP模块D、OTP模块E;其中,OTP模块A中数据量为100比特,失效数据为10比特,即10比特的数据烧写错误,失效数据占总数据量的比例为10%;OTP模块B中数据量为200比特,失效数据为20比特,失效数据占总数据量的比例为10%;OTP模块C中数据量为100比特,失效数据为5比特,失效数据占总数据量的比例为5%;OTP模块D中数据量为200比特,失效数据为10比特,失效数据占总数据量的比例为5%;OTP模块E中数据量为100比特,失效数据为10比特,失效数据占总数据量的比例为10%。
在一个实施例中,可以确定历史失效比例为上述五个失效数据比例的均值即8%,当然,为了最大概率满足使用需求,历史失效比例也可以取五个失效数据比例的最大值即10%。
进一步,如果本次需要在OTP模块中存储的OTP源数据的数据量为100比特,则需要至少预留能够替换10比特位数据的第二存储区(以失效数据比例为10%计算),具体的,还需要根据修复方式确定第二存储区的存储空间,如图5所示,如果两个比特位烧写错误,则最多会出现在两个数据块中,而以图5所示的第二存储区,能够以3行即96比特的存储空间存储2组修复数据,因此,如果在确定失效数据为2比特时可以确定第二存储区的存储空间为96比特,以此类推可以根据修复方式以及失效数据确定第二存储区的存储空间。
在确定了第一存储区和第二存储区的存储空间大小后,可以通过界面展示给用户,以便于用户查找具备相应存储空间的OTP模块。如确定第一存储区的存储空间为1000比特,第二存储空间为200比特,则可以选择大于等于1200比特的OTP模块。
下面以目标存储器为启动ROM为例进行说明,如图9所示为本公开提出的一种芯片,该芯片上包括OTP模块910、OTP控制器920、启动ROM940、临时存储器930、以及启动控制模块950,具体的启动控制模块可以是PMU,临时存储器可以是SRAM,本公开对此不进行限定。OTP模块910与OTP控制器920电性连接,OTP控制器920与临时存储器930电性连接,另外,OTP控制器920作为由各种元器件组成的硬件电路,临时存储器930还可以是OTP控制器920中的一部分,本说明书对此不进行限定,启动控制模块950与启动ROM940、OTP控制器920电性连接。
其中,启动ROM中存储有启动固件,即芯片启动代码,另外本公开提出,启动ROM中还存储有校验信息。
本公开提出可以根据需要替换的数据块的大小,将启动ROM中的源数据即启动代码和校验信息的整体拆分为若干个数据块。如图10所示,该启动ROM中的数据被分为了N个数据块。如图11所示,存储在OTP模块中的修复数据集合包括M组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址描述数据用于描述待替换数据块对应的启动ROM中失效数据块的存储地址。
在启动ROM中的数据固化后,利用利用芯片内集成的ROM BIST电路,对ROM进行测试,确定启动ROM中是否有数据固化错误,如果有错误,则针对每个失效的比特位,确定其所在的失效数据块,将正确的待替换数据块以及替换地址描述数据作为一组修复数据烧写在OTP模块中。数据块的大小和修复数据的存储格式可以根据实际需求进行选择和确定,具体内容可以参照上文,另外,OTP模块中存储的各种信息和存储方式也可以参照上文以OTP模块为目标存储器的实施方式,这里不再进行赘述,区别仅在于在本实施例中,OTP模块不区分第一存储区和第二存储区,OTP模块仅用于存储修复数据集合。
将修复数据集合存储到OTP模块后,在芯片上电后,OTP控制器可以执行如图12所示的步骤。
S1201,将启动ROM中的源数据读取到临时存储器中;该源数据包括启动固件以及校验信息;
在芯片上电后,可以由启动控制模块释放OTP控制器的复位信号,由OTP控制器复位后将启动ROM中的源数据读取到临时存储器中;另外,也可以由启动控制模块将启动ROM中的源数据读取到临时存储器中;
S1202,对OTP模块进行读取,获取修复数据集合;
具体的读取过程可以参照上文关于S802的描述,这里不再进行赘述。
S1203,针对修复数据集合中的每一组修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块以在临时存储器中得到修复后的源数据。
具体过程可以参照上文关于S803的描述,这里不再进行赘述。采用上述方式可以将临时存储器中的失效数据块替换为待替换数据块以在临时存储器中得到修复后的启动ROM中的源数据即启动固件和校验信息。
由于启动ROM中的源数据不仅包括启动固件,还包括校验信息,因此在执行完S1203得到修复的源数据后,可以利用其中的校验信息对启动固件进行校验,确定启动固件的有效性。在一种具体的实施方式中,校验信息可以是采用预设哈希算法计算出的启动固件的哈希值,在本步骤中具体可以是采用预设的哈希算法对修复后的启动固件进行计算得到待校验哈希值,将该待校验哈希值与修复后的校验信息进行匹配,如果匹配成功,则确定校验通过,并将校验通过的信号发送给启动控制模块,启动控制模块释放处理器的复位信息,处理器从临时存储器中获取修复后的启动固件进行芯片启动。如果匹配失败,则确定校验未通过,并将校验未通过的信号发送给启动控制模块,启动控制模块发送信号至蜂鸣灯或者LED灯等报警装置进行报警。
基于上述内容,如图13所示,本公开提出一种基于OTP模块的数据修复方法,应用于OTP控制器;OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;目标存储器中的源数据包括至少两个数据块,修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为待替换数据块对应的目标存储器中失效数据块的存储地址;方法包括:
S1301,将目标存储器中的源数据读取到临时存储器中;
S1302,对OTP模块读取,获取修复数据集合;
S1303,针对修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
在一个实施例中,在将目标存储器中的源数据读取到临时存储器中后,还包括:针对源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
对替换地址描述数据进行解析得到替换地址,利用替换地址和地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
在一个实施例中,OTP模块中还存储修复标识,修复标识用于标识修复数据的存储格式;存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
对OTP模块读取,获取修复数据集合,包括:
根据修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
针对修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
根据替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
在一个实施例中,修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
在一个实施例中,修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
在一个实施例中,修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
在一个实施例中,一组修复数据中还包括有效标识,用于标识修复数据是否有效;
对OTP模块读取,获取修复数据集合,包括:
根据有效标识对OTP模块读取,获取修复数据集合中的有效修复数据;
针对修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
与上述一种基于OTP模块的数据修复方法相对应,如图14所示,本公开还提出一种OTP控制器,部署于芯片上,芯片还部署有OTP模块以及目标存储器,OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;目标存储器中的源数据包括至少两个数据块,修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为待替换数据块对应的目标存储器中失效数据块的存储地址;OTP控制器包括:
读取模块1410,用于将目标存储器中的源数据读取到临时存储器中;对OTP模块进行读取,获取修复数据集合;
修复模块1420,用于针对修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
在一个实施例中,目标存储器为OTP模块,OTP模块的第一存储区用于存储OTP源数据,第二存储区用于存储修复数据集合;
读取模块1401,具体用于将OTP模块的第一存储区中的源数据读取到临时存储器中;对OTP模块的第二存储区进行读取,获取修复数据集合。
在一个实施例中,目标存储器为启动ROM,源数据包括启动固件以及校验信息;OTP控制器还包括:
校验模块1403,用于在临时存储器中得到修复后的源数据后,利用修复后的校验信息对修复后的启动固件进行校验。
在一个实施例中,读取模块1401,还用于在将目标存储器中的源数据读取到临时存储器中后,针对OTP源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
修复模块1402,具体用于对替换地址描述数据进行解析得到替换地址,利用替换地址和地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
在一个实施例中,OTP模块中还存储修复标识,修复标识用于标识修复数据的存储格式;存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
读取模块1401,具体用于根据修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
修复模块1402,具体用于根据替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
在一个实施例中,修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
在一个实施例中,修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
在一个实施例中,修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
在一个实施例中,一组修复数据中还包括有效标识,用于标识修复数据是否有效;
读取模块1401,具体用于根据有效标识对OTP模块进行读取,获取修复数据集合中的有效修复数据;
修复模块1402,具体用于针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
结合上述内容,本公开还提出一种芯片,包括OTP控制器、OTP模块、临时存储器以及目标存储器。
上述设备中各个部件的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
以上尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改,本领域的技术人员在不脱离本公开的精神和范围的前提下,做出的变更和修改也应视为本公开实施例的保护范围。

Claims (19)

1.一种基于OTP模块的数据修复方法,应用于OTP控制器;其中,所述OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;所述目标存储器中的源数据包括至少两个数据块,所述修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为所述待替换数据块对应的目标存储器中失效数据块的存储地址;所述方法包括:
将所述目标存储器中的源数据读取到临时存储器中;
对所述OTP模块读取,获取修复数据集合;
针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
2.根据权利要求1所述的方法,其中,所述目标存储器为所述OTP模块,所述OTP模块的第一存储区用于存储源数据,第二存储区用于存储修复数据集合;
所述将所述目标存储器中的源数据读取到临时存储器中,包括:将所述OTP模块的第一存储区中的源数据读取到临时存储器中;
对所述OTP模块读取,获取修复数据集合,包括:
对所述OTP模块的第二存储区进行读取,获取修复数据集合。
3.根据权利要求1所述的方法,其中,所述目标存储器为启动ROM,所述源数据包括启动固件以及校验信息;所述方法还包括:
在临时存储器中得到修复后的源数据后,利用修复后的校验信息对修复后的启动固件进行校验。
4.根据权利要求1所述的方法,其中,在所述将所述目标存储器中的源数据读取到临时存储器中后,还包括:针对源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
所述根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
对替换地址描述数据进行解析得到替换地址,利用替换地址和所述地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
5.根据权利要求1所述的方法,其中,所述OTP模块中还存储修复标识,所述修复标识用于标识修复数据的存储格式;所述存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
所述对所述OTP模块读取,获取修复数据集合,包括:
根据所述修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
所述针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
根据所述替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
6.根据权利要求5所述的方法,其中,所述修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
7.根据权利要求5所述的方法,所述修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
8.根据权利要求5所述的方法,其中,所述修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
9.根据权利要求1所述的方法,其中,所述一组修复数据中还包括有效标识,用于标识修复数据是否有效;
所述对所述OTP模块读取,获取修复数据集合,包括:
根据所述有效标识对所述OTP模块读取,获取修复数据集合中的有效修复数据;
所述针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块,包括:
针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
10.一种OTP控制器,部署于芯片上,其中,所述芯片还部署有OTP模块以及目标存储器,所述OTP模块存储有修复数据集合,用于对目标存储器中的源数据进行修复;所述目标存储器中的源数据包括至少两个数据块,所述修复数据集合包括至少一组修复数据,其中一组修复数据包括一个待替换数据块以及替换地址描述数据,替换地址为所述待替换数据块对应的目标存储器中失效数据块的存储地址;所述OTP控制器包括:
读取模块,用于将所述目标存储器中的源数据读取到临时存储器中;对所述OTP模块读取,获取修复数据集合;
修复模块,用于针对所述修复数据集合中的修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
11.根据权利要求10所述的OTP控制器,其中,所述目标存储器为所述OTP模块,所述OTP模块的第一存储区用于存储源数据,第二存储区用于存储修复数据集合;
所述读取模块,具体用于将所述OTP模块的第一存储区中的源数据读取到临时存储器中;对所述OTP模块的第二存储区进行读取,获取修复数据集合。
12.根据权利要求10所述的OTP控制器,其中,所述目标存储器为启动ROM,所述源数据包括启动固件以及校验信息;所述OTP控制器还包括:
校验模块,用于在临时存储器中得到修复后的源数据后,利用修复后的校验信息对修复后的启动固件进行校验。
13.根据权利要求10所述的OTP控制器,其中,所述读取模块,还用于在将目标存储器中的源数据读取到临时存储器中后,针对源数据中每个数据块,记录该数据块在目标存储器中的地址以及在临时存储器中的地址之间的地址对应关系;
所述修复模块,具体用于对替换地址描述数据进行解析得到替换地址,利用替换地址和所述地址对应关系确定目标地址,将临时存储器中目标地址存储的失效数据块替换为待替换数据块。
14.根据权利要求10所述的OTP控制器,其中,所述OTP模块中还存储修复标识,所述修复标识用于标识修复数据的存储格式;所述存储格式用于表征每组修复数据的长度、待替换数据块的长度以及替换地址描述数据的类型;
所述读取模块,具体用于根据所述修复标识确定修复数据的存储格式并基于存储格式分别获取每组修复数据;
所述修复模块,具体用于根据所述替换地址描述数据的类型对替换地址描述数据进行解析得到替换地址,根据确定出的替换地址确定临时存储器中的失效数据块,并利用待替换数据块对失效数据块进行替换。
15.根据权利要求14所述的OTP控制器,其中,所述修复标识包括行替换标识,用于标识一组修复数据中:待替换数据块的长度为OTP模块中的一行数据长度、替换地址的描述数据的类型为用于描述一行数据的地址类型。
16.根据权利要求14所述的OTP控制器,其中,所述修复标识包括比特替换标识,用于标识一组修复数据中:待替换数据块的长度为一比特数据长度、替换地址描述数据的类型为用于描述一个比特数据的地址类型。
17.根据权利要求14所述的OTP控制器,其中,所述修复标识包括字节替换标识,用于标识一组修复数据中:待替换数据块的长度为一字节数据长度、替换地址描述数据的类型为用于描述一个字节数据的地址类型。
18.根据权利要求10所述的OTP控制器,其中,所述一组修复数据中还包括有效标识,用于标识修复数据是否有效;
所述读取模块,具体用于根据所述有效标识对所述OTP模块进行读取,获取修复数据集合中的有效修复数据;
所述修复模块,具体用于针对每一组有效修复数据,根据替换地址描述数据将临时存储器中的失效数据块替换为待替换数据块。
19.一种芯片,其中,所述芯片包括上述权利要求10-18任一项所述OTP控制器、OTP模块、临时存储器以及目标存储器。
CN202211081543.1A 2022-09-06 2022-09-06 一种基于otp模块的数据修复方法、otp控制器以及芯片 Active CN115168115B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211081543.1A CN115168115B (zh) 2022-09-06 2022-09-06 一种基于otp模块的数据修复方法、otp控制器以及芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211081543.1A CN115168115B (zh) 2022-09-06 2022-09-06 一种基于otp模块的数据修复方法、otp控制器以及芯片

Publications (2)

Publication Number Publication Date
CN115168115A true CN115168115A (zh) 2022-10-11
CN115168115B CN115168115B (zh) 2022-11-15

Family

ID=83480579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211081543.1A Active CN115168115B (zh) 2022-09-06 2022-09-06 一种基于otp模块的数据修复方法、otp控制器以及芯片

Country Status (1)

Country Link
CN (1) CN115168115B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054545A1 (en) * 2010-08-31 2012-03-01 Silicon Motion, Inc. Data programming circuit and method for otp memory
CN110058951A (zh) * 2019-04-24 2019-07-26 核芯互联科技(青岛)有限公司 一种修复rom内部少量数据错误的方法和装置
CN110321136A (zh) * 2019-07-04 2019-10-11 北京集创北方科技股份有限公司 数据存取装置、方法和芯片
CN112231136A (zh) * 2020-11-04 2021-01-15 炬芯科技股份有限公司 SoC芯片、获取修复信息的方法、存储介质及电子设备
CN112306737A (zh) * 2019-07-23 2021-02-02 三星电子株式会社 控制易失性存储器装置的修复的方法和存储装置
CN114203253A (zh) * 2021-11-30 2022-03-18 青岛信芯微电子科技股份有限公司 芯片的存储器故障修复装置和芯片
CN114238163A (zh) * 2022-02-25 2022-03-25 湖北芯擎科技有限公司 Rom中数据的处理方法、装置、计算机设备及存储介质
CN114530189A (zh) * 2022-01-27 2022-05-24 成都宏熠电子科技有限公司 芯片的修复方法、修复装置、芯片

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054545A1 (en) * 2010-08-31 2012-03-01 Silicon Motion, Inc. Data programming circuit and method for otp memory
CN110058951A (zh) * 2019-04-24 2019-07-26 核芯互联科技(青岛)有限公司 一种修复rom内部少量数据错误的方法和装置
CN110321136A (zh) * 2019-07-04 2019-10-11 北京集创北方科技股份有限公司 数据存取装置、方法和芯片
CN112306737A (zh) * 2019-07-23 2021-02-02 三星电子株式会社 控制易失性存储器装置的修复的方法和存储装置
CN112231136A (zh) * 2020-11-04 2021-01-15 炬芯科技股份有限公司 SoC芯片、获取修复信息的方法、存储介质及电子设备
CN114203253A (zh) * 2021-11-30 2022-03-18 青岛信芯微电子科技股份有限公司 芯片的存储器故障修复装置和芯片
CN114530189A (zh) * 2022-01-27 2022-05-24 成都宏熠电子科技有限公司 芯片的修复方法、修复装置、芯片
CN114238163A (zh) * 2022-02-25 2022-03-25 湖北芯擎科技有限公司 Rom中数据的处理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN115168115B (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
US8060688B2 (en) Method and device for reconfiguration of reliability data in flash EEPROM storage pages
US8659961B2 (en) Memory repair systems and methods for a memory having redundant memory
US8122319B2 (en) Page-based failure management for flash memory
JP2990181B1 (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US20070091697A1 (en) Device recoverable purge for flash storage device
US20070039060A1 (en) Methods and systems for programming secure data into programmable and irreversible cells
CN115129519A (zh) 一种实现efuse结构的芯片多次写操作的方法、系统及SOC
JPH07306922A (ja) Icメモリカードおよびそのicメモリカードの検査方法
US10229025B2 (en) Non-volatile memory repair circuit
CN116880782A (zh) 一种内嵌式存储器及其测试方法
CN115168115B (zh) 一种基于otp模块的数据修复方法、otp控制器以及芯片
JP2004521430A (ja) メモリエラー処理のための方法及び回路装置
CN116978435A (zh) 一种eFuse烧写方法
CN101470666B (zh) 一种数据存储方法
JP2004145964A (ja) 半導体メモリ、半導体メモリ製造方法、メモリカードおよび半導体メモリ制御方法
CN110968455B (zh) 一种非易失性存储器的修复方法及装置
KR100284398B1 (ko) 단자의 접속 인식 장치 및 접속 인식 방법
US6279129B1 (en) Configuration of memory cells and method of checking the operation of memory cells
US20070101049A1 (en) Redundant purge for flash storage device
CN112908401A (zh) 内存修复电路、内存模块及内存修复方法
US11809273B2 (en) Method for detecting flash memory module and associated system on chip
JP3314719B2 (ja) フラッシュeepromとその試験方法
CN118193403A (zh) 数据烧写验证方法、数据烧写验证装置和电子设备
CN115376601A (zh) 检测闪存模块的方法及相关的系统芯片
US20070101048A1 (en) Verified purge for flash storage device

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
TR01 Transfer of patent right

Effective date of registration: 20240108

Address after: 401135 No. 618 Liangjiang Avenue, Longxing Town, Yubei District, Chongqing

Patentee after: Xiangdixian Computing Technology (Chongqing) Co.,Ltd.

Address before: Room 901, 901, floor 9 (09), building 1, yard 5, Anding Road, Chaoyang District, Beijing 100029

Patentee before: Beijing xiangdixian Computing Technology Co.,Ltd.

TR01 Transfer of patent right