CN112988068B - 存储器控制方法、存储器存储装置及存储器控制器 - Google Patents

存储器控制方法、存储器存储装置及存储器控制器 Download PDF

Info

Publication number
CN112988068B
CN112988068B CN202110260892.9A CN202110260892A CN112988068B CN 112988068 B CN112988068 B CN 112988068B CN 202110260892 A CN202110260892 A CN 202110260892A CN 112988068 B CN112988068 B CN 112988068B
Authority
CN
China
Prior art keywords
data
memory
units
entity
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110260892.9A
Other languages
English (en)
Other versions
CN112988068A (zh
Inventor
吴宗霖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hosin Global Electronics Co Ltd
Original Assignee
Hosin Global Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hosin Global Electronics Co Ltd filed Critical Hosin Global Electronics Co Ltd
Priority to CN202110260892.9A priority Critical patent/CN112988068B/zh
Publication of CN112988068A publication Critical patent/CN112988068A/zh
Application granted granted Critical
Publication of CN112988068B publication Critical patent/CN112988068B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种存储器控制方法、存储器存储装置及存储器控制器。所述方法包括:从主机系统接收至少一写入指令;根据所述写入指令执行循序写入操作;以及在执行所述循序写入操作的期间,在闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作。因此,可提高在循序写入时的写入带宽的稳定性。

Description

存储器控制方法、存储器存储装置及存储器控制器
技术领域
本发明涉及一种存储器控制技术,且尤其涉及一种存储器控制方法、存储器存储装置及存储器控制器。
背景技术
非易失性存储器模块(例如快闪存储器模块)具有数据非易失性保存、低耗电及数据存取快速等优点。某些类型的存储器存储装置可额外于非易失性存储器模块中设置快取区(亦称为快取缓冲)。在存储数据时,若快取区尚未被写满,则数据可通过单阶存储单元(Single Level Cell,SLC)程序化模式来快速存储至快取区。在快取区被写满后,后续数据可通过直接三阶存储单元(Direct-Triple Level Cell,Direct-TLC)、直接四阶存储单元(Direct-Quad Level Cell,Direct-QLC)或类似的程序化模式来直接将数据存储至数据区。
一般来说,快取区中的每一个存储单元的数据容量是数据区中的每一个存储单元的数据容量的1/3或1/4。因此,在主机系统执行大量数据的循序写入时,往往执行到后期闲置区中的实体单元严重不足时,会触发垃圾回收程序。此时,主机系统的写入必须要等到垃圾回收程序释放出新的闲置实体单元才能继续执行,从而导致存储器装置的写入带宽大幅下降。
发明内容
本发明的实施例提供一种存储器控制方法、存储器存储装置及存储器控制器,可提高在循序写入时的写入带宽的稳定性。
本发明的实施例提供一种存储器控制方法,其用于控制存储器模块。所述存储器模块包括多个实体单元。所述多个实体单元中的部分实体单元被划分至闲置区中。所述存储器控制方法包括:从主机系统接收至少一写入指令;根据所述至少一写入指令执行循序写入操作,其中所述循序写入操作包括:从所述闲置区中选择多个第一实体单元;基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元;在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元;以及基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元;以及在执行所述循序写入操作的期间,在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作。所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作。
本发明的实施例另提供一种存储器存储装置,其包括存储器模块、连接接口及存储器控制器。所述存储器模块包括多个实体单元。所述多个实体单元中的部分实体单元被划分至闲置区中。所述连接接口用以连接至主机系统。所述存储器控制器连接至所述存储器模块与所述连接接口。所述存储器控制器用以从所述主机系统接收至少一写入指令。所述存储器控制器还用以根据所述至少一写入指令执行循序写入操作。所述循序写入操作包括:从所述闲置区中选择多个第一实体单元;基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元;在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元;以及基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元。在执行所述循序写入操作的期间,所述存储器控制器还用以在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作。所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作。
本发明的实施例另提供一种存储器控制器,其用以控制存储器模块。所述存储器模块包括多个实体单元。所述多个实体单元中的部分实体单元被划分至闲置区中。所述存储器控制器包括主机接口、存储器接口及存储器控制电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述存储器模块。所述存储器控制电路连接至所述主机接口与所述存储器接口。所述存储器控制电路用以从所述主机系统接收至少一写入指令。所述存储器控制电路还用以根据所述至少一写入指令执行循序写入操作。所述循序写入操作包括:从所述闲置区中选择多个第一实体单元;基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元。在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元。基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元。在执行所述循序写入操作的期间,所述存储器控制电路还用以在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作。所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作。
在本发明的实施例中,所述第一程序化模式用以将第一数目的位元数据存储至一个存储单元,所述第二程序化模式用以将第二数目的位元数据存储至一个存储单元,且所述第一数目小于所述第二数目。
在本发明的实施例中,所述早期数据整理操作包括:从存储有所述第一部分数据的所述多个第一实体单元中选择至少其中之一作为来源实体单元;从所述来源实体单元中收集有效数据;从所述闲置区中选择至少一第三实体单元;以及基于所述第二程序化模式将所述有效数据复制到所述至少一第三实体单元中。
在本发明的实施例中,所述早期数据整理操作还包括:在将所述有效数据复制到所述至少一第三实体单元之后,将作为所述来源实体单元的所述至少一实体单元划分至所述闲置区中,以持续将所述闲置区中剩余的实体单元的所述总数维持于不低于所述门槛值。
在本发明的实施例中,所述循序写入操作还包括:基于所述第二程序化模式将所述至少一写入指令所指示的第三部分数据存储至重新划分至所述闲置区中的所述多个第一实体单元。
在本发明的实施例中,在执行所述循序写入操作的期间,一并执行所述早期数据整理操作的第一主机写入带宽,高于在执行所述循序写入操作的期间,一并执行所述数据整并操作的第二主机写入带宽。
基于上述,在执行循序写入操作的期间,在闲置区中剩余的实体单元的总数低于门槛值之前,早期数据整理操作可被预先执行。因此,可提高在循序写入时的写入带宽的稳定性。
附图说明
图1是根据本发明的实施例所示出的存储器存储装置的示意图;
图2是根据本发明的实施例所示出的存储器控制器的示意图;
图3是根据本发明的实施例所示出的管理存储器模块的示意图;
图4是根据本发明的实施例所示出的未采用早期数据整理操作的主机写入带宽的示意图;
图5是根据本发明的实施例所示出的采用早期数据整理操作的主机写入带宽示意图;
图6是根据本发明的实施例所示出的存储器控制方法的流程图。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。
图1是根据本发明的实施例所示出的存储器存储装置的示意图。请参照图1,存储器存储系统10包括主机系统11与存储器存储装置12。主机系统11可为任意型态的计算机系统。例如。主机系统11可为笔记本计算机、台式计算机、智能手机、平板计算机、工业计算机、游戏机、数码相机等各式电子系统。存储器存储装置12用以存储来自主机系统11的数据。例如,存储器存储装置12可包括固态硬盘、U盘、存储卡或其他类型的非易失性存储装置。主机系统11可经由串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)、通用串行总线(Universal Serial Bus,USB)或其他类型的连接接口电性连接至存储器存储装置12。因此,主机系统11可将数据存储至存储器存储装置12和/或从存储器存储装置12读取数据。
存储器存储装置12可包括连接接口121、存储器模块122及存储器控制器123。连接接口121用以将存储器存储装置12连接至主机系统11。例如,连接接口121可支持SATA、PCIExpress或USB等连接接口标准。存储器存储装置12可经由连接接口121与主机系统11通信。
存储器模块122用以存储数据。存储器模块122可包括可复写式非易失性存储器模块。存储器模块122包括存储单元阵列。存储器模块122中的存储单元是以电压的形式来存储数据。例如,存储器模块122可包括单阶存储单元(SLC)NAND型快闪存储器模块、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块、三阶存储单元(TLC)NAND型快闪存储器模块、四阶存储单元(QLC)NAND型快闪存储器模块或其他具有相似特性的存储器模块。
存储器控制器123连接至连接接口121与存储器模块122。存储器控制器123可用以控制存储器存储装置12。例如,存储器控制器123可控制连接接口121与存储器模块122以进行数据存取与数据管理。例如,存储器控制器123可包括中央处理单元(CPU)、或是其他可编程的一般用途或特殊用途的微处理器、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、专用集成电路(Application Specific Integrated Circuits,ASIC)、可编程逻辑器件(Programmable Logic Device,PLD)或其他类似装置或这些装置的组合。
在一实施例中,存储器控制器123亦称为快闪存储器控制器。在一实施例中,存储器模块122亦称为快闪存储器模块。存储器模块122可接收来自存储器控制器123的指令序列并根据此指令序列存取存储单元。
图2是根据本发明的实施例所示出的存储器控制器的示意图。请参照图1与图2,存储器控制器123包括主机接口21、存储器接口22及存储器控制电路23。主机接口21用以经由连接接口121连接至主机系统11,以与主机系统11通信。存储器接口22用以连接至存储器模块122,以与存储器模块122通信。
存储器控制电路23连接至主机接口21与存储器接口22。存储器控制电路23可用以控制主机接口21与存储器接口22。此外,存储器控制电路23可经由主机接口21与主机系统11沟通并经由存储器接口22存取存储器模块122。存储器控制电路23也可视为存储器控制器123的控制核心。在以下实施例中,对于存储器控制电路23的说明等同于对于存储器控制器123的说明。
图3是根据本发明的实施例所示出的管理存储器模块的示意图。请参照图1至图3,存储器模块122包括多个实体单元301(1)~301(C)。每一个实体单元皆包括多个存储单元且用以非易失性地存储数据。例如,一个实体单元可包括一或多个实体区块。每一个实体单元可包括多个实体页。一个实体页中的多个存储单元可被同时程序化以存储数据。一个实体单元(或实体区块)中的所有存储单元可被同时抹除。
在一实施例中,存储器模块122中的实体单元301(1)~301(C)可被划分至快取区310、数据区320及闲置区330。例如,快取区310中的实体单元301(1)~301(A)与数据区320中的实体单元301(A+1)~301(B)皆存储有来自主机系统11的数据(亦称为使用者数据)。闲置区330中的实体单元301(B+1)~301(C)未存储数据。例如,快取区310与数据区320中的实体单元被抹除后就会被重新划分至闲置区330。
在一实施例中,当有来自于主机系统11的新数据需要存储时,闲置区330中的一或多个实体单元会被选取并且用于存储此新数据。根据所采用的程序化模式,存储有数据的实体单元可被划分至快取区310或数据区320。此外,存储于快取区310的数据可能在往后某一时间点于存储器存储装置12的背景作业中被复制到数据区320进行存储。
在一实施例中,存储器控制电路23可配置多个逻辑单元来映射快取区310与数据区320中的实体单元。例如,一个逻辑单元可由一或多个逻辑地址组成。逻辑单元与实体单元之间的映射关系则可记载于逻辑至实体映射表中。
在一实施例中,若某一实体单元(或某一实体页)当前有被某一逻辑单元映射,则表示此实体单元(或此实体页)中存储有有效数据。然而,若某一实体单元(或某一实体页)当前未被任何逻辑单元映射,则表示此实体单元(或此实体页)中未存储有效数据。在一实施例中,未存储有效数据的实体单元可被重新划分至闲置区330。
在一实施例中,快取区310中的实体单元301(1)~301(A)的最大容量小于数据区320中的实体单元301(A+1)~301(B)的最大容量。在一实施例中,快取区310中的实体单元301(1)~301(A)的最大容量约为数据区320中的实体单元301(A+1)~301(B)的最大容量的1%~5%,但本发明不限于此。
在一实施例中,快取区310中的实体单元301(1)~301(A)皆是基于某一程序化模式(亦称为第一程序化模式)进行程序化以存储数据,而数据区320中的实体单元301(A+1)~301(B)皆是基于另一程序化模式(亦称为第二程序化模式)进行程序化以存储数据。第一程序化模式不同于第二程序化模式。
在一实施例中,第一程序化模式可用以将一默认数目(亦称为第一数目)的位元数据存储至一个存储单元,第二程序化模式则可用以将另一默认数目(亦称为第二数目)的位元数据存储至一个存储单元,且第一数目小于第二数目。例如,第一数目可为1,且第二数目可为2、3或4。
在一实施例中,第一程序化模式可包括SLC模式(或虚拟SLC模式),而第二程序化模式则可包括MLC模式、TLC模式或QLC模式。其中,基于SLC模式来程序化的一个存储单元可用以存储1个位元,而基于MLC模式、TLC模式或QLC模式来程序化的一个存储单元则可用以分别存储2个、3个或4个位元。在一实施例中,第二程序化模式中的TLC模式(或QLC模式)亦称为Direct-TLC模式(或Direct-QLC)模式。
在一实施例中,第一程序化模式的可靠度和/或程序化速度高于第二程序化模式的可靠度和/或程序化速度。在以下实施例中,第一程序化模式是以SLC模式作为范例,而第二程序化模式则是以TLC模式(或Direct-TLC模式)作为范例,但本发明不以此为限。
在一实施例中,存储器控制电路23可从主机系统11接收至少一写入指令。所述写入指令用以指示将特定数据存储至特定的逻辑单元。例如,所述写入指令是指示将特定数据存储至多个连续的逻辑单元。根据所述写入指令,存储器控制电路23可执行一个循序写入(sequential write)操作。
在所述循序写入操作中,存储器控制电路23可先从闲置区330中选择多个实体单元(亦称为第一实体单元)。然后,存储器控制电路23可指示存储器模块122基于所述第一程序化模式将所述至少一写入指令所指示的一部分数据(亦称为第一部分数据)存储至所述多个第一实体单元中。以图3为例,来自闲置区303的第一实体单元可包括实体单元301(1)~301(A)。在将所述第一部分数据存储至实体单元301(1)~301(A)后,实体单元301(1)~301(A)可被划分至快取区310。
在所述循序写入操作中,在将所述第一部分数据存储至第一实体单元后,假设此时已达快取区303的最大容量,存储器控制电路23可从闲置区330中再次选择多个实体单元(亦称为第二实体单元)。然后,存储器控制电路23可指示存储器模块122基于所述第二程序化模式将所述至少一写入指令所指示的另一部分数据(亦称为第二部分数据)存储至所述多个第二实体单元中。以图3为例,来自闲置区303的第二实体单元可包括实体单元301(A+1)~301(B)。在将所述第二部分数据存储至实体单元301(A+1)~301(B)后,实体单元301(A+1)~301(B)可被划分至数据区320。
也就是说,在所述循序写入操作中,来自主机系统11的部份数据(即所述第一部分数据)可先被存储至快取区310。在快取区310被写满之后,后续来自主机系统11的数据(即所述第二部分数据)可接续被存储至数据区320。须注意的是,所述第一部分数据是基于所述第一程序化模式而存储至快取区310且所述第二部分数据是基于所述第二程序化模式而存储至数据区320。因此,在所述循序写入操作的执行初期,将所述第一部分数据存储至快取区310的速度(亦称为主机写入带宽),可高于在快取区310被写满之后,将所述第二部分数据存储至数据区320的速度(即主机写入带宽)。
须注意的是,在执行所述循序写入操作的期间,在闲置区310中剩余的实体单元的总数低于一个门槛值之前,存储器控制电路23可预先执行一个数据整理操作(亦称为早期数据整理操作)。所述早期数据整理操作可用以将快取区310中的所述第一实体单元重新划分至闲置区330中。此外,所述门槛值是用以触发一个数据整并操作。例如,所述数据整并操作可为存储器存储装置12默认的垃圾回收(garbage collection)操作。
一般来说,在执行所述循序写入操作的期间,在快取区310被写满并接续将数据存储至数据区320的过程中,闲置区330中的实体单元会快速的被使用并划分至数据区320中以存储数据。因此,在未执行所述早期数据整理操作的例子中,当闲置区310中剩余的实体单元的总数低于此门槛值(例如3)时,存储器控制电路23可触发执行所述数据整并操作(即垃圾回收操作)。所述数据整并操作可用以将快取区310中部分实体单元所存储的有效数据搬移至数据区320并将部分实体单元重新关联至闲置区330。重新关联至闲置区330的实体单元即可接续被用来存储来自主机系统11的数据。
但是,须注意的是,在一般性的设定中,用来触发(或启动)所述数据整并操作的门槛值都设定的比较小。因此,实务上,在执行所述循序写入操作的期间,当所述数据整并操作被触发(或启动)时,闲置区330中剩余的实体单元的数目往往都已经所剩无几。此时,来自主机系统的数据只能缓慢的写入至从闲置区330中提取的某一实体单元,并等待所述数据整并操作将一个新的实体单元划分至闲置区330中。然后,来自主机系统的更多数据才能再继续写入至这个新的实体单元中。因此,一般来说,在执行所述循序写入操作的期间,一旦触发(或启动)所述所述数据整并操作后,来自主机系统的数据的写入速度(即主机写入带宽)往往就会被限制在相当低的速度状态,从而严重影响数据写入效能且降低写入频宽的稳定性。
在一实施例中,在执行所述循序写入操作的期间,在闲置区310中剩余的实体单元的总数低于所述门槛值之前,例如,闲置区310中剩余的实体单元的总数达到一默认值时,存储器控制电路23可预先执行所述早期数据整理操作。所述早期数据整理操作可将原先用来存储所述第一部分数据的所述第一实体单元重新划分至闲置区330中,以供后续的数据写入使用。其中,所述默认值大于所述门槛值。例如,假设所述门槛值为3,则所述默认值可为10或者其余大于3的整数。
在一实施例中,通过执行所述早期数据整理操作,可避免所述数据整并操作被触发。此外,在执行所述循序写入操作的期间一并在背景执行所述早期数据整理操作,虽然仍可能微幅的影响存储器存储装置12的数据写入效能(因为存储器模块122的带宽有限)。但是,在执行所述循序写入操作的期间,一并在背景执行所述早期数据整理操作的主机写入带宽(亦称为第一主机写入带宽),仍高于在执行所述循序写入操作的期间,一并在背景执行所述数据整并操作的主机写入带宽(亦称为第二主机写入带宽)。
在一实施例中,在所述早期数据整理操作中,存储器控制电路23可从快取区310中存储有所述第一部分数据的所述第一实体单元中选择至少其中之一作为来源实体单元。然后,存储器控制电路23可从所述来源实体单元中收集有效数据。另一方面,存储器控制电路23可从闲置区330中提取至少一实体单元(亦称为第三实体单元)。然后,存储器控制电路23可基于所述第二程序化模式将所收集的有效数据复制到所述第三实体单元中。在将所收集的有效数据复制到所述第三实体单元之后,作为来源实体单元的所述第一实体单元中的数据可被标记为无效。同时,基于所述第二程序化模式存储所收集的有效数据的所述第三实体单元可被划分至数据区320。尔后,存储器控制电路23可将所述第一实体单元重新划分至闲置区330中。
在一实施例中,在将所述第一实体单元重新划分至闲置区330之后,存储器控制电路23可从闲置区330中选择所述第一实体单元。然后,存储器控制电路23可基于所述第二程序化模式将所述写入指令所指示的部分数据(亦称为第三部分数据)存储至所述第一实体单元中。因此,在执行所述循序写入操作的期间(例如所述循序写入操作的后期),存储器存储装置12的主机写入带宽(或写入速度)可被维持于所述第二程序化模式所对应的写入带宽(或写入速度)。
在一实施例中,通过执行所述早期数据整理操作以将第一实体单元重新关联至闲置区330,可持续将闲置区330中剩余的实体单元的总数维持于不低于所述门槛值。因此,可避免在执行所述循序写入操作的期间,存储器存储装置12的主机写入带宽太大幅度下降。
图4是根据本发明的一实施例所示出的未采用早期数据整理操作的主机写入带宽的示意图。请参照图4,在执行所述循序写入操作的期间,在时间点T(1)之前的时间区间401,来自主机系统11的数据基于第一程序化模式而被存储于快取区310。例如,在时间区间401内,存储器存储装置12的主机写入带宽可约为300Mbps。在时间点T(1),快取区310被写满。因此,在时间点T(1)之后的时间区间402内,来自主机系统11的数据持续基于第二程序化模式而被存储于数据区320。例如,在时间区间402内,存储器存储装置12的主机写入带宽可约为150Mbps。在时间点T(2),闲置区330中剩余的实体单元的总数低于所述门槛值(例如3),故默认的数据整并操作将被触发。因此,在时间点T(2)之后的时间区间403内,来自主机系统11的数据持续基于第二程序化模式而存储于数据区320,同时,默认的数据整并操作会在背景执行,从而导致存储器存储装置12的主机写入带宽更进一步下降,例如降低至约50Mbps。
图5是根据本发明的一实施例所示出的采用早期数据整理操作的主机写入带宽示意图。请参照图5,在一实施例中,在执行所述循序写入操作的期间,在时间点T(1)之前的时间区间501,来自主机系统11的数据基于第一程序化模式而被存储于快取区310。例如,在时间区间501内,存储器存储装置12的主机写入带宽可同样约为300Mbps。在时间点T(1),快取区310被写满。因此,在时间点T(1)之后的时间区间502内,来自主机系统11的数据持续基于第二程序化模式而被存储于数据区320。例如,在时间区间502内,存储器存储装置12的主机写入带宽可同样约为150Mbps。
须注意的是,在本实施例中,在时间点T(3)(例如时间点T(3)介于时间点T(1)与T(2)之间),在闲置区330中剩余的实体单元的总数低于所述门槛值(例如3)之前,所述早期数据整理操作被启动并执行。因此,在时间点T(3)之后的时间区间503内,来自主机系统11的数据持续基于第二程序化模式而存储于数据区320,同时,所述早期数据整理操作会在背景执行。例如,在时间区间503内,存储器存储装置12的主机写入带宽可约为100Mbps,其高于图4的时间区间403内的主机写入带宽(例如50Mbps)。在时间点T(4),响应于快取区310中所有的实体单元(即第一实体单元)都已经被释放(例如转移至闲置区330或数据区320)和/或闲置区330中维持有足够的实体单元供使用。因此,在时间点T(4)之后的时间范围504内,所述早期数据整理操作可被停止(或终止)。例如,在时间区间504内,存储器存储装置12的主机写入带宽可回复为约150Mbps,其相同或相似于在时间区间502内的主机写入带宽。
换言之,在图5的实施例中,虽然在快取区310被写满(例如时间点T(1))之后,存储器存储装置12的主机写入带宽明显下降,但是,在开始将数据存储至数据区320之后,通过早期数据整理操作,存储器存储装置12的主机写入带宽始终被维持在约100至150Mbps之间。相较于图4的例子(即未采用早期数据整理操作,使得在触发数据整并操作之后主机写入带宽大幅下降至50Mbps),通过执行早期数据整理操作而避免闲置区330中剩余的实体单元的总数低于所述门槛值,明显可提升在执行所述循序写入操作的期间,存储器存储装置12的主机写入带宽的稳定性。
图6是根据本发明的一实施例所示出的存储器控制方法的流程图。请参照图6,在步骤S601中,从主机系统接收至少一写入指令。在步骤S602中,根据所述至少一写入指令执行循序写入操作。其中,步骤S602可包括步骤S6021~S6024。在步骤S6021中,从闲置区中选择多个第一实体单元。在步骤S6022中,基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元。在将所述第一部分数据存储至所述多个第一实体单元之后,在步骤S6023中,从所述闲置区中选择至少一第二实体单元。在步骤S6024中,基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元。此外,在步骤S603中,在执行所述循序写入操作的期间,在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作。所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作。
然而,图6中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图6中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图6的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,在执行循序写入操作的期间,在闲置区中剩余的实体单元的总数低于门槛值之前,早期数据整理操作可被预先执行。因此,可提高在循序写入时的写入带宽的稳定性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (15)

1.一种存储器控制方法,其特征在于,用于控制存储器模块,所述存储器模块包括多个实体单元,所述多个实体单元中的部分实体单元被划分至闲置区中,且所述存储器控制方法包括:
从主机系统接收至少一写入指令;
根据所述至少一写入指令执行循序写入操作,其中所述循序写入操作包括:
从所述闲置区中选择多个第一实体单元;
基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元;
在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元;
基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元;以及
在执行所述循序写入操作的期间,在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作,
其中所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作,并且
在执行所述循序写入操作的期间,一并执行所述早期数据整理操作的第一主机写入带宽,高于在执行所述循序写入操作的期间,一并执行所述数据整并操作的第二主机写入带宽。
2.根据权利要求1所述的存储器控制方法,其中所述第一程序化模式用以将第一数目的位元数据存储至一个存储单元,所述第二程序化模式用以将第二数目的位元数据存储至一个存储单元,且所述第一数目小于所述第二数目。
3.根据权利要求1所述的存储器控制方法,其中所述早期数据整理操作包括:
从存储有所述第一部分数据的所述多个第一实体单元中选择至少其中之一作为来源实体单元;
从所述来源实体单元中收集有效数据;
从所述闲置区中提取至少一第三实体单元;以及
基于所述第二程序化模式将所述有效数据复制到所述至少一第三实体单元中。
4.根据权利要求3所述的存储器控制方法,其中所述早期数据整理操作还包括:
在将所述有效数据复制到所述至少一第三实体单元之后,将作为所述来源实体单元的至少一所述实体单元划分至所述闲置区中,以持续将所述闲置区中剩余的实体单元的所述总数维持于不低于所述门槛值。
5.根据权利要求1所述的存储器控制方法,其中所述循序写入操作还包括:
基于所述第二程序化模式将所述至少一写入指令所指示的第三部分数据存储至重新划分至所述闲置区中的所述多个第一实体单元。
6.一种存储器存储装置,其特征在于,包括:
存储器模块,其中所述存储器模块包括多个实体单元,且所述多个实体单元中的部分实体单元被划分至闲置区中;
连接接口,用以连接至主机系统;以及
存储器控制器,连接至所述存储器模块与所述连接接口,
其中所述存储器控制器用以从所述主机系统接收至少一写入指令,
所述存储器控制器还用以根据所述至少一写入指令执行循序写入操作,其中所述循序写入操作包括:
从所述闲置区中选择多个第一实体单元;
基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元;
在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元;以及
基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元,并且
在执行所述循序写入操作的期间,所述存储器控制器还用以在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作,
其中所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作,并且
在执行所述循序写入操作的期间,一并执行所述早期数据整理操作的第一主机写入带宽,高于在执行所述循序写入操作的期间,一并执行所述数据整并操作的第二主机写入带宽。
7.根据权利要求6所述的存储器存储装置,其中所述第一程序化模式用以将第一数目的位元数据存储至一个存储单元,所述第二程序化模式用以将第二数目的位元数据存储至一个存储单元,且所述第一数目小于所述第二数目。
8.根据权利要求6所述的存储器存储装置,其中所述早期数据整理操作包括:
从存储有所述第一部分数据的所述多个第一实体单元中选择至少其中之一作为来源实体单元;
从所述来源实体单元中收集有效数据;
从所述闲置区中选择至少一第三实体单元;以及
基于所述第二程序化模式将所述有效数据复制到所述至少一第三实体单元中。
9.根据权利要求8所述的存储器存储装置,其中所述早期数据整理操作还包括:
在将所述有效数据复制到所述至少一第三实体单元之后,将作为所述来源实体单元的至少一所述实体单元划分至所述闲置区中,以持续将所述闲置区中剩余的实体单元的所述总数维持于不低于所述门槛值。
10.根据权利要求6所述的存储器存储装置,其中所述循序写入操作还包括:
基于所述第二程序化模式将所述至少一写入指令所指示的第三部分数据存储至重新划分至所述闲置区中的所述多个第一实体单元。
11.一种存储器控制器,其特征在于,用以控制存储器模块,其中所述存储器模块包括多个实体单元,所述多个实体单元中的部分实体单元被划分至闲置区中,且所述存储器控制器包括:
主机接口,用以连接至主机系统;
存储器接口,用以连接至所述存储器模块;以及
存储器控制电路,连接至所述主机接口与所述存储器接口,
其中所述存储器控制电路用以从所述主机系统接收至少一写入指令,
所述存储器控制电路还用以根据所述至少一写入指令执行循序写入操作,其中所述循序写入操作包括:
从所述闲置区中选择多个第一实体单元;
基于第一程序化模式将所述至少一写入指令所指示的第一部分数据存储至所述多个第一实体单元;
在将所述第一部分数据存储至所述多个第一实体单元之后,从所述闲置区中选择至少一第二实体单元;以及
基于第二程序化模式将所述至少一写入指令所指示的第二部分数据存储至所述至少一第二实体单元,并且
在执行所述循序写入操作的期间,所述存储器控制电路还用以在所述闲置区中剩余的实体单元的总数低于门槛值之前,执行早期数据整理操作,
其中所述早期数据整理操作用以将所述多个第一实体单元重新划分至所述闲置区中,且所述门槛值用以触发数据整并操作,并且
在执行所述循序写入操作的期间,一并执行所述早期数据整理操作的第一主机写入带宽,高于在执行所述循序写入操作的期间,一并执行所述数据整并操作的第二主机写入带宽。
12.根据权利要求11所述的存储器控制器,其中所述第一程序化模式用以将第一数目的位元数据存储至一个存储单元,所述第二程序化模式用以将第二数目的位元数据存储至一个存储单元,且所述第一数目小于所述第二数目。
13.根据权利要求11所述的存储器控制器,其中所述早期数据整理操作包括:
从存储有所述第一部分数据的所述多个第一实体单元中选择至少其中之一作为来源实体单元;
从所述来源实体单元中收集有效数据;
从所述闲置区中选择至少一第三实体单元;以及
基于所述第二程序化模式将所述有效数据复制到所述至少一第三实体单元中。
14.根据权利要求13所述的存储器控制器,其中所述早期数据整理操作还包括:
在将所述有效数据复制到所述至少一第三实体单元之后,将作为所述来源实体单元的至少一所述实体单元划分至所述闲置区中,以持续将所述闲置区中剩余的实体单元的所述总数维持于不低于所述门槛值。
15.根据权利要求11所述的存储器控制器,其中所述循序写入操作还包括:
基于所述第二程序化模式将所述至少一写入指令所指示的第三部分数据存储至重新划分至所述闲置区中的所述多个第一实体单元。
CN202110260892.9A 2021-03-10 2021-03-10 存储器控制方法、存储器存储装置及存储器控制器 Active CN112988068B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110260892.9A CN112988068B (zh) 2021-03-10 2021-03-10 存储器控制方法、存储器存储装置及存储器控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110260892.9A CN112988068B (zh) 2021-03-10 2021-03-10 存储器控制方法、存储器存储装置及存储器控制器

Publications (2)

Publication Number Publication Date
CN112988068A CN112988068A (zh) 2021-06-18
CN112988068B true CN112988068B (zh) 2023-03-10

Family

ID=76336346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110260892.9A Active CN112988068B (zh) 2021-03-10 2021-03-10 存储器控制方法、存储器存储装置及存储器控制器

Country Status (1)

Country Link
CN (1) CN112988068B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10241908B2 (en) * 2011-04-26 2019-03-26 Seagate Technology Llc Techniques for dynamically determining allocations and providing variable over-provisioning for non-volatile storage
JP2018120439A (ja) * 2017-01-25 2018-08-02 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6697410B2 (ja) * 2017-03-21 2020-05-20 キオクシア株式会社 メモリシステムおよび制御方法
KR20200088563A (ko) * 2019-01-15 2020-07-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN111949200A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储器及其控制方法和控制装置

Also Published As

Publication number Publication date
CN112988068A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
TWI409633B (zh) 快閃記憶體儲存裝置、其控制器與資料寫入方法
EP2291746B1 (en) Hybrid memory management
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US8392649B2 (en) Memory storage device, controller, and method for responding to host write commands triggering data movement
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US9176865B2 (en) Data writing method, memory controller, and memory storage device
TWI446349B (zh) 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
US11334493B2 (en) Memory system and operating method thereof
CN111400201B (zh) 快闪存储器的数据整理方法、存储装置及控制电路单元
TWI698749B (zh) 資料儲存裝置與資料處理方法
CN107544922B (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
CN108733577B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
US9037781B2 (en) Method for managing buffer memory, memory controllor, and memory storage device
CN107357520B (zh) 整理指令处理方法、存储器控制电路单元及其存储装置
CN113885692A (zh) 存储器效能优化方法、存储器控制电路单元以及存储装置
CN114416147B (zh) 固件载入方法、存储器及计算机可读存储介质
CN111625197A (zh) 存储器控制方法、存储器存储装置及存储器控制器
US9001585B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN111737165B (zh) 存储器控制方法、存储器存储装置及存储器控制电路单元
CN112988068B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN113094306B (zh) 有效数据管理方法、存储器存储装置及存储器控制器
CN112988069B (zh) 存储器管理方法、存储器存储装置及存储器控制器
US11809314B2 (en) Method and apparatus for performing access control of memory device with aid of multi-stage garbage collection management

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