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

后台存储器扫描块选择的制作方法

2022-06-18 03:31:18 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,并且更具体地说,涉及用于后台存储器扫描的块选择。


背景技术:

2.一种存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可使用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。


技术实现要素:

3.在一个方面,本公开设计一种系统,其包括:多个存储器装置;以及处理装置,其以操作方式与所述多个存储器装置耦合以执行包括以下各项的操作:标识位于由逻辑单元号(lun)标识的逻辑单元(lu)上的多个块条带,其中所述lu是存储器装置的多个lu中的一个;确定所述多个块条带中的每一个的填充比率;在所述多个块条带中选择具有最高填充比率的块条带;从选定的块条带中标识所述lu的存储器块;以及对所述存储器装置的所述存储器块执行存储器扫描操作。
4.在另一方面,本公开设计一种方法,其包括:标识存储用于位于逻辑单元(lu)上的多个块条带的填充阈值索引(fti)元数据的存储器地址范围,所述lu由逻辑单元号(lun)标识;在所述存储器地址范围内确定对应于最高fti的存储器地址;基于所述存储器地址确定块条带;从所述块条带中标识所述lu的存储器块;以及对所述存储器装置的所述存储器块执行存储器扫描操作。
5.在另外的方面,本公开涉及一种非暂时性机器可读存储媒体,其包含指令,所述指令在由处理装置存取时使所述处理装置执行包括以下各项的一或多个操作:标识位于由逻辑单元号(lun)标识的逻辑单元(lu)上的多个块条带,其中所述lu是存储器装置的多个lu中的一个;确定所述多个块条带中的每一个的填充比率;在所述多个块条带中选择具有最高填充比率的块条带;从选定的块条带中标识所述lu的存储器块;以及对所述存储器装置的所述存储器块执行存储器扫描操作。
附图说明
6.根据下文给出的详细描述并且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
7.图1a示出根据一些实施例的包含存储器子系统的实例计算系统。
8.图1b示出根据一个实施例的实例存储器子系统控制器。
9.图2是根据实施例的示出跨越ic逻辑单元(lun)分配的块集合(块条带)的框图。
10.图3是根据实施例的示出被配置成支持基于区的映射的数据结构的实例的框图。
11.图4是根据实施例的示出耦合的nand页阈值表的实例的框图。
12.图5是根据实施例的块条带填充阈值索引(fti)元数据的实例。
13.图6是根据实施例的为存储器扫描选择存储器块的实例方法的流程图。
14.图7是根据实施例的为存储器扫描选择存储器块的实例方法的流程图。
15.图8是可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
16.本公开的各方面涉及在支持分区命名空间的存储器子系统的非易失性存储器装置上选择用于存储器扫描的块。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1a描述存储装置和存储器模块的实例。一般来说,主机系统可使用包含例如存储数据的存储器装置之类的一或多个组件的存储器子系统。主机系统可提供将存储在存储器子系统处的数据并且可请求将从存储器子系统检索的数据。
17.存储器子系统可包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例是与非(nand)存储器装置。下文结合图1a描述非易失性存储器装置的其它实例。非易失性存储器装置是由逻辑单元号(lun)标识的一或多个裸片(或逻辑单元(lu))的封装。每个lu可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,nand装置),每个平面由物理块集组成。每个块由页集合组成。每个页由存储器单元(“单元”)的集合组成。所述单元是存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,并且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由例如“0”和“1”之类的二进制值或此类值的组合表示。
18.存储器装置可包含以二维网格布置的多个存储器单元。存储器单元蚀刻到列(下文也称为位线)和行(下文也称为字线)的阵列中的硅晶片上。字线可指存储器装置的存储器单元的一或多个行,所述一或多个行与一或多个位线一起使用以产生存储器单元中的每一个的地址。位线和字线的相交点构成存储器单元的地址。下文中,块是指存储器装置的用于存储数据的单元,并且可包含存储器单元群组、字线群组、字线或个别存储器单元。可以将一或多个块分组在一起以形成存储器装置的平面,以便允许在每一平面上进行并发操作。存储器装置可包含执行两个或更多个存储器平面的并发存储器页存取的电路系统。例如,存储器装置可包含用于存储器装置的每个平面的相应存取线驱动器电路和电力电路以促进对包含不同页类型的两个或更多个存储器平面的页进行并发存取。
19.存储器装置的单元(或简称为“媒体”)可从lu(上层)到平面、到块、到页(下层)以分级方式组织。块集合(也称为块条带)可以是跨不同lu的平面布置的块的集合,使得块出于数据存储的目的分组在一起。对块集合的写入允许更多的主机数据可跨多个lu同时被并行写入和读取。
20.对于一些类型的非易失性存储器装置(例如,nand装置),后台扫描是恰当nand闪存操作的组成部分。扫描可指对nand装置中的编程位的检查。后台扫描操作用于通过在nand装置的整个寿命周期内监测nand装置中的编程数据的位错误率来维持nand装置的稳定和性能。后台扫描可依赖于对nand装置上的完全和部分编程的块的扫描。在非易失性存储器装置(或固态装置(ssd))中,块条带可横跨所有物理逻辑单元(lu),并且使用逻辑到物理(l2p)映射方案循序地且以可预测物理次序填充,以将逻辑主机块地址(lba)映射到物理nand地址。由于传统ssd中的此l2p映射,每个lu中存在一些最小数目的部分填充的块和块
条带。由于这些系统设计考虑因素,因此写入特定容量的ssd将在装置中的每个lu上具有可用于执行所需的后台扫描的块的代表性样本。
21.在分区命名空间(zns)ssd中,没有传统意义上的l2p映射,并且每个主机区可在第一主机写入到所述区时映射到快闪转换层(ftl)内的块条带。区可被称为数据群组,并且可称为lba空间中的范围。“数据群组”可包含块集合内的一或多个块,或可包含跨越多个lu的一或多个块集合。区的lba(例如,与数据群组相关联的逻辑地址空间)可在lba空间内循序地排序并且映射到物理地址空间内的循序地排序的物理地址。区内的写入由区写入指针循序地从区的开端开始执行,并且区内的数据无法任意地被覆写。对已经写入的区进行覆写的唯一方式是复位区写入指针,从而有效地删除区中的所有数据,并且从区的开端重新开始写入。zns ssd可报告区活动限制(zal),所述zal向主机指示区可保持开放的最长时间。区活动限制限定主机可离开部分填充的区的时间量。然而,即使所述区可能显示为向主机报告已完成,对应nand块也可能未完全编程,从而增加了nand后台扫描操作的复杂性。此外,zns中的区大小可能比典型ssd中的块条带小得多,从而在zns ssd中产生较大数目的块条带。
22.本公开的存储器子系统通过针对存储器扫描选择具有最高页填充比率的候选存储器块来解决以上和其它不足。在一个实施例中,存储器子系统标识位于由逻辑单元号(lun)标识的逻辑单元(lu)上的多个块条带,其中lu是存储器装置的多个lu中的一个。子系统确定多个块条带中的每一个的填充比率。子系统在块条带中选择具有最高填充比率的块条带。子系统从选定的块条带中标识lu的存储器块。子系统对存储器装置的存储器块执行存储器扫描操作。
23.上文引用的方法和系统的各方面在下文中通过实例而非通过限制的方式进行详细描述。
24.图1a示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或其组合。
25.存储器子系统110可以是存储装置、存储器模块,或存储装置和存储器模块的组合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm),和各种类型的非易失性双列直插式存储器模块(nvdimm)。
26.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的这类计算装置。
27.计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1a示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与
……
耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。
28.主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
29.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤信道、串行附接scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。所述物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。在存储器子系统110通过物理主机接口(例如,pcie总线)与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1a示出存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
30.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
31.非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(nand)型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand类型快闪存储器包含例如二维nand(2d nand)和三维nand(3d nand)。
32.存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc)每单元可存储一个位。其它类型的存储器单元,例如多层单元(mlc)、三层单元(tlc)、四层单元(qlc)和五层单元(plc)每单元可存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc、plc或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分,以及mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为可指用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,nand)的情况下,页可分组以形成块。
33.尽管描述了例如非易失性存储器单元的3d交叉点阵列及nand型快闪存储器(例如,2d nand、3d nand)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器,或电可擦除可编程只读存储器(eeprom)。
34.存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有进行本文所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
35.存储器子系统控制器115可包含处理装置,所述处理装置包含被配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所示出的实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
36.在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所提取数据等。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1a中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
37.通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将所述命令或操作转换为指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、命名空间)与物理地址(例如,物理mu地址、物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
38.存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并且解码所述地址以存取存储器装置130。
39.存储器子系统110包含块选择组件113,所述块选择组件113可针对分区命名空间ssd中的存储器扫描选择具有最高页填充百分比/比率的块候选。在一些实施例中,存储器子系统控制器115包含块选择组件113的至少一部分。在一些实施例中,块选择组件113是主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含块选择组件113的至少一部分,并且被配置成执行本文所描述的功能性。下文描述关于块选择组件113的操作的其它细节。
40.参考图1b,在一个实施例中,存储器子系统控制器115可包含存储器扫描管理器116和直接存储器存取(dma)引擎129。dma引擎129可以是存储器子系统的基于硬件的组件,其被配置成执行dma命令并且将直接存储器从源存储器区传送到目的地存储器区。存储器扫描管理器116可包含读取电平校准(rlc)扫描模块121、数据保持扫描模块122和后台扫描模块125。存储器扫描管理器116可将具有lun的请求发送到块选择组件113以请求由lun标
识的lu中的块。存储器扫描管理器116可接着对用lun标识的块执行各种存储器扫描,包含读取电平校准扫描、数据保持扫描或后台扫描(对于错误位)。
41.读取电平校准扫描可以是确定存储器装置的读取电平阈值(用于读取操作的电压电平阈值)的存储器扫描。读取电平阈值可用于连续的读取电平校准,其调整用于从存储器装置读取页的一或多个读取电平阈值。可执行读取电平校准操作以使每个阈值保持居中,使得存储器组件可实现可能的最佳总位错误率(ber)。所述校准被称为连续的,因为算法以离散间隔连续地进行采样。
42.数据保持扫描指在通电时扫描多个块/lun以监测在非易失性存储器装置断电可能很长/延长的时间段之后的数据保持。为了避免使用可能损坏的数据,控制器115可在通电时对非易失性存储器装置执行数据保持扫描以评估数据的状况。
43.后台扫描可在nand装置的整个寿命周期内监测用于nand装置中的编程数据的位错误率。后台扫描可依赖于对nand装置上的完全和部分编程的块的扫描。
44.本地存储器119可包含映射数据结构126、耦合的nand页阈值表127以及填充的阈值索引(fti)元数据128。映射数据结构126可包含如图3中进一步描述的块集合的各种映射。耦合的nand页阈值表127可包含fti到耦合的nand页阈值的映射。fti元数据128可包含存储由存储器子系统110中的lun分组的每个块条带的fti值的元数据。fti值是指示块条带的填充比率的索引值(自然数)。填充比率与块条带中具有有效数据的页的比率或百分比相关联。fti值的耦合的nand页阈值是指在块条带中完全耦合的最小页数,以使块条带与对应fti值相关联。
45.如果页可被读取而不会由于邻近页未被编程而引起读取干扰,则所述页是完全耦合的。即,在后续页未被编程的情况下,如果页被编程,则用于确定位错误率是不可靠的。读取干扰是指从存储器单元读取,所述存储器单元可使得同一存储器块中的一些邻近存储器单元随时间而改变。在一个实施例中,由于读取干扰错误,仅完全耦合的页用于记录填充比率的计数。为了降低复杂性,耦合的nand页阈值表127用于根据块集合的写入光标接近完全耦合的页。
46.块选择组件113可接收标识由lun值标识的逻辑单元(lu)内的块候选的请求,所述请求含有lun值。块选择组件113可查询lun的块条带的fti元数据128,其中块条带与最高fti值相关联。组件113接着基于映射数据结构126将块条带映射到lun内的块。块选择组件113可接着返回所述块的标识符,在另一实施例中,块选择组件113还可确定所述块的可由本地存储器119跟踪的最后编程页,并且返回所述块的所述最后编程页的标识符。
47.图2是示出根据实施例的跨越逻辑单元分配的块集合(块条带)的框图。参考图2,参考一或多个存储器装置130、140,所述存储器装置130、140内的由lun(例如,lun 0和lun 1)标识的lu的物理地址空间可通过平面、块和页以分级方式组织。因此,例如,lun 0和lun 1的每个lu可包含平面a和平面b,并且平面a和平面b中的每一个可包含块a和块b。块集合(或块条带)可限定为跨越存储器装置的多个裸片的平面排列的块的群组。如所示出,块集合144被排列成包含lun 0的平面a的块a、由lun 1标识的lu的平面b的块a等,例如,还包含由lun 1标识的lu的平面c的块a,并且如果存在且在线上的话,持续到另外的lun。
48.图3是根据实施例的示出被配置成支持基于区的映射的数据结构的实例的框图。控制器115可将映射数据结构126中的一些存储在易失性本地存储器119和/或图1a的非易
失性存储器装置130-140(未示出)中。控制器115还可使用图3的数据结构支持媒体布局(例如,区将位于物理地址空间内的映射)。在图3中,区映射数据结构201被配置成提供例如用于zns操作的lba空间之类的命名空间中的区的媒体布局信息。区映射数据结构201可具有多个条目。区映射数据结构201中的每个区映射条目标识关于区的信息,例如区的起始lba 211、区的块集合标识符213、区的区光标值215、区的状态217等。区映射数据结构201含有关于区的信息,并且可用于标识区的物理位置,例如,区位于物理地址空间中的哪个块条带/lun。
49.主机系统120在区起始lba 211的lba处开始在区中写入数据。主机系统120可在lba空间中循序地在区中写入数据。在一定量的数据已写入到区中之后,由区光标值215标识用于写入后续数据的当前起始lba。针对区的每个写入命令将区光标值215移动到用于区的下一写入命令的新起始lba。状态217可具有指示区为空、满、隐式地打开、显式地打开、关闭等的值,以跟踪写入所述区的进程。
50.参考图3,块集合映射数据结构123存储控制区的动态媒体布局的方面的数据。在一个实施例中可以是表的块集合映射数据结构123可具有多个条目。块集合数据结构123中的每个块集合条目标识其中存储区的数据的lu(例如,lun 0、lun 1等)的数目/计数271。对于用于所述区的每个lu,块集合映射数据结构123的块集合条目具有lun标识符273、块标识符275等。存储器子系统可使用块集合映射数据结构123来标识对应于给定lu内的块条带的块。
51.lun标识符273标识存储器子系统110的媒体中的特定lu(例如,lun 0、lun 1等),可在所述特定lu上存储区的数据。块标识符275标识使用lun标识符273标识的lu内的特定存储器块(例如,nand快闪存储器或其它媒体),可在所述特定存储器块中存储所述区的数据。在一个实施例中,块集合映射数据结构123是通过块集合id(例如,块条带id)编索引的平面索引映射表。块集合映射数据结构123可将块集合id映射到存储器装置的每个裸片/lun内的物理块(例如,物理块地址或标识符)。
52.例如,存储器子系统110接收多个写入命令流。在实施例中,所述多个流中的每个相应流用于在一个实施例中循序地在逻辑地址空间中写入数据;并且在另一实施例中,所述多个流中的流被配置成在一个实施例中伪循序地或随机地在逻辑地址空间中写入数据。每个写入流包含将数据集一起作为群组进行写入、微调、重写的命令集合。在所述群组中,数据可循序地、随机地或伪循序地在逻辑空间中写入。优选地,群组中的数据写入到擦除块集合中,其中擦除块集合中的存储器单元存储所述流的数据,但不存储来自其它流的数据。可擦除所述擦除块组以移除所述流的数据,而不擦除其它流的数据。
53.例如,准许写入流中的每一个在存储器子系统110的存储器装置130、140的媒体中分配的命名空间中的区中的lba处循序地写入,但禁止其在lba(或逻辑地址)空间中无序地写入数据。因为区具有向主机指示区可保持开放的最长时间的区活动限制(zal),所以区可在数据写入到所述区之前关闭,例如,从而产生部分填充的区。也就是说,即使区被指示为完成/关闭,一些存储器块仍然是空的/无效的。
54.用于后台扫描目的的块可以是具有最高页填充比率的nand块。存储器扫描的另一考虑因素是,为了经由扫描进行位错误率检测,块的填充页应被视为完全耦合的以便被视为是可读取的。取决于nand类型,如果存储器控制器可读取页而不会由于后续页未被编程
而引起读取干扰,则所述页是完全耦合的。因此,预定耦合的nand页阈值表可用于确定块条带的填充比率。
55.图4是根据实施例的示出耦合的nand页阈值表的实例的框图。表400可以是用于一种类型的nand装置的耦合的nand页阈值表。表400可由控制器115使用以产生指示块条带的填充比率的填充阈值索引(fti)值。fti值指示块条带的填充比率。耦合的nand页阈值列指示针对对应fti值完全耦合的填充页的最小阈值。
56.图5是根据实施例的块条带填充阈值索引(fti)元数据的实例。在此实例中,元数据128指示lun 0包含块条带0、1、2、3等;lun 1包含块条带i、i 1、i 2、i 3等;lun n包含块条带j、j 1、j 2、j 3等。在一个实施例中,元数据128可包含名称/值对。在另一实施例中,元数据128包含fti值的连续阵列,其中fti值具有基于元数据中的fti值的位置的到块条带的预定映射。在一个实施例中,fti元数据128是通过块集合id(例如,块条带id)编索引的阵列。应注意,fti值的连续阵列可促进如下文进一步描述的块选择。
57.在一个实施例中,元数据128中的块条带的fti值可初始化到0。此处,fti值可以是映射到耦合的nand页阈值的索引值(例如,0、1、2、3、4等)。在一个实施例中,当将页写入(编程)到与区相关联的块条带时,存储器控制器更新元数据128中的条目。具体地说,当作出写入请求以编程块条带(在此情况下,块条带n)时,可从元数据128检索块条带n的当前fti值。所述当前fti值可用于查找下一fti值,以及用于下一fti值的耦合的nand页阈值(例如,下一耦合的nand页阈值)。接着可将下一耦合的nand页阈值与正被编程的当前页的页数进行比较,并且如果页数匹配或超出下一耦合的nand页阈值,则将用于块条带的fti值更新为下一fti值,例如,0-》1。
58.例如,参考图1a、4-5,给定块条带n具有为0的fti值。在经由光标值对区进行写入时,所述区可映射到页值和块条带值,例如,块条带n的页187。控制器115可从对应于块条带n的元数据128检索为0的fti值。在为0的fti值之后,控制器115从表400查找下一为1的fti值。控制器115从表400检索下一耦合的nand页阈值,例如,187。控制器115将正被编程的当前页与下一耦合的nand页阈值进行比较,例如,为187的当前页大于或等于为187的下一耦合的nand页阈值。响应于确定正被编程的当前页的页数大于或等于下一耦合的nand页阈值,控制器115将用于块条带n的元数据128中的fti值更新为下一fti值,例如,1。
59.在一个实施例中,为了标识由lun标识的lu中具有最高页填充的块条带,块选择模块113可迭代到特定lun的元数据128以将具有最高fti值的块条带标识为具有最高页填充的块条带。在标识块条带之后,块选择模块113可查询块集合映射数据结构123以基于块条带和lun确定块候选者。
60.在一个实施例中,元数据128由lun标识的lu进行分组,使得每个lun对应于元数据128的连续片段。例如,扫描管理器116可请求块选择组件113返回用于块候选者的标识符以对lun 0执行存储器扫描。在一个实施例中,块选择组件113可标识来自用于与lun 0相关联的块集合的块集合映射数据结构123的块条带(或块集合)。块选择组件113可接着遍历或扫描与lun 0相关联的块条带的元数据128以检索用于所述块条带的fti值。块选择组件113将fti值进行比较以确定具有最高fti值的块条带。bsm基于块集合映射数据结构123将块条带转换成块并且获得所述块的标识符。在一个实施例中,块选择组件113可检索所述块的最后编程页,所述最后编程页可由本地存储器119跟踪。块选择组件113将块标识符和/或最后编
程页返回到扫描管理器116。
61.在另一实例中,块选择组件113可将执行元数据128中的最高fti值搜索的请求发送到dma引擎,例如图1b的dma引擎129。在一个实施例中,元数据128包含由块条带#编索引并且由lun进行分组的fti值的阵列。在阵列中使用元数据128的情况下,元数据128可被加载到存储器上,并且dma引擎129可通过使用最小/最大/比较函数来加快对块条带的搜索(在不阻止用于处理其它任务的控制器的情况下)以从对应于lu(例如,lun 0)的元数据128的存储器条目迭代到已标识的具有最高fti值的存储器地址。
62.在一个实施例中,块选择组件113使用已标识的存储器地址标识块条带。例如,块选择组件113可根据存储器地址范围内的起始地址计算已标识的存储器地址的偏移值,并且使用所述偏移值计算块条带#。例如,如果起始地址0x00对应于块条带(bs)0,并且bs递增0x04,则存储器地址0x04(偏移=0x04)对应于bs 1,存储器地址0x08(偏移=0x08)对应于bs 2,以此类推。当已标识的存储器地址映射到块条带#时,dma引擎可向块选择组件113通知所述块条带#。块选择组件113接着基于块集合映射数据结构123将块条带#转换为块#并且获得如上文所描述的块的标识符。
63.图6是根据本公开的一些实施例的为分区命名空间ssd中的存储器扫描选择存储器块的实例方法660的流程图。所述方法660可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1b的块选择组件113来执行方法660。虽然以特定顺序或次序示出,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。此外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
64.在操作661处,处理逻辑标识位于由逻辑单元号(lun)标识的逻辑单元(lu)上的那些块条带,其中lu是存储器装置内的多个lu中的一个。可从块集合映射数据结构123检索块条带,因为块集合映射数据结构123含有用于lu中的所有块条带的映射。在操作663处,处理逻辑确定多个块条带中的每一个的填充比率。在操作665处,处理逻辑在多个块条带中选择具有最高填充比率的块条带。在操作667处,处理逻辑从选定的块条带中标识lu的存储器块。可通过从块集合映射数据结构123检索与用于块条带的lun相关联的第一块条目来标识存储器块候选。在操作669处,处理逻辑对存储器装置的存储器块执行存储器扫描操作。
65.在一个实施例中,确定块条带的填充比率包括确定块条带的填充阈值索引(fti)元数据。在一个实施例中,块条带的fti元数据对应于同一lu的多个块条带被递增地索引。
66.在一个实施例中,确定块条带的填充阈值索引(fti)元数据包括经由直接存储器存取(dma)引擎确定块条带的填充阈值索引(fti)元数据。在一个实施例中,处理逻辑进一步响应于对块条带的页写入而通过以下操作更新块条带的fti元数据:确定用于页写入的页数;使用耦合的nand页阈值表基于页数确定fti值;以及根据fti值更新fti元数据。
67.在一个实施例中,存储器装置是具有分区命名空间的非易失性存储器装置。在一个实施例中,存储器扫描包括以下各项中的至少一个:读取电平校准存储器扫描、数据保持存储器扫描或用于检测位错误的后台存储器扫描。
68.图7是根据本公开的一些实施例的为分区命名空间ssd中的存储器扫描选择存储
器块的实例方法700的流程图。所述方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1b的块选择组件113来执行方法700。虽然以特定顺序或次序示出,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。此外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。
69.在操作701处,处理逻辑标识存储用于位于逻辑单元(lu)上的多个块条带的填充阈值索引(fti)元数据的存储器地址范围,所述lu由逻辑单元号(lun)标识。在操作703处,处理逻辑在存储器地址范围内确定对应于最高fti的存储器地址。在操作705处,处理逻辑基于存储器地址确定块条带。在操作707处,处理逻辑从块条带中标识lu的存储器块。在操作709处,处理逻辑对存储器装置的存储器块执行存储器扫描操作。
70.在一个实施例中,基于存储器地址确定块条带包括基于存储器地址从存储器地址范围中的起始位置确定偏移值,以及基于所述偏移值确定块条带。在一个实施例中,块条带的fti元数据对应于同一lu的多个块条带被递增地索引。
71.在一个实施例中,在存储器地址范围内确定对应于最高fti的存储器地址包括在存储器地址范围内经由直接存储器存取(dma)引擎确定对应于最高fti的存储器地址。在一个实施例中,处理逻辑进一步响应于对块条带的页写入而通过以下操作更新块条带的fti元数据:确定用于页写入的页数;使用耦合的nand页阈值表基于页数确定fti值;以及根据fti值更新fti元数据。
72.在一个实施例中,存储器装置是具有分区命名空间的非易失性存储器装置。在一个实施例中,存储器扫描包括以下各项中的至少一个:读取电平校准存储器扫描、数据保持存储器扫描或用于检测位错误的后台存储器扫描。
73.图8示出计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的块选择组件113的操作)。在替代实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
74.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接桥,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然示出了单个机器,但还应认为术语“机器”包含单独地或共同地执行(一或多个)指令集以执行本文所论述的方法中的任何一或多种的机器的任何集合。
75.实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rdram等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(sram)等),以及数据存储系统618,其经由总线
630彼此通信。
76.处理装置602表示一或多个通用处理装置,如微处理器、中央处理单元等等。更具体地说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602被配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含通过网络620通信的网络接口装置608。
77.数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
78.在一个实施例中,指令626包含实施对应于块选择组件(例如,图1b的块选择组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体624示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令并且使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体和磁性媒体。
79.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是引起所要结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
80.然而,应牢记,所有这些和类似术语应与适当物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
81.本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
82.本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文所描述的本公开的教示。
83.本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
84.在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

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

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

相关文献