CN102156619B - 闪存储存装置、闪存控制器及闪存的数据写入方法 - Google Patents
闪存储存装置、闪存控制器及闪存的数据写入方法 Download PDFInfo
- Publication number
- CN102156619B CN102156619B CN 201010117087 CN201010117087A CN102156619B CN 102156619 B CN102156619 B CN 102156619B CN 201010117087 CN201010117087 CN 201010117087 CN 201010117087 A CN201010117087 A CN 201010117087A CN 102156619 B CN102156619 B CN 102156619B
- Authority
- CN
- China
- Prior art keywords
- write
- data writing
- data
- flash memory
- 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
Abstract
本发明提供一种闪存储存装置、闪存控制器及闪存的数据写入方法。储存装置中的闪存包括多个实体区块,每一实体区块包括多个实体地址,上述实体地址包括至少一快速实体地址与至少一慢速实体位址地址。此方法包括将上述实体区块至少分组为数据区与备用区,设定预设区块数量并从备用区提取m个实体区块。此方法还包括接收具有写入数据与逻辑地址的写入指令,根据逻辑地址与预设区块数量决定m个实体区块所表示的暂存区的逻辑地址范围。并在判断写入数据所欲写入的所有逻辑地址在暂存区的逻辑地址范围内时,使用快速模式将写入数据写入至m个实体区块中。
Description
技术领域
本发明涉及一种数据写入方法,尤其涉及一种兼具写入速度与储存容量的闪存储存装置、闪存控制器及数据写入方法。
背景技术
由于闪存(Flash Memory)具有非挥发性、省电、体积小以及内部无机械结构等特性,因此被广泛地应用于各种电子装置。有越来越多如记忆卡或随身碟等可携式储存装置以闪存作为其中的储存媒体。
闪存具有多个实体区块(physical block),且每一实体区块具有多个实体页面(page),其中在实体区块写入数据时必须根据实体页面的顺序依序地写入数据。此外,闪存根据每一记忆胞能储存的位元数可区分为单层记忆胞(Single Level Cell,SLC)NAND闪存与多层记忆胞(Multi Level Cell,MLC)NAND闪存。在SLC NAND闪存中每一个记忆胞仅能储存一个位元的数据。而在MLC NAND闪存中,每个记忆胞所储存的电荷可被区分为多个位准。因此,在MLC NAND闪存中,一个记忆胞可储存多个位元的数据。基于此,在相同记忆胞数目下,MLC NAND闪存的页面数会是SLC NAND闪存的页面数的数倍。
MLC NAND闪存的实体区块的程序化可分为多阶段。以2层记忆胞为例,实体区块的程序化可分为2阶段。第一阶段是下页(lower page)的写入部分,其物理特性类似于SLC NAND闪存,在完成第一阶段之后才程序化上页(upper page)。一般来说,下页的程序化速度会快于上页数倍。
然而,程序化速度较快的页面通常仅是整个区块的部分页面,因此若单独使用程序化速度较快的页面虽能提升写入速度,但相对来说闪存的可用容 量也将大幅减少。据此,为了尽可能地使用所有的储存容量,程序化速度快或慢的页面都将被使用,这将导致数据写入速度变慢,而无法提升整体的写入效率。
发明内容
本发明提供一种闪存的数据写入方法,在提升数据写入速度的同时,不对储存装置的可用储存容量造成负面影响。
本发明提供一种闪存储存装置,提升其写入速度并确保不过度减少其中闪存的可使用空间。
本发明提供一种闪存控制器,用于具有闪存的储存装置,使其兼具写入速度以及储存容量的优势。
本发明提供一种闪存的数据写入方法,用于具有闪存的储存装置,其中闪存包括多个记忆胞且上述记忆胞划分为多个实体区块,每一实体区块包括多个实体地址,上述实体地址包括至少一快速实体地址与至少一慢速实体地址,且将数据写入至快速实体地址的速度快于将数据写入至慢速实体地址的速度,而每一记忆胞用于储存n个位元,n为大于1的整数。此闪存的数据写入方法包括将上述实体区块至少分组为一数据区(data area)与一备用区(spare area),设定预设区块数量并从备用区提取m个实体区块,以及配置多个逻辑区块且每一逻辑区块包括多个逻辑地址,其中每一逻辑区块映射至数据区的其中一个实体区块。此方法还包括接收主机所下达的第一写入指令,此第一写入指令包括第一写入数据与第一逻辑地址,根据第一逻辑地址与预设区块数量决定m个实体区块所表示的暂存区的逻辑地址范围。此方法包括在判断第一写入数据所欲写入的所有逻辑地址在暂存区的逻辑地址范围内时,使用快速模式将第一写入数据写入至m个实体区块中。其中在快速模式中仅使用实体地址的快速实体地址来写入数据。
本发明提供一种闪存储存装置,包括连接器、闪存,以及闪存控制器。 其中连接器用于耦接主机,并接收主机所下达的写入指令。闪存包括多个记忆胞且上述记忆胞划分为多个实体区块,每一实体区块包括多个实体地址,上述实体地址包括至少一快速实体地址与至少一慢速实体地址。其中,将数据写入至快速实体地址的速度快于将数据写入至慢速实体地址的速度,而每一记忆胞用于储存n个位元,n为大于1的整数。闪存控制器耦接至闪存与连接器,用于将上述实体区块至少分组为数据区与备用区,设定预设区块数量并从备用区提取m个实体区块,以及配置多个逻辑区块且每一逻辑区块包括多个逻辑地址,而每一逻辑区块映射数据区的其中一个实体区块。当闪存控制器接收主机所下达的第一写入指令,而第一写入指令包括第一写入数据与第一逻辑地址时,闪存控制器根据第一逻辑地址与预设区块数量决定m个实体区块所表示的暂存区的逻辑地址范围,并判断第一写入数据所欲写入的所有逻辑地址是否在暂存区的逻辑地址范围内。当第一写入数据所欲写入的所有逻辑地址在暂存区的逻辑地址范围内,闪存控制器使用快速模式将第一写入数据写入至m个实体区块中,其中在快速模式中仅使用实体地址中的快速实体地址来写入数据。
本发明提供一种闪存控制器,配置于耦接至主机的闪存储存装置中,此闪存储存装置具有闪存,闪存包括多个记忆胞且上述记忆胞划分为多个实体区块,每一实体区块包括多个实体地址,上述实体地址包括至少一快速实体地址与至少一慢速实体地址,而将数据写入至快速实体地址的速度快于将数据写入至慢速实体地址的速度,其中每一记忆胞用于储存n个位元,n为大于1的整数。闪存控制器包括微处理器单元、闪存接口单元、主机接口单元以及存储器管理单元。闪存接口单元耦接至微处理器单元用于耦接至闪存。主机接口单元耦接至微处理器单元,用于耦接至主机。存储器管理单元耦接至微处理器单元,用于将上述实体区块至少分组为数据区与备用区。存储器管理单元设定预设区块数量并从备用区提取m个实体区块,以及配置多个逻辑区块且每一逻辑区块包括多个逻辑地址,其中各逻辑区块映射至数据区的 其中一个实体区块。当主机接口单元接收主机所下达的第一写入指令,而第一写入指令包括第一写入数据与第一逻辑地址时,存储器管理单元根据第一逻辑地址与预设区块数量决定m个实体区块所表示的暂存区的逻辑地址范围,并判断第一写入数据所欲写入的所有逻辑地址是否在暂存区的逻辑地址范围内。当第一写入数据所欲写入的所有逻辑地址在暂存区的逻辑地址范围内时,存储器管理单元使用快速模式将第一写入数据写入至m个实体区块中,其中在快速模式中仅使用实体地址中的快速实体地址来写入数据。
基于上述,本发明系动态地决定暂存区的逻辑地址范围,只要所欲写入的数据是位于暂存区的逻辑地址范围内,便利用暂存区中的快速实体地址来储存数据,以增加写入速度。等储存装置进入闲置状态时,再对暂存区中的数据进行处理。如此一来,在利用闪存中具有较快写入速度的实体地址来提升数据写入速度之余,也不会对闪存的可用空间造成负面影响。
为让本发明的上述特征和优点能更明显易懂,下文特举范例实施例,并配合所附图式作详细说明如下。
附图说明
图1A为本发明范例实施例的使用闪存储存装置的主机系统。
图1B为本发明范例实施例的电脑、输入/输出装置与闪存储存装置的示意图。
图1C为本发明另一范例实施例的主机系统与闪存储存装置的示意图。
图1D为图1A所示闪存储存装置100的方块图。
图2为本发明另一范例实施例的闪存控制器的方块图。
图3A、3B为本发明一范例实施例的暂存区与其逻辑地址范围的对应关系示意图。
图4为本发明一范例实施例的写入速度与时间的曲线图。
图5为本发明一范例实施例数据写入方法的流程图。
主要附图标记说明:
1000:主机系统; 1100:电脑;
1102:微处理器; 1104:随机存取存储器;
1106:输入/输出装置; 1108:系统总线;
1110:数据传输接口; 1202:鼠标;
1204:键盘; 1206:显示器;
1208:打印机; 1212:随身碟;
1214:记忆卡; 1216:固态硬盘;
1310:数码相机; 1312:SD卡;
1314:MMC卡; 1316:记忆棒;
1318:CF卡; 1320:嵌入式储存装置;
100:闪存储存装置; 102:连接器;
104、104’:闪存控制器; 1042:主机接口单元;
1044:微处理器单元; 1046:存储器管理单元;
1048:闪存接口单元; 106:闪存;
2002:缓冲存储器; 2004:错误校正单元;
2006:电源管理单元;
L0、L1、L51、L99、L100、L150、LH:逻辑地址;
P0、P1、P2、P3、P198、P199:实体地址;
P_B0、P_B1、P_B99:实体区块; t1、t2、t3:时间点;
510~590:本发明一范例实施例所述数据写入方法的各步骤。
具体实施方式
图1A为本发明范例实施例的使用闪存储存装置的主机系统。图1B为本发明范例实施例的电脑、输入/输出装置与闪存储存装置的示意图。图1C为本发明另一范例实施例的主机系统与闪存储存装置的示意图。
请参照图1A,主机系统1000包括电脑1100与输入/输出(Input/Output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(RandomAccess Memory,RAM)1104、系统总线1108以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明范例实施例中,闪存储存装置100是通过数据传输接口1110与主机系统1000的其他元件耦接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的处理,主机系统1000可将数据写入至闪存储存装置100或从闪存储存装置100中读取数据。例如,闪存储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid State Drive,SSD)1216。
一般而言,主机系统1000为可储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中,主机系统1000也可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机1310时,闪存储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(Memory Stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图1D为图1A所示的闪存储存装置100的方块图。请参照图1D,闪存储存装置100包括连接器102、闪存控制器104与闪存106。
连接器102耦接至闪存控制器104并且用于耦接至主机系统1000。在本范例实施例中,连接器102所支援的传输接口种类为通用序列总线(UniversalSerial Bus,USB)接口。而在其他范例实施例中,连接器102的传输接口种类也可以是串行高级技术附件(Serial Advanced Technology Attachment, SATA)接口、平行高级技术附件(Parallel Advanced Technology Attachment,PATA)接口、电气和电子工程师协会(Institute of Electrical and ElectronicEngineers,IEEE)1394接口、高速周边零件连接接口(Peripheral ComponentInterconnect Express,PCI Express)接口、安全数字(Secure Digital,SD)接口、记忆棒(Memory Stick,MS)接口、多媒体储存卡(Multimedia Card,MMC)接口、小型快闪(Compact Flash,CF)接口,或整合驱动电子(IntegratedDrive Electronics,IDE)接口等任何适用的接口,在此并不加以限制。
闪存控制器104会执行以硬件型式或韧体型式的多个逻辑门或控制指令,并根据主机系统1000的指令在闪存106中进行数据的写入、读取与抹除等运作。闪存控制器104包括主机接口单元1042、微处理器单元1044、存储器管理单元1046,以及闪存接口单元1048。
闪存控制器104通过主机接口单元1042并通过连接器102以耦接至主机系统1000。在本范例实施例中,主机接口单元1042具有USB接口,而在其他范例实施例中,主机接口单元1042也可以是符合SATA接口、PATA接口、IEEE 1394接口、PCI Express接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其他接口标准的接口单元。
此外,闪存控制器104系通过闪存接口单元1048耦接闪存106,据以对闪存106进行相关运作。
如图1D所示,主机接口单元1042、存储器管理单元1046以及闪存接口单元1048均耦接至微处理器单元1044,而微处理器单元1044是闪存控制器104的主控单元,用于和主机接口单元1042、闪存接口单元1048以及存储器管理单元1046等元件协同合作,以进行闪存106的各种运作。
存储器管理单元1046用于在闪存储存装置100耦接至主机系统1000时执行一暂存管理机制。而存储器管理单元1046的详细运作方式将于以下再作详细说明。
在本发明的另一范例实施例中,闪存储存装置100中的闪存控制器还包 括其他功能模组。图2为本发明另一范例实施例的闪存控制器的方块图,请参照图2。在闪存控制器104’中,除了包括主机接口单元1042、微处理器单元1044、存储器管理单元1046以及闪存接口单元1048之外,另外还包括缓冲存储器2002、错误校正单元2004,以及电源管理单元2006。
详细地说,缓冲存储器2002耦接至微处理器单元1044,用于暂存来自于主机系统1000的数据,或暂存来自于闪存106的数据。
错误校正单元2004耦接至微处理器单元1044,用于执行一错误校正程序以确保数据的正确性。具体来说,当闪存控制器104’接收到来自主机系统1000的写入指令时,错误校正单元2004会为对应此写入指令的写入数据产生相应的错误校正码(Error Correcting Code,ECC),而此写入数据与相应的错误校正码将被一并写入至闪存106。而当闪存控制器104’接收到来自主机系统1000的读取指令时,则会从闪存106中读取对应此读取指令的数据及其错误校正码。此时,错误校正单元2004会根据此错误校正码对所读取的数据执行错误校正程序。
电源管理单元2006耦接至微处理器单元1044,用于控制闪存储存装置100的电源。
闪存106用于储存如档案配置表(File Allocation Table,FAT)等档案系统信息,以及储存如影音档案、文字档等一般性数据。在本范例实施例中,闪存106为多层记忆胞(Multi Level Cell,MLC)NAND闪存,亦即,闪存106包括多个记忆胞,且每一记忆胞系用于储存n个位元(n为大于1的整数)。上述记忆胞划分为多个实体区块,每一实体区块包括多个实体地址,而上述实体地址包括至少一快速实体地址与至少一慢速实体地址。其中,将数据写入至任一快速实体地址的速度会快于将数据写入至任一慢速实体地址的速度。
在本范例实施例中,存储器管理单元1046至少会将闪存106中的所有实体区块逻辑地分组为数据区(data area)与备用区(spare area),在其他范例 实施例中,实体区块则例如会被逻辑地分组为系统区(system area)、数据区(data area)、备用区(spare area)与取代区(replacement area)。
存储器管理单元1046根据一预设区块数量从备用区提取m个实体区块以作为暂存区。举例来说,m可以是预设区块数量与n的乘积,但并不以此为限。假设以B表示预设区块数量,那么当闪存106的每一记忆胞用于储存2个位元时,存储器管理单元1046例如会从备用区提取2×B个实体区块作为暂存区。而当闪存106的每一记忆胞用于储存3个位元时,存储器管理单元1046可从备用区提取3×B个实体区块作为暂存区。
在本范例实施例中,当判断要将数据写入暂存区时,存储器管理单元1046仅会把数据写入这m个实体区块所包括的所有实体地址中的快速实体地址。假设闪存106中的每一记忆胞可储存2个位元,其中各实体区块所包括的多个实体地址可分为下页(lower page)与上页(upper page),由于将数据写入下页的速度会快于将数据写入上页的速度,因此存储器管理单元1046将下页视为快速实体地址。若闪存106的每一记忆胞可储存3个位元,各实体区块所包括的多个实体地址则可分为数据写入速度递减的下页、中页,以及上页,那么存储器管理单元1046例如会将下页作为快速实体地址,又或者是将下页及中页视为快速实体地址。换言之,存储器管理单元1046可将实体区块中具有最快写入速度的实体地址视为快速实体地址,或是将实体区块中具有最快以及较快写入速度的实体地址一并视为快速实体地址。
假设m是预设区块数量与n的乘积,且存储器管理单元1046只会将具有最快写入速度的实体地址视为能写入数据的快速实体地址,那么暂存区中可储存数据的容量将与预设区块数量所对应的储存容量相等。
由于闪存储存装置100是以轮替使用闪存106中的实体区块来储存主机系统1000欲写入的数据,因此存储器管理单元1046会配置多个逻辑区块以供主机系统1000存取数据。其中,每个逻辑区块包括多个逻辑地址,每个逻辑区块映射数据区的其中一个实体区块,且该逻辑区块中的每一逻辑地址映 射至对应实体区块中的一实体地址。据此,主机系统1000仅需根据逻辑地址来存取数据,而存储器管理单元1046会在所映射的实体地址中实际地读取或写入数据。
在本范例实施例中,当主机接口单元1042接收到主机系统1000所下达的第一写入指令所包括的第一写入数据与第一逻辑地址时,存储器管理单元1046便会根据预设区块数量及第一写入指令中的第一逻辑地址,决定m个实体区块所表示的暂存区的逻辑地址范围。假设第一逻辑地址为A,且预设区块数量的容量可储存Lnum个逻辑地址,那么m个实体区块所表示的暂存区的逻辑地址范围便是A至A+Lnum-1。进一步来说,随着第一逻辑地址的不同,暂存区的逻辑地址范围也不相同。
存储器管理单元1046首先根据第一写入指令的内容判断第一写入数据所欲写入的所有逻辑地址是否在暂存区的逻辑地址范围之内。若是,存储器管理单元1046会使用一快速模式将第一写入数据写入至m个实体区块中。其中,快速模式表示存储器管理单元1046仅会使用暂存区所包括的所有实体地址中的快速实体地址来写入数据,从而大幅提升写入数据的速度。将第一写入数据写入m个实体区块的快速实体地址的方式将于以下配合图示再作说明。
然而,若第一写入数据所欲写入的所有逻辑地址并未在暂存区的逻辑地址范围之内(亦即,第一写入数据的大小超过暂存区的可用储存容量),存储器管理单元1046则会使用一正常模式将第一写入数据写入至闪存106的其他的实体区块中。在正常模式中,存储器管理单元1046会使用实体地址的快速实体地址与慢速实体地址来写入数据。存储器管理单元1046必须将在数据区中欲写入实体区块内的有效数据以及欲写入的新数据搬移到提取自备用区的实体区块,由于此时写入数据的方式与一般通过轮替实体区块来储存数据的方式相同,故不赘述。
在本范例实施例中,一旦主机系统1000于一段预设时间(例如0.2秒) 都没有下达指令至闪存储存装置100,存储器管理单元1046便判断闪存储存装置100进入闲置状态。此时,存储器管理单元1046会将已写入至m个实体区块中的所有数据都搬移至从备用区所提取的实体区块并将所提取的实体区块关联至数据区,并对这m个实体区块的内容加以清除,以便于下次使用。
倘若在进行上述搬移与清除的动作之前,主机系统1000再次下达了另一写入指令至闪存储存装置100,存储器管理单元1046则会根据此次接收写入指令所欲写入的所有逻辑地址是否在暂存区的逻辑地址范围之内,进而决定要利用暂存区来储存数据,或是通过一般数据写入的方式将数据写入至闪存106。
为了方便说明,在此称主机系统1000接着下达的写入指令为第二写入指令,且第二写入指令包括第二写入数据与第二逻辑地址。当第二写入数据所欲写入的所有逻辑地址不在暂存区的逻辑地址范围内时,存储器管理单元1046使用正常模式将第二写入数据写入至闪存106的其他实体区块中,换言之,当第二写入数据所欲写入的所有逻辑地址部份在暂存区的逻辑地址范围内与部分不在暂存区的逻辑地址范围内时,存储器管理单元1046也使用正常模式将第二写入数据写入至闪存106的其他实体区块中。
当第二写入数据所欲写入的所有逻辑地址在暂存区的逻辑地址范围内时,存储器管理单元1046接着判断暂存区是否被写满(亦即,判断m个实体区块中的所有快速实体地址是否都已写入数据)。
当暂存区已被写满时,存储器管理单元1046将暂存区中的有效数据搬移至闪存106的其他实体区块中,并使用快速模式将第二写入数据写入至m个实体区块中。搬移暂存区中有效数据以及使用快速模式写入第二写入数据的方式在后面详述。
在暂存区未被写满的情况下,存储器管理单元1046接着判断第二写入数据所欲写入的所有逻辑地址与m个实体区块(暂存区)中已写入数据的逻辑地址是否重复。
若第二写入数据所欲写入的所有逻辑地址与m个实体区块中已写入数据的逻辑地址有重复时,存储器管理单元1046将暂存区中的有效数据搬移至闪存106的其他的实体区块中,并使用快速模式将第二写入数据写入至m个实体区块中。而在第二写入数据所欲写入的所有逻辑地址与m个实体区块中已写入数据的逻辑地址并无重复时,存储器管理单元1046则直接使用快速模式将第二写入数据写入至m个实体区块中。
以下说明当存储器管理单元1046判断暂存区已被写满,或是当所欲写入的逻辑地址与m个实体区块中已有数据写入的逻辑地址重复时,存储器管理单元1046搬移有效数据及使用快速模式来写入数据的详细方式。
在一范例实施例中,存储器管理单元1046会对整个暂存区进行整理,并在清除暂存区所包括的实体区块后,重新决定暂存区的逻辑地址范围。详细地说,存储器管理单元1046将在目前作为暂存区的m个实体区块中的所有有效数据搬移至从备用区提取的实体区块中,接着将提取自备用区的实体区块关联至数据区。接下来,存储器管理单元1046抹除原本作为暂存区的m个实体区块,并将这m个实体区块关联至备用区。存储器管理单元1046会再度从备用区提取m个实体区块以作为暂存区,并根据第二逻辑地址与预设区块数量重新决定新提取m个实体区块所对应的暂存区逻辑地址范围。最后,存储器管理单元1046使用快速模式将第二写入数据写入至此m个实体区块中。
在另一范例实施例中,存储器管理单元1046仅会对暂存区中发生重复写入情况的地址进行处理。存储器管理单元1046首先将重复的逻辑地址中的有效数据搬移到提取自备用区的实体区块中,接着再使用快速模式将第二写入数据写入至m个实体区块中。
图3A、图3B为本发明一范例实施例的暂存区与其逻辑地址范围的对应关系示意图。在本范例实施例中假设预设区块数量为50,闪存106中每一记忆胞用于储存2个位元,闪存106中的每一实体区块包括两个实体地址,且 存储器管理单元1046从备用区提取100个实体区块来当作暂存区。如图3A所示,这100个实体区块例如被编号为P_B0至P_B99,而实体区块P_B0至P_B99所包括的实体地址例如被编号为P0至P199。另外假设在实体地址P0至P199中,实体地址P0、P2、P4、...、P198等被编号为双数的实体地址属于快速实体地址。必须特别说明的是,上述假设只是为了方便说明而举出的范例,并不用于限制本发明的范围。
当闪存储存装置100接收到主机系统1000下达的第一写入指令与其中的第一写入数据时,倘若第一写入指令所包括的第一逻辑地址为L0,那么暂存区(即实体区块P_B0至P_B99)所对应的逻辑地址范围便是逻辑地址L0至L99。换句话说,逻辑地址L0系对应至实体区块P_B0中的实体地址P0,逻辑地址L1则对应至实体区块P_B1中的实体地址P2,以此类推。
倘若第一写入数据所欲写入的所有逻辑地址为逻辑地址L0至L29,由于逻辑地址L0至L29完全在暂存区的逻辑地址范围之内,因此存储器管理单元1046会利用快速模式将第一写入数据对应地写入实体地址P0、P2、P4、...、P58。
然而倘若第一写入数据所欲写入的逻辑地址为逻辑地址L0至L100,由于逻辑地址L0至L100有部份超出暂存区的逻辑地址范围,因此存储器管理单元1046会利用正常模式将第一写入数据写入至闪存106的其他实体区块。
在完成数据写入的动作后,存储器管理单元1046会在判断闪存储存装置100进入闲置状态时,对暂存区中的数据进行搬移。假设在此之前,闪存储存装置100又接收到主机系统1000下达的第二写入指令以及对应的第二写入数据。倘若第二写入数据所欲写入的是逻辑地址L50至L59,由于上述逻辑地址都在暂存区的逻辑地址范围内,因此存储器管理单元1046便会将第二写入数据对应地写入暂存区,亦即,将第二写入数据写入实体地址P100、P102、P104、...、P118。
但若第二写入数据所欲写入的所有逻辑地址有部份超过暂存区的逻辑地 址范围(例如当第二写入数据所欲写入的是逻辑地址L50至L110),或所欲写入的逻辑地址完全超过暂存区的逻辑地址范围(例如当第二写入数据所欲写入的是逻辑地址L199至L250),那么存储器管理单元1046便会依照一般闪存的写入方式,以正常模式将第二写入数据写入至闪存106的其他实体区块中。
任何在闪存储存装置100进入闲置状态之前所接收到的写入指令,只要写入指令所欲写入的逻辑地址全部都在暂存区的逻辑地址范围(即逻辑地址L0至L99)之内,写入指令所对应的写入数据便会被对应地储存至实体区块P_B0至P_B99的快速实体地址。
一旦存储器管理单元1046判断闪存储存装置100进入闲置状态,存储器管理单元1046会将写入在实体区块P_B0至P_B99中的所有数据搬移至提取自备用区的实体区块,并清除实体区块P_B0至P_B99的内容。换言之,这些被取作为暂存区的实体区块将再度被关联至闪存106的备用区。
然后,当闪存储存装置100接收到写入指令以及对应的写入数据时,若写入指令中的逻辑地址为L51,那么如图3B所示,存储器管理单元1046会将逻辑地址L51至L150定义为暂存区目前的逻辑地址范围。此时,存储器管理单元1046从备用区所提取100个实体区块(例如被编号为P_B0至P_B99)将对应至逻辑地址L51至L150。举例来说,逻辑地址L51是对应至实体区块P_B0中的实体地址P0,而逻辑地址L150则对应至实体区块P_B99中的实体地址P198。
决定暂存区的逻辑地址范围后,只要写入指令所欲写入的逻辑地址全部在暂存区的逻辑地址范围(即逻辑地址L51至L150)之内,写入指令所对应的写入数据便会被对应地储存至实体区块P_B0至P_B99的快速实体地址。
如上所述,当所欲写入的地址在暂存区的逻辑地址范围内时,便利用暂存区中对应的快速实体地址来暂存数据,以加快数据写入的速度。一旦完成写入动作,再利用闪存储存装置100进入闲置状态时对暂存区中的数据进行 搬移。由于暂存区的逻辑地址范围会根据决定范围时所接收的写入指令的逻辑地址而有所变动,因此具有较快写入速度的并非固定的逻辑地址,而会动态改变。
图4为本发明一范例实施例的写入速度与时间的曲线图。如图4所示,只要暂存区尚有空间便能以较快的速度进行数据写入(例如时间区间0-t1所示)。一旦暂存区已满(如时间点t1),写入速度将回复为一般写入数据的速度。但在利用闪存储存装置100进入闲置状态的时间而清除暂存区后(例如时间点t2),接下来收到写入指令的写入速度将再次提升(例如时间区间t2-t3所示)。
图5为本发明一范例实施例数据写入方法的流程图。
如图5所示,在步骤510中,闪存储存装置100接收主机系统1000下达的写入指令,此写入指令包括写入数据与逻辑地址。
接着在步骤515中,闪存控制器104中的存储器管理单元1046根据逻辑地址与预设区块数量,决定提取备用区的m个实体区块所表示的暂存区的逻辑地址范围。
在步骤520中,存储器管理单元1046判断写入数据所欲写入的逻辑地址是否在暂存区的逻辑地址范围内。若是,则在步骤530中,存储器管理单元1046使用快速模式将写入数据写入至m个实体区块中。若否,则在步骤525中,存储器管理单元1046使用正常模式将写入数据写入至闪存106的其他实体区块。
接着在步骤535中,存储器管理单元1046判断闪存储存装置100是否进入闲置状态。若闪存储存装置100并未进入闲置状态,在步骤550中,存储器管理单元1046判断闪存储存装置100是否接收主机系统1000下达的另一写入指令。若并未收到写入指令,存储器管理单元1046会重复步骤535及550的判断。期间,若存储器管理单元1046判断闪存储存装置100进入闲置状态,则如步骤540所示,存储器管理单元1046将已写入在m个实体区块 中的有效数据搬移至闪存106的其他实体区块,并清除这m个实体区块的内容。而当闪存储存装置100接收到另一写入指令时,在步骤560中,存储器管理单元1046判断此写入指令所包括的写入数据欲写入的所有逻辑地址是否都在暂存区的逻辑地址范围内。若否,则如步骤525所示,存储器管理单元1046使用正常模式将写入数据写入至闪存106的其他实体区块。若是,则在步骤570中,存储器管理单元1046判断暂存区是否被写满。
当暂存区被写满时,如步骤590所示,存储器管理单元1046将暂存区中的有效数据搬移至闪存的其他的实体区块中,并使用快速模式将第二写入数据写入至m个实体区块中。
然而当暂存区未被写满时,则如步骤580所示,存储器管理单元1046判断写入数据所欲写入的所有逻辑地址与暂存区中已写入数据的逻辑地址是否重复。若有重复,则在步骤590中,存储器管理单元1046将暂存区中的有效数据搬移至闪存的其他的实体区块中,并使用快速模式将第二写入数据写入至m个实体区块。若并未重复,则如步骤530所示,存储器管理单元1046使用快速模式将写入数据写入至m个实体区块中。
如图5所示,一旦决定暂存区的逻辑地址范围之后,本范例实施例所述的数据写入方法会重复步骤530至590的流程,直到存储器管理单元1046判断闪存储存装置100进入闲置状态,再对暂存区中的数据进行整理。然后,当闪存储存装置100又接收其他的写入指令时,则会再次通过图5所示的各步骤,重新决定暂存区的逻辑地址范围,并将数据写入至闪存106中。
在本发明的一范例实施例中,只有当存储器管理单元1046判断主机系统1000所下达的写入指令对应的写入数据大小均超过一预设值时,才会利用暂存区来完成快速写入数据的目的。又或者,存储器管理单元1046会在判断接收到特定数量的写入指令所欲写入的数据大小都超过预设值,且上述写入数据所欲写入的逻辑地址连续时,才开始利用暂存区完成快速写入数据的目的。在本发明的一范例实施例中,上述预设值为5MB,但本发明并不以此为限。
在本发明的一范例实施例中,预设区块数量的多寡可根据写入数据的大小做调整。当存储器管理单元1046判断主机系统1000的行为是连续写入(sequential write)且数据量较大时,便可提高预设区块数量,以更进一步地提升写入数据的效率。
综上所述,本发明所述的数据写入方法、闪存储存装置与闪存控制器提取部分实体区块作为暂存区,当判断可使用暂存区时,便将数据写入暂存区中的快速实体地址,进而增加写入速度。等待储存装置进入闲置状态,再搬移暂存区中的数据。据此,在不过度减少闪存的可用容量的前提下,达到提升数据写入速度的目的。
虽然本发明以范例实施例揭示如上,但其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可以作任意的更改或等同替换,故本发明的保护范围应当根据本发明权利要求书所界定的范围为准。
Claims (15)
1.一种闪存的数据写入方法,用于具有一闪存的一储存装置,其中该闪存包括多个记忆胞且所述记忆胞划分为多个实体区块,每一所述实体区块包括多个实体地址,所述实体地址包括至少一快速实体地址与至少一慢速实体地址,且写入数据至该至少一快速实体地址的速度快于写入数据至该至少一慢速实体地址的速度,其中每一记忆胞用于储存n个位元,n为大于1的整数,该闪存的数据写入方法包括:
将所述实体区块至少分组为一数据区与一备用区;
设定一预设区块数量并从该备用区提取m个实体区块;
配置多个逻辑区块且每一所述逻辑区块包括多个逻辑地址,其中每一所述逻辑区块映射该数据区的实体区块的其中之一;
接收一主机所下达的一第一写入指令,该第一写入指令包括一第一写入数据与一第一逻辑地址;
根据该第一逻辑地址与该预设区块数量决定该m个实体区块所表示的一暂存区的逻辑地址范围;
判断该第一写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内;以及
当该第一写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内时,则使用一快速模式将该第一写入数据写入至该m个实体区块中,其中在该快速模式中仅使用所述实体地址的快速实体地址来写入数据。
2.根据权利要求1所述的闪存的数据写入方法,其中在判断该第一写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内的步骤之后,该方法还包括:
当该第一写入数据所欲写入的所有逻辑地址不在该暂存区的逻辑地址范围内时,则使用一正常模式将该第一写入数据写入至该闪存的其他的实体区块中,其中在该正常模式中使用所述实体地址的快速实体地址与慢速实体地 址来写入数据。
3.根据权利要求1所述的闪存的数据写入方法,还包括:
接收该主机所下达的一第二写入指令,该第二写入指令包括一第二写入数据与一第二逻辑地址;
判断该第二写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内;以及
当该第二写入数据所欲写入的所有逻辑地址不在该暂存区的逻辑地址范围内时,使用一正常模式将该第二写入数据写入至该闪存的其他的实体区块中,其中在该正常模式中使用所述实体地址的快速实体地址与慢速实体地址来写入数据。
4.根据权利要求3所述的闪存的数据写入方法,其中在判断该第二写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内的步骤后,还包括:
当该第二写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内时,判断该暂存区是否被写满;以及
当该暂存区已被写满时,搬移该暂存区中的有效数据至该闪存的其他的实体区块中,并使用该快速模式将该第二写入数据写入至该m个实体区块中。
5.根据权利要求4所述的闪存的数据写入方法,其中在判断该暂存区是否被写满的步骤之后,还包括:
当该暂存区未被写满时,判断该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址是否重复;以及
当该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址有重复时,搬移该暂存区中的有效数据至该闪存的其他的实体区块中,并使用该快速模式将该第二写入数据写入至该m个实体区块中。
6.根据权利要求5所述的闪存的数据写入方法,其中在判断该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址是否重复的步骤之后,还包括:
当该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址无重复时,使用该快速模式将该第二写入数据写入至该m个实体区块中。
7.根据权利要求1所述的闪存的数据写入方法,还包括:
判断该第一写入数据的大小是否大于或等于一预设值,当该第一写入数据的大小是大于或等于该预设值且该第一写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内时,则使用该快速模式将该第一写入数据写入至该m个实体区块中。
8.一种闪存储存装置,包括:
一连接器,用于耦接一主机,并接收该主机下达的写入指令;
一闪存,该闪存包括多个记忆胞且所述记忆胞划分为多个实体区块,每一所述实体区块包括多个实体地址,所述实体地址包括至少一快速实体地址与至少一慢速实体地址,其中写入数据至该至少一快速实体地址的速度快于写入数据至该至少一慢速实体地址的速度,而每一记忆胞用于储存n个位元,n为大于1的整数;以及
一闪存控制器,耦接至该闪存与该连接器,用于将所述实体区块至少分组为一数据区与一备用区,设定一预设区块数量并从该备用区提取m个实体区块,以及配置多个逻辑区块且每一所述逻辑区块包括多个逻辑地址,而每一所述逻辑区块映射该数据区的实体区块的其中之一,
当该闪存控制器接收该主机所下达的一第一写入指令,而该第一写入指令包括一第一写入数据与一第一逻辑地址时,该闪存控制器根据该第一逻辑地址与该预设区块数量决定该m个实体区块所表示的一暂存区的逻辑地址范围,并判断该第一写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内,
当该第一写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内,该闪存控制器使用一快速模式将该第一写入数据写入至该m个实体区块 中,其中在该快速模式中仅使用所述实体地址的快速实体地址来写入数据。
9.根据权利要求8所述的闪存储存装置,其中当该第一写入数据所欲写入的所有逻辑地址不在该暂存区的逻辑地址范围内时,该闪存控制器使用一正常模式将该第一写入数据写入至该闪存的其他的实体区块中,其中在该正常模式中使用所述实体地址的快速实体地址与慢速实体地址来写入数据。
10.根据权利要求8所述的闪存储存装置,其中当该闪存控制器接收该主机所下达的一第二写入指令,而该第二写入指令包括一第二写入数据与一第二逻辑地址时,该闪存控制器判断该第二写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内,
当该第二写入数据所欲写入的所有逻辑地址不在该暂存区的逻辑地址范围内时,该闪存控制器使用一正常模式将该第二写入数据写入至该闪存的其他的实体区块中,其中在该正常模式中使用所述实体地址的快速实体地址与慢速实体地址来写入数据。
11.根据权利要求10所述的闪存储存装置,其中当该第二写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内时,该闪存控制器判断该暂存区是否被写满,
当该暂存区已被写满时,该闪存控制器搬移该暂存区中的有效数据至该闪存的其他的实体区块中,并使用该快速模式将该第二写入数据写入至该m个实体区块中。
12.根据权利要求11所述的闪存储存装置,其中当该暂存区未被写满时,该闪存控制器判断该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址是否重复,
当该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址有重复时,该闪存控制器搬移该暂存区中的有效数据至该闪存的其他的实体区块中,并使用该快速模式将该第二写入数据写入至该m个实体区块中。
13.根据权利要求12所述的闪存储存装置,其中当该第二写入数据所欲写入的所有逻辑地址与该m个实体区块中已写入数据的逻辑地址无重复时,该闪存控制器使用该快速模式将该第二写入数据写入至该m个实体区块中。
14.一种闪存控制器,配置于耦接至一主机的一闪存储存装置中,该闪存储存装置具有一闪存,该闪存包括多个记忆胞且所述记忆胞划分为多个实体区块,每一所述实体区块包括多个实体地址,所述实体地址包括至少一快速实体地址与至少一慢速实体地址,而写入数据至该至少一快速实体地址的速度快于写入数据至该至少一慢速实体地址的速度,其中每一记忆胞用于储存n个位元,n为大于1的整数,该闪存控制器包括:
一微处理器单元;
一闪存接口单元,耦接至该微处理器单元,用于耦接至该闪存;
一主机接口单元,耦接至该微处理器单元,用于耦接至该主机;以及
一存储器管理单元,耦接至该微处理器单元,用于将所述实体区块至少分组为一数据区与一备用区,设定一预设区块数量并从该备用区提取m个实体区块,以及配置多个逻辑区块且每一所述逻辑区块包括多个逻辑地址,其中每一所述逻辑区块映射该数据区的实体区块的其中之一,
当该主机接口单元接收该主机所下达的一第一写入指令,而该第一写入指令包括一第一写入数据与一第一逻辑地址时,该存储器管理单元根据该第一逻辑地址与该预设区块数量决定该m个实体区块所表示的一暂存区的逻辑地址范围,并判断该第一写入数据所欲写入的所有逻辑地址是否在该暂存区的逻辑地址范围内,
当该第一写入数据所欲写入的所有逻辑地址在该暂存区的逻辑地址范围内时,该存储器管理单元使用一快速模式将该第一写入数据写入至该m个实体区块中,其中在该快速模式中仅使用所述实体地址的快速实体地址来写入数据。
15.根据权利要求14所述的闪存控制器,其中当该第一写入数据所欲写 入的所有逻辑地址不在该暂存区的逻辑地址范围内时,该存储器管理单元使用一正常模式将该第一写入数据写入至该闪存的其他的实体区块中,其中在该正常模式中使用所述实体地址的快速实体地址与慢速实体地址来写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117087 CN102156619B (zh) | 2010-02-12 | 2010-02-12 | 闪存储存装置、闪存控制器及闪存的数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010117087 CN102156619B (zh) | 2010-02-12 | 2010-02-12 | 闪存储存装置、闪存控制器及闪存的数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102156619A CN102156619A (zh) | 2011-08-17 |
CN102156619B true CN102156619B (zh) | 2013-05-22 |
Family
ID=44438130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010117087 Active CN102156619B (zh) | 2010-02-12 | 2010-02-12 | 闪存储存装置、闪存控制器及闪存的数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102156619B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102586B (zh) * | 2013-04-15 | 2019-02-22 | 中兴通讯股份有限公司 | 一种地址映射处理的方法、装置 |
CN106326131B (zh) * | 2015-06-18 | 2020-05-12 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
CN107807799A (zh) * | 2017-11-24 | 2018-03-16 | 苏州韦科韬信息技术有限公司 | 固态硬盘的写入方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700189A (zh) * | 2005-06-01 | 2005-11-23 | 瑞程科技股份有限公司 | 闪存储存系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877542B2 (en) * | 2000-01-06 | 2011-01-25 | Super Talent Electronics, Inc. | High integration of intelligent non-volatile memory device |
-
2010
- 2010-02-12 CN CN 201010117087 patent/CN102156619B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700189A (zh) * | 2005-06-01 | 2005-11-23 | 瑞程科技股份有限公司 | 闪存储存系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102156619A (zh) | 2011-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8706952B2 (en) | Flash memory storage device, controller thereof, and data programming method thereof | |
US9280460B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9639475B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
US9772797B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9304900B2 (en) | Data reading method, memory controller, and memory storage device | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
CN104102585A (zh) | 映射信息记录方法、存储器控制器与存储器储存装置 | |
CN103544115B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN104732153A (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN103035282B (zh) | 存储器储存装置、存储器控制器与温度管理方法 | |
CN103699344A (zh) | 非易失性存储器装置及其操作方法 | |
US20120179859A1 (en) | Nonvolatile memory apparatus performing ftl function and method for controlling the same | |
US20120210045A1 (en) | Data access method, and memory controller and memory storage apparatus using the same | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103389941B (zh) | 存储器格式化方法、存储器控制器及存储器存储装置 | |
CN102156619B (zh) | 闪存储存装置、闪存控制器及闪存的数据写入方法 | |
CN103914391A (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN105224238A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN103544118A (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN103218308B (zh) | 缓冲存储器管理方法、存储器控制器与存储器储存装置 | |
CN102543184B (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 |