非易失性存储器装置及其地址分类方法与流程

文档序号:12732957阅读:188来源:国知局
本发明涉及一种存储器装置,且特别涉及一种非易失性存储器装置及其地址分类方法。
背景技术
:与传统的硬盘驱动(harddiskdrives)相比,由于快闪存储器(flash)存储设备的读/写性能佳且功耗低,使得快闪存储器被广泛应用于数据存储系统中。然而,将数据写入快闪存储器的关键因素是写入放大(WriteAmplification,WA)。写入放大影响快闪存储器的性能和耐久性。当主机对快闪存储器存储设备发出写入动作/指令时,快闪存储器存储设备会将此主机写入动作/指令转化(或解码)为多个内部写入动作/指令。所述“将一个主机写入动作/指令转化为多个内部写入动作/指令”即为写入放大。写入放大主要是为了内部写入操作,例如垃圾收集(garbagecollection)、磨损平衡(wearleveling)和/或其他管理性写入操作,以便管理数据更新和存储耐久性(storageendurance)。写入放大也取决于写入工作负荷(writeworkloads)。在实际写入工作负荷中,通常有一些数据被更频繁地更新。这些被频繁更新的数据通常被称为热数据(hotdata)。其他数据的更新可能较不频繁。更新较不频繁的数据通常被称为冷数据(colddata)。将冷数据与热数据混合在一起写入相同的记忆块中,其往往导致更高的写入放大。因此,在将主机的数据写入快闪存储器前,快闪存储器存储设备需要分辨主机的数据是否为热数据。技术实现要素:本发明提供一种非易失性存储器装置及其地址分类方法,其可以分辨来自主机的写入命令的逻辑地址是否为热数据地址。本发明的实施例提供一种非易失性存储器装置。非易失性存储器装置包括非易失性存储器以及控制器。控制器耦接至非易失性存储器。控制器可以进行地址分类方法,来决定来自主机的写入命令的逻辑地址是否为热数据地址。控制器依照主机的写入命令而存取非易失性存储器。其中,地址分类方法包括:提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;依据写入命令的逻辑地址而查找数据查找表,以获得对应计数器值与对应计时器值;以及依据对应计数器值与对应计时器值来决定写入命令的逻辑地址是否为热数据地址。本发明的实施例提供一种非易失性存储器装置的地址分类方法,以决定来自主机的写入命令的逻辑地址是否为热数据地址。所述地址分类方法包括:提供数据查找表,其中该数据查找表包括多个数据项目,每一个数据项目包括逻辑地址信息、计数器值与计时器值;由控制器依据写入命令的逻辑地址而查找数据查找表,以获得对应计数器值与对应计时器值;以及由控制器依据对应计数器值与对应计时器值来决定写入命令的逻辑地址是否为热数据地址。基于上述,本发明实施例所提供的非易失性存储器装置及其地址分类方法,其使用了一个数据查找表,其中此数据查找表包括多个数据项目,而每一个数据项目包括逻辑地址信息、计数器值与计时器值。依据写入命令的逻辑地址可以从数据查找表中查找出对应计数器值与对应计时器值。控制器可以检查对应计数器值与对应计时器值,来决定写入命令的逻辑地址是否为热数据地址。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图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可以是随身碟、固态硬盘(solidstatedisc,SSD)或是其他存储装置。非易失性存储器装置100可以耦接至主机(host)10。此主机10可以是计算机、手持式电话、多媒体播放器、相机或是其他电子装置。非易失性存储器装置100包括控制器110以及非易失性存储器120。依照设计需求,非易失性存储器120可以是与非快闪存储器(NANDflashmemory)或是其他非易失性存储电路/元件。控制器110耦接至该非易失性存储器。控制器110可以依照主机10的写入命令(writecommand)而存取非易失性存储器120。当主机10发出一个写入命令给非易失性存储器装置100时,控制器110可以进行“地址分类方法”,来决定来自主机10的写入命令的逻辑地址是否为热数据(hotdata)地址。所谓“热数据”是指近期很可能被修改的数据。在写入命令的逻辑地址被判定为热数据地址(或者不是热数据地址)后,控制器110可以依据判定结果,以及依据此写入命令的逻辑地址,来将主机10的数据写入非易失性存储器120。因为在将数据写入非易失性存储器120的过程中,“所写入数据是否为热数据”已被考虑,因此可以有效降低写入放大(WriteAmplification,WA)。例如,基于热数据地址的判定而将冷数据与热数据分别写入非易失性存储器120不同的记忆块中,因此垃圾回收操作(garbagecollectionoperation)的效率可以被提升。换句话说,上述控制器110所进行的“地址分类方法”,也可被视为“(冷)热数据识别方法”,控制器110能从主机10发出的写入命令的逻辑地址识别出主机即将要写入的数据是否为(冷)热数据,并进行相应处理。在图1所示实施例中,控制器110包括中央处理单元111、存储器控制电路112、存储器缓冲器113、数据分类电路114与错误检查纠正(ErrorCheckingandCorrecting,以下称ECC)电路115。中央处理单元111经由通信接口耦接至主机10。依照设计需求,所述通信接口包括小型计算机系统接口(smallcomputersysteminterface,SCSI)、串行连接小型计算机系统接口(SerialAttachedSCSI,SAS)、增强型小型装置接口(EnhancedSmallDiskInterface,ESDI)、串行先进技术连接(serialadvancedtechnologyattachment,SATA)、快速周边元件互连(peripheralcomponentinterconnectexpress,PCI-express)、整合式电子装置(integrateddriveelectronics,IDE)接口、通用串行总线(universalserialbus,USB)、雷电(Thunderbolt)接口或其他接口。本实施例并没有限制主机10与非易失性存储器装置100之间的接口结构。当主机10发出写入命令时,待写入的数据可以被暂存于存储器缓冲器113,而中央处理单元111可以将主机10的写入命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址),并将内部控制信号提供给存储器控制电路112和/或存储器缓冲器113。存储器缓冲器113的例子包括动态随机存取存储器(dynamicrandomaccessmemory,DRAM)、静态随机存取存储器(staticrandomaccessmemory,SRAM)或是其他易失性存储器(volatilememory)。ECC电路115可以执ECC算法,以便将暂存于存储器缓冲器113的数据加以编码为码字(codeword)。在一些实施例中,ECC电路115可以执行BCH(Bose-Chaudhuri-Hocquengh)码算法、低密度奇偶校验(LowDensityParityCheck,LDPC)码算法或是其他ECC算法。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便码字写入非易失性存储器120。当主机10发出读取命令时,中央处理单元111可以将主机10的读取命令(包含逻辑地址)转换/解码为对应的内部控制信号(包含非易失性存储器120的物理地址)。依照内部控制信号,存储器控制电路112可以定址/控制非易失性存储器120,以便将非易失性存储器120内的码字读出。ECC电路115可以执行ECC算法,以便将码字解码为数据,并将经解码的数据暂存于存储器缓冲器113。然后,中央处理单元111可以将暂存于存储器缓冲器113的数据回传给主机10。图2是依照本发明一实施例说明一种地址分类方法的流程示意图。请参照图1与图2,数据分类电路114可以在步骤S210中提供数据查找表(datalook-uptable),所述数据查找表可以快速暂存(cache)一组或多组数据项目信息(dataentryinformation),以识别热数据。其中,所述数据查找表包括多个数据项目,而每一个数据项目各自包括逻辑地址信息、计数器(counter)值与计时器(timer)值。在一些实施例中,所述逻辑地址信息可以是逻辑块地址(logicalblockaddress,LBA)或是其他逻辑地址。中央处理单元111可以直接使用主机10的写入命令的逻辑块地址而在所述数据查找表寻找具有相同逻辑块地址的数据项目。在另一些实施例中,所述逻辑地址信息可以是一种具唯一性的识别码。中央处理单元111可以将主机10的写入命令的逻辑地址转换为对应的识别码,然后使用此对应的识别码而在所述数据查找表寻找具有相同识别码的数据项目。在主机10发出写入命令(步骤S220)后,中央处理单元111可以依据写入命令的逻辑地址查找数据分类电路114的所述数据查找表,以获得对应的数据项目(步骤S230)。中央处理单元111可以从所述对应的数据项目中获得对应计数器值与对应计时器值。计数器值用于追踪某一个逻辑地址的数据频率信息(datafrequencyinformation),亦即这个逻辑地址的被写入频率。计时器值用于追踪某一个逻辑地址的数据是否最近被存取,亦即这个逻辑地址在目前时间窗中是否曾被更新数据。因此,控制器111可以在步骤S240中依据对应计数器值与对应计时器值来决定主机10的写入命令的逻辑地址是否为热数据地址。图3是依照本发明另一实施例说明一种地址分类方法的流程示意图。图3所示步骤S210、步骤S220、步骤S230与步骤S240可以参照图2的相关说明来类推,故不再赘述。请参照图1与图3,在主机10发出写入命令(步骤S220)后,中央处理单元111可以将写入命令的逻辑块地址映射/转换到逻辑地址信息(步骤S310)。例如,写入命令的逻辑块地址可以被映射/转换到对应的识别码,然后中央处理单元111可以使用此对应的识别码而在数据分类电路114的所述数据查找表寻找具有相同识别码的数据项目。“将写入命令的逻辑块地址映射到对应的识别码”可以通过多级哈希函数(hashfunctions)或其他转换函数来实现,以减少搜寻的负担。中央处理单元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可以依据随机值或伪随机(PseudoRandom)值而决定是否将主机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)。为了随时获得写入工作负荷(writeworkloads)的变化,对于存储在这个数据查找表的所有数据项目,每隔一预设时间,数据分类电路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的相关功能可以利用一般的编程语言(programminglanguages,例如C或C++)、硬件描述语言(hardwaredescriptionlanguages,例如VerilogHDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。可执行所述相关功能的软件(或固件)可以被布置为任何已知的计算机可存取介质(computer-accessiblemedias),例如磁带(magnetictapes)、半导体(semiconductors)存储器、磁盘(magneticdisks)或光盘(compactdisks,例如CD-ROM或DVD-ROM),或者可通过互联网(Internet)、有线通信(wiredcommunication)、无线通信(wirelesscommunication)或其它通信介质传送所述软件(或固件)。所述软件(或固件)可以被存放在计算机的可存取介质中,以便于由计算机的处理器来存取/执行所述软件(或固件)的编程代码(programmingcodes)。另外,本发明的装置和方法可以通过硬件和软件的组合来实现。举例来说,在另一实施例中,数据分类电路114的例子包括动态随机存取存储器(dynamicrandomaccessmemory,DRAM)、静态随机存取存储器(staticrandomaccessmemory,SRAM)或是其他易失性存储器(volatilememory)。数据分类电路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-flyapproach),其可以根据数据逻辑块地址的写入频率(计数器值Vc)和最近被存取状况(计时器值Vt)来获得写入工作负荷变化。依据写入命令的逻辑地址可以从数据查找表中查找出对应计数器值与对应计时器值。控制器可以检查对应计数器值与对应计时器值,来决定写入命令的逻辑地址是否为热数据地址。虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1