CN101853138B - 闪存写入方法及使用此方法的储存系统与控制器 - Google Patents
闪存写入方法及使用此方法的储存系统与控制器 Download PDFInfo
- Publication number
- CN101853138B CN101853138B CN2009101292627A CN200910129262A CN101853138B CN 101853138 B CN101853138 B CN 101853138B CN 2009101292627 A CN2009101292627 A CN 2009101292627A CN 200910129262 A CN200910129262 A CN 200910129262A CN 101853138 B CN101853138 B CN 101853138B
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- logical unit
- corresponding logical
- flash 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
- 230000015654 memory Effects 0.000 title claims abstract description 301
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000005055 memory storage Effects 0.000 claims abstract description 77
- 239000007787 solid Substances 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 2
- 230000008676 import Effects 0.000 claims 1
- 238000007726 management method Methods 0.000 description 86
- 238000013507 mapping Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 7
- 230000000739 chaotic effect Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000001052 transient effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种闪存写入方法,适用于在闪存储存系统中写入数据。此闪存写入方法包括:计数闪存储存系统中每一逻辑单元的大数据使用计数与小数据使用计数,以记录每一逻辑单元已被写入长度较大数据的次数及已被写入长度较小数据的次数,并且当主机系统在逻辑单元中写入一新数据时,依据所写入新数据的逻辑单元的大数据使用计数与小数据使用计数来使用不同模式在闪存储存系统中写入此新数据,由此提升数据写入的速度并延长闪存储存系统的寿命。
Description
技术领域
本发明涉及一种闪存写入方法,特别涉及一种能够依据闪存中每一逻辑区块先前储存数据的状态,以不同方式写入数据的闪存写入方法,及使用此方法来写入数据的闪存储存系统与闪存控制器。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对数字内容的储存需求也急速增加。由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合使用者随身携带作为数字档案传递与交换的储存媒体。
传统上,闪存储存装置的用途主要是储存使用者数据。例如,使用者会使用随身碟来储存数字档案,或者使用记忆卡作为数字相机、MP3播放器等可携式装置的储存媒体,此类闪存储存装置主要储存较大量的数据(例如,数据量为64Kb或128Kb以上的数据)。
随着闪存技术的发展,使得闪存储存装置的储存容量越来越大且成本越来越低,因此许多计算机制造商开始以闪存作为储存媒体的固态硬盘(Solid State Drive,SSD)用作为计算机系统的主要磁盘。由计算机系统的操作系统会经常性地在主要磁盘中反复地写入与更新数据量较小的数据(例如,数据量为4Kb或8Kb以下的数据)。
基于闪存的物理特性,在闪存单元仅能进行单向的程序化(即,闪存单元中的位仅能从1程序化为0),因此在闪存单元中写入数据时必须先将闪存单元中先前所储存的数据抹除后方能重新写入新数据。
在闪存储存系统的设计上,一般来说,闪存储存系统的闪存实体区块分组为多个实体单元,该实体单元中具有至少一闪存单元(flashmemory cell),每一单元由至少一晶体管组成,如MOSFET或其它晶体管或逻辑电路,各单元可储存至少一个位,并且这些实体单元分组为数据区(data area)与备用区(spare area)。归类为数据区的实体单元中储存由写入指令所写入的有效数据,而备用区中的实体单元是用以在执行写入指令时替换数据区中的实体单元。具体来说,当闪存储存系统接受到主机的写入指令而欲对数据区的实体单元进行写入时,闪存储存系统从备用区中提取一实体单元并且将在数据区中欲写入的实体单元中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体单元并且将已写入新数据的实体单元关联为数据区,并且将原本数据区的实体单元进行抹除并关联为备用区。为了能够让主机能够顺利地存取以轮替方式储存数据的实体单元,闪存储存系统提供逻辑单元给主机。也就是说,闪存储存系统采用在逻辑地址-实体地址映射表(logicaladdress-physical addres mapping table)中记录与更新逻辑单元与数据区的实体单元之间的映射关系,来反映实体单元的轮替,所以主机仅需要针对所提供逻辑单元进行写入,而闪存储存系统依据逻辑地址-实体地址映射表对所映射的实体单元进行读取或写入数据。
基于上述闪存储存系统的运作架构下,在将闪存储存系统应用作为计算机系统的主硬盘时,由于计算机系统经常性地反复地写入与更新数据量较小的数据,所以闪存储存系统的实体单元被频繁地进行抹除动作来以上述轮替方式写入计算机系统所更新的数据。然而,组成实体单元的实体区块的抹除次数是有限的(例如实体区块抹除一万次后就会损坏),因此在频繁地抹除实体单元时将大幅缩短闪存储存装置的寿命。
发明内容
本发明提供一种数据写入方法,其能够提升数据写入的效率并延长闪存储存系统的寿命。
本发明提供一种闪存控制器,其能够提升数据写入的效率并延长闪存储存系统的寿命。
本发明提供一种闪存储存系统,其能够提升数据写入的效率并延长其使用寿命。
本发明提出一种闪存写入方法,实施于一闪存储存系统中,其中此闪存储存系统包括多个逻辑单元及的多个实体单元并且每一逻辑单元映射至少一个实体单元,其中实体单元具有至少一闪存单元(flash memory cell)。此闪存写入方法包括计数每一逻辑单元的一大数据使用计数与一小数据使用计数,其中这些大数据使用计数分别地记录每一逻辑单元已被写入一大数据的次数,且这些小数据使用计数分别地记录每一逻辑单元已被写入一小数据的次数,其中大数据的数据长度是大于一数据量阈值,且小数据的数据长度不大于此数据量阈值。此方法还包括当主机系统在逻辑单元之中的一对应逻辑单元中写入一新数据时,依据对应逻辑单元的大数据使用计数与小数据使用计数所对应的一数据,写入流程在闪存储存系统中写入此新数据。
在本发明的一实施例中,上述计数每一逻辑单元的大数据使用计数与小数据使用计数的步骤包括:判断上述新数据的数据长度是否大于上述数据量阈值,其中当新数据的数据长度大于数据量阈值时,则计数对应逻辑单元的大数据使用计数,反之,则计数对应逻辑单元的小数据使用计数。
在本发明的一实施例中,上述闪存储存系统更包括多个I/O总线,并且上述依据对应逻辑单元的大数据使用计数与小数据使用计数,在此对应逻辑单元所映射的实体单元中写入新数据的步骤包括:判断对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数, 其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则经至少两个I/O总线来将新数据写入至对应逻辑单元所映射的实体单元中,以及当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则经其中一个I/O总线来将新数据写入至对应逻辑单元所映射的实体单元中。
在本发明的一实施例中,当上述对应逻辑单元存有一有效旧数据时,上述依据对应逻辑单元的大数据使用计数与小数据使用计数在对应逻辑单闪存储存系统中写入新数据的步骤包括:判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则复制此有效旧数据并且此有效旧数据与上述新数据写入至该对应逻辑单元映射的所述实体单元中。
在本发明的一实施例中,当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则暂时地仅将新数据写入至对应逻辑单元所映射的实体单元中。
在本发明的一实施例中,当上述闪存储存系统更包括一暂存内存时,依据对应逻辑单元的大数据使用计数与小数据使用计数在闪存储存系统中写入新数据的步骤包括:依据对应逻辑单元的大数据使用计数与小数据使用计数计算对应逻辑单元的一使用次数值并且判断对应逻辑单元的使用次数值是否大于一使用次数阈值,其中当对应逻辑单元的使用次数值大于使用次数阈值时,则将新数据暂时地储存在暂存内存中。此外,当对应逻辑单元的使用次数值不大于使用次数阈值,则将新数据写入至对应逻辑单元所映射的实体单元。
在本发明的一实施例中,上述闪存写入方法更包括将实体单元的其中一部份分组为闪存暂存区与备用区,其中将新数据写入至对应逻辑单元所映射的实体单元的步骤包括:判断对应逻辑单元的大数据使用计数 是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则将新数据写入至备用区的实体单元中,反之,当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则将新数据暂时地写入至闪存暂存区的实体单元中。
在本发明的一实施例中,上述闪存写入方法更包括判断对应逻辑单元所映射的实体单元是否处于一母子瞬时关系,其中倘若对应逻辑单元所映射的实体单元处于母子瞬时关系时,则以对应逻辑单元所映射的实体单元所使用的I/O总线来将新数据写入至对应逻辑单元所映射的实体单元中。
本发明提出一种闪存控制器,适用于控制一闪存储存系统,其中此闪存储存系统包括多个逻辑单元及多个实体单元,并且每一逻辑单元映射至少一个实体单元。此闪存控制器包括微处理器单元、用以连接主机系统的主机接口单元、用以连接实体单元的闪存接口单元以及内存管理单元。内存管理单元用以计数每一逻辑单元的一大数据使用计数与一小数据使用计数,以及当主机系统在逻辑单元之中的一对应逻辑单元中写入一新数据时,依据对应逻辑单元的大数据使用计数与小数据使用计数所对应的一数据写入流程来在闪存储存系统中写入此新数据,其中大数据使用计数分别地记录每一逻辑单元已被写入一大数据的次数,且小数据使用计数分别地记录每一逻辑单元已被写入一小数据的次数,其中大数据的数据长度大于一数据量阈值,且小数据的数据长度不大于该数据量阈值。
在本发明的一实施例中,上述内存管理单元判断上述新数据的数据长度是否大于数据量阈值,其中当新数据的数据长度大于数据量阈值时,则计数对应逻辑单元的大数据使用计数,反之,则计数对应逻辑单元的小数据使用计数。
在本发明的一实施例中,上述闪存储存系统更包括多个I/O总线,并且上述内存管理单元判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则内存管理单元经至少两个I/O总线来将上述新数据写入至对应逻辑单元所映射的所述实体单元中,并且当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则内存管理单元经其中一个I/O总线来将新数据写入至对应逻辑单元所映射的所述实体单元中。
在本发明的一实施例中,当上述对应逻辑单元存有一有效旧数据时,内存管理单元判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则内存管理单元复制有效旧数据并且有效旧数据与新数据写入至映射对应逻辑单元的所述实体单元中。
在本发明的一实施例中,当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则内存管理单元仅将新数据写入至对应逻辑单元所映射的实体单元中。
在本发明的一实施例中,上述闪存储存系统更包括一暂存内存,并且上述内存管理单元依据对应逻辑单元的大数据使用计数与小数据使用计数计算对应逻辑单元的一使用次数值,判断对应逻辑单元的使用次数值是否大于一使用次数阈值,以及判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的使用次数值大于使用次数阈值时,则内存管理单元将上述新数据暂时地储存在暂存内存中。
在本发明的一实施例中,上述内存管理单元将实体单元的其中一部份分组为闪存暂存区与备用区,其中当对应逻辑单元的使用次数值不大于使用次数阈值,并且对应逻辑单元的大数据使用计数大于对应逻辑单 元的小数据使用计数时,则内存管理单元将新数据写入至备用区的实体单元中,其中当对应逻辑单元的使用次数值不大于该使用次数阈值,并且对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则内存管理单元将上述新数据暂时地写入至闪存暂存区的实体单元中。
在本发明的一实施例中,上述内存管理单元判断对应逻辑单元所映射的实体单元是否处于一母子瞬时关系,其中倘若对应逻辑单元所映射的实体单元处于母子瞬时关系时,则内存管理单元以对应逻辑单元所映射的实体单元所使用的I/O总线来将新数据写入至对应逻辑单元所映射的实体单元中。
本发明提出一种闪存储存系统,包括提供给一主机系统存取的多个逻辑单元、多个实体单元以及一闪存控制器,其中每一逻辑单元映射至少一个实体单元。闪存控制器用以计数每一逻辑单元的一大数据使用计数与一小数据使用计数,以及当主机系统在逻辑单元中的一对应逻辑单元中写入一新数据时,依据对应逻辑单元的大数据使用计数与小数据使用计数所对应一数据,写入流程在闪存储存系统中写入此新数据,其中大数据使用计数分别地记录每一逻辑单元已被写入一大数据的次数,且小数据使用计数分别地记录每一逻辑单元已被写入一小数据的次数,其中大数据的数据长度是大于一数据量阈值,且小数据的数据长度不大于该数据量阈值。
在本发明的一实施例中,上述闪存控制器判断上述新数据的数据长度是否大于数据量阈值,其中当新数据的数据长度大于数据量阈值时,则计数对应逻辑单元的大数据使用计数,反之,则计数对应逻辑单元的小数据使用计数。
在本发明的一实施例中,上述闪存储存系统更包括多个I/O总线,并且上述闪存控制器判断对应逻辑单元的大数据使用计数是否大于对 应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则闪存控制器经至少两个I/O总线来将上述新数据写入至对应逻辑单元所映射的所述实体单元中,并且当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则闪存控制器经其中一个I/O总线来将新数据写入至对应逻辑单元所映射的所述实体单元中。
在本发明的一实施例中,当上述对应逻辑单元存有一有效旧数据时,闪存控制器判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则闪存控制器复制有效旧数据,并且将有效旧数据与新数据写入至映射对应逻辑单元的所述实体单元中。
在本发明的一实施例中,当对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则内存闪存控制器仅将新数据写入至对应逻辑单元所映射的实体单元中。
在本发明的一实施例中,上述闪存储存系统更包括一暂存内存,并且上述闪存控制器依据对应逻辑单元的大数据使用计数与小数据使用计数计算对应逻辑单元的一使用次数值,判断对应逻辑单元的使用次数值是否大于一使用次数阈值,以及判断对应逻辑单元的大数据使用计数是否大于对应逻辑单元的小数据使用计数,其中当对应逻辑单元的使用次数值大于使用次数阈值时,则闪存控制器将上述新数据暂时地储存在暂存内存中。
在本发明的一实施例中,上述闪存控制器将实体单元的其中一部份分组为一闪存暂存区与一备用区,其中当对应逻辑单元的使用次数值不大于使用次数阈值,并且对应逻辑单元的大数据使用计数大于对应逻辑单元的小数据使用计数时,则闪存控制器将新数据写入至备用区的实体单元中,其中当对应逻辑单元的使用次数值不大于该使用次数阈值,并 且对应逻辑单元的大数据使用计数不大于对应逻辑单元的小数据使用计数时,则闪存控制器将上述新数据暂时地写入至闪存暂存区的实体单元中。
在本发明的一实施例中,上述闪存控制器判断对应逻辑单元所映射的实体单元是否处于一母子瞬时关系,其中倘若对应逻辑单元所映射的实体单元处于母子瞬时关系时,则闪存控制器以对应逻辑单元所映射的实体单元所使用的I/O总线来将新数据写入至对应逻辑单元所映射的实体单元中。
基于上述,本发明经记录每一逻辑单元的使用大数据使用计数与小数据使用计数,来获得每一逻辑单元的使用状态,并且依此结果以不同的数据写入模式来写入数据,由此提升数据写入的效率并延长闪存储存系统的寿命。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是根据本发明一范例实施例所绘示的闪存储存系统的概要方块图。
图2是根据本发明一范例实施例所绘示的闪存芯片的概要方块图。
图3A-3C是根据本发明一范例实施例绘示闪存芯片的运作示意图。
图4是根据本发明一范例实施例绘示写入数据的流程图。
图5是根据本发明另一范例实施例绘示写入数据的流程图。
图6A与图6B是绘示闪存芯片的另一范例运作示意图。
图7是根据本发明另一范例实施例绘示写入数据的流程图。
图8是根据本发明另一实施例绘示闪存储存系统的概要方块图。
图9是根据本发明另一范例实施例绘示写入数据的流程图。
附图中主要组件符号说明
100、100’:闪存储存系统
110:闪存控制器
110a:微处理器单元
110b:内存管理单元
110c:闪存接口单元
110d:主机接口单元
120a、120b、120c、120d:I/O总线
130:闪存芯片
200:主机系统
210、220、230、240:闪存模块
310-(0)、310-(1)、310-(P)、310-(P+1)、310-(P+2)、310-(N):实体单元
320:储存区
330:取代区
302:系统区
304:数据区
306:备用区
350-1~350-M:逻辑单元
402:暂存内存
404:闪存暂存区
S401、S403、S405、S407、S409、S411、S413、S415、S417:数据写入步骤
S601、S603、S605、S607、S609、S611、S613、S615、S617:数据写入步骤
S801、S803、S805、S807、S809、S811、S813、S815、S817、S819、S821、S823:数据写入步骤
具体实施方式
图1是根据本发明一范例实施例所绘示的闪存储存系统的概要方块图。
请参照图1,通常闪存储存系统100与主机200一起使用,以使主机系统200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本实施例中,闪存储存系统100为固态硬盘(Solid StateDrive,SSD)。但必须了解的是,在本发明另一实施例中闪存储存系统100亦可以是记忆卡或随身碟。
闪存储存系统100包括闪存控制器110与闪存芯片130。
闪存控制器110执行以硬件型式或韧体形式设置的多个逻辑开关或控制指令,并且根据主机系统200的指令在闪存芯片130中进行数据的写入、读取与抹除等。闪存控制器110包括微处理器单元110a、内存管理单元110b、闪存接口单元110c与主机接口单元110d。
微处理器单元110a用以与内存管理单元110b、闪存接口单元110c与主机接口单元110d等协同合作以进行闪存储存系统100的各种运作。
内存管理单元110b是接至微处理器单元110a,并且用以执行根据本范例实施例的区块管理机制与数据写入机制。
在本实施例中,内存管理单元110b是以一韧体形式设置在控制器110中。例如,将包括多个程序指令的内存管理模块110b烧录至一程序内存(例如,只读存储器(Read Only Memory,ROM))中,并且将此程序内存嵌入在闪存控制器110中,当闪存储存系统100运作时,内存管理单元110b的多个机器指令由微处理器单元110a来执行,以完成根据本发明实施例的区块管理机制与数据写入机制。
在本发明另一实施例中,内存管理单元110b的控制指令亦可以软件型式储存于闪存芯片130的特定区域(例如,闪存中专用于存放系统数据的系统区)中。同样的,当闪存储存系统100运作时,内存管理单元110b的多个控制指令由微处理器单元110a来执行。此外,在本发明另一实施例中,内存管理单元110b亦可以一硬件形式设置在闪存控制器110中。
闪存接口单元110c是接至微处理器单元110a并且用以存取闪存芯片130。也就是说,欲写入至闪存芯片130的数据经由闪存接口单元110c转换为闪存芯片130所能接受的格式。
主机接口单元110d是接至微处理器单元110a,并且用以接收与识别主机系统200所传送的指令。也就是说,主机系统200所传送的指令与数据通过主机接口单元110d来传送至微处理器单元110a。在本范例实施例中,主机接口单元110d为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元110d亦可以是USB接口、IEEE 1394接口、PCI Express接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
此外,虽未绘示于本实施例,但闪存控制器110亦更包括缓冲存储器、错误校正单元与电源管理单元等用于控制闪存的一般功能模块。
闪存芯片130是电性连接至闪存控制器110并且用以储存数据。在本实施中闪存芯片130为多层闪存单元(Multi Level Cell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层闪存单元(Single Level Cell,SLC)NAND闪存亦可应用于本发明。
图2是根据本发明一范例实施例所绘示的闪存芯片的概要方块图。
在本范例实施例中,闪存芯片130包括第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240,其中第一闪存模块210具有实体区块210-(0)~210-(N);第二闪存模块220具有实体区 块220-(0)~220-(N);第三闪存模块230具有实体区块230-(0)~230-(N);以及第四闪存模块240具有实体区块240-(0)~240-(N)。值得一提的是,虽然本发明范例实施例是以包括4个闪存模块的闪存芯片130来描述,然而本发明不限于此。
在闪存芯片130中实体区块为抹除最小单位。亦即,每一实体区块含有最小数目之一并被抹除的闪存单元。每一实体区块通常分割为数个页面(page)。由于在本范例实施例中,闪存芯片130为MLC NAND闪存,因此,页面为程序化(program)的最小单元。换言之,页面为写入数据或读取数据的最小单元。每一页面通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误检查与校正码(Error Checking and Correcting Code,ECCCode)。在本范例实施例中,闪存芯片130的每一页面具有8个扇区的容量,一般来说,一个扇区为512字节,因此一个页面为4千字节(kilobyte,KB)。
但要特别说明的是,在其它闪存设计中(例如,SLC NAND闪存),最小的程序化单位亦可为一个扇区,也就是说,以一个扇区为程序化的最小单元。
一般而言,实体区块可由任意数目的页面所组成,例如64个页面、128个页面、256个页面等。此外,第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240的实体区块通常也可被分组为多个区域(zone),以每一独立的区域来管理实体区块210-(0)~210-(N)、实体区块220-(0)~220-(N)、实体区块230-(0)~230-(N)与实体区块240-(0)~240-(N)可增加操作执行的平行程度且简化管理的复杂度。
此外,闪存控制器110将第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240中的实体区块逻辑地分组为多个 实体单元来管理,例如1个实体单元包括4个实体区块。由于以实体单元进行管理时,闪存控制器110是以较大的单位(即实体单元)来维护逻辑地址-实体地址映射表,因此可节省所需使用缓冲存储器110d的空间。在本发明范例实施例中,实体区块210-(0)~210-(N)、实体区块220-(0)~220-(N)、实体区块230-(0)~230-(N)与实体区块240-(0)~240-(N)被逻辑地分组为实体单元310-(0)~310-(N)。
值得一提的是,在本发明范例实施例中,由于闪存芯片130具有第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240,闪存控制器110与闪存芯片130之间配置有多条I/O总线(即,I/O总线120a、120b、120c与120d),其中I/O总线120a、120b、120c与120d分别地是作为闪存控制器110a与第一闪存模块210、第二闪存模块220、第三闪存模块230和第四闪存模块240之间的通讯。特别是,在本范例实施中,由于闪存储存系统100具有4条I/O总线,因此闪存控制器110依据不同的状态选择地执行单通道存取(single channelaccess)或多通道存取(multi channel access),来对闪存芯片130进行存取。例如,当闪存控制器110a执行多通道存取对第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240执行写入或读取时可提升其存取速度。必须了解的是,尽管在本范例实施例中,闪存储存系统100是配置4条I/O总线,然而,本发明不限于此,I/O总线的数目可参考所配置的闪存模块的数目或使用者设计上的需求来配置。
图3A~3C是根据本发明一范例实施例绘示闪存芯片的运作示意图。
必须了解的是,在此描述闪存实体区块的运作时,以“提取”、“搬移”、“交换”、“替换”、“轮替”、“分组”等词来操作闪存芯片130的实体区块是逻辑上的概念。也就是说,闪存实体区块的实际位置并未更动,而是逻辑上对闪存的实体区块进行操作。值得一提的是, 下述的运作是由闪存控制器110的内存管理单元110b所完成。
请参照图3A,内存管理单元110b将闪存芯片130的实体区块逻辑地分组为实体单元310-(0)~310-(N),并且将实体单元310-(0)~310-(N)逻辑地分组为储存区320以及取代区330。
在储存区320中的实体单元310-(0)~310-(P)是闪存储存系统100中正常被使用的实体单元。也就是说,内存管理单元110b将数据写入至属于储存区320的实体单元。
在取代区330中的实体单元310-(P+1)~310-(N)是替代实体单元。例如,闪存芯片130于出厂时预留4%的实体区块作为更换使用。也就是说,当储存区320中的实体区块损毁时,预留于取代区330中的实体区块可用以取代损坏的实体区块(即,坏的实体区块(bad block))。因此,倘若取代区330中仍存有可用的实体区块时,若发生实体区块损毁,内存管理模块110b从取代区330中提取可用的实体区块来更换损毁的实体区块。倘若取代区330中无可用的实体区块且发生实体区块损毁时,闪存储存系统100将被宣告无法再使用。
请参照图3B,内存管理单元110b将储存区320的实体区块逻辑地分组成一系统区302、一数据区304与一备用区306。
系统区302包括实体单元310-(0)~实体单元310-(S),数据区304包括实体单元310-(S+1)~实体单元310-(S+M),并且备用区306包括实体单元310-(S+M+1)~实体单元310-(P)。在本实施例中,上述S、M与P为正整数,其代表各区配置的实体区块数量,其可由闪存储存系统的制造商依据所使用的闪存模块的容量而设定。
逻辑上属于系统区302中的实体单元用以记录系统数据,此系统数据包括关于闪存芯片的制造商与型号、每一闪存模块的区域数、每一区域的实体区块数、每一实体区块的页面数等。
逻辑上属于数据区304中的实体单元用以储存使用者的数据,一般 来说就是主机系统200所存取的逻辑单元所映射的实体单元。也就是说,数据区304的实体单元为储存有效数据的单元。
逻辑上属于备用区306中的实体单元是用以轮替数据区304中的实体单元,因此在备用区306中的实体单元为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区304与备用区306的实体单元以轮替方式来储存主机系统200对闪存储存系统100写入的数据。
如前所述,闪存芯片130的实体单元以轮替方式提供主机系统200来储存数据,因此内存管理单元110b提供逻辑单元350-1~350-M给主机系统200以进行数据存取,并且采用维护逻辑地址-实体地址映射表(logical address-physical address mapping table)来记录逻辑单元所映射的实体单元。
请同时参照图3B与图3C,例如,当主机系统欲写入数据至逻辑单元350-1时,内存管理单元110b通过逻辑地址-实体地址映射表得知逻辑单元350-1目前是映射逻辑上属于数据区304的实体单元310-(S+1)。因此,内存管理单元110b对实体单元310-(S+1)中的数据进行更新,期间,闪存控制器110从备用区306中提取实体单元310-(S+M+1)来轮替数据区304的实体单元310-(S+1)。然而,当内存管理单元110b将新数据写入至实体单元310-(S+M+1)的同时,内存管理单元110b不立刻将实体单元310-(S+1)中的所有有效数据搬移至实体单元310-(S+M+1)而抹除实体单元310-(S+1)。具体来说,内存管理单元110b将实体单元310-(S+1)中欲写入页面之前的有效数据(即,页P0与P1)复制至实体单元310-(S+M+1)(如图3C的(a)),并且将新数据(即,实体单元310-(S+M+1)的页P2与P3)写入至实体单元310-(S+M+1)(如图3C的(b))。此时,内存管理单元110b即完成写入的动作。因为实体单元310-(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无 效,因此立刻将实体单元310-(S+1)中的所有有效数据搬移至替换实体单元310-(S+M+1)可能造成无谓的搬移。在此案例中,实体单元310-(S+1)与实体单元310-(S+M+1)的内容整合起来才是所映射逻辑单元350-1的完整内容。此等母子瞬时关系(即,实体单元310-(S+1)与实体单元310-(S+M+1))的数目是依据闪存控制器110中缓冲存储器110d的大小而定,而暂时地维持此种瞬时关系的动作一般称为开启(open)母子单元。
值得说明的是,此母子瞬时关系可以在逻辑地址-实体地址映射表中实时记录,亦或另以一母子瞬时关系表来实时记录目前具有母子瞬时关系的逻辑单元,及其所映射得实体单元,亦或在该逻辑地址-实体地址映射表中更以一特定码表示该逻辑单元是否具有母子瞬时关系,以方便查询。故所述逻辑单元所映射的实体单元,并不限于在逻辑地址-实体地址映射表中该逻辑单元所映射的实体单元,亦可包含是利用逻辑地址-实体地址映射表上的信息而映像的实体单元(其中该信息并不限于是因母子瞬时关系而建立的数据),亦或是利用该母子瞬时关系表或是一数据暂存记录表所映像的实体单元。其中,该数据暂存记录表是记录专门放置小数据的一闪存暂存区中的逻辑地址-实体地址映像关系。且该数据暂存记录表中记录映像关系的单位可小于实体单元,如以页或以区块为单位。
之后,当需要将实体单元310-(S+1)与实体单元310-(S+M+1)的内容真正合并时,内存管理单元110b才将实体单元310-(S+1)与实体单元310-(S+M+1)整并为一个实体单元,由此提升区块的使用效率,此合并的动作又可称为关闭(close)母子单元。例如,如图3C的(c)所示,当进行关闭母子单元时,内存管理单元110b将实体单元310-(S+1)中剩余的有效数据(即,页P4~PN)复制至替换实体单元310-(S+M+1),然后将实体单元310-(S+1)抹除并关联为备用区306,同时,将实体单元 310-(S+M+1)关联为数据区304,并且在逻辑地址-实体地址映射表中将逻辑单元350-1的映射更改为实体单元310-(S+M+1),由此完成关闭母子单元的动作。
如上所述,在本发明范例实施例中,闪存管理单元110b是以实体单元为单位来对每一实体单元内的所有实体区块来进行上述开启母子单元与关闭母子单元的动作,因此内存管理单元110b以多信道存取模式经由I/O总线120a、120b、120c与120d同时对第一闪存模块210、第二闪存模块220、第三闪存模块230与第四闪存模块240中属于同一实体单元的实体区块进行存取,以提升数据的存取速度。例如,在本发明另一范例实施例中,当主机系统200对逻辑单元350-1写入32个扇区的数据时,内存管理单元110b使用多信道存取模式经由I/O总线120a、120b、120c与120d同时在映射逻辑单元350-1的实体单元的4个实体区块中分别地写8个扇区(即,1个页面)的数据。
此外,在本发明范例实施例中,当主机系统200仅更新实体单元内的小量数据时,内存管理单元110b以单信道存取模式仅对其中一个实体区块进行存取。例如,当一写入指令对逻辑单元350-1写入8个扇区的数据时,内存管理单元110b使用单信道存取模式仅于逻辑单元350-1所映射的实体单元中的其中一个实体区块上执行上述开启母子单元与关闭母子单元的动作来写入数据,由此可避免实体单元内其它未更新的实体区块的抹除动作,同时,由于在使用单信道存取模式写入数据时实体区块抹除次数可因此减少,因此可延长闪存储存系统100的寿命。
在本范例实施例中,内存管理单元110b为每一逻辑单元350-1~350-M配置一大数据使用计数与一小数据使用计数,其中大数据使用计数是记录在此逻辑单元中已被写入大数据的次数,而小数据使用计数是记录在此逻辑单元中已被写入小数据的次数。在此,大数据与小数据是依据其数据长度大小来区分。例如,当一数据的数据长度大于一数据量 阈值,则此数据被分类为大数据,而当一数据的数据长度不大于此数据阈值时,则此数据被分类为小数据,其中数据量阈值可由使用者自行设定。在本范例实施例中,数据量阈值是设定为8千字节(KB)。
也就是说,在本范例实施例中,每一逻辑单元350-1~350-M先前储存数据的状态被记录,基此,经比对每一逻辑单元350-1~350-M的大数据使用计数与小数据使用计数,内存管理单元110b可获知主机系统200对每一逻辑单元350-1~350-M的使用状态。例如,主机系统200对逻辑单元350-1进行数据写入时,内存管理单元110b可经比较逻辑单元350-1的大数据使用计数与小数据使用计数来得知逻辑单元350-1是属于经常地储存大数据或经常地储存小数据的状态,其中当逻辑单元350-1的大数据使用计数大于小数据使用计数时,则逻辑单元350-1是属于经常地储存大数据的状态,且内存管理单元110b使用多信道存取模式来在其映射的实体单元中写入主机系统200所写入的数据,反之,当逻辑单元350-1的大数据使用计数不大于小数据使用计数时,则逻辑单元350-1是属于经常地储存小数据的状态时,且内存管理单元110b使用单信道存取模式来在其映射的实体单元中写入主机系统200所写入的数据。
值得一提的是,在本发明另一范例实施例中,当存取模式区分为单信道、双信道、四信道...等模式时,上述区分数据状态的方式亦可对应地将数据分为小数据、中数据、大数据...等,并且依据所区份的数据状态而使用不同的信道存取模式来进行写入运作,例如小数据使用单信道,中数据使用双信道,大数据使用四信道。
在本发明一范例实施例中,关于每一逻辑单元350-1~350-M的大数据使用计数与小数据使用计数的信息储存在闪存储存系统的缓冲存储器(未绘示)中,并且当闪存储存系统开机时,这些信息储存在闪存芯片中并且于闪存储存系统再次启动时,所储存的信息加载至闪存控制器 来继续记录。
图4是根据本发明一范例实施例绘示写入数据的流程图。
请参照图4,在S401中闪存控制器110从主机系统200中接收到主机系统200接收一写入指令以及一新数据,其中此写入指令中包含欲写入此新数据的逻辑地址。
之后,在步骤S403中闪存控制器110的内存管理单元110b将欲写入新数据的逻辑地址转换为对应的逻辑单元,并且在步骤S405中读取对应逻辑单元的大数据使用计数与小数据使用计数。
在步骤S407中内存管理单元110b判断此新数据的数据量是否大于数据量阈值,倘若此新数据的数据量大于数据量阈值,则在步骤S409中计数对应逻辑单元的大数据使用计数(例如,将大数据使用计数+1),倘若此新数据的数据量非大于数据量阈值,则在步骤S411中计数对应逻辑单元的小数据使用计数(例如,将小数据使用计数+1)。
然后,在步骤S413中判断对应逻辑单元的大数据使用计数是否大于小数据使用计数,倘若对应逻辑单元的大数据使用计数大于小数据使用计数时,则在步骤S415中内存管理单元110b使用多信道存取模式在映射此对应逻辑单元的实体单元中写入此新数据。此外,倘若对应逻辑单元的大数据使用计数不大于小数据使用计数时,则在步骤S417中内存管理单元110b使用单信道存取模式在映射此对应逻辑单元的实体单元中写入此新数据。
值得一提的是,如图3C的(a)所示,当主机系统200所写入的逻辑单元中仍存有有效旧数据时,内存管理单元110b将写入地址之间的有效旧数据复制至新提取的实体单元中,再继续写入新数据,此种写入模式亦称为连续写入模式。然而,当主机系统200不断地在同一逻辑单元中写入不连续地小数据(实务上亦称为混乱写入状态)时,复制有效旧数据的动作使闪存储存系统100的写入上产生严重的延迟。因此,对于此类写入状态,内存管理单元110b直接地将新数据写入至所提取的实体单元中,并且当进行关闭母子单元程序时,再从备用区306中提取另一实体单元来重新整理并依序地写入所有的有效数据。
值得一提的是,在本发明另一范例实施中(如图5所示),在步骤S413之前,内存管理单元110b更判断目前映射欲写入新数据的逻辑单元的实体单元是否已处于上述母子瞬时关系(S451),其中倘若目前映射欲写入新数据的逻辑单元的实体单元已处于上述母子瞬时关系时,则直接以上述母子瞬时关系建立时所设定的I/O总线来写入此新数据(S453)。并且,倘若目前映射欲写入新数据的逻辑单元的实体单元非处于上述母子瞬时关系时,才执行步骤S413。举例来说,倘若一闪存系统只允许最多五组母子瞬时关系同时存在时,倘若目前系统中已开启五组,若有需要再建立一组新的母子瞬时关系,此时,内存管理单元110b删除至少一已存在的母子瞬时关系。因此,当闪存系统接收一写入指令后,倘若闪存系统发现该写入指令所对应的逻辑单元仍存在一母子瞬时关系,且该母子瞬时关系建立时已决定使用的信道数为双信道时,则此闪存系统也使用双信道来写入此笔数据,而不以本范例实施例所述的步骤来决定此次写入数据所要使用的信道数。
图6A与图6B是绘示闪存芯片的另一范例运作示意图。
请参照图6A,例如,当主机系统写入不连续地小数据至逻辑单元350-1的页P1与P4时,内存管理单元110b采用逻辑地址-实体地址映射表得知逻辑单元350-1目前是映射逻辑上属于数据区304的实体单元310-(S+1)。因此,内存管理单元110b对实体单元310-(S+1)中的数据进行更新,期间,内存管理单元110b从备用区306中提取实体单元310-(S+M+1),然后将写入至逻辑单元350-1的页P1的数据写入至实体单元310-(S+M+1)的页0(如图6A的(a)所示),且之后将写入至逻辑单元350-1的页P4的数据写入至实体单元310-(S+M+1)的页P1(如图6A 的(b)所示)。
请参照图6B,当进行关闭母子单元程序(即,整并实体单元310-(S+M+1)与实体单元310-(S+1)中的有效数据)时,内存管理单元110b从备用区306中再提取实体单元310-(S+M+2)。之后,内存管理单元110b将实体单元310-(S+1)的页P0、页P2、页P3与页P5~页PN中的有效旧数据复制至实体单元310-(S+M+2)的页P0、页P2、页P3与页P5~页PN中,并且将实体单元310-(S+M+1)的页P0与页P1中的新数据复制至实体单元310-(S+M+2)的页P1与页P4中,其中所有有效数据是依据实体单元310-(S+M+2)的每一页面顺序依序地写入至每一页面中。在此,此种写入方式亦称为混乱写入模式。
基此,在本范例另一实施例中,内存管理单元110b可在获知主机系统200对每一逻辑单元350-1~350-M的使用状态后,选择地使用连续写入模式(如图3C所示)或混乱写入模式(如图6A所示)来写入主机系统200欲写入的数据。
例如,主机系统200对逻辑单元350-1进行数据写入时,内存管理单元110b可得知逻辑单元350-1是属于经常地储存大数据或经常地储存小数据的状态,其中当逻辑单元350-1属于经常地储存大数据的状态时,内存管理单元110b使用上述连续写入模式来在其映射的实体单元中写入主机系统200所写入的数据,反之,当逻辑单元350-1属于经常地储存小数据的状态时,内存管理单元110b使用混乱写入模式来在其映射的实体单元中写入主机系统200所写入的数据。
图7是根据本发明另一范例实施例绘示写入数据的流程图。
请参照图7,步骤S601、S603、S605、S607、S609、S611与S613是相同于图4的步骤S401、S403、S405、S407、S409、S411与S413,在此不重复说明。
然后,倘若对应逻辑单元的大数据使用计数大于小数据使用计数时,则在步骤S615中内存管理单元110b使用连续写入模式在映射此对应逻辑单元的实体单元中写入此新数据。此外,倘若对应逻辑单元的大数据使用计数不大于小数据使用计数时,则在步骤S617中内存管理单元110b使用混乱写入模式在映射此对应逻辑单元的实体单元中写入此新数据。
在本发明另一范例实施例中,闪存储存系统更包括暂存内存与闪存暂存区。图8是根据本发明另一实施例绘示闪存储存系统100’的概要方块图。
闪存储存系统100’除了如图1所示的闪存储存系统100的结构外还包括暂存内存402与闪存暂存区404。
暂存内存402是接至闪存控制器110是用以暂存主机系统200所存取的数据。在此范例实施例中,暂存内存402为动态随机存取内存(Dynamic Random Access memory,DRAM)。然而,必须了解的是,本发明不限于此,磁阻式内存(Magnetoresistive Random Access Memory,MRAM)、相变化内存(Phase Change Random Access Memory,PRAM)或其它适合的内存亦可应用于本发明。
闪存暂存区404是用以暂存数据。特别是,如上所述闪存芯片130的实体区块需进行抹除后方可再写入新数据,因此在具有闪存暂存区404的闪存储存系统100’中,闪存控制器100可先将主机系统200欲写入的数据暂时地储存在闪存暂存区404中,由此快速地响应主机系统200已完成其下达的指令。之后,在闪存储存系统100’于非忙碌期间(例如,主机系统200无使用该逻辑单元对应的信道下达指令期间)再将闪存暂存区404中的暂存数据写入至上述实体单元中。
在本范例实施例中,闪存暂存区404是使用闪存芯片130的一部份实体区块所组成。然而,本发明不限于此,在本发明另一实施例中,亦可另外配置一闪存芯片作为闪存暂存区404。
类似地,在具有暂存内存402与闪存暂存区404的闪存储存系统100’中,内存管理单元110b可在获知主机系统200对每一逻辑单元350-1~350-M的使用状态后,选择地使用暂存内存402或闪存暂存区404来暂时地储存主机系统200欲写入的数据。
例如,主机系统200对逻辑单元350-1进行数据写入时,内存管理单元110b可得知逻辑单元350-1是否为写入频繁的逻辑单元,且其是属于经常地储存大数据或经常地储存小数据的状态。例如,当逻辑单元350-1的使用次数值(即,逻辑单元350-1的大数据使用计数与小数据使用计数的总和)大于一使用次数阈值时,则逻辑单元350-1是属于写入频繁的逻辑单元,反之,当逻辑单元350-1的使用次数值不大于此使用次数阈值时,则逻辑单元350-1不属于写入频繁的逻辑单元。在此,使用次数阈值可由使用者自行设定。在本范例实施例中,使用次数阈值是目前所有逻辑单元的使用次数值的平均值。
当逻辑单元350-1被判断属于频繁写入的逻辑单元时,则内存管理单元110b将主机系统200所写入的数据暂时地储存在暂存内存402中。另外,当逻辑单元350-1被判断不属于频繁写入的逻辑单元时,则内存管理单元110b再判断逻辑单元350-1是属于经常地储存大数据的状态或经常地储存小数据的状态,其中当逻辑单元350-1属于经常地储存小数据的状态时,内存管理单元110b将主机系统200所写入的数据暂时地储存在闪存暂存区402中,反之,当逻辑单元350-1属于经常地储存大数据的状态时,则内存管理单元110b将主机系统200所写入的数据写入至映射逻辑单元350-1的实体单元中。
图9是根据本发明另一范例实施例绘示写入数据的流程图。
请参照图9,步骤S801、S803、S805、S807、S809与S811是相同于图4的步骤S401、S403、S405、S407、S409与S411,在此不重复说明。
然后,在步骤S813中,内存管理单元110b计算每一逻辑单元350-1~350-M的使用次数以及设定使用次数阈值,在此使用次数阈值是以所有逻辑单元350-1~350-M的平均使用次数来设定。
之后,在步骤S815中内存管理单元110b判断欲写入新数据的对应逻辑单元的使用次数是否大于使用次数阈值,倘若对应逻辑单元的使用次数大于使用次数阈值时,在步骤S817中内存管理单元110b将新数据暂时地储存在暂存内存402中。
此外,倘若对应逻辑单元的使用次数不大于使用次数阈值时,则在步骤S819中内存管理单元110b判断对应逻辑单元的大数据使用计数是否大于小数据使用计数,其中倘若对应逻辑单元的大数据使用计数不大于小数据使用计数时,则在步骤S821中内存管理单元110b将新数据暂时地储存在闪存暂存区404中,反之,倘若对应逻辑单元的大数据使用计数大于小数据使用计数时,则在步骤S823中内存管理单元110b将新数据直接地写入至映射此对应逻辑单元的实体单元中。
综上所述,本发明利用为每一逻辑单元记录大数据使用计数与小数据使用计数的信息,由此可根据每一逻辑单元之前的使用历程来决定写入数据的模式。如上所述,经常地储存大数据的逻辑单元,闪存控制器使用多信道存取模式以加速其写入速度,针对经常地储存小数据的逻辑单元,使用单信道存取模式或混乱写入模式以减少实体区块的抹除。再者,较常写入数据的逻辑单元,闪存控制器先暂时将欲写入的数据储存于暂存内存,而较不常写入的逻辑单元则根据其多为储存小数据而先将数据暂存于闪存暂存区,并且若其多为储存大数据则直接将数据写入至映射的实体单元。基此,根据本发明的闪存储存系统可依据使用者的使用行为来更换其写入模式,由此提升闪存储存系统的写入效率并且延长闪存储存系统的寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案而非限制。尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者替换并不脱离本发明技术方案的精神和范围。
Claims (24)
1.一种闪存写入方法,实施于一闪存储存系统,其中该闪存储存系统包括多个逻辑单元及多个实体单元,其中每一所述逻辑单元映射至少一个所述实体单元,其中该实体单元具有至少一闪存单元,该闪存写入方法包括:
计数每一所述逻辑单元的一大数据使用计数与一小数据使用计数,其中所述大数据使用计数分别地记录每一所述逻辑单元已被写入一大数据的次数且所述小数据使用计数分别地记录每一所述逻辑单元已被写入一小数据的次数,其中该大数据的数据长度是大于一数据量阈值且该小数据的数据长度不大于该数据量阈值;以及
当一主机系统在所述逻辑单元之中的一对应逻辑单元中写入一新数据时,依据该对应逻辑单元的大数据使用计数与小数据使用计数所对应的数据写入步骤在该闪存储存系统中写入该新数据。
2.如权利要求1所述的闪存写入方法,其中计数每一所述逻辑单元的大数据使用计数与小数据使用计数的步骤包括:
判断该新数据的数据长度是否大于该数据量阈值,其中当该新数据的数据长度大于该数据量阈值时则计数该对应逻辑单元的大数据使用计数,反之,则计数该对应逻辑单元的小数据使用计数。
3.如权利要求1所述的闪存写入方法,其中该闪存储存系统更包括多个I/O总线,并且其中依据该对应逻辑单元的大数据使用计数与小数据使用计数在该闪存储存系统中写入该新数据的步骤包括:
判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则经至少两个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中;以及
当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则经其中一个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
4.如权利要求1所述的闪存写入方法,其中当该对应逻辑单元存有一有效旧数据时,依据该对应逻辑单元的大数据使用计数与小数据使用计数在该闪存储存系统中写入该新数据的步骤包括:
判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;以及
当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则复制该有效旧数据并将该有效旧数据与该新数据写入至该对应逻辑单元所映射的所述实体单元中。
5.如权利要求4所述的闪存写入方法,其中当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则仅将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
6.如权利要求1所述的闪存写入方法,其中当该闪存储存系统更包括一暂存内存时,依据该对应逻辑单元的大数据使用计数与小数据使用计数在该闪存储存系统中写入该新数据的步骤包括:
依据该对应逻辑单元的大数据使用计数与小数据使用计数计算该对应逻辑单元的一使用次数值;
判断该对应逻辑单元的使用次数值是否大于一使用次数阈值;
当该对应逻辑单元的使用次数值大于该使用次数阈值时,则将该新数据暂时地储存在该暂存内存中;
当该对应逻辑单元的使用次数值不大于该使用次数阈值时,则将该新数据写入至该对应逻辑单元所映射的所述实体单元。
7.如权利要求6所述的闪存写入方法,更包括将所述实体单元的其中一部份分组为一闪存暂存区与一备用区,其中将该新数据写入至该对应逻辑单元所映射的所述实体单元的步骤包括:
判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
其中当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则将该新数据写入至该备用区的所述实体单元中,并且当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则将该新数据暂时地写入至该闪存暂存区的所述实体单元中。
8.如权利要求3所述的闪存写入方法,更包括判断该对应逻辑单元所映射的实体单元是否处于一母子瞬时关系,其中倘若该对应逻辑单元所映射的实体单元处于该母子瞬时关系时,则以该对应逻辑单元所映射的所述实体单元所使用的所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
9.一种闪存控制器,适用于控制一闪存储存系统,其中该闪存储存系统包括多个逻辑单元及多个实体单元,其中每一所述逻辑单元映射至少一个所述实体单元,该闪存控制器包括:
一微处理器单元;
一主机接口单元,用以连接一主机系统;
一闪存接口单元,用以连接所述实体单元;以及
一内存管理单元,用以计数每一所述逻辑单元的一大数据使用计数与一小数据使用计数,以及当该主机系统在所述逻辑单元之中的一对应逻辑单元中写入一新数据时,依据该对应逻辑单元的大数据使用计数与小数据使用计数所对应的一数据写入步骤来在该闪存储存系统中写入该新数据;
其中所述大数据使用计数分别地记录每一所述逻辑单元已被写入一 大数据的次数且所述小数据使用计数分别地记录每一所述逻辑单元已被写入一小数据的次数,其中该大数据的数据长度是大于一数据量阈值且该小数据的数据长度不大于该数据量阈值。
10.如权利要求9所述的闪存控制器,其中该内存管理单元判断该新数据的数据长度是否大于该数据量阈值,其中当该新数据的数据长度大于该数据量阈值时则计数该对应逻辑单元的大数据使用计数,反之,则计数该对应逻辑单元的小数据使用计数。
11.如权利要求9所述的闪存控制器,其中该闪存储存系统更包括多个I/O总线,并且该内存管理单元判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
其中,当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该内存管理单元经经至少两个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中,并且当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该内存管理单元经其中一个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
12.如权利要求9所述的闪存控制器,其中当该对应逻辑单元存有一有效旧数据时,该内存管理单元判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数,以及
其中,当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该内存管理单元复制该有效旧数据并将该有效旧数据与该新数据写入至该对应逻辑单元所映射的所述实体单元中。
13.如权利要求12所述的闪存控制器,其中当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该内存管理单元仅将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
14.如权利要求9所述的闪存控制器,其中,该闪存储存系统更包括一暂存内存,并且该内存管理单元依据该对应逻辑单元的大数据使用计数与小数据使用计数计算该对应逻辑单元的一使用次数值,判断该对应逻辑单元的使用次数值是否大于一使用次数阈值,以及判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
其中当该对应逻辑单元的使用次数值大于该使用次数阈值时,则该内存管理单元将该新数据暂时地储存在该暂存内存中。
15.如权利要求14所述的闪存控制器,其中该内存管理单元将所述实体单元的其中一部份分组为一闪存暂存区与一备用区;
其中,当该对应逻辑单元的使用次数值不大于该使用次数阈值,并且该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该内存管理单元将该新数据写入至该备用区的所述实体单元中;
其中,当该对应逻辑单元的使用次数值不大于该使用次数阈值,并且该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该内存管理单元将该新数据暂时地写入至该闪存暂存区的所述实体单元中。
16.如权利要求11所述的闪存控制器,其中该内存管理单元判断该对应逻辑单元所映射的实体单元是否处于一母子瞬时关系;
其中倘若该对应逻辑单元所映射的实体单元处于该母子瞬时关系时,则该内存管理单元以该对应逻辑单元所映射的所述实体单元所使用的所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
17.一种闪存储存系统,包括:
多个逻辑单元,以提供给一主机系统存取;
多个实体单元,其中每一所述逻辑单元映射至少一所述实体单元;以及
一闪存控制器,用以计数每一所述逻辑单元的一大数据使用计数与一小数据使用计数,其中所述大数据使用计数分别地记录每一所述逻辑单元已被写入一大数据的次数且所述小数据使用计数分别地记录每一所述逻辑单元已被写入一小数据的次数,其中该大数据的数据长度是大于一数据量阈值且该小数据的数据长度不大于该数据量阈值;
其中当该主机系统在所述逻辑单元之中的一对应逻辑单元中写入一新数据时,该闪存控制器依据该对应逻辑单元的大数据使用计数与小数据使用计数所对应的一数据写入步骤来处理该新数据。
18.如权利要求17所述的闪存储存系统,其中该闪存控制器判断该新数据的数据长度是否大于该数据量阈值,其中当该新数据的数据长度大于该数据量阈值时则该闪存控制器计数该对应逻辑单元的大数据使用计数,反之,则计数该对应逻辑单元的小数据使用计数。
19.如权利要求17所述的闪存储存系统,更包括多个I/O总线,并且该闪存控制器判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
其中,当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该闪存控制器经至少两个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中,并且当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该闪存控制器经其中一个所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
20.如权利要求17所述的闪存储存系统,其中当该对应逻辑单元存有一有效旧数据时,该闪存控制器判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数,以及
其中当该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该闪存控制器复制该有效旧数据并将该有效旧数据与该新数据写入至该对应逻辑单元所映射的所述实体单元中。
21.如权利要求20所述的闪存储存系统,其中当该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该闪存控制器仅将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
22.如权利要求17所述的闪存储存系统,更包括一暂存内存,并且该闪存控制器依据该对应逻辑单元的大数据使用计数与小数据使用计数计算该对应逻辑单元的一使用次数值,判断该对应逻辑单元的使用次数值是否大于一使用次数阈值,以及判断该对应逻辑单元的大数据使用计数是否大于该对应逻辑单元的小数据使用计数;
其中当该对应逻辑单元的使用次数值大于该使用次数阈值时,则该闪存控制器将该新数据暂时地储存在该暂存内存中。
23.如权利要求22所述的闪存储存系统,其中该闪存控制器将所述实体单元的其中一部份分组为一闪存暂存区与一备用区;
其中当该对应逻辑单元的使用次数值不大于该使用次数阈值并且该对应逻辑单元的大数据使用计数大于该对应逻辑单元的小数据使用计数时,则该闪存控制器将该新数据写入至该备用区的所述实体单元中;
其中当该对应逻辑单元的使用次数值不大于该使用次数阈值,并且该对应逻辑单元的大数据使用计数不大于该对应逻辑单元的小数据使用计数时,则该闪存控制器将该新数据暂时地写入至该闪存暂存区的所述实体单元中。
24.如权利要求19所述的闪存储存系统,其中该闪存控制器判断该对应逻辑单元所映射的实体单元是否处于一母子瞬时关系;
其中倘若该对应逻辑单元所映射的实体单元处于该母子瞬时关系时,则该闪存控制器以该对应逻辑单元所映射的所述实体单元所使用的所述I/O总线来将该新数据写入至该对应逻辑单元所映射的所述实体单元中。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2009101292627A CN101853138B (zh) | 2009-04-03 | 2009-04-03 | 闪存写入方法及使用此方法的储存系统与控制器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN2009101292627A CN101853138B (zh) | 2009-04-03 | 2009-04-03 | 闪存写入方法及使用此方法的储存系统与控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN101853138A CN101853138A (zh) | 2010-10-06 |
| CN101853138B true CN101853138B (zh) | 2012-05-09 |
Family
ID=42804652
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN2009101292627A Active CN101853138B (zh) | 2009-04-03 | 2009-04-03 | 闪存写入方法及使用此方法的储存系统与控制器 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN101853138B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112015327B (zh) * | 2019-05-30 | 2022-10-21 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
-
2009
- 2009-04-03 CN CN2009101292627A patent/CN101853138B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1967504A (zh) * | 2005-11-18 | 2007-05-23 | 凌阳科技股份有限公司 | 闪存的控制装置与方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN101853138A (zh) | 2010-10-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI407441B (zh) | 快閃記憶體寫入方法及使用此方法的儲存系統與控制器 | |
| CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
| US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
| TWI579693B (zh) | 映射表載入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI385518B (zh) | 用於快閃記憶體的資料儲存方法及儲存系統 | |
| TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
| US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
| TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
| CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
| TWI640008B (zh) | 資料讀取方法以及儲存控制器 | |
| CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
| CN106557432B (zh) | 缓冲存储器管理方法、存储器控制电路单元及存储装置 | |
| TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
| CN101859278B (zh) | 用于闪存的数据储存方法及储存系统 | |
| CN107204205A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN114328297A (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
| CN101944384B (zh) | 用于闪速存储器的数据写入方法及其控制电路与储存系统 | |
| TWI651650B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
| TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN112860193A (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
| CN113138720A (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
| CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
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 |