CN111208932B - 映射表更新方法、存储器控制电路单元与存储器存储装置 - Google Patents
映射表更新方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN111208932B CN111208932B CN201811389248.6A CN201811389248A CN111208932B CN 111208932 B CN111208932 B CN 111208932B CN 201811389248 A CN201811389248 A CN 201811389248A CN 111208932 B CN111208932 B CN 111208932B
- Authority
- CN
- China
- Prior art keywords
- logical
- updated
- physical
- unit
- mapping table
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种映射表更新方法、存储器控制电路单元与存储器存储装置。本方法包括:根据物理‑逻辑映射表,分别计算多个已更新逻辑单元在作动物理抹除单元中的多个更新数据计数;根据更新数据计数,从多个已更新逻辑单元中选择第一已更新逻辑单元,其中第一已更新逻辑单元的数量小于已更新逻辑单元的数量;载入对应于第一已更新逻辑单元的第一逻辑‑物理映射表;以及根据物理‑逻辑映射表中第一已更新逻辑单元的映射信息更新第一逻辑‑物理映射表中的映射信息。
Description
技术领域
本发明涉及一种映射表更新方法、存储器控制电路单元与存储器存储装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
快闪存储器模块具有多个物理抹除单元且每一物理抹除单元具有多个物理程序化单元 (physical page),其中在物理抹除单元中写入数据时必须依据物理程序化单元的顺序写入数据。此外,已被写入数据的物理程序化单元需先被抹除后才能再次用于写入数据。特别是,物理抹除单元为抹除的最小单位,并且物理程序化单元为程序化(也称写入)的最小单元。因此,在快闪存储器模块的管理中,物理抹除单元会被区分为数据区与闲置区。
数据区的物理抹除单元是用以存储主机系统所存储的数据。具体来说,存储器存储装置中的存储器管理电路会将主机系统所存取的逻辑存取地址转换为逻辑区块的逻辑页面并且将逻辑区块的逻辑页面映射至数据区的物理抹除单元的物理程序化单元。也就是说,快闪存储器模块的管理上数据区的物理抹除单元是被视为已被使用的物理抹除单元(例如,已存储主机系统所写入的数据)。例如,存储器管理电路会使用逻辑-物理映射表(logical-physical mapping table)来记载逻辑页面与数据区的物理程序化单元的映射关系。
闲置区的物理抹除单元是用以轮替数据区中的物理抹除单元。具体来说,如上所述,已被写入数据的物理抹除单元必须被抹除后才可再次用于写入数据,因此,闲置区的物理抹除单元是被设计用于写入更新数据以替换映射逻辑区块的物理抹除单元。基此,在闲置区中的物理抹除单元为空或者可用于写入数据的物理抹除单元。
在一般的写入操作中,数据被写入闲置区的物理抹除单元后,存储器存储装置中的存储器管理电路并不会立即更改逻辑-物理映射表中逻辑页面与物理程序化单元间的映射关系,而是通过存储在缓冲存储器中的一物理-逻辑映射表(physical-logical mappingtable),来存储对应于写入操作的映射信息。具体来说,在一写入操作中,存储器管理电路会将更新数据写入至闲置区中的一物理抹除单元中(也称为,作动物理抹除单元),并在物理-逻辑映射表中纪录关于此写入操作的逻辑页面以及用于存储其更新数据的物理程序化单元两者间的映射信息。在适当时机,例如主机系统处于一段闲置时间或物理-逻辑映射表被写满时,存储器管理电路才会根据物理-逻辑映射表中的映射信息,载入对应的逻辑-物理映射表以进行逻辑页面与物理程序化单元间映射信息的更新。之后,存储器管理电路会将更新后的逻辑-物理映射表回存至可复写式非易失性存储器中。而上述根据物理-逻辑映射表中的映射信息更新逻辑-物理映射表的操作又被称为“清仓操作”(flush operation)。
然而,在传统的清仓操作中,当被载入的一逻辑-物理映射表中所需更新的映射信息极少 (例如,仅有一个逻辑页面与物理程序化单元之间的映射信息需被更新)时,通常会造成映射信息更新效率的下降。更详细来说,若重复地执行上述的操作,则会造成大量的时间花在执行载入与回存逻辑-物理映射表的操作,并且仅有少量的时间是真正的被用来执行映射信息的更新。因此,如何增加逻辑-物理映射表的更新的效率,是本领域技术人员所欲解决的问题之一。
发明内容
本发明提供一种映射表更新方法、存储器控制电路单元与存储器存储装置,可以提升逻辑-物理映射表在更新时的效率。
本发明提出一种映射表更新方法,用于一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息,所述映射表更新方法包括:建立一物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量;从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表;以及根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
在本发明的一实施例中,所述方法还包括:清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息;保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息;以及将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数大于一第一门槛值。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数小于一第二门槛值。
在本发明的一实施例中,从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的步骤包括:对所述多个更新数据计数排序;根据排序后的所述多个更新数据计数决定一第三门槛値;以及根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数。其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
在本发明的一实施例中,从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的步骤还包括:将所述多个已更新逻辑单元中对应于所述第二更新数据计数的至少一第二已更新逻辑单元识别为所述第一已更新逻辑单元,或将所述多个已更新逻辑单元中对应于所述第三更新数据计数的至少一第三已更新逻辑单元识别为所述第一已更新逻辑单元。
本发明提出一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,所述存储器控制电路单元包括:主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至一主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息。存储器管理电路电性连接至所述主机接口以及所述存储器接口。存储器管理电路用以执行下述运作:建立一物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量;从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表;以及根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
在本发明的一实施例中,所述存储器管理电路还用以清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息,保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息,并将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数大于一第一门槛值。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数小于一第二门槛值。
在本发明的一实施例中,在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,所述存储器管理电路还用以对所述多个更新数据计数排序,根据排序后的所述多个更新数据计数决定一第三门槛値,以及根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数。其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
在本发明的一实施例中,在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,所述存储器管理电路还用以将所述多个已更新逻辑单元中对应于所述第二更新数据计数的至少一第二已更新逻辑单元识别为所述第一已更新逻辑单元,或将所述多个已更新逻辑单元中对应于所述第三更新数据计数的至少一第三已更新逻辑单元识别为所述第一已更新逻辑单元。
本发明提出一种存储器存储装置。存储器存储装置包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息。存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块。存储器控制电路单元用以执行下述运作:建立一物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量;从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表;以及根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
在本发明的一实施例中,所述存储器控制电路单元还用以清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息,保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息,并将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数大于一第一门槛值。
在本发明的一实施例中,所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数小于一第二门槛值。
在本发明的一实施例中,在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,所述存储器控制电路单元还用以对所述多个更新数据计数排序,根据排序后的所述多个更新数据计数决定一第三门槛値,并根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数。其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
在本发明的一实施例中,在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,所述存储器控制电路单元还用以将所述多个已更新逻辑单元中对应于所述第二更新数据计数的至少一第二已更新逻辑单元识别为所述第一已更新逻辑单元,或将所述多个已更新逻辑单元中对应于所述第三更新数据计数的至少一第三已更新逻辑单元识别为所述第一已更新逻辑单元。
本发明提出一种映射表更新方法,用于一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息,所述映射表更新方法包括:建立一物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量且所述多个更新数据计数中所述第一已更新逻辑单元的一第一更新数据计数大于一第一门槛值;从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表;根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息;清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息;以及保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息。
基于上述,本发明的映射表更新方法、存储器控制电路单元与存储器存储装置,可以仅根据物理-逻辑映射表中一部分的映射信息来载入对应的逻辑-物理映射表来执行映射信息的更新,并且保留物理-逻辑映射表中其他剩余部分的映射信息。藉此,可以提升逻辑-物理映射表在更新时的效率。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O) 装置的示意图;
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;
图5A与图5B是根据本范例时实施例所示出的存储单元存储架构与物理抹除单元的范例示意图;
图6是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;
图7与图8是根据一范例实施例所示出的管理物理抹除单元的范例示意图;
图9A~图9C是根据本发明的一实施例所示出的数据写入的简化范例;
图10A~图10C是根据本发明的第一实施例所示出的映射表更新的简化范例;
图11A~图11C是根据本发明的第二实施例所示出的映射表更新的简化范例;
图12是根据本发明的一实施例所示出的映射表更新方法的流程图;
图13是根据本发明的另一实施例所示出的映射表更新方法的流程图。
附图标记说明
10:存储器存储装置
11:主机系统
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:U盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
702:存储器管理电路
704:主机接口
706:存储器接口
708:错误检查与校正电路
710:缓冲存储器
712:电源管理电路
502:数据区
504:闲置区
506:暂存区
508:取代区
510(0)~510(N)、410(0)~410(5):物理抹除单元
LBA(0)~LBA(H):逻辑单元
LZ(0)~LZ(M):逻辑区域
ID1~ID12:初始数据
UD1~UD6:更新数据
600:物理-逻辑映射表
700:更新数据计数表
S1201:建立物理-逻辑映射表,其中物理-逻辑映射表记录多个物理抹除单元之中的作动物理抹除单元与多个逻辑单元之中的多个已更新逻辑单元之间的映射信息的步骤
S1203:根据物理-逻辑映射表,分别计算多个已更新逻辑单元在作动物理抹除单元中的多个更新数据计数的步骤
S1205:根据多个更新数据计数,从多个已更新逻辑单元中选择第一已更新逻辑单元,其中第一已更新逻辑单元的数量小于前述的已更新逻辑单元的数量的步骤
S1207:从多个逻辑-物理映射表中载入对应于第一已更新逻辑单元的第一逻辑-物理映射表的步骤
S1209:根据物理-逻辑映射表中第一已更新逻辑单元的映射信息更新第一逻辑-物理映射表中的映射信息的步骤
S1211:将已更新的第一逻辑-物理映射表回存至可复写式非易失性存储器模块的步骤
S1301:建立物理-逻辑映射表,其中物理-逻辑映射表记录多个物理抹除单元之中的作动物理抹除单元与多个逻辑单元之中的多个已更新逻辑单元之间的映射信息的步骤
S1303:根据物理-逻辑映射表,分别计算多个已更新逻辑单元在作动物理抹除单元中的多个更新数据计数的步骤
S1305:根据多个更新数据计数,从多个已更新逻辑单元中选择第一已更新逻辑单元,其中第一已更新逻辑单元的数量小于前述的已更新逻辑单元的数量且前述更新数据计数中第一已更新逻辑单元的第一更新数据计数大于第一门槛值的步骤
S1307:从多个逻辑-物理映射表中载入对应于第一已更新逻辑单元的第一逻辑-物理映射表的步骤
S1309:根据物理-逻辑映射表中第一已更新逻辑单元的映射信息更新第一逻辑-物理映射表中的映射信息的步骤
S1311:清除物理-逻辑映射表中第一已更新逻辑单元的映射信息的步骤
S1313:保留物理-逻辑映射表中第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息的步骤
S1315:将已更新的第一逻辑-物理映射表回存至可复写式非易失性存储器模块的步骤
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O) 装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及 I/O装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccess memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口 114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储器存储装置10。存储器存储装置10可例如是U盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(Near FieldCommunication, NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(Global Positioning System, GPS)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式 I/O装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。
在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的SD卡32、CF卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded MMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi ChipPackage, eMCP)342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元 402也可以是符合并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral ComponentInterconnect Express,PCI Express)标准、通用串行总线 (Universal Serial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi MediaCard,MMC)接口标准、嵌 入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embeddedMulti Chip Package,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口 (Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取、抹除与合并等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有物理抹除单元510(0)~ 510(N)。例如,物理抹除单元510(0)~510(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一物理抹除单元分别具有多个物理程序化单元,例如本发明的范例实施例中,每一个物理抹除单元包含258个物理程序化单元,而其中属于同一个物理抹除单元的物理程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一物理抹除单元是可由64个物理程序化单元、256个物理程序化单元或其他任意个物理程序化单元所组成。
更详细来说,物理抹除单元为抹除的最小单位。也即,每一物理抹除单元含有最小数目之一并被抹除的存储单元。物理程序化单元为程序化的最小单元。即,物理程序化单元为写入数据的最小单元。每一物理程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个物理存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个物理程序化单元的数据比特区中会包含4 个物理存取地址,且一个物理存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的物理存取地址,本发明并不限制物理存取地址的大小以及个数。
在本发明的范例实施例中,可复写式非易失性存储器模块406为复数阶存储单元(Trinary Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块406也可是多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图5A与图5B是根据本范例时实施例所示出的存储单元存储架构与物理抹除单元的范例示意图。
请参照图5A,可复写式非易失性存储器模块406的每个存储单元的存储状态可被识别为“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”(如图5A所示),其中左侧算起的第1个比特为LSB、从左侧算起的第2个比特为CSB以及从左侧算起的第3个比特为MSB。此外,排列在同一条字元线上的数个存储单元可组成3个物理程序化单元,其中由此些存储单元的LSB所组成的物理程序化单元称为下物理程序化单元,由此些存储单元的CSB所组成的物理程序化单元称为中物理程序化单元,并且由此些存储单元的MSB所组成的物理程序化单元称为上物理程序化单元。
请参照图5B,一个物理抹除单元是由多个物理程序化单元组所组成,其中每个物理程序化单元组包括由排列在同一条字元线上的数个存储单元所组成的下物理程序化单元、中物理程序化单元与上物理程序化单元。例如,在物理抹除单元中,属于下物理程序化单元的第0 个物理程序化单元、属于中物理程序化单元的第1个物理程序化单元和属于上物理程序化单元的第2个物理程序化单元会被视为一个物理程序化单元组。类似地,第3、4、5个物理程序化单元会被视为一个物理程序化单元组,并且以此类推其他物理程序化单元也是依据此方式被区分为多个物理程序化单元组。
图6是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图6,存储器控制电路单元404包括存储器管理电路702、主机接口704、存储器接口706及错误检查与校正电路708。
存储器管理电路702用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路702具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路702或任何包含于存储器控制电路单元404中的电路元件的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路702的控制指令是以固件型式来实作。例如,存储器管理电路702具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路702的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区) 中。此外,存储器管理电路702具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元 404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406 中的控制指令载入至存储器管理电路702的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路702的控制指令也可以一硬件型式来实作。例如,存储器管理电路702包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406 中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路702还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口704是电性连接至存储器管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至存储器管理电路702。在本范例实施例中,主机接口704是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口704也可以是相容于PATA标准、IEEE 1394标准、PCIExpress 标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、 UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口706是电性连接至存储器管理电路702并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口 706转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路 702要存取可复写式非易失性存储器模块406,存储器接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路702产生并且通过存储器接口706传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
错误检查与校正电路708是电性连接至存储器管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路702 会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路702从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路708 会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器710与电源管理电路712。
缓冲存储器710是电性连接至存储器管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路712是电性连接至存储器管理电路702并且用以控制存储器存储装置10的电源。
在本范例实施例中,错误检查与校正电路708可以针对存储于同一个物理程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个物理程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(low density parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbo code)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码 (Reed-solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路708可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。
图7与图8是根据一范例实施例所示出的管理物理抹除单元的范例示意图。
请参照图7,可复写式非易失性存储器模块406具有物理抹除单元510(0)~510(N),并且存储器管理电路702会逻辑地分割(partition)为数据区502、闲置区504、暂存区506与取代区 508。
逻辑上属于数据区502与闲置区504的物理抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区502的物理抹除单元是被视为已存储数据的物理抹除单元,而闲置区 504的物理抹除单元是用以替换数据区502的物理抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路702会从闲置区504中提取物理抹除单元,并且将数据写入至所提取的物理抹除单元中,以替换数据区502的物理抹除单元。
逻辑上属于暂存区506的物理抹除单元是用以记录系统数据。例如,系统数据包括逻辑- 物理映射表、关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的物理抹除单元数、每一物理抹除单元的物理程序化单元数等。
逻辑上属于取代区508中的物理抹除单元是用于坏物理抹除单元取代程序,以取代损坏的物理抹除单元。具体来说,倘若取代区508中仍存有正常的物理抹除单元并且数据区502 的物理抹除单元损坏时,存储器管理电路702会从取代区508中提取正常的物理抹除单元来更换损坏的物理抹除单元。
特别是,数据区502、闲置区504、暂存区506与取代区508的物理抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,物理抹除单元关联至数据区502、闲置区504、暂存区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的物理抹除单元损坏而被取代区508的物理抹除单元取代时,则原本取代区508的物理抹除单元会被关联至闲置区504。
请参照图8,存储器管理电路702会配置逻辑单元LBA(0)~LBA(H)以映射数据区502的物理抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的物理抹除单元的物理程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器管理电路702会从闲置区504中提取一个物理抹除单元来写入数据,以轮替数据区502 的物理抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。
为了识别每个逻辑单元的数据被存储在那个物理抹除单元,在本范例实施例中,存储器管理电路702会记录逻辑单元与物理抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器管理电路702会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的物理抹除单元中来存取数据。例如,在本范例实施例中,存储器管理电路702 会在可复写式非易失性存储器模块406中存储逻辑-物理映射表来记录每一逻辑单元所映射的物理抹除单元,并且当欲存取数据时存储器管理电路702会将逻辑-物理映射表载入至缓冲存储器710来维护。
值得一提的是,由于缓冲存储器710的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器管理电路702会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑-物理映射表。特别是,当存储器管理电路702欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑-物理映射表会被载入至缓冲存储器710来被更新。在本范例实施例中,存储所有的逻辑- 物理映射表所需的空间为对应于可复写式非易失性存储器模块406中可用于存储数据的空间的千分之一。也就是说,假设可复写式非易失性存储器模块406的容量为1TB(Terabyte),则存储所有的逻辑-物理映射表所需的空间为1GB(Gigabyte)。然而,在其他范例实施例中,存储所有的逻辑-物理映射表所需的空间可以随着可复写式非易失性存储器模块406的容量的不同而改变。
在本范例实施例中,当主机系统11欲执行写入操作时,存储器管理电路702会从闲置区 504中提取一作动物理抹除单元,并且将包含于来自主机系统11的写入指令中的数据(也称为更新数据)写入至此作动物理抹除单元中。
具体来说,当存储器存储装置10从主机系统11接收到写入指令时,来自于主机系统11 的写入指令中的数据可被写入闲置区504中的一作动物理抹除单元中。并且,当此物理抹除单元已被写满时,存储器管理电路702会再从闲置区504中提取空的物理抹除单元作为另一个作动物理抹除单元,以继续写入对应来自于主机系统11的写入指令的更新数据。
图9A~图9C是根据本发明的一实施例所示出的数据写入的简化范例。
为方便说明,在此假设数据区502具有4个物理抹除单元分别为物理抹除单元 410(0)~410(3),闲置区504具有2个物理抹除单元分别为物理抹除单元410(4)~410(5)。
请同时参照图9A、图9B与图9C,假设在图9A的存储器存储装置10的状态中,逻辑单元LBA(0)~LBA(3)的逻辑页面映射数据区502的物理抹除单元410(0)~410(3)的物理程序化单元,并且闲置区504具有物理抹除单元410(4)~410(5)。也就是说,存储器管理电路702会在逻辑-物理映射表中记录逻辑单元LBA(0)~LBA(3)与物理抹除单元410(0)~410(5)之间的映射关系,并且将物理抹除单元410(0)~410(3)的物理程序化单元视为已存储属于逻辑单元 LBA(0)~LBA(3)的逻辑页面的数据(即,初始数据ID1~ID12)。此外,存储器管理电路702会记录闲置区504中可用的物理抹除单元410(4)~410(5),且当主机系统11执行写入操作时,存储器管理电路702会记录对应此写入操作的更新数据的映射信息至缓冲存储器710中如图9B 所示的物理-逻辑映射表600。
具体来说,当主机系统11执行关于一逻辑页面的写入操作时,存储器管理电路702会将此写入操作对应的更新数据写入从闲置区504选出的作动物理抹除单元中。于此同时,存储器管理电路702并不会更改逻辑-物理映射表中逻辑单元LBA(0)~LBA(3)与物理抹除单元 410(0)~410(5)之间的映射关系,存储器管理电路702会将作动物理抹除单元中,被用于存储此更新数据的物理程序化单元的地址(也称,物理地址),连同此写入操作所对应的逻辑页面的地址(也称,逻辑地址)记录至图9B中的物理-逻辑映射表600中。等到物理-逻辑映射表600被写满后,才会根据物理-逻辑映射表600中的映射信息(即,更新数据所对应的逻辑地址),载入对应的逻辑-物理映射表至缓冲存储器710中,以更新逻辑单元LBA(0)~LBA(3)与物理抹除单元410(0)~410(5)之间的映射关系。值得一提的是,当存储器存储装置10属于闲置状态一段时间(例如,30秒未从主机系统11中接收到任何指令)时,存储器管理电路702也可以根据物理-逻辑映射表600中的映射信息,载入对应的逻辑-物理映射表至缓冲存储器710中,以更新逻辑单元LBA(0)~LBA(3)与物理抹除单元410(0)~410(5)之间的映射关系。
此外,在本范例实施例中,存储器管理电路702会建立如图9C中的更新数据计数表700。需说明的是,在执行写入操作以将一逻辑页面的数据写入作动物理抹除单元后,该逻辑页面所属的逻辑单元可以被称为“已更新逻辑单元”。换个角度来说,物理-逻辑映射表600中所记录的逻辑地址所属的逻辑单元即前述的“已更新逻辑单元”。更新数据计数表700用以记录每个已更新逻辑单元目前在作动物理抹除单元中所具有的对应于写入操作的有效的更新数据的数量(也称为,更新数据计数)。换句话说,以一个已更新逻辑单元的更新数据计数来说,该更新数据计数可以用于代表该已更新逻辑单元中有多少笔映射信息需要被更新。在本范例实施例中,更新数据计数表700中拥有非零的更新数据计数的逻辑单元也可以被视为前述的“已更新逻辑单元”。需注意的是,若有多笔写入操作是重复地对同一个逻辑地址进行写入,则该逻辑地址在作动物理抹除单元中有效的更新数据是最后一次的写入操作所写入的更新数据。
请同时参照图9A、图9B与图9C,假设主机系统11欲写入更新数据UD1并且更新数据UD1是属于逻辑单元LBA(0)的第1个逻辑页面时,存储器管理电路702会从闲置区504中提取例如物理抹除单元410(4)作为作动物理抹除单元,并且下达写入指令以将此更新数据UD1写入至物理抹除单元410(4)的第0个物理程序化单元。接着,如图9B所示,存储器管理电路702会在物理-逻辑映射表600中记录物理抹除单元410(4)的第0个物理程序化单元(即,信息“410(4)-0”)与逻辑单元LBA(0)的第1个逻辑页面(即,信息“LBA(0)-1”)的映射信息。此外,如图9C所示,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(0)的更新数据计数修改为1以代表逻辑单元LBA(0)中有一笔映射信息需要被更新。
之后,假设主机系统11欲再写入更新数据UD2并且更新数据UD2是属于逻辑单元LBA(2) 的第1个逻辑页面时,存储器管理电路702会将此更新数据UD2写入至物理抹除单元410(4) 的第1个物理程序化单元。接着如图9B所示,存储器管理电路702会在物理-逻辑映射表600 中记录物理抹除单元410(4)的第1个物理程序化单元(即,信息“410(4)-1”)与逻辑单元LBA(2) 的第1个逻辑页面(即,信息“LBA(2)-1”)的映射信息。此外,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(2)的更新数据计数修改为1以代表逻辑单元LBA(2)中有一笔映射信息需要被更新。
之后,假设主机系统11欲再写入更新数据UD3并且更新数据UD3是属于逻辑单元LBA(2) 的第2个逻辑页面时,存储器管理电路702会将此更新数据UD3写入至物理抹除单元410(4) 的第2个物理程序化单元。接着如图9B所示,存储器管理电路702会在物理-逻辑映射表600 中记录物理抹除单元410(4)的第2个物理程序化单元(即,信息“410(4)-2”)与逻辑单元LBA(2) 的第2个逻辑页面(即,信息“LBA(2)-2”)的映射信息。此外,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(2)的更新数据计数修改为2以代表逻辑单元LBA(2)中有两笔映射信息需要被更新,如图9C所示。
之后,假设主机系统11欲再写入更新数据UD4并且更新数据UD4是属于逻辑单元LBA(3) 的第1个逻辑页面时,存储器管理电路702会从闲置区504中提取物理抹除单元410(5)。存储器管理电路702会将此更新数据UD4写入至物理抹除单元410(5)的第0个物理程序化单元。接着如图9B所示,存储器管理电路702会在物理-逻辑映射表600中记录物理抹除单元410(5) 的第0个物理程序化单元(即,信息“410(5)-0”)与逻辑单元LBA(3)的第1个逻辑页面(即,信息“LBA(3)-1”)的映射信息。此外,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(3)的更新数据计数修改为1以代表逻辑单元LBA(3)中有一笔映射信息需要被更新。
之后,假设主机系统11欲再写入更新数据UD5并且更新数据UD5是属于逻辑单元LBA(3) 的第2个逻辑页面时,存储器管理电路702会将此更新数据UD5写入至物理抹除单元410(5) 的第1个物理程序化单元。接着如图9B所示,存储器管理电路702会在物理-逻辑映射表600 中记录物理抹除单元410(5)的第1个物理程序化单元(即,信息“410(5)-1”)与逻辑单元LBA(3) 的第2个逻辑页面(即,信息“LBA(3)-2”)的映射信息。此外,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(3)的更新数据计数修改为2以代表逻辑单元LBA(3)中有两笔映射信息需要被更新,如图9C所示。
之后,假设主机系统11欲再写入更新数据UD6并且更新数据UD6是属于逻辑单元LBA(1) 的第1个逻辑页面时,存储器管理电路702会将此更新数据UD6写入至物理抹除单元410(5) 的第2个物理程序化单元。接着如图9B所示,存储器管理电路702会在物理-逻辑映射表600 中记录物理抹除单元410(5)的第2个物理程序化单元(即,信息“410(5)-2”)与逻辑单元LBA(1) 的第1个逻辑页面(即,信息“LBA(1)-1”)的映射信息。此外,存储器管理电路702还会对应此写入操作,将更新数据计数表700中对应于逻辑单元LBA(1)的更新数据计数修改为1以代表逻辑单元LBA(1)中有两笔映射信息需要被更新,如图9C所示。
经过前述的写入操作后,如图9C的更新数据计数表700所示,逻辑单元LBA(0)的更新数据计数为1。逻辑单元LBA(1)的更新数据计数为1,逻辑单元LBA(2)的更新数据计数为2,逻辑单元LBA(3)的更新数据计数为2。换句话说,经过前述的写入操作后,逻辑单元LBA(0) 中的一个逻辑地址的映射信息须被更新,逻辑单元LBA(1)中的一个逻辑地址的映射信息须被更新,逻辑单元LBA(2)中的两个逻辑地址的映射信息须被更新且逻辑单元LBA(3)中的两个逻辑地址的映射信息须被更新。
必须了解的是,由于此时物理-逻辑映射表600已被写满,存储器管理电路702会根据物理-逻辑映射表600中写入信息所对应的逻辑地址,载入对应的逻辑-物理映射表至缓冲存储器 710中,以更新逻辑单元LBA(0)~LBA(3)与物理抹除单元410(0)~410(5)之间的映射关系。
以下以多个实施例来描述本发明的映射表更新方法。
[第一实施例]
图10A~图10C是根据本发明的第一实施例所示出的映射表更新的简化范例。
请同时参照图10A、图10B与图10C,接续图9A、图9B与图9C,存储器管理电路702 首先会根据图9C的更新数据计数表700挑选出所需载入并进行映射信息的更新的逻辑-物理映射表。在本发明的第一实施例中,存储器管理电路702例如可以事先设定一个门槛値(也称为,第一门槛值)。当一个逻辑单元所对应的更新数据计数大于第一门槛值时,存储器管理电路702会载入该逻辑单元的逻辑-物理映射表至缓冲存储器710中,并且根据物理-逻辑映射表 600中的信息更新该逻辑单元的逻辑-物理映射表。需注意的是,本发明并不用于限定第一门槛值的确切数值。
更详细来说,在图10A、图10B与图10C的实施例中,假设第一门槛值是1。存储器管理电路702会选择更新数据计数大于前述第一门槛值的逻辑单元LBA(2)与逻辑单元LBA(3)。存储器管理电路702会依据物理-逻辑映射表600,从可复写式非易失性存储器模块406中载入对应于逻辑单元LBA(2)与逻辑单元LBA(3)(在此统称为,第一已更新逻辑单元)的逻辑-物理映射表(也即,第一逻辑-物理映射表)。具体来说,由于图9B中的物理-逻辑映射表600中存储了关于逻辑单元LBA(2)的第1-2个逻辑页面的更新信息(即,信息“LBA(2)-1”与“LBA(2)-2”) 以及逻辑单元LBA(3)的第1-2个逻辑页面的更新信息(即,信息“LBA(3)-1”与“LBA(3)-2”),存储器管理电路702会对应地从可复写式非易失性存储器模块406中载入逻辑单元LBA(2)的逻辑-物理映射表以及逻辑单元LBA(3)的逻辑-物理映射表至缓冲存储器710中。在本范例中,第一已更新逻辑单元的数量(即,2)是小于更新数据计数表700中更新数据计数非为零的逻辑单元(也称为,已更新逻辑单元)的数量(即,4)。
接着,存储器管理电路702会根据图9B中物理-逻辑映射表600中存储的信息,更新逻辑单元LBA(2)以及逻辑单元LBA(3)与物理抹除单元410(0)~410(5)之间的映射关系。具体来说,由于物理-逻辑映射表600中存储了关于逻辑单元LBA(2)的第1个逻辑页面(即,信息“LBA(2)-1”)的更新数据UD2被存储至物理抹除单元410(4)的第1个物理程序化单元(即,信息“410(4)-1”)的更新信息、关于逻辑单元LBA(2)的第2个逻辑页面(即,信息“LBA(2)-2”) 的更新数据UD3被存储至物理抹除单元410(4)的第2个物理程序化单元(即,信息“410(4)-2”) 的更新信息、关于逻辑单元LBA(3)的第1个逻辑页面(即,信息“LBA(3)-1”)的更新数据UD4 被存储至物理抹除单元410(5)的第0个物理程序化单元(即,信息“410(5)-0”)的更新信息以及关于逻辑单元LBA(3)的第2个逻辑页面(即,信息“LBA(3)-2”)的更新数据UD5被存储至物理抹除单元410(5)的第1个物理程序化单元(即,信息“410(5)-1”)的更新信息,存储器管理电路702会分别更新逻辑单元LBA(2)的逻辑-物理映射表以及逻辑单元LBA(3)的逻辑-物理映射表,以将逻辑单元LBA(2)的第1个逻辑页面映射至物理抹除单元410(4)的第1个物理程序化单元、将逻辑单元LBA(2)的第2个逻辑页面映射至物理抹除单元410(4)的第2个物理程序化单元、将逻辑单元LBA(3)的第1个逻辑页面映射至物理抹除单元410(5)的第0个物理程序化单元以及将逻辑单元LBA(3)的第2个逻辑页面映射至物理抹除单元410(5)的第1个物理程序化单元,如图10A所示。
在经过前述映射信息的更新后,逻辑单元LBA(2)的第1-2个逻辑页面原先所映射的物理抹除单元410(2)的第1-2个物理程序化单元中的初始数据ID8-ID9会被识别为无效数据,而逻辑单元LBA(3)的第1-2个逻辑页面原先所映射的物理抹除单元410(3)的第1-2个物理程序化单元中的初始数据ID11-ID12会被识别为无效数据。
接着,存储器管理电路702会将已更新的逻辑单元LBA(2)以及逻辑单元LBA(3)的逻辑- 物理映射表回存至可复写式非易失性存储器模块406中。而需注意的是,本范例实施例并非用于限定将第一逻辑-物理映射表回存至可复写式非易失性存储器模块406中的时机。
此外,存储器管理电路702还会将图9B中的物理-逻辑映射表600修改为如图10B中的物理-逻辑映射表600。更详细来说,存储器管理电路702还会清除物理-逻辑映射表600中关于逻辑单元LBA(2)的第1个逻辑页面(即,信息“LBA(2)-1”)的更新数据UD2被存储至物理抹除单元410(4)的第1个物理程序化单元(即,信息“410(4)-1”)的更新信息、关于逻辑单元LBA(2)的第2个逻辑页面(即,信息“LBA(2)-2”)的更新数据UD3被存储至物理抹除单元410(4) 的第2个物理程序化单元(即,信息“410(4)-2”)的更新信息、关于逻辑单元LBA(3)的第1个逻辑页面(即,信息“LBA(3)-1”)的更新数据UD4被存储至物理抹除单元410(5)的第0个物理程序化单元(即,信息“410(5)-0”)的更新信息以及关于逻辑单元LBA(3)的第2个逻辑页面 (即,信息“LBA(3)-2”)的更新数据UD5被存储至物理抹除单元410(5)的第1个物理程序化单元(即,信息“410(5)-1”)的更新信息。特别是,在本实施例中,存储器管理电路702还会保留物理-逻辑映射表600中关于逻辑单元LBA(0)的第1个逻辑页面(即,信息“LBA(0)-1”) 的更新数据UD1被存储至物理抹除单元410(4)的第0个物理程序化单元(即,信息“410(4)-0”) 的更新信息以及关于逻辑单元LBA(1)的第1个逻辑页面(即,信息“LBA(1)-1”)的更新数据 UD6被存储至物理抹除单元410(5)的第2个物理程序化单元(即,信息“410(5)-2”)的更新信息。
此外,存储器管理电路702还会将图9C中的更新数据计数表700修改为如图10C中的更新数据计数表700。更详细来说,由于逻辑单元LBA(2)与逻辑单元LBA(3)已没有映射信息需要再被更新,故逻辑单元LBA(2)与逻辑单元LBA(3)的更新数据计数皆会被设为零。
在此需说明的是,在前述范例中,存储器管理电路702是选择更新数据计数大于第一门槛值的逻辑单元LBA(2)与逻辑单元LBA(3)并载入对应于逻辑单元LBA(2)与逻辑单元LBA(3) 的逻辑-物理映射表以进行映射信息的更新。换句话说,根据前述的第一门槛值,可以确保所载入的逻辑-物理映射表中映射信息的更新数量可以达到一定数值,藉此提升逻辑-物理映射表在更新时的效率。而针对更新数据计数非大于第一门槛值的逻辑单元LBA(0)与逻辑单元 LBA(1),存储器管理电路702可以继续执行后续的的写入操作并且等到逻辑单元LBA(0)与逻辑单元LBA(1)的更新数据计数大于第一门槛值后,再载入对应于逻辑单元LBA(0)与逻辑单元 LBA(1)的逻辑-物理映射表以进行映射信息的更新。藉此,可以避免当一逻辑-物理映射表中的映射信息的更新数量较少时,在清仓操作中大部分时间是花在载入与回存逻辑-物理映射表并造成映射表更新效率低落的问题。
[第二实施例]
图11A~图11C是根据本发明的第二实施例所示出的映射表更新的简化范例。
请同时参照图11A、图11B与图11C,接续图9A、图9B与图9C,存储器管理电路702 首先会根据图9C的更新数据计数表700挑选出所需载入并进行映射信息的更新的逻辑-物理映射表。在本发明的第二实施例中,存储器管理电路702例如可以事先设定一个门槛値(也称为,第二门槛值)。当一个逻辑单元所对应的更新数据计数小于第二门槛值时,存储器管理电路702会载入该逻辑单元的逻辑-物理映射表至缓冲存储器710中,并且根据物理-逻辑映射表 600中的信息更新该逻辑单元的逻辑-物理映射表。需注意的是,本发明并不用于限定第二门槛值的确切数值。
更详细来说,在图11A、图11B与图11C的实施例中,假设第二门槛值是2。存储器管理电路702会选择更新数据计数小于前述第二门槛值的逻辑单元LBA(0)与逻辑单元LBA(1)。存储器管理电路702会依据物理-逻辑映射表600,从可复写式非易失性存储器模块406中载入对应于逻辑单元LBA(0)与逻辑单元LBA(1)(在此统称为,第一已更新逻辑单元)的逻辑-物理映射表(也即,第一逻辑-物理映射表)。具体来说,由于图9B中的物理-逻辑映射表600中存储了关于逻辑单元LBA(0)的第1个逻辑页面的更新信息(即,信息“LBA(0)-1”)以及逻辑单元LBA(1)的第1个逻辑页面的更新信息(即,信息“LBA(1)-1”),存储器管理电路702会对应地从可复写式非易失性存储器模块406中载入逻辑单元LBA(0)的逻辑-物理映射表以及逻辑单元LBA(1)的逻辑-物理映射表至缓冲存储器710中。在本范例中,第一已更新逻辑单元的数量(即,2)是小于更新数据计数表700中更新数据计数非为零的逻辑单元(也称为,已更新逻辑单元)的数量(即,4)。
接着,存储器管理电路702会根据图9B中物理-逻辑映射表600中存储的信息,更新逻辑单元LBA(0)以及逻辑单元LBA(1)与物理抹除单元410(0)~410(5)之间的映射关系。具体来说,由于物理-逻辑映射表600中存储了关于逻辑单元LBA(0)的第1个逻辑页面(即,信息“LBA(0)-1”)的更新数据UD1被存储至物理抹除单元410(4)的第0个物理程序化单元(即,信息“410(4)-0”)的更新信息以及关于逻辑单元LBA(1)的第1个逻辑页面(即,信息“LBA(1)-1”) 的更新数据UD6被存储至物理抹除单元410(5)的第2个物理程序化单元(即,信息“410(5)-2”) 的更新信息,存储器管理电路702会分别更新逻辑单元LBA(0)的逻辑-物理映射表以及逻辑单元LBA(1)的逻辑-物理映射表,以将逻辑单元LBA(0)的第1个逻辑页面映射至物理抹除单元 410(4)的第0个物理程序化单元以及将逻辑单元LBA(1)的第1个逻辑页面映射至物理抹除单元410(5)的第2个物理程序化单元,如图11A所示。
在经过前述映射信息的更新后,逻辑单元LBA(0)的第1个逻辑页面原先所映射的物理抹除单元410(0)的第1个物理程序化单元中的初始数据ID2会被识别为无效数据,而逻辑单元 LBA(1)的第1个逻辑页面原先所映射的物理抹除单元410(1)的第1个物理程序化单元中的初始数据ID5会被识别为无效数据。
接着,存储器管理电路702会将更新后的逻辑单元LBA(0)以及逻辑单元LBA(1)的逻辑- 物理映射表回存至可复写式非易失性存储器模块406中。而需注意的是,本范例实施例并非用于限定将第一逻辑-物理映射表回存至可复写式非易失性存储器模块406中的时机。
此外,存储器管理电路702还会将图9B中的物理-逻辑映射表600修改为如图11B中的物理-逻辑映射表600。更详细来说,存储器管理电路702还会清除物理-逻辑映射表600中关于逻辑单元LBA(0)的第1个逻辑页面(即,信息“LBA(0)-1”)的更新数据UD1被存储至物理抹除单元410(4)的第0个物理程序化单元(即,信息“410(4)-0”)的更新信息以及关于逻辑单元LBA(1)的第1个逻辑页面(即,信息“LBA(1)-1”)的更新数据UD6被存储至物理抹除单元410(5)的第2个物理程序化单元(即,信息“410(5)-2”)的更新信息。特别是,在本实施例中,存储器管理电路702还会保留物理-逻辑映射表600中关于逻辑单元LBA(2)的第1个逻辑页面 (即,信息“LBA(2)-1”)的更新数据UD2被存储至物理抹除单元410(4)的第1个物理程序化单元(即,信息“410(4)-1”)的更新信息、关于逻辑单元LBA(2)的第2个逻辑页面(即,信息“LBA(2)-2”)的更新数据UD3被存储至物理抹除单元410(4)的第2个物理程序化单元(即,信息“410(4)-2”)的更新信息、关于逻辑单元LBA(3)的第1个逻辑页面(即,信息“LBA(3)-1”)的更新数据UD4被存储至物理抹除单元410(5)的第0个物理程序化单元(即,信息“410(5)-0”) 的更新信息以及关于逻辑单元LBA(3)的第2个逻辑页面(即,信息“LBA(3)-2”)的更新数据 UD5被存储至物理抹除单元410(5)的第1个物理程序化单元(即,信息“410(5)-1”)的更新信息。
此外,存储器管理电路702还会将图9C中的更新数据计数表700修改为如图11C中的更新数据计数表700。更详细来说,由于逻辑单元LBA(0)与逻辑单元LBA(1)已没有映射信息需要再被更新,故逻辑单元LBA(0)与逻辑单元LBA(1)的更新数据计数皆会被设为零。
在此需说明的是,在前述范例中,存储器管理电路702是选择更新数据计数小于第二门槛值的逻辑单元LBA(0)与逻辑单元LBA(1)并载入对应于逻辑单元LBA(0)与逻辑单元LBA(1) 的逻辑-物理映射表以进行映射信息的更新。换句话说,若一逻辑单元的更新数据计数非小于第二门槛値,代表后续的写入操作有较高的机率是继续写入更新数据计数非小于第二门槛値的逻辑单元的数据。在载入更新数据计数小于第二门槛值的逻辑单元的逻辑-物理映射表以进行映射信息的更新后,可以清除物理-逻辑映射表中前述更新数据计数小于第二门槛值的逻辑单元的映射信息,藉此空出较多的空间来存储更新数据计数非小于第二门槛値的逻辑单元的映射信息。
此外,应说明的是,在上述第一实施例中,主机系统所欲执行的写入操作是将数据写入至随机的一或多个逻辑单元;在上述第二实施例中,主机系统所欲执行的写入操作是将数据写入至逻辑地址于固定范围内的一或多个逻辑单元。
[第三实施例]
在本发明的第三实施例中,存储器管理电路702例如可以事先设定一个门槛値(也称为,第三门槛值)。更详细来说,存储器管理电路702会根据更新数据计数表的多个更新数据计数进行排序,并根据排序后的更新数据计数决定出前述的第三门槛値以使得前述所述多个更新数据计数中大于第三门槛値的更新数据计数(也称为,第二更新数据计数)的数量等于前述多个更新数据计数中非大于第三门槛値的更新数据计数(也称为,第三更新数据计数)的数量。换句话说,第三门槛値可以用于将更新数据计数表中所记载的逻辑单元区分为数量相同的两类,一类更新数据计数大于第三门槛値的逻辑单元,另一类为更新数据计数非大于第三门槛値的逻辑单元。
更详细来说,延续图9A、图9B与图9C的范例,存储器管理电路702会对图9C中更新数据计数表700的多个更新数据计数进行排序,并根据排序后的更新数据计数决定出前述的第三门槛値(例如,1)以使得更新数据计数表700中大于第三门槛値的更新数据计数的数量(即, 2个)等于更新数据计数表700中非大于第三门槛値的更新数据计数的数量(即,2个)。通过第三门槛値,存储器管理电路702可以将图9C中的逻辑单元LBA(0)~LBA(3)区分为数量相同的两类,一类为更新数据计数大于第三门槛値的逻辑单元LBA(2)与逻辑单元LBA(3),另一类为更新数据计数非大于第三门槛値的逻辑单元LBA(0)与逻辑单元LBA(1)。
之后,存储器管理电路702可以将逻辑单元LBA(2)与逻辑单元LBA(3)(统称为,第二已更新逻辑单元)识别为如第一实施例中所述的第一已更新逻辑单元,并执行如第一实施例的映射表更新方法。然而在另一实施例中,存储器管理电路702可以将逻辑单元LBA(0)与逻辑单元LBA(1)(统称为,第三已更新逻辑单元)识别为如第二实施例中所述的第一已更新逻辑单元,并执行如第二实施例的映射表更新方法。而映射表更新的方式已详述如前述的第一实施例与第二实施例,故在此不再赘述。
在此需说明的是,在前述范例中,存储器管理电路702是根据第三门槛値将更新数据计数表中所记载的逻辑单元区分为数量相同的两类,一类为更新数据计数大于第三门槛値的逻辑单元,另一类为更新数据计数非大于第三门槛値的逻辑单元。之后,存储器管理电路702 可以选择其中一类中的逻辑单元并载入该类的逻辑单元的逻辑-物理映射表以进行更新。换句话说,当更新数据计数表700中各个逻辑单元的更新数据计数皆相当接近时或平均时,可以直接地执行第三实施例的映射表更新方法以清除物理-逻辑映射表中所记录的一半的映射信息,并空出物理-逻辑映射表中一半的空间。
应注意的是,在前述范例中,第三门槛値可以用于将更新数据计数表中所记载的逻辑单元区分为数量相同的两类,一类更新数据计数大于第三门槛値的逻辑单元,另一类为更新数据计数非大于第三门槛値的逻辑单元,但本发明不限于此。例如,在另一实施例中,存储器管理电路702可根据第三门槛値将更新数据计数表中所记载的逻辑单元区分为数量不相同的两类,一类为更新数据计数大于第三门槛値的逻辑单元,另一类为更新数据计数非大于第三门槛値的逻辑单元。大于第三门槛値的逻辑单元的总数量与更新数据计数非大于第三门槛値的逻辑单元的总数量之间的比例关系可近似或等同于一预定比值。换句话说,存储器管理电路702可选择其中一类的多个逻辑单元,以直接地执行第三实施例的映射表更新方法以清除物理-逻辑映射表中所记录的对应所选择的其中一类的所述多个逻辑单元,并空出物理-逻辑映射表中部份的空间。
图12是根据本发明的一实施例所示出的映射表更新方法的流程图。
请参照图12,在步骤S1201中,存储器管理电路702建立物理-逻辑映射表600。物理- 逻辑映射表600记录多个物理抹除单元之中的作动物理抹除单元与多个逻辑单元之中的多个已更新逻辑单元之间的映射信息。在步骤S1203中,存储器管理电路702根据物理-逻辑映射表600,分别计算前述多个已更新逻辑单元在作动物理抹除单元中的多个更新数据计数。在步骤S1205中,存储器管理电路702根据前述的更新数据计数,从多个已更新逻辑单元中选择第一已更新逻辑单元。其中第一已更新逻辑单元的数量小于前述多个已更新逻辑单元的数量。接着,在步骤S1207中,存储器管理电路702从多个逻辑-物理映射表中载入对应于第一已更新逻辑单元的第一逻辑-物理映射表。在步骤S1209中,存储器管理电路702根据物理-逻辑映射表600中第一已更新逻辑单元的映射信息更新第一逻辑-物理映射表中的映射信息。最后在步骤S1211中,存储器管理电路702将已更新的第一逻辑-物理映射表回存至可复写式非易失性存储器模块。
图13是根据本发明的另一实施例所示出的映射表更新方法的流程图。
请参照图13,在步骤S1301中,存储器管理电路702建立物理-逻辑映射表600。物理- 逻辑映射表600记录多个物理抹除单元之中的作动物理抹除单元与多个逻辑单元之中的多个已更新逻辑单元之间的映射信息。在步骤S1303中,存储器管理电路702根据物理-逻辑映射表600,分别计算前述多个已更新逻辑单元在作动物理抹除单元中的多个更新数据计数。在步骤S1305中,存储器管理电路702根据前述的更新数据计数,从多个已更新逻辑单元中选择第一已更新逻辑单元。其中第一已更新逻辑单元的数量小于前述多个已更新逻辑单元的数量且多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数大于第一门槛值。接着,在步骤S1307中,存储器管理电路702从多个逻辑-物理映射表中载入对应于第一已更新逻辑单元的第一逻辑-物理映射表。在步骤S1309中,存储器管理电路702根据物理-逻辑映射表 600中第一已更新逻辑单元的映射信息更新第一逻辑-物理映射表中的映射信息。在步骤S1311 中,存储器管理电路702清除物理-逻辑映射表600中第一已更新逻辑单元的映射信息。在步骤S1313中,存储器管理电路702保留物理-逻辑映射表600中第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息。最后在步骤S1315中,存储器管理电路702将已更新的第一逻辑-物理映射表回存至可复写式非易失性存储器模块。
综上所述,本发明的映射表更新方法、存储器控制电路单元与存储器存储装置,可以仅根据物理-逻辑映射表中一部分的映射信息来载入对应的逻辑-物理映射表来执行映射信息的更新,并且保留物理-逻辑映射表中其他剩余部分的映射信息。藉此,可以提升逻辑-物理映射表在更新时的效率。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (19)
1.一种映射表更新方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息,所述映射表更新方法包括:
建立物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;
根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;
根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量;
从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的第一逻辑-物理映射表;以及
根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
2.根据权利要求1所述的映射表更新方法,还包括:
清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息;
保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息;以及
将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
3.根据权利要求1所述的映射表更新方法,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数大于第一门槛值。
4.根据权利要求1所述的映射表更新方法,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数小于第二门槛值。
5.根据权利要求1所述的映射表更新方法,其中从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的步骤包括:
对所述多个更新数据计数排序;
根据排序后的所述多个更新数据计数决定第三门槛値;以及
根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数,
其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
6.根据权利要求5所述的映射表更新方法,其中从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的步骤还包括:
将所述多个已更新逻辑单元中对应于所述第二更新数据计数的至少一第二已更新逻辑单元识别为所述第一已更新逻辑单元,或将所述多个已更新逻辑单元中对应于所述第三更新数据计数的至少一第三已更新逻辑单元识别为所述第一已更新逻辑单元。
7.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息;
存储器管理电路,电性连接至所述主机接口以及所述存储器接口,
其中所述存储器管理电路用以建立物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息,
其中所述存储器管理电路还用以根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数,
其中所述存储器管理电路还用以根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量,
其中所述存储器管理电路还用以从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表,
其中所述存储器管理电路还用以根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
8.根据权利要求7所述的存储器控制电路单元,其中
所述存储器管理电路还用以清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息,保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息,并将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
9.根据权利要求7所述的存储器控制电路单元,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数大于第一门槛值。
10.根据权利要求7所述的存储器控制电路单元,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数小于第二门槛值。
11.根据权利要求7所述的存储器控制电路单元,其中在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,
所述存储器管理电路还用以对所述多个更新数据计数排序,根据排序后的所述多个更新数据计数决定第三门槛値,并根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数,
其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
12.根据权利要求11所述的存储器控制电路单元,其中在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,
所述存储器管理电路还用以将所述多个已更新逻辑单元中对应于所述第二更新数据计数的至少一第二已更新逻辑单元识别为所述第一已更新逻辑单元,或将所述多个已更新逻辑单元中对应于所述第三更新数据计数的至少一第三已更新逻辑单元识别为所述第一已更新逻辑单元。
13.一种存储器存储装置,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以建立物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息,
其中所述存储器控制电路单元还用以根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数,
其中所述存储器控制电路单元还用以根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量,
其中所述存储器控制电路单元还用以从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表,
其中所述存储器控制电路单元还用以根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息。
14.根据权利要求13所述的存储器存储装置,其中
所述存储器控制电路单元还用以清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息,保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息,并将已更新的所述第一逻辑-物理映射表回存至所述可复写式非易失性存储器模块。
15.根据权利要求13所述的存储器存储装置,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数大于第一门槛值。
16.根据权利要求13所述的存储器存储装置,其中所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数小于第二门槛值。
17.根据权利要求13所述的存储器存储装置,其中在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,
所述存储器控制电路单元还用以对所述多个更新数据计数排序,并根据排序后的所述多个更新数据计数决定第三门槛値。
18.根据权利要求17所述的存储器存储装置,其中在从所述多个已更新逻辑单元中选择所述第一已更新逻辑单元的运作中,
所述存储器控制电路单元还用以对所述多个更新数据计数排序,根据排序后的所述多个更新数据计数决定第三门槛値,并根据所述第三门槛値将所述多个更新数据计数区分为至少一第二更新数据计数以及至少一第三更新数据计数,
其中所述第二更新数据计数大于所述第三门槛値且所述第三更新数据计数非大于所述第三门槛値。
19.一种映射表更新方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理抹除单元,多个逻辑-物理映射表被存储在所述可复写式非易失性存储器模块中以记录多个逻辑单元与所述多个物理抹除单元之间的映射信息,所述映射表更新方法包括:
建立物理-逻辑映射表,其中所述物理-逻辑映射表记录所述多个物理抹除单元之中的至少一作动物理抹除单元与所述多个逻辑单元之中的多个已更新逻辑单元之间的映射信息;
根据所述物理-逻辑映射表,分别计算所述多个已更新逻辑单元在所述作动物理抹除单元中的多个更新数据计数;
根据所述多个更新数据计数,从所述多个已更新逻辑单元中选择至少一第一已更新逻辑单元,其中所述第一已更新逻辑单元的数量小于所述多个已更新逻辑单元的数量且所述多个更新数据计数中所述第一已更新逻辑单元的第一更新数据计数大于第一门槛值;
从所述多个逻辑-物理映射表中载入对应于所述第一已更新逻辑单元的至少一第一逻辑-物理映射表;
根据所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息更新所述第一逻辑-物理映射表中的映射信息;
清除所述物理-逻辑映射表中所述第一已更新逻辑单元的映射信息;以及
保留所述物理-逻辑映射表中所述第一已更新逻辑单元以外的其他已更新逻辑单元的映射信息。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811389248.6A CN111208932B (zh) | 2018-11-21 | 2018-11-21 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201811389248.6A CN111208932B (zh) | 2018-11-21 | 2018-11-21 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111208932A CN111208932A (zh) | 2020-05-29 |
| CN111208932B true CN111208932B (zh) | 2023-03-24 |
Family
ID=70789204
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201811389248.6A Active CN111208932B (zh) | 2018-11-21 | 2018-11-21 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111208932B (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112799601B (zh) * | 2021-02-24 | 2023-06-13 | 群联电子股份有限公司 | 有效数据合并方法、存储器存储装置及控制电路单元 |
| CN117130692B (zh) * | 2023-10-23 | 2024-01-23 | 成都赛力斯科技有限公司 | 应用管理方法、装置、电子设备及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102650972A (zh) * | 2012-04-06 | 2012-08-29 | 国民技术股份有限公司 | 数据存储方法、装置及系统 |
| CN106469122A (zh) * | 2015-08-14 | 2017-03-01 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器储存装置 |
| CN106990921A (zh) * | 2017-03-24 | 2017-07-28 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106681654B (zh) * | 2016-09-29 | 2019-08-27 | 合肥兆芯电子有限公司 | 映射表载入方法与存储器存储装置 |
-
2018
- 2018-11-21 CN CN201811389248.6A patent/CN111208932B/zh active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102650972A (zh) * | 2012-04-06 | 2012-08-29 | 国民技术股份有限公司 | 数据存储方法、装置及系统 |
| CN106469122A (zh) * | 2015-08-14 | 2017-03-01 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器储存装置 |
| CN106990921A (zh) * | 2017-03-24 | 2017-07-28 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111208932A (zh) | 2020-05-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI693516B (zh) | 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
| TWI517165B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
| TWI668699B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
| CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
| CN113140253A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
| CN106959818B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
| CN111208932B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
| CN113504880B (zh) | 存储器缓冲区管理方法、存储器控制电路单元与存储装置 | |
| CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
| CN112860193B (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
| CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
| CN105335096B (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
| CN109032957B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN111240602A (zh) | 闪存的数据整理方法、控制电路单元与存储装置 | |
| CN107122308A (zh) | 平均磨损方法、内存控制电路单元及内存储存装置 | |
| CN106920572A (zh) | 内存管理方法、内存控制电路单元及内存储存装置 | |
| CN106201932A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
| CN116149571A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
| TWI688958B (zh) | 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置 | |
| CN112445416B (zh) | 冷区域判断方法、存储器控制电路单元与存储器存储装置 | |
| CN111858389B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
| CN105573662A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |