CN117130545A - 用于管理闪存存储器中敏感数据的区域的方法 - Google Patents
用于管理闪存存储器中敏感数据的区域的方法 Download PDFInfo
- Publication number
- CN117130545A CN117130545A CN202310590010.4A CN202310590010A CN117130545A CN 117130545 A CN117130545 A CN 117130545A CN 202310590010 A CN202310590010 A CN 202310590010A CN 117130545 A CN117130545 A CN 117130545A
- Authority
- CN
- China
- Prior art keywords
- sector
- value
- values
- data
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 62
- 101000671638 Homo sapiens Vesicle transport protein USE1 Proteins 0.000 description 9
- 102100040106 Vesicle transport protein USE1 Human genes 0.000 description 9
- 230000008901 benefit Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000001629 suppression Effects 0.000 description 7
- 101150104869 SLT2 gene Proteins 0.000 description 5
- 101000835996 Caenorhabditis elegans Slit homolog 1 protein Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002715 modification method Methods 0.000 description 2
- 101100224485 Arabidopsis thaliana POL2B gene Proteins 0.000 description 1
- 101000669460 Homo sapiens Toll-like receptor 5 Proteins 0.000 description 1
- 102100039357 Toll-like receptor 5 Human genes 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了用于管理闪存存储器中敏感数据的区域的方法。在一个实施例中,一种方法包括修改或抑制非易失性存储器的一个或多个数据值,其中一个或多个数据值被存储在非易失性存储器的第一扇区中,其中第一扇区被存储在非易失性存储器中的一个或多个选择值指定为当前扇区,其中修改或抑制包括将一个或多个数据值写入非易失性存储器的第二扇区中,并且其中第二扇区被一个或多个选择值指定为替代扇区。
Description
相关申请的交叉引用
本申请要求2022年5月25日提交的题为“Méthode pour la gestion d’une zonede données sensible en mémoire FLASH”的法国专利申请号2205047的优先权,其全部内容通过引用结合于此。
技术领域
本公开总体涉及闪存型存储器领域。
背景技术
非易失性可编程存储器,例如电可擦除可编程存储器(EEPROM),能够在电子设备中存储某些数据,例如密码秘钥或配置参数,即使当电子设备断开连接时也是如此。然而,考虑到用于实现EEPROM的技术,后者通常不能集成在芯片上。然后EEPROM的外部(片外)实现会导致表面积、功耗和成本的增加。
然而,闪存型存储器可以在芯片上实现。然而,闪存存储器有某些访问限制。例如,与EEPROM相反,不可能覆盖或单独修改闪存存储器的数据值。因此,存在与使用片上闪存存储器来实现类似于由EEPROM提供的存储器存储的技术问题。
发明内容
实施例提供对闪存存储器的敏感数据的访问和操纵。各种实施例克服了闪存存储器的全部或部分已知缺点。
一个实施例提供了一种方法,包括:
对非易失性存储器的一个或多个数据值的修改或抑制,一个或多个数据值被存储在存储器的第一扇区中,第一扇区被存储在非易失性存储器中的一个或多个选择值指定为当前扇区,修改或抑制包括:
-将一个或多个数据值写入非易失性存储器的第二扇区,第二扇区被一个或多个选择值指定为替代扇区。
根据一个实施例,修改或抑制包括修改与第一存储器扇区的第一地址相关联地存储在第一位置的第一数据值,并且将一个或多个数据值写入第二扇区包括:
-将第二数据值写入非易失性存储器的第二扇区的第一位置,第二扇区的第一位置至少部分地由第一地址指定。
根据一个实施例,一个或多个选择值包括存储在第一扇区中的第一选择值。
根据一个实施例,一个或多个选择值还包括存储在第二扇区中的第二选择值。
根据一个实施例,上述方法包括:在非易失性存储器上电之后:
-读取第一选择值和第二选择值;
-根据第一选择值和第二选择值确定被指定为备选的扇区;以及
-如果在被指定为替代扇区的扇区中包含至少一个数据值,则重新初始化替代扇区。
根据一个实施例,修改或抑制包括对其他第一数据值的抑制,并且第一扇区包括第一地址范围和第二地址范围,第一地址范围包括与第一电平值相关联的所述其他第一数据值,第二地址范围包括与第二电平值相关联的第二数据值,第二电平值大于第一电平值,并且其中抑制包括:
-通过单调计数器生成第二级值;
-将与第一计数值相关联的第二数据值写入第二扇区;
-将第二选择值写入第二扇区,将第一扇区指定为替代扇区,并且将第二扇区指定为当前扇区;以及
-重新初始化第一个扇区。
根据一个实施例,上述方法还包括:
-将第二选择值写入第二扇区,将第一扇区指定为替代扇区,并且将第二扇区指定为当前扇区;以及
-重新初始化第一扇区。
根据一个实施例,上述方法还包括,在将第二选择值写入第二扇区之前:
-将存储在第一扇区中的一个或多个其他数据值写入第二扇区。
根据一个实施例,上述方法还包括,在将所述一个或多个其他数据值写入第二扇区之后,修改或抑制存储在第二扇区中的一个或多个值,并将不同于第一选择值和第二选择值的第三选择值写入第一扇区,将第一扇区指定为当前扇区,并且将第二扇区指定为替代扇区。
根据一个实施例,第一选择值、第二选择值和第三选择值中的每一个与其他选择值相差至少两个位(bit)的值。
根据一个实施例,上述方法还包括:
-读取存储在寄存器中的位的状态;以及
-当位处于第一状态时,将一个或多个数据值写入当前扇区,或者当位处于第二状态时,将一个或多个数据值写入替代扇区。
根据一个实施例,非易失性存储器是闪存型存储器。
一个实施例提供了一种设备,包括:
-非易失性存储器,包括存储在存储器的第一扇区中的一个或多个数据值,存储器还包括第二扇区以及将第一扇区指定为当前扇区并将第二扇区指定为替代扇区的一个或多个选择值;以及
-访问控制器,被配置为通过将一个或多个其他数据值写入非易失性存储器的第二扇区来修改或抑制一个或多个数据值。
根据一个实施例,访问控制器被配置为通过在非易失性存储器的第二扇区的第一位置处写入第二数据值,与第一地址相关联地修改存储在第一存储器扇区的第一位置处的第一数据值,第二扇区的第一位置至少部分地由第一地址指定。
根据一个实施例,上述设备还包括单调计数器,被配置为生成电平值,并且第一扇区包括第一地址范围以及第二地址范围,该第一地址范围包括与第一电平值相关联的其他第一数据值,该第二地址范围包括与第二电平值相关联的第二数据值,第二电平值大于第一电平值,访问控制器被配置为抑制一个或多个其他第一数据值,该抑制包括:
-将与第一计数值相关联的第二数据值写入第二扇区;
-写入第二选择值,将第一扇区指定为替代扇区,并且将第二扇区指定为当前扇区;以及
-重新初始化第一扇区。
附图说明
上述特征和优点以及其他特征和优点将在参考附图以说明而非限制的方式给出的具体实施例的公开的其余部分中详细描述,其中:
图1以框的形式示意性地示出了根据本公开的实施例的电子设备;
图2以框的形式示意性地示出了根据本公开的实施例的图1的电子设备的闪存存储器的内容;
图3是示出根据本公开的实施例的示例的写入闪存存储器的方法的操作的流程图;
图4示意性地示出了在实现数据修改方法时闪存存储器的扇区的内容;
图5是示出根据本公开的实施例的示例的扇区交换方法的操作的流程图;
图6示意性地示出了在实现抑制一个或多个数据的方法时闪存存储器的扇区的内容;
图7是示出根据本公开的实施例的示例的扇区交换方法的操作的流程图;
图8以框的形式示意性地示出了根据本公开的实施例的闪存存储器的实施例的示例;
图9示意性地示出了根据本公开的实施例的控制对闪存存储器的访问的功能;以及
图10是示出根据本公开的实施例的示例的闪存存储器启动之后的操作的流程图。
具体实施方式
在各种附图中,相同的特征已经由相同的参考标记来指定。具体地,在各种实施例中共同的结构和/或功能特征可以具有相同的参考标记,并且可以设置相同的结构、尺寸和材料属性。
为了清楚起见,仅详细地说明和描述了对理解本文中描述的实施例有用的步骤和元件。特别地,处理设备的设计是本领域技术人员公知的,并且在下面的描述中没有详细描述某些元件。
除非另有说明,当提到连接在一起的两个元件时,这表示没有除导体之外的任何中间元件的直接连接,并且当提到连接在一起的两个元件时,这表示这两个元件可以连接或者它们可以经由一个或多个其他元件连接。
在下面的公开中,除非另有说明,当提到绝对位置限定词时,例如术语“前”、“后”、“上”、“下”、“左”、“右”等,或者相对位置限定词,例如术语“向上”、“向下”、“靠上”、“靠下”等,或者方向限定词,例如“水平”、“垂直”等,参考附图中所示的方向。
除非另有说明,表述“大约”、“约”、“基本上”和“按顺序”表示在10%以内,并且优选在5%以内。
图1以框的形式非常示意性地示出了根据本公开的实施例的包括集成电路102的电子设备100。
电子设备100例如是诸如微电路卡、计算机设备、微处理器电路等的电子板。
集成电路102例如包括闪存类型的非易失性存储器104(NV MEM)。存储器104耦合到例如由硬件电路或至少部分地由软件实现来实现的访问控制器106(ACCESS CTRL)。访问控制器106例如耦合到总线108,总线108例如包括数据总线。
集成电路102还包括例如被配置为生成计数值的单调计数器110(MONOTONICCOUNTER)。此外,在某些实施例中,集成电路102还包括处理器112(CPU)和/或易失性存储器114(RAM)。易失性存储器114例如是随机存取易失性存储器。单调计数器110、处理器112和易失性存储器114例如经由总线108耦合到访问控制器106。
访问控制器106例如包括易失性寄存器116(REGISTER)和易失性或非易失性寄存器118(ALT_SECT)。访问控制器106例如被配置为接收由单调计数器110生成的电平值TIL。在某些情况下,访问控制器106还被配置为接收信号TZ和/或信号SEC/NSEC。信号SEC/NSEC例如是指示集成电路102在安全(SEC)或非安全(NSEC)模式下的操作的信号。信号TZ例如是指示集成电路102在具有信任区的安全模式中的操作的信号。信号TZ和SEC/NSEC例如由用于配置集成电路102的启动和安全性(“系统配置、启动和安全性”)的电路传输,该配置电路在图1中未示出。
根据本公开的实施例,非易失性存储器104包括第一扇区120(SECT1)和第二扇区122(SECT2)。存储器还包括区域124(CODE/DATA),其包含例如诸如启动代码和/或应用程序代码的代码,和/或数据。
在本公开所针对的应用中,并且在通常的操作模式下,两个扇区中的单个扇区包含数据,并且该扇区被指定为非易失性存储器104的当前扇区,另一个扇区被指定为替代扇区。两个扇区120和122的使用能够单独地修改或抑制存储在当前扇区中的数据的值。为此,将数据值写入替代扇区,然后扇区的角色例如被交换,替代扇区成为当前扇区,当前扇区成为替代扇区。
根据实施例,扇区120包括位置126,并且扇区122包括位置128。两个位置126和128被保留用于存储一个或多个选择值SLT1、SLT2。作为非易失性存储器104的启动的结果,位置126和128的内容被读取,并且选择值SLT1和SLT2使得能够识别扇区120和122中的哪个是当前扇区,以及扇区120和122中的哪个是替代扇区。在示例中,每个选择值SLT1、SLT2可以是未编程的,即位置为空,或者用将被指定为0、1和2的三个计数值中的一个进行编程。
根据一个实施例,在计数值0、1和2之间建立规则,使得能够在两个位置126和128不为空时确定哪个是当前扇区,哪个是替代扇区。例如,当编程的选择值是值0和1时,包含选择值1的扇区是当前扇区。当编程的选择值是值1和2时,包含选择值2的扇区是当前扇区。当编程的选择值是值2和0时,包含选择值0的扇区是当前扇区。
根据一个实施例,当扇区的位置为空白而另一扇区的位置为非空白时,包括非空白位置的扇区被指定为当前扇区。
根据示例,选择值是以十六进制数字表示的值51、8A和B4。值51、8A和B4仅作为示例公开,并且当然可以设想其他值。此外,与值51、8A和B4的情况一样,在某些实施例中,每个选择值与其他两个选择值相差至少2位的值。
当当前扇区被识别时,当前扇区的指示随后被存储在寄存器116中。该指示例如采用位或地址补码的形状。
根据一个实施例,位置126和128不能被软件访问。因此,位置126和128的内容不容易被伪造。
根据一个实施例,存储在寄存器118中的位可以由处理器112修改,使得由处理器112执行的软件能够指示数据值将被写入当前扇区和替代扇区中的哪个扇区。例如,当位处于状态0时,这意味着选择当前扇区进行写入,当位等于1时,这意味着选择替代扇区进行写入。
图2以框的形式示意性地示出了根据本公开的实施例的存储器104的内容。
作为示例,存储器104在区域124中包括数据和代码200(DATA/USER CODES)以及代码202(CODES)。数据和代码200中的代码例如是可由电路102的用户配置的代码,以使其适应他们对设备100的需求。代码200例如是非安全的,并且例如存储在存储器地址上,以十六进制值表示,范围从0x081F_FFFF到0x0800_0000。代码202例如是由电路102的制造商存储的启动代码,并且例如存储在存储器地址上,以十六进制值表示,范围从0x0BF9_FFFF到0x0BF8_0000。
作为示例,闪存存储器104还包括被配置为存储闪存存储器的参数(例如安全参数204(USER OPTIONS,用户选项))的区域204和/或被配置为存储配置参数(例如多个模块之一的配置参数)、集成电路102的配置参数、一个或多个安全应用的激活或停用参数、指示存储器104的一个或多个区域(例如区域204)的大小的参数的区域206(ENGI OPTION,工程选项)。例如,区域204和206的位置不形成映射在存储器104中的地址区域的一部分,也就是说,它们不形成处理器112可见和可访问的存储器空间的一部分。
作为示例,区域124还包括其他代码或数据208。
非易失性存储器104还包括区域210,该区域210包括扇区120和122。扇区120和122,更具体地是当前扇区,包含诸如OBK(选项字节秘钥,OPTION BYTES KEYS)秘钥的数据。区域210例如被映射在范围从0x0BFD_1FFF到0x0BFD_0000的地址处。区域210由扇区120和122实现,然后这两个扇区作为单个地址范围从外部可见。
仅出于说明目的公开存储器地址,并且当然不是限制性的。当然可以设想不同区域以及扇区120和122的其他大小和位置。
图3是示出根据本公开的实施例的示例的写入存储器104的方法的操作的流程图。该方法例如由处理器112和访问控制器106实现。
然后,设备100,特别是存储器104,被启动并处于通常的操作模式。然后,寄存器116包含当前扇区的指示,例如扇区120。
在步骤301(写入请求),由处理器112发起将数据值写入扇区之一的请求,该请求例如伴随有存储器地址。作为示例,在写入请求之前,处理器112被配置为进一步编程寄存器118的位的状态,以指示是将写入当前扇区还是将写入替代扇区。
在步骤302(ALT_SEC=1?),访问控制电路106被配置为读取寄存器118的内容。
作为示例,如果寄存器118中包含的位处于状态0(分支N),则该方法以步骤303的序列继续。
步骤303的序列包括步骤304(在当前扇区中读取),其中处理器112在步骤301指示的存储器地址处读取当前存储在当前扇区中的数据。
在步骤305(数据=0?),处理器112确定在步骤304读取的数据是否为空,换句话说,与在步骤301指示的地址相关联的存储器位置是否为空。在位置不为空(分支N)的情况下,并且相应地在数据值已经存储在位置中的情况下,该方法在步骤306(错误信号)继续,其中访问控制器106例如向处理器112发送错误信号。该方法然后在步骤307(结束)结束。
如果在步骤305确定存储器位置为空(分支Y),则该方法在步骤303序列的步骤308(写入当前扇区)继续。
在步骤308,将数据值写入当前扇区,更准确地说,写入由存储器地址指示的当前扇区的位置。
如果在步骤302确定寄存器118中包含的位具有值1(分支Y),则该方法以类似于步骤303序列的步骤309序列继续,不同之处在于操作是在替代扇区中执行的。
因此,步骤309的序列包括步骤310(在替代扇区中读取)、与步骤305相同的步骤311和步骤312(在替代扇区中写入)。
在执行步骤308或312之后,该方法在步骤307结束。
图4示意性地示出了在实施数据修改方法期间存储器104的扇区120和122的内容。
作为示例,选择值(SLT1)存储在位置126处,该选择值将扇区120指定为当前扇区。
当前扇区120包括例如数字N+1,N是整数的秘钥,例如OBK秘钥,被指定为KEY i,i是从0到N的范围。
作为示例,与存储器地址相关联地存储在位置400处的秘钥KEY K是过期的,并且必须被修改或更新。然而,存储器104是闪存型存储器,不可能单独修改秘钥KEY K的值。实际上,只可能将值写入扇区的空白位置或完全覆盖扇区120的内容。
根据一个实施例,新的秘钥值被写入到与替换扇区122的位置400相同的地址相关联的位置402中。例如,根据与图3相关地描述的方法来执行将新值写入替代扇区。
图5是示出扇区交换方法操作的流程图。更具体地,图5所示的流程图示出了在修改当前扇区的数据之后执行的操作,如结合图4所描述的。图5的方法例如由处理器112和访问控制器106实现。
作为示例,已经执行了对秘钥KEY K的修改,如结合图4所描述的。然后,当前扇区120包括秘钥KEY 0到KEY N,其中秘钥KEY K被存储在位置400。然后,当前扇区120还包括存储在位置126的选择值SLT1。替代扇区122仅包括存储在位置402的秘钥KEY K的修改,位置402由与位置400相同的地址指定。
在位置402处存储秘钥KEY K的修改之后,在步骤501启动扇区交换请求(交换扇区请求)。
在步骤502(地址索引=0),初始化例如对应于指定存储器位置的地址的索引值。作为示例,在该步骤中,索引值对应于指定包含秘钥KEY 0的扇区120的存储器位置的地址。
在步骤503(读取数据@地址索引),例如读取由索引值指定的替代扇区122的存储器位置的内容。处理器112然后在步骤504(数据=0)确定与索引值相关联的替代扇区的存储器位置是否为空。如果该位置实际上是空白的(分支Y),则该方法在步骤505(复制数据)处继续,其中,例如,秘钥KEY 0被重写到与索引值相关联的替代扇区122的位置中。
如果在步骤504,确定由索引值指定的替代扇区122的存储器位置不为空(分支N),则该方法直接跳到步骤506(递增地址索引)。
在步骤506(递增地址索引),在步骤505之后,或者可能在步骤504之后,索引值被递增。作为示例,索引值然后对应于指定当前扇区120中的秘钥KEY 1的位置的存储器地址。
步骤503至506的连续步骤将在本公开的其余部分中被指定为步骤507的序列。
在步骤508(结束?)中,例如通过将索引值与限制索引值进行比较来确定当前扇区120的存储器位置是否仍待扫描。作为示例,限制索引值对应于指定其中存储有秘钥KEY N的扇区120的存储器位置的地址。如果还有要扫描的存储器位置(分支N),则该方法在步骤503继续。
作为示例,当在执行步骤506之后,其中索引值朝着指定先前存储了秘钥KEY K的修改的扇区122的存储器位置的索引值递增时,在执行步骤504时,该位置将被视为非空。
在步骤508处确定没有剩余要扫描的其他位置(分支Y)的情况下,该方法在步骤509进行(交换然后擦除)。
作为示例,在该方法的该步骤中,替代扇区122包括存储器位置404中的秘钥KEY 0到秘钥KEY K-1、位置402处的秘钥KEY K的修改以及位置406处的秘钥KEY K+1到秘钥KEYN。
在步骤509,与存储在扇区120的位置126处的选择值不同的选择值被存储在扇区122的位置128处。例如,在当前扇区120的选择值SLT1由计数值0、1或2指定时,存储在替代扇区122中的选择值将分别为1、2或0。
作为存储新的选择值的结果,替换扇区122成为当前扇区,并且当前扇区120成为替换扇区。然后擦除整个替代扇区120。因此,在位置126处的选择值SLT1也被擦除。
仅在选择值已被更新之后才抑制替换扇区120的内容的优点在于保存了当前扇区和替换扇区的指定。因此,如果电子设备100在抑制替代扇区120之前或期间由于任何原因关闭,则在重新启动时,执行位置126和128的选择值的读取,并且能够识别扇区122是当前扇区。
在某些情况下,在抑制整个替代扇区之后,然后读取位置126和128的内容。由于位置126为空的事实,仅检测扇区122的选择值,这意味着扇区122现在是存储器104的当前扇区。然后更新寄存器116的内容,以指示当前扇区是扇区122。
尽管图5示出了存储在扇区中的数据是秘钥的示例,但是该方法可以应用于任何类型的数据。
图6示意性地示出了在实现抑制一个或多个数据的方法时存储器104的扇区120和122的内容。
作为示例,并且类似于图3,选择值(SLT1)存储在位置126,选择值指定扇区120为当前扇区。
例如,当前扇区120包括N+1个秘钥OBK,被指定为KEY i,i在0到N的范围内,秘钥KEY 0到KEY K被存储在位置602,秘钥KEY K+1到KEY N被存储在位置604。
作为示例,秘钥KEY K+1到KEY N的抑制例如由控制器106控制。然而,存储器104是闪存型存储器,不可能在不抑制整个扇区120的情况下单独抑制秘钥KEY K+1到KEY N以及相应地抑制秘钥KEY 0到KEY K。
根据一个实施例,然后在替代扇区122的位置606处重写秘钥值KEY 0至KEY K。然后用与指定位置602的地址相同的地址来指定位置606。
图7是示出抑制包括在存储器104内的一个或多个数据,更具体地,抑制包括在当前扇区内的数据的方法的操作的流程图。图7的方法例如由处理器112和访问控制器106实现。
作为示例,如结合图6所描述的,当前扇区120包括存储在当前扇区的位置602处的秘钥KEY 0到KEY K以及存储在当前扇区的位置604处的秘钥KEY K+1到KEY N。当前扇区120还包括存储在位置126的选择值SLT1。然后替代扇区122是空的,即,形成它的所有存储器位置都是空的。
在步骤701(交换扇区请求)启动用于抑制秘钥KEY K+1到KEY N以及用于交换扇区的请求。
在步骤702(K≥0?)处,指定要重写到替代扇区122中的数据值的数字K+1。数字K+1对应于在进行当前扇区和替代扇区之间的交换之前要传输到替代扇区的当前扇区的数据的数量。作为示例,要重写的数据值的数量对应于形成秘钥KEY 0到KEY K、KEY K+1到KEY K的组合的秘钥的数量,KEY K+1到KEY K意味着被抑制。如果要重写至少一个数据值(分支Y),则该方法在步骤703(地址索引=0)继续。
在步骤703,启动例如对应于指定存储器位置的地址的索引值。作为示例,在该步骤中,索引值对应于指定包含秘钥KEY 0的扇区120的存储器位置的地址。
在步骤703之后,该方法以步骤507的顺序继续,在步骤507中,用索引值指定的扇区120的存储器位置的内容被重写到用相同索引值指定的扇区122的存储器位置中,前提是后者为空。作为示例,在这些步骤期间,将秘钥KEY 0的值写入扇区122。然后索引值递增。
在序列507的步骤之后,该方法在步骤704(地址索引=K+1)继续,在步骤704(地址索引=K+1)中确定要重写到扇区122中的所有值是否已经被重写,这例如是如果索引值等于K+1的情况。如果不是,则该方法在步骤507继续,其中,例如,将秘钥KEY 1的值写入扇区122。
如果作为步骤704的结果,确定所有要重写的值都已被重写(分支Y),则该方法继续到与结合图5描述的步骤509相同的步骤705(交换和擦除)。当确定没有数据值要被重写到扇区122(分支N)时,步骤705也跟随步骤702。
作为示例,秘钥KEY 0到KEY K中的每一个的值已经被重写到扇区122中。然后,不同于值SLT1的选择值被存储到扇区122的位置128中,并且整个扇区120被擦除。因此,秘钥KEY K+1到KEY N不再存储在扇区120和122中,因此它们从存储器104中被抑制。
该方法然后在步骤706(结束)结束。
如在结合图5描述的方法中,在步骤705中,仅在选择值已经被更新时抑制替代扇区120的优点是保存了当前扇区和替代扇区的指定。因此,如果电子设备100在抑制替代扇区120之前或期间由于任何原因关闭,则在重新启动时,执行位置126和128的选择值的读取,并且能够识别扇区122是当前扇区。
尽管图7示出了示例,其中存储在扇区位置的数据是秘钥,但是该方法可以应用于任何类型的数据。
图8以框的形式示意性地示出了根据本公开的实施例的存储器104的实施例的示例。
图8示出了扇区120和122中的不同存储区域。除了为存储选择值而保留的位置126和128之外,每个扇区120和122包括例如5个区域。
例如,扇区120包括区域800至804,扇区122包括区域800’至804’。每个区域都与一个电平值TIL(表示“时间隔离电平”)相关联。例如,在设备100的每次启动时,由单调计数器110生成电平值。电平值例如被传输到控制器106。因此,控制器106禁止访问例如与小于计数器110产生的电平值的TIL电平值相关联的区域。
例如,区域800和800’(TIL 0)与TIL 0电平值相关联,并且它们的访问仅在单调计数器110生成的电平值等于0时才被授权。类似地,区域801和801’(TIL 1)与TIL 1值相关联,并且例如仅当电平值等于1时才可访问。在另一示例中,当所生成的电平值小于或等于1时,区域801和801’是可访问的。类似地,区域802和802’(TIL2)与TIL 2值相关联,并且区域803、803’(TIL3SEC)和804、804’(TIL3NSEC)与TIL 3值相关联。
作为示例,控制器106还被配置为当单调计数器110增加电平值时控制对一个或多个区域的内容的抑制。作为示例,根据结合图6和图7描述的实施例,水平值朝着值1增加0,并且与当前扇区的TIL 0值相关联的区域800或800’的内容被抑制。类似地,与其他TIL值相关联的区域的内容例如在水平值朝大于与所述区域相关联的TIL值的值递增时被抑制。
图9示意性地示出了对存储器104的访问的控制功能,特别是对存储器104的当前扇区的访问的控制功能。
作为示例,访问控制功能由访问控制器106实现。
作为示例,考虑当前扇区是扇区120的情况。扇区120例如包括结合图8描述的5个区域800至804。
然后,访问控制器106被配置为接收单调计数器110生成的电平值(TIL)。作为示例,访问控制器106还被配置为基于接收到的TIL电平值禁止对区域800至804中的一个或多个区域的访问。作为示例,访问控制器106被配置为禁止对与小于接收的电平值的TIL值相关联的区域的任何访问。在另一示例中,访问控制器106被配置为禁止对与不同于接收到的TIL电平值的TIL电平值相关联的区域的任何访问。
作为示例,访问控制器106还被配置为接收信号SEC/NSEC,该信号SEC/NSEC指示集成电路102在安全(SEC)或非安全(NSEC)模式下的操作。作为示例,访问控制器106被配置为当电路102处于非安全模式时授权对区域804的访问并禁止对区域803的访问。
作为示例,访问控制器106还被配置为接收信号TZ,该信号例如是指示集成电路102在具有信任区的安全模式下的操作的信号。作为示例,访问控制器106被配置为当接收到信号TZ时授权对所有区域800至804的访问,即使在单调计数器110生成的电平值不允许的情况下也是如此。
图10是示出由电路102的启动产生的操作的流程图。
在步骤1001(启动)启动设备。在步骤1001之后,例如由处理器112在步骤1002(选择器教导(LECTURE))读取位置126和128的内容。
在步骤1002之后,该方法在步骤1003继续(两个选择器中的值?),其中确定两个位置126和128是否包括选择值,即两个位置126和128中的一个或另一个不为空。在两个位置中只有一个位置包括选择值(分支N)(例如位置128处的值SLT2,位置126为空)的情况下,该方法在步骤1004继续(确定当前扇区并更新寄存器)。在步骤1004,其位置包含选择值的扇区,例如扇区122,被确定为当前扇区。此外,在步骤1004更新寄存器116中包含的指示。
然后,该方法在步骤1005(结束)结束。
如果在步骤1003,从位置126和128(分支Y)中的每一个读取选择值,即位置126和位置128都不是空的,则该方法在步骤1006(确定当前扇区并更新寄存器)继续。
当两个位置126和128在存储器104的启动之后各自包含选择值时,这意味着存储器104在步骤509的实施期间或在步骤705的实施期间已经断电。实际上,在这种情况下,在修改或抑制当前扇区的一个或多个数据之后,在完全擦除替换扇区之前,新的选择值被存储在替换扇区的位置中。如果由于任何原因,存储器104在存储新的选择值之后但在擦除当前扇区之前不再通电,则两个值SLT1和SLT2存储在位置126和128。
在步骤1006,应用规则来确定哪个扇区是当前扇区。作为示例,应用的规则是与图1相关的描述。
例如,在图5的方法的步骤509的实现期间或在图7的方法的步骤705的实现期间,用计数值对替代扇区122的选择值进行编程,对应于对当前扇区的选择值进行编程的计数值。例如,如果对当前扇区120的选择值进行编程的计数值是值0,则存储在替代扇区122的位置128处的新值将被编程为值1。类似地,如果当前扇区120的值被编程为值1,则新的选择值将被编程为值2。如果当前扇区120的选择值被编程为值2,则新的选择值将被编程为值0。在读取选择值期间,扇区122将被指定为当前扇区。
一旦确定了当前扇区,就更新寄存器116中包含的当前扇区的指示。
旧的数据值,例如,秘钥KEY 0到KEY N,仍然存储在然后被指定为替代扇区的扇区中,在步骤1007(替代扇区的重新初始化)重新初始化该扇区。替代扇区例如扇区120的内容例如被整体擦除。因此,替代扇区不包含进一步的选择值。
然后该方法在步骤1005结束。
所描述的实施例的优点在于它们能够修改或部分抑制闪存型存储器的内容。
所描述的实施例的另一个优点是,可以通过软件选择将一个或多个数据值写入哪个扇区、当前扇区或替代扇区。
所描述的实施例的另一个优点是,对存储器104的访问,特别是对包括在扇区120和122内的不同区域的访问,由单调计数器110的递增来控制,这提高了数据的安全性。
所描述的实施例的另一个优点是,能够确定哪个扇区是当前扇区的位置126和128的内容只能由硬件电路访问。
所描述的实施例的另一个优点是,在每次启动存储器104时以及在读取位置126和128的内容之后,将哪个扇区是当前扇区的指示加载到电路的寄存器116中。
已经描述了各种实施例和变型。本领域技术人员将理解,这些不同实施例和变型的某些特征可以组合,并且本领域技术人员将想到其他变型。特别地,选择值可以采用的值的选择在本领域技术人员的能力范围内。类似地,能够基于选择值确定哪个是当前扇区以及哪个是替代扇区的规则的选择在本领域技术人员的能力范围内。
最后,基于上面给出的功能指示,所描述的实施例和变体的实际实现在本领域技术人员的能力范围内。特别是关于访问控制器的实现。
Claims (17)
1.一种方法,包括:
修改或抑制非易失性存储器的一个或多个数据值,其中所述一个或多个数据值被存储在所述非易失性存储器的第一扇区中,其中所述第一扇区被存储在所述非易失性存储器中的一个或多个选择值指定为当前扇区,其中修改或抑制包括将一个或多个数据值写入所述非易失性存储器的第二扇区中,并且其中所述第二扇区被所述一个或多个选择值指定为替代扇区。
2.根据权利要求1所述的方法,其中修改或抑制包括与第一地址相关联地修改存储在所述第一扇区的第一位置处的第一数据值。
3.根据权利要求2所述的方法,其中将所述一个或多个数据值写入所述第二扇区包括将第二数据值写入所述第二扇区的第一位置,所述第二扇区的所述第一位置至少部分地由所述第一地址指定。
4.根据权利要求1所述的方法,其中所述一个或多个选择值包括存储在所述第一扇区中的第一选择值。
5.根据权利要求4所述的方法,其中所述一个或多个选择值还包括存储在所述第二扇区中的第二选择值。
6.根据权利要求4所述的方法,还包括在对所述非易失性存储器加电之后:
读取所述第一选择值和所述第二选择值;
基于所述第一选择值和所述第二选择值,确定所述第一扇区和所述第二扇区中的哪个扇区被指定为所述替代扇区;以及
当数据值被存储在所述替代扇区中时,重新初始化所述替代扇区。
7.根据权利要求1所述的方法,其中修改或抑制包括修改其他第一数据值,其中所述第一扇区包括第一地址范围和第二地址范围,所述第一地址范围包括与第一级值相关联的所述其他第一数据值,所述第二地址范围包括与第二级值相关联的第二数据值,所述第二级值大于所述第一级值。
8.根据权利要求7所述的方法,其中修改或抑制包括通过以下方式进行抑制:
由单调计数器生成所述第二级值;
将所述第二数据值与所述第一计数值相关联地写入所述第二扇区;
将第二选择值写入所述第二扇区,将所述第一扇区指定为所述替代扇区,并且将所述第二扇区指定为所述当前扇区;以及
重新初始化所述第一扇区。
9.根据权利要求1所述的方法,还包括:
将第二选择值写入所述第二扇区,
将所述第一扇区指定为所述替代扇区,并且将所述第二扇区指定为所述当前扇区;以及
重新初始化所述第一扇区。
10.根据权利要求1所述的方法,还包括:在将所述一个或多个其他数据值写入所述第二扇区之后,修改或抑制存储在所述第二扇区中的所述一个或多个数据值,以及将不同于所述第一选择值和所述第二选择值的第三选择值写入所述第一扇区,将所述第一扇区指定为所述当前扇区,并且将所述第二扇区指定为所述替代扇区。
11.根据权利要求10所述的方法,其中所述第一选择值、所述第二选择值和所述第三选择值中的每个与所述其他选择值相差至少两个位的值。
12.根据权利要求1所述的方法,还包括:
读取寄存器中存储的位的状态;以及
当所述位处于第一状态时,将所述一个或多个数据值写入所述当前扇区;或者
当所述位处于第二状态时,将所述一个或多个数据值写入所述替代扇区。
13.根据权利要求1所述的方法,其中所述非易失性存储器是闪存型存储器。
14.一种设备,包括:
非易失性存储器,包括:
第一扇区,被配置为存储一个或多个数据值;以及
第二扇区,
其中所述非易失性存储器被配置为存储一个或多个选择值,所述一个或多个选择值将所述第一扇区指定为当前扇区并且将所述第二扇区指定为替代扇区;以及
访问控制器,被配置为通过将一个或多个其他数据值写入所述非易失性存储器的所述第二扇区来修改或抑制所述一个或多个数据值。
15.根据权利要求14所述的设备,其中所述访问控制器被配置为通过将第二数据值写入所述非易失性存储器的所述第二扇区的第一位置来与第一地址相关联地修改存储在所述第一存储器扇区的第一位置处的第一数据值,并且其中所述第二扇区的所述第一位置至少部分地由所述第一地址指定。
16.根据权利要求14所述的设备,还包括:
单调计数器,被配置为生成电平值,
其中所述第一扇区包括第一地址范围和第二地址范围,所述第一地址范围包括与第一电平值相关联的其他第一数据值,所述第二地址范围包括与第二电平值相关联的第二数据值,并且
其中所述第二电平值大于所述第一电平值。
17.根据权利要求16所述的设备,其中所述访问控制器被配置为通过以下方式抑制所述一个或多个其他第一数据值:
与所述第一计数值相关联地将所述第二数据值写入所述第二扇区;
写入第二选择值,将所述第一扇区指定为所述替代扇区,并且将所述第二扇区指定为所述当前扇区;以及
重新初始化所述第一扇区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2205047 | 2022-05-25 | ||
US18/318,416 US20230384953A1 (en) | 2022-05-25 | 2023-05-16 | Method for managing a zone of sensitive data in a flash memory |
US18/318,416 | 2023-05-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130545A true CN117130545A (zh) | 2023-11-28 |
Family
ID=88858990
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310590010.4A Pending CN117130545A (zh) | 2022-05-25 | 2023-05-24 | 用于管理闪存存储器中敏感数据的区域的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117130545A (zh) |
-
2023
- 2023-05-24 CN CN202310590010.4A patent/CN117130545A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100531192B1 (ko) | 비휘발성 메모리의 제어방법 | |
US6088759A (en) | Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture | |
US5937434A (en) | Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture | |
KR100437230B1 (ko) | 비휘발성 메모리를 갱신하기 위한 방법 및 장치 | |
US6339815B1 (en) | Microcontroller system having allocation circuitry to selectively allocate and/or hide portions of a program memory address space | |
KR100734340B1 (ko) | 상이한 메모리 기술 특성을 갖는 분할 메모리 장치 | |
US5210854A (en) | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version | |
US11455401B2 (en) | Data-processing device and data-protection method thereof | |
EP0723226A1 (en) | Powerfail durable flash EEPROM upgrade | |
US7039799B2 (en) | Methods and structure for BIOS reconfiguration | |
US20060005005A1 (en) | Method and apparatus for executing the boot code of embedded systems | |
US7574576B2 (en) | Semiconductor device and method of controlling the same | |
WO2005094281A2 (en) | Device-level address translation within a programmable non-volatile memory device | |
US8417902B2 (en) | One-time-programmable memory emulation | |
EP1450261A1 (en) | Semiconductor memory with access protection scheme | |
CN110968254A (zh) | 一种非易失性存储器的分区保护方法及装置 | |
JPH08286976A (ja) | 不揮発性メモリ領域の保護方法及び回路 | |
EP1821214A1 (en) | Nonvolatile memory system | |
US20040186947A1 (en) | Access control system for nonvolatile memory | |
US11055237B2 (en) | Method of access to a memory | |
CN117130545A (zh) | 用于管理闪存存储器中敏感数据的区域的方法 | |
US6148362A (en) | Microcomputer using nonvolatile semiconductor memory to store user code/data | |
EP1079340A2 (en) | Integrated circuit card protected from unauthorized access | |
US20230384953A1 (en) | Method for managing a zone of sensitive data in a flash memory | |
US6684290B2 (en) | Memory rewriting apparatus and method for memory mapping rewriting program to same address space |
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 |