CN101467134B - 用于对闪存类型存储器设备中的事务进行处理的方法和装置 - Google Patents

用于对闪存类型存储器设备中的事务进行处理的方法和装置 Download PDF

Info

Publication number
CN101467134B
CN101467134B CN2007800212747A CN200780021274A CN101467134B CN 101467134 B CN101467134 B CN 101467134B CN 2007800212747 A CN2007800212747 A CN 2007800212747A CN 200780021274 A CN200780021274 A CN 200780021274A CN 101467134 B CN101467134 B CN 101467134B
Authority
CN
China
Prior art keywords
storage block
load data
affairs
status information
present
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.)
Expired - Fee Related
Application number
CN2007800212747A
Other languages
English (en)
Other versions
CN101467134A (zh
Inventor
马蒂·哈利沃里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infinera Oy
Original Assignee
Tellabs Oy
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tellabs Oy filed Critical Tellabs Oy
Publication of CN101467134A publication Critical patent/CN101467134A/zh
Application granted granted Critical
Publication of CN101467134B publication Critical patent/CN101467134B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/346Cards serving only as information carrier of service
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access rights to memory zones
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及用于在闪存类型存储器设备中处理事务的方法和装置,其中该事务是包括一个或多个子操作的数据更新和/或改变操作,为了将所讨论的事务视为已全部成功完成,必须成功地执行全部所述子操作。在根据本发明的方案中,不仅将存在于闪存类型存储器设备中的存储块的特定于存储块的状态信息(131)用来管理存在于该存储块中的负载数据(141),也用来管理整个事务。因此,不需要一个独立的对事务的状态簿记,从而减少了事务中所需的读取和写入操作的数量。

Description

用于对闪存类型存储器设备中的事务进行处理的方法和装置
技术领域
本发明涉及用于对闪存类型存储器设备中的事务进行处理的方法,其中该事务是由一个或多个子操作组成的数据更新和/或改变操作,为了将所讨论的事务认为是已经整体成功完成,必须成功执行所有这些子操作。本发明也涉及用于对闪存类型存储器设备中的事务进行处理的装置。
背景技术
在信息系统的维护中使用了事务的概念,在这样的信息系统中存储在该系统中的信息片段必须在每个时刻相互都是兼容或非矛盾性的。一个可想到的示例是银行业务应用(banking application),其中给定的银行账户涉及诸如余额和账户事务的信息。假设一个示例情形,其中有关账户事务的信息已在其中记录有表示存款或取款事务的条目,但是更新账户余额信息尚未被管理。如果信息系统在该时间点陷入错误状态,即崩溃,重启程序将可能创建一种情形,在所述情形中有关该银行账户的信息集相互之间具有不一致性:余额信息和有关账户事务的信息相互不一致。如上所述的不匹配的出现可以通过下述方式规避:将与存储在该系统中的信息有关的操作作为包括在单个数据处理实体或事务中的子操作来处理,为了将所述事务认为已成功完成,必须成功地按顺序执行所有这些子操作。在没有成功执行所有的子操作的情况下,不将任何一个子操作认为已经执行。在前述示例情形中,这意味着例如新的事务条目是无效的,直到在余额信息中已经进行匹配更新并且事务条目和所更新的余额信息两个中的每个都已同时生效为止。
在本文档中,引用由一个或多个子操作构成的数据处理实体使用了事务的概念,其中为了将事务认为是已成功完成,必须成功执行所有子操作。事务通常被分成三个连续的操作:事务的开始、数据的更新以及事务的提交(commitment)。数据的更新包括改变现有数据、删除现有数据以及增加新的数据。提交是指将所更新的数据处理为有效的数据。在本文档中,执行事务来改变、删除或增加的数据是指负载数据。在事务的提交之前的有效负载数据包括与开始事务之前的状况一致的负载数据。在严重的系统故障(例如系统崩溃)之后的恢复过程中,其中所述系统故障是在事务过程中发生的,假如达到了提交过程的开始,即所有更新已被管理,则所述事务应被终止。如果不是这样的话,与该事务有关的任何一个更新都不应生效。
用来实现信息系统的硬件集通常设置有两种类型的存储器:非易失性存储器和易失性存储器。存在于非易失性存储器中的信息对于在严重的系统错误之后的恢复过程中的服务是可用的。在另一方面,在发生了严重的系统错误时存在于易失性存储器中的信息通常丢失。在本文档中讨论的情况是:通过闪存类型存储器设备实现非易失性存储器。半导体闪存电路中的典型特征是:在没有首先将整个存储块擦除之前通常不能更新存在于存储器中的一个物理存储位置中的数据。在块级的擦除之后,所擦除的存储块的所有位(bit)具有共同的值,其通常为‘1’。在这之后存储块的每个位可以被单独改变为另一个值,其通常为‘0’。此后,改变讨论的位的值的唯一方法是再次擦除整个存储块。
在本文档中,术语“闪存类型存储器设备”用来指设计有一个或多个半导体闪存电路的存储器设备、或逻辑闪存设备或适于根据半导体闪存电路的典型特征工作的LFMD设备。例如,磁盘驱动或静态RAM设备(随机存取存储器)可以被适配为与LFMD一样地工作。另外,闪存类型存储器设备可以是具有链接到存储器设备的半导体闪存电路的介质,所述存储器设备配置有其它技术,诸如磁盘驱动或静态RAM驱动。
现有技术
公开文本WO0131458“Method and arrangement for performingatomic updates using a logical flash memory device(用于使用逻辑闪存设备执行原子更新的方法和装置)”公开了一种方案,其中通过使用表示事务没有完成的特定于事务的标识符变量来实现对闪存类型存储器中的事务的处理。所述标识符变量存储在闪存类型存储器设备中,使得包含在所述识别符变量中的信息在可能的系统错误中将不会丢失。与各种事务有关的标识符变量被存储在闪存类型存储器设备的为该标识符变量保留的存储块中。此外,闪存类型存储器设备的每个存储块包含特定于存储块的有关该特定存储块的状态信息,所述闪存类型存储器设备用于容纳与事务相联系地更新的负载数据。该状态信息表达存在于所检验的存储块中的控制和负载数据的更新操作是未结束还是已结束。
当启动了新的事务时,与该特定的事务有关的标识符变量被添加到用于活动(active)事务的标识符变量的列表中。所讨论的列表已被存储在为此而保留的闪存类型存储器设备的一个或多个存储块中。当事务已经结束时,与所讨论的事务有关的标识符变量被从所述列表中删除。因此,这样的标识符变量被用来维护用于事务的状态簿记(statusbookkeeping),所述状态簿记实时地表达正在进行的事务。用于活动事务的标识符变量的列表中的每个改变需要一个写入操作和存储块的擦除。因此,每个事务要求两个写入操作和用于存储块的两个擦除,所述存储块用来存储所述事务的标识符变量。
闪存类型存储器设备中的各个存储块经受得住(survive)有限数量的写入操作。换句话说,存储块随着重复写入操作足够多的次数而磨损。当即使是存储器设备的一个存储块发生错误,通常无法避免地要更换整个存储器设备。而且,例如与半导体闪存电路相关的频繁重复的写入操作减少了空闲(free)的存储块的数目。清除半导体闪存电路中的存储块是比从存储块读出信息慢得多的过程。在需要对存在于给定的存储块中的信息作出改变的情况下,必须首先对该特定的存储块进行清除,接着写入所改变的信息。可以通过这样的方式解决所导致的速度问题:将所改变的数据写入到先前已被清除的另一个存储块中,因而在文件更新之前不需要清除之前正在使用(in service)的该存储块。然而,频繁地重复的清除和写入操作的结果是:大量的存储块当前正处于清除过程中或正等待在任何给定时刻的清除过程,这样减少了可用于服务的存储块的数量。
发明内容
本发明涉及一种期望用于执行与待存储在闪存类型存储器设备中的信息有关的事务的方法,所述方法使得能够消除或减轻存在于现有技术中的限制和缺点。本发明还涉及一种与所述方法相关联的恢复方法,所述恢复方法用于从在事务期间发生的系统错误中进行恢复。本发明进一步涉及期望用于处理与待存储在闪存类型存储器设备中的信息有关的事务的装置,所述装置使得能够消除或减轻存在于现有技术中的限制和缺点。本发明还涉及一种计算机程序,其包括装备有程序的元件,用于处理待存储在闪存类型存储器设备中的信息的事务,以使得能够消除或减轻存在于现有技术中的限制和缺点。
在本发明中已经惊奇地发现:特定于存储块的状态信息不但可以被用来管理存在于存储块中的负载数据,也可以用来管理整个事务。因此,将避免需要进行对事务的单独的状态簿记。
本发明提供获得以下益处的装置:
---因为不需要事务的单独的状态簿记,所以节约了闪存类型存储器设备的存储容量;
---因为不需要更新事务的状态簿记,所以减少了事务中所需的更新操作的次数;以及
---更新操作的减少增加了闪存类型存储器设备的使用寿命,并且降低了其功耗。
本发明的一种用于执行与待存储在闪存类型存储器设备中的信息有关的事务的方法的特征在于,所述方法包括:
---执行与所述事务有关的到所述闪存类型存储器设备的存储块的负载数据写入操作,
---设立所述存储块的特定于存储块的状态信息以表达所述事务处于提交过程;以及
---将写入在所述存储块中的负载数据处理为有效的负载数据。
本发明的一种用于从在基于闪存类型存储器设备的装置中的事务期间发生的系统错误中进行恢复的恢复方法的特征在于,所述恢复方法包括:
---读取与所述闪存类型存储器设备的存储块有关的特定于存储块的状态信息;
---确定所述特定于存储块的状态信息是否表达所述事务处于提交过程;以及
---响应于所述特定于存储块的状态信息表达了所述事务处于提交过程的状况,将存在于所述存储块中的负载数据处理为有效的负载数据。
本发明的一种用于处理与待存储在闪存类型存储器设备中的信息有关的事务的装置的特征在于,所述装置包括管理介质,所述管理介质链接到所述闪存类型存储器设备并且适于:
---执行与所述事务有关的到所述闪存类型存储器设备的存储块的负载数据写入操作;
---设立所述存储块的特定于存储块的状态信息以表达所述事务处于提交过程;
---读取所述存储块的特定于存储块的状态信息,并且确定所述特定于存储块的状态信息是否已被设立以表达所述事务处于提交过程;
以及
---响应于所述特定于存储块的状态信息已被设立以表达所述事务处于提交过程的状况,将写入在所述存储块中的负载数据处理为有效的负载数据。
本发明的一种用于处理与待存储在闪存类型存储器设备中的信息有关的事务的计算机程序的特征在于,所述计算机程序包括:
---用于指示处理单元执行与所述事务有关的到所述闪存类型存储器设备的存储块的负载数据写入操作的程序元件;
---用于指示处理单元设立所述存储块的特定于存储块的状态信息以表达所述事务处于提交过程的程序元件;
---用于指示处理单元读取所述存储块的特定于存储块的状态信息以及确定所述特定于存储块的状态信息是否已被设立以表达所述事务处于提交过程的程序元件;以及
---用于指示处理单元响应于所述特定于存储块的状态信息已被设立以表达所述事务处于提交过程的状况,将写入在所述存储块中的负载数据处理为有效的负载数据的程序元件。
本发明的各种实施例由从属权利要求中展示的内容所表征。
附图说明
现在将参考优选的示例实施例以及附图对本发明进行更详细的描述,其中:
图1示出了根据本发明的一个实施例的用于处理待存储在闪存类型存储器设备中的信息的事务的装置;
图2示出了根据本发明的一个实施例的用于处理待存储在闪存类型存储器设备中的信息的事务的装置;
图3在流程图中示出了根据本发明的一个实施例的用于执行待存储在闪存类型存储器设备中的信息的事务的方法;以及
图4在流程图中示出了根据本发明的一个实施例的用于从在基于闪存类型存储器设备的装置中的事务期间发生的系统错误恢复的恢复方法。
具体实施方式
图1示出了根据本发明的一个实施例的用于处理待存储在闪存类型存储器设备101中的信息的事务的装置。该装置包括管理介质102,其链接到所述闪存类型存储器设备101。管理介质102包括一个或多个处理器和用于实现在闪存类型存储器设备与管理介质之间的数据传送103以及在管理介质与外部设备组之间的数据传送104的接口元件。管理介质102可以进一步容纳一个或多个存储元件。闪存类型存储器设备包括存储块,在图1中示出了其中的存储块111-115。
可以在闪存类型存储器设备101的每个存储块中存储用于该特定存储块的控制数据(C)121-125。控制数据C包括优选是逻辑的存储块标识符。该系统包括维护地址表,其将每个存储块的物理地址链接到该特定存储块的逻辑存储块标识符。可以例如在管理介质102的内部便笺式存储器中或在其物理地址在所有状况下都对管理介质可用的闪存类型存储器设备的存储块中维护该地址表。负载数据(D)141-145和特定于存储块的状态信息(S)131-135可以被存储在每个存储块。
状态信息S使得能够表达:
-存在于存储块中的负载数据包括有效的负载数据,或
-存在于存储块中的负载数据是脏的,或
-存在于存储块中的负载数据是正确的,或
-存在于存储块中的负载数据是相关的,并且额外地,事务处于提交过程。
例如,银行账户的改变后的余额信息,其已被存储在闪存类型存储器设备中但是处理与其有关的账户条目的事务尚未完成,表示是正确的但是不是有效的负载数据。事务可以是未完成的,例如由于与余额信息的改变有关的账户条目尚未被存储在闪存类型存储器设备中。
管理介质102适于执行与事务有关的到闪存类型存储器设备101的存储块的负载数据D写入操作,以设立所述存储块的特定于存储块的状态信息S来表达所述事务处于提交过程,读取所述存储块的特定于存储块的状态信息S,并且确定所述特定于存储块的状态信息S是否已被设立以表达所述事务处于提交过程,以及响应于所述特定于存储块的状态信息S已被设立以表达所述事务处于提交过程的状况而将写入在所述存储块中的负载数据D处理为有效的负载数据。
首先,将参考一个简要情形来讨论根据如图1所示的本发明的实施例的系统的操作,在所述简要情形中事务仅涉及把要与该事务相关地被更新的负载数据写入到仅仅一个存储块中。假设在事务的开始时,存储块111未处于活动的服务(in active service)中,因此可用于写入操作。换句话说,存储块111在事务的开始时是空闲的。还假设在存储块控制数据121中不需要任何改变。不带有任何一般性限制,可以假设事务中的待被更新的负载数据被写入在存储块111中。通过管理介质102将负载数据141写入在存储块111中。可以将写入在存储块111中的负载数据141用于替代存在于其它某个存储块中的负载数据,或者负载数据141可以仅仅包括要添加的负载数据,在该情况下其不被用来替换存在于任何其它存储块中的负载数据。以下述方式实现向事务提交过程的转换:对于状态信息131,管理介质写入表达该事务处于提交过程的值。随后,将存在于存储块111中的负载数据141处理为有效的负载数据,其可能替代存在于任何其它存储块中的一些更旧的负载数据。这结束了该事务。将在本文档的后面对用于完成对负载数据的验证的各种选项进行讨论。
接着讨论如下情形:在将负载数据141处理为有效的负载数据之前发生了严重的系统错误。在严重的系统错误后的恢复过程中,管理介质102读取存储块111的状态信息131。在状态信息131表达事务已到达提交过程的情况下,对于存在于存储块111中的负载数据141已经被成功地更新就有足够的确定性。因而,存在于存储块111中的负载数据141被处理为有效的负载数据,其可能替代存在于任何其它存储块中的一些更旧的负载数据。在状态信息131没有指示事务已经达到提交过程的情况下,存在以下的风险,即存在于存储块111中的负载未被成功地更新。在该情况下,事务被取消,并且在写入在存储块111中的负载数据141被用于替代存在于任何其它存储块中的一些更旧的负载数据的情况下,存在于另一个存储块中的所述更旧的负载数据将其状态保持为有效的负载数据。
然后,将参考一个简要情形对如图1所示的根据本发明的实施例的系统的操作进行讨论,在该情形中事务涉及将待与该事务相关地被更新的负载数据写入到闪存类型存储器设备的多于一个的存储块中。不带有任何一般性限制,可以假设待在事务中被更新的负载数据被写入到存储块112、113和114中。假定所述存储块112、113和114在事务开始时为空闲。不带有任何一般性限制,可以假定负载数据首先被写入在存储块112中、然后写入在存储块113中、最后写入在存储块114中。还假设对于存储块的控制数据C不需要任何改变。
管理介质102将待更新的负载数据142写入到存储块112中。然后,对于状态信息132,管理介质102写入表达存在于存储块112中的负载数据142是正确的值。在存储块112中的负载数据142是正确的,但是事务还不能被转换到提交过程,因为包括在所述事务中的到存储块113和114的写入操作还没有被执行。管理介质102将待被更新的负载数据143写入到存储块113中。此后,对于状态信息133,管理介质102写入表达存在于存储块113中的负载数据143是正确的值。管理介质102将待被更新的负载数据144写入到存储块114中。在这之后,存在于所有的存储块112、113和114中的负载数据都是正确的,使得能够将该事务转换到提交过程。
管理介质102适于通过为至少一个存储块112和/或113和/或114的特定于存储块的状态信息132和/或133和/或134设置这样的值来将所讨论的事务转换到提交过程,其中所述值表达事务处于提交过程。在最后写入到存储块114的状态信息没有被设置为表达事务处于提交过程的情况下,存储块114的状态信息必须被设置为表达存在于存储块114中的负载数据144是正确的。需要注意,表达事务处于提交过程的状态信息同时也表达存储在存储块中的负载数据是正确的。
随后,将存在于每个存储块112、113和114中的负载数据142、143和144处理为有效的负载数据,所述负载数据可能替代存在于任何其它存储块中的更旧的负载数据。因此,该事务结束。该情况可以例如是如下情形:存在于存储块112中的负载数据142替代存在于存储块111中的负载数据141,存在于存储块114中的负载数据144替代存在于存储块115中的负载数据145,并且存在于存储块113中的负载数据143仅是待添加的负载数据,在该情况下其不替代存在于任何其它存储块中的负载数据。在本文档的后面将对实现对负载数据的验证的各种选项进行讨论。
以下讨论了这样的一种情形:在事务中写入的所有的负载数据142、143和144被处理为有效的负载数据之前发生了严重的系统错误。在严重的系统错误之后的恢复过程中,管理介质102读取有关闪存类型存储器设备的存储块的状态信息集。只要至少一个存储块的特定于存储块的状态信息表达事务已经达到提交过程,则提供对于以下的足够的确定性:由其状态信息表达事务处于提交过程和/或包含在所讨论的存储块中的数据是正确的这些存储块组成的存储块组包括期望在该事务中将负载数据写入到其中的所有存储块。因此,存在于所述组中的每个存储块中的负载数据被处理为有效的负载数据,其可能替代存在于任何其它存储块中的更旧的负载数据。在即使单个存储块的特定于存储块的状态信息没有表达事务已经达到提交过程的情况下,存在这样的风险,即所述存储块组没有包括期望将负载数据写入到其中的所有这些存储块。因此,系统错误已经造成了一种情况:到一些存储块中的写入根本没有被管理和/或到某个存储块的写入已经在过程中停止。在这种情况下,事务被取消,并且在写入在存储块中的一个中的负载数据已被期望来替代存在于另一个存储块中的更旧的负载数据的情形中,存在于所述另一个存储块中的所述更旧的负载数据将其状态保持为有效的负载数据。
在本文档的后面,其特定于存储块的状态信息被用来表达事务提交过程的闪存类型存储器设备的存储块将被指称为表达性存储块。在其中事务包括待更新的负载数据写入的存储块将被指称为可更新存储块。优选地,选择可更新存储块中的仅仅一个作为表达性存储块使用。
在根据本发明的一个实施例的装置中,管理介质102适于将表达性存储块选择为具有最小的物理地址的可更新存储块。此外,管理介质102适于以两个操作设立表达性存储块的特定于存储块的状态信息,即通过首先设立表达存在于表达性存储块中的负载数据是正确的状态信息,并且随后当存在于所有其它可更新存储块中的负载数据也是正确时,通过将所述状态信息设立为表达事务处于提交过程。倘若系统错误后的恢复过程包括从最小的物理地址开始以物理地址的升序次序读取存储块,则本发明的该实施例提供以下优点:找到表示事务处于提交过程的表达性存储块,提供以下的确定性:在找到表达性存储块后能够定位其中在事务中已写入数据的所有其它存储块。
在根据本发明的一个实施例的装置中,管理介质102适于将表达性存储块选择为具有最大的物理地址的可更新存储块。此外,管理介质102适于以两个操作设立表达性存储块的特定于存储块的状态信息,即通过首先设立表达存在于表达性存储块中的负载数据是正确的状态信息,并且随后当存在于所有其它可更新存储块中的负载数据也是正确时,通过将所述状态信息设立为表达事务处于提交过程。倘若系统错误后的恢复过程包括从最大的物理地址开始以物理地址的降序次序读取存储块,则本发明的该实施例提供以下优点:找到表示事务处于提交过程的表达性存储块,提供以下的有确定性:在找到表达性存储块后能够定位其中在事务中已写入数据的所有其它存储块。
在根据本发明的一个实施例的装置中,管理介质102适于将表达性存储块选择为具有最小的物理地址的可更新存储块。此外,管理介质102适于选择存储块的写入次序使得表达性存储块最后被处理。因此,在所期望的数据已被写入表达性存储块之后立即能够设立表达性存储块的特定于存储块的状态信息以表示事务处于提交过程。
在根据本发明的一个实施例的装置中,管理介质102适于将表达性存储块选择为可更新存储块,所述可更新存储块是与事务相关地在其中写入负载的最后一个。因此,在所期望的数据已被写入表达性存储块之后立即能够设立表达性存储块的特定于存储块的状态信息以指示事务处于提交过程。表达性存储块可以是除了具有最小的或最大的物理地址的可更新存储块之外的任何可更新存储块。
接着将讨论以下的示例情形,其中期望在事务中将负载数据141写入到闪存类型存储器设备101的存储块111中,替代存储在闪存类型存储器设备101的存储块112中的更旧的负载数据142。在事务启动时负载数据142构成有效的负载数据。
在根据本发明的一个实施例的装置中,存储在每个存储块中的控制数据C包含循环寿命指示器并且管理介质102适于为该循环指示器确定更新后的值,在预设规则的次序中该更新后的值遵循存在于存储块112中的循环寿命指示器的值,并且在将事务转换到提交过程之前将循环寿命指示器的所述更新后的值写入存储块111。更新所述循环寿命指示器可以例如以这样的方式进行:在事务开始时使循环寿命指示器的值增加1,并且在达到预设的最终值时,将循环寿命指示器设定为预设的初始值。因此,每个事务具有特定的循环寿命指示器值。
在根据本发明的一个实施例的装置中,管理介质102适于在将事务转换到提交过程之前,设定包含在存储块111的控制数据121中的逻辑存储块标识符以使其具有与存储块112的逻辑存储块标识符的值相同的值。通过逻辑存储块标识符,管理介质102适于确定哪些存储块包含相互匹配的较新和较旧的负载数据,诸如在本特定示例情况中的存储块111和112。
在根据本发明的一个实施例的装置中,管理介质102适于在设立表达存在于存储块中的负载数据是正确的特定于存储器区块的状态信息之前,将控制数据C写入到存储块中。因此,指示负载数据是正确的特定于存储块的状态信息也指示控制数据是正确的。
在根据本发明的一个实施例的装置中,管理介质102适于在将事务转换到提交过程之前,将能够明确地识别正在进行的事务的事务标识符写入到每个存储块的控制数据C中。因此,闪存类型存储器设备将具有同时执行多个并行事务的能力。在所述事务标识符的基础上,管理介质102适于确定在其下操作给定的存储块的事务。
在根据本发明的一个实施例的装置中,管理介质102适于将特定于存储块的状态信息S写入紧接待写入所述存储块中的信息T的存储空间。紧接所述信息T的存储空间是指所述存储块的地址空间中的区域,其在物理地址的升序中紧跟在信息T所存储的所述存储块的地址空间中的区域。这使得能够将信息T和特定于存储块的状态信息S在单个会话中前后写入,并且状态信息S的正确性充当信息T的写入是成功的证明。
在根据本发明的一个实施例的装置中,信息T是事务标识符。
在根据本发明的一个实施例的装置中,信息T表示所述存储块的首部信息。存储块首部信息通常由控制数据C组成。
在根据本发明的一个实施例的装置中,信息T表示待写入所述存储块的除了所述状态信息的所有其它信息。
在根据本发明的一个实施例的装置中,管理介质102适于通过特定于存储块的状态信息S表达下列可能的状况:
-A:存储块空闲可进行写入;
-B:存在于存储块中的负载数据是正确的;
-C:事务处于提交过程;
-D:存在于存储块中的负载数据是有效的;以及
-E:存在于存储块中的负载数据是脏的。
在根据本发明的一个实施例的装置中,状态A指示半导体闪存电路中的存储块处于以下状况:存储块的所有位具有共同的值,该共同的值通常为‘1’。存储块的每个位此后能够被改变为另一个值,该值通常是‘0’。之后,改变讨论的位的值的唯一方法是再次完全初始化整个存储块。管理介质102适于将处于状态E的存储块进行初始化操作,由此上述存储块前进到状态A。
在根据本发明的一个实施例的装置中,管理介质102适于通过改变表示所述特定于存储块的状态信息的位向量中的仅仅一个位的值,实现下列状态转换的任何一个:从状态A到状态B,从状态B到状态C,从状态C到状态D以及从状态D到状态E。因此,例如,从状态B(存储块中的负载数据是正确的)到状态C(事务处于提交过程)的转换是原子的,使得状态转换要么全部发生要么根本不发生。状态转换的部分发生,例如作为系统错误的结果,是不可能的,因为单个位的值要么改变要么不改变。
例如通过以下的表示状态信息的位向量可以展示状况A、B、C、D和E:
A:1111(存储块空闲可进行写入)
B:0111(存储块中的负载数据是正确的)
C:0011(事务处于提交过程)
D:0001(存储块中的负载数据是有效的)
E:***0(存储块中的负载数据是脏的)
其中‘*’是允许为‘0’或‘1’的通配符。
从状态A到状态D的状态转换不是原子的。例如因为系统错误,所期望的从状态A到状态D的状态转换可能只被部分地执行,使得从1改变为0的唯一的位是从状态信息中左起第二个。这意味着发生了从状态B到状态C的有缺陷的状态转换。然而,只要在恢复过程中应用的状况是如下所述这就没有问题:至少一个存储块的状态信息必须表达事务处于提交过程。结果,以下状况,即在所述状况中两个存储块的状态信息表达事务处于提交过程,并不造成问题。
上述状态信息的位向量表示也使得从状态A-D中的任何一个到状态E的状态转换能够是原子的。
在根据本发明的一个实施例的装置中,管理介质102适于在事务的处理中将闪存类型存储器设备101的存储块用作为用于瞬态信息的记录存储器。为了说明该实施例的操作,调查了下述示例状况:负载数据141在事务中需被写入到存储块111,替代存储在存储块112中的更旧的负载数据141。在事务启动时负载数据142构成有效的负载数据。在负载数据141已被写入在存储块111中后,出现以下状况:所述负载数据必须被改变。不带有任何一般性限制,可以假设存储块113空闲可进行写入。管理介质102适于将存储块111的状态信息设定为表达存在于存储块111中的负载数据是脏的,以将由负载数据143所表示的改变后的负载数据141写入到存储块113中,以及设立存储块113的状态信息以表达存在于存储块113中的负载数据是正确的。
以下讨论在示例状况中的负载数据的验证,在所述示例状况中,负载数据141已被写入到闪存类型存储器设备101中的存储块111中,替代存储在闪存类型存储器设备101的存储块112中的更旧的负载数据142。在事务启动时负载数据142构成有效的负载数据。
在根据本发明的一个实施例的装置中,管理介质102适于在第一操作中设立存储块112的特定于存储块的状态信息以表达存在于存储块112中的更旧的负载数据142是脏的,并且在第二操作中设立存储块111的特定于存储块的状态信息以表达存在于存储块111中的负载数据141是有效的,其中所述第一操作在所述第二操作之前。
现在考虑以下状况:在第一操作之后且在第二操作之前发生了严重的系统错误。在该情况下,在系统错误后的恢复过程从存储块112的负载数据142是脏的并且存储块111的负载数据141是正确的状态开始。因此,在恢复过程中,事务继续进行,就如同写入在存储块111中的负载数据141全部都是待添加的负载数据,而不替换存在于任何其它的存储块中的负载数据。由于根据存储块112的状态信息,存在于存储块112中的负载数据142是脏的,所以在恢复过程中负载数据142被忽视。
在根据本发明的一个实施例的装置中,管理介质102适于在第一操作中设立存储块111的特定于存储块的状态信息以表达存在于存储块111中的负载数据是有效的,以及在第二操作中设立存储块112的特定于存储块的状态信息以表达存在于存储块112中的负载数据是脏的,其中所述第一操作在搜索第二操作之前。现在考虑以下状况:在第一操作之后且在第二操作之前发生了严重的系统错误。在该情况下,在系统错误之后的恢复过程从存储块111的负载数据141已经是有效的而存储块112的负载数据142也是有效的状态开始。为了解决这样的冲突情况,在根据本发明的本实施例的装置中,管理介质102适于读取在存储块111中的循环寿命指示器的值,以读取存储块112中的循环寿命指示器的值,响应于以下状况设立存储块112的状态信息132以表达负载数据142是脏的:存储块111的循环寿命指示器具有在预设规则的次序中紧接存储块112中的循环寿命指示器的值的值,以及响应于以下状况:存储块112的循环寿命指示器具有在预设规则的次序中紧接存储块111中的循环寿命指示器的值的值,设立存储块111的状态信息131以表达负载数据141是脏的。
在根据本发明的一个实施例的装置中,管理介质102包括至少一个可编程处理器。管理介质102适于通过所述处理器的可读计算机程序实现上述操作,所述可读计算机程序包含诸如用于指示所述处理器执行上述操作的子程序、函数和数据结构的程序元件。
在根据本发明的一个实施例的装置中,管理介质102包括至少一个专用集成电路(ASIC)。管理介质102适于通过在所述专用集成电路的逻辑端口、内部存储元件和时序设备之间的互相连接来实现上述操作。
图2示出了根据本发明的一个实施例的用于处理与待存储到闪存类型存储器设备201中的信息有关的事务的装置。该装置包括管理介质202,其被链接到所述闪存类型存储器设备201。管理介质202适于执行与所述事务有关的到所述闪存类型存储器设备的存储块中的负载数据写入操作,设立所述存储块的特定于存储块的状态信息以表达所述事务处于提交过程中,读取所述存储块的特定于存储块的状态信息以及确定所述特定于存储块的状态信息是否已被设立以表达所述事务处于提交过程,以及响应于所述特定于存储块的状态信息已被设立以表达所述事务处于提交过程的状态,将写入在所述第一存储块中的负载数据处理为有效的负载数据。该装置包括缓存存储器介质203,其适于存储与所述事务有关的信息。管理介质202适于从所述缓存存储器介质203读取该信息,而在所述事务中期望将该信息写入闪存类型存储器设备201中。
在根据本发明的一个实施例的装置中,管理介质202适于执行在缓存存储器介质203中的并行事务,由此在闪存类型存储器设备201中只需运行一个事务。可以在缓存存储器介质203中以与在闪存类型存储器设备中一样的方式执行事务。可以以与在闪存类型存储器设备中使用的特定于存储块的状态信息相一致的方式向缓存存储器介质提供特定于存储区域的状态变量。缓存存储器的存储区域是指缓存存储器中的存储空间的部分,将存储在其中的信息作为单个实体以与存储在闪存类型存储器设备的给定存储块中的信息相一致的方式来管理。
在根据本发明的一个实施例的装置中,缓存存储器是动态RAM存储器(随机存取存储器)。
图3在流程图中示出了根据本发明的一个实施例的一种用于执行与待存储在闪存类型存储器设备中的信息有关的事务的方法。操作301包括执行与所述事务有关的到闪存类型存储器设备中的存储块中的负载数据写入操作。倘若所述存储块不是要写入的最后存储块,则过程移动到操作302,在该操作中设立所述存储块的特定于存储块的状态信息S以表达所述存储块的负载数据是正确的(CORRECT)。该过程从操作302返回到操作301,在操作301处将负载数据写入到待被处理的下一个存储块中。在该存储块是要被写入的最后存储块的情况下,该过程移动到操作303,在该操作处设立了包含在该事务中被写入的负载数据的至少一个存储块的状态信息S以表达所述事务处于提交过程(COMMIT)。这样的存储块作为表达性存储块发挥功能。操作304包括设立存储块的状态信息S,所述存储块的状态信息S表达负载数据是正确的(S=CORRECT),以表达负载数据是有效的(VALID)负载数据,以及设立包含待被替换(若存在)的负载数据的存储块的状态信息S_rep以表达待被替换的所述负载数据是脏的(DIRTY)。操作305包括设立存储块的状态信息S,存储块的该状态信息S表达事务处于提交过程(S=COMMIT),以表达负载数据是有效的(VALID)负载数据,以及设立包含待被替换(若存在)的负载数据的存储块的状态信息S_rep以表达待被替换的所述负载数据是脏的(DIRTY)。
优选地,包含在事务中写入的负载数据的仅一个存储块状态信息S被设立为表达所述事务处于提交过程(COMMIT)。
在根据本发明的一个实施例的方法中,在与所述事务相关地将负载数据写入在其中的所述闪存类型存储器设备的这些存储块中,所述表达性存储块是具有最小的物理地址的存储块。
在根据本发明的一个实施例的方法中,在与所述事务相关地将负载数据写入在其中的所述闪存类型存储器设备的这些存储块中,所述表达性存储块是具有最大的物理地址的存储块。
在根据本发明的一个实施例的方法中,在与所述事务相关地将负载数据写入在其中的所述闪存类型存储器设备的这些存储块中,所述表达性存储块是与所述事务相关地在其中写入负载数据的最后存储块。
在表达性存储块不是要写入的最后存储块的情况下,在设立表达性存储块的状态信息以表达事务处于提交过程(COMMIT)之前,设立最后写入的存储块的状态信息以表达负载数据是正确的(CORRECT)。因此,以两个操作来设立表达性存储块的状态信息:首先设立所述特定于存储块的状态信息以表达存在于表达性存储块中的负载数据是正确的(CORRECT),并且随后设立所述特定于存储块的状态信息以表达事务处于提交过程(COMMIT)。
在根据本发明的一个实施例的方法中,在操作301中存储块的物理地址被存储在便笺式存储器中,并且操作303的开头包括从所存储的存储块的物理地址之中选择最小(或最大)的物理地址。
在根据本发明的一个实施例的方法中,在事务中写入负载数据的存储块还被写入识别所述事务的识别数据。因此,能够在闪存类型存储器设备中同时执行多个并行事务。可以基于所述识别数据来确定以下事务:给定的存储块在该事务下被操作。
在根据本发明的一个实施例的方法中,在已经设立所述存储块的状态信息来表达存在于所述存储块中的负载数据是有效(VALID)之后,存在于存储块中并识别事务的识别数据被设为0。对于以下事实的认知:当状态信息表达负载数据是有效时识别事务的识别数据应该为0,可以被用来检测故障。
在根据本发明的一个实施例的方法中,其中将写入在存储块M中的负载数据处理为有效的负载数据的操作304包括以下子操作:
-Q1:设立存储块N的特定于存储块的状态信息S_rep,其包含待被写入在存储块M中的负载数据所替代的负载数据,以表达存在于存储块N中的负载数据是脏的(DIRTY),之后
-Q2:设立存储块M的特定于存储块的状态信息S以表达存在于存储块M中的负载数据是有效的(VALID)。
在根据本发明的一个实施例的方法中,操作305包括相应的子操作Q1和Q2。
在根据本发明的一个实施例的方法中,方法包括在操作301中将循环寿命指示器写入存储块M中,所述循环寿命指示器表达将在正在进行的事务中写入存储块M中的负载数据比在较早的事务中写入存储块N中的负载数据更为新近。所述循环寿命指示器可以例如以如下方式被更新:在事务启动时将循环寿命指示器的值增加1,并且在循环寿命指示器达到预设最终值时,将其设为预定的初始值。因此,每个事务具有特定的循环寿命指示器值。
在根据本发明的一个实施例的方法中,其中将写入在所述存储块M中的负载数据处理为有效的负载数据的操作304包括以下子操作:
-P1:设立存储块M的特定于存储块的状态信息S以表达存在于存储块M中的负载数据是有效的(VALID),之后
-P2:设立存储块N的特定于存储块的状态信息S_rep,其包含待被写入在存储块M中的负载数据所替代的负载数据,以表达存在于存储块N中的负载数据是脏的(DIRTY)。
在根据本发明的一个实施例的方法中,操作305包括相应的子操作P1和P2。
在根据本发明的一个实施例的方法中,该方法包括将特定于存储块的状态信息S写入紧接待写入所述存储块中的信息T的存储空间。紧接所述信息T的存储空间是指所述存储块的地址空间中的区域,其在物理地址的升序次序中紧跟在信息T所存储的所述存储块的地址空间中的该区域。这使得能够将信息T和特定于存储块的状态信息S在单个会话中前后写入,并且状态信息S的正确性充当信息T的写入是成功的证明。
在根据本发明的一个实施例的方法中,信息T是在正在进行的事务中挑选出的识别数据。
在根据本发明的一个实施例的方法中,信息T表示所述存储块的首部信息。存储块的首部信息通常由待存储在存储块中的控制数据C组成。
在根据本发明的一个实施例的方法中,信息T表示待写入所述存储块中的除了所述状态信息之外的所有其它信息。
在根据本发明的一个实施例的方法中,特定于存储块的状态信息S表达下列状况中的一个:
-FREE(空闲):存储块空闲可进行写入;
-CORRECT(正确):存储块中的负载数据是正确的;
-COMMIT(提交):事务处于提交过程;
-VALID(有效):存储块中的负载数据是有效的;以及
-DIRTY(脏):存储块中的负载数据是脏的。
在根据本发明的一个实施例的方法中,通过改变表示所述特定于存储块的状态信息的位向量中的仅仅一个位的值,实现下列状态转换的任何一个:从状态FREE到状态CORRECT,从状态CORRECT到状态COMMIT,从状态COMMIT到状态VALID,从状态VALID到状态DIRTY。
图4在流程图中示出了根据本发明的一个实施例的一种用于从在基于闪存类型存储器设备的装置中的事务期间发生的系统错误中恢复的恢复方法。操作401包括读取与所述闪存类型存储器设备的存储块有关的特定于存储块的状态信息S。决策操作402包括检测所述特定于存储块的状态信息S是否表达所述事务处于提交过程(S=COMMIT)。如果不是这样,过程则在操作401中进行到读取下一个存储块的状态信息S。在特定于存储块的状态信息S表达所述事务处于提交过程(COMMIT)的情况下,过程移到操作403。操作403包括设立存储块的状态信息S,所述存储块的状态信息S表达负载数据是正确的(S=CORRECT)以表达负载数据是有效(VALID)的负载数据,以及设立包含待被替换的负载数据(若存在)的存储块的状态信息S_rep,以表达所述待被替换的负载数据是脏的(DIRTY)。操作404包括设立存储块的状态信息S,所述存储块的状态信息S表达事务处于提交过程(S=COMMIT)以表达负载数据是有效(VALID)的负载数据,以及设立包含待被替换的负载数据(若存在)的存储块的状态信息S_rep以表达所述待被替代的负载数据是脏的(DIRTY)。
现在考察一个示例情形,在该情形中存储块M的状态信息表达负载数据是有效的(VALID)并且存储块N的状态信息也表达负载数据是有效的(VALID)。期望将存在于一个存储块M或N中的负载数据来替代存在于另一个存储块N或M中的负载数据,但是,因为系统错误,包含待被替代的负载数据的存储块的状态信息尚未被设立以表达负载数据是脏的(DIRTY)。
根据本发明的一个实施例的恢复方法包括:
-从存储块M读取循环寿命指示器值;
-从存储块N读取循环寿命指示器值;
-响应于存储块M的循环寿命指示器具有在预设规则的次序中紧接存储块N的循环寿命指示器值的值的情况,设立存储块N的状态信息以表达存在于存储块N中的负载数据是脏的(DIRTY);以及
-响应于存储块N的循环寿命指示器具有在预设规则的次序中紧接存储块M的循环寿命指示器值的值的情况,设立存储块M的状态信息以表达存在于存储块M中的负载数据是脏的(DIRTY)。
根据本发明的一个实施例的用于处理与待存储在闪存类型存储器设备中的信息相关的事务的计算机程序包括如下的程序元件:
-用于指示处理单元执行与所述事务有关的到所述闪存类型存储器设备的存储块的负载数据写入操作的程序元件;
-用于指示处理单元设立所述存储块的特定于存储块的状态信息以表达所述事务处于提交过程的程序元件;
-用于指示处理单元读取所述存储块的特定于存储块的状态信息以及确定所述特定于存储块的状态信息是否已被设立以表达所述事务处于提交过程的程序元件;以及
-用于指示处理单元响应于所述特定于存储块的状态信息已被设立以表达所述事务处于提交过程的状况将写入在所述存储块中的负载数据处理为有效的负载数据的程序元件。
所述程序元件可以是例如子程序或函数。所述处理单元可以是例如包括在如图1所示的管理介质102中的处理器。
根据本发明的一个实施例的计算机程序存储在处理单元的可读记录介质中,例如存储在光盘(致密盘)上。
对于本领域的技术人员显而易见的是,本发明及其实施例不限于上述示例实施例,本发明及其实施例在独立权利要求的范围内可以进行多个改变。

Claims (32)

1.一种用于执行与待存储在闪存类型存储器设备中的信息有关的事务的方法,其特征在于,所述方法包括:
-执行(301)到所述闪存类型存储器设备的第一存储块的负载数据写入操作,所述写入操作与所述事务有关;
-设立(303)所述第一存储块的特定于存储块的状态信息以表达所述事务处于提交过程;以及
-将写入在所述第一存储块中的所述负载数据处理(305)为有效的负载数据。
2.如权利要求1所述的方法,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述第一存储块是具有最小物理地址的存储块。
3.如权利要求1所述的方法,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述第一存储块是具有最大物理地址的存储块。
4.如权利要求2或3所述的方法,其特征在于,以两个操作设立所述特定于存储块的状态信息:首先设立(302)所述特定于存储块的状态信息以表达存在于所述第一存储块中的所述负载数据是正确的;并且随后设立(303)所述特定于存储块的状态信息以表达所述事务处于提交过程。
5.如权利要求1所述的方法,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述第一存储块是与所述事务相关地在其中最后写入负载数据的存储块。
6.如权利要求1所述的方法,其特征在于,在所述第一存储块中写入识别所述事务的识别数据。
7.如权利要求1所述的方法,其特征在于,在所述第一存储块中写入循环寿命指示器,所述循环寿命指示器表达存在于所述第一存储块中的所述负载数据比存在于所述闪存类型存储器设备的第二存储块中的负载数据更为新近。
8.如权利要求7所述的方法,其特征在于,将写入在所述第一存储块中的所述负载数据处理为有效的负载数据的所述操作(305)包括以下子操作:
-设立所述第一存储块的所述特定于存储块的状态信息以表达存在于所述第一存储块中的所述负载数据是有效的,随后
-设立所述第二存储块的所述特定于存储块的状态信息以表达存在于所述第二存储块中的所述负载数据是脏的。
9.如权利要求1所述的方法,其特征在于,将写入在所述第一存储块中的所述负载数据处理为有效的负载数据的所述操作(305)包括以下子操作:
-设立所述闪存类型存储器设备的第二存储块的特定于存储块的状态信息以表达存在于所述第二存储块中的所述负载数据是脏的,随后
-设立所述第一存储块的所述特定于存储块的状态信息以表达存在于所述第一存储块中的所述负载数据是有效的。
10.如权利要求1所述的方法,其特征在于,所述特定于存储块的状态信息被写入在所述第一存储块中的紧接其它信息的存储空间,所述其它信息不同于所述特定于存储块的状态信息且存在于所述第一存储块中。
11.如权利要求1所述的方法,其特征在于,所述特定于存储块的状态信息被写入在所述第一存储块中的紧接存在于所述第一存储块中的首部信息的存储空间。
12.如权利要求6所述的方法,其特征在于,所述特定于存储块的状态信息被写入在所述第一存储块中的紧接识别所述事务的识别数据的存储空间。
13.如权利要求1所述的方法,其特征在于,所述特定于存储块的状态信息表达以下状况中的一个:
-A:所述第一存储块空闲可进行写入;
-B:存在于所述第一存储块中的负载数据是正确的;
-C:所述事务处于提交过程;
-D:存在于所述第一存储块中的负载数据是有效的;以及
-E:存在于所述第一存储块中的负载数据是脏的。
14.如权利要求13所述的方法,其特征在于,通过改变表示所述特定于存储块的状态信息的位向量中的仅仅一个位的值,实现下列状态转换的任何一个:从状态A到状态B,从状态B到状态C,从状态C到状态D以及从状态D到状态E。
15.一种用于从在基于闪存类型存储器设备的装置中的事务期间发生的系统错误中进行恢复的恢复方法,其特征在于,所述恢复方法包括:
-读取(401)与所述闪存类型存储器设备的第一存储块有关的特定于存储块的状态信息;
-确定(402)所述特定于存储块的状态信息是否表达所述事务处于提交过程;以及
-响应于所述特定于存储块的状态信息表达所述事务处于提交过程的状况,将存在于所述第一存储块中的负载数据处理(404)为有效的负载数据。
16.如权利要求15所述的恢复方法,其特征在于,所述恢复方法包括:
-读取(401)在所述第一存储块中的循环寿命指示器的值;
-读取(401)在所述闪存类型存储器设备的第二存储块中的循环寿命指示器的值;
-响应于所述第二存储块的所述循环寿命指示器具有在预设规则的次序中紧接所述第一存储块中的所述循环寿命指示器的值的值的状况,设立所述第一存储块的所述状态信息以表达存在于所述第一存储块中的所述负载数据是脏的;以及
-响应于所述第一存储块的所述循环寿命指示器具有在预设规则的次序中紧接所述第二存储块中的所述循环寿命指示器的值的值的状况,设立所述第二存储块的所述状态信息以表达存在于所述第二存储块中的所述负载数据是脏的。
17.一种用于处理与待存储在闪存类型存储器设备中的信息有关的事务的装置,其特征在于,所述装置包括管理介质(102),所述管理介质链接到所述闪存类型存储器设备并且适于:
-执行到所述闪存类型存储器设备的第一存储块(111)的负载数据(141)写入操作,所述写入操作与所述事务有关;
-设立所述第一存储块(111)的特定于存储块的状态信息(131)以表达所述事务处于提交过程;
-读取所述第一存储块(111)的特定于存储块的状态信息(131),并且确定所述特定于存储块的状态信息是否已被设立以表达所述事务处于提交过程;以及
-响应于所述特定于存储块的状态信息(131)已被设立以表达所述事务处于提交过程的状况,将写入在所述第一存储块中的所述负载数据(141)处理为有效的负载数据。
18.如权利要求17所述的装置,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述管理介质(102)适于选择所述第一存储块(111)为具有最小的物理地址的存储块。
19.如权利要求17所述的装置,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述管理介质(102)适于选择所述第一存储块(111)为具有最大的物理地址的存储块。
20.如权利要求18或19所述的装置,其特征在于,所述管理介质(102)适于在第一操作中设立所述特定于存储块的状态信息(131)以表达存在于所述第一存储块(111)中的负载数据(141)是有效的,并且在第二操作中设立所述特定于存储块的状态信息(131)以表达所述事务处于提交过程,其中所述第一操作在所述第二操作之前。
21.如权利要求17所述的装置,其特征在于,在与所述事务相关地在其中写入负载数据的所述闪存类型存储器设备的存储块中,所述管理介质(102)适于选择所述第一存储块(111)为与所述事务相关地在其中最后写入负载数据的存储块。
22.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于将识别所述事务的识别数据写入所述第一存储块(111)中。
23.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于确定这样的值,其中该值在根据预设规则的次序中紧接存在于所述闪存类型存储器设备的第二存储块(112)中的循环寿命指示器的值,以及将所述按次序紧接的值写入所述第一存储块(111)中。
24.如权利要求23所述的装置,其特征在于,所述管理介质(102)适于在第一操作中设立所述第一存储块(111)的所述特定于存储块的状态信息(131)以表达存在于所述第一存储块中的负载数据(141)是有效的,并且在第二操作中设立所述第二存储块(112)的特定于存储块的状态信息(132)以表达存在于所述第二存储块中的负载数据(142)是脏的,其中所述第一操作在所述第二操作之前。
25.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于在第一操作中设立所述闪存类型存储器设备的第二存储块(112)的特定于存储块的状态信息(132)以表达存在于所述第二存储块(112)中的负载数据(142)是脏的,并且在第二操作中设立所述第一存储块(111)的所述特定于存储块的状态信息(131)以表达存在于所述第一存储块中的负载数据(141)是有效的,其中所述第一操作在所述第二操作之前。
26.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于将所述第一存储块(111)中的所述特定于存储块的状态信息(131)写入紧接其它信息的存储空间,所述其它信息不同于所述特定于存储块的状态信息且存在于所述第一存储块中。
27.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于将所述第一存储块(111)中的所述特定于存储块的状态信息(131)写入紧接存在于所述第一存储块中的首部信息的存储空间。
28.如权利要求22所述的装置,其特征在于,所述管理介质(102)适于将所述第一存储块(111)中的所述特定于存储块的状态信息(131)写入紧接识别所述事务的识别数据的存储空间。
29.如权利要求17所述的装置,其特征在于,所述管理介质(102)适于通过所述特定于存储块的状态信息(131)表达下列的可能状况:
-A:所述第一存储块空闲可进行写入;
-B:存在于所述第一存储块中的负载数据是正确的;
-C:所述事务处于提交过程;
-D:存在于所述第一存储块中的负载数据是有效的;以及
-E:存在于所述第一存储块中的负载数据是脏的。
30.如权利要求29所述的装置,其特征在于,所述管理介质(102)适于通过改变表示所述特定于存储块的状态信息的位向量中的仅仅一个位的值,实现下列状态转换的任何一个:从状态A到状态B,从状态B到状态C,从状态C到状态D以及从状态D到状态E。
31.如权利要求23所述的装置,其特征在于,所述管理介质(102)适于:
-读取在所述第一存储块(111)中的循环寿命指示器的值;
-读取在所述第二存储块(112)中的循环寿命指示器的值;
-响应于所述第一存储块(111)的所述循环寿命指示器具有在预设规则的次序中紧接所述第二存储块中的所述循环寿命指示器的值的值的状况,设立所述第二存储块的状态信息(132)以表达存在于所述第二存储块中的负载数据(142)是脏的;以及
-响应于所述第二存储块(112)的所述循环寿命指示器具有在所述预设规则的次序中紧接所述第一存储块(111)中的循环寿命指示器的值的值的状况,设立所述第一存储块的状态信息(131)以表达存在于所述第一存储块中的负载数据(141)是脏的。
32.如权利要求17所述的装置,其特征在于,所述装置包括缓存存储器介质(203),其适于存储与所述事务有关的数据,并且所述管理介质适于从所述缓存存储器介质读取所述数据以在所述事务中将所述数据写入所述闪存类型存储器设备。
CN2007800212747A 2006-06-08 2007-06-07 用于对闪存类型存储器设备中的事务进行处理的方法和装置 Expired - Fee Related CN101467134B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI20060571A FI120220B (fi) 2006-06-08 2006-06-08 Menetelmä ja järjestely transaktioiden käsittelemiseksi flash-tyyppisessä muistivälineessä
FI20060571 2006-06-08
PCT/FI2007/000162 WO2007141375A1 (en) 2006-06-08 2007-06-07 Method and arrangement for processing transactions in a flash type memory device

Publications (2)

Publication Number Publication Date
CN101467134A CN101467134A (zh) 2009-06-24
CN101467134B true CN101467134B (zh) 2011-03-30

Family

ID=36651400

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800212747A Expired - Fee Related CN101467134B (zh) 2006-06-08 2007-06-07 用于对闪存类型存储器设备中的事务进行处理的方法和装置

Country Status (5)

Country Link
US (1) US9495286B2 (zh)
EP (1) EP2024840A4 (zh)
CN (1) CN101467134B (zh)
FI (1) FI120220B (zh)
WO (1) WO2007141375A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101401198B1 (ko) * 2008-05-29 2014-05-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 교체가능한 프린터 구성요소
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9158670B1 (en) 2011-06-30 2015-10-13 Western Digital Technologies, Inc. System and method for dynamically adjusting garbage collection policies in solid-state memory
KR20170089069A (ko) * 2016-01-25 2017-08-03 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR20180128588A (ko) * 2017-05-24 2018-12-04 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US11061751B2 (en) 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller
US11080210B2 (en) * 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
CN112925615A (zh) * 2019-12-06 2021-06-08 烽火通信科技股份有限公司 一种进程恢复方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1510924A1 (en) * 2003-08-27 2005-03-02 ARM Limited Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
KR100330164B1 (ko) * 1999-04-27 2002-03-28 윤종용 무효 블록들을 가지는 복수의 플래시 메모리들을 동시에 프로그램하는 방법
FI109620B (fi) * 1999-10-26 2002-09-13 Tellabs Oy Menetelmä ja järjestely atomaaristen päivitysten toteuttamiseksi loogista flashmuistilaitetta käyttäen
US6668336B2 (en) * 2001-11-08 2003-12-23 M-Systems Flash Disk Pioneers Ltd. Ruggedized block device driver
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7139199B2 (en) 2004-06-28 2006-11-21 Intel Corporation Flash memory file system with transacted operations
JP4653747B2 (ja) * 2004-07-23 2011-03-16 スパンション エルエルシー コントローラ、データ記憶システム、データ書き換え方法及びコンピュータプログラムプロダクト
KR100622113B1 (ko) 2006-03-03 2006-09-18 주식회사 퓨전소프트 데이터베이스 시스템을 위한 플래쉬 메모리 저장 시스템 및그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1510924A1 (en) * 2003-08-27 2005-03-02 ARM Limited Apparatus and method for handling transactions with writes and reads to EEPROM or Flash memories

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2000-99405A 2000.04.07

Also Published As

Publication number Publication date
WO2007141375A1 (en) 2007-12-13
FI120220B (fi) 2009-07-31
EP2024840A4 (en) 2016-11-23
FI20060571A (fi) 2007-12-09
CN101467134A (zh) 2009-06-24
US9495286B2 (en) 2016-11-15
FI20060571A0 (fi) 2006-06-08
EP2024840A1 (en) 2009-02-18
US20090313501A1 (en) 2009-12-17

Similar Documents

Publication Publication Date Title
CN101467134B (zh) 用于对闪存类型存储器设备中的事务进行处理的方法和装置
CN100557580C (zh) 用于快闪存储器的记入后直写式高速缓存
US5386554A (en) Method and apparatus for reducing data locking time by removing a lock when journal data is written into a main memory journal queue
CN108319543A (zh) 一种计算机日志数据的异步处理方法及其介质、系统
JP2003513357A (ja) 論理フラッシュメモリ装置を用いて原子的更新を実行する方法および装置
CN101515276A (zh) 一种文件数据写操作的方法、文件数据恢复方法及系统
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
CN104516959A (zh) 一种管理数据库日志的方法及装置
CN115145697B (zh) 数据库事务的处理方法、装置及电子设备
JPH01500377A (ja) 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法
US11960748B2 (en) SSD supporting read-only mode after PLP backup failure
CN103389942A (zh) 控制装置、存储装置及存储控制方法
US6604183B2 (en) Log storage management in a data processing system using key-pointing
JP4189342B2 (ja) ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法
CN111737331A (zh) 一种数据库与对象存储的事务一致性处理方法及系统
KR101419428B1 (ko) 모바일 환경에 구축된 데이터베이스에 대한 트랜잭션 로깅 및 회복 장치 및 그 방법
CN110377230A (zh) 一种应用于固态硬盘的原子写入方法及装置
CN109144423A (zh) 存储器坏块管理方法、装置及闪速存储器
CN103389943A (zh) 控制装置、存储装置及存储控制方法
JPH0816881B2 (ja) データベース更新方法
CN101571831A (zh) 存储器子系统及管理方法、包含该子系统的计算机系统
CN117075822B (zh) 数据读写方法、装置、设备及存储介质
US11977490B2 (en) Method for executing a transaction
CN111177091B (zh) 基于xfs文件系统录像预分配存储方法、系统及存储介质
CN113778330B (zh) 一种基于Flash存储器的事务处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110330

Termination date: 20190607