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

使用子块模式的分区命名空间限制缓解的制作方法

2022-03-04 23:09:28 来源:中国专利 TAG:

使用子块模式的分区命名空间限制缓解


背景技术:

1.相关申请的交叉引用
2.本技术要求2020年9月4日提交的名称为“使用子块模式的分区命名空间限制缓解(zoned namespace limitation mitigation using sub block mode)”的美国临时专利申请号63/074,936的权益和优先权,该申请的全部内容以引用的方式并入本文,就好像在本文完全阐述一样。
技术领域
3.本公开整体涉及电子设备,并且更具体地涉及存储设备。
4.背景技术
5.存储设备使得用户能够存储和检索数据。存储设备的示例包括非易失性存储器设备。非易失性存储器通常在功率循环之后保留数据。非易失性存储器的示例是闪存存储器,其可以包括一个或多个管芯上的nand单元阵列。闪存存储器可存在于固态设备(ssd)、安全数字(sd)卡等中。
6.闪存存储设备可存储与数据相关联的控制信息。例如,闪存存储设备可维护控制表,该控制表包括逻辑地址到物理地址的映射。该控制表用于跟踪逻辑扇区或块在闪存存储器中的物理位置。控制表存储在非易失性存储器中,以使得能够在功率循环之后访问存储的数据。
7.分区命名空间(zns)是ssd命名空间架构,其中非易失性存储器被划分为固定大小组的逻辑地址或区。每个区用于特定应用。例如,主机可将与不同应用相关联的数据写入不同区中。区散布在单个管芯上,其中每个区通常跨越48mb或64mb的大小。闪存存储设备与主机介接以获得限定的区,并且将该区映射至闪存存储器中的块。因此,主机可将单独应用相关的数据写入到闪存存储器的单独的块中。
8.传统上,例如当主机覆写数据时,可使闪存存储设备中的数据在小组块(例如,4kb数据)中无效。为了从闪存存储器移除无效的数据,闪存存储设备执行垃圾收集(gc)过程,其中可将有效数据复制到新块并且从旧块擦除无效的数据。然而,在zns中,在使区中的数据无效之前顺序地写入该区,因此可立刻使整个区无效(例如,48或64mb数据)。zns的该特征减少或消除了gc,继而降低了写入放大(wa)。因此,zns可优化闪存存储设备的耐久性,以及改善输入/输出(i/o)命令延迟的一致性。


技术实现要素:

9.本文公开了存储设备的一个方面。该存储设备包括存储器和控制器。存储器包括多个块,其中这些块中的每个块包括多个子块。控制器被配置为将区映射至这些子块中的至少一个子块,其中该区包括多个逻辑地址。
10.本文公开了存储设备的另一个方面。该存储设备包括存储器和控制器。存储器包括多个块,其中这些块中的每个块包括多个子块。控制器被配置为确定开放区的数目,并且
响应于开放区的数目满足阈值而将开放区映射至子块。
11.本文公开了存储设备的另一方面。该存储设备包括存储器和控制器。存储器包括多个块,其中这些块中的每个块包括多个子块。控制器被配置为接收将与区相关联的数据写入子块中的请求,并且响应于该请求而将这些区中的每个区映射至这些子块中的至少一个子块。
12.应当理解,根据以下具体实施方式,存储设备的其他方面对于本领域技术人员而言将变得显而易见,其中,通过图示的方式示出和描述装置和方法的各个方面。如将认识到的,这些方面可以其他和不同的形式实现,并且其若干细节能够在各种其他方面进行修改。因此,附图和具体实施方式本质上被认为是例示性的而不是限制性的。
附图说明
13.现在将参考附图以举例的方式而非限制的方式在具体实施方式中呈现本发明的各个方面,其中:
14.图1是例示与主机设备通信的存储设备的示例性实施方案的框图。
15.图2是例示图1的存储设备的非易失性存储器中的逻辑到物理映射表的示例的概念图。
16.图3是绘示图1的存储设备中的存储器单元阵列的示例的概念图。
17.图4是绘示图1的存储设备中的块阵列的示例的概念图。
18.图5是示出可在图1的存储设备中实现的垃圾收集(gc)过程的示例的概念图。
19.图6是示出区与由图1的存储设备接收的逻辑地址组的关联的示例的概念图。
20.图7是示出将数据写入映射至不同区的块的、图1的存储设备的控制器的示例的概念图。
21.图8是示出将数据写入映射至不同区的子块的、图1的存储设备的控制器的示例的概念图。
22.图9是示出由图1的存储设备中的控制器进行的区至子块的示例性映射的概念图。
23.图10是示出由图1的存储设备中的控制器进行的区至子块的另一个示例性映射的概念图。
24.图11是示出由图1的存储设备中的控制器进行的区至子块的附加示例性映射的概念图。
25.图12是示出如由图1的存储设备执行的用于将数据写入映射至子块的区的方法的流程图。
具体实施方式
26.下面结合附图阐述的具体实施方式旨在作为对本发明的各种示例性实施方案的描述,而并非旨在代表可以实践本发明的唯一实施方案。具体实施方式包括具体细节,其目的是提供对本发明的透彻理解。然而,对本领域的技术人员将显而易见的是,可在没有这些具体细节的情况下实践本发明。在一些情况下,熟知的结构和部件以框图的形式示出,以便避免使发明的概念晦涩难懂。首字母缩略词和其他描述性术语可仅为了方便和清楚起见而使用,并非旨在限制本发明的范围。
27.词语“示例性”或“示例”在本文中用于表示用作示例、实例或说明。本文中描述为“示例性”的任何示例性实施方案并非一定被解释为比其他示例性实施方案更优选或更具优势。同样,术语装置、方法或制品的“示例性实施方案”不要求本发明的所有示例性实施方案包括所述的部件、结构、特征、功能、工艺、优点、有益效果或操作模式。
28.如本文所用,术语“联接”用于指示两个部件之间的直接连接,或者在适当的情况下,指示通过居间部件或中间部件彼此间接连接。相比之下,当部件被称为“直接联接”至另一个部件时,不存在居间元件。
29.在以下具体实施方式中,将呈现与主机设备通信的存储设备的各个方面。这些方面非常适用于闪存存储设备,诸如ssd和sd卡。然而,本领域的技术人员将认识到,这些方面可扩展到能够存储数据的所有类型的存储设备。因此,对具体装置或方法的任何引用仅旨在例示本发明的各个方面,应当理解,在不脱离本公开的实质和范围的情况下,这些方面可具有广泛的应用范围。
30.通常,在zns中,主机向闪存存储设备提供逻辑地址的区或组的限定。例如,主机可指示与48或64mb数据相对应的一组lba与第一区相关联,与另一48或64mb数据相对应的另一组lba与第二区相关联,依此类推。闪存存储设备随后将每个区映射至闪存存储器中的单个块。例如,闪存存储设备可将与第一区相关联的lba映射至第一物理块,将与第二区相关联的lba映射至第二物理块等。每个区至块的该一对一映射通过有效地使这些区独立而允许gc的减少或消除。例如,在将数据顺序地写入映射至一个区的块之后,主机可通过以下方式使该区无效:指示闪存存储设备仅擦除该块,而不影响其他区/块中的数据。
31.然而,作为该区至块映射的结果,zns可引起闪存存储设备中的大量开放块。例如,与通常具有少量开放块(例如,多级单元(mlc)诸如四级单元(qlc)的1或2个开放块)的传统闪存存储设备不同,实现zns的闪存存储设备可具有明显更多的开放块(例如,介于低至12和高达4,000个开放块之间),具体取决于主机的应用的数目。由于已知开放块具有比封闭块更差的数据保持(dr)特性(例如,更多翻转位计数),尤其是mlc开放块诸如qlc块,因此zns可显著影响闪存存储设备的数据可靠性或完整性。
32.另外,随着闪存存储设备向着后续代迈进,存在物理块大小(例如,字线和串的数目)增加的趋势。例如,bics4闪存存储设备当前在一个块中具有96个字线,bics5闪存存储设备在一个块中可具有112个字线,并且bics6闪存存储设备预计在一个块中具有甚至更多字线。然而,尽管闪存存储设备可支持递增的物理块大小,但是主机可能不能够支持不同区大小(即,区大小在zns中是固定的)。这可引起每个块中的未使用的存储空间并因此浪费存储容量。例如,即使每个块的容量在未来几代中从64mb增加到128mb,主机可能仍仅能够将至多64mb数据写入映射至每个块的区,从而使得每个块的剩余64mb未被使用。
33.此外,虽然在一些情况下主机可具有各与主机可在相应区中填充的大量数据(例如,用于一些应用或区的48或64mb数据)相关联的少量应用,但在其他情况下主机可具有各与主机可在相应区中写入的仅少量数据(例如,用于若干应用或区的24或32mb数据)相关联的大量应用。如果如上所述的那样将区映射至单独物理块,但可用于映射的开放块的数目有限,则在后一种情况下,闪存存储设备可用完区。例如,如果闪存存储设备中仅有10个开放块可用,但主机需要用于其应用数据的超过10个区,则闪存存储设备可能不能够有效地支持主机的基于一区/一块映射方案的要求,尤其是在每个应用数据较小(例如,区大小的
一半)的情况下。
34.为了缓解zns的前述限制或效应(例如,dr不良的大量开放块、对增加的块大小的适应性不足以及对于较少数据应用的低效的区用完状况),控制器利用用于区的子块和映射。响应于接收到来自主机的区的限定(例如,区至逻辑地址映射)或指示将使用zns的某个其他消息,控制器启用子块模式(sbm)。在sbm中,待映射至区的每个块被分成多个子块。例如,可划分具有96个字线(即,wl 0-95)的块,使得下部字线(即,wl 0-47)包括在一个子块中并且上部字线(即,wl 48-95)包括在另一个子块中。这些子块被配置为可独立地编程、读取和擦除;例如,可将不同电压施加到选定的子块中的字线而不是未选定的子块中的字线以实现仅在选定的子块中读取、编程或擦除数据。子块的该特性允许保持每个区的独立性,因此保持gc从zns的减少或消除。
35.为了减少存储设备中的开放块的数目并因此改善数据保持,控制器可将每个区映射至两个子块(不同块中)。例如,控制器可确定开放块或区的数目是否大于开放区阈值,在这种情况下控制器可启用sbm并且将每个区的一半映射至一个块中的子块并将每个区的另一半映射至另一个块中的子块。因此,每个物理块可映射至两个不同区,而不是如传统zns实现中那样映射至一个区。图9中示出了该映射的一个示例。此类映射用于降低具有开放块的概率,这是由于映射至相同块的两个部分写入的区可产生一个封闭块而不是如传统zns中那样产生两个开放块。
36.此外,为了保持zns与增加的块大小的兼容性,控制器可在此类增加的块大小等同于区大小的情况下将每个区映射到一个子块。例如,如果子块大小翻倍,则并非如上所述的那样将区的一半映射至子块,而是控制器可将整个区映射至子块。图10中示出了该映射的一个示例。此类映射防止因增加的块大小而出现每个块中的未使用的空间,因此消除了传统zns实现可引起的浪费的存储容量。
37.此外,为了最小化在主机管理仅写入相对较少量数据(例如,典型区大小的一半,诸如24或32mb数据)的多个应用的情况下闪存存储设备用完区的状况,控制器可响应于主机发出的对指示一个或多个应用将仅写入少量数据的sbm的请求而激活sbm。例如,该指示可包括哪些区将未被主机完全写入的标识符,诸如主机确保每个所指示的区的仅一半将被相应应用填充的指示。在这种情况下,控制器可将每个所指示的区映射至单个子块。图11中示出了该映射的一个示例。与传统zns实现中相比,此类映射通过允许更多开放块被映射以与更多应用一起使用来有效地创建更多(一半容量的)区。
38.图1示出根据示例性实施方案的与主机设备104(也称为“主机”)通信的存储设备102的示例性框图100。主机104和存储设备102可形成系统,诸如计算机系统(例如,服务器、台式计算机、移动/膝上型计算机、平板电脑、智能电话等)。图1的部件可以在物理上协同定位或可以不在物理上协同定位。就这一点而言,主机104可位于远离存储设备102的位置。尽管图1例示所示主机104与存储设备102分开,但在其他实施方案中,主机104可全部或部分地集成到存储设备102中。另选地,主机104可整体上分布在多个远程实体上,或者另选地具有存储设备102中的某些功能。
39.本领域的普通技术人员将会知道,其他示例性实施方案可以包括比图1中所示的那些元件更多或更少的元件,并且可以在其他环境中实现所公开的过程。例如,其他示例性实施方案可包括与存储设备102通信的不同数量的主机,或与主机通信的多个存储设备
102。
40.主机设备104可将数据存储到存储设备102和/或从该存储设备检索数据。主机设备104可包括任何计算设备,包括例如计算机服务器、附网存储(nas)单元、台式计算机、笔记本(例如膝上型)计算机、平板电脑、移动计算设备诸如智能电话、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式设备等。主机设备104可包括主存储器103和至少一个处理器101。至少一个处理器101可包括能够处理数据的任何形式的硬件,并且可包括通用处理单元(诸如中央处理单元(cpu))、专用硬件(诸如专用集成电路(asic))、数字信号处理器(dsp)、可配置硬件(诸如现场可编程门阵列(fpga))或通过软件指令、固件等配置的任何其他形式的处理单元。主机设备104可使用主存储器103来存储由主机处理的数据或指令或从存储设备102接收的数据。在一些示例中,主存储器103可包括非易失性存储器,诸如磁存储器设备、光学存储器设备、全息存储器设备、闪存存储器设备(例如,nand或nor)、相变存储器(pcm)设备、电阻式随机存取存储器(reram)设备、磁阻式随机存取存储器(mram)设备、铁电随机存取存储器(f-ram)和任何其他类型的非易失性存储器设备。在其他示例中,主存储器103可包括易失性存储器,诸如随机存取存储器(ram)、动态随机存取存储器(dram)、静态ram(sram)和同步动态ram(sdram(例如,ddr1、ddr2、ddr3、ddr3l、lpddr3、ddr4等)。主存储器103还可包括非易失性存储器和易失性存储器两者,无论是集成在一起还是作为离散单元。
41.主机接口106被配置为经由总线/网络108将存储设备102与主机104交接,并且可以使用例如以太网或wifi或总线标准诸如串行高级技术附件(sata)、pci express(pcie)、小型计算机系统接口(scsi)或串行附接scsi(sas),以及其他可能的候选对象。另选地,主机接口106可以是无线的,并且可使用以下各项将存储设备102与主机104交接,例如,蜂窝通信(例如,5g nr、4g lte、3g、2g、gsm/umts、cdma one/cdma2000等)、通过接入点的无线分发方法(ieee 802.11、wifi、hiperlan等)、红外(ir)、蓝牙、zigbee或其他无线广域网(wwan)、无线局域网(wlan)、无线个人局域网(wpan)技术或相当的广域网、局域网和个人局域网技术。
42.存储设备102包括存储器。例如,在图1的示例性实施方案中,存储设备102可包括用于持久地存储从主机104接收的数据的非易失性存储器(nvm)110。nvm 110可包括例如闪存集成电路、nand存储器(例如,单级单元(slc)存储器、多级单元(mlc)存储器、三级单元(tlc)存储器、四级单元(qlc)存储器、五级单元(plc)存储器或其任意组合)或nor存储器。nvm 110可包括多个存储器位置112,这些存储器位置可存储用于操作存储设备102的系统数据或从主机接收的用于存储在存储设备102中的用户数据。例如,nvm可具有交叉点架构,该交叉点架构包括具有n行和m列的存储器位置112的2d nand阵列,其中,根据nvm的大小来预定义m和n。在图1的示例性实施方案中,每个存储器位置112可以是包括多个平面的管芯114,每个平面包括多个单元116的多个块。可替代地,每个存储器位置112可以是包括单元116的多个块的平面。单元116例如可以是单级单元、多级单元、三级单元、四级单元和/或五级单元。存储器位置112的其他示例是可能的;例如,每个存储器位置可以是块或块组。每个存储器位置可包括3-d nand阵列中的一个或多个块。每个存储器位置112可包括映射至一个或多个物理块的一个或多个逻辑块。可替代地,可通过本领域技术人员已知的其他方式来实施存储器和每个存储器位置。
43.存储设备102还包括易失性存储器118,该易失性存储器可例如包括动态随机存取存储器(dram)或静态随机存取存储器(sram)。存储在易失性存储器118中的数据可包括从nvm 110读取的数据或要写入nvm 110的数据。就这一点而言,易失性存储器118可包括用于暂时存储数据的写入缓冲区或读取缓冲区。虽然图1将易失性存储器118例示为远离存储设备102的控制器123,但易失性存储器118可集成到控制器123中。
44.存储器(例如,nvm 110)被配置为存储从主机设备104接收的数据119。数据119可存储在存储器位置112的任一个存储器位置中的单元116中。例如,图1例示存储在不同存储器位置112中的数据119,但是数据可存储在相同存储器位置中。在另一个示例中,存储器位置112可以是不同管芯,并且数据可以存储在不同管芯中的一个或多个中。
45.数据119中的每个可与逻辑地址相关联。例如,nvm 110可存储用于存储设备102的逻辑到物理(l2p)映射表120,该l2p映射表将每个数据119与逻辑地址相关联。l2p映射表120存储为从主机104写入的数据指定的逻辑地址到nvm 110中指示存储数据中的每个数据的位置的物理地址的映射。该映射可由存储设备的控制器123执行。l2p映射表可以是包括标识符的表或其他数据结构,该标识符诸如与nvm中的存储数据的每个存储器位置112相关联的逻辑块地址(lba)。虽然图1例示存储在nvm的存储器位置112中的一个中的单个l2p映射表120以避免不当地模糊图1的概念,但是l2p映射表120实际上可包括存储在nvm的一个或多个存储器位置中的多个表。
46.图2是l2p映射表205的示例的概念图200,其例示从主机设备接收的数据202到图1的nvm 110中的逻辑地址和物理地址的映射。数据202可对应于图1中的数据119,而l2p映射表205可对应于图1中的l2p映射表120。在一个示例性实施方案中,数据202可以被存储在一个或多个页面204中,例如,第1页面至第x页面,其中x是被写入nvm 110的数据的页面总数。每个页面204可以与l2p映射表205的一个或多个条目206相关联,该l2p映射表标识逻辑块地址(lba)208、与写入到nvm的数据相关联的物理地址210以及数据的长度212。lba 208可以是在用于从主机设备接收的数据的写入命令中指定的逻辑地址。物理地址210可指示与lba 208相关联的数据被物理写入的块和偏移。长度212可指示写入数据的大小(例如,4kb或其他大小)。
47.重新参考图1,易失性存储器118还存储用于存储设备102的高速缓存122。高速缓存122包括示出针对主机104所请求的数据指定的逻辑地址到nvm 110中的物理地址的映射的条目,该物理地址指示存储数据的位置。该映射可由控制器123执行。当控制器123接收到用于数据119的读取命令或写入命令时,控制器检查高速缓存122以获取每个数据的逻辑到物理映射。如果不存在映射(例如,这是对数据的第一请求),则控制器访问l2p映射表120,并将该映射存储在高速缓存122中。当控制器123执行读取命令或写入命令时,控制器访问来自高速缓存的映射,并在指定的物理地址处从nvm 110读取数据或将数据写入该nvm。高速缓存可以表或其他数据结构的形式存储,该表或其他数据结构包括与nvm中的正在读取数据的每个存储器位置112相关联的逻辑地址。
48.nvm 110包括感测放大器124和连接到每个存储器位置112的数据锁存器126。例如,存储器位置112可以是在多个位线上包括单元116的块,并且nvm 110可以在每个位线上包括感测放大器124。此外,一个或多个数据锁存器126可以连接到位线和/或感测放大器。数据锁存器可以是例如移位寄存器。当从存储器位置112的单元116读取数据时,感测放大
器124通过将位线上的电压放大到逻辑电平(例如可读为“0”或“1”)来感测数据,并且感测到的数据存储在数据锁存器126中。然后将数据从数据锁存器126传输到控制器123,之后将数据存储在易失性存储器118中,直到将其传输到主机设备104。当将数据写入存储器位置112的单元116时,控制器123将编程数据存储在数据锁存器126中,并且随后将数据从数据锁存器126传输至单元116。
49.存储设备102包括控制器123,该控制器包括诸如用于执行指令的一个或多个处理器的电路,并且可以包括微控制器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、硬连线逻辑、模拟电路和/或其组合。
50.控制器123被配置为响应于读取命令而接收从各种存储器位置112的一个或多个单元116传输的数据。例如,控制器123可以通过激活感测放大器124以将来自单元116的数据感测到数据锁存器126中来读取数据119,并且控制器123可以接收来自数据锁存器126的数据。控制器123还被配置为响应于写入命令将数据编程到单元116中的一个或多个单元中。例如,控制器123可通过将数据发送至要编程到单元116中的数据锁存器126来写入数据119。控制器123被进一步配置为在向单元116读取或写入数据时访问nvm 110中的l2p映射表120。例如,控制器123可以响应于来自主机设备104的读取或写入命令而从nvm 110接收逻辑到物理地址的映射,识别映射到在命令中标识的逻辑地址的物理地址(例如,将逻辑地址转换为物理地址),并在位于映射的物理地址处的单元116中访问或存储数据。
51.控制器123及其部件可用嵌入式软件来实现,该嵌入式软件执行在整个本公开描述的控制器的各种功能。另选地,用于实现前述功能和部件中的每个的软件可存储在nvm 110中或存储设备102或主机设备104外部的存储器中,并且可由控制器123访问以供控制器123的一个或多个处理器执行。另选地,控制器的功能和部件可用控制器123中的硬件来实现,或者可使用前述硬件和软件的组合来实现。
52.在操作中,主机设备104通过向存储设备102发送指定一个或多个逻辑地址(例如,lba)以及要写入的数据的长度的写入命令来将数据存储在存储设备102中。接口元件106接收写入命令,并且控制器在存储设备102的nvm 110中分配存储器位置112以用于存储数据。控制器123将l2p映射存储在nvm(和高速缓存122)中,以将与数据相关联的逻辑地址映射到为数据分配的存储器位置112的物理地址。控制器还存储l2p映射数据的长度。然后,控制器123通过将数据发送到连接到分配的存储器位置的一个或多个数据锁存器126来将数据存储在存储器位置112中,数据从该一个或多个数据锁存器编程到单元116。
53.主机104可以通过发送读取命令来从存储设备102检索数据,该读取命令指定与要从存储设备102检索的数据相关联的一个或多个逻辑地址以及要读取的数据的长度。接口106接收读取命令,并且控制器123访问高速缓存122中的l2p映射或以其他方式访问nvm,以将读取命令中指定的逻辑地址转换为指示数据位置的物理地址。然后,控制器123通过使用感测放大器124感测数据并将数据存储在数据锁存器126中,直到经由主机接口106将读取的数据返回给主机104为止,从而从由物理地址指定的存储器位置112中读取所请求的数据。
54.图3绘示了单元302的nand存储器阵列300的示例。单元302可对应于图1的nvm 110中的单元116。多个单元302耦合到字线304和位线306。例如,存储器阵列300可包括nvm 110的管芯114的块内的n条字线和m条位线,其中n和m是根据该块的大小而预先限定。每条字线
和位线可分别与行地址和列地址相关联,控制器123可使用该行地址和列地址来选择特定字线和位线(例如,使用行解码器和列解码器)。例如,字线0-n可各自与它们自身的行地址相关联(例如,字线0可对应于字线地址0,字线1可对应于字线地址1,等等),并且位线0-m可各自与它们自身的列地址相关联(例如,位线0可对应于位线地址0,位线1可对应于位线地址1,等等)。选择栅极源极(sgs)单元308和选择栅极漏极(sgd)单元310在每条位线306上耦合到存储器单元302。sgs单元308和sgd单元310分别将存储器单元302连接至源极线312(例如,接地)和位线306。串314可包括耦合到块内的一条位线的一组单元302(包括sgs单元和sgd单元308、310),而页面316可包括耦合到块内的一条字线的一组单元302。
55.图4绘示了包括多个串404的块402的nand存储器阵列400的示例。块402可对应于图1的nvm 110中的管芯114的块,并且串404可各自对应于图3中的串314。与在图3的存储器阵列300中一样,每个串404可包括一组存储器单元,每个存储器单元耦合到位线406并且单独地耦合到相应字线408。类似地,每个串可包括sgs单元410和sgd单元412,该sgs单元和该sgd单元分别将每个串404中的存储器单元连接至源极线414和位线406。
56.当控制器123从单元302的页面316读取数据或向该页面写入数据(即,在字线304、408上)时,控制器可发送命令以向选定的字线施加读取电压或编程电压并且向其他字线施加通过电压。随后可基于单元302的阈值电压来确定该单元的读取或编程状态(例如,slc的逻辑“0”或逻辑“1”)。例如,在slc读取操作期间,如果单元302的阈值电压小于读取电压(即,电流响应于读取电压而流过该单元),则控制器123可确定该单元存储逻辑“1”,而如果单元302的阈值电压大于读取电压(即,电流未响应于读取电压而流过该单元),则控制器123可确定该单元存储逻辑“0”。类似地,在slc编程操作期间,控制器可通过发送命令以在字线304、408上向单元302施加编程电压直到该单元达到阈值电压来存储逻辑“0”,并且在擦除操作期间,控制器可发送命令以向包括单元302的块402(例如,向该单元的衬底,诸如p阱)施加擦除电压,直到该单元降低回到阈值电压以下(回到逻辑“1”)为止。
57.图5是垃圾收集过程的示例的概念图500,其中存储在slc单元的块502的页面504中的数据被重新定位到qlc单元的块506的页面508。数据可对应于图1的数据119,块502、506可对应于图4的块402,并且slc/qlc单元可对应于图1和图3的单元116、302。每个页面504、508包括沿nvm的同一行或字线(例如,字线304、408)存储在多个单元中的数据。因此,每个页面504可包括存储在一个块的一行单元116中的数据,而每个页面508可包括存储在另一个块的一行单元116中的数据。为了简化说明,图5的示例示出了块502、506,每个块仅包括四个页面504、508。然而,应当认识到,每个块可包括任何数量的页面。
58.在图5的示例中,由标识符a、b和c表示的数据存储在块502的不同页面504中。在该示例中,最初,响应于来自主机设备的写入命令,将数据a、b和c存储在块502的三个页面中,使一个页面空闲。当存储设备接收到新的或更新的数据时,该数据被存储在空闲页面510中。例如,更新的数据a

可从主机设备接收并写入空闲页面510。由于数据无法在闪存存储器中被覆写,因此无效数据a保持存储在块502中。由于新数据和无效数据的存在,块502可快速变满。
59.为了释放slc块中的空间,可将块502中的原始数据和更新数据传输到块506。无效数据保留在旧的块中。例如,在图5的示例中,从块502的页面504读取原始数据b和c以及更新的数据a

,并将其写入块506的一个或多个页面508。无效数据a保留在块502中。当块502
随后被擦除时,无效数据被丢弃,并且块502可被重新用于存储新数据。
60.然而,例如在发生多次4kb数据覆写的情况下,此类gc过程可引起存储设备102的增加的写入放大。为了减少或消除gc并由此降低存储设备的写入放大,存储设备102可实现zns,其中连续、非重叠逻辑地址组被分成区。图6示出了区602的示例的概念图600。每个区602的大小是固定的,并且包括nvm 110中的相连范围的连续逻辑地址604。例如,如图所示,nvm 110可包括被划分为x个区的总共z个lba,其中每个区包括一系列n-m个连续lba,其中z表示闪存存储器中的扇区的总数,x表示区的数目,m表示区中的第一lba,并且n表示同一区中的最后一个lba。每个区可由主机单独使用来用于存储与由主机运行的一个或多个应用相关联的数据。因此,主机104可依据由该主机运行的应用的数目将lba划分为若干区。
61.图7示出了存储设备的控制器702的示例性图表700,该控制器根据区712将从主机设备706接收到的数据704写入管芯710的块708中。例如,控制器702可对应于图1中的存储设备102的控制器123,主机设备706可对应于图1中的主机104,块708可对应于图4的块402,数据704可对应于图1的数据119,并且区712可对应于图6的区602。传统上,主机706可将区712的限定(例如,图6中的区602至逻辑地址604的映射)发送到控制器702,并且控制器可创建将每个区712的lba(例如,逻辑地址604)映射到单个物理块(例如,块402)的l2p映射表714(例如,l2p映射表120、205)。在图7的示例中,假定每个区跨越64mb的大小且具有512字节扇区大小,因此每个区可包括125000个lba。此外,假定每个块能够存储64mb数据。因此,区0可仅仅映射至一个块(例如,pba 0),区1可仅仅映射至另一个块(例如,pba 1),等等。主机的每个应用随后可例如通过向控制器指示连续范围的lba来将数据写入到相应区。例如,主机706可将写入命令发送到控制器702以顺序地从lba 0到lba 124999和/或顺序地从lba 125000到249999写入数据。控制器可将所指示的lba转译为映射的物理地址(例如,分别为pba 0或1),并且相应地将该数据写入映射的块708中。因此,主机可将来自不同应用的数据写入分别对应于不同区的不同物理块中。
62.zns的主要优点是主机不能如上文在图5中描述的那样逐页地(例如,在4kb命令之间)写入数据和使数据无效。例如,当将数据写入到图6中的区1时,主机不能简单地将数据写入到lbam,然后紧接着将新数据写入到lbam,同时使lbam处的旧数据无效。相反,必须先完全写入整个区(即,在一次或多次写入中写入lbam至lban-1),之后才能将数据再次写入到该区中的先前lba。因此,在相对于区0的图7的示例中,如果主机将数据写入lba 0中,则主机必须先继续顺序地从lba 1至lba 124999写入数据(在各个时间的一次或多次写入中),之后主机才可最终将新数据写回lba 0中。zns的该特征防止映射至各种区的块包括将需要gc的部分无效数据(诸如图5所示),因此减少或消除了gc并且改善了写入放大。
63.然而,zns的传统实现还可具有多个缺点。首先,与没有zns的实现相比,zns可引起存储设备102中的更大数目开放块(倾向于具有比封闭块更差的数据保持(dr)特性)。通常,在没有zns的情况下,控制器123在整个nvm 110中保持一个或两个开放块。相比之下,当区映射至zns中的单独物理块时,控制器123可为nvm 110中的每个区保持至少一个开放块。因此,当区的数目较大时(例如,如果主机具有各自与一个区相对应的许多应用),开放块的数目同样可很大,从而导致存储设备的显著更差的总dr。第二,虽然区大小在zns中保持固定,但块大小倾向于随时间推移而缩放或增加。此类缩放可引起在将固定大小的区映射至单独物理块时产生附加未使用的存储空间。将该附加空间分配到另一个区将使zns的有益效果
失效,这是由于在这种情况下很可能需要gc。例如,如果一个区被完全写入到缩放的块(并因此可使之无效)而另一个区仅被部分写入到缩放的块的其余部分(并因此不能使之无效),则仍将需要gc以保护有效数据。第三,当主机具有各自要求一个或多个区在zns中存储数据的许多应用,但存储设备中可用的块的数目有限时,可在区映射至单独物理块时发生区用完状况。此类状况可为低效的,尤其是在主机的一个或多个应用甚至不需要整个块对于该数据为可用的(例如,这些应用仅将少量数据写入每个块中)的情况下。
64.为了缓解zns的这些限制,控制器可将区映射到子块而不是单独块。在3-d nand设备中,字线组可被分成不同子块。例如,可通过一个或多个虚设字线和/或交接区域将一个存储器孔层中的下部字线的叠层与另一个存储器孔层中的上部字线的叠层分开。因此,假定一个块中有128个字线,下部字线(例如,wl 0-63)的叠层可被视为一个子块并且上部字线(例如,wl 64-127)的叠层可被视为另一个子块。子块的结构允许每个子块内的字线被独立地读取或编程,并且允许子块被独立地擦除。控制器可响应于控制器向nand发送的子块模式(sbm)启用命令而执行不同子块中的此类独立读取/编程/擦除。例如,控制器可向管芯发送激活sbm的命令,对此作出响应,可将不同电压施加到管芯的不同子块中的字线以执行同时读取和编程或独立擦除。例如,为了同时在不同子块中读取或写入数据,控制器可在sbm启用时将读取或编程电压施加到子块中的选定的字线并且将通过电压施加到子块中的未选定的字线。类似地,控制器可通过在sbm启用时将低电压施加到选定的子块中的字线并且将高电压施加到未选定的子块中的字线来独立地擦除不同子块。
65.图8示出了存储设备的控制器802的示例性图表800,该控制器根据区814将从主机设备806接收到的数据804写入管芯812的不同块810的子块808中。例如,控制器802可对应于图1中的存储设备102的控制器123,主机设备806可对应于图1中的主机设备104,块810可对应于图4的块402,数据804可对应于图1的数据119,并且区814可对应于图6的区602。每个块810可包括如上所述的那样分成不同子块808的n个字线(例如,128个字线或另一个数目n)。例如,块的字线的一半(例如,从wl 0到wl n/2-1的下部字线叠层)可包括在一个子块中,而块的字线的另一半(例如,从wl n/2到wl n-1的上部字线叠层)可包括在另一个子块中,其中n是块中的字线的数目。控制器802可响应于控制器生成并向管芯812发送以便执行的sbm命令816而读取、编程和擦除子块808中的数据。例如,当管芯812接收到sbm命令816时,可激活或启用管芯中的电路,从而允许不同电压施加到不同子块中的字线以执行同时读取和编程或独立擦除。控制器802可响应于从主机806接收到区814的限定而发出sbm命令816。控制器还可响应于从主机806接收到启用sbm的请求818而发出sbm命令。
66.在操作中,主机806可将区814的限定发送到控制器802,这向控制器指示数据将被写入到zns中的区。然后控制器可确定存储设备中的开放区的数目是否大于或等于开放区阈值(例如,10或某个其他预定义的数目)。例如,控制器可检查主机是否计划将数据写入到超过10个区,这通常将需要至少10个开放块。如果开放区的数目小于阈值(例如,存在将因区映射至单独块而产生的可接受数目的开放块,诸如总共九个块或更少),则控制器可将每个区814的lba映射至单个物理块,如上文在图7中描述。否则,如果开放区的数目满足阈值,则控制器可将每个区814的lba映射至子块808,如下文相对于图9至图11中的任何图所描述。例如,当在l2p映射表120、205中将lba映射至pba时,控制器可进一步指示标志位(例如,0或1),该标志位指示lba映射至的每个物理块的相应子块。然后主机的每个应用可例如通
过向控制器指示连续范围的lba来将数据写入到相应区,并且控制器可将所指示的lba转译为映射的子块810并相应地将该数据写入该子块中。由于子块可独立地擦除,因此区至子块的映射保持zns减少或消除gc以降低写入放大的优点,同时进一步缓解zns的前述缺点。
67.例如,如果因单个块映射产生的开放块的数目将太大并因此引起显著dr问题,则控制器802可将每个区映射至不同块810中的两个子块808以减少开放块的数目。图9示出了控制器可创建的将每个区映射至不同块902中的两个子块904的l2p映射表900的示例。在图9的示例中,每个区跨越64mb的大小且具有512字节扇区大小,因此每个区可包括125000个lba。此外,每个块能够存储64mb数据,因此每个子块能够存储32mb数据。因此,并非如上文在图7中所示的那样将每个区(所有125000个lba)映射至每个块902,此处控制器将每个区的第一半(32mb数据)映射至一个块中的子块并且将每个区的第二半(32mb数据)映射至另一个块中的子块。例如,控制器可将lba 0-62499(区0的第一半)映射至块0的子块0,控制器可将lba 62500-124999(区0的第二半)映射至块1的子块0,控制器可将lba 125000-187499(区1的第一半)映射至块0的子块1,并且控制器可将lba 187500-249999(区1的第二半)映射至块1的子块1。这样,当主机从每个区的第一lba开始顺序地将数据写入区0和区1中时,仅块0被初始写入。因此,控制器将仅在区0和1的第一半被填充并且块0被完全写入(即,块0变为封闭块)之后开始写入到块1。该方法减少将产生的开放块的总数,例如减少一半。例如,即使区0和1被填充一半,也仅一个块(块1)将为开放的,而不是两个块(块0和1两者)将为开放的(图7的示例中便是这种情况)。
68.在另一个示例中,如果块随后因缩放而大小翻倍,使得一个子块此时跨越区大小(而不是如以前那样跨越块),则控制器可将该区映射至一个子块以适应该缩放并且仍保持gc的减少或消除。图10示出了控制器可创建的将每个区映射至不同块1002中的一个子块1004的l2p映射表1000的示例。在图10的示例中,每个区跨越64mb的大小且具有512字节扇区大小,因此每个区可包括125000个lba。此外,每个块的大小已因缩放而增加,使得每个块此时能够存储128mb数据,因此每个子块能够存储64mb数据。因此,并非如上文在图9中所示的那样将每个区的一半(62500个lba)映射至每个子块,此处控制器将每个区映射至每个两倍大小的子块。例如,控制器可使用如上文相对于图9描述的类似子块映射将lba 0-62499(区0的第一半)和lba 62500-124999(区0的第二半)映射至块0的子块0。这样,即使当块因缩放而大小翻倍时,也可通过将整个区映射至子块来避免zns的每个块中的未使用的空间。该方法还保持gc的减少或消除,这是由于即使当块中的字线数目已增加时,也可独立地擦除子块。
69.在另外一个示例中,如果控制器从主机(例如,sbm请求818中)接收到区不会被完全写入(例如,该应用仅将少量数据写入到那些区)的指示,则控制器可将这些区映射至单独子块以防止区用完状况。图11示出了控制器可创建的将两个区映射至相同块1102中的一个子块1004的l2p映射表1100的示例。在图11的示例中,每个区跨越64mb的大小且具有512字节扇区大小,因此每个区可包括125000个lba。此外,每个块能够存储64mb数据,因此每个子块能够存储32mb数据。因此,并非如上文在图9中所示的那样将一个区映射至两个子块,此处控制器基于每个区的另一半不会被使用(没有数据将存储在那些lba中)的指示来将每个区的一半映射至子块。例如,控制器可使用如上文相对于图9描述的类似子块映射将lba 0-62499(区0的第一半)映射至块0的子块0并且将lba 125000-187499(区1的第一半)映射
至块0的子块1。然而,与图9的示例中不同,控制器可不将lba 62500-124999(区0的第二半)和lba 187500-249999(区1的第二半)映射至块1,这是由于这些区域由主机指示为未被使用。相反,可将块1映射至其他区。这样,可有效地增加存储设备中的区数目。例如,并非如上文在图9的示例中描述的那样将块0和1中的子块映射至区0和1,此处控制器可仅将块0中的子块映射至区0和1,这是由于每个区的一半不会被写入,从而允许控制器将块1映射至另两个写入一半的区。因此,响应于来自主机(例如,在激活sbm的请求中或在某个其他消息中)的其应用仅将少量数据存储在各种区中的指示,控制器可允许更多块可用于映射至附加区。
70.图12示出了用于基于子块映射来将数据写入到区的方法的示例性流程图1200。例如,该方法可在存储设备102(诸如图1所示的存储设备)中执行。流程图中的步骤中的每个步骤可使用如下文所描述的控制器(例如,控制器123、802)或由一些其他合适的构件控制。
71.如块1202所表示,控制器可从主机接收数据以便写入区中(例如,zns中)。该区可包括多个逻辑地址。例如,参考图6至图8,控制器702、802可从主机设备706、806接收数据704、804以便写入区602、712、814中。区602可包括多个逻辑地址604。控制器702、802可从主机706、806接收区602与逻辑地址604的关联。例如,控制器可在来自主机的指示区712、814的消息中接收诸如图6所示的区至逻辑地址的映射。
72.如块1204所表示,控制器可确定开放区的数目是否满足开放区阈值。如果开放区的数目满足开放区阈值,则如块1206所表示,控制器可启用子块模式(sbm)并且将该区映射至存储器的子块,例如如上文相对于图8至图11所描述。否则,如果开放区的数目不满足开放区阈值,则控制器可将区映射至块,例如如上文相对于图7所描述。
73.例如,参考图1和图6至图11,存储器(例如,nvm 110)可包括多个块708、810、902、1002、1102,其中这些块中的每个块包括多个子块808、904、1004、1104,并且控制器123、802可将区602映射至这些子块中的至少一个子块。这些子块中的每个子块可独立地读取、编程和擦除,例如如上文相对于图8所描述。控制器可确定开放区的数目(例如,开放的或对应于开放块的区602的数目),并且响应于开放区的数目满足阈值(例如,开放区阈值,诸如10或某个其他数目)而将开放区映射至这些子块中的至少一个子块。
74.在一个示例中,可将该区映射至这些子块中的两个子块,这些子块中的这两个子块来自不同块。在该示例中,这些不同块中的每个块可包括映射至不同区的另一个子块。例如,参考图9,可将区0映射至块0中的子块0和块1中的子块0。此外,这些块(例如,块0和1)中的每个块可包括映射至不同区(例如,区1)的另一个子块(例如,子块1)。
75.在另一个示例中,可响应于来自主机的该区部分地未被使用的指示而将该区映射至这些子块中的一个子块,这些子块中的该一个子块位于这些块中的一个块中。在该示例中,这些块中的该一个块可包括映射至不同区的另一个子块。例如,参考图11,可响应于来自主机806的区0不会被完全写入的指示而将区0映射至块0中的子块0。此外,块0可包括映射至不同区(例如,区1)的另一个子块(例如,子块1)。控制器可接收将与区814相关联的数据804写入子块808中的请求(例如,sbm请求818),并且响应于该请求而将这些区中的每个区映射至这些子块中的至少一个子块。该请求可包括来自主机的该区部分地未被使用的指示。
76.最后,如块1208所表示,控制器可确定是否已用来自主机的数据写入所有区。如果
否,则控制器将该数据写入一个区(如上文在1204处所描述的那样映射至子块或块)并且对每个区重复上述过程。否则,如果已用数据写入所有区,则该过程将结束。
77.因此,本公开中所述的存储设备可缓解zns的限制,包括dr不良的大量开放块、对增加的块大小的不灵活性以及有限的可用区。通过允许每个区映射至不同块中的两个子块,与传统zns中相比可产生存储设备中的更少数目的开放块,从而引起更高的数据可靠性。此外,在特定应用的更少数据被编程并且存储设备用完区的情况下,将每个区映射至一个子块可在运行时间期间有效地增加区的数目。此外,即使当存储设备的块大小已缩放或增加时,仍可保持zns在降低gc和写入放大方面的有益效果,这是由于可因子块映射而避免区容量与块大小之间的不匹配并且可继续使用全块容量。
78.提供本公开的各个方面以使本领域的普通技术人员能够实践本发明。对贯穿本公开呈现的示例性实施方案的各种修改对于本领域的技术人员而言将是显而易见的,并且本文所公开的概念可扩展到其他磁存储设备。因此,权利要求书并非旨在限于本公开的各个方面,而是旨在被赋予与权利要求书的语言一致的全部范围。本领域的普通技术人员已经知道或之后知道的贯穿本公开描述的示例性实施方案的各种部件的所有结构等同物和功能等同物以引用的方式明确地并入本文并旨在被权利要求所涵盖。此外,无论在权利要求中是否明确地叙述此公开内容,本文公开的内容都并非旨在贡献给社会大众。依据美国的35 u.s.c.
§
112第六段条款,或另一司法管辖区的类似法规或法治,将不解释任何权利要求要素,除非使用短语“用于......的装置”来明确地叙述该要素,或在方法权利要求的情况下使用短语“用于......的步骤”来叙述该要素。
再多了解一些

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

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

相关文献