一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据处理方法及对应的数据储存装置与流程

2022-02-19 05:31:24 来源:中国专利 TAG:

1.本发明有关于一种可有效改善存储器装置的存取效能的数据处理方法及对应的数据储存装置。
背景技术
:2.随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合安全数位(securedigital,缩写为sd)/多媒体卡(multimediacard,缩写为mmc)规格、复合式快闪存储器(compactflash,缩写为cf)规格、记忆条(memorystick,缩写为ms)规格与极数位(extremedigital,缩写为xd)规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedmultimediacard,缩写为emmc)以及通用快闪存储器储存(universalflashstorage,缩写为ufs)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。3.为了辅助数据储存装置的存取操作,数据储存装置端可建立并维护一或多个映射表格,用以记录实体地址与逻辑地址间的映射关系。逻辑地址为由连接数据储存装置的一主机装置所使用的地址,主机装置可利用逻辑地址识别不同的记忆空间。实体地址为数据储存装置所使用的地址,数据储存装置可利用实体地址识别不同的记忆空间。存储器控制器根据存储器装置的存取操作管理这些映射表格。4.响应于带有欲读取的逻辑地址的一读取指令,存储器控制器必须查找映射表格,以取得储存欲读取的逻辑地址的数据的实体地址。然而,表格的查找或搜寻通常为较耗时的操作。此外,表格大小通常会随着存储器装置的容量增加而增加。因此,在映射表格中查找或搜索所需的时间会随着映射表格的大小增加而大幅增加。5.为解决此问题并且改善存储器装置的读取速度,需要一种可有效处理存储器装置所储存的数据并改善存储器装置存取效能的数据处理方法。技术实现要素:6.本发明的一目的在于解决前述问题,并且改善存储器装置的读取速度。7.根据本发明的一实施例,一种数据储存装置包括一存储器装置与一存储器控制器。存储器装置包括多个存储器区块,存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域。存储器控制器耦接至存储器装置,用以存取存储器装置,并且响应于由一主机装置发出的一读取指令更新一读取次数表格的内容,其中读取指令带有大于1的一传输长度,以选定一个以上要被读取的逻辑地址。读取次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的一读取次数,并且存储器控制器藉由增加于读取指令中选定的逻辑地址所属之一或多个子区域所对应之一或多个读取次数更新读取次数表格的内容。存储器控制器还根据读取次数表格的内容选择至少一个子区域,并且执行一数据重排程序用以将属于被选择的至少一个子区域的逻辑地址的数据搬移至存储器装置中具有连续实体地址的一第一记忆空间。8.根据本发明的另一实施例,一种数据处理方法,适用于一数据储存装置,其中数据储存装置包括一存储器装置与一存储器控制器,存储器装置包括多个存储器区块,存储器区块对应于多个逻辑单元,各逻辑单元分别对应于多个逻辑地址,各逻辑单元所对应的逻辑地址被划分为多个区域,并且各区域进一步被划分为多个子区域,存储器控制器耦接至存储器装置,用以存取存储器装置,数据处理方法由存储器控制器所执行并包括:建立一读取次数表格,并且响应于由一主机装置发出的一读取指令更新读取次数表格的内容,其中读取指令带有大于1的一传输长度,以选定一个以上要被读取的逻辑地址,读取次数表格包括多个栏位,各栏位用以记录相关联的一子区域所对应的一读取次数,并且读取次数表格的内容藉由增加于读取指令中选定的逻辑地址所属之一或多个子区域所对应之一或多个读取次数而被更新;根据读取次数表格的内容选择至少一个子区域;以及执行一数据重排程序,用以将属于被选择的至少一个子区域的逻辑地址的数据搬移至存储器装置中具有连续实体地址的一第一记忆空间。附图说明9.图1是显示根据本发明的一实施例所述的数据储存装置的方块图范例。10.图2是显示逻辑单元与其对应的逻辑区块地址的一个范例。11.图3是显示于主机控制模式下可有的操作。12.图4是显示于装置控制模式下可有的操作。13.图5是显示hpb项目的一个范例格式。14.图6是显示hpb项目的另一个范例格式。15.图7是显示hpb读取指令的对应操作。16.图8是显示根据本发明的第一实施例所述的数据处理方法流程图。17.图9是显示根据本发明的第二实施例所述的数据处理方法流程图。18.图10是显示根据本发明的第三实施例所述的数据处理方法流程图。19.图11是显示根据本发明的一实施例所述的数据重排程序的操作。20.【符号说明】21.100:数据储存装置22.110:存储器控制器23.112:微处理器24.112c:程序码25.112m:只读存储器26.114:存储器接口27.116:缓冲存储器28.118:主机接口29.120:存储器装置30.130:主机装置31.132:编码器32.134:解码器loader)程序码。当数据储存装置100自主机装置130取得电源时,微处理器112可藉由执行程序码112c执行数据储存装置100的一初始化程序。于初始化程序中,微处理器112可自存储器装置120载入一组系统内编程(in‑systemprogramming,缩写为isp)程序码(未示于图1)。微处理器112可执行该组系统内编程程序码,使得数据储存装置100可具备各种功能。根据本发明的一实施例,该组系统内编程程序码可包括,但不限于:一或多个与存储器存取(例如,读取、写入与抹除)相关的程序模组,例如一读取操作模组、一查找表格模组、一损耗均衡(wearleveling)模组、一读取刷新(readrefresh)模组、一读取回收(readreclaim)模组、一垃圾回收模组、一非预期断电恢复(suddenpoweroffrecovery,缩写为spor)模组、以及一不还可正错误更正码(uncorrectableerrorcorrectioncode,缩写为uecc)模组,其分别被提供用以执行对应的读取、查找表格、损耗均衡、读取刷新、读取回收、垃圾回收、非预期断电恢复以及对侦测到的uecc错误进行错误处理等操作。45.存储器接口114包含了一编码器132以及一解码器134,其中编码器132用来对需被写入存储器装置120的数据进行编码,例如执行错误更正码(ecc)编码,而解码器134用来对从存储器装置120所读出的数据进行解码。46.于典型状况下,存储器装置120包含了多个记忆元件,例如多个快闪存储器晶粒或多个快闪存储器晶片,各记忆元件可包含多个存储器区块(block)。存储器控制器110对存储器装置120进行抹除数据运作以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(page),例如,实体数据页,其中存储器控制器110对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。47.实作上,存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用存储器接口114来控制存储器装置120的存取运作(尤其是对至少一存储器区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用主机接口118来与主机装置130沟通。48.在一实施例中,存储器控制器110透过主机接口118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用序列总线(universalserialbus,缩写为usb)标准、sd接口标准、超高速一代(ultrahighspeed‑i,缩写为uhs‑i)接口标准、超高速二代(ultrahighspeed‑ii,缩写为uhs‑ii)接口标准、cf接口标准、mmc接口标准、emmc接口标准、ufs接口标准、高技术组态(advancedtechnologyattachment,缩写为ata)标准、序列高技术组态(serialata,缩写为sata)标准、快捷外设互联标准(peripheralcomponentinterconnectexpress,缩写为pci‑e)标准、并列先进附件(paralleladvancedtechnologyattachment,缩写为pata)标准等。49.在一实施例中,缓冲存储器116是以随机存取存储器来实施。例如,缓冲存储器116可以是静态随机存取存储器,但本发明亦不限于此。于其他实施例中,缓冲存储器116可以是动态随机存取存储器。50.在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合sd/mmc、cf、ms、xd标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合ufs或emmc规格的嵌入式储存装置,并且可被设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。51.主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者主机装置130可对数据储存装置100发出指令以进一步控制、管理数据储存装置100。52.存储器装置120可储存一全域逻辑至实体(logicaltophysical,缩写为l2p)(或称主机至快闪存储器(hosttoflash,缩写为h2f))映射表格,供存储器控制器110存取存储器装置120的数据时使用。全域l2p映射表格可位于存储器装置120的一既定区域,例如一系统区域,但本发明并不限于此。全域l2p映射表格可被分为多个区域l2p映射表格,区域l2p映射表格可被储存于相同或不同的记忆元件内。例如,一记忆元件可储存一个区域l2p映射表格。于需要时,存储器控制器110可将全域l2p映射表格的至少一部分(例如,一部分或全部)载入缓冲存储器116或其他存储器内。例如,存储器控制器110可载入一区域l2p映射表格作为一暂时的l2p映射表格,用以根据此区域l2p映射表格存取存储器装置120的数据,但本发明并不限于此。53.为了改善读取效能,近期已发布了主机性能增强器(hostperformancebooster,缩写为hpb)系列标准。hpb利用主机装置端的一个存储器装置(例如,主机装置130的dram)暂存于ufs装置端(例如,依循ufs规格实施的数据储存装置100)所维护的映射资讯。所述映射资讯可自前述的全域或区域l2p映射表格中取得。借助此映射资讯,主机装置130可发出带有主机装置130所欲读取的逻辑地址(例如,逻辑区块地址(logicalblockaddresses,缩写为lbas)所对应的实体地址的相关资讯(例如,实体区块地址(physicalblockaddresses,缩写为pbas)的特定读取指令(以下称为hpb读取(hpbread)指令)以读取数据,其中所述实体地址的相关资讯可被承载于一或多个hpb项目(hpbentry)中。如此一来,存储器控制器110可节省自存储器装置120读取及载入全域或区域l2p映射表格所花费的时间,以及节省于载入的l2p映射表格中搜寻出主机装置130所欲读取的逻辑地址所对应的实体地址所花费的时间。藉此,读取效能可被改善。54.一般而言,存储器装置120可被划分为多个分区,各分区可被视为一个逻辑单元,且各逻辑单元可对应于多个逻辑区块地址。图2是显示逻辑单元200与其对应的逻辑区块地址的一个范例。如hpb规格所定义,各逻辑单元所对应的逻辑区块地址(例如,逻辑区块地址lba0~lbaz,其中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区域简称为区域。55.于本发明的实施例中,有两种取得hpb项目的模式,包括主机控制模式与装置控制模式。56.图3为一示意图,用以显示于主机控制模式下可有的操作。于主机控制模式下,主机系统(例如,主机装置130)可确认要被活化(activate)的新的子区域(操作a‑1),并发出一hpb读取缓冲(hpbreadbuffer)指令(操作a‑2),以请求要被活化的子区域所对应的hpb项目。响应于hpb读取缓冲指令的接收,ufs装置(例如,存储器控制器110)可自存储器装置120读取l2p映射表格的至少一部分(例如,读取全域l2p映射表格或区域l2p映射表格),该部分是对应于选定要被活化的子区域,并且根据l2p映射表格所记录的映射资讯提供hpb项目(操作a‑3)。ufs装置接着可透过送入数据(datain)的通用快闪存储器储存通讯协定资讯单元(ufsprotocolinformationunit,缩写为upiu)封包将hpb项目传送至主机系统(操作a‑4)。主机系统可于系统存储器内配置一hpb区域(亦可称为hpb快取区),用以储存hpb项目(操作a‑5)。57.主机系统亦可确认要被去活化(deactivate)的区域(操作b‑1),并发出一hpb写入缓冲(hpbwritebuffer)指令,以请求将一区域去活化(操作b‑2)。ufs装置可响应于hpb写入缓冲指令的接收将对应的区域去活化(操作b‑3)。58.此外,当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装置接着可透过送入数据的通用快闪存储器储存通讯协定资讯单元(datainupiu)封包将hpb项目传送至主机系统(操作c‑6)。主机系统可根据接收到的资讯更新hpb快取区内所储存的hpb项目(操作c‑7)。59.图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装置接着可透过送入数据的通用快闪存储器储存通讯协定资讯单元(datainupiu)封包将hpb项目传送至主机系统(操作d‑6)。主机系统可于系统存储器内配置一hpb区域(亦可称为hpb快取区),用以储存hpb项目(操作d‑7)。60.图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的实体地址。61.由于当一管理表格(例如,全域或区域l2p映射表格)的内容(例如,映射资讯)需被更新时,存储器控制器110可配置另一个存储器空间储存此管理表格更新后的内容,因此,当由一逻辑区块地址所映射的实体区块地址改变时,不仅t1表格的内容需要修改,t1表格的更新内容也会被储存于存储器装置120的另一个新的储存空间。因此,系统表格内所记录的t1表格所对应的实体地址也会随之改变。如此一来,hpb项目内所记载的t2表格的内容便能用于验证由此hpb项目所对应的一逻辑区块地址所映射的实体区块地址所储存数据是否仍为有效数据。当hpb项目所记载的t2表格内容与存储器控制器110所维护的最新的t1表格的实体地址相符时,代表储存于此hpb项目所记载的实体区块地址(t1表格内容)的数据仍为有效数据。反之,代表储存于此hpb项目所记载的实体区块地址的数据已为无效数据。需注意的是,前述一实体区块地址所储存的数据是否仍为有效数据的验证可由数据储存装置端的存储器控制器110执行。62.以下hpb项目表格1为第一个hpb项目表格范例,其中"…"的标记系表示为了简洁起见而省略一些表格内容。hpb项目表格1中标示的t2表格内容与t1表格内容(例如,十六进制的值)可分别代表自前述t2表格与t1表格取得的内容。t1表格内容栏位中所例示的实体地址{0x0000a000,0x0000a001,…}可做为由与hpb项目{0,1…}相关联的一序列的逻辑地址所映射的实体地址的实例,而反复出现于t2表格内容栏位所记录的一序列实体地址{0x00004030,0x00004030,…}中的实体地址0x00004030则做为t1表格的实体地址的实例,而于此t1表格可以是一区域l2p映射表格。63.hpb项目表格164.hpb项目t2表格内容t1表格内容00x000040300x0000a00010x000040300x0000a00120x000040300x0000a00230x000040300x0000a00340x000040300x0000a00450x000040300x0000a00560x000040300x0000b00970x000040300x0000a00780x000040300x0000a00890x000040300x0000a009100x000040300x0000a00a110x000040300x0000b00a120x000040300x0000a00c………65.图6是显示hpb项目的另一个范例格式。于此范例格式中,28位元用于承载自l2p映射表格(例如,全域或区域l2p映射表格,或者由存储器控制器110载入缓冲存储器116的暂时的l2p映射表格)取得的映射资讯,24位元用于承载全域或区域l2p映射表格实际被储存于快闪存储器内哪个的实体地址的资讯,而剩余的12位元则用于承载相关联的lba的连续性资讯。更具体的说,于图6所示的范例格式中,第一个pba、第二个pba与一lba的连续性资讯可被合并形成一个hpb项目,其中第一个pba为储存于t1表格的实体区块地址,此实体区块地址为前述lba所映射的实体区块地址,第二个pba为储存于t2表格的实体区块地址,此实体区块地址则为t1表格的实体区块地址。于本发明的实施例中,连续性资讯可由能指示出连续长度的一个数值或者一个连续位元表格来表示。66.以下hpb项目表格2为第二个hpb项目表格范例,其中"…"的标记是表示为了简洁起见而省略一些表格内容。t1表格内容栏位中所例示的实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,…}可做为由与hpb项目{0,1…}相关联的一序列的逻辑地址所映射的实体地址的实例,反复出现于t2表格内容栏位所记录的一序列实体地址{0x00004030,0x00004030,…}中的实体地址0x00004030则做为t1表格的实体地址的实例,而于此t1表格可以是一区域l2p映射表格。67.hpb项目表格2[0068][0069][0070]此外,存储器控制器110可分别计算并产生(例如,记录及/或更新)在hpb项目表格所相关联的多个实体地址中,接续在一个hpb项目所对应的实体地址之后的连续实体地址数量,并以此作为前述连续长度。举例而言,对于hpb项目0,存储器控制器110可计算并产生(例如,记录及/或更新)在实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,…}中,接续在实体地址0x000a000之后的连续实体地址(例如,实体地址{0x000a001,…,0x000a005})的数量,作为hpb项目0所对应的连续长度(例如,于此范例为0x5)。对于hpb项目1,存储器控制器110可计算并产生(例如,记录及/或更新)在实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,…}中,接续在实体地址0x000a001之后的连续实体地址{0x000a002,…,0x000a005}的数量,作为hpb项目1所对应的连续长度(例如,于此范例为0x4)。其余项目则以此类推。[0071]以下hpb项目表格3为第三个hpb项目表格范例,其中"…"的标记是表示为了简洁起见而省略一些表格内容。t1表格内容栏位中所例示的实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,…}可做为由与hpb项目{0,1…}相关联的一序列的逻辑地址所映射的实体地址的实例,反复出现于t2表格内容栏位所记录的一序列实体地址{0x00004030,0x00004030,…}中的实体地址0x00004030则做为t1表格的实体地址的实例,而于此t1表格可以是一区域l2p映射表格。[0072]hpb项目表格3[0073][0074][0075]此外,存储器控制器110可分别确认在hpb项目表格所相关联的多个实体地址中,接续在一个hpb项目所对应的实体地址之后的多个实体地址的连续性,以产生可指示出后续多个实体地址的连续性的连续位元表格。举例而言,对于hpb项目0,存储器控制器110可分别确认在实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,0x000a00d,0x000a00e,0x000a00f,…}中,接续在实体地址0x000a000之后的12个实体地址(例如,实体地址{0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c})的连续性,以产生连续位元表格0xbdf,其可指示出后续12个实体地址{0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c}的连续性,连续位元表格以位元展开表示则可为,例如,从最低有效位元(leastsignificantbit,缩写lsb)开始到最高有效位元(mostsignificantbit,缩写msb)的101111011111,其中的第0‑11个位元(例如,从lsb开始的12个位元)可分别指示出后续的12个实体地址{0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c}的连续性。对于hpb项目1,存储器控制器110可分别确认在实体地址{0x000a000,0x000a001,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,0x000a00d,0x000a00e,0x000a00f,…}中,接续在实体地址0x000a001之后的12个实体地址{0x000a002,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,0x000a00d}的连续性,以产生连续位元表格0xdef,其可指示出后续12个实体地址{0x000a002,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,0x000a00d}的连续性,连续位元表格以位元展开表示则可为,例如,从lsb开始到msb的110111101111,其中的第0‑11个位元(例如,从lsb开始的12个位元)可分别指示出后续的12个实体地址{0x000a002,…,0x000a005,0x000b009,0x000a007,…,0x000a00a,0x000b00a,0x000a00c,0x000a00d}的连续性。其余项目则以此类推。[0076]借助hpb项目所提供的资讯,主机装置130可发出前述hpb读取指令,此hpb读取指令可承载主机装置130试图读取的起始逻辑地址、传输长度(transferlength)、以及hpb项目所记载的内容等相关资讯,用以读取数据。图7为一示意图,用以显示hpb读取指令的对应操作。主机系统可自hpb快取区取得所需的hpb项目资讯,并且传送一hpb读取指令给ufs装置(操作e‑1),此hpb读取指令带有一逻辑区块地址lba(例如,起始lba)、此lba所对应的hpb项目内容以及传输长度,并透过hpb读取指令upiu封包传送(操作e‑2)。于一特定实施例中,传输长度可被限定为1,但本发明并不限于此。于本发明的其他实施例中,传输长度可被设定为任意正整数。例如,于hpb2.0标准中,传输长度可被设定为大于1的正整数。于接收到hpb读取指令时,ufs装置可解码此对应于主机系统试图读取的一个选定的lba的hpb项目,以取得此选定的lba所对应的实体地址或pba的相关资讯,并且根据此实体地址或pba的相关资讯存取存储器装置,以取得主机系统试图读取的数据(操作e‑3)。ufs装置可于操作e‑3中判断接收到的hpb项目是否仍为有效。例如,透过前述判断hpb项目所记载的t2表格内容与存储器控制器110所维护的最新的t1表格的实体地址是否相符判断hpb项目是否仍为有效。若hpb项目的内容为有效的,ufs装置可取得主机装置130试图读取的数据(即,图中所示的"逻辑区块数据"),并传送一或多个送入数据的通用快闪存储器储存通讯协定资讯单元(datainupiu)封包至主机系统,以传送此数据(操作e‑4)给主机系统,并且于数据传输完成后传送回应upiu封包(操作e‑5)至主机系统,其中所述"逻辑区块数据"是指主机装置130所选定欲读取的逻辑地址lba所对应的数据。另一方面,若判断接收到的hpb项目为无效的,则ufs装置可略过操作e‑4,直接执行操作e‑5,藉由传送一回应upiu封包至主机系统,以建议主机系统更新对应的hpb项目。[0077]需注意的是,于本发明的一些实施例中,ufs装置端可主动地建议主机系统更新hpb项目,例如,于前述操作c‑2或操作d‑2中ufs装置端藉由传送一回应upiu封包主动地建议主机系统更新hpb项目或建议主机系统活化新的子区域。而于本发明的另一些实施例中,ufs装置端也可不主动地建议主机系统更新hpb项目。于该些实施例中,ufs装置端可改为在判断hpb项目为无效的之后,再藉由传送一回应upiu封包至主机系统,以建议主机系统更新对应的hpb项目。例如,ufs装置于接收到hpb读取指令后,若于前述操作e‑3中判断hpb项目为无效的,透过回应upiu封包建议主机系统更新对应的hpb项目。[0078]由于传输长度可被设定为大于1的正整数,即,主机装置130可试图利用hpb项目的资讯快速读取的一个以上lba的数据,因此,如何改善连续逻辑地址的数据实际被储存于存储器装置120的连续性成为一个值得关注的议题。[0079]于本发明的实施例中,存储器控制器110可记录及/或分析主机装置130的存取行为、根据记录的主机装置130的存取行为选择一或多个要进行数据重整或数据重排的子区域,并且主动地执行一数据重整或数据重排程序,用以将被选择的该至少一个子区域的数据搬移至存储器装置120中具有连续实体地址的一记忆空间(例如,一存储器区块)。[0080]根据本发明的第一实施例,存储器控制器110可建立一活化次数表格(例如,子区域活化次数表格),并且响应于由主机装置130发出的指令维护或更新活化次数表格的内容。活化次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的hpb子区域)所对应的一活化次数。因此,活化次数表格所包含的栏位总数可等于记忆装置120所包含的hpb子区域总数。如上所述,存储器装置120可被划分为多个分区,各分区可被视为一个逻辑单元,且各逻辑单元可对应于多个逻辑区块地址。各逻辑单元所对应的逻辑区块地址可被划分为多个hpb区域,并且各hpb区域可进一步被划分为多个hpb子区域。因此,于本发明的实施例中,各逻辑单元可包括多个区域,并且各区域包括多个子区域。[0081]于本发明的第一实施例中,一子区域所对应的活化次数是用以记录该子区域被主机装置130活化的次数。例如,活化次数可为一计数值,用以计算对应的子区域请求被活化的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的hpb读取缓冲(hpbreadbuffer)指令更新活化次数表格的内容。如上所述,主机系统(例如,主机装置130)可确认要被活化的新的子区域,并发出一hpb读取缓冲指令,以请求要被活化的子区域所对应的hpb项目。因此,一或多个要被活化的子区域会被主机装置130标识于hpb读取缓冲指令,或其相关资讯会被承载于hpb读取缓冲指令中。响应于hpb读取缓冲指令的接收,存储器控制器110可藉由增加hpb读取缓冲指令中标识出的一或多个要被活化的子区域所对应的一或多个活化次数更新活化次数表格的内容(例如,为每次的活化加1)。[0082]根据本发明的一实施例,存储器控制器110还可将活化次数表格中记录的活化次数排序,并且根据排序过的活化次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可选择一或多个活化次数高于一既定值的子区域作为要进行数据重排的子区域。于一实施例中,存储器控制器110可依序根据排序过的活化次数选择出目前活化次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的活化次数自排序过的活化次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。[0083]图8系显示根据本发明的第一实施例所述的数据处理方法流程图。本发明的数据处理方法适用于一数据储存装置,可由存储器控制器110执行并包括以下步骤:[0084]s802:建立一活化次数表格,并且响应于由一主机装置发出的一指令更新活化次数表格的内容。于本发明的实施例中,主机装置会在指令中指出一或多个要被活化的子区域。[0085]s804:根据活化次数表格的内容选择至少一个子区域。[0086]s806:执行一数据重排程序,用以将被选择的至少一个子区域的数据搬移(或者重新写入)至存储器装置中具有连续实体地址的一记忆空间。[0087]需注意的是,第一实施例所述的数据处理方法可被应用于主机控制模式或装置控制模式。[0088]根据本发明的第二实施例,存储器装置110可建立一读取次数表格(例如,子区域读取次数表格),并且响应于由主机装置130发出的读取指令维护或更新读取次数表格的内容,所述读取指令带有至少一个选定的逻辑地址。读取次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的hpb子区域)所对应的一读取次数。因此,读取次数表格所包含的栏位总数可等于记忆装置120所包含的hpb子区域总数。如上所述,存储器装置120可被划分为多个分区,各分区可被视为一个逻辑单元,且各逻辑单元可对应于多个逻辑区块地址。各逻辑单元所对应的逻辑区块地址可被划分为多个hpb区域,并且各hpb区域可进一步被划分为多个hpb子区域。因此,于本发明的实施例中,各逻辑单元可包括多个区域,并且各区域包括多个子区域。[0089]于本发明的第二实施例中,一子区域所对应的读取次数系用以记录该子区域被主机装置130读取的次数。例如,读取次数可为一计数值,用以计算主机装置130发出指令读取对应的子区域所包含的逻辑地址的数据的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的一般读取指令更新读取次数表格的内容。响应于带有一起始逻辑区块地址与一欲读取的数据长度(以下称为读取长度)的一读取指令的接收,存储器控制器110可藉由增加选定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与读取长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个读取次数更新读取次数表格的内容(例如,为每次的读取加1)。根据本发明的另一实施例,存储器控制器110可响应于由主机装置130所发出带有读取长度大于一既定读取长度临界值以选定一个以上要读取的逻辑地址的读取指令更新读取次数表格的内容。例如,存储器控制器110可藉由增加选定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与读取长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个读取次数更新读取次数表格的内容(例如,为每次的读取加1)。[0090]根据本发明的一实施例,存储器控制器110还可将读取次数表格中记录的读取次数排序,并且根据排序过的读取次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可选择一或多个读取次数高于一既定值的子区域作为要进行数据重排的子区域。于一实施例中,存储器控制器110可依序根据排序过的读取次数选择出目前读取次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的读取次数自排序过的读取次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。[0091]根据本发明的另一实施例,存储器控制器110可根据读取次数表格所记录的读取次数计算一平均读取次数,并且根据平均读取次数选择至少一个子区域。例如,存储器控制器110可选择一或多个读取次数高于平均读取次数的子区域作为要进行数据重排的子区域。[0092]图9系显示根据本发明的第二实施例所述的数据处理方法流程图。本发明的数据处理方法适用于一数据储存装置,可由存储器控制器110执行并包括以下步骤:[0093]步骤s902:建立一读取次数表格,并且响应于由一主机装置发出的一读取指令更新读取次数表格的内容。于本发明的实施例中,读取指令带有至少一个选定的逻辑地址。[0094]步骤s904:根据读取次数表格的内容选择至少一个子区域。[0095]步骤s906:执行一数据重排程序,用以将属于被选择的至少一个子区域的逻辑地址的数据(即,被选择的至少一个子区域的数据)搬移(或者重新写入)至存储器装置中具有连续实体地址的记忆空间。[0096]需注意的是,第二实施例所述的数据处理方法可被应用于主机控制模式或装置控制模式。[0097]根据本发明的第三实施例,存储器装置110可建立另一读取次数表格(例如,子区域hpb读取次数表格)(为了与本发明的第二实施例所述的读取次数表格有所区隔,以下称之为hpb读取次数表格),并且响应于由主机装置130发出的带有大于1的传输长度的hpb读取指令维护或更新hpb读取次数表格的内容,其中主机装置130藉由带有大于1的传输长度的hpb读取指令选定一个以上要被读取的逻辑地址。hpb读取次数表格可包括多个栏位,各栏位用以记录相关联的一子区域(例如,前述的hpb子区域)所对应的一hpb读取次数。因此,hpb读取次数表格所包含的栏位总数可等于记忆装置120所包含的hpb子区域总数。[0098]于本发明的第三实施例中,一子区域所对应的hpb读取次数系用以记录该子区域被主机装置130透过发出hpb读取指令读取的次数。例如,hpb读取次数可为一计数值,用以计算主机装置130发出hpb读取指令读取对应的子区域所包含的逻辑地址的数据的次数。根据本发明的一实施例,存储器控制器110可响应于由主机装置130发出的带有传输长度大于1的hpb读取指令更新hpb读取次数表格的内容。响应于带有一起始逻辑区块地址与大于1的传输长度的一hpb读取指令的接收,存储器控制器110可藉由增加被选定的逻辑地址(例如,起始逻辑区块地址及根据起始逻辑区块地址与传输长度推算出来后续的逻辑区块地址)所属之一或多个子区域所对应之一或多个hpb读取次数更新hpb读取次数表格的内容(例如,为每次的hpb读取加1)。[0099]根据本发明的一实施例,存储器控制器110还可将hpb读取次数表格中记录的hpb读取次数排序,并且根据排序过的hpb读取次数选择一或多个要进行数据重排的子区域。例如,存储器控制器110可选择一或多个hpb读取次数高于一既定值的子区域作为要进行数据重排的子区域。于一实施例中,存储器控制器110可依序根据排序过的hpb读取次数选择出目前hpb读取次数最多的子区域,并且对所选的子区域执行对应的数据重排程序,接着将已被数据重排过的子区域所对应的hpb读取次数自排序过的hpb读取次数中移除。于需要时,前述的选择与数据重排程序可反复地对不同子区域执行。[0100]根据本发明的另一实施例,存储器控制器110可根据hpb读取次数表格所记录的hpb读取次数计算一平均hpb读取次数,并且根据平均hpb读取次数选择至少一个子区域。例如,存储器控制器110可选择一或多个hpb读取次数高于平均hpb读取次数的子区域作为要进行数据重排的子区域。[0101]图10系显示根据本发明的第三实施例所述的数据处理方法流程图。本发明的数据处理方法适用于一数据储存装置,可由存储器控制器110执行并包括以下步骤:[0102]步骤s1002:建立一读取次数表格(例如,hpb读取次数表格),并且响应于由一主机装置发出的一读取指令(例如,hpb读取指令)更新读取次数表格的内容,其中读取指令带有大于1的一传输长度,以选定一个以上要被读取的逻辑地址。[0103]步骤s1004:根据读取次数表格的内容选择至少一个子区域。[0104]步骤s1006:执行一数据重排程序,用以将属于被选择的至少一个子区域的这些逻辑地址的数据(即,被选择的至少一个子区域的数据)搬移(或者重新写入)至存储器装置中具有连续实体地址的记忆空间。[0105]需注意的是,第三实施例所述的数据处理方法可被应用于主机控制模式或装置控制模式。[0106]此外,于本发明的一些实施例中,数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序)可为一垃圾回收程序,或者可被合并于一垃圾回收程序中,而前述的要进行数据重排的子区域的选择可于一垃圾回收程序被触发时连带被触发。更具体的说,当任一可触发数据回收程序的条件达成时(例如,当闲置存储器区块(sparememoryblock)的总数量低于一既定闲置存储器区块临界值时),除了选择存有需被搬移(或者,重新写入)至目的存储器区块的有效数据的来源存储器区块外,存储器控制器110可进一步选择一或多个要进行数据重排的子区域,并且执行对应的数据重排程序,用以将被选择的子区域的数据搬移(或者重新写入)至存储器装置中具有连续实体地址的记忆空间。[0107]于本发明的其他实施例中,数据重排程序也可被合并于其他数据搬移程序中,例如,用以将一或多个抹除次数高于一既定抹除次数临界值的存储器区块的数据搬移至抹除次数相对少的存储器区块的一损耗均衡(wearleveling)程序、用以将具有ecc错误位元数量高于一既定错误位元数量的数据搬移至一新的存储器区块的一读取回收(readreclaim)程序、用以将具有读取次数高于一既定读取次数临界值的数据搬移至一新的存储器区块的一读取刷新(readrefresh)程序、或其他。此外,要进行数据重排的子区域的选择也可于数据搬移程序被触发时连带被触发。[0108]于本发明的又另一些实施例中,数据重排程序也可于数据储存装置100闲置时(例如,当数据储存装置100于一既定期间内均未自主机装置130接收到任何指令时,数据储存装置100可进入闲置模式)被执行。[0109]根据本发明的一实施例,在如前述第一、第二与第三实施例中将活化次数表格/读取次数表格/hpb读取次数表格中记录的活化次数/读取次数/hpb读取次数排序,并且根据排序过的活化次数/读取次数/hpb读取次数选择至少一个子区域后,存储器控制器110可进一步判断属于被选择的至少一个子区域的多个逻辑地址的数据是否并未被储存于连续实体地址。存储器控制器110可藉由根据属于被选择的至少一个子区域的多个逻辑地址查找l2p映射表格的内容以判断属于被选择的至少一个子区域的多个逻辑地址的数据是否被储存于连续实体地址。当属于被选择的至少一个子区域的逻辑地址的数据并未被储存于连续实体地址时,存储器控制器110将这些逻辑地址的数据搬移(或者,重新写入)至具有连续实体地址的记忆空间。当被选择的至少一个子区域的数据已被储存于连续实体地址时,存储器控制器110则可省略数据搬移的操作。具有连续实体地址的记忆空间可以是一存储器区块(例如,一目的存储器区块),或者一存储器区块中具有连续实体地址的一部分储存单元。[0110]图11系显示根据本发明的一实施例所述的数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序)的操作。存储器控制器110可根据逻辑地址的数值或索引值的内容推算出此逻辑地址属于哪个子区域以及哪个区域。图2已显示出一个逻辑地址(例如,逻辑区块地址lba)与hpb区域/hpb子区域之间的关系的范例。此
技术领域
中具有通常知识者当可理解如何根据一逻辑地址推算出此逻辑地址属于哪个子区域以及哪个区域,故于此不再赘述。[0111]于图11所示的范例中,假设一个hpb区域的大小为32百万位元组(mb),一个hpb子区域的大小为4百万位元组,并且一个逻辑区块地址的大小为4千位元祖(kb),则一个hpb子区域可包括1000个逻辑区块地址。因此,具有索引值(或数值)0~999的逻辑区块地址lba0~lba999属于索引值为0的hpb区域hpb_rgn_0以及索引值为0的hpb子区域hpb_sub_rgn_0。[0112]当存储器控制器110如上述实施例根据活化次数表格/读取次数表格/hpb读取次数表格的内容判断hpb子区域hpb_sub_rgn_0需要进行数据重排,并且选择出hpb子区域hpb_sub_rgn_0时,存储器控制器110可如图11所示将逻辑区块地址lba0~lba999的数据自实体地址{0x000a000,0x000a001,0x000a002,0x000b003,0x000a004,0x000a005,0x000b009,…}搬移至具有连续实体地址{0x0000c000,0x0000c001,0x0000c002,0x0000c003,0x0000c004,0x0000c005,0x0000c006,…}的一个新的记忆空间。[0113]需注意的是,于本发明的一些实施例中,存储器控制器110也可对包含被选择的一或多个子区域的一或多个区域执行数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序),用以将属于包含被选择的一或多个子区域的一或多个区域的所有逻辑地址的数据都搬移至存储器装置120中具有连续实体地址的记忆空间。此
技术领域
中具有通常知识者当可根据如图11所示的范例推导出将一整个区域的数据搬移至具有连续实体地址的记忆空间的数据重排操作,故于此不再赘述。[0114]根据本发明的一实施例,存储器控制器110也可于一映射表格中为数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序)中作为目的记忆空间使用的记忆空间对应地记录多个逻辑地址。例如,前述具有连续实体地址且于数据重排程序作为目的记忆空间使用的记忆空间可被包含于一存储器区块(于以下段落称之为目的存储器区块)。存储器控制器110可于目的存储器区块所对应的一映射表格中对应地记录多个逻辑地址。此映射表格可为一实体至逻辑(physicaltological,缩写为p2l)(或称快闪存储器至主机(flashtohost,缩写为f2h))映射表格。不同于前述储存于存储器装置120的全域或区域l2p映射表格,对应于目的存储器区块的p2l映射表格可被储存于缓冲存储器116内,作为一临时的映射表格。[0115]于本发明的一实施例中,p2l映射表格可包括多个栏位,p2l映射表格的一栏位对应于目的存储器区块的一个实体地址,用以记录此实体地址的映射资讯,其中四个实体地址可对应于一实体数据页。例如,一实体地址可用以储存4kb的数据,而一实体数据页的大小可为16kb。目的存储器区块的p2l映射表格内所记录的一个实体地址的映射资讯为储存于目的存储器区块的该实体地址的数据系指向哪个逻辑地址的实体至逻辑映射资讯。[0116]此外,储存于存储器装置120的全域或区域l2p映射表格(以下一并称为l2p映射表格)可包括多个栏位,l2p映射表格的一栏位用以记录一逻辑地址的映射资讯。其中一逻辑地址可对应于一逻辑数据页。l2p映射表格内所记录的一逻辑地址或一逻辑数据页的映射资讯为存储器装置的哪个实体地址储存有此逻辑地址或逻辑数据页的数据的逻辑至实体映射资讯。[0117]于本发明的实施例中,存储器控制器110还可响应于将被选择的一或多个子区域的数据搬移至目的存储器区块的操作更新目的存储器区块所对应的p2l映射表格的内容并且记录目的存储器区块的多个实体地址的实体至逻辑映射资讯。此外,于本发明的实施例中,于执行数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序)后,存储器控制器110可进一步于更新目的存储器区块所对应的p2l映射表格的内容后,直接根据此更新过的内容更新l2p映射表格的内容。需注意的是,于执行数据重排程序后,即使目的存储器区块尚未被写满,存储器控制器110仍可直接根据更新过的目的存储器区块所对应的p2l映射表格的内容更新l2p映射表格的内容。即,于目的存储器区块尚未被写满之前,只要存储器控制器110执行过数据重排程序,即可根据目的存储器区块所对应的p2l映射表格的最新的内容更新l2p映射表格的内容。[0118]此外,于本发明的实施例中,存储器控制器110还可建立一子区域连续性表格,并且于执行数据重排程序(例如,于前述第一、第二与第三实施例之任一者中所述的数据重排程序)后更新子区域连续性表格的内容。子区域连续性表格可包括多个栏位,各栏位与一子区域相关联,用以记录相关联的子区域的数据是否被储存于连续实体地址。例如,子区域连续性表格的各栏位可储存一位元。当一子区域的数据经由前述数据重排程序中被搬移至具有连续实体地址的记忆空间时,存储器控制器110可将与此子区域相关联的位元值设定为1。反之,与此子区域相关联的位元值可被设定为0(其可以是一预设值)。[0119]借助子区域连续性表格所记录的资讯,于自主机装置130接收到hpb读取指令时,特别是当hpb读取指令所带的传输长度(transferlength)大于1时,存储器控制器110可藉由检视子区域连续性表格中与hpb读取指令中所带的逻辑地址(例如,起始逻辑地址)所属的子区域相关联的位元值判断hpb读取指令中所带的逻辑地址是否属于数据被储存于连续实体地址的子区域(例如,判断子区域连续性表格中与起始逻辑地址所属的子区域相关联的位元值是否被设定为1)。若是,只要此起始逻辑地址之后的一或多个后续逻辑地址也属于数据被储存于连续实体地址的子区域,则存储器控制器110可直接根据编码于起始逻辑地址所对应的hpb项目中的实体地址推导出储存此起始逻辑地址之后的一或多个后续逻辑地址的数据的一或多个实体地址。如此一来,当藉由子区域连续性表格的内容判断出起始逻辑地址的数据与一或多个后续逻辑地址的数据被储存于连续的实体地址时,存储器控制器110可直接决定略过查找或搜寻l2p映射表格所记录的映射资讯以找出储存后续一或多个欲读取的逻辑地址的数据的一或多个实体地址的操作。因存储器控制器110仅需参考子区域连续性表格的内容便可推导出所需的实体地址,并判断是否可略过查找或搜寻l2p映射表格的操作,藉此可使存取操作的速度大幅提升。[0120]需注意的是,由于数据的更新将导致子区域的数据被储存于不连续的实体地址,因此,当一个子区域所包含的任一逻辑地址的数据被更新且被储存于其他实体地址时,子区域连续性表格中所记录的与此子区域相关联的位元值将由1修改为0。[0121]此外,需注意的是,于本发明的又一些实施例中,存储器控制器110可建立且同时维护一个以上的前述活化次数表格、读取次数表格与hpb读取次数表格,并且可根据记录于前述活化次数表格、读取次数表格与hpb读取次数表格的内容的任意组合选择一或多个要进行数据重排的子区域。例如,存储器控制器110可将前述表格中所记录各子区域所对应的活化次数、读取次数与hpb读取次数加总或取其平均值并加以排序后,根据排序过的加总或平均结果选择一或多个要进行数据重排的子区域。[0122]当储存于存储器装置120的数据的连续性可藉由根据前述活化次数表格、读取次数表格及/或hpb读取次数表格所记录的资讯执行数据重排程序而被加强时,存取操作的速度可大幅地被提升,且存取效能也可大幅地被改善。[0123]以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献