闪存中的存储的制作方法

文档序号:12801399阅读:372来源:国知局
闪存中的存储的制作方法与工艺

本申请要求于2015年12月28日提交的法国专利申请第15/63375号的优先权,其全部内容以法律可允许的最大程度结合于此作为参考。

本公开总的来说涉及电子电路,更具体地,涉及使用闪存的电路。更具体地,本公开的目的在于闪存中数据存储的管理。



背景技术:

闪存越来越多地用于微控制器来非易失性地存储数据。

闪存中的数据存储由于所执行操作的粒度、通过字节执行的写入和读取而具有各种时间约束,同时通过页面执行擦除。

在特定应用中,期望确定所执行和存储的交易遵循原子性标准。交易的原子性对应于确定存储在存储器中的数据有效地具有可利用状态。这相当于确定非易失性存储器中的数据要么为交易之前的状态或者要么为所关注交易之后的状态,但是它们不具有中间状态。

交易原子性的管理被特别地用于电路电源的中断或者偶然或故意干扰的发生可能产生处于以下状态的数据的存储的应用中,该状态使得这些数据不能随后被处理或者在机密性方面易受攻击。

已知许多原子性管理技术,更具体地,应用于所谓的安全交易(例如,银行交易、访问控制等)的微控制器中的原子性管理技术。



技术实现要素:

期望具有一种闪存中的数据存储的解决方案,其遵循所操作数据的原子性的标准。

期望具有尤其适用于基于免接触通信的交易的解决方案。

因此,实施例提供了一种非易失性存储器中的数据存储的方法,其中,非易失性存储器被划分为:

第一区域,每个页面都包括适于包含数据的字段和适于包含元数据的字段;

第二区域,每个页面都包括适于包含数据的字段和适于包含元数据的字段;

第三区域,适于包含第一区域和第二区域中的操作的进度的指示符,

第一和第二区域的元数据字段分别适于在第一区域的页面中的数据更新的操作期间包含第二区域中的页面以及第一区域的所述页面的索引。

根据一个实施例,具有四个指示符,它们分别指示:

操作的开始;

该操作的特性;

确认该操作的特性的指示符是稳定的;以及

该操作的结束。

根据一个实施例,顺序使用第二区域的页面。

根据一个实施例,对于访问存储器中的页面的每个请求,通过读取第一区域中的对应页面的元数据字段以确定数据是包含在该页面中还是第二区域的页面中来开始。

根据一个实施例,在对包含在第一区域的页面中的数据进行原子处理期间,该页面包含初始数据或最终数据,中间数据包含在第二区域的页面中。

一个实施例提供了一种管理非易失性存储器的方法,其中通过应用上述方法来存储数据。

一个实施例提供了一种根据上述方法编程的闪存。

一个实施例提供了包括闪存的电子电路。

以下结合附图以及具体实施例的非限制性描述来详细讨论前述和其他特征和优势。

附图说明

图1是所描述实施例所适用的类型的电子电路的实例的框图;

图2是示出闪存组织模式的框图;

图3示出了图2的存储器中的数据分配的实施例;以及

图4以框图形式非常示意性示出了管理图2的闪存中的存储的方法实施例。

具体实施方式

在不同的附图中,相同的元件被标记有相同的参考标号。

为了简化,仅示出和详细阐述对于理解将要描述的实施例有用的那些步骤和元件。具体地,没有详细描述闪存在写入、读取和擦除步骤期间的电行为,所描述的实施例与通常的闪存技术兼容。此外,也没有详细描述使用原子性管理的应用,所描述的实施例同样与通常的应用兼容。

在以下描述中,当提到近似、约和大约的描述时,这表示在10%以内,优选在5%以内。

图1以框图形式非常示意性示出了将要描述的实施例作为实例所适用的类型的电路1的实施例。

电路1包括:

处理单元11(核),例如为状态机、微处理器、可编程逻辑电路等;

一个或多个易失性存储区域12(ram),例如为ram或寄存器类型,以在处理期间临时地存储信息(指令、地址、数据);

一个或多个非易失性存储区域,包括至少一个闪存类型存储器2(闪存)用于持久地存储信息,特别地在电路不供电时;

一个或多个数据、地址和/或控制总线14,位于电路1内的不同元件之间;

输入/输出接口15(i/o),例如为串行总线类型,与电路1的外部通信。

在本公开更为具体针对的应用中,电路1还集成近场通信类型(nfc)的免接触通信电路16(clf-免接触前端)。

此外,电路1可以根据应用(例如,加密处理器、其他接口、其他存储器等)集成其他功能,它们由框17(fct)表征。

装备有闪存的电路中的交易的原子性的管理是特别的,这是因为闪存具有页面粒度而非位或字节处理粒度,特别地针对擦除而言。闪存从初始状态到状态0(单元的非传导状态)进行编程。这表示存储单元应该设置为高状态,并且为了存储一条数据,选择不作用于位状态或者将位编程为0。擦除(重置到高初始状态)需要通过存储页面执行。页面被定义为能够同时被寻址用于擦除的最小尺寸。典型地,在闪存中,目前页面总计为32、64、128、256、512字节。实际上,这对应于串行接收数据以将它们并行传输至存储面用于存储的寄存器的大小。

为了保证交易的原子性,闪存中的数据存储应该仅在交易完成并且数据认为是稳定时执行。实际上,原子性管理方法在从非易失性存储器中提取数据时激活数据处理的指示符,然后组织更新数据的存储,一旦处理完成,处理指示符就切换状态。原子性可以根据交易的特性关注更大或更小的数据量(字节)。

交易的原子性在银行类型的交易(例如,支付)的情况下尤其重要,这需要确定存储在闪存中的信息(例如,电子钱包或购买授权的结算,或者使能交易的标识符)被可靠存储。

通常,为了保证交易的原子性,利用初始信息并且随后利用最终信息进行更新的原子性缓冲器被用于到主非易失性存储器中的传输。如果存储器是闪存,则擦除数据的需求由于其页面粒度而产生问题,这使得与通过字节执行的写入操作相比,操作相对较长。

在免接触应用中,由于通信的不稳定(这与电路1可以与终端通信的时间段相关),必须非常快速地执行交易。现在,通过使用闪存缓冲器管理交易的原子性由于对于允许编程所必需的擦除操作而花费时间。

根据将要描述的实施例,提供将闪存划分为三个区域,向这三个区域分配不同的功能。

图2是示出将图1的闪存2划分为三个区域的框图。

存储器2的第一区域22(称为主存储区域(mma))被分配为存储不包含在另外两个区域(它们具有特定的功能)中的任何信息。例如,在两个交易之间,实施原子性管理的数据处理中稳定的信息被存储在该主存储器中。

第二区域24是所谓的高速缓存区域(ca),其适于在处理期间存储信息以实施原子性处理。

第三区域26是所谓的临时信息区域(tia),其适于存储表示使用前两个区域的交易的进度的信息,特别地为表示存储在其他区域中的数据的状态的标记。

区域22和24的每个页面都包括专用于数据存储的部分以及专用于存储元数据的部分,其中元数据提供关于数据的稳定性以及其他区域24或22中的对应数据的存储的可能性的信息。区域22和24中的页面的使用对于用户来说是透明的。换句话说,存储系统可以看作是包括n个页面的存储区域,每个页面位于主区域22中或者高速缓存区域24中。

图3示出了区域22和24以及临时区域26的页面的内容的实例。假设主区域22包含n个页面,并且高速缓存区域24包含m个页面。优选地,高速缓存区域的页面的数量m小于或等于n。该数量决定可在擦除高速缓存区域之前执行的原子更新操作的数量,因此执行相对较长的操作。

区域22的每个页面p0、p1、…、pi、…、pn以及区域24的pc0、…、pcj、…、pcm包括多个字节的数据(例如,b0-b6)以及元数据字段(例如,b7)。

初始地,高速缓存区域24为空,即,页面被擦除并且所有位都包含状态1(ff)。

存储器2通常装配有将逻辑地址转换为物理地址的控制器。这里,在用于访问闪存的请求(读取或写入模式)期间,对于逻辑索引i的页面,访问主区域22中的物理索引i(或该索引的转换)的页面pi的元数据字段b7md。元数据指示主存储器中的页面的数据是否是正确的(实践中,如果该字段为空,则表示数据是正确的)。如果不正确,则元数据区域包含高速缓存页面(其中存储包含数据的逻辑页面)的物理索引(地址)pcj。换句话说,区域22的元数据b7md包含具有区域24中的地址pcj的字段,其在区域24中处理区域22的页面时被编程。

区域24的页面——其包含区域22的数据——的元数据区域b7md包含具有区域22的索引或地址pi的字段b7md(从中提取数据)以及包含表示页面使用的标记(即,当该页面被移动到主区域22中被编程)的字段。

高速缓存区域24随后根据用于处理包含在区域2中的数据的需求从第一pc0填充到最后一个页面pcm。因此,只要区域24不满,区域24就可以保持被使用而不需要执行擦除。

临时区域26用于在交易中断的情况下保护其他两个区域的数据内容。该区域包含由四个指示符或标记f0、f1、f2、f3形成的临时信息。标记分别表示操作的开始(f0)、操作的特性(f1)、确认标记f1是稳定的(f2)以及操作的结束(f3)。临时信息实际上包含在操作中断的情况下再存储数据所必需的所有信息。

图4是示出对包含在区域22的页面pi中的数据执行原子数据处理(框30,原子处理)的框图。

当需要访问页面pi时,通过验证是否已经对该页面发起原子处理来开始(框31,b7md(pi)=空?)。

如果字段b7md(pi)并未指示区域24中的页面pi的地址(框31输出是),则得自于对页面pi的数据b0-b6执行操作(框33,对pi进行操作)的数据被存储在区域24的第一空闲页面pcj中(框34,->pcj)。在操作的结束处,页面pi和pcj的元数据字段被更新以存储其他页面的参考(框35,b7md(pi)=pcj,b7md(pcj)=pi)。

实践中,应确定并非所有页面pcj都已经被写入。为此,在对页面pi的操作33之前(在图4所示的实例中)或之后,测试是否存在可用页面pcj(框32,pcj可用?)。

如果答案是肯定的(框32输出是),则执行步骤33至35(或者如果在操作33之前执行测试32,则执行步骤34和35)。

如果为否,则擦除区域24的至少一个页面pcj(框36),以能够被再次使用。为此,通过识别对应页面pi(由于页面pcj的字段b7md包含对应页面pi的地址)来擦除主区域的页面p(块36,擦除p(b7md(pcj)))来开始,该页面p具有存储在区域22中的其他内容。然后,页面pcj的内容被传输(块36,pcj->p(b7md(pcj)))到主区域22中、刚被擦除的页面pi中。最后,区域24的页面pcj被擦除(框36,擦除pcj),然后可以被再次使用。

然后,返回到步骤33(所示情况)或步骤34。

一旦步骤35被执行,就测试原子操作是否结束(框37,ap结束?)。如果是(框37示出是),则处理结束(end)。如果否,则返回到步骤31。

根据可替换实施例,在步骤36中,区域24的所有页面pcj都被擦除(框36),以能够再次使用它们。为此,通过识别对应页面pi(由于页面pcj的字段b7md包含对应页面pi的地址)来擦除主区域的所有页面p(块36,擦除p(b7md(pcj)))来开始,该页面p具有存储在区域22中的其他内容。然后,所有这些页面pcj的内容都被传输(块36,pcj->p(b7md(pcj)))到主区域22中、刚被擦除的页面pi中。最后,区域24的页面pcj被擦除(框36,擦除pcj),然后可以被再次使用。最后,区域24的所有页面pcj都被擦除(框36,擦除pcj)。然后,高速缓存区域为空,从而随后被再次使用。

如果在测试31期间,字段b7md(pi)不为空(框31输出否),并在区域24中指示页面pcj的地址,这意味着页面pi的数据b0-b6无效(或者为不稳定数据)。然后,对由页面pi的字段b7md所识别的页面pcj的内容执行操作(框38,对pc(b7md(pi))进行操作)。此外,操作的结果应该存储在页面pi中。

为此(框39),擦除包含无效数据的页面pi(框39,擦除pi),页面pc(b7md(pi))的内容被传输(框39,pc(b7md(pi))->pi)到擦除后页面pi,此后页面pc(b7md(pi))被标为无效(框39,pc(b7md(pi))=无效),使其不会在没有进行先前擦除的情况下或者作为变形在高速缓存区域24的整体擦除之前被再次使用。

在临时区域26的一侧,在对数据的操作开始(即,在步骤33或38的开始)时激活标记f0,在步骤33或38的开始时也写入标记f1和f2以指示操作的特性,并且在测试37之前激活标记f3以指示操作的结束。

在完成之前中断原子处理的情况下,标记f1-f3的分析使得能够确定中断操作的特性(写入区域22或区域24中),并且因此定位稳定数据。因此,最后的稳定数据总是可以被恢复,无论从区域22还是区域24。

所描述的实施例利用编程和擦除的持续时间的差。实际上,在闪存中,与字节编程操作相比(通常大约为几十微秒),页面擦除操作相对较长(通常大约为几毫秒)。

还利用了以下事实:通过字节写入闪存,这使得通过后续写入闪存的交易的处理与交易的原子特性兼容。在闪存中通过全页面执行的读取的事实并非是不利的。

页面大小的选择取决于应用以及需要存储交易的最大尺寸。

所描述实施例的优势在于,它们改善了用于必须遵循原子性标准的操作处理的闪存的管理。

已经描述了各个实施例。本领域技术人员将容易理解各种修改、改变和改进。此外,基于以上给出的功能性指示并且通过使用本身常见的电路,所描述实施例的实践处于本领域技术人员的能力之内。具体地,对存储器的寻址的组织以及针对其控制和该寻址所适配的信号的生成利用了本身常见的技术。

这些修改、改变和改进旨在作为本公开的一部分,并且旨在落于在本发明的精神和范围内。因此,前面的描述仅仅是作为示例而不旨在于限制。仅通过以下权利要求及其等效来限定本发明。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1