CN101859278B - 用于闪存的数据储存方法及储存系统 - Google Patents
用于闪存的数据储存方法及储存系统 Download PDFInfo
- Publication number
- CN101859278B CN101859278B CN2009101333612A CN200910133361A CN101859278B CN 101859278 B CN101859278 B CN 101859278B CN 2009101333612 A CN2009101333612 A CN 2009101333612A CN 200910133361 A CN200910133361 A CN 200910133361A CN 101859278 B CN101859278 B CN 101859278B
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- pattern
- write
- logical blocks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种用于闪存储存装置的数据储存方法,此方法包括在闪存储存装置中配置模式识别单元以及在与闪存储存装置连接的主机上配置模式分析单元。此方法更包括由模式分析单元来分析闪存储存装置中关于每一闪存储存地址的使用模式的信息,通过模式识别单元从模式分析单元中接收与识别所分析的信息,以及依据所分析的信息使用对应的处理方式在每一闪存储存地址中储存欲写入的数据。基此,根据本发明的数据储存方法能够依据每一闪存储存地址的使用特性来执行数据储存,由此有效地提升储存装置的储存速度。
Description
技术领域
本发明涉及一种数据储存方法及数据储存系统,且特别涉及一种用于在闪存中写入数据的数据储存方法及使用此数据储存方法的数据储存系统。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘就是一种以NAND闪存作为储存媒体的储存装置。
一般来说,闪存储存装置中的闪存模块会具有多个实体区块,且这些实体区块会由闪存储存装置的闪存控制器逻辑地分组为系统区(system area)、数据区(data area)、备用区(spare area)与取代区(replacement area)。系统区的实体区块用以储存闪存储存装置的相关重要信息,而取代区的实体区块用以取代数据区或备用区中已损坏的实体区块损坏,因此在一般存取模式下,主机系统无法存取系统区与取代区中的实体区块。至于归类为数据区的实体区块中会储存由写入指令所写入的有效数据,而备用区中的实体区块用以在执行写入指令时替换数据区中的实体区块。具体来说,当闪存储存装置接收到主机系统的写入指令而欲对数据区的实体区块进行写入时,闪存储存装置会从备用区中提取一实体区块,并且将在数据区中欲写入的实体区块中的有效旧数据 与欲写入的新数据写入至从备用区中提取的实体区块中,并且将已写入新数据的实体区块逻辑地关联为数据区,并且将原本数据区的实体区块进行抹除并逻辑地关联为备用区。为了能够让主机系统顺利地存取以轮替方式储存数据的实体区块,闪存储存装置会提供逻辑区块给主机系统。也就是说,闪存储存装置会通过在逻辑地址-实体地址映射表(logical address-physical address mapping table)中记录与更新逻辑区块与数据区的实体区块之间的映射关系来反映实体区块的轮替,所以主机系统仅需要针对所提供逻辑区块进行写入,而闪存储存装置会依据逻辑地址-实体地址映射表对所对应的实体区块进行读取或写入数据。
在上述闪存储存装置的运作架构下,倘若计算机系统在一闪存储存地址中经常反复地写入与更新数据量较小的数据时,闪存储存装置会需要执行上述数据搬移与抹除动作,特别是当所需搬移的数据量较大时,闪存储存装置的存取速度会大幅的降低。此外,实体区块的抹除次数是有限的(例如,实体区块抹除一万次后就会损坏),因此在频繁地抹除实体区块下闪存储存装置的寿命将大幅缩短。
然而,现有闪存储存装置无法辨识计算机系统对于每一闪存储存地址的使用模式(例如,所写入的数据是否经常反复地更新的小数据),因此现有闪存储存装置无法依据不同的使用特性来在闪存储存地址中执行数据的储存,因此会使得闪存储存装置产生存取速度大幅降低及寿命大幅缩短。
发明内容
本发明提供一种数据储存方法,其能够有效地提升闪存储存装置的储存速度,并延长闪存储存装置的寿命。
本发明提供一种数据储存系统,其能够有效地提升储存速度并延长使用寿命。
本发明提出一种数据储存方法,此方法包括提供一储存装置与一模式分析单元,其中所提供的储存装置具有一控制电路与多个闪存储存地址,并且此模式分析单元由一主机控制。此方法还包括在上述控制电路中配置一模式识别单元。方法更包括使用模式分析单元来记录每一闪存储存地址的使用模式,利用模式识别单元接收模式分析单元中所传送的信息,以识别每一闪存储存地址的使用模式,以及依据每一闪存储存地址的使用模式来储存欲写入至每一闪存储存地址的数据。
在本发明的一实施例中,上述使用模式分析单元记录每一闪存储存地址的使用模式的步骤包括:使用模式分析单元记录每一逻辑区块是否属于一频繁更新模式。
在本发明的一实施例中,上述使用模式分析单元记录每一逻辑区块是否属于频繁更新模式的步骤包括:将储存档案系统表的每一逻辑区块识别为频繁更新模式。
在本发明的一实施例中,上述使用模式分析单元记录每一逻辑区块是否属于频繁更新模式的步骤包括:将写入次数超过一写入次数阈值的每一逻辑区块识别为该频繁更新模式。
在本发明的一实施例中,上述闪存储存装置具有一缓冲储存区,其中依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据的步骤包括:当欲写入数据的逻辑区块属于上述频繁更新模式时,则将数据暂时地储存在缓冲储存区中。
在本发明的一实施例中,上述实体区块具有多个下页与多个上页,其中依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据的步骤包括:当欲写入数据的逻辑区块属于频繁更新模式时,则仅在下页中写入数据。
在本发明的一实施例中,上述依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据的步骤包括:当欲写入数据的逻辑区块属于频繁更新模式时,则以一混乱写入模式来将数据写入至实体区块中。
在本发明的一实施例中,上述使用模式分析单元来记录每一闪存储存地址的使用模式的步骤包括:使用模式分析单元记录每一逻辑区块是否属于一连续储存模式。
在本发明的一实施例中,上述使用模式分析单元记录每一逻辑区块是否属于连续储存模式的步骤包括:当逻辑区块的一大数据写入次数大于一小数据写的次数时,则将对应的逻辑区块识别为连续储存模式。
在本发明的一实施例中,上述使用模式分析单元记录每一逻辑区块是否属于连续储存模式的步骤包括:当写入至逻辑区块的数据长度大于一数据量阈值时,则将对应的逻辑区块识别为连续储存模式。
在本发明的一实施例中,上述依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据的步骤包括:当欲写入数据的逻辑区块属于上述连续储存模式时,则将数据直接地写入至欲写入数据的逻辑区块所对应的实体区块中。
在本发明的一实施例中,上述闪存储存装置具有一缓冲储存区,其中依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据的步骤包括:当欲写入数据的逻辑区块不属于连续储存模式时,则将数据写入至缓冲储存区或以一混乱写入模式写入至实体区块中。
在本发明的一实施例中,上述储存装置为一闪存模块,上述之主机为一闪存控制器,并且上述闪存储存地址为多个实体区块。
在本发明的一实施例中,上述使用模式分析单元记录每一闪存储存地址的使用模式的步骤包括:使用模式分析单元记录欲写入的数据的一数据排列模式。
在本发明的一实施例中,上述依据每一闪存储存地址的使用模式储 存欲写入至每一闪存储存地址的数据的步骤包括:依据欲写入数据的数据排列模式来编码转换此数据,并且将编码转换后的数据写入至上述实体区块中。
本发明提出一种数据储存系统,其包括主机、储存装置以及模式分析单元。储存装置是接至主机,其中此储存装置具有控制电路与多个闪存储存地址,并且控制电路具有一模式识别单元。模式分析单元由主机控制以记录每一闪存储存地址的使用模式,其中模式识别单元接收模式分析单元所传送的信息,以识别每一闪存储存地址的使用模式,并且控制电路依据每一闪存储存地址的使用模式储存欲写入至每一闪存储存地址的数据。
在本发明的一实施例中,上述储存装置为具有一闪存模块的一闪存储存装置,上述主机为一计算机系统,并且上述闪存储存地址为多个逻辑区块,其中闪存模块具有多个实体区块并且每一逻辑区块对映至少一个实体区块。
在本发明的一实施例中,上述的模式分析单元用以记录每一逻辑区块是否属于一频繁更新模式作为每一逻辑区块的使用模式。
在本发明的一实施例中,上述的模式分析单元识别储存一档案系统表的逻辑区块为该频繁更新模式。
在本发明的一实施例中,当逻辑区块的写入次数超过一写入次数阈值时,则模式分析单元识别对应的逻辑区块为频繁更新模式。
在本发明的一实施例中,上述闪存储存装置具有一缓冲储存区,其中当模式识别单元识别欲写入数据的逻辑区块属于频繁更新模式时,则闪存控制器将欲写入之数据暂时地储存在缓冲储存区中。
在本发明的一实施例中,上述实体区块具有多个下页与多个上页,其中当模式识别单元识别欲写入数据的逻辑区块属于频繁更新模式时,则闪存控制器仅在下页中写入数据。
在本发明的一实施例中,当欲写入数据的逻辑区块属于频繁更新模式时,则闪存控制器以一混乱写入模式来将数据写入至实体区块。
在本发明的一实施例中,上述缓冲储存区包括一动态随机存取内存或一闪存暂存区,其中闪存暂存区由上述的实体区块的至少其中之一所组成。
基于上述,本发明能够依据每一闪存储存地址的使用模式以及欲写入数据的模式使用不同的处理方式来储存数据,由此可有效地提升储存系统的储存速度及延长储存系统的使用寿命。
为让本发明上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1是根据本发明第一范例实施例所绘示的数据储存系统。
图2A~2C是根据本发明第一范例实施例所绘示闪存的运作示意图。
图3A是根据本发明第一范例实施例绘示记录与传送使用模式的流程图。
图3B是根据本发明第一范例实施例所绘示闪存储存装置执行写入指令与更新使用模式指令的流程图。
图4是根据本发明第二范例实施例所绘示的数据储存系统。
图5是根据本发明第二范例实施例所绘示的数据储存步骤的流程图。
附图主要组件符号说明
100:闪存储存装置
110、420:闪存控制器
110a、420a:微处理器单元
110b、420b:内存管理单元
110c、420c:闪存接口单元
110d、420d:主机接口单元
110e、416:模式识别单元
120:缓冲储存区
130、410:闪存
130-0~130-N、414-0~414-N:实体区块
150、420e:模式分析单元
200:计算机主机
202:系统区
204:数据区
206:备用区
210:储存区
220:取代区
250-1-250-M:逻辑区块
300、400:数据储存系统
S301、S303、S305、S307:记录与传送使用模式的步骤
S309、S311、S313、S315、S317:数据储存的步骤
412:控制电路
S501、S503、S505、S507:数据储存的步骤
600:主机系统
具体实施方式
本发明所提出的数据储存方法中,利用一模式分析单元以记录每一闪存储存地址的使用模式(pattern),并且利用在储存装置与主机之间所配置的模式识别单元将所记录的使用模式传送给储存装置的控制电路。之后,储存装置的控制电路能够依据主机对于每一闪存储存地址的 使用模式储存数据,由此提升储存装置的存取速度与使用寿命。以下将以多个范例实施例配合图式来详细说明本发明。
实施例1:
图1是根据本发明实施例1所绘示的数据储存系统。
请参照图1,数据储存系统300包括闪存储存装置100、计算机主机200、模式分析单元150。闪存储存装置100与计算机主机200连接,以使计算机主机200可将数据写入至闪存储存装置100或从闪存储存装置100中读取数据。在本实施例中,闪存储存装置100为固态硬盘(SolidState Drive,SSD)。但必须了解的是,在本发明另一实施例中闪存储存装置100亦可以是记忆卡或随身碟,此外,在本实施例中,模式分析单元150以一软件形式安装于计算机主机200来实现,然而,模式分析单元150亦可以一韧体形式或硬件形式来实现。
闪存储存装置100包括闪存控制器110与闪存130。
闪存控制器110执行以硬件形式或韧体形式实现的多个逻辑闸或控制指令,并且根据计算机主机200的指令在闪存130中进行数据的写入、读取与抹除等。
闪存控制器110包括微处理器单元110a、内存管理单元110b、闪存接口单元110c、主机接口单元110d与模式识别单元110e。
微处理器单元110a用以与内存管理单元110b、闪存接口单元110c、主机接口单元110d与模式识别单元110e等协同合作,以进行闪存储存装置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接口、PCIExpress接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
模式识别单元110e接至微处理器单元110a,并且用以接收与识别模式分析单元150所传送的关于使用模式的数据。
此外,虽未绘示于本实施例,但闪存控制器110亦更包括缓冲存储器、错误校正单元与电源管理单元等用于控制闪存的一般功能模块。
缓冲储存区120接至闪存控制器110并且用以暂时地储存计算机主机200欲写入的数据。在本实施例中,缓冲储存区120为动态随机存取内存(Dynamic Random Access memory,DRAM)。然而,必须了解的是,本发明不限于此,磁阻式内存(Magnetoresistive Random Access Memory, MRAM)、相变化内存(Phase Change Random Access Memory,PRAM)、单层存储单元(Single Level Cell,SLC)NAND闪存或其它适合的内存亦可应用于本发明。特别是,缓冲储存区120亦可以闪存130中的部分实体区块来实现。
闪存130电性连接至闪存控制器110。闪存130包括多个实体区块130-0~130-N用以储存数据。在本实施中闪存130为多层存储单元(Multi Level Cell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层存储单元(Single Level Cell,SLC)NAND闪存亦可应用于本发明。
在闪存130中,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的存储单元。每一实体区块通常会分割为数个页面(page),例如一个实体区块具有128个页面。由于在本实施例中,闪存130为MLC NAND闪存,因此,页面为程序化(program)的最小单元。换言之,页面为写入数据或读取数据的最小单元。每一页面通常包括数据位区D与冗余位区R。数据位区用以储存一般数据,而冗余位区用以储存系统数据(例如,错误检查与校正码(Error Checking andCorrecting Code,ECC Code)。在本实施例中,闪存130的每一页面具有8个扇区的容量,一般来说,一个扇区为512字节,因此一个页面为4千字节(kilo byte,KB)。
值得一提的是,闪存130为多层存储单元(Multi Level Cell,MLC)NAND闪存,因此闪存130的实体区块的程序化可分为多阶段。例如,以4层存储单元为例,实体区块的程序化可分为2阶段。第一阶段是下页地址的写入部分,其物理特性类似于单层存储单元储存单元,在完成第一阶段之后才会程序化上页,其中下页地址的写入速度会快于上页地址。因此,每一实体区块的页面地址可区分为慢速页面(即,上页)与快速页面(即,下页)。类似地,在8层存储单元或16层存储单元的案例 中,存储单元包括更多个页面地址,并且以更多阶段来写入。在此,将写入速度最快的页面称为下页,其它写入速度较慢的页面统称为上页。
此外,特别说明的是,在其它闪存设计中(例如,SLC NAND闪存),最小的程序化单位亦可为一个扇区,也就是说,以一个扇区为程序化的最小单元。此外,在本发明另一范例实施例中,闪存130中的实体区块也可被分组为数个区域(zone),以每一独立的区域来管理实体区块可增加操作执行的平行程度且简化管理的复杂度。
图2A~2C是根据本发明实施例1所绘示的闪存的运作示意图。
必须了解的是,在此描述闪存实体区块的运作时,以“提取”、“搬移”、“交换”、“替换”、“轮替”、“分组”等词来操作闪存130的实体区块是逻辑上的概念。也就是说,闪存的实体区块的实际位置并未更动,而是逻辑上对闪存的实体区块进行操作。值得一提的是,下述的运作由闪存控制器110完成。
请参照图2A,内存管理单元110b将闪存130的实体区块130-0~130-N逻辑地分组为储存区210以及取代区220。
在储存区210中的实体区块130-0~130-P是闪存储存装置100中正常被使用的实体区块。也就是说,内存管理单元110b会将数据写入至属于储存区210的实体区块。
在取代区220中的实体区块130-(P+1)~130-(N)替代实体区块。例如,闪存130于出厂时会预留4%的实体区块作为更换使用。也就是说,当储存区210中的实体区块损毁时,预留于取代区220中的实体区块可用以取代损坏的实体区块(即,坏的实体区块(bad block))。因此,倘若取代区220中仍存有可用的实体区块时,若发生实体区块损毁,内存管理单元110b会从取代区220中提取可用的实体区块来更换损毁的实体区块。倘若取代区220中无可用的实体区块且发生实体区块损毁时,闪存储存装置100将会被宣告无法再使用。
请参照图2B,闪存控制器110会将储存区210的实体区块逻辑地分组成系统区202、数据区204与备用区206。
系统区202包括实体区块130-(0)~实体区块130-(S),数据区204包括实体区块130-(S+1)~实体区块130-(S+M),并且备用区206包括实体区块130-(S+M+1)~实体区块130-(P)。在本实施例中,上述S、M与P为不大于N的正整数,其代表各区配置的实体区块数量,其可由闪存储存装置的制造商依据所使用的闪存模块的容量而设定。
逻辑上属于系统区202中的实体区块用以记录系统数据,此系统数据包括关于闪存芯片的制造商与型号、每一闪存模块的区域数、每一区域的实体区块数、每一实体区块的页面数等。
逻辑上属于数据区204中的实体区块用以储存使用者的数据,一般来说就是计算机主机200所存取的逻辑区块所对应的实体区块。也就是说,数据区204的实体区块为储存有效数据的区块。
逻辑上属于备用区206中的实体区块是用以轮替数据区204中的实体区块,因此在备用区206中的实体区块为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区204与备用区206的实体区块会以轮替方式来储存计算机主机200对闪存储存装置100写入的数据。
如前所述,闪存130的实体区块以轮替方式提供计算机主机200来储存数据,因此逻辑区块250-1~250-M被提供给计算机主机200以进行数据存取,并且利用维护逻辑地址-实体地址映射表(logicaladdress-physical address mapping table)来记录逻辑区块所对应的实体区块。
请同时参照图2B与图2C,例如,当主机系统欲写入数据至逻辑区块250-1时,闪存控制器110会利用逻辑地址-实体地址映射表得知逻辑区块250-1目前对映逻辑上属于数据区204的实体区块130-(S+1)。 因此,内存管理单元110b对实体区块130-(S+1)中的数据进行更新,期间,闪存控制器110从备用区206中提取实体区块130-(S+M+1)轮替数据区204的实体区块130-(S+1)。然而,当内存管理单元110b将新数据写入至实体区块130-(S+M+1)的同时,内存管理单元110b不会立刻将实体区块130-(S+1)中的所有有效数据搬移至实体区块130-(S+M+1)而抹除实体区块130-(S+1)。具体来说,闪存控制器110会将实体区块130-(S+1)中欲写入页面之前的有效数据(即,页P0与P1)复制至实体区块130-(S+M+1)(如图2C的(a)),并且将新数据(即,实体区块130-(S+M+1)的页P2与P3)写入至实体区块130-(S+M+1)(如图2C的(b))。此时,闪存控制器110即完成写入的动作。因为实体区块130-(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块130-(S+1)中的所有有效数据搬移至替换实体区块130-(S+M+1)可能会造成无谓的搬移。在此案例中,实体区块130-(S+1)与实体区块130-(S+M+1)的内容整合起来才是所对映逻辑区块250-1的完整内容。此等母子瞬时关系(即,实体区块130-(S+1)与实体区块130-(S+M+1))的数目依据闪存控制器110中缓冲存储器(未绘示)的大小而定,而暂时地维持此种瞬时关系的动作一般称为开启(open)母子区块。
之后,当需要将实体区块130-(S+1)与实体区块130-(S+M+1)的内容真正合并时,闪存控制器110才会将实体区块130-(S+1)与实体区块130-(S+M+1)整并为一个实体区块,由此提升区块的使用效率,此合并的动作又可称为关闭(close)母子区块。例如,如图2C的(c)所示,当关闭母子区块时,闪存控制器110将实体区块130-(S+1)中剩余的有效数据(即,页P4~PN)复制至替换实体区块130-(S+M+1),然后将实体区块130-(S+1)抹除,并关联为备用区206,同时,将实体区块130-(S+M+1)关联为数据区204,并且在逻辑地址-实体地址映射表中将逻辑区块 250-1的对映更改为实体区块130-(S+M+1),由此完成关闭母子区块的动作。
此外,由于闪存130的程序化规格要求必须从每一实体区块的第一页开始写入至最后一页并且在每个位仅能编程一次(即由仅能“1”变为“0”)的条件下,一旦内存实体区块的页面地址写入数据后,若欲更新已写入的数据就必须如图2B所示,从备用区206中提取一实体区块重新进行图2C所示的步骤。因此,当实体区块在未进行图2C的(c)所示的关闭动作之前(即处于图2C的(b)所示的瞬时),而发生必须更新刚搬移的数据(例如图2C的(a)所示的P0~P1)时,则所搬移的旧数据就必须再搬移一次,此称为混乱模式写入。当执行混乱模式写入时,内存管理单元110b从备用区206中提取一个实体区块,并直接写入新数据而不进行图2C的(a)所示的动作,并且,当混乱写入模式结束后再从备用区206中提取另一实体区块来写入所有的有效数据。
在本实施例中,模式分析单元150会判断逻辑区块250-1~250-M之中哪些逻辑区块是频繁写入的逻辑区块,在本实施例中,模式分析单元150判断逻辑区块250-1~250-M是否储存档案系统表、目录(Directory)等信息的逻辑区块,其中档案系统表包含档案配置表(FileAllocation Table,FAT)、NT档案系统(NT File System,NTFS)或其它档案管理系统。由于计算机主机200会频繁地更新档案系统表(FileSystem Table)、目录(Directory)等信息,且所更新的数据多数为不满一个页面的小数据,因此,模式分析单元150将储存此类信息的逻辑区块识别为频繁更新模式。例如,若计算机主机200为FAT系统时,在计算机主机200与闪存储存装置100接后,模式分析单元150为先侦测闪存中的逻辑区块地址0(LBA0)中的数据,其中,此地址内定为储存主要开机扇区(master boot record,MBR)的逻辑地址,依据主要开机扇区中所储存的数据,可找到磁盘分割开机记录(partition boot record, PBR),然后依据此磁盘分割开机记录可找到FAT1,FAT2及根目录(Rootdirectory)等信息的逻辑区块。故,模式分析单元150可确认储存档案系统表、目录(Directory)等信息的逻辑区块,而将储存此类信息的逻辑区块识别为频繁更新模式。此外,模式分析单元150利用计算机主机200的内存(未绘示)记录计算机主机200对每一逻辑区块250-1~250-M的写入历程。具体来说,模式分析单元150会记录计算机主机200在每一逻辑区块250-1~250-N中写入数据的次数以及每次写入的数据的数据量。例如,若在所记录的写入历程中显示某一逻辑区块的写入次数高于一写入次数阈值(例如,所有逻辑区块的写入次数的平均值)时,则模式分析单元150会识别此逻辑区块为频繁更新模式。再例如,若在写入历程中显示某一逻辑区块中写入大资料(例如,大于1个页面的数据量的数据)的次数大于写入小数据(例如,小于1个页面的数据量的数据)的次数时,则将此逻辑区块识别为连续储存模式。在另一实施例中,若写入的数据长度大于一数据量阈值,则标记为连续储存模式。
特别是,在本实施例中,模式分析单元150会将所分析的信息(即,每一逻辑区块的使用模式)使用更新使用模式指令传送至模式识别单元110e中,并且模式识别单元110e会识别此些信息并传送给内存管理单元110b。在本实施例中,模式分析单元150每当计算机主机200于闪存储存装置100中写入数据的数据量超过一预定数据量,或写入指令超过一预定次数时利用更新使用模式指令将所分析的信息传送给闪存储存装置100。必须了解的是,上述预定数据量或预定次数可由使用者自行设定任何适当的值,在本实施例中,预定数据量为100万字节(megabyte,MB),而预定次数为100次。
在另一范例实施例中,此更新使用模式指令亦可标示于每一写入指令中,亦即,每当计算机主机200欲对该闪存储存装置100写入一数据时,数据当模式分析单元150会对该数据欲写入的逻辑地址进行分析, 其中若该逻辑地址属于频繁更新模式或连续储存模式时,会将该等模式相对应的更新使用模式指令在传送写入指令前,或后,或同时传送至闪存储存装置100。而模式识别单元110e在识别该更新使用模式指令后,即会传送一相对应该更新使用模式指令的信息至微处理器单元110a,微处理器单元110a接收该信息后,内存管理单元110b将该笔数据写入至相应该信息的实体地址。
例如,倘若模式识别单元110e识别该笔数据属于频繁更新模式时,则内存管理单元110b会将该笔数据写入于缓冲暂存区120,反之,则内存管理单元110b将数据写入至对应的实体区块中。
此外,在另一范例实施例中,倘若模式识别单元110e识别该笔数据属于频繁更新模式时,内存管理单元110b亦可仅使用闪存130的下页来写入该笔资料;反之,则内存管理单元110b使用闪存130的下页的上页来写入该笔资料。
在另一实施例中,倘若模式识别单元110e识别该笔数据属于频繁更新模式时,则内存管理单元110b以一混乱写入模式来写入该笔数据,反之,则内存管理单元110b以图2B与图2C所示的步骤来写入该笔数据。在另一实施例中,倘若模式识别单元110e识别该笔数据属于非连续储存模式时,则内存管理单元110b将该笔数据写入缓冲暂存区120或以一混乱模式写入。
图3A是根据本发明实施例1绘示记录与传送使用模式的流程图。
请参照图3A,当计算机主机200将数据写入至闪存储存装置100时,在步骤S 301中模式分析单元150记录与分析关于逻辑区块的使用模式的信息,并且计数累积计数值以记录计算机主机200写入至闪存储存装置100的数据量。之后,在步骤S 303中判断累积计数值是否大于预定资料量。倘若累积计数值大于预定资料量时,则在步骤S 305中模式分析单元150传送更新使用模式指令与使用模式的信息至闪存储存装置 100。最后,在步骤S307中重置累积计数值(例如,将累积计数值归零)。
必须了解的是,本发明不限于此,在本发明另一实施例中,模式分析单元150于一预定时间间隔将所分析的信息传送给闪存储存装置100,例如使用者可设定模式分析单元150于每30秒时将所分析的信息传送给闪存储存装置100。
在本实施例中,倘若模式识别单元110e识别欲写入数据的逻辑区块属于上述频繁更新模式时,则内存管理单元110b将欲写入的数据暂时地储存在缓冲储存区120中。另外,倘若模式识别单元110e识别欲写入数据的逻辑区块属于上述连续储存模式时,则内存管理单元110b执行开启与关闭母子区块的程序(如图2C所示),以将数据写入至对应的实体区块中。
图3B是根据本发明实施例1所绘示闪存储存装置执行写入指令与更新使用模式指令的流程图。必须了解的是,在本实施例中虽然仅绘示闪存储存装置100处理写入指令与更新使用模式指令的步骤,但闪存储存装置100亦接收与执行其它指令(例如,抹除指令、读取指令)。
请参照图3B,当闪存储存装置100连接于计算机主机200并从计算机主机200中接收到指令时,在步骤S309中闪存控制器110识别所接收的指令。倘若所接收到的指令为更新使用模式指令时,则在步骤S311中模式识别单元110e依据所接收到的分析信息更新每一逻辑区块的使用模式。
倘若所接收到的指令为写入指令时,则在步骤S313中内存管理单元110b判断欲写入数据的逻辑区块的使用模式是否为频繁更新模式并且非为连续储存模式,倘若欲写入数据的逻辑区块的使用模式为频繁更新模式并且不是连续储存模式时,则在步骤S315中内存管理单元110b将欲写入的数据暂时地储存在缓冲储存区120中;反之,则在步骤S317中内存管理单元110b将数据写入至对应的实体区块中。
实施例2
图4是根据本发明实施例2所绘示的数据储存系统。
请参照图4,数据储存系统400包括闪存模块410与闪存控制器420
数据储存系统400可分离地连接主机系统600,以使主机系统600可将数据写入至数据储存系统400或从数据储存系统400中读取数据。在本实施例中,数据储存系统400为固态硬盘(Solid State Drive,SSD)。但必须了解的是,在本发明另一实施例中数据储存系统400亦可以是记忆卡或随身碟。
闪存模块410包括控制电路412与实体区块414-0~414-N。
控制电路412用以根据闪存控制器420的指令将数据传送至实体区块414-0~414-N或从实体区块414-0~414-N中读取数据。此外,在本实施例中,控制电路412将欲写入至实体区块414-0~414-N中的数据进行编码转换,或者将从实体区块414-0~414-N中所读取的数据进行反编码转换。值得一提的是,执行此类编码转换的原因主要是闪存相邻的存储单元皆被程序化成相同电位时会较容易发生错误,因此以特殊的编码转换规则将欲写入的数据进行编码转换后再进行写入,可增加数据储存系统400的稳定性。
特别是,控制电路412可执行多种的编码转换规则。例如,将所输入的数据的每一位进行一反相转换(即,“0”变“1”或“1”变“0”),或者将所输入的数据分为数个子数据,并且以子数据为单位将前后的子数据进行对调。
实体区块414-0~414-N的结构与运作方式与实施例1的实体区块130-0~130-N相同,在此不重复说明。
闪存控制器420执行以硬件形式或韧体形式实现的多个逻辑开关或控制指令,并且根据主机系统600的指令在闪存模块410中进行数据的写入、读取与抹除等。
闪存控制器420包括微处理器单元420a、内存管理单元420b、闪存接口单元420c、主机接口单元420d与模式分析单元420e。
微处理器单元420a、闪存接口单元420c与主机接口单元420d的结构与功能与实施例的微处理器单元110a、闪存接口单元110c与主机接口单元110d相同,在此不重复描述。
内存管理单元420b接至微处理器器单元420a,并且用以根据本实施例的管理与写入机制对实体区块414-0~414-N执行写入、读取、抹除等操作。例如,内存管理单元420b执行如图2A~2C所示的操作。类似实施例1的内存管理单元110b,内存管理单元420b以一韧体形式来实现,然而,内存管理单元420b亦可以一软件形式或硬件形式来实现。
模式分析单元420e接至微处理器器单元420a,并且分析内存管理单元420b欲写入至闪存模块410的数据的数据排列模式。此外,模式分析单元420e将此分析信息通过数据模式指令传送至控制电路412。具体来说,在本实施例中,控制电路412具有模式识别单元416,用以从模式分析单元420e中接收与识别关于使用模式的数据(即,上述分析资料)。
特别是,在本实施例中,控制电路412根据模式识别单元416的识别结果而使用其中一种编码转换规则将欲写入的数据进行编码转换后才传送至实体区块414-0~414-N。
此外,在本发明另一实施例中,闪存控制器420更包括错误校正单元(未绘示)以执行一错误校正程序,并且模式分析单元420e会根据错误校正单元的执行结果为每一实体区块414-0~414-N记录是否发生位错误及位错误数的使用模式。同样的,模式分析单元420e将此些分析信息传送给模式识别单元416。
图5是根据本发明实施例2所绘示的数据储存步骤的流程图。必须了解的是,在图5的流程图中虽然仅绘示数据储存系统400处理写入指 令的步骤,但数据处理系统400亦接收与执行其它指令(例如,抹除指令、读取指令)。
请参照图5,当数据储存系统400连接主机系统600并接收到写入指令与欲写入的数据时,在步骤S501中闪存控制器420的模式分析单元420e分析欲写入的数据的数据排列模式,并且在步骤S503中内存管理单元420b将欲写入的数据传送至控制电路412,并且模式分析单元420e将分析的结果传送至模式识别单元416。
之后,在步骤S505中,控制电路412依据模式识别单元416的识别结果使用其中一种编码转换规则将欲写入的数据进行编码转换。最后,在步骤S507中控制电路412将已编码转换的数据写入至实体区块414-0~414-N中。
必须了解的是,由于写入至实体区块414-0~414-N已经过编码转换,因此当主机系统600欲读取储存在数据储存系统400中的数据时,控制电路412依据对应的编码转换规则对欲读取的数据进行反编码转换后,由闪存控制器420将正确的数据传送给主机系统600。
综上所述,本发明提供模式分析单元使得数据储存系统的写入端可分析闪存储存地址与欲写入的数据的使用模式,并且本发明提供模式识别单元使得储存端可依据写入端的分析信息使用对应的处理模式储存欲写入的数据,由此可有效地提升储存系统的储存速度及延长储存系统的使用寿命。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案而非限制。尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者替换并不脱离本发明技术方案的精神和范围。
Claims (25)
1.一种数据储存方法,包括:
提供一储存装置,其中该储存装置具有一控制电路与多个闪存储存地址;
提供一模式分析单元,其中该模式分析单元由一主机来控制;
在该控制电路中配置一模式识别单元;
使用该模式分析单元来记录每一所述闪存储存地址的一使用模式;
通过该模式识别单元接收该模式分析单元传送的信息,以识别所述闪存储存地址的使用模式;以及
依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据。
2.根据权利要求1所述的数据储存方法,其中该储存装置为具有一闪存模块的一闪存储存装置,该主机为一计算机系统,并且所述闪存储存地址为多个逻辑区块,其中该闪存模块具有多个实体区块并且每一逻辑区块对映至少一个实体区块。
3.根据权利要求2所述的数据储存方法,其中使用该模式分析单元来记录每一所述闪存储存地址的使用模式的步骤包括:
使用该模式分析单元来记录每一所述逻辑区块是否属于一频繁更新模式。
4.根据权利要求3所述的数据储存方法,其中使用该模式分析单元来记录每一所述逻辑区块是否属于一频繁更新模式的步骤包括:
将储存一档案系统表的每一所述逻辑区块识别为该频繁更新模式。
5.根据权利要求3所述的数据储存方法,其中使用该模式分析单元来记录每一所述逻辑区块是否属于一频繁更新模式的步骤包括:
将写入次数超过一写入次数阈值的每一所述逻辑区块识别为该频繁 更新模式。
6.根据权利要求3所述的数据储存方法,其中该闪存储存装置具有一缓冲储存区,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
当欲写入该数据的所述逻辑区块属于该频繁更新模式时,则将该数据暂时地储存在该缓冲储存区中。
7.根据权利要求3所述的数据储存方法,其中所述实体区块具有多个下页与多个上页,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
当欲写入该数据的所述逻辑区块属于该频繁更新模式时,则仅在所述下页中写入该数据。
8.根据权利要求3所述的数据储存方法,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
当欲写入该数据的所述逻辑区块属于该频繁更新模式时,则以一混乱写入模式来将该数据写入至所述实体区块中。
9.根据权利要求2所述的数据储存方法,其中使用该模式分析单元来记录每一所述闪存储存地址的使用模式的步骤包括:
使用该模式分析单元来记录每一所述逻辑区块是否属于一连续储存模式。
10.根据权利要求9所述的数据储存方法,其中使用该模式分析单元来记录每一所述逻辑区块是否属于一连续储存模式的步骤包括:
当所述逻辑区块的一大数据写入次数大于一小数据写入次数时,则将对应的所述逻辑区块识别为该连续储存模式。
11.根据权利要求9所述的数据储存方法,其中使用该模式分析单元来记录每一所述逻辑区块是否属于一连续储存模式的步骤包括:
当写入至所述逻辑区块的数据长度大于一数据量阈值时,则将对应的所述逻辑区块识别为该连续储存模式。
12.根据权利要求9所述的数据储存方法,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
当欲写入该数据的所述逻辑区块属于该连续储存模式时,则将该数据直接地写入至欲写入该数据的所述逻辑区块所对应的实体区块中。
13.根据权利要求9所述的数据储存方法,其中该闪存储存装置具有一缓冲储存区,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
当欲写入该数据的所述逻辑区块不属于该连续储存模式时,则将该数据写入至该缓冲储存区或以一混乱写入模式写入至所述实体区块中。
14.根据权利要求1所述的数据储存方法,其中该储存装置为一闪存模块,该主机为一闪存控制器,并且所述闪存储存地址为多个实体区块。
15.根据权利要求14所述的数据储存方法,其中使用该模式分析单元来记录每一所述闪存储存地址的使用模式的步骤包括:
使用该模式分析单元来记录欲写入的该数据的一数据排列模式。
16.根据权利要求15所述的数据储存方法,其中依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的步骤包括:
依据欲写入的该数据的该数据排列模式来编码转换该数据,并且将已编码转换的该数据写入至所述实体区块中。
17.一种数据储存系统,用于在一储存装置的多个闪存储存地址中写入数据,该数据储存系统包括:
用以记录一主机对每一所述闪存储存地址的一使用模式的模式分析 单元;
用以从该模式分析单元中接收信息以识别每一所述闪存储存地址的使用模式的模式识别单元;以及
依据每一所述闪存储存地址的使用模式储存欲写入至每一所述闪存储存地址的数据的装置。
18.根据权利要求17所述的数据储存系统,其中该储存装置为具有一闪存模块的一闪存储存装置,该储存装置具有一控制电路,该控制电路为一闪存控制器,该主机为一计算机系统,并且所述闪存储存地址为多个逻辑区块,
其中该闪存模块具有多个实体区块并且每一逻辑区块对映至少一个实体区块。
19.根据权利要求18所述的数据储存系统,其中该模式分析单元用以记录每一所述逻辑区块是否属于一频繁更新模式作为每一所述逻辑区块的使用模式。
20.根据权利要求19所述的数据储存系统,其中该模式分析单元识别储存一档案系统表的所述逻辑区块为该频繁更新模式。
21.根据权利要求19所述的数据储存系统,其中当所述逻辑区块的写入次数超过一写入次数阈值时,则该模式分析单元识别对应的所述逻辑区块为该频繁更新模式。
22.根据权利要求19所述的数据储存系统,其中该闪存储存装置具有一缓冲储存区,
其中当该模式识别单元识别欲写入该数据的所述逻辑区块属于该频繁更新模式时,则该闪存控制器会将该数据暂时地储存在该缓冲储存区中。
23.根据权利要求19所述的数据储存系统,其中所述实体区块具有多个下页与多个上页,
其中当该模式识别单元识别欲写入该数据的所述逻辑区块属于该频繁更新模式时,则该闪存控制器仅在所述下页中写入该数据。
24.根据权利要求19所述的数据储存系统,其中当欲写入该数据的所述逻辑区块属于该频繁更新模式时,则该闪存控制器以一混乱写入模式来将该数据写入至所述实体区块。
25.根据权利要求22所述的数据储存系统,其中该缓冲储存区包括一动态随机存取内存或一闪存暂存区,其中该闪存暂存区由所述实体区块的至少其中的一所组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101333612A CN101859278B (zh) | 2009-04-07 | 2009-04-07 | 用于闪存的数据储存方法及储存系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101333612A CN101859278B (zh) | 2009-04-07 | 2009-04-07 | 用于闪存的数据储存方法及储存系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101859278A CN101859278A (zh) | 2010-10-13 |
CN101859278B true CN101859278B (zh) | 2013-02-13 |
Family
ID=42945197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101333612A Active CN101859278B (zh) | 2009-04-07 | 2009-04-07 | 用于闪存的数据储存方法及储存系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101859278B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102456401B (zh) * | 2010-10-26 | 2015-04-22 | 群联电子股份有限公司 | 区块管理方法、存储器控制器与存储器储存装置 |
CN102789427B (zh) | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
CN106959818B (zh) * | 2016-01-11 | 2020-03-31 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
TWI664531B (zh) * | 2018-01-25 | 2019-07-01 | 矽創電子股份有限公司 | 快閃記憶體之控制器及控制方法 |
TWI653630B (zh) * | 2018-05-14 | 2019-03-11 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
CN113157601A (zh) * | 2021-05-06 | 2021-07-23 | 北京集创北方科技股份有限公司 | 闪存数据读写方法、装置、存储介质和终端设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1452183A (zh) * | 2002-04-19 | 2003-10-29 | 笙泉科技股份有限公司 | 检测快闪存储器逻辑位址的方法 |
US7275144B2 (en) * | 2001-06-19 | 2007-09-25 | Tdk Corporation | Memory controller, flash memory system employing memory controller and method for controlling flash memory device |
-
2009
- 2009-04-07 CN CN2009101333612A patent/CN101859278B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7275144B2 (en) * | 2001-06-19 | 2007-09-25 | Tdk Corporation | Memory controller, flash memory system employing memory controller and method for controlling flash memory device |
CN1452183A (zh) * | 2002-04-19 | 2003-10-29 | 笙泉科技股份有限公司 | 检测快闪存储器逻辑位址的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101859278A (zh) | 2010-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI385518B (zh) | 用於快閃記憶體的資料儲存方法及儲存系統 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
US8230160B2 (en) | Flash memory storage system and flash memory controller and data processing method thereof | |
US20050204187A1 (en) | System and method for managing blocks in flash memory | |
CN101324867A (zh) | 基于半导体存储介质的数据管理装置及管理方法 | |
CN101859278B (zh) | 用于闪存的数据储存方法及储存系统 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN101957797B (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存系统 | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN101571832A (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN102193869A (zh) | 存储器管理与写入方法及其存储器控制器与储存系统 | |
CN102968385B (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN101944384B (zh) | 用于闪速存储器的数据写入方法及其控制电路与储存系统 | |
CN103218300B (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
CN101727397A (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN102053920B (zh) | 数据写入方法及闪存控制器与闪存存储系统 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN102087632B (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 |