CN110879793A - 存储器管理方法、存储器存储装置及存储器控制电路单元 - Google Patents
存储器管理方法、存储器存储装置及存储器控制电路单元 Download PDFInfo
- Publication number
- CN110879793A CN110879793A CN201811032033.9A CN201811032033A CN110879793A CN 110879793 A CN110879793 A CN 110879793A CN 201811032033 A CN201811032033 A CN 201811032033A CN 110879793 A CN110879793 A CN 110879793A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- unit
- update data
- updating
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明的范例实施例提供一种用于可复写式非易失性存储器模块的存储器管理方法、存储器存储装置及存储器控制电路单元,所述存储器管理方法包括:执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至第一物理单元;记录对应于所述主机写入操作的第一更新数据;执行数据整并操作,以从第二物理单元读取第二数据并将第二数据存储至第三物理单元;记录对应于所述数据整并操作的第二更新数据;以及根据第一更新数据与第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在缓冲存储器中更新所述管理信息。
Description
技术领域
本发明涉及一种存储器管理技术,尤其涉及一种存储器管理方法、存储器存储装置及存储器控制电路单元。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritable non-volatilememory module)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
当存储器存储装置的闲置物理单元的数目不足时,一般可通过垃圾收集程序来将所存储的有效数据集中并释放出新的闲置物理单元。当执行垃圾收集程序时,存储在可复写式非易失性存储器模块的逻辑至物理映射表等管理信息可能会被频繁地存取与修改。此外,在执行主机写入操作以存储来自主机***的数据时,存储在可复写式非易失性存储器模块的逻辑至物理映射表等管理信息可能也会被频繁地存取与修改,从而加速可复写式非易失性存储器模块的损耗(例如增加数据的写入放大)。
发明内容
本发明提供一种存储器管理方法、存储器存储装置及存储器管理电路,可有效减少对可复写式非易失性存储器模块的存取次数。
本发明的范例实施例提供一种存储器管理方法,其用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理单元。所述存储器管理方法包括:执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至所述物理单元中的第一物理单元;记录对应于所述主机写入操作的第一更新数据;执行数据整并操作,以从所述物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述物理单元中的第三物理单元;记录对应于所述数据整并操作的第二更新数据;以及根据所述第一更新数据与所述第二更新数据将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的步骤包括:响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,所述的存储器管理方法还包括:响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
在本发明的一范例实施例中,所述的存储器管理方法还包括:在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
在本发明的一范例实施例中,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的步骤包括:根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
在本发明的一范例实施例中,所述的存储器管理方法还包括:将经更新的管理信息存储至所述可复写式非易失性存储器模块;以及在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
在本发明的一范例实施例中,所述的存储器管理方法还包括:获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据;以及根据所述子更新数据中的最新数据更新所述管理信息。
在本发明的一范例实施例中,所述的存储器管理方法还包括:判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机***。所述可复写式非易失性存储器模块包括多个物理单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以执行主机写入操作,以从所述主机***接收写入指令并指示将对应于所述写入指令的第一数据存储至所述物理单元中的第一物理单元。所述存储器控制电路单元还用以记录对应于所述主机写入操作的第一更新数据。所述存储器控制电路单元还用以执行数据整并操作,以指示从所述物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述物理单元中的第三物理单元。所述存储器控制电路单元还用以记录对应于所述数据整并操作的第二更新数据。所述存储器控制电路单元还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,所述存储器控制电路单元根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,所述存储器控制电路单元还用以响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
在本发明的一范例实施例中,在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,所述存储器控制电路单元还用以持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
在本发明的一范例实施例中,所述存储器控制电路单元根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
在本发明的一范例实施例中,所述存储器控制电路单元还用以将经更新的管理信息存储至所述可复写式非易失性存储器模块。所述存储器控制电路单元还用以在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
在本发明的一范例实施例中,所述存储器控制电路单元还用以获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据。所述存储器控制电路单元还用以根据所述子更新数据中的最新数据更新所述管理信息。
在本发明的一范例实施例中,所述存储器控制电路单元还用以判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块。所述可复写式非易失性存储器模块包括多个物理单元。所述存储器控制电路单元包括主机接口、存储器接口、缓冲存储器及存储器管理电路。所述主机接口用以连接至主机***。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述缓冲存储器。所述存储器管理电路用以执行主机写入操作,以从所述主机***接收写入指令并指示将对应于所述写入指令的第一数据存储至所述物理单元中的第一物理单元。所述存储器管理电路还用以记录对应于所述主机写入操作的第一更新数据。所述存储器管理电路还用以执行数据整并操作,以指示从所述物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述物理单元中的第三物理单元。所述存储器管理电路还用以记录对应于所述数据整并操作的第二更新数据。所述存储器管理电路还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,所述存储器管理电路根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
在本发明的一范例实施例中,所述存储器管理电路还用以响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
在本发明的一范例实施例中,在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,所述存储器管理电路还用以持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
在本发明的一范例实施例中,所述第一更新数据包括与第一逻辑单元有关的映射信息,所述第二更新数据包括与第二逻辑单元有关的映射信息,所述第一逻辑单元映射至所述第一物理单元,且所述第二逻辑单元映射至所述第三物理单元。
在本发明的一范例实施例中,所述存储器管理电路根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
在本发明的一范例实施例中,所述存储器管理电路还用以将经更新的管理信息存储至所述可复写式非易失性存储器模块。所述存储器管理电路还用以在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
在本发明的一范例实施例中,所述存储器管理电路还用以获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据。所述存储器管理电路还用以根据所述子更新数据中的最新数据更新所述管理信息。
在本发明的一范例实施例中,所述存储器管理电路还用以判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机***。所述可复写式非易失性存储器模块包括多个物理单元。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以执行第一写入操作,其中所述第一写入操作包括将从所述主机***接收的第一数据存储至所述物理单元中的第一物理单元的操作以及将存储于所述物理单元中的第二物理单元中的第二数据写入至所述物理单元中的第三物理单元的操作的其中之一。所述存储器控制电路单元还用以记录对应于所述第一写入操作的第一更新数据。所述存储器控制电路单元还用以判断是否存在第二更新数据,所述第二更新数据基于第二写入操作而产生,且所述第二写入操作包括将所述第一数据存储至所述第一物理单元的所述操作以及将所述第二数据写入至所述第三物理单元的所述操作的其中的另一。所述存储器控制电路单元还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
基于上述,对应于所执行的主机写入操作以及数据整并操作,第一更新数据与第二更新数据可分别被记录。在某一时间点之后,根据所述第一更新数据与所述第二更新数据,管理信息可从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新。藉此,可有效减少对可复写式非易失性存储器模块的存取次数,进而延长可复写式非易失性存储器模块的使用寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所示出的主机***、存储器存储装置及输入/输出(I/O)装置的示意图。
图2是根据本发明的另一范例实施例所示出的主机***、存储器存储装置及I/O装置的示意图。
图3是根据本发明的另一范例实施例所示出的主机***与存储器存储装置的示意图。
图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。
图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
图7是根据本发明的一范例实施例所示出的主机写入操作与数据整并操作的示意图。
图8是根据本发明的一范例实施例所示出的记录更新数据的示意图。
图9是根据本发明的一范例实施例所示出的记录更新数据与更新管理信息的示意图。
图10是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
图11是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
图12是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
附图标记说明
10、30:存储器存储装置
11、31:主机***
110:***总线
111:处理器
112:随机存取存储器
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主机板
201:U盘
202:存储卡
203:固态硬盘
204:无线存储器存储装置
205:全球定位***模块
206:网络接口卡
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式存储装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装存储装置
402:连接接口单元
404:存储器控制电路单元
406:可复写式非易失性存储器模块
502:存储器管理电路
504:主机接口
506:存储器接口
508:错误检查与校正电路
510:缓冲存储器
512:电源管理电路
601:存储区
602:闲置区
603:***区
610(0)~610(C)、710(0)、721(0)~721(E)、731(0)~731(F):物理单元
612(0)~612(D):逻辑单元
701、702:数据
720:来源节点
730:回收节点
801、802(1)~802(N)、803:数据
S1001:步骤(执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至第一物理单元)
S1002:步骤(记录对应于所述主机写入操作的第一更新数据)
S1003:步骤(执行数据整并操作,以从第二物理单元读取第二数据并将所述第二数据存储至第三物理单元)
S1004:步骤(记录对应于所述数据整并操作的第二更新数据)
S1005:步骤(根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息)
S1101:步骤(执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至第一物理单元)
S1102:步骤(记录对应于所述主机写入操作的第一更新数据)
S1103:步骤(执行数据整并操作,以从第二物理单元读取第二数据并将所述第二数据存储至第三物理单元)
S1104:步骤(记录对应于所述数据整并操作的第二更新数据)
S1105:步骤(判断第一更新数据是否符合预设条件)
S1106:步骤(根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息)
S1107:步骤(将经更新的管理信息存储至可复写式非易失性存储器模块并在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据)
S1201:步骤(执行第一写入操作)
S1202:步骤(记录对应于第一写入操作的第一更新数据)
S1203:步骤(判断是否存在第二更新数据)
S1204:步骤(根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息)
具体实施方式
一般而言,存储器存储装置(也称,存储器存储***)包括可复写式非易失性存储器模块(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可为其所使用的安全数字(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,PCIExpress)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(Ultra High 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还包括错误检查与校正电路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的电源。
在一范例实施例中,图4的可复写式非易失性存储器模块406也称为快闪(flash)存储器模块,存储器控制电路单元404也称为用于控制快闪存储器模块的快闪存储器控制器,和/或图5的存储器管理电路502也称为快闪存储器管理电路。
图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。
请参照图6,存储器管理电路502会将可复写式非易失性存储器模块406的物理单元610(0)~610(C)逻辑地分组至存储区601、闲置(spare)区602及***区603。存储区601中的物理单元610(0)~610(A)存储有数据(例如来自图1的主机***11的使用者数据)。例如,存储区601中的物理单元610(0)~610(A)可存储有效(valid)数据与无效(invalid)数据。闲置区602中的物理单元610(A+1)~610(B)尚未用来存储数据(例如有效数据)。存储区603中的物理单元610(B+1)~610(C)用以存储管理信息(也称为***数据),例如逻辑至物理映射表、坏块管理表、装置型号或其他类型的管理信息。
当欲存储数据时,存储器管理电路502会从闲置区602的物理单元610(A+1)~610(B)中选择一个物理单元并且将来自主机***11或来自存储区601中至少一物理单元的数据存储至所选的物理单元中。同时,所选的物理单元会被关联至存储区601。此外,在抹除存储区601中的某一个物理单元后,所抹除的物理单元会被重新关联至闲置区602。
在本范例实施例中,属于存储区601的每一个物理单元也称为非闲置(non-spare)物理单元,而属于闲置区602的每一个物理单元也称为闲置物理单元。在本范例实施例中,一个物理单元是指一个物理抹除单元。然而,在另一范例实施例中,一个物理单元也可以包含多个物理抹除单元。
存储器管理电路502会配置逻辑单元612(0)~612(D)以映射存储区601中的物理单元610(0)~610(A)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(D)中的每一者可被映射至一或多个物理单元。须注意的是,在一范例实施例中,存储器管理电路502可不配置映射至***区603的逻辑单元,以防止存储于***区603的管理信息被使用者修改。
存储器管理电路502会将逻辑单元与物理单元之间的映射关系(也称为逻辑至物理映射信息)记录于至少一逻辑至物理映射表。逻辑至物理映射表是存储于***区603的物理单元中。当主机***11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑至物理映射表来执行对于存储器存储装置10的数据存取操作。
在本范例实施例中,有效数据是属于某一个逻辑单元的最新数据,而无效数据则不是属于任一个逻辑单元的最新数据。例如,若主机***11将一笔新数据存储至某一逻辑单元而覆盖掉此逻辑单元原先存储的旧数据(即,更新属于此逻辑单元的数据),则存储至存储区601中的此笔新数据即为属于此逻辑单元的最新数据并且会被标记为有效,而被覆盖掉的旧数据可能仍然存储在存储区601中但被标记为无效。
在本范例实施例中,若属于某一逻辑单元的数据被更新,则此逻辑单元与存储有属于此逻辑单元的旧数据的物理单元之间的映射关系会被移除,并且此逻辑单元与存储有属于此逻辑单元的最新数据的物理单元之间的映射关系会被建立。然而,在另一范例实施例中,若属于某一逻辑单元的数据被更新,则此逻辑单元与存储有属于此逻辑单元的旧数据的物理单元之间的映射关系仍可被维持。
当存储器存储装置10出厂时,属于闲置区602的物理单元的总数会是一个预设数目(例如,30)。在存储器存储装置10的运作中,越来越多的物理单元会被从闲置区602选择并且被关联至存储区601以存储数据(例如,来自主机***11的使用者数据)。因此,属于闲置区602的物理单元的总数会随着存储器存储装置10的使用而逐渐减少。
在存储器存储装置10的运作中,存储器管理电路502会持续更新属于闲置区602的物理单元的总数。存储器管理电路502会根据闲置区602中物理单元的数目(即,闲置物理单元的总数)执行数据整并操作。例如,存储器管理电路502可判断属于闲置区602的物理单元的总数是否小于或等于一个门槛值(也称为第一门槛值)。此第一门槛值例如是2或者更大的值(例如,10),本发明不加以限制。若属于闲置区602的物理单元的总数小于或等于第一门槛值,存储器管理电路502可执行数据整并操作。在一范例实施例中,数据整并操作也称为垃圾收集(garbage collection)操作。
在数据整并操作中,存储器管理电路502可从存储区601中选择至少一个物理单元(也称为来源节点)并且尝试将有效数据从所选择的物理单元复制到另一物理单元(也称为回收节点)。用来存储所复制的有效数据的物理单元则是从闲置区602中选择并且会被关联至存储区601。若某一个物理单元所存储的有效数据皆已被复制至回收节点,则此物理单元可被抹除并且被关联至闲置区602。在一范例实施例中,将某一个物理单元从存储区601重新关联回闲置区602的操作(或抹除某一个物理单元的操作)也称为释放一个闲置物理单元。通过执行数据整并操作,一或多个闲置物理单元会被释放并且使得属于闲置区602的物理单元的总数逐渐增加。
在开始执行数据整并操作后,若属于闲置区602的物理单元符合一特定条件,数据整并操作会停止。例如,存储器管理电路502可判断属于闲置区602的物理单元的总数是否大于或等于一个门槛值(以下也称为第二门槛值)。例如,第二门槛值可以大于或等于第一门槛值。若属于闲置区602的物理单元的总数大于或等于第二门槛值,存储器管理电路502可停止数据整并操作。须注意的是,停止数据整并操作是指结束当前执行中的数据整并操作。在停止一个数据整并操作之后,若属于闲置区602的物理单元的总数再次小于或等于第一门槛值,则下一个数据整并操作可再次被执行,以尝试释放新的闲置物理单元。
图7是根据本发明的一范例实施例所示出的主机写入操作与数据整并操作的示意图。
请参照图7,在主机写入操作中,主机***11会发送至少一个写入指令以指示将数据701(也称为第一数据)写入至某一个逻辑单元(也称为第一逻辑单元)。根据此写入指令,数据701会被存储至映射至第一逻辑单元的物理单元710(0)(也称为第一物理单元)。例如,物理单元710(0)可以是从图6的闲置区602中选择。在一范例实施例中,当前用来存储来自主机***11的数据701的物理单元710(0)也称为开启区块(open block)或主机写入区块。须注意的是,在另一范例实施例中,一个开启区块或主机写入区块也可以包含多个物理单元。
在执行主机写入操作的期间,数据整并操作可被执行。或者,在执行数据整并操作的期间,主机写入操作可被执行。在数据整并操作中,属于至少一逻辑单元(也称为第二逻辑单元)的数据702(也称为第二数据)可被从属于来源节点720的物理单元721(0)~721(E)(也称为第二物理单元)收集并且被写入至属于回收节点730的物理单元731(0)~731(F)(也称为第三物理单元)。数据702包括有效数据,且第二逻辑单元可被映射至物理单元731(0)~731(F)。属于来源节点720的物理单元721(0)~721(E)是从图6的存储区601中选择,而属于回收节点730的物理单元731(0)~731(F)是从图6的闲置区602中选择。在一范例实施例中,物理单元721(0)~721(E)是图6的存储区601中存储最少有效数据的E+1个物理单元。在一范例实施例中,物理单元721(0)~721(E)是根据其他规则从图6的存储区601中选择,本发明不加以限制。
图8是根据本发明的一范例实施例所示出的记录更新数据的示意图。
请参照图7与图8,根据所执行的主机写入操作,存储器管理电路502可将数据801记录至缓冲存储器510。数据801包括与数据701所属的逻辑单元(即第一逻辑单元)有关的映射信息。例如,数据801可包括对应于数据701的物理至逻辑映射信息,其反映物理单元710(0)与第一逻辑单元的映射关系。根据所执行的数据整并操作,存储器管理电路502可将数据802(1)与802(2)记录至缓冲存储器510。数据802(1)与802(2)包括与数据702所属的逻辑单元(即第二逻辑单元)有关的映射信息。例如,数据802(1)与802(2)可包括对应于数据702的物理至逻辑映射信息,其反映物理单元731(0)与第二逻辑单元的映射关系。
图9是根据本发明的一范例实施例所示出的记录更新数据与更新管理信息的示意图。
请参照图7至图9,根据图7的范例实施例中持续执行的主机写入操作,存储器管理电路502可持续将数据801暂存至缓冲存储器510,且数据801的数据量逐渐增加。另外,根据图7的范例实施例中持续执行的数据整并操作,存储器管理电路502可持续将数据802(1)~802(N)暂存至缓冲存储器510,且数据802(1)~802(N)的数据量大于图8的范例实施例中的数据802(1)与802(2)的数据量。例如,数据802(1)与802(2)可反映数据702中的一部分数据被存储至物理单元731(0),而数据802(N)可反映数据702中的另一部分数据被存储至物理单元731(F)。
在某一时间点(也称为第一时间点)之后,存储器管理电路502可根据数据801与802(1)~802(N)指示将数据803从可复写式非易失性存储器模块406读取至缓冲存储器510。例如,数据803可包括图6的***区603所存储的管理信息。然后,存储器管理电路502可根据数据801与802(1)~802(N)在缓冲存储器510中更新数据803。例如,存储器管理电路502可根据数据801与802(1)~802(N)的物理至逻辑映射信息来更新图6的***区603中的逻辑至物理映射表所记载的逻辑至物理映射信息。更新后的数据803可反映图7的范例实施例中物理单元710(0)与数据701所属的第一逻辑单元的映射关系以及物理单元731(0)~731(F)与数据702所属的第二逻辑单元的映射关系。
存储器管理电路502可指示将经更新的数据803存储至可复写式非易失性存储器模块406(例如图6的***区603)并清除缓冲存储器510中的数据801与802(1)~802(N)。在将经更新的数据803存储至可复写式非易失性存储器模块406后,存储器管理电路502可根据经更新的数据803(即可复写式非易失性存储器模块406中经更新的管理信息)来存取物理单元710(0)及物理单元731(0)~731(F)所存储的数据(即数据701与702)。
从另一角度来看,在图8的范例实施例中,在第一时间点之前,存储器管理电路502持续将数据801、802(1)及802(2)暂存于缓冲存储器510,且暂不根据数据801、802(1)及802(2)从可复写式非易失性存储器模块406读取管理信息(例如数据803)。在图8的一范例实施例中,在第一时间点之前,存储器管理电路502可禁止根据数据801、802(1)及802(2)中的任一者读取管理信息(例如数据803)。
在图8的一范例实施例中,若仅根据802(1)和/或802(2)从可复写式非易失性存储器模块406读取并更新管理信息,则每一次读取管理信息都会对可复写式非易失性存储器模块406或存储管理信息的存储单元造成损耗。然而,在图9的范例实施例中,在第一时间点之后根据数据801与802(1)~802(N)来一次性地从可复写式非易失性存储器模块406读取相关的管理信息(即数据803)并在缓冲存储器510中进行更新,可有效减少对于可复写式非易失性存储器模块406的存取次数,进而延长可复写式非易失性存储器模块406的使用寿命。
在一范例实施例中,存储器管理电路502可判断缓冲存储器510中的数据801是否符合预设条件。以图8为例,若缓冲存储器510中的数据801不符合预设条件,存储器管理电路502可持续将数据801、802(1)及802(2)暂存在缓冲存储器510且暂不根据数据801、802(1)及802(2)从可复写式非易失性存储器模块406读取管理信息(例如数据803)。或者,以图9为例,若缓冲存储器510中的数据801符合预设条件,存储器管理电路502可指示将数据803从可复写式非易失性存储器模块406一次性地读取至缓冲存储器510并根据数据801与802(1)~802(N)来更新数据803。换言之,存储器管理电路502可响应于缓冲存储器510中的数据801符合预设条件,而读取并更新数据803。此外,第一时间点可以是存储器管理电路502判定缓冲存储器510中的数据801符合预设条件之后的任意时间点。
在一范例实施例中,存储器管理电路502可判断缓冲存储器510中的数据801的数据量是否不小于(即等于或大于)一个预设数据量。若缓冲存储器510中的数据801的数据量小于此预设数据量,存储器管理电路502可判定数据801不符合预设条件。反之,若缓冲存储器510中的数据801的数据量不小于此预设数据量,存储器管理电路502可判定数据801符合预设条件。换言之,存储器管理电路502可响应于缓冲存储器510中的数据801的数据量不小于预设数据量,而判定数据801符合预设条件进而读取并更新数据803。
在一范例实施例中,存储器管理电路502可判断缓冲存储器510中的数据801与数据802(1)~802(N)是否记载与相同的逻辑单元有关的映射信息(也称为对应于同一逻辑单元的子更新数据)。若缓冲存储器510中的数据801与数据802(1)~802(N)记载与相同的逻辑单元有关的映射信息,存储器管理电路502可使数据802(1)~802(N)中的至少部分信息无效。例如,假设数据801与数据802(1)皆包含了与图6的逻辑单元612(0)有关的映射信息,则存储器管理电路502可保存数据801中与逻辑单元612(0)有关的映射信息并使数据802(1)中与逻辑单元612(0)有关的映射信息无效。此外,存储器管理电路502也可删除或忽略数据802(1)~802(N)中至少部分的相同信息。藉此,可减少数据801与数据802(1)~802(N)的整体数据量并避免根据相同信息重复更新数据803。
在一范例实施例中,存储器管理电路502可获得缓冲存储器510中的数据801与数据802(1)~802(N)中与相同的逻辑单元有关的映射信息(即对应于同一逻辑单元的子更新数据)。然后,存储器管理电路502可根据所述子更新数据中的最新数据读取并更新数据803。例如,存储器管理电路502可比较缓冲存储器510中的数据801与数据802(1)~802(N)或者将缓冲存储器510中的数据801与数据802(1)~802(N)中的至少一者进行比较,以判断缓冲存储器510中的数据801与数据802(1)~802(N)是否包含与相同的逻辑单元有关的映射信息。假设数据801与数据802(1)皆包含了与图6的逻辑单元612(0)有关的映射信息,则存储器管理电路502可判断是数据801较新或数据802(1)较新。若数据801较新,则存储器管理电路502可仅根据数据801来更新数据803中与逻辑单元612(0)有关的映射信息。或者,若数据802(1)较新,则存储器管理电路502可仅根据数据802(1)来更新数据803中与逻辑单元612(0)有关的映射信息。
在一范例实施例中,存储器管理电路502可判断缓冲存储器510中是否存在第一更新数据和/或第二更新数据。第一更新数据包括基于主机写入操作与数据整并操作的其中之一所产生的更新数据。第二更新数据包括基于主机写入操作与数据整并操作的其中的另一所产生的更新数据。例如,基于主机写入操作而产生的更新数据包括数据801,而基于数据整并操作而产生的更新数据包括数据802(1)~802(N)。
在一范例实施例中,若缓冲存储器510中存在第一更新数据与第二更新数据的其中之一(即第一更新数据与第二更新数据的其中之一被暂存至缓冲存储器510),存储器管理电路502可判断缓冲存储器510中是否存在第一更新数据与第二更新数据的其中的另一。在一范例实施例中,若缓冲存储器510中仅存在第一更新数据与第二更新数据的其中之一(例如仅存在数据801或802(1)),则缓冲存储器510可暂不根据第一更新数据与第二更新数据的所述其中之一而读取并更新管理信息。例如,存储器管理电路502可持续将第一更新数据与第二更新数据的所述其中之一保存在缓冲存储器510中。在一范例实施例中,若缓冲存储器510中同时存在第一更新数据与第二更新数据,存储器管理电路502可根据第一更新数据与第二更新数据读取并更新管理信息(例如数据803),相关操作细节可参照图9的范例实施例。
图10是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
请参照图10,在步骤S1001中,执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至第一物理单元。在步骤S1002中,记录对应于所述主机写入操作的第一更新数据。在步骤S1003中,执行数据整并操作,以从第二物理单元读取第二数据并将所述第二数据存储至第三物理单元。在步骤S1004中,记录对应于所述数据整并操作的第二更新数据。在步骤S1005中,根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
图11是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
在步骤S1101中,执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至第一物理单元。在步骤S1102中,记录对应于所述主机写入操作的第一更新数据。在步骤S1103中,执行数据整并操作,以从第二物理单元读取第二数据并将所述第二数据存储至第三物理单元。在步骤S1104中,记录对应于所述数据整并操作的第二更新数据。在步骤S1105中,判断第一更新数据是否符合预设条件。若第一更新数据符合预设条件,在步骤S1106中,根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。在步骤S1107中,将经更新的管理信息存储至可复写式非易失性存储器模块并在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。此外,若步骤S1105判断为否,则可重复执行步骤S1101~S1104。
须注意的是,本发明并不限制图10中的步骤S1001~S1004与图11中的步骤S1101~S1104的执行顺序。例如,在图10的另一范例实施例中,步骤S1003与S1004可以在步骤S1001与S1002之前或与步骤S1001与S1002同时执行,和/或在图11的另一范例实施例中,步骤S1103与S1104可以在步骤S1101与S1102之前或与步骤S1101与S1102同时执行。
图12是根据本发明的一范例实施例所示出的存储器管理方法的流程图。
请参照图12,在步骤S1201中,执行第一写入操作。第一写入操作包括将从主机***接收的第一数据存储至第一物理单元的操作(即主机写入操作)以及将存储于第二物理单元中的第二数据写入至第三物理单元的操作(即数据整并操作)的其中之一。在步骤S1202中,记录对应于第一写入操作的第一更新数据。例如,第一更新数据基于第一写入操作而产生并可暂存于缓冲存储器中。在步骤S1203中,判断是否存在第二更新数据。第二更新数据基于第二写入操作而产生并可暂存于缓冲存储器中。第一写入操作不同于第二写入操作。例如,第二写入操作包括将从主机***接收的第一数据存储至第一物理单元的操作(即主机写入操作)以及将存储于第二物理单元中的第二数据写入至第三物理单元的操作(即数据整并操作)的其中的另一。例如,在一范例实施例中,第一写入操作为主机写入操作,则第二写入操作可为数据整并操作。或者,在一范例实施例中,第一写入操作为数据整并操作,则第二写入操作可为主机写入操作。
若存在第二更新数据,在步骤S1204中,根据所述第一更新数据与所述第二更新数据将管理信息从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。然而,若不存在第二更新数据,例如缓冲存储器中存在第一更新数据但不存在第二更新数据,则可回到步骤S1201,以继续执行第一写入操作和/或第二写入操作。
然而,图10至图12中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图10至图12中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图10至图12的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,对应于所执行的主机写入操作以及数据整并操作,第一更新数据与第二更新数据可分别被记录。在第一时间点之后,根据所述第一更新数据与所述第二更新数据,管理信息可从可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新。在一范例实施例中,只有需要根据第一更新数据来更新管理信息(例如第一更新数据符合预设条件)时,管理信息才会被读取到缓冲存储器中进行更新。在一范例实施例中,若缓冲存储器中具有第二更新数据但第一更新数据不符合预设条件,则管理信息仍不会被读取到缓冲存储器中进行更新。在一范例实施例中,只有缓冲存储器中同时存在第一更新数据与第二更新数据时,管理信息才会被读取到缓冲存储器中进行更新。藉此,可有效减少对可复写式非易失性存储器模块的存取次数,进而可延长可复写式非易失性存储器模块的使用寿命。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。
Claims (28)
1.一种存储器管理方法,用于可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理单元,所述存储器管理方法包括:
执行主机写入操作,以从主机***接收写入指令并将对应于所述写入指令的第一数据存储至所述多个物理单元中的第一物理单元;
记录对应于所述主机写入操作的第一更新数据;
执行数据整并操作,以从所述多个物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述多个物理单元中的第三物理单元;
记录对应于所述数据整并操作的第二更新数据;以及
根据所述第一更新数据与所述第二更新数据将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
2.根据权利要求1所述的存储器管理方法,其中根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的步骤包括:
响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
3.根据权利要求1所述的存储器管理方法,还包括:
响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
4.根据权利要求1所述的存储器管理方法,还包括:
在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
5.根据权利要求1所述的存储器管理方法,其中所述第一更新数据包括与第一逻辑单元有关的映射信息,所述第二更新数据包括与第二逻辑单元有关的映射信息,所述第一逻辑单元映射至所述第一物理单元,且所述第二逻辑单元映射至所述第三物理单元。
6.根据权利要求1所述的存储器管理方法,其中根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的步骤包括:
根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
7.根据权利要求1所述的存储器管理方法,还包括:
将经更新的管理信息存储至所述可复写式非易失性存储器模块;以及
在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
8.根据权利要求1所述的存储器管理方法,还包括:
获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据;以及
根据所述子更新数据中的最新数据更新所述管理信息。
9.根据权利要求1所述的存储器管理方法,还包括:
判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
10.一种存储器存储装置,包括:
连接接口单元,用以连接至主机***;
可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以执行主机写入操作,以从所述主机***接收写入指令并指示将对应于所述写入指令的第一数据存储至所述多个物理单元中的第一物理单元,
其中所述存储器控制电路单元还用以记录对应于所述主机写入操作的第一更新数据,
其中所述存储器控制电路单元还用以执行数据整并操作,以指示从所述多个物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述多个物理单元中的第三物理单元,
其中所述存储器控制电路单元还用以记录对应于所述数据整并操作的第二更新数据,
其中所述存储器控制电路单元还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
11.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:
响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
12.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元还用以响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
13.根据权利要求10所述的存储器存储装置,其中在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,所述存储器控制电路单元还用以持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
14.根据权利要求10所述的存储器存储装置,其中所述第一更新数据包括与第一逻辑单元有关的映射信息,所述第二更新数据包括与第二逻辑单元有关的映射信息,所述第一逻辑单元映射至所述第一物理单元,且所述第二逻辑单元映射至所述第三物理单元。
15.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:
根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
16.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元还用以将经更新的管理信息存储至所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元还用以在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
17.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元还用以获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据,
其中所述存储器控制电路单元还用以根据所述子更新数据中的最新数据更新所述管理信息。
18.根据权利要求10所述的存储器存储装置,其中所述存储器控制电路单元还用以判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
19.一种存储器控制电路单元,用于控制可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理单元,其中所述存储器控制电路单元包括:
主机接口,用以连接至主机***;
存储器接口,用以连接至所述可复写式非易失性存储器模块;
缓冲存储器;以及
存储器管理电路,连接至所述主机接口、所述存储器接口及所述缓冲存储器,
其中所述存储器管理电路用以执行主机写入操作,以从所述主机***接收写入指令并指示将对应于所述写入指令的第一数据存储至所述多个物理单元中的第一物理单元,
其中所述存储器管理电路还用以记录对应于所述主机写入操作的第一更新数据,
其中所述存储器管理电路还用以执行数据整并操作,以指示从所述多个物理单元中的第二物理单元读取第二数据并将所述第二数据存储至所述多个物理单元中的第三物理单元,
其中所述存储器管理电路还用以记录对应于所述数据整并操作的第二更新数据,
其中所述存储器管理电路还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
20.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:
响应于所记录的所述第一更新数据符合预设条件,根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息。
21.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路还用以响应于所记录的所述第一更新数据的数据量不小于预设数据量,判定所记录的所述第一更新数据符合所述预设条件。
22.根据权利要求19所述的存储器控制电路单元,其中在根据所述第一更新数据与所述第二更新数据将所述管理信息读取至所述缓冲存储器之前,所述存储器管理电路还用以持续将所述第二更新数据暂存于所述缓冲存储器,且不根据所述第二更新数据读取所述管理信息。
23.根据权利要求19所述的存储器控制电路单元,其中所述第一更新数据包括与第一逻辑单元有关的映射信息,所述第二更新数据包括与第二逻辑单元有关的映射信息,所述第一逻辑单元映射至所述第一物理单元,且所述第二逻辑单元映射至所述第三物理单元。
24.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路根据所述第一更新数据与所述第二更新数据将所述管理信息从所述可复写式非易失性存储器模块读取至所述缓冲存储器并在所述缓冲存储器中更新所述管理信息的操作包括:
根据所述第一更新数据与所述第二更新数据,更新逻辑至物理映射信息。
25.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路还用以将经更新的管理信息存储至所述可复写式非易失性存储器模块,
其中所述存储器管理电路还用以在所述缓冲存储器中清除所述第一更新数据与所述第二更新数据。
26.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路还用以获得所述第一更新数据与所述第二更新数据中对应于同一逻辑单元的子更新数据,
其中所述存储器管理电路还用以根据所述子更新数据中的最新数据更新所述管理信息。
27.根据权利要求19所述的存储器控制电路单元,其中所述存储器管理电路还用以判断所述缓冲存储器中是否存在所述第一更新数据与所述第二更新数据的至少其中之一。
28.一种存储器存储装置,包括:
连接接口单元,用以连接至主机***;
可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理单元;以及
存储器控制电路单元,连接至所述连接接口单元与所述可复写式非易失性存储器模块,
其中所述存储器控制电路单元用以执行第一写入操作,其中所述第一写入操作包括将从所述主机***接收的第一数据存储至所述多个物理单元中的第一物理单元的操作以及将存储于所述多个物理单元中的第二物理单元中的第二数据写入至所述多个物理单元中的第三物理单元的操作的其中之一,
其中所述存储器控制电路单元还用以记录对应于所述第一写入操作的第一更新数据,
其中所述存储器控制电路单元还用以判断是否存在第二更新数据,所述第二更新数据基于第二写入操作而产生,且所述第二写入操作包括将所述第一数据存储至所述第一物理单元的所述操作以及将所述第二数据写入至所述第三物理单元的所述操作的其中的另一,
其中所述存储器控制电路单元还用以根据所述第一更新数据与所述第二更新数据指示将管理信息从所述可复写式非易失性存储器模块读取至缓冲存储器并在所述缓冲存储器中更新所述管理信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811032033.9A CN110879793B (zh) | 2018-09-05 | 2018-09-05 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811032033.9A CN110879793B (zh) | 2018-09-05 | 2018-09-05 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110879793A true CN110879793A (zh) | 2020-03-13 |
CN110879793B CN110879793B (zh) | 2021-09-14 |
Family
ID=69728273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811032033.9A Active CN110879793B (zh) | 2018-09-05 | 2018-09-05 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110879793B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068782A (zh) * | 2020-09-17 | 2020-12-11 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN112394883A (zh) * | 2020-11-17 | 2021-02-23 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN112486417A (zh) * | 2020-12-03 | 2021-03-12 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112835536A (zh) * | 2021-03-10 | 2021-05-25 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN113419683A (zh) * | 2021-07-01 | 2021-09-21 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
CN114203239A (zh) * | 2021-12-07 | 2022-03-18 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445401A (zh) * | 2015-08-11 | 2017-02-22 | 群联电子股份有限公司 | 表格更新方法、存储器储存装置及存储器控制电路单元 |
CN107193758A (zh) * | 2017-05-19 | 2017-09-22 | 记忆科技(深圳)有限公司 | 一种固态硬盘的映射表管理方法及固态硬盘 |
CN107357520A (zh) * | 2016-05-10 | 2017-11-17 | 群联电子股份有限公司 | 整理指令处理方法、存储器控制电路单元及其存储装置 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
CN108170614A (zh) * | 2018-01-19 | 2018-06-15 | 湖南国科微电子股份有限公司 | 一种避免数据重复回收的方法、装置及固态硬盘 |
-
2018
- 2018-09-05 CN CN201811032033.9A patent/CN110879793B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445401A (zh) * | 2015-08-11 | 2017-02-22 | 群联电子股份有限公司 | 表格更新方法、存储器储存装置及存储器控制电路单元 |
CN107357520A (zh) * | 2016-05-10 | 2017-11-17 | 群联电子股份有限公司 | 整理指令处理方法、存储器控制电路单元及其存储装置 |
CN107193758A (zh) * | 2017-05-19 | 2017-09-22 | 记忆科技(深圳)有限公司 | 一种固态硬盘的映射表管理方法及固态硬盘 |
CN107844431A (zh) * | 2017-11-03 | 2018-03-27 | 合肥兆芯电子有限公司 | 映射表更新方法、存储器控制电路单元与存储器存储装置 |
CN108170614A (zh) * | 2018-01-19 | 2018-06-15 | 湖南国科微电子股份有限公司 | 一种避免数据重复回收的方法、装置及固态硬盘 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112068782A (zh) * | 2020-09-17 | 2020-12-11 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN112068782B (zh) * | 2020-09-17 | 2023-07-25 | 群联电子股份有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN112394883A (zh) * | 2020-11-17 | 2021-02-23 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN112394883B (zh) * | 2020-11-17 | 2023-07-04 | 群联电子股份有限公司 | 数据整并方法、存储器存储装置及存储器控制电路单元 |
CN112486417A (zh) * | 2020-12-03 | 2021-03-12 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112486417B (zh) * | 2020-12-03 | 2023-07-04 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112835536A (zh) * | 2021-03-10 | 2021-05-25 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN112835536B (zh) * | 2021-03-10 | 2023-08-29 | 群联电子股份有限公司 | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
CN113419683A (zh) * | 2021-07-01 | 2021-09-21 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
CN113419683B (zh) * | 2021-07-01 | 2023-07-04 | 群联电子股份有限公司 | 存储器存取方法、存储器存储装置及存储器控制电路单元 |
CN114203239A (zh) * | 2021-12-07 | 2022-03-18 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
CN114203239B (zh) * | 2021-12-07 | 2024-04-30 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
CN110879793B (zh) | 2021-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110879793B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
TWI676176B (zh) | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113885692B (zh) | 存储器效能优化方法、存储器控制电路单元以及存储装置 | |
CN110390985B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN106775479B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
TWI702496B (zh) | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
CN112051971B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN110308876B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN111767005B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111737165A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN112394883B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
CN112988076A (zh) | 快闪存储器控制方法、存储装置及控制器 | |
CN112835536A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN110096215B (zh) | 存储器管理方法、存储器储存装置及存储器控制电路单元 | |
CN112486417A (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
CN111610937A (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN111143230B (zh) | 数据整并方法、存储器存储装置及存储器控制电路单元 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN112015327B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN117632038B (zh) | 损耗平衡方法、存储器存储装置及存储器控制电路单元 | |
CN112445418B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 | |
TWI724427B (zh) | 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN111813325B (zh) | 存储器控制方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |