CN112860193A - 整理指令处理方法、存储器控制电路单元与存储装置 - Google Patents
整理指令处理方法、存储器控制电路单元与存储装置 Download PDFInfo
- Publication number
- CN112860193A CN112860193A CN202110275942.0A CN202110275942A CN112860193A CN 112860193 A CN112860193 A CN 112860193A CN 202110275942 A CN202110275942 A CN 202110275942A CN 112860193 A CN112860193 A CN 112860193A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- unit
- instruction
- entity
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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
-
- 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)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本计算机。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
快闪存储器模块具有多个实体抹除单元且每一实体抹除单元具有多个实体程序化单元,其中在实体抹除单元中写入数据时必须依据实体程序化单元的顺序写入数据。此外,已被写入数据的实体程序化单元并需先被抹除后才能再次用于写入数据。特别是,实体抹除单元为抹除的最小单位,并且实体程序化单元为程序化(亦称写入)的最小单元。因此,在快闪存储器模块的管理中,实体抹除单元会被区分为数据区与闲置区。
数据区的实体抹除单元是用以存储主机系统所存储的数据。具体来说,存储器存储装置中的存储器控制电路单元会将主机系统所存取的逻辑地址转换为逻辑区块的逻辑地址并且将逻辑区块的逻辑地址映射至数据区的实体抹除单元的实体程序化单元。也就是说,快闪存储器模块的管理上数据区的实体抹除单元是被视为已被使用的实体抹除单元(例如,已存储主机系统所写入的数据)。例如,存储器控制电路单元会使用逻辑至实体映射表来记载逻辑区块与数据区的实体抹除单元的映射关系,其中逻辑区块中的逻辑地址是对应所映射的实体抹除单元的实体程序化单元。
闲置区的实体抹除单元是用以轮替数据区中的实体抹除单元。具体来说,如上所述,已写入数据的实体抹除单元必须被抹除后才可再次用于写入数据,因此,闲置区的实体抹除单元是被设计用于写入数据以替换映射逻辑区块的实体抹除单元。基此,在闲置区中的实体抹除单元为空或可使用的实体抹除单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区与闲置区的实体抹除单元的实体程序化单元是以轮替方式来映射逻辑区块的逻辑地址,以存储主机系统所写入的数据。
在目前的快闪存储器存储技术中,当主机系统删除逻辑地址上的数据时,其会下达整理指令以通知存储器控制电路单元哪些逻辑地址上的数据已被删除,由此在执行垃圾搜集(garbage collection)操作(亦称为有效数据合并操作)时,存储器控制电路单元可避免搬移已被删除的数据,而提升快闪存储装置的效能且延长快闪存储器的寿命。然而,执行对应整理指令的操作可能会增加快闪存储器磨损,因此,如何有效地处理整理指令,是此领域技术人所致力的目标。
发明内容
本发明提供一种整理指令处理方法、存储器控制电路单元与存储器存储装置,可减少可复写式非易失性存储器模块的损耗并延长可复写式非易失性存储器模块的寿命。
本发明一范例实施例提出一种整理指令处理方法,用于可复写式非易失性存储器模块。其中所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址。所述方法包括:从主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的;根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量;以及根据所述第一数据量判断执行第一整理操作或第二整理操作,其中执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表,其中执行所述第二整理操作时,根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
在本发明的一范例实施例中,上述根据所述第一数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:判断所述第一数据量是否小于预设门槛值;以及若判断所述第一数据量不小于所述预设门槛值,则执行所述第一整理操作,若判断所述第一数据量小于所述预设门槛值,则执行所述第二整理操作。
在本发明的一范例实施例中,上述根据所述第一数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:取得所述至少一逻辑地址对应的所述逻辑至实体映射表;计算所述逻辑至实体映射表的第二数据量;以及根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
在本发明的一范例实施例中,上述根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:判断所述第一数据量是否小于所述第二数据量;以及若判断所述第一数据量不小于所述第二数据量,则执行所述第一整理操作,若判断所述第一数据量小于所述第二数据量,则执行所述第二整理操作。
在本发明的一范例实施例中,上述执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的所述逻辑至实体映射表的步骤包括:在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
在本发明的一范例实施例中,上述执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的所述逻辑至实体映射表的步骤还包括:更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
在本发明的一范例实施例中,上述执行所述第二整理操作时,根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的所述第一数据以产生所述第二数据的步骤包括:根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元;读取所述第一实体程序化单元中所存储的所述第一数据;以及将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
本发明一范例实施例提出一种存储器控制电路单元,用于控制包括多个实体抹除单元的可复写式非易失性存储器模块。其中所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址。所述存储器控制电路单元包括主机接口、存储器接口以及存储器管理电路。所述主机接口用以耦接至主机系统。所述存储器接口用以耦接至所述可复写式非易失性存储器模块。所述存储器管理电路耦接至所述主机接口与所述存储器接口。所述存储器管理电路用以从所述主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的。所述存储器管理电路还用以根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量。并且,所述存储器管理电路还用以根据所述第一数据量判断执行第一整理操作或第二整理操作。其中执行所述第一整理操作时,所述存储器管理电路还用以根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表。其中执行所述第二整理操作时,所述存储器管理电路还用以根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
在本发明的一范例实施例中,上述存储器管理电路还用以判断所述第一数据量是否小于预设门槛值。并且,若判断所述第一数据量不小于所述预设门槛值,则所述存储器管理电路还用以执行所述第一整理操作。若判断所述第一数据量小于所述预设门槛值,则所述存储器管理电路还用以执行所述第二整理操作。
在本发明的一范例实施例中,上述存储器管理电路还用以取得所述至少一逻辑地址对应的所述逻辑至实体映射表。所述存储器管理电路还用以计算所述逻辑至实体映射表的第二数据量。并且,所述存储器管理电路还用以根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
在本发明的一范例实施例中,上述存储器管理电路还用以判断所述第一数据量是否小于所述第二数据量。若判断所述第一数据量不小于所述第二数据量,则所述存储器管理电路还用以执行所述第一整理操作。若判断所述第一数据量小于所述第二数据量,则所述存储器管理电路还用以执行所述第二整理操作。
在本发明的一范例实施例中,上述执行所述第一整理操作时,所述存储器管理电路还用以在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
在本发明的一范例实施例中,上述执行所述第一整理操作时,所述存储器管理电路还用以更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
在本发明的一范例实施例中,上述执行所述第二整理操作时,所述存储器管理电路还用以根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元。所述存储器管理电路还用以读取所述第一实体程序化单元中所存储的所述第一数据。并且,所述存储器管理电路还用以将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
本发明一范例实施例提出一种存储器存储装置,包括连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。所述连接接口单元用以耦接至主机系统。所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址。所述存储器控制电路单元耦接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以从所述主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的。所述存储器控制电路单元还用以根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量。并且,所述存储器控制电路单元还用以根据所述第一数据量判断执行第一整理操作或第二整理操作。其中执行所述第一整理操作时,所述存储器控制电路单元还用以根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表。其中执行所述第二整理操作时,所述存储器控制电路单元还用以根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
在本发明的一范例实施例中,上述存储器控制电路单元还用以判断所述第一数据量是否小于预设门槛值。并且,若判断所述第一数据量不小于所述预设门槛值,则所述存储器控制电路单元还用以执行所述第一整理操作。若判断所述第一数据量小于所述预设门槛值,则所述存储器控制电路单元还用以执行所述第二整理操作。
在本发明的一范例实施例中,上述存储器控制电路单元还用以取得所述至少一逻辑地址对应的所述逻辑至实体映射表。所述存储器控制电路单元还用以计算所述逻辑至实体映射表的第二数据量。并且,所述存储器控制电路单元还用以根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
在本发明的一范例实施例中,上述存储器控制电路单元还用以判断所述第一数据量是否小于所述第二数据量。若判断所述第一数据量不小于所述第二数据量,则所述存储器控制电路单元还用以执行所述第一整理操作。若判断所述第一数据量小于所述第二数据量,则所述存储器控制电路单元还用以执行所述第二整理操作。
在本发明的一范例实施例中,上述执行所述第一整理操作时,所述存储器控制电路单元还用以在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
在本发明的一范例实施例中,上述执行所述第一整理操作时,所述存储器控制电路单元还用以更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
在本发明的一范例实施例中,上述执行所述第二整理操作时,所述存储器控制电路单元还用以根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元。所述存储器控制电路单元还用以读取所述第一实体程序化单元中所存储的所述第一数据。并且,所述存储器控制电路单元还用以将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
基于上述,本发明的范例实施例所提供的整理指令处理方法、存储器控制电路单元与存储器存储装置,可根据整理指令所指示的逻辑地址所存储数据的数据量决定执行哪一种整理操作来因应整理指令,进而减少可复写式非易失性存储器模块的损耗。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图2是根据另一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图;
图3是根据另一范例实施例所示出的主机系统与存储器存储装置的示意图;
图4是根据一范例实施例所示出的主机系统与存储器存储装置的概要方块图;
图5A与图5B是根据一范例实施例所示出的存储单元存储架构与实体抹除单元的范例示意图;
图6是根据一范例实施例所示出的存储器控制电路单元的概要方块图;
图7与图8是根据一范例实施例所示出的管理实体抹除单元的范例示意图;
图9至图17是根据一范例实施例所示出的写入数据的范例;
图18是根据一范例实施例所示出的整理表的示意图;
图19是根据一范例实施例所示出执行整理操作前后的逻辑至实体映射表的示意图;
图20是根据一范例实施例所示出执行整理操作前后的有效数据计数表的示意图;
图21是根据一范例实施例所示出执行整理操作前后的写入数据的示意图;
图22是根据一范例实施例所示出的整理指令处理方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路单元)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图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 Storage,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包括嵌入式多媒体卡(embeddedMMC,eMMC)341和/或嵌入式多芯片封装存储装置(embedded Multi Chip Package,eMCP)342等各类型将存储器模块直接耦接于主机系统的基板上的嵌入式存储装置。
图4是根据一范例实施例所示出的主机系统与存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
在本范例实施例中,连接接口单元402是相容于串行高级附件(Serial AdvancedTechnology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符并行高级附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCIExpress)标准、通用串行总线(Universal Serial Bus,USB)标准、超高速一代(Ultra HighSpeed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、安全数位(Secure Digital,SD)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、嵌入式多芯片封装(embedded Multi ChipPackage,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是耦接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有多个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含8个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一范例实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面(physical page)或实体扇区,但本发明不以此为限。
在本范例实施例中,可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个数据比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个数据比特的快闪存储器模块)、三阶存储单元(TripleLevel Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个数据比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
图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个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元亦是依据此方式被区分为多个实体程序化单元组。也就是说,在图5B的范例实施例中,实体抹除单元总共有258个实体程序化单元,且由于排列在同一条字线上的数个存储单元所组成的下实体程序化单元、中实体程序化单元与上实体程序化单元会组成一个实体程序化单元组,故图5B的实体抹除单元总共可以分成86个实体程序化单元组。然而需注意的是,本发明并不用于限定实体抹除单元中的实体程序化单元或实体程序化单元组的个数。
图6是根据一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图6,存储器控制电路单元404包括存储器管理电路502、主机接口504、存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
图7与图8是根据一范例实施例所示出的管理实体抹除单元的范例示意图。
必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。
请参照图7,存储器管理电路502会将实体抹除单元410(0)~410(N)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。
逻辑上属于数据区602与闲置区604的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路502会使用从闲置区604中提取实体抹除单元来写入数据,以替换数据区602的实体抹除单元。
逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,存储器管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。
特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。
请参照图8,存储器管理电路502会配置逻辑区块地址LBA(0)~LBA(H)以映射数据区602的实体抹除单元,其中每一逻辑区块地址具有多个逻辑地址以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑地址或更新存储于逻辑地址中的数据时,存储器管理电路502会从闲置区604中提取一个实体抹除单元作为作动实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。并且,当此作为作动实体抹除单元的实体抹除单元被写满时,存储器管理电路502会再从闲置区604中提取空的实体抹除单元作为作动实体抹除单元,以继续写入对应来自于主机系统11的写入指令的更新数据。此外,当闲置区604中可用的实体抹除单元的数目小于预设值时,存储器管理电路502会执行垃圾搜集(garbage collection)操作(亦称为,有效数据合并操作)来整理数据区602中的有效数据,以将数据区602中无存储有效数据的实体抹除单元重新关联至闲置区604。
为了识别每个逻辑地址的数据被存储在哪个实体程序化单元,在本范例实施例中,存储器管理电路502会记录逻辑地址与实体程序化单元之间的映射关系。例如,在本范例实施例中,存储器管理电路502会在可复写式非易失性存储器模块406中存储逻辑至实体映射表来记录每一逻辑地址所映射的实体程序化单元。当欲存取数据时存储器管理电路502会将逻辑至实体映射表载入至缓冲存储器508来维护,并且依据逻辑至实体映射表来写入或读取数据。
值得一提的是,由于缓冲存储器508的容量有限无法存储记录所有逻辑地址的映射关系的映射表,因此,在本范例实施例中,存储器管理电路502会将逻辑区块地址LBA(0)~LBA(H)分组为多个逻辑区域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑至实体映射表。特别是,当存储器管理电路502欲更新某个逻辑区块地址的映射时,对应此逻辑区块地址所属的逻辑区域的逻辑至实体映射表会被载入至缓冲存储器508来被更新。具体来说,若对应此逻辑区块地址所属的逻辑区域的逻辑至实体映射表未被暂存在缓冲存储器508中(即,缓冲存储器508中所暂存的逻辑至实体映射表未记录欲更新的逻辑区块地址的映射时,存储器管理电路502会执行映射表交换操作(mapping table swapping operation)以将目前暂存在缓冲存储器508中逻辑至实体映射表回存至可复写式非易失性存储器模块406,并且将记录有欲更新的逻辑区块地址所映射的逻辑至实体映射表载入至缓冲存储器508中。
在本发明另一范例实施例中,存储器管理电路502的控制指令亦可以代码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在本发明另一范例实施例中,存储器管理电路502的控制指令亦可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。其中,存储单元管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。
请再参照图6,主机接口504是耦接至存储器管理电路502并且用以耦接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是耦接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。
缓冲存储器508是耦接至存储器管理电路502并且用以暂存来自于主机系统11的暂存数据与指令或来自于可复写式非易失性存储器模块406的数据。
电源管理电路510是耦接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路512是耦接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。例如,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
值得一提的是,在本范例实施例中,存储器管理电路502会在不同的状态使用不同的程序化模式来将数据程序化至可复写式非易失性存储器模块406。例如,存储器管理电路502可使用单页程序化模式或多页程序化模式来将数据程序化至实体抹除单元。在此,基于单页程序化模式来程序化存储单元的程序化速度会高于基于多页程序化模式来程序化存储单元的程序化速度(即,使用多页程序化模式来程序化数据的所需操作时间大于使用单页程序化模式来程序化数据的所需操作时间),而基于单页程序化模式而被存储的数据的可靠度也往往高于基于多页程序化模式而被存储的数据的可靠度。单页程序化模式例如是单阶存储单元(single layer memory cell,SLC)程序化模式、下实体程序化(lowerphysical programming)模式、混合程序化(mixture programming)模式及少阶存储单元(less layer memory cell)程序化模式的其中之一。更详细来说,在单阶存储单元模式中,一个存储单元只存储一个比特的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应的上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至存储有效数据的下实体程序化单元所对应的上实体程序化单元中。在少阶存储单元模式中,一个存储单元存储一第一数目的比特的数据,例如,此第一数目可设为“1”。多页程序化模式例如是多阶存储单元(MLC)程序化模式、三阶(TLC)存储单元程序化模式或类似模式。在多页程序化模式中,一个存储单元存储有一第二数目的比特的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为2或3。在另一范例实施例中,上述单页程序化模式中的第一数目与多页程序化模式中的第二数目皆可以是其他数目,只要满足第二数目大于第一数目即可。换句话说,构成第一类实体抹除单元的每一个存储单元在使用单页程序化模式程序化后所存储的比特数据的数目(亦即第一数目)会小于构成第二类实体抹除单元的每一个存储单元在使用多页程序化模式程序化后所存储的比特数据的数目(亦即第二数目)。
基于上述,使用多页程序化模式程序化的存储单元所存储的数据比特数大于使用单页程序化模式程序化的存储单元所存储的数据比特数,因此,使用多页程序化模式所程序化的实体抹除单元的数据容量会大于使用单页程序化模式。例如,在本范例实施例中,当可复写式非易失性存储器模块406所存储的数据量较少时,存储器管理电路502会使用单页程序化模式来缩短程序化的所需时间(即,提升程序化速度),而当可复写式非易失性存储器模块406所存储的数据量超过预先定义值时,存储器管理电路502会改使用多页程序化模式来写入数据。
图9至图17是根据一范例实施例所示出的写入数据的范例。在此范例中,是以多页程序化模式程序化数据至实体抹除单元,即每个实体程序化单元都会被用来存储数据。
请参照图9,为方便说明,在此假设数据区602初始地未有映射逻辑区块地址的实体抹除单元(即,存储器存储装置10于开卡后尚未写入过使用者数据),闲置区604具有5个实体抹除单元,每一实体抹除单元具有3个实体程序化单元,欲写入至每一实体抹除单元的数据必须依照实体程序化单元的顺序来被写入。此外,假设存储器管理电路502会配置3个逻辑区块地址以供主机系统11存取。
请参照图10,假设欲程序化数据UD1并且数据UD1是属于逻辑区块地址LBA(0)的第1个逻辑地址时,存储器管理电路502会从闲置区604中提取实体抹除单元410(0),下达程序化指令以将此数据UD1写入至实体抹除单元410(0)的第0个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(0)的第1个逻辑地址映射至实体抹除单元410(0)的第0实体程序化单元(即,实体抹除单元410(0)会被关联至数据区602),并且在有效数据计数表中将对应实体抹除单元410(0)的有效数据计数更新为1。
请参照图11,接续图10,假设欲再程序化数据UD2并且数据UD2是属于逻辑区块地址LBA(1)的第0个逻辑地址时,存储器管理电路502会下达程序化指令以将此数据UD2写入至实体抹除单元410(0)的第1个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(1)的第0个逻辑地址映射至实体抹除单元410(0)的第1实体程序化单元,并且在有效数据计数表中将对应实体抹除单元410(0)的有效数据计数更新为2。
请参照图12,接续图11,假设欲再程序化数据UD3并且数据UD3是属于逻辑区块地址LBA(2)的第1个逻辑地址时,存储器管理电路502会下达程序化指令以将此数据UD3写入至实体抹除单元410(0)的第2个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(2)的第1个逻辑地址映射至实体抹除单元410(0)的第2实体程序化单元,并且在有效数据计数表中将对应实体抹除单元410(0)的有效数据计数更新为3。
请参照图13,接续图12,假设欲再程序化数据UD4并且数据UD4是属于逻辑区块地址LBA(0)的第0个逻辑地址时,由于实体抹除单元410(0)已无存储空间,因此,存储器管理电路502会从闲置区604中提取实体抹除单元410(1),下达程序化指令以将此数据UD4写入至实体抹除单元410(1)的第0个实体程序化单元并且将实体抹除单元410(1)关联至数据区602。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(0)的第0个逻辑地址映射至实体抹除单元410(1)的第0实体程序化单元(即,实体抹除单元410(1)会被关联至数据区602),并且在有效数据计数表中将对应实体抹除单元410(1)的有效数据计数更新为1。
请参照图14,接续图13,假设欲再程序化数据UD5并且数据UD5是属于逻辑区块地址LBA(1)的第1个逻辑地址时,存储器管理电路502会下达程序化指令以将此数据UD5写入至实体抹除单元410(1)的第1个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(1)的第1个逻辑地址映射至实体抹除单元410(1)的第1实体程序化单元,并且在有效数据计数表中将对应实体抹除单元410(1)的有效数据计数更新为2。
请参照图15,接续图14,假设欲再程序化数据UD6并且数据UD6是属于逻辑区块地址LBA(0)的第2个逻辑地址时,存储器管理电路502会下达程序化指令以将此数据UD6写入至实体抹除单元410(1)的第2个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(0)的第2个逻辑地址映射至实体抹除单元410(1)的第2实体程序化单元,并且在有效数据计数表中将对应实体抹除单元410(1)的有效数据计数更新为3。
请参照图16,接续图15,假设欲再程序化数据UD7并且数据UD7是属于逻辑区块地址LBA(2)的第0个逻辑地址时,由于实体抹除单元410(1)已无存储空间,因此,存储器管理电路502会从闲置区604中提取实体抹除单元410(2),下达程序化指令以将此数据UD7写入至实体抹除单元410(2)的第0个实体程序化单元并且将实体抹除单元410(2)关联至数据区602。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(2)的第0个逻辑地址映射至实体抹除单元410(2)的第0实体程序化单元(即,实体抹除单元410(2)会被关联至数据区602),并且在有效数据计数表中将对应实体抹除单元410(2)的有效数据计数更新为1。
请参照图17,接续图16,假设欲再程序化数据UD8并且数据UD8是属于逻辑区块地址LBA(1)的第2个逻辑地址时,存储器管理电路502会下达程序化指令以将此数据UD8写入至实体抹除单元410(2)的第1个实体程序化单元。此外,存储器管理电路502会在逻辑至实体映射表中将逻辑区块地址LBA(1)的第2个逻辑地址映射至实体抹除单元410(2)的第1实体程序化单元,并且在有效数据计数表中将对应实体抹除单元410(2)的有效数据计数更新为2。
值得一提的是,在一范例实施例中,存储器管理电路502会判断是否从主机系统11接收到整理指令(trim command)。在此,整理指令是泛指用以告知哪些逻辑地址上的数据已不再被使用或已被删除的指令。例如,整理指令亦可被参考为删除指令(deletecommand)、移除指令(remove command)或其他相同功能的指令。
在一范例实施例中,当判断接收到此整理指令时,存储器管理电路502可在整理表(trim table)中记录关于此整理指令的信息(例如,数据已被删除的逻辑地址),并且传送一确认信息给主机系统11以回应此整理指令。由此,存储器管理电路502可快速回应主机系统11已将所接收的整理指令处理完毕,以避免延迟或逾时。
然而,本发明不在此限制存储器管理电路502回应主机系统11整理指令已处理完毕前为了记录整理指令所执行的操作。在另一范例实施例中,当判断接收到此整理指令时,存储器管理电路502会先更新逻辑地址状态表,以在将整理指令告知数据已被删除的逻辑地址标记为无效(如,标记为“0”)。换句话说,反应于所接收的整理指令,存储器管理电路502会更新逻辑地址状态表,但不更新逻辑至实体映射表和/或实体地址状态表。并且,在更新完逻辑地址状态表后,存储器管理电路502会回应给主机系统11已将所接收的整理指令处理完毕。
图18是根据一范例实施例所示出的整理表的示意图。
请参照图18,假设在如图17的状态下,存储器存储装置10接收到整理指令且此整理指令告知逻辑区块地址LBA(0)的第0个逻辑地址上的数据已被删除时,存储器管理电路502会在整理表1800中记录逻辑区块地址LBA(0)的第0个逻辑地址(例如,LBA(0)-0)。特别是,在整理表1800中记录此整理指令的信息后,存储器管理电路502会传送确认信息给主机系统11,以表示此整理指令已被处理。
之后,存储器管理电路502会在适当时机,启动整理操作来执行整理表中所记录的整理指令的对应操作。
在一范例实施例中,存储器管理电路502启动整理操作(亦称为,第一整理操作)时,根据整理指令更新逻辑至实体映射表。具体来说,存储器管理电路502根据整理指令所指示的逻辑地址,在逻辑至实体映射表中将所指示的逻辑地址的映射更改为空值。再者,存储器管理电路502可更新此逻辑地址原先映射的实体程序化单元所属的实体抹除单元的有效数据计数(例如,减1),以表示此逻辑地址原先映射的实体程序化单元上已无有效数据。然而,在执行第一整理操作时,存储器管理电路502不会更新整理指令所指示的逻辑地址映射的实体程序化单元所存储的数据(亦称为,第一数据)。
图19是根据一范例实施例所示出执行整理操作前后的逻辑至实体映射表的示意图。图20是根据一范例实施例所示出执行整理操作前后的有效数据计数表的示意图。请参照图19,逻辑至实体映射表1900-1是根据图17所示出的逻辑地址与实体地址之间的映射关系,其中左栏记录的是逻辑地址的编号,右栏记录的是映射的实体程序化单元的编号。
逻辑至实体映射表1900-2是启动第一整理操作来处理整理指令后的逻辑地址与实体地址之间的映射关系。具体来说,请参图18及图19,存储器控制电路单元502可根据整理指令所指示的逻辑地址或根据整理表1800中所记录的逻辑地址,将逻辑至实体映射表1900-1中逻辑区块地址LBA(0)的第0个逻辑地址的映射更改为空值(NULL)。
请参照图20,有效数据计数表2000-1是根据图17的状态所示出的数据区602的实体抹除单元的有效数据计数,左栏记录的是实体抹除单元的编号,右栏是记录有效数据计数值。有效数据计数表2000-2是启动第一整理操作来处理整理指令后的实体抹除单元的有效数据计数。具体来说,存储器管理电路502会将实体抹除单元410(0)的有效数据计数更新为2。
在另一范例实施例中,存储器管理电路502启动整理操作(亦称为,第二整理操作)时,根据整理指令更新整理指令所指示的逻辑地址映射的实体程序化单元所存储的第一数据以产生更新后的数据(亦称为,第二数据),并将第二数据写入可复写式非易失性存储器模块406。详细来说,存储器管理电路502根据逻辑至实体映射表查找整理指令所指示的逻辑地址所映射的实体程序化单元(亦称为,第一实体程序化单元),并读取所映射的第一实体程序化单元中所存储的第一数据。在读取第一数据后,存储器管理电路502将所读取的第一数据中整理指令指示删除的数据更新为预设值(例如,全为“0”或全为“F”的比特串),以产生第二数据。接着,存储器管理电路502将第二数据写入可复写式非易失性存储器模块406。在本范例实施例中,将数据更新为预设值表示此实体程序化单元上已无有效数据。在本范例实施例中,存储器管理电路502还可更新写入第二数据的实体程序化单元所属的实体抹除单元的有效数据计数(例如,加1)。
在本范例实施例中,存储器管理电路502会在更新表记录关于此次数据更新的信息,并且在适当时机根据更新表更新待更新的逻辑至实体映射表中逻辑地址与实体地址之间的映射关系。于此,存储器管理电路502并非在每次将更新后的数据写入可复写式非易失性存储器模块406时更新逻辑地址与实体地址之间的映射关系,而是在适当时机同时更新待更新的逻辑至实体映射表中所有逻辑地址与实体地址之间的映射关系。如此一来,存储器管理电路502可收集多笔数据更新的信息并同时更新该些更新的信息对应的逻辑至实体映射表,而降低数据的写入放大(Write amplification,WA)。
图21是根据一范例实施例所示出执行整理操作前后的写入数据的示意图。请参图18及图21,存储器控制电路单元502可根据整理指令所指示的逻辑地址或根据整理表1800中所记录的逻辑地址,从逻辑至实体映射表查找整理指令所指示的逻辑区块地址LBA(0)的第0个逻辑地址所映射的实体抹除单元410(1)的第0个实体程序化单元。存储器控制电路单元502从实体抹除单元410(1)的第0个实体程序化单元读取数据UD4,并将数据UD4中整理指令指示删除的数据更新为预设值,以产生更新后的数据UD4’。接着,存储器控制电路单元502将更新后的数据UD4’写入至实体抹除单元410(2)的第2个实体程序化单元。之后,存储器管理电路502可在适当时机在逻辑至实体映射表中将逻辑区块地址LBA(0)的第0个逻辑地址映射至实体抹除单元410(2)的第2实体程序化单元。
在一范例实施例中,存储器管理电路502从主机系统11接收整理指令。其中,该整理指令用以指示至少一逻辑地址所存储的数据是可被抹除的。在接收整理指令后,存储器管理电路502根据整理指令,计算进行数据整理操作所需程序化的数据的数据量(亦称为,第一数据量)。例如,第一数据量是存储器管理电路502根据整理指令指示的逻辑地址计算逻辑地址所存储的数据的数据量,和/或者是存储器管理电路502根据整理指令计算所需修改的逻辑至实体映射表映射的数据的数据量。接着,存储器管理电路502依据第一数据量判断执行第一整理操作或第二整理操作。
在一范例实施例中,存储器管理电路502判断第一数据量是否小于预设门槛值。若存储器管理电路502判断第一数据量不小于预设门槛值,则执行第一整理操作。若存储器管理电路502判断第一数据量小于预设门槛值,则执行第二整理操作。例如,预设门槛值可设定为128k字节,但本发明不限于此,厂商可自行设定合适的预设门槛值来判断执行的操作。
在一范例实施例中,存储器管理电路502取得对应至整理指令所指示的逻辑地址的逻辑至实体映射表,并计算此些逻辑至实体映射表的数据量(亦称为,第二数据量)。于此,逻辑至实体映射表的数据量指的是逻辑至实体映射表的档案本身的数据量。存储器管理电路502根据第一数据量及第二数据量判断执行第一整理操作或第二整理操作。详细来说,存储器管理电路502会判断第一数据量是否小于第二数据量。倘若存储器管理电路502判断第一数据量不小于第二数据量,则执行第一整理操作。倘若存储器管理电路502判断第一数据量小于第二数据量,则执行第二整理操作。
图22是根据一范例实施例所示出的整理指令处理方法的流程图。请参照图22,在步骤S2202中,从主机系统接收整理指令,其中整理指令用以指示多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的。在步骤S2204中,根据整理指令,计算进行数据整理操作所需程序化的数据的第一数据量。在步骤S2206中,根据第一数据量判断执行第一整理操作或第二整理操作。
然而,图22中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图22中各步骤可以实作为多个代码或是电路,本发明不加以限制。此外,图22的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
如上所述,根据本范例实施例所提供的整理指令处理方法,可根据整理指令所指示的逻辑地址所存储数据的数据量决定执行哪一种整理操作。特别是,本范例实施例所提供的整理指令处理方法还利用整理指令所指示的逻辑地址所存储数据的数据量与逻辑地址对应的逻辑至实体映射表的数据量来判断更新逻辑至实体映射表的方式(第一整理操作)与写入数据的方式(第二整理操作)两种整理操作的中哪种整理操作影响写入放大较大。如此一来,在因应整理指令时,存储器管理电路502便可采用较不影响写入放大的整理操作,进而减少可复写式非易失性存储器模块406的损耗。
值得一提的是,当存储器管理电路502进行垃圾搜集操作时,可根据所更新/记录的关于存储有无效数据的逻辑地址与实体地址的信息来执行垃圾搜集操作,以增进垃圾搜集的效率。此外,当经过数据更新或上述整理操作,使得某个实体抹除单元的有效数据计数为0时,此实体抹除单元就可重新被关联至闲置区604以再使用来程序化数据。至于,关于一般垃圾搜集操作中的有效数据的收集以及无效数据的抹除,为本领域技术人员所熟知的技术手段,于此不再赘述。
综上所述,本发明的范例实施例所提供的整理指令处理方法、存储器控制电路单元与存储器存储装置,可根据整理指令所指示的逻辑地址所存储数据的数据量决定执行哪一种整理操作来因应整理指令,进而减少可复写式非易失性存储器模块的损耗。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种整理指令处理方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址,所述方法包括:
从主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的;
根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量;以及
根据所述第一数据量判断执行第一整理操作或第二整理操作,其中执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表,
其中执行所述第二整理操作时,根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
2.根据权利要求1所述的整理指令处理方法,其中根据所述第一数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:
判断所述第一数据量是否小于预设门槛值;以及
若判断所述第一数据量不小于所述预设门槛值,则执行所述第一整理操作,
若判断所述第一数据量小于所述预设门槛值,则执行所述第二整理操作。
3.根据权利要求1所述的整理指令处理方法,其中根据所述第一数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:
取得所述至少一逻辑地址对应的所述逻辑至实体映射表;
计算所述逻辑至实体映射表的第二数据量;以及
根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
4.根据权利要求3所述的整理指令处理方法,其中根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作的步骤包括:
判断所述第一数据量是否小于所述第二数据量;以及
若判断所述第一数据量不小于所述第二数据量,则执行所述第一整理操作,
若判断所述第一数据量小于所述第二数据量,则执行所述第二整理操作。
5.根据权利要求1所述的整理指令处理方法,其中执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的所述逻辑至实体映射表的步骤包括:
在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
6.根据权利要求5所述的整理指令处理方法,其中执行所述第一整理操作时,根据所述整理指令更新所述至少一逻辑地址对应的所述逻辑至实体映射表的步骤还包括:
更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
7.根据权利要求1所述的整理指令处理方法,其中执行所述第二整理操作时,根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的所述第一数据以产生所述第二数据的步骤包括:
根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元;
读取所述第一实体程序化单元中所存储的所述第一数据;以及
将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
8.一种存储器控制电路单元,用于控制包括多个实体抹除单元的可复写式非易失性存储器模块,其中所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址,所述存储器控制电路单元包括:
主机接口,用以耦接至主机系统;
存储器接口,用以耦接至所述可复写式非易失性存储器模块;以及
存储器管理电路,耦接至所述主机接口与所述存储器接口,
其中所述存储器管理电路用以从所述主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的,
其中所述存储器管理电路还用以根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量,并且
其中所述存储器管理电路还用以根据所述第一数据量判断执行第一整理操作或第二整理操作,
其中执行所述第一整理操作时,所述存储器管理电路还用以根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表,
其中执行所述第二整理操作时,所述存储器管理电路还用以根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
9.根据权利要求8所述的存储器控制电路单元,其中所述存储器管理电路还用以判断所述第一数据量是否小于预设门槛值,并且
若判断所述第一数据量不小于所述预设门槛值,则所述存储器管理电路还用以执行所述第一整理操作,
若判断所述第一数据量小于所述预设门槛值,则所述存储器管理电路还用以执行所述第二整理操作。
10.根据权利要求8所述的存储器控制电路单元,其中所述存储器管理电路还用以取得所述至少一逻辑地址对应的所述逻辑至实体映射表,
其中所述存储器管理电路还用以计算所述逻辑至实体映射表的第二数据量,并且
其中所述存储器管理电路还用以根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
11.根据权利要求10所述的存储器控制电路单元,其中所述存储器管理电路还用以判断所述第一数据量是否小于所述第二数据量,
其中若判断所述第一数据量不小于所述第二数据量,则所述存储器管理电路还用以执行所述第一整理操作,
其中若判断所述第一数据量小于所述第二数据量,则所述存储器管理电路还用以执行所述第二整理操作。
12.根据权利要求8所述的存储器控制电路单元,其中执行所述第一整理操作时,所述存储器管理电路还用以在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
13.根据权利要求12所述的存储器控制电路单元,其中执行所述第一整理操作时,所述存储器管理电路还用以更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
14.根据权利要求8所述的存储器控制电路单元,其中执行所述第二整理操作时,所述存储器管理电路还用以根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元,
其中所述存储器管理电路还用以读取所述第一实体程序化单元中所存储的所述第一数据,并且
其中所述存储器管理电路还用以将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
15.一种存储器存储装置,包括:
连接接口单元,用以耦接至主机系统;
可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元的每一实体抹除单元具有多个实体程序化单元,所述多个实体程序化单元映射至多个逻辑地址;以及
存储器控制电路单元,耦接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以从所述主机系统接收整理指令,其中所述整理指令用以指示所述多个逻辑地址中的至少一逻辑地址所存储的数据是可被抹除的,
其中所述存储器控制电路单元还用以根据所述整理指令,计算进行数据整理操作所需程序化的数据的第一数据量,并且
其中所述存储器控制电路单元还用以根据所述第一数据量判断执行第一整理操作或第二整理操作,
其中执行所述第一整理操作时,所述存储器控制电路单元还用以根据所述整理指令更新所述至少一逻辑地址对应的逻辑至实体映射表,
其中执行所述第二整理操作时,所述存储器控制电路单元还用以根据所述整理指令更新所述至少一逻辑地址映射的第一实体程序化单元所存储的第一数据以产生第二数据,并将所述第二数据写入所述可复写式非易失性存储器模块。
16.根据权利要求15所述的存储器存储装置,其中所述存储器控制电路单元还用以判断所述第一数据量是否小于预设门槛值,并且
若判断所述第一数据量不小于所述预设门槛值,则所述存储器控制电路单元还用以执行所述第一整理操作,
若判断所述第一数据量小于所述预设门槛值,则所述存储器控制电路单元还用以执行所述第二整理操作。
17.根据权利要求15所述的存储器存储装置,其中所述存储器控制电路单元还用以取得所述至少一逻辑地址对应的所述逻辑至实体映射表,
其中所述存储器控制电路单元还用以计算所述逻辑至实体映射表的第二数据量,并且
其中所述存储器控制电路单元还用以根据所述第一数据量及所述第二数据量判断执行所述第一整理操作或所述第二整理操作。
18.根据权利要求17所述的存储器存储装置,其中所述存储器控制电路单元还用以判断所述第一数据量是否小于所述第二数据量,
其中若判断所述第一数据量不小于所述第二数据量,则所述存储器控制电路单元还用以执行所述第一整理操作,
其中若判断所述第一数据量小于所述第二数据量,则所述存储器控制电路单元还用以执行所述第二整理操作。
19.根据权利要求15所述的存储器存储装置,其中执行所述第一整理操作时,所述存储器控制电路单元还用以在所述逻辑至实体映射表中将对应所述整理指令所指示的所述至少一逻辑地址的映射更改为空值,并且不更新所述至少一逻辑地址映射的所述第一实体程序化单元所存储的所述第一数据。
20.根据权利要求19所述的存储器存储装置,其中执行所述第一整理操作时,所述存储器控制电路单元还用以更新所述至少一逻辑地址映射的所述第一实体程序化单元所属的实体抹除单元的有效数据计数。
21.根据权利要求15所述的存储器存储装置,其中执行所述第二整理操作时,所述存储器控制电路单元还用以根据所述逻辑至实体映射表查找所述整理指令所指示的所述至少一逻辑地址映射的所述第一实体程序化单元,
其中所述存储器控制电路单元还用以读取所述第一实体程序化单元中所存储的所述第一数据,并且
其中所述存储器控制电路单元还用以将所述第一数据中所述整理指令指示删除的数据更新为预设值,以产生所述第二数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275942.0A CN112860193B (zh) | 2021-03-15 | 2021-03-15 | 整理指令处理方法、存储器控制电路单元与存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110275942.0A CN112860193B (zh) | 2021-03-15 | 2021-03-15 | 整理指令处理方法、存储器控制电路单元与存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860193A true CN112860193A (zh) | 2021-05-28 |
CN112860193B CN112860193B (zh) | 2023-05-16 |
Family
ID=75994471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110275942.0A Active CN112860193B (zh) | 2021-03-15 | 2021-03-15 | 整理指令处理方法、存储器控制电路单元与存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860193B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419683A (zh) * | 2021-07-01 | 2021-09-21 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
TWI806470B (zh) * | 2022-03-04 | 2023-06-21 | 瑞昱半導體股份有限公司 | 用以動態地調整在系統中的指令記憶體以及資料記憶體的大小的方法以及用以動態地調整指令記憶體以及資料記憶體之大小的系統 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200805083A (en) * | 2006-07-12 | 2008-01-16 | Inventec Corp | Method of reading OpROM image from storage device |
US20140095767A1 (en) * | 2012-09-28 | 2014-04-03 | Sanjeev N. Trika | Storage device trimming |
US8819375B1 (en) * | 2011-11-30 | 2014-08-26 | Western Digital Technologies, Inc. | Method for selective defragmentation in a data storage device |
US9293042B1 (en) * | 2014-05-19 | 2016-03-22 | Allstate Insurance Company | Electronic display systems connected to vehicles and vehicle-based systems |
US20190025872A1 (en) * | 2017-07-18 | 2019-01-24 | Qualcomm Incorporated | Usb device with clock domain correlation |
CN109491588A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN110442300A (zh) * | 2018-05-03 | 2019-11-12 | 群联电子股份有限公司 | 整理指令记录方法、存储器控制电路单元与存储装置 |
US20200218465A1 (en) * | 2019-01-03 | 2020-07-09 | Toshiba Memory Corporation | Selective erasure of data in a ssd |
-
2021
- 2021-03-15 CN CN202110275942.0A patent/CN112860193B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200805083A (en) * | 2006-07-12 | 2008-01-16 | Inventec Corp | Method of reading OpROM image from storage device |
US8819375B1 (en) * | 2011-11-30 | 2014-08-26 | Western Digital Technologies, Inc. | Method for selective defragmentation in a data storage device |
US20140095767A1 (en) * | 2012-09-28 | 2014-04-03 | Sanjeev N. Trika | Storage device trimming |
US9293042B1 (en) * | 2014-05-19 | 2016-03-22 | Allstate Insurance Company | Electronic display systems connected to vehicles and vehicle-based systems |
US20190025872A1 (en) * | 2017-07-18 | 2019-01-24 | Qualcomm Incorporated | Usb device with clock domain correlation |
CN109491588A (zh) * | 2017-09-13 | 2019-03-19 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN110442300A (zh) * | 2018-05-03 | 2019-11-12 | 群联电子股份有限公司 | 整理指令记录方法、存储器控制电路单元与存储装置 |
US20200218465A1 (en) * | 2019-01-03 | 2020-07-09 | Toshiba Memory Corporation | Selective erasure of data in a ssd |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419683A (zh) * | 2021-07-01 | 2021-09-21 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
CN113419683B (zh) * | 2021-07-01 | 2023-07-04 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
TWI806470B (zh) * | 2022-03-04 | 2023-06-21 | 瑞昱半導體股份有限公司 | 用以動態地調整在系統中的指令記憶體以及資料記憶體的大小的方法以及用以動態地調整指令記憶體以及資料記憶體之大小的系統 |
Also Published As
Publication number | Publication date |
---|---|
CN112860193B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431B (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
US10101914B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
CN107402716B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN106681932B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107544922B (zh) | 数据写入方法、存储器控制电路单元及存储器存储装置 | |
CN107357520B (zh) | 整理指令处理方法、存储器控制电路单元及其存储装置 | |
CN113885692B (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
CN108733577B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107346211B (zh) | 映射表加载方法、存储器控制电路单元与存储器储存装置 | |
CN112860193B (zh) | 整理指令处理方法、存储器控制电路单元与存储装置 | |
CN106959818B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN107103930B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN107204205B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110442299B (zh) | 数据写入方法、存储器控制电路单元以及存储器储存装置 | |
CN114328297B (zh) | 映射表管理方法、存储器控制电路单元与存储器存储装置 | |
CN111583976B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
US11609822B2 (en) | Data storing method, memory control circuit unit and memory storage device | |
CN110442300B (zh) | 整理指令记录方法、存储器控制电路单元与存储装置 | |
CN113504880A (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 |