CN102890653A - 指令执行方法、存储器控制器与存储器储存装置 - Google Patents
指令执行方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN102890653A CN102890653A CN2011102003890A CN201110200389A CN102890653A CN 102890653 A CN102890653 A CN 102890653A CN 2011102003890 A CN2011102003890 A CN 2011102003890A CN 201110200389 A CN201110200389 A CN 201110200389A CN 102890653 A CN102890653 A CN 102890653A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- instruction
- physical page
- computer system
- 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
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提出一种指令执行方法、存储器控制器与存储器储存装置。本方法包括,在执行数据合并操作期间,从主机系统接收写入指令与对应这写入指令的写入数据。本方法也包括,将写入数据暂存于缓冲存储器中并且在一延迟时间点传送响应信息给主机系统,其中延迟时间点是以完成将写入数据暂存于缓冲存储器的时间点加上虚拟延迟时间来设定。基此,本方法可有效地平均对应在执行数据合并操作期间所执行的写入指令的响应时间,由此缩短最大存取时间。
Description
技术领域
本发明涉及一种指令执行方法,尤其涉及一种在存储器储存装置中执行来自于主机系统的多个写入指令的指令执行方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本式计算机。固态硬盘就是一种以闪速存储器模组作为储存媒体的储存装置。因此,近年闪速存储器产业成为电子产业中相当热门的一环。
可复写式非易失性存储器具有多个实体区块(physical block),且每一实体区块具有多个实体页面(physical page),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面必需先被抹除后才能再次用于写入数据。特别是,实体区块为抹除的最小单位,并且实体页面为编程(亦称写入)的最小单元。因此,一般来说,在可复写式非易失性存储器模组的管理中,实体区块至少会被区分为数据区(data area)与闲置区(free area)。
数据区的实体区块(亦称为数据实体区块)是用以储存主机系统所储存的数据。具体来说,存储器管理电路会将主机系统所存取的逻辑存取地址转换为逻辑区块的逻辑页面并且将逻辑区块的逻辑页面映射至数据区的实体区块的实体页面。也就是说,在闪速存储器模组的管理中,数据区的实体区块是被视为已被使用的实体区块(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑区块-实体区块映射表来记载逻辑区块与数据区的实体区块之间的映射关系,其中逻辑区块中的逻辑页面是依序的对应所映射的实体区块的实体页面。
闲置区的实体区块(亦称为闲置实体区块)是用以轮替数据区中的实体区块。具体来说,如上所述,已写入数据的实体区块必须被抹除后才可再次用于写入数据,而闲置区的实体区块是被设计用于写入更新数据以替换原先映射逻辑区块的实体区块。基此,在闲置区中的实体区块为空或可使用的实体区块,即无记录数据或标记为已没用的无效数据。
也就是说,数据区与闲置区的实体区块的实体页面是以轮替方式来映射逻辑区块的逻辑页面,以储存主机系统所写入的数据。
例如,当主机系统欲写入更新页面数据的逻辑存取地址是对应储存装置的某一逻辑区块的某一逻辑页面时,储存装置的存储器管理电路会从闲置区中提取一个实体区块,并且将此更新数据写入至所提取的实体区块的实体页面中。之后,当闲置区的实体区块快耗尽时,存储器管理电路会对此逻辑区块执行数据合并(Merge)操作。例如,在数据合并操作中,存储器管理电路会从闲置区中提取一个实体区块作为新数据实体区块,将属于此逻辑区块的所有最新页面数据写入至此新数据实体区块中并且将此逻辑区块重新映射至此实体区块。
为了有效地提升存取效能,一般来说,存储器储存装置内会配置缓冲存储器。例如,当从主机系统中接收到写入指令与欲写入的数据时,存储器管理电路会将欲写入的数据及其相关信息(例如,此写入数据是属于那个逻辑页面)暂存于缓冲存储器之后,即传送告知已完成此写入指令的确认信息给主机系统,由此缩短响应时间。之后,当缓冲存储器已被存满时,才将缓冲存储器中的数据写入至可复写式非易失性存储器模组中,以空出缓冲存储器的储存空间来储存下一笔写入数据。
然而,在缓冲存储器已被存满并且闲置区的实体区块亦快耗尽的状况下,倘若接收到来自于主机系统的写入指令时,存储器管理电路需完成数据合并操作才能够执行此写入指令。由于执行数据合并操作需要花费相当多时间,因此,相较于执行其他存取指令,主机系统需等待相当长的时间才能从存储器储存装置中接收到告知已完成此写入指令的响应信息(response message)。往往在此过程中,主机系统的使用者会误以为存储器储存装置已当机或者感觉存储器储存装置很不稳定。因此,在缓冲存储器已被存满并且闲置区的实体区块亦快耗尽的状况下,如何缩短主机系统接收到响应信息的时间,是此领域技术人员欲解决的问题。
发明内容
本发明提供一种指令执行方法、存储器控制器与存储器储存装置,其能够平均在执行数据合并操作期间所同时执行的多个写入指令的时间。
本发明范例实施例提出一种指令执行方法,用于存储器储存装置,其中此存储器储存装置具有缓冲存储器与可复写式非易失性存储器模组,可复写式非易失性存储器模组具有多个实体区块,这些实体区块被逻辑地至少被分组为数据区与闲置区,并且数据区的实体区块被映射至多个逻辑区块。本指令执行方法包括对这些逻辑区块之中的第一逻辑区块执行数据合并操作,其中在这数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块并且第一实体区块具有多个实体页面。本指令执行方法也包括,在执行该数据合并操作期间,从主机系统接收写入指令与对应这写入指令的写入数据。本指令执行方法还包括,判断第一实体区块的实体页面之中已被写入数据的多个实体页面的数目是否大于预设实体页面数目。本指令执行方法还包括,当第一实体区块的实体页面之中已被写入数据的实体页面的数目非大于预设实体页面数目时,将写入数据暂存于该缓冲存储器中并且在一延迟时间点传送一响应信息给该主机系统,其中这延迟时间点是以完成将写入数据暂存于缓冲存储器的时间点加上虚拟延迟时间来设定并且这响应信息用以告知这写入指令已被完成。
在本发明的一实施例中,上述的指令执行方法还包括,当第一实体区块的实体页面之中已被写入数据的实体页面的数目大于预设实体页面数目时,在完成将写入数据暂存于缓冲存储器的时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,上述的指令执行方法还包括判断缓冲存储器的剩余容量是否小于预先定义容量并且判断属于闲置区的实体区块的数目是否小于预先定义数目,其中上述的判断第一实体区块的实体页面之中已被写入数据的实体页面的该数目是否大于预设实体页面数目的步骤是在当缓冲存储器的剩余容量小于预先定义容量并且属于闲置区的实体区块的数目小于预先定义数目时被执行。
在本发明的一实施例中,上述的指令执行方法还包括,当缓冲存储器的剩余容量非小于预先定义容量或者属于闲置区的实体区块的数目非小于预先定义数目时,在完成将写入数据暂存于缓冲存储器的时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,上述的指令执行方法还包括将上述的虚拟延迟时间设定为一固定预定值。
在本发明的一实施例中,上述的指令执行方法还包括根据对应上述的数据合并操作的执行进度动态地设定上述的虚拟延迟时间。
本发明范例实施例提出一种存储器控制器,用以控制可复写式非易失性存储器模组。本存储器控制器包括主机接口、存储器接口、存储器管理电路与缓冲存储器。主机接口用以电性连接至主机系统。存储器接口电性连接至可复写式非易失性存储器模组,其中这可复写式非易失性存储器模组具有多个实体区块。存储器管理电路电性连接至主机接口与存储器接口。缓冲存储器电性连接至存储器管理电路。存储器管理电路用以将这些实体区块逻辑地至少分组为数据区与闲置区,并且配置多个逻辑区块以映射数据区的实体区块。此外,存储器管理电路对这些逻辑区块之中的第一逻辑区块执行数据合并操作,并且在这数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块,其中第一实体区块具有多个实体页面。另外,在执行该数据合并操作期间,存储器管理电路会从主机系统接收写入指令与对应这写入指令的写入数据。此外,存储器管理电路会判断第一实体区块的实体页面之中已被写入数据的实体页面的数目是否大于预设实体页面数目。当第一实体区块的实体页面之中已被写入数据的实体页面的数目非大于预设实体页面数目时,存储器管理电路会将这写入数据暂存于缓冲存储器中并且在一延迟时间点传送响应信息给主机系统,其中这延迟时间点是以完成将这写入数据暂存于该缓冲存储器的时间点加上一虚拟延迟时间来设定并且这响应信息用以告知写入指令已被完成。
在本发明的一实施例中,其中当第一实体区块的实体页面之中已被写入数据的实体页面的数目大于预设实体页面数目时,存储器管理电路在完成将这写入数据暂存于缓冲存储器的该时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,上述的存储器管理电路还用以判断缓冲存储器的剩余容量是否小于预先定义容量并且判断属于闲置区的实体区块的数目是否小于预先定义数目,其中仅当缓冲存储器的剩余容量小于预先定义容量并且属于闲置区的实体区块的数目小于预先定义数目时,上述的存储器管理电路才判断第一实体区块的实体页面之中已被写入数据的实体页面的数目是否大于预设实体页面数目。
在本发明的一实施例中,当缓冲存储器的剩余容量非小于预先定义容量或者属于闲置区的实体区块的数目非小于预先定义数目时,存储器管理电路在完成将这写入数据暂存于缓冲存储器的该时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,上述的虚拟延迟时间为一固定预定值。
在本发明的一实施例中,上述的存储器管理电路根据对应上述的数据合并操作的执行进度动态地设定上述的虚拟延迟时间。
本发明范例实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模组与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模组具有多个实体区块。存储器控制器电性连接至可复写式非易失性存储器模组与连接器。存储器控制器用以将这些实体区块逻辑地至少分组为数据区与闲置区,并且配置多个逻辑区块以映射数据区的实体区块。此外,存储器控制器对这些逻辑区块之中的第一逻辑区块执行数据合并操作,并且在这数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块,其中第一实体区块具有多个实体页面。另外,在执行该数据合并操作期间,存储器控制器会从主机系统接收写入指令与对应这写入指令的写入数据。此外,存储器控制器会判断第一实体区块的实体页面之中已被写入数据的实体页面的数目是否大于预设实体页面数目。当第一实体区块的实体页面之中已被写入数据的实体页面的数目非大于预设实体页面数目时,存储器控制器会将这写入数据暂存于缓冲存储器中并且在一延迟时间点传送响应信息给主机系统,其中这延迟时间点是以完成将这写入数据暂存于该缓冲存储器的时间点加上一虚拟延迟时间来设定并且这响应信息用以告知写入指令已被完成。
在本发明的一实施例中,当第一实体区块的实体页面之中已被写入数据的实体页面的数目大于预设实体页面数目时,存储器控制器在完成将这写入数据暂存于缓冲存储器的该时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,存储器控制器还用以判断缓冲存储器的剩余容量是否小于预先定义容量并且判断属于闲置区的实体区块的数目是否小于预先定义数目,其中仅当缓冲存储器的剩余容量小于预先定义容量并且属于闲置区的实体区块的数目小于预先定义数目时,上述的存储器控制器才判断第一实体区块的实体页面之中已被写入数据的实体页面的数目是否大于预设实体页面数目。
在本发明的一实施例中,当缓冲存储器的剩余容量非小于预先定义容量或者属于闲置区的实体区块的数目非小于预先定义数目时,存储器控制器在完成将这写入数据暂存于缓冲存储器的该时间点传送上述的响应信息给主机系统。
在本发明的一实施例中,上述的存储器控制器根据对应上述的数据合并操作的执行进度动态地设定上述的虚拟延迟时间。
本发明范例实施例提出一种指令执行方法,用于存储器储存装置,其中这存储器储存装置具有缓冲存储器与可复写式非易失性存储器模组,这可复写式非易失性存储器模组具有多个实体区块,这些实体区块被逻辑地至少被分组为数据区与闲置区,并且数据区的实体区块被映射至多个逻辑区块。本指令执行方法包括对这些逻辑区块之中的第一逻辑区块执行数据合并操作,其中在这数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块。本指令执行方法也包括,在执行这数据合并操作期间,从主机系统接收第一写入指令与对应第一写入指令的第一写入数据并且将第一写入数据暂存于缓冲存储器中。本指令执行方法还包括,在第一时间点传送第一响应信息给主机系统,其中第一时间点是以完成将第一写入数据暂存于缓冲存储器的时间点加上第一虚拟延迟时间来设定并且第一响应信息用以告知第一写入指令已被完成。
在本发明的一实施例中,上述的指令执行方法还包括在执行该数据合并操作期间,从主机系统接收第二写入指令与对应第二写入指令的第二写入数据并且将第二写入数据暂存于该缓冲存储器中。
上述的指令执行方法还包括在第二时间点传送第二响应信息给主机系统,其中第二时间点是以完成将第二写入数据暂存于缓冲存储器的时间点加上第二虚拟延迟时间来设定并且第二响应信息用以告知第二写入指令已被完成。
上述的指令执行方法还包括在执行数据合并操作期间,从主机系统接收第三写入指令与对应第三写入指令的第三写入数据并且将第三写入数据暂存于缓冲存储器中。
上述的指令执行方法还包括在第三时间点传送第三响应信息给主机系统,其中第三时间点是以完成将第三写入数据暂存于缓冲存储器的时间点加上第三虚拟延迟时间来设定并且第三响应信息用以告知第三写入指令已被完成。
在本发明的一实施例中,上述的指令执行方法还包括,在执行数据合并操作期间,从主机系统接收第四写入指令与对应第四写入指令的第四写入数据并且将第四写入数据暂存于缓冲存储器中。上述的指令执行方法还包括在第四时间点传送第四响应信息给主机系统,其中第四时间点是在完成将第四写入数据暂存于缓冲存储器并且完成数据合并操作之后,其中第四响应信息用以告知第四写入指令已被完成。
在本发明的一实施例中,上述的指令执行方法还包括将第一虚拟延迟时间、第二虚拟延迟时间与第三虚拟延迟时间设定为固定预定值。
在本发明的一实施例中,上述的指令执行方法还包括根据对应数据合并操作的执行进度分别地设定第一虚拟延迟时间、第二虚拟延迟时间与第三虚拟延迟时间。在此,上述的第一实体区块具有多个实体页面,并且在上述的第一时间点,第一实体区块的实体页面之中已完成上述的数据合并操作的实体页面的页面数大于或等于第一页面数门槛值。此外,在第二时间点,第一实体区块的实体页面之中已完成上述的数据合并操作的实体页面的页面数大于或等于第二页面数门槛值,并且在第三时间点,第一实体区块的实体页面之中已完成上述数据合并操作的实体页面的页面数大于或等于第三页面数门槛值。
本发明范例实施例提出一种存储器控制器,用以控制可复写式非易失性存储器模组。本存储器控制器包括主机接口、存储器接口、存储器管理电路与缓冲存储器。主机接口用以电性连接至主机系统。存储器接口电性连接至可复写式非易失性存储器模组,其中这可复写式非易失性存储器模组具有多个实体区块。存储器管理电路电性连接至主机接口与存储器接口。缓冲存储器电性连接至存储器管理电路。存储器管理电路用以将这些实体区块逻辑地至少分组为数据区与闲置区,并且配置多个逻辑区块以映射数据区的实体区块。此外,存储器管理电路对这些逻辑区块之中的第一逻辑区块执行数据合并操作,并且在数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块。另外,存储器管理电路在执行数据合并操作期间,从主机系统接收第一写入指令与对应第一写入指令的第一写入数据并且将第一写入数据暂存于缓冲存储器中。再者,存储器管理电路在第一时间点传送第一响应信息给主机系统,其中第一时间点是以完成将第一写入数据暂存于缓冲存储器的时间点加上第一虚拟延迟时间来设定并且第一响应信息用以告知第一写入指令已被完成。
本发明范例实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性存储器模组与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性存储器模组具有多个实体区块。存储器控制器电性连接至可复写式非易失性存储器模组与连接器。存储器控制器用以将这些实体区块逻辑地至少分组为数据区与闲置区,并且配置多个逻辑区块以映射数据区的实体区块。此外,存储器控制器对这些逻辑区块之中的第一逻辑区块执行数据合并操作,并且在数据合并操作中属于第一逻辑区块的有效数据会被复制到从闲置区的实体区块中提取的第一实体区块。另外,存储器控制器在执行数据合并操作期间,从主机系统接收第一写入指令与对应第一写入指令的第一写入数据并且将第一写入数据暂存于缓冲存储器中。再者,存储器控制器在第一时间点传送第一响应信息给主机系统,其中第一时间点是以完成将第一写入数据暂存于缓冲存储器的时间点加上第一虚拟延迟时间来设定并且第一响应信息用以告知第一写入指令已被完成。
基于上述,本发明范例实施例能够使得在执行数据合并操作期间响应每个写入指令的时间能够平均,由此缩短最大的存取时间并且使得存储器储存装置的存取更为顺畅。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本范例实施例所示的主机系统与存储器储存装置。
图1B是根据本范例实施例所示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据本另一范例实施例所示的主机系统与存储器储存装置的示意图。
图2是图1A所示的存储器储存装置的概要方框图。
图3是根据本范例实施例所示的存储器控制器的概要方框图。
图4与图5是根据本范例实施例所示管理可复写式非易失性存储器模组的实体区块的示意图。
图6~图8是根据本范例实施例所示的使用子实体区块来写入更新数据的范例。
图9是根据本范例实施例所示的使用子实体区块与混乱实体区块写入数据的示意图。
图10是根据本范例实施例所示的使用子实体区块与混乱实体区块写入数据的示意图。
图11与12是根据本范例实施例所示的执行来自于主机系统的写入指令的流程图与时序图。
图13是根据本范例实施例所示的指令执行方法的流程图。
图14是根据另一范例实施例所示的指令执行方法的流程图。
附图标记:
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:可复写式非易失性存储器模组
202:存储器管理电路
204:主机接口
206:存储器接口
208:缓冲存储器
254:电源管理电路
256:错误检查与校正电路
502:数据区
504:闲置区
506:系统区
508:取代区
410(0)~410(N):实体区块
610(0)~610(H):逻辑区块
710(0)~710(K):逻辑存取地址
S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115、S1117:执行指令的步骤
T1、T2、T3、T4:执行指令时间
D1、D2、D3:虚拟延迟时间
DM:执行数据合并操作
S1301、S1303、S1305、S1307、S1309:指令执行方法的步骤
S1401、S1403、S1405、S1407、S1409、S1411、S1413:指令执行方法的步骤
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模组与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据本发明范例实施例所示的主机系统与存储器储存装置。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接1110与主机系统1000的其他元件电性连接。藉由微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(Solid StateDrive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000可实质地为可与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄像机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模组106。
在本范例实施例中,连接器102是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Instituteof Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、平行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、安全数码(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型闪速(Compact Flash,CF)接口标准、集成式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模组106是电性连接至存储器控制器104,并且具有多个实体区块以储存主机系统1000所写入的数据。在本范例实施例中,每一实体区块分别具有多个实体页面,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面的容量为4千位元组(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目的一并被抹除的存储单元。实体页面为编程的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元区与冗余位元区。数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可复写式非易失性存储器模组106为多阶存储单元(Multi Level Cell,MLC)NAND闪速存储器模组。然而,本发明不限于此,可复写式非易失性存储器模组106亦可是单阶存储单元(SingleLevel Cell,SLC)NAND闪速存储器模组、其他闪速存储器模组或其他具有相同特性的存储器模组。
图3是根据本发明范例实施例所示的存储器控制器的概要方框图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204、存储器接口206与缓冲存储器208。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以根据主机系统1000的指令在可复写式非易失性存储器模组106中进行数据的写入、读取、抹除与合并等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可复写式非易失性存储器模组106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码段,并且当存储器控制器104被使能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模组106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬件型式来实作。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模组106。也就是说,欲写入至可复写式非易失性存储器模组106的数据会经由存储器接口206转换为可复写式非易失性存储器模组106所能接受的格式。
缓冲存储器208是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模组106的数据。特别是,当从主机系统中接收到写入指令与欲写入的数据时,存储器管理电路会将欲写入的数据及其相关信息(例如,此写入数据是属于那个逻辑页面)暂存于缓冲存储器之后,即传送告知已完成此写入指令的确认信息给主机系统,由此缩短响应时间。直到缓冲存储器208被存满时,存储器管理电路202才会将写入数据实际地写入至可复写式非易失性存储器模组106。
值得一提的是,在本范例实施例中,存储器管理电路202是以多工(multi-task)架构来设计。具体来说,由于通过主机接口204从主机系统1000接收指令与数据的所需的时间远短于通过存储器接口206传送数据至可复写式非易失性存储器模组106与等候可复写式非易失性存储器模组106编程数据所需的时间,因此,通过多工来进行数据的写入,可有效地提升存储器储存装置的写入速度。例如,在对可复写式非易失性存储器模组106下达写入指令之后,存储器管理电路202即可继续从主机系统1000接收下一个指令,而无需等待可复写式非易失性存储器模组106完成此写入指令。
在本发明一范例实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本发明一范例实施例中,存储器控制器104还包括错误检查与校正电路256。错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模组106中。之后,当存储器管理电路202从可复写式非易失性存储器模组106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4与图5是根据本发明范例实施例所示管理可复写式非易失性存储器模组的实体区块的示意图。
请参照图4,可复写式非易失性存储器模组106具有实体区块410(0)~410(N),并且存储器控制器104的存储器管理电路202会将实体区块410(0)~410(N)逻辑地分组为数据区(data area)502、闲置区(freearea)504、系统区(system area)506与取代区(replacement area)508。
逻辑上属于数据区502与闲置区504的实体区块是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体区块(亦称为数据实体区块)是被视为已储存数据的实体区块,而闲置区504的实体区块(亦称为闲置实体区块)是用以写入新数据的实体区块。例如,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体区块,并且将数据写入至此实体区块中。再例如,当对某一逻辑区块执行数据合并操作时,存储器管理电路202会从闲置区504中提取实体区块作为对应此逻辑区块的新数据实体区块来写入数据,并且替换原先映射此逻辑区块的数据实体区块。
逻辑上属于系统区506的实体区块是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模组的制造商与型号、可复写式非易失性存储器模组的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区508中的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,倘若取代区508中仍存有正常的实体区块并且数据区502的实体区块损坏时,存储器管理电路202会从取代区508中提取正常的实体区块来更换损坏的实体区块。
基于上述,在存储器储存装置100的运作中,数据区502、闲置区504、系统区506与取代区508的实体区块会动态地变动。例如,用以轮替储存数据的实体区块会变动地属于数据区502或闲置区504。
值得一提的是,在本范例实施例中,存储器管理电路202是以每一实体区块为单位来进行管理。然而,本发明不限于此,在另一范例实施例中,存储器管理电路202亦可将实体区块分组为多个实体单元,并且以实体单元为单位来进行管理。例如,每一实体单元可由同一存储器子模组或不同存储器子模组中的至少一个实体区块所组成。此外,在本发明另一范例实施例中,此些实体区块或实体单元亦可被区分为多个区域来分别地管理。
请参照图5,存储器管理电路202会配置逻辑区块610(0)~610(H)以映射数据区502的实体区块,其中每一逻辑区块具有多个逻辑页面并且此些逻辑页面是依序地映射对应的数据实体区块的实体页面。例如,在存储器储存装置100被格式化时,逻辑区块610(0)~610(H)会初始地映射数据区502的实体区块410(0)~410(F-1)。
在本发明范例实施例中,存储器管理电路202会维护逻辑区块-实体区块映射表(logical block-physical block mapping table)以记录逻辑区块610(0)~610(H)与数据区502的实体区块之间的映射关系。此外,由于主机系统1000是以逻辑存取地址(例如,扇区(Sector))为单位来存取数据,当主机系统1000存取数据时存储器管理电路202会将对应存储器储存装置100的逻辑存取地址710(0)~710(K)转换成对应的逻辑页面。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202会将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑区块与逻辑页面所构成的多维地址,并且通过逻辑区块-实体区块映射表于对应的实体页面中存取数据。例如,存储器储存装置100被格式化时,存储器管理电路202会将初始地将数据区502的实体区块映射至逻辑区块610(0)~610(H)。特别是,在初始化之后,尽管数据区502的实体区块未实际地被写入数据,但其仍会被视为已储存数据的实体区块。
经过上述初始化程序之后,存储器储存装置100就可接收主机系统1000的写入指令来写入数据。
图6~图8是根据本发明范例实施例所示的使用子实体区块来写入更新数据的范例。
请同时参照图6~图8,例如,在逻辑区块610(0)是映射至实体区块410(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑区块610(0)的逻辑页面时,存储器管理电路202会依据逻辑区块-实体区块映射表识别逻辑区块610(0)目前是映射至实体区块410(0)并且从闲置区504中提取实体区块410(F)作为替换实体区块来轮替实体区块410(0)。然而,当存储器管理电路202将新数据写入至实体区块410(F)的同时,存储器管理电路202不会立刻将实体区块410(0)中的所有有效数据搬移至实体区块410(F)而抹除实体区块410(0)。具体来说,存储器管理电路202会将实体区块410(0)中欲写入实体页面之前的有效数据(即,实体区块410(0)的第0实体页面与第1实体页面中的数据)复制至实体区块410(F)的第0实体页面与第1实体页面中(如图6所示),并且将新数据写入至实体区块410(F)的第2~4个实体页面中(如图7所示)。此时,存储器管理电路202即完成写入的运作。因为实体区块410(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体区块410(0)中的其他有效数据搬移至实体区块410(F)可能会造成无谓的搬移。此外,数据必须依序地写入至实体区块内的实体页面,因此,存储器管理电路202仅会先搬移欲写入实体页面之前的有效数据(即,储存在实体区块410(0)的第0实体页面与第1实体页面中数据),并且暂不搬移其余有效数据(即,储存在实体区块410(0)的第5~K实体页面中数据)。
在本范例实施例中,暂时地维持此等暂态关系的运作称为开启(open)母子区块,并且原实体区块(例如,上述实体区块410(0))称为母实体区块而替换实体区块(例如,上述与实体区块410(F))称为子实体区块。在此,一个母实体区块以及其对应的至少一子实体区块称为母子区块组。
之后,当需要将实体区块410(0)与实体区块410(F)的数据合并(merge)时,存储器管理电路202会将实体区块410(0)与实体区块410(F)的数据整并至一个实体区块,由此提升实体区块的使用效率。在此,合并母子区块的运作称为数据合并操作或关闭(close)母子区块。例如,如图9所示,当进行关闭母子区块时,存储器管理电路202会将实体区块410(0)中剩余的有效数据(即,实体区块410(0)的第5~K实体页面中的数据)复制至替换实体区块410(F)的第5实体页面~第K实体页面中,然后对实体区块410(0)执行抹除操作并将抹除后的实体区块410(0)关联至闲置区504,同时,将实体区块410(F)关联至数据区502。也就是说,存储器管理电路202会在逻辑区块-实体区块映射表中将逻辑区块610(0)重新映射至实体区块410(F)。此外,在本范例实施例中,存储器管理电路202会建立闲置区实体区块表(未示出)来记录目前被关联至闲置区504的实体区块。值得一提的是,闲置区504中实体区块的数目是有限的,基此,在存储器储存装置100运作期间,已开启的母子区块组的数目亦会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若闲置区504中实体区块的数目小于预先定义数目时,存储器管理电路202需关闭至少一组目前已开启的母子区块组后才可执行此写入指令。例如,在本范例实施例中,此预先定义数目会被设定为2。但必须了解的是,预先定义数目亦可为其他适当的数目。
除了上述使用子实体区块来写入更新数据外,在本范例实施例中,在本范例实施例中,存储器管理电路202还会从闲置区504中提取至少一实体区块作为混乱(Random)实体区块并且使用混乱实体区块来写入更新数据。例如,倘若主机系统1000欲更新的逻辑页面的数据已被写入至子实体区块时,此更新数据会被写入至混乱实体区块,以避免反复执行上述数据合并操作。
图9是根据本发明范例实施例所示的使用子实体区块与混乱实体区块写入数据的示意图。
请参照图9,假设实体区块410(S-1)被提取作为混乱实体区块并且在图7所示的储存状态下主机系统1000欲写入更新数据至逻辑区块610(0)的第1逻辑页面时,存储器管理电路202会将此更新数据写入至混乱实体区块中第一个空的实体页面(例如,实体区块410(S-1)的第0实体页面)中。
在本范例实施例中,当目前所使用的混乱实体区块已被写满时,存储器管理电路202会再从闲置区504中提取另一个实体区块作为新的混乱实体区块,直到闲置区504中实体区块的数目小于预先定义数目为止。具体来说,闲置区504的实体区块是有限的,因此,作为混乱实体区块的实体区块的数目亦会受到限制。当闲置区504中实体区块的数目小于预先定义数目时,存储器管理电路202会执行上述数据合并操作,对所储存的数据皆为无效数据的混乱实体区块执行抹除运作并且将已抹除的实体区块关联至闲置区504。由此,在执行下一个写入指令时,存储器管理电路202就可再从闲置区504提取空的实体区块作为混乱实体区块。
图10是根据本范例实施例所示的执行数据合并操作的一范例。
请参照图10,倘若在图9所示的状态下对逻辑区块610(0)执行数据合并操作时,存储器管理电路202会从闲置区504中提取一个空的实体区块410(F+1),将属于逻辑区块610(0)的有效数据从母实体区块410(0)、子实体区块410(F)与混乱实体区块410(S-1)中复制到实体区块410(F+1),并且将逻辑区块610(0)重新映射至实体区块410(F+1)。
具体来说,在有效数据复制过程中,实体区块410(0)的第0实体页面中的数据会被读取并被写入至实体区块410(F+1)的第0实体页面。然后,实体区块410(S-1)的第1实体页面中的数据会被读取并被写入至实体区块410(F+1)的第1实体页面。之后,实体区块410(F)的第2~4个实体页面中的数据会依序地被读取并依序地被写入至实体区块410(F+1)的第2~4个实体页面。最后,实体区块410(0)的第5~K实体页面中的数据会依序地被读取并依序地被写入至实体区块410(F+1)的第5~K个实体页面。也就是说,在数据合并操作中,存储器管理电路202必须持续地对可复写式非易失性存储器模组106下达读取与写入指令并且可复写式非易失性存储器模组106需花费相当长的时间才能完成此些读取与写入指令。
如上所述,由于存储器管理电路202具有多工功能,因此,在对可复写式非易失性存储器模组106下达指令之后,存储器管理电路202仍可从主机系统1000中接收指令。特别是,在本范例实施例中,当对可复写式非易失性存储器模组106执行数据合并操作且同时从主机系统1000接收到写入指令及对应此写入指令的写入数据时,存储器管理电路202会判断缓冲存储器208的剩余容量(即,可用的储存空间)是否小于预先定义容量并且判断闲置区504中的实体区块的数目是否小于预先定义数目。在此,例如,预先定义容量是被设定为16KB,但本发明不限于此。
倘若缓冲存储器208的剩余容量小于预先定义容量并且闲置区504中的实体区块的数目小于预先定义数目时,在将对应此写入指令的写入数据暂存于缓冲存储器208之后,存储器管理电路202会等候一段虚拟延迟时间后才将指示已完成指令的响应信息传送给主机系统1000,而不会立即将此响应信息传送给主机系统1000。
更详细来说,由于执行数据合并操作所需的时间较长,因此,在执行数据合并操作期间,存储器管理电路202可能会从主机系统1000中接收到多个写入指令。倘若在接收此些写入指令的过程中缓冲存储器208已被写满时,存储器管理电路202必须在完成数据合并操作并且将缓冲存储器208内的部分数据写入至可复写式非易失性存储器模组106之后才能继续接收来自于主机系统1000的写入指令及其写入数据。也就是说,在需完成数据合并操作才能继续执行写入指令的情况下,相对于前面数个写入指令,主机系统1000必须等候很长的时间才能收到对应此写入指令响应信息。因此,在本发明范例实施例中,存储器管理电路202会在执行此些写入指令之后等候一段虚拟延迟时间才传送响应信息,以致于执行每个写入指令的时间较为平均。
图11与12是根据本范例实施例所示的执行来自于主机系统1000的写入指令的流程图与时序图,其显示在执行数据合并程序期间同时执行多个写入指令的范例,其中缓冲存储器208的剩余容量小于预先定义容量且闲置区504中的实体区块的数目小于预先定义数目。
请同时参照图11与图12,假设缓冲存储器208的剩余容量仅能再存放对应3个写入指令的写入数据的情况下,在步骤S1101中,存储器管理电路202会对一个逻辑区块(以下称为第一逻辑区块)开始执行数据合并操作DM(即,将属于第一逻辑区块的有效数据复制到一个实体区块(以下称为第一实体区块))。
在步骤S1103中,存储器管理电路202会从主机系统1000接收到写入指令(以下称为第一写入指令)与对应此写入指令的写入数据(以下称为第一写入数据)。然后,在步骤S1105中,存储器管理电路202花费一段时间T1执行此第一写入指令以将第一写入数据暂存于缓冲存储器208中,并且在完成第一写入指令且等候一虚拟延迟时间D1(以下称为第一虚拟延迟时间)后,将指示第一写入指令已被完成的响应信息(以下称为第一响应信息)传送给主机系统1000。在此,传送第一响应信息的时间点亦称为第一时间点。
之后,在步骤S1107中,存储器管理电路202从主机系统1000接收到下一个写入指令(以下称为第二写入指令)与对应此写入指令的写入数据(以下称为第二写入数据)。然后,在步骤S1109中,存储器管理电路202花费一段时间T2执行此第二写入指令以将第二写入数据暂存于缓冲存储器208中,并且在完成第二写入指令且等候一虚拟延迟时间D2(以下称为第二虚拟延迟时间)后,将指示第二写入指令已被完成的响应信息(以下称为第二响应信息)传送给主机系统1000。在此,传送第二响应信息的时间点亦称为第二时间点。
之后,在步骤S1111中,存储器管理电路202从主机系统1000接收到下一个写入指令(以下称为第三写入指令)与对应此写入指令的写入数据(以下称为第三写入数据)。然后,在步骤S1113中,存储器管理电路202花费一段时间T3执行此第三写入指令以将第三写入数据暂存于缓冲存储器208中,并且在完成第三写入指令且等候一虚拟延迟时间D3(以下称为第三虚拟延迟时间)后,将指示第三写入指令已被完成的响应信息(以下称为第三响应信息)传送给主机系统1000。在此,传送第三响应信息的时间点亦称为第三时间点。
之后,在步骤S1115中,存储器管理电路202从主机系统1000接收到下一个写入指令(以下称为第四写入指令)与对应此写入指令的写入数据(以下称为第四写入数据)时。然后,在步骤S1117中,存储器管理电路202花费一段时间T4执行此第四写入指令以将第四写入数据暂存于缓冲存储器208中,并且在完成第四写入指令后,将指示第四写入指令已被完成的响应信息(以下称为第四响应信息)传送给主机系统1000。在此,传送第四响应信息的时间点亦称为第四时间点。特别是,由于缓冲存储器208已被存满,因此,存储器管理电路202需在完成数据合并操作DM并且将缓冲存储器208中部分的数据写入至可复写式非易失性存储器模组106之后,才能将第四写入数据暂存于缓冲存储器208中。因此,相较于时间T1、时间T2与时间T3,完成第四写入指令所需的时间T4会较长。
在本范例中,第一虚拟延迟时间D1、第二虚拟延迟时间D2与第三虚拟延迟时间D3是事先设定的相同固定预设值,其能够使时间T1加上第一虚拟延迟时间D1的时间、时间T2加上第二虚拟延迟时间D2的时间、时间T3加上第三虚拟延迟时间D3的时间和时间T4彼此之间的差异较小。例如,在图11的范例中,执行数据合并操作所需的时间可大约被估计并且第一虚拟延迟时间D1、第二虚拟延迟时间D2与第三虚拟延迟时间D3可以将所估计的时间除以4来设定。
此外,在本发明另一范例实施例中,存储器管理电路202亦可根据对应数据合并操作的执行进度分别地设定第一虚拟延迟时间D1、第二虚拟延迟时间D2与第三虚拟延迟时间D3。
例如,在图11与图12所述的范例中,存储器管理电路202可根据第一实体区块已被写入有效数据的页面数来决定第一虚拟延迟时间D1、第二虚拟延迟时间D2与第三虚拟延迟时间D3。具体来说,当完成第一写入指令时,存储器管理电路202会持续判断第一实体区块中已完成数据合并操作的实体页面(即,已被写入有效数据的实体页面)的数目是否大于或等于第一页面数门槛值。当第一实体区块中已完成数据合并操作的实体页面的数目大于或等于第一页面数门槛值时,存储器管理电路202会传送第一响应信息给主机系统1000。而当完成第二写入指令时,存储器管理电路202会持续判断第一实体区块中已完成数据合并操作的实体页面的数目是否大于或等于第二页面数门槛值。当第一实体区块中已完成数据合并操作的实体页面的数目大于或等于第二页面数门槛值时,存储器管理电路202会传送第二响应信息给主机系统1000。类似地,完成第三写入指令时,存储器管理电路202会持续判断第一实体区块中已完成数据合并操作的实体页面的数目是否大于或等于第三页面数门槛值。当第一实体区块中已完成数据合并操作的实体页面的数目大于或等于第三页面数门槛值时,存储器管理电路202会传送第三响应信息给主机系统1000。例如,在本范例实施例中,一个实体区块具有128个实体页面,并且第一页面数门槛值、第二页面数门槛值与第三页面数门槛值会据此分别地设定为32、64与96。
也就是说,第一虚拟延迟时间D1、第二虚拟延迟时间D2与第三虚拟延迟时间D3是根据数据合并操作的执行进度动态地被决定。
图13是根据本范例实施例所示的指令执行方法的流程图,其显示在执行数据合并程序期间连续执行多个写入指令的步骤。
请参照图13,在开始对某一个逻辑区块(即,上述的第一逻辑区块)执行数据合并操作(即,步骤S1301)之后,在步骤S1303中,存储器管理电路202会从主机系统1000中接收写入指令及对应此写入指令的写入数据,并且在步骤S1305中,存储器管理电路202会判断在数据合并操作中用于写入有效数据的目标实体区块(即,上述第一实体区块)中已被写入有效数据的实体页面的数目是否大于一预设页面数目。例如,预设页面数目会被设定为一个实体区块的实体页面数的75%。例如,在本范例实施例中,一个实体区块具有128个实体页面,并且预设页面数目被设定为96。
倘若在数据合并操作中用于写入有效数据的目标实体区块中已被写入有效数据的实体页面的数目非大于预设页面数目时,在步骤S1307中,存储器管理电路202会将写入数据暂存于缓冲存储器208中并且等候一段虚拟延迟时间之后(即,在延迟时间点)传送指示完成写入指令的响应信息给主机系统1000。
倘若在数据合并操作中用于写入有效数据的目标实体区块中已被写入有效数据的实体页面的数目大于预设页面数目时,在步骤S1309中,存储器管理电路202会在数据合并操作完成后将写入数据暂存于缓冲存储器208中并且传送指示完成写入指令的响应信息给主机系统1000。
值得一提的是,如上所述,倘若缓冲存储器208仍存有足够的剩余容量或者闲置区504仍存有足够的实体区块时,存储器管理电路202可将来自于主机系统1000的写入数据快速地暂存至缓冲存储器208或者暂时地写入至混乱实体区块中,由此缩短响应写入指令所需的时间。因此,图13是根据本范例实施例所示的指令执行方法的流程图可还包括判断缓冲存储器208的剩余容量是否小于预先定义容量并且判断闲置区504中的实体区块的数目是否小于预先定义数目的步骤(如图14所示)。
图14是根据另一范例实施例所示的指令执行方法的流程图,其显示在执行数据合并程序期间连续执行多个写入指令的步骤。
请参照图14,在开始对某一个逻辑区块(即,上述的第一逻辑区块)执行数据合并操作(即,步骤S1401)之后,在步骤S1403中,存储器管理电路202会从主机系统1000中接收写入指令及对应此写入指令的写入数据,并且在步骤S1405中,存储器管理电路202会判断缓冲存储器208的剩余容量是否小于预先定义容量并且判断闲置区504中的实体区块的数目是否小于预先定义数目。
倘若缓冲存储器208的剩余容量非小于预先定义容量或者闲置区504中的实体区块的数目非小于预先定义数目时,在步骤S1407中,存储器管理电路202会将写入数据暂存于缓冲存储器208中并且之后立即传送指示完成写入指令的响应信息给主机系统1000。
倘若缓冲存储器208的剩余容量小于预先定义容量且闲置区504中的实体区块的数目小于预先定义数目时,在步骤S1409中,存储器管理电路202会判断在数据合并操作中用于写入有效数据的目标实体区块(即,上述第一实体区块)中已被写入有效数据的实体页面的数目是否大于一预设页面数目。
倘若在数据合并操作中用于写入有效数据的目标实体区块中已被写入有效数据的实体页面的数目非大于预设页面数目时,在步骤S1411中,存储器管理电路202会将写入数据暂存于缓冲存储器208中并且等候一段虚拟延迟时间之后(即,在延迟时间点)传送指示完成写入指令的响应信息给主机系统1000。
倘若在数据合并操作中用于写入有效数据的目标实体区块中已被写入有效数据的实体页面的数目大于预设页面数目时,在步骤S1413中,存储器管理电路202会在数据合并操作完成后将写入数据暂存于缓冲存储器208中并且传送指示完成写入指令的响应信息给主机系统1000。
综上所述,当在数据合并操作期间执行来自于主机系统的写入指令时,本发明范例实施例的指令执行方法、存储器控制器与存储器储存装置会在完成写入指令并且等候一段虚拟延迟时间之后才传送指示完成指令的响应信息给主机系统。由此,在执行数据合并操作期间将对应每个写入指令的响应时间平均化并且使得存储器储存装置的存取更为顺畅。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域的普通技术人员,可作些许更动与润饰,而不脱离本发明的精神和范围。
Claims (25)
1.一种指令执行方法,用于一存储器储存装置,其中该存储器储存装置具有一缓冲存储器与一可复写式非易失性存储器模组,该可复写式非易失性存储器模组具有多个实体区块,该些实体区块被逻辑地至少被分组为一数据区与一闲置区,并且该数据区的该些实体区块被映射至多个逻辑区块,该指令执行方法包括:
对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,其中在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块并且该第一实体区块具有多个实体页面;
在执行该数据合并操作期间,从一主机系统接收一写入指令与对应该写入指令的一写入数据;
判断该第一实体区块的该些实体页面之中已被写入数据的多个实体页面的一数目是否大于一预设实体页面数目;以及
当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目非大于该预设实体页面数目时,将该写入数据暂存于该缓冲存储器中并且在一延迟时间点传送一响应信息给该主机系统,其中该延迟时间点是以完成将该写入数据暂存于该缓冲存储器的一时间点加上一虚拟延迟时间来设定并且该响应信息用以告知该写入指令已被完成。
2.根据权利要求1所述的指令执行方法,其中还包括:
当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目大于该预设实体页面数目时,在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
3.根据权利要求1所述的指令执行方法,其中还包括:
判断该缓冲存储器的一剩余容量是否小于一预先定义容量并且判断属于该闲置区的该些实体区块的一数目是否小于一预先定义数目,
其中判断该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的该数目是否大于该预设实体页面数目的步骤是在当该缓冲存储器的该剩余容量小于该预先定义容量并且属于该闲置区的该些实体区块的该数目小于该预先定义数目时被执行。
4.根据权利要求3所述的指令执行方法,其中还包括:
当该缓冲存储器的该剩余容量非小于该预先定义容量或者属于该闲置区的该些实体区块的该数目非小于该预先定义数目时,在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
5.根据权利要求1所述的指令执行方法,其中还包括:
将该虚拟延迟时间设定为一固定预定值。
6.根据权利要求1所述的指令执行方法,其中还包括:
根据对应该数据合并操作的一执行进度动态地设定该虚拟延迟时间。
7.一种存储器控制器,用以控制一可复写式非易失性存储器模组,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,电性连接至该可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块;
一存储器管理电路,电性连接至该主机接口与该存储器接口;以及
一缓冲存储器,电性连接至该存储器管理电路,
其中该存储器管理电路用以将该些实体区块逻辑地至少分组为一数据区与一闲置区,并且配置多个逻辑区块以映射该数据区的该些实体区块,
其中该存储器管理电路对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,并且在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块,其中该第一实体区块具有多个实体页面,
其中该存储器管理电路在执行该数据合并操作期间,从该主机系统接收一写入指令与对应该写入指令的一写入数据,
其中该存储器管理电路会判断该第一实体区块的该些实体页面之中已被写入数据的多个实体页面的一数目是否大于一预设实体页面数目,
其中当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目非大于该预设实体页面数目时,该存储器管理电路会将该写入数据暂存于该缓冲存储器中并且在一延迟时间点传送一响应信息给该主机系统,其中该延迟时间点是以完成将该写入数据暂存于该缓冲存储器的一时间点加上一虚拟延迟时间来设定并且该响应信息用以告知该写入指令已被完成。
8.根据权利要求7所述的存储器控制器,
其中当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目大于该预设实体页面数目时,该存储器管理电路在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
9.根据权利要求7所述的存储器控制器,
其中该存储器管理电路还用以判断该缓冲存储器的一剩余容量是否小于一预先定义容量并且判断属于该闲置区的该些实体区块的一数目是否小于一预先定义数目,
其中仅当该缓冲存储器的该剩余容量小于该预先定义容量并且属于该闲置区的该些实体区块的该数目小于该预先定义数目时,该存储器管理电路才判断该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的该数目是否大于该预设实体页面数目。
10.根据权利要求9所述的存储器控制器,
其中当该缓冲存储器的该剩余容量非小于该预先定义容量或者属于该闲置区的该些实体区块的该数目非小于该预先定义数目时,该存储器管理电路在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
11.根据权利要求7所述的存储器控制器,其中该虚拟延迟时间为一固定预定值。
12.根据权利要求7所述的存储器控制器,其中该存储器管理电路根据对应该数据合并操作的一执行进度动态地设定该虚拟延迟时间。
13.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模组,具有多个实体区块;以及
一存储器控制器,电性连接至该可复写式非易失性存储器模组与该连接器,
其中该存储器控制器用以将该些实体区块逻辑地至少分组为一数据区与一闲置区,并且配置多个逻辑区块以映射该数据区的该些实体区块,
其中该存储器控制器对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,并且在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块,其中该第一实体区块具有多个实体页面,
其中该存储器控制器在执行该数据合并操作期间,从该主机系统接收一写入指令与对应该写入指令的一写入数据,
其中该存储器控制器会判断该第一实体区块的该些实体页面之中已被写入数据的多个实体页面的一数目是否大于一预设实体页面数目,
其中当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目非大于该预设实体页面数目时,该存储器控制器会将该写入数据暂存于该缓冲存储器中并且在一延迟时间点传送一响应信息给该主机系统,其中该延迟时间点是以完成将该写入数据暂存于该缓冲存储器的一时间点加上一虚拟延迟时间来设定并且该响应信息用以告知该写入指令已被完成。
14.根据权利要求13所述的存储器储存装置,
其中当该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的数目大于该预设实体页面数目时,该存储器控制器在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
15.根据权利要求13所述的存储器储存装置,
其中该存储器控制器还用以判断该缓冲存储器的一剩余容量是否小于一预先定义容量并且判断属于该闲置区的该些实体区块的一数目是否小于一预先定义数目,
其中仅当该缓冲存储器的该剩余容量小于该预先定义容量并且属于该闲置区的该些实体区块的该数目小于该预先定义数目时,该存储器控制器才判断该第一实体区块的该些实体页面之中已被写入数据的该些实体页面的该数目是否大于该预设实体页面数目。
16.根据权利要求15所述的存储器储存装置,其中当该缓冲存储器的该剩余容量非小于该预先定义容量或者属于该闲置区的该些实体区块的该数目非小于该预先定义数目时,该存储器控制器在完成将该写入数据暂存于该缓冲存储器的该时间点传送该响应信息给该主机系统。
17.根据权利要求13所述的存储器储存装置,其中该虚拟延迟时间为一固定预定值。
18.根据权利要求13所述的存储器储存装置,其中该存储器控制器根据对应该数据合并操作的一执行进度动态地设定该虚拟延迟时间。
19.一种指令执行方法,用于一存储器储存装置,其中该存储器储存装置具有一缓冲存储器与一可复写式非易失性存储器模组,该可复写式非易失性存储器模组具有多个实体区块,该些实体区块被逻辑地至少被分组为一数据区与一闲置区,并且该数据区的该些实体区块被映射至多个逻辑区块,该指令执行方法包括:
对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,其中在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块;
在执行该数据合并操作期间,从一主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据并且将该第一写入数据暂存于该缓冲存储器中;以及
在一第一时间点传送一第一响应信息给该主机系统,其中该第一时间点是以完成将该第一写入数据暂存于该缓冲存储器的一时间点加上一第一虚拟延迟时间来设定并且该第一响应信息用以告知该第一写入指令已被完成。
20.根据权利要求19所述的指令执行方法,其中还包括:
在执行该数据合并操作期间,从该主机系统接收一第二写入指令与对应该第二写入指令的一第二写入数据并且将该第二写入数据暂存于该缓冲存储器中;
在一第二时间点传送一第二响应信息给该主机系统,其中该第二时间点是以完成将该第二写入数据暂存于该缓冲存储器的一时间点加上一第二虚拟延迟时间来设定并且该第二响应信息用以告知该第二写入指令已被完成;
在执行该数据合并操作期间,从该主机系统接收一第三写入指令与对应该第三写入指令的一第三写入数据并且将该第三写入数据暂存于该缓冲存储器中;
在一第三时间点传送一第三响应信息给该主机系统,其中该第三时间点是以完成将该第三写入数据暂存于该缓冲存储器的一时间点加上一第三虚拟延迟时间来设定并且该第三响应信息用以告知该第三写入指令已被完成。
21.根据权利要求19所述的指令执行方法,其中还包括:
在执行该数据合并操作期间,从该主机系统接收一第四写入指令与对应该第四写入指令的一第四写入数据并且将该第四写入数据暂存于该缓冲存储器中;以及
在一第四时间点传送一第四响应信息给该主机系统,其中该第四时间点是在完成将该第四写入数据暂存于该缓冲存储器并且完成该数据合并操作之后,其中该第四响应信息用以告知该第四写入指令已被完成。
22.根据权利要求20所述的指令执行方法,其中还包括:
将该第一虚拟延迟时间、该第二虚拟延迟时间与该第三虚拟延迟时间设定为一固定预定值。
23.根据权利要求20所述的指令执行方法,其中还包括:
根据对应该数据合并操作的一执行进度分别地设定该第一虚拟延迟时间、该第二虚拟延迟时间与该第三虚拟延迟时间,
其中该第一实体区块具有多个实体页面,
其中在该第一时间点,该第一实体区块的该些实体页面之中已完成该数据合并操作的多个实体页面的一页面数大于或等于一第一页面数门槛值,
其中在该第二时间点,该第一实体区块的该些实体页面之中已完成该数据合并操作的该些实体页面的该页面数大于或等于一第二页面数门槛值,
其中在该第三时间点,该第一实体区块的该些实体页面之中已完成该数据合并操作的该些实体页面的该页面数大于或等于一第三页面数门槛值。
24.一种存储器控制器,用以控制一可复写式非易失性存储器模组,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,电性连接至该可复写式非易失性存储器模组,其中该可复写式非易失性存储器模组具有多个实体区块;
一存储器管理电路,电性连接至该主机接口与该存储器接口;以及
一缓冲存储器,电性连接至该存储器管理电路,
其中该存储器管理电路用以将该些实体区块逻辑地至少分组为一数据区与一闲置区,并且配置多个逻辑区块以映射该数据区的该些实体区块,
其中该存储器管理电路对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,并且在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块,
其中该存储器管理电路在执行该数据合并操作期间,从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据并且将该第一写入数据暂存于该缓冲存储器中,
其中该存储器管理电路在一第一时间点传送一第一响应信息给该主机系统,其中该第一时间点是以完成将该第一写入数据暂存于该缓冲存储器的一时间点加上一第一虚拟延迟时间来设定并且该第一响应信息用以告知该第一写入指令已被完成。
25.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模组,具有多个实体区块;以及
一存储器控制器,电性连接至该可复写式非易失性存储器模组与该连接器,
其中该存储器控制器用以将该些实体区块逻辑地至少分组为一数据区与一闲置区,并且配置多个逻辑区块以映射该数据区的该些实体区块,
其中该存储器控制器对该些逻辑区块之中的一第一逻辑区块执行一数据合并操作,并且在该数据合并操作中属于该第一逻辑区块的有效数据会被复制到从该闲置区的该些实体区块中提取的一第一实体区块,
其中该存储器控制器在执行该数据合并操作期间,从该主机系统接收一第一写入指令与对应该第一写入指令的一第一写入数据并且将该第一写入数据暂存于该缓冲存储器中,
其中该存储器控制器在一第一时间点传送一第一响应信息给该主机系统,其中该第一时间点是以完成将该第一写入数据暂存于该缓冲存储器的一时间点加上一第一虚拟延迟时间来设定并且该第一响应信息用以告知该第一写入指令已被完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110200389.0A CN102890653B (zh) | 2011-07-18 | 2011-07-18 | 指令执行方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110200389.0A CN102890653B (zh) | 2011-07-18 | 2011-07-18 | 指令执行方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102890653A true CN102890653A (zh) | 2013-01-23 |
CN102890653B CN102890653B (zh) | 2016-05-18 |
Family
ID=47534161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110200389.0A Active CN102890653B (zh) | 2011-07-18 | 2011-07-18 | 指令执行方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102890653B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103123609A (zh) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | 存储器的分块管理方法 |
CN106326142A (zh) * | 2015-06-17 | 2017-01-11 | 群联电子股份有限公司 | 缓冲存储器存取方法、存储器控制器与存储器存储装置 |
CN107451074A (zh) * | 2016-06-01 | 2017-12-08 | 忆锐公司 | 存储器控制器和存储模块及包括其的处理器 |
CN109196456A (zh) * | 2016-09-27 | 2019-01-11 | 株式会社日立制作所 | 存储系统和存储系统管理方法 |
CN109522248A (zh) * | 2017-09-19 | 2019-03-26 | 三星电子株式会社 | 存储控制器的操作方法及储存设备的操作方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089831A (zh) * | 2006-06-14 | 2007-12-19 | 普天信息技术研究院 | 一种提高存储卡数据写入速度的方法 |
US20090222618A1 (en) * | 2008-02-29 | 2009-09-03 | Samsung Electronics Co., Ltd. | Memory system and block merge method |
US20090287876A1 (en) * | 2008-05-16 | 2009-11-19 | Phison Electronics Corp. | Method, apparatus and controller for managing memories |
US20100293321A1 (en) * | 2009-05-12 | 2010-11-18 | Hanan Weingarten | Systems and method for flash memory management |
-
2011
- 2011-07-18 CN CN201110200389.0A patent/CN102890653B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089831A (zh) * | 2006-06-14 | 2007-12-19 | 普天信息技术研究院 | 一种提高存储卡数据写入速度的方法 |
US20090222618A1 (en) * | 2008-02-29 | 2009-09-03 | Samsung Electronics Co., Ltd. | Memory system and block merge method |
US20090287876A1 (en) * | 2008-05-16 | 2009-11-19 | Phison Electronics Corp. | Method, apparatus and controller for managing memories |
US20100293321A1 (en) * | 2009-05-12 | 2010-11-18 | Hanan Weingarten | Systems and method for flash memory management |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103123609A (zh) * | 2013-03-13 | 2013-05-29 | 中国科学院上海微系统与信息技术研究所 | 存储器的分块管理方法 |
CN103123609B (zh) * | 2013-03-13 | 2015-07-15 | 中国科学院上海微系统与信息技术研究所 | 存储器的分块管理方法 |
CN106326142A (zh) * | 2015-06-17 | 2017-01-11 | 群联电子股份有限公司 | 缓冲存储器存取方法、存储器控制器与存储器存储装置 |
CN106326142B (zh) * | 2015-06-17 | 2019-05-21 | 群联电子股份有限公司 | 缓冲存储器存取方法、存储器控制器与存储器存储装置 |
CN107451074A (zh) * | 2016-06-01 | 2017-12-08 | 忆锐公司 | 存储器控制器和存储模块及包括其的处理器 |
CN109196456A (zh) * | 2016-09-27 | 2019-01-11 | 株式会社日立制作所 | 存储系统和存储系统管理方法 |
CN109196456B (zh) * | 2016-09-27 | 2021-06-04 | 株式会社日立制作所 | 存储系统和存储系统管理方法 |
CN109522248A (zh) * | 2017-09-19 | 2019-03-26 | 三星电子株式会社 | 存储控制器的操作方法及储存设备的操作方法 |
CN109522248B (zh) * | 2017-09-19 | 2023-07-11 | 三星电子株式会社 | 存储控制器的操作方法及储存设备的操作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102890653B (zh) | 2016-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
US9880742B2 (en) | Valid data merging method, memory controller and memory storage apparatus | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9141530B2 (en) | Data writing method, memory controller and memory storage device | |
US8423838B2 (en) | Block management method, memory controller, and memory storage apparatus | |
CN106708416B (zh) | 数据重建方法与系统及其存储器控制电路单元 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN102592670B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102890655A (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
US8943264B2 (en) | Data storing method, and memory controller and memory storage apparatus using the same | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102915273B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103019952B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102736985B (zh) | 数据合并方法、控制器与储存装置 | |
CN102456401B (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 |