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

一种数据存取管理方法和存储装置与流程

2022-05-11 19:10:31 来源:中国专利 TAG:
1.本技术涉及存储装置,尤其涉及一种使用于多面模式的存储单元阵列的优化策略。
背景技术
::2.存储装置(例如:固态硬碟、)中使用的闪存,通常是一种一种非易失性随机访问存储介质(例如:nandflash),基于浮栅(floatinggate)电晶体设计,通过浮栅来锁存电荷,电荷被储存在浮栅中,它们在无电源供应的情况下仍然可以保持。nandflash是从原始的硅材料加工出来的,硅材料被加工成晶圆(wafer),一片晶圆上可以做出几百颗nandflash芯片。芯片未封装前的晶粒(die),是从晶圆上用雷射切割而成的小片。每个晶粒就是一个独立的功能芯片,包含无数个电晶体电路。多颗晶粒最终封装在一起就成为闪存芯片。3.闪存的容量结构从大到小可以分为多层架构。一个闪存装置(device)就是指单片闪存,是可对外提供的封装产品,其中通常包含1个或多个目标单元(target)。目标单元是拥有独立片选能力的单元,可以单独寻址,通常包含1或多个晶粒(lun)。每个晶粒有若干个面(plane),每个面中包含有若干个物理块(block),每个物理块中有若干个页(page),每个页对应着一个字节线(wordline)。晶粒是接收和执行闪存命令的基本单元。不同的晶粒可以同时接收和执行不同的命令。但在一个晶粒当中,一次只能执行一个命令,不能对其中的某个页写的同时又对其他页进行读访问。4.每个面中通常拥有独立的页寄存器,通常一个晶粒中包含1000或2000个物理块。物理块是能够执行擦除操作的最小单元,通常由多个页组成。页是能够执行编程和读操作的最小单元,通常大小为4kb/8kb/16kb/32kb不等。5.胞(cell)是每个页中的最小操作擦写读单元,对应一个浮栅电晶体,可以存储1比特或多比特数据,主要可颗粒类型。6.回拷读取(copyback_read)和回拷程控(copyback_program)是闪存协议书(datasheet)中说明支援的命令。copyback_read可透过代码00h-35h实现。闪存会在命令就绪后,可把数据搬到对应的缓存(cache),然后透过代码85h-10h,让闪存把数据再从缓存搬到同一面的其他物理块中。7.单面模式(singleplane)和多面模式(multipleplane),简单的说就是,一次操作的物理块数目不同。单面模式只操作某一个面的某一个物理块,而多面模式同时操作的物理块数,是由闪存协议书中支援的面数所定义。多面模式的读写性能优于单面模式。8.然而,回拷命令存在如下限制。一是只能在同一面内部进行回拷动作,不能跨越不同的面或晶粒。二是不能修改回拷的数据。回拷命令的好处是运行时只需要占用一部分的缓存,不需要占用固态硬盘的主控资源。9.在传统的生产测试流程中,品质较差的颗粒中会被检测出许多品质差(或俗称不可用)的物理块,并标记为“坏块”。为顺利运作于多面模式,当其中一个物理块被标记为坏块,所述坏块在不同面中对应的物理块,即使品质佳、功能正常,也会在坏块表一并被标记到坏块中。如此将使存储阵列的有效空间利用率下降。技术实现要素:10.为了解决上述技术问题,本技术提出一种数据存取管理方法,用于存储装置。本技术提出了一种提升物理块利用率的方法,将无法映射成多面模式操作的物理块转为可利用的备援块,解决了直接被标记为坏块而浪费空间的问题,有效提升非多面模式的物理块的利用率。此外,本技术利用回拷命令的特性,可不影响储装置的运作而达成上述的目的。11.其中所述存储装置包括多个面,每个面包括多个物理块,不同面中的同一行物理块串联运行于多面模式。首先,对所述物理块进行检测,查出不可用物理块。接着使所述不可用物理块所在面之外的其他面中对应的可用物理块标记为不可运行于所述多面模式的备援块。最后从运行于所述多面模式的多个物理块中,选择存储有效数据量最大的第一物理块。当所述第一物理块所在的同一面中存在所述备援块,运行回拷命令使所述第一物理块的数据搬至所述同一面中的所述备援块。12.在检测出备援块后,可进一步设定所述存储装置的控制逻辑,限定只有回拷命令可存取所述备援块。13.在运行所述回拷命令后,可进一步将所述备援块的物理地址更新至映射表。14.在进一步的实施例中,可建立坏块表,以记录所述不可用物理块的块号。15.对所述物理块进行检测时,当不同面中的同一行物理块皆为可用时,可使所述同一行物理块运行于第一多面模式,所述第一多面模式由第一数量的面所串联。当所述同一行物理块存在不可用阈值以下的不可用物理块时,使所述同一行物理块运行于第二多面模式,所述第二多面模式由第二数量的面所串联。所述第二数量小于所述第一数量。16.当所述同一行物理块存在超过不可用阈值的不可用物理块时,可使所述同一行物理块标记为不可运行于所述第一多面模式或所述第二多面模式的所述备援块。17.当所述存储装置符合闲置条件时,可选择存储有效数据量最小的物理块进行垃圾收集。18.在进一步的实施例中,所述回拷命令在所述垃圾收集完成之后才运行。19.在进一步的实施例中,还可判断所述存储装置中的单阶数(singlelevelcell;slc)缓存空间是否低于阈值。如果所述slc缓存空间不足,可运行所述回拷命令。20.本技术的另一实施例提出一种存储装置。其中包含固件,控制芯片,存储单元阵列,及映射表。所述固件可存储用于控制所述存储装置的代码。所述控制芯片连接所述固件,可加载并运行所述代码,以控制所述存储装置。所述存储单元阵列可连接所述控制芯片,用于受到所述控制芯片的控制而存储数据。所述存储单元阵列中包括多个晶粒,每个晶粒包括多个面,每个面包括多个物理块及一个暂存器;每个物理块中包括多个页,用于存储数据。所述映射表连接所述控制芯片,可用于关联物理块的地址和逻辑块的地址,以利数据存取。其中所述控制芯片加载所述代码后,可运行本技术前一实施例所提的数据存取管理方法。21.本技术所提的存储装置可以是一种固态硬盘。22.综上所述,本技术利用回拷命令的特性,提出了一种提升物理块利用率的方法,将无法映射成多面模式操作的物理块转为可利用的备援块,解决了直接被标记为坏块而浪费空间的问题,有效提升非多面模式的物理块的利用率。附图说明23.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:24.图1是本技术实施例的存储装置100的架构图。25.图2是本技术实施例的存储单元阵列200的架构图。26.图3是本技术实施例的坏块表。27.图4是本技术实施例的生产检测流程图。28.图5是本技术实施例的数据存取管理流程图。29.图6是本技术实施例的映射表更新流程图。具体实施方式30.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。31.图1是本技术实施例的存储装置100和主机130架构图。本技术的实施例提出了一种存储装置100,可通过总线进接主机130,接收主机130传送的各种存取要求以进行数据存取。存储装置100至少包含一或多个存储单元阵列200,一个控制芯片110,及固件104。所述存储单元阵列200中可包含多个存储块,每个存储块包含多个存储页,而每个存储页中包含多个存储单元,每个存储单元分别可用于存放一或多个比特的数据。所述控制芯片110连接所述存储单元阵列200,用于根据所述主机130传送的存取要求而对所述存储单元阵列200中的数据进行读取或写入。所述固件104连接所述控制芯片110,用于使所述控制芯片110执行数据存取管理方法。32.控制芯片110中通常具有闪存转换层(flashtransitionlayer;ftl),负责将主机130的存取要求中的逻辑地址(logicalblockaddress;lba)转换为物理地址(physicalblockaddress;pba)。地址转换的运作需要使用映射表122(mappingtable)。映射表122中存储逻辑地址和物理地址的对应关系。逻辑地址是主机130对数据存放位置的理解。由于存储装置100可能是自各种不同规格的设备架构,主机130实质上无法管理存储装置100中的存储单元阵列200,所以主机130对数据的存取是以一致化的逻辑地址来表达。至于数据实际上存放的物理地址,皆由控制芯片110根据映射表122而进行转换。33.图2是本技术实施例的存储单元阵列200架构图。在存储单元阵列200中,通常包含多个晶粒206排列,每个晶粒206中又可分为多个面208(plane)。每个面208中包含多个物理块202(block)。每一个物理块202中,又可进一步细切为多个页(page)(未图示)。每一个物理块202具有独立的地址号,而其中每一页的位置可由所述地址号加上偏移量(offset)而查找。而每一页中包含多个存储单元,每一存储单元用于存储一或多个比特数据。34.物理块202和页是映射表中常见作为数据存储的映射粒度单位。举例来说,控制芯片110的主要工作其一就是把主机130使用的逻辑地址转为存储单元阵列200中的物理地址,而这种对应关系就存在本实施例所述的映射表122中。35.每个面208中又分别包含一个暂存器204,可存放关于所述面208的细部参数设定,例如时延参数,阶数(celllevel)或其他属性。阶数可用来决定每个存储单元可代表的比特数,例如一阶数(singlelevelcell;slc),多阶数(multilc;mlc),三阶数(triplelc;tlc),四阶数(quadlc;qlc)等。存储单元阵列200中包含一接口210,可通过控制芯片110连接至主机130。36.图3是本技术实施例的坏块表。为说明方便,本实施例以四个面和40个物理块为例说明。可理解的是在实体设计上,面的数量和块的数量不限定于此。如图3所示,在一晶粒中可包含四个面排列成行(面0、面1、面2和面3)。其中包含的物理块依照顺序编号为0至39。画斜线的块号表示被检测为坏块的物理块,而其他则为可用的物理块。在正常的状况下,多个面中对应位置的物理块可串联而运作于多面模式,即,映射为一逻辑单元而被同时被存取,使得效能增倍。以图3为例,位于不同面的块号0、1、2和3可串联为一个逻辑单元而运作于多面模式的单元。同样地,位于不同面的块号4、5、6和7也可串联为运作于多面模式的一个逻辑单元。37.至于块号8、9、10和11,其中的块号10是品质差或不可用的物理块,因而被标记为“坏块”。因此块号8、9和11无法运作于多面模式。在传统的做法中,块号8、9和11会被一并标记为坏块而失去功能。同样的情况也发生在块号12、13、14和15。38.为了善用这些仍然可用,但是无法运作于多面模式的物理块,本技术利用搬移程序,使这些备援备的空间可被充份利用。举例来说,控制芯片110的逻辑可设计为,将较低热度的数据自动搬移至这些备援块中,使多面模式的物理块尽量运用于存储高热度的数据。在一较佳的实施例中,本技术利用了回拷命令(copyback)实现搬移程序。39.图4是本技术实施例的生产检测流程图。从生产流程来说,存储装置100中的存储单元阵列200需要经过测试,才能确定是否适合出厂。在步骤401中,启动存储装置100。在步骤403中,对所述存储装置100进行可靠性开发测试(reliabilitydevelopmenttest;rdt),以判断是否足容开卡。如果存储装置100中的存储单元阵列200品质良好,例如坏块数低于一个阈值,则进行步骤405,配置所述存储装置100为正常模式。所述正常模式即不需要在存储装置100中坏块表。相对的,如果可靠性开发测试判断所述存储单元阵列200中块坏数多于一个数量(阈值),则在步骤407中,分别为每个面建立块坏表。40.接着,在步骤409中,根据所述坏块表,判断可运作于多面模式的块数是否达到一个预设的标准。如果可运作于多面模式的块数太少,则产品出厂后也无法达到一定的效能,因此执行步骤411,将存储装置100标示为不良品。相对的,如果可运作于多面模式的块数在一定的标准以上,则在步骤413中,根据坏块表运行本技术所提出的数据存取管理方法。41.图5是本技术实施例的数据存取管理流程图。在图4的实施例中,步骤413的数据存取管理方法,详细步骤在图5中说明。在步骤501中,在存储装置100的固件104中启用前述的数据存取管理方法,根据坏块表管理存储装置的数据存取。在步骤503中,固件104中的代码被执行后,设定控制芯片110的逻辑,使不能运行于非多面模式的物理块被限定于只有回拷命令可以存取。举例来说,控制芯片110本身会运行许多传统的控制命令,例如垃圾收集或是其他映射表优化的步骤。如果这些命令使用了非多面模式的物理块,将会使整体的存储装置100效能降低。而在本实施例中,可将标记为备援块的部份限定为只有回拷命令可以存取,以使其空间被充分利用。42.在步骤505中,判断存储单元阵列200中特定的晶粒或面是否符合执行垃圾收集的条件,例如处于闲置状态。如果存储单元阵列200中特定的晶粒或面是否符合执行垃圾收集的条件,则在步骤509中,对所述晶粒或面执行垃圾收集(garbagecollection),接着在步骤511中,对所述晶粒或面执行回拷命令。43.举例来说,如果存储装置100出现闲置状态(idle),控制芯片110中触发垃圾收集的条件也可以配置为同时启动回拷命令来搬移一些有效数据比较大的物理块到无法映射成多面模式的备援块中。44.在本实施例中,垃圾收集通常是会优先选择有效数据较少(即,剩余可储存空间较大)的物理块进行。举例来说,垃圾收集可选择有效数据最少的物理块进行垃圾收集。在另一实施例中,垃圾收集可利用一阈值来选择,选择有效数据小于该阈值的物理块进行。以图2举例来说,在块号0、1、2和3中,可能对应储存的有效数据量分别是10000、5000、2000及1000。在这种情况中,块号3会被优先进行垃圾收集处理。由于垃圾收集程序存在已知的算法,本实施例中不再详细介绍。45.在本实施例中,回拷命令会优先选择有效数据较大的物理块进行。举例来说,回拷命令可选择有效数据最大的物理块进行回拷命令。另一方面,回拷命令也可以根据特定阈值来进行选择,例如选择有效数据大于某一阈值的物理块。以图2举例来说,在块号4、5、6和7中,可能对应储存的有效数据量分别是10000、5000、2000及1000。在这种情况中,块号4会被优先进行回拷处理。在运行回拷命令时,块号4的备援块可以是块号8或块号12。举例来说,回拷命令会将块号4中的数据搬移至块号8中,然后修改映射表122使主机130可通过逻辑地址访问块号8中的数据。46.另一方面,即使不是在闲置状态,也会在步骤507中判断slc缓存是否足够。如果slc缓存不足,同样的也可以触发步骤509的垃圾收集和步骤511的回拷命令。一般来说,slc缓存不是一个独立的外置芯片,而是在使用tlc或qlc的存储单元阵列200中,划分出部分空间用来模拟slc的写入方式,也就是每个胞中只写入1比特数据),这样就可以有效提升固态硬盘在读写上的表现。但是这个划分出来的部分空间是有限的。当连续写入的容量到达所述slc缓存的空间上限后,读写速度就会降回原本tlc模式应有的数值。而相比于动态内存缓存来说,slc缓存由于是存在于tlc存储单元阵列中,若是不特别进行抹写,数据是可以持续保存的,不会因为断电而消失。47.因此,步骤509和511可发挥的效果就是优化存储单元阵列200中的数据存储,而步骤511尤其可将备援块的存储空间充分利用,使得运作于多面模式的物理块能充分应用于数据存储或是slc缓存。48.图6是本技术实施例的映射表更新流程图。由于一般的固态硬盘中,每个存储胞的寿命是有限的,因此每当有任何物理块被写入数据后,需要判断写入的数据是否正确被存储。在步骤601中,将数据写入被选定的物理块中。在步骤603中,对被写入的物理块进行读取测试。如果所述物理块无法通过读取测试,代表出现损坏。在步骤605中,无法通过读取测试的物理块号会被加入坏块表中。而程序会回到步骤601,重新选择其他的物理块进行数据写入的步骤。49.在通过步骤603的读取测试后,运行步骤607,将映射表122更新,确认写入完成。举例来说,回拷命令搬移数据完毕之后,会对搬移之后的数据进行读取测试,并更新到一个逻辑到物理的二级映射表中,以确认数据搬移结束。50.图6的检测程序,可以发生在步骤509的垃圾收集或步骤511的回拷程序之后。做为进一步确认数据正确的实施例。在进一步的实施例中,对于无法映射成多面模式的物理块,所述逻辑到物理的二级映射表可以不再指向这个位置,使垃圾收集不需要处理有效数据很大的物理块,而相对减轻负担。在更特别的实施例中,如果备援块中的有效数据越来越少,也可以允许垃圾收集将备援块中的数据搬移到其他位置。51.综上所述,本技术利用回拷命令实现了一种独特的数据存取管理方法,可使备援块的空间被有效利用,提升了整体存储装置100的使用效率。在使用中或出厂前的任何阶段中,可事先对存储单元阵列200中的物理块进行检测,查出不可用的物理块。接着将所述不可用物理块所在面之外的其他面中对应的可用物理块标记为不可运行于所述多面模式的备援块。最后从运行于所述多面模式的多个物理块中,选择存储有效数据量最大的第一物理块。当所述第一物理块所在的同一面中存在具有可用空间的备援块,则运行回拷命令使所述第一物理块的数据搬至所述备援块。在运行所述回拷命令后,可进一步将所述备援块的物理地址更新至映射表。52.换句话说,本技术对于无法映射形成多面模式的单一物理块,不会直接丢弃不用(先前方案会标记为坏块而放弃)。本技术可单独建立一个备援块表来管理这部分信息。53.在检测出备援块后,为了不使这些备援块影响存储装置100的效能,固件104中的代码可进一步设定所述存储装置100的控制芯片110,限定只有回拷命令可存取所述备援块。所述不可用物理块的块号,可由控制芯片110建立一个坏块表来记录。54.换句话说,存储装置100在处理主机130传送的数据时,不会主动选择使用备援块来读写,以保证高速读写性能。备援块完全保留给回拷命令使用。55.在进一步的实施例中,对所述物理块进行检测时,当不同面中的同一行物理块皆为可用时,可使所述同一行物理块运行于第一多面模式,所述第一多面模式由第一数量的面所串联。当所述同一行物理块存在不可用阈值以下的不可用物理块时,使所述同一行物理块运行于第二多面模式,所述第二多面模式由第二数量的面所串联。所述第二数量小于所述第一数量。56.换句话说,如果存储装置100中超过一半以上的物理块都无法映射成多面模式的物理块,还可选择会降面处理。举例来说,原本是四面模式,即每四个面串联成一个单位的物理块,改为二面模式,即每二个面串联成一个单位。至于原本就是二面模式的物理块,就透过可靠性开发测试筛出来。当四个面中的其中一个面的物理块发现错误,则剩下的三个物理块中的其中的两个物理块串联成第二多面模式运行,最后一个落单的物理块则标记为备援块。57.在另一种实施例中,当所述同一行物理块存在超过不可用阈值的不可用物理块时,可使所述同一行物理块标记为不可运行于所述第一多面模式或所述第二多面模式的所述备援块。举例来说,在四个面的对应物理块中,发现超过三个物理块是坏掉的,剩下的物理块既无法运行于第一多面模式,也无法运行于第二多面模式。这时就只能将其标记为备援块。58.当主机130大量写入数据时,垃圾收集会启动挑选有效数据最小的物理块搬移数据,而同时回拷命令也会开始启动去找出同晶粒的其他面中有效数据最多的物理块,启动copyback_read或copyback_program等指令搬移有效数据。有效数据最多是相对而言,固件104可动态调整。举例来说,可设定预期有效数据容量超过85%的物理块就符合搬移的条件。在理想情况下,假设主机139写入的逻辑块号不重复,则垃圾收集甚至可以不动作,全部由回拷命令来搬移数据。这种情况可以显着提升特定读写动作的效能,例如存取测试软件hdtune。59.本技术提出的方案主要在于提升无法被映射成多面模式的物理块的空间利用率的问题,同时使其不太拉低固态硬盘的读写性能。此外,回拷命令的使用策略会主要是,由固件104挑选有效数据相对大的物理块来进行搬移,以善用备援块的空间。备援块的存储粒度可以通过暂存器204而调整,例如由slc提升为tlc或qlc,以进一步提升空间利用率。借此,每次回拷程序都能稳定释放出二至三个可用物理块。每次进行回拷命令搬移的数据以物理块为单位,所以物理块中有效数据越多,效率越好。由于回拷命令不需要消耗控制芯片110的内部资源,只需占用少量闪存缓存,在进行h2test或hdtune这种全盘循序且不复写逻辑块号的测试时,底速会发现显着提升。60.综上所述,本技术利用回拷命令的特性,提出了一种提升物理块利用率的方法,将无法映射成多面模式操作的物理块转为可利用的备援块,解决了直接被标记为坏块而浪费空间的问题,有效提升非多面模式的物理块的利用率。61.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。62.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本技术的保护之内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献