CN101957799A - 用于闪速存储器的数据写入方法及其控制电路与存储*** - Google Patents
用于闪速存储器的数据写入方法及其控制电路与存储*** Download PDFInfo
- Publication number
- CN101957799A CN101957799A CN200910140080XA CN200910140080A CN101957799A CN 101957799 A CN101957799 A CN 101957799A CN 200910140080X A CN200910140080X A CN 200910140080XA CN 200910140080 A CN200910140080 A CN 200910140080A CN 101957799 A CN101957799 A CN 101957799A
- Authority
- CN
- China
- Prior art keywords
- data
- physical blocks
- blocks
- flash memory
- logical
- 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
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种用于闪速存储器的数据写入方法及使用该方法的控制电路与存储***。此数据写入方法包括依据从主机***中接收的数据写入指令来判断主机***欲存储的数据的大小是否小于预设数据量,其中倘若此数据的大小小于预设数据量时则将此数据写入对应的缓冲实体区块中或备用缓冲实体区块中。此方法还包括以分次方式在多个数据写入指令期间合并属于同一逻辑区块的有效数据。基此,可缩短在每一写入数据指令下的回应时间,以防止超时问题。
Description
技术领域
本发明涉及一种数据写入方法,特别涉及一种能够缩短回应时间的数据写入方法及使用此方法的闪速存储器控制电路与闪速存储器存储***。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于闪速存储器(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘就是一种以与非(NAND)闪速存储器作为存储媒体的存储装置。
一般来说,闪速存储器存储装置中的闪速存储器模组会具有多个实体区块,且这些实体区块会由闪速存储器存储装置的闪速存储器控制器逻辑地分组为***区(system area)、数据区(data area)、备用区(spare area)与取代区(replacement area)。***区的实体区块是用以存储闪速存储器存储装置的相关重要信息,而取代区的实体区块是用以取代数据区或备用区中已损坏的实体区块,因此在一般存取状态下,主机***是无法存取***区与取代区中的实体区块。至于归类为数据区的实体区块中会存储由写入指令所写入的有效数据,而备用区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当闪速存储器存储装置接收到主机***的写入指令而欲对数据区的实体区块进行写入时,闪速存储器存储装置会从备用区中提取一实体区块并且将在数据区中欲写入的实体区块中的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块中,并且将已写入新数据的实体区块逻辑地关联为数据区,并且将原本数据区的实体区块进行抹除并逻辑地关联为备用区。为了能够让主机***能够顺利地存取以轮替方式存储数据的实体区块,闪速存储器存储装置会提供逻辑区块给主机***。也就是说,闪速存储器存储装置会通过在逻辑地址-实体地址对映表(logical address-physical address mapping table)中记录与更新逻辑区块与数据区的实体区块之间的对映关系来反映实体区块的轮替,所以主机***仅需要针对所提供逻辑区块进行写入而闪速存储器存储装置会依据逻辑地址-实体地址对映表对所对映的实体区块进行读取或写入数据。
由于闪速存储器制程上的进步且为了满足存储媒体大容量的趋势,每个程序化单位与抹除单位的设计容量会越来越大,因此将造成需要更多的时间来搬移实体区块内的有效数据。然而,此类大容量抹除单位的闪速存储器往往因为过长的区块搬移时间而使得数据写入指令的回应时间会超过某些闪速存储器存储装置(例如,SD记忆卡)的规格,因此造成无法使用此类具大容量抹除单位的闪速存储器。基此,有需要缩短闪速存储器存储装置在每个数据写入指令下的回应时间。
发明内容
本发明提供一种数据写入方法,其能够缩短在写入数据至闪速存储器晶片时的回应时间以防止超时的问题。
本发明提供一种闪速存储器控制电路,其能够缩短在写入数据至闪速存储器晶片时的回应时间以防止超时的问题。
本发明提供一种闪速存储器存储***,其能够缩短在写入数据至闪速存储器时的回应时间以防止超时的问题。
本发明实施例提出一种数据写入方法,用于将来自于一主机***的数据写入至一闪速存储器晶片,其中闪速存储器晶片包括多个实体区块。本数据写入方法包括提供一闪速存储器控制器,用以从主机***接收一数据写入指令与数据。本数据写入方法也包括配置多个逻辑区块,其中每一逻辑区块对映至少一个实体区块,其中主机***存储此数据于逻辑区块的其中之一。本数据写入方法亦包括将逻辑区块分组为多个逻辑区块群组,并且选择部分实体区块作为多个缓冲实体区块(buffer physical block),其中缓冲实体区块的其中之一对应逻辑区块群组的其中之一。本数据写入方法还包括由闪速存储器控制器判断此数据的大小是否小于预定数据量且判断此数据所属的逻辑区块所对应的缓冲实体区块是否已被写满,其中当此数据的大小小于预定数据量且此数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则闪速存储器控制器选择另一实体区块作为对应的一备用缓冲实体区块(spare buffer physical block)并且将此数据写入至此备用缓冲实体区块中,其中此备用缓冲实体区块是对应此数据所属的逻辑区块所对应的缓冲实体区块。
本发明实施例提出一种闪速存储器控制电路,用以将来自于一主机***的数据写入至一闪速存储器晶片,其中闪速存储器晶片包括多个实体区块。此闪速存储器控制电路包括微处理器单元、闪速存储器接口单元、主机接口单元与存储器管理单元。闪速存储器接口单元电性连接至微处理器单元,用以连接闪速存储器晶片。主机接口单元电性连接至微处理器单元,用以连接主机***,并从主机***接收一数据写入指令与此数据。存储器管理单元电性连接至该微处理器单元,用以配置多个逻辑区块,将逻辑区块分组为多个逻辑区块群组,并且选择的部分实体区块作为多个缓冲实体区块,其中每一逻辑区块对映至少一个实体区块,主机***存储此数据于逻辑区块的其中之一,且每一缓冲实体区块对应逻辑区块群组的其中之一。此外,存储器管理单元还用以判断此数据的大小是否小于预定数据量并且判断此数据所属的逻辑区块所对应的缓冲实体区块是否已被写满,其中当此数据的大小小于预定数据量并且此数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则存储器管理单元选择另一实体区块作为对应的一备用缓冲实体区块,并且将此数据写入至此备用缓冲实体区块中,其中此备用缓冲实体区块是对应此数据所属的逻辑区块所对应的缓冲实体区块。
本发明实施例提出一种闪速存储器存储***,用于存储来自于一主机***的数据,本闪速存储器存储***包括连接器、闪速存储器晶片与闪速存储器控制器。连接器用以连接主机***,并从主机***接收一数据写入指令与此数据。闪速存储器晶片具有多个实体区块。闪速存储器控制器电性连接连接器与闪速存储器晶片,用以配置多个逻辑区块,将逻辑区块分组为多个逻辑区块群组,并且选择部分实体区块作为多个缓冲实体区块,其中每一逻辑区块对映至少一个实体区块,主机***存储此数据于逻辑区块的其中之一,且每一缓冲实体区块对应逻辑区块群组的其中之一。闪速存储器控制器还用以判断此数据的大小是否小于预定数据量并且判断此数据所属的逻辑区块所对应的缓冲实体区块是否已被写满,其中当此数据的大小小于预定数据量并且此数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则闪速存储器控制器选择另一实体区块作为对应的一备用缓冲实体区块并且将此数据写入至备用缓冲实体区块中,其中此备用缓冲实体区块是对应此数据所属的逻辑区块所对应的缓冲实体区块。
本发明将数据大小小于预定数据量的更新数据暂存于缓冲实体区块中,并且以分次方式来搬移实体区块内有效数据,因此可缩短执行数据写入指令的时间,由此防止可能发生的超时问题。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是本发明一实施例所示的闪速存储器存储***的概要方块图。
图2A、2B、2C-1、2C-2与2C-3是本发明一实施例所示的闪速存储器晶片的运作示意图。
图3A~3D是本发明实施例所示的暂存数据于缓冲实体区块的实施例。
图4A与4B是所示闪速存储器存储***具有足够的资源让每一逻辑区块群组开启一组母子区块的实施例。
图5A与5B是所示闪速存储器存储***不具有足够的资源让每一逻辑区块群组开启一组母子区块的实施例。
图6是本发明实施例所示的数据写入方法的流程图。
主要元件符号说明:
100:闪速存储器存储装置 110:闪速存储器控制器
110a:微处理器单元 110b:存储器管理单元
110c:闪速存储器接口单元 110d:主机接口单元
120:连接器 130:闪速存储器晶片
200:主机*** 300:总线
302:***区 304:数据区
306:备用区 308:特殊区
310-(0)~310-(N):实体区块 320:存储区
330:取代区 350-0~350-H:逻辑区块
S1、S2、S3:缓冲实体区块 S1’、S2’:备用缓冲实体区块
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619、S621、S625、S627:数据写入步骤
具体实施方式
图1是本发明一实施例所示的闪速存储器存储***的概要方块图。
请参照图1,通常闪速存储器存储装置100会与主机***200一起使用,以使主机***200可将数据存储至闪速存储器存储装置100或从闪速存储器存储装置100中读取数据。在本实施例中,闪速存储器存储装置100为记忆卡。但必须了解的是,在本发明另一实施例中闪速存储器存储装置100亦可以是固态硬盘(Solid State Drive,简称:SSD)或随身盘。
闪速存储器存储装置100包括闪速存储器控制器(亦称闪速存储器控制电路)110、连接器120与闪速存储器晶片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为安全数字(Secure Digital,简称:SD)接口。然而,必须了解的是本发明不限于此,主机接口单元110d亦可以是串行高级技术附件(Serial Advanced Technology Attachment,简称:SATA)接口、通用串行总线(Universal Serial Bus,简称:USB)接口、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称:IEEE)1394接口、高速周边零件连接接口(Peripheral Component Interconnect Express,简称:PCI Express)、记忆棒(Memory Sick,简称:MS)接口、多媒体存储卡(Multi Media Card,简称:MMC)接口、小型闪速(Compact Flash,简称:CF)接口、整合式驱动电子接口(Integrated Device Electronics,简称:IDE)或其他适合的数据传输接口。
此外,虽未绘示于本实施例中,但闪速存储器控制器110亦还包括错误校正单元与电源管理单元等用于控制闪速存储器的一般功能模组。
连接器120是电性连接至闪速存储器控制器110并且用以通过总线300连接主机***200。在本实施例中,连接器120为SD连接器。然而,必须了解的是本发明不限于此,连接器120亦可以是SATA连接器、USB连接器、IEEE1394连接器、PCI Express连接器、MS连接器、MMC连接器、CF连接器、IDE连接器或其他适合的连接器。
闪速存储器晶片130是电性连接至闪速存储器控制器110并且用以存储数据。在本实施中,闪速存储器晶片130为多层记忆胞(Multi Level Cell,简称:MLC)NAND闪速存储器。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层记忆胞(Single Level Cell,简称:SLC)NAND闪速存储器亦可应用于本发明。
闪速存储器晶片130是电性连接至闪速存储器控制器110并且用以存储数据。闪速存储器晶片130具有实体区块310-(0)~310-(N),其中实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的记忆胞。每一实体区块通常会分割为数个页面(page)。由于在本实施例中,闪速存储器晶片130为MLC NAND闪速存储器,因此,页面为程序化(program)的最小单元。换言之,页面为写入数据或读取数据的最小单元。每一页面通常包括数据区与冗余区。数据区用以存储使用者的数据,而冗余区用以存储***的数据(例如,错误检查与校正码(Error Checking and Correcting Code,简称:ECC Code))。在本实施例中,闪速存储器晶片130的每一页面具有16个扇区的容量,一般来说,一个扇区为512位元组,因此一个页面为8千位元组。
但要特别说明的是,在其他闪速存储器设计中(例如,SLC NAND闪速存储器),最小的程序化单位亦可为一个扇区,也就是说,以一个扇区为程序化的最小单元。此外,实体区块310-(0)~310-(N)也可被分组为数个区域(zone),以每一独立的区域来管理实体区块310-(0)~310-(N)可增加操作执行的平行程度且简化管理的复杂度。
图2A、2B、2C-1、2C-2与2C-3是本发明一实施例所示的闪速存储器晶片的运作示意图。
必须了解的是,在此描述闪速存储器实体区块的运作时,以“提取”、“搬移”、“交换”、“替换”、“轮替”、“分组”等词来操作闪速存储器晶片130的实体区块是逻辑上的概念。也就是说,闪速存储器的实体区块的实际位置并未更动,而是逻辑上对闪速存储器的实体区块进行操作。值得一提的是,下述的运作是由闪速存储器控制器110的存储器管理单元110b所完成。
请参照图2A,存储器管理单元110b会将闪速存储器晶片130的实体区块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将会被宣告成写入保护(write protect),而无法再写入数据。
请参照图2B,存储器管理单元110b会将存储区320的实体区块逻辑地分组成一***区302、一数据区304、一备用区306与一特殊区308。
***区302包括实体区块310-(0)~实体区块310-(S),数据区304包括实体区块310-(S+1)~实体区块310-(M),备用区306包括实体区块310-(M+1)~实体区块310-(K)且特殊区308包括实体区块310-(K+1)~实体区块310-(P)。在本实施例中,上述S、M、K与P为正整数,其代表各区配置的实体区块数量,其可由闪速存储器存储***的制造商依据所使用的闪速存储器晶片130的容量而设定。
逻辑上属于***区302中的实体区块用以记录***数据,此***数据包括关于闪速存储器晶片130的制造商与型号、每一闪速存储器模组的区域数、每一区域的实体区块数、每一实体区块的页面数等。
逻辑上属于数据区304中的实体区块用以存储使用者的数据,一般来说就是主机***200所存取的逻辑区块所对映的实体区块。也就是说,数据区304的实体区块为存储有效数据的单元。
逻辑上属于备用区306中的实体区块是用以轮替数据区304中的实体区块,因此在备用区306中的实体区块为空的或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区304与备用区306的实体区块会以轮替方式来存储主机***200对闪速存储器存储装置100写入的数据。
如前所述,闪速存储器晶片130的实体区块会以轮替方式提供主机***200来存储数据,因此存储器管理单元110b会提供逻辑区块350-0~350-H给主机***200以进行数据存取,并且通过维护逻辑地址-实体地址对映表(logical address-physical address mapping table)来记录逻辑区块所对映的实体区块。
请同时参照图2B、2C-1、2C-2与2C-3,例如,当主机***200欲存储数据至逻辑区块350-0时,存储器管理单元110b会通过逻辑地址-实体地址对映表得知逻辑区块350-0目前是对映逻辑上属于数据区304的实体区块310-(S+1)。因此,存储器管理单元110b会对实体区块310-(S+1)中的数据进行更新,期间,闪速存储器控制器110会从备用区306中提取实体区块310-(M+1)作为轮替实体区块以替换数据区304的实体区块310-(S+1)。然而,当存储器管理单元110b将新数据写入至实体区块310-(M+1)的同时,存储器管理单元110b不会立刻将实体区块310-(S+1)中的所有有效数据搬移至实体区块310-(M+1)而抹除实体区块310-(S+1)。具体来说,存储器管理单元110b会将实体区块310-(S+1)中欲写入页面之前的有效数据(即,页P0与P1)复制至实体区块310-(M+1)(如图2C-1),并且将新数据(即,实体区块310-(M+1)的页P2与P3)写入至实体区块310-(M+1)(如图2C-2)。此时,存储器管理单元110b即完成写入的动作。因为实体区块310-(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块310-(S+1)中的所有有效数据搬移至替换实体区块310-(M+1)可能会造成无谓的搬移。在此案例中,实体区块310-(S+1)与实体区块310-(M+1)的内容整合起来才是所对映逻辑区块350-1的完整内容。此等母子区块(即,实体区块310-(S+1)与实体区块310-(M+1))的暂态关系可依据闪速存储器控制器110中缓冲存储器(未绘示)的大小而定,而暂时地维持此种暂态关系的动作一般称为开启(open)母子区块。特别是,在此开启母子区块的状态下,所处理的逻辑区块是对映多个实体区块。
之后,当需要将实体区块310-(S+1)与实体区块310-(M+1)的内容真正合并时,存储器管理单元110b才会将实体区块310-(S+1)与实体区块310-(M+1)整并为一个实体区块,由此提升实体区块的使用效率,在此,此合并的动作又可称为关闭(close)母子区块。例如,如图2C-3所示,当进行关闭母子区块时,存储器管理单元110b会将实体区块310-(S+1)中剩余的有效数据(即,页P4-PN)复制至替换实体区块310-(M+1),然后将实体区块310-(S+1)抹除并关联为备用区306,同时,将实体区块310-(M+1)关联为数据区304,并且在逻辑地址-实体地址对映表中将逻辑区块350-0的对映更改为实体区块310-(M+1),由此完成关闭母子区块的动作。特别是,在完成关闭母子区块的状态下,所处理的逻辑区块是对映一个实体区块。
请再参照图2B,逻辑上属于特殊区308中的实体区块是用以暂时地存储主机***200欲写入至闪速存储器晶片130的数据。如上所述由于根据本发明实施例的闪速存储器晶片130的实体区块的页面可存储空间较大(如上所述8千位元组),因此进行上述搬移实体区块310-(S+1)内有效的数据至实体区块310-(M+1)时,需要花费较长的时间,而可能造成无法于闪速存储器存储装置100的规格所规范的预定时间内回应完成数据写入指令,亦即发生超时(timeout)的情形。值得一提的是,存储器管理单元110b仅会将数据长度小于预定数据量的数据暂存于特殊区308中。
具体来说,例如以一个具有128个页面的2层MLC NAND闪速存储器的实体区块为例,当执行关闭母子区块时,写入数据所需的时间约为200毫秒(millisecond),读取数据所需的时间约为10毫秒,而传输数据所需的时间为140毫秒,因此,完成关闭一个母子区块所需的时间约为350毫秒。此外,主机***200允许写一个扇区的回应时间为250毫秒,故当写入的数据的长度超过2个扇区时就可于***规范的时间内完成写入指令。再者,为确保***更为稳定,在本实施例中还预留1个扇区的回应时间。因此,在具有128个页面的2层MLC NAND闪速存储器的实体区块的例子中,预设数据量会被设定为3个扇区。类似地,以一个具有192个页面的3层MLC NAND闪速存储器的实体区块为例,完成关闭一个母子区块所需的时间约为600毫秒,故预设数据量会被设定为5个扇区。
基于上述,在本实施例中仅会先将数据长度小于预设数据量的数据先暂存至特殊区308的实体区块中,以缩短回应时间而避免超时。
在本实施例中,存储器管理单元110b会将逻辑区块350-0~350-H分群为多个逻辑区块群组并且将特殊区308的实体区块310-(K+1)~310-(P)分别地分配给逻辑区块群组,以作为对应的缓冲实体区块。并且,当主机***200欲存储的数据的大小小于预设数据量时,存储器管理单元110b会根据欲存储此数据的逻辑区块所属的逻辑区块群组将数据暂存于对应的缓冲实体区块中。
图3A~3D是本发明实施例所示的暂存数据于缓冲实体区块的实施例。例如,假设在存储器管理单元110b配置9个逻辑区块(即,逻辑区块350-0~350-8),且将逻辑区块350-0~350-8分群为包括逻辑区块350-0~350-2的第一逻辑区块群组、逻辑区块350-3~350-5的第二逻辑区块群组与逻辑区块350-6~350-8的第三逻辑区块群组的例子中,存储器管理单元110b会在特殊区308中配置3个实体区块(实体区块310-(K+1)~310-(K+3)),其中实体区块310-(K+1)是用作为第一逻辑区块群组的缓冲实体区块S1、实体区块310-(K+2)是用作为第二逻辑区块群组的缓冲实体区块S2且实体区块310-(K+3)是用作为第三逻辑区块群组的缓冲实体区块S 3。在此中,每一实体区块是以具有6个页面的简化架构来作说明,然而必须了解的是,本发明不限于此,每一实体区块可以是少于6个页面或多于6个页面。例如,实体区块具有192个页面。
当主机***200欲存储数据至闪速存储器存储装置100时,主机接口单元110d会从主机***200中接收一数据写入指令与一数据,其中此数据写入指令会包含欲存储此数据的逻辑地址。之后,存储器管理单元110b会将此逻辑地址转换为对应的逻辑区块,并且存储器管理单元110b会判断此数据的数据长度是否小于预设数据量,其中当此数据的数据长度不小于预设数据量时,则存储器管理单元110b会依据存储器管理单元110b所转换的逻辑区块将数据写入至对映的实体区块中(如图2B、2C-1、2C-2与2C-3所示)。当此数据的数据长度小于预设数据量时,则存储器管理单元110b会依据存储器管理单元110b所转换的逻辑区块将数据暂存于对应的缓冲实体区块中。例如,如图3A所示,若主机***200欲存储数据长度小于预设数据量的数据至逻辑区块350-2时,则存储器管理单元110b会将此数据暂存于缓冲实体区块S1中。
此外,当缓冲实体区块已被写满而无可用存储空间时,存储器管理单元110b会从备用区306中提取实体区块作为对应的备用缓冲实体区块,以使存储器管理单元110b可在缓冲实体区块已被写满时将数据暂存于对应的备用缓冲实体区块中。例如,如图3B所示,当主机***200欲存储数据长度小于预设数据量的数据至逻辑区块350-2且缓冲实体区块S1已被写满时,则存储器管理单元110b会从备用区306中提取实体区块(例如,实体区块310-(M+2))作为缓冲实体区块S1的备用缓冲实体区块S1’,且存储器管理单元110b会将此数据暂存于备用缓冲实体区块S1’中。
特别是,在本实施例中,在某一缓冲实体区块已被写满的状态下,当存储器管理单元110b依据主机***200的数据写入指令将数据暂存于对应此已被写满的缓冲实体区块的备用缓冲实体区块时,则存储器管理单元110b还会进行逻辑区块的合并程序,其中在每次执行数据写入指令时存储器管理单元110b仅会合并逻辑区块中一半的数据,以避免上述超时的问题。具体来说,存储器管理单元110b会从暂存在此已被写满的缓冲实体区块中的多笔数据所属的逻辑区块之中选择其中一个逻辑区块作为合并的目标,存储器管理单元110b会从备用区306中提取一个实体区块作为轮替实体区块,并且存储器管理单元110b会将属于所选择的逻辑区块的数据的其中一半搬移至所提取的轮替实体区块中。值得一提的是,在本实施例中尽管存储器管理单元110b会将属于所选择的逻辑区块的数据的1/2搬移至所提取的轮替实体区块中,然而本发明不限于此。具体来说,搬移数据的数量会根据每一实体区块的容量和每一逻辑区块群组所包含的逻辑区块数来决定。例如,当每一实体区块的页面数为I且每一逻辑区块群组所包含的逻辑区块数为J时,则搬移的数据量为所选择的逻辑区块的数据的(J/I),其中J小于或等于(I/2)。
例如,如图3B所示,存储器管理单元110b将属于逻辑区块350-2的数据暂存于备用缓冲实体区块S1’之后,会依据暂存于缓冲实体区块S1中的数据来选择第一笔数据所属的逻辑区块(即,逻辑区块350-2)为合并的目标。然后,存储器管理单元110b会从备用区306中选择一个实体区块(例如,实体区块310-(M+3))作为轮替实体区块,并且存储器管理单元110b会依据逻辑地址与实体地址对映表将逻辑区块350-2所对映的实体区块中的有效旧数据以及在缓冲实体区块S1中属于逻辑区块350-2的数据搬移至实体区块310-(M+3),其中存储器管理单元110b仅搬移属于逻辑区块350-2之前半部的数据。之后,如图3C所示,当存储器管理单元110b再次依据主机***200的数据写入指令而将属于逻辑区块350-1的数据暂存于备用缓冲实体区块S1’之后,存储器管理单元110b会搬移属于逻辑区块350-2的后半部的数据,而完成逻辑区块350-2的合并。
在本实施例中,当已存满数据的缓冲实体区块中已无未搬移的数据时,则存储器管理单元110b会对此缓冲实体区块执行抹除指令,并且已抹除的缓冲实体区块就可继续暂存数据。例如,如图3D所示,倘若存储器管理单元110b后续暂存多笔数据长度小于预设数据量的数据于备用缓冲实体区块S1’中,并完成多个逻辑区块的合并而使缓冲实体区块S1中的数据皆被搬移至对映的实体区块后,存储器管理单元110b会抹除存储在缓冲实体区块S1的数据。之后,当备用缓冲实体区块S1’被写满后,存储器管理单元110b则可将数据暂存于缓冲实体区块S1中,并合并备用缓冲实体区块S1’中的数据所属的逻辑区块。同样地,当备用缓冲实体区块S1’中的数据皆被搬移至对映的实体区块后,存储器管理单元110b会抹除暂存于备用缓冲实体区块S1’中的数据。基此,可反复地在缓冲实体区块S1与备用缓冲实体区块S1’中暂存数据长度小于预设数据量的数据。值得一提的是,在本发明另一实施例中,当从备用区306中所提取用作为备用缓冲实体区块的实体区块被执行抹除指令后,此被抹除的实体区块会被关联至备用区,且存储器管理单元110b会重新提取一个实体区块作为备用缓冲实体区块。尽管本实施例是从备用区中提取实体区块作为备用缓冲实体区块,然在本发明另一实施例中,备用缓冲实体区块亦可是从特殊区308中提取。
此外,在本实施例中是配置固定的实体区块(即特殊区308)作为缓冲实体区块,然而本发明不限于此,在本发明另一实施例中,存储器管理单元110b会从备用区306中轮流的提取实体区块作为缓冲实体区块。例如,当存储器管理单元110b对目前作为缓冲实体区块S 1的实体区块执行抹除指令后,存储器管理单元110b会将此被抹除的实体区块关联为备用区306,并且从备用区306中提取另一实体区块作为缓冲实体区块S1。
值得一提的是,上述逻辑区块的分组与缓冲实体区块的配置会与每一实体区块的页面数有关。在图3A~3D所示的实施例中,在实体区块具有6个页面且存储器管理单元110b在备用缓冲实体区块中暂存两笔数据(即,程序化两个页面)时即可完成1个逻辑区块的合并的情况下,当存储器管理单元110b在备用缓冲实体区块中写满数据时,存储器管理单元110b可完成3个逻辑区块的合并。因此,在此实施例中,每一缓冲实体区块是对应以3个逻辑区块所组成的逻辑区块群组,由此可确保在备用缓冲实体区块被写满前,其对应的缓冲实体区块中的数据皆已被搬移至对映的实体区块中。基此,在本实施例中,缓冲实体区块与备用缓冲实体区块可轮替地来暂存数据长度小于预定数据量的数据。必须了解的是,上述逻辑区块群组的分组方式与缓冲实体区块的配置方式仅为一实施例,以方便说明本发明的精神,然而本发明不限于此,任何能达成上述轮替暂存数据的配置方式皆可应用于本发明。例如,若每一实体区块的页面数为I时,则将每一逻辑区块群组中的逻辑区块数配置为小于或等于(I/2),则可达成在备用缓冲实体区块被写满前完成存储在对应的缓冲实体区块中的所有数据的搬移。
必须了解的,尽管上述仅针对缓冲实体区块S1与备用缓冲实体区块S1’来描述,然而此运作方式可类推于其他缓冲实体区块与备用缓冲实体区块。然而,在闪速存储器存储装置100具有足够的资源让每一逻辑区块群组开启一组母子区块的本发明另一实施例中,当存储器管理单元110b暂存数据于备用缓冲实体区块(例如,备用缓冲实体区块S1’)时,存储器管理单元110b仅对缓冲实体区块(例如,缓冲实体区块S1)所对应的逻辑区块群组的其中一个逻辑区块的数据进行搬移。
图4A与4B是所示闪速存储器存储***具有足够的资源让每一逻辑区块群组开启一组母子区块的实施例。
请参照图4A与图4B,假设缓冲实体区块S1与缓冲实体区块S2皆已被写满下,当存储器管理单元110b暂存逻辑区块350-2的数据于备用缓冲实体区块S1’时,存储器管理单元110b会合并逻辑区块350-2的数据(如图4A所示)。之后,当存储器管理单元110b暂存逻辑区块350-3的数据于备用缓冲实体区块S2’时,存储器管理单元110b会合并逻辑区块350-4的数据(如图4B所示),此时逻辑区块350-2与逻辑区块350-4皆处于仅搬移部分数据的状态(即,上述开启母子区块的状态)。
值得一提的是,在闪速存储器存储装置100不具有足够的资源让每一逻辑区块群组开启一组母子区块的例子中,存储器管理单元110b会选择已存有较多数据的备用缓冲实体区块所对应的缓冲实体区块来进行上述数据的搬移。特别是,在此例子中,当闪速存储器存储装置100已存有仅搬移一部份数据的逻辑区块时,存储器管理单元110b会先继续搬移此仅搬移一部份数据的逻辑区块的剩余数据。也就是说,在此例子中,当存储器管理单元110b于不同备用缓冲实体区块中暂存数据时,存储器管理单元110b仍会针对同一个逻辑区块进行数据的搬移,直到此逻辑区块的所有数据皆完成搬移为止。
图5A与5B是所示闪速存储器存储***不具有足够的资源让每一逻辑区块群组开启一组母子区块的实施例。
请参照图5A与图5B,假设缓冲实体区块S1与缓冲实体区块S2接已被写满,当存储器管理单元110b暂存逻辑区块350-2的数据于备用缓冲实体区块S1’时,存储器管理单元110b会合并逻辑区块350-2的数据(如图5A所示)。之后,当存储器管理单元110b暂存逻辑区块350-3的数据于备用缓冲实体区块S2’时,存储器管理单元110b会搬移逻辑区块350-2的其他数据以完成逻辑区块350-2的合并(如图5B所示),然后于下一个写入指令时才进行缓冲实体区块S2所对应得逻辑区块的合并。
图6是本发明实施例所示的数据写入方法的流程图。
请参照图6,首先,在步骤S601中存储器管理单元110b会初始化闪速存储器晶片130。具体来说,在步骤S601中存储器管理单元110b会将闪速存储器晶片130的实体区块逻辑地分组为***区302、数据区304、备用区306、特殊区308与取代区330,配置逻辑区块350-0~350-H并将逻辑区块350-0~350-H分群为多个逻辑区块群组以及分配缓冲实体区块等初始化运作。
在步骤S603中主机接口单元110d会从主机***200中接收数据写入指令与欲存储的数据,其中微处理器单元110a会将此数据写入指令内的信息提供给存储器管理单元110b。
在步骤S605中,存储器管理单元110b会根据数据写入指令内的信息判断主机***200欲存储至逻辑区块的数据的长度是否小于预设数据量。
倘若在步骤S605中判断欲存储的数据的长度不小于预设数据量时,则在步骤S607中存储器管理单元110b会将数据写入至对映的实体区块中,其写入程序是类似图2B、2C-1、2C-2与2C-3所示,在此不重复描述。
倘若在步骤S605中判断欲存储的数据的长度小于预设数据量时,则在步骤S609中存储器管理单元110b会判断欲存储此数据的逻辑区块所对应的缓冲实体区块是否被写满。倘若欲存储此数据的逻辑区块所对应的缓冲实体区块未被写满时,则在步骤S611中存储器管理单元110b会将此数据暂存至对应的缓冲实体区块中。具体来说,存储器管理单元110b会根据数据写入指令中的信息来判断主机***200欲将此数据存储在那个逻辑区块及其对应的逻辑区块群组,并且存储器管理单元110b会根据主机***200所提供的信息将数据暂存至欲存储此数据的逻辑区块所对应的缓冲实体区块中。
例如,以图3A~3D为例,当数据是属于逻辑区块350-0~350-2的数据时,则此数据会被暂存至缓冲实体区块S1中;当数据为属于逻辑区块350-3~350-5的数据时,则此数据会被暂存至缓冲实体区块S2中;以及当数据为属于逻辑区块350-6~350-8的数据时,则此数据会被暂存至缓冲实体区块S3中。例如,如图3A所示,当欲存储的数据属于逻辑区块350-2时,此数据会被暂存于缓冲实体区块S1中。
倘若欲存储此数据的逻辑区块所对应的缓冲实体区块已被写满时,则在步骤S613中存储器管理单元110b会判断是否存有用于此已被写满的缓冲实体区块的备用缓冲实体区块。倘若无存有对应的备用缓冲实体区块时,则在步骤S615中存储器管理单元110b会从备用区306中提取一个实体区块作为对应的备用缓冲实体区块。然后,在步骤S617中存储器管理单元110b会将数据暂存于备用缓冲实体区块中。值得一提的是,在本实施例中,当需要配置备用缓冲实体区块时,存储器管理单元110b会从备用区306中提取作为备用缓冲实体区块的实体区块,然而,本发明不限于此,在本发明另一实施例中,作为备用缓冲实体区块的实体区块亦可于预先配置于特殊区308中。
例如,如图3B所示,当缓冲实体区块S1已被写满时,则存储器管理单元110b会提取一个实体区块作为备用缓冲实体区块S1’,且存储器管理单元110b将数据暂存于备用缓冲实体区块S1’中。
接着,在步骤S619中存储器管理单元110b会判断存储此数据的逻辑区块所属的逻辑区块群组之中是否存有仅完成部分有效数据搬移的逻辑区块。也就是说,在步骤S619中会判断存储此数据的逻辑区块所属的逻辑区块群组之中是否有等待完成剩余有效数据搬移的逻辑区块。
倘若在步骤S619中判断无存有仅完成部分有效数据搬移的逻辑区块时,则在步骤S621中存储器管理单元110b会从对应的缓冲实体区块所暂存的未搬移数据所属的逻辑区块之中选择一个逻辑区块来进行有效数据合并,其中仅搬移此逻辑区块中一半的有效数据。例如,如图3B所示,存储器管理单元110b选择逻辑区块350-2来进行有效数据的搬移。
倘若在步骤S619中判断存有仅完成部分有效数据的搬移的逻辑区块时,则在步骤S623中存储器管理单元110b会对此仅完成部分有效数据搬移的逻辑区块进行剩余有效数据的搬移动作,由此完成此逻辑区块的所有有效数据的搬移动作(如图3C所示)。
接着,在步骤S625中存储器管理单元110b会判断暂存在对应的缓冲实体区块中的所有数据是否已被搬移,其中倘若暂存于对应的缓冲实体区块中的所有数据已被搬移时,则在步骤S627中存储器管理单元110b会执行抹除指令以清空对应的缓冲实体区块(如图3D所示)。
在本发明实施例中,是以循序方式在对应的缓冲实体区块中挑选数据来进行其所属逻辑区块的有效数据搬移。然而,在本发明另一实施例中亦可选择对应的缓冲实体区块中已暂存最多笔数据的逻辑区块来进行有效数据搬移,或者以一随机方式挑选对应的逻辑区块来进行有效数据搬移。
综上所述,根据本发明实施例的数据写入方法会在当数据的数据长度小于预设数据量时将此数据暂存于特殊区的缓冲实体区块中,并且本发明实施例的数据写入方法仅会对逻辑区块的部分有效数据进行搬移动作,因此闪速存储器存储装置可快速完成数据写入动作并于预定时间内回应主机***而不会造成超时的问题。基此,通过本发明实施例所提出的数据写入方法可在不会发生上述超时的问题之下将页面(page)以大容量设计的闪速存储器晶片应用于闪速存储器存储装置中以满足大存储容量的需求。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (24)
1.一种数据写入方法,用于将来自于一主机***的数据写入至一闪速存储器晶片,其中所述闪速存储器晶片包括多个实体区块,所述数据写入方法包括:
提供一闪速存储器控制器,用以从所述主机***接收一数据写入指令与所述数据;
配置多个逻辑区块,其中每一所述逻辑区块对映至少一个所述实体区块,其中所述主机***存储所述数据于所述多个逻辑区块的其中之一;
将所述多个逻辑区块分组为多个逻辑区块群组;
选择所述多个实体区块的部分实体区块作为多个缓冲实体区块,其中所述多个缓冲实体区块的其中之一对应所述多个逻辑区块群组的其中之一;
由所述闪速存储器控制器判断所述数据的大小是否小于一预定数据量并且判断所述数据所属的逻辑区块所对应的缓冲实体区块是否已被写满;以及
当所述数据的大小为小于所述预定数据量并且所述数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则所述闪速存储器控制器选择所述多个实体区块之中的另一实体区块作为对应的一备用缓冲实体区块,并且将所述数据写入至所述备用缓冲实体区块中,其中所述备用缓冲实体区块是对应所述数据所属的逻辑区块所对应的缓冲实体区块。
2.根据权利要求1所述的数据写入方法,其中在将所述数据写入至所述备用缓冲实体区块中之后还包括将暂存于所述备用缓冲实体区块所对应的缓冲实体区块中属于其中一个逻辑区块的数据搬移至所述多个实体区块的其中一个中。
3.根据权利要求2所述的数据写入方法,其中将暂存于所述备用缓冲实体区块所对应的缓冲实体区块中属于其中一个逻辑区块的数据搬移至所述多个实体区块的其中一个中的步骤包括:
从暂存于所述备用缓冲实体区块所对应的缓冲实体区块中的数据之中选择其中一笔数据,并且判断所选择的数据所属的逻辑区块;
选择所述多个实体区块的其中一个以作为对应所选择的数据所属的逻辑区块的一轮替实体区块;以及
将属于所选择的数据所属的逻辑区块的有效旧数据以及在对应的所述缓冲实体区块中属于所选择的数据所属的逻辑区块的数据搬移至所述轮替实体区块中,其中在所述主机***每次执行所述数据写入指令时仅搬移属于所选择的数据所属的逻辑区块的有效旧数据与对应的所述缓冲实体区块中属于所选择的数据所属的逻辑区块的数据的部分数据。
4.根据权利要求2所述的数据写入方法,还包括当所述备用缓冲实体区块所对应的缓冲实体区块内已无未被搬移的数据时,抹除所述备用缓冲实体区块所对应的缓冲实体区块中所暂存的所有数据。
5.根据权利要求1所述的数据写入方法,还包括当所述数据的大小不小于所述预定数据量时,则将所述数据写入至所述数据所属的逻辑区块所对映的实体区块中。
6.根据权利要求1所述的数据写入方法,还包括当所述数据的大小小于所述预定数据量并且所述数据所属的逻辑区块所对应的缓冲实体区块未被写满时,则将所述数据写入至所述数据所属的逻辑区块所对应的缓冲实体区块中。
7.根据权利要求1所述的数据写入方法,还包括将所述多个实体区块的部分实体区块至少分组为一数据区与一备用区。
8.根据权利要求7所述的数据写入方法,其中所述多个缓冲实体区块是选自于所述备用区的实体区块。
9.根据权利要求7所述的数据写入方法,其中所述备用缓冲实体区块是选自于所述备用区的实体区块。
10.根据权利要求7所述的数据写入方法,还包括将所述多个实体区块的部分实体区块分组为一特殊区,其中所述多个缓冲实体区块是选自于所述特殊区的实体区块。
11.根据权利要求10所述的数据写入方法,其中所述备用缓冲实体区块是选自于所述备用区的实体区块。
12.根据权利要求10所述的数据写入方法,其中所述备用缓冲实体区块是选自于所述特殊区的实体区块。
13.根据权利要求1所述的数据写入方法,其中将所述多个逻辑区块分组为多个逻辑区块群组的步骤包括:
根据每一缓冲实体区块的页面数来将所述多个逻辑区块分组为所述多个逻辑区块群组,其中每一逻辑区块群组中的所述多个逻辑区块的数目为小于或等于每一缓冲实体区块的页面数的二分之一。
14.根据权利要求1所述的数据写入方法,其中在将所述数据写入至所述备用缓冲实体区块中之后还包括:
判断是否存有仅完成搬移部分数据的逻辑区块;
当无存有仅完成搬移部分数据的逻辑区块时,则将暂存于所述多个缓冲实体区块的其中一个缓冲实体区块中部分的数据搬移至所述多个实体区块的其中一个中,其中所述其中一个缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量大于其他缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量。
15.根据权利要求1所述的数据写入方法,其中在将所述数据写入至所述备用缓冲实体区块中之后还包括:
判断是否存有仅完成搬移部分数据的逻辑区块;
当存有仅完成搬移部分数据的逻辑区块时,则继续搬移所述逻辑区块的其他数据。
16.根据权利要求1所述的数据写入方法,其中所述预定数据量为三个或五个扇区。
17.一种闪速存储器控制电路,用以将来自于一主机***的数据写入至一闪速存储器晶片,其中所述闪速存储器晶片包括多个实体区块,所述闪速存储器控制电路包括:
一微处理器单元;
一闪速存储器接口单元,电性连接至所述微处理器单元,用以连接所述闪速存储器晶片;
一主机接口单元,电性连接至所述微处理器单元,用以连接所述主机***,并从所述主机***接收一数据写入指令与所述数据;
一存储器管理单元,电性连接至所述微处理器单元,用以配置多个逻辑区块,将所述多个逻辑区块分组为多个逻辑区块群组,并且选择所述多个实体区块的部分实体区块作为多个缓冲实体区块,其中每一所述逻辑区块对映至少一个所述实体区块,所述主机***存储所述数据于所述多个逻辑区块的其中之一,且所述多个缓冲实体区块的其中之一对应所述逻辑区块群组的其中之一,
其中所述存储器管理单元还用以判断所述数据的大小是否小于一预定数据量并且判断所述数据所属的逻辑区块所对应的缓冲实体区块是否已被写满,
其中当所述数据的大小小于所述预定数据量并且所述数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则所述存储器管理单元选择所述多个实体区块之中的另一实体区块作为对应的一备用缓冲实体区块,并且将所述数据写入至所述备用缓冲实体区块中,其中所述备用缓冲实体区块是对应所述数据所属的逻辑区块所对应的缓冲实体区块。
18.根据权利要求17所述的闪速存储器控制电路,其中所述存储器管理单元还用以将暂存于所述备用缓冲实体区块所对应的缓冲实体区块中属于其中一个逻辑区块的数据搬移至所述多个实体区块的其中一个中。
19.根据权利要求17所述的闪速存储器控制电路,其中所述存储器管理单元根据每一缓冲实体区块的页面数来将所述多个逻辑区块分组为所述多个逻辑区块群组,其中每一逻辑区块群组中的所述逻辑区块的数目为小于或等于每一缓冲实体区块的页面数的二分之一。
20.根据权利要求17所述的闪速存储器控制电路,其中所述存储器管理单元还用以判断是否存有仅完成搬移部分数据的逻辑区块,
其中当无存有仅完成搬移部分数据的逻辑区块时,则所述存储器管理单元将暂存于所述多个缓冲实体区块的其中一个缓冲实体区块中部分的数据搬移至所述多个实体区块的其中一个中,其中所述其中一个缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量大于其他缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量。
21.一种闪速存储器存储***,用于存储来自于一主机***的数据,所述闪速存储器存储***包括:
一连接器,用以连接所述主机***,并从所述主机***接收一数据写入指令与所述数据;
一闪速存储器晶片,具有多个实体区块;以及
一闪速存储器控制器,电性连接所述连接器与所述闪速存储器晶片,用以配置多个逻辑区块,将所述多个逻辑区块分组为多个逻辑区块群组,并且选择所述多个实体区块的部分实体区块作为多个缓冲实体区块,其中每一所述多个逻辑区块对映至少一个所述多个实体区块,所述主机***存储该数据于所述多个逻辑区块的其中之一,且所述多个缓冲实体区块的其中之一对应所述多个逻辑区块群组的其中之一,
其中所述闪速存储器控制器还用以判断所述数据的大小是否小于一预定数据量并且判断所述数据所属的逻辑区块所对应的缓冲实体区块是否已被写满,
其中当所述数据的大小小于所述预定数据量并且所述数据所属的逻辑区块所对应的缓冲实体区块已被写满时,则所述闪速存储器控制器选择所述多个实体区块之中的另一实体区块作为对应的一备用缓冲实体区块,并且将所述数据写入至所述备用缓冲实体区块中,其中所述备用缓冲实体区块是对应所述数据所属的逻辑区块所对应的缓冲实体区块。
22.根据权利要求21所述的闪速存储器存储***,其中所述闪速存储器控制器还用以将暂存于所述备用缓冲实体区块所对应的缓冲实体区块中属于其中一个逻辑区块的数据搬移至所述多个实体区块的其中一个中。
23.根据权利要求21所述的闪速存储器存储***,其中所述闪速存储器控制器根据每一缓冲实体区块的页面数来将所述多个逻辑区块分组为所述多个逻辑区块群组,其中每一逻辑区块群组中的所述多个逻辑区块的数目为小于或等于每一缓冲实体区块的页面数的二分之一。
24.根据权利要求21所述的闪速存储器存储***,其中所述闪速存储器控制器还用以判断是否存有仅完成搬移部分数据的逻辑区块,
其中当无存有仅完成搬移部分数据的逻辑区块时,则所述闪速存储器控制器将暂存于所述多个缓冲实体区块的其中一个缓冲实体区块中部分的数据搬移至所述多个实体区块的其中一个中,其中所述其中一个缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量大于其他缓冲实体区块所对应的备用缓冲实体区块所暂存的数据量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910140080XA CN101957799B (zh) | 2009-07-16 | 2009-07-16 | 用于闪速存储器的数据写入方法及其控制电路与存储*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910140080XA CN101957799B (zh) | 2009-07-16 | 2009-07-16 | 用于闪速存储器的数据写入方法及其控制电路与存储*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101957799A true CN101957799A (zh) | 2011-01-26 |
CN101957799B CN101957799B (zh) | 2012-07-04 |
Family
ID=43485135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910140080XA Active CN101957799B (zh) | 2009-07-16 | 2009-07-16 | 用于闪速存储器的数据写入方法及其控制电路与存储*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101957799B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN107562653A (zh) * | 2016-06-30 | 2018-01-09 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN111949199A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种存储设备的数据写入方法、装置及存储设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060184719A1 (en) * | 2005-02-16 | 2006-08-17 | Sinclair Alan W | Direct data file storage implementation techniques in flash memories |
CN101241469B (zh) * | 2007-02-05 | 2012-05-02 | 力博特公司 | 一种在嵌入式***中存储、读取数据的方法及装置 |
-
2009
- 2009-07-16 CN CN200910140080XA patent/CN101957799B/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365790A (zh) * | 2012-03-29 | 2013-10-23 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN103365790B (zh) * | 2012-03-29 | 2016-03-02 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
CN107562653A (zh) * | 2016-06-30 | 2018-01-09 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN111949199A (zh) * | 2019-05-16 | 2020-11-17 | 北京兆易创新科技股份有限公司 | 一种存储设备的数据写入方法、装置及存储设备 |
CN111949199B (zh) * | 2019-05-16 | 2024-04-26 | 兆易创新科技集团股份有限公司 | 一种存储设备的数据写入方法、装置及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101957799B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8645613B2 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
CN101814318B (zh) | 多层存储单元与非型闪存储存***及其控制器与存取方法 | |
CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存***与控制器 | |
CN102073600B (zh) | 数据备份方法、闪存控制器及闪存储存*** | |
CN101957797B (zh) | 闪速存储器逻辑区块管理方法及其控制电路与储存*** | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN101571832A (zh) | 数据写入方法及使用该方法的快闪存储***与其控制器 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN101667157A (zh) | 闪存数据传输方法、闪存储存***及控制器 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN101866320B (zh) | 数据管理方法及使用此方法的闪存储存***与控制器 | |
CN102866861B (zh) | 闪存储存***、闪存控制器与数据写入方法 | |
CN101944384B (zh) | 用于闪速存储器的数据写入方法及其控制电路与储存*** | |
CN101727397B (zh) | 区块管理与更换方法、闪存储存***及其控制器 | |
CN102122233B (zh) | 区块管理与数据写入方法、闪存储存***与控制器 | |
CN101957799B (zh) | 用于闪速存储器的数据写入方法及其控制电路与存储*** | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存***及控制器 | |
CN102053920B (zh) | 数据写入方法及闪存控制器与闪存存储*** | |
CN103377132B (zh) | 管理存储器空间的方法、存储器控制器与存储器储存装置 | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN101996140B (zh) | 用于闪速存储器的数据写入方法及其控制电路与储存*** | |
CN110442300B (zh) | 整理指令记录方法、存储器控制电路单元与存储装置 | |
CN102236612B (zh) | 动态切换分割区方法、记忆卡控制器与记忆卡储存*** | |
CN102043588B (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 |