CN101882111A - 用于闪存的数据存取方法、储存系统与控制器 - Google Patents
用于闪存的数据存取方法、储存系统与控制器 Download PDFInfo
- Publication number
- CN101882111A CN101882111A CN200910135942XA CN200910135942A CN101882111A CN 101882111 A CN101882111 A CN 101882111A CN 200910135942X A CN200910135942X A CN 200910135942XA CN 200910135942 A CN200910135942 A CN 200910135942A CN 101882111 A CN101882111 A CN 101882111A
- Authority
- CN
- China
- Prior art keywords
- logical blocks
- blocks
- sub
- group
- argument table
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明提出一种用于闪存的数据存取方法、储存系统与控制器。闪存具有多个实体区块。该多个实体区块区分为一系统区、一数据区与一备用区。一个或多个变量表会被建立以记录上述数据区与备用区的各组母子区块的瞬时信息。上述变量表的数目会依据在该闪存中写入上述变量表的所需时间而适应性地被调整,进而提升储存系统整体的存取效率。
Description
技术领域
本发明涉及一种数据存取方法,且特别涉及一种用于闪存的数据存取方法、储存系统与控制器。
背景技术
数字相机、行动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非挥发性、省电、体积小,以及无机械结构等特性,所以非常适合内置于上述所举例的各种可携式多媒体装置中。此外,以与非(NAND)或或非(NOR)闪存作为储存媒体的储存装置(如记忆卡),因其体积小容量大且携带方便,所以已广泛用于个人重要数据的储存,并使得近年闪存产业成为电子产业中相当热门的一环。
一般来说,储存系统的闪存会划分为多个实体区块并且此些实体区块会分组为数据区(data area)与备用区(spare area)。归类为数据区的实体区块中会储存由写入指令所写入的有效数据,而备用区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当储存系统接受到主机的写入指令而欲对数据区的实体区块进行写入时,储存系统会从备用区中提取一实体区块并且将在数据区中欲写入的实体区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块,且将已写入新数据的实体区块关联为数据区,并将原本数据区的实体区块进行抹除并关联为备用区。
为了能够让主机存取以轮替方式储存数据的实体区块,储存系统会提供逻辑区块给主机以进行数据存取。具体来说,储存系统会维护一逻辑-实体区块对映表(logical block-physical block mapping table)来记录逻辑区块与数据区中之实体区块的对映关系。同时,当储存系统执行写入指令而使数据区的实体区块与备用区的实体区块进行替换时,储存系统会更新逻辑-实体区块对映表,以利于后续正确地存取。
此外,为了能无误地使用备用区的实体区块,储存系统会将备用区与数据区之间的各组母子区块的瞬时信息记录在单一个变量表(Variable Table)中。
当备用区与数据区之间的任一组母子区块的瞬时信息有所更动后,上述的变量表即需要更新。然而,当储存系统的记忆容量越来越大的情况下而导致需要更大的变量表时,更新变量表所需的时间就会太长,而导致储存系统的效能低落。
发明内容
本发明提供一种数据存取方法,其能够将更新变量表所需的时间限制在一处理时间上限值以下,进而提升储存系统整体的存取效率。
此外,本发明提供一种控制器,其使用上述数据存取方法来存取闪存,以控制更新变量表所需的时间,并提升储存系统整体的存取效率。
再者,本发明提供一种储存系统,其使用上述数据存取方法来存取闪存,以控制更新变量表所需的时间,并提升储存系统整体的存取效率。
本发明提出一种数据存取方法,其包括提供一闪存以及配置多个逻辑区块,其中闪存具有多个实体区块且每一逻辑区块对映至少一实体区块。本数据存取方法也包括配置一变量表以记录关于逻辑区块的母子区块瞬时信息。本数据存取方法也包括判断在闪存中写入此变量表的所需时间是否大于一处理时间上限值,并且当判断出所需时间大于处理时间上限值时,将逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,并将上述变量表至少分割为一第一子变量表和一第二子变量表。此外,本数据存取方法还包括依据第一子变量表在对映第一逻辑区块群组的逻辑区块的实体区块中存取数据,并且依据第二子变量表在对映第二逻辑区块群组的逻辑区块的实体区块中存取数据。
本发明提出一种数据存取方法,其包括提供一闪存以及配置多个逻辑区块,其中闪存具有多个实体区块且每一逻辑区块对映至少一实体区块。本数据存取方法也包括将逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,配置对应第一逻辑区块群组的一第一子变量表,配置对应第二逻辑区块群组的一第二子变量表,其中第一子变量表至少记录关于第一逻辑区块群组的逻辑区块的母子区块瞬时信息,而第二子变量表至少记录关于第二逻辑区块群组的逻辑区块的母子区块瞬时信息。此外,本数据存取方法还包括依据第一子变量表在对映第一逻辑区块群组的逻辑区块的实体区块中存取数据,并且依据第二子变量表在对映第二逻辑区块群组的逻辑区块的实体区块中存取数据。
本发明提出一种控制器,适用于控制一闪存,其中闪存具有多个实体区块,本控制器包括微处理器单元、闪存接口与内存管理单元。闪存接口电性连接于微处理器单元和闪存之间。内存管理单元电性连接至微处理器单元,用以配置多个逻辑区块,其中每一逻辑区块对映至少一实体区块。内存管理单元将逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,配置对应第一逻辑区块群组的一第一子变量表,配置对应第二逻辑区块群组的一第二子变量表,依据第一子变量表存取对映第一逻辑区块群组的逻辑区块的实体区块,并且依据第二子变量表存取对映第二逻辑区块群组的逻辑区块的实体区块,其中第一子变量表至少记录关于第一逻辑区块群组的逻辑区块的母子区块瞬时信息,而第二子变量表至少记录关于第二逻辑区块群组的逻辑区块的母子区块瞬时信息。
本发明提出一种储存系统,其包括连接器、闪存与控制器,其中闪存具有多个实体区块。控制器电性连接至连接器与闪存,用以配置多个逻辑区块,其中每一逻辑区块对映至少一实体区块。此外,控制器将逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,配置对应第一逻辑区块群组的一第一子变量表,配置对应第二逻辑区块群组的一第二子变量表,依据第一子变量表存取对映第一逻辑区块群组的逻辑区块的实体区块,并且依据第二子变量表存取对映该第二逻辑区块群组的逻辑区块的实体区块,其中第一子变量表至少记录关于第一逻辑区块群组的逻辑区块的母子区块瞬时信息,而第二子变量表至少记录关于第二逻辑区块群组的逻辑区块的母子区块瞬时信息。
本发明使用一个或多个变量表来管理数据区和备用区的母子区块的瞬时信息,上述变量表的数目会依据在该闪存中写入上述变量表的所需时间而适应性地被调整,进而提升储存系统整体的存取效率。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合附图,作详细说明如下。
附图说明
图1为本发明实施例绘示的储存系统的概要方块图。
图2A为根据本发明一实施例所绘示的闪存的运作示意图之一。
图2B为根据本发明一实施例所绘示的闪存的运作示意图之二。
图2C为根据本发明一实施例所绘示的闪存的运作示意图之三。
图3为本发明一实施例所绘示的分组逻辑区块及分割变量表的示意图。
图4为本发明一实施例数据存取方法的流程图。
附图标记说明
100:储存系统; 110:控制器;
110a:微处理器单元; 110b:内存管理单元;
110c:闪存接口; 110d:缓冲存储器;
120:连接器; 130:闪存;
130-0~130-N:实体区块; 200:主机;
202:系统区; 204:数据区;
206:备用区; 210:储存区;
220:取代区; 250-1~250-M:逻辑区块;
212-1~212-6:逻辑-实体区块对映表; 214:变量表
214a:第一子变量表 214b:第二子变量表;
250a:第一逻辑区块群组; 250b:第二逻辑区块群组;
D:使用者数据区; R:冗余区;
S51、S53、S55、S57:数据存取步骤。
具体实施方式
图1为本发明实施例绘示的储存系统的概要方块图。请参照图1,储存系统100包括控制器110、连接器120以及闪存130。
通常储存系统100会与主机200一起使用,以使主机200可将数据写入至储存系统100或从储存系统100中读取数据。在本实施例中,储存系统100为固态硬盘(Solid State Drive,SSD)。但必须了解的是,在本发明另一实施例中储存系统100亦可以是记忆卡或随身碟。
控制器110会执行以硬件形式或韧体形式实现的多个指令以配合连接器120与闪存130以进行数据的储存、读取与抹除等运作。控制器110包括微处理器单元110a、内存管理单元110b、闪存接口110c与缓冲存储器110d。
微处理器单元110a用以与内存管理单元110b、闪存接口110c与缓冲存储器110d等协同合作以进行储存系统100的各种运作。
内存管理单元110b是电性连接至微处理器单元110a。内存管理单元110b具有可由微处理器单元110a执行的多个机器指令以管理闪存130,例如执行平均磨损(wear leveling)功能、坏区块管理功能、维护变量表、维护逻辑-实体区块对映表功能等的机器指令。在本实施例中,内存管理单元110b与微处理器单元110a为控制器110的两个不同单元,而在本发明的一实施例中,内存管理单元110b与微处理器单元110a是整合在控制器110的同一个单元中。
在本实施例中,内存管理单元110b是以一韧体形式来实现在控制器110中,例如以程序语言撰写程序相关机械指令并且储存于程序内存(例如,只读存储器(Read Only Memory,ROM))来实现内存管理单元110b,其中当储存系统100运作时,内存管理单元110b的多个机械指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行以完成上述平均磨损功能、坏区块管理功能、维护变量表、维护逻辑-实体区块对映表功能等。
在本发明另一实施例中,亦可将内存管理单元110b的机械指令以软件形式储存于闪存130的特定区域(例如,下述的系统区202)中,而当储存系统100运作时,内存管理单元110b的多个机器指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行。此外,在本发明另一实施例中内存管理单元110b亦可以一硬件形式实现在控制器110中。
闪存接口110c电性连接于微处理器单元110a和闪存130之间,用以存取闪存130。主机200欲写入至闪存130的数据会经由闪存接口110c转换为闪存130所能接受的格式。
缓冲存储器110d是电性连接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑-实体区块对映表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储器110d为静态随机存取内存(Static Random AccessMemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取内存(Dynamic Random Access Memory,DRAM)、磁阻式内存(MagnetoresistiveRandom Access Memory,MRAM)、相变化内存(Phase Change Random AccessMemory,PRAM)或其它适合的内存亦可应用于本发明。
此外,虽未绘示于本实施例,但控制器110可还包括错误校正模块与电源管理模块等用于控制闪存的一般功能模块。
连接器120用以透过总线300连接主机200。在本实施例中,连接器120为SATA接口。然而,必须了解的是本发明不限于此,连接器120亦可以是USB接口、IEEE 1394接口、PCI Expres s接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存130电性连接至控制器110并且用以储存数据。闪存130会分割为多个实体区块(physical block)130-0至130-N。一般而言,在闪存中实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的记忆单元。每一实体区块通常会分割为数个页面(page)。页面通常为程序化(program)的最小单元。但要特别说明的是于有些不同的闪存设计,最小的程序化单位也可为一个扇区(sector)。也就是说,一页面中有多个扇区并以一扇区为程序化的最小单元。换言之,页面为写入数据或读取数据的最小单元。每一页面通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(errorcorrecting code,ECC))。
为对应于磁盘驱动器的扇区大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。
一般而言,实体区块可由任意数目的页面所组成,例如64个页面、128个页面、256个页面等。实体区块130-0至130-N通常也可被分组为数个区域(zone),以区域来管理内存某种程度上是彼此独立地操作,以增加操作执行的平行程度并简化管理的复杂度。
图2A为根据本发明一实施例所绘示的闪存的运作示意图之一,图2B为根据本发明一实施例所绘示的闪存的运作示意图之二,图2C为根据本发明一实施例所绘示的闪存的运作示意图之三。
必须了解的是,在此描述闪存实体区块的运作时,以“提取”、“搬移”、“交换”、“替换”、“轮替”、“分组”等词来操作闪存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中的实体区块为空或可使用的单元,即无记录数据或标记为已没用的无效数据。具体来说,由于在闪存130中每个地址在被抹除之前仅能程序化一次,因此若要对已写过资料位置再次写入资料时,必须先执行抹除的动作。然而,如前所述闪存130的写入单位为页面,其小于以实体区块为单位的抹除单位。因此,若要执行实体区块的抹除动作时,必须先将欲抹除实体区块中的有效页面地址的数据复制至其它实体区块后才可进行实体区块的抹除动作。基此,在本实施例中,数据区204与备用区206的实体区块会以轮替方式来储存主机200写入至储存系统100的数据。
闪存130的实体区块会以轮替方式提供计算机主机200来储存数据,因此,在本实施例中逻辑区块250-1~250-M会提供给主机系统200以进行数据存取,并且内存管理单元110b会透过一转换层290来将逻辑区块对映至数据区204与备用区206的实体区块。
转换层290包括多个逻辑-实体区块对映表(例如,逻辑-实体区块对映表212-1~212-6)。内存管理单元110b会维护逻辑-实体区块对映表212-1~212-6来依序地记录每一逻辑区块250-1~250-M所对映的实体区块,以利数据的存取。也就是说,逻辑-实体区块对映表212-1~212-6会根据逻辑区块250-1~250-M的顺序分别地记录部分的逻辑区块与其所对映的实体区块的对映关系。必须了解的是,虽然在本实施例中转换层290包括6个逻辑-实体区块对映表来记录每一逻辑区块所对映的实体区块,然而本发明不限于,在本发明另一实施例中,转换层290可包括更多或更少的逻辑-实体区块对映表来以更分散或更集中方式记录所有逻辑区块所对映的实体区块。
请同时参照图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中缓冲存储器110d的大小而定,而暂时地维持此种瞬时关系的动作一般称为开启(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),由此完成关闭母子区块的动作。
值得一提的是,转换层290更包括变量表214,变量表214会储存一组或多组母子区块的瞬时信息。具体来说,变量表214是对应逻辑-实体区块对映表212-1~212-6,以储存逻辑-实体区块对映表212-1~212-6所记录之逻辑区块于开启母子区块时的对映关系,其中每一组母子区块的瞬时信息会记录该组母子区块的子实体区块所对映逻辑区块的地址。变量表214所储存的母子区块的组数可依据控制器110中缓冲存储器110d的大小而定,例如在本发明的一实施例中,变量表214通常可储存8组母子区块的瞬时信息。
此外,变量表214会被储存在系统区202的实体区块中。而在将变量表214写入至系统区202之前,内存管理单元110b会判断在闪存130中写入变量表214的所需时间是否将会大于一处理时间上限值。其中,上述的处理时间上限值可依据控制器110与闪存130之间相关的数据传输时间、程序化时间来决定,但须知本发明并不以此为限。以每一个页面的容量为4K字节为例,假设当欲程序化一个页面时,控制器110将数据传送到闪存130所需的时间为130微秒,而该页面被程序化所需的时间为200微秒,则可将上述的处理时间上限值设为330微秒(即,130微秒加上200微秒)。
当内存管理单元110b判断在闪存130中写入变量表214的所需时间大于上述处理时间上限值时,内存管理单元110b将逻辑区块250-1~逻辑区块250-M进行分组,并且依据分组将变量表214分割为数个子变量表,其中在闪存130中写入1个子变量表的时间是小于上述处理时间上限值。
图3为本发明实施例所绘示的分组逻辑区块及分割变量表的示意图。
请参照图3,逻辑区块250-1~逻辑区块250-M会被分组为一第一逻辑区块群组250a和一第二逻辑区块群组250b,而变量表214会被分割对应第一逻辑区块群组250a的一第一子变量表214a和对应第二逻辑区块群组250b的一第二子变量表214b。
在本实施例中,内存管理单元110b是依照逻辑区块250-1~逻辑区块250-M的连续顺序将前半部份的逻辑区块(例如,逻辑区块250-1~逻辑区块250-K)区分为第一逻辑区块群组250a,并且将后半部份的逻辑区块(例如,逻辑区块250-(K+1)~逻辑区块250-M)区分为第二逻辑区块群组250b。必须了解的是,本发明不限于此,在本发明另一实施例中,内存管理单元110b亦可以奇偶间隔方式(例如,编号为奇数的逻辑区块分为一组而编号为偶数的逻辑区块分为另一组)或以随机方式来将逻辑区块250-1~逻辑区块250-M进行分组。此外,在本发明另一实施例中,内存管理单元110b会建立一逻辑区块分组表来管理逻辑区块250-1~逻辑区块250-M的分组。
值得一提的是,第一子变量表214a与第二子变量表214b是分别地对应部分的逻辑区块,因此第一子变量表214a和第二子变量表214b分别地仅需记录部分逻辑区块开启母子区块时的瞬时信息及对应的备用区的实体区块的信息。例如,倘若最多可开启母子区块的组数为8组且备用区206配置有20个实体区块时,内存管理单元110b可分配第一逻辑区块群组250a的逻辑区块和第二逻辑区块群组250b的逻辑区块最多可分别开启4组母子区块,且内存管理单元110b分别使用备用区206中对应的10个实体区块来对第一逻辑区块群组与第二逻辑区块群组的逻辑区块执行开启母子区块的运作。
特别是,原变量表214需记录8组母子区块的瞬时信息与备用区206中20个实体区块的信息,而第一子变量表214a和第二子变量表214b分别地仅需记录4组母子区块的瞬时信息和10个实体区块的信息。因此,第一子变量表214a和第二子变量表214b的档案大小会小于变量表214的档案大小。
在本发明另一实施例中,每一逻辑区块群组最多可开启的母子区块组数亦可不相同,例如,当最多可开启母子区块的组数为8组时,内存管理单元110b可分配第一逻辑区块群组250a的逻辑区块最多可开启6组母子区块和第二逻辑区块群组250b的逻辑区块最多可开启2组母子区块。
值得一提的是,当变量表214被分割为第一子变量表214a和第二子变量表214b时,由于内存管理单元110b会在第一子变量表214a和第二子变量表214b中分别地记录部分逻辑区块开启母子区块时的瞬时信息,因此在第一子变量表214a和第二子变量表214b中分别地仅对应部分的逻辑-实体区块对映表。例如,在本实施例中,第一子变量表214a会对应逻辑-实体区块对映表212-1、212-2与212-3,而第二子变量表214b会对应逻辑-实体区块对映表212-4、212-5与212-6。
基于上述,当主机200对储存系统100下达存取指令以从闪存130的逻辑区块中存取数据,内存管理单元110b会查询此逻辑区块属于哪个逻辑区块群组,并且对应的子变量表读取对应的逻辑-实体区块对映表,由此将存取指令中的逻辑区块转换为对映的实体区块以进行存取。
图4为本发明一实施例数据存取方法的流程图。
请参照图4,首先,在步骤S51中,内存管理单元110b会判断在闪存130中写入变量表214的所需时间是否将会大于上述处理时间上限值。其中,当判断出在闪存130中写入变量表214的所需时间将会大于上述处理时间上限值时,则进行步骤S53,此时内存管理单元110b会将逻辑区块250-1~逻辑区块250-M进行分组,并依据分组将变量表214分割为数个子变量表。然而,倘若于步骤S51中,上述所需时间将会小于或等于上述处理时间上限值时,则进行步骤S55,而内存管理单元110b会将目前的变量表(即,变量表214)写入至系统区202。相同地,当进行完步骤S53后,会进行步骤S55,此时内存管理单元110b会将目前所有的变量表(例如,第一子变量表214a和第二子变量表214b)写入至系统区202。最后,在步骤S57中根据对应的变量表在对映逻辑区块的实体区块中存取数据。
在本发明的一实施例中,当内存管理单元110b因进行完步骤S53而进行步骤S55时,内存管理单元110b会将多个子变量表(例如,第一子变量表214a和第二子变量表214b)分别完整地储存在系统区202中的不同实体区块的单一页面中,且每一子变量表的大小都不超过单一页面的储存容量。例如,第一子变量表214a会被完整地储存在系统区202中的某一页面当中,而第二子变量表214b会被完整地储存在系统区202中的另一页面当中。如此一来,倘若第一子变量表214a所记录的内容有所变动而第二子变量表214b所记录的内容没有变动,则只需更新储存第一子变量表214a至另一页面即可。相对地,倘若第二子变量表214b所记录的内容有所变动而第一子变量表214a所记录的内容没有变动,则只需更新储存第二子变量表214b至另一页面即可。因此,相较于现有技术在更新单一变量表时会因为变量表太大而更新耗时没效率,本发明更新变量表时的效率会因适应性地采用一个或多个变量表而有较佳的效率。
此外,在本发明的另一实施例中,会进一步地让用以储存第一子变量表214a和第二子变量表214b的两个页面属于两个不同的实体区块,而当更新第一子变量表214a或第二子变量表214b时,其内容有变更过的第一子变量表214a或第二子变量表214b会被储存至所在的实体区块中的另一页面。举例来说,假设第一子变量表214a和第二子变量表214b分别记录在系统区202中实体区块130-0的第一页面及实体区块130-1的第1页面,则当第一子变量表214a的内容有所变更而第二子变量表214b的内容未变更时,第二子变量表214b仍旧会被储存在上述实体区块130-1的第一页面中,至于更新之第一子变量表214则会被储存至系统区202中实体区块130-0的第二页面中,且内存管理单元110b会将实体区块130-0的第一页面的数据标记为已没用的无效数据。
值得一提的是,图4所绘示的步骤是于储存系统100运作期间判断在闪存130中写入变量表的时间是否会大于处理时间上限值,由此内存管理单元110b会动态地将变量表分割为数个子变量表。然而,本发明不限于此,储存系统100的制造商可根据储存系统的硬件信息,直接地在转换层中配置多个上述的子变量表给内存管理单元110b来使用以管理逻辑区块与实体区块的对应关系。
例如,数据区204和备用区206的母子区块组数会影响变量表的大小,进而影响将变量表写入系统区202所将会花费的时间。因此,在储存系统100被设计为可开启母子区块的组数大于一第一阈值的实施例中,转换层290会配置多个变量表(例如,第一子变量表214a与第二子变量表214b),并且内存管理单元110b会维护所配置的多个变量表来记录储存系统100中母子区块的瞬时信息。在此,第一阈值设定为16组,然而,本发明并不以此为限。
例如,变量表是用以记录备用区206中的每个实体区块的相关信息,例如备用区206中每个实体区块的已经被抹除的次数以及每个实体区块的地址。因此,当备用区206所具有的实体区块数目越多时,变量表所需要记录的信息也会越多,而使得将写入变量表至系统区202所需要的时间也会越长。因此,在储存系统100的备用区206具有超过一第二阈值的实体区块数的实施例中,转换层290会配置多个变量表(例如,第一子变量表214a与第二子变量表214b),并且内存管理单元110b会维护所配置的多个变量表来记录储存系统100中母子区块的瞬时信息及备用区206之实体区块的信息。以储存容量为512GB的固态硬盘为例,备用区206大约需要具有4096个实体区块,故在本实施例中,上述第二阈值设定为4096,然而,本发明并不以此为限。
综上所述,本发明使用变量表的数目是可变的架构,以对闪存中的数据区和备用区的实体区块进行存取。一个或多个变量表会被用来管理闪存中的数据区和备用区的母子区块的瞬时信息,而上述变量表的数目会依据在闪存中写入上述变量表的所需时间而适应性地被调整。对于具有大储存容量的储存系统而言,因更新变量表所需的时间不会超过处理时间上限值,故可使储存系统整体的效率得以提升。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (21)
1.一种数据存取方法,包括:
提供一闪存,其中该闪存具有多个实体区块;
配置多个逻辑区块,其中每一所述逻辑区块对映至少一实体区块;
配置一变量表以记录关于所述逻辑区块的母子区块瞬时信息;
判断在该闪存中写入该变量表的所需时间是否大于一处理时间上限值;
当判断出该所需时间大于该处理时间上限值时,将所述逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,并将该变量表至少分割为一第一子变量表和一第二子变量表;
依据该第一子变量表在对映该第一逻辑区块群组的逻辑区块的实体区块中存取数据;以及
依据该第二子变量表在对映该第二逻辑区块群组的逻辑区块的实体区块中存取数据。
2.根据权利要求1所述的数据存取方法,其中判断在该闪存中写入该变量表的所需时间是否大于一处理时间上限值的步骤包括:
判断该闪存的母子区块组数是否大于一第一阈值,其中当该闪存的母子区块组数大于该第一阈值时,则判断该所需时间是大于该处理时间上限值。
3.根据权利要求1所述的数据存取方法,其中所述实体区块被区分为至少一系统区、一数据区与一备用区,其中判断在该闪存中写入该变量表的所需时间是否大于一处理时间上限值的步骤包括:
判断该闪存的备用区的实体区块数量是否大于一第二阈值,其中当该闪存的备用区的实体区块数量大于该第二阈值时,则判断该所需时间是大于该处理时间上限值。
4.根据权利要求1所述的数据存取方法,其中将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组的步骤包括:
以一连续依序方式、一奇偶间隔方式或一随机方式将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组。
5.根据权利要求1所述的数据存取方法,其中该第一子变量表至少记录关于该第一逻辑区块群组的逻辑区块的母子区块瞬时信息,并且该第二子变量表至少记录关于该第二逻辑区块群组的逻辑区块的母子区块瞬时信息。
6.根据权利要求1所述的数据存取方法,其中每一实体区块具有多个页面,而该第一子变量表和该第二子变量表会被分别完整地储存在该系统区中的不同实体区块的单一页面中。
7.一种数据存取方法,包括:
提供一闪存,其中该闪存具有多个实体区块;
配置多个逻辑区块,其中每一所述逻辑区块对映至少一实体区块;
将所述逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组;
配置对应该第一逻辑区块群组的一第一子变量表,其中该第一子变量表至少记录关于该第一逻辑区块群组的逻辑区块的母子区块瞬时信息;
配置对应该第二逻辑区块群组的一第二子变量表,其中该第二子变量表至少记录关于该第二逻辑区块群组的逻辑区块的母子区块瞬时信息;
依据该第一子变量表在对映该第一逻辑区块群组的逻辑区块的实体区块中存取数据;以及
依据该第二子变量表在对映该第二逻辑区块群组的逻辑区块的实体区块中存取数据。
8.根据权利要求7所述的数据存取方法,其中将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组的步骤包括:
以一连续依序方式、一奇偶间隔方式或一随机方式将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组。
9.根据权利要求7所述的数据存取方法,还包括配置多个逻辑-实体区块对映表。
10.根据权利要求9所述的数据存取方法,还包括依据该第一逻辑区块群组与该第二区块群组将所述逻辑-实体区块对映表分组以对应该第一子变量表与该第二子变量表。
11.根据权利要求7所述的数据存取方法,其中该第一子变量表与该第二子变量表的档案大小分别地小于该闪存的一页面的容量。
12.一种控制器,用于控制一闪存,其中该闪存具有多个实体区块,该控制器包括:
一微处理器单元;
一闪存接口,电性连接于该微处理器单元和该闪存之间;以及
一内存管理单元,电性连接至该微处理器单元,用以配置多个逻辑区块,其中每一所述逻辑区块对映至少一实体区块,
其中该内存管理单元将所述逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,并配置对应该第一逻辑区块群组的一第一子变量表,配置对应该第二逻辑区块群组的一第二子变量表,依据该第一子变量表存取对映该第一逻辑区块群组的逻辑区块的实体区块,并且依据该第二子变量表存取对映该第二逻辑区块群组的逻辑区块的实体区块,
其中该第一子变量表至少记录关于该第一逻辑区块群组的逻辑区块的母子区块瞬时信息,
其中该第二子变量表至少记录关于该第二逻辑区块群组的逻辑区块的母子区块瞬时信息。
13.根据权利要求12所述的控制器,其中该内存管理单元以一连续依序方式、一奇偶间隔方式或一随机方式将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组。
14.根据权利要求12所述的控制器,其中该内存管理单元更用以配置多个逻辑-实体区块对映表。
15.根据权利要求14所述的控制器,其中该内存管理单元还用以依据该第一逻辑区块群组与该第二区块群组将所述逻辑-实体区块对映表分组以对应该第一子变量表与该第二子变量表。
16.根据权利要求12所述的控制器,其中该第一子变量表与该第二子变量表的档案大小分别地小于该闪存的一页面的容量。
17.一种储存系统,包括:
一连接器;
一闪存,具有多个实体区块;以及
一控制器,电性连接至该连接器与该闪存,用以配置多个逻辑区块,其中每一所述逻辑区块对映至少一实体区块,
其中该控制器将所述逻辑区块至少区分为一第一逻辑区块群组和一第二逻辑区块群组,配置对应该第一逻辑区块群组的一第一子变量表,配置对应该第二逻辑区块群组的一第二子变量表,依据该第一子变量表存取对映该第一逻辑区块群组的逻辑区块的实体区块,并且依据该第二子变量表存取对映该第二逻辑区块群组的逻辑区块的实体区块,
其中该第一子变量表至少记录关于该第一逻辑区块群组的逻辑区块的母子区块瞬时信息,
其中该第二子变量表至少记录关于该第二逻辑区块群组的逻辑区块的母子区块瞬时信息。
18.根据权利要求17所述的储存系统,其中该控制器以一连续依序方式、一奇偶间隔方式或一随机方式将所述逻辑区块至少区分为该第一逻辑区块群组和该第二逻辑区块群组。
19.根据权利要求17所述的储存系统,其中该控制器还用以配置多个逻辑-实体区块对映表。
20.根据权利要求19所述的储存系统,其中该控制器还用以依据该第一逻辑区块群组与该第二区块群组将所述逻辑-实体区块对映表分组以对应该第一子变量表与该第二子变量表。
21.根据权利要求17所述的储存系统,其中该第一子变量表与该第二子变量表的档案大小分别地小于该闪存的一页面的容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135942XA CN101882111B (zh) | 2009-05-05 | 2009-05-05 | 用于闪存的数据存取方法、储存系统与控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910135942XA CN101882111B (zh) | 2009-05-05 | 2009-05-05 | 用于闪存的数据存取方法、储存系统与控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101882111A true CN101882111A (zh) | 2010-11-10 |
CN101882111B CN101882111B (zh) | 2012-05-09 |
Family
ID=43054128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910135942XA Active CN101882111B (zh) | 2009-05-05 | 2009-05-05 | 用于闪存的数据存取方法、储存系统与控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101882111B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890655A (zh) * | 2011-07-20 | 2013-01-23 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与有效数据识别方法 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN107193505A (zh) * | 2017-06-14 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种固态硬盘的读写方法、固态硬盘和数据处理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1617109A (zh) * | 2003-11-11 | 2005-05-18 | 群联电子股份有限公司 | 母和子架构下建立子区块检查页及逻辑页的链接方法 |
CN101364205B (zh) * | 2005-06-01 | 2010-09-15 | 旺玖科技股份有限公司 | 闪存储存系统 |
-
2009
- 2009-05-05 CN CN200910135942XA patent/CN101882111B/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102890655A (zh) * | 2011-07-20 | 2013-01-23 | 群联电子股份有限公司 | 存储器储存装置、其存储器控制器与有效数据识别方法 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN104391804B (zh) * | 2014-10-28 | 2017-11-28 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN107193505A (zh) * | 2017-06-14 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种固态硬盘的读写方法、固态硬盘和数据处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101882111B (zh) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
TWI385518B (zh) | 用於快閃記憶體的資料儲存方法及儲存系統 | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101414282B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101419834B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101571832A (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN101527169A (zh) | 闪存数据写入方法及其控制器 | |
CN101957797A (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存系统 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101859278B (zh) | 用于闪存的数据储存方法及储存系统 | |
CN101866320A (zh) | 数据管理方法及使用此方法的闪存储存系统与控制器 | |
CN102999437B (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN101882111B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN101957799B (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 |