CN106897026B - 非易失性存储器装置及其地址分类方法 - Google Patents

非易失性存储器装置及其地址分类方法 Download PDF

Info

Publication number
CN106897026B
CN106897026B CN201611101194.XA CN201611101194A CN106897026B CN 106897026 B CN106897026 B CN 106897026B CN 201611101194 A CN201611101194 A CN 201611101194A CN 106897026 B CN106897026 B CN 106897026B
Authority
CN
China
Prior art keywords
data
logical address
address
write command
data item
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
CN201611101194.XA
Other languages
English (en)
Other versions
CN106897026A (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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
Priority claimed from US15/287,743 external-priority patent/US10733107B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN106897026A publication Critical patent/CN106897026A/zh
Application granted granted Critical
Publication of CN106897026B publication Critical patent/CN106897026B/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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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]

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

非易失性存储器装置及其地址分类方法
技术领域
本发明涉及一种存储器装置,且特别涉及一种非易失性存储器装置及其地址分类方法。
背景技术
与传统的硬盘驱动(hard disk drives)相比,由于快闪存储器(flash)存储设备的读/写性能佳且功耗低,使得快闪存储器被广泛应用于数据存储系统中。然而,将数据写入快闪存储器的关键因素是写入放大(Write Amplification,WA)。写入放大影响快闪存储器的性能和耐久性。当主机对快闪存储器存储设备发出写入动作/指令时,快闪存储器存储设备会将此主机写入动作/指令转化(或解码)为多个内部写入动作/指令。所述“将一个主机写入动作/指令转化为多个内部写入动作/指令”即为写入放大。写入放大主要是为了内部写入操作,例如垃圾收集(garbage collection)、磨损平衡(wear leveling)和/或其他管理性写入操作,以便管理数据更新和存储耐久性(storage endurance)。
写入放大也取决于写入工作负荷(write workloads)。在实际写入工作负荷中,通常有一些数据被更频繁地更新。这些被频繁更新的数据通常被称为热数据(hot data)。其他数据的更新可能较不频繁。更新较不频繁的数据通常被称为冷数据(cold data)。将冷数据与热数据混合在一起写入相同的记忆块中,其往往导致更高的写入放大。因此,在将主机的数据写入快闪存储器前,快闪存储器存储设备需要分辨主机的数据是否为热数据。
发明内容
本发明提供一种非易失性存储器装置及其地址分类方法,其可以分辨来自主机的写入命令的逻辑地址是否为热数据地址。
本发明的实施例提供一种非易失性存储器装置。非易失性存储器装置包括非易失性存储器以及控制器。控制器耦接至非易失性存储器。控制器可以进行地址分类方法,来决定来自主机的写入命令的逻辑地址是否为热数据地址。控制器依照主机的写入命令而存取非易失性存储器。其中,地址分类方法包括:提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;依据写入命令的逻辑地址而查找数据查找表,以获得对应计数器值与对应计时器值;以及依据对应计数器值与对应计时器值来决定写入命令的逻辑地址是否为热数据地址。
本发明的实施例提供一种非易失性存储器装置的地址分类方法,以决定来自主机的写入命令的逻辑地址是否为热数据地址。所述地址分类方法包括:提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;由控制器依据写入命令的逻辑地址而查找数据查找表,以获得对应计数器值与对应计时器值;以及由控制器依据对应计数器值与对应计时器值来决定写入命令的逻辑地址是否为热数据地址。
基于上述,本发明实施例所提供的非易失性存储器装置及其地址分类方法,其使用了一个数据查找表,其中此数据查找表包括多个数据项目,而每一个数据项目包括逻辑地址信息、计数器值与计时器值。依据写入命令的逻辑地址可以从数据查找表中查找出对应计数器值与对应计时器值。控制器可以检查对应计数器值与对应计时器值,来决定写入命令的逻辑地址是否为热数据地址。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明一实施例说明一种非易失性存储器装置的电路方块示意图。
图2是依照本发明一实施例说明一种地址分类方法的流程示意图。
图3是依照本发明另一实施例说明一种地址分类方法的流程示意图。
图4是依照本发明一实施例说明数据查找表的刷新(refresh)流程示意图。
图5是依照本发明另一实施例说明一种非易失性存储器装置的电路方块示意图。
【符号说明】
10:主机
100、500:非易失性存储器装置
110、110’:控制器
111:中央处理单元
112:存储器控制电路
113:存储器缓冲器
114:数据分类电路
115:错误检查纠正(ECC)电路
120:非易失性存储器
S210~S240、S241~S245、S310~S330、S410~S440:步骤
具体实施方式
在本申请说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在附图及实施方式中使用相同标号的元件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的元件/构件/步骤可以相互参照相关说明。
图1是依照本发明一实施例说明一种非易失性存储器装置100的电路方块示意图。依照设计需求,非易失性存储器装置100可以是随身碟、固态硬盘(solid state disc,SSD)或是其他存储装置。非易失性存储器装置100可以耦接至主机(host)10。此主机10可以是计算机、手持式电话、多媒体播放器、相机或是其他电子装置。非易失性存储器装置100包括控制器110以及非易失性存储器120。依照设计需求,非易失性存储器120可以是与非快闪存储器(NAND flash memory)或是其他非易失性存储电路/元件。
控制器110耦接至该非易失性存储器。控制器110可以依照主机10的写入命令(write command)而存取非易失性存储器120。当主机10发出一个写入命令给非易失性存储器装置100时,控制器110可以进行“地址分类方法”,来决定来自主机10的写入命令的逻辑地址是否为热数据(hot data)地址。所谓“热数据”是指近期很可能被修改的数据。在写入命令的逻辑地址被判定为热数据地址(或者不是热数据地址)后,控制器110可以依据判定结果,以及依据此写入命令的逻辑地址,来将主机10的数据写入非易失性存储器120。因为在将数据写入非易失性存储器120的过程中,“所写入数据是否为热数据”已被考虑,因此可以有效降低写入放大(Write Amplification,WA)。例如,基于热数据地址的判定而将冷数据与热数据分别写入非易失性存储器120不同的记忆块中,因此垃圾回收操作(garbagecollection operation)的效率可以被提升。换句话说,上述控制器110所进行的“地址分类方法”,也可被视为“(冷)热数据识别方法”,控制器110能从主机10发出的写入命令的逻辑地址识别出主机即将要写入的数据是否为(冷)热数据,并进行相应处理。
在图1所示实施例中,控制器110包括中央处理单元111、存储器控制电路112、存储器缓冲器113、数据分类电路114与错误检查纠正(Error Checking and Correcting,以下称ECC)电路115。中央处理单元111经由通信接口耦接至主机10。依照设计需求,所述通信接口包括小型计算机系统接口(small computer system interface,SCSI)、串行连接小型计算机系统接口(Serial Attached SCSI,SAS)、增强型小型装置接口(Enhanced Small DiskInterface,ESDI)、串行先进技术连接(serial advanced technology attachment,SATA)、快速周边元件互连(peripheral component interconnect express,PCI-express)、整合式电子装置(integrated drive electronics,IDE)接口、通用串行总线(universalserial bus,USB)、雷电(Thunderbolt)接口或其他接口。本实施例并没有限制主机10与非易失性存储器装置100之间的接口结构。
当主机10发出写入命令时,待写入的数据可以被暂存于存储器缓冲器113,而中央处理单元111可以将主机10的写入命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址),并将内部控制信号提供给存储器控制电路112和/或存储器缓冲器113。存储器缓冲器113的例子包括动态随机存取存储器(dynamic randomaccess memory,DRAM)、静态随机存取存储器(static random access memory,SRAM)或是其他易失性存储器(volatile memory)。ECC电路115可以执ECC算法,以便将暂存于存储器缓冲器113的数据加以编码为码字(codeword)。在一些实施例中,ECC电路115可以执行BCH(Bose-Chaudhuri-Hocquengh)码算法、低密度奇偶校验(Low Density Parity Check,LDPC)码算法或是其他ECC算法。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便码字写入非易失性存储器120。
当主机10发出读取命令时,中央处理单元111可以将主机10的读取命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址)。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将非易失性存储器120内的码字读出。ECC电路115可以执行ECC算法,以便将码字解码为数据,并将经解码的数据暂存于存储器缓冲器113。然后,中央处理单元111可以将暂存于存储器缓冲器113的数据回传给主机10。
图2是依照本发明一实施例说明一种地址分类方法的流程示意图。请参照图1与图2,数据分类电路114可以在步骤S210中提供数据查找表(data look-up table),所述数据查找表可以快速暂存(cache)一组或多组数据项目信息(data entry information),以识别热数据。其中,所述数据查找表包括多个数据项目,而每一个数据项目各自包括逻辑地址信息、计数器(counter)值与计时器(timer)值。在一些实施例中,所述逻辑地址信息可以是逻辑块地址(logical block address,LBA)或是其他逻辑地址。中央处理单元111可以直接使用主机10的写入命令的逻辑块地址而在所述数据查找表寻找具有相同逻辑块地址的数据项目。在另一些实施例中,所述逻辑地址信息可以是一种具唯一性的识别码。中央处理单元111可以将主机10的写入命令的逻辑地址转换为对应的识别码,然后使用此对应的识别码而在所述数据查找表寻找具有相同识别码的数据项目。
在主机10发出写入命令(步骤S220)后,中央处理单元111可以依据写入命令的逻辑地址查找数据分类电路114的所述数据查找表,以获得对应的数据项目(步骤S230)。中央处理单元111可以从所述对应的数据项目中获得对应计数器值与对应计时器值。计数器值用于追踪某一个逻辑地址的数据频率信息(data frequency information),亦即这个逻辑地址的被写入频率。计时器值用于追踪某一个逻辑地址的数据是否最近被存取,亦即这个逻辑地址在目前时间窗中是否曾被更新数据。因此,控制器111可以在步骤S240中依据对应计数器值与对应计时器值来决定主机10的写入命令的逻辑地址是否为热数据地址。
图3是依照本发明另一实施例说明一种地址分类方法的流程示意图。图3所示步骤S210、步骤S220、步骤S230与步骤S240可以参照图2的相关说明来类推,故不再赘述。请参照图1与图3,在主机10发出写入命令(步骤S220)后,中央处理单元111可以将写入命令的逻辑块地址映射/转换到逻辑地址信息(步骤S310)。例如,写入命令的逻辑块地址可以被映射/转换到对应的识别码,然后中央处理单元111可以使用此对应的识别码而在数据分类电路114的所述数据查找表寻找具有相同识别码的数据项目。“将写入命令的逻辑块地址映射到对应的识别码”可以通过多级哈希函数(hash functions)或其他转换函数来实现,以减少搜寻的负担。
中央处理单元111在步骤S230中可以依据步骤S310的逻辑地址信息(例如识别码)来查找数据分类电路114的所述数据查找表,以判断数据查找表中有没有对应数据项目的逻辑地址信息可以吻合主机10的写入命令的逻辑地址。若数据查找表中有对应数据项目的逻辑地址信息可以吻合主机10的写入命令的逻辑地址,则中央处理单元111在步骤S230中可以获得对应的数据项目,进而从所述对应的数据项目中获得对应计数器值Vc与对应计时器值Vt。
除此之外,中央处理单元111在步骤S230中还可以,依照主机10的写入命令的逻辑地址来更新对应计数器值Vc与对应计时器值Vt。当所述数据查找表中的一个对应数据项目的逻辑地址信息吻合主机10的写入命令的逻辑地址时,数据分类电路114可以将此对应数据项目的对应计数器值Vc累进加一来追踪数据的写入频率,以及将此对应数据项目的对应计时器值Vt设置为第一逻辑态(例如逻辑1)以表示最近被存取。
在图3所示实施例中,步骤S240包括子步骤S241、S242、S243、S244与S245。若步骤S230的判断结果表示数据分类电路114的所述数据查找表中有对应数据项目的逻辑地址信息可以吻合主机10的写入命令的逻辑地址,则中央处理单元111可以进行步骤S241。中央处理单元111在步骤S241中可以检查从数据查找表中找出的对应计数器值Vc与对应计时器值Vt。当对应计数器值Vc超出预设范围且该对应计时器值Vt为一第一逻辑态时,中央处理单元111将主机10的写入命令的逻辑地址判定为热数据地址(步骤S242)。依照设计需求,所述预设范围可以是单边界范围或是双边界范围。举例来说,在一些实施例中,步骤S241可以检查对应计数器值Vc是否大于阈值Th1(对应计数器值Vc大于阈值Th1表示超出预设范围),其中阈值Th1可以依照设计需求来决定。在另一些实施例中,步骤S241可以检查对应计数器值Vc是否小于阈值Th2(对应计数器值Vc小于阈值Th2表示超出预设范围),其中阈值Th2可以依照设计需求来决定。依照设计需求,所述第一逻辑态可以是逻辑1或是逻辑0。举例来说,在一些实施例中,步骤S241可以检查对应计时器值Vt是否为逻辑1,而以逻辑1表示对应的逻辑地址在目前时间窗中曾被更新数据。在另一些实施例中,步骤S241可以检查对应计时器值Vt是否为逻辑0,而以逻辑0表示对应的逻辑地址在目前时间窗中曾被更新数据。
当对应计数器值Vc超出预设范围且对应计时器值Vt为第二逻辑态时,中央处理单元111将主机10的写入命令的该逻辑地址判定为次热数据地址(步骤S243)。当对应计数器值Vc不超出预设范围且对应计时器值Vt为第一逻辑态时,中央处理单元111将主机10的写入命令的逻辑地址判定为次冷数据地址(步骤S244)。当对应计数器值Vc不超出预设范围且对应计时器值Vt为第二逻辑态时,中央处理单元111将主机10的写入命令的逻辑地址判定为冷数据地址(步骤S245)。
在其他实施例中,若步骤S230的判断结果表示数据分类电路114的所述数据查找表中没有对应数据项目的逻辑地址信息可以吻合主机10的写入命令的逻辑地址,则中央处理单元111可以无条件地将主机10的写入命令的逻辑地址所对应的新数据项目加入数据分类电路114的所述数据查找表中,其中该新数据项目的逻辑地址信息吻合写入命令的逻辑地址,新数据项目的计数器值被设置为1,以及新数据项目的该计时器值被设置为第一逻辑态(例如为逻辑1)。在图3所示实施例中,若步骤S230的判断结果表示数据分类电路114的所述数据查找表中没有对应数据项目的逻辑地址信息可以吻合主机10的写入命令的逻辑地址,则中央处理单元111可以进行步骤S320。
步骤S320可以决定是否将主机10的写入命令的逻辑地址所对应的新数据项目加入数据分类电路114的所述数据查找表中。举例来说,中央处理单元111可以依据随机值或伪随机(Pseudo Random)值而决定是否将主机10的写入命令的逻辑地址所对应的新数据项目加入数据分类电路114的所述数据查找表中。其中,新数据项目的逻辑地址信息吻合该写入命令的逻辑地址,新数据项目的计数器值被设置为1,以及新数据项目的计时器值被设置为第一逻辑态(例如为逻辑1)。举例来说,若伪随机值大于阈值Th3,则表示要将新数据项目加入数据查找表中。若伪随机值小于阈值Th3,则表示不要将新数据项目加入数据查找表中。若步骤S320的判断结果表示不要将新数据项目加入数据分类电路114的所述数据查找表中,则中央处理单元111可以将主机10的写入命令的逻辑地址判定为冷数据地址(步骤S245)。若步骤S320的判断结果表示要将新数据项目加入数据分类电路114的所述数据查找表中,则控制器110可以进行步骤S330。
当步骤S320作出插入决定时,由于所述数据查找表的暂存容量有限,存储在这个数据查找表的一个数据项目很可能会被移除。步骤S330可以将新数据项目加入数据分类电路114的所述数据查找表中。当控制器110决定将写入命令的逻辑地址所对应的新数据项目加入数据分类电路114的所述数据查找表且所述数据查找表已满时,数据分类电路114可以在步骤S330中从数据查找表的这些数据项目中选择并删除一个可移除数据项目,其中所述可移除数据项目的计数器值不超出所述预设范围(例如不大于阈值Th1),且计时器值为第二逻辑态(例如为逻辑0)。在完成步骤S330后,中央处理单元111可以将主机10的写入命令的逻辑地址判定为次冷数据地址(步骤S244)。
在另一些实施例中,数据分类电路114可以维护一个移除候选清单。数据分类电路114可以将数据查找表的这些数据项目中具有计数器值不超出预设范围且计时器值为第二逻辑态的所有数据项目加入此移除候选清单中。计数器值不超出预设范围(例如不大于阈值Th1)且计时器值为第二逻辑态(例如为逻辑0),表示此数据项目所对应的逻辑地址被存取的频率相对较低,并且此数据项目所对应的逻辑地址最近已有一段时间都没有被存取过。为了减少搜寻的负担,硬件/固件可以在运行时(runtime)去维护这个移除候选清单。当控制器110于步骤S320已决定将写入命令的逻辑地址所对应的新数据项目加入数据查找表但是数据查找表已满时,数据分类电路114于步骤S330可以从所述移除候选清单中选择一个可移除数据项目,然后数据分类电路114可以从所述数据查找表与所述移除候选清单中移除这个可移除数据项目。附带一提的是,当所述移除候选清单中的一个对应数据项目的逻辑地址信息吻合主机10的写入命令的逻辑地址时,数据分类电路114可以从所述移除候选清单中移除此对应数据项目,且将所述数据查找表中的此对应数据项目的对应计数器值累进加一,以及将所述数据查找表中的此对应数据项目的对应计时器值设置为第一逻辑态(例如为逻辑1)。
为了随时获得写入工作负荷(write workloads)的变化,对于存储在这个数据查找表的所有数据项目,每隔一预设时间,数据分类电路114可以将这些数据项目的计数器值分别除以一个参数f,以及将这些数据项目的计时器值重置为第二逻辑态(例如为逻辑0)。上述机制可以获得相对的负载变化且避免计数器溢位的问题。
举例来说,图4是依照本发明一实施例说明数据查找表的刷新(refresh)流程示意图。请参照图1与图4,数据分类电路114可以利用主机命令计数器值host_write_count来计数主机10的写入命令的次数。在主机10发出一次写入命令(步骤S220)后,数据分类电路114可以将主机命令计数器值host_write_count累进加一(步骤S410)。数据分类电路114可以在步骤S420判断主机命令计数器值host_write_count是否大于等于阈值N,其中阈值N可以视设计需求来决定。当步骤S420判断结果表示主机命令计数器值host_write_count小于阈值N时,数据分类电路114会等待主机10发出下一个写入命令(步骤S430)。在主机10发出下一个写入命令(步骤S430)后,数据分类电路114可以再一次回到步骤S410,以便将主机命令计数器值host_write_count累进加一。
当步骤S420判断结果表示主机命令计数器值host_write_count大于等于阈值N时,数据分类电路114可以进行步骤S440。数据分类电路114在步骤S440中可以将每一个数据项目的计数器值Vc分别除以一个参数f,以及将每一个数据项目的计时器值Vt重置为第二逻辑态(例如为逻辑0)。上述参数f可以依照设计需求来决定。举例来说,上述参数f可以是2或是其他实数。因此,在每N个主机写入请求时,每一个数据项目的计数器值Vc分别被除以f,且每一个数据项目的定时器值Vt被重置为第二逻辑态。例如,对于每8192个主机写入命令,所有的计数器值Vc都被除以f=2,且所有的计时器值Vt都被重置为逻辑0。
图4所示数据查找表的刷新流程为一个示例。在其他实施例中,数据查找表中的这些数据项目可以不同步刷新。举例来说,当数据查找表中的一个对应数据项目的逻辑地址信息吻合主机10的写入命令的逻辑地址时,数据分类电路114可以对这个对应数据项目启动一个计时操作。当此计时操作的计时结果已达某一预设时间(此预设时间可以依照设计需求来决定)时,数据分类电路114可以停止此计时操作,且将这个对应数据项目的对应计数器值Vc除以参数f,以及将这个对应数据项目的对应计时器值Vt重置为第二逻辑态(例如为逻辑0)。不同的数据项目,其计时操作的起始时间点往往不同。因此,数据查找表中的这些数据项目可以不同步刷新。值得一提的是,在此计时操作的计时结果达到所述预设时间之前,若来自主机10的另一写入命令的逻辑地址吻合这个相同的对应数据项目的逻辑地址信息,则数据分类电路114可以重置这个对应数据项目的计时操作的计时结果(重新计时),且将这个对应数据项目的对应计数器值Vc累进加一,以及将这个对应数据项目的对应计时器值Vt设置为第一逻辑态(例如为逻辑1)。
值得注意的是,在不同的应用情境中,上述控制器110、中央处理单元111、存储器控制电路112、数据分类电路114和/或ECC电路115的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware descriptionlanguages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取介质(computer-accessible medias),例如磁带(magnetic tapes)、半导体(semiconductors)存储器、磁盘(magnetic disks)或光盘(compact disks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wired communication)、无线通信(wirelesscommunication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取介质中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程代码(programming codes)。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。
举例来说,在另一实施例中,数据分类电路114的例子包括动态随机存取存储器(dynamic random access memory,DRAM)、静态随机存取存储器(static random accessmemory,SRAM)或是其他易失性存储器(volatile memory)。数据分类电路114用以存放所述数据查找表。上述地址分类方法可以由中央处理单元111来执行。在中央处理单元111执行上述地址分类方法的过程中,中央处理单元111可以存取/管理存放在数据分类电路114中的所述数据查找表。
再举例来说,图5是依照本发明另一实施例说明一种非易失性存储器装置500的电路方块示意图。非易失性存储器装置500包括控制器110’以及非易失性存储器120。在图5所示实施例中,控制器110’包括中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115。图5所示非易失性存储器装置500、控制器110’、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115可以参照图1所示非易失性存储器装置100、控制器110、非易失性存储器120、中央处理单元111、存储器控制电路112、存储器缓冲器113与ECC电路115的相关说明来类推,故不再赘述。在图5所示实施例中,数据分类电路114已被省略,而数据分类电路114的功能可以利用固件和/或软件方式实现于中央处理单元111中。因此,图3与图4的相关说明也可以适用于图5所示非易失性存储器装置500。
综上所述,本发明诸实施例所提供的非易失性存储器装置及其地址分类方法,其使用了一个数据查找表,以便对主机10的冷热数据进行分类。此数据查找表包括多个数据项目,而每一个数据项目包括逻辑地址信息、计数器值Vc与计时器值Vt。上述诸实施例揭示一种即时方案(on-the-fly approach),其可以根据数据逻辑块地址的写入频率(计数器值Vc)和最近被存取状况(计时器值Vt)来获得写入工作负荷变化。依据写入命令的逻辑地址可以从数据查找表中查找出对应计数器值与对应计时器值。控制器可以检查对应计数器值与对应计时器值,来决定写入命令的逻辑地址是否为热数据地址。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。

Claims (24)

1.一种非易失性存储器装置,包括:
非易失性存储器;以及
控制器,耦接至该非易失性存储器,用以进行地址分类方法来决定来自主机的写入命令的逻辑地址是否为热数据地址,以及依照该写入命令而存取该非易失性存储器,其中该地址分类方法包括:提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;由该控制器依据该写入命令的该逻辑地址而查找该数据查找表,以获得对应计数器值与对应计时器值;由该控制器依据该对应计数器值与该对应计时器值来决定该写入命令的该逻辑地址是否为热数据地址;以及由该控制器依据该写入命令的该逻辑地址来更新该数据查找表的对应计数器值与对应计时器值。
2.如权利要求1所述的非易失性存储器装置,其中当该对应计数器值超出预设范围且该对应计时器值为第一逻辑态时,该控制器将该写入命令的该逻辑地址判定为热数据地址,以及当该对应计数器值不超出该预设范围且该对应计时器值为第二逻辑态时,该控制器将该写入命令的该逻辑地址判定为冷数据地址。
3.如权利要求2所述的非易失性存储器装置,其中当该对应计数器值超出该预设范围且该对应计时器值为该第二逻辑态时,该控制器将该写入命令的该逻辑地址判定为次热数据地址,以及当该对应计数器值不超出该预设范围且该对应计时器值为该第一逻辑态时,该控制器将该写入命令的该逻辑地址判定为次冷数据地址。
4.如权利要求1所述的非易失性存储器装置,其中当该数据查找表中的对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,该控制器将该对应数据项目的该对应计数器值累进加一,以及将该对应数据项目的该对应计时器值设置为第一逻辑态。
5.如权利要求4所述的非易失性存储器装置,其中每隔一预设时间,该控制器将这些数据项目的这些计数器值分别除以一参数,以及将这些数据项目的这些计时器值重置为第二逻辑态。
6.如权利要求4所述的非易失性存储器装置,其中当该对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,该控制器对该对应数据项目启动计时操作;当该计时操作的计时结果已达预设时间时,该控制器停止该计时操作,将该对应数据项目的该对应计数器值除以一参数,以及将该对应数据项目的该对应计时器值重置为第二逻辑态。
7.如权利要求6所述的非易失性存储器装置,其中当在该计时操作的该计时结果达到该预设时间之前来自该主机的另一写入命令的逻辑地址吻合该对应数据项目的该逻辑地址信息时,该控制器重置该对应数据项目的该计时操作的该计时结果,将该对应数据项目的该对应计数器值累进加一,以及将该对应数据项目的该对应计时器值设置为该第一逻辑态。
8.如权利要求1所述的非易失性存储器装置,其中当该数据查找表中的所有数据项目的这些逻辑地址信息皆不吻合该写入命令的该逻辑地址时,该控制器将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表中,其中该新数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址,该新数据项目的该计数器值被设置为1,以及该新数据项目的该计时器值被设置为第一逻辑态。
9.如权利要求1所述的非易失性存储器装置,其中当该数据查找表中的所有数据项目的这些逻辑地址信息皆不吻合该写入命令的该逻辑地址时,该控制器依据随机值或伪随机值而决定是否将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表中,其中该新数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址,该新数据项目的该计数器值被设置为1,以及该新数据项目的该计时器值被设置为第一逻辑态。
10.如权利要求1所述的非易失性存储器装置,其中当该控制器决定将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表且该数据查找表已满时,该控制器从该数据查找表的这些数据项目中选择并删除可移除数据项目,其中该可移除数据项目的该计数器值不超出预设范围,且该可移除数据项目的该计时器值为第二逻辑态。
11.如权利要求1所述的非易失性存储器装置,其中该控制器将该数据查找表的这些数据项目中具有该计数器值不超出预设范围且该计时器值为第二逻辑态的所有数据项目加入移除候选清单,当该控制器决定将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表且该数据查找表已满时,该控制器从该移除候选清单中选择可移除数据项目,以及从该数据查找表与该移除候选清单中移除该可移除数据项目。
12.如权利要求11所述的非易失性存储器装置,其中当该移除候选清单中的对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,该控制器从该移除候选清单中移除该对应数据项目,将该数据查找表中的该对应数据项目的该对应计数器值累进加一,以及将该数据查找表中的该对应数据项目的该对应计时器值设置为第一逻辑态。
13.一种非易失性存储器装置的地址分类方法,以决定来自主机的写入命令的逻辑地址是否为热数据地址,所述地址分类方法包括:
提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;
由控制器依据该写入命令的该逻辑地址而查找该数据查找表,以获得对应计数器值与对应计时器值;
由该控制器依据该对应计数器值与该对应计时器值来决定该写入命令的该逻辑地址是否为热数据地址;以及
由该控制器依据该写入命令的该逻辑地址来更新该数据查找表的对应计数器值与对应计时器值。
14.如权利要求13所述的地址分类方法,其中所述决定该写入命令的该逻辑地址是否为热数据地址的步骤包括:
当该对应计数器值超出预设范围且该对应计时器值为第一逻辑态时,由该控制器将该写入命令的该逻辑地址判定为热数据地址;以及
当该对应计数器值不超出该预设范围且该对应计时器值为第二逻辑态时,由该控制器将该写入命令的该逻辑地址判定为冷数据地址。
15.如权利要求14所述的地址分类方法,其中所述决定该写入命令的该逻辑地址是否为热数据地址的步骤还包括:
当该对应计数器值超出该预设范围且该对应计时器值为该第二逻辑态时,该控制器将该写入命令的该逻辑地址判定为次热数据地址;以及
当该对应计数器值不超出该预设范围且该对应计时器值为该第一逻辑态时,该控制器将该写入命令的该逻辑地址判定为次冷数据地址。
16.如权利要求13所述的地址分类方法,还包括:
当该数据查找表中的对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,由该控制器将该对应数据项目的该对应计数器值累进加一,以及将该对应数据项目的该对应计时器值设置为第一逻辑态。
17.如权利要求16所述的地址分类方法,还包括:
每隔一预设时间,由该控制器将这些数据项目的这些计数器值分别除以一参数,以及将这些数据项目的这些计时器值重置为第二逻辑态。
18.如权利要求16所述的地址分类方法,还包括:
当该对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,由该控制器对该对应数据项目启动计时操作;以及
当该计时操作的计时结果已达预设时间时,由该控制器停止该计时操作,将该对应数据项目的该对应计数器值除以一参数,以及将该对应数据项目的该对应计时器值重置为第二逻辑态。
19.如权利要求18所述的地址分类方法,还包括:
当在该计时操作的该计时结果达到该预设时间之前来自该主机的另一写入命令的逻辑地址吻合该对应数据项目的该逻辑地址信息时,由该控制器重置该对应数据项目的该计时操作的该计时结果,将该对应数据项目的该对应计数器值累进加一,以及将该对应数据项目的该对应计时器值设置为该第一逻辑态。
20.如权利要求13所述的地址分类方法,还包括:
当该数据查找表中的所有数据项目的这些逻辑地址信息皆不吻合该写入命令的该逻辑地址时,由该控制器将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表中,其中该新数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址,该新数据项目的该计数器值被设置为1,以及该新数据项目的该计时器值被设置为第一逻辑态。
21.如权利要求13所述的地址分类方法,还包括:
当该数据查找表中的所有数据项目的这些逻辑地址信息皆不吻合该写入命令的该逻辑地址时,由该控制器依据随机值或伪随机值而决定是否将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表中,其中该新数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址,该新数据项目的该计数器值被设置为1,以及该新数据项目的该计时器值被设置为第一逻辑态。
22.如权利要求13所述的地址分类方法,还包括:
当该控制器决定将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表且该数据查找表已满时,由该控制器从该数据查找表的这些数据项目中选择并删除可移除数据项目,其中该可移除数据项目的该计数器值不超出预设范围,且该可移除数据项目的该计时器值为第二逻辑态。
23.如权利要求13所述的地址分类方法,还包括:
由该控制器将该数据查找表的这些数据项目中具有该计数器值不超出预设范围且该计时器值为第二逻辑态的所有数据项目加入移除候选清单;以及
当该控制器决定将该写入命令的该逻辑地址所对应的新数据项目加入该数据查找表且该数据查找表已满时,由该控制器从该移除候选清单中选择可移除数据项目,以及从该数据查找表与该移除候选清单中移除该可移除数据项目。
24.如权利要求23所述的地址分类方法,还包括:
当该移除候选清单中的对应数据项目的该逻辑地址信息吻合该写入命令的该逻辑地址时,由该控制器从该移除候选清单中移除该对应数据项目,将该数据查找表中的该对应数据项目的该对应计数器值累进加一,以及将该数据查找表中的该对应数据项目的该对应计时器值设置为第一逻辑态。
CN201611101194.XA 2016-10-07 2016-12-05 非易失性存储器装置及其地址分类方法 Active CN106897026B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/287,743 2016-10-07
US15/287,743 US10733107B2 (en) 2016-10-07 2016-10-07 Non-volatile memory apparatus and address classification method thereof
TW105134260A TWI652570B (zh) 2016-10-07 2016-10-24 非依電性記憶體裝置及其位址分類方法
TW105134260 2016-10-24

Publications (2)

Publication Number Publication Date
CN106897026A CN106897026A (zh) 2017-06-27
CN106897026B true CN106897026B (zh) 2020-02-07

Family

ID=59198701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611101194.XA Active CN106897026B (zh) 2016-10-07 2016-12-05 非易失性存储器装置及其地址分类方法

Country Status (1)

Country Link
CN (1) CN106897026B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542358A (zh) * 2018-12-03 2019-03-29 浪潮电子信息产业股份有限公司 一种固态硬盘冷热数据分离方法、装置及设备
TWI754206B (zh) * 2020-01-10 2022-02-01 祥碩科技股份有限公司 資料儲存系統、資料儲存裝置及其管理方法
US20220171713A1 (en) * 2020-11-30 2022-06-02 Micron Technology, Inc. Temperature-aware data management in memory sub-systems
CN114185486A (zh) * 2021-11-17 2022-03-15 深圳市德明利技术股份有限公司 一种dram存储器的数据写入方法和dram控制系统
CN117055820B (zh) * 2023-10-09 2024-02-09 苏州元脑智能科技有限公司 一种固态硬盘的命令处理方法、固态硬盘和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
CN103455283A (zh) * 2013-08-19 2013-12-18 华中科技大学 一种混合存储系统
CN103631538A (zh) * 2013-12-05 2014-03-12 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
CN103699492A (zh) * 2012-09-27 2014-04-02 擎泰科技股份有限公司 非易失性存储器的数据收集方法
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
CN104133774A (zh) * 2013-05-02 2014-11-05 擎泰科技股份有限公司 管理非易失性存储器的方法及其非易失性存储装置
CN104731717A (zh) * 2013-12-19 2015-06-24 旺宏电子股份有限公司 存储器装置及存储器管理方法
CN105556485A (zh) * 2013-04-04 2016-05-04 爱思开海力士有限公司 基于相邻体和基于动态热阈值的热数据识别
WO2016135955A1 (ja) * 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9612964B2 (en) * 2014-07-08 2017-04-04 International Business Machines Corporation Multi-tier file storage management using file access and cache profile information

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
CN103699492A (zh) * 2012-09-27 2014-04-02 擎泰科技股份有限公司 非易失性存储器的数据收集方法
CN105556485A (zh) * 2013-04-04 2016-05-04 爱思开海力士有限公司 基于相邻体和基于动态热阈值的热数据识别
CN104133774A (zh) * 2013-05-02 2014-11-05 擎泰科技股份有限公司 管理非易失性存储器的方法及其非易失性存储装置
CN103455283A (zh) * 2013-08-19 2013-12-18 华中科技大学 一种混合存储系统
CN103631538A (zh) * 2013-12-05 2014-03-12 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
CN104731717A (zh) * 2013-12-19 2015-06-24 旺宏电子股份有限公司 存储器装置及存储器管理方法
CN103810113A (zh) * 2014-01-28 2014-05-21 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存系统
WO2016135955A1 (ja) * 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス

Also Published As

Publication number Publication date
CN106897026A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN107025071B (zh) 非易失性存储器装置及其垃圾收集方法
CN106897026B (zh) 非易失性存储器装置及其地址分类方法
US8725936B2 (en) Storage system with flash memory, and storage control method
EP2439645A1 (en) Method and apparatus for storing data in a multi-level cell flash memory device
KR102411329B1 (ko) 디코딩 성공 추세에 기초한 조정가능한 판독 재시도 순서
TWI660346B (zh) 記憶體管理方法以及儲存控制器
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
US9740630B2 (en) Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices
US8706953B2 (en) Data storage device and method performing background operation with selected data compression
US10282126B2 (en) Information processing apparatus and method for deduplication
US10289559B2 (en) Non-volatile memory apparatus and operating method thereof
US20140372673A1 (en) Information processing apparatus, control circuit, and control method
CN112506814A (zh) 一种存储器及其控制方法与存储系统
CN107102953B (zh) 非易失性存储器装置及其迭代排序方法
JP7308025B2 (ja) 集積回路装置及びストレージ装置
TWI652570B (zh) 非依電性記憶體裝置及其位址分類方法
TWI501244B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
KR20190048453A (ko) 저장 장치 및 메모리 시스템
US9880930B2 (en) Method for operating controller and method for operating device including the same
TWI594253B (zh) 非依電性記憶體裝置及其空頁偵測方法
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置
US11307766B2 (en) Apparatus and method and computer program product for programming flash administration tables
TWI670599B (zh) 記憶體管理方法以及儲存控制器
US20230409203A1 (en) Memory system and read method
TW202321921A (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant