CN101630233B - 用于闪存的数据存取方法、储存系统与控制器 - Google Patents
用于闪存的数据存取方法、储存系统与控制器 Download PDFInfo
- Publication number
- CN101630233B CN101630233B CN2008101338537A CN200810133853A CN101630233B CN 101630233 B CN101630233 B CN 101630233B CN 2008101338537 A CN2008101338537 A CN 2008101338537A CN 200810133853 A CN200810133853 A CN 200810133853A CN 101630233 B CN101630233 B CN 101630233B
- Authority
- CN
- China
- Prior art keywords
- physical blocks
- data
- new data
- random
- write
- 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提出一种用于存取闪存的数据存取方法及使用此方法的储存系统与控制器。此数据存取方法包括将闪存的多个物理区块分组为数据区、备用区与随机区以及当从主机中接收到写入指令与欲写入的新数据时判断新数据是否为连续数据,其中当新数据不为连续数据时则将新数据暂时地写入至随机区的物理区块中。基此,可减少数据搬移与物理区块抹除的次数以提升在随机写入模式中数据存取的速度。
Description
技术领域
本发明是有关于一种数据存取方法,且特别是有关于一种存取闪存的数据存取方法及使用此方法的储存系统与控制器。
背景技术
数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。存储卡就是一种以与非(NAND)闪存作为储存媒体的储存装置。由于存储卡体积小容量大且携带方便,所以已广泛用于个人重要数据的储存。因此,近年闪存产业成为电子产业中相当热门的一环。
一般来说,闪存储存系统的闪存会划分为多个物理区块并且此些物理区块会分组为数据区(data area)与备用区(spare area)。归类为数据区的物理区块中会储存由写入指令所写入的有效数据,而备用区中的物理区块是用以在执行写入指令时替换数据区中的物理区块。具体来说,当闪存储存系统接受到主机的写入指令而欲对数据区的物理区块进行写入时,闪存储存系统会从备用区中提取物理区块并且将在数据区中欲写入的物理区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的物理区块并且将已写入新数据的物理区块关联为数据区,并且将原本数据区的物理区块进行抹除并关联为备用区。
为了能够让主机存取以轮替方式储存数据的物理区块,闪存储存系统会提供逻辑区块给主机以进行数据存取。具体来说,闪存储存系统会维护逻辑区块与物理区块映射表来记录逻辑区块与数据区中的物理区块的映射关系。同时,当闪存储存系统执行写入指令而使数据区的物理区块与备用区的物理区块进行替换时,闪存储存系统会更新逻辑区块与物理区块映射表以利后续正确地存取。
然而,在上述架构下倘若闪存储存系统不断被主机要求写入属于不同逻辑区块的少量数据时,闪存储存系统必须不断地执行上述从备用区中提取物理区块、搬移数据与抹除物理区块的操作。因此,闪存储存系统就必须耗费相当多的时间进行数据的搬移与物理区块的抹除,由此会严重地影响闪存储存系统的效能。
发明内容
有鉴于此,本发明提供一种数据存取方法,其能够减少数据搬移与物理区块抹除的次数,由此提升在随机写入模式中闪存储存系统的存取速度。
此外,本发明提供一种控制器,其使用上述数据存取方法来存取闪存,以减少数据搬移与物理区块抹除的次数,由此提升在随机写入模式中闪存储存系统的存取速度。
再者,本发明提供一种储存系统,其使用上述数据存取方法来存取闪存,以减少数据搬移与物理区块抹除的次数,由此提升在随机写入模式中数据存取的速度。
本发明提出一种数据存取方法,适用于存取闪存,其中闪存具有多个物理区块,此数据存取方法包括将物理区块分组为数据区、备用区与随机区。此外,此数据存取方法还包括当从主机中接收到写入指令与欲写入的新数据时判断新数据是否为连续数据,其中当新数据为连续数据时则提取备用区的物理区块的其中之一作为对应欲写入新数据的物理区块的替换物理区块且将新数据写入至替换物理区块中,并且当新数据不为连续数据时将新数据暂时地写入至随机区的物理区块中。
在本发明的一实施例中,上述的判断新数据是否为连续数据的步骤包括当新数据的数据量小于预先定义值时则判断新数据不为连续数据。
在本发明的一实施例中,上述的数据存取方法还包括在判断新数据是否为连续数据之前先判断是否存有对应欲写入新数据的物理区块的替换物理区块,其中当存有对应欲写入新数据的物理区块的替换物理区块时则直接写入新数据至对应欲写入新数据的物理区块的替换物理区块中。
在本发明的一实施例中,上述的数据存取方法还包括建立与更新随机区索引表以记录关于在随机区的每一物理区块中所储存的数据的信息。
在本发明的一实施例中,上述的数据存取方法还包括当暂时地写入新数据至随机区的物理区块时在逻辑区块与物理区块映射表中对应欲写入新数据的物理区块的记录上产生标记以表示新数据被暂时地写入随机区的物理区块中。
在本发明的一实施例中,上述的数据存取方法还包括当随机区的物理区块皆已写入数据时则从备用区中提取至少一个物理区块并且将随机区的至少一个物理区块中的数据和其对应数据区的物理区块中的有效数据写入至至少一个物理区块中。
在本发明的一实施例中,上述的将物理区块分组为数据区、备用区与随机区的步骤包括将物理区块划分为多个区域以及将每一区域的物理区块独立地分组为数据区、备用区与随机区。
在本发明的一实施例中,上述的区域的随机区分别地具有不同数目的物理区块。
在本发明的一实施例中,上述的数据存取方法还包括仅从备用区中提取预定数目的物理区块作为替换物理区块。
在本发明的一实施例中,上述的当新数据不为连续数据时将新数据暂时地写入至随机区的物理区块中的步骤包括当判断新数据不为该连续数据时判断替换物理区块的数目是否为预定数目,其中当替换物理区块的数目为预定数目时将新数据暂时地写入随机区的物理区块中以及当替换物理区块的数目是否不为预定数目时则提取备用区的物理区块的其中之一作为对应欲写入新数据的物理区块的替换物理区块并且将新数据写入至此替换物理区块中。
本发明提出一种控制器,其适用于具有闪存的快闪储存系统,其中闪存具有多个物理区块,此控制器包括微处理器单元、闪存接口、缓冲存储器与存储器管理模块。闪存接口、缓冲存储器与存储器管理模块是电性连接至微处理器单元,其中存储器管理模块具有可由微处理器单元执行的多个机器指令以对闪存进行多个数据存取步骤,此些数据存取步骤包括将物理区块分组为数据区、备用区与随机区。此外,此些数据存取步骤还包括当从主机中接收到写入指令与欲写入的新数据时判断新数据是否为连续数据,其中当新数据为连续数据时则提取备用区的物理区块的其中之一作为对应欲写入新数据的物理区块的替换物理区块且将新数据写入至替换物理区块中,并且当新数据不为连续数据时将新数据暂时地写入至随机区的物理区块中。
在本发明的一实施例中,上述的判断新数据是否为连续数据的步骤包括当新数据的数据量小于预先定义值时则判断新数据不为连续数据。
在本发明的一实施例中,上述的数据存取步骤还包括在判断新数据是否为连续数据之前先判断是否存有对应欲写入新数据的物理区块的替换物理区块,其中当存有对应欲写入新数据的物理区块的替换物理区块时则直接写入新数据至对应欲写入新数据的物理区块的替换物理区块中。
在本发明的一实施例中,上述的数据存取步骤还包括建立与更新随机区索引表以记录关于在随机区的每一物理区块中所储存的数据的信息。
在本发明的一实施例中,上述的数据存取步骤还包括当暂时地写入新数据至随机区的物理区块时在逻辑区块与物理区块映射表中对应欲写入新数据的物理区块的记录上产生标记以表示新数据被暂时地写入随机区的物理区块中。
在本发明的一实施例中,上述的数据存取步骤还包括当随机区的物理区块皆已写入数据时则从备用区中提取至少一个物理区块并且将随机区的至少一个物理区块中的数据和其对应数据区的物理区块中的有效数据写入至至少一个物理区块中。
在本发明的一实施例中,上述的将物理区块分组为数据区、备用区与随机区的步骤包括将物理区块划分为多个区域以及将每一区域的物理区块独立地分组为数据区、备用区与随机区。
在本发明的一实施例中,上述的区域的随机区分别地具有不同数目的物理区块。
在本发明的一实施例中,上述的快闪储存系统为USB随身碟、快闪存储卡或固态硬盘。
在本发明的一实施例中,上述的数据存取步骤还包括仅从备用区中提取预定数目的物理区块作为替换物理区块。
在本发明的一实施例中,上述的当新数据不为连续数据时将新数据暂时地写入至随机区的物理区块中的步骤包括当判断新数据不为该连续数据时判断替换物理区块的数目是否为预定数目,其中当替换物理区块的数目为预定数目时将新数据暂时地写入随机区的物理区块中以及当替换物理区块的数目是否不为预定数目时则提取备用区的物理区块的其中之一作为对应欲写入新数据的物理区块的替换物理区块并且将新数据写入至此替换物理区块中。
本发明提出一种储存系统,其包括具有多个物理区块的闪存、传输连接接口与控制器。控制器是电性连接至闪存与传输连接接口,此控制器会执行存储器管理模块的多个机器指令以执行多个数据存取步骤,此些数据存取步骤包括将物理区块分组为数据区、备用区与随机区。此外,此些数据存取步骤还包括当从主机中接收到写入指令与欲写入的新数据时判断新数据是否为连续数据,其中当新数据为连续数据时则提取备用区的物理区块的其中之一作为对应欲写入新数据的物理区块的替换物理区块且将新数据写入至替换物理区块中,并且当新数据不为连续数据时将新数据暂时地写入至随机区的物理区块中。
在本发明的一实施例中,上述的判断新数据是否为连续数据的步骤包括当新数据的数据量小于预先定义值时则判断新数据不为连续数据。
在本发明的一实施例中,上述的数据存取步骤还包括在判断新数据是否为连续数据之前先判断是否存有对应欲写入新数据的物理区块的替换物理区块,其中当存有对应欲写入新数据的物理区块的替换物理区块时则直接写入新数据至对应欲写入新数据的物理区块的替换物理区块中。
在本发明的一实施例中,上述的数据存取步骤还包括建立与更新随机区索引表以记录关于在随机区的每一物理区块中所储存的数据的信息。
在本发明的一实施例中,上述的数据存取步骤还包括当暂时地写入新数据至随机区的物理区块时在逻辑区块与物理区块映射表中对应欲写入新数据的物理区块的记录上产生标记以表示新数据被暂时地写入随机区的物理区块中。
本发明因在闪存的物理区块中额外划分随机区,并且将非连续的新数据暂时地写入至随机区中,因此减少数据搬移与物理区块抹除的次数,由此提升在随机写入模式中数据存取的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1是根据本发明实施例绘示闪存储存系统的概要方块图。
图2A与2B是根据本发明实施例绘示闪存的物理区块进行轮替的示意图。
图3是根据本发明实施例绘示随机区索引表的范例。
图4是根据本发明实施例绘示的数据存取步骤的流程图。
图5是根据本发明另一实施例绘示的数据存取步骤的流程图。
[主要元件标号说明]
S、M、L:区块
100:闪存储存系统
110:控制器
110a:微处理器单元
110b:存储器管理模块
110c:闪存接口
110d:缓冲存储器
120:传输连接接口
130:闪存
130-0~130-N:物理区块
200:主机
202:系统区
204:数据区
206:备用区
208:替换区块
210:逻辑区块
212:随机区
S401、S403、S405、S407、S409、S411、S413、S415、S417、S419:数据存取步骤。
具体实施方式
图1是根据本发明实施例绘示闪存储存系统的概要方块图。请参照图1,闪存储存系统100包括控制器110、传输连接接口120以及闪存130。
通常闪存储存系统100会与主机200一起使用,以使主机200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本实施例中,闪存储存系统120为固态硬盘(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)功能、坏区块管理功能、维护逻辑区块与物理区块映射表(mapping table)功能等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的数据存取步骤(如图4所示)的机器指令。
在本实施例中,存储器管理模块110b是以固件形式来实作在控制器110中,例如以程序语言撰写程序相关机械指令并且储存于程序存储器(例如,只读存储器(Read Only Memory,ROM))来实作存储器管理模块110b,其中当闪存储存系统100运作时,存储器管理模块110b的多个机械指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行以完成上述平均磨损功能、坏区块管理功能、维护逻辑区块与物理区块映射表功能等。特别是,可由此完成根据本发明实施例的数据存取(如图4所示)功能。
在本发明另一实施例中,亦可将存储器管理模块110b的机械指令以固件形式储存于闪存130的特定区域(例如,下述的系统区202)中,同样地当闪存储存系统100运作时,存储器管理模块110b的多个机器指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行。此外,在本发明另一实施例中存储器管理模块110b亦可以硬件形式实作在控制器110中。
闪存接口110c是电性连接至微处理器单元110a并且用以存取闪存130。也就是,主机200欲写入至闪存130的数据会经由闪存接口110c转换为闪存130所能接受的格式。
缓冲存储器110d是电性连接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑区块与物理区块映射表)或者主机200所读取或写入的数据。在本实施例中,缓冲存储器110d为静态随机存取存储器(static randomaccess memory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(Dynamic Random Access memory,DRAM)、磁阻式存储器(Magnetoresistive Random Access Memory,MRAM)、相变化存储器(PhaseChange Random Access Memory,PRAM)或其它适合的存储器亦可应用于本发明。
此外,虽未绘示于本实施例,但控制器110可还包括错误校正模块与电源管理模块等用于控制闪存的一般功能模块。
传输连接接口120用以通过总线300连接主机200。在本实施例中,传输连接接口120为PCI Express接口。然而,必须了解的是本发明不限于此,传输连接接口120亦可以是USB接口、IEEE 1394接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其它适合的数据传输接口。
闪存130是电性连接至控制器110并且用以储存数据。闪存130通常实质上分割为多个物理区块(physical block)130-0至130-N。一般而言,在闪存中物理区块为抹除的最小单位。亦即,每一物理区块含有最小数目的一并被抹除的存储单元。每一物理区块通常会分割为数个页面地址(page)。页面地址通常为编程(program)的最小单元。但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)。也就是说,一页面地址中有多个扇区并以一扇区为可编程的最小单元。换言之,页面地址为写入数据或读取数据的最小单元。每一页面地址通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(error correcting code,ECC))。
为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是,一页为一个扇区。然而,亦可以多个扇区形成一页,例如一页包括4个扇区。
一般而言,物理区块可由任意数目的页面地址所组成,例如64个页面地址、128个页面地址、256个页面地址等。物理区块130-0至130-N通常也可被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
图2A与2B是根据本发明实施例绘示闪存的物理区块进行轮替的示意图。
必须了解的是,在此描述闪存的运作时以“提取”、“搬移”、“交换”、“分割”、“划分”等词来操作闪存130的物理区块130-0至130-N是逻辑上的概念。也就是说,闪存的物理区块的实际位置并未更动,而是逻辑上对闪存的物理区块进行操作。值得一提的是,下述物理区块的运作通过控制器110执行存储器管理模块110b的机械指令所完成。
请参照图2A,在本发明实施例中,为了有效率地编程(即写入与抹除)闪存130,控制器110会将闪存130的物理区块130-1至130-N在逻辑上分组为系统区202、数据区204与备用区206。一般来说,闪存130中属于数据区204的物理区块会占90%以上。如前所述,闪存130的物理区块130-1至130-N会以轮替方式提供主机来储存数据,因此控制器110会提供逻辑区块210给主机以进行数据存取,并且通过维护逻辑区块与物理区块映射表来记录逻辑区块所映射的物理区块。
系统区202中的物理区块用以记录系统数据,系统数据例如是关于闪存130的区域数、每一区域的物理区块数、每一物理区块的页面地址数、记录逻辑区块与物理区块映射关系的映射表(mapping table)等。
数据区204中的物理区块用以储存使用者的数据,一般来说就是主机200所存取的逻辑区块210所映射的区块。
备用区206中的物理区块是用以替换数据区204中的物理区块,因此在备用区206中的物理区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。
具体来说,由于在闪存中每个地址仅能编程一次,因此若要对已写过数据位置再次写入数据时,必须先执行抹除的操作。然而,如前所述闪存写入单位为页面,其小于以物理区块为单位的抹除单位。因此,若要执行物理区块的抹除操作时,必须先将欲抹除物理区块中的有效页面地址的数据复制至其它物理区块后才可进行物理区块的抹除操作。
例如,当主机欲写入数据至逻辑区块210之中的逻辑区块L时,控制器110会通过逻辑区块与物理区块映射表得知逻辑区块L目前是映射数据区204中的物理区块M。因此,闪存储存系统100将对物理区块M中的数据进行更新,期间,控制器110会从备用区206中提取物理区块C来取代数据区204的物理区块M。然而,当将新数据入至物理区块C的同时,不会立刻将物理区块M中的所有有效数据搬移至物理区块C而抹除物理区块M。具体来说,控制器110会将物理区块M中欲写入页面地址之前的有效数据(即页P0与P1)复制至物理区块C(如图2B的(a)),并且将新数据(即物理区块C的页P2与P3)写入至C区块(如图2B的(b))。此时,将含有部分的有效旧数据与所写入新数据的物理区块C暂时地关联为替换物理区块208。此是因为物理区块M中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将物理区块M中的所有有效数据搬移至物理区块C可能会造成无谓的搬移。在此案例中,物理区块M与物理区块C的内容整合起来才是所映射逻辑区块L的完整内容。此等母子区块(即,物理区块M与物理区块C)的瞬时关系可依据控制器110中缓冲存储器110d的大小而定,例如一般会使用五组来实作。暂时地维持此种瞬时关系的操作一般可称为开启(open)母子区块。
之后,当需要将物理区块M与物理区块C的内容真正合并时,控制器110才会将物理区块M与物理区块C整并为一区块,由此提升区块的使用效率,此合并的操作又可称为关闭(close)母子区块。例如,如图2B的(c)所示,当进行关闭母子区块时,控制器110会将物理区块M中剩余的有效数据(即页P4~PN)复制至物理区块C,然后将物理区块M抹除并关联为备用区206,同时,将物理区块C关联为数据区204,并且在逻辑区块与物理区块映射表中将逻辑区块L的映射更改为物理区块C,由此完成关闭母子区块的操作。
由于闪存130的编程规格要求必须从每一物理区块的第一页开始写入至最后一页并且在每个位仅能程序一次(即由仅能“1”变为“0”)的条件下,一旦存储器物理区块的页面地址写入数据后,若欲更新已写入的数据就必须如图2A所示从备用区206中提取一物理区块重新进行图2B所示的步骤。因此,当物理区块在未进行图2B的(c)关闭操作之前(即处于图2B的(b)所示的瞬时),而发生必须更新刚搬移的数据(例如图1B的P0~P1)时,则所搬移的旧数据就必须再搬移一次,此称为随机(Random)写入模式时。
例如,一般在储存装置中会使用文件配置表(File Allocation Table,FAT)来管理储存媒体,其中FAT数据的存取是非常频繁。因此,当存取FAT表时可能会因为不断更新刚搬移的数据而进入随机写入模式。在进入上述随机写入模式时,控制器110会将欲写入的数据依序地写入至物理区块C的页面中而不进行如图2B的(a)所示的有效数据搬移,并且于随机写入模式结束时才进行有效数据的整合,以避免在随机写入模式下不断重复执行图2A与图2B的操作。
在本发明实施例中,除了上述系统区202、数据区204与备用区206之外,控制器110还包括执行存储器管理模块110b的机器指令以将闪存130的物理区块130-1至130-N之中的至少一个物理区块分组为随机区212。
随机区212是用以暂时地储存主机200所写入的数据。具体来说,在本实施例中当欲写入的逻辑区块进入随机写入模式且逻辑区块所映射的物理区块已处于母子区块的瞬时关系时,会于所对应的子区块(例如,物理区块C)中直接依序地写入数据而避免重复开启与关闭母子区块。然而,当随机写入模式是发生在多个逻辑区块时,也就是主机200不断地写入不连续数据(即,数据属于小数据量的数据)至不同的逻辑区块时,在本实施例中控制器110会将此数据暂时地写入至随机区212的物理区块中,以避免为了写入数据至不同的逻辑区块而不断的开启与关闭母子区块(如图2A与2B所述的操作)而严重地影响闪存除储存系统100的效能。
值得一提的是,由于主机200会依据传输连接接口120的最大传输量来考虑将欲写入的新数据是以一个写入指令或多个写入指令来传送至闪存储存系统100。因此,在本实施例中控制器110是根据在此次写入指令中欲写入的新数据的数据量是否小于预先定义值来判断此新数据为连续数据或不连续数据。例如,假设主机200与传输连接接口120之间的最大传输量(每个写入指令,最多可写入的数据长度)为100扇区(sector)时,当欲写入的数据的数据量小于100扇区时,则控制器110会认定此新数据为不连续数据,反之,则判断新数据为连续数据。
虽然本发明是以数据量来判断新数据是否为不连续数据,然而本发明不限于此,任何其它适当的方法亦可应用于本发明。例如,在本发明另一实施例中,主机200亦可能将连续性数据以多个小于最大传输量的小数据来分次传送至闪存储存系统,因此在此例子中控制器亦可在第一次收到此数据时先判断为不连续数据而储存至随机区,然后在第二次接收到后续数据而确认为连续数据后再开启母子区块来进行写入。
在本发明实施例中,由于新数据可能会暂时地储存在随机区212的物理区块中,因此控制器110会在逻辑区块与物理区块映射表中产生标记,以注记新数据被暂时写入至随机区212的逻辑区块,以使得当主机200欲读取此逻辑区块的数据时,控制器110可经由确认此标记而至随机区212中找寻数据。
此外,由于随机区212是用以为所有逻辑区块暂时地储存数据,因此在本实施例中会建立随机区索引表来记录在随机区212的物理区块中所储存的数据是属于那个逻辑区块的那个页面地址。
图3是根据本发明实施例绘示随机区索引表的范例。请参照图3,此随机区索引表300的大小是依据随机区212的物理区块的数目来建立,其中包括随机区块索引字段302、页面地址索引字段304、数据有效性字段306、映射逻辑区块字段308与映射页面地址字段310。例如,假设逻辑区块L1的页面地址2的新数据被暂时地写入至随机区212的物理区块P3的页面地址0时,在随机区索引表中的其中之一笔记录R1会储存随机区块索引字段302为P3、页面地址索引字段304为0、数据有效性字段306为1、映射逻辑区块字段308为L1且与映射页面地址字段310为2,其中数据有效性字段306为1表示随机区212的物理区块P3的页面地址0为有效,并且当数据有效性字段306为0时表示此页面地址的数据为无效。
此外,如上所述为了管理上的方便亦可将物理区块130-0至130-N划分为数个独立的区域(zone),其中针对每一区域建立独立的管理机制,例如独立的逻辑区块与物理区块映射表、独立的数据区与备用区等。特别是,在以数个区域管理闪存的例子中,控制器会在每一区域中分别地配置上述随机区,以简化管理的复杂度。此外,当以多个区域来分别配置随机区时,每一区域中的随机区可以不同数目的物理区块来组成。
图4是根据本发明实施例绘示的数据存取步骤的流程图。以下将配合流程图详细描述本发明实施例的数据存取(写入与读取)步骤。
请参照图4,在步骤S401中控制器110会将闪存130的物理区块130-0至130-N分组为系统区202、数据区204、备用区206与随机区212。
在步骤S403中会待命以从主机200中接收指令,并且在步骤S405中当接收到指令时会判断所接收的指令为写入指令或读取指令。
倘若在步骤S405中判断所接收的指令为写入指令时,则在步骤S407中会判断新数据是否为连续数据。例如,当判断新数据的数据量小于预先定义值(例如,最大传输数据量)时,则判断新数据不为连续数据。
倘若在步骤S407中判断新数据为连续数据时,则在步骤S409中会从备用区206中提取一个物理区块作为对应欲写入新数据的物理区块(例如,物理区块M)的替换物理区块(例如,物理区块C),并且将新数据写入至替换物理区块中。在完成数据写入后,数据存取步骤会返回至步骤S403待命以接收下一个指令。
倘若在步骤S407中判断新数据不为连续数据时,则在步骤S411中将新数据暂时地写入至随机区212的物理区块中。特别是,在步骤S411中也可包括判断随机区212中的物理区块是否皆已写入数据,倘若皆已写入数据时则从备用区206中提取物理区块并且将随机区212的物理区块中的数据和其对应数据区204的物理区块中的有效数据写入至所提取的物理区块中。也就是,在随机区212中的物理区块是否皆已写入数据时控制器110会进行物理区块的整并以空出随机区212的储存空间以写入新的数据。
此外,由于上述开启母子区块的组数是有所限制的,也就是在同一时间中仅能开启预定数目的替换物理区块,例如仅使用五个物理区块作为替换物理区块。因此,在本发明另一实施例中,在步骤S407中判断新数据不为连续数据时还包括判断控制器110是否已使用预定数目的替换物理区块,倘若已使用预定数目的替换物理区块时才执行步骤S411,倘若仍还有未使用的替换物理区块时则执行步骤S409。
必须了解的是,上述对随机区212所进行的储存空间释放操作亦可于其它适当的时机进行,例如在闪存储存系统100开机时执行此储存空间释放操作。此外,在本发明另一实施例中,亦可在执行平均抹损(wear-levling)程序时释放随机区212的储存空间,例如可将随机区212内所储存数据对应位于数据区204内的物理区块的抹除次数乘上一个权重值,以使得在进行平均抹损程序时,此数据区204内的对应物理区块可优先被选取作为进行交换的物理区块,由此随机区212内的数据即会进行整并由此释放储存空间。平均抹损(wear-levling)程序中交换物理区块的细节并非本发明的重点,在此不详细描述。
之后,在步骤S413中会建立或者更新随机区索引表300。在完成建立或更新随机区索引表300后,数据存取步骤会返回至步骤S403待命以接收下一个指令。
倘若在步骤S405中判断所接收的指令为读取指令时,则在步骤S415中会依据逻辑区块与物理区块映射表和随机区索引表中的信息读取数据。在完成读取数据后,数据存取步骤会返回至步骤S403待命以接收下一个指令。
虽未绘示于图式中,但此领域熟知技艺者上述数据存取步骤会在闪存储存系统100从主机200中移除或关机时结束。
值得一提的是,在本实施例中是于闪存储存系统100启动时通过读取每一物理区块的冗余区中的信息来重新建立逻辑区块与物理区块映射表和随机区索引表于缓冲存储器110d中。然而,在本发明另一实施例中逻辑区块与物理区块映射表和随机区索引表亦可在闪存储存系统100进行关机程序时储存至闪存130的系统区202以便于在闪存储存系统100下次开机时加载逻辑区块与物理区块映射表和随机区索引表至缓冲存储器110d中以快速地恢复关机前的状态。
如上所述,在本发明实施例中在接受到新数据控制器110会直接判断新数据是否为连续数据而进行不同的储存操作。然而,在欲写入的物理区块已具有对应的替换物理区块(即,已开启母子区块)的例子中,由于先前已提取对应的替换物理区块,因此亦可直接将数据写入至替换物理区块中而不需考虑新数据是否为连续数据。因此,在本发明另一实施例中,数据存取步骤还包括在判断新数据是否为连续数据之前先判断目前闪存系统100中是否存有对应欲写入新数据的物理区块的替换物理区块,即先判断欲写入新数据的物理区块是否具有对应的子区块(如图5的步骤417)。倘若欲写入新数据的物理区块具有对应的子区块时,则写入新数据至对应欲写入数据的物理区块的替换物理区块中(如图5的步骤419)。
综上所述,本发明的数据存取方法在将闪存的物理区块更划分随机区,并且将不连续的数据先暂时地写入至此随机区中。基此,除了已开启替换物理区块的物理区块(即,母子区块的瞬时关系)可进入随机写入模式外,非属于母子区块关系的物理区块亦可通过先将随机写入的数据暂存于随机区中,以减少数据的搬移与区块抹除的操作,由此提升在随机写入模式中闪存储存系统的效能。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。
Claims (21)
1.一种数据存取方法,适用于存取闪存,其中该闪存具有多个物理区块,该数据存取方法包括:
将该些物理区块分组为数据区、备用区与随机区;以及
当从主机中接收到写入指令与欲写入的新数据时,判断该新数据是否为连续数据,
其中当该新数据为该连续数据时,则提取该备用区的物理区块的其中之一作为对应欲写入该新数据的物理区块的替换物理区块,并且将该新数据写入至该替换物理区块中,并且
当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中。
2.根据权利要求1所述的数据存取方法,其中判断该新数据是否为该连续数据的步骤包括当该新数据的数据量小于预先定义值时则判断该新数据不为该连续数据。
3.根据权利要求1所述的数据存取方法,还包括在判断该新数据是否为该连续数据之前先判断是否存有对应欲写入该新数据的物理区块的替换物理区块,
其中当存有对应欲写入该新数据的物理区块的替换物理区块时则写入该新数据至对应欲写入该新数据的物理区块的替换物理区块中。
4.根据权利要求1所述的数据存取方法,还包括建立与更新随机区索引表以记录关于在该随机区的每一物理区块中所储存的数据的信息。
5.根据权利要求1所述的数据存取方法,还包括当暂时地写入该新数据至该随机区的物理区块时在逻辑区块与物理区块映射表中对应欲写入该新数据的物理区块的记录上产生标记以表示该新数据被暂时地写入该随机区的物理区块中。
6.根据权利要求1所述的数据存取方法,还包括当该随机区的物理区块皆已写入数据时则从该备用区中提取至少一个物理区块并且将该随机区的至少一个物理区块中的数据和其对应该数据区的物理区块中的有效数据写入至从该备用区提取的该至少一个物理区块中。
7.根据权利要求1所述的数据存取方法,其中将该些物理区块分组为该数据区、该备用区与该随机区的步骤包括:
将该些物理区块划分为多个区域;以及
将每一区域的该些物理区块独立地分组为该数据区、该备用区与该随机区。
8.根据权利要求7所述的数据存取方法,其中该些区域的随机区分别地具有不同数目的物理区块。
9.根据权利要求7所述的数据存取方法,还包括仅从该备用区中提取预定数目的物理区块作为该替换物理区块。
10.根据权利要求9所述的数据存取方法,其中当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中的步骤包括:
当判断该新数据不为该连续数据时,判断该替换物理区块的数目是否为该预定数目;
当该替换物理区块的数目为该预定数目时,将该新数据暂时地写入该随机区的物理区块中;以及
当该替换物理区块的数目不为该预定数目时,则提取该备用区的物理区块的其中之一作为对应欲写入该新数据的物理区块的该替换物理区块,并且将该新数据写入至该替换物理区块中。
11.一种数据存取系统,适用于具有闪存的快闪储存系统,其中该闪存具有多个物理区块,该数据存取系统包括:
用于将该些物理区块分组为数据区、备用区与随机区的装置;
用于当从主机中接收到写入指令与欲写入的新数据时,判断该新数据是否为连续数据的装置;
用于当该新数据为该连续数据时,提取该备用区的物理区块的其中之一作为对应欲写入该新数据的物理区块的替换物理区块,并且将该新数据写入至该替换物理区块中的装置;以及
用于当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中的装置。
12.根据权利要求11所述的数据存取系统,其中当该新数据的数据量小于预先定义值时,用于当从主机中接收到写入指令与欲写入的新数据时,判断该新数据是否为连续数据的装置判断该新数据不为该连续数据。
13.根据权利要求11所述的数据存取系统,还包括:
用于在判断该新数据是否为该连续数据之前先判断是否存有对应欲写入该新数据的物理区块的替换物理区块的装置;以及
用于当存有对应欲写入该新数据的物理区块的替换物理区块时写入该新数据至对应欲写入该新数据的物理区块的替换物理区块中的装置。
14.根据权利要求11所述的数据存取系统,还包括:
用于建立与更新随机区索引表以记录关于在该随机区的每一物理区块中所储存的数据的信息的装置。
15.根据权利要求11所述的数据存取系统,还包括:
用于当暂时地写入该新数据至该随机区的物理区块时在逻辑区块与物理区块映射表中对应欲写入该新数据的物理区块的记录上产生标记以表示该新数据被暂时地写入该随机区的物理区块中的装置。
16.根据权利要求11所述的数据存取系统,还包括:
用于当该随机区的物理区块皆已写入数据时则从该备用区中提取至少一个物理区块并且将该随机区的至少一个物理区块中的数据和其对应该数据区的物理区块中的有效数据写入至从该备用区提取的该至少一个物理区块中的装置。
17.根据权利要求11所述的数据存取系统,其中用于将该些物理区块分组为数据区、备用区与随机区的装置将该些物理区块划分为多个区域,并且将每一区域的该些物理区块独立地分组为该数据区、该备用区与该随机区。
18.根据权利要求17所述的数据存取系统,其中该些区域的随机区分别地具有不同数目的物理区块。
19.根据权利要求11所述的数据存取系统,其中该快闪储存系统为USB随身碟、快闪存储卡或固态硬盘。
20.根据权利要求11所述的数据存取系统,还包括:
用于仅从该备用区中提取预定数目的物理区块作为该替换物理区块的装置。
21.根据权利要求20所述的数据存取系统,其中
当判断该新数据不为该连续数据时,用于当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中的装置判断该替换物理区块的数目是否为该预定数目;
当该替换物理区块的数目为该预定数目时,用于当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中的装置将该新数据暂时地写入该随机区的物理区块中;以及
当该替换物理区块的数目不为该预定数目时,用于当该新数据不为该连续数据时将该新数据暂时地写入至该随机区的物理区块中的装置提取该备用区的物理区块的其中之一作为对应欲写入该新数据的物理区块的该替换物理区块,并且将该新数据写入至该替换物理区块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101338537A CN101630233B (zh) | 2008-07-17 | 2008-07-17 | 用于闪存的数据存取方法、储存系统与控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101338537A CN101630233B (zh) | 2008-07-17 | 2008-07-17 | 用于闪存的数据存取方法、储存系统与控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630233A CN101630233A (zh) | 2010-01-20 |
CN101630233B true CN101630233B (zh) | 2012-07-11 |
Family
ID=41575355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101338537A Active CN101630233B (zh) | 2008-07-17 | 2008-07-17 | 用于闪存的数据存取方法、储存系统与控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101630233B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010211618A (ja) * | 2009-03-11 | 2010-09-24 | Toshiba Corp | 半導体記憶装置 |
CN102521160B (zh) * | 2011-12-22 | 2015-04-01 | 上海交通大学 | 写缓冲检测器、并行通道写入方法 |
TWI489274B (zh) * | 2012-09-11 | 2015-06-21 | Etron Technology Inc | 能夠提升記憶體效能的方法和相關的記憶體系統 |
CN104503710B (zh) * | 2015-01-23 | 2018-02-13 | 福州瑞芯微电子股份有限公司 | 一种提高闪存写入速度的方法和装置 |
TWI603193B (zh) * | 2016-03-31 | 2017-10-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
CN107273303B (zh) * | 2017-05-23 | 2020-06-26 | 建荣半导体(深圳)有限公司 | 一种闪存数据管理系统、方法、闪存芯片及存储装置 |
CN110658980B (zh) * | 2018-06-29 | 2021-03-23 | 华为技术有限公司 | 数据处理方法及装置、存储系统 |
EP3903315A4 (en) | 2018-12-28 | 2022-08-17 | Micron Technology, Inc. | REDUCING SYSTEM PERFORMANCE BASED ON STORAGE USE PATTERNS |
CN110543435B (zh) * | 2019-09-05 | 2022-02-08 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567476A (zh) * | 2003-06-24 | 2005-01-19 | 群联电子股份有限公司 | 闪存高速大区块的数据写入方法 |
EP1145126B1 (en) * | 1999-10-21 | 2005-02-02 | Matsushita Electric Industrial Co., Ltd. | A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card |
CN1728282A (zh) * | 2004-07-30 | 2006-02-01 | 深圳市朗科科技有限公司 | 提高闪存盘数据写入速度的方法 |
CN1741195A (zh) * | 2004-08-26 | 2006-03-01 | 旺玖科技股份有限公司 | 非挥发性记忆体的资料更新方法 |
-
2008
- 2008-07-17 CN CN2008101338537A patent/CN101630233B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1145126B1 (en) * | 1999-10-21 | 2005-02-02 | Matsushita Electric Industrial Co., Ltd. | A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card |
CN1567476A (zh) * | 2003-06-24 | 2005-01-19 | 群联电子股份有限公司 | 闪存高速大区块的数据写入方法 |
CN1728282A (zh) * | 2004-07-30 | 2006-02-01 | 深圳市朗科科技有限公司 | 提高闪存盘数据写入速度的方法 |
CN1741195A (zh) * | 2004-08-26 | 2006-03-01 | 旺玖科技股份有限公司 | 非挥发性记忆体的资料更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101630233A (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
CN101640069B (zh) | 用于闪速存储器的平均磨损方法与平均磨损系统 | |
CN101814318B (zh) | 多层存储单元与非型闪存储存系统及其控制器与存取方法 | |
TWI385518B (zh) | 用於快閃記憶體的資料儲存方法及儲存系統 | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
CN101661431B (zh) | 用于快闪存储器的区块管理方法、快闪储存系统及控制器 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
CN101957797B (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存系统 | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN101866320B (zh) | 数据管理方法及使用此方法的闪存储存系统与控制器 | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存系统及其控制器 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
CN101859278B (zh) | 用于闪存的数据储存方法及储存系统 | |
CN102592670A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN101409108B (zh) | 平均磨损方法及使用此方法的控制器 | |
CN101634937B (zh) | 数据存取方法、使用此方法的存储系统及其控制器 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
CN101882111B (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 |