CN117894362A - 一次性可编程存储器修改方法、装置和电子设备 - Google Patents
一次性可编程存储器修改方法、装置和电子设备 Download PDFInfo
- Publication number
- CN117894362A CN117894362A CN202410077386.XA CN202410077386A CN117894362A CN 117894362 A CN117894362 A CN 117894362A CN 202410077386 A CN202410077386 A CN 202410077386A CN 117894362 A CN117894362 A CN 117894362A
- Authority
- CN
- China
- Prior art keywords
- address
- modification
- modified
- time programmable
- target
- 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.)
- Pending
Links
- 238000002715 modification method Methods 0.000 title claims abstract description 29
- 230000004048 modification Effects 0.000 claims abstract description 193
- 238000012986 modification Methods 0.000 claims abstract description 193
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 8
- 239000002699 waste material Substances 0.000 abstract description 6
- 238000013461 design Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000007664 blowing Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
- G11C17/14—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
- G11C17/18—Auxiliary circuits, e.g. for writing into memory
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供一种一次性可编程存储器修改方法、装置和电子设备,其中方法包括:启动芯片固件;基于所述芯片固件,检测一次性可编程存储器的修改状态;在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器中,以将所述待修改地址对应的数据修改为所述目标数据。本发明提供的方法、装置和电子设备,可以实现对一次性可编程存储器中存储的数据进行灵活修改,不仅能够增加一次性可编程存储器的利用率,提高一次性可编程存储器的适用性,还可以避免硬件资源的浪费。
Description
技术领域
本发明涉及半导体芯片技术领域,尤其涉及一种一次性可编程存储器修改方法、装置和电子设备。
背景技术
eFuse(electrically programmable fuse,电可编程熔丝)是芯片中的一种一次性可编程存储器,通常用于存储芯片的重要信息,如芯片TRIM(Trimming,修调)值、芯片的版本号、生产日期、芯片启动参数以及安全相关的密钥等。eFuse通过熔断或未熔断来存储比特信息,未熔断表示比特0,熔断表示比特1,但eFuse的每个比特位只能熔断一次,从0写成1后无法再从1写回0,因此也被称为单次编程(One Time Programmable,OTP)器件。
单次编程的特性使得用户无法对eFuse中存储的数据进行修改,在用户向芯片的eFuse中写入数据时,如果出现烧写失误的情况,将会导致芯片报废,只能更换新的芯片重新进行写入操作,从而造成了硬件资源的浪费。此外,已经烧写好的芯片无法进行eFuse内容的在线升级,这限制了对芯片功能和性能的灵活调整。因此,亟需一种一次性可编程存储器修改方法,以提供更灵活和可修改的存储器解决方案。
发明内容
本发明提供一种一次性可编程存储器修改方法、装置和电子设备,用以解决现有技术中无法对一次性可编程存储器中存储的数据进行灵活修改的缺陷。
本发明提供一种一次性可编程存储器修改方法,包括:
启动芯片固件;
基于所述芯片固件,检测一次性可编程存储器的修改状态;
在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;
读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
根据本发明提供的一种一次性可编程存储器修改方法,所述基于所述芯片固件,检测一次性可编程存储器的修改状态,包括:
基于所述芯片固件,读取所述一次性可编程存储器中的预设修改信息;
基于所述预设修改信息中的修改状态标志位,检测所述一次性可编程存储器的修改状态是否为已启用。
根据本发明提供的一种一次性可编程存储器修改方法,所述确定待修改地址和目标地址,包括:
基于所述预设修改信息中的起始地址标志位,确定待修改地址;
基于所述预设修改信息中的目标地址标志位,确定目标地址。
根据本发明提供的一种一次性可编程存储器修改方法,所述读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,包括:
基于所述预设修改信息中的修改数量标志位,确定待修改区域数量;
读取所述目标地址中存储的目标修改信息,以所述待修改地址为待修改区域的起始地址,将所述目标修改信息中的各目标数据依次复制到所述待修改区域的各地址对应的寄存器区域中,直至已修改区域数量达到所述待修改区域数量。
根据本发明提供的一种一次性可编程存储器修改方法,所述检测到所述修改状态为已启用,包括:
在检测到所述修改状态标志位不为零的情况下,确定所述一次性可编程存储器的修改状态为已启用。
根据本发明提供的一种一次性可编程存储器修改方法,还包括:
接收数据读取请求;
响应于所述数据读取请求,从所述一次性可编程存储器的各地址对应的寄存器区域中读取数据。
本发明还提供一种一次性可编程存储器修改装置,包括:
启动单元,用于启动芯片固件;
检测单元,用于基于所述芯片固件,检测一次性可编程存储器的修改状态;
确定单元,用于在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;
修改单元,用于读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述一次性可编程存储器修改方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述一次性可编程存储器修改方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述一次性可编程存储器修改方法。
本发明提供的一次性可编程存储器修改方法、装置、电子设备和存储介质,通过启动芯片固件,基于芯片固件检测一次性可编程存储器的修改状态,并在检测到修改状态为已启用的情况下,确定待修改地址和目标地址,读取目标地址中存储的目标数据,以将目标数据复制到待修改地址对应的寄存器区域中,从而可以将修改地址对应的数据修改为目标数据,达到了对一次性可编程存储器中的数据进行修改的目的,提供了一种可靠且灵活的修改机制,不仅能够增加一次性可编程存储器的利用率,提高一次性可编程存储器的适用性,还可以避免硬件资源的浪费。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一次性可编程存储器修改方法的流程示意图之一;
图2是本发明提供的一次性可编程存储器修改方法中步骤140的流程示意图;
图3是本发明提供的一次性可编程存储器修改方法的流程示意图之二;
图4是本发明提供的一次性可编程存储器修改装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
eFuse是一种用于存储重要信息的单次编程器件,在芯片内部广泛应用。它被用于存储芯片版本数据、外接器件的电压、芯片启动参数、模拟和数字电路的重要设定以及安全相关的密钥等。eFuse也称为一次性可编程存储器,其应用到芯片中时,可以使得芯片中的电路运行效率提高上千倍,并且eFuse保存的信息不会因为掉电而丢失,因此被广泛应用于芯片中保存关键信息数据。
eFuse通过熔丝是否熔断来存储比特信息,通常未熔断时代表比特0,熔断时代表比特1。eFuse的初始状态是全0,需要写1的位置要熔断对应的熔丝。由于熔丝熔断后无法再恢复,因此eFuse的每个比特位可以由0写为1,但无法由1写回0,故称eFuse具有单次编程特性。
然而,在实际的芯片生产、调试、测试、使用等环节中,单次编程特性带来了很多麻烦:例如,在生产环节中,当出现烧写失误的情况时,会导致芯片报废,从而造成硬件资源的浪费;在调试环节中,由于无法对某个比特位进行修正,工程师无法观察到不同的故障现场,这限制了故障排查的能力。此外,在使用环节中,已经烧写好的芯片无法进行eFuse内容的在线升级,导致无法对芯片的功能和性能进行灵活调整。
对此,本发明实施例提供一种一次性可编程存储器修改方法,以克服上述缺陷。需要说明的是,此处的修改是指通过软件或固件的方式,对已编程的eFuse中存储的数据进行逻辑上的更改,这种修改不会直接修改硬件电路中的eFuse状态,而是通过在软件层面进行逻辑运算或状态修改来实现。
图1是本发明提供的一次性可编程存储器修改方法的流程示意图之一,如图1所示,该方法包括:
步骤110,启动芯片固件;
具体地,芯片固件是指嵌入在芯片内部的一种软件或程序代码,用于控制芯片的各种功能和操作。它通常包含了启动过程、设备驱动程序、操作系统、应用程序等,用于实现芯片的特定功能和行为。
启动芯片固件是指在将芯片上电或复位之后,执行特定的操作来加载和运行芯片固件。例如,可以将固件从存储器中加载到芯片的处理器或控制单元中,并开始执行固件中的指令。
可以理解的是,本发明实施例提供的方法主要是在ASIC(Application SpecificIntegrated Circuit,专用集成电路)芯片的启动过程中,基于MPU(Microprocessor Unit,微处理器单元)的启动固件,使其有能力在其他主机工具、驱动程序和诊断程序等读取eFuse值之前,将修改后的eFuse值复制到待修改地址对应的寄存器区域中,以实现对eFuse中存储的数据进行修改的目的。
步骤120,基于所述芯片固件,检测一次性可编程存储器的修改状态;
需要说明的是,一次性可编程存储器是一种存储器设备,通常用于存储一次性编程的数据。它的特点是一旦数据被编程写入存储器后,就无法再次修改或擦除,因此被称为"一次性"。eFuse就是一种常见的一次性可编程存储器。
具体地,一次性可编程存储器的修改状态是指一次性可编程存储器(如eFuse)的修改功能是否已启用。当修改状态为已启用时,表明eFuse中存储的数据为误烧写数据或者不是所需要的数据,因此,需要对其中存储的数据进行修改。
在对eFuse进行修改之前,可以预先设定一段地址,用于存储eFuse的修改状态信息,通过读写指令可以访问这些地址。根据芯片的启动过程,加载并运行芯片固件后,可以根据芯片固件读取存储在预先设定的地址中的修改状态信息,从而判断eFuse的修改状态。
步骤130,在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;
具体地,在加载并运行芯片固件的过程中,一旦检测到eFuse的修改状态为已启用,则可以根据系统设计或相应的算法来确定待修改地址和目标地址。此处,待修改地址是指需要进行数据修改的eFuse存储器位置的地址,这个地址指示了待修改数据所在的位置。目标地址是指存储了目标数据(即正确数据)的地址。
例如,可以在系统中预先定义地址映射表,将待修改地址和目标地址进行关联,即在系统设计阶段,可以事先确定哪些地址需要修改,并指定相应的目标地址;根据修改状态的检测结果,系统可以通过查找地址映射表来确定待修改地址和目标地址。又例如,可以通过配置文件或表格来存储待修改地址和目标地址之间的映射关系,在检测到修改状态为已启用时,系统可以从配置文件或表格中读取相应的映射关系,以确定待修改地址和目标地址。又例如,还可以根据特定的算法逻辑和存储器访问操作来动态确定待修改地址和目标地址,具体的实现方式可能需要参考其他参数或条件,并根据特定的计算规则来确定映射关系。本发明实施例对此不作具体限定。
步骤140,读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
需要说明的是,目标地址中存储的目标数据是指待修改地址对应位置上的期望数据,也即正确数据。当eFuse的修改状态为已启用时,表明待修改地址中存储的数据已经被烧写为不正确的数据或者是不满足需求的数据,因此,需要根据目标地址中存储的目标数据来进行修改。
具体地,在确定目标地址后,可以读取其中存储的目标数据,此处,读取目标地址中存储的目标数据可以通过芯片的存储器访问功能来实现。具体的读取过程涉及到读取指令的发出、地址线的设置和数据线的接收等步骤。根据芯片的具体设计和指令集,可以使用相应的读取指令来访问目标地址,从而获取其中存储的目标数据。
在读取得到目标地址中存储的目标数据后,可以将目标数据复制到待修改地址对应的寄存器区域中。此处,可以使用相应的写入指令和地址线设置来实现,例如,可以根据芯片的设计和指令集,使用相应的写入指令将目标数据写入到待修改地址对应的寄存器区域中。其中,待修改地址对应的寄存器区域是指存储了待修改数据的寄存器或存储器位置,待修改地址对应的寄存器区域可以用来存储修改后的数据,以实现将待修改地址对应的数据修改为目标数据。
可以理解的是,上述待修改地址对应的寄存器区域可以为待修改地址对应的影子寄存器(shadow register),影子寄存器是与主要寄存器一一对应的一组寄存器,可以使用影子寄存器来备份eFuse中的数据,通过使用影子寄存器,可以实现对eFuse进行灵活修改的目的。
本发明实施例提供的方法,通过启动芯片固件,基于芯片固件检测一次性可编程存储器的修改状态,并在检测到修改状态为已启用的情况下,确定待修改地址和目标地址,读取目标地址中存储的目标数据,以将目标数据复制到待修改地址对应的寄存器区域中,从而可以将修改地址对应的数据修改为目标数据,达到了对一次性可编程存储器中的数据进行修改的目的,提供了一种可靠且灵活的修改机制,不仅能够增加一次性可编程存储器的利用率,提高一次性可编程存储器的适用性,还可以避免硬件资源的浪费。
基于上述实施例,步骤120具体包括:
基于所述芯片固件,读取所述一次性可编程存储器中的预设修改信息;
基于所述预设修改信息中的修改状态标志位,检测所述一次性可编程存储器的修改状态是否为已启用。
具体地,预设修改信息是指预先设置的用于描述和管理eFuse修改状态的数据,可以通过访问芯片固件中存储这些信息的位置或寄存器来读取获得。预设修改信息可以预先设置在eFuse中,也可以预先设置在其他的寄存器中,本发明实施例对此不作具体限定。
预设修改信息可以包括修改状态标志位和其他与eFuse修改相关的信息。此处,修改状态标志位是指一个特定的位或标志,用于指示是否需要进行修改操作。例如,该标志位可以是一个二进制位或一个特定的数值,当修改状态标志位为预定义的值(如1)时,表示efuse的修改状态已启用;当标志位为其他值(如0)时,表示修改状态未启用。当该标志位被启用时,系统会触发修改操作,按照预定的逻辑进行eFuse的修改。
示例性地,可以预先在eFuse中设定一个地址,用来存储预设修改信息,该地址可以命名为soft_repaired_fuse_flag,其位数为32bit,其中,可以定义bit[1:0]为修改状态标志位,当bit[1:0]=2'b00时,表明修改状态为已禁用;当bit[1:0]=2'b11时,表明修改状态为已启用。通过读取预设修改信息,并对修改状态标志位bit[1:0]进行解析,即可确定eFuse的修改状态。
可以理解的是,在eFuse中,每一行通常被称为一个"fuse row"(熔丝行),熔丝行是指一组连续的比特位,它们在eFuse中被编程为特定的状态或配置。每个比特位都占据一定的位置,按照从左到右的顺序排列在熔丝行中。熔丝行通常是一个固定的长度,由一定数量的比特组成。在某些设计中,每个熔丝行可能包含32bit,也就是1DW(Double Word)。而在其他设计中,每个熔丝行可能具有不同的长度,例如16bit或64bit。通过编程或烧写熔丝行中的比特位,可以设置或改变相应的配置或状态。一旦熔丝行中的比特位被编程,它们通常是不可擦除或不可逆转的,即只能进行一次编程操作。因此,在将修改状态标志位烧写为11后,修改状态将一直处于已启用的状态。
基于上述任一实施例,步骤130中,所述确定待修改地址和目标地址,包括:
基于所述预设修改信息中的起始地址标志位,确定待修改地址;
基于所述预设修改信息中的目标地址标志位,确定目标地址。
具体地,起始地址标志位是预设修改信息中的一部分,用于指示待修改地址的起始位置,它指定了从哪个地址开始进行修改操作。基于预设修改信息中的起始地址标志位,可以通过读取和解析该标志位的值来确定待修改地址。
目标地址标志位也是预设修改信息中的一部分,用于指示存储正确数据的目标地址。基于预设修改信息中的目标地址标志位,可以通过读取和解析该标志位的值来确定目标地址。
例如,在32bit的soft_repaired_fuse_flag中,可以定义其中的12bit字段,如bit[19:8]为起始地址标志位,定义另外的12bit字段,如bit[31:20]为目标地址标志位。通过读取并解析bit[19:8]对应的值,即可确定需要修改的起始地址,即得到待修改地址;通过读取并解析bit[31:20]对应的值,即可确定目标地址。
基于上述任一实施例,图2是本发明提供的一次性可编程存储器修改方法中步骤140的流程示意图,如图2所示,步骤140具体包括:
步骤141,基于所述预设修改信息中的修改数量标志位,确定待修改区域数量;
步骤142,读取所述目标地址中存储的目标修改信息,以所述待修改地址为待修改区域的起始地址,将所述目标修改信息中的各目标数据依次复制到所述待修改区域的各地址对应的寄存器区域中,直至已修改区域数量达到所述待修改区域数量。
具体地,修改数量标志位是指预设修改信息中的一部分,可以用于指示待修改区域的数量,它表示需要进行修改操作的区域数量。基于预设修改信息中的修改数量标志位,可以通过读取和解析该标志位的值来确定待修改区域的数量。
示例性地,在32bit的soft_repaired_fuse_flag中,可以定义6bit字段,如bit[7:2]为修改数量标志位,通过读取并解析bit[7:2]对应的值,即可获得待修改区域数量。此处,待修改区域数量是指在修改操作中需要处理的区域的数量,它表示需要进行修改操作的地址范围的大小,根据预设修改信息中的修改数量标志位的值,可以确定待修改区域的数量。应理解的是,当待修改区域数量为多个时,其可以是连续的多个区域,也可以是不连续的多个区域。
可以理解的是,在某些eFuse设计中,每个fuse行通常由32bit(即1DW)组成,因此在修改或编程eFuse时,可以每次对一个fuse行进行操作,从而使得所需的时间和电路开销更小,修改过程更为简单高效。
例如,当bit[7:2]=6'b000001时,表明有1个区域(即1DW)需要修改;当bit[7:2]=6'b000011时,表明有2个区域(即2DW)需要修改;当bit[7:2]=6'b000111时,表明有3个区域(即3DW)需要修改;依次类推,当bit[7:2]=6'b111111时,表明有6个区域(即6DW)需要修改。应理解的是,由于eFuse中每个比特位只能被熔断一次,当其由0写为1后,无法再从1写回0,因此可以通过将对应比特位的值烧写为1来确定待修改区域的数量。此外,针对不同容量设计的eFuse,可以采用不同数量的比特位或不同表示方法来预先定义修改数量标志位,本发明实施例对此不作具体限定。
在一实施例中,当待修改区域为连续区域时,可以通过对预设修改信息进行读取和解析,可以确定待修改区域的起始地址和待修改区域的数量,从而确定待修改区域的结束地址。随后,根据目标地址中存储的目标修改信息,按照预设的修改顺序依次遍历目标修改信息中的各目标数据,将每个目标数据依次复制到待修改区域的对应地址的寄存器区域中。每复制一个目标数据,将已修改区域数量加1。这样,通过逐个复制目标数据,直到已修改区域数量达到待修改区域数量,即可完成修改操作。
此处,目标修改信息中的各目标数据是指存储在目标修改信息中的需要用于修改操作的具体数据项,这些数据项可以是修改值、修改指令或其他与修改操作相关的信息。待修改区域是指需要进行修改操作的地址范围,它由待修改地址作为起始地址。待修改区域的各地址是指在修改操作中需要进行修改的地址范围内的每个地址,这些地址可以是连续的地址,也可以是多个不连续的地址。已修改区域数量是指在进行修改操作过程中已经成功修改的区域的数量,每次成功复制一个目标数据到待修改区域的对应地址的寄存器区域中时,已修改区域数量会逐步增加,当已修改区域数量达到待修改区域数量时,表示修改操作已完成。
在另一实施例中,当待修改区域为多个不连续的区域时,可以通过预先定义预设修改信息和目标修改信息,并对其进行关联映射,来实现对待修改区域的修改。如下表所示为预先定义的预设修改信息和各目标修改信息,其中soft_repaired_fuse_flag为预设修改信息,其DW编号可以为180,位数为32bit;target_repaired_fuse_region和secondrepaired region为预先定义的各目标修改信息,位数均为32bit。
通过读取并解析soft_repaired_fuse_flag的bit[1:0],可以确定eFuse的修改状态是否为已启用,在修改状态已启用的情况下,通过解析soft_repaired_fuse_flag的bit[7:2],可以确定待修改区域的总数量。通过读取并解析第一目标修改信息target_repaired_fuse_region中的bit[7:2]和bit[19:8],可以分别确定需要修改的连续区域数量(即待修改区域的第一子数量)以及本次修改的起始地址,依次遍历第一目标修改信息target_repaired_fuse_region下的各目标数据,并将每个目标数据复制到待修改区域的对应地址的寄存器区域中,直至已修改区域数量达到第一子数量。通过读取并解析第二目标修改信息second repaired region中的bit[7:2]和bit[19:8],可以分别确定需要修改的连续区域数量(即待修改区域的第二子数量)以及本次修改的起始地址,依次遍历第二目标修改信息second repaired region下的各目标数据,并将每个目标数据复制到待修改区域的对应地址的寄存器区域中,直至已修改区域数量达到第二子数量。依次操作继续进行,直至总的已修改区域数量达到待修改区域的总数量,即可完成修改。
基于上述任一实施例,步骤130中,所述检测到一次性可编程存储器的修改状态为已启用,包括:
在检测到所述修改状态标志位不为零的情况下,确定所述一次性可编程存储器的修改状态为已启用。
具体地,初始状态下,eFuse的修改状态标志位默认为零,表示eFuse的修改功能被禁用。当需要对eFuse中的数据进行修改时,可以预先对修改标志位的值进行熔断。在启动芯片固件的过程中,通过芯片固件,可以从eFuse中读取修改状态标志位的值,判断修改状态标志位的值是否为零,如果修改状态标志位不为零,则可以确定eFuse的修改状态为已启用,在此情况下,可以触发修改操作,按照预定的逻辑进行eFuse的修改。
基于上述任一实施例,该方法还包括:
接收数据读取请求;
响应于所述数据读取请求,从所述一次性可编程存储器的各地址对应的寄存器区域中读取数据。
具体地,数据读取请求是指请求从一次性可编程存储器(如eFuse)中读取数据的操作。接收来自外部系统或设备的数据读取请求,该请求可以包含读取的起始地址和读取的长度。在eFuse中,每个地址对应一个寄存器区域。根据数据读取请求中的起始地址和长度,依次读取eFuse各地址对应的寄存器区域中的数据,将读取到的数据作为响应返回给发起数据读取请求的外部系统或设备。
此处,一次性可编程存储器的各地址是指一次性可编程存储器中的每个地址,每个地址对应一个寄存器区域。寄存器区域是存储数据的存储空间,可以通过地址访问其中的数据。
可以理解的是,通过从一次性可编程存储器的各地址对应的寄存器区域中读取数据,可以获取到存储在一次性可编程存储器中存储的修改后数据,也即正确数据,从而提高数据的可靠性和准确性,确保读取到的数据是符合要求的数据,使得芯片的功能和性能可以满足特定需求。
基于上述任一实施例,图3是本发明提供的一次性可编程存储器修改方法的流程示意图之二,如图3所示,该方法包括:
步骤S1,启动芯片固件;
步骤S2,基于芯片固件,执行原始的熔丝流程(fuse flow);
步骤S3,读取eFuse中的修改状态标志位,基于修改状态标志位检测eFuse的修改状态是否为已启用;
步骤S4,在检测到修改状态标志位不为零的情况下,确定eFuse的修改状态为已启用,此时可以基于eFuse中的预设修改信息,确定待修改地址和目标地址,并读取目标地址中存储的目标数据,将目标数据复制到待修改地址对应的寄存器区域中,以将待修改地址对应的数据修改为目标数据,实现对eFuse的修改;
步骤S5,在检测到修改状态标志位为零的情况下,确定eFuse的修改状态为已禁用,此时不执行eFuse的修改操作,继续执行原始的熔丝流程,直至结束。
下面对本发明提供的一次性可编程存储器修改装置进行描述,下文描述的一次性可编程存储器修改装置与上文描述的一次性可编程存储器修改方法可相互对应参照。
基于上述任一实施例,图4是本发明提供的一次性可编程存储器修改装置的结构示意图,如图4所示,该装置包括:
启动单元410,用于启动芯片固件;
检测单元420,用于基于所述芯片固件,检测一次性可编程存储器的修改状态;
确定单元430,用于在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;
修改单元440,用于读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
本发明实施例提供的装置,通过启动芯片固件,基于芯片固件检测一次性可编程存储器的修改状态,并在检测到修改状态为已启用的情况下,确定待修改地址和目标地址,读取目标地址中存储的目标数据,以将目标数据复制到待修改地址对应的寄存器区域中,从而可以将修改地址对应的数据修改为目标数据,达到了对一次性可编程存储器中的数据进行修改的目的,提供了一种可靠且灵活的修改机制,不仅能够增加一次性可编程存储器的利用率,提高一次性可编程存储器的适用性,还可以避免硬件资源的浪费。
基于上述任一实施例,检测单元420具体用于:
基于所述芯片固件,读取所述一次性可编程存储器中的预设修改信息;
基于所述预设修改信息中的修改状态标志位,检测所述一次性可编程存储器的修改状态是否为已启用。
基于上述任一实施例,确定单元430具体用于:
基于所述预设修改信息中的起始地址标志位,确定待修改地址;
基于所述预设修改信息中的目标地址标志位,确定目标地址。
基于上述任一实施例,修改单元440具体用于:
基于所述预设修改信息中的修改数量标志位,确定待修改区域数量;
读取所述目标地址中存储的目标修改信息,以所述待修改地址为待修改区域的起始地址,将所述目标修改信息中的各目标数据依次复制到所述待修改区域的各地址对应的寄存器区域中,直至已修改区域数量达到所述待修改区域数量。
基于上述任一实施例,检测单元420还用于:
在检测到所述修改状态标志位不为零的情况下,确定所述一次性可编程存储器的修改状态为已启用。
基于上述任一实施例,该装置还包括读取单元,读取单元用于:
接收数据读取请求;
响应于所述数据读取请求,从所述一次性可编程存储器的各地址对应的寄存器区域中读取数据。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行一次性可编程存储器修改方法,该方法包括:启动芯片固件;基于所述芯片固件,检测一次性可编程存储器的修改状态;在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的一次性可编程存储器修改方法,该方法包括:启动芯片固件;基于所述芯片固件,检测一次性可编程存储器的修改状态;在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的一次性可编程存储器修改方法,该方法包括:启动芯片固件;基于所述芯片固件,检测一次性可编程存储器的修改状态;在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种一次性可编程存储器修改方法,其特征在于,包括:
启动芯片固件;
基于所述芯片固件,检测一次性可编程存储器的修改状态;
在检测到所述修改状态为已启用的情况下,确定待修改的地址和目标地址;
读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
2.根据权利要求1所述的一次性可编程存储器修改方法,其特征在于,所述基于所述芯片固件,检测一次性可编程存储器的修改状态,包括:
基于所述芯片固件,读取所述一次性可编程存储器中的预设修改信息;
基于所述预设修改信息中的修改状态标志位,检测所述一次性可编程存储器的修改状态是否为已启用。
3.根据权利要求2所述的一次性可编程存储器修改方法,其特征在于,所述确定待修改地址和目标地址,包括:
基于所述预设修改信息中的起始地址标志位,确定待修改地址;
基于所述预设修改信息中的目标地址标志位,确定目标地址。
4.根据权利要求2所述的一次性可编程存储器修改方法,其特征在于,所述读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,包括:
基于所述预设修改信息中的修改数量标志位,确定待修改区域数量;
读取所述目标地址中存储的目标修改信息,以所述待修改地址为待修改区域的起始地址,将所述目标修改信息中的各目标数据依次复制到所述待修改区域的各地址对应的寄存器区域中,直至已修改区域数量达到所述待修改区域数量。
5.根据权利要求2所述的一次性可编程存储器修改方法,其特征在于,所述检测到所述修改状态为已启用,包括:
在检测到所述修改状态标志位不为零的情况下,确定所述一次性可编程存储器的修改状态为已启用。
6.根据权利要求1至5任一项所述的一次性可编程存储器修改方法,其特征在于,还包括:
接收数据读取请求;
响应于所述数据读取请求,从所述一次性可编程存储器的各地址对应的寄存器区域中读取数据。
7.一种一次性可编程存储器修改装置,其特征在于,包括:
启动单元,用于启动芯片固件;
检测单元,用于基于所述芯片固件,检测一次性可编程存储器的修改状态;
确定单元,用于在检测到所述修改状态为已启用的情况下,确定待修改地址和目标地址;
修改单元,用于读取所述目标地址中存储的目标数据,并将所述目标数据复制到所述待修改地址对应的寄存器区域中,以将所述待修改地址对应的数据修改为所述目标数据。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述一次性可编程存储器修改方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一次性可编程存储器修改方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述一次性可编程存储器修改方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410077386.XA CN117894362A (zh) | 2024-01-18 | 2024-01-18 | 一次性可编程存储器修改方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410077386.XA CN117894362A (zh) | 2024-01-18 | 2024-01-18 | 一次性可编程存储器修改方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117894362A true CN117894362A (zh) | 2024-04-16 |
Family
ID=90644364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410077386.XA Pending CN117894362A (zh) | 2024-01-18 | 2024-01-18 | 一次性可编程存储器修改方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117894362A (zh) |
-
2024
- 2024-01-18 CN CN202410077386.XA patent/CN117894362A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4868216B2 (ja) | ファームウェア更新回路およびファームウェア更新方法 | |
JP4668416B2 (ja) | ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護 | |
US7290097B2 (en) | Nonvolatile memory | |
US7590836B1 (en) | Method and system for recovering the configuration data of a computer system | |
JP4534498B2 (ja) | 半導体装置およびその起動処理方法 | |
KR100316981B1 (ko) | 플래시 메모리를 구비한 마이크로컴퓨터 및 플래시 메모리에 프로그램을 저장하는 방법 | |
WO2000007106A1 (en) | Methods and apparatus for updating a nonvolatile memory | |
CN108376085B (zh) | 半导体系统及操作半导体装置的方法 | |
JPH03141447A (ja) | 電気的に消去可能なプログラマブル読み出し専用メモリーに常駐するファームウェアを更新する方法及び装置 | |
EP1952232A1 (en) | Hardware-assisted device configuration detection | |
JP2008009721A (ja) | 評価システム及びその評価方法 | |
JPH09198884A (ja) | フラッシュメモリ管理方法 | |
US7096351B2 (en) | Single-chip microcomputer and boot region switching method thereof | |
CN114721493B (zh) | 芯片启动方法、计算机设备及可读存储介质 | |
US20050207232A1 (en) | Access method for a NAND flash memory chip, and corresponding NAND flash memory chip | |
JP2005531085A (ja) | ハードウェア互換性の特定及び安定的なソフトウェア画像の実現方法及び装置 | |
CN117894362A (zh) | 一次性可编程存储器修改方法、装置和电子设备 | |
JP4199121B2 (ja) | 改訂識別レジスタの内容を変更する方法及び装置 | |
CN113094107B (zh) | 数据保护方法、装置、设备及计算机存储介质 | |
JP3358214B2 (ja) | 電子装置 | |
JP2007064762A (ja) | 半導体装置、テストモード制御回路 | |
JP2003150458A (ja) | 障害検出装置、障害検出方法、プログラム及びプログラム記録媒体 | |
TWI789983B (zh) | 電源管理方法及電源管理裝置 | |
JPH1020906A (ja) | データ処理装置及びデータ処理方法 | |
JP4131147B2 (ja) | プリンタにおけるフラッシュメモリの判定方法、この方法をコンピュータに実行させるプログラム、このプログラムを記録した記録媒体、フラッシュメモリを備えるプリンタ |
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 |