CN103473182B - 非挥发性存储器存取方法及非挥发性存储器控制器 - Google Patents
非挥发性存储器存取方法及非挥发性存储器控制器 Download PDFInfo
- Publication number
- CN103473182B CN103473182B CN201310352644.2A CN201310352644A CN103473182B CN 103473182 B CN103473182 B CN 103473182B CN 201310352644 A CN201310352644 A CN 201310352644A CN 103473182 B CN103473182 B CN 103473182B
- Authority
- CN
- China
- Prior art keywords
- physical page
- data
- physical
- page
- predetermined number
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种非挥发性存储器存取方法及非挥发性存储器控制器,用于存取一非挥发性存储器芯片内的多个实体区块,其中每一这些实体区块具有多个实体页,而这些实体页包括多个快速实体页与多个慢速实体页。本方法包括:当一主机系统欲写入一数据至一第一实体区块时,判断该第一实体区块中一预设数量的实体页是否已被写满;以及当该预设数量的实体页已被写满时,选择一第二实体区块来写入该数据,其中该预设数量的实体页为至少2个实体页,且包括部分这些快速实体页与部分这些慢速实体页,而当该预设数量的实体页已被写满时,该第一实体区块中仍有部分实体页未被写入数据。
Description
本申请是申请日为2010年03月12日、申请号为201010136470.2、名称为“非挥发性存储器存取方法、系统及非挥发性存储器控制器”的发明专利申请的分案申请。
技术领域
本发明涉及一种非挥发性存储器存取方法及使用此方法的非挥发性存储器控制器。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储介质的需求也急速增加。由于非挥发性存储器(FlashMemory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘(SolidStateDrive,SSD)就是一种以NAND非挥发性存储器作为存储介质的存储装置。由于非挥发性存储器体积小容量大,所以已广泛用于个人重要数据的存储。因此,近年非挥发性存储器产业成为电子产业中相当热门的一环。
在非挥发性存储器存取装置的设计中,非挥发性存储器芯片具有多个实体区块(block),且每一个实体区块具有多个实体页(page)。其中,实体区块是非挥发性存储器的最小擦除(erase)单位,而实体页则是非挥发性存储器的最小写入(program)单位。由于在对非挥发性存储器的存储单元(memorycell)进行编程时,仅能执行单向的编程(亦即将存储单元的值由1编程为0),因此无法将数据直接写入已被编程过的实体页。换句话说,必须先将已存储有数据的实体页擦除之后才可重新编程这个实体页。然而,正因非挥发性存储器的擦除是以实体区块为单位,故在需要对存有旧数据的实体页执行擦除运作时,必须将此实体页所属的整个实体区块进行擦除。
一般而言,非挥发性存储器存取装置的非挥发性存储器控制器会将非挥发性存储器芯片内所有的实体区块逻辑地分组为系统区(systemarea)、数据区(dataarea)、备用区(sparearea)与取代区(replacementarea)。其中,系统区的实体区块用以存储与非挥发性存储器存取装置相关的重要信息,而取代区的实体区块则用以取代数据区或备用区中已损坏的实体区块(亦即坏实体区块)。因此,在一般存取状态下,主机系统是无法存取系统区与取代区中的实体区块。至于,被归类为数据区的实体区块会存储由写入指令所写入的有效数据,而备用区的实体区块则用以在执行写入指令时替换数据区的实体区块。由此可知,当主机系统下达写入指令的同时,通常会伴随着两实体区块(亦即数据区的实体区块与备用区的实体区块)合并的动作,藉以才能完成数据更新的目的。
然而,在某些非挥发性存储器的应用上,特别是针对具有智慧卡(smartcard)的微安全数字存储器卡(microsecure-digital/SDmemorycard)而言,这样的数据更新机制很有可能无法满足现行微安全数字存储器卡的规格书所定义完成一个写入指令的时间。一般而言,微安全数字存储器卡的规格书已明确定义每一个写入指令的完成时间必需小于250ms。
发明内容
本发明提出一种非挥发性存储器存取方法、系统以及非挥发性存储器控制器,用以确保执行一写入指令的时间不超过规格书所定义的时间。
本发明提出一种非挥发性存储器存取方法,用于管理非挥发性存储器芯片内的多个实体区块,且每一实体区块具有多个实体页。此非挥发性存储器存取方法包括当第一实体区块中相连的多个特定实体页的其中之一所存储的数据要被更新时,判断第一实体区块是否有足够空间写入所述特定实体页。当第一实体区块有足够空间写入所述特定实体页时,将所述特定实体页的有效数据与要被更新的数据写入至第一实体区块中。
本发明另提出一种非挥发性存储器存取方法,用于存取非挥发性存储器芯片内的多个实体区块。其中每一实体区块具有多个实体页,而上述实体页包括多个快速实体页与多个慢速实体页。此非挥发性存储器存取方法包括当主机系统欲将数据写入至第一实体区块时,判断第一实体区块中预设数量的实体页是否已被写满。当预设数量的实体页已被写满时,选择第二实体区块来写入数据。其中,预设数量的实体页为至少2个实体页,且包括部分快速实体页与部分慢速实体页,而当预设数量的实体页已被写满时,第一实体区块中仍有部分实体页未被写入数据。
本发明还提供一种非挥发性存储器控制器,配置于非挥发性存储器存取装置中,此非挥发性存储器存取装置包括非挥发性存储器芯片,其中非挥发性存储器芯片包括多个实体区块,且每一实体区块具有多个实体页。非挥发性存储器控制器包括微处理器单元、非挥发性存储器接口单元、主机接口单元以及存储器管理单元。非挥发性存储器接口单元耦接微处理器单元,用以耦接至非挥发性存储器芯片。主机接口单元耦接至微处理器单元,用以耦接至主机系统。存储器管理单元耦接至微处理器单元。其中,当主机系统欲更新上述实体区块内第一实体区块中相连的多个特定实体页其中之一所存储的数据时,存储器管理单元判断第一实体区块是否有足够空间写入上述特定实体页。当第一实体区块有足够空间写入上述特定实体页时,将上述特定实体页的有效数据与要被更新的数据写入至第一实体区块中。
本发明提出一种非挥发性存储器控制器,配置于非挥发性存储器存取装置中,非挥发性存储器存取装置包括非挥发性存储器芯片,其中非挥发性存储器芯片包括多个实体区块,且每一实体区块具有多个实体页,而上述实体页包括多个快速实体页与多个慢速实体页。非挥发性存储器控制器包括微处理器单元、非挥发性存储器接口单元、主机接口单元以及存储器管理单元。非挥发性存储器接口单元耦接微处理器单元,用以耦接至非挥发性存储器芯片。主机接口单元耦接至微处理器单元,用以耦接至主机系统。存储器管理单元耦接至微处理器单元。其中,当主机系统欲写入数据至上述实体区块中的第一实体区块时,存储器管理单元判断第一实体区块中预设数量的实体页是否已被写满。其中,预设数量的实体页为至少2个实体页,且包括部分快速实体页与部分慢速实体页。当预设数量的实体页已被写满时,第一实体区块中仍有部分实体页未被写入数据,而存储器管理单元选择第二实体区块以写入数据。
本发明更提供一种非挥发性存储器存取系统,包括非挥发性存储器芯片、连接器,以及非挥发性存储器控制器。非挥发性存储器芯片具有多个实体区块,且每一实体区块具有多个实体页。连接器用以耦接至主机系统。非挥发性存储器控制器耦接至非挥发性存储器芯片与连接器,当主机系统欲更新上述实体区块中第一实体区块中相连的多个特定实体页其中之一所存储的数据时,非挥发性存储器控制器判断第一实体区块是否有足够空间写入上述特定实体页。如果是,将上述特定实体页的有效数据与要被更新的数据写入至第一实体区块中。
为让本发明的上述特征和优点能更明显易懂,下文特举多个实施例,并配合附图,作详细说明如下,但是上述一般描述及以下实施方式仅为例示性及阐释性的,其并不能限制本发明所欲主张的范围。
附图说明
图1A是根据本发明第一范例实施例绘示使用非挥发性存储器存取装置的主机系统。
图1B是根据本发明范例实施例所绘示的计算机、输入/输出装置与非挥发性存储器存取装置的示意图。
图1C是根据本发明另一范例实施例所绘示的主机系统与非挥发性存储器存取装置的示意图。
图2是绘示图1A所示的非挥发性存储器存取装置的概要方块图。
图3是绘示图1A所示的非挥发性存储器存取装置的运作示意图。
图4A与图4B是根据本发明一范例实施例所绘示的数据更新的示意图。
图5是根据本发明的一范例实施例所绘示第一执行绪与第二执行续执行写入指令的时序图。
图6是根据本发明的一范例实施例所绘示非挥发性存储器存取方法的流程图。
图7是根据本发明的另一范例实施例所绘示非挥发性存储器存取方法的流程图。
【主要元件符号说明】
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:非挥发性存储器控制器
106:非挥发性存储器芯片
106A:第一存储区域
106B:第二存储区域
202:微处理器单元
204:存储器管理单元
206:主机接口单元
208:非挥发性存储器接口单元
252:缓冲存储器
254:电源管理单元
256:错误校正单元
310:第一执行绪
320:第二执行绪
P0~P127:实体页
t1、t2、t3、t4:时间点
T13:第一执行绪写入数据的时间
T34:第二执行绪写入数据的时间
T14:总时间
610~650:本发明的一范例实施例所述的非挥发性存储器存取方法的各步骤
710~770:本发明的另一范例实施例所述的非挥发性存储器存取方法的各步骤
具体实施方式
现将详细参考本发明的实施例,并在附图中说明所述实施例的实例。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件代表相同或类似部分。
图1A是根据本发明的范例实施例所绘示的使用非挥发性存储器存取装置的主机系统的示意图。其中,非挥发性存储器存取装置也可称为非挥发性存储器存取系统。
请参照图1,主机系统1000包括计算机1100与输入/输出(Input/Output,I/O)装置1106。
计算机1100包括微处理器1102、随机存取存储器(RandomAccessMemory,RAM)1104、系统总线1108,以及数据传输接口1110。输入/输出装置1106包括如图1B所示的鼠标1202、键盘1204、显示器1206与印表机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明范例实施例中,非挥发性存储器存取装置100会通过数据传输接口1110与主机系统1000的其他元件耦接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的处理,主机系统1000可将数据写入至非挥发性存储器存取装置100,或从非挥发性存储器存取装置100中读取数据。例如,非挥发性存储器存取装置100可以是如图1B所示的存储卡1214、随身碟1212,或固态硬盘(SolidStateDrive,SSD)1216。
主机系统1000为可存储数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来进行说明,然而,在本发明另一范例实施例中,主机系统1000也可以是数字相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数字相机1310时,非挥发性存储器存取装置则为其所使用的安全数字(SecureDigital,SD)卡1312、多媒体存储(MultimediaCard,MMC)卡1314、存储棒(MemoryStick)1316、小型快闪(CompactFlash,CF)卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图2是绘示图1A所示的非挥发性存储器存取装置的概要方块图。请参照图2,非挥发性存储器存取装置100包括连接器102、非挥发性存储器控制器104,以及非挥发性存储器芯片106。
连接器102耦接至非挥发性存储器控制器104,并且用以耦接至主机系统1000。在本范例实施例中,连接器102所支持的传输接口种类为安全数字接口(SDinterface)。然而在其他范例实施例中,连接器102的传输接口种类也可以是多媒体存储卡(MultimediaCard,MMC)接口、串行先进附件(SerialAdvancedTechnologyAttachment,SATA)接口、平行先进附件(ParallelAdvancedTechnologyAttachment,PATA)接口、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394接口、高速周边零件连接接口(PeripheralComponentInterconnectExpress,PCIExpress)接口、通用串行总线(UniversalSerialBus,USB)接口、存储棒(MemoryStick,MS)接口、小型快闪(CompactFlash,CF)接口,或整合驱动电子(IntegratedDriveElectronics,IDE)接口等任何适用的接口,在此并不加以限制。
非挥发性存储器控制器104会执行以硬件型式或固件型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在非挥发性存储器芯片106中进行数据的写入、读取与擦除等运作。
在本范例实施例中,非挥发性存储器芯片106为快闪存储器芯片,快闪存储器芯片具有多个实体区块(block),且每一实体区块具有多个实体页(page)。非挥发性存储器芯片106用以存储如文件配置表(FileAllocationTable,FAT)等文件系统信息,以及存储如影音文件、文本文件等一般性数据。在本范例实施例中,非挥发性存储器芯片106为多层存储单元(MultiLevelCell,MLC)NAND快闪存储器芯片。然而本发明不限于此,非挥发性存储器芯片106也可是单层存储单元(SingleLevelCell,SLC)NAND快闪存储器芯片。
详细地说,在目前NAND快闪存储器技术中,NAND快闪存储器芯片可根据每一存储单元中可存储的位元数区分为SLCNAND快闪存储器芯片与MLCNAND快闪存储器芯片。在对SLCNAND快闪存储器芯片的存储单元进行编程(program)时仅能执行单阶的编程,因此每一存储单元仅能存储一个位元。而MLCNAND快闪存储器芯片的实体区块的编程则可分为多阶段。例如,以2层存储单元为例,实体区块的编程可分为2阶段。第一阶段是下页(lowerpage)的写入部分,其物理特性类似于SLCNAND快闪存储器芯片,而在完成第一阶段之后才会编程上页(upperpage)。其中下页的写入速度会快于上页。因此,每一实体区块所包括的实体页可区分为慢速实体页(即,上页)与快速实体页(即,下页)。
类似地,在8层存储单元或16层存储单元的案例中,存储单元会包括更多个实体页并且会以更多阶段来写入。在此,将写入速度最快的实体页称为下页,其他写入速度较慢的实体页统称为上页,亦即,上页包括具有不同写入速度的多个实体页。而在其他范例实施例中,上页也可为写入速度最慢的实体页,或者写入速度最慢与部分写入速度快于写入速度最慢实体页的实体页。例如,在4层存储单元中,下页为写入速度最快与写入速度次快的实体页,上页则为写入速度最慢与写入速度次慢的实体页。
在本范例实施例中,非挥发性存储器控制器104包括微处理器单元202、存储器管理单元204、主机接口单元206,以及非挥发性存储器接口单元208。
微处理器单元202为非挥发性存储器控制器104的主控单元,用以与存储器管理单元204、主机接口单元206与非挥发性存储器接口单元208等协同合作,以进行非挥发性存储器存取装置100的各种运作。
存储器管理单元204耦接至微处理器单元202,用以执行一非挥发性存储器存取机制。在本范例实施例中,存储器管理单元204可以固件型式实作在非挥发性存储器控制器104中。例如,将包括多个控制指令的存储器管理单元204烧录至一程序存储器(例如,只读存储器(ReadOnlyMemory,ROM))中,并且将此程序存储器嵌入在非挥发性存储器控制器104。当非挥发性存储器存取装置100运作时,微处理器单元202将执行存储器管理单元204的多个控制指令,据以执行非挥发性存储器存取机制。存储器管理单元204的详细运作方式将于以下配合附图再作说明。
主机接口单元206耦接至微处理器单元202,并且耦接至主机系统100。主机接口单元206用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口单元206来传送至微处理器单元202。在本范例实施例中,主机接口单元206为符合SD接口,而在其他范例实施例中,主机接口单元1042也可以是符合MMC接口、SATA接口、PATA接口、IEEE1394接口、PCIExpress接口、USB接口、MS接口、CF接口、IDE接口或其他接口标准的接口单元。
非挥发性存储器接口单元208耦接至微处理器单元202,并且用以使非挥发性存储器控制器104耦接至非挥发性存储器芯片106,藉以让非挥发性存储器控制器104对非挥发性存储器芯片106进行相关运作。也就是说,欲写入至非挥发性存储器芯片106的数据会经由非挥发性存储器接口单元208转换为非挥发性存储器芯片106所能接受的格式。
在另一范例实施例中,非挥发性存储器控制器104还包括缓冲存储器252、电源管理单元254,以及错误校正单元256。
缓冲存储器252耦接至微处理器单元202,并且用以暂存来自于主机系统1000的数据与指令,或者用以暂存来自于非挥发性存储器芯片106的数据。
电源管理单元254耦接至微处理器单元202,并且用以控制非挥发性存储器存取装置100的电源。
错误校正单元256耦接至微处理器单元202,并且用以执行一错误校正程序以确保数据的正确性。具体来说,当存储器管理单元204从主机系统1000中接收到写入指令时,错误校正单元256会为对应此写入指令的写入数据产生对应的错误检查与校正码(ErrorCheckingandCorrectingCode,ECCCode),并且存储器管理单元204会将此写入数据与对应的错误校正码写入至非挥发性存储器芯片106中。之后,当存储器管理单元204从非挥发性存储器芯片106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正单元256会依据此错误校正码对所读取的数据执行错误校正程序。
在本范例实施例中,非挥发性存储器控制器104包括一个以上的执行绪,这些执行绪将由非挥发性存储器控制器104中的一即时操作系统(RealTimeOperationSystem,RTOS)单元(未绘示)进行排程。亦即,非挥发性存储器存取装置100采用多执行绪架构,且即时操作系统单元用来管理与决定这些执行绪的执行顺序。必须特别说明的是,本发明并不对执行绪的数量及其工作内容加以限制。
为了方便说明,在此假设非挥发性存储器控制器104包括两个执行绪(如图3所示的第一执行绪310与第二执行绪320)。第一执行绪310与第二执行绪320必须通过非挥发性存储器接口单元208对非挥发性存储器芯片106进行存取。假设非挥发性存储器存取装置100是具有智慧卡(smartcard)的微安全数字存储器卡(microSDmemorycard),那么第一执行绪310例如是智慧卡应用程序,用以执行与智慧卡相关的指令,而第二执行绪320则例如是负责接收来自主机系统1000的指令,并从非挥发性存储器芯片106读写数据。在本范例实施例中,虽然第一执行绪310与第二执行绪320均有存取非挥发性存储器芯片106的需求,但相较之下第一执行绪310的数据存取量会小于第二执行绪320。且必须特别说明的是,在非挥发性存储器控制器104中的即时操作系统单元将需由第一执行绪310负责的指令交付给第一执行绪310后,非挥发性存储器控制器104便可回应主机系统1000一个工作执行完毕的讯息(回应的方式可以在主机系统1000询问时回传讯息,或由非挥发性存储器控制器104主动将讯息传至主机系统1000),此举是为了避免第一执行绪310解析指令内容耗时过久。然而,在即时操作系统单元将需由第二执行绪320负责的指令交付给第二执行绪320后,则必须等待第二执行绪320实际完成工作(例如写入数据)后,非挥发性存储器控制器104才会回传工作完成的讯息。
在本范例实施例中,非挥发性存储器芯片106至少被划分为第一存储区域106A与第二存储区域106B。其中,第一执行绪310用以对第一存储区域106A进行存取,可处理要将数据写入至第一存储区域106A的写入指令。而第二执行绪320则是用以对第二存储区域106B进行存取,能处理要将数据写入至第二存储区域106B的写入指令。进一步来说,关于第一存储区域106A的写入指令为智慧卡存取指令,而关于第二存储区域106B的写入指令为安全数字存储卡存取指令。
一般而言,非挥发性存储器控制器104在执行主机系统1000所下达的写入指令时,通常需要伴随对两实体区块进行合并的动作,藉以完成数据更新的目的。然而,微安全数字存储器卡的规格书已明确定义每一个写入指令的完成时间必需小于或等于一规定时限(即250毫秒(ms))。
假设本范例实施例中每个实体页的大小为4K字节(byte),且每个实体区块具有128个实体页。实际量测数据的估算结果显示,完成两个实体区块的合并动作的所需时间约为155.8ms。据此假设非挥发性存储器控制器104接获需由第一执行绪310执行的写入指令,且该写入指令会产生两实体区块的合并动作,倘若在第一执行绪310将数据写入非挥发性存储器芯片106的期间,主机系统1000又下达了需由第二执行绪320执行的写入指令,由于第一执行绪310与第二执行绪320均必须通过非挥发性存储器接口单元208才能对非挥发性存储器芯片106进行存取,因此第二执行绪320须等待第一执行绪310完成区块合并动作后才能存取非挥发性存储器芯片106。如果第二执行绪320所执行的写入指令也会产生两实体区块的合并动作,那么第二执行绪320完成写入指令的总时间约为311.6ms(即,155.8×2),而超过微安全数字存储器卡的规格书所定义的规定时限250ms。
为了要有效地解决这样的问题,当主机系统1000下达的写入指令是要存取非挥发性存储器芯片106的第一存储区域106A中的某一个实体区块(以下称之为第一实体区块),表示该写入指令需由第一执行绪310执行。如果该写入指令要更新在第一实体区块中相连的数个特定实体页其中之一所存储的数据时,存储器管理单元204首先判断第一实体区块是否有足够空间写入上述特定实体页。
如果第一实体区块有足够空间写入上述特定实体页,存储器管理单元204便令第一执行绪310将上述特定实体页的有效数据以及要被更新的数据写入至第一实体区块中。然而在第一实体区块无足够空间写入上述特定实体页时,存储器管理单元204自第一存储区域106A所包括的实体区块中选择一个空的实体区块(以下称之为第二实体区块),并令第一执行绪310将上述特定实体页的有效数据与要被更新的数据写入至第二实体区块中。必须特别说明的是,在将上述特定实体页的有效数据与要被更新的数据写入至第一实体区块时,第一执行绪310利用第一实体区块中的部分快速实体页与部分慢速实体页来写入数据。同样地,在需要将上述特定实体页的有效数据与要被更新的数据写入至第二实体区块时,第一执行绪310利用第二实体区块中的部分快速实体页与部分慢速实体页来写入数据。
由此可见在本范例实施例中,上述特定实体页定义为一数据搬移单位,特定实体页的数量大于或等于2,并且小于非挥发性存储器芯片106的每个实体区块所分别包括的实体页总数。在此,假设非挥发性存储器芯片106中一个实体区块具有128个实体页,则数据搬移单位例如是4个实体页(即特定实体页的数量为4),但并不限制于此。
以图4A为例,假设第一实体区块内4个特定实体页P0-P3中的特定实体页P2所存储的数据要被更新,且第一实体区块内的实体页P4-P127皆未存有数据时,存储器管理单元204会判断出第一实体区块有足够空间来写入4个特定实体页的数据。据此,存储器管理单元204会令第一执行绪310先将第一实体区块内特定实体页P0、P1与P3的所存储的数据(亦即有效数据)读出,接着再将所读出的数据与新数据(亦即需被更新的数据)写入至第一实体区块内的实体页P4-P7。
然而如图4B所示的范例实施例,假设第一实体区块内特定实体页P123-P126中的特定实体页P125所存储的数据要被更新,且第一实体区块内仅剩下实体页P127未存有数据时,则存储器管理单元204会判断出第一实体区块未有足够空间来写入4个特定实体页的数据。如此一来,存储器管理单元204会令第一执行绪310先自第一存储区域106A选择一个空的第二实体区块,并将第一实体区块内特定实体页P123、P124与P126的所存储的数据(亦即有效数据)读出,接着再将所读出的数据与新数据写入至第二实体区块内的实体页P0-P3,。
在此,第一执行绪310以4个实体页作为一个数据搬移单位。因此,每当要更新第一存储区域106A的数据时,存储器管理单元204会在同一实体区块中判断有无足够的存储空间来进行数据更新,如果无足够的存储空间,才会找寻新的实体区块来进行数据更新。有鉴于此,最新的数据一定是位于实体区块中最后一个含数据的数据搬移单位中。由于所更新的数据在一个实体区块中只占有几个实体页的容量而已,所以第一执行绪310欲于第一存储区域106A内进行数据更新时并不会发生两个完整区块的数据合并的现象。据此提升第一执行绪310在第一存储区域106A中执行写入动作的速度。
图5是依照本发明的一范例实施例所绘示在第一执行绪310将数据写入非挥发性存储器芯片106的期间,主机系统1000又下达一个要由第二执行绪320执行的写入指令的时序图。如图5所示,假设第一执行绪310在时间点t1至t3之间能通过非挥发性存储器接口单元208将数据写入非挥发性存储器芯片106。由于第一执行绪310完成写入动作所需的时间与数据搬移单位所包括的实体页数量有关,因此数据搬移单位所包括的实体页数量越少,第一执行绪310完成写入动作所需的时间便越短。举例来说,假设一个实体页的大小为4K字节且一个实体区块具有128个实体页,据实际量测数据的估算结果显示,读写一个实体页的平均时间约为1.15ms。如果本范例实施例中数据搬移单位所包括的实体页数量为1,那么第一执行绪310完成写入动作的所需时间T13便是1.15ms。
如果非挥发性存储器控制器104在时间点t2接收到需存取非挥发性存储器芯片106的第二存储区域106B的写入指令(在此称该写入指令要存取的实体区块为第三实体区块),表示该写入指令需由第二执行绪320执行。第二执行绪320需等待第一执行绪310完成写入动作(即时间点t3)后,方能通过非挥发性存储器接口单元208将数据写入非挥发性存储器芯片106。如果第二执行绪320负责执行的写入指令需伴随实体区块的合并,存储器管理单元204会依照一般非挥发性存储器的数据存取机制,自非挥发性存储器芯片106中选择一个空的实体区块以利于与第三实体区块进行区块合并,进而完成数据的更新。据估算,在需要合并两实体区块的情况下第二执行绪320实际进行数据写入的时间T34大约为155.8ms,而即便是加上等待第一执行绪310完成写入动作的所需时间T13后,第二执行绪320完成一写入指令的总时间T14(即155.8ms+1.15ms)仍会小于微安全数字存储器卡的规格书所定义完成一个写入指令的规定时限(即250ms)。
从上述范例实施例所描述的内容可知,针对第一存储区域106A所采取的管理方案是为了要尽量缩减第一执行绪310存取第一存储区域106A的时间,所以当第一执行绪310对第一存储区域106A进行存取时,不但会限制数据搬移单位的大小,同时必需往下找寻同一实体区块是否有足够存储空间来进行数据更新,故而不会发生两个实体区块的合并动作,以利缩短第一执行绪310对第一存储区域106A进行存取的时间。
另一方面,针对第二存储区域106B的管理方案是为了要尽量利用第二存储区域106B内每一实体区块的存储空间,所以当第二执行绪320对第二存储区域106B进行存取时,会执行一般的非挥发性存储器管理机制。
然而,由于存储器管理单元204会采用两种不同的管理方案来管理非挥发性存储器芯片106中的第一存储区域106A与第二存储区域106B,所以即便是在非挥发性存储器控制器104中的第一执行绪310在将数据写入第一存储区域106A的期间,第二执行绪320接获需将数据写入第二存储区域106B的写入指令,也能确保第一执行绪310与第二执行绪320先后将数据写入非挥发性存储器芯片106的总时间能小于微安全数字存储器卡的规格书所定义完成一个写入指令的规定时限。
图6是根据本发明的一范例实施例所绘示非挥发性存储器存取方法的流程图。
请参照图6,本范例实施例的非挥发性存储器存取方法用以管理非挥发性存储器芯片106内的多个实体区块,且每一实体区块具有多个实体页。本范例实施例的非挥发性存储器存取装置100采用多执行绪架构,亦即在非挥发性存储器控制器104中包括即时操作系统单元以及多个执行绪(例如第一执行绪310与第二执行绪320),且这些执行绪是由即时操作系统单元做排程管理,且第一执行绪310与第二执行绪320可通过非挥发性存储器接口单元208存取非挥发性存储器芯片106。
首先如步骤610所示,将非挥发性存储器芯片106内所含的实体区块划分为第一存储区域106A与第二存储区域106B。其中第一执行绪310为存取第一存储区域106A,而第二执行绪320为存取第二存储区域106B。
接着在步骤620中,接收主机系统1000所传送的写入指令,且该写入指令欲写入的是第一存储区域106A中的某一实体区块(以下称之为第一实体区块),故需由第一执行绪310执行此写入指令。假设此写入指令是要对第一实体区块中相连的多个特定实体页其中之一所存储的数据进行更新。
接下来如步骤630所示,由非挥发性存储器控制器104中的存储器管理单元204判断第一实体区块是否有足够空间能用以写入上述特定实体页。
当第一实体区块有足够空间写入上述特定实体页时,如步骤640所示,将上述特定实体页的有效数据与要被更新的数据写入至第一实体区块中,藉以完成数据更新。而当第一实体区块无足够空间写入上述特定实体页时,如步骤650所示,选择同样位于第一存储区域106A并且为空的一第二实体区块,用以将上述特定实体页的有效数据与要被更新的数据写入至第二实体区块中,藉以完成数据更新。
如图6所示的各步骤,第一执行绪310是以n个特定实体页作为数据搬移单位。其中n大于或等于2,同时小于非挥发性存储器芯片的每个实体区块所包括的实体页总数。在第一执行绪310是以图6所示的方式来写入数据的情况下,即便是当第一执行绪310在将数据写入非挥发性存储器芯片106的期间,主机系统1000又传送了需由第二执行绪320执行的写入指令(例如要将数据写入第二存储区域106B中的某一实体区块),由于数据搬移单位所包括的实体页数量小于一个实体区块所包括的实体页总数,第一执行绪310将不会有合并两个实体区块的动作产生。因此只要将数据搬移单位所包括实体页的数量降至一定程度,不论第二执行绪320负责的写入指令是否需要伴随实体区块的合并,第二执行绪320完成写入指令的总时间都将不会超过规定时限。
在另一范例实施例中,在第一执行绪310所能存取的第一存储区域106A中,所包括的每一实体区块都只使用预设数量的实体页来写入数据。其中,预设数量小于非挥发性存储器芯片106的每个实体区块所包括的实体页总数,且预设数量的实体页为至少2个实体页,其包括部分快速实体页与部分慢速实体页。举例来说,预设数量的实体页可以是2个快速实体页以及2个慢速实体页,但本发明并不以此为限。
预设数量的大小根据微安全数字存储器卡的规格书所定义完成一个写入指令的规定时限(即250ms)、合并两个实体区块的平均时间,以及读写一个实体页的平均所需时间这几项参数所求得。举例来说,预设数量Pnum的上限值可经由下列计算式求得:
其中,WCMDtime为规格书定义的规定时限,Mergetime为合并两个实体区块的平均时间,而ONEPAGERW则是读写一个实体页的平均所需时间。假设非挥发性存储器芯片106中每个实体页的大小为4K字节,且每个实体区块具有128个实体页,据估算要合并两个实体区块的平均时间Mergetime为155.8ms,而读写一个实体页的平均所需时间ONEPAGERW为1.15ms。通过上述计算式可求得预设数量Pnum的上限值为81。亦即,在第一存储区域106A中每个实体区块最多只能使用81个实体页来写入数据。
据此,当非挥发性存储器控制器104接获需由第一执行绪310所执行的写入指令时,如果该写入指令是要将数据写入第一存储区域106A中的某一实体区块(以下称之为第一实体区块),那么非挥发性存储器控制器104中的存储器管理单元204首先判断第一实体区块中预设数量的实体页是否已被写满。
如果第一实体区块中预设数量的实体页已被写满,存储器管理单元204会从第一存储区域106A中另外选择一个实体区块(以下称之为第二实体区块)用以写入数据。在此必须强调的是,在第一实体区块中预设数量的实体页已被写满的时候,第一实体区块中仍有部分的实体页未被写入数据。而在第一执行绪310将数据写入第二实体区块时,使用第二实体区块中的部分快速实体页以及部分慢速实体页来写入数据。
然而若第一实体区块中预设数量的实体页尚未被写满,存储器管理单元204接着判断预设数量的实体页是否还有足够空间可用以写入数据。如果是,第一执行绪310便将数据写入至第一实体区块。亦即,将数据写入预设数量实体页中还未有数据写入之处。但若预设数量实体页的空间不足,存储器管理单元204则会自第一存储区域106A包括的实体区块中另外选择一个实体区块(例如第二实体区块),进而让第一执行绪310将数据写入第二实体区块。
在本范例实施例中,当主机系统1000下达了需由第一执行绪310执行的写入指令时,存储器管理单元204会以限制每个实体区块仅有预设数量的实体页可用来写入数据的方式,避免合并两个实体区块的情况产生。据此,倘若在第一执行绪310执行写入指令的期间,主机系统1000下达需由第二执行绪320执行的写入指令,即便该写入指令会伴随两个实体区块的合并,第二执行绪320完成该写入指令的总时间也不会超过微安全数字存储器卡的规格书所定义完成一个写入指令的规定时限。
图7是根据上述范例实施例所绘示非挥发性存储器存取方法的流程图。请参阅图7,首先如步骤710所示,将非挥发性存储器芯片106所含的实体区块划分成能被第一执行绪310所存取的第一存储区域106A以及能被第二执行绪320所存取的第二存储区域106B。
接着在步骤720中,接收主机系统1000所传送的写入指令,且该写入指令欲写入的是第一存储区域106A中的第一实体区块。
如步骤730所示,存储器管理单元204判断第一实体区块中预设数量的实体页是否已被写满。如果预设数量的实体页已被写满,则如步骤740所示,存储器管理单元204选择第一存储区域106A中的第二实体区块进而让第一执行绪310来写入数据。
倘若第一实体区块中预设数量的实体页尚未被写满,则在步骤750中,存储器管理单元204判断第一实体区块中预设数量的实体页是否有足够空间可以写入数据。如果空间足够,则如步骤760所示,第一执行绪310将数据写入至第一实体区块。反之若空间不足,则如步骤770所示,第一执行绪310将数据写入至第二实体区块。
通过上述方式,存储器管理单元204避免第一执行绪310在执行写入指令时产生需合并两个实体区块的情况,从而降低第二执行绪320等待第一执行绪310完成写入动作的时间,以确保完成一个写入指令的时间不会超过微安全数字存储器卡的规格书所规范的规定时限。
综上所述,本发明所提出的非挥发性存储器存取方法、系统及非挥发性存储器控制器通过控制一个执行绪的数据搬移单位的大小,进而确保两执行绪先后将数据写入非挥发性存储器芯片的总时间能小于微安全数字存储器卡的规格书所定义每一个写入指令的完成时限。
然而,以上所述仅为本发明的优选实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。
另外,本发明的任一范例实施例或申请专利范围不须达成本发明所公开的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (6)
1.一种非挥发性存储器存取方法,用于存取一非挥发性存储器芯片内的多个实体区块,其中这些实体区块的每一个实体区块具有多个实体页,而这些实体页包括多个快速实体页与多个慢速实体页,该非挥发性存储器存取方法包括:
当一主机系统欲写入一数据至一第一实体区块时,判断该第一实体区块中一预设数量的实体页是否已被写满;以及
当该预设数量的实体页已被写满时,选择一第二实体区块来写入该数据,其中该预设数量的实体页为至少2个实体页,且包括部分这些快速实体页与部分这些慢速实体页,而当该预设数量的实体页已被写满时,该第一实体区块中仍有部分实体页未被写入数据。
2.如权利要求1所述的非挥发性存储器存取方法,还包括:
当该预设数量的实体页未被写满时,判断该预设数量的实体页是否有足够空间写入该数据;
如果是,则写入该数据至该第一实体区块;以及
如果否,则写入该数据至该第二实体区块。
3.如权利要求1所述的非挥发性存储器存取方法,其中该预设数量小于该非挥发性存储器芯片的这些实体区块的每一个实体区块所分别包括的一实体页总数。
4.一种非挥发性存储器控制器,配置于一非挥发性存储器存取装置中,该非挥发性存储器存取装置包括一非挥发性存储器芯片,其中该非挥发性存储器芯片包括多个实体区块,且这些实体区块的每一个实体区块具有多个实体页,而这些实体页包括多个快速实体页与多个慢速实体页,该非挥发性存储器控制器包括:
一微处理器单元;
一非挥发性存储器接口单元,耦接该微处理器单元,用以耦接至该非挥发性存储器芯片;
一主机接口单元,耦接至该微处理器单元,用以耦接至一主机系统;以及
一存储器管理单元,耦接至该微处理器单元,
其中当该主机系统欲写入一数据至这些实体区块中的一第一实体区块时,该存储器管理单元判断该第一实体区块中一预设数量的实体页是否已被写满,其中该预设数量的实体页为至少2个实体页,且包括部分这些快速实体页与部分这些慢速实体页,
当该预设数量的实体页已被写满时,该第一实体区块中仍有部分实体页未被写入数据,而该存储器管理单元选择一第二实体区块以写入该数据。
5.如权利要求4所述的非挥发性存储器控制器,其中当该预设数量的实体页未被写满时,该存储器管理单元判断该预设数量的实体页是否有足够空间写入该数据,
如果是,以该第一实体区块写入该数据,
如果否,以该第二实体区块写入该数据。
6.如权利要求4所述的非挥发性存储器控制器,其中该预设数量小于该非挥发性存储器芯片的这些实体区块的每一个实体区块所分别包括的一实体页总数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010136470.2A CN102193871B (zh) | 2010-03-12 | 2010-03-12 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010136470.2A Division CN102193871B (zh) | 2010-03-12 | 2010-03-12 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103473182A CN103473182A (zh) | 2013-12-25 |
CN103473182B true CN103473182B (zh) | 2016-05-11 |
Family
ID=44601966
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010136470.2A Active CN102193871B (zh) | 2010-03-12 | 2010-03-12 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
CN201310352644.2A Active CN103473182B (zh) | 2010-03-12 | 2010-03-12 | 非挥发性存储器存取方法及非挥发性存储器控制器 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010136470.2A Active CN102193871B (zh) | 2010-03-12 | 2010-03-12 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN102193871B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678162B (zh) * | 2012-09-12 | 2020-02-28 | 群联电子股份有限公司 | 系统数据储存方法、存储器控制器与存储器储存装置 |
CN104238953A (zh) * | 2013-06-13 | 2014-12-24 | 中兴通讯股份有限公司 | 直接表的存储方法和装置 |
CN104809082B (zh) * | 2014-01-29 | 2018-02-02 | 群联电子股份有限公司 | 数据保护方法、存储器存储装置及存储器控制电路单元 |
CN104679556B (zh) * | 2015-02-06 | 2019-01-08 | 深圳市硅格半导体有限公司 | 应用程序烧录方法及系统 |
CN107229664B (zh) * | 2016-03-25 | 2021-06-25 | 西部数据技术公司 | 用于管理文件系统元数据的间接数据结构 |
CN108614666B (zh) * | 2016-12-09 | 2021-10-26 | 北京兆易创新科技股份有限公司 | 基于NAND flash的数据块处理方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1389790A (zh) * | 2001-06-04 | 2003-01-08 | 三星电子株式会社 | 闪速存储器管理方法 |
CN1514971A (zh) * | 2001-01-19 | 2004-07-21 | 非易失性存储器中的部分分块数据编程和读取操作 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060718B2 (en) * | 2006-06-20 | 2011-11-15 | International Business Machines | Updating a memory to maintain even wear |
US7525870B2 (en) * | 2007-05-21 | 2009-04-28 | Sandisk Il, Ltd. | Methods for optimizing page selection in flash-memory devices |
CN101640069B (zh) * | 2008-08-01 | 2013-12-18 | 群联电子股份有限公司 | 用于闪速存储器的平均磨损方法与平均磨损系统 |
-
2010
- 2010-03-12 CN CN201010136470.2A patent/CN102193871B/zh active Active
- 2010-03-12 CN CN201310352644.2A patent/CN103473182B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514971A (zh) * | 2001-01-19 | 2004-07-21 | 非易失性存储器中的部分分块数据编程和读取操作 | |
CN1389790A (zh) * | 2001-06-04 | 2003-01-08 | 三星电子株式会社 | 闪速存储器管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102193871A (zh) | 2011-09-21 |
CN102193871B (zh) | 2014-08-20 |
CN103473182A (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101937319B (zh) | 存储器系统及其映射方法 | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
CN103473182B (zh) | 非挥发性存储器存取方法及非挥发性存储器控制器 | |
CN106469122B (zh) | 有效数据合并方法、存储器控制器与存储器储存装置 | |
US8667209B2 (en) | Non-volatile memory access method and system, and non-volatile memory controller | |
CN104679437A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US8914587B2 (en) | Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request | |
CN102193869A (zh) | 存储器管理与写入方法及其存储器控制器与储存系统 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN101625897A (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102592670A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103218300B (zh) | 数据处理方法、存储器控制器与存储器储存装置 | |
CN105224238A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN102880553A (zh) | 一种基于mcu的片外flash文件系统的读写方法 |
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 |