以区块为基础的快闪存储装置及其操作方法

文档序号:6602918阅读:314来源:国知局
专利名称:以区块为基础的快闪存储装置及其操作方法
技术领域
本发明是关于闪存技术,特别是关于以区块为基础快闪存储装置及其操作方法。
背景技术
电可擦除可编程只读存储器(EEPROM)及闪存包括将电荷储存在通道与场效晶体 管栅极之间的存储单元。所储存的电荷会影响晶体管的阈值电压,且阈值电压会根据所储 存电荷改变而可以用来感测指示数据。其中一种非常惯用的电荷储存存储单元被称为一浮 动栅极存储单元。在一浮动栅极存储单元中,其会储存电荷于通道与栅极之间的一导电材 料层中。另一种电荷储存存储单元型态被称为一电荷捕捉存储单元,其会使用一介电层来 取代浮动栅极。此处所使用的名词”编程”是指增加晶体管阈值电压的操作。此处所使用的名词” 擦除”则是指减少晶体管阈值电压的操作。此外,此处所使用的名词”写入”则是指改变晶 体管阈值电压的操作,且其用意是包含增加或减少晶体管阈值电压的操作。在一电可擦除可编程只读存储器(EEPROM)装置的存储单元可以利用一字节接着 一字节的方式进行数据读写,而与其它数据字节无关。然而,为了实现一字节接着一字节的 方式进行数据读写,此电可擦除可编程只读存储器(EEPROM)的存储密度是相对低的。闪存通常提供较电可擦除可编程只读存储器(EEPROM)更高的存储密度。在一闪 存装置的存储单元可以利用一字节接着一字节的方式进行编程。然而,因为此快闪存储单 元的组态,擦除必须以更大的区段接着区段的方式进行,其中每一个区段包括相对较大数 目的字节。因此,为了擦除一区段内的一存储单元,该区段内的所有存储单元都必须也被擦 除。换句话说,闪存提供一字节接着一字节的方式进行编程,但是并无法如同电可擦除可编 程只读存储器(EEPROM) —般提供一字节接着一字节的方式擦除或写入。电可擦除可编程只读存储器(EEPROM)及快闪存储装置通常是作为不同的应用。 一般而言,因为其较高的密度,闪存在大量数据储存应用方面是较电可擦除可编程只读存 储器(EEPROM)更为经济的。而电可擦除可编程只读存储器(EEPROM)是在需要对小量数据 进行一字节接着一字节的数据读写更为合适。许多电子装置中同时包含有电可擦除可编程只读存储器(EEPROM)及闪存,以满 足此装置中不同功能的不同存储表现需求。然而,同时使用这两种型态的存储器增加了此 装置的成本及复杂程度。因为闪存无法提供一字节接着一字节的方式擦除,写入更新数据于一区段可以利 用先执行一区段读取操作以记录此区段中的所有存储单元内容,之后执行一区段擦除操作 以擦除此区段中的所有存储单元,之后再编程更新数据至此区段的方式进行。此方法的一 个缺点是此区段中的所有存储单元需要经历一读取_擦除_编程的循环流程,即使是此区 段中的仅有某些存储单元的数据被改变。且此流程也是非常耗时的。闪存会产生一个特定的问题就是其具有有限的耐久性,此装置中的存储单元可维 持其操作性及可靠性的擦除及/或编程循环的数目是有限的。因此,重复及持续地写入单一区段,或是少数的区段,会导致某些区段在相对短的时间之后变得老化并有缺陷了。不同的”平均消耗”技术被提出以延长闪存的寿命。一种平均消耗方案是使用记 录每一个区段被擦除的次数。此计数器然后被用来调整数据被映像至个别的区段中,以平 衡其消耗。可参阅美国专利第6,000,006,5, 485,595和5,341,339号专利。虽然使用计数器可以延长快闪存储装置的寿命,然而有限的读取/写入耐久性问 题仍会限制闪存在需要较多次数编程及擦除操作的应用。另一种平均消耗方案是将更新数据写入快闪存储装置中的没有使用的实体位置, 而不是重新覆盖原本的数据位置。如此会减少快闪存储装置中的一给定写入操作时的区段 擦除操作数目。可参阅美国专利第5,845,313和6,115,785号专利。为了追踪数据的实际位置改变,可以使用可编程的映像表或是地址转译表。可编 程的映像表储存由一外部系统所指示的逻辑地址与包含有效数据的快闪存储装置实体地 址之间的映像信息。为了正确地追踪有效数据的实际位置,此可编程的映像表在操作时必 须被更新。为了确保有效数据被保持,此映像信息必须在中断电源时被保持。然而,因为此可 编程的映像地址转译表被持续地更新,储存此映像信息于闪存中会减少此装置的寿命。因 为闪存相对慢的擦除速度,如此会严重地影响使用闪存的装置的表现。此可编程的映像地 址转译表或许可以替代地储存在此装置中的另一个非易失存储器电路内。然而,也会增加 了此装置的成本及复杂程度。因此需要提供一种快闪存储装置其可以仿真如同电可擦除可编程只读存储器 (EEPROM)所提供的一字节接着一字节的方式进行数据写入,而同时也可以利用较低的成本 及复杂程度并解决耐久性问题。

发明内容
有鉴于此,本发明所提供的以区块为基础快闪存储装置的数据管理技术可以避免 在每次更新储存于此快闪存储装置中的数据时就必须进行区块擦除操作。映像至此快闪存 储装置区块中的逻辑地址具有较此区块中更小的地址数目。此区段擦除操作可以通过写入 更新数据至对应区块的可用预擦除位置的逻辑地址而不是直接覆盖旧数据而避免。其结果 是,可以在需要一区段擦除操作之前进行更多次数的写入操作。此外,此以区块为基础的快 闪存储装置,可以同时仿真如同电可擦除可编程只读存储器(EEPROM)所提供的一字节接 着一字节的方式进行数据写入。本发明亦描述一种操作一快闪存储装置的方法,该快闪存储装置包括多个区块, 每一个区块包含多个区段。该方法包含将逻辑地址映像至该多个区块中的对应区块。对该多个区块中的一特定区块,此方法亦包含将该特定区块的该多个区段中的一 第一区段标示为一具有一初始数据区域及一写入记录区域的工作区段。该初始数据区域是 使用储存此对应逻辑地址中的一数据组,而此写入记录区域是用来储存此数据组中的更新 数据。且将该特定区块的该多个区段中的一第二区段标示为一非工作区段。此非工作区段 作为一预备单元以储存对应逻辑地址群组的更新数据组,此数据组将被写入此区段的初始 数据区域。为了回应一写入命令与映像至该特定区块的逻辑地址写入更新数据,该写入更新数据包含将写入记录数据写入至该写入记录区域中的一可写位置,该写入记录数据指示该 逻辑地址及指示该更新数据。使用来自该初始数据区域及该写入记录区域的数据不时编排一更新数据组,例如 当写入记录区域是满的时候,如此写入记录区域并不会溢出。该更新数据组写入至该第二 区段中的一初始数据区域内,且标示该特定区块的第二区段为该工作区段。该第一区段然 后被擦除,且标示该第一区段为该非工作区段。该第一及该第二区段每一个包含一状态标识区域,其中该标示该第二区段为该工 作区段包含编程该第二区段的该状态标识区域中的一预定位置,且该标示该第一区段为该 非工作区段包含擦除该第一区段的该状态标识区域。此区段的标示可以通过改变状态标识区域中的数据而不是总是需要擦除此状态 标识区域而达成。举例而言,当此区段是非工作时,状态标识区域中的数据可以在二位表 示中都是” 1”或是在十六位表示中都是”F”。之后,此状态标识区域的数据可以通过编程 至此状态标识区域中的预设位置来改变,所以特定位自逻辑状态” 1” (擦除)改变至逻辑 状态” 0”(编程),而保留原本已经是逻辑状态” 0”的位。举例而言,当此非工作区段的状 态标识区域中的数据是” OxFFFFFF”时,后续操作时的编程会将状态标识区域的数据先改变 为,,OxFFFFOO,,,然后至” OxFFOOOO,,,且最后至” 0x000000 ”。因为状态标识区域是位于区段 之内,此状态标识区域然后在此区段被擦除时擦除回到” OxFFFFFF”。此技术消除了需要在 每一次改变状态标识区域的数据时就必须擦除状态标识区域。此处所描述的技术可以有效率地管理逻辑地址与包含有效数据区块的实体地址 之间的映像,而不需要经常地更新逻辑_实体地址映像信息。此处所描述的映像技术辨别对应一特定逻辑地址的区块,且标示一偏移量其指示 此初始数据区域中的一相对实体地址。在此写入记录区域并不包括此特定逻辑地址的更新 数据的情况下,当一区段被标示为工作区段时,此工作区段的偏移量用来指示初始数据区 域中的对应输入包含此特定逻辑地址的有效数据。使用此映射技术,状态标识及写入记录 区域并不需要在每一次更新此快闪存储装置中的数据后就被更新。因此,不需要于操作时 读取及更新较大的映像表,此更新信息可以保持静态稳定的。本发明亦描述一种包含数据处理器及与处理器耦接的存储器的装置。该存储器储 存可以由该数据处理器执行的指令,包括此处所描述的可以在一快闪存储阵列上执行的许 多不同的指令。本发明的目的、特征和实施例,会在下列实施方式的章节中搭配图式被描述。


本发明是由权利要求范围所界定。这些和其它目的、特征和实施例,会在下列实施 方式的章节中搭配图式被描述,其中图1显示一计算机系统的简要方块示意图,其适用于使用此处所描述技术的区块 为基础快闪存储装置的数据安排之用。图2进一步显示于一例示区块内的数据排列方式。图3显示一在逻辑地址空间中的逻辑地址与阵列中的区块之间映像的范例。图4显示实体地址与逻辑地址之间的转译的示意图。
图5为根据本发明一实施例的一个由处理器所执行储存数据组于快闪存储装置 中的一特定区块的组态流程的流程图。图6为一写入操作的流程图,以储存更新数据于一特定的逻辑地址。图7为一读取操作的流程图,以自一特定的逻辑地址读取数据。图8为一编排操作的流程图。图9是一转译图标显示于操作时改变储存在区段中的状态标识区域的数据。图10为一操作的流程图,以决定一中断操作是否己发生。图11显示根据本发明一实施例快闪存储装置中不同软件阶级之间的关系图。图12显示根据本发明一第二实施例快闪存储装置中不同软件阶级之间的关系 图。主要元件符号说明
100 计算机系统
112 总线子系统
114 处理器
116 网络界面
118 通信网路
120 快闪存储装置
122 使用者界面输入装置
125 区块
128 区段
130 使用者界面输出装置
200 初始数据区域
210 写入记录区域
230 写入记录数据
300 逻辑地址空间
310 实体地址空间
320 地址转译表
1110低阶快闪应用程序界面
1120智能快闪应用程序界面
1130使用者程序代码
1200字节读写模式区域1210 快闪存储装置存取模式区域
具体实施例方式本发明实施例搭配以下图1到图12进行详细描述。图1显示一计算机系统100的简要方块示意图,其适用于使用此处所描述技术的 区块为基础快闪存储装置120的数据安排之用。计算机系统100通常包含至少一个处理 器114其透过总线子系统112与许多外围装置进行沟通。这些外围装置可以包括快闪存储 装置120、使用者界面输入装置122、使用者界面输出装置130及一个网络界面子系统116。这些输入与输出装置可以允许使用者与计算机系统100互动。网络界面子系统116是作为 提供给与外部网络的界面,包含一个与通信网路118的界面,且透过通信网路118与其它计 算机系统中的对应界面装置耦接。通信网路118可以包含许多互连的计算机系统及通信连 接。这些通信连接可以是有线连接、光纤连接、无线连接、或是其它信息传输的机制。其中 一个实施例的通信网路118是因特网,但是在其它的实施例中通信网路118可以是任何适 用的计算机网络。使用者界面输入装置122可以包括键盘,指向装置例如是鼠标,轨迹追踪器、触控 板、或是图形平板、扫瞄器、触控屏幕、声控输入装置例如是声音辨识系统、麦克风或是其它 型态的输入装置等等。一般而言,使用此名词”输入装置”是代表希望包含所有可能用来输 入信息进入计算机系统100或是通信网路118的装置型态或是方式。使用者界面输出装置130可以包括显示次系统、打印机、传真机、或是非视觉显示 例如一声音输出装置等等。此显示次系统可以包括映像管(CRT)、平面显示装置例如液晶显 示器,一投影装置,以及其它产生视觉影像的机制等。此显示次系统也可以包括提供非视觉 显示例如声音输出装置。一般而言,使用此名词”输出装置”是代表希望包含所有可能用来 自计算机系统100或是其它机器输出信息的装置型态或是方式。快闪存储装置120储存基本的编程及数据结构,其提供此处某些实施例中所描述 的功能,包括逻辑至实体的地址映像及转译的指令,以及用来将数据安排于此快闪存储装 置120内的指令(会在以下描述)。这些软件模块通常是由处理器114执行,其可以包括随 机存取存储器(RAM)以于程序执行时储存指令或数据。在例示的实施例中,处理器114执行指令以进行此处所描述快闪存储装置120外 的许多操作。替代地,此快闪存储装置120包括一处理器或是其它型态的控制器以控制数 据管理及执行此处所描述的许多操作。举例而言,此控制器可以是使用业界所熟知的特殊 功能逻辑电路构成的状态机构。在替代的实施例中,此控制器包含通用目的处理器,其可以 应用于同一集成电路上,以执行一控制此快闪存储装置120的计算机程序。而在另一实施 例中,通用目的处理器与特殊功能逻辑电路的组合可以用来实施此控制器。总线子系统112提供一机制使计算机系统100中不同的元件及子系统可以如所需 要的彼此互相沟通。虽然图式中所显示的总线子系统112是单一总线,总线子系统112的 替代实施例可以使用多重总线。在某些实施例中,于快闪存储装置120与总线子系统112 之间的数据、地址及命令信号可以利用串行方式施加在共享的在线,例如可以使用业界所 熟知的串行外围界面。计算机系统100本身可以是许多不同型态包括一个人计算机、可携式计算机、工 作站、计算机终端、网络计算机、主系统或是其它的数据处理系统或是使用者装置。因为计 算机系统持续不断地改变,在图1中所描述的计算机系统100只是一个较佳实施例的例示 罢了。计算机系统100也可以是其它组态,且相较于图1中所示的计算机系统具有更多或 更少的元件。如图1中所示,此快闪存储装置120包括多个实体区块,其包含区块0 125-0至区 块N 125-N,以储存利用上述技术安排的数据。如同以上所描述的,此快闪存储装置120也 可以包括额外的区块以储存将逻辑与实体地址映像及转译的指令,且将数据分配于区块0 125-0 至区块 N 125-N。
指令包括自计算机系统100所指定的快闪存储装置120的逻辑地址与快闪存储装 置120区块0 125-0至区块N 125-N的实体地址之间的映像。如同以下更详细的描述,此 映射于区块0 125-0至区块N 125-N的逻辑地址相较对应于区块0 125-0至区块N 125-N 的实体地址数目具有较小数目的地址,如此在更新储存于区块0 125-0至区块N 125-N内 的数据时并不需要进行区段擦除操作。区块0 125-0至区块N 125-N每一个包括多个区段,其是可以个别地进行擦除。区 块0 125-0至区块N 125-N中的区段包括一状态标识区域储存用来指示一区段是否目前是 工作(正在工作)、非工作(被擦除)、污染或是暂时的数据。—个给定区块的工作区段是用来储存对应逻辑地址的数据。此工作区段包括一初 始数据区域储存对应逻辑地址群组的数据组。为了致能储存此数据组中的更新数据,此工 作区段也包括一写入记录区域。在一写入操作时,写入记录包括将更新数据写入写入记录 区域中可用(空)的区域。此写入记录区域的大小必须在区段擦除操作的频率及读取操作 (将在以下描述)的速度之间作取舍,且因此可以在不同的实施例中改变。如同以下更详细的描述,此在写入记录区域中的写入记录数据是利用一有组织的 方式储存,因此有效数据可以被正确地决定。每一个区块也包括一非工作区段,其作为一预备单元以不时地储存对应逻辑地址 群组的数据组,如此当写入记录区域满的时候,可以使写入记录区域不会溢出。区块1 125-1是快闪存储装置120内区块0 125-0至区块N 125-N中的代表区块。 区块1 125-1包括多个区段128a-l和128b-l,... 128c-l,其可以个别擦除。在此范例中, 区段128a-l目前是工作的区段,而区段128b-l,. . . 128c_l目前是非工作的区段。图2显示区块1 125-1内的数据排列方式。目前是工作的区段128a_l,包括一初 始数据区域200a_l储存对应逻辑地址群组的数据组。当正在写入的时候,初始数据区域 200a-l中的数据组是对应逻辑地址的数据。因此,在初始数据区域200a-l中具有逻辑地址 与对应输入数据的一一对应。其结果是,在初始数据区域200a-l中的地址数目与映像至区 块1 125-1内的逻辑地址数目至少一样大。工作区段128a_l也包括一预擦除写入记录区域210a_l。在回应写入命令以更新 一特定映像至区块1 125-1内逻辑地址的数据时,一写入记录数据230输入被写入至写入 记录区域210a-l中一个空的预擦除位置。写入记录数据230包括一第一字段(“逻辑地址字段”)指示此更新数据的一特定 逻辑地址。此写入记录数据230也包括一第二字段(“更新数据域位”)指示此更新数据。此写入记录数据230的第一字段指示初始数据区域200a_l中对应此特定逻辑地 址的地址不再有效,且由此写入记录数据230的第二字段中的更新数据所取代。在第一字段中的数据,举例而言,可以是此特定逻辑地址,初始数据区域200a_l 中对应此特定逻辑地址的实体地址输入,此工作区段偏移量(如以下描述),或是任何其它 可以被用来决定此特定逻辑地址的数据。在一写入操作,写入记录数据230的输入被写入至写入记录区域210a_l中第一个 空的位置,而其它写入记录区域210a_l中空的位置则会是跟随最近写入的写入记录数据。 其结果是,写入记录数据的输入被安排为一暂存的序列型态。通过将更新数据写入至写入记录区域210a_l,而不是利用区段擦除直接覆盖初始数据区域200a-l中区段128a-l的数据,只有储存写入记录数据230的存储单元被写入。此 外,更新数据的写入是不必利用区段擦除操作。如此结果是区段擦除操作的数目是小于写 入操作的数目,其可以有效地提供此快闪存储装置120的耐久性。因为写入记录数据被写入至写入记录区域210a_l中空的位置,最终写入记录区 域的区段128a-l会变满。因此,一更新数据组不时需要使用自初始数据区域和写入记录区 域的数据来进行编排,且作为工作与非工作区段互相调换,如此写入记录区域才不会溢出。 此处所使用的名词”不时”通常是用来代表偶尔,且其并不用来限制为规律、循环或是相等 的时间间隔。在以下所描述的编排过程,此更新数据组包含对应逻辑地址的有效数据可以使用 来自初始数据区域200a-l及目前工作区段128a-l中的写入记录区域210a_l的数据来编 排。此更新数据组然后被写入初始数据区域200b-l的区段128b-l中,且改变区段128b-l 的标识区域220中的状态标识以指示此区段128b-l现在是工作的区段。区段128a-l然后 被擦除且设置为区块1125-1中的一非工作的区段。在区块1125-1中的后续写入操作时, 此写入记录数据被写入至区段128b-l的写入记录区域210b-l。除了使用状态标识区域220以辨别在区块1 125-1中的区段128a_l和区段 128b-l的工作及非工作区段之外,此状态标识区域220也用来确保此更新数据被编排且正 确地储存在新的工作区段中。此操作会被更仔细地于图8中描述。图3显示一介于逻辑地址空间300中的逻辑地址群组325-0至325_7映像至快闪 存储装置120实体地址空间310中的区块0125-0至区块7125-7的映像范例。在此例示 中,4千字节(KB)的逻辑地址空间300,包含逻辑地址空间300 0x0000 OxOFFF,分成8个 512字节的群组325-0至325-7。这些群组325-0至325-7的逻辑地址空间300被映像至 对应的快闪存储装置120中8千字节(KB)的区块0 125-0至区块7 125-7,其实体地址包 含 0x0000 OxFFFF。因此,这些群组325-0逻辑地址0x0000 OxOlFF被映像至区块0 125_0,群组 325-1逻辑地址0x0200 0x03FF被映像至区块1 125-1,以此类推。在此范例中,每一个8千字节(KB)的区块包含两个4千字节(KB)的区段。每一 个区块0 125-0至区块7 125-7的工作区段包括一个512字节的初始数据区域用来储存所 对应的逻辑地址群组325-0至325-7的数据组。每一个区段的状态标识区域是3字节。此 工作区段的剩余3581字节是用作写入记录区域。在此范例中,2个字节是作为写入记录区 域的第一字段(“逻辑地址字段”)输入以指示此更新数据的一特定逻辑地址,而1个字节 是作为写入记录区域的第二字段(“更新数据域位”)输入以指示此更新数据。因此,在此 范例中,此写入记录区域在此工作区段变满之前可以支持1193个单一字节数据写入操作。如同之前所描述的,一给定区块的工作区段可以于操作中改变。因此,区块中的有 效数据的实体地址的根据此区段目前是工作与否,以及此写入记录区域的任何更新数据, 来决定。其结果是,操作中包含有效数据的实体地址与逻辑地址之间的转译并不是固定的。图4显示实体地址与逻辑地址之间的转译的示意图。逻辑地址是使用一地址转译表320将其映射至对应的区块。对一特定的逻辑地址 而言,此地址转译表320提供对应至逻辑地址的区块。此地址转译表320也提供工作区段 偏移量其辨识在此初始数据区域中与此特定逻辑地址所对应的相对地址。
在此例示的实施例中,工作区段偏移量是自此初始数据区域中的起始实体地址的 一相对地址。在一个如此的范例中,其中一个512字节的初始数据区域用来储存与512字 节逻辑数据组所对应的数据组,此工作区段偏移量是介于0x0000 OxOlFF的一数据值。此工作区段偏移量,当与状态标识搭配使用以辨别此工作区段,指示此初始数据 区域中与此逻辑地址所对应的输入。必须注意的是,初始数据区域中所对应的输入并不一 定包含此逻辑地址的有效数据,因为更新数据或许存在于写入记录区域内。用来决定有效 数据位置的读取操作会于图7中描述。状态标识、偏移量及写入记录区域的使用排除了在快闪存储装置120每次更新数 据或是当此区块中的工作区段被改变之后就必须更新地址转译表320的需求。因此,地址 转译表320可以保持静态,而仍能正确的追踪此有效数据。因为地址转译表320并不需要持续地更新,其可以储存于快闪存储装置120中。于 操作时,地址转译表320可以被提取至较高存取速度的存储器中,例如图1处理器的DRAM 或是SRAM。图5为根据本发明一实施例的一个由处理器114所执行储存数据组于快闪存储装 置120中的一特定区块的组态流程的流程图。如此处所示的流程图,必须明白的是许多步 骤可以被结合,平行地执行或是以不同的顺序执行而不会影响所欲达成的功效,在某些情 况下,不同步骤的重新安排仅会在一并调整某些步骤才会达成相同的功效,且在某些情况 下,不同步骤的重新安排仅会在某些条件被满足才会达成相同的功效。如此的重新安排对 本领域技术人员而言是显而易见的。在步骤510,逻辑地址被映像至快闪存储装置120中对应的区块。此映射可以通过 使用图4中的地址转译表320来进行。在步骤520,此特定区块中的一第一区段通过编程此第一区段中的状态标识区域 以设置其状态标识为工作而被标示为工作区段。此工作区段具有初始数据区域及写入记录 区域。此特定区块中的一第二区段通过设置其状态标识为非工作而被标示为非工作区段。 在此范例中,OxFFOOOO的状态标识指示一工作区段,而OxFFFFFF的状态标识指示一擦除区 段。在步骤530,对应于逻辑地址的数据组被写入初始数据区域。图6为一写入操作的流程图,其可以由处理器114执行以储存更新数据于一特定 的逻辑地址。为了响应储存更新数据的一写入命令,在步骤610,使用之前所描述的地址转译表 来决定对应于特定逻辑地址的区块。在步骤620,此对应区块中的区段的状态标识区域被读取以寻找此工作区段。在步骤630,搜寻此工作区段的写入记录区域以寻找可写位置。因为写入记录区域 的可写位置必须是在擦除状态,在此范例中会自此写入记录区域中的起始地址开始读取逻 辑地址字段以寻找第一个擦除位置。在步骤640,当此写入记录区域中找不到一个可写位置时即代表此工作区段中的 写入记录区域是满的,而此流程继续至方块660其中一更新数据组被编排。此编排操作会 在图8中被描述。当此写入记录区域中找到一个可写位置时,此流程继续至步骤650。在步骤650,一个指示逻辑地址及更新数据的写入记录数据输入被写入至此写入记录区域的可写位置。 此写入操作600最后终止于步骤670。图7为一读取操作的流程图,其可以由处理器114执行以自一特定的逻辑地址读 取数据。为了响应自一特定的逻辑地址读取数据的一读取命令,在步骤710,使用之前所描 述的地址转译表来决定对应于特定逻辑地址的区块。在步骤720,此对应区块中的区段的状态标识区域被读取以决定此工作区段。在步骤730,此工作区段的写入记录区域被搜寻以寻找此逻辑地址的输入,此输入 指示此写入记录区域包含此逻辑地址的更新数据。上述范例中的写入记录数据被写入此写入记录区域的第一个可写位置。其结果 是,此写入记录数据被安排为一暂存的序列型态。因此,在此例示的实施例中写入记录区域 中的数据自最近的写入记录数据开始读取,因为当此逻辑地址的数据被更新了许多次时, 此逻辑地址的第一笔输入则会是最新的且因此指示此逻辑地址的有效数据。因此,当找到 此逻辑地址的一输入,此操作继续至步骤740,其中此逻辑地址的数据利用此输入来读取。当一输入无法在此写入记录区域中发现时,则在初始数据区域中的对应输入包含 此特定逻辑地址的有效数据。在步骤750,与此特定逻辑地址相关的初始数据区域中的对应 输入系使用由之前所描述的地址转译表所提供的工作区段偏移量来决定。储存于对应输入 的数据则会被读取并输出。如同之前所描述的,作为工作区段与非工作区段的区段则会不时交换。图8为一编排操作800的流程图,其可以由处理器114执行。此操作可以在写入 记录区域已经充满时或是其它时候被启动。为了清晰解说以下的叙述起见,于操作800之前的工作区段被称为”区段A”,而非 工作区段被称为”区段B”。在步骤810,于操作800之前储存于”区段A”的写入记录区域及初始数据区域中 的数据被读取。包含此特定逻辑地址的有效数据的更新数据组,使用自写入记录区域及初 始数据区域所读取的数据进行编排。在步骤820,此更新数据组被写入”区段B”的初始数据区域中,且将区段B标示为 工作区段。在此例示实施例中,区段B的状态标识区域于此更新数据组被写入之前暂时改 变为(OxFFFFOO),且随后将更新数据组写入的区段B的状态标识改变为工作。仅在此更新 数据组写入之后将区段B标示为工作可以确保区段B包含有效的数据。此外,通过如此方 式来改变区段B的状态标识区域,此状态标识区域的数据可以用来指示一例如为电源消失 的中断是否发生。此操作会于图9中详细描述。在步骤830,区段A标示为污染且被擦除。在此例示实施例中,区段A的状态标识 区域的数据会在进行区段A的擦除操作之前改变为污染(0x000000)。此区段擦除操作随后 将区段A的状态标识数据改变为擦除(非工作)。在进行区段A的擦除操作之前将其标示 为污染,此状态标识区域的数据可以用来指示中断是否在擦除区段A之前发生。如同之前所描述的,区段的标示可以通过改变区段中的状态标识区域的数据而达 成,并不需要总是擦除状态标识区域。图9是一转译图标显示于操作时改变储存在区段中的状态标识区域的数据。在图9中,此状态标识区域是3个字节。如图9中所示,当一区段是非工作的,状态标识区域中的数据是”OxFFFFFF”。自非 工作改变为工作时,状态标识先改变为暂存的。在图9中,改变至暂存状态是通过编程最低 位置的字节,因此状态标识区域的数据是” OxFFFFOO”。由暂存改变至工作是通过编程中间 位置字节,因此状态标识区域的数据是” OxFFOOOO”。自工作变成非工作的改变,状态标识区域中的数据首先改变至污染。在图9中, 改变至污染状态是通过编程状态标识区域中最高位置的字节,因此数据是” 0x000000”。 因为状态标识区域是位于此区段之内,所以当此区段被擦除时此状态标识区域是擦除回 到”OxFFFFFF”。此技术消除了在每一次状态标识区域需要改变时就必须擦除一次。其结果 是,状态标识区域的数据可以被储存在区段之内而不需要分开储存。替代地,许多不同区段的状态改变可以通过编程状态标识区域中与图9所示的不 同位置而达成。图10为一操作1000的流程图,其可以由处理器114执行以决定图8中的中断操 作800是否已发生。此操作1000可以在,举例而言,当快闪存储装置120被提供电源或是 在第一个写入命令前被执行。在步骤1010,一特定区块的区段中的状态标识被读取。当一区段中的状态标识是 污染的,则一中断于操作800中的步骤830时发生。在此情况下,在步骤1020此区段进行 一区段擦除。当一区段中的状态标识是暂存的,则一中断于操作800中的步骤820时发生。在 此情况下,在步骤1030对此区块重新进行操作800。当此区块中有两个区段具有工作区段状态标识时,则一中断发生在操作800中的 步骤820与830之间。在此情况下,在方块1040,这些区段被读取以决定哪一个区段是满的 且因此确实是污染的区段,及对此污染的区段进行一区段擦除。此操作1000然后继续检查快闪存储装置120的下一个区块,直到所有的区块都被
检查完毕。图11显示根据本发明一实施例快闪存储装置120中不同软件阶级之间的关系图。 使用者程序代码1130包括逻辑以提供逻辑地址及命令以读取和写入数据至此快闪存储装 置 120。此智能快闪应用程序界面(API) 1120是一个软件模块包括逻辑以进行逻辑-实体 地址映像及转译,及逻辑以管理读取和写入至此快闪存储装置120的数据以进行此处所描 述的不同操作。此智能快闪应用程序界面(API) 1120自使用者程序代码1130转译命令并 提供指令给低阶快闪应用程序界面(API) 1110。此智能快闪应用程序界面(API) 1120也使 用地址转译表将使用者程序代码1130的逻辑地址转译成对应的实体地址,其然后提供给 低阶快闪应用程序界面(API) 1110软件模块。此低阶快闪应用程序界面(API) 1110是一个软件驱动器特别适用于与快闪存储 装置120搭配工作。此低阶快闪应用程序界面(API) 1110包括逻辑以进行实际的读取和编 程数据以及区段擦除至此快闪存储装置120以响应由智能快闪应用程序界面(API) 1120所 提供的指令及实体地址。此快闪存储装置120、低阶快闪应用程序界面(API) 1110及智能快闪应用程序界面(API) 1120以此处所描述的一字节接着一字节的方式共同仿真快闪存储装置120的读写。此快闪存储装置120以使用商业上常用的快闪存储装置来施行,例如旺宏公司的 MX25L512CM0S串行快闪。其结果是,此智能快闪应用程序界面(API) 1120提供模拟此处所 描述的一字节接着一字节的方式进行快闪存储装置120的读写的能力,而不需要重新写入 这些装置前必须先执行擦除区块动作。在图11中,此智能快闪应用程序界面(API) 1120被安排在介于使用者程序代码 1130与低阶快闪应用程序界面(API) 1110之间。图12显示根据本发明一第二实施例快闪存储装置120中不同软件阶级之间的关 系图,其中快闪存储装置120包括一字节读写模式区域1200及一快闪存储装置存取区域 1210。在图12中,此智能快闪应用程序界面(API) 1120操作快闪存储装置120中的字节 读写模式区域1200以仿真此处所描述的一字节接着一字节的方式的数据读写。此外,此低 阶快闪应用程序界面(API) 1110操作快闪存储装置存取模式区域1210以一字节接着一字 节或一页面接着一页面的方式对快闪存储装置120进行数据读取或编程,并以一区块接着 一区块的方式对快闪存储装置120进行擦除。在如此的实施例中,快闪存储装置120可以同时作为一电可擦除可编程只读存储 器(EEPROM)及一闪存。其结果是,快闪存储装置120可以取代分别的电可擦除可编程只读 存储器(EEPROM)与闪存,其降低了系统成本及复杂性。此处所描述的技术可以致能使用区块为基础的闪存于较大数目信息的处理系统 之中。作为一个范例,此处所描述的技术可以仿真单一字节数据的读写。更一般而言,此处 所描述的技术可以用来读写使用区块为基础的闪存中的其它大小数据,其中读写的数据大 小是小于区块的大小。此处所描述的技术的优点包含通过以区块为基础的闪存取代高成本低密度的电 可擦除可编程只读存储器(EEPROM),可以节省系统的成本。通过施行此处所描述的技术,此 闪存的读取/写入寿命可以被增加为超过传统区块存取算法的1000倍。虽然本发明已参照实施例来加以描述,然本发明创作并未受限于其详细描述内 容。替换方式及修改样式已于先前描述中所建议,且其它替换方式及修改样式将为本领域 技术人员所思及。特别是,所有具有实质上相同于本发明的构件结合而达成与本发明实质 上相同结果者,皆不脱离本发明的精神范畴。因此,所有此等替换方式及修改样式系意欲落 在本发明于随附权利要求范围及其均等物所界定的范畴之中。
1权利要求
一种操作一存储装置的方法,该存储装置包括多个区块,每一个区块包含多个区段,其特征在于,该方法包含将逻辑地址映像至该多个区块中的对应区块;以及对该多个区块中的一特定区块将该特定区块的该多个区段中的一第一区段标示为一具有一初始数据区域及一写入记录区域的工作区段,且将该特定区块的该多个区段中的一第二区段标示为一非工作区段;写入一数据组于该初始数据区域;以及响应一写入命令与映像至该特定区块的逻辑地址写入更新数据,该写入更新数据包含将写入记录数据写入至该写入记录区域中的一可写位置,该写入记录数据指示该逻辑地址及指示该更新数据。
2.根据权利要求1所述的方法,其特征在于,更包含使用来自该初始数据区域及该写入记录区域的数据编排一更新数据组; 写入该更新数据组至该第二区段中的一初始数据区域内,且标示该第二区段为该工作 区段;以及标示该第一区段为污染区段,且擦除该第一区段。
3.根据权利要求2所述的方法,其特征在于该第一区段及该第二区段每一个均包含一状态标识区域;该标示该第二区段为该工作区段包含编程该第二区段的该状态标识区域中的一预定 位置;以及该标示该第一区段为该非工作区段包含擦除该第一区段的该状态标识区域。
4.根据权利要求2所述的方法,其特征在于该第一区段及该第二区段每一个包含一状态标识区域; 该标示该第二区段为该工作区段包含编程该第二区段的该状态标识区域中的一第一预定位置以在写入该更新数据组之前 标示该第二区段为一暂存区段;以及编程该第二区段的该状态标识区域中的一第二预定位置以在写入该更新数据组之后 标示该第二区段为一工作区段;该标示该第一区段为该非工作区段包含编程该第一区段的该状态标识区域中的一第三预定位置以在擦除该第一区段之前标 示该第一区段为一污染区段;擦除该第一区段的该状态标识区域。
5.根据权利要求1所述的方法,其特征在于,该映射识别该区块对应至一特定逻辑地 址,且识别在一初始数据区域中的一相对实体地址的偏移量。
6.根据权利要求1所述的方法,其特征在于,该将一逻辑地址写入该更新数据包括 写入该写入记录数据至该写入记录区域中的一可写位置除非该写入记录区域是满的;当该写入记录区域为满的时,编排该特定区块的该更新数据组。
7.根据权利要求1所述的方法,其特征在于,更包含回应一读取命令自映像至该特定区块的一第二逻辑地址读取数据,该读取数据包含当该写入记录区域包括该第二逻辑地址的一输入时,自该写入记录区域中读取该第二 逻辑地址的数据;以及当该写入记录区域并不包括该第二逻辑地址的一输入的时,自该初始数据区域中的一 对应输入读取该第二逻辑地址的数据。
8.根据权利要求7所述的方法,其特征在于,该自该写入记录区域中读取该第二逻辑 地址的数据包含辨识该写入记录区域的该第二逻辑地址中的一最新的输入;以及 使用该最新的输入自该第二逻辑地址读取该数据。
9.一种装置,其特征在于,包含一数据处理器及一存储器与该数据处理器耦接,该存储器储存可以由该数据处理器执 行的指令,该些指令包括映像逻辑地址至一快闪存储阵列的多个区块中的对应区块,该多个区块中的每一个区 块包含多个区段;将一特定区块的该多个区段中的一第一区段标示为一具有一初始数据区域及一写入 记录区域的工作区段,且将该特定区块的该多个区段中的一第二区段标示为一非工作区 段;写入一数据组于该初始数据区域;以及响应一写入命令与映像至该特定区块的逻辑地址写入一更新数据,该写入更新数据包 含将写入记录数据写入至该写入记录区域中的一可写位置,该写入记录数据指示该逻辑地 址及指示该更新数据。
10.根据权利要求9所述的装置,其特征在于 标示该第二区段为该工作区段的该些指令包含编程该第二区段的一状态标识区域中的一第一预定位置以在写入该更新数据组之前 标示该第二区段为一暂存区段;以及编程该第二区段的该状态标识区域中的一第二预定位置以在写入该更新数据组之后 标示该第二区段为一工作区段;以及标示该第一区段为该非工作区段的该些指令包含编程该第一区段的该状态标识区域中的一第三预定位置以在擦除该第一区段之前标 示该第一区段为一污染区段;以及擦除该第一区段的该状态标识区域。
全文摘要
本发明公开了一种以区块为基础快闪存储装置及其操作方法,所描述的以区块为基础快闪存储装置的数据管理技术可以避免在每次更新储存于此快闪存储装置中的数据时就必须进行区块擦除操作。其结果是,可以在需要一区段擦除操作之前进行较大数目的写入操作。此外,此以区块为基础的快闪存储装置,可以同时仿真如同电可擦除可编程只读存储器(EEPROM)所提供的一字节接着一字节的方式进行数据读写。
文档编号G06F12/06GK101923516SQ20101018064
公开日2010年12月22日 申请日期2010年5月14日 优先权日2009年5月15日
发明者李祥邦, 王成渊, 董崇杰 申请人:旺宏电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1