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

存储设备、存储设备的控制方法及存储介质与流程

2022-06-08 20:57:30 来源:中国专利 TAG:
1.本发明涉及一种电子装置,特别涉及一种存储设备、存储设备的控制方法及存储介质。
背景技术
::2.由于非易失性存储设备存储的数据在断电后也不会消失,且具有省电与体积小的特性,故此非易失性存储设备如基于闪存存储器的存储设备大量地应用于电子装置上。此外,非易失性存储设备如固态存储设备(ssd)亦已逐渐成为桌上型电脑、笔记本电脑、伺服器之类的电脑系统中所配备的存储设备。3.电子装置在执行应用程序以存储文字、数据、照片、播放音频或视频等各种的数据时,往往在短时间内需要向存储设备提出大量数据写入动作的请求。存储设备的控制器可在电子装置(即主机)的写入请求下产生写入命令,并执行所产生的写入命令。存储设备的控制器可利用命令伫列以存储主机写入命令。存储于命令伫列中的主机写入命令可依序输出至存储设备的存储器以进行数据写入动作。另一方面,存储设备也有内部数据移动的需求。若存储设备在处理内部数据移动时,可能会影响源自电子装置的写入命令执行的效率,造成就电子装置而言写入效能的下降及浮动。如此一来,写入效能的下降及浮动反映在应用程序所反应的流輰度或应用程序所提供的服务的效率的浮动不稳定的情况产生。4.对于闪存存储器或固态硬盘的存储设备而言,写入放大(writeamplification,wa)是一种不欲发生的现象,即实际写入的物理数据量是写入数据量的多倍。在闪存存储器和固态硬盘中,数据以由多个存储单元(cell)组成的页(page)为单位写入到闪存存储器中。然而,只能以较大的单位,如由多个页组成的称为区块(block),来进行擦除。如果在区块中的一些页存在不再需要的数据,这些页被称为无效页(invalidpages),而所述区块中存在有需要的数据的页称为有效页(validpages)。为了使所述区块可被用以从新写入数据,存储设备会进行称为垃圾收集(gc,garbagecollection)的过程,仅将所述区块中有效页读取,并重新写入到另一个先前擦除过的空的区块中,然后再对前述的所述区块进行擦除而使其成为新的空的区块。所有的ssd都包含不同程度的垃圾回收机制,但在执行的频率和速度上有所不同。垃圾收集占了上述存储设备的写入放大的很大部分。5.是以,在存储设备的诸多内部数据移动需求中,垃圾收集占了重要的分量,垃圾收集的效能会对电子装置而言整体写入效能造成影响。技术实现要素:6.实施方式提供了一种存储设备、存储设备的控制方法及存储介质,其可用于具有存储器的装置,并可据以实现当存储设备需要执行关于内部数据移动的垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行处理以减少所述超区块的有效页数,以提升垃圾收集的效能。7.实施方式提供一种存储设备的控制方法,所述存储设备包括存储设备控制器以及包括多个存储器芯片的存储器,所述控制方法包括以下步骤。(a)由所述存储设备控制器提供多个超区块(superblock)的超区块有效页计数表以及所述多个超区块的多个内部区块有效页计数表,其中每个超区块对应于属于所述多个存储器芯片的一组不同的、非重迭的多个实体区块,每个实体区块对应于所述多个存储器芯片中一个对应的存储器芯片的多个页的一部分,并且所述超区块有效页计数表包括对应于所述多个超区块中各个超区块的多个实体区块的总有效页数,每个内部区块有效页计数表对应于所述多个超区块中一个超区块并且包括与所述超区块的多个实体区块对应的多个有效页数。(b)由所述存储设备控制器提供所述多个存储器芯片的多个虚拟区块映对表,以将一实体区块位址相关联的所述多个超区块中的第一超区块映对到所述多个超区块中的第二超区块。(c)基于所述超区块有效页计数表,由所述存储设备控制器确定所述多个超区块中欲被处理以进行垃圾收集运作的至少一被选的超区块。(d)由所述存储设备控制器通过基于所述多个内部区块有效页计数表和所述多个虚拟区块映对表重新映对所述至少一被选的超区块来降低所述至少一被选的超区块的总有效页数。(e)对重新映对的所述至少一被选的超区块执行垃圾回收运作。8.于一个实施例中,所述步骤(d)包括:(d1)基于所述多个内部区块有效页计数表,确定所述至少一被选的超区块的多个实体区块中的第一实体区块所属的存储器芯片是否具有第二实体区块,所述第二实体区块的有效页数小于所述第一实体区块的有效页数;以及(d2)如果确定所述至少一被选的超区块的多个实体区块中的所述第一实体区块所属的所述存储器芯片具有有效页数小于所述第一实体区块的有效页数的第二实体区块,则通过更新所述多个虚拟区块映对表中的至少一个来重新映对所述第一实体区块和所述第二实体区块。9.于一个实施例中,当所述第一实体区块的有效页数大于或等于一有效页数门槛值时,执行所述步骤(d1)。10.于一个实施例中,在所述步骤(d2)中,通过为所述至少一被选的超区块的所述第一实体区块及另一个超区块的所述第二实体区块所属的所述存储器芯片的所述虚拟区块映对表进行更新,来重新映对所述第一实体区块和所述第二实体区块。11.于一个实施例中,所述存储器芯片的所述虚拟区块映对表被更新以包括用以指示将所述至少一被选的超区块的所述第一实体区块映对到另一超区块的第二实体区块的数据。12.实施方式又提供一种存储介质,其记录用以让存储设备执行如上述多个实施例中任一个实施例所述的存储设备的控制方法的程序码。13.实施方式另外提供一种存储设备,包括存储器及存储设备控制器。所述存储器包括多个存储器芯片。所述存储设备控制器,电连接到所述存储器,且用于控制所述存储器以对所述存储器进行数据存取,其中所述存储设备控制器被配置为执行多个运作。所述多个运作包括以下。(a)由所述存储设备控制器提供多个超区块(superblock)的超区块有效页计数表以及所述多个超区块的多个内部区块有效页计数表,其中每个超区块对应于属于所述多个存储器芯片的一组不同的、非重迭的多个实体区块,每个实体区块对应于所述多个存储器芯片中一个对应的存储器芯片的多个页的一部分,并且所述超区块有效页计数表包括对应于所述多个超区块中各个超区块的多个实体区块的一总有效页数,每个内部区块有效页计数表对应于所述多个超区块中一超区块并且包括与所述超区块的多个实体区块对应的多个有效页数。(b)由所述存储设备控制器提供所述多个存储器芯片的多个虚拟区块映对表,以将实体区块位址相关联的所述多个超区块中的一第一超区块映对到所述多个超区块中的第二超区块。(c)基于所述超区块有效页计数表,由所述存储设备控制器确定所述多个超区块中欲被处理以进行垃圾收集运作的至少一被选的超区块。(d)由所述存储设备控制器通过基于所述多个内部区块有效页计数表和所述多个虚拟区块映对表重新映对所述至少一被选的超区块来降低所述选择的超区块的总有效页数。(e)对重新映对的所述至少一被选的超区块执行垃圾回收运作。14.于一个实施例中,所述运作(d)包括:(d1)基于所述多个内部区块有效页计数表,确定所述至少一被选的超区块的多个实体区块中的第一实体区块所属的存储器芯片是否具有第二实体区块,所述第二实体区块的有效页数小于所述第一实体区块的有效页数;以及(d2)如果确定所述至少一被选的超区块的多个实体区块中的所述第一实体区块所属的所述存储器芯片具有有效页数小于所述第一实体区块的有效页数的第二实体区块,则通过更新所述多个虚拟区块映对表中的至少一个来重新映对所述第一实体区块和所述第二实体区块。15.于一个实施例中,当所述第一实体区块的有效页数大于或等于有效页数门槛值时,所述存储设备控制器执行所述运作(d1)。16.于一个实施例中,在所述运作(d2)中,所述存储设备控制器通过为所述至少一被选的超区块的所述第一实体区块及另一个超区块的所述第二实体区块所属的所述存储器芯片的所述虚拟区块映对表进行更新,来重新映对所述第一实体区块和所述第二实体区块。17.于一个实施例中,所述存储设备控制器更新所述存储器芯片的所述虚拟区块映对表以包括用以指示将所述至少一被选的超区块的所述第一实体区块映对到另一超区块的第二实体区块的数据。18.藉此,上述实施方式提供了一种存储设备、存储设备的控制方法及存储介质,其可用于具有存储器的装置,实施方式提供了一种存储设备、存储设备的控制方法及存储介质,其可用于具有存储器的装置,并可据以实现当存储设备需要执行关于内部数据移动的垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行更新映对内部区块的处理以减少所述超区块的有效页数,以提升垃圾收集的效能。如此,更可促助使用所述存储设备的电子装置的整体写入效能的提升。19.为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与所附图式仅系用来说明本发明,而非对本发明的权利范围作任何的限制。附图说明20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。21.图1为存储设备的一个实施例的示意框图;22.图2为存储设备控制器的一个实施例的示意框图;23.图3为存储设备的控制方法的一个实施例的示意流程图;24.图4为超区块的一个实施例的示意图;25.图5为多个存储器芯片的多个内部区块有效页计数表的一个实施例的示意图;26.图6为多个存储器芯片的多个虚拟区块映对表的一个实施例的示意图;27.图7为图3中步骤s40的一个实施例的示意流程图;28.图8a为针对选择的超区块进行内部区块的重新映对的一个实施例的示意图;29.图8b为针对选择的超区块进行内部区块的重新映对的一个实施例的示意图;30.图9a为超区块的内部区块的映对关系的一个实施例的示意图;31.图9b为针对选择的超区块进行内部区块的重新映对后的超区块的内部区块的映对关系的一个实施例的示意图;以及32.图10为图3中步骤s40的另一个实施例的示意流程图。33.附图标记34.10主机35.100、300存储设备控制器36.110处理单元37.120缓冲单元38.130_1~130_n存储通道39.140存储通道控制单元40.150主机介面单元41.160总线42.200存储器43.d1_1~d1_m、dn_1~dn_m存储器芯片44.310主机介面层45.320闪存存储器转换层46.330闪存存储器介面层47.ch0、ch1、ch2、ch3存储通道48.d0、d1~d31存储器芯片49.b_d0、b_d1~b_d31实体方块50.ce0、ce1~ce7致能信号51.sb、sb0、sbx、sby、sbz超区块52.sb_vt超区块有效页计数表53.sb0_it、sb1_it~sbp_it内部区块有效页计数表54.l2pmt逻辑到实体映对表55.lba逻辑区块位址56.d0_vmt、d1_vmt~dq-1_vmt虚拟区块映对表57.s10~s50步骤58.s41、s45步骤59.s110~s170步骤具体实施方式60.为了促进对本发明的目的,特征和效果的理解,提供了用于对本发明进行详细描述的实施例以及附图。61.请参考图1,其绘示本发明的存储设备的一个实施例,图1的存储设备可用以实现图3、5或10的控制方法(其将于之后详细说明,此处先暂时略过),并可据以实现当存储设备需要执行关于内部数据移动的垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行更新映对内部区块的处理以减少所述超区块的有效页数,以提升垃圾收集的效能。如图1所示,存储设备包括存储设备控制器100及存储器200。存储设备控制器100包括处理单元110、缓冲单元120、复数个存储通道130_1~130_n(如n为大于1的整数)及对应的存储通道控制单元140。缓冲单元120可以利用易失性存储器或非易失性存储器来实现。存储器200包括复数个存储器芯片d1_1~d1_m至dn_1~dn_m(如n、m为大于1的整数)。举例而言,存储器芯片为闪存存储器,譬如nor型存储器或nand型存储器,然而本发明的实现并不受此例子限制。62.存储设备控制器100可藉由主机介面单元150与主机10通信以接收来自主机10的读取请求或写入请求。存储设备控制器100就主机读取请求或主机写入请求而产生对应的读取命令或写入命令,并将产生的对应的命令传送至对应的存储通道(如130_1~130_n)的存储通道控制单元140。存储通道控制单元140用以控制至少一存储器芯片。例如,存储通道控制单元140传送数据读取命令至某一存储器芯片并将因此而读取的数据传送至存储设备控制器100中,譬如缓冲单元120中。存储设备控制器100将主机10所请求的数据传送至主机10。又例如,存储通道控制单元140依据数据写入命令而将欲写入的数据写入至存储器芯片中。当存储设备控制器100控制存储器200的操作时,缓冲单元120可以存储由存储设备控制器100和存储器200来使用以用于诸如读取操作、写入操作、程序化操作和抹除操作的各种操作的数据。在图1中,复数个存储通道控制单元140以平行处理的方式运作读取或写入动作。此外,处理单元110可以通过总线160而与存储通道(如130_1~130_n)电性耦接。然而,本发明的实现并不受上述例子限制。例如,前述各个存储通道控制单元可以利用逻辑电路或可程序化电路来实现,或者以软件方式来实现并且由处理单元110来执行。63.主机介面单元150可以处理从主机10提供的命令和数据,以及可以通过诸如通用序列总线(usb)、多媒体卡(mmc)、周边组件连接-快速(pci-e)、串列连接scsi(sas)、串列高级技术连接(sata)、并行高级技术连接(pata)、小型电脑系统介面(scsi)、增强小型磁片介面(esdi)和集成驱动电路(ide)的各种介面协定中的至少一种来与主机10通信。64.请同时参考图1与图2,其中图2为存储设备控制器的一个实施例的示意框图。图2呈现存储设备控制器300以固件或软件方式来实现时的架构。譬如,存储设备控制器300包含主机介面层310、闪存存储器转换层320、闪存存储器介面层330。主机介面层310用以与主机10通信并作为主机10与存储设备控制器300的介面。闪存存储器转换层320用来进行对读取、写入、抹除操作的管理。闪存存储器转换层320更用以将逻辑位址(如逻辑区块位址或逻辑页位址)转换为存储器200的存储器芯片(如d1_1~d1_m至dn_1~dn_m)所对应的实体位址(如实体区块位址或实体页位址)。闪存存储器介面层330用于处理闪存存储器转换层320及存储器200的通信,譬如将命令自闪存存储器转换层320传送至存储器200。65.图2所示的存储设备控制器300可利用图1的硬件架构来实现。闪存存储器转换层320在进行逻辑位址转换为实体位址时需要参考及维护位址映对表。由于位址映对表的数据量大,闪存存储器转换层320将位址映对表的部分区段存储于高速缓存(cache)中。当高速缓存中没有转换所需的逻辑位址与实体位址的对应关系时,闪存存储器转换层320需要将高速缓存中位址映对表的区段内容更新而产生映对表读取命令。此外,在某些存储器产品的应用场合中,例如是嵌入式多媒体卡(emmc)或其他的存储器产品,位址映对表系存储于存储器产品的存储器中,且本发明并不受此例子限制。66.存储设备控制器300控制针对存储器200的各种操作,例如,写入操作、读取操作、程序化操作、抹除操作。例如,存储设备控制器可在主机10的写入请求下产生写入命令,并执行所产生的写入命令。存储设备控制器可利用命令伫列以存储主机写入命令。存储设备控制器可依序处理存储于命令伫列中的主机写入命令以进行数据写入动作。67.特别地,存储设备控制器300控制用于闪存存储器转换层320的固件算法。例如,存储设备控制器300可以实现包括垃圾收集(gc,garbagecollection)、耗损平衡(wl,wear-leveling)、区块收回(bc,blockreclaim)及故障区块(rbb,runtimebadblock)的算法。故此,例如在执行垃圾收集、耗损平衡、区块收回及故障区块中任一种算法时,存储设备也有内部数据移动的需求。68.随着存储设备在执行内部数据移动及主机数据写入时,写入效能会有下降或浮动的可能。若存储设备控制器需要处理大量的内部数据移动时,可能会影响源自主机的写入命令执行的效率,造成就电子装置而言写入效能的下降。反过来说,若存储设备控制器的内部数据移动需求较少或没有时,写入效能上升。为了促进主机数据写入效率的稳定性或效能提升,以下提出存储设备的控制方法的实施例。69.请参考图3,其为存储设备的控制方法的一个实施例的示意流程图。如图3所示的实施例,其可用于具有存储器的装置,并可据以实现当存储设备需要执行关于内部数据移动的垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行处理以减少所述超区块的有效页数,以提升垃圾收集的效能。请参照图1与3,图3的存储设备的控制方法的一个实施例包括以下步骤s10至s50。其中引用了图1中的组件作示例作辅助说明,然而所述控制方法的实现并不受示例的限制。70.如步骤s10所示,由所述存储设备控制器100提供多个超区块(superblock)的超区块有效页计数表以及所述多个超区块的多个内部区块有效页计数表,其中每个超区块对应于属于所述存储设备的多个存储器芯片(如d1_1~d1_m至dn_1~dn_m)的一组不同的、非重迭的多个实体区块,每个实体区块对应于所述多个存储器芯片中一个对应的存储器芯片(如d1_1~d1_m至dn_1~dn_m中的一个)的多个页的一部分,并且所述超区块有效页计数表包括对应于所述多个超区块中各个超区块的多个实体区块的一总有效页数,每个内部区块有效页计数表对应于所述多个超区块中一超区块并且包括与所述超区块的多个实体区块对应的多个有效页数。71.如步骤s20所示,由所述存储设备控制器100提供所述多个存储器芯片的多个虚拟区块映对表,以将一个实体区块位址相关联的所述多个超区块中的一个第一超区块映对到所述多个超区块中的一个第二超区块。72.如步骤s30所示,基于所述超区块有效页计数表,由所述存储设备控制器100确定所述多个超区块中欲被处理以进行垃圾收集运作的至少一被选的超区块。例如在所述多个超区块中依据各超区块的总有效页数,确定总有效页数为最少或较少的超区块作为所述至少一被选的超区块。73.如步骤s40所示,由所述存储设备控制器100通过基于所述多个内部区块有效页计数表和所述多个虚拟区块映对表重新映对所述至少一被选的超区块来降低所述选择的超区块的总有效页数。例如,74.如步骤s50所示,对重新映对的所述至少一被选的超区块执行垃圾回收运作。75.藉此,上述实施方式提供了一种存储设备的控制方法及存储介质,其可用于具有存储器的装置,实施方式提供了一种存储设备、存储设备的控制方法及存储介质,其可用于具有存储器的装置,并可据以实现当存储设备需要执行关于内部数据移动的垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行更新映对内部区块的处理以减少所述超区块的有效页数,以提升垃圾收集的效能。如此,更可促助使用所述存储设备的电子装置的整体写入效能的提升。76.以下就图3中的步骤s10至s50分别举例说明如下。77.关于步骤s10中的超区块(superblock),请参考图4,其为超区块的一个实施例的示意图。如图4所示,一个超区块sb对应于属于多个存储器芯片(如d0、d1~d31)的一组不同的、非重迭的多个实体区块(如b_d0、b_d1~b_d31)。每个实体区块(如b_d0、b_d1或b_d31)对应于所述多个存储器芯片中一个对应的存储器芯片(如d0、d1或d31)的多个页的一部分。换句话说,所述超区块sb为每个存储器芯片(如d0、d1~d31)中的一个实体区块(如b_d0、b_d1~b_d31)的集合。接着,可进一步由各个存储器芯片(如d0、d1~d31)中选取与所述超区块sb的实体区块(如b_d0、b_d1~b_d31)不重迭的另一实体区块而成另一超区块。如此类推,建立多个超区块,每个超区块对应于属于所述多个存储器芯片(如d0、d1~d31)的一组不同的、非重迭的多个实体区块。78.此外,在一些实施例中,对于基于图2的闪存存储器转换层320来实现的存储设备控制器300而言,闪存存储器转换层320可以利用超区块sb作为区块分配单位(blockallocationunit)。例如,基于图1、2、4的来实现一存储设备的示例中,存储器芯片d0、d4~d28可对应至存储设备中的存储通道ch0,存储器芯片d1、d5~d29可对应至存储设备中的存储通道ch1,存储器芯片d2、d6~d30可对应至存储设备中的存储通道ch2,存储器芯片d3、d7~d31可对应至存储设备中的存储通道ch3。再者,在上述示例中,所述存储设备中可以实现多个芯片致能(chipenable,ce)信号来控制对应的存储器芯片,从而可以应用多存储通道来进行多个存储器芯片的读取或写入,以增加读写的效能,其中例如图4中显示8个以ce0、ce1~ce7代表的致能信号来示意的对应关系,如致能信号ce0示意可应用于d0~d3,其他可如此类推。然而,本发明的实现并不受此例子限制。79.在如图3所示的控制方法中,系针对超区块来进行处理,故于步骤s10、s20中,提出与多个超区块相关联的查找表(look-uptable)以促进所述控制方法的实现,所述多个查找表包含:多个超区块的超区块有效页计数表、多个内部区块有效页计数表,以及所述多个存储器芯片的多个虚拟区块映对表。80.于步骤s10中,所述超区块有效页计数表包括对应于所述多个超区块中各个超区块的多个实体区块的总有效页数。例如,有20个超区块,则可以配置所述超区块有效页计数表有20个对应的栏位,分别记录对应的超区块的总有效页数。举例而言,基于图1或图2的存储设备控制器,可以建立所述超区块有效页计数表,设定其初始值,并于存储设备控制器运作的过程中,记录、计数或更新每个超区块的总有效页数,这些实现方式可以利用闪存存储器转换层320来实现。81.在如图3所示的控制方法中,更进一步地由存储设备控制器(或闪存存储器转换层)提供多个内部区块有效页计数表。详细来说,各个超区块(如图4的sb)中组成的实体方块(如b_d0、b_d1~b_d31)可称为内部区块,故对于所述超区块(如图4的sb),存储设备控制器(或闪存存储器转换层)提供一个对应于所述超区块(如图4的sb)的内部区块有效页计数表。举例而言,就图4的超区块sb的示例而言,内部区块有效页计数表包括所述超区块sb的多个实体区块(如b_d0、b_d1~b_d31)的对应的且数量(如32个)相同的栏位,即有每个栏位记录对应的实体区域的有效页数。82.请参考图5,其为多个存储器芯片的多个内部区块有效页计数表的一个实施例的示意图。在基于图1、图2的存储设备的一个示例中,所述存储设备的存储设备控制器可被配置为提供p 1个超区块(如p为大于或等于1的整数),其中所述多个超区块可分别以符号sb0、sb1~sbp代表),所述p 1个超区块的超区块有效页计数表sb_vt有p 1个栏位,各栏位记录对应的超区块的所有实体区块的总有效页数,如图5所示。此外,如图5所示,对应到p 1个超区块,有p 1个内部区块有效页计数表sb0_it、sb1_it~sbp_it,每个内部区块有效页计数表记录对应的超区块(如sb0、sb1~sbp)的各个实体区块的有效页数。例如,所述存储设备有q个(如个)存储器芯片(如n、m为大于1的整数),则每个超区块有q个实体区块,故每个超区块对应的内部区块有效页计数表亦有q个栏位,且所述q个栏位分别记录所述超区块(如sb0、sb1或sbp)的所有内部区块的个别有效页数。举例而言,基于图1或图2的存储设备控制器,可以建立每个超区块对应的内部区块有效页计数表,设定其初始值,并于存储设备控制器运作的过程中,记录、计数或更新每个超区块的内部区块的个别有效页数,这些实现方式可以利用闪存存储器转换层320来实现。然而,本发明的实现并不受上述示例限制。83.关于步骤s20,请参考图6,其为多个存储器芯片的多个虚拟区块映对表的一个实施例的示意图。在基于图1、图2的存储设备的一个示例中,所述存储设备的存储器包含q个存储器芯片(如可分别以符号d0、d1~dq-1来代表)。所述存储设备控制器可被配置为提供分别对应至所述q个存储器芯片的q个虚拟区块映对表d0_vmt、d1_vmt~dq-1_vmt,如图6所示。例如,所述多个虚拟区块映对表用以将与从逻辑到实体映对表l2pmt获得的一个实体区块位址相关联的所述多个超区块中的第一超区块映对到所述多个超区块中的第二超区块,其中所述实体区块位址与一个逻辑区块位址(lba)相对应,且所述实体区块位址可以表示一个实体区块对应的存储器芯片及所述存储器芯片中的页(如以编号表示),或表示一个实体区块对应的存储通道、所述存储通道的存储器芯片及存储器芯片中的页(如以编号表示),或其他任何合适的方式来实现。举例而言,初始时,所述存储设备控制器可被配置为将存储器芯片d0的多个页依据各个页所分配至的超区块的值记录于虚拟区块映对表d0_vmt中,并设为对应至同一超区块;对于其他的虚拟区块映对表亦可初始地作相似的处理。藉此,当上述图3的控制方法的步骤s40执行时,所述多个初始化虚拟区块映对表可促进重新映对所述至少一被选的超区块来降低所述选择的超区块的总有效页数。然而,本发明的实现并不受上述示例限制。84.关于步骤s30,在一个实施例中,所述存储设备控制器依据各超区块的总有效页数的变化确定总有效页数为最少的超区块作为至少一被选的超区块。在另一个实施例中,所述存储设备控制器依据各超区块的总有效页数是否满足一判断准则来确定至少一被选的超区块。例如,所述判断准测为总有效页数门槛值,若所述存储设备控制器确定总有效页数为小于或等于所述总有效页数门槛值的超区块作为至少一被选的超区块。85.关于步骤s40,请参考图7,其为图3中步骤s40的一个实施例的示意流程图。于所述实施例中,步骤s40包括步骤s41及s45。86.如步骤s41所示,基于所述多个内部区块有效页计数表,确定所述至少一被选的超区块的多个实体区块中的第一实体区块所属的存储器芯片是否具有第二实体区块,所述第二实体区块的有效页数小于所述第一实体区块的有效页数。87.如步骤s45所示,如果确定所述至少一被选的超区块的多个实体区块中的所述第一实体区块所属的所述存储器芯片具有有效页数小于所述第一实体区块的有效页数的第二实体区块,则通过更新所述多个虚拟区块映对表中的至少一个来重新映对所述第一实体区块和所述第二实体区块。88.在一些实施例中,若被选的超区块的数目有两个或以上,则可以利用步骤s41及s45分别针对各个被选的超区块,从而执行重新映对的运作,其中若针对某个被选的超区块于执行步骤s41时并未发现对应的第二实体区块,则可进一步对剩下的被选的超区块继续执行步骤s41。89.关于步骤s41,请参考图8a,其为针对选择的超区块进行内部区块的重新映对的一个实施例的示意图。如图8a所示,被选的超区块(如以sbx代表)以一方阵来示意,并于所述方阵中以每一格子来代表所述被选的超区块的内部区块,并于格子中显示数字来示意所述内部区块的有效页数。然而,请注意的是,如图8a或其他图式中只是为了方便说明而示意,故本发明的实现并不受本文中示例或示意图的限制,在实现时,可以各种合适的软件(如数据结构或数据库)、硬件或固件等方式来实现。90.举例而言,基于所述多个内部区块有效页计数表,被选的超区块sbx的内部区块有效页数(如以vpc代表)为39,为了使被选的超区块sbx的内部区块有效页数变得更少,所述存储设备控制器可以配置为从被选的超区块sbx的多个实体区块(即内部区块)中选取适当数量的实体区块来进行步骤s41及s45,以达成有效地降低被选的超区块sbx的内部区块有效页数的效果。例如,于一个实施例中,所述存储设备控制器可以配置为在被选的超区块sbx的内部区块中找出有效页数大于或等于有效页数门槛值(例如10)时,执行所述步骤s41。举例而言,对于图8a而言,有至少两个内部区块满足所述有效页数门槛值,其中若沿用图4中的区块命名方式的话,所述两个内部区块b_d3、b_d10分别对应的有效页数为15、12,且所述两个内部区块b_d3、b_d10分别对应的存储器芯片为d3、d10。藉此,所述有效页数门槛值可以避免在实现步骤s41时对找出不合适数量的内部区块,可促进步骤s41及s45的执行效率;反过来说,若对有效页数为1、2或3的内部区块,进行步骤s41则很可能会造成时间及运算资源上的浪费。91.此外,对于步骤s41而言,是为了在其他超区块中寻找是否存在有效页数较小的内部区块,以便与前述的内部区块b_d3、b_d10于步骤s45中重新映对,即进行内部区块的交换,从而使重新映对、被选的超区块sbx有较小的总有效页数。对欲重新映对的被选的超区块sbx的一个内部区块如b_d3(或称第一实体区块)而言,需要在所述内部区块b_d3所属的同一个存储器芯片d3中寻找是否存在有效页数较小的内部区块(或称第二实体区块),以便维持较佳的效能。92.在图8a示例中,另一超区块sbz的内部区块b_d3与被选的超区块sbx的内部区块b_d3同属同一个存储器芯片d3,且区块sby的内部区块b_d3的有效页数(如3)小于被选的超区块sbx的内部区块b_d3有效页数(如15)。此外,同样地,另一超区块sby的内部区块b_d10与被选的超区块sbx的内部区块b_d10同属同一个存储器芯片d10,且区块sby的内部区块b_d10的有效页数(如0)小于被选的超区块sbx的内部区块b_d10有效页数(如12)。由此,可以取超区块sbz的内部区块b_d3及超区块sby的内部区块b_d10作为步骤s41所述的第二实体区块,从而进一步执行步骤s45。93.请参考图8b,在执行步骤s45时,通过更新所述多个虚拟区块映对表中的至少一个来重新映对所述第一实体区块(如超区块sbx的内部区块b_d3或b_d10)和所述第二实体区块(如超区块sbz的内部区块b_d3或超区块sby的内部区块b_d10)。换句话说,超区块sbx的内部区块b_d3与超区块sbz的内部区块b_d3交换,超区块sbx的内部区块b_d10与超区块sby的内部区块b_d10交换。94.于一个实施例中,在所述步骤s45中,通过为所述至少一被选的超区块的所述第一实体区块(如超区块sbx的内部区块b_d3或b_d10)及另一个超区块的所述第二实体区块(如超区块sbz的内部区块b_d3或超区块sby的内部区块b_d10)所属的所述存储器芯片的所述虚拟区块映对表进行更新,来重新映对所述第一实体区块和所述第二实体区块。请参考图9a、9b,图9a为超区块的内部区块的映对关系的一个实施例的示意图,图9b为针对选择的超区块进行内部区块的重新映对后的超区块的内部区块的映对关系的一个实施例的示意图。在图9a、9b中,每一长条图形对应到某一存储器芯片(如d0~d16);每一长条图形的格子示意对应的存储器芯片中由至少一页组成的区块所属的超区块的编号,如存储器芯片d0所对应的长条图形中第一个格子内的值为0,表示对应的方块属于超区块sb0,其他方块则可如此类推;又为了便于理解,在长条最左旁显示所述格子初始时对应的超区块的符号,如sb0、sbx、sby、sbz等。假设初始时的超区块sbx、sby、sbz的内部区块的映对关系如图9a所示,其中以3条跨越所述多个长条图形的横向的直线来示意超区块sbx、sby、sbz分别包含的区块(或称各超区块的内部区块)。在通过步骤s45的重新映对之后,重新映对的超区块sbx、sby、sbz的内部区块的映对关系如图9b所示,其中前述的3条直接已改变为3条跨越所述多个长条图形的截线来示意超区块sbx、sby、sbz分别包含的区块(或称各超区块的内部区块)。请注意的是,图9a、9b仅为示意图,本发明的实现并不受上述示例限制。95.于一个实施例中,所述存储器芯片的所述虚拟区块映对表被更新以包括用以指示将所述至少一被选的超区块的所述第一实体区块映对到另一超区块的第二实体区块的数据。请再参考图6及图9a、9b,如图9b的更新的映对关系可以通过利用如图6示意的虚拟区块映对表来实现。例如,在对应到存储器芯片d3的虚拟区块映对表d3_vmt中,可以记录存储器芯片d3的原有的超区块sbx的内部区块b_d3的实体位址对应的页被映对到sbz,并可以记录原有的超区块sbz的内部区块b_d3的实体位址对应的页被映对到sbx;另外,在对应到存储器芯片d10的虚拟区块映对表d10_vmt中,可以记录存储器芯片d10的原有的超区块sbx的内部区块b_d10的实体位址对应的页被映对到超区块sby,并可以记录原有的超区块sby的内部区块b_d10的实体位址对应的页被映对到超区块sbx。举例而言,图6所示的每个存储器芯片的虚拟区块映对表可以配置为记录所述存储器芯片的编号、存储通道的编号以及记录所述存储器芯片中的每一实体页的初始时所对应的超区块的编号以及重新映新后所对应的超区块的编号,从而有助于上述重新映对的实现。然而,虚拟区块映对表的实作方式可以在合适的情况下加以简化或作其他配置,故本发明的实现并不受上述示例限制。96.请参考图10,其为图3中步骤s40的另一个实施例的示意流程图。如步骤s110所示,确定被选的超区块中针对一个存储器芯片(如设参数dn=0,代表从存储器芯片d0开始)的区块(如以block_x代表);例如,从所述存储器芯片d0对应的虚拟区块映对表(如图6所示意)中查找所对应的区块编号(或称区块数字)。如步骤s120所示,判断所述区块block_x的有效页数是否大于门槛值(例如门槛值为5、10或其他);若所述区块(如block_x)的有效页数大于门槛值则执行步骤s130。如步骤s130所示,寻找于同一存储器芯片中有较小有效页数的区块(如以block_y代表)。如步骤s140所示,判断步骤s130所欲寻找的区块是否能找到;若是,则执行步骤s150;若否,则执行步骤s160。如步骤s150所示,进行对重新映对区块block_x及block_y;如图8b、9b所示意的映对方式。如步骤s160所示,设定针对下一个存储器芯片(如,设定参数dn增值加一,如以虚拟程序码表示dn )。如步骤s170所示,判断是否已对所有存储器芯片进行处理,例如判断参数dn是否大于最大的存储器芯片的数目(例如q=16或32等);若是,则执行步骤s110;若否,则停止流程,或执行其他步骤。藉此,利用图10的实施例可以针对被选的超区块实现基于图4中控制方法的步骤s40。若被选的超区块有两个或以上,亦可以重复利用图10的实施例进行步骤s40。97.此外,在一些实施例中,提出一种非暂态的存储介质,其记录用以让运算装置(如前述图1或2所示的存储设备),藉由存储设备中的存储设备控制器来执行存储设备的控制方法的程序码,其中方法包含依据图3的方法的任一个实施例或其组合。举例而言,程序码是一个或多个程序或程序模组,如用于实现依据图3的步骤s10至s50、图7的步骤s41和s45或图10的步骤s110~s170,此等模组的程序码系协同运作,且可以用任何适合的顺序或平行而被执行。当运算装置执行此程序码时,能导致运算装置执行基于图3的存储设备的控制方法的一个实施例。上述可读取存储介质例如为固件、rom、ram、存储卡、光学式信息存储介质、磁式信息存储介质或其他任何种类的存储介质或存储器,且本发明的实现方式并不受此例子限制。98.此外,在上述关于存储设备的实施例(如图1、图2)中,处理单元110、存储通道控制单元140、主机介面单元150中至少一者或其组合,系可以利用一个或多个电路来实现,如处理器、数字信号处理器,或是以可程序化的集成电路如微控制器、现场可编程门阵列(fieldprogrammablegatearray,fpga)或特殊应用集成电路(applicationspecificintegratedcircuit,asic)之类的电路中的一种或多种电路来实现,亦可使用专属的电路或模组来实现。再者,存储通道控制单元亦可利用软件方式如以行程、执行绪、程序模组或其他软件方式来实现。然而,本发明的实现并不受此等例子所限制。此外,前述图7的步骤s41、45或图10中的步骤s130、s140亦可利用硬件电路来加以实现,如逻辑电路或其他合适的数字电路,从而增进寻找有效页数较小的其他实体区块的效能。99.藉此,上述实施方式提供了一种存储设备、存储设备的控制方法及存储介质,其可用于具有存储器的装置。由存储设备控制器提供多个超区块的超区块有效页计数表以及所述多个超区块的多个内部区块有效页计数表,并且提供所述多个存储器芯片的多个虚拟区块映对表,以将一个实体区块位址相关联的所述多个超区块中的第一超区块映对到所述多个超区块中的第二超区块。并可据以实现当存储设备需要执行垃圾收集时,藉由通过对被选择的、以欲进行垃圾收集的超区块进行更新映对内部区块的处理以减少所述超区块的有效页数,以提升垃圾收集的效能。100.尽管已经透过特定的实施例描述了本发明,在不脱离权利要求书中所提出的本发明的范围和精神的情况下,本领域普通技术人员可以对其作出多种修改,组合和变化。101.以上所述仅为本发明的实施例,其并非用以局限本发明的专利范围。当前第1页12当前第1页12
再多了解一些

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

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

相关文献