CN111858389B - 数据写入方法、存储器控制电路单元以及存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元以及存储器存储装置 Download PDFInfo
- Publication number
- CN111858389B CN111858389B CN201910362079.5A CN201910362079A CN111858389B CN 111858389 B CN111858389 B CN 111858389B CN 201910362079 A CN201910362079 A CN 201910362079A CN 111858389 B CN111858389 B CN 111858389B
- Authority
- CN
- China
- Prior art keywords
- physical
- unit
- memory
- units
- data
- 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
Abstract
本发明提供一种数据写入方法、存储器控制电路单元以及存储器存储装置。所述方法包括:从主机系统接收第一写入指令;当可用以写入的实体抹除单元的数量大于第一门槛值时,从可用以写入的实体抹除单元中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应第一写入指令的数据写入至第一实体抹除单元中;以及当可用以写入的实体抹除单元的数量非大于第一门槛值时,从可用以写入的实体抹除单元中选择第二实体抹除单元,并仅使用单页程序化模式将对应第一写入指令的数据写入至第二实体抹除单元中。
Description
技术领域
本发明涉及一种数据写入方法、存储器控制电路单元以及存储器存储装置。
背景技术
数字相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。
一般来说,可复写式非易失性存储器具有多个实体抹除单元,且每一个实体抹除单元会具有多个实体程序化单元。一个实体程序化单元通常由多个存储单元所组成。存储器管理电路可使用单页程序化模式或多页程序化模式来将数据程序化(或写入)至实体抹除单元。在此,基于单页程序化模式来程序化存储单元的程序化速度会高于基于多页程序化模式来程序化存储单元的程序化速度(即,使用多页程序化模式来程序化数据的所需操作时间大于使用单页程序化模式来程序化数据的所需操作时间)。其中,被使用单页程序化模式写入的实体程序化单元中的每一个存储单元仅存储1个比特数据,被使用多页程序化模式写入的实体程序化单元中的每一个存储单元会存储多个比特数据。
特别是,当存储器管理电路对一个实体抹除单元进行写入时,假设此时发生不正常断电,在可复写式非易失性存储器模块重新上电后,存储器管理电路需执行一错误复原机制。假设在断电前存储器管理电路是使用多页程序化模式来将数据写入至一实体抹除单元,在可复写式非易失性存储器模块重新上电后,存储器管理电路会将断电前正在以多页程序化模式写入的实体抹除单元中的有效数据以多页程序化模式搬移(或复制)至另一个实体抹除单元。然而,将以多页程序化模式写入的数据以多页程序化模式搬移(或复制)至另一个实体抹除单元是相当耗时的。
此外,前述的错误复原机制也可以通过有效数据合并操作来完成。举例来说,假设在断电前存储器管理电路是使用多页程序化模式来将数据写入至一实体抹除单元,在可复写式非易失性存储器模块重新上电后,存储器管理电路会在适当的时机判断是否执行有效数据合并操作(或称为,垃圾搜集(garbage collection)操作)。例如,当可复写式非易失性存储器模块中可用以写入的实体抹除单元的数量不够时,存储器管理电路可以执行有效数据合并操作以对断电前以多页程序化模式写入的实体抹除单元中的有效数据以多页程序化模式搬移(或复制)至另一个实体抹除单元中,藉此增加可复写式非易失性存储器模块中可用以写入的实体抹除单元的数量且完成因断电所执行的错误复原机制。类似的,将以多页程序化模式写入的数据以多页程序化模式搬移(或复制)至另一个实体抹除单元是相当耗时的。
因此,当可复写式非易失性存储器模块在不正常断电时,如何在重新上电后快速地执行错误复原机制,是本领域技术人员所欲解决的问题之一。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元以及存储器存储装置,可以在可复写式非易失性存储器模块不正常断电并重新上电后快速地执行错误复原机制。
本发明提出一种数据写入方法,用于一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述数据写入方法包括:从一主机系统接收一第一写入指令;判断所述多个实体抹除单元之中的至少一可用以写入的实体抹除单元的数量是否大于一第一门槛值;当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第一实体抹除单元,并使用一单页程序化模式或一多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中;以及当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
在本发明的一实施例中,所述方法还包括:判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于一第二门槛值;以及当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第二门槛值时,执行一有效数据合并操作。其中所述第二门槛值小于所述第一门槛值。
在本发明的一实施例中,其中执行所述有效数据合并操作的步骤包括:使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至所述多个实体抹除单元之中的一第三实体抹除单元的多个第三实体程序化单元中。
在本发明的一实施例中,所述方法还包括:当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,执行判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于所述第二门槛值的步骤。
在本发明的一实施例中,其中使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的步骤包括:当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至所述多个实体抹除单元之中的一第四实体抹除单元的至少一第四实体程序化单元中。
在本发明的一实施例中,其中所述第一门槛值为15。
在本发明的一实施例中,其中所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成。在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个第二存储单元仅存储1个比特数据。在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元存储多个比特数据。
本发明提出一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,所述存储器控制电路单元包括:主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元。存储器管理电路电性连接至所述主机接口与所述存储器接口,并用以执行下述运作:从主机系统接收一第一写入指令;判断所述多个实体抹除单元之中的至少一可用以写入的实体抹除单元的数量是否大于一第一门槛值;当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第一实体抹除单元,并使用一单页程序化模式或一多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中;以及当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
在本发明的一实施例中,所述存储器管理电路还用以判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于一第二门槛值。当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第二门槛值时,所述存储器管理电路还用以执行一有效数据合并操作,其中所述第二门槛值小于所述第一门槛值。
在本发明的一实施例中,其中在执行所述有效数据合并操作的运作中,所述存储器管理电路还用以使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至所述多个实体抹除单元之中的一第三实体抹除单元的多个第三实体程序化单元中。
在本发明的一实施例中,当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器管理电路还用以执行判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于所述第二门槛值的运作。
在本发明的一实施例中,其中在使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的运作中,当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器管理电路还用以使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至所述多个实体抹除单元之中的一第四实体抹除单元的至少一第四实体程序化单元中。
在本发明的一实施例中,其中所述第一门槛值为15。
在本发明的一实施例中,所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成。在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个第二存储单元仅存储1个比特数据。在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元存储多个比特数据。
本发明提出一种存储器存储装置,包括:连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至一主机系统。可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元。存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,并用以执行下述运作:从主机系统接收一第一写入指令;判断所述多个实体抹除单元之中的至少一可用以写入的实体抹除单元的数量是否大于一第一门槛值;当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第一实体抹除单元,并使用一单页程序化模式或一多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中;以及当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第一门槛值时,从所述可用以写入的实体抹除单元中选择一第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
在本发明的一实施例中,所述存储器控制电路单元还用以判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于一第二门槛值。当所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量非大于所述第二门槛值时,所述存储器控制电路单元还用以执行一有效数据合并操作,其中所述第二门槛值小于所述第一门槛值。
在本发明的一实施例中,其中在执行所述有效数据合并操作的运作中,所述存储器控制电路单元还用以使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至所述多个实体抹除单元之中的一第三实体抹除单元的多个第三实体程序化单元中。
在本发明的一实施例中,当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器控制电路单元还用以执行判断所述多个实体抹除单元之中的所述可用以写入的实体抹除单元的数量是否非大于所述第二门槛值的运作。
在本发明的一实施例中,其中在使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的运作中,当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器控制电路单元还用以使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至所述多个实体抹除单元之中的一第四实体抹除单元的至少一第四实体程序化单元中。
在本发明的一实施例中,其中所述第一门槛值为15。
在本发明的一实施例中,所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成。在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个第二存储单元仅存储1个比特数据。在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个第一存储单元存储多个比特数据。
基于上述,本发明的数据写入方法、存储器控制电路单元以及存储器存储装置可以在可复写式非易失性存储器模块不正常断电并重新上电后快速地执行因应于不正常断电的错误复原机制。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5A与图5B是根据本范例实施例所示出的存储单元存储架构与实体抹除单元的范例示意图。
图6是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图7与图8是根据一范例实施例所示出的管理实体抹除单元的范例示意图。
图9是根据一范例所示出的使用单页程序化模式将数据写入可复写式非易失性存储器模块的示意图。
图10是根据一范例所示出的使多页程序化模式将数据写入可复写式非易失性存储器模块的示意图。
图11是根据一范例所示出的使用多页程序化模式对以单页程序化模式写入的数据进行有效数据合并操作的示意图。
图12是根据一范例所示出的数据写入方法的流程图。
【符号说明】
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:连接接口单元
WL0~WL127:字线
404:存储器控制电路单元
406:可复写式非易失性存储器模块
702:存储器管理电路
704:主机接口
706:存储器接口
708:错误检查与校正电路
710:缓冲存储器
712:电源管理电路
502:数据区
504:闲置区
506:暂存区
508:取代区
510(0)~510(N):实体抹除单元
LBA(0)~LBA(H):逻辑单元
LZ(0)~LZ(M):逻辑区域
S1201:从主机系统接收第一写入指令的步骤
S1203:判断可用以写入的实体抹除单元的数量是否大于第一门槛值的步骤
S1205:从可用以写入的实体抹除单元中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应第一写入指令的数据写入至第一实体抹除单元的第一实体程序化单元中的步骤
S1207:从可用以写入的实体抹除单元中选择第二实体抹除单元,并仅使用单页程序化模式将对应第一写入指令的数据写入至第二实体抹除单元的第二实体程序化单元中的步骤
具体实施方式
一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块(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是根据本范例实施例所示出的存储单元存储架构与实体抹除单元的范例示意图。在本范例实施例中,是以MLC NAND型快闪存储器为范例来进行说明。
请参照图5A,可复写式非易失性存储器模块406的每个存储单元可存储2个比特的数据,并且每个存储单元的存储状态可被识别为“11”、“10”、“01”、或“00”。其中每一个存储状态包括最低有效位(Least Significant Bit,LSB)以及最高有效位(Most SignificantBit,MSB)。例如,存储状态中从左侧算起的第1个比特的值为LSB,而从左侧算起的第2个比特的值为MSB。因此,连接至同一条字线上的数个存储单元可组成2个实体程序化单元,其中由此些存储单元的LSB所组成的实体程序化单元称为下实体程序化单元,并且由此些存储单元的MSB所组成的实体程序化单元称为上实体程序化单元。
请参照图5B,一个实体抹除单元是由多个实体程序化单元组所组成,其中每个实体程序化单元组包括由排列在同一条字线上的数个存储单元所组成的下实体程序化单元与上实体程序化单元。例如,在实体抹除单元中,属于下实体程序化单元的第0个实体页面与属于上实体程序化单元的第1个实体页面是由排列在字线WL0上的存储单元所组成的,因此会被视为一个实体程序化单元组。类似地,第2、3个实体程序化单元是由排列在字线WL1上的存储单元所组成的,因此会被视为一个实体程序化单元组,并且依此类推其他实体程序化单元亦是依据此方式被区分为多个实体程序化单元组。
图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的实体抹除单元损坏时,存储器管理电路302会从取代区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来被更新。
在本实施例中,当存储器管理电路702从主机系统11接收到一写入指令(亦称为,第一写入指令)时,存储器管理电路702会判断闲置区504中的实体抹除单元(即,可用以写入的实体抹除单元)的数量是否大于一第一门槛值。在本实施例中,第一门槛值例如为15。然而本发明并不用以限定第一门槛值的数值。
当闲置区504中的实体抹除单元的数量大于第一门槛值时,存储器管理电路702会下达一第一指令序列以从闲置区504中选择至少一第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应第一写入指令的数据写入至第一实体抹除单元的至少一实体程序化单元(亦称为,第一实体程序化单元)中。在此需说明的是,在本范例中,当闲置区504中的实体抹除单元的数量大于第一门槛值时,存储器管理电路702是使用单页程序化模式或多页程序化模式进行写入是由主机系统11所下达的指令所决定。以下举例说明单页程序化模式以及多页程序化模式。
图9是根据一范例所示出的使用单页程序化模式将数据写入可复写式非易失性存储器模块的示意图。
假设第一写入指令是指示将数据存储至逻辑单元LBA(0)的第0~255个逻辑子单元,存储器管理电路702首先会将此第一写入指令的数据暂存至缓冲存储器710中。之后,请参照图9,存储器管理电路702例如可以从闲置区504中提取2个实体抹除单元510(F)、510(F+1)分别作为对应于上述第一写入指令的多个动作实体抹除单元。假设存储器管理电路702是使用单页程序化模式进行写入,则存储器管理电路702会依据第一指令序列而将第一写入指令的数据从缓冲存储器710中写入至实体抹除单元510(F)以及实体抹除单元510(F+1)的实体程序化单元中。也就是说,假设实体抹除单元510(F)、510(F+1)为前述的第一实体抹除单元,且实体抹除单元510(F)、510(F+1)的实体程序化单元为前述的第一实体程序化单元。在此,由于实体抹除单元510(F)以及实体抹除单元510(F+1)是以单页程序化模式来程序化,因此,如上所述,构成实体抹除单元510(F)以及实体抹除单元510(F+1)的实体程序化单元的存储单元会被程序化以存储1个比特数据。也就是说,在单页程序化模式下,实体抹除单元510(F)以及实体抹除单元510(F+1)的下实体程序化单元会被使用来写入数据且实体抹除单元510(F)以及实体抹除单元510(F+1)的上实体程序化单元不会被用来写入数据。
详细来说,如图9所示,存储器管理电路702会将欲存储至逻辑单元LBA(0)的第0~127个逻辑子单元的数据依序地写入至实体抹除单元510(F)的下实体程序化单元以及将欲存储至逻辑单元LBA(0)的第128~255个逻辑子单元的数据依序地写入至实体抹除单元510(F+1)的下实体程序化单元中。也就是说,存储器管理电路702使用单页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块406中实体抹除单元510(F)的下实体程序化单元以及实体抹除单元510(F+1)的下实体程序化单元中且实体抹除单元510(F)的上实体程序化单元以及实体抹除单元510(F+1)的上实体程序化单元不会被用来写入数据。
在使用单页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块406中的实体抹除单元510(F)的下实体程序化单元以及实体抹除单元510(F+1)的下实体程序化单元的运作之后,存储器管理电路702会将实体抹除单元510(F)以及实体抹除单元510(F+1)关联至数据区502,并且回复写入完成信息至主机系统11以回应主机系统11所下达的第一写入指令。
图10是根据一范例所示出的使用多页程序化模式将数据写入可复写式非易失性存储器模块的示意图。
假设第一写入指令是指示将数据存储至逻辑单元LBA(0)的第0~255个逻辑子单元,存储器管理电路702首先会将此第一写入指令的数据暂存至缓冲存储器710中。之后,请参照图10,存储器管理电路702例如可以从闲置区504中提取1个实体抹除单元510(F+3)作为对应于上述第一写入指令的动作实体抹除单元。假设存储器管理电路702是使用多页程序化模式进行写入,则存储器管理电路702会依据第一指令序列而将第一写入指令的数据从缓冲存储器710中写入至实体抹除单元510(F+3)的实体程序化单元中。也就是说,假设实体抹除单元510(F+3)为前述的第一实体抹除单元,且实体抹除单元510(F+3)的实体程序化单元为前述的第一实体程序化单元。在此,由于实体抹除单元510(F+3)是以多页程序化模式来程序化,因此,如上所述,构成实体抹除单元510(F+3)的实体程序化单元的存储单元会被程序化以存储多个比特数据。也就是说,在单页程序化模式下,实体抹除单元510(F+3)的下实体程序化单元以及上实体程序化单元510(F+3)皆会被使用来写入数据。
详细来说,如图10所示,存储器管理电路702会将欲存储至逻辑单元LBA(0)的第0~255个逻辑子单元的数据依序地写入至实体抹除单元510(F+3)的下实体程序化单元以及上实体程序化单元中。也就是说,存储器管理电路702使用多页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块中406中的实体抹除单元510(F+3)的下实体程序化单元以及上实体程序化单元。
在使用多页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块406中的实体抹除单元510(F+3)的下实体程序化单元与上实体程序化单元的运作之后,存储器管理电路702会将实体抹除单元510(F+3)关联至数据区502,并且回复写入完成信息至主机系统11以回应主机系统11所下达的第一写入指令。
特别是,在本实施例中,当存储器管理电路702从主机系统11接收到第一写入指令且存储器管理电路702判断闲置区504中的实体抹除单元是非大于第一门槛值时,存储器管理电路702会下达一第二指令序列以从闲置区504中选择至少一实体抹除单元(在此称为,第二实体抹除单元),并仅只会使用单页程序化模式(即,不使用多页程序化模式)将对应第一写入指令的数据写入至第二实体抹除单元的至少一实体程序化单元(亦称为,第二实体程序化单元)中。而如何使用单页程序化模式进行写入已详述如前,在此不再赘述。
之后,存储器管理电路702会判断闲置区504之中的实体抹除单元(即,可用以写入的实体抹除单元)的数量是否非大于一第二门槛值。特别是,第二门槛值是小于第一门槛值。
当闲置区504之中的实体抹除单元(即,可用以写入的实体抹除单元)的数量非大于第二门槛值时,存储器管理电路702会执行有效数据合并操作以使用多页程序化模式将先前使用单页程序化模式写入的多个有效数据复制至闲置区504之中的另一实体抹除单元(亦称为,第三实体抹除单元)的多个实体程序化单元(亦称为,第三实体程序化单元)中。换句话说,通过第二门槛值是小于第一门槛值的机制,可以确保在执行有效数据合并操作前,存储器管理电路702是使用单页程序化模式进行写入。
以下举例说明有效数据合并操作。
图11是根据一范例所示出的使用多页程序化模式对以单页程序化模式写入的数据进行有效数据合并操作的示意图。
假设对应逻辑单元LBA(0)的实体抹除单元510(F)、实体抹除单元510(F+1)已存储逻辑单元LBA(0)的所有逻辑子单元的有效数据(如图9所示),且当闲置区504中空的实体抹除单元的数目小于预设门槛值时,存储器管理电路702会执行有效数据合并操作。
详细来说,当闲置区504中空的实体抹除单元的数目小于预设门槛值时,存储器管理电路702会执行有效数据合并操作。请参照图11,在存储器管理电路702执行有效数据合并操作时,存储器管理电路702会例如从闲置区504中提取一个实体抹除单元作为用于轮替的实体抹除单元510(F+2)(即,前述的第三实体抹除单元)。具体来说,存储器管理电路702会从闲置区504中选择一个空的实体抹除单元或者所存储的数据为无效数据的实体抹除单元。特别是,倘若所提取的实体抹除单元是存储无效数据的实体抹除单元时,存储器管理电路702会先对此实体抹除单元执行抹除操作。也就是说,实体抹除单元上的无效数据必须先被抹除。
之后,存储器管理电路702使用多页程序化模式将实体抹除单元510(F)与实体抹除单元510(F+1)中的多个有效数据复制至可复写式非易失性存储器模块406中的实体抹除单元510(F+2)中的实体程序化单元中。在此,由于实体抹除单元510(F+2)是以多页程序化模式来程序化,因此,如上所述,构成实体抹除单元510(F+2)的实体程序化单元的存储单元会被程序化以存储多个比特数据。也就是说,在多页程序化模式下,实体抹除单元510(F+2)的下实体程序化单元和实体抹除单元510(F+2)的上实体程序化单元会被用来写入数据。
详细来说,存储器管理电路702会从实体抹除单元510(F)的下实体程序化单元中将属于逻辑单元LBA(0)的第0~127逻辑子单元的有效数据写入(或复制)至实体抹除单元510(F+2)的对应页面(例如,第0~127实体程序化单元)。接着,存储器管理电路702会从暂存实体抹除单元510(F+1)的下实体程序化单元中将属于逻辑单元LBA(0)的第128~255逻辑子单元的有效数据复制至实体抹除单元510(F+2)的对应页面(例如,第128~255个实体程序化单元)。也就是说,在多页程序化模式下,实体抹除单元510(F+2)的第0~255实体程序化单元(即,前述的第三实体程序化单元)皆会被用来写入数据。
也就是说,在执行有效数据合并操作时,欲被关联至数据区502的实体抹除单元是以多页程序化模式来操作,因此,写入至实体抹除单元510(F+2)是以实体程序化单元组为单位来同时或阶段性地程序化。具体来说,在一范例实施例中,实体抹除单元510(F+2)的第0、1个实体程序化单元会同时地被程序化以写入属于逻辑单元LBA(0)的第0、1个逻辑子单元的数据;实体抹除单元510(F+2)的第2、3个实体程序化单元会同时地被程序化以写入属于逻辑单元LBA(0)的第2、3个逻辑子单元的数据;并且以此类推其他逻辑子单元的数据皆是以实体程序化单元组为单位被写入至实体抹除单元510(F+2)中。
最后,存储器管理电路702会在逻辑-实体映射表中将逻辑单元LBA(0)映射至实体抹除单元510(F+2)并且将实体抹除单元510(F)~510(F+1)执行抹除操作并将实体抹除单元510(F)~510(F+1)重新关联至闲置区504。也就是说,在执行之后的写入指令时,已被抹除的实体抹除单元510(F)~510(F+1)就可再被选择作为欲写入的逻辑单元的动作实体抹除单元。
通过上述有效数据合并操作,能够确保可复写式非易失性存储器模块406所能存储的容量不会因为先前使用单页程序化模式进行写入而降低。
在此需说明的是,前述的有效数据合并操作是以使用单页程序化模式写入的第一实体抹除单元为范例进行说明。然而本发明不限于此,前述的有效数据合并操作也可以是单独或混合地用在使用单页程序化模式写入的第一实体抹除单元与第二实体抹除单元。
特别是,假设存储器管理电路702在对可复写式非易失性存储器模块406进行写入时发生不正常断电,当可复写式非易失性存储器模块406重新上电后,存储器管理电路702需执行一错误复原机制。
举例来说,在一实施例中,当连接接口单元402(或主机接口704)从主机系统11接收到第一写入指令且存储器管理电路702判断闲置区504中的实体抹除单元是非大于第一门槛值时,存储器管理电路702会使用单页程序化模式将对应第一写入指令的数据写入至前述的第二实体抹除单元的第二实体程序化单元中。假设在写入第二实体程序化单元的过程中可复写式非易失性存储器模块406在不正常断电。在重新上电后,存储器管理电路702会使用单页程序化模式将第二实体抹除单元中的有效数据复制至另一个实体抹除单元(亦称为,第四实体抹除单元)的至少一实体程序化单元(亦称为,第四实体程序化单元)中以完成错误复原机制。当复制操作完成时,存储器管理电路702会回复预备(ready)的状态给主机系统11。值得一提的是,在此实施例中,由于不正常断电所执行的错误复原机制是将以单页程序化模式存储的数据以单页程序化模式搬移(或复制数据)至另一个实体抹除单元,其执行的速度会快于将以多页程序化模式存储的数据以多页程序化模式搬移(或复制)至另一个实体抹除单元的速度。
在另一实施例中,因断电所执行的错误复原机制也可以通过有效数据合并操作来完成。详细来说,当连接接口单元402(或主机接口704)从主机系统11接收到第一写入指令且存储器管理电路702判断闲置区504中的实体抹除单元是非大于第一门槛值时,存储器管理电路702会使用单页程序化模式将对应第一写入指令的数据写入至前述的第二实体抹除单元的第二实体程序化单元中。假设在写入第二实体抹除单元的过程中可复写式非易失性存储器模块406发生不正常断电,在重新上电后,存储器管理电路702会立即地回复预备(ready)的状态给主机系统11。之后,存储器管理电路702可以判断闲置区504中可用以写入的实体抹除单元的数量是否非大于第二门槛值。当非大于第二门槛值时,代表闲置区504中可用以写入的实体抹除单元的数量不够。此时存储器管理电路702可以对前述的第二实体抹除单元中以单页程序化模式写入的数据以多页程序化模式搬移(或复制)至另一个实体抹除单元中,并且将第二实体抹除单元再次关联至闲置区504。藉此,可以增加闲置区504中可用以写入的实体抹除单元的数量且完成因断电所执行的错误复原机制。值得一提的是,在此实施例中,由于不正常断电后所执行的有效数据合并操作是将以单页程序化模式存储的数据以多页程序化模式搬移(或复制数据)至另一个实体抹除单元以获得可以用以写入的实体抹除单元,其执行的速度会快于一般的有效数据合并操作中将以多页程序化模式存储的数据以多页程序化模式搬移(或复制数据)至另一个实体抹除单元的速度。
需说明的是,前述的范例是以多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块)来进行说明。然而本发明不限于此,在其他实施例中,本发明的数据写入方法也可以用于多阶存储单元(Trinary Level Cell,TLC)NAND型快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块。
图12是根据一范例所示出的数据写入方法的流程图。
请参照图12,在步骤S1201中,连接接口单元402(或主机接口704)从主机系统11接收第一写入指令。在步骤S1203中,存储器管理电路702判断可用以写入的实体抹除单元的数量是否大于第一门槛值。当所可用以写入的实体抹除单元的数量大于第一门槛值时,在步骤S1205中,存储器管理电路702会下达第一指令序列以从可用以写入的实体抹除单元中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应第一写入指令的数据写入至第一实体抹除单元的第一实体程序化单元中。此外,当可用以写入的实体抹除单元的数量非大于第一门槛值时,在步骤S1207中,存储器管理电路702会下达第二指令序列以从可用以写入的实体抹除单元中选择第二实体抹除单元,并仅使用单页程序化模式将对应第一写入指令的数据写入至第二实体抹除单元的第二实体程序化单元中。
综上所述,本发明的数据写入方法、存储器控制电路单元以及存储器存储装置可以在可复写式非易失性存储器模块不正常断电并重新上电后快速地执行因应于不正常断电的错误复原机制。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (21)
1.一种数据写入方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元,所述数据写入方法包括:
将所述多个实体抹除单元至少分组为数据区及闲置区,其中所述闲置区的实体抹除单元为空的且可用以写入的实体抹除单元,用以替代所述数据区的实体抹除单元;
从主机系统接收第一写入指令;
判断所述闲置区的实体抹除单元的数量是否大于第一门槛值;
响应于所述闲置区中的实体抹除单元的数量大于所述第一门槛值的判断结果,从所述闲置区中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中;以及
响应于所述闲置区中的实体抹除单元的数量非大于所述第一门槛值的判断结果,从所述闲置区中选择第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
2.根据权利要求1所述的数据写入方法,还包括:
判断所述闲置区的实体抹除单元的数量是否非大于第二门槛值;以及
当所述闲置区的实体抹除单元的数量非大于所述第二门槛值时,执行有效数据合并操作,其中所述第二门槛值小于所述第一门槛值。
3.根据权利要求2所述的数据写入方法,其中执行所述有效数据合并操作的步骤包括:
使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至从所述闲置区中选择的第三实体抹除单元的多个第三实体程序化单元中。
4.根据权利要求2所述的数据写入方法,还包括:
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,执行判断所述闲置区中的实体抹除单元的数量是否非大于所述第二门槛值的步骤。
5.根据权利要求1所述的数据写入方法,其中使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的步骤包括:
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至从所述闲置区中选择的第四实体抹除单元的至少一第四实体程序化单元中。
6.根据权利要求1所述的数据写入方法,其中所述第一门槛值为15个实体抹除单元。
7.根据权利要求1所述的数据写入方法,其中
所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成,
在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个仅存储1个比特数据,以及
在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个存储多个比特数据。
8.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,所述存储器控制电路单元包括:
主机接口,用以电性连接至主机系统;
存储器接口,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元;以及
存储器管理电路,电性连接至所述主机接口与所述存储器接口,其中
所述存储器管理电路用以将所述多个实体抹除单元至少分组为数据区及闲置区,其中所述闲置区的实体抹除单元为空的且可用以写入的实体抹除单元,用以替代所述数据区的实体抹除单元,
所述主机接口用以从所述主机系统接收第一写入指令,
所述存储器管理电路用以判断所述闲置区的实体抹除单元的数量是否大于第一门槛值,
响应于所述闲置区中的实体抹除单元的数量大于所述第一门槛值的判断结果,所述存储器管理电路还用以下达第一指令序列以从所述闲置区中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中,
响应于所述闲置区中的实体抹除单元的数量非大于所述第一门槛值的判断结果,所述存储器管理电路还用以下达第二指令序列以从所述闲置区中选择第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
9.根据权利要求8所述的存储器控制电路单元,其中
所述存储器管理电路还用以判断所述闲置区的实体抹除单元的数量是否非大于第二门槛值,以及
当所述闲置区的实体抹除单元的数量非大于所述第二门槛值时,所述存储器管理电路还用以执行有效数据合并操作,
其中所述第二门槛值小于所述第一门槛值。
10.根据权利要求9所述的存储器控制电路单元,其中在执行所述有效数据合并操作的运作中,
所述存储器管理电路还用以使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至从所述闲置区中选择的第三实体抹除单元的多个第三实体程序化单元中。
11.根据权利要求9所述的存储器控制电路单元,其中
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器管理电路还用以执行判断所述闲置区中的实体抹除单元的数量是否非大于所述第二门槛值的运作。
12.根据权利要求8所述的存储器控制电路单元,其中在使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的运作中,
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器管理电路还用以使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至从所述闲置区中选择的第四实体抹除单元的至少一第四实体程序化单元中。
13.根据权利要求8所述的存储器控制电路单元,其中所述第一门槛值为15个实体抹除单元。
14.根据权利要求8所述的存储器控制电路单元,其中
所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成,
在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个仅存储1个比特数据,以及
在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个存储多个比特数据。
15.一种存储器存储装置,包括:
连接接口单元,用以电性连接至主机系统;
可复写式非易失性存储器模块,具有多个实体抹除单元,所述多个实体抹除单元之中的每一个实体抹除单元具有多个实体程序化单元;以及
存储器控制电路单元,电性连接至所述连接接口单元与所述可复写式非易失性存储器模块,其中
所述存储器控制电路单元用以将所述多个实体抹除单元至少分组为数据区及闲置区,其中所述闲置区的实体抹除单元为空的且可用以写入的实体抹除单元,用以替代所述数据区的实体抹除单元;
所述连接接口单元用以从所述主机系统接收第一写入指令,
所述存储器控制电路单元还用以判断所述闲置区的实体抹除单元的数量是否大于第一门槛值,
响应于所述闲置区中的实体抹除单元的数量大于所述第一门槛值的判断结果,所述存储器控制电路单元还用以下达第一指令序列以从所述闲置区中选择第一实体抹除单元,并使用单页程序化模式或多页程序化模式将对应所述第一写入指令的数据写入至所述第一实体抹除单元的至少一第一实体程序化单元中,以及
响应于所述闲置区中的实体抹除单元的数量非大于所述第一门槛值的判断结果,所述存储器控制电路单元还用以下达第二指令序列以从所述闲置区中选择第二实体抹除单元,并仅使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的至少一第二实体程序化单元中。
16.根据权利要求15所述的存储器存储装置,其中
所述存储器控制电路单元还用以判断所述闲置区的实体抹除单元的数量是否非大于第二门槛值,以及
当所述闲置区的实体抹除单元的数量非大于所述第二门槛值时,所述存储器控制电路单元还用以执行有效数据合并操作,
其中所述第二门槛值小于所述第一门槛值。
17.根据权利要求16所述的存储器存储装置,其中在执行所述有效数据合并操作的运作中,
所述存储器控制电路单元还用以使用所述多页程序化模式将使用所述单页程序化模式写入的多个有效数据复制至从所述闲置区中选择的第三实体抹除单元的多个第三实体程序化单元中。
18.根据权利要求16所述的存储器存储装置,其中
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器控制电路单元还用以执行判断所述闲置区中的实体抹除单元的数量是否非大于所述第二门槛值的运作。
19.根据权利要求15所述的存储器存储装置,其中在使用所述单页程序化模式将对应所述第一写入指令的数据写入至所述第二实体抹除单元的所述第二实体程序化单元中的运作中,
当所述可复写式非易失性存储器模块在不正常断电并且重新上电后,所述存储器控制电路单元还用以使用所述单页程序化模式将所述第二实体抹除单元中的多个有效数据复制至从所述闲置区中选择的第四实体抹除单元的至少一第四实体程序化单元中。
20.根据权利要求15所述的存储器存储装置,其中所述第一门槛值为15个实体抹除单元。
21.根据权利要求15所述的存储器存储装置,其中
所述第一实体程序化单元是由多个第一存储单元所构成且所述第二实体程序化单元是由多个第二存储单元所构成,
在所述单页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个以及构成所述第二实体程序化单元的所述多个第二存储单元之中的每一个仅存储1个比特数据,以及
在所述多页程序化模式中,构成所述第一实体程序化单元的所述多个第一存储单元之中的每一个存储多个比特数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910362079.5A CN111858389B (zh) | 2019-04-30 | 2019-04-30 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910362079.5A CN111858389B (zh) | 2019-04-30 | 2019-04-30 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858389A CN111858389A (zh) | 2020-10-30 |
CN111858389B true CN111858389B (zh) | 2023-07-04 |
Family
ID=72965687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910362079.5A Active CN111858389B (zh) | 2019-04-30 | 2019-04-30 | 数据写入方法、存储器控制电路单元以及存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858389B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US9378135B2 (en) * | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
TWI554885B (zh) * | 2015-08-18 | 2016-10-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
CN107103930A (zh) * | 2016-02-19 | 2017-08-29 | 群联电子股份有限公司 | 数据写入方法、内存控制电路单元与内存储存装置 |
CN107818808A (zh) * | 2016-09-14 | 2018-03-20 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
TW201907311A (zh) * | 2017-07-07 | 2019-02-16 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN109522236A (zh) * | 2017-09-18 | 2019-03-26 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8407400B2 (en) * | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
KR20120084906A (ko) * | 2011-01-21 | 2012-07-31 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 그 관리 방법 |
TWI454913B (zh) * | 2012-06-26 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
-
2019
- 2019-04-30 CN CN201910362079.5A patent/CN111858389B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
US9378135B2 (en) * | 2013-01-08 | 2016-06-28 | Violin Memory Inc. | Method and system for data storage |
TWI554885B (zh) * | 2015-08-18 | 2016-10-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
CN107103930A (zh) * | 2016-02-19 | 2017-08-29 | 群联电子股份有限公司 | 数据写入方法、内存控制电路单元与内存储存装置 |
CN107818808A (zh) * | 2016-09-14 | 2018-03-20 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
TW201907311A (zh) * | 2017-07-07 | 2019-02-16 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN109522236A (zh) * | 2017-09-18 | 2019-03-26 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111858389A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078149B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI725416B (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111880749B (zh) | 数据读取方法、存储器存储装置及存储器控制电路单元 | |
US10782920B2 (en) | Data access method, memory storage apparatus and memory control circuit unit | |
TWI611410B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI668699B (zh) | 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN113504880B (zh) | 存储器缓冲区管理方法、存储器控制电路单元与存储装置 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN111858389B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN113724774A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111143253A (zh) | 数据储存方法、存储器控制电路单元以及存储器储存装置 | |
TWI777087B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN112445416B (zh) | 冷区域判断方法、存储器控制电路单元与存储器存储装置 | |
US11409596B1 (en) | Encoding control method, memory storage device and memory control circuit unit | |
CN113724773B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
US10936248B2 (en) | Data writing method with verifying a part of data, memory controlling circuit unit and memory storage device | |
CN112181859B (zh) | 有效数据合并方法、存储器控制电路单元与存储装置 | |
CN112347010B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110580230B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106326131B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN112527184A (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN118034603A (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 |