CN117806532A - 数据处理方法及对应的数据储存装置 - Google Patents

数据处理方法及对应的数据储存装置 Download PDF

Info

Publication number
CN117806532A
CN117806532A CN202211259317.8A CN202211259317A CN117806532A CN 117806532 A CN117806532 A CN 117806532A CN 202211259317 A CN202211259317 A CN 202211259317A CN 117806532 A CN117806532 A CN 117806532A
Authority
CN
China
Prior art keywords
sub
region
data
memory
read
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
Application number
CN202211259317.8A
Other languages
English (en)
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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN117806532A publication Critical patent/CN117806532A/zh
Pending legal-status Critical Current

Links

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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • 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/0653Monitoring storage devices or systems
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及数据处理方法及对应的数据储存装置。上述数据储存装置包括一存储器装置与一存储器控制器。存储器控制器为存储器装置的各子区域维护一写入计数值。当存储器控制器选择一或多个子区域以执行一数据重排程序时,根据被选择的一子区域所对应的写入计数值判断被选择的子区域是否为一热写入子区域,并且于判断被选择的子区域并非为一热写入子区域时,对被选择的子区域执行数据重排程序,用以将属于被选择的子区域的逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间,以及于判断被选择的子区域为一热写入子区域时,不对被选择的子区域执行数据重排程序。

Description

数据处理方法及对应的数据储存装置
技术领域
本发明关于一种数据处理方法,用以藉由执行数据重排提升存储器控制器的数据处理效率及读取操作的效率,并同时藉由排除对部分子区域执行数据重排以避免过度耗损存储器区块的使用寿命。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合安全数位(Secure Digital,缩写为SD)/多媒体卡(Multi Media Card,缩写为MMC)规格、复合式快闪存储器(Compact flash,缩写为CF)规格、记忆条(Memory Stick,缩写为MS)规格与极数位(Extreme Digital,缩写为XD)规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embedded Multi Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal FlashStorage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,如何藉由数据重组达成有效率的存取控制同时避免过度耗损存储器区块的使用寿命为重要的议题。
发明内容
根据本发明的一实施例,一种数据储存装置,包括一存储器装置与一存储器控制器。存储器装置包括多个存储器区块,存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域。存储器控制器耦接至存储器装置,用以存取存储器装置。存储器控制器为各子区域维护一写入计数值。当存储器控制器选择一或多个子区域以执行一数据重排程序时,存储器控制器根据被选择的一子区域所对应的写入计数值判断被选择的子区域是否为一热写入子区域,并且于判断被选择的子区域并非为一热写入子区域时,存储器控制器对被选择的子区域执行数据重排程序,用以将属于被选择的子区域的逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间,以及于判断被选择的子区域为一热写入子区域时,存储器控制器不对被选择的子区域执行数据重排程序。
根据本发明的另一实施例,一种数据处理方法,适用于一数据储存装置,其中数据储存装置包括一存储器装置与一存储器控制器,存储器装置包括多个存储器区块,存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域,存储器控制器耦接至存储器装置,用以存取存储器装置,数据处理方法由存储器控制器所执行并包括:为各子区域维护一写入计数值;以及根据一子区域所对应的写入计数值判断是否将子区域自被选择的一或多个子区域中排除,其中一或多个子区域被选择以执行一数据重排程序,并且当子区域根据对应的写入计数值被判断为一热写入子区域时,子区域自被选择的一或多个子区域中被排除。
附图说明
图1显示根据本发明的一实施例所述的数据储存装置的方块图范例。
图2显示逻辑单元与其对应的逻辑区块地址的一个范例。
图3显示于主机控制模式下可有的操作。
图4显示于装置控制模式下可有的操作。
图5显示HPB项目的一个范例格式。
图6显示HPB项目的另一个范例格式。
图7显示HPB读取指令的对应操作。
图8显示根据本发明的第一实施例所述的数据处理方法流程图。
图9显示根据本发明的第二实施例所述的数据处理方法流程图。
【符号说明】
100:数据储存装置
110:存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:存储器接口
116:缓冲存储器
118:主机接口
120:存储器装置
130:主机装置
132:编码器
134:解码器
200:逻辑单元
A-1、A-2、A-3、A-4、A-5、B-1、B-2、B-3、C-1、C-2、C-3、C-4、C-5、C-6、C-7、D-1、D-2、D-3、D-4、D-5、D-6、D-7、E-1、E-2、E-3、E-4、E-5:操作
DATA IN UPIU:送入数据的通用快闪存储器储存通讯协定资讯单元
HPB_Rgn_0、HPB_Rgn_(N-1):HPB区域
HPB_Sub_Rgn_0、HPB_Sub_Rgn_(L-1):HPB子区域
LBA:逻辑区块地址
具体实施方式
在下文中,描述了许多具体细节以提供对本发明实施例的透彻理解。然而,本领域技术人员仍将理解如何在缺少一个或多个具体细节或依赖于其他方法、元件或材料的情况下实施本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的主要概念。
在整个说明书中对“一实施例”或“一范例”的引用意味着结合该实施例或范例所描述的特定特征、结构或特性包括于本发明的多个实施例的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“于本发明的一实施例中”、“根据本发明的一实施例”、“于一范例中”或“根据本发明的一范例”不一定都指到相同的实施例或范例。此外,特定特征、结构或特性可以在一个或多个实施例或范例中以任何合适的组合和/或子组合进行结合。
此外,为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合所附图式,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软体、硬体、韧体、或上述任意组合来实现。
图1显示根据本发明的一实施例所述的数据储存装置的方块图范例。数据储存装置100可包括一存储器装置120与一存储器控制器110。存储器控制器110用以存取(Access)存储器装置120及控制存储器装置120的运作。存储器装置120可为一非挥发性(non-volatile,缩写为NV)存储器装置(例如,一快闪存储器(flash memory)),并且可包括一或多个记忆元件(例如,一或多个快闪存储器晶粒、一或多个快闪存储器芯片、或其他类似元件)。
数据储存装置100可耦接至一主机装置130。主机装置130可至少包括一处理器、一电源电路、以及至少一随机存取存储器(Random Access Memory,缩写为RAM),例如至少一动态随机存取存储器(Dynamic RAM,缩写为DRAM)、至少一静态随机存取存储器(StaticRAM,缩写为SRAM)等(以上未示于图1)。处理器与随机存取存储器可透过一汇流排彼此相互连接,并且可耦接至电源电路以取得电源。处理器可控制主机装置130的运作。电源电路可将电源供应至处理器、随机存取存储器以及数据储存装置100,例如输出一或多个驱动电压至数据储存装置100。数据储存装置100可自主机装置130取得所述驱动电压作为数据储存装置100的电源,并且为主机装置130提供储存空间。
根据本发明的一实施例,存储器控制器110可包括一微处理器112、一只读存储器(Read Only Memory,缩写为ROM)112M、一存储器接口114、一缓冲存储器116、与一主机接口118。只读存储器112M用以储存程序码112C。而微处理器112则用来执行程序码112C以控制对存储器装置120的存取。程序码112C可包括一或多个程序模块,例如启动载入(bootloader)程序码。当数据储存装置100自主机装置130取得电源时,微处理器112可藉由执行程序码112C执行数据储存装置100的一初始化程序。于初始化程序中,微处理器112可自存储器装置120载入一组***内编程(In-System Programming,缩写为ISP)程序码(未示于图1)。微处理器112可执行该组***内编程程序码,使得数据储存装置100可具备各种功能。根据本发明的一实施例,该组***内编程程序码可包括,但不限于:一或多个与存储器存取(例如,读取、写入与抹除)相关的程序模块,例如一读取操作模块、一查找表格模块、一损耗均衡(wear leveling)模块、一读取刷新(read refresh)模块、一读取回收(read reclaim)模块、一垃圾回收模块、一非预期断电恢复(Sudden Power Off Recovery,缩写为SPOR)模块、以及一不可更正错误更正码(Uncorrectable Error Correction Code,缩写为UECC)模块,其分别被提供用以执行对应的读取、查找表格、损耗均衡、读取刷新、读取回收、垃圾回收、非预期断电恢复以及对侦测到的UECC错误进行错误处理等操作。
存储器接口114包含了一编码器132以及一解码器134,其中编码器132用来对需被写入存储器装置120的数据进行编码,例如执行错误更正码(ECC)编码,而解码器134用来对从存储器装置120所读出的数据进行解码。
于典型状况下,存储器装置120包含了多个记忆元件,例如多个快闪存储器晶粒或多个快闪存储器芯片,各记忆元件可包含多个存储器区块(Block)。存储器控制器110对存储器装置120进行抹除数据运作以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),例如,实体数据页,其中存储器控制器110对存储器装置120进行写入数据的运作以数据页为单位来进行写入。
实作上,存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用存储器接口114来控制存储器装置120的存取运作(尤其是对至少一存储器区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用主机接口118来与主机装置130沟通。
在一实施例中,存储器控制器110透过主机接口118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用串行总线(UniversalSerial Bus,缩写为USB)标准、SD接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra High Speed-II,缩写为UHS-II)接口标准、CF接口标准、MMC接口标准、eMMC接口标准、UFS接口标准、高技术组态(Advanced TechnologyAttachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral Component Interconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel Advanced Technology Attachment,缩写为PATA)标准等。
在一实施例中,缓冲存储器116以随机存取存储器来实施。例如,缓冲存储器116可以是静态随机存取存储器,但本发明亦不限于此。于其他实施例中,缓冲存储器116可以是动态随机存取存储器。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合UFS或eMMC规格的嵌入式储存装置,并且可被设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者主机装置130可对数据储存装置100发出指令以进一步控制、管理数据储存装置100。
根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可被配置为单层式储存(Single-Level Cell,缩写为SLC)存储器区块、多层式储存(Multiple-LevelCell,缩写为MLC)存储器区块、三层式储存(Triple-Level Cell,缩写为TLC)存储器区块、以及/或是四层式储存(Quad-Level Cell,缩写为QLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据,QLC存储器区块的每个存储器单元中储存四个位元数据,并且其中MLC、TLC与QLC存储器区块亦可被统称为多层式储存存储器区块。
一般而言,存储器装置120可大体被区分为三个区域,包含***区域、数据区域以及备用区域。存储器控制器110可自备用区域选择一或多个既定存储器区块作为快取存储器,或称缓存器(buffer),亦可称为现用区块(current block)或活用区块(activeblock),用以接收并暂存数据。待缓存器被写满时,存储器控制器110再将作为缓存器的既定存储器区块更新成数据区域的数据区块。举例而言,若用以接收并暂存数据的缓存器为MLC、TLC或QLC存储器区块,待缓存器被写满时,可直接被更新为数据区域的数据区块。若用以接收并暂存数据的缓存器为SLC存储器区块,待一定数量的缓存器被写满时,可透过垃圾回收(Garbage Collection)程序,将多个缓存器存储器区块所储存的数据搬移至多层式储存存储器区块(目标存储器区块),并藉此操作将目标存储器区块更新为数据区域的数据区块。
存储器装置120可储存一全域逻辑至实体(Logical to Physical,缩写为L2P)(或称主机至快闪存储器(Host to Flash,缩写为H2F))映射表格,供存储器控制器110存取存储器装置120的数据时使用。全域L2P映射表格可位于存储器装置120的一既定区域,例如一***区域,但本发明并不限于此。全域L2P映射表格可被分为多个区域L2P映射表格,区域L2P映射表格可被储存于相同或不同的记忆元件内。例如,一记忆元件可储存一个区域L2P映射表格。于需要时,存储器控制器110可将全域L2P映射表格的至少一部分(例如,一部分或全部)载入缓冲存储器116或其他存储器内。例如,存储器控制器110可载入一区域L2P映射表格作为一暂时的L2P映射表格,用以根据此区域L2P映射表格存取存储器装置120的数据,但本发明并不限于此。
储存于存储器装置120的全域或区域L2P映射表格(以下一并称为L2P映射表格)可包括多个栏位,L2P映射表格的一栏位用以纪录一逻辑地址的映射资讯。其中一逻辑地址可对应于一逻辑数据页。L2P映射表格内所纪录的一逻辑地址或一逻辑数据页的映射资讯为存储器装置的哪个实体地址储存有此逻辑地址或逻辑数据页的数据的逻辑至实体映射资讯。
于一实施例中,主机装置130及数据储存装置100可采用主机性能增强器(HostPerformance Booster,缩写为HPB)系列标准,以利用主机装置端的一个存储器装置(例如,主机装置130的DRAM)暂存于UFS装置端(例如,依循UFS规格实施的数据储存装置100)所维护的映射资讯。所述映射资讯可自前述的全域或区域L2P映射表格中取得。借助此映射资讯,主机装置130可发出带有主机装置130所欲读取的逻辑地址(例如,逻辑区块地址(logical block addresses,缩写为LBAs)所对应的实体地址的相关资讯(例如,实体区块地址(physical block addresses,缩写为PBAs)的特定读取指令(以下称为HPB读取(HPBREAD)指令)以读取数据,其中所述实体地址的相关资讯可被承载于一或多个HPB项目(HPBentry)中。如此一来,存储器控制器110可节省自存储器装置120读取及载入全域或区域L2P映射表格所花费的时间,以及节省于载入的L2P映射表格中搜寻出主机装置130所欲读取的逻辑地址所对应的实体地址所花费的时间。藉此,读取效能可被改善。
于本发明的实施例中,存储器装置120可被逻辑性地划分为多个分区,各分区可被视为一个逻辑单元,因此,存储器装置120的多个存储器区块可对应于多个逻辑单元,且各逻辑单元可对应于多个逻辑区块地址。图2显示逻辑单元200与其对应的逻辑区块地址的一个范例。各逻辑单元所对应的逻辑区块地址(例如,逻辑区块地址LBA 0~LBA Z,其中Z为正整数)可被划分为多个HPB区域(例如,HPB区域HPB_Rgn_0~HPB_Rgn_(N-1),其中N为大于1的一正整数),并且各HPB区域可进一步被划分为多个HPB子区域(例如,HPB子区域HPB_Sub_Rgn_0~HPB_Sub_Rgn_(L-1),其中L为一正整数)。一个HPB子区域的大小可小于或等于一个HPB区域的大小。为简化说明,以下将HPB子区域简称为子区域,以及将HPB区域简称为区域。
于本发明的实施例中,有两种取得HPB项目的模式,包括主机控制模式与装置控制模式。
图3为一示意图,用以显示于主机控制模式下可有的操作。于主机控制模式下,主机***(例如,主机装置130)可确认要被活化(activate)的新的子区域(操作A-1),并发出一HPB读取缓冲(HPB READ BUFFER)指令(操作A-2),以请求要被活化的子区域所对应的HPB项目。响应于HPB读取缓冲指令的接收,UFS装置(例如,存储器控制器110)可自存储器装置120读取L2P映射表格之至少一部分(例如,读取全域L2P映射表格或区域L2P映射表格),该部分对应于选定要被活化的子区域,并且根据L2P映射表格所纪录的映射资讯提供HPB项目(操作A-3)。UFS装置接着可透过送入数据(DATA IN)的通用快闪存储器储存通讯协定资讯单元(UFS Protocol Information Unit,缩写为UPIU)封包将HPB项目传送至主机***(操作A-4)。主机***可于***存储器内配置一HPB区域(亦可称为HPB快取区),用以储存HPB项目(操作A-5)。
主机***亦可确认要被去活化(deactivate)的区域(操作B-1),并发出一HPB写入缓冲(HPB WRITE BUFFER)指令,以请求将一区域去活化(操作B-2)。UFS装置可响应于HPB写入缓冲指令的接收将对应的区域去活化(操作B-3)。
此外,当UFS装置判断需要更新任何子区域所对应的HPB项目时,例如,当UFS装置修改了一已活化的子区域所对应的L2P映射资讯(操作C-1),UFS装置可传送一回应UPIU封包至主机***,以建议主机***更新子区域所对应的HPB项目(操作C-2)。响应于回应UPIU封包的接收,主机***可发出一HPB读取缓冲指令(操作C-3),并将的传送给UFS装置以请求已活化的子区域所对应的更新过的HPB项目(操作C-4)。响应于HPB读取缓冲指令的接收,UFS装置可读取L2P映射表格中的对应于已活化的子区域的部分,并且根据L2P映射表格所纪录的映射资讯提供HPB项目(操作C-5)。同样地,UFS装置接着可透过送入数据的通用快闪存储器储存通讯协定资讯单元(DATA IN UPIU)封包将HPB项目传送至主机***(操作C-6)。主机***可根据接收到的资讯更新HPB快取区内所储存的HPB项目(操作C-7)。
图4为一示意图,用以显示于装置控制模式下可有的操作。于装置控制模式下,UFS装置可确认要被活化的新的子区域及/或要被去活化的区域(操作D-1),并传送一回应UPIU封包至主机***,以建议主机***活化选定的新的子区域或去活化选定的区域(操作D-2)。对于将选定的区域去活化,主机***可舍弃不再活化的区域所对应的HPB项目(操作D-3)。对于活化的新的子区域,主机***可发出一HPB读取缓冲指令,并将之传送给UFS装置以请求要被活化的子区域所对应的HPB项目(操作D-4)。类似地,响应于HPB读取缓冲指令的接收,UFS装置可自存储器装置120读取L2P映射表格之至少一部分(例如,读取全域L2P映射表格或区域L2P映射表格),该部分对应于选定要被活化的子区域,并且根据L2P映射表格所纪录的映射资讯提供HPB项目(操作D-5)。UFS装置接着可透过送入数据的通用快闪存储器储存通讯协定资讯单元(DATA IN UPIU)封包将HPB项目传送至主机***(操作D-6)。主机***可于***存储器内配置一HPB区域(亦可称为HPB快取区),用以储存HPB项目(操作D-7)。
图5显示HPB项目的一个范例格式。于本发明的一实施例中,一个HPB项目的大小为8位元组(Byte)。于此范例格式中,4位元组用以记载自L2P映射表格(例如,全域或区域L2P映射表格,或者由存储器控制器110载入缓冲存储器116的暂时的L2P映射表格)取得的映射资讯(例如,实体地址),而其余4位元组用以记载另一实体地址,此实体地址快闪存储器内实际用以储存前述全域或区域L2P映射表格的地址。更具体的说,于图5所示的范例格式中,第一个4位元组大小的PBA与第二个4位元组大小的PBA被合并形成一个HPB项目,其中第一个PBA为记录于表格1(亦称为T1表格)的实体区块地址,此实体区块地址为一逻辑区块地址所映射的实体区块地址,而第二个PBA为记录于表格2(亦称为T2表格)的实体区块地址,此实体区块地址则为T1表格的实体区块地址。于此,T1表格可以是存储器装置120内所储存的全域或区域L2P映射表格,T2表格可以一个***表格,用以纪录各管理表格(例如,全域或区域L2P映射表格)实际被储存于存储器装置120的实体地址。
由于当一管理表格(例如,全域或区域L2P映射表格)的内容(例如,映射资讯)需被更新时,存储器控制器110可配置另一个存储器空间储存此管理表格更新后的内容,因此,当由一逻辑区块地址所映射的实体区块地址改变时,不仅T1表格的内容需要修改,T1表格的更新内容也会被储存于存储器装置120的另一个新的储存空间。因此,***表格内所纪录的T1表格所对应的实体地址也会随之改变。如此一来,HPB项目内所记载的T2表格的内容便能用于验证由此HPB项目所对应的一逻辑区块地址所映射的实体区块地址所储存数据是否仍为有效数据。当HPB项目所记载的T2表格内容与存储器控制器110所维护的最新的T1表格的实体地址相符时,代表储存于此HPB项目所记载的实体区块地址(T1表格内容)的数据仍为有效数据。反之,代表储存于此HPB项目所记载的实体区块地址的数据已为无效数据。需注意的是,前述一实体区块地址所储存的数据是否仍为有效数据的验证可由数据储存装置端的存储器控制器110执行。
图6显示HPB项目的另一个范例格式。于此范例格式中,28位元用于承载自L2P映射表格(例如,全域或区域L2P映射表格,或者由存储器控制器110载入缓冲存储器116的暂时的L2P映射表格)取得的映射资讯,24位元用于承载全域或区域L2P映射表格实际被储存于快闪存储器内哪个的实体地址的资讯,而剩余的12位元则用于承载相关联的LBA的连续性资讯。更具体的说,于图6所示的范例格式中,第一个PBA、第二个PBA与一LBA的连续性资讯可被合并形成一个HPB项目,其中第一个PBA为储存于T1表格的实体区块地址,此实体区块地址为前述LBA所映射的实体区块地址,第二个PBA为储存于T2表格的实体区块地址,此实体区块地址则为T1表格的实体区块地址。于本发明的实施例中,连续性资讯可由能指示出连续长度的一个数值或者一个连续位元表格来表示。
于本发明的一实施例中,存储器控制器110可分别计算并产生(例如,纪录及/或更新)在HPB项目表格所相关联的多个实体地址中,接续在一个HPB项目所对应的实体地址之后的连续实体地址数量,并以此作为前述连续长度。举例而言,假设HPB项目0~7所记载的实体地址依序为{0x000A000,0x000A001,0x000A002,0x000A003,0x000A004,,0x000A005,0x000B009,0x000A007},则接续在实体地址0x000A000之后的连续实体地址(例如,实体地址{0x000A001,…,0x000A005})的数量为5,因此,于此范例中,HPB项目0所对应的连续长度可为0x5。
于本发明的另一实施例中,存储器控制器110可分别确认在HPB项目表格所相关联的多个实体地址中,接续在一个HPB项目所对应的实体地址之后的多个实体地址的连续性,以产生可指示出后续多个实体地址的连续性的连续位元表格。举例而言,假设HPB项目0~12所记载的实体地址依序为{0x000A000,0x000A001,0x000A002,0x000A003,0x000A004,,0x000A005,0x000B009,0x000A007,0x000A008,0x000A009,0x000A00A,0x000B00A,0x000A00C},则对于HPB项目0,存储器控制器110可分别确认接续在实体地址0x000A000之后的12个实体地址的连续性,以产生连续位元表格0xBDF,其用以指示出后续12个实体地址的连续性,连续位元表格以位元展开表示则可为,例如,从最低有效位元(LeastSignificant Bit,缩写LSB)开始到最高有效位元(Most Significant Bit,缩写MSB)的101111011111,其中的位元值0代表不连续,位元值1代表连续。因此,由HPB项目0所记载的连续位元表格0xBDF可指示出HPB项目1~5记载连续的实体地址,HPB项目7~10记载连续的实体地址,并且HPB项目12与其后续的一或多个HPB项目记载连续的实体地址。
借助HPB项目所提供的资讯,主机装置130可发出前述HPB读取指令,此HPB读取指令可承载主机装置130试图读取的起始逻辑地址、传输长度(TRANSFER LENGTH)、以及HPB项目所记载的内容等相关资讯,用以读取数据。图7为一示意图,用以显示HPB读取指令的对应操作。主机***可自HPB快取区取得所需的HPB项目资讯,并且传送一HPB读取指令给UFS装置(操作E-1),此HPB读取指令带有一逻辑区块地址LBA(例如,起始LBA)、此LBA所对应的HPB项目内容以及传输长度,并透过HPB读取指令UPIU封包传送(操作E-2)。于一特定实施例中,传输长度可被限定为1,但本发明并不限于此。于本发明的其他实施例中,传输长度可被设定为任意正整数。例如,于HPB 2.0标准中,传输长度可被设定为大于1的正整数。于接收到HPB读取指令时,UFS装置可解码此对应于主机***试图读取的一个选定的LBA的HPB项目,以取得此选定的LBA所对应的实体地址或PBA的相关资讯,并且根据此实体地址或PBA的相关资讯存取存储器装置,以取得主机***试图读取的数据(操作E-3)。UFS装置可于操作E-3中判断接收到的HPB项目是否仍为有效。例如,透过前述判断HPB项目所记载的T2表格内容与存储器控制器110所维护的最新的T1表格的实体地址是否相符判断HPB项目是否仍为有效。若HPB项目的内容为有效的,UFS装置可取得主机装置130试图读取的数据(即,图中所示的“逻辑区块数据”),并传送一或多个送入数据的通用快闪存储器储存通讯协定资讯单元(DATA IN UPIU)封包至主机***,以传送此数据(操作E-4)给主机***,并且于数据传输完成后传送回应UPIU封包(操作E-5)至主机***,其中所述“逻辑区块数据”指主机装置130所指定欲读取的逻辑地址LBA所对应的数据。另一方面,若判断接收到的HPB项目为无效的,则UFS装置可略过操作E-4,直接执行操作E-5,藉由传送一回应UPIU封包至主机***,以建议主机***更新对应的HPB项目。
需注意的是,于本发明的一些实施例中,UFS装置端可主动地建议主机***更新HPB项目,例如,于前述操作C-2或操作D-2中UFS装置端藉由传送一回应UPIU封包主动地建议主机***更新HPB项目或建议主机***活化新的子区域。而于本发明的另一些实施例中,UFS装置端也可不主动地建议主机***更新HPB项目。于该些实施例中,UFS装置端可改为在判断HPB项目为无效的之后,再藉由传送一回应UPIU封包至主机***,以建议主机***更新对应的HPB项目。例如,UFS装置于接收到HPB读取指令后,若于前述操作E-3中判断HPB项目为无效的,透过回应UPIU封包建议主机***更新对应的HPB项目。
由于传输长度可被设定为大于1的正整数,即,主机装置130可试图利用HPB项目的资讯快速读取的一个以上LBA的数据,因此,于本发明的一些实施例中,存储器控制器110可记录及/或分析主机装置130的存取行为、根据纪录的主机装置130的存取行为选择一或多个要进行数据重整或数据重排的子区域,并且主动地执行一数据重整或数据重排程序,用以将被选择的该至少一个子区域的数据搬移至存储器装置120中具有连续实体地址的一记忆空间(例如,一存储器区块),以改善连续逻辑地址所对应的数据实际被储存于存储器装置120的连续性。
根据本发明的一实施例,存储器控制器110可建立一活化次数表格(例如,子区域活化次数表格),并且响应于由主机装置130发出的指令维护或更新活化次数表格的内容。活化次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的HPB子区域)所对应的一活化次数。因此,活化次数表格所包含的栏位总数可等于记忆装置120所包含的HPB子区域总数。如上所述,存储器装置120可被划分为多个分区,各分区可被视为一个逻辑单元,且各逻辑单元可对应于多个逻辑区块地址。各逻辑单元所对应的逻辑区块地址可被划分为多个HPB区域,并且各HPB区域可进一步被划分为多个HPB子区域。因此,于本发明的实施例中,各逻辑单元可包括多个区域,并且各区域包括多个子区域。
于本发明的一些实施例中,一子区域所对应的活化次数用以纪录该子区域被主机装置130活化的次数。例如,活化次数可为一计数值,用以计算对应的子区域请求被活化的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的HPB读取缓冲(HPB READ BUFFER)指令更新活化次数表格的内容。如上所述,主机***(例如,主机装置130)可确认要被活化的新的子区域,并发出一HPB读取缓冲指令,以请求要被活化的子区域所对应的HPB项目。因此,一或多个要被活化的子区域会被主机装置130标识于HPB读取缓冲指令,或其相关资讯会被承载于HPB读取缓冲指令中。响应于HPB读取缓冲指令的接收,存储器控制器110可藉由增加HPB读取缓冲指令中标识出的一或多个要被活化的子区域所对应的一或多个活化次数更新活化次数表格的内容(例如,为每次的活化加1)。
根据本发明的一实施例,存储器控制器110可选择一或多个活化次数高于一既定值或一临界值的子区域作为要进行数据重排的子区域。根据本发明的另一实施例,存储器控制器110可更将活化次数表格中记录的活化次数排序,并且根据排序过的活化次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可依序根据排序过的活化次数选择出目前活化次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的活化次数自排序过的活化次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。
此外,根据本发明的另一实施例,存储器装置110也可建立一读取次数表格(例如,子区域读取次数表格),并且响应于由主机装置130发出的读取指令维护或更新读取次数表格的内容,所述读取指令带有至少一个指定的逻辑地址。读取次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的HPB子区域)所对应的一读取次数。因此,读取次数表格所包含的栏位总数可等于记忆装置120所包含的HPB子区域总数。
于本发明的一些实施例中,一子区域所对应的读取次数用以纪录该子区域被主机装置130读取的次数。例如,读取次数可为一计数值,用以计算主机装置130发出指令读取对应的子区域所包含的逻辑地址的数据的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的一般读取指令更新读取次数表格的内容。响应于带有一起始逻辑区块地址与一欲读取的数据长度(以下称为读取长度)的一读取指令的接收,存储器控制器110可藉由增加指定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与读取长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个读取次数更新读取次数表格的内容(例如,为每次的读取加1)。根据本发明的另一些实施例,存储器控制器110可响应于由主机装置130所发出带有读取长度大于一既定读取长度临界值以指定一个以上要读取的逻辑地址的读取指令更新读取次数表格的内容。例如,存储器控制器110可藉由增加指定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与读取长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个读取次数更新读取次数表格的内容(例如,为每次的读取加1)。
根据本发明的一实施例,存储器控制器110可选择一或多个读取次数高于一既定值或一临界值的子区域作为要进行数据重排的子区域。根据本发明的另一实施例,存储器控制器110可更将读取次数表格中记录的读取次数排序,并且根据排序过的读取次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可依序根据排序过的读取次数选择出目前读取次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的读取次数自排序过的读取次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。
根据本发明的另一实施例,存储器控制器110可根据读取次数表格所记录的读取次数计算一平均读取次数,并且根据平均读取次数选择至少一个子区域。例如,存储器控制器110可选择一或多个读取次数高于平均读取次数的子区域作为要进行数据重排的子区域。
此外,根据本发明的又另一实施例,存储器装置110也可建立另一读取次数表格(例如,子区域HPB读取次数表格)(为了与本发明的实施例所述的读取次数表格有所区隔,以下称的为HPB读取次数表格),并且响应于由主机装置130发出的带有大于1的传输长度的HPB读取指令维护或更新HPB读取次数表格的内容,其中主机装置130藉由带有大于1的传输长度的HPB读取指令指定一个以上要被读取的逻辑地址。HPB读取次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的HPB子区域)所对应的一HPB读取次数。因此,HPB读取次数表格所包含的栏位总数可等于记忆装置120所包含的HPB子区域总数。
于本发明的一些实施例中,一子区域所对应的HPB读取次数用以纪录该子区域被主机装置130透过发出HPB读取指令读取的次数。例如,HPB读取次数可为一计数值,用以计算主机装置130发出HPB读取指令读取对应的子区域所包含的逻辑地址的数据的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的带有传输长度大于1的HPB读取指令更新HPB读取次数表格的内容。响应于带有一起始逻辑区块地址与大于1的传输长度的一HPB读取指令的接收,存储器控制器110可藉由增加被指定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与传输长度推算出来后续的逻辑区块地址)所属的一或多个子区域所对应之一或多个HPB读取次数更新HPB读取次数表格的内容(例如,为每次的HPB读取加1)。
根据本发明的一实施例,存储器控制器110可选择一或多个HPB读取次数高于一既定值或一临界值的子区域作为要进行数据重排的子区域。根据本发明的另一实施例,存储器控制器110可更将HPB读取次数表格中记录的HPB读取次数排序,并且根据排序过的HPB读取次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可依序根据排序过的HPB读取次数选择出目前HPB读取次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的HPB读取次数自排序过的HPB读取次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。
根据本发明的另一实施例,存储器控制器110可根据HPB读取次数表格所记录的HPB读取次数计算一平均HPB读取次数,并且根据平均HPB读取次数选择至少一个子区域。例如,存储器控制器110可选择一或多个HPB读取次数高于平均HPB读取次数的子区域作为要进行数据重排的子区域。
需注意的是,于本发明的又另一些实施例中,存储器控制器110可建立且同时维护一个以上的前述活化次数表格、读取次数表格与HPB读取次数表格,并且可根据纪录于前述活化次数表格、读取次数表格与HPB读取次数表格的内容的任意组合选择一或多个要进行数据重排的子区域。例如,存储器控制器110可将前述表格中所记录各子区域所对应的活化次数、读取次数与HPB读取次数加总或取其平均值并加以排序后,根据排序过的加总或平均结果选择一或多个要进行数据重排的子区域。
于本发明的实施例中,数据重排程序(例如,于前述实施例之任一者中所述的数据重排程序)可为一垃圾回收程序,或者可被合并于一垃圾回收程序中,而前述的要进行数据重排的子区域的选择可于一垃圾回收程序被触发时连带被触发。更具体的说,当任一可触发数据回收程序的条件达成时(例如,当闲置存储器区块(spare memory block)的总数量低于一既定闲置存储器区块临界值时),除了选择存有需被搬移(或者,重新写入)至目的存储器区块的有效数据的来源存储器区块外,存储器控制器110可进一步选择一或多个要进行数据重排的子区域,并且执行对应的数据重排程序,用以将被选择的子区域的数据搬移(或者重新写入)至存储器装置中具有连续实体地址的记忆空间。
于本发明的其他实施例中,数据重排程序也可被合并于其他数据搬移程序中,例如,用以将一或多个抹除次数高于一既定抹除次数临界值的存储器区块的数据搬移至抹除次数相对少的存储器区块的一损耗均衡(wear leveling)程序、用以将具有ECC错误位元数量高于一既定错误位元数量的数据搬移至一新的存储器区块的一读取回收(readreclaim)程序、用以将具有读取次数高于一既定读取次数临界值的数据搬移至一新的存储器区块的一读取刷新(read refresh)程序、或其他。此外,要进行数据重排的子区域的选择也可于数据搬移程序被触发时连带被触发。
于本发明的又另一些实施例中,数据重排程序也可于数据储存装置100闲置时(例如,当数据储存装置100于一既定期间内均未自主机装置130接收到任何指令时,数据储存装置100可进入闲置模式)被执行。
根据本发明的一实施例,在如前述实施例中根据活化次数表格/读取次数表格/HPB读取次数表格中记录的活化次数/读取次数/HPB读取次数或者根据排序过的活化次数/读取次数/HPB读取次数选择一或多个要进行数据重排程序的子区域后,存储器控制器110可更进一步判断是否将其中的一或多个子区域自被选择的子区域中排除。举例而言,结合前述实施例,于本发明的第一实施例中,对于数据经常被更新的子区域,存储器控制器110可判断不对其执行数据重排程序,即,将之自被选择的子区域中排除,以避免该子区域因经常性的数据重组而过度耗损存储器区块的寿命;于本发明的第二实施例中,对于被主机装置130配置用以储存一档案***的管理数据的子区域,存储器控制器110可判断不对其执行数据重排程序,即,将之自被选择的子区域中排除,以避免该子区域因经常性的数据重组而过度耗损存储器区块的寿命;于本发明的第三实施例中,存储器控制器110可同时排除数据经常被更新的子区域以及用以储存一档案***的管理数据的子区域。
图8显示根据本发明的第一实施例所述的数据处理方法流程图。本发明的数据处理方法适用于数据储存装置,例如,数据储存装置100,并且可包括由存储器控制器110所执行的以下步骤:
步骤S802:为各子区域,例如,前述的HPB子区域HPB_Sub_Rgn_0~HPB_Sub_Rgn_(L-1),维护一写入计数值W_Cnt。
步骤S804:根据一子区域所对应的写入计数值W_Cnt判断是否将该子区域自被选择的一或多个子区域中排除。其中,所述一或多个子区域可为上述被选择以执行数据重排程序的子区域,并且当一子区域根据对应的写入计数值W_Cnt被判断为一热写入子区域时,该子区域将会自被选择以执行数据重排程序的一或多个子区域中被排除。换言之,即便该子区域已根据活化次数表格/读取次数表格/HPB读取次数表格中记录的活化次数/读取次数/HPB读取次数或者根据排序过的活化次数/读取次数/HPB读取次数被选择以进行数据重排程序,由于该子区域被判断为一热写入子区域,因此存储器控制器110于进行数据重排程序时会将该子区域排除而不会对该子区域执行数据重排程序。
另一方面,于判断被选择以执行数据重排程序的该子区域并非为一热写入子区域时,存储器控制器110会对该子区域执行数据重排程序,用以将属于该子区域的逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间。
关于根据对应的活化次数/读取次数/HPB读取次数选择子区域以进行数据重排程序的操作以及数据重排程序等的详细说明,可参考以上段落的内容,并于此不再赘述。
根据本发明的一实施例,存储器控制器110可维护一子区域写入次数表格Sub_Rgn_W_Cnt_Tab,并且响应于由主机装置130发出的一写入指令更新子区域写入次数表格Sub_Rgn_W_Cnt_Tab的内容。子区域写入次数表格Sub_Rgn_W_Cnt_Tab可包括多个栏位,各栏位用以记录相关联的一子区域所对应的写入计数值W_Cnt,并且存储器控制器110藉由增加于写入指令中指定的逻辑地址所属之一或多个子区域所对应之一或多个写入计数值W_Cnt更新子区域写入次数表格Sub_Rgn_W_Cnt_Tab的内容。
更具体的说,响应于带有一起始逻辑区块地址与一欲写入的数据长度(以下称为写入长度)的一写入指令的接收,存储器控制器110可藉由增加指定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与写入长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个写入计数值W_Cnt更新子区域写入次数表格Sub_Rgn_W_Cnt_Tab的内容(例如,为每次的写入加1)。需注意的是,响应于同一个写入指令,一个子区域所对应的写入计数值W_Cnt最多被增加1。
根据本发明的另一实施例,存储器控制器110可维护一逻辑写入次数表格(logical write count,缩写LWC)LWC_Tab,并且响应于由主机装置130发出的一写入指令更新逻辑写入次数表格LWC_Tab的内容。逻辑写入次数表格LWC_Tab包括多个栏位,各栏位用以记录相关联的一逻辑地址所对应的一写入计数值,存储器控制器110藉由增加于写入指令中指定的一或多个逻辑地址所对应的写入计数值更新逻辑写入次数表格LWC_Tab的内容,并且根据逻辑写入次数表格LWC_Tab的内容维护各子区域所对应的写入计数值W_Cnt。
更具体的说,响应于带有一起始逻辑区块地址与一欲写入的数据长度(以下称为写入长度)的一写入指令的接收,存储器控制器110可根据起始逻辑区块地址与写入长度推算出该写入指令所指定的逻辑地址,并且藉由增加指定的逻辑地址所对应的写入计数值更新逻辑写入次数表格LWC_Tab的内容(例如,为每次的写入加1),再将一子区域所涵盖的一逻辑地址范围内所有逻辑地址所对应的写入计数值加总而得该子区域所对应的写入计数值W_Cnt。
根据本发明的一实施例,存储器控制器110可根据被选择以执行数据重排程序的子区域所对应的写入计数值W_Cnt是否大于一临界值判断该子区域是否为一热写入子区域。例如,存储器控制器110除了为各子区域维护对应的一写入计数值W_Cnt外,存储器控制器110可更计算其平均值,并且将的设定为所述临界值。须注意的是,因各子区域所对应的写入计数值W_Cnt并非一固定值,而是会随着数据储存装置100的使用而增加的一变动值,因此,写入计数值的平均值也并非一固定值,存储器控制器110可持续计算当前最新的平均值并将的设定为所述临界值。
此外,数据储存装置100也可根据总写入数据量(Total Write Bytes,缩写为TWB)来计算子区域所对应的写入计数值W_Cnt的平均值。举例而言,总写入数据量TWB可以是自一特定时间点(例如,自数据储存装置100被载入ISP程序码并初始化后)开始累计数据储存装置100每次被写入的数据量而得的一加总结果。假设存储器装置120的容量是128GB(位元组),但是总共写入的数据量为256GB,即可得知每个逻辑地址平均写入的次数为2。再假设一个逻辑地址所对应的数据大小为4KB,一个HPB子区域所对应的容量为24MB,则可换算出一个HPB子区域所涵盖的逻辑地址范围内包含了24*1024/4=6144个逻辑地址。因此,可推得平均一个HPB子区域的写入次数为2*6144=12288次。此时,存储器控制器110可将12288设定为用以判断子区域是否为一热写入子区域的临界值。
根据本发明的另一实施例,存储器控制器110可将所有子区域所对应的写入计数值W_Cnt排序,并且根据排序过的写入计数值W_Cnt判断被选择以执行数据重排程序的子区域是否为一热写入子区域。举例而言,若一子区域所对应的写入计数值W_Cnt于由多到少排序后的排名小于一既定值,则存储器控制器110可判断该子区域为一热写入子区域。
于本发明的一实施例中,假设一个实体存储器区块(即,实体区块)的容量为96MB,一个HPB子区域所对应的容量为24MB,则代表一个实体存储器区块可对应4个HPB子区域,存储器控制器110可将排序后的排名属于前4*N名的子区域判断为一热写入子区域,其中的4为实体存储器区块的容量相对于HPB子区域容量的倍数,N为一正整数。因此,于本发明的实施例中,存储器控制器110可根据实体存储器区块的容量相对于HPB子区域容量的倍数值设定根据排序过的写入计数值判断一子区域是否为一热写入子区域的门槛(即,前述的既定值)。
除了热写入子区域之外,存储器控制器110也可区分出用以储存主机装置130的***数据的***数据子区域,并且将之自被选择以执行数据重排程序的子区域中排除。
根据本发明的一实施例,存储器控制器110可将主机装置130写入存储器装置120的数据大致区分为档案***的管理数据以及使用者数据,其中,档案***的管理数据为运作于主机装置130的操作***(Operating system)所使用的档案***的管理数据。此管理数据可为一档案***管理表格,档案***管理表格可包括多个栏位,用于记录使用者数据的管理资讯。举例而言,档案***管理表格的一栏位可用以纪录各笔使用者数据的档案大小以及各笔使用者数据所对应的逻辑地址范围,其中一个档案可有对应的一笔纪录。举另一例而言,档案***管理表格的另一栏位可用以纪录主机***的哪些逻辑地址已经被写入数据,哪些逻辑地址尚未被写入数据。根据本发明的一实施例,所述的主机***可以是包含主机装置130与数据储存装置100的一***,亦可为进一步包含耦接至主机装置130之一或多个周边装置之一***。
一般而言,每当使用者数据有所更新时,主机装置130也必须对应地更新档案***的管理数据,使得档案***管理表格所纪录的资讯为最新的管理资讯。当档案***管理表格的任何一个栏位的内容须被更新,存储器控制器110会将最新的档案***管理表格内容写入存储器装置120。如此一来,响应于使用者数据的更新,档案***管理表格也会频繁的被更新。
因此,于本发明的第二实施例中,存储器控制器110可于多个HPB子区域(例如,前述的HPB子区域HPB_Sub_Rgn_0~HPB_Sub_Rgn_(L-1))中区分出用以储存主机装置130的***数据的***数据子区域,例如,包含被主机装置130配置用以储存档案***的管理数据的一或多个逻辑地址的子区域,并且在如前述实施例中根据活化次数表格/读取次数表格/HPB读取次数表格中记录的活化次数/读取次数/HPB读取次数或者根据排序过的活化次数/读取次数/HPB读取次数选择至少一个要进行数据重排程序的子区域后,存储器控制器110可更进一步判断被选择的子区域是否为***数据子区域。若是,存储器控制器110可判断不对其执行数据重排程序,即,将之自被选择的子区域中排除,以避免该子区域因经常性的数据重组而过度耗损存储器区块的寿命。
图9显示根据本发明的第二实施例所述的数据处理方法流程图。本发明的数据处理方法适用于数据储存装置,例如,数据储存装置100,并且可包括由存储器控制器110所执行的以下步骤:
步骤S902:根据一既定规则选择一或多个子区域以执行一数据重排程序,用以将属于被选择的该一或多个子区域的该等逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间。例如,在结合如前述根据活化次数表格/读取次数表格/HPB读取次数表格中记录的活化次数/读取次数/HPB读取次数或者根据排序过的活化次数/读取次数/HPB读取次数选择至少一个要进行数据重排程序的子区域的实施例中,既定规则可以是选择具有对应的活化次数/读取次数/HPB读取次数大于一临界值之一或多个子区域执数据重排程序,或者根据排序过的活化次数/读取次数/HPB读取次数选择一或多个子区域执数据重排程序。
步骤S904:根据被选择的一或多个子区域中的一子区域是否为一***数据子区域判断是否将该子区域自被选择的一或多个子区域中排除。当一子区域被判断为一***数据子区域时,该子区域将会自被选择以执行数据重排程序的一或多个子区域中被排除。换言之,即便该子区域已根据活化次数表格/读取次数表格/HPB读取次数表格中记录的活化次数/读取次数/HPB读取次数或者根据排序过的活化次数/读取次数/HPB读取次数被选择以进行数据重排程序,由于该子区域被判断为一***数据子区域,因此存储器控制器110于进行数据重排程序时会将该子区域排除而不会对该子区域执行数据重排程序。
另一方面,于判断被选择以执行数据重排程序的该子区域并非为一***数据子区域时,该子区域被保留于被选择以执行数据重排程序的一或多个子区域中,因此,存储器控制器110会对该子区域执行该数据重排程序,用以将属于该子区域的该等逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间。
关于根据对应的活化次数/读取次数/HPB读取次数选择子区域以进行数据重排程序的操作以及数据重排程序等的详细说明,可参考以上段落的内容,并于此不再赘述。
于一实施例中,主机装置130可将数值较小的逻辑地址(例如,自逻辑地址的起始端开始)分配给档案***的管理数据使用。因此,存储器控制器110可自逻辑地址的起始端(例如,图2的LBA 0)开始为对应的子区域分配索引值(例如,图2的HPB子区域索引值0~(L-1)),并且当被选择的子区域所对应的一索引值小于一既定数值时,存储器控制器110可判断被选择的子区域为一***数据子区域。
假设存储器120为TLC快闪存储器,且其一个实体区块的容量为72MB、一个HPB子区域所对应的容量为24MB,则所述既定数值可被设定为3、6、9等数值(即,一个实体区块所包含的HPB子区域数量的整数倍)。举例而言,若存储器控制器110将索引值0~2的HPB子区域设定为用以储存主机装置130的档案***的管理数据的***数据子区域,则其余的HPB子区域可被视为用以储存使用者数据的子区域,并且既定数值可被设定为3。
同理,假设存储器120为QLC快闪存储器,且其一个实体区块的容量为96MB、一个HPB子区域所对应的容量为24MB,则所述既定数值可被设定为4、8、12等数值(即,一个实体区块所包含的HPB子区域数量的整数倍)。举例而言,若存储器控制器110将索引值0~3的HPB子区域设定为用以储存主机装置130的档案***的管理数据的***数据子区域,则其余的HPB子区域可被视为用以储存使用者数据的子区域,并且既定数值可被设定为4。
值得注意的是,于本发明的实施例中,主机装置130并不限于将数值较小的逻辑地址分配给档案***的管理数据使用。举例而言,主机装置130亦可将数值较大的逻辑地址(例如,自逻辑地址最末端开始)分配给档案***的管理数据使用。因此,本发明并不限于上述的判断方法,并且于本发明的实施例中,一子区域是否为***数据子区域的判断方法可根据配置用以储存档案***的逻辑地址而动态调整。
例如,主机装置130可设定一特定逻辑地址范围,将此特定逻辑地址范围内的逻辑地址分配给档案***的管理数据使用。因此,根据本发明的另一实施例,当被选择的子区域所涵盖的一逻辑地址范围与一主机装置所配置用以储存档案***的管理数据的一逻辑地址范围重迭(其可以是完全重迭或部分重迭)时,被选择的子区域可被判断为一***数据子区域。
根据本发明的一实施例,主机装置130可藉由多种方式通知存储器控制器110其所配置给档案***的管理数据的逻辑地址,或逻辑地址范围。如上所述,存储器控制器110可透过接口逻辑118与主机装置130沟通。
此外,根据本发明的一实施例,所述档案***的管理数据可以是一档案***管理表格。
此外,于本发明的第三实施例中,于根据所述既定规则选择一或多个子区域以执行数据重排程序后,存储器控制器110可结合第一实施例与第二实施例的概念,逐一判断根据被选择的子区域是否为一热写入子区域或者一***数据子区域,以判断是否将该子区域自被选择的一或多个子区域中排除。若被选择的子区域为一热写入子区域或者一***数据子区域,该子区域将会自被选择以执行数据重排程序的一或多个子区域中被排除。若被选择的子区域并非一热写入子区域,也并非一***数据子区域,则该子区域被保留于被选择以执行数据重排程序的一或多个子区域中,因此,存储器控制器110会对该子区域执行该数据重排程序,用以将属于该子区域的该等逻辑地址所对应的数据搬移至存储器装置中具有连续实体地址的一记忆空间。
综上所述,于本发明的实施例中,不仅改善了连续逻辑地址所对应的数据实际被储存于存储器装置120的连续性,藉由数据重排程序的执行使得经常被活化、被读取、或透过HPB读取指令被读取的子区域所对应的数据可被储存于具有连续实体地址的一记忆空间,更考量到不额外针对数据经常被更新的子区域(例如,热写入子区域)以及/或用以储存档案***的管理数据的子区域执行数据重排程序,以避免这些子区域因经常性的数据重组而过度耗损存储器区块的寿命。如此一来,既可提高数据储存装置100的存取效率,同时也可有效延长存储器装置的使用寿命。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (15)

1.一种数据储存装置,包括:
一存储器装置,包括多个存储器区块,该等存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的该等逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域;以及
一存储器控制器,耦接至该存储器装置,用以存取该存储器装置,其中该存储器控制器为各子区域维护一写入计数值,
当该存储器控制器选择一或多个子区域以执行一数据重排程序时,该存储器控制器根据被选择的一子区域所对应的该写入计数值判断被选择的该子区域是否为一热写入子区域,并且于判断被选择的该子区域并非为一热写入子区域时,该存储器控制器对被选择的该子区域执行该数据重排程序,用以将属于被选择的该子区域的该等逻辑地址所对应的数据搬移至该存储器装置中具有连续实体地址的一记忆空间,以及于判断被选择的该子区域为一热写入子区域时,该存储器控制器不对被选择的该子区域执行该数据重排程序。
2.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更维护一子区域写入次数表格,并且响应于由一主机装置发出的一写入指令更新该子区域写入次数表格的内容,该子区域写入次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的该写入计数值,并且该存储器控制器藉由增加于该写入指令中指定的逻辑地址所属之一或多个子区域所对应之一或多个写入计数值更新该子区域写入次数表格的内容。
3.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更维护一逻辑写入次数表格,并且响应于由一主机装置发出的一写入指令更新该逻辑写入次数表格的内容,该逻辑写入次数表格包括多个栏位,各栏位用以记录相关联的一逻辑地址所对应的一写入计数值,该存储器控制器藉由增加于该写入指令中指定的一或多个逻辑地址所对应的写入计数值更新该逻辑写入次数表格的内容,并且根据该逻辑写入次数表格的内容维护各子区域所对应的该写入计数值。
4.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器根据被选择的该子区域所对应的该写入计数值是否大于一临界值判断被选择的该子区域是否为一热写入子区域。
5.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更将该等子区域所对应的多个写入计数值排序,并且根据排序过的该等写入计数值判断被选择的该子区域是否为一热写入子区域。
6.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器更响应于由一主机装置发出的一读取指令更新一读取次数表格的内容,该读取次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的一读取次数,该存储器控制器藉由增加于该读取指令中指定的逻辑地址所属之一或多个子区域所对应之一或多个读取次数更新该读取次数表格的内容,并且该存储器控制器更根据该读取次数表格的内容选择该一或多个子区域执行该数据重排程序。
7.如权利要求6所述的数据储存装置,其特征在于,该存储器控制器更将该读取次数表格中记录的该等读取次数排序,并且根据排序过的该等读取次数选择该一或多个子区域。
8.一种数据处理方法,适用于一数据储存装置,其中该数据储存装置包括一存储器装置与一存储器控制器,该存储器装置包括多个存储器区块,该等存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的该等逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域,该存储器控制器耦接至该存储器装置,用以存取该存储器装置,该数据处理方法由该存储器控制器所执行并包括:
为各子区域维护一写入计数值;以及
根据一子区域所对应的该写入计数值判断是否将该子区域自被选择的一或多个子区域中排除,其中该一或多个子区域被选择以执行一数据重排程序,并且当该子区域根据对应的该写入计数值被判断为一热写入子区域时,该子区域自被选择的该一或多个子区域中被排除。
9.如权利要求8所述的数据处理方法,其特征在于,当该子区域根据对应的该写入计数值被判断并非为一热写入子区域时,该子区域不会自被选择的该一或多个子区域中被排除,并且该数据处理方法还包括:
对被选择的该一或多个子区域执行该数据重排程序,用以将属于被选择的该一或多个子区域的该等逻辑地址所对应的数据搬移至该存储器装置中具有连续实体地址的一记忆空间。
10.如权利要求8所述的数据处理方法,其特征在于,还包括:
建立一子区域写入次数表格,并且响应于由一主机装置发出的一写入指令更新该子区域写入次数表格的内容,
其中该子区域写入次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的该写入计数值,并且该子区域写入次数表格的内容藉由增加于该写入指令中指定的逻辑地址所属之一或多个子区域所对应之一或多个写入计数值被更新。
11.如权利要求8所述的数据处理方法,其特征在于,还包括:
建立一逻辑写入次数表格,并且响应于由一主机装置发出的一写入指令更新该逻辑写入次数表格的内容,
其中该逻辑写入次数表格包括多个栏位,各栏位用以记录相关联的一逻辑地址所对应的一写入计数值,该逻辑写入次数表格的内容藉由增加于该写入指令中指定的一或多个逻辑地址所对应的写入计数值被更新,并且各子区域所对应的该写入计数值根据该逻辑写入次数表格的内容被维护。
12.如权利要求8所述的数据处理方法,其特征在于,当该子区域所对应的该写入计数值大于一临界值时,该子区域被判断为一热写入子区域。
13.如权利要求8所述的数据处理方法,其特征在于,还包括:
将该等子区域所对应的多个写入计数值排序,并且
于根据一子区域所对应的该写入计数值判断是否将该子区域自被选择的一或多个子区域中排除的步骤还包括:
根据排序过的该等写入计数值判断该子区域是否为一热写入子区域。
14.如权利要求8所述的数据处理方法,其特征在于,还包括:
响应于由一主机装置发出的一读取指令更新一读取次数表格的内容,
其中该读取次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的一读取次数,该读取次数表格的内容藉由增加于该读取指令中指定的逻辑地址所属之一或多个子区域所对应之一或多个读取次数被更新,并且该一或多个子区域根据该读取次数表格的内容被选择以执行该数据重排程序。
15.如权利要求14所述的数据处理方法,其特征在于,还包括:
将该读取次数表格中记录的该等读取次数排序,并且根据排序过的该等读取次数选择该一或多个子区域。
CN202211259317.8A 2022-09-26 2022-10-14 数据处理方法及对应的数据储存装置 Pending CN117806532A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW111136327 2022-09-26
TW111136327A TWI829363B (zh) 2022-09-26 2022-09-26 資料處理方法及對應之資料儲存裝置

Publications (1)

Publication Number Publication Date
CN117806532A true CN117806532A (zh) 2024-04-02

Family

ID=90360425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211259317.8A Pending CN117806532A (zh) 2022-09-26 2022-10-14 数据处理方法及对应的数据储存装置

Country Status (3)

Country Link
US (1) US20240103732A1 (zh)
CN (1) CN117806532A (zh)
TW (1) TWI829363B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
TWI457755B (zh) * 2011-08-22 2014-10-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與儲存裝置
US9830098B1 (en) * 2016-07-11 2017-11-28 Silicon Motion, Inc. Method of wear leveling for data storage device
CN109671458A (zh) * 2017-10-17 2019-04-23 联发科技股份有限公司 管理闪存模块的方法及相关的闪存控制器
CN113641597B (zh) * 2020-04-27 2024-07-12 慧荣科技股份有限公司 管理数据存储的方法及装置以及计算机可读取存储介质
CN111984604B (zh) * 2020-08-13 2024-03-19 华中科技大学 一种减少日志结构文件***碎片的方法及闪存存储***

Also Published As

Publication number Publication date
TWI829363B (zh) 2024-01-11
TW202414221A (zh) 2024-04-01
US20240103732A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
KR101966693B1 (ko) Lba 비트맵 사용
US20180095698A1 (en) Memory management method and storage controller using the same
CN113885778B (zh) 数据处理方法及对应的数据储存装置
CN113961140B (zh) 数据处理方法及对应的数据储存装置
CN111694510B (zh) 数据储存装置与数据处理方法
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
CN113885779B (zh) 数据处理方法及对应的数据储存装置
TWI748835B (zh) 資料處理方法及對應之資料儲存裝置
US11636042B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
CN112099731B (zh) 数据储存装置与数据处理方法
TWI808011B (zh) 資料處理方法及對應之資料儲存裝置
CN117806532A (zh) 数据处理方法及对应的数据储存装置
CN110096215B (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
TWI814590B (zh) 資料處理方法及對應之資料儲存裝置
TWI808010B (zh) 資料處理方法及對應之資料儲存裝置
CN116501655A (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