CN106775479A - 存储器管理方法、存储器储存装置及存储器控制电路单元 - Google Patents
存储器管理方法、存储器储存装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN106775479A CN106775479A CN201611190500.1A CN201611190500A CN106775479A CN 106775479 A CN106775479 A CN 106775479A CN 201611190500 A CN201611190500 A CN 201611190500A CN 106775479 A CN106775479 A CN 106775479A
- Authority
- CN
- China
- Prior art keywords
- data
- solid element
- unit
- rule
- ratio
- 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
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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- 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/0608—Saving storage space on storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0647—Migration mechanisms
-
- 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]
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种存储器管理方法、存储器储存装置及存储器控制电路单元。所述方法包括:获得可复写式非易失性存储器模块中用以储存来自主机系统的数据的第一实体单元的使用状况;根据所述使用状况决定第一规则;以及根据所述第一规则执行第一操作。所述第一操作包括:将来自主机系统的第一数据储存至所述第一实体单元中;以及将来自可复写式非易失性存储器模块的第二数据储存至第二实体单元中,其中所述第一规则对应于所述第一数据的数据量与所述第二数据的数据量的第一比例。藉此,存储器储存装置可稳定地储存来自外部与内部的数据。
Description
技术领域
本发明涉及存储器管理技术领域,具体涉及一种存储器管理方法、存储器储存装置及存储器控制电路单元。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器装置中会配置正常使用的实体区块与闲置(spare)实体区块。当储存来自主机系统的数据时,数据会被储存至闲置实体区块。有储存来自主机系统的数据的闲置实体区块会转变为正常使用的实体区块。当某一个正常使用的实体区块中的数据被主机系统删除时,此实体区块会被抹除并且转变为闲置实体区块。
为了使可复写式非易失性存储器装置可以正常运作,可复写式非易失性存储器装置中闲置实体区块的总数往往会被维持在大于一个预设数目。若闲置实体区块的总数少于此预设数目时,一个垃圾收集(garbage collection)程序会被执行。在垃圾收集程序中,分散在可复写式非易失性存储器装置中的有效数据会被收集至并且集中回存到可复写式非易失性存储器装置中,以释放出新的闲置实体区块。
在垃圾收集程序中,若主机系统持续储存数据,则可复写式非易失性存储器装置可能会在执行垃圾收集程序的同时一并储存来自主机系统的数据。然而,若未适当地规划数据的储存策略,可能导致来自主机系统的数据与垃圾收集程序所收集的数据同时占满所有剩余的闲置实体单元。
发明内容
有鉴于此,本发明提供一种存储器管理方法、存储器储存装置及存储器控制电路单元,可稳定地储存来自外部与内部的数据。
本发明的一实施例提供一种存储器管理方法,其用于包括多个实体单元的可复写式非易失性存储器模块,所述存储器管理方法包括:获得所述多个实体单元中的第一实体单元的使用状况,其中所述第一实体单元用以储存来自主机系统的数据;根据所述第一实体单元的所述使用状况决定第一规则;以及根据所述第一规则执行第一操作,其中所述第一操作包括:将来自所述主机系统的第一数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的第二数据储存至所述多个实体单元中的一第二实体单元中,其中所述第一规则对应于第一比例,且所述第一比例为所述第一数据的数据量与所述第二数据的数据量的比例。
在本发明的一实施例中,所述的存储器管理方法还包括:在执行所述第一操作之后,根据所述第一实体单元的所述使用状况决定第二规则;以及根据所述第二规则执行第二操作,其中所述第二操作包括:将来自所述主机系统的第三数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的一第四数据储存至所述第二实体单元中,其中所述第二规则对应于第二比例,所述第二比例为所述第三数据的数据量与所述第四数据的数据量的比例,其中所述第一比例不同于所述第二比例。
在本发明的一实施例中,根据所述第一实体单元的所述使用状况决定所述第二规则的步骤是在所述第一实体单元的所述使用状况符合预设条件之后执行,而所述存储器管理方法还包括:在执行所述第一操作之后,若所述第一实体单元的所述使用状况不符合所述预设条件,持续根据所述第一规则执行所述第一操作,其中所述预设条件对应于所述第一实体单元的空间使用率。
在本发明的一实施例中,所述的存储器管理方法还包括:从所述多个实体单元中的第三实体单元收集所述第二数据;以及抹除所述第三实体单元。
在本发明的一实施例中,所述的存储器管理方法还包括:获得所述第三实体单元的有效计数,其中所述有效计数对应于所述第三实体单元所储存的有效数据的总数据量;以及根据所述有效计数决定所述第一比例。
在本发明的一实施例中,所述的存储器管理方法还包括:获得所述多个实体单元中的闲置实体单元的总数;以及若所述闲置实体单元的所述总数小于门槛值,启动包含所述第一操作的数据整并操作并禁能损耗平衡操作,其中所述损耗平衡操作用以将数据从所述多个实体单元中具有第一损耗程度的至少一实体单元搬移至所述多个实体单元中具有第二损耗程度的至少一实体单元,其中所述第二损耗程度高于所述第一损耗程度。
本发明的另一实施例提供一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述可复写式非易失性存储器模块包括多个实体单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块,其中所述存储器控制电路单元用以获得所述多个实体单元中的第一实体单元的使用状况,其中所述第一实体单元用以储存来自所述主机系统的数据,其中所述存储器控制电路单元还用以根据所述第一实体单元的所述使用状况决定第一规则,其中所述存储器控制电路单元还用以根据所述第一规则执行第一操作,其中所述第一操作包括:将来自所述主机系统的第一数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的第二数据储存至所述多个实体单元中的第二实体单元中,其中所述第一规则对应于第一比例,所述第一比例为所述第一数据的数据量与所述第二数据的数据量的比例。
在本发明的一实施例中,在执行所述第一操作之后,所述存储器控制电路单元还用以根据所述第一实体单元的所述使用状况决定第二规则,其中所述存储器控制电路单元还用以根据所述第二规则执行第二操作,其中所述第二操作包括:将来自所述主机系统的第三数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的第四数据储存至所述第二实体单元中,其中所述第二规则对应于第二比例,所述第二比例为所述第三数据的数据量与所述第四数据的数据量的比例,其中所述第一比例不同于所述第二比例。
在本发明的一实施例中,所述存储器控制电路单元根据所述第一实体单元的所述使用状况决定所述第二规则的操作是在所述第一实体单元的所述使用状况符合一预设条件之后执行,其中在执行所述第一操作之后,若所述第一实体单元的所述使用状况不符合所述默认条件,所述存储器控制电路单元还用以持续根据所述第一规则执行所述第一操作,其中所述预设条件对应于所述第一实体单元的空间使用率。
在本发明的一实施例中,所述存储器控制电路单元还用以从所述多个实体单元中的第三实体单元收集所述第二数据,其中所述存储器控制电路单元还用以抹除所述第三实体单元。
在本发明的一实施例中,所述存储器控制电路单元还用以获得有效计数,其中所述有效计数对应于所述第三实体单元所储存的有效数据的总数据量,其中所述存储器控制电路单元还用以根据所述有效计数决定所述第一比例。
在本发明的一实施例中,所述存储器控制电路单元还用以获得所述多个实体单元中的闲置实体单元的总数,其中若所述闲置实体单元的所述总数小于门槛值,所述存储器控制电路单元还用以启动包含所述第一操作的数据整并操作并禁能损耗平衡操作,其中所述损耗平衡操作用以将数据从所述多个实体单元中具有第一损耗程度的至少一实体单元搬移至所述多个实体单元中具有第二损耗程度的至少一实体单元,其中所述第二损耗程度高于所述第一损耗程度。
本发明的另一实施例提供一种存储器控制电路单元,其用于控制包括多个实体单元的可复写式非易失性存储器模块,所述存储器控制电路单元包括主机接口、存储器接口及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口与所述存储器接口,其中所述存储器管理电路用以获得所述多个实体单元中的第一实体单元的使用状况,其中所述第一实体单元用以储存来自所述主机系统的数据,其中所述存储器管理电路还用以根据所述第一实体单元的所述使用状况决定第一规则,其中所述存储器管理电路还用以根据所述第一规则执行第一操作,其中所述第一操作包括:将来自所述主机系统的第一数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的第二数据储存至所述多个实体单元中的第二实体单元中,其中所述第一规则对应于第一比例,所述第一比例为所述第一数据的数据量与所述第二数据的数据量的比例。
在本发明的一实施例中,所述第一实体单元的所述使用状况对应于所述第一实体单元所储存的数据的总数据量。
在本发明的一实施例中,在执行所述第一操作之后,所述存储器管理电路还用以根据所述第一实体单元的所述使用状况决定第二规则,其中所述存储器管理电路还用以根据所述第二规则执行第二操作,其中所述第二操作包括:将来自所述主机系统的第三数据储存至所述第一实体单元中;以及将来自所述可复写式非易失性存储器模块的第四数据储存至所述第二实体单元中,其中所述第二规则对应于第二比例,所述第二比例为所述第三数据的数据量与所述第四数据的数据量的比例,其中所述第一比例不同于所述第二比例。
在本发明的一实施例中,所述存储器管理电路根据所述第一实体单元的所述使用状况决定所述第二规则的操作是在所述第一实体单元的所述使用状况符合预设条件之后执行,其中在执行所述第一操作之后,若所述第一实体单元的所述使用状况不符合所述默认条件,所述存储器管理电路还用以持续根据所述第一规则执行所述第一操作,其中所述预设条件对应于所述第一实体单元的空间使用率。
在本发明的一实施例中,所述存储器管理电路还用以从所述多个实体单元中的第三实体单元收集所述第二数据,其中所述存储器管理电路还用以抹除所述第三实体单元。
在本发明的一实施例中,所述存储器管理电路还用以获得有效计数,其中所述有效计数对应于所述第三实体单元所储存的有效数据的总数据量,其中所述存储器管理电路还用以根据所述有效计数决定所述第一比例。
在本发明的一实施例中,所述存储器管理电路还用以获得所述多个实体单元中的闲置实体单元的总数,其中若所述闲置实体单元的所述总数小于门槛值,所述存储器管理电路还用以启动包含所述第一操作的数据整并操作并禁能损耗平衡操作,其中所述损耗平衡操作用以将数据从所述多个实体单元中具有第一损耗程度的至少一实体单元搬移至所述多个实体单元中具有第二损耗程度的至少一实体单元,其中所述第二损耗程度高于所述第一损耗程度。
基于上述,在获得用以储存来自主机系统的数据的第一实体单元的使用状况后,第一规则会被相应地决定并且用以执行第一操作。在第一操作中,来自主机系统的第一数据会被储存至所述第一实体单元中并且来自可复写式非易失性存储器模块的第二数据会被储存至第二实体单元中,其中所述第一规则对应于所述第一数据的数据量与所述第二数据的数据量的第一比例。透过适当地决定此第一规则,存储器储存装置即可稳定地储存来自主机系统与可复写式非易失性存储器模块的数据。
为让本发明的上述特征和优点能还明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图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)、910(0)~910(M)、910(M+1)~910(P):实体单元
612(0)~612(C):逻辑单元
701~704:数据
710(0):开启区块
710(1):回收节点
812(0)~812(N-1):实体程序化单元
S1001:步骤(获得可复写式非易失性存储器模块中的第一实体单元的使用状况)
S1002:步骤(根据所述第一实体单元的使用状况决定第一规则)
S1003:步骤(根据所述第一规则执行第一操作)
S1004:步骤(将来自主机系统的第一数据储存至所述第一实体单元中)
S1005:步骤(将来自所述可复写式非易失性存储器模块的第二数据储存至所述多个实体单元中的至少一第二实体单元中)
S1101:步骤(获得可复写式非易失性存储器模块中闲置实体单元的总数)
S1102:步骤(判断所述闲置实体单元的总数是否小于一第一门槛值)
S1103:步骤(启动数据整并操作并禁能损耗平衡操作)
S1104:步骤(获得可复写式非易失性存储器模块中的第一实体单元的使用状况)
S1105:步骤(根据所述第一实体单元的使用状况决定一规则)
S1106:步骤(根据所述规则执行数据整并操作)
S1107:步骤(判断所述闲置实体单元的总数是否大于第二门槛值)
S1108:步骤(结束数据整并操作并致能损耗平衡操作)
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模块(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可例如是近距离无线通信(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可为其所使用的安全数字(Secure Digital,SD)卡32、小型快闪(Compact Flash,CF)卡33或嵌入式储存装置34等各式非易失性存储器储存装置。嵌入式储存装置34包括嵌入式多媒体卡(embedded Multi Media Card,eMMC)341和/或嵌入式多芯片封装(embedded Multi Chip Package,eMCP)储存装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式储存装置。
图4是根据本发明的一实施例所显示的存储器储存装置的概要方块图。
请参照图4,存储器储存装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。
连接接口单元402用以将存储器储存装置10连接至主机系统11。在本实施例中,连接接口单元402是兼容于序列先进附件(Serial Advanced Technology Attachment,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接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(MemoryStick,MS)接口标准、MCP接口标准、MMC接口标准、eMMC接口标准、通用闪存(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。
存储器控制电路单元404用以执行以硬件型式或韧体型式实作的多个逻辑栅或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以储存主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶记忆胞(SingleLevel Cell,SLC)NAND型闪存模块(即,一个记忆胞中可储存1个位的闪存模块)、多阶记忆胞(Multi Level Cell,MLC)NAND型闪存模块(即,一个记忆胞中可储存2个位的闪存模块)、复数阶记忆胞(Triple Level Cell,TLC)NAND型闪存模块(即,一个记忆胞中可储存3个位的闪存模块)、其他闪存模块或其他具有相同特性的存储器模块。
可复写式非易失性存储器模块406中的每一个记忆胞是以电压(以下亦称为临界电压)的改变来储存一或多个位。具体来说,每一个记忆胞的控制栅极(control gate)与通道之间有一个电荷捕捉层。透过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变记忆胞的临界电压。此改变记忆胞的临界电压的操作亦称为“把数据写入至记忆胞”或“程序化(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标准、PCI Express标准、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还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。
错误检查与校正电路508是连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正操作。
缓冲存储器510是连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器储存装置10的电源。
图6是根据本发明的一实施例所显示的管理可复写式非易失性存储器模块的示意图。须注意的是,在以下的实施例中,描述可复写式非易失性存储器模块406的实体单元的管理时,以“选择”与“分组”等词来操作实体单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块406的实体单元的实际位置并未改动,而是逻辑上对可复写式非易失性存储器模块406的实体单元进行操作。
请参照图6,存储器管理电路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是透过逻辑地址(logical address,LA)来存取属于储存区601的实体单元;因此,逻辑单元612(0)~612(C)中的每一个逻辑单元是指一个逻辑地址。然而,在另一实施例中,逻辑单元612(0)~612(C)中的每一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(C)中的每一个逻辑单元可被映射至一或多个实体单元。
在本范例实施例中,存储器管理电路502会将逻辑单元与实体单元之间的映射关系(亦称为逻辑-实体映射关系)记录于至少一逻辑-实体映射表。当主机系统11欲从存储器储存装置10读取数据或写入数据至存储器储存装置10时,存储器管理电路502可根据此逻辑-实体映射表来执行对于存储器储存装置10的数据存取。
在本实施例中,有效数据是属于某一个逻辑单元的最新数据,而无效数据则不是属于任一个逻辑单元的最新数据。例如,若主机系统11将一笔新数据储存至某一逻辑单元而覆盖掉此逻辑单元原先储存的旧数据(即,更新属于此逻辑单元的数据),则储存在储存区601中的此笔新数据即为属于此逻辑单元的最新数据并且会被标记为有效,而被覆盖掉的旧数据可能仍然储存在储存区601中但被标记为无效。
在本实施例中,若属于某一逻辑单元的数据被更新,则此逻辑单元与储存有属于此逻辑单元的旧数据的实体单元之间的映射关系会被移除,并且此逻辑单元与储存有属于此逻辑单元的最新数据的实体单元之间的映射关系会被建立。或者,在另一实施例中,若属于某一逻辑单元的数据被更新,则此逻辑单元与储存有属于此逻辑单元的旧数据的实体单元之间的映射关系仍可被维持,视实务上的需求而定。
在本实施例中,存储器管理电路502会从闲置区602中选择一个实体单元(亦称为第一实体单元),其用以储存来自主机系统11的数据。例如,在选择第一实体单元之后,直到此第一实体单元被写满之前,来自主机系统11的数据都会被接收并储存至此第一实体单元中。在一实施例中,第一实体单元亦称为开启区块(open block)。在当前的第一实体单元被写满之后,另一个实体单元会被从闲置区602中选择作为新的第一实体单元(或,新的开启区块),以继续储存来自主机系统11的数据。
另一方面,存储器管理电路502会检测当前闲置实体单元(即,属于闲置区602的实体单元)的总数并且判断此总数是否小于一第一临界值。例如,第一临界值可以是2。若当前闲置实体单元的总数小于此第一临界值,存储器管理电路502会启动一数据整并操作。在本实施例中,所述检测闲置实体单元的总数并且判断此总数是否小于第一临界值的操作是反应于某一个实体单元被选择做为开启区块而执行。此外,在另一实施例中,或者所述检测闲置实体单元的总数并且判断此总数是否小于第一临界值的操作是持续在背景(background)执行。
在数据整并操作中,存储器管理电路502会从闲置区602中选择至少一个实体单元(亦称为第二实体单元)作为有效数据的回收节点(recycling node)并从储存区601中选择至少一个实体单元(亦称为第三实体单元)作为有效数据的来源节点(source node)。存储器管理电路502会从作为来源节点的第三实体单元中收集有效数据并且将所收集的有效数据储存至作为回收节点的第二实体单元。在将第三实体单元中的某一个实体单元所储存的所有有效数据都收集出来后,此实体单元会被抹除并且被重新关联至闲置区602。藉此,透过所述数据整并操作,存储器管理电路502会释放出新的闲置实体单元。
在启动数据整并操作之后,即便主机系统11持续指示将数据储存至存储器储存装置10中,被关连至闲置区602的实体单元的数目仍然会逐渐超过被提取至储存区601来储存数据(例如,来自主机系统11的数据或从可复写式非易失性存储器模块406收集的有效数据)的实体单元的数目。经由数据整并操作的处理,若存储器管理电路502判断当前闲置实体抹除单元的总数大于一第二临界值,则存储器管理电路502会停止数据整并操作。其中,第二临界值会大于或等于第一临界值。例如,第二临界值可能是10。此外,第一临界值与第二临界值也可是其他的数值,本发明不加以限制。
在本实施例中,主机系统11会发送一写入指令以指示将某一写入数据(即,外部数据)储存至存储器储存装置10中,并且此写入数据会先被暂存在缓冲存储器510中。另外,当从储存区601(例如,第三实体单元)中收集到有效数据(即,内部数据)时,此有效数据也会被暂存在缓冲存储器510中。稍后,来自主机系统11之外部数据与来自可复写式非易失性存储器模块406的内部数据会被依照一特定规则储存至可复写式非易失性存储器模块406中。例如,外部数据会被储存至第一实体单元(即,开启区块)中,而内部数据会被储存至第二实体单元(即,回收节点)中。此外,所述特定规则是用以限定将多少数据量的外部数据存入第一实体单元后就要相应地将多少数据量的内部数据存入第二实体单元,或者将多少数据量的内部数据存入第二实体单元后就要相应地将多少数据量的外部数据存入第一实体单元。
须注意的是,在启动数据整并操作之后,若主机系统11持续指示将外部数据储存至存储器储存装置10中,则存储器管理电路502会持续从主机系统11接收外部数据并持续从可复写式非易失性存储器模块406接收内部数据。例如,接收到的外部数据与内部数据皆被暂存在缓冲存储器510中。存储器管理电路502会获得第一实体单元的使用状况并根据第一实体单元的使用状况决定上述特定规则。
在本实施例中,第一实体单元的使用状况对应于第一实体单元所储存之数据的总数据量。例如,第一实体单元所储存之数据的总数据量可以利用第一实体单元中当前储存有数据的实体程序化单元的总数来评估。例如,若第一实体单元中当前有10个实体程序化单元储存有数据,则第一实体单元所储存的数据的总数据量可被决定为等于10个实体程序化单元的总容量。然后,存储器管理电路502会根据所决定的特定规则来将暂存在缓冲存储器510中的外部数据与内部数据储存至可复写式非易失性存储器模块406中。
图7是根据本发明的一实施例所显示的将内部数据与外部数据存入可复写式非易失性存储器模块的示意图。
请参照图7,存储器管理电路502会将数据701~704从缓冲存储器510中读出,其中数据701(亦称为第一数据)与703(亦称为第三数据)是来自主机系统11的数据(即,主机系统11指示储存的外部数据),并且数据702(亦称为第二数据)与704(亦称为第四数据)是来自可复写式非易失性存储器模块406的数据(即,经由数据整并操作收集的内部数据)。存储器管理电路502会依序将数据701~704存入可复写式非易失性存储器模块406中。须注意的是,数据701与703会被储存至开启区块710(0)(即,第一实体单元),并且数据702与704会被储存至回收节点710(1)(即,第二实体单元)。
如图7所示,数据701与数据702是连续地被储存至可复写式非易失性存储器模块406中。在本实施例中,将数据701储存至开启区块710(0)并将数据702储存至回收节点710(1)的操作亦称为第一操作。须注意的是,第一操作是基于一特定规则(亦称为第一规则)而执行,其中第一规则会对应于数据701的数据量与数据702的数据量之比例(亦称为第一比例)。例如,第一规则可能是限制数据701的数据量与数据702的数据量的比例为“32:1”(即,数据701的数据量为数据702的数据量的32倍)。在另一实施例中,第一规则还可以是对应于其他的第一比例,而不限于上述。
在储存数据701与702之后,数据703与数据704也会连续地被储存至可复写式非易失性存储器模块406中。在本实施例中,将数据703储存至开启区块710(0)并将数据704储存至回收节点710(1)的操作亦称为第二操作。须注意的是,第二操作是基于另一特定规则(亦称为第二规则)而执行,其中第二规则会对应于数据703的数据量与数据704的数据量的比例(亦称为第二比例)。例如,第二规则可能是限制数据703的数据量与数据704的数据量的比例为“16:1”、“8:1”或“4:1”等等(即,数据703的数据量为数据704的数据量的16倍、8倍或4倍等等)。在另一实施例中,第二规则还可以是对应于其他的第二比例,只要与第一规则不同即可。此外,在另一实施例中,第二比例的比例值会小于第一比例的比例值。例如,若第一比例的比例值为32,则第二比例的比例值可以是16、8或4等小于32的值。或者,若第一比例的比例值为16,则第二比例的比例值可以是8或4等小于16的值。
换言之,在图7的一实施例中,在将包含数据701的外部数据存入开启区块710(0)之后,由于开启区块710(0)的使用状况发生变化(即,第一实体单元所储存的数据的总数据量增加),用于连续地储存外部数据与内部数据的特定规则也会被改变(即,从第一规则改变为第二规则)。例如,若数据702的数据量与数据704的数据量皆为1个数据管理单位,则数据701的数据量可能是32个数据管理单位,并且数据703的数据量可能是16个数据管理单位。其中,1个数据管理单位例如是4千字节(k bytes)、8千字节或任意大小。
此外,在图7的另一实施例中,将数据703储存至开启区块710(0)并将数据704储存至回收节点710(1)的操作仍然是属于第一操作,其基于第一规则执行。因此,数据703的数据量与数据704的数据量的比例亦可以是等于数据701的数据量与数据702的数据量的比例。
在一实施例中,存储器管理电路502会判断第一实体单元的使用状况是否符合一预设条件。若第一实体单元的使用状况符合此默认条件,存储器管理电路502会调整用于储存外部数据与内部数据的特定规则(例如,存储器管理电路502可将特定规则从第一规则调整为第二规则)。反之,若第一实体单元的使用状况不符合此默认条件,存储器管理电路502不会调整用于储存外部数据与内部数据的特定规则(例如,存储器管理电路502可将特定规则维持在第一规则)。此外,存储器管理电路502可设定一或多个预设条件,视实务上的需求而定。在持续将外部数据存入第一实体单元的过程中,若第一实体单元的使用状况符合某一个预设条件,所述特定规则就会被改变。在一实施例中,一个预设条件是对应于第一实体单元的一个空间使用率。例如,此空间使用率可以是指第一实体单元中已经有储存数据的空间在第一实体单元的总空间中占的比率。
图8是根据本发明的一实施例所显示的第一实体单元的使用状态的示意图。
请参照图8,假设开启区块710(0)(即,第一实体单元)包括N个实体程序化单元812(0)~812(N-1)。根据实体程序化单元812(0)~812(N-1)的总数,存储器管理电路502会设定4个预设条件801~804。例如,默认条件801对应于实体程序化单元812(0)~812(N-1)中“1/2”(即,一半)的实体程序化单元已被使用的使用状况,默认条件802对应于实体程序化单元812(0)~812(N-1)中“3/4”的实体程序化单元已被使用的使用状况,默认条件803对应于实体程序化单元812(0)~812(N-1)中“7/8”的实体程序化单元已被使用的使用状况,并且默认条件804对应于实体程序化单元812(0)~812(N-1)中“15/16”的实体程序化单元已被使用的使用状况。换言之,在此提及的“1/2”、“3/4”、“7/8”及“15/16”皆为所述空间使用率的范例,且所述空间使用率的设定还可以视实务上的需求调整。
在根据开启区块710(0)的使用状况决定所述特定规则的操作中,若实体程序化单元812(0)~812(N-1)中已被使用(即,已储存有数据)者的总数小于“N×1/2”,存储器管理电路502会判定开启区块710(0)的使用状况不符合预设条件801~804中的任一个并且将特定规则设定为第一默认规则。在持续将外部数据储存至开启区块710(0)之后,若实体程序化单元812(0)~812(N-1)中已被使用者的总数介于“N×1/2”与“N×3/4”之间,存储器管理电路502会判定开启区块710(0)的使用状况符合预设条件801并将特定规则设定为第二默认规则。以此类推,若实体程序化单元812(0)~812(N-1)中已被使用者的总数介于“N×3/4”与“N×7/8”之间,存储器管理电路502会判定开启区块710(0)的使用状况符合预设条件802并将特定规则设定为第三默认规则;若实体程序化单元812(0)~812(N-1)中已被使用者的总数介于“N×7/8”与“N×15/16”之间,存储器管理电路502会判定开启区块710(0)的使用状况符合预设条件803并将特定规则设定为第四默认规则;此外,若实体程序化单元812(0)~812(N-1)中已被使用者的总数大于“N×15/16”,存储器管理电路502会判定开启区块710(0)的使用状况符合预设条件804并将特定规则设定为第五默认规则。
须注意的是,在一实施例中,第一默认规则至第五默认规则会分别对应至第一预设比例值至第五预设比例值,其中第一预设比例值大于第二预设比例值,第二预设比例值大于第三预设比例值,第三预设比例值大于第四预设比例值,并且第四预设比例值大于第五预设比例值。以图7的一个实施例为例,若第一规则是第一默认规则,则第二规则可以是第二默认规则至第五默认规则中的任一个;若第一规则是第二默认规则,则第二规则可以是第三默认规则至第五默认规则中的任一个,以此类推。
换言之,在图7的一实施例中,随着开启区块710(0)中剩余的可用容量逐渐减少,在将数据701与数据702(或,数据703与数据704)连续存入可复写式非易失性存储器模块406的操作中,数据701(或,数据703)的数据量会被减少并且数据702(或,数据704)的数据量会被增加。在一实施例中,根据第一实体单元的使用状况来调整用于储存内部数据与外部数据的特定规则,可减少在第一实体单元写满时没有任何新的闲置实体单元被释放的机率。
在一实施例中,存储器管理电路502还会获得作为有效数据的来源节点的第三实体单元的有效计数(valid count),其中此有效计数对应于所述第三实体单元所储存的有效数据的总数据量。例如,此有效计数可用于表示在作为有效数据的来源节点的第三实体单元中,有几个实体程序化单元储存有有效数据。因此,根据此有效计数,存储器管理电路502可获得第三实体单元所储存的有效数据的总数据量。根据此有效计数,存储器管理电路502可决定所述特定规则。例如,在获得第三实体单元所储存的有效数据的总数据量之后,存储器管理电路502可计算出需要收集并储存多少有效数据才足以释放出第三实体单元中的至少一个实体单元。根据所计算的需要收集的有效数据的总数据量,存储器管理电路502可决定所述特定规则。
在图7的一实施例中,若需要R个第二实体单元才足以储存从Q个第三实体单元收集的有效数据并使得所述Q个第三实体单元中的至少一个实体单元可以被抹除,则存储器管理电路502可计算出所述R个第二实体单元的总容量(或,需要存入所述R个第二实体单元的有效数据的总数据量)。根据所计算出的所述R个第二实体单元的总容量(或,需要存入所述R个第二实体单元的有效数据的总数据量)以及开启区块710(0)的剩余可用空间,存储器管理电路502可进一步决定在第一规则(或,第二规则)下,数据701的数据量与数据702的数据量的比例(或,数据703的数据量与数据704的数据量的比例)。须注意的是,所计算出的比例会使得开启区块710(0)被写满前,所收集的有效数据可以被存入此R个第二实体单元中并且所述Q个第三实体单元中的至少一个实体单元可以被抹除。
一般来说,根据存储器储存装置10本身的特性或用户使用存储器储存装置10的习惯,可复写式非易失性存储器模块406中较常被使用(例如,存取或抹除)的某些实体单元的损耗程度(wear level)可能会高于其他较不常使用的实体单元的损耗程度。而损耗程度(wear level)较高(例如,P/E count较高)的实体单元所储存的数据也较容易出错。因此,在一实施例中,存储器管理电路502还会执行一损耗平衡(wear leveling)操作。此损耗平衡操作是用以将数据从储存区601中具有一损耗程度(亦称为第一损耗程度)的至少一实体单元搬移至闲置区602中具有另一损耗程度(亦称为第二损耗程度)的至少一实体单元中,其中第二损耗程度会高于第一损耗程度。
图9是根据本发明的一实施例所显示的损耗平衡操作的示意图。
请参照图9,实体单元910(0)~910(M)的损耗程度低于实体单元910(M+1)~910(P)的损耗程度。例如,实体单元910(0)~910(M)中每一个的损耗程度都低于实体单元910(M+1)~910(P)中每一个的损耗程度。或者,实体单元910(0)~910(M)中每一个的损耗程度都低于一预设损耗程度,和/或实体单元910(M+1)~910(P)中每一个的损耗程度皆高于此预设损耗程度。在此损耗平衡操作中,存储器管理电路502会将数据从实体单元910(0)~910(M)搬移到实体单元910(M+1)~910(P)进行储存。藉此,损耗程度较低的实体单元910(0)~910(M)会被重新关联至闲置区602以持续用来接收新数据,而损耗程度较高的实体单元910(M+1)~910(P)则会被关联至储存区601以减缓损耗速度。透过此损耗平衡操作,可复写式非易失性存储器模块406中的实体单元可以被较为平均的使用,从而延长存储器储存装置10的使用寿命。
在一实施例中,若数据整并操作被启动,则存储器管理电路502会同时禁能(disable)所述损耗平衡操作。在此,禁能损耗平衡操作指的是无论是否需要执行所述损耗平衡操作,都不允许其执行。此外,若数据整并操作被停止,则存储器管理电路502会同时致能(enable)所述损耗平衡操作。在此,致能损耗平衡操作指的是一旦判定需要执行所述损耗平衡操作时,允许其执行。例如,存储器管理电路502可利用一个旗标(例如,至少一个位)来标记损耗平衡操作当前是被禁能或致能。藉此,可避免所述损耗平衡操作的数据搬移操作影响到图7中对于外部数据和/或内部数据的储存。
图10是根据本发明的一实施例所显示的存储器管理方法的流程图。
请参照图10,在步骤S1001中,获得可复写式非易失性存储器模块中的第一实体单元的使用状况,其中所述第一实体单元用以储存来自主机系统的数据。在步骤S1002中,根据所述第一实体单元的使用状况决定第一规则。在步骤S1003中,根据所述第一规则执行第一操作。所述第一操作包括步骤S1004与步骤S1005。在步骤S1004中,将来自主机系统的第一数据储存至所述第一实体单元中。在步骤S1005中,将来自所述可复写式非易失性存储器模块的第二数据储存至所述多个实体单元中的至少一第二实体单元中,其中所述第一规则对应于一第一比例,并且所述第一比例为第一数据的数据量与所述第二数据的数据量的比例。
图11是根据本发明的另一实施例所显示的存储器管理方法的流程图。
请参照图11,在步骤S1101中,获得可复写式非易失性存储器模块中闲置实体单元的总数。在步骤S1102中,判断所述闲置实体单元的总数是否小于一第一门槛值。若所述闲置实体单元的总数不小于第一门槛值,回到步骤S1101。若所述闲置实体单元的总数小于第一门槛值,在步骤S1103中,启动数据整并操作并禁能损耗平衡操作。在步骤S1104中,获得可复写式非易失性存储器模块中的第一实体单元的使用状况,其中所述第一实体单元用以储存来自主机系统的数据。在步骤S1105中,根据所述第一实体单元的使用状况决定一规则。在步骤S1106中,根据所述规则执行数据整并操作。例如,所决定的规则可用于限定在数据整并操作的执行期间,连续存入可复写式非易失性存储器模块的数据中,内部数据的数据量与外部数据的数据量的比例。在步骤S1107中,判断所述闲置实体单元的总数是否大于第二门槛值。若所述闲置实体单元的总数不大于第二门槛值,重复执行步骤S1104~S1106。若所述闲置实体单元的总数大于第二门槛值,在步骤S1108中,结束数据整并操作并致能损耗平衡操作。此外,在步骤S1108之后,步骤S1101可被重复执行。
然而,图10与图11中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图10与图11中各步骤可以实作为多个程序代码或是电路,本发明不加以限制。此外,图10与图11的方法可以搭配以上实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明可根据用以储存来自主机系统的数据的第一实体单元的使用状况来决定第一规则并根据此第一规则来执行第一操作。在第一操作中,来自主机系统的第一数据会被储存至所述第一实体单元中并且来自可复写式非易失性存储器模块的第二数据会被储存至第二实体单元中,其中所述第一规则对应于所述第一数据的数据量与所述第二数据的数据量的第一比例。透过适当地决定此第一规则,存储器储存装置即可稳定地储存来自主机系统与可复写式非易失性存储器模块的数据。此外,此第一规则亦可以用来确保在持续储存来自主机系统的数据的期间,所执行的数据整并操作可释放出至少一个新的闲置实体单元。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附的权利要求所界定的为准。
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 |
---|---|---|---|
CN201611190500.1A CN106775479B (zh) | 2016-12-21 | 2016-12-21 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611190500.1A CN106775479B (zh) | 2016-12-21 | 2016-12-21 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775479A true CN106775479A (zh) | 2017-05-31 |
CN106775479B CN106775479B (zh) | 2020-05-12 |
Family
ID=58896808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611190500.1A Active CN106775479B (zh) | 2016-12-21 | 2016-12-21 | 存储器管理方法、存储器储存装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775479B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763102A (zh) * | 2018-05-31 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种固态硬盘的垃圾回收方法及装置 |
CN109471806A (zh) * | 2017-09-07 | 2019-03-15 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN110879788A (zh) * | 2018-09-05 | 2020-03-13 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
CN111639041A (zh) * | 2020-05-29 | 2020-09-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225961A1 (en) * | 2002-06-03 | 2003-12-04 | James Chow | Flash memory management system and method |
CN101645044A (zh) * | 2005-01-20 | 2010-02-10 | 桑迪士克股份有限公司 | 快闪存储器系统中内务处理操作的调度 |
CN102650971B (zh) * | 2011-02-24 | 2014-12-03 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器储存装置 |
CN105074673A (zh) * | 2012-12-26 | 2015-11-18 | 西部数据技术公司 | 用于数据存储系统的基于优先级的垃圾收集 |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
-
2016
- 2016-12-21 CN CN201611190500.1A patent/CN106775479B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030225961A1 (en) * | 2002-06-03 | 2003-12-04 | James Chow | Flash memory management system and method |
CN101645044A (zh) * | 2005-01-20 | 2010-02-10 | 桑迪士克股份有限公司 | 快闪存储器系统中内务处理操作的调度 |
CN102650971B (zh) * | 2011-02-24 | 2014-12-03 | 群联电子股份有限公司 | 存储器管理方法、存储器控制器与存储器储存装置 |
CN105074673A (zh) * | 2012-12-26 | 2015-11-18 | 西部数据技术公司 | 用于数据存储系统的基于优先级的垃圾收集 |
CN105528301A (zh) * | 2015-12-07 | 2016-04-27 | 中国人民解放军信息工程大学 | 一种NAND Flash闪存垃圾回收方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471806A (zh) * | 2017-09-07 | 2019-03-15 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN109471806B (zh) * | 2017-09-07 | 2022-12-13 | 群联电子股份有限公司 | 数据存储方法、存储器存储装置及存储器控制电路单元 |
CN108763102A (zh) * | 2018-05-31 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种固态硬盘的垃圾回收方法及装置 |
CN108763102B (zh) * | 2018-05-31 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种固态硬盘的垃圾回收方法及装置 |
CN110879788A (zh) * | 2018-09-05 | 2020-03-13 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
CN110879788B (zh) * | 2018-09-05 | 2023-09-15 | 爱思开海力士有限公司 | 存储器控制器、存储器系统以及存储器装置的操作方法 |
US11775427B2 (en) | 2018-09-05 | 2023-10-03 | SK Hynix Inc. | Memory controller, memory system and operating method of memory device |
US11797437B2 (en) | 2018-09-05 | 2023-10-24 | SK Hynix Inc. | Memory controller, memory system and operating method of memory device |
CN111639041A (zh) * | 2020-05-29 | 2020-09-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
CN111639041B (zh) * | 2020-05-29 | 2022-04-08 | 深圳宏芯宇电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN106775479B (zh) | 2020-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN104866429B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN105005450B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN110333770A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106484307B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN107402716A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN109491588A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN107590080A (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN106775479A (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN106775436A (zh) | 数据存取方法、存储器控制电路单元与存储器 | |
CN106951186A (zh) | 数据程序化方法、存储器存储装置及存储器控制电路单元 | |
CN107025063A (zh) | 内存管理方法、内存储存装置及内存控制电路单元 | |
CN105988950B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110390985A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107239225A (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN107346211A (zh) | 映射表加载方法、内存控制电路单元与内存储存装置 | |
CN112068782B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107045890A (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
CN106445397B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 | |
CN109273033A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110308876A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN107103930A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN107122308A (zh) | 平均磨损方法、内存控制电路单元及内存储存装置 | |
CN106354651A (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN109032957A (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 |