CN111880723A - 数据储存装置与数据处理方法 - Google Patents
数据储存装置与数据处理方法 Download PDFInfo
- Publication number
- CN111880723A CN111880723A CN202010180248.6A CN202010180248A CN111880723A CN 111880723 A CN111880723 A CN 111880723A CN 202010180248 A CN202010180248 A CN 202010180248A CN 111880723 A CN111880723 A CN 111880723A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- logical
- mapping table
- memory controller
- 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.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 28
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000013507 mapping Methods 0.000 claims description 109
- 238000010586 diagram Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Abstract
本发明涉及一种数据储存装置与数据处理方法,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置。存储器控制器于一垃圾收集程序中,选择多个空闲的存储器区块作为多个目标存储器区块,用以将至少一来源存储器区块内所储存的有效数据搬移至目标存储器区块。存储器控制器于垃圾收集程序中判断各有效数据的一属性,并且根据各有效数据的属性决定将有效数据搬移至目标存储器区块之何者,其中拥有相同属性的有效数据会被搬移至同一目标存储器区块。
Description
技术领域
本发明有关于适用于一数据储存装置的一种数据处理方法,可可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedMulti Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
为了提高数据储存装置的存取效能,本发明提出一种新的数据处理方法,可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
发明内容
本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器装置包括多个存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置。存储器控制器于一垃圾收集程序中,选择多个空闲的存储器区块作为多个目标存储器区块,用以将至少一来源存储器区块内所储存的有效数据搬移至目标存储器区块。存储器控制器于垃圾收集程序中判断各有效数据的一属性,并且根据各有效数据的属性决定将有效数据搬移至目标存储器区块之何者,其中拥有相同属性的有效数据会被搬移至同一目标存储器区块。
本发明揭示一种数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置以及一存储器控制器,存储器装置包括多个存储器区块,存储器控制器耦接存储器装置,用以存取存储器装置,该方法包括:于一垃圾收集程序中,由存储器控制器选择多个空闲的存储器区块作为多个目标存储器区块,用以将至少一来源存储器区块内所储存的有效数据搬移至目标存储器区块;由存储器控制器判断各有效数据的一属性;以及由存储器控制器根据各有效数据的属性决定将有效数据搬移至目标存储器区块之何者,其中拥有相同属性的有效数据会被搬移至同一目标存储器区块。
附图说明
图1是显示根据本发明的一实施例所述的数据储存装置的示意图。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。
图3是显示根据本发明的一实施例所述的映射表格范例。
图4是显示根据本发明的一实施例所述的数据搬移示意图。
符号说明
100-数据储存装置;
110-存储器控制器;
112-微处理器;
112M-只读存储器;
112C-程序码;
114-控制逻辑;
116-缓冲存储器;
118-接口逻辑;
120-存储器装置;
130-主机装置;
132-编码器;
134-解码器;
Dest_Block_1、Dest_Block_2-目标存储器区块;
Table_1、Table_2-映射表格。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模组,以及一存储器控制器110,且存储器控制器110用来存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M是用来储存一程序码112C,而微处理器112则用来执行程序码112C以控制对存储器装置120的存取。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从存储器装置120所读出的数据进行解码。
于典型状况下,存储器装置120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含多个存储器区块(Block),而该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),即,实体数据页,其中该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。
实作上,透过微处理器112执行程序码112C的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主机装置(Host Device)130沟通。在一实施例中,存储器控制器110透过接口逻辑118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用串行总线(Universal Serial Bus,缩写为USB)标准、安全数位(Secure Digital,缩写为SD)接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、复合式快闪存储器(Compact flash,缩写为CF)接口标准、多媒体卡(Multimedia Card,缩写为MMC)接口标准、嵌入式多媒体卡(Embedded Multimedia Card,缩写为eMMC)接口标准、通用快闪存储器(Universal Flash Storage,缩写为UFS)接口标准、高技术组态(AdvancedTechnology Attachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral Component Interconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel Advanced Technology Attachment,缩写为PATA)标准。
在一实施例中,缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合通用快闪存储器储存(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可为单层式储存(Single-Level Cell,SLC)存储器区块、多层式储存(Multiple-Level Cell,MLC)存储器区块以及/或是三层式储存(Triple-Level Cell,TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。
一般而言,存储器装置120可大体被区分为三个区域,包含系统区域、数据区域以及备用区域。存储器控制器110可自备用区域选择一或多个既定存储器区块作为快取存储器,或称缓存器(buffer),用以接收并暂存数据。待缓存器被写满时,存储器控制器110再将作为缓存器的既定存储器区块更新成数据区域的数据区块。举例而言,若用以接收并暂存数据的缓存器为MLC或TLC存储器区块,待缓存器被写满时,可直接被更新为数据区域的数据区块。若用以接收并暂存数据的缓存器为SLC存储器区块,待一定数量的缓存器被写满时,可透过特定的程序,例如,垃圾收集程序,将多个缓存器存储器区块所储存的数据搬移至MLC或TLC存储器区块(目标存储器区块),并藉此操作将目标存储器区块更新为数据区域的数据区块。
垃圾收集(Garbage Collection)用于收集多个存储器区块中零散的有效数据至特定区块,使只残留无效数据的该些区块得以被抹除为空闲的存储器区块。然而,垃圾收集程序在执行上通常需要相当的运算资源。因此,过度频繁的启动垃圾收集程序,可能导致存储器装置的存取效能下降。为了避免存储器装置的存取效能因垃圾收集程序的频繁执行而下降,本发明提出一种新的数据处理方法,可有效率地处理存储器装置所储存的数据,以提升存储器装置的效能。
根据本发明的一实施例,于执行垃圾收集程序时,存储器控制器110可选定多个空闲的存储器区块作为目标存储器区块,并且根据有效数据的属性决定要将之搬移到哪个目标存储器区块,使得拥有相同属性的有效数据会被搬移至同一目标存储器区块。如此一来,可有效减缓尔后启动垃圾收集程序的频率。
图2是显示根据本发明的一实施例所述的数据处理方法流程图。根据本发明的一实施例,于一垃圾收集程序被启动时,存储器控制器110先选择多个空闲的存储器区块作为多个目标存储器区块(步骤S202),用以将至少一来源存储器区块内所储存的有效数据搬移至该些目标存储器区块。存储器控制器110可根据存储器区块的有效数据页数量挑选来源存储器区块。举例而言,存储器控制器110可挑选有效数据页数量少于一既定数值的存储器区块作为来源存储器区块。
接着,存储器控制器110判断来源存储器区块所包含的各有效数据的属性(步骤S204)。举例而言,有效数据的属性可有助于存储器控制器110判断该有效数据是否为容易被更新的数据(或称热数据,即,该笔数据维持在有效的状态的时间可能相对较短),或者为不易或不常被更新的数据(或称冷数据,即,该笔数据维持在有效的状态的时间可能相对较长)。接着,存储器控制器110根据各有效数据的属性决定将有效数据搬移至哪个目标存储器区块(步骤S206),使得拥有相同属性的有效数据会被搬移至同一目标存储器区块。举例而言,存储器控制器110可将容易被更新的数据搬移至第一目标存储器区块,将不易或不常被更新的数据搬移至第二目标存储器区块。如此一来,在垃圾收集程序的数据搬移的过程中,目前的有效数据可根据其属性被分流,使得热数据可被集中于一存储器区块,冷数据可被集中于另一存储器区块,藉此降低缓尔后启动垃圾收集程序的频率。举例而言,倘若在垃圾收集程序完成后,储存冷数据的存储器区块的内容便鲜少被更动,则此存储器区块所包含的有效数据量可长时间地维持在一特定门槛值之上,因此,在此存储器区块所包含的有效数据量下降至低于特定门槛值之前,存储器控制器110都无须对此存储器区块执行垃圾收集程序,有效避免频繁的启动垃圾收集程序。另一方面,藉由在垃圾收集程序的数据搬移的过程中,将目前的有效数据根据其属性分流,使得热数据被集中于一存储器区块,而非零散地分布于多个存储器区块,使得将来无效的数据会被集中于这些用以收集热数据的存储器区块,亦可有助于提升尔后执行垃圾收集程序的速度。
根据本发明的一实施例,有效数据的属性可与有效数据所对应的一逻辑数据页的一数据更新频率相关。当一逻辑数据页的数据更新频率高时,此逻辑数据页的数据可被判断为容易被更新的数据,即,上述的热数据。
根据本发明的一实施例,存储器控制器110可根据自主机装置130接收到之一或多个写入指令统计各逻辑数据页的一写入次数,并且于垃圾收集程序中,根据各有效数据所对应的逻辑数据页的写入次数决定此逻辑数据页的数据更新频率。
如上述,存储器控制器110可自备用区域选择一或多个既定存储器区块作为快取存储器,或称缓存器(buffer),用以接收并暂存主机装置130欲写入存储器装置120的数据。存储器控制器110会于缓冲存储器116维护一第一映射表格。于利用既定存储器区块接收数据时,存储器控制器110会对应地编辑第一映射表格。根据本发明的一实施例,第一映射表格为一快闪存储器对主机映射(Flash to Host mapping,缩写为F2H)表格。第一映射表格可包含多个栏位,各栏位用以记录写入既定存储器区块的各实体数据页的数据是指向(对应于)哪个逻辑数据页。因此,第一映射表格包含了多个实体地址与逻辑地址的映射关系的资讯。例如,第一映射表格中可记录对应的逻辑页面的逻辑区块地址(Logical BlockAddress,缩写为LBA),或是以其他形式记录逻辑数据页的逻辑地址。
根据本发明的一实施例,第一映射表格可以一阵列形式记录逻辑地址,其中第一映射表格的各栏位对应于既定存储器区块的一实体数据页。即,第一映射表格的阵列索引值与既定存储器区块的实体数据页有着一对一的对应关系。举例而言,假设第一映射表格Table_1所使用的起始阵列索引值为0,则第一映射表格的第一个栏位Table_1[0](即,第一映射表格Table_1所储存的第1笔记录)所记录的逻辑地址为既定存储器区块的第1个实体数据页的数据所指向的逻辑数据页,第二个栏位Table_1[1](即,第一映射表格Table_1所储存的第2笔记录)所记录的逻辑地址为既定存储器区块的第2个实体数据页的数据所指向的逻辑数据页,并依此类推。
根据本发明的一实施例,存储器控制器110可依实体数据页编号少至多的顺序将数据写入既定存储器区块,因此也可依阵列索引值少至多的顺序将各实体数据页所对应的逻辑数据页的逻辑地址记录于第一映射表格Table_1的各栏位中。但必须注意的是,本发明并不限于依实体数据页编号少至多的顺序将数据写入既定存储器区块。
根据本发明的一实施例,于既定存储器区块被写满时,第一映射表格Table_1的各栏位的编辑也对应地完成。理论上,第一映射表格Table_1所记录的资讯为最新的快闪存储器对主机映射资讯。于存储器控制器110完成第一映射表格Table_1的编辑时,存储器控制器110会进一步根据第一映射表格Table_1所储存的内容编辑一第二映射表格Table_2,用以将此最新的映射资讯更新至第二映射表格Table_2。
根据本发明的一实施例,第二映射表格Table_2被储存于存储器装置120的系统区域。第二映射表格Table_2为一主机对快闪存储器映射(Host to Flash mapping table,缩写为H2F)表格,第二映射表格Table_2所记录的多笔数据是对应于多个逻辑数据页。一般而言,第二映射表格Table_2所包含的栏位数量与主机装置130的系统中所包含的逻辑数据页数量相关,其中第二映射表格Table_2的一个栏位对应于主机装置系统的一个逻辑数据页,用以记录此逻辑数据页的数据是指向(实际上被储存于)存储器装置120的哪个存储器区块以及哪个实体数据页。因此,第二映射表格Table_2包含多个逻辑地址与实体地址的映射关系的资讯。
根据本发明的一实施例,第二映射表格Table_2可以一阵列形式记录各逻辑数据页所对应的一存储器区块编号以及一数据页编号,用以记录各逻辑数据页的数据是指向(被储存于)哪个存储器区块的哪个实体数据页。如上述,第二映射表格Table_2的各栏位是对应于多个逻辑数据页之一者。因此,第二映射表格的阵列索引值与逻辑数据页有着一对一的对应关系。举例而言,假设第二映射表格Table_2所使用的起始阵列索引值为0,则第二映射表格的第一个栏位Table_2[0](即,第二映射表格Table_2所储存的第1笔记录)所记录的存储器区块编号以及数据页编号指示出主机装置系统中第1个逻辑数据页的数据被存放的实体存储器区块及数据页位置,第二映射表格的第二个栏位Table_2[1](即,第二映射表格Table_2所储存的第2笔记录)所记录的存储器区块编号以及数据页编号指示出主机装置系统中第2个逻辑数据页的数据被存放的实体存储器区块及数据页位置,并依此类推。
根据本发明的一实施例,于需要编辑第二映射表格Table_2时,存储器控制器110可自第一映射表格Table_1的起始阵列索引值开始依序根据第一映射表格Table_1所记录的逻辑地址查找第二映射表格Table_2,并且根据既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值更新第二映射表格Table_2所记录的内容。
举例而言,第一映射表格Table_1的第1个栏位Table_1[0]所记录的内容为0,用以表示既定存储器区块的第1个实体数据页的数据是指向的逻辑地址为0的逻辑数据页。存储器控制器110根据此逻辑地址查找第二映射表格Table_2,将包含此逻辑地址的一或多笔记录载入缓冲存储器116中,用以进行内容的编辑或更新。举例而言,存储器控制器110可存取第二映射表格Table_2的第1~1024笔记录并将之载入缓冲存储器116中。接着,存储器控制器110可根据既定存储器区块的一存储器区块编号以及第一映射表格Table_1所对应的阵列索引值更新第二映射表格Table_2所记录的内容。值得注意的是,载入缓冲存储器116中用以进行内容的编辑或更新的第二映射表格Table_2的部分,因实际上为存储器装置120所储存的第二映射表格Table_2的复本,因此于本发明的实施例中,同样被称为第二映射表格Table_2。待存储器控制器110于缓冲存储器116中完成第二映射表格Table_2的编辑或更新后,会再将最新的内容存回存储器装置120。
根据本发明的一实施例,除了存储器区块编号与阵列索引值(即,实体数据页编号)外,存储器控制器110可进一步于第二映射表格Table_2中记录各逻辑数据页的写入次数。
图3是显示根据本发明的一实施例所述的映射表格范例。图中的箭头为存储器控制器110根据第一映射表格Table_1的内容编辑第二映射表格Table_2的示意。如图所示,第二映射表格Table_2的各栏位可记录至少三个数值,包含存储器区块编号(此逻辑数据页的数据被存放的实体存储器区块的编号)、实体数据页编号(此逻辑数据页的数据被存放的实体数据页的编号)以及此逻辑数据页的写入次数(于图3中以粗体表示)。
根据本发明的一实施例,各逻辑数据页的写入次数的初始值被设为0。例如,于存储器装置120在一开卡程序中被启用并且初始化后,存储器控制器110可于存储器装置120中建立起第二映射表格Table_2,并且对应地将各逻辑数据页的写入次数设为0。每当存储器控制器110因应主机装置的写入操作于第二映射表格Table_2更新一特定逻辑数据页的映射资讯时,存储器控制器110也会对应地累加此特定逻辑数据页的写入次数,例如,将第二映射表格Table_2中目前记录的写入次数加1。如此一来,第二映射表格Table_2中所记录的写入次数可反映出自存储器装置120被启用以来各逻辑地址(逻辑数据页)的数据曾经被更新过的次数。
根据本发明的另一实施例,存储器控制器110亦可不将各逻辑数据页的写入次数记录于第二映射表格Table_2,而是改将各逻辑数据页的写入次数记录于其他的表格中。因此,本发明并不限于将逻辑数据页的写入次数记录于第二映射表格Table_2中。
如上述,存储器控制器110先选择多个空闲的存储器区块作为多个垃圾收集程序的目标存储器区块。举例而言,根据本发明的一实施例,目标存储器区块可包括至少一第一目标存储器区块与一第二目标存储器区块。于将有效数据自来源存储器区块搬移至目标存储器区块时,存储器控制器110可藉由查询表格所记录的内容判断目前处理的有效数据所对应的逻辑数据页的写入次数是否大于一临界值。所述的临界值可被适当地选择用以区分被写入此逻辑数据页的数据是否可能为更新频率高的数据。若写入次数大于临界值,存储器控制器110可决定将有效数据搬移至第一目标存储器区块。若写入次数不大于临界值,存储器控制器110可决定将有效数据搬移至第二目标存储器区块。
图4是显示根据本发明的一实施例所述的数据搬移示意图。于此范例中,存储器控制器110选择两个目标存储器区块Dest_Block_1与Dest_Block_2作为数据搬移的目标存储器区块,并且于此实施例中,临界值被设定为2。如图所示,当存储器控制器110藉由查询表格(例如,于此范例中为第二映射表格Table_2)所记录的内容判断目前处理的有效数据所对应的逻辑数据页的写入次数不大于2,则存储器控制器110决定将目前处理的有效数据搬移至目标存储器区块Dest_Block_1。若目前处理的有效数据所对应的逻辑数据页的写入次数大于2,则存储器控制器110决定将目前处理的有效数据搬移至目标存储器区块Dest_Block_2。
值得注意的是,图4仅用以示意根据对应的逻辑数据页的写入次数判断有效数据将被搬移至哪个目标存储器区块。于实际操作中,经过所述判断后,存储器控制器110是将来源存储器区块的有效数据复制到对应的目标存储器区块,并且对应地更新第二映射表格Table_2的映射资讯,使得储存于来源存储器区块的数据变为无效数据。
根据本发明的一实施例,存储器控制器110可计算每个逻辑地址平均被写入的次数,并以此平均值作为上述用以判断写入各逻辑数据页的数据是否可能为更新频率高的数据的临界值。
举例而言,存储器控制器110可根据自主机装置130接收到的写入指令统计主机装置130写入存储器装置120的总数据量。例如,存储器控制器110可于存储器装置120在一开卡程序中被启用并且初始化后持续累加主机装置130写入存储器装置120的数据量,所得的累加结果即为总数据量。更具体的说,假设一个逻辑数据页的大小被设定为4K位元组,存储器控制器110可根据一写入指令中所指示出主机装置130要将数据写入那些逻辑地址(哪几个逻辑数据页)计算出主机装置130于本次写入指令欲写入的数据量。
取得主机装置130写入存储器装置120的总数据量后,再将总数据量除以存储器装置120的容量,即可算出每个逻辑地址平均被写入的次数。举例而言,假设存储器装置120的容量为128G位元组,而主机装置130自启用后写入存储器装置120的总数据量为256G位元组,即可得知每个逻辑地址平均被写入的次数为2。
值得注意的是,本发明并不限于将上述平均值设定为用以判断写入各逻辑数据页的数据是否可能为更新频率高的数据的临界值。于本发明的其他实施例中,存储器控制器110亦可根据先前取得的实验结果、使用者过去的使用经验、使用者的使用习惯分析、或者将上述总数据量进行其他不同的运算而得的数值设定一或多个上述的临界值。
此外,如上所述,存储器控制器110可根据各有效数据所对应的逻辑数据页的写入次数决定逻辑数据页的数据更新频率。于图4所示的范例中,存储器控制器110直接取用写入次数作为数据更新频率的代表,以判断有效数据的属性。然而,本发明并不限于此。举例而言,存储器控制器110可对写入次数执行些许运算,以取得数据更新频率的估计值。
此外,根据本发明的其他实施例,存储器控制器110亦可藉由统计同一逻辑地址被记录于系统的映射表格的总数量,决定一逻辑数据页的数据更新频率。如上述,于既定存储器区块被写满时,存储器控制器110会进一步根据第一映射表格Table_1所储存的内容编辑一第二映射表格Table_2,用以将此最新的映射资讯更新至第二映射表格Table_2,并且既定存储器区块(或者,再藉由执行特定的程序而产生的目标存储器区块)会被更新为数据区域的数据区块。此时,既定存储器区块(或目标存储器区块)所对应的第一映射表格Table_1的内容亦更新至存储器装置120,作为此数据区块所对应的F2H表格(或称实体对逻辑(P2L)映射表格)。换言之,数据区域的各数据区块会有对应的一P2L映射表格。
存储器控制器110亦可藉由统计同一逻辑地址被记录于所有P2L映射表格的总数量,决定一逻辑数据页的数据更新频率。更具体的说,存储器控制器110可于各P2L映射表格搜寻各逻辑地址,用以判断各逻辑地址是否被记录于P2L映射表格内,并统计各逻辑地址被记录于几个P2L映射表格,以得知一逻辑地址被记录于P2L映射表格的总数量。值得注意的是,上述的搜寻与统计操作亦可透过特定的硬件来完成,以提高处理效能。
若同一逻辑地址被记录于多个P2L映射表格,代表主机装置130频繁地更新此逻辑地址的数据,因此可判断此逻辑数据页的数据更新频率高。换言之,若一逻辑地址被记录于系统的P2L映射表格的次数(记录有此逻辑地址的P2L映射表格的数量)越多,则可判断此逻辑地址所对应的逻辑数据页的数据更新频率越高。
此外,根据本发明的其他实施例,存储器控制器110亦可选择多于两个闲置的存储器区块做为目标存储器区块,而临界值的数量亦可随着目标存储器区块的数量对应地调整。因此,本发明并不限于上述的两个目标存储器区块以及一个临界值的实施例。举例而言,存储器控制器110亦可选择4个闲置的存储器区块做为目标存储器区块,并且设定3个临界值,用以区分出4种不同属性的有效数据。
此外,于本发明的实施例中,统计逻辑数据页的写入次数与统计主机装置130写入存储器装置120的总数据量的周期通常为相同的。于本发明的一实施例中,写入次数与总数据量的统计自开始后便不会被重置。亦即,自存储器装置120在一开卡程序中被启用并且初始化后,存储器控制器110便持续记录各逻辑数据页的写入次数与主机装置130写入存储器装置120的总数据量,并且不会对这些记录做任何的重置或清除。然而,本发明亦不仅限于此实施方式。
于本发明的其他实施例中,存储器控制器110亦可周期性或非周期性(例如,根据特定事件的触发)重置或清除写入次数与总数据量的记录。举例而言,存储器控制器110亦可于使用者利用主机装置130的操作系统内的软件程序将存储器装置120格式化时、或者于存储器控制器110需重建上述第二映射表格时,重置或清除写入次数与总数据量的记录。
如上所述,于本发明所提出的数据处理方法中,藉由在垃圾收集程序的数据搬移的过程中将目前的有效数据根据其属性分流,使得拥有相同属性的有效数据会被搬移至同一目标存储器区块,例如将热数据集中于一存储器区块,将冷数据集中于另一存储器区块,可有效降低缓尔后启动垃圾收集程序的频率,并且亦可有助于提升尔后执行垃圾收集程序的效率。
申请文件中用以修饰元件的"第一"、"第二"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (10)
1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块;以及
一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中该存储器控制器于一垃圾收集程序中,选择多个空闲的存储器区块作为多个目标存储器区块,用以将至少一来源存储器区块内所储存的有效数据搬移至这些目标存储器区块,
其中该存储器控制器于该垃圾收集程序中判断各有效数据的一属性,并且根据各有效数据的该属性决定将该有效数据搬移至这些目标存储器区块之何者,其中拥有相同属性的有效数据会被搬移至同一目标存储器区块。
2.如权利要求1所述的数据储存装置,其特征在于,该属性与该有效数据所对应的一逻辑数据页的一数据更新频率相关。
3.如权利要求2所述的数据储存装置,其特征在于,该存储器控制器还根据自一主机装置接收到之一或多个写入指令统计各逻辑数据页的一写入次数,并且于该垃圾收集程序中,该存储器控制器根据该有效数据所对应的该逻辑数据页的该写入次数决定该逻辑数据页的该数据更新频率。
4.如权利要求3所述的数据储存装置,其特征在于,该存储器控制器选择一既定存储器区块用以自该主机装置接收数据,并且对应地编辑一第一映射表格,其中该第一映射表格包含多个实体地址与逻辑地址的映射关系的资讯,用以记录写入该既定存储器区块的各实体数据页的数据是指向哪个逻辑数据页,于该既定存储器区块被写满时,该存储器控制器根据该第一映射表格编辑一第二映射表格,其中该第二映射表格包含多个逻辑地址与实体地址的映射关系的资讯,用以记录各逻辑数据页的数据被储存于哪个存储器区块的哪个实体数据页,并且其中该第二映射表格还记录各逻辑数据页的该写入次数,其中当该存储器控制器于该第二映射表格更新一特定逻辑数据页的映射关系的资讯时,该存储器控制器还累加该特定逻辑数据页所对应的该写入次数。
5.如权利要求3所述的数据储存装置,其特征在于,这些目标存储器区块包括至少一第一目标存储器区块与一第二目标存储器区块,并且其中当该有效数据所对应的该逻辑数据页的该写入次数大于一临界值时,该存储器控制器决定将该有效数据搬移至该第一目标存储器区块,当该有效数据所对应的该逻辑数据页的该写入次数不大于该临界值时,该存储器控制器决定将该有效数据搬移至该第二目标存储器区块。
6.一种数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法包括:
于一垃圾收集程序中,由该存储器控制器选择多个空闲的存储器区块作为多个目标存储器区块,用以将至少一来源存储器区块内所储存的有效数据搬移至这些目标存储器区块;
由该存储器控制器判断各有效数据的一属性;以及
由该存储器控制器根据各有效数据的该属性决定将该有效数据搬移至这些目标存储器区块之何者,其中拥有相同属性的有效数据会被搬移至同一目标存储器区块。
7.如权利要求6所述的方法,其特征在于,该属性与该有效数据所对应的一逻辑数据页的一数据更新频率相关。
8.如权利要求7所述的方法,其特征在于,还包括:
由该存储器控制器根据自一主机装置接收到之一或多个写入指令统计各逻辑数据页的一写入次数;以及
于该垃圾收集程序中,由该存储器控制器根据该有效数据所对应的该逻辑数据页的该写入次数决定该逻辑数据页的该数据更新频率。
9.如权利要求8所述的方法,其特征在于,还包括:
由该存储器控制器选择一既定存储器区块用以自该主机装置接收数据,并且对应地编辑一第一映射表格,其中该第一映射表格包含多个实体地址与逻辑地址的映射关系的资讯,用以记录写入该既定存储器区块的各实体数据页的数据是指向哪个逻辑数据页;
于该既定存储器区块被写满时,由该存储器控制器根据该第一映射表格编辑一第二映射表格,其中该第二映射表格包含多个逻辑地址与实体地址的映射关系的资讯,用以记录各逻辑数据页的数据被储存于哪个存储器区块的哪个实体数据页,并且其中该第二映射表格更记录各逻辑数据页的该写入次数;以及
于将一特定逻辑数据页的映射关系的资讯更新至该第二映射表格时,增加该特定逻辑数据页所对应的该写入次数。
10.如权利要求8所述的方法,其特征在于,这些目标存储器区块包括至少一第一目标存储器区块与一第二目标存储器区块,并且其中当该有效数据所对应的该逻辑数据页的该写入次数大于一临界值时,该有效数据被搬移至该第一目标存储器区块,以及当该有效数据所对应的该逻辑数据页的该写入次数不大于该临界值时,该有效数据被搬移至该第二目标存储器区块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108115225A TWI726314B (zh) | 2019-05-02 | 2019-05-02 | 資料儲存裝置與資料處理方法 |
TW108115225 | 2019-05-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111880723A true CN111880723A (zh) | 2020-11-03 |
Family
ID=73015906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010180248.6A Pending CN111880723A (zh) | 2019-05-02 | 2020-03-16 | 数据储存装置与数据处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11204864B2 (zh) |
CN (1) | CN111880723A (zh) |
TW (1) | TWI726314B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI766431B (zh) * | 2020-06-22 | 2022-06-01 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
US11210168B1 (en) * | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
TWI766582B (zh) * | 2021-02-17 | 2022-06-01 | 群聯電子股份有限公司 | 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元 |
US20220318157A1 (en) | 2021-04-01 | 2022-10-06 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
JP2023044330A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073594A (zh) * | 2010-11-26 | 2011-05-25 | 钰创科技股份有限公司 | 衰减热数据的方法 |
CN102473135A (zh) * | 2009-07-29 | 2012-05-23 | 国际商业机器公司 | 存储设备的写入擦除耐久寿命 |
US20150212938A1 (en) * | 2014-01-27 | 2015-07-30 | Western Digital Technologies, Inc. | Garbage collection and data relocation for data storage system |
US20160124848A1 (en) * | 2014-10-29 | 2016-05-05 | Sk Hynix Memory Solutions Inc. | Memory system and memory management method thereof |
CN106201906A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种用于闪存的冷热数据分离方法及系统 |
CN107025071A (zh) * | 2016-12-14 | 2017-08-08 | 威盛电子股份有限公司 | 非易失性存储器装置及其垃圾收集方法 |
CN109144887A (zh) * | 2017-06-28 | 2019-01-04 | 东芝存储器株式会社 | 存储器系统及控制非易失性存储器的控制方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007073538A2 (en) * | 2005-12-21 | 2007-06-28 | Sandisk Corporation | Non-volatile memories and methods with data alignment in a directly mapped file storage system |
CN101727402B (zh) * | 2009-10-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
US10725668B1 (en) * | 2014-08-29 | 2020-07-28 | SK Hynix Inc. | Data separation during garbage collection and wear leveling |
US10409526B2 (en) * | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
US20170139826A1 (en) * | 2015-11-17 | 2017-05-18 | Kabushiki Kaisha Toshiba | Memory system, memory control device, and memory control method |
JP6553566B2 (ja) * | 2016-09-23 | 2019-07-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI672590B (zh) * | 2017-06-27 | 2019-09-21 | 慧榮科技股份有限公司 | 資料儲存裝置 |
KR20200027858A (ko) * | 2018-09-05 | 2020-03-13 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20200084201A (ko) * | 2019-01-02 | 2020-07-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
-
2019
- 2019-05-02 TW TW108115225A patent/TWI726314B/zh active
-
2020
- 2020-03-16 CN CN202010180248.6A patent/CN111880723A/zh active Pending
- 2020-04-15 US US16/849,235 patent/US11204864B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473135A (zh) * | 2009-07-29 | 2012-05-23 | 国际商业机器公司 | 存储设备的写入擦除耐久寿命 |
CN102073594A (zh) * | 2010-11-26 | 2011-05-25 | 钰创科技股份有限公司 | 衰减热数据的方法 |
US20150212938A1 (en) * | 2014-01-27 | 2015-07-30 | Western Digital Technologies, Inc. | Garbage collection and data relocation for data storage system |
US20160124848A1 (en) * | 2014-10-29 | 2016-05-05 | Sk Hynix Memory Solutions Inc. | Memory system and memory management method thereof |
CN106201906A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮(北京)电子信息产业有限公司 | 一种用于闪存的冷热数据分离方法及系统 |
CN107025071A (zh) * | 2016-12-14 | 2017-08-08 | 威盛电子股份有限公司 | 非易失性存储器装置及其垃圾收集方法 |
CN109144887A (zh) * | 2017-06-28 | 2019-01-04 | 东芝存储器株式会社 | 存储器系统及控制非易失性存储器的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI726314B (zh) | 2021-05-01 |
TW202042068A (zh) | 2020-11-16 |
US11204864B2 (en) | 2021-12-21 |
US20200349065A1 (en) | 2020-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11593259B2 (en) | Directed sanitization of memory | |
CN109871333B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN111880723A (zh) | 数据储存装置与数据处理方法 | |
US11176035B2 (en) | Data storage devices and data processing methods | |
CN114528226A (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
CN111694510B (zh) | 数据储存装置与数据处理方法 | |
CN111966281B (zh) | 数据储存装置与数据处理方法 | |
CN114063893A (zh) | 数据储存装置与数据处理方法 | |
CN111338562B (zh) | 数据存储装置与数据处理方法 | |
TW201413450A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN112099731B (zh) | 数据储存装置与数据处理方法 | |
TWI792534B (zh) | 以局部清理操作來進行垃圾回收的方法與相關控制器和儲存系統 | |
CN111966606B (zh) | 数据储存装置与数据处理方法 | |
CN111596859B (zh) | 数据储存装置与数据处理方法 | |
TWI814590B (zh) | 資料處理方法及對應之資料儲存裝置 | |
US20240126473A1 (en) | Data storage device and method for managing a write buffer | |
CN117908761A (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 |