CN107402717B - 闪速存储器存储管理 - Google Patents
闪速存储器存储管理 Download PDFInfo
- Publication number
- CN107402717B CN107402717B CN201611054274.4A CN201611054274A CN107402717B CN 107402717 B CN107402717 B CN 107402717B CN 201611054274 A CN201611054274 A CN 201611054274A CN 107402717 B CN107402717 B CN 107402717B
- Authority
- CN
- China
- Prior art keywords
- page
- frame
- written
- block
- memory
- 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.)
- Active
Links
Images
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/064—Management of blocks
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种闪速存储器管理方法,包括:要被存储的数据按逻辑块来组织;存储器被划分成页面;每个页面被划分成帧,每个帧能够包含至少一个数据块和至少两个帧元数据字;每个页面包括至少一个页面元数据字,在该页面被写入时至少一个页面元数据字包含已经写入页面的数目的计数器值;逻辑块到存储器的写入随着利用该逻辑块的标识符对第一帧元数据字的编程而进行;并且要被执行写入的页面被选择为使得它的第一元数据字在所有页面之中包含已写入页面的最大计数器值。
Description
本申请要求于2016年5月20日提交的法国专利申请号16/54490的优先权权益,该法国专利申请的内容通过以法律所允许的最大程度对其全文的应用而结合于此。
技术领域
本公开一般涉及电子电路,并且更具体地,涉及使用闪速存储器(flash memory)的电路。本公开更具体地针对闪速存储器的管理。
背景技术
闪速存储器在微控制器中不断被用来以非易失性的方式存储数据。
由于所执行的操作的粒度,闪速存储器中的数据存储具有多种时间约束,写入按字(word)(例如按具有四个字节的字)来执行而擦除按具有若干字(从数十到数百个字)的页面来执行。
在某些应用中,期望查明所执行和存储的事务(transaction)满足原子性(atomicity)准则。事务的原子性对应于查明在存储器中存储的数据有效地具有可处理且未被破坏的状态。这相当于查明处于非易失性存储器中的数据具有它们事务之前的状态或者它们在所讨论的事务之后的状态,但是它们不具有中间状态。
事务原子性管理特别用于如下应用中,在这些应用中电路电源的中断或者意外或有意打扰的发生可能导致数据的存储处于使得它们不可能随后处理或者在机密性方面易受损害的状态。例如,在微电路卡的领域中,期望查明在有意或意外不合时宜地从卡片已经被放置于其中的读卡器中拔出该卡片的情况下,被包含在卡片的闪速存储器中的数据是可靠的。在集成有安全模块的电路中,不合时宜的拔出等同于电路的断电。
发明内容
需要提高在闪速存储器中的数据存储的管理,特别是为了要保留暗指在闪速存储中更新数据的某些事务的原子性质。
一个实施例克服了已知的闪速存储器管理技术的全部或部分缺点。
第一方面的实施例消除了对闪速存储器中的事务的原子性的管理。
第二方面的实施例平衡了闪速存储的页面(page)的擦除。
因此,第一方面的实施例提供了一种管理闪速存储器的方法,其中:
要被存储的数据按逻辑块来组织;
该存储器被划分成页面;
每个页面被划分成帧,每个帧能够包含至少一个数据块和至少两个帧元数据字;
每个页面包括至少一个页面元数据字,在该页面被写入时至少一个页面元数据字包含已经被写入的页面的数目的计数器值;
逻辑块在存储器的写入随着利用该逻辑块的标识符对第一帧元数据字的编程来进行;并且
应当被执行写入的页面被选择为使得该页面的第一元数据字在所有页面之中包含已写入页面的最大计数器值。
根据一个实施例,这些帧被顺序写入到页面中。
根据一个实施例,第一帧元数据字还包含表示至少从帧的数据块计算出的差错控制码(error-control code)的值。
根据一个实施例,在对帧的写入时,第二帧元数据字首先被写有如下值,该值独立于要被写入的数据的内容并且对于给定帧总是相同。
根据一个实施例,所述第二帧元数据字具有针对所有存储器帧的固定值。
根据一个实施例,在对页面中的第一帧的写入之前,所述第一页面元数据字被写入。
根据一个实施例,逻辑数据块的读取包括以下步骤:
搜索具有与逻辑块的块标识符对应的块标识符的最后写入的帧;
验证数据到该最后帧中的写入遵守差错控制码,并且如果不遵守,搜索具有与逻辑数据块的块标识符对应的块标识符的先前写入的帧,直到已经扫描所有页面。
根据一个实施例,在每次开始时,存储器管理电路执行对最后写入的帧的原子性的验证。
根据一个实施例,在缺少原子性的情况下,当前页面的所有有效帧被转移到可用页面中并且当前页面被擦除。
根据一个实施例,所述可用页面是专用页面。
这个第一方面的实施例还提供一种闪速存储器,该闪速存储器根据以上方法被编程。
这个第一方面的实施例还提供一种电子电路,其包括闪速存储器。
第二方面的实施例提供一种管理闪速存储器的方法,其中:
该存储器以页面来组织;并且
每个页面包含旨在于存储页面擦除操作的数目的元数据字。
根据一个实施例,对要被擦除成空闲空间的页面的选择根据被施加到不同页面的擦除操作的数目来执行,以便使得被施加到每个页面的擦除操作的数目统一。
根据一个实施例:
要被存储的数据按逻辑块来组织;
存储器被划分成页面;
每个页面被划分成帧,每个帧能够包含至少一个数据块和至少两个帧元数据字;
每个页面包括至少一个页面元数据字,在该页面被写入时至少一个页面元数据字包含已经被写入的页面的数目的计数器值;
逻辑块到存储器中的写入随着利用该逻辑块的标识符对第一帧元数据字的编程来进行;并且
应当被执行写入的页面被选择为使得它的第一元数据字在所有页面之中包含已写入页面的最大计数器值。
这个第二方面的实施例还提供一种闪速存储器,该闪速存储器根据以上方法被编程。
这个第二方面的实施例还提供一种电子设备,其包括诸如上述的闪速存储器。
在以下结合附图对具体实施例的非限制性描述中,将详细讨论前述和其他特征和优点。
附图说明
图1以框的形式非常示意性地示出将被描述的实施例应用为示例的电子电路的类型的实施例;
图2图示了要被存储的数据在闪速存储器中的逻辑组织的实施例;
图3图示了数据在闪速存储器中的物理组织的实施例;
图4示意性图示了图3的存储器的帧结构的实施例;
图5是图示数据到存储器的写入的实施例的框图;
图6是图示在当前页面已满时针对写入操作对下一页面做准备的实施例的框图;
图7是图示从存储器读取数据的实施例的框图;
图8是图示页面级别的原子性恢复的实施例的框图;
图9是图示根据第二方面的对要被擦除的页面的选择的实施例的框图。
具体实施方式
在不同附图中,相同元件已经用相同参考标号来指示。
为了清楚,已经示出并且将详细描述用于理解所要描述的实施例的那些步骤和元件。具体地,闪速存储器在读取、写入和擦除步骤期间的电子行为没有被详细描述,所描述的实施例与常用闪速存储器技术兼容。另外,使用原子性管理的应用也已经不被详细化,这里描述的实施例也与常用应用兼容。
图1非常示意性地以框的形式示出将被描述的实施例应用为示例的电子电路1的类型的实施例。
电路1包括:
处理单元11(PU),例如状态机、微处理器、可编程逻辑电路等等;
类型为例如RAM或寄存器的一个或多个易失性存储区域12(RAM),用于在处理期间临时地存储信息(指令、地址、数据);
一个或多个非易失性存储区域,包括用于特别是在电路未通电时持久地存储信息的至少一个闪速存储器2(FLASH);
在电路1内部的不同元件之间的一个或多个数据、地址和/或控制总线14;以及
类型为例如串行总线的与电路1的外部通信的输入/输出接口15(I/O)。
电路1还可以集成近场通信型(NFC)的非接触通信电路16(CLF-非接触前端)。
另外,根据应用,电路1可以集成由框17(FCT)简化示出的其他功能,例如密码处理器(crypto processor)、其他接口、其他存储器等等。
配备有闪速存储器的电路中的事务的原子性的管理是特别的,因为取决于操作的类型,闪速存储器不具有同一处理粒度。特别地,写入是逐字执行的(每个字具有一个字节或若干字节),而擦除是逐页执行的。字的大小通常对应于寄存器的大小,该寄存器用于串行接收数据以将它们并行地转移至存储器平面以供写操作。页面被定义为能够同时被寻址以便被擦除的最小尺寸。通常,页面当前包括闪速存储器中的64、128、256、512或1024个字节。
闪速存储从被任意标示为1的初始状态被编程为状态0(单元的非导电状态)。这意味着存储器单元应当被初始化到高状态(擦除),并且为了存储一条数据(在写入模式中),按数据字来对比特状态采取(编程到0)或不采取(比特状态处于1)动作。
为了保证事务的原子性,一条数据在闪速存储器中的存储应当仅在该事务结束并且该数据被认为稳定时才被认为有效。在实践中,原子性管理方法在数据从非易失性存储器被提取时激活所述数据的处理的指示符,并且然后组织经更新的数据的存储,一旦处理结束,处理指示符然后切换状态。根据事务的特性,原子性可以考虑较大或较小量的数据。
事务的原子性在银行类型的事务(例如支付)的情况中特别重要,在这类事务中必需要查明被存储在闪速存储器中的信息、例如电子钱包或者购买授权的余额或者用于验证事务的标识符被可靠地存储。
一般而言,为了保证事务的原子性,以初始信息并且然后以最终信息来更新的原子性缓冲器被用于对去往主非易失性存储器的转移。
然而,在闪速存储器的情况中,困难在于擦除过程,因为擦除过程的页面粒度与字写入操作相比而言相对要长。具体地,需要指示被擦除的页面是稳定的,也即该页面已经整体被擦除。否则的话,将引入数据安全性的弱点。另外,在页面需要被擦除并且伴有去往新页面的数据转移时,该转移可能导致存在于要被擦除的页面中的稳定数据变得不稳定。这更特别地在大页面(例如,具有数百或更多个字级别的大小)的情况中发生,因为大页面更可能包含被认为稳定并且应当被转移到新页面的较老数据。
在非接触应用中,由于通信的不稳定性(fugacity)(这取决于电路1可以与终端通信的时间)的原因,必须要非常快速地执行事务。当前,由于必须要授权编程的擦除操作的原因,使用闪速存储器缓冲器来管理事务的原子性将花费时间。
根据将要描述的实施例,数据在存储器中的存储被提供为以特定方式来组织。
图2图示了要被存储的数据在闪速存储器中的逻辑组织的实施例。换言之,图2图示了数据由图1的电路1的处理单元11和不同实体来管理它们到闪速存储器中的存储的方式。下文参照存储器管理电路来描述,该存储器管理电路负责组织它的寻址、写入、读取和擦除以及逻辑地址到物理地址的转换。这个电路或管理单元是根据所描述的方法的实施例而被编程的电路并且可以是处理单元。
根据这个实施例,表示闪速存储器的存储容量的数据的集合被视为数据块B1、B2等等的单个阵列2V,并且每个块Bi包含同一数目的字W。在图2示出的示例中,假设每个数据块Bi包含四个字W1、W2、W3和W4。字的大小对应于闪速存储器中的写入粒度,在实践中是从一个字节到若干字节(例如四个字节)的粒度。然而,这只是任意的示例,并且任何其他数目的一个或多个字节也可以形成一个块。因此,闪速存储器的逻辑划分不是逐页执行的,而是按照具有独立于页面大小的尺寸的块B来执行。
要被存储到存储器2中的数据A包括任意数目的字节,该数目其独立于块的大小。从逻辑角度来看,也即,对于处理单元11,数据由长度L(A)、即字节的数目来定义,并且数据在块Bi的阵列2V中的定位由偏移O(A)、即与阵列2V的起始的偏移来定义。
图3图示了数据在闪速存储器中的物理组织的实施例。
数据存储的逻辑组织(图2)和物理组织之间的转变对于处理单元11和访问存储器的其他电路而言是透明的。用于管理存储器2的单元将由不同实体提供的虚拟地址转换成物理地址。另外,为了管理原子性,管理单元生成元数据,该元数据也被存储在存储器2中。
为了遵守擦除约束,存储器在物理上按页面P来组织,页面P表示擦除粒度。存储器因此被划分成具有相同大小的r个页面P。每个页面包括同一数目的字,形成写入(和读取)粒度。这些页面优选地被划分在两个类别中。
第一类别包括被划分到n个帧Fj的页面Pl,每个帧包括多个数据字(集合DBj)和同一数目的帧元数据字FMDj(从一个到若干、例如两个字)。例如,所有帧包括同一数目的数据字。每个页面Pl进一步包括独立于帧的、数目为m(从若干到数十个)的页面元数据字PMDl(k)。每个帧的数据字的数目优选地对应于存储器的虚拟组织的每个块DB的数据字的数目的整数倍(至少1倍)。因此,帧Fj包含数据块DBj和帧元数据FMDj。在图3中,已经针对每一帧图示了块DBj和随后的元数据FMDj。然而,优选地并且如从下文将看出的,该元数据的一部分被写入在帧Fj的开始处。
比第一类别的页面Pl的数目少得多的第二类别的页面仅包含存储器元数据字MMDh。
优选地,第二类别包括单个页面Pr,并且第一类别因此包括r-1个页面Pl。
作为变形,仅提供第一类别的页面。
根据特定实施例,一个页面包含1024个字节。提供第一类别的r-1个页面Pl,每个页面包含25个帧和6个页面元数据字PMDl,每个帧具有10个字。每个帧Fj包含具有八个数据字W的块DBj和两个帧元数据字FMDj。根据这个特定实施例,每个帧因此可以包含两个逻辑块Bi。另外,提供存储器元数据字MMDh的单个页面Pr。
这是一个具体示例,并且可以提供其他粒度以为所有字提供相同大小,用于表示存储器中的写入粒度。特别地,可以提供具有可变大小(字的数目)的逻辑块Bi,这些逻辑块然后能够在多个帧中的多个块DBj中分布。
帧元数据FMDj包含具有固定值的至少一个字FCONST(优选地是单个字FMDj(1))和含有被写入到真实块DBj中的(多个)虚拟块Bi的(多个)编号((多个)标识符i)的至少一个字(优选地是单个字FMDj(2)),上述固定值无论块DBj中包含的数据的值如何都是相同的。字FMDj(2)还包含块DBj的状态指示符FW(写入的结束)和CRC型差错控制码。帧元数据被用于帧原子性,也即帧元数据指示被包含在该帧内的块DBj稳定与否。
图4示意性图示了帧Fj的结构4的实施例,其中假设有两个元数据字FMDj。
根据这个实施例,具有固定值FCONST的元数据字FMDj(1)首先被写入,随后是数据A的字,并且最后是元数据字FMDj(2)。字FMDj(2)中包含的CRC码优选地是字FMDj(1)和块DBj的CRC。由于对字FMDj(1)的固定值的使用,将可能查明在帧的写入开始时尚未存在不合时宜的拔出或攻击,例如在攻击期间对块DBj的内容做修改的尝试。该值是固定的,也即,该值对于给定帧而言是相同的,但是可能从一个帧到另一帧改变。优选地,为了简化,该值对于所有存储器帧是相同的。
根据第一方面,页面元数据PDMl包含字PMDl(1),该字指示该页面已经开始被写入并且它不再是空白的,优选但也是可选地,页面元数据PDMl包含指示该页面已满的字PMDl(2),指示下一页面被擦除(因此是空白的)的字PMDl(3),指示该页面是作废的(obsolete)、也即没有一个帧包含仍然可用的块(换言之,这个页面的所有块之前已经在其他页面中被修改)的字PMDl(4),以及包含该页面的顺序编号、也即已写入的页面的数目的计数器值PWN的字PMDl(5)。根据这第一方面的页面元数据字用于指示从一个页面到另一页面的切换并且允许在电路的开始时或在电路的重置时的原子性恢复。这些字在页面中不必要在物理上处于这样的顺序。
根据描述的第二方面,除了指示页面已经被擦除的字PMDl(3)之外或者取代该字,页面元数据还包含指示被施加到该页面的擦除操作的数目的字PMD(6)。
存储器的逻辑大小与物理组织之间的唯一联系在于所有字具有同一大小。应当注意,当一个字是空白的(被擦除),它的所有比特处于第一状态(被标示为高或1)。对一个字进行编程以存储其中的值包括选择该字中应当切换状态并且被写入(切换到低状态或0)的字节的比特。标记或指示符的编程包括将字节的(多个)比特编程到与低状态对应的状态。应当注意,一旦它已经被写入或编程到状态0,该字的内容不能够被修改,除非整个页面被擦除和重编程。
数据到存储器的写入随着它们被接收而逐块执行,并且被相继地写入到每个页面。因此,在同一逻辑块(例如,计数器的值)的相继写入的情况中,这同一块Bi可以停止随着写入操作而多次以不同的值被写入到存储器中。这协助了原子性问题的解决,因为从一条数据A将已经以第一值被写入一次的时间起,如果发生针对当前值的写入问题,还总是可以按顺序写入操作返回到标识稳定状态的先前值。
然而,在逻辑存储器2V侧,同一条数据A总是“被存储”在同一块Bi(或者相同的多个块)中。因此,逻辑存储器中的块Bi的标识符i(地址)实现了对存储器2的包含数据A(包含数据A的相继的值)的(多个)物理块DBj的查找。
为了简化,下文通过任意假设所讨论的数据A占据一个且相同的块Bi并且块DBj具有一个块Bi的大小来讨论上述操作。然而,更一般性讨论的所有内容适用于数据A可以占据多个块或者一个块部分的实际情况并且适用于不同尺寸的Bi和DBj。
图5是图示了数据A到存储器2的写入的实施例的框图。
基于数据A在虚拟阵列2V中的长度L(A)和偏移O(A)(图2),存储器管理电路确定包含该数据的块DBi的标识符i(框51,i=f(L(A),O(A))。
然后(框52,选择l((MAX(PWN))),通过扫描(通过读取)页面元数据的对应字PMDl(5),选择具有已写入页面的最大数目PWN的页面Pl。
然后(框53,选择j),标识页面Pl中按顺序可用的第一个帧Fj。通过例如相继扫描这些帧直到获得具有针对固定值FCONST的未被编程的字FMDj(1)的第一个帧,来执行该选择。作为变形,读取第二元数据字FMDj(2),并且选择具有处于状态1的写入结束FMDj指示符FW或者具有未编程块标识符i的第一个帧。在这个示例中假设新页面在页面的最后一帧的写入结束时被打开。相应地,在步骤53必然发现可用帧。
作为变形,如果没有一个帧是空闲的,这意味着该页面已满。然后,执行新页面打开子例程。将在下文中结合图6来讨论这个子例程。
一旦帧Fj已经被选择,开始向帧Fj写入(框54,FCONST->FMDj(1))第一固定元数据字FMDj(1)(实际上第一个逻辑上被写入的字)。物理上,这些字可以在该帧中处于不同的顺序。然而(框55,A->DBj),一条数据A被写入到块DBj,在之后(框56,(i,FW,CRC)->FMDj(2)),第二元数据字FMDj(2)被写入有标识符i、写入结束指示符FW以及该帧的第一批字(FMDj(1)和DBj)的CRC。
然后检查该页面是否已满、也即是否存在帧Fj可用于下一写入操作(框57,存在下一j?)。如果存在(框57的输出“是”),写入结束(框58,结束)。在数据A可以表示多个块DBi的情况中,返回步骤53以写入到下一帧。在帧具有可变大小并且在页面的结束处可用的空间不足以存储下一帧的更一般情况中,空闲空间被剩余,或者该帧被分成两份,一份被存储在当前页面并且一份被存储在下一页面。
如果不存在(框57的输出“否”),准备下一页面以用于下一写入操作(框6,下一l)。为了简化,考虑准备下一页面的情况(索引l加一),但是它可以更一般地被提供用于将多个页面联系在一起以便提高多个块的写入的速度而不具有中间的擦除。在这种情况中,提供对页面已满的一个或多个页面的跳过。
图6是图示了在当前页面已满时对于写入操作准备下一页面的实施例的框图。
以关闭当前页面、也即编程它的页面终止或全页面元数据字PMDl(2)开始(框61,l->PMDl(2))。然后(框62,选择下一l),选择下一可用或作废的页面Pl。然后在对应的页面元数据字PMDl(5)中对已被写入的页面的数目的值加1进行编程(框63,PWN+1->PMDl(5)),并且也编程页面打开指示符(框64,1->PMDl(1))。
利用存储器2中这样的写入过程,可以在读取模式中找到针对每个数据的最后原子事务。
图7以框图形式图示了从存储器2读取数据A的实施例。
基于数据A在虚拟阵列2V中的长度L(A)和偏移O(A),存储管理电路确定(框71,i=f(L(A),O(A)))包含该数据的块Bi的标识符i。通过从最后写入的页面的最后写入的帧起扫描Fj,通过以块Bi的标识符i搜索块Bi所处的块DBj,来执行存储器读取。在实践中,从在它的元数据字PMDl(5)中具有已写入页面的最大数目PWN的页面并且逐页面地从页面中最后写入的帧起执行对存储器2的扫描(块72,在FMDj(2)中搜索i)。这时在第二帧元数据字FMDj(2)中标识符i的第一次出现处停止。
一旦已经发现该帧,然后验证状态指示符FW(框73,FW OK?),该状态指示符FW指示帧写入是否在没有不合时宜的拔出的情况下就已经终止,这在原理上指示数据稳定与否。
如果状态指示符无效(框73的输出“否”),然后返回扫描这些帧(块72)以一路回到包含数据块DBj的先前版本。
如果状态指示符有效(框73的输出“是”),通过对在第一元数据字FMDj(1)和在数据块(DB(j))中存在的数据重新计算CRC,来验证差错码(块74,CRC OK?)
如果计算出的码与所存储的码相同(框74的输出“是”),数据块DBj是有效的并且该读取将块DBj的值供应(框75,返回A=DBj)作为数据A、并且因此作为虚拟块Bi的内容。
如果没有确认CRC码(框74的输出“否”),这意味着该数据不可靠。然后返回扫描存储器(框72)以查找该数据的先前写入,这相对于搜索最后的原子事务。
作为一个变形,当具有错误的CRC的帧被标识(框74的输出“否”)时,开始向第二元数据字FMDj(2)写入与该帧被污染有关的指示符。这节约了数据A的下一次读取的一些时间,因为它避免了在返回先前的存在之前重新计算CRC。
图8是图示了页面级别的原子性恢复的实施例的框图。
在实践中,这个过程在电路的开始或在电路的重置时被执行,这相当于在每次意外或有意的不合时宜的拔出或断电之后验证原子性。
以选择具有已写入页面的数目的最大计数器值的页面开始(框81,选择l(MAX(PWN)))。然后,选择这个页面中最后被写入的帧(框82,选择j)。然后读取第二元数据字FMDj(2)并且验证(框83,FW OK?)写入指示符FW是否正确(是否被编程)。如果是(框83的输出“是”),那么不存在原子性问题,并且断电或重置已经发生而对闪速存储器的写入过程已经结束。然后行进至正常操作,也即原子性验证过程已经结束(END)。作为一个变形,为了确保在写入的结束时已经没有原子性拔出并且为了保证字FMDj(2)的稳定性,同样的值被重新编程在字FMDj(2)中。
如果否(框83的输出“否”),这意味着在对闪速存储的写入期间已经发生不合时宜的拔出(电源切断或重置)。根据优选实施例,页面Pr然后被用于将页面Pl的所有有效帧转移(框84,转移DBj(Pl)->DBj'(Pr))到页面Pr。然后,页面Pl被擦除(框85,擦除Pl)。包括到页面Pr的复制以及之后从页面Pr中的重新布置的不同步骤是通过页面Pr中的元数据字来证实的,以确保在恢复过程期间不合时宜的拔出的情况下已开始的过程得以有效地继续,并且确保它不会以一定会丢失页面Pl中仍然有效的数据的风险来在不合时宜的拔出过程的起始处被重新开始。
根据一个实施例,页面Pr是专用存储器页面。然后执行临时存储在页面Pr中的数据的逆向转移到已擦除的页面Pl(框86,转移DBj'(Pr)->DBj(Pl))。然后还重新写入页面元数据字。最后,页面Pr(框87,擦除Pr)使得它准备好用于下一次使用。
根据另一个实施例,页面Pr是任何可用的页面。在这种情况下,不必要在擦除之后将数据转移回页面Pl。
优选地,图8的处理还包括验证页面元数据字的原子性的步骤。为了实现这一点,在重新开始时和在最后写入的页面上,验证被存储在页面元数据字PMDl(k)之一中的差错校正码。
优选地,在步骤84之前,在框82处选择帧Fj之后已经被写入的所有页面的元数据字PMDl(2)被写入为指示满页面。因此,这些页面不能够在没有被擦除的情况下被使用。
根据其中仅第一类别的页面被使用的一个变体,能够避免在错误帧的检测之后向新页面复制可靠帧。实际上,临界帧将无论如何不会在读取模式中被考虑,而先前的可靠数据将被读取。然而,由于丢失的帧被保留,这降低了在存储器能够禁得住的不合时宜的拔出的次数方面的存储器容量。
可用(已擦除)页面的数目至少是二,以支持擦除一个页面。当没有另外的可用页面(除了两个最小值的页面之外),选择已写入页面中的一个已写入页面,优选的是其中写入帧的数目最小的页面。然后通过验证要被擦除的这个页面的帧以及包含块Bi的最后可靠状态的那些帧,来扫描这个页面。如结合图4所描述的那样将所有这些块转移(写入)到可用页面之一。因此,最多转移n个块(在实践中,至少存在某些包含废弃数据的帧,使得这个转移引起在这个页面中的可用帧)。一旦转移结束,原始页面被擦除。一旦已经执行擦除,被擦除的页面标识符被编程(PMDl(4))。
作为一个变体,页面的最小数目(例如大于三或四)被设置为具有更多可用帧,以便在不需要擦除操作的情况下存储更多数目的事务。
根据本描述的第二方面,每次闪速存储器2被擦除,在所关心的页面上的擦除操作的数目的计数器递增。
图9是图示根据第二方面的对要被擦除的页面的选择的实施例的框图。
为了擦除页面Pl(擦除Pl),如上文指示的,开始时将具有表示一条数据的最后稳定状态的值的内容的页面Pl的所有数据块DBj转移(框91,转移DBj(Pl)->DBj'(Pl'))到可用存储器页面中的一个存储器页面的块DBj'(Pl')中。在先前页面的元数据字中存储(框92,TEMP NPE)页面擦除操作的数目的计数器NPE,在此之后页面Pl被擦除(框93,擦除Pl)。一旦已经执行擦除,元数据字PMDl(6)被编程(框94,NPE+1->PMDl(6))为该擦除操作的数目递增1的值。
根据这个实施例,要被擦除的页面的选择不必然对应于具有已写入页面的最小值的页面而是对应于在已经服从于更少数目的擦除操作的页面之中具有已写入页面的最小值的页面。
这个实施例的应用通过在这些数目的页面之中擦除操作的数目的同质性来实现对闪速存储器的寿命的优化。实际上,如果尚未有原子性恢复过程,具有已写入页面的最大数目的页面将会在已经被擦除较少次数的这些页面之中。然而,由于在页面级别的原子性恢复过程的应用导致了与已写入页面的同一数目一起转移到可用页面,这样就不会必然对应,特别是在大量实现原子性恢复的情况中。
应当注意的是,如果这个第二方面能够与第一方面结合,它也能够更一般地在任何闪速存储器管理方法中被实施。
另一个优点在于,在诸如结合图9所描述的在页面级别的原子性恢复过程的一个实现的情况中,风险在于差错将在已写入页面的数目的级别上,在这种情况下这个页面在没有擦除操作的计数器数目的实现时将冒着再也不会被擦除的风险。
已经描述的实施例的优点在于它们对于不得不遵守原子性准则的操作的处理将改进闪速存储器的管理。
另一个优点在于,它们容易地实现追溯回到一条数据的上一个原子值。
已经描述了各个实施例。本领域技术人员将容易获得各种更改、修改和改进。另外,基于上文给定的功能指示并且通过使用本身常见的电路,所描述的实施例的实际实现在本领域技术人员的能力之内。特别地,存储器寻址的组织和被适配用于控制所述存储器和用于这种寻址的信号的生成将使用本身常见的技术。
这样的更改、修改和改进旨在于是本公开的一部分并且旨在于处于本发明的精神和范围之内。由此,前述描述仅是示例性的而并非旨在于是限制性的。本发明仅由所附权利要求及其等同体来限制。
Claims (32)
1.一种管理闪速存储器的方法,包括:
以逻辑块来组织要被存储的数据;
将所述存储器划分成页面;
将每个页面划分成帧,每个帧能够包含至少一个数据块和至少两个帧元数据字,其中每个页面包括至少一个页面元数据字,在该页面被写入时所述至少一个页面元数据字包含已经被写入的页面的数目的计数器的计数值;
如果逻辑块要被写入到所述存储器中,通过利用该逻辑块的块标识符对第一帧元数据字进行编程,将所述逻辑块写入到所述存储器中;并且
选择要被写入的所述页面作为使得所述页面的第一元数据字在所有页面之中包含已写入页面的最大计数器值,
其中所述存储器的页面通过如下方式被打开:增加所述页面的数目的所述计数器的所述计数值、并且将增加后的值写入到所述至少一个页面元数据字。
2.根据权利要求1所述的方法,其中所述帧被顺序写入到页面中。
3.根据权利要求2所述的方法,其中所述第一帧元数据字还包含表示至少从所述帧的所述数据块计算出的差错控制码的值。
4.根据权利要求3所述的方法,其中在对帧的写入时,首先在第二帧元数据字中写入如下值,所述值独立于要被写入的数据的内容,并且所述值对于给定帧而言总是相同的。
5.根据权利要求4所述的方法,其中所述第二帧元数据字针对所述存储器的所有帧都具有固定值。
6.根据权利要求1所述的方法,其中在第一帧被写入到所述页面中之前,第一页面元数据字被写入。
7.根据权利要求1所述的方法,包括读取逻辑数据块,其包括以下步骤:
搜索具有与所述逻辑块的块标识符对应的块标识符的最后写入的帧;
验证数据到所述最后写入的帧中的写入遵守差错控制码,并且如果不遵守,则搜索具有与所述逻辑数据块的块标识符对应的块标识符的先前写入的帧,直到已经扫描所有页面。
8.根据权利要求1所述的方法,其中每当存储器管理电路开始时,由存储器管理电路执行对最后写入的帧的原子性的验证。
9.根据权利要求8所述的方法,其中在缺少原子性的情况下,当前页面的所有有效帧被转移到可用页面中并且所述当前页面被擦除。
10.根据权利要求9所述的方法,其中所述可用页面是专用页面。
11.一种闪速存储器,所述闪速存储器根据权利要求1所述的方法编程。
12.一种电子电路,包括根据权利要求11所述的闪速存储器。
13.一种管理闪速存储器的方法,包括:
管理闪速存储器,所述管理包括:
将所述存储器划分成页面,每个页面包括至少一个第一页面元数据字,所述至少一个第一页面元数据字被配置为在该页面被写入时包含已经被写入的页面的数目的计数器的计数值;
将每个页面划分成帧,每个帧被配置为包含至少一个数据块和至少两个帧元数据字,所述至少两个帧元数据字包括第一帧元数据字,所述第一帧元数据字被配置为存储块标识符;
通过增加所述计数器的所述计数值和将增加后的计数值写入到所述至少一个第一页面元数据字,来打开所述存储器的当前页面;
将要被写入的所述当前页面选择为如下页面,所述页面的至少一个第一页面元数据字包含所述被写入页面的数目的所述计数器的最大计数值;以及
将逻辑数据块写入到所述存储器的所述当前页面的所述帧中的一个选定帧,并且伴随着所述写入,将所述逻辑数据块的块标识符写入到所述选定帧的所述第一帧元数据字。
14.根据权利要求13所述的方法,其中所述帧被顺序写入到每个页面中。
15.根据权利要求13所述的方法,其中所述第一帧元数据字还包含表示至少从所述选定帧的数据块计算出的差错控制码的值。
16.根据权利要求15所述的方法,其中所述管理包括:在所述选定帧的第二帧元数据字中写入以下值,所述值独立于正被写入到所述选定帧中的数据,并且所述值对于所述选定帧而言总是相同的。
17.根据权利要求16所述的方法,其中所述第二帧元数据字针对所述存储器的所有帧都具有固定值。
18.根据权利要求13所述的方法,其中所述至少一个第一页面元数据字在任何帧被写入到所述页面之前被写入。
19.根据权利要求13所述的方法,包括从所述存储器读取逻辑数据块,所述读取包括:
搜索如下的最后写入帧,所述最后写入帧的第一帧元数据字存储与正被读取的所述逻辑数据块的块标识符相对应的块标识符;以及
验证数据到所述最后写入帧的写入是否遵守差错控制码,并且如果不遵守,则搜索如下的先前写入帧,所述先前写入帧的第一帧元数据字存储与正被读取的所述逻辑块的块标识符相对应的块标识符。
20.根据权利要求13所述的方法,其中所述管理包括:在执行所述管理的存储器管理电路每次开始时,执行对最后写入帧的原子性的验证。
21.根据权利要求20所述的方法,其中在缺少原子性的情况下,所述当前页面的所有有效帧被转移到可用页面中,并且所述当前页面被擦除。
22.根据权利要求21所述的方法,其中所述可用页面是专用页面。
23.一种闪速存储器管理电路,所述闪速存储器管理电路在操作时执行一种方法,所述方法包括:
管理闪速存储器,所述管理包括:
将所述存储器划分成页面,每个页面包括至少一个第一页面元数据字,所述至少一个第一页面元数据字被配置为在该页面被写入时包含已经被写入的页面的数目的计数器的计数值;
将每个页面划分成帧,每个帧被配置为包含至少一个数据块和至少两个帧元数据字,所述至少两个帧元数据字包括第一帧元数据字,所述第一帧元数据字被配置为存储块标识符;
通过增加所述计数器的所述计数值和将增加后的计数值写入到所述至少一个第一页面元数据字,来打开所述存储器的当前页面;
将要被写入的所述当前页面选择为如下页面,所述页面的至少一个第一页面元数据字包含所述被写入页面的数目的所述计数器的最大计数值;以及
将逻辑数据块写入到所述存储器的所述当前页面的所述帧中的一个选定帧,并且伴随着所述写入,将所述逻辑数据块的块标识符写入到所述选定帧的所述第一帧元数据字。
24.根据权利要求23所述的闪速存储器管理电路,其中所述管理包括:在所述第一帧元数据字中存储表示至少从所述选定帧的数据块计算出的差错控制码的值。
25.根据权利要求24所述的闪速存储器管理电路,其中所述管理包括:在所述选定帧的第二帧元数据字中写入以下值,所述值独立于正被写入到所述选定帧中的数据,并且所述值对于所述选定帧而言总是相同的。
26.根据权利要求23所述的闪速存储器管理电路,其中所述管理包括:从所述存储器读取逻辑数据块,所述读取包括:
搜索如下的最后写入帧,所述最后写入帧的第一帧元数据字存储与正被读取的所述逻辑数据块的块标识符相对应的块标识符;以及
验证数据到所述最后写入帧的写入是否遵守差错控制码,并且如果不遵守,则搜索如下的先前写入帧,所述先前写入帧的第一帧元数据字存储与正被读取的所述逻辑块的块标识符相对应的块标识符。
27.根据权利要求23所述的闪速存储器管理电路,其中所述管理包括:在执行所述管理的存储器管理电路每次开始时,执行对最后写入帧的原子性的验证,其中在缺少原子性的情况下,所述当前页面的所有有效帧被转移到可用页面中,并且所述当前页面被擦除。
28.一种电子电路,包括:
闪存存储器;
闪速存储器管理电路,所述闪速存储器管理电路在操作时执行一种方法,所述方法包括:
管理所述闪速存储器,所述管理包括:
将所述存储器划分成页面,每个页面包括至少一个第一页面元数据字,所述至少一个第一页面元数据字被配置为在该页面被写入时包含已经被写入的页面的数目的计数器的计数值;
将每个页面划分成帧,每个帧被配置为包含至少一个数据块和至少两个帧元数据字,所述至少两个帧元数据字包括第一帧元数据字,所述第一帧元数据字被配置为存储块标识符;
通过增加所述计数器的所述计数值和将增加后的计数值写入到所述至少一个第一页面元数据字,来打开所述存储器的当前页面;
将要被写入的所述当前页面选择为如下页面,所述页面的至少一个第一页面元数据字包含所述被写入页面的数目的所述计数器的最大计数值;以及
将逻辑数据块写入到所述存储器的所述当前页面的所述帧中的一个选定帧,并且伴随着所述写入,将所述逻辑数据块的块标识符写入到所述选定帧的所述第一帧元数据字。
29.根据权利要求28所述的电子电路,其中所述管理包括:在所述第一帧元数据字中存储表示至少从所述选定帧的数据块计算出的差错控制码的值。
30.根据权利要求29所述的电子电路,其中所述管理包括:在所述选定帧的第二帧元数据字中写入以下值,所述值独立于正被写入到所述选定帧中的数据,并且所述值对于所述选定帧而言总是相同的。
31.根据权利要求28所述的电子电路,其中所述管理包括:从所述存储器读取逻辑数据块,所述读取包括:
搜索如下的最后写入帧,所述最后写入帧的第一帧元数据字存储与正被读取的所述逻辑数据块的块标识符相对应的块标识符;以及
验证数据到所述最后写入帧的写入是否遵守差错控制码,并且如果不遵守,则搜索如下的先前写入帧,所述先前写入帧的第一帧元数据字存储与正被读取的所述逻辑块的块标识符相对应的块标识符。
32.根据权利要求28所述的电子电路,其中所述管理包括:在执行所述管理的存储器管理电路每次开始时,执行对最后写入帧的原子性的验证,其中在缺少原子性的情况下,所述当前页面的所有有效帧被转移到可用页面中,并且所述当前页面被擦除。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1654490 | 2016-05-20 | ||
FR1654490A FR3051574A1 (fr) | 2016-05-20 | 2016-05-20 | Gestion du stockage dans une memoire flash |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107402717A CN107402717A (zh) | 2017-11-28 |
CN107402717B true CN107402717B (zh) | 2020-09-04 |
Family
ID=57184538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611054274.4A Active CN107402717B (zh) | 2016-05-20 | 2016-11-25 | 闪速存储器存储管理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10162540B2 (zh) |
EP (1) | EP3246820A1 (zh) |
CN (1) | CN107402717B (zh) |
FR (1) | FR3051574A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3055992A1 (fr) * | 2016-09-09 | 2018-03-16 | Proton World International N.V. | Gestion d'index dans une memoire flash |
FR3072476A1 (fr) | 2017-10-13 | 2019-04-19 | Proton World International N.V. | Unite logique de memoire pour memoire flash |
CN112069004B (zh) * | 2020-08-21 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种闪存芯片中块读取与页读取换算关系测试方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5457658A (en) * | 1993-02-24 | 1995-10-10 | International Business Machines Corporation | Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same |
CN1348191A (zh) * | 2000-10-11 | 2002-05-08 | 三星电子株式会社 | 闪速存储器中驱动再映射的方法及其闪速存储器体系结构 |
US6513095B1 (en) * | 1999-05-31 | 2003-01-28 | Sharp Kabushiki Kaisha | File system with assured integrity incorporating semiconductor memory device |
CN101322135A (zh) * | 2005-12-01 | 2008-12-10 | 索尼爱立信移动通讯股份有限公司 | 用于闪速存储器和电子设备的安全数字证书存储方案 |
WO2012013683A1 (en) * | 2010-07-28 | 2012-02-02 | Fujitsu Semiconductor Europe Gmbh | Electronic apparatuses |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4772214B2 (ja) * | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
US7707480B2 (en) | 2005-07-01 | 2010-04-27 | Qnx Software Systems Gmbh & Co. Kg | System employing data verification operations of differing computational costs |
KR100922389B1 (ko) | 2007-07-04 | 2009-10-19 | 삼성전자주식회사 | 플래시 메모리를 위한 색인 스킴 |
JP4535117B2 (ja) * | 2007-11-06 | 2010-09-01 | ソニー株式会社 | メモリ装置、メモリ管理方法、およびプログラム |
US8751755B2 (en) * | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US9612954B2 (en) * | 2008-12-31 | 2017-04-04 | Micron Technology, Inc. | Recovery for non-volatile memory after power loss |
US8516219B2 (en) | 2009-07-24 | 2013-08-20 | Apple Inc. | Index cache tree |
US8296496B2 (en) * | 2009-09-17 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | Main memory with non-volatile memory and DRAM |
US8812816B2 (en) | 2010-03-23 | 2014-08-19 | Apple Inc. | Garbage collection schemes for index block |
KR102295223B1 (ko) * | 2015-01-13 | 2021-09-01 | 삼성전자주식회사 | 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치 |
-
2016
- 2016-05-20 FR FR1654490A patent/FR3051574A1/fr not_active Withdrawn
- 2016-11-10 EP EP16198176.6A patent/EP3246820A1/fr not_active Withdrawn
- 2016-11-25 CN CN201611054274.4A patent/CN107402717B/zh active Active
- 2016-12-15 US US15/380,509 patent/US10162540B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5457658A (en) * | 1993-02-24 | 1995-10-10 | International Business Machines Corporation | Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same |
US6513095B1 (en) * | 1999-05-31 | 2003-01-28 | Sharp Kabushiki Kaisha | File system with assured integrity incorporating semiconductor memory device |
CN1348191A (zh) * | 2000-10-11 | 2002-05-08 | 三星电子株式会社 | 闪速存储器中驱动再映射的方法及其闪速存储器体系结构 |
CN101322135A (zh) * | 2005-12-01 | 2008-12-10 | 索尼爱立信移动通讯股份有限公司 | 用于闪速存储器和电子设备的安全数字证书存储方案 |
WO2012013683A1 (en) * | 2010-07-28 | 2012-02-02 | Fujitsu Semiconductor Europe Gmbh | Electronic apparatuses |
Also Published As
Publication number | Publication date |
---|---|
FR3051574A1 (fr) | 2017-11-24 |
EP3246820A1 (fr) | 2017-11-22 |
US10162540B2 (en) | 2018-12-25 |
CN107402717A (zh) | 2017-11-28 |
US20170336996A1 (en) | 2017-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200218446A1 (en) | Method and apparatus for memory management | |
CN107807886B (zh) | 闪存存储器中的索引管理 | |
CN109062827B (zh) | 闪存控制装置、闪存控制***以及闪存控制方法 | |
CN108319433B (zh) | 小内存单片机的NOR Flash的存储管理方法 | |
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
US8417902B2 (en) | One-time-programmable memory emulation | |
CN101946286A (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
US9772937B2 (en) | Data processing method, memory controller and memory storage apparatus | |
CN107402717B (zh) | 闪速存储器存储管理 | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
EP3057100A1 (en) | Memory device and operating method of same | |
EP2267725A1 (en) | Memory device for managing the recovery of a non volatile memory | |
US20170229187A1 (en) | Flash memory counter | |
CN107402887B (zh) | 闪速存储器中的计数器 | |
US10089029B2 (en) | Storage in flash memory | |
CN112988037A (zh) | 静态磨损均衡方法、终端和计算机可读存储介质 | |
CN108461105A (zh) | 管理半导体存储器的方法、相应的接口、存储器和设备 | |
US10957398B2 (en) | Electronic device with memory erased by page | |
JP6015461B2 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221212 Address after: Geneva, Switzerland Patentee after: STMicroelectronics International N.V. Address before: Diegem Patentee before: PROTON WORLD INTERNATIONAL N.V. |