CN101145394A - 关于连续扇区的写操作请求提供原子性的设备和方法 - Google Patents
关于连续扇区的写操作请求提供原子性的设备和方法 Download PDFInfo
- Publication number
- CN101145394A CN101145394A CNA2007101540793A CN200710154079A CN101145394A CN 101145394 A CN101145394 A CN 101145394A CN A2007101540793 A CNA2007101540793 A CN A2007101540793A CN 200710154079 A CN200710154079 A CN 200710154079A CN 101145394 A CN101145394 A CN 101145394A
- Authority
- CN
- China
- Prior art keywords
- sector
- mode bit
- contiguous
- validity
- write data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了一种关于闪存中的连续扇区的写操作请求提供原子性的设备。所述设备包括:写数据模块:在页的主扇区中写数据,并将指示写数据的状态的状态位分配给页的备用扇区;写进展管理模块,根据写数据的进展状态在分配有状态位的备用扇区中覆写确认标记;有效性确定模块,基于覆写的确认标记来确定扇区的有效性,并提供连续扇区的信息。
Description
本申请要求于2006年9月13日在韩国知识产权局提交的第10-2006-0088723号韩国专利申请的优先权,该申请完全公开于此以资参考。
技术领域
根据本发明的设备和方法涉及一种关于闪存中的连续扇区的写操作请求提供原子性(atomicity)的设备。更具体地讲,本发明涉及这样一种关于闪存中的连续扇区的写操作请求提供原子性的设备及其提供方法:在闪存中的一个或多个连续扇区的写操作期间,单独显示扇区的写数据进展状态,即使在写数据操作期间断电,也能基于单独显示的写数据进展状态来保证一个或多个连续扇区的写操作的原子性,以使系统性能降低最小化。
背景技术
近年来,因为闪存与硬盘一样是非易失性的,并具有高存取速度和低功耗,所以在多种应用(例如,嵌入式系统、移动装置等)中已广泛使用闪存。
基于闪存的系统包括作为易失性存储器的RAM、嵌入有CPU的控制器和作为非易失性存储器的闪存。在这种基于闪存的系统中,因为经常由于应用领域的特点导致发生突然断电,所以在这种系统中使用的文件系统需要是事务性(transactional)。
然而,根据使用闪存的一般方法,在闪存中执行写操作的情况下,即使不出错地完成了属于一个事务的各种活动或者在所述各种活动中发生错误,也无法保证在数据中没有异常地处理错误的原子性。结果,为了提供事务性功能,在文件系统中需要大量开销。
同时,当在闪存中的一个或多个连续扇区的写操作期间断电时,请求写操作的部分数据扇区可能被写编程(program),其他部分可能没有被写编程。
图1是示出根据现有技术的闪存装置的结构的示图。
闪存装置100包括多个块110,块110中的每一个成为闪存的擦除操作的单位。
此外,块110中的每一个包括多页111,页111中的每一页成为闪存中的读写操作的单位。
操作系统以扇区为单位执行读/写请求,闪存的页111等于扇区的大小,或者具有与扇区的大小的任意倍数相应的大小。
图2是示出在图1中所示的闪存中执行的一个或多个连续扇区的写操作的示图。
根据现有技术,为了指示写编程被正常完成的事实,如图2所示,为每一扇区201分配状态位202,状态位202的初始值具有无效标记的值0x1(参考标号202a)。
当在没有断电的情况下完成了对相应扇区的写编程时,状态位具有有效标记的值0x0(参考标号202b)。
图3是示出根据现有技术的一个或多个连续扇区的写操作的处理的流程图。
在扇区中写入数据(步骤S301)之后,为了指示在没有断电的情况下完成了扇区的写编程的事实,在扇区的状态位写编程了有效标记0x0,所述有效标记指示相应扇区有效的事实(步骤S302)。
例如,如果状态位的初始值具有无效标记的值0x1,则有效标记的值0x0被写入。
在步骤S302的处理之后,检查是否剩余将被写入数据的扇区(S303),作为检查的结果,如果在所有扇区中都写入了数据,则完成处理。
作为检查的结果,如果剩余将被写的扇区,则重复步骤S301的处理。
在包括逻辑扇区1至6的六个扇区中写入数据的如图2所示的实施例中,在步骤S301,在逻辑扇区1中写数据,并在步骤302,在与逻辑扇区1相应的状态位中显示有效标记。然后,在逻辑扇区2中写数据,并在与逻辑扇区2相应的状态位中显示有效标记。
以相同的方式,在逻辑扇区3至6中写数据,并在所述扇区的每一个的状态位中显示有效标记。
图4是示出根据现有技术的在一个或多个连续扇区的写操作中检查扇区的有效性的处理的流程图。
在对写入了数据的扇区的有效性检查中,首先确定扇区的状态位是否为“1”(步骤S401)。此时,如果相应扇区的状态位不是“1”,则可假定所述相应扇区被确定为有效扇区,并且扇区写编程被完成(步骤S402)。
作为步骤S401处理的结果,如果扇区的状态位是“1”,则假定相应扇区被确定为无效扇区,并且扇区写编程没有完成(步骤S403)。
如上所述,在现有技术中存在以下问题。当在一个或多个连续扇区的写操作期间发生断电时,部分扇区可被确定为有效扇区,而部分扇区可被确定为无效扇区。结果,无法保证一个或多个连续扇区的写操作的原子性。
发明内容
本发明的目的在于提供这样一种关于闪存中的连续扇区的写操作请求提供原子性的设备及其提供方法:即使在闪存的一个或多个连续扇区的写操作期间发生断电,也能保证连续扇区的写操作的原子性,并使系统性能的降低最小化。
本发明的多方面不限于上述目的,本领域的技术人员通过下面的描述将清楚理解本发明的其他目的。
根据本发明的一方面,提供了一种关于闪存中的连续扇区的写操作请求提供原子性的设备,所述设备包括:写数据模块:在页的主扇区中写数据,并将指示写数据的状态的状态位分配给页的备用扇区;写进展管理模块,根据写数据的进展状态在分配有状态位的备用扇区中覆写确认标记;有效性确定模块,基于覆写的确认标记来确定扇区的有效性,并提供连续扇区的信息。
根据本发明的另一方面,提供了一种关于闪存中的连续扇区的写操作请求提供原子性的方法,所述方法包括:在页的主扇区中写数据,并将指示写数据的状态的状态位分配给页的备用扇区;根据写数据的进展状态在分配有状态位的备用扇区中覆写确认标记;基于覆写的确认标记来确定扇区的有效性,并提供连续扇区的信息。
附图说明
通过参照附图对本发明的优选实施例的详细描述,本发明的以上和其他特点和优点将变得更清楚,其中:
图1是示出根据现有技术的闪存装置的结构的示图;
图2是示出在图1中所示的闪存中执行的一个或多个连续扇区的写操作的传统实施例的示图;
图3是示出根据现有技术的一个或多个连续扇区的写操作的处理的流程图;
图4是示出根据现有技术的在一个或多个连续扇区的写操作中检查扇区的有效性的处理的流程图;
图5是示出根据本发明示例性实施例的关于闪存中的连续扇区的写操作请求提供原子性的设备的结构的框图;
图6是示出根据本发明示例性实施例的为设备中的每一扇区分配的状态位的格式的示图;
图7是示出根据本发明示例性实施例的一个或多个连续扇区的写操作处理的流程图;
图8是示出在FTL(闪存翻译层)中管理的物理单元的单位和闪存装置的物理块之间的关系的示图;
图9是示出根据本发明示例性实施例的在小块闪存(small-block flashmemory)中的一个或多个连续扇区的写操作的示图;
图10A和图10B是示出根据本发明示例性实施例的在小块闪存中的一个或多个连续扇区的写操作的示图;
图11是示出根据本发明示例性实施例的在大块闪存(large-block flashmemory)中的一个或多个连续扇区的写操作期间发生断电的情况的示图;和
图12是示出在根据本发明示例性实施例的在大块闪存中的一个或多个扇区的写操作的示图。
具体实施方式
通过参照以下对本发明示例性实施例和附图的详细描述,可更容易地理解本发明的优点和特征及其实现方法。
然而,本发明可以以许多不同的形式被实现,并且不应该被解释为限于在此阐述的实施例。此外,提供这些示例性实施例以使本公开将是彻底的和完整的,并将本发明的构思全面地传达给本领域的技术人员,本发明将仅由权利要求限定。在整个说明书中,相同的标号表示相同的部件。
以下将参照根据本发明示例性实施例的用于关于闪存中的连续扇区的写操作请求提供原子性的方法和设备的框图或流程图来描述本发明。
应该理解,可通过计算机程序指令来实现流程图中的每一方框以及流程图中方框的组合。
这些计算机程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理设备的处理器,以产生机器,以使通过计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现在流程图的一个方框或多个方框中指定的功能的工具。
这些计算机程序指令还可被存储在计算机可用或计算机可读存储器中,所述计算机可用或计算机可读存储器可指示计算机或其他可编程数据处理设备按特定方式运行,以使计算机可用或计算机可读存储器中存储的指令产生包括指令工具的一款产品,所述指令工具实现在流程图的一个或多个方框中指定的功能。
计算机程序指令还可被加载到计算机或其他可编程数据处理设备中,以使一系列操作在计算机或其他可编程设备上被执行,以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个或多个方框中指定的功能的步骤。
此外,框图的每一方框可表示包括用于实现特定逻辑功能的一个或多个可执行指令的模块、代码段或部分代码。
还应该注意,在一些可选择的实现中,方框中提到的功能可次序颠倒地出现。
例如,连续示出的两个方框实际上可基本同时执行,或者有时可依据方框中所涉及的功能性以相反的顺序来执行这两个方框。
现在将参照附图来更全面地描述本发明,在附图中,示出了本发明的优选实施例。
图5是示出根据本发明实施例的关于闪存中的连续扇区的写操作请求提供原子性的设备的结构的示图。
根据本发明示例性实施例的关于闪存中的连续扇区的写操作请求提供原子性的设备包括:写数据模块501,在页的主扇区中写数据,并将指示数据写状态的状态位分配给页的备用扇区;写进展管理模块502,根据写数据操作的进展状态在分配有状态位的备用扇区中覆写确认(commit)标记;有效性确定模块503,基于覆写的确认标记来确定相应扇区的有效性,并提供连续扇区的信息;和控制模块504,控制各个模块。
同时,在本发明的实施例中使用的术语“模块”表示软件或硬件组件(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)),并且每一模块执行分配的功能。
然而,模块并不限于软件或硬件。
模块可被配置在可寻址存储介质中,或者可被配置以在至少一个处理器上运行。
因此,作为示例,模块包括:组件(例如,软件组件、面向对象的软件组件、类组件和任务组件)、处理器、函数、属性、过程、子程序、程序代码段、驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。
在组件和模块中提供的功能可被组合为更少的组件和模块,或者可进一步被分离成另外的组件和模块。
写数据模块501在块中的可用主扇区顺序地写数据,同时,将指示写数据操作的进展状态的位(即,状态位)分配给块中的备用扇区。
图6是示出根据本发明示例性实施例的对写数据模块501中的每一扇区分配的状态位的格式的示图。
在写数据模块501中为每一主扇区601分配的状态位可具有确认值0x00000000、未确认值0xl1110000或空闲值0x11111111,每一状态位用于指示每一主扇区601是否有效。
此外,按空闲状态、未确认状态和确认状态的顺序来改变状态位的状态。
例如,在NAND闪存中,当位状态从“1”改变为“0”时,位状态不能被再改变为“1”,直到所写的数据被擦除为止。在本发明中使用的状态位值“0x00000000(确认)”、“0xl1110000(未确认)”和“0xl1111111(空闲)”为示例性的,本发明并不限于此。
写进展管理模块502根据写数据操作的进展状态在分配有状态位的备用扇区602中覆写确认标记。
根据本发明的一个或多个连续扇区的写操作,写数据模块501通过写操作来写数据和状态位。
然而,当写操作完成时,写数据模块501不显示确认标记,写进展管理模块502检查写数据进展状态,并仅为最后写数据的扇区分配确认标记。
图7是示出根据本发明示例性实施例的一个或多个连续扇区的写操作处理的流程图。
写数据模块501将数据写入特定扇区,并显示未确认标记,以指示没有完成写数据的事实(S701)。
在S701的处理之后,写进展管理模块502确定写数据模块501是否已把将被写入的所有数据和状态位都写入相应扇区(S702)。在这种情况下,作为确定的结果,如果写数据模块501将所有数据和状态位都写入了相应扇区,则写进展管理模块502用确认标记来覆写第N个备用扇区的状态位(S703)。
作为S702处理的结果,如果剩余将被写入数据的扇区,则重复从S701开始的处理。
作为参考,在闪存中,因为物理特性执行先擦后写操作。根据该操作,当写数据模块501在扇区中执行写操作时,相应扇区所属的块的数据被擦除操作擦除,并在所述相应扇区中执行写操作。
因此,与可在扇区中执行覆写操作的硬盘相比,对相同的I/O可能需要大量时间。
此外,如果在闪存的块中执行了十万次擦除操作,则在闪存的该块中不能再执行擦除操作。
因此,擦除操作缩短了闪存的寿命。
由于该特性,如果对闪存的特定扇区执行了写操作,则在闪存中分配执行擦除操作次数少的块或可用块,并在相应块中执行写操作。
执行该功能的软件被称为闪存翻译层(以下,简称为FTL),该FTL执行用闪存的扇区号来映射文件系统的扇区号的功能。
FTL算法应该尽可能少地执行这种擦除操作,并且不应该将擦除操作集中在一个块上。
图8是示出在FTL管理的物理单元和闪存装置的物理块之间的关系的示图。
物理单元810包括预定数量的连续物理块811。在FTL中,擦除单位是物理单元810,读/写单位是扇区单元。
同时,有效性确定模块503基于写进展管理模块502覆写的确认标记来确定扇区的有效性,并提供连续扇区的信息。以下将详细描述有效性确定的参考。
同时,可将闪存划分成在一页中存在一个扇区的小块闪存和在一页中存在两个或更多个扇区的大块闪存(在当前普通闪存中,一页中存在四个扇区)。
另外,可将根据闪存软件的写算法在闪存块中写数据的方法分成首先在可用扇区中顺序写数据的方法和在闪存的中间位置处的扇区中写数据的方法。
可将本发明的基本算法应用于首先在可用扇区中顺序写数据的方法。
在本发明中,当根据连续逻辑写操作的请求通过FTL的预定映射处理写入数据的物理单元被确定时,假定通过FTL的映射处理来保证如下事实:在相应物理单元中总是存在能够满足逻辑写请求的多个空闲扇区。
图9是示出根据本发明示例性实施例的在一页中可存储一个扇区的小块闪存中的一个或多个连续扇区的写操作的示图。
假定成为逻辑扇区写请求的主体的物理单元的物理扇区状态从扇区1开始为空闲状态。
在包括扇区1至6的六个扇区901a至901f中写数据的方法是基于图7示出的流程图。
写数据模块501在扇区1至6(即,扇区901a至901f)中写数据,并显示其状态位中的未确认标记。
如果写数据被完成,则写进展管理模块502根据在状态位902中覆写确认标记的方法仅对最后执行写数据操作的扇区6(即,扇区901f)执行7次写页操作。
逻辑扇区6(即,逻辑扇区901f)的状态位902经过空闲(0x11111111)状态、未确认(0x11110000)状态和确认(0x00000000)状态的处理。
现在将参照图10至图11来详细描述有效性确定模块503的有效性确定参考。
对每一物理单元执行对已经写了数据的扇区的有效性确定。
首先,根据FTL的扇区映射方法,有效性确定模块503搜索包括已经写数据的扇区的物理单元,并对相应物理单元中的从物理扇区0到最后扇区的每一扇区检查有效性。
在这种情况下,根据有效性检查的参考,当特定扇区的状态是“空闲”时,在紧随最近显示确认标记的扇区之后的扇区和当前扇区之间的所有扇区可被确定为无效扇区。
当特定扇区的状态位指示“未确认”时,根据相应扇区之后的扇区的状态位来确定“有效”扇区或“无效”扇区。
当特定扇区的状态位指示“确认”时,在紧随最近显示确认标记的扇区之后的扇区和当前确认扇区之间的所有扇区可被确定为有效扇区。
在当前扇区的状态位既不是“确认”也不是“未确认”时,在紧随最近显示确认标记的扇区之后的扇区和当前扇区之间的所有扇区可被假定为“无效”扇区。
在图9所示的小块闪存中,在逻辑扇区1至5(即,逻辑扇区901a至901e)中不显示“确认”标记,但在逻辑扇区6(即,逻辑扇区901f)中显示“确认”标记。
因此,所有的逻辑扇区1至6(即,逻辑扇区901a至901f)都可被确定为有效扇区。
即,写数据模块501从可用主扇区顺序地写数据,当写数据完成时,写进展管理模块502显示确认标记。因此,即使在当前扇区中显示未确认标记,如果在下一页中存在显示“确认”标记的扇区,则当前扇区也可被假定为有效扇区。显示“确认”标记的扇区也是有效扇区。
然而,在这种情况下,当前扇区和直到发现显示确认标记的扇区才显示确认标记的扇区之间的扇区需要成为显示未确认标记的扇区。
图10A和图10B是示出在小块闪存中的一个或多个连续扇区的写操作期间发生断电的情况的示图。
假定通过两个连续扇区写操作请求了对逻辑扇区1和2的写操作以及对逻辑扇区3至8的写操作。
图10A示出这样一种状态:通过对连续扇区的第一写操作将数据完全写入第一逻辑扇区1001a和第二逻辑扇区1001b,并在对第三扇区1001c至第七扇区1001g执行连续扇区的写操作期间,在写数据模块501将数据写入第七扇区1001g并显示未确认标记之后发生断电。
在这种情况下,有效性确定模块503的有效性确定从具有相应数据的物理单元的第一物理扇区开始。
在第一扇区1001a中,状态位1002处于“未确认”状态,而在第二扇区1001b中,状态位1002处于“确认”状态。因此,第一扇区1001a和第二扇区1001b被确定为有效扇区。
由于第三扇区1001c至第七扇区1001g的所有状态位1002都处于“未确认”状态,所以相应扇区是“有效”还是“无效”的确定被保留。
有效性确定模块503检查直到第七扇区1001g的各扇区的状态位1002,然后检查第八扇区1001h的状态位1002。
作为检查的结果,如果第八扇区的状态位1002是“空闲”,则所有的第三扇区1001c至第七扇区1001g都被确定为“无效”扇区。
图10B示出这样一种状态:在对连续扇区的第二写操作中在写数据模块501将数据写入第八扇区1003h中并用“未确认”标记来显示其状态位1004时发生断电。
第八扇区1003h是请求连续扇区写操作的扇区之中的最后扇区。因此,如果写操作进展处于正常状态,则由写数据模块501在第八扇区1003h中写数据,通过“未确认”标记来显示其状态位1004,并通过写进展管理模块502在状态位1004中覆写“确认”标记。
然而,由于状态位1004可能根据断电的时刻而不同,所以第八扇区1003h的位状态被显示为不稳定状态。
在这种情况下,“不稳定”状态表示,由于突然断电,所以该状态位既不属于“未确认”状态,也不属于“确认”状态。
此时,由于在显示“未确认”标记0xl1110000的同时断电,所以不能由确认标记0x00000000来显示状态位1004。
有效性确定模块503的有效性确定与参照图10A所描述的有效性确定相同。
当由有效性确定模块503验证第八扇区1003h时,第八扇区1003h的状态位1004不指示“确认”状态,因此,第三扇区1003c至第八扇区1003h被确定为“无效”扇区。
图11是示出根据本发明示例性实施例的可在一页中存储四个扇区的大块闪存中的一个或多个连续扇区的写操作的示图。
对从第一逻辑扇区1101a至第十逻辑扇区1101j的连续扇区执行写操作,并对从第三十扇区1101k至第四十二扇区1101w的连续扇区执行写操作。
因此,写数据模块501在第一逻辑扇区1101a至第十逻辑扇区1101j的逻辑扇区中写数据,并显示“未确认”标记。
另外,写进展管理模块502在最后逻辑扇区(即,最后逻辑扇区1101j)的状态位中覆写“确认”标记。
然后,写数据模块501在从第三十扇区1101k至第四十二扇区1101w的逻辑扇区中写数据,并显示“未确认”标记。
另外,写进展管理模块502在最后逻辑扇区(即,第四十二逻辑扇区1101w)的状态位1102覆写“确认”标记。
同样地,由有效性确定模块503对通过两次请求连续扇区(即,第一逻辑扇区1101a至第十逻辑扇区1101j和第三十扇区1101k至第四十二扇区1101w)的写操作写入数据的扇区的有效性确定,通过与参照图9至图10B所描述的小块的情况相同的方法被确定。
图12是示出在根据本发明示例性实施例的设备中检查扇区的有效性的方法的流程图。
有效性确定模块503将有效性被确定的扇区的数量(以下,称为Temp)和物理扇区号初始化为“0”(S1201)。
在S1201的处理之后,以物理扇区号的顺序检查扇区(S1202)。
在S1202的处理之后,检查扇区的状态位是否为空闲(S1203)。
作为S1203处理的结果,如果扇区的状态位是“空闲”,则被检查的扇区被确定为无效扇区(S1204)。
作为S1203处理的结果,如果扇区的状态位不是“空闲”,则检查扇区的状态位是否为“未确认”(S1205)。
作为S1205处理的结果,如果扇区的状态位是“未确认”,则根据下一扇区的状态位来确定当前检查的扇区是有效还是无效。因此,被检查的物理扇区号和有效性被确定的扇区的数量增加1(S1206),并重复S1203的处理。
作为S1205处理的结果,如果扇区的状态位不是“未确认”,则检查扇区的状态位是否为“确认”(S1207)。
作为S1207处理的结果,如果扇区的状态位是“确认”,则到现在为止,被检查的扇区被确定为有效扇区,当前被检查的扇区的数量被初始化为0(S1208)。
作为S 1207处理的结果,如果扇区的状态位不是“确认”,则当前被检查的扇区被确定为无效扇区。
在S1208的处理之后,检查最后被检查的扇区的物理扇区号是否对应于物理单元的末尾(S1209)。在这种情况下,如果最后被检查的扇区的物理扇区号对应于物理单元的末尾,则完成扇区的有效性检查,如果最后被检查的扇区的物理扇区号不对应于物理单元的末尾,则在增加物理扇区号的同时重复S1202的处理。
尽管已经结合本发明的示例性实施例描述了本发明,但是本领域的技术人员应该清楚,在不脱离本发明的范围和精神的情况下,可对本发明的示例性实施例进行各种修改和改变。因此,应该理解,上述实施例不是为了限制的目的,而是为了全面示出的目的。
根据依据本发明的示例性实施例的关于闪存中的连续扇区的写操作请求提供原子性的设备及其提供方法,可实现以下效果。
即使在闪存的一个或多个连续扇区的写操作期间断电,也可保证请求了写操作的所有数据扇区被读或不被读的原子性,这使得系统性能的降低最小化。
Claims (16)
1.一种关于闪存中的连续扇区的写操作请求提供原子性的设备,所述设备包括:
写数据模块,在页的主扇区中写数据,并将指示写数据的状态的状态位分配给页的备用扇区;
写进展管理模块,根据写数据的进展状态在分配有状态位的备用扇区中覆写确认标记;
有效性确定模块,基于覆写的确认标记来确定连续扇区的有效性,并提供关于连续扇区的信息。
2.如权利要求1所述的设备,其中,写数据模块在可用扇区中顺序地写数据和状态位。
3.如权利要求1所述的设备,其中,写数据模块将未确认状态分配给状态位。
4.如权利要求1所述的设备,其中,有效性确定模块以物理单元为单位来确定扇区的有效性。
5.如权利要求1所述的设备,其中,如果特定扇区的状态位为空闲,则有效性确定模块将最近显示确认标记的扇区和所述特定扇区之间的扇区确定为无效扇区。
6.如权利要求1所述的设备,其中,如果特定扇区的状态位是未确认,则有效性确定模块根据所述特定扇区之后的扇区的状态位来确定所述特定扇区的有效性。
7.如权利要求6所述的设备,其中,如果所述特定扇区之后的扇区的状态位是确认,则有效性确定模块确定所述特定扇区和状态位是确认的先前扇区之间的扇区有效。
8.如权利要求6所述的设备,其中,如果所述特定扇区之后的扇区的状态位既不是确认也不是未确认,则有效性确定模块将最近显示确认标记的扇区和当前扇区之间的扇区确定为无效扇区。
9.一种关于闪存中的连续扇区的写操作请求提供原子性的方法,所述方法包括:
在页的主扇区中写数据,并将指示写数据的状态的状态位分配给页的备用扇区;
根据写数据的进展状态在分配有状态位的备用扇区中覆写确认标记;
基于覆写的确认标记来确定连续扇区的有效性,并提供关于连续扇区的信息。
10.如权利要求9所述的方法,其中,在页的主扇区中写数据并将指示写数据的状态的状态位分配给页的备用扇区的步骤中,在可用扇区中顺序地写数据和状态位。
11.如权利要求9所述的方法,其中,在页的主扇区中写数据并将指示写数据的状态的状态位分配给页的备用扇区的步骤中,将未确认状态分配给状态位。
12.如权利要求9所述的方法,其中,在基于覆写的确认标记来确定连续扇区的有效性并提供连续扇区的信息的步骤中,以物理单元为单位来确定扇区的有效性。
13.如权利要求9所述的方法,其中,在基于覆写的确认标记来确定连续扇区的有效性并提供连续扇区的信息的步骤中,如果特定扇区的状态位为空闲,则将最近显示确认标记的扇区和所述特定扇区之间的扇区确定为无效扇区。
14.如权利要求9所述的方法,其中,在基于覆写的确认标记来确定连续扇区的有效性并提供连续扇区的信息的步骤中,如果所述特定扇区的状态位是未确认,则根据所述特定扇区之后的扇区的状态位来确定所述特定扇区的有效性。
15.如权利要求14所述的方法,其中,在基于覆写的确认标记来确定连续扇区的有效性并提供连续扇区的信息的步骤中,如果所述特定扇区之后的扇区的状态位是确认,则确定所述特定扇区和状态位是确认的先前扇区之间的扇区有效。
16.如权利要求14所述的方法,其中,在基于覆写的确认标记来确定连续扇区的有效性并提供连续扇区的信息的步骤中,如果所述特定扇区之后的扇区的状态位即不是确认也不是未确认,则将最近显示确认标记的扇区和当前扇区之间的扇区确定为无效扇区。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060088723A KR100809319B1 (ko) | 2006-09-13 | 2006-09-13 | 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법 |
KR1020060088723 | 2006-09-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101145394A true CN101145394A (zh) | 2008-03-19 |
Family
ID=39169487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101540793A Pending CN101145394A (zh) | 2006-09-13 | 2007-09-13 | 关于连续扇区的写操作请求提供原子性的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8055859B2 (zh) |
KR (1) | KR100809319B1 (zh) |
CN (1) | CN101145394A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593153B (zh) * | 2009-06-17 | 2012-07-04 | 中兴通讯股份有限公司 | 一种将数据写入非易失性存储介质的方法、装置及计算机 |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN110377230A (zh) * | 2019-06-29 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种应用于固态硬盘的原子写入方法及装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4468407B2 (ja) * | 2007-05-14 | 2010-05-26 | フェリカネットワークス株式会社 | データ管理システム、管理サーバ、データ管理方法、およびプログラム |
KR100957445B1 (ko) | 2008-01-14 | 2010-05-11 | 한양대학교 산학협력단 | 효율적인 덮어쓰기를 위한 파일 시스템 및 기억 장치그리고 효율적인 덮어쓰기 방법 |
US20090271563A1 (en) * | 2008-04-28 | 2009-10-29 | Microsoft Corporation | Flash memory transactioning |
US20100169557A1 (en) * | 2008-12-31 | 2010-07-01 | John Mark Morris | Using non-volatile storage to track status changes in objects |
US8612670B2 (en) * | 2011-11-06 | 2013-12-17 | Dsp Group Ltd. | Method and system for managing flash write |
TWI605458B (zh) | 2012-04-25 | 2017-11-11 | Sony Corp | Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods |
US9875108B2 (en) | 2013-03-16 | 2018-01-23 | Intel Corporation | Shared memory interleavings for instruction atomicity violations |
KR102094475B1 (ko) | 2013-04-29 | 2020-03-27 | 삼성전자주식회사 | 멀티-트랜잭션의 아토믹 라이트 방법 |
DE102013214795A1 (de) * | 2013-07-29 | 2015-01-29 | Continental Automotive Gmbh | Tachografenanordnung und Verfahren zum Betreiben einer Tachografenanordnung |
US9965320B2 (en) | 2013-12-27 | 2018-05-08 | Intel Corporation | Processor with transactional capability and logging circuitry to report transactional operations |
US9792191B2 (en) | 2015-08-19 | 2017-10-17 | Nxp Usa, Inc. | Fast write mechanism for emulated electrically erasable (EEE) system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566314A (en) * | 1993-08-30 | 1996-10-15 | Lucent Technologies Inc. | Flash memory device employing unused cell arrays to update files |
US5860124A (en) | 1996-09-30 | 1999-01-12 | Intel Corporation | Method for performing a continuous over-write of a file in nonvolatile memory |
KR100280457B1 (ko) | 1998-03-28 | 2001-02-01 | 김영환 | 플래시 메모리의 데이터 리드 및 라이트하는 방법 |
JP2000231795A (ja) | 1999-02-08 | 2000-08-22 | Sanyo Electric Co Ltd | 半導体メモリ装置 |
FI109620B (fi) * | 1999-10-26 | 2002-09-13 | Tellabs Oy | Menetelmä ja järjestely atomaaristen päivitysten toteuttamiseksi loogista flashmuistilaitetta käyttäen |
JP4031190B2 (ja) * | 2000-09-29 | 2008-01-09 | 株式会社東芝 | メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置 |
US7240178B2 (en) * | 2001-07-25 | 2007-07-03 | Sony Corporation | Non-volatile memory and non-volatile memory data rewriting method |
US6678785B2 (en) | 2001-09-28 | 2004-01-13 | M-Systems Flash Disk Pioneers Ltd. | Flash management system using only sequential write |
JP4238514B2 (ja) | 2002-04-15 | 2009-03-18 | ソニー株式会社 | データ記憶装置 |
JP4101583B2 (ja) | 2002-08-08 | 2008-06-18 | 富士通株式会社 | 消去動作時間を短縮したフラッシュメモリ |
KR100654343B1 (ko) | 2003-07-15 | 2006-12-05 | 주식회사 레인콤 | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
US7299314B2 (en) * | 2003-12-31 | 2007-11-20 | Sandisk Corporation | Flash storage system with write/erase abort detection mechanism |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
KR100739722B1 (ko) * | 2005-08-20 | 2007-07-13 | 삼성전자주식회사 | 플래시 메모리 관리 방법 및 플래시 메모리 시스템 |
-
2006
- 2006-09-13 KR KR1020060088723A patent/KR100809319B1/ko active IP Right Grant
-
2007
- 2007-05-02 US US11/743,167 patent/US8055859B2/en active Active
- 2007-09-13 CN CNA2007101540793A patent/CN101145394A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593153B (zh) * | 2009-06-17 | 2012-07-04 | 中兴通讯股份有限公司 | 一种将数据写入非易失性存储介质的方法、装置及计算机 |
CN103514095A (zh) * | 2012-06-18 | 2014-01-15 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN103514095B (zh) * | 2012-06-18 | 2016-08-03 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
CN110377230A (zh) * | 2019-06-29 | 2019-10-25 | 苏州浪潮智能科技有限公司 | 一种应用于固态硬盘的原子写入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR100809319B1 (ko) | 2008-03-05 |
US8055859B2 (en) | 2011-11-08 |
US20080062786A1 (en) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101145394A (zh) | 关于连续扇区的写操作请求提供原子性的设备和方法 | |
US8825947B1 (en) | System and method for managing data access in non-volatile memory | |
US7877562B2 (en) | Memory controller, flash memory system, and control method of flash memory | |
EP1559016B1 (en) | Maintaining erase counts in non-volatile storage systems | |
CN101154190B (zh) | 映射信息管理设备和方法 | |
US20090070520A1 (en) | Semiconductor storage device and method of controlling semiconductor storage device | |
US9170885B2 (en) | Independent management of data and parity logical block addresses | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US20100082917A1 (en) | Solid state storage system and method of controlling solid state storage system using a multi-plane method and an interleaving method | |
US20100088461A1 (en) | Solid state storage system using global wear leveling and method of controlling the solid state storage system | |
US10871919B2 (en) | Memory system and wear-leveling method using the same | |
CN105701021A (zh) | 数据储存装置及其数据写入方法 | |
US20140181378A1 (en) | Control device, control method, and program | |
US10963160B2 (en) | Apparatus and method for checking valid data in block capable of storing large volume data in memory system | |
US20080126683A1 (en) | Memory system | |
CN111433748A (zh) | 多级寻址 | |
CN114741330A (zh) | 储存装置、快闪存储器控制器及其控制方法 | |
US20140089566A1 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
US10628301B1 (en) | System and method for optimizing write amplification of non-volatile memory storage media | |
US20190347037A1 (en) | Data storage apparatus and system information programming method therefor | |
JP2010086009A (ja) | 記憶装置およびメモリ制御方法 | |
JP2012248109A (ja) | マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法 | |
TWI514136B (zh) | 快閃記憶裝置及其資料寫入方法 | |
JP4488048B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US8990614B2 (en) | Performance of a system having non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080319 |