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

在存储器组件上执行错误控制操作以用于垃圾收集的制作方法

2022-04-14 01:16:36 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及在存储器组件上执行错误控制操作以用于垃圾收集。


背景技术:

2.存储器子系统可为存储系统,例如固态驱动器(ssd)或硬盘驱动器(hdd)。存储器子系统可为存储器模块,例如双列直插式存储器模块(dimm)、小型dimm(so-dimm)或非易失性双列直插式存储器模块(nvdimm)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以将数据存储在存储器组件处且从存储器组件检索数据。
附图说明
3.根据下文给出的详细描述和根据本公开的各种实施例的随附图式将更充分地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2说明根据本公开的一些实施例的在存储器组件上执行错误控制操作的实例。
6.图3为根据本公开的一些实施例的用于在存储器组件上执行错误控制操作以用于垃圾收集的实例方法的流程图。
7.图4为根据本公开的一些实施例的涉及在将数据从slc存储器迁移到mlc存储器时执行错误控制的实例方法的流程图。
8.图5为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
9.本公开的各方面是针对在存储器组件上执行错误控制操作或错误代码校正以用于垃圾收集。存储器子系统在下文中也称为“存储器装置”。存储器子系统的实例为经由外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(cpu)的存储装置。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器和硬盘驱动器(hdd)。存储器子系统的另一实例为经由存储器总线耦合到cpu的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小形dimm(so-dimm)和非易失性双列直插式存储器模块(nvdimm)等。在一些实施例中,存储器子系统可为混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供要存储在存储器子系统处的数据且可请求要从存储器子系统检索的数据。
10.当主机系统请求存储数据时,数据存储在存储器组件内的物理地址处。主机系统提供识别待存储的数据的逻辑地址。维持逻辑到物理(l2p)映射表以识别对应于每个逻辑地址的数据驻存的物理位置。存储器子系统中的存储器组件可包含用于存储对应于从主机系统接收的数据的二进制数据的一或多个位的一或多个存储器页面(在本文中也称为“页
面”)。存储器组件的一或多个存储器页面可分组在一起以形成数据块。当数据写入到存储器组件时,这通常在页面层级处完成,使得在单个操作中写入整个页面或多个页面。当主机系统请求在特定逻辑地址处更新数据时,更新后的数据存储在新物理位置(例如,新物理地址)处且更新l2p映射,使得数据的特定逻辑地址映射到新物理地址。原始数据(例如,在更新之前的数据)仍保持存储在原始物理地址中。然而,此数据从主机的角度看不再有效,且不再可由主机使用。随着数据的各种变化,除物理地址具有有效数据之外,存储器组件跨具有无效数据的各种数据块累积物理地址。存储在存储器组件处的无效数据被视为“垃圾”且可在一些时刻被清除。
11.当存储器组件已满而使得没有充足容量来接受来自额外写入操作的数据时,可擦除某些数据以便释放空间。然而,当从存储器组件擦除数据时,这通常在块层级处完成,使得整个块(包含多个页面)在单个操作中被擦除。因此,当更新存储器组件上的特定数据段时,块中的某些页面将具有已经重写到不同位置和/或不再需要的数据。不能简单地擦除整个块,因为每个块很可能还具有一些数目的有效数据页面。可执行垃圾收集过程,其涉及将含有有效数据的块的那些页面迁移(例如,重写)到另一块,使得可擦除具有有效数据和无效数据两者的当前块。垃圾收集是一种自动存储器管理形式,其尝试回收垃圾或被不再使用的过期数据对象(例如,因为所述数据对象已用新值更新)占用的存储器。垃圾收集的基本原理是查找将来无法或不必存取的数据对象且回收那些对象所用的资源(即,存储空间)。
12.存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。存储器组件中的数据块由数个存储器单元形成。存储器单元中的每一个可存储对应于从主机系统接收的数据的二进制数据的一或多个位。数据密度对应于存储器组件的每存储器单元可存储的数据量(例如,数据位)。在一个实例中,存储器系统的块可配置成单层级单元(slc)存储器,其中slc存储器的每个存储器单元可编程有单个数据位。当将一个数据位存储在slc存储器中时,存储器单元的可能电压电平的范围划分成两个范围。举例来说,所述两个范围可包含对应于逻辑数据值“1”的第一阈值电压范围和对应于逻辑数据值“0”的第二阈值电压范围。
13.存储器系统中的其它数据块可配置成例如多层级单元(mlc)存储器等较高密度存储器,其通过每存储器单元存储两个位、每存储器单元存储三个位、每存储器单元存储四个位或每存储器单元存储更多位来编程。数据可基于总电压范围而存储在mlc存储器处,所述总电压范围划分成存储器单元的一些数目的相异阈值电压范围。每个相异阈值电压范围对应于存储在存储器单元处的数据的预定值。举例来说,一些mlc单元可存储两个数据位,指代三层级单元(tlc)存储器的其它mlc单元可存储三个数据位,而称为四层级单元(qlc)存储器的另外其他mlc单元可存储四个数据位。如本文所使用,术语“多层级单元存储器”可包含配置成每单元存储多于一个数据位的任何存储器。
14.与mlc/tlc/qlc存储器相比,尽管slc存储器的容量较小且密度较低,但其仍具有许多益处,包含优异的性能和可靠性。slc存储器的读取时间和编程(例如,写入)时间比mlc存储器的读取时间和编程时间快。如果来自主机系统的数据写入到slc存储器,那么主机系统的性能延迟可能更短。因此,某些常规系统将存储器的固定部分配置成slc存储器(即,slc高速缓存)。这些系统通过将与从主机系统接收的任何存储器写入命令相关联的所有数据初始地写入到配置成slc存储器的数据块且稍后将所述数据迁移到mlc/tlc/qlc存储器
来操作。
15.从存储器子系统的一个位置迁移到独立于任何直接主机交互的另一位置的内部数据称为“折叠”或“数据压缩”。通常,执行折叠以将有效数据包在一起(例如,垃圾收集)、释放更多空间以用于新写入、避免错误、耗损均衡(例如,将频繁读取数据移动到不同物理位置的过程以避免频繁读取操作对物理媒体的损坏)等。将数据从slc存储器折叠到mlc存储器涉及将数据从一个粒度(例如,每单元一个位)移动到另一粒度(例如,每单元多个位)。举例来说,将数据从slc存储器折叠到tlc存储器涉及将数据从三个slc存储器单元拟合到一个tlc存储器单元。
16.在数据迁移(例如,折叠)操作期间,存储器子系统可对待迁移的数据实施错误控制(“ec”)操作,在行业中也称为错误代码校正或ecc。错误控制操作可包含对数据的错误检测和/或错误校正操作。举例来说,对待迁移的数据进行错误检测操作可检测所存储的数据与读取数据之间是否存在错误或差异。举例来说,错误校正操作可通过执行各种数据校正步骤来校正错误,例如使用不同电压阈值执行一或多个读取重试等。
17.常规存储器子系统可包含使用与存储器组件分离的存储器子系统的控制器对待折叠的数据执行错误控制操作。当存储器单元具有高数据密度时,校正驻存在那些存储器单元上的数据需要复杂的错误控制能力,且控制器可提供所需能力。控制器通常通过数据i/o(输入/输出)总线耦合到存储器组件。在实例中,使用控制器执行ec涉及从存储器组件读取数据、使用数据总线将数据传送到控制器、使用控制器执行ec操作、等待数据总线可用、将经校正数据传回到存储器组件。在数据从slc迁移到tlc存储器的实例中,读取三个slc页面,且使用总线将其传送到控制器以进行错误控制,这意味着当使用总线将每个slc页面传送到控制器或从控制器传送时,其它slc页面存在等待时间使得总线可用。因此,在控制器上执行ec涉及大量时间和功率使用。另外,在总线忙于针对控制器上的ec操作传送数据时,主机命令也由于等待总线而经历延迟。在频繁地使用数据总线时也引发延迟损失。
18.本公开的各方面通过具有存储器子系统来解决以上和其它缺陷,所述存储器子系统涉及将数据从slc存储器折叠到mlc存储器且对存储器组件执行错误控制操作而不将数据传送到控制器。与当数据在mlc存储器中时相比,当待迁移的数据在slc存储器中时,错误控制操作对存储器组件是可行的。对于slc存储器,数据密度较低且读取窗口容限(即,两个电压阈值分布之间的间隔比在mlc存储器中更宽。因此,与mlc存储器中的数据相比,slc存储器中的数据的ec操作更简单。与mlc存储器相比,slc存储器中的数据错误预期也更低。因此,存储器组件自身中的固件具有对slc存储器中的数据执行ec操作而不必在存储器组件外部使用控制器的能力。
19.在一个实施例中,存储器子系统中的控制器发起用于存储器子系统的存储器组件中的数据块的垃圾收集操作,其中数据块配置成slc存储器。在发起垃圾收集之后,存储器组件中的固件接收请求以将数据从配置成slc存储器的数据块迁移(例如,折叠)到配置成mlc存储器的数据块。由于待迁移的数据在slc存储器中,而不是将数据传回到控制器以对数据执行错误控制操作,所以存储器组件自身的固件可执行错误控制操作(例如,错误检测操作和/或错误校正操作)。一旦完成错误控制操作,固件便可将数据迁移到配置成mlc存储器的数据块。
20.与常规技术相比,本公开的优点包含但不限于存储器子系统的总体增加的性能和
效率。由于芯片上错误控制操作(例如,使用存储器组件执行的错误控制),可更有效地执行垃圾收集和折叠操作。消除了执行读取和将数据移动到控制器且返回到存储器组件,以及等待i/o总线可用的大量功耗和时间。i/o总线还被释放用于其它操作和用于主机命令。
21.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n。存储器组件112a到112n可为易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例为ssd。在一些实施例中,存储器子系统110为混合存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110且从存储器子系统110读取数据。
22.主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文所使用,“耦合到”通常指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中间组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取存储器组件112a到112n。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
23.存储器组件112a到112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型快闪存储器。存储器组件112a到112n中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。虽然描述了例如nand型快闪存储器的非易失性存储器组件,但存储器组件112a到112n可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可为但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)和非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a到112n的存储器单元可分组为存储器页面或数据块,所述存储器页面或数据块可指用于存储数据的存储器组件的单元。
24.存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据,和其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。
控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一个实施例中,存储器子系统110可不包含控制器115,且可替代地依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
25.一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令,以实现对存储器组件112a到112n的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和在与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转译。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120进行通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a到112n,以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
26.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲(例如dram)和地址电路系统(例如,行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件112a到112n。
27.存储器子系统110包含可用于使用存储器组件执行错误控制操作以用于垃圾收集的错误控制组件113。在一些实施例中,错误控制组件113可为存储器组件112a到112n中的每一个的部分。举例来说,存储器组件112a可包含配置成执行存储于存储器组件112a中的指令以执行本文中所描述的操作的处理装置(例如,固件)。替代地,可在存储器子系统110的控制器115与存储器子系统110的个别存储器组件112a-112n之间拆分操作(例如,错误检测和错误校正)。举例来说,控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,错误控制组件113为主机系统120、应用程序或操作系统的部分。
28.错误控制组件113可接收请求以将数据从配置成slc存储器的存储器组件112a中的数据块迁移到配置成mlc存储器的数据块。配置成mlc存储器的数据块可为存储器组件112a到112n中的任一个的部分。错误控制组件113可对数据执行错误控制操作,存储器组件上的固件执行错误控制操作(例如,错误检测操作和/或错误校正操作)而不是将数据传回到控制器115以用于执行错误控制操作。一旦完成错误控制操作,错误控制组件113便可将数据迁移到配置成mlc存储器的数据块。下文描述关于特征组件113的操作的其它细节。
29.图2说明根据本公开的一些实施例的在存储器组件112上执行错误控制操作的实例。如实例中所展示,存储器组件112可包含数个存储器单元(例如,c1到cn)。存储器单元中的每一个可存储对应于从主机系统120接收的数据的二进制数据的一或多个位。可通过将存储器单元分组在一起而形成存储器组件112中的单独数据块230(例如,b1、b2、b3到bn)。
某些数据块可配置成slc存储器(例如,b1),其中slc存储器的每个存储器单元(例如,c1、c2、c3、c4)编程有单个数据位。其它数据块配置成mlc存储器(例如,b2),其中mlc存储器的每个存储器单元(例如,c5、c6、c7、c8)通过每存储器单元存储两个位、每存储器单元存储三个位、每存储器单元存储四个位或每存储器单元存储更多位而编程。在一个实施方案中,存储器组件112为包含数个单独数据块230的单个存储器裸片。存储器组件112包含同一存储器组件内的存储器单元的slc部分和mlc部分两者,如图2中所展示。在另一实施方案中,存储器组件112包含多个存储器裸片。每个存储器裸片可包含每存储器裸片的存储器部分的一个类型(例如,仅slc、仅mlc)。
30.在实例中,图1的存储器子系统110的控制器115发起用于存储器组件112的垃圾收集操作210。控制器115可确定何时适合发起垃圾收集操作。在一个实施例中,作为存储器子系统110的常规存储器管理操作的部分,周期性地发起垃圾收集操作210。在另一实施例中,响应于特定事件,例如接收写入请求(例如,来自主机系统120)和确定存储器组件112(例如,图1的112a到112n)不具有足以接受写入请求的容量,发起垃圾收集过程。举例来说,控制器115可确定存储器组件112已满和/或存在不足以接受来自主机120的额外写入操作的容量,且需要执行垃圾收集以释放存储器组件112中的空间。在一些实例中,控制器115可确定存储器子系统110或存储器子系统110内的某些组件处于闲置状态或经历停工时间。基于适当时间的确定,控制器115可发起垃圾收集操作以从某些块擦除无效数据。
31.响应于发起垃圾收集操作210,控制器可确定在其上执行垃圾收集操作210的存储器组件112的数据块。控制器115可选择配置成slc存储器的数据块b1以发起垃圾收集操作210。举例来说,数据块b1的一些存储器单元(例如,c1、c3和c4)含有无效数据且数据块b1的一些存储器单元(例如,c2)含有有效数据。控制器115可向存储器组件112(例如,存储器组件内的固件)发送请求以将数据(例如,有效数据)从存储器单元c2迁移到另一数据块(例如,b2),以便对数据块b1执行擦除操作。可通过读取块b1的单元c2中的数据且将数据写入到另一数据块(例如,b2)的另一单元(例如,单元c6)来执行所述迁移。在完成迁移之后,可擦除块b1中的数据,且可回收b1中的存储器空间以用于存储待从主机120接收的新数据。数据迁移操作可包含待对单元c2中的数据执行的错误控制操作。
32.当控制器115选择配置成slc存储器的数据块时,可在不经由数据总线将数据发送到控制器115的情况下执行错误控制操作。耦合到存储器组件112的存储器单元的处理装置可执行固件以接收请求来将数据从配置成slc存储器的块b1迁移到配置成mlc存储器的块b2。基于在slc存储器中的数据,处理装置确定可由驻存在存储器组件112内的错误控制组件113执行错误控制操作。固件将指令发送到错误控制组件113以对单元c2中的数据(例如,数据201)执行错误控制操作。错误控制组件113对数据201执行错误控制操作220。固件包含不包含经由数据总线将数据201发送到控制器115以执行错误控制操作210的算法,因为错误控制操作由驻存在存储器组件112内的错误控制组件113执行。在一些实例中,固件包含不包含将数据201发送到控制器115以执行错误控制操作210的子组的算法。在一些实例中,可在将数据发送经由到控制器以供进一步处理之前执行错误控制操作。
33.在实施例中,错误控制操作220包含错误检测操作以检测与数据201相关联的错误。在一些实施例中,错误控制操作可进一步包含错误校正操作以基于错误检测操作校正所检测到的错误。在其它实施例中,在基于错误检测操作检测与数据201相关联的错误之
后,处理装置可将数据传送到控制器115以用于校正错误。控制器115可执行错误校正操作以校正所检测到的错误。处理装置可随后从控制器115接收经校正数据。
34.一旦完成错误控制操作,固件便可将数据移动到配置成mlc存储器的数据块。可通过将数据201(或数据201的经校正版本)写入到mlc存储器中的数据块b2的存储器单元来完成数据迁移。在一些实例中,数据块b2为与配置成slc存储器的数据块b1相同的存储器组件112的部分。在其它实例中,数据块b2可为不同于包括配置成slc存储器的数据块b1的存储器组件112的另一存储器组件的部分。在数据的迁移完成之后,可擦除来自数据块b1的现有数据。
35.图3为根据本公开的一些实施例的用于在存储器组件上执行错误控制操作以用于垃圾收集的实例方法300的流程图。方法300可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300或方法300的某些操作由图1的错误控制组件113执行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
36.在操作310处,处理逻辑从控制器115接收请求以将数据从配置成slc存储器的块迁移到配置成mlc存储器的块。配置成slc存储器的数据块可包含存储器组件112a的一或多个存储器页面的分组。在一个实例中,配置成mlc存储器的数据块可包含存储器组件112a的一或多个存储器页面的分组。在另一实例中,配置成mlc存储器的数据块可包含存储器组件112n的一或多个存储器页面的分组。在一个实例中,控制器115驻存在存储器组件112a和112n外部。
37.在操作320处,处理逻辑对数据执行错误控制操作而不将数据传送到控制器115。举例来说,错误控制操作可包含错误检测码和/或错误校正码。在一些实例中,错误检测和/或错误校正代码可包含奇偶校验位、哈希、汉明码、博斯-乔赫里-霍克文黑姆(bose-chaudhuri-hocquenghem(bch))或其它类似循环代码。这些代码通常占据小区域,但其检测和/或校正能力可能会受到限制,且因此可更适于slc而非mlc/tlc/qlc。在一个实例中,错误控制组件113执行操作320。在实例中,存储器组件112a内的固件可包含用于执行错误控制操作的错误控制组件113。错误控制操作可完全由存储器组件112a内的固件执行,不包含将数据传送到控制器115以用于执行错误控制操作的步骤。这可消除用于读取和将数据传送到控制器115的时间和功率使用、等待数据总线可用的时间,以及用于将数据从控制器115传回到存储器组件112的时间和功率使用。
38.在一个实施例中,错误控制操作可包含错误检测操作以检测与数据相关联的错误。在一些实施例中,错误控制操作可包含错误校正操作以基于错误检测操作校正所检测到的错误。在其它实施例中,在基于错误检测操作检测与数据相关联的错误之后,处理逻辑可将数据传送到控制器115以用于校正错误。控制器115可执行错误校正操作以校正所检测到的错误。处理逻辑可随后从控制器115接收经校正数据。
39.在操作330处,处理逻辑将数据从配置成slc存储器的块迁移到配置成mlc存储器的块。在实例中,迁移数据可包含读取存储在配置成slc存储器的块处的数据且将数据写入
到配置成mlc存储器的块。
40.在一个实施例中,除由控制器115编码/解码的常规的错误控制组件之外,数据由重量轻且简单的芯片上错误控制组件113解码。在某一实例中,控制器115的错误控制组件可用于与较高错误率相关联的数据(例如,用于tlc存储器),而芯片上错误控制组件113可用于为其它较简单的错误控制操作提供额外功能性(例如,与slc存储器相关联的那些)。在一些实例中,芯片上错误控制组件可在将一些数据传送到控制器115以用于使用控制器115的错误控制组件执行错误控制操作之前在存储器组件内执行错误控制操作。
41.图4为根据本公开的一些实施例的用于在将数据从slc存储器迁移到mlc存储器时执行错误控制的实例方法400的流程图。方法400可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400或方法400的某些操作由图1的控制器115执行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
42.在操作410处,处理逻辑发起用于存储器组件112a的垃圾收集操作。在一些实施例中,控制器115执行操作410。控制器115可确定何时适合发起垃圾收集操作。在一些实例中,控制器115可确定存储器组件112a已满和/或存在不足以接受来自主机120的额外写入操作的容量,且需要执行垃圾收集以释放存储器组件112a中的空间。在一些实例中,控制器115可确定存储器子系统110或存储器子系统110内的某些组件处于闲置状态或经历停工时间。基于适当时间的确定,控制器115可发起垃圾收集操作以从某些块擦除无效数据。控制器可确定对存储器组件112a的哪一数据块执行垃圾收集操作。在实例中,控制器115可选择配置成slc存储器的数据块以发起垃圾收集操作。
43.在操作420处,处理逻辑发送请求以将数据从配置成slc存储器的块迁移到配置成mlc存储器的块。在一些实施例中,控制器115执行操作420。响应于发起垃圾收集操作,控制器115可发送请求以从经识别用于对其执行垃圾收集操作的数据块迁移数据。控制器115可选择配置成slc存储器的第一数据块以从中迁移数据,作为垃圾收集操作的部分。控制器115可选择配置成mlc存储器的第二数据块以将数据迁移到其中。配置成slc存储器的第一数据块可包含存储器组件112a的一或多个存储器页面的分组。在一个实例中,配置成mlc存储器的数据块可包含存储器组件112a的一或多个存储器页面的分组。在另一实例中,配置成mlc存储器的数据块可包含存储器组件112n的一或多个存储器页面的分组。在一个实例中,控制器115驻存在存储器组件112a和112n外部。
44.在操作430处,处理逻辑接收来自数据块的数据迁移的确认,其中存储器组件内的处理装置对数据执行错误控制操作而不将数据传送到控制器以用于执行错误控制操作。在一些实施例中,控制器115从存储器组件112a接收来自数据块的数据已迁移的确认。在实例中,存储器组件112a内的固件可将确认发送到控制器115。固件可在对数据执行错误控制操作之后发送确认。在一个实例中,固件可包含用于执行错误控制操作的错误控制组件113。在控制器115将请求发送到存储器组件112a以用于数据迁移之后,存储器组件可执行错误控制操作而非将数据传回到控制器115以用于错误控制操作。
45.在一个实施例中,使用存储器组件112a执行的错误控制操作可包含错误检测操作以检测与数据相关联的错误。在一些实施例中,错误控制操作可包含使用存储器组件112a执行的错误校正操作以基于错误检测操作校正所检测到的错误。在其它实施例中,在基于错误检测操作由存储器组件112a检测与数据相关联的错误之后,控制器115接收用于执行错误校正操作的数据,控制器115执行错误校正操作以校正错误,且控制器115在错误校正之后将数据传送到存储器组件。由于slc页面遇到错误的期望较低,因此也期望slc页面的错误校正操作执行的频率较低。因此,存储器组件112a执行错误检测操作且将数据发送到控制器115以用于执行错误校正操作可使与执行用于垃圾收集的错误控制操作相关联的总花费时间和功率使用最小化。在一些实例中,存储器组件112a可通过读取存储在第一数据块处的数据且将数据写入到第二数据块而将数据从第一块迁移到第二块。
46.图5说明计算机系统500的实例机器,在所述计算机系统500内可执行用于使得机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的错误控制组件113的操作)的主机系统(例如,图1的主机系统120)。在替代实施例中,机器可连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
47.机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行将由所述机器采取的指定动作的指令集的任何机器。此外,虽然说明单个机器,但应认为术语“机器”也包含机器的任何集合,所述机器单独地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种。
48.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(sram)等)和数据存储系统518,其经由总线530彼此通信。
49.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置502配置成执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含网络接口装置508以经由网络520通信。
50.数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在所述机器可读存储媒体上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多种的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻存在主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可以对应于图1的存储器子系
统110。
51.在一个实施例中,指令526包含用于实施对应于错误控制组件(例如,图1的错误控制组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储供机器执行的指令集或对其进行编码且使机器执行本公开的方法中的任何一或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
52.已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在这里且通常认为是引起所要结果的操作的自洽序列。操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
53.然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指代将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
54.本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
55.本文呈现的算法和显示器在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用于执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
56.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
57.在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
再多了解一些

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

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

相关文献