CN111580741A - 数据写入方法、存储器控制电路单元与存储器存储装置 - Google Patents
数据写入方法、存储器控制电路单元与存储器存储装置 Download PDFInfo
- Publication number
- CN111580741A CN111580741A CN201910116652.4A CN201910116652A CN111580741A CN 111580741 A CN111580741 A CN 111580741A CN 201910116652 A CN201910116652 A CN 201910116652A CN 111580741 A CN111580741 A CN 111580741A
- Authority
- CN
- China
- Prior art keywords
- data
- programming
- disk array
- correcting code
- units
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置。此方法包括:根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码;以及根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码,其中第一磁盘阵列错误检查与校正码率不同于第二磁盘阵列错误检查与校正码率。
Description
技术领域
本发明涉及一种用于可复写式非易失性存储器的数据写入方法及使用此方法的存储器控制电路单元与存储器存储装置。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器模块接收到主机系统发出的指令时,根据相同的磁盘阵列错误检查与校正码率(RAID ECC RATE)执行主机程序化操作及垃圾收集操作,以将数据程序化至可复写式非易失性存储器模块的实体程序化单元,并且在数据程序化至每一个实体程序化单元之后,均会对程序化至每一个实体程序化单元的数据执行一次读取验证(read verify)的操作,以判断数据是否被正确地程序化至每一个实体程序化单元。然而,在对程序化至每一个实体程序化单元的数据执行读取验证的操作的同时会占用可复写式非易失性存储器模块的频宽。若读取验证的操作失败,则需要校正错误的数据后才能继续执行主机程序化操作或者垃圾收集操作,更为耗时。因此,无论读取验证的操作是否失败,均会影响可复写式非易失性存储器模块的程序化性能,如何快速地找到不影响可复写式非易失性存储器模块的效能的数据写入方式,是本领域技术人员所欲解决的问题之一。
发明内容
本发明提供一种数据写入方法、存储器控制电路单元与存储器存储装置。
本发明的一范例实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中可复写式非易失性存储器模块包括多个实体抹除单元,多个实体抹除单元分别包括多个实体程序化单元。此方法包括:根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码;以及根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码,其中第一磁盘阵列错误检查与校正码率不同于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的数据写入方法中第一磁盘阵列错误检查与校正码率是依据第一数目的该些第一实体程序化单元来计算,第二磁盘阵列错误检查与校正码率是依据第二数目的该些第二实体程序化单元来计算。
在本发明的一范例实施例中,上述的数据写入方法中第一程序化操作为主机程序化操作,第二程序化操作为垃圾收集操作。
在本发明的一范例实施例中,上述的数据写入方法中第一磁盘阵列错误检查与校正码率小于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的数据写入方法中根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至该些第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码的步骤还包括:读取程序化至该些第一实体程序化单元的至少一部分中的数据并且判断数据是否读取成功。
在本发明的一范例实施例中,上述的数据写入方法中读取程序化至该些第一实体程序化单元的至少一部分中的该数据并且判断该数据是否读取成功的步骤还包括:倘若数据读取失败,根据第一磁盘阵列错误校正码对程序化至该些第一实体程序化单元的至少一部分中的数据执行磁盘阵列错误校正操作,以对程序化至该些第一实体程序化单元的至少一部分中的数据之中出现的错误比特进行校正。
在本发明的一范例实施例中,上述的数据写入方法中根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至该些第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码的步骤还包括:在将数据程序化至该些第二实体程序化单元的至少一部分之后,对程序化至每一个第二实体程序化单元的数据执行读取验证操作。
本发明的一范例实施例提出一种存储器控制电路单元,用于存储器存储装置,其中存储器存储装置具有可复写式非易失性存储器模块,可复写式非易失性存储器模块包括多个实体抹除单元,多个实体抹除单元分别包括多个实体程序化单元。此存储器控制电路单元包括:主机接口、存储器接口以及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口以及存储器接口。其中存储器管理电路用以根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码。此外,存储器管理电路还用以根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码,其中,第一磁盘阵列错误检查与校正码率不同于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的存储器控制电路单元中第一磁盘阵列错误检查与校正码率是依据第一数目的该些第一实体程序化单元来计算,第二磁盘阵列错误检查与校正码率是依据第二数目的该些第二实体程序化单元来计算。
在本发明的一范例实施例中,上述的存储器控制电路单元中第一程序化操作为主机程序化操作,第二程序化操作为垃圾收集操作。
在本发明的一范例实施例中,上述的存储器控制电路单元中第一磁盘阵列错误检查与校正码率小于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的存储器控制电路单元中存储器管理电路用以根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至该些第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码的操作中,存储器管理电路还用以读取程序化至该些第一实体程序化单元的至少一部分中的数据并且判断数据是否读取成功。
在本发明的一范例实施例中,上述的存储器控制电路单元中存储器管理电路用以读取程序化至该些第一实体程序化单元的至少一部分中的该数据并且判断该数据是否读取成功的操作中,倘若数据读取失败,存储器管理电路还用以根据第一磁盘阵列错误校正码对程序化至该些第一实体程序化单元的至少一部分中的数据执行磁盘阵列错误校正操作,以对程序化至该些第一实体程序化单元的至少一部分中的数据之中出现的错误比特进行校正。
在本发明的一范例实施例中,上述的存储器控制电路单元中存储器管理电路用以根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至该些第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码的操作中,在将数据程序化至该些第二实体程序化单元的至少一部分之后,存储器管理电路还用以对程序化至每一个第二实体程序化单元的数据执行读取验证操作。
本发明的一范例实施例提出一种存储器存储装置,包括:连接接口单元、可复写式非易失性存储器模块以及存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个实体抹除单元,多个实体抹除单元分别包括多个实体程序化单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。其中存储器控制电路单元用以根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码。此外,存储器控制电路单元还用以根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码。其中,第一磁盘阵列错误检查与校正码率不同于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的存储器存储装置中第一磁盘阵列错误检查与校正码率是依据第一数目的该些第一实体程序化单元来计算,第二磁盘阵列错误检查与校正码率是依据第二数目的该些第二实体程序化单元来计算。
在本发明的一范例实施例中,上述的存储器存储装置中第一程序化操作为主机程序化操作,第二程序化操作为垃圾收集操作。
在本发明的一范例实施例中,上述的存储器存储装置中第一磁盘阵列错误检查与校正码率小于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的存储器存储装置中存储器控制电路单元用以根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至该些第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码的操作中,存储器控制电路单元还用以读取程序化至该些第一实体程序化单元的至少一部分中的数据并且判断数据是否读取成功。
在本发明的一范例实施例中,上述的存储器存储装置中存储器控制电路单元读取程序化至该些第一实体程序化单元的至少一部分中的该数据并且判断该数据是否读取成功的操作中,倘若数据读取失败,存储器控制电路单元还用以根据第一磁盘阵列错误校正码对程序化至该些第一实体程序化单元的至少一部分中的数据执行磁盘阵列错误校正操作,以对程序化至该些第一实体程序化单元的至少一部分中的数据之中出现的错误比特进行校正。
在本发明的一范例实施例中,上述的存储器存储装置中,存储器控制电路单元用以根据第二磁盘阵列错误检查与校正码率对程序化至该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至该些第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码的操作中,在将数据程序化至该些第二实体程序化单元的至少一部分之后,存储器控制电路单元还用以对程序化至每一个第二实体程序化单元的数据执行读取验证操作。
本发明的一范例实施例提出一种数据写入方法,用于可复写式非易失性存储器模块,其中可复写式非易失性存储器模块包括多个实体抹除单元,多个实体抹除单元分别包括多个实体程序化单元。此方法包括:接收主机系统的指令并根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码;根据第二磁盘阵列错误检查与校正码率对程序化至该些多个第一实体程序化单元的至少一部分中的数据执行垃圾收集操作,将数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码;以及在将数据程序化至该些第二实体程序化单元的至少一部分之后,对程序化至每一个第二实体程序化单元的数据执行读取验证操作。其中接收主机系统的指令并根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将数据程序化至该些第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码的步骤中不对程序化至每一个第一实体程序化单元的数据执行读取验证操作,其中第一磁盘阵列错误检查与校正码率小于第二磁盘阵列错误检查与校正码率。
在本发明的一范例实施例中,上述的存储器存储装置中第一磁盘阵列错误检查与校正码率是依据第一数目的该些第一实体程序化单元来计算,第二磁盘阵列错误检查与校正码率是依据第二数目的该些第二实体程序化单元来计算。
基于上述,本发明提供了一种数据写入方法、存储器控制电路单元与存储器存储装置,执行主机程序化操作,并且在将数据程序化至每一个第一实体程序化单元后不需执行读取校验的操作,之后再执行垃圾收集操作,而垃圾收集操作是在背景(background))的情形下执行,因此执行垃圾收集操作将数据程序化至每一个第二实体程序化单元后执行读取校验的操作不会占用可复写式非易失性存储器模块的频宽。此外,本发明根据较大的第二磁盘阵列错误检查与校正码率执行垃圾收集操作,产生的第二磁盘阵列错误检查与校正码较少,不需牺牲可复写式非易失性存储器模块的容量来存放过多的第二磁盘阵列错误检查与校正码,从而存放更多的数据,而且根据较小的第一磁盘阵列错误检查与校正码率执行主机程序化操作,节省了执行读取校验的操作时间,提高了主机系统的性能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图6是根据本发明的一范例实施例所示出的多框架编码的示意图。
图7是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
图8是根据本发明的一范例实施例所示出的对数据执行主机程序化操作的示意图。
图9是根据本发明的一范例实施例所示出的对数据执行垃圾收集操作的示意图。
图10是根据本发明的一范例实施例所示出的数据写入方法的流程图。
图11是根据本发明的另一范例实施例所示出的数据写入方法的流程图。
【符号说明】
10:存储器存储装置
11:主机系统
110:系统总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:随身盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位系统模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
502:存储器管理电路
504:主机接口
506:存储器接口
508:错误检查与校正电路
510:缓冲存储器
512:电源管理电路
601:存储区
602:闲置区
610(0)~610(B):实体抹除单元
612(0)~612(C):逻辑单元
810(0)~810(E):实体程序化单元
P1-P128:第一实体程序化单元、第二实体程序化单元
820:编码数据
801(1)、801(2)、801(r):位置
b11-bp1、b12-bp2、b1r-bpr、bo1-bor:比特
RAID ECC0-RAID ECC4:磁盘阵列错误校正码
S1001-S1003、S1101-S1115:数据写入方法的步骤
具体实施方式
一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(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可例如是随身盘201、存储卡202、固态硬盘(Solid State Drive,SSD)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(NearField Communication,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可为其所使用的安全数字(SecureDigital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embedded Multi MediaCard,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)存储装置342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
连接接口单元402用以将存储器存储装置10电性连接至主机系统11。在本范例实施例中,连接接口单元402是相容于串行高级附件(Serial Advanced TechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用快闪存储器(Universal Flash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。
在本范例实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,并且一存储单元的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误校正码等管理数据)。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。
存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。
在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,存储器管理电路502的控制指令也可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。
主机接口504是电性连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口506是电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。
在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510、错误检查与校正电路508与电源管理电路512。
缓冲存储器510是电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是电性连接至存储器管理电路502并且用以控制存储器存储装置10的电源。
错误检查与校正电路508是电性连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误校正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误校正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误校正码和/或错误检查码,并且错误检查与校正电路508会依据此错误校正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
在本范例实施例中,错误检查与校正电路508可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(low density parity code,LDPC)、BCH码、回旋码(convolutional code)或涡轮码(turbo code)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码(Reed-solomon codes,RS codes)算法或互斥或(XOR)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路508可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。
图6是根据本发明的一范例实施例所示出的多框架编码的示意图。
请参照图6,以编码实体程序化单元810(0)~810(E)所存储的数据来产生相对应的编码数据820为例,实体程序化单元810(0)~810(E)中的每一者所存储的至少部分数据可视为一个框架。在多框架编码中,是以每一个比特(或,字节)所在的位置为依据来对实体程序化单元810(0)~810(E)中的数据进行编码。例如,位于位置801(1)的比特b11、b21、…、bp1会被编码为编码数据820中的比特bo1,位于位置801(2)的比特b12、b22、…、bp2会被编码为编码数据820中的比特bo2;以此类推,位于位置801(r)的比特b1r、b2r、…、bpr会被编码为编码数据820中的比特bor。尔后,根据编码数据820即可对从实体程序化单元810(0)~810(E)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。
此外,在图6的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(E)所存储的数据中的数据比特(data bits)所对应的冗余比特(redundancy bits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于实体程序化单元810(0)中的数据比特进行单框架编码而产生的。在本范例实施例中,假设在读取实体程序化单元810(0)中的数据时,从实体程序化单元810(0)中读取出的数据可以先使用实体程序化单元810(0)中的冗余比特(例如,单框架编码的编码数据)来解码以进行错误检测与更正。然而,当使用实体程序化单元810(0)中的冗余比特进行解码发生失败(例如,解码后实体程序化单元810(0)中所存储的数据的错误比特数大于一门槛值)时,可以使用重新读取(Retry-Read)机制尝试从实体程序化单元810(0)中读取出正确的数据。而当无法通过重新读取(Retry-Read)机制从实体程序化单元810(0)中读取出正确的数据时,可以读取编码数据820以及实体程序化单元810(1)~810(E)的数据,并根据编码数据820以及实体程序化单元810(1)~810(E)的数据进行解码,以尝试更正实体程序化单元810(0)中所存储的数据中存在的错误。也就是说,在本范例实施例中,当使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取(Retry-Read)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。
图7是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
须注意的是,在以下的范例实施例中,描述可复写式非易失性存储器模块406的实体抹除单元的管理时,以“选择”与“分组”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块406的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块406的实体抹除单元进行操作。
请参照图7,存储器管理电路502会将可复写式非易失性存储器模块406的实体抹除单元610(0)~610(B)分组为存储区601与闲置(spare)区602。例如,实体抹除单元610(0)~610(A)属于存储区601,而实体抹除单元610(A+1)~610(B)属于闲置区602。在本范例实施例中,一个实体抹除单元是指一个实体抹除单元。然而,在另一范例实施例中,一个实体抹除单元也可以包含多个实体抹除单元。此外,存储器管理电路502可利用标记等方式来将某一个实体抹除单元关联至存储区601与闲置区602的其中之一。
在存储器存储装置10的运作过程中,某一个实体抹除单元与存储区601或闲置区602的关联关系可能会动态地变动。例如,当接收到来自主机系统11的写入数据时,存储器管理电路502会从闲置区602中选择一个实体抹除单元以存储此写入数据的至少一部分数据并且将这个实体抹除单元关连至存储区601。此外,在将属于存储区601的某一个实体抹除单元抹除以清除其中的数据之后,存储器管理电路502会将这个被抹除的实体抹除单元关联至闲置区602。
在本范例实施例中,属于闲置区602的实体抹除单元也称为闲置实体抹除单元,而属于存储区601的实体抹除单元也可称为非闲置(non-spare)实体抹除单元。属于闲置区602的每一个实体抹除单元皆是被抹除的实体抹除单元并且没有存储任何数据,而属于存储区601的每一个实体抹除单元皆存储有数据。更进一步,属于闲置区602的每一个实体抹除单元皆不会存储任何有效(valid)数据,而属于存储区601的每一个实体抹除单元皆可能存储有效数据和/或无效(invalid)数据。
在一范例实施例中,存储器管理电路502会配置逻辑单元612(0)~612(C)以映射存储区601中的实体抹除单元。在本范例实施例中,主机系统11是通过逻辑地址(logicaladdress,LA)来存取属于存储区601的实体抹除单元。因此,逻辑单元612(0)~612(C)中的每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,逻辑单元612(0)~612(C)中的每一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(C)中的每一个逻辑单元可被映射至一或多个实体抹除单元。
在本范例实施例中,存储器管理电路502会将逻辑单元与实体抹除单元之间的映射关系(也称为逻辑-实体映射关系)记录于至少一逻辑-实体映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-实体映射表来执行对于存储器存储装置10的数据存取。
图8是根据本发明的一范例实施例所示出的对数据执行主机程序化操作的示意图。
请参照图8,在对数据执行主机程序化操作时,存储器管理电路502依据可复写式非易失性存储器模块406的特性(例如将数据程序化至可复写式非易失性存储器模块406的多个实体程序化单元中,每程序化至31个实体程序化单元时可能会出现其中一个实体程序化单元的数据出现错误比特的状况)将第一磁盘阵列错误检查与校正码率(以下称第一RAID ECC RATE)设置为较低的磁盘阵列错误检查与校正码率,例如将第一RAID ECC RATE设置为31:1。存储器管理电路502根据设置为31:1的第一RAID ECC RATE将数据程序化至可复写式非易失性存储器模块406的具有第一数目的多个第一实体程序化单元的至少一部分中,也即是说,存储器管理电路502将数据每程序化至31个第一实体程序化单元,会对应产生1个实体程序化单元大小的第一磁盘阵列错误校正码(以下称第一RAID ECC)。
如图8所示,以将数据程序化至第一实体程序化单元P1~P128为例,当存储器管理电路502根据第一RAID ECC RATE将数据程序化至第一实体程序化单元P1~P31时,对应产生1个实体程序化单元大小的RAID ECC1,并且RAID ECC1存储于第一实体程序化单元P32中,以此类推,当存储器管理电路502将数据程序化至第一实体程序化单元P33~P63时,对应产生1个实体程序化单元大小的RAID ECC2,并且RAID ECC2存储于第一实体程序化单元P64中,当存储器管理电路502将数据程序化至第一实体程序化单元P65~P95时,对应产生1个实体程序化单元大小的RAID ECC3,并且RAID ECC3存储于第一实体程序化单元P96中,当存储器管理电路502将数据程序化至第一实体程序化单元P97~P127时,对应产生1个实体程序化单元大小的RAID ECC4,并且RAID ECC4存储于第一实体程序化单元P128中。此时,在将数据程序化至124个第一实体程序化单元(也即是将数据程序化至第一实体程序化单元P1~P31、P33~P63、P65~P95以及P97~P127)时,存储器管理电路502对应产生4个实体程序化单元大小的第一RAID ECC(也即是包括RAID ECC1~RAID ECC4)。也就是说,存储器管理电路502执行主机程序化操作并根据第一RAID ECC RATE将数据程序化至124个第一实体程序化单元(也即是第一实体程序化单元P1~P31、P33~P63、P65~P95以及P97~P127)时,对应产生的第一RAID ECC(也即是包括RAID ECC1~RAID ECC4)存储于第一实体程序化单元P32、P64、P96以及P128中。在本范例实施例中,第一实体程序化单元P1~P31、P33~P63、P65~P95以及P97~P127中的每一者所存储的至少部分数据可视为一个框架,举例来说,第一实体程序化单元P1~P31中所存储的至少部分数据可视为一个框架。第一RAID ECC(也即是RAID ECC1~RAID ECC4)是分别依据存储于第一实体程序化单元P1~P31、P33~P63、P65~P95以及P97~P127中的至少部分数据进行多框架编码对应产生。在上述范例实施例中,在对数据执行主机程序化操作时,存储器管理电路502不对程序化至每一个第一实体程序化单元P1~P31、P33~P63、P65~P95以及P97~P127中的数据执行读取验证操作。
图9是根据本发明的一范例实施例所示出的对数据执行垃圾收集操作的示意图。
请参照图9,于一范例实施例中,在执行垃圾收集操作时,存储器管理电路502将第二磁盘阵列错误检查与校正码率(以下称第二RAID ECC RATE)设置为高于第一RAID ECCRATE,例如将第二RAID ECC RATE设置为127:1。存储器管理电路502根据设置为127:1的第二RAID ECC RATE将已程序化至具有第一数目的多个第一实体程序化单元的至少一部分中的数据程序化至可复写式非易失性存储器模块406具有第二数目的多个第二实体程序化单元的至少一部分中,也即是说,存储器管理电路502将数据每程序化至127个第二实体程序化单元,会对应产生1个实体程序化单元大小的第二磁盘阵列错误校正码(以下称第二RAIDECC)。
如图9所示,当存储器管理电路502根据第二RAID ECC RATE将数据程序化至第二实体程序化单元P1~P127时,对应产生1个实体程序化单元大小的RAID ECC0,并且RAIDECC0存储于第二实体程序化单元128中。也就是说,执行垃圾收集操作时,存储器管理电路502根据第二RAID ECC RATE将数据程序化至127个第二实体程序化单元(也即是第二实体程序化单元P1~P127),对应产生的第二RAID ECC(也即是RAID ECC0)存储于第二实体程序化单元P128。其中,第二实体程序化单元P1~P127中的每一者所存储的至少部分数据可视为一个框架。第二RAID ECC(也即是RAID ECC0)是依据存储于第二实体程序化单元P1~P127中的至少部分数据进行多框架编码对应产生。在上述范例实施例中,在垃圾收集操作时,存储器管理电路502对程序化至每一个第二实体程序化单元P1~P127中的数据执行读取验证操作。
于一范例实施例中,存储器管理电路502接收主机系统11发出的指令,执行主机程序化操作。存储器管理电路502根据第一RAID ECC RATE将数据程序化至可复写式非易失性存储器模块406中具有第一数目的多个第一实体程序化单元的至少一部分中,并且对应产生第一RAID ECC。在一范例实施例中,存储器管理电路502根据可复写式非易失性存储器模块406本身的特性,将第一RAID ECC RATE设置为31:1。
存储器管理电路502读取已程序化至可复写式非易失性存储器模块406中具有第一数目的多个第一实体程序化单元的至少一部分中的数据时,倘若使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取机制读取失败,存储器管理电路502会根据多框架编码产生的第一RAID ECC对已程序化至可复写式非易失性存储器模块406中具有第一数目的多个第一实体程序化单元的至少一部分中的数据执行磁盘阵列错误校正操作,以对数据之中出现的错误比特进行校正。在本范例实施例中,在对数据执行主机程序化操作时,存储器管理电路502不对程序化至每一个第一实体程序化单元中的数据执行读取验证操作。
之后,存储器管理电路502执行垃圾收集操作,根据第二RAID ECC RATE将已程序化至具有第一数目的多个第一实体程序化单元的至少一部分中的数据程序化至具有第二数目的多个第二实体程序化单元的至少一部分中,并且对应产生第二RAID ECC。在一范例实施例中,存储器管理电路502将第二RAID ECC RATE设置为127:1。并且在程序化至每一个第二实体程序化单元之后,存储器管理电路502会对已程序化至第二实体程序化单元的数据执行读取验证操作,以判断数据是否被正确地程序化至每一个第二实体程序化单元,若发生读取验证操作失败,则判断数据未被正确地程序化至第二实体程序化单元,即放弃将数据程序化至此第二实体程序化单元,并且将数据程序化至不同于此第二实体程序化单元的另一实体程序化单元(也称为第三实体程序化单元)。若未发生读取验证操作失败,则判断数据已被正确地程序化至第二实体程序化单元,结束此次垃圾收集操作。
具体来说,在上述范例实施例中,存储器管理电路502根据第一RAID ECC RATE执行主机程序化操作对应产生的第一RAID ECC较存储器管理电路502根据第二RAID ECCRATE执行垃圾收集操作对应产生的第二RAID ECC多,以于存储器管理电路502执行主机程序化操作之后可以根据磁盘阵列错误校正操作以及对应产生的第一RAID ECC来校正数据中出现的错误比特,此外,存储器管理电路502不会对程序化至每一个第一实体程序化单元中的数据执行读取验证操作。
图10是根据本发明的一范例实施例所示出的数据写入方法的流程图。
请参照图10,在步骤S1001中,存储器管理电路502根据第一RAID ECC RATE对数据执行第一程序化操作,将数据程序化至具有第一数目的多个第一实体程序化单元的至少一部分中,并且对应产生第一RAID ECC。
在步骤S1003中,存储器管理电路502根据第二RAID ECC RATE对程序化至具有第一数目的该些第一实体程序化单元的至少一部分中的数据执行第二程序化操作,将数据程序化至具有第二数目的多个第二实体程序化单元的至少一部分中,并且对应产生第二RAIDECC,其中,第一RAID ECC RATE小于第二RAID ECC RATE。
图11是根据本发明的另一范例实施例所示出的数据写入方法的流程图。
请参照图11,在步骤S1101中,存储器管理电路502接收主机系统11的指令并根据第一RAID ECC RATE对数据执行主机程序化操作,存储器管理电路502将数据程序化至具有第一数目的多个第一实体程序化单元的至少一部分中,并且对应产生第一RAID ECC。并且在上述步骤S1101中,存储器管理电路502不对程序化至每一个第一实体程序化单元的数据执行读取验证操作。
在步骤S1103中,存储器管理电路502读取程序化至具有第一数目的多个第一实体程序化单元的至少一部分中的数据并且判断数据是否读取成功。
在步骤S1105中,倘若数据读取失败,存储器管理电路502根据第一RAID ECC对已程序化至具有第一数目的多个第一实体程序化单元的至少一部分中的数据执行磁盘阵列错误校正操作,以对数据之中出现的错误比特进行校正。
在步骤S1107中,倘若数据读取成功,存储器管理电路502根据第二RAID ECC RATE对程序化至具有第一数目的该些第一实体程序化单元的至少一部分中的数据执行垃圾收集操作,存储器管理电路502将数据程序化至具有第二数目的多个第二实体程序化单元的至少一部分中,并且对应产生第二RAID ECC,其中,第一RAID ECC RATE小于第二RAID ECCRATE。
在步骤S1109中,在将数据程序化至具有第二数目的该些第二实体程序化单元之后,存储器管理电路502对程序化至每一个第二实体程序化单元的数据执行读取验证操作,以判断数据是否被正确地程序化至每一个第二实体程序化单元。
在步骤S1111中,存储器管理电路502会判断读取验证操作是否失败。
在步骤S1113中,若发生读取验证操作失败,则存储器管理电路502判断数据未被正确地程序化至第二实体程序化单元,即放弃将数据程序化至此第二实体程序化单元,并且将数据程序化至第三实体程序化单元。
在步骤S1115中,若未发生读取验证操作失败,则判断数据已被正确地程序化至第二实体程序化单元,结束此次垃圾收集操作。
综上所述,本发明提供了一种数据写入方法、存储器控制电路单元与存储器存储装置,在执行主机程序化操作时,存储器管理电路502依据可复写式非易失性存储器模块的特性将RAID ECC RATE设置为较低的第一RAID ECC RATE,以产生较多的第一RAID ECC,于执行错误校正操作后利用较多的第一RAID ECC将出现的错误比特进行校正,并且在将数据程序化至每一个第一实体程序化单元后,存储器管理电路502不需对每一个第一实体程序化单元中存储的数据执行读取校验的操作,之后在执行垃圾收集操作时,存储器管理电路502将RAID ECC RATE设置为较高的第二RAID ECC RATE,以产生较少的第二RAID ECC,避免存放过多的RAID ECC,从而存放更多的数据。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。
Claims (23)
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所述的存储器存储装置,其中所述存储器控制电路单元用以根据所述第二磁盘阵列错误检查与校正码率对程序化至所述多个第一实体程序化单元的至少一部分中的所述数据执行所述第二程序化操作,将所述数据程序化至所述多个第二实体程序化单元的至少一部分中,并且产生所述第二磁盘阵列错误校正码的操作中,
在将所述数据程序化至所述多个第二实体程序化单元的至少一部分之后,所述存储器控制电路单元还用以对程序化至每一个第二实体程序化单元的所述数据执行读取验证操作。
22.一种数据写入方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个实体抹除单元,所述多个实体抹除单元分别包括多个实体程序化单元,所述数据写入方法包括:
接收主机系统的指令并根据第一磁盘阵列错误检查与校正码率对数据执行第一程序化操作,将所述数据程序化至多个第一实体程序化单元的至少一部分中,并且产生第一磁盘阵列错误校正码;
根据第二磁盘阵列错误检查与校正码率对程序化至所述多个第一实体程序化单元的至少一部分中的所述数据执行垃圾收集操作,将所述数据程序化至多个第二实体程序化单元的至少一部分中,并且产生第二磁盘阵列错误校正码;以及
在将所述数据程序化至所述多个第二实体程序化单元的至少一部分之后,对程序化至每一个第二实体程序化单元的所述数据执行读取验证操作,
其中接收所述主机系统的指令并根据所述第一磁盘阵列错误检查与校正码率对所述数据执行所述第一程序化操作,将所述数据程序化至所述多个第一实体程序化单元的至少一部分中,并且产生所述第一磁盘阵列错误校正码的步骤中不对程序化至每一个实体程序化单元的所述数据执行读取验证操作,
其中所述第一磁盘阵列错误检查与校正码率小于所述第二磁盘阵列错误检查与校正码率。
23.根据权利要求22所述的数据写入方法,其中,所述第一磁盘阵列错误检查与校正码率是依据第一数目的所述多个第一实体程序化单元来计算,所述第二磁盘阵列错误检查与校正码率是依据第二数目的所述多个第二实体程序化单元来计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910116652.4A CN111580741B (zh) | 2019-02-15 | 2019-02-15 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910116652.4A CN111580741B (zh) | 2019-02-15 | 2019-02-15 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580741A true CN111580741A (zh) | 2020-08-25 |
CN111580741B CN111580741B (zh) | 2023-06-13 |
Family
ID=72122361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910116652.4A Active CN111580741B (zh) | 2019-02-15 | 2019-02-15 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111580741B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799874A (zh) * | 2021-02-23 | 2021-05-14 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN113299329A (zh) * | 2021-06-10 | 2021-08-24 | 深圳宏芯宇电子股份有限公司 | 存储装置及其控制方法、控制电路单元 |
CN113360429A (zh) * | 2021-06-21 | 2021-09-07 | 群联电子股份有限公司 | 数据重建方法、存储器存储装置及存储器控制电路单元 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693760A (zh) * | 2011-03-24 | 2012-09-26 | 扬智科技股份有限公司 | Nand快闪存储器的错误校正方法 |
GB201421545D0 (en) * | 2013-12-11 | 2015-01-21 | Ibm | Unclonable ID based chip-to-chip communication |
JP2015122132A (ja) * | 2013-12-20 | 2015-07-02 | 富士通セミコンダクター株式会社 | メモリ装置及びメモリ装置の制御方法 |
CN105005450A (zh) * | 2014-04-25 | 2015-10-28 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
CN106897023A (zh) * | 2015-12-18 | 2017-06-27 | 群联电子股份有限公司 | 数据读取方法、存储器控制电路单元及存储器储存装置 |
CN109214189A (zh) * | 2018-08-22 | 2019-01-15 | 深圳市腾讯网络信息技术有限公司 | 识别程序漏洞的方法、装置、存储介质和电子设备 |
-
2019
- 2019-02-15 CN CN201910116652.4A patent/CN111580741B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693760A (zh) * | 2011-03-24 | 2012-09-26 | 扬智科技股份有限公司 | Nand快闪存储器的错误校正方法 |
GB201421545D0 (en) * | 2013-12-11 | 2015-01-21 | Ibm | Unclonable ID based chip-to-chip communication |
JP2015122132A (ja) * | 2013-12-20 | 2015-07-02 | 富士通セミコンダクター株式会社 | メモリ装置及びメモリ装置の制御方法 |
CN105005450A (zh) * | 2014-04-25 | 2015-10-28 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
CN106897023A (zh) * | 2015-12-18 | 2017-06-27 | 群联电子股份有限公司 | 数据读取方法、存储器控制电路单元及存储器储存装置 |
CN109214189A (zh) * | 2018-08-22 | 2019-01-15 | 深圳市腾讯网络信息技术有限公司 | 识别程序漏洞的方法、装置、存储介质和电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799874A (zh) * | 2021-02-23 | 2021-05-14 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112799874B (zh) * | 2021-02-23 | 2023-06-13 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN113299329A (zh) * | 2021-06-10 | 2021-08-24 | 深圳宏芯宇电子股份有限公司 | 存储装置及其控制方法、控制电路单元 |
CN113360429A (zh) * | 2021-06-21 | 2021-09-07 | 群联电子股份有限公司 | 数据重建方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN111580741B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI628660B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
TWI658463B (zh) | 資料存取方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI640865B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111880749A (zh) | 数据读取方法、存储器存储装置及存储器控制电路单元 | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN107146638B (zh) | 译码方法、存储器储存装置及存储器控制电路单元 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN111580741B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
TWI628543B (zh) | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113140253A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN109901784B (zh) | 数据存取方法、存储器控制电路单元以及存储器储存装置 | |
TWI709850B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN113724774B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109697134B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN109559774B (zh) | 解码方法、存储器控制电路单元以及存储器存储装置 | |
CN112051963A (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN112799874B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110874282B (zh) | 数据存取方法、存储器控制电路单元与存储器存储装置 | |
CN111326186B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
US11531589B1 (en) | Decoding method, memory storage device, and memory control circuit unit | |
TWI763310B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
TWI834149B (zh) | 表格管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 | |
TWI681393B (zh) | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN111435604B (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 |