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

基于有效存储器单元计数的数据操作的制作方法

2022-06-22 22:45:31 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及基于有效存储器单元计数的数据操作,其可为存储器子系统的部分。


背景技术:

2.存储器子系统可包括存储数据的一或多个存储器组件。存储器装置可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。


技术实现要素:

3.在一个方面中,本技术案提供一种系统,其包含:存储器装置,其包含存储器块的多个群组,每一群组包含多个块,且每一块包含多个存储器单元;以及存储器控制器,其配置成执行包含以下各项的操作:对于存储器装置的每一群组,维持所述群组中的有效存储器单元的计数;对于存储器装置的每一块,维持所述块中的有效存储器单元的计数;基于第一群组中的有效存储器单元的计数而从多个群组中选择第一群组,每一有效存储器单元存储有效数据,第一群组包含目标多个块;基于第一目标块中的有效存储器单元的计数而从目标多个块中选择第一目标块;基于第一目标块中的有效存储器单元的计数而确定是否将擦除第一目标块;以及响应于确定将擦除第一目标块而擦除第一目标块。
4.在另一方面中,本技术案提供一种方法,其包含:通过存储器系统的存储器控制器维持存储器系统的存储器装置的存储器块的每一群组中和每一块中的有效存储器单元的计数,每一有效存储器单元存储有效数据,存储器装置包含存储器块的多个群组,每一群组包含多个块,每一块包含多个存储器单元;基于第一群组中的有效存储器单元的计数而从多个群组中选择第一群组,所述第一群组包含目标多个块;基于第一目标块的有效存储器单元的计数等于第一目标块的存储器单元的总数而从目标多个块中选择第一目标块;将第一目标块中的所有数据重新定位到多个超级块中的第二超级块的干净块;以及擦除第一目标块。
5.在又一方面中,本技术案提供一种包含指令的非暂时性机器可读存储媒体,所述指令在由存储器系统的处理装置执行时使得处理装置:维持存储器系统的存储器装置的存储器块的每一群组和每一块的有效存储器单元的计数,有效存储器单元的每一计数指示存储有效数据的存储器单元的数目;基于第一群组中的有效存储器单元的计数而从存储器块的多个群组中选择第一群组,所述第一群组包含目标多个块;基于目标多个块中的每一块的有效存储器单元的计数而将目标多个块中的块进行排序;基于第一目标块的有效存储器单元的计数而从目标多个块中选择第一目标块;基于第一目标块的有效存储器单元的计数而确定是否将重新定位第一目标块的数据;以及响应于确定将重新定位第一目标块的数据:识别第一目标块的存储有效数据的一或多个存储器单元;将一或多个存储器单元的有效数据重新定位到多个群组中的第二群组的干净块;以及擦除第一目标块。
附图说明
6.根据下文给出的详细描述且根据本公开的各种实施例的随附图式将更加充分地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于解释和理解。
7.图1说明根据本公开的一些实施例的包括存储器子系统的实例计算环境。
8.图2a至b说明根据本公开的一些实施例的如何基于有效存储器计数选择用于数据操作的存储器块的实例图。
9.图3a至b说明根据本公开的一些实施例的用于基于存储器装置上的存储器单元的有效存储器计数而应用数据操作的实例方法的流程图。
10.图4a至4b说明根据本公开的一些实施例的用于基于存储器装置上的存储器单元的有效存储器计数而执行操作的实例方法的流程图。
11.图5说明在一些实施例的上下文中提供计算环境的组件之间的交互的交互图,其中执行使用如本文中所描述的存储器装置上的数据的分配技术的方法。
12.图6为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
13.本公开的各方面是针对基于存储器装置上的存储器单元的有效存储器计数的数据操作,其可为存储器子系统的部分,其中所述操作可使得存储器装置能够维持干净存储器单元以用于将数据存储在存储器装置的其物理存储器位置(例如页)内。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包括一或多个存储器组件(下文还称为“存储器装置”)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,且可请求将从存储器子系统检索的数据。
14.存储器装置可为非易失性存储器装置。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。例如nand存储器装置的一些存储器装置包括用以存储数据的存储器单元阵列(例如,快闪单元)。每一单元包括晶体管,且在每一单元内,基于单元的逻辑值(例如,0或1)而将数据存储为晶体管的阈值电压。这些装置中的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。例如,nand存储器装置中的存储器单元在其控制栅极处水平地连接到字线以形成页。对于一些类型的存储器装置(例如,nand),页经分组以形成块(在本文中也称为“存储器块”)。
15.主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置读取/写入构造。如由主机请求指定的待读取或写入的数据在下文中称为“主机数据”。主机请求可包括用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名称空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,lba、名称空间)可为主机数据的元数据的部分。元数据可包括错误处理数据(例如,错误校正码(ecc)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的时期)、有效位图(哪些lba或逻辑传输单元含有有效数据)等。
16.数据操作可由存储器子系统执行。数据操作可为主机发起的操作。举例来说,主机
系统可在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。
17.存储器子系统可对存储在存储器装置上的主机数据发起媒体管理操作,例如写入操作。举例来说,存储器子系统的固件可将先前写入的主机数据从存储器装置的位置重写到新位置,作为垃圾收集管理操作的部分。重写的数据(例如,如由固件发起的)在下文中称为“垃圾收集数据”。
18.下文中的“用户数据”大体是指主机数据和垃圾收集数据。下文中的“系统数据”是指由存储器子系统创建和/或维持以用于响应于主机请求而执行操作和用于媒体管理的数据。系统数据的实例包括但不限于系统表(例如,逻辑到物理存储器地址映射表(在本文中也称为l2p表))、来自日志记录的数据、高速暂存数据等。
19.存储器装置可为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每一裸片可包含一或多个平面。对于一些类型的非易失性存储器装置(例如,与非(nand)型装置),每一平面包含一组物理块。对于一些存储器装置,块为可擦除的最小区域。每一块包含页集。每一页包含存储数据位的存储器单元集。存储器装置可为原始存储器装置(例如,nand),其在外部例如由外部控制器管理。存储器装置可为受管理存储器装置(例如,受管理nand),其为与本地嵌入式控制器组合以用于同一装置封装内的存储器管理的原始存储器装置。
20.例如常规超级计算机的传统计算机系统可使用垃圾收集操作,其中周期性地擦除非易失性存储器(例如,与非(nand)装置)的无效或失效数据内容以允许新数据写入到非易失性存储器。然而,垃圾收集的常规方法可涉及费时且费能的数据移动(例如,主机系统与存储器子系统之间)。常规存储器系统通过实施用于损耗均衡的算法来处理此类存储器系统的物理限制。损耗均衡允许数据写入到存储器系统的各种物理位置以在均匀速度下在存储器系统上分配损耗。垃圾收集算法与损耗均衡算法联合地识别存储器且将存储器从一个位置重新定位到另一位置,以延长存储器系统的寿命。在常规非易失性存储器(例如nand装置)中,在不擦除现有数据的情况下,数据无法两次被写入到相同位置。将存储器装置划分为块,且将所述块进一步划分为页。尽管数据可直接写入到页中,但在可再次写入所述页之前,必须擦除整个块。为了回收旧数据、无效数据或失效数据所占用的空间,必须在擦除整个块之前搜索整个块以重新定位有效数据。在擦除之后,所述块准备好用于待写入的新有效数据。
21.存储器子系统可包括快闪转换层(ftl)软件,其允许操作系统读取和写入到存储器装置。ftl可提供从虚拟到物理存储器地址的转换,其可调用包括损耗均衡和垃圾收集的操作。一些存储器装置(例如,nand快闪)无法将数据写入到含有数据的位置。实际上,在新数据可写入到其之前,首先擦除所述位置的任何数据。擦除操作通常花费较长时间,因为擦除操作是一次一个块进行的。通常将数据写入空位置,且将含有数据的位置标记为无效,而不是在每次写入数据之前进行擦除。
22.在数据的物理位置已满或接近满时,执行垃圾收集操作以将有效数据重新定位到新的(空闲)区域,且擦除原始无效数据。常规垃圾收集操作包括(a)选择符合擦除条件的块,(b)将有效数据复制到单独位置中,以及(c)擦除所选块。
23.工作负载通常为在主机与存储装置之间介接的输入/输出特性的集合。工作负载影响带宽和时延。通常,nand装置取决于从主机装置接收的操作而在单个与混合工作负载情境之间切换。当在单个工作负载情境中时,可运行例如垃圾收集的操作。然而,在混合工作负载情境期间,主机使用无法分配到资源密集型操作(例如垃圾收集)的资源。换句话说,在典型的混合工作负载情境中,主机控制器无法与垃圾收集操作联合地执行读取/写入命令,因为其在资源方面太昂贵。
24.实际上,本发明人已尤其设想了一种方法和对应的系统以考虑混合工作负载情境,同时仍然基于有效存储器计数处理数据操作,例如垃圾收集操作。
25.此多维模型说明例如lun的物理位置信息。另外和/或替代地,已设想稳健的单光标垃圾收集设计以减少时延、功率消耗和固件开销。新颖的单光标垃圾收集设计可识别用于立即擦除的nand块的特定片段以避免功率限制/节流。
26.本公开的各方面通过使存储器子系统用于基于有效存储器计数执行数据操作来解决以上和其它问题。确切地说,各种实施例使得能够对存储器装置执行有效损耗均衡和垃圾收集操作,以延长存储器装置的使用寿命且改进性能。
27.通过使用各种实施例,可对存储器装置或存储器子系统执行基于有效存储器计数的数据操作。额外操作包括损耗均衡和垃圾收集。因此,一些实施例可加快数据擦除且节省对存储器装置进行垃圾收集操作所消耗的时间和能量。相对于事务存储器,可使用基于有效存储器计数的数据操作机构来使存储器装置或存储器子系统能够先行擦除数据块以增加垃圾收集效率。以此方式,各种实施例的存储器装置可避免使用昂贵、耗能的方法来处理和解决垃圾收集操作的需要。
28.尽管本文中相对于存储器子系统控制器描述各种实施例,但一些实施例实施本文中所描述的特征(例如,用于垃圾收集、损耗均衡的操作)作为存储器装置(例如,存储器裸片的控制器、处理器或状态机)的部分。举例来说,各种实施例实施垃圾收集操作作为用于存储器装置内的每一组的控制器、处理器或状态机的部分。
29.益处包括能够在整个混合工作负载情境中执行数据操作、仅需要单线程架构以及能够先行擦除具有空和/或无效数据的块。
30.图1说明根据本公开的一些实施例的包括存储器子系统110的实例计算环境100。存储器子系统110可包括媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
31.存储器子系统110可为存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包括固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包括双列直插式存储器模块(dimm)、小型dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)。
32.计算环境100可包括耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有中间组件),无论有线还
是无线,包括例如电连接、光学连接、磁性连接等连接。
33.主机系统120可包括处理器芯片组和由所述处理器芯片组执行的软件堆叠。处理器芯片组可包括一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,外围组件互连高速(pcie)控制器、串行高级技术附件(sata)控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。主机系统120可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置或包括存储器和处理装置的这类计算装置。
34.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包括但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、低功率双数据速率(lpddr)或任何其它合适的接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件(例如存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
35.存储器装置130、140可包括不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
36.非易失性存储器装置(例如存储器装置130)的一些实例包括“与非”(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与多个基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包括例如二维nand(2dnand)和三维nand(3d nand)。
37.存储器装置130中的每一个可包括一或多个存储器单元阵列,例如单电平单元(slc)或多电平单元(mlc)(例如,三电平单元(tlc)、四电平单元(qlc)和五电平单元(plc)),其可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包括一或多个存储器单元阵列,例如slc、mlc、tlc、qlc,或这些的任何组合。在一些实施例中,特定存储器组件可包括存储器单元的slc部分和mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可分组为页或存储器块,其可指用于存储数据的存储器组件的单元。对于一些类型的存储器(例如,nand),页可被分组以形成块。
38.尽管描述了非易失性存储器组件,例如nand型快闪存储器(例如,2d nand、3dnand)和3d交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存
取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器和电可擦除可编程只读存储器(eeprom)。
39.存储器子系统控制器115可与存储器装置130通信以执行操作,例如,在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包括硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
40.存储器子系统控制器115可包括配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,存储器子系统控制器115的本地存储器119包括配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包括处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
41.在一些实施例中,本地存储器119可包括存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包括用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包括存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110可不包括存储器子系统控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
42.一般来说,存储器系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责与存储器装置130相关联的其它操作,如损耗均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及在逻辑块地址与物理块地址之间的地址转换。存储器子系统控制器115可进一步包括主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换为主机系统120的信息。
43.存储器子系统110还可包括未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包括高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码地址以存取存储器装置130。
44.在一些实施例中,存储器装置130包括本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地媒体控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例为受管理nand(mnand)装置。
45.存储器子系统控制器115包括数据操作组件113,其可基于存储器装置(例如,存储器装置130、140)上的存储器单元的有效存储器计数而使得或促进执行数据操作。对于一些实施例,基于有效存储器计数的数据操作符使存储器系统能够维持干净存储器单元的健康水平以执行例如写入操作的数据操作。数据操作组件113可使存储器子系统110(经由存储
器子系统控制器115)能够执行包括垃圾收集操作的操作。存储器子系统可维持有效存储器单元的计数,所述计数指示特定存储器单元块中有多少存储器单元含有有效数据。通过利用有效存储器单元的计数,存储器子系统(经由存储器子系统控制器115)可执行数据操作以释放存储器单元用于将来写入操作。
46.数据操作组件113可基于有效存储器计数而确定哪一存储器块将需要最小量的带宽和处理功率来实现最大量的干净存储空间。另外,通过利用有效存储器计数,存储器子系统可初始化数据擦除操作,而不执行另一操作,以识别和重新定位有效数据,如常规系统中所执行。下文描述关于数据操作组件113的操作的另外细节。本文中相对于图2a和2b说明且描述此情况的实例。
47.图2a至2b说明根据本公开的一些实施例的用于基于存储器单元的有效存储器计数而应用操作的实例方法的流程图。方法200在主机系统处或替代地在存储器控制器处开始加载(操作202)识别存储器装置内包括数据的一或多个超级块的存储器块群组(在本文中也称为一或多个“超级块”)的列表。存储器控制器基于有效存储器单元计数的数目而将超级块的列表进行排序(操作204)。有效存储器单元计数指示具有有效数据的存储器单元的数目。这可通过将每一存储器单元的期望值与通过执行p2l查找以找到映射到逻辑地址的物理地址且接着再次使用l2p表中的逻辑地址来查找对应物理地址而找到的每一存储器单元的实际值进行比较来实现。如果每一查找的物理和逻辑地址彼此匹配,那么数据为有效的,且与逻辑地址相关联的存储器单元标记为含有有效数据。然而,在物理和逻辑地址不匹配时,数据为无效的且也标记为如此。列表可以最低到最高或最高到最低有效存储器单元计数的分级方式组织。有效和无效数据的列表可维持在不同粒度处,包括在超级块层级、块层级和存储器单元层级处。
48.在操作206处,处理装置从超级块的列表中选择超级块。所选超级块包括一或多个块。超级块的选择可基于超级块的有效存储器计数的数目。在一些实施例中,选择具有有效存储器计数的最低计数的超级块,因为它花费最少量的资源来执行此类操作且在最少的时间量中产生可用数据存储。
49.此后,在操作208处,处理装置从超级块中选择块。所选块在整个操作期间暂时标记为“目标块”。所选“目标块”可为具有超级块内的有效存储器计数的最小量的块。如上文所描述,有效存储器计数维持在超级块、块处,且甚至维持在存储器单元层级处。每一超级块可包括一或多个块,且每一块可包括一或多个存储器单元。
50.方法200在图2b中的操作212处继续。在操作214处,处理装置确定所选“目标块”的有效存储器单元的计数是否高于零。如果不是,那么意味着有效存储器单元的计数等于零且目标块不包括任何有效数据,接着在操作216处,处理装置擦除所述块。如果是,那么所述块包括存储有效数据的一或多个存储器单元,且方法200进行到218。在可擦除所述块之前,需要识别和重新定位此数据。
51.在操作218处,处理装置确定有效存储器单元的计数是否等于总存储器单元的数目。如果是,那么这意味着整个块充满有效数据。如果不是,那么所述块包括一些有效和一些无效的数据。在块包括一些有效数据和一些无效数据时,在操作220处,加载元数据以确定目标块的哪些存储器单元包括有效数据。控制器可维持有效存储器单元的计数,但不一定跟踪哪些个别单元保持有效或无效数据。在操作220处,目标块经历对有效数据的元数据
搜索。如上文相对于图2a所描述,查找物理地址对应的逻辑地址以确定物理地址是否实际上为有效数据的物理地址。如果物理地址与逻辑地址之间存在匹配,那么物理地址内的数据为有效的且标记用于重新定位。如果不存在匹配,那么不需要重新定位且将在稍后操作中擦除物理地址。
52.此后,如操作222处所展示,处理装置将数据从存储器单元重新定位到新位置。新位置可在当前不经历垃圾收集操作的单独超级块中的单独块中。
53.在操作216处擦除所选块(参见操作222),且在一些实施例中,方法200在操作224处结束。然而,如果所选超级块包括具有有效数据的更多块,那么可按需要多次重复方法200以擦除超级块的每一块以获得干净块。
54.图3a和3b展示根据本公开的一些实施例的对所选超级块执行数据操作的实例的说明。在图3a的上下文中,选择超级块302以用于包括垃圾收集的数据操作。超级块302可包括多个块,例如块310、320、330和340。块310、320、330和340中的每一个可包括一或多个存储器单元,例如315-1、315-2、315-3、315-4到315-n。
55.如所展示,超级块302具有四个不同块310、320、330和340。不同块中的每一个具有五页的存储器单元。对于块310和340,存储器单元的五个页中的仅一个包括具有有效数据的存储器单元(例如,单元315-n和345-n)。对于块320和330,存储器单元的五页中的两页包括具有有效数据的存储器单元。通过识别哪些块具有具有有效数据的最少数目个存储器单元,控制器可选择需要最少量的资源来实现的块以重新定位和擦除。
56.此外,可针对控制器映射超级块内的每一块以确定所述块内的哪一存储器单元含有有效数据。存储器控制器可识别跨越含有有效数据的多个块的页。举例来说,页315-4、325-4、335-4和345-4为跨越块310、320、330和340的页。
57.控制器可识别页内存在两个有效存储器计数。然而,控制器可能不一定知道哪一页含有有效数据。如相对于图2b中的操作220所描述,控制器将解析所述块以找到具有有效数据的存储器单元。存储器控制器可经编程以跨越页面和/或每一块映射每单元的有效存储器计数。超级块的有效存储器计数维持在指示符350处,所述指示符指示对于超级块302,存在二十个中的六个有效存储器单元。
58.操作的架构可通过跨越多个页查看存储器单元以确定擦除哪一块而在第一情境下实施,例如相对于图2a所描述的情境。相对于图2b描述第二情境。
59.图3b展示根据本公开的一些实施例的基于有效存储器计数而实施数据操作的实例超级块的说明。类似于图3a,选择超级块352用于包括垃圾收集的数据操作。超级块352可包括多个块,例如块360、370、380和390。所述块中的每一个可包括一或多个存储器单元,例如,365-1至365-n。
60.存储器控制器确定超级块352具有六的有效存储器计数且将计数维持在指示符398处。超级块352含有各自具有五个存储器单元的四个不同块。超级块352因此具有二十中的六的有效存储器计数。
61.同样,对于每一块,存储器控制器确定块特定的有效存储器计数。在图3b的所展示实例中,块360具有五个中的零个有效存储器单元。虽然存储器控制器确定每一块的块特定的有效存储器计数,但如果所述块具有零的有效存储器计数,那么存储器控制器可对块360进行排队用于立即擦除。存储器控制器可接着移动到块370以确定有效存储器计数。在此情
境下,存储器控制器确定块370具有两个有效存储器单元,块380具有三个有效存储器单元,且390具有一个有效存储器单元。基于有效存储器计数,存储器控制器可由于最低有效存储器计数而选择对块390执行垃圾收集操作,接着块370,接着块380。
62.如图3a和3b中所描述的识别重新定位和/或擦除哪一存储器单元的两种方法可根据本文中所描述的方法实施。在一些实施例中,将通过页和块识别存储器单元的两种方法实施在一起。应理解且了解,图3a和图3b的公开内容可以串联、单独或这两者的组合使用。
63.图4a为根据本公开的一些实施例的基于有效存储器计数而执行数据操作的类似于方法200的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的数据操作组件113执行。尽管以特定顺序或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程是可能的。
64.现参考图4的方法400,方法400说明根据一些实施例的基于有效存储器计数而执行数据操作的实例。在操作405处,处理装置维持每一超级块的有效存储器单元的计数和存储器装置的每一块的有效存储器单元的计数。
65.在操作410处,处理装置基于第一超级块的有效存储器单元的计数而选择第一超级块。每一有效存储器单元存储有效数据,且第一超级块包括目标多个块。在选择第一超级块之后,处理装置可基于目标多个块中的每一块中的有效存储器单元的计数而对目标多个块中的块进行排序。排序所述块可包括按有效存储器单元的计数的递增次序来排序所述块。
66.处理装置接着基于第一目标块中的有效存储器单元的计数而选择目标块(参见操作415)。处理装置可以例如图2a和2b中所论述的方式的方式选择目标块。举例来说,处理装置可基于以下选择目标块:(i)最低有效存储器计数,(ii)有效存储器计数等于零,或(iii)有效存储器计数等于所述块内的存储器单元的数目。
67.在图中4b中,方法400处的处理装置执行如图4a中所展示的额外和/或替代操作。
68.方法400接着进行到操作416,其中处理装置确定是否将重新定位目标块的数据。目标块的有效存储器计数指示是否存在脏数据、空单元或有效数据。当有效存储器计数为零时,不存在含有有效数据的单元。当有效存储器计数高于零时,存在含有有效数据的单元。当有效存储器计数等于存储器单元的数目时,所有存储器单元含有有效数据,且在可擦除存储在存储器单元内的数据之前整个存储器单元需要重新定位所述数据。
69.在操作417处,处理装置识别存储有效数据的一或多个存储器单元。如相对于图2b的操作220所描述,处理装置查找块的哪些存储器单元包括有效数据。
70.在操作418处,处理装置将一或多个存储器单元的有效数据重新定位到干净块。在一些实施例中,干净块为当前未经历例如垃圾收集的数据操作的不同超级块内的未占用块。在一些实施例中,干净块为具有存储有效数据的一或多个存储器单元的部分占用块,所述部分占用块在当前未经历数据操作的不同超级块中。在一些实施例中,干净块为经历数据操作的当前超级块内的先前擦除块。
71.返回到图4a中所描述的操作,在操作420处,处理装置确定是否将擦除目标块。处理装置可检查以看到有效存储器计数是否处于零以确定是否将擦除目标块。在一些实施例中,处理装置可在擦除块之前解析所述块以确认不存在含有有效数据的存储器单元。
72.方法接着进行到操作425,其中处理装置擦除目标块。接着清除目标块的任何旧或无效数据且准备好再次写入。
73.在操作430处,处理装置基于擦除目标块而更新有效存储器单元的计数。在擦除目标块之后,更新超级块的有效存储器单元的计数以反映目标块具有零有效存储器单元计数。在操作430处,当更新有效存储器单元的计数时,处理装置可继续在超级块内执行数据操作,在单独超级块处开始数据操作的执行,或停止与垃圾收集有关的数据操作。
74.在实例中,一种存储器装置包括多个超级块。每一超级块包括多个块,且每一块包括多个存储器单元。存储器装置包括存储器控制器,其配置成为存储器装置的每一超级块维持超级块中的有效存储器单元的计数。存储器控制器还维持存储器装置的每一块中的有效存储器单元的计数。存储器控制器接着基于第一超级块中的有效存储器单元的计数而选择第一超级块。基于第一目标块中的有效存储器单元的计数而从超级块中选择第一目标块。存储器控制器基于有效存储器单元的计数而确定是否将擦除第一目标块。如果有效存储器单元的计数为零,那么存储器控制器擦除第一目标块。在擦除第一目标块之后,存储器控制器基于第二目标块中的有效存储器单元的计数而选择第二目标块,且确定第二目标块是否包括待重新定位的数据。响应于确定将重新定位第二目标块的数据,存储器控制器识别第二目标块的存储有效数据的一或多个存储器单元且将有效数据重新定位到干净块。干净块可为多个超级块中的第二超级块中的干净块。在将有效数据重新定位到干净块之后,存储器控制器擦除第二目标块且更新目标多个块中的有效存储器单元的计数。存储器控制器可基于后续目标块中的有效存储器单元的计数而选择后续目标块,且基于后续目标块中的有效存储器单元的计数而确定是否将重新定位后续目标块的数据。响应于确定将重新定位后续目标块的数据,存储器控制器识别后续目标块的存储有效数据的一或多个存储器单元,将有效数据重新定位到第二超级块的干净块,且擦除后续目标块。存储器控制器接着基于擦除后续目标块而更新目标多个块中的有效存储器单元的计数。由存储器控制器进行的此过程可继续直至第一超级块的有效存储器计数为零。可根据存储器控制器的处理需要暂停或终止此过程。
75.在另一实例中,一种存储器装置包括多个超级块。每一超级块包括多个块,且每一块包括多个存储器单元。存储器装置包括存储器控制器,其配置成为存储器装置的每一超级块维持超级块中的有效存储器单元的计数。存储器控制器还维持存储器装置的每一块中的有效存储器单元的计数。存储器控制器接着基于第一超级块中的有效存储器单元的计数而选择第一超级块。基于第一目标块中的有效存储器单元的计数而从超级块中选择第一目标块。存储器控制器基于有效存储器单元的计数而确定是否将擦除第一目标块。如果有效存储器单元的计数为零,那么存储器控制器擦除第一目标块。在擦除第一目标块之后,存储器控制器基于第二目标块中的有效存储器单元的计数等于第二目标块的存储器单元的总数而选择第二目标块,且将第二目标块的所有数据重新定位到第二超级块的干净块。存储器控制器擦除第二目标块,且基于第二目标块的擦除而更新目标多个块中的有效存储器单元的计数。存储器控制器可从目标多个块中识别目标多个块的具有等于目标块的存储器单
元的总数的有效存储器单元的对应计数的每一后续目标块,且对于每一后续目标块,将后续目标块中的所有数据重新定位到多个超级块中的第二超级块的第二干净块,擦除后续目标块,且基于多个后续目标块的擦除而更新目标多个块中的有效存储器单元的计数。由存储器控制器进行的此过程可继续直至第一超级块的有效存储器计数为零。可根据存储器控制器的处理需要暂停或终止此过程。
76.图5提供在一些实施例的上下文中说明计算环境的组件之间的交互的交互图,其中执行使用如本文中所描述的存储器装置上的数据的分配技术的方法。方法的操作可由处理逻辑进行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130或140)或其某一组合执行。尽管操作以特定顺序或次序展示,但除非另外规定,否则所述过程的次序可修改。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外和/或替代地,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中使用所有过程。在图5中所说明的实例的上下文中,主机系统可包括主机系统120,存储器子系统控制器可包括存储器子系统控制器115,且存储器装置可包括存储器装置140。
77.如图5中所展示,在操作502处,主机系统将与存储器单元相关联的存储器命令发送到存储器子系统110。在操作504处,存储器子系统控制器115接收与优化存储器单元相关联的存储器命令。在操作506处,存储器装置为存储器的每一块提供有效存储器单元的指示。在一些实施例中,快闪转换层可为存储器的每一块维持有效存储器单元的计数。
78.响应于在操作504处接收的存储器命令,存储器子系统控制器115执行垃圾收集操作。在操作508处,垃圾收集操作包括:基于有效存储器单元的计数而选择第一超级块;基于有效存储器单元的计数而选择目标块;以及将数据从目标块重新定位到单独超级块中的另一块。在操作510处,存储器装置将目标块内的数据重新定位到单独超级块中的另一块。举例来说,超级块#1经历垃圾收集操作。超级块#1包括目标块1。存储在目标块#1内的数据经历垃圾收集操作,且根据一些实施例,将目标块#1内的数据重新定位到超级块#2内的块a。
79.存储器控制器确定目标块是否准备好被擦除(例如,是否所有有效数据已经重新定位),且根据目标块准备好被擦除的确定来擦除目标块(参见操作512)。
80.根据在操作512处确定将擦除目标块,在操作514处擦除目标块。在擦除目标块之后,在操作516处,存储器控制器将具有空块的超级块的记录提供到主机系统,所述主机系统在操作518处接收所述记录。
81.主机系统可接着至少部分地基于接收的指示数个空块的记录而决定利用存储器装置内的另一选择超级块(例如,第二超级块)重复502至518的步骤。
82.图6说明计算机系统600的实例机器,所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以基于图1的数据操作符组件109执行对应于数据操作符的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中
的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
83.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定待由所述机器进行的动作的指令的集合(依序或以其它方式)的任何机器。此外,虽然说明单个机器,但还应认为术语“机器”包括机器的任何集合,所述集合单独地或共同地执行指令的一(或多个)集合以执行本文中所论述的方法中的一或多种。
84.实例计算机系统600包括处理装置602、主存储器604(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rdram等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等)以及数据存储系统618,其经由总线630彼此通信。
85.处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更明确地说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602还可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可进一步包括用以经由网络620通信的网络接口装置608。
86.数据存储系统618可包括机器可读存储媒体628(也称为计算机可读媒体),所述机器可读存储媒体628上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626也可在其由计算机系统600执行期间完全或至少部分地驻留在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
87.在一个实施例中,指令626包括用以基于有效存储器计数组件(例如,图1的数据操作符组件109)而实施对应于数据操作的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包括存储指令的一或多个集合的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包括能够存储或编码供机器执行的指令的集合且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此应认为术语“机器可读存储媒体”包括但不限于固态存储器、光学媒体和磁性媒体。
88.已就计算机存储器内的数据位的操作的算法和符号表示而言呈现了先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常被认为是引起所需结果的操作的自洽序列。所述操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已经证明主要出于通用的原因,有时将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
89.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示
为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
90.本公开还涉及一种用于执行本文中的操作的设备。此设备可出于所需目的而专门构造,或其可包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于各自耦合到计算机系统总线的包括软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁性卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的媒体。
91.本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备有关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
92.本公开可提供为计算机程序产品或软件,其可包括在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包括用于以机器(例如计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包括机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
93.在前述说明书中,本公开的实施例已参考其具体实例实施例进行描述。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,说明书和图式应以说明性意义而非限制性意义看待。
再多了解一些

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

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

相关文献