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

存储器组件的同一平面内的数据压缩的制作方法

2022-04-02 13:10:32 来源:中国专利 TAG:


1.本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器组件的同一平面内的数据压缩。


背景技术:

2.存储器子系统可以是存储系统,例如固态驱动器(ssd),且可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
3.根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2说明根据本公开的一些实施例的存储器组件处的数据压缩的实例。
6.图3为根据本公开的一些实施例的使用数据压缩在存储器子系统的存储器组件处存储数据的实例方法的流程图。
7.图4为根据本公开的一些实施例的使用数据压缩在存储器子系统的存储器组件处存储数据的实例的流程图。
8.图5为其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
9.本公开的方面涉及管理包含存储器组件的同一平面内的数据压缩的存储器子系统。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可以利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。
10.存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。每一存储器组件可包含不同类型的媒体。媒体的实例包含但不限于非易失性存储器的交叉点阵列和基于快闪的存储器,例如单层级单元(slc)存储器、三层级单元(tlc)存储器和四层级单元(qlc)存储器。不同类型的媒体的特性在一种媒体类型与另一媒体类型之间可不同。与存储器组件相关联的特性的一个实例是数据密度。数据密度对应于存储器组件的每存储器单元可存储的数据量(例如,数据位)。使用基于快闪的存储器的实例,四层级单元(qlc)可存储四个数据位,而单层级单元(slc)可存储一个数据位。因此,包含qlc存储器单元的存储器组件将具有比包含slc存储器单元的存储器组件更高的数据密度。存储器组件的特性的另一实例是存取速度。存取速度对应于存储器组件存取存储在存储器组件处的数据的时间量。
11.存储器组件的其它特性可与存储器组件存储数据的耐久性相关联。在对存储器组件的存储器单元写入数据和/或从其擦除数据时,存储器单元可能受损。在对存储器单元执行的写入操作和/或擦除操作的数目增加时,随着存储器单元逐渐损坏,存储在存储器单元处的数据包含错误的概率增加。与存储器组件的耐久性相关联的特性为对存储器组件的存储器单元执行的写入操作的数目或编程/擦除操作的数目。如果超过对存储器单元执行的写入操作的阈值数目,那么由于数据可包含无法校正的大量错误,因此数据可能不再可靠地存储在存储器单元处。不同媒体类型也可具有针对存储数据的不同耐久性。举例来说,第一媒体类型可具有1,000,000次写入操作的阈值,而第二媒体类型可具有2,000,000次写入操作的阈值。因此,第一媒体类型存储数据的耐久性小于第二媒体类型存储数据的耐久性。
12.与存储器组件存储数据的耐久性相关联的另一特性为写入到存储器组件的存储器单元的总字节。与写入操作的数目类似,随着新数据写入到存储器组件的同一存储器单元,存储器单元受损且存储在存储器单元处的数据包含错误的概率增加。如果写入到存储器组件的存储器单元的总字节的数目超过总字节的阈值数目,那么存储器单元可能不再可靠地存储数据。
13.常规存储器子系统可包含经历存储器管理操作的存储器组件,所述存储器管理操作例如垃圾收集(gc)、耗损均衡、折叠等。垃圾收集试图回收由失效或无效数据占用的存储器。数据可以称为页的单位写入到存储器组件,所述页由多个单元构成。然而,可仅以称为块的更大单位擦除存储器,所述块由多个页构成。举例来说,块可含有64个页。块的大小可为128kb,但可变化。如果不再需要块的页中的一些(例如,失效或无效页)中的数据,那么块为用于垃圾收集的候选项。在垃圾收集过程期间,读取块中的具有良好/有效数据的页且将其重写到另一空块中。接着可擦除原始块,从而使得原始块的所有页可用于新数据。
14.垃圾收集的过程涉及将数据读取及重写到存储器组件。这意味着来自主机的新写入可引起读取整个块、将块内的有效页写入到另一块,且接着写入新数据。刚好在写入新数据之前执行垃圾收集过程可明显降低系统的性能。一些存储器子系统控制器实施后台垃圾收集(bgc),有时称为空闲垃圾收集或空闲时间垃圾收集(itgc),其中控制器在主机需要写入新数据之前使用空闲时间来合并存储器组件的块。这使得装置的性能能够保持为高。如果控制器在绝对必要之前后台垃圾收集所有备用块,那么可在不必提前移动任何数据的情况下写入从主机写入的新数据,从而使性能在其峰值速度下操作。折衷为主机实际上不需要那些数据块中的一些且最终将删除那些数据块中的一些,但操作系统(os)并不将这类信息输送到控制器。结果为将即将删除的数据重写到存储器组件中的另一位置,从而增大写入放大且不利地影响存储器组件的耐久性。写入放大(wa)为与存储器子系统(例如管理存储器、存储存储器、固态驱动器(ssd)等)相关联的非期望现象,其中物理地写入到存储媒体的信息的实际量为预期写入的逻辑量的整倍数。在一些存储器子系统中,后台垃圾收集仅清理少量块,接着停止,由此限制过量写入量。另一解决方案为具有有效垃圾收集系统,其可与主机写入并行地执行必要移动。这种解决方案在存储器子系统很少空闲的高写入环境中更有效。
15.常规垃圾收集消耗过量功率和时间,这是因为传统垃圾收集未必在同一平面上读取和写入。在一个平面中读取数据且将数据写入到另一平面是耗时、成本高且低效的。此外,传统垃圾收集过程可能涉及不必要地将数据从存储器组件移出。
16.传统上,在垃圾收集期间,控制器将有效数据从第一块移动到第二块。控制器搜索存储器组件的块中的任何可用空间以折叠有效数据,而不考虑第二块中的可用空间是否在与第一块相同的平面上。因此,有时,控制器将数据从第一平面上的一个块移动到第二平面上的另一块。在控制器将数据从第一平面折叠到第二平面时,数据遍历两个平面之间的数据总线。与遍历数据总线相关联的行进时间在垃圾收集操作中产生时延,从而防止存储器子系统可用于服务主机请求或执行其它操作。
17.本公开的方面通过具有执行存储器组件的同一平面内的数据压缩的存储器子系统来解决以上和其它缺陷。这类存储器子系统可通过减少数据压缩(例如,slc到tlc)、数据折叠(例如,tlc到tlc)和其它形式的垃圾收集所需的资源来降低成本(通过停留在可能的同一平面中,而非使用多个平面)。本公开的益处中的一个为在垃圾收集期间,控制器验证处于第一平面中的块中是否存在用于数据的任何空间。如果第一平面中存在空间,那么存储器系统由于避免了由数据总线行进时间引起的时延而有益。如果同一平面中不存在折叠数据的空间,那么控制器可在第二平面中找到第二块。本公开的实施例在数据折叠期间将数据移动到另一平面之前利用同一平面中的任何自由空间。
18.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n。存储器组件112a到112n可以是易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。
19.主机系统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之间传递控制、地址、数据和其它信号的接口。
20.存储器组件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的存储器单元可分组为存储器页或数据块,所述存储器页或数据块可以指用于存储数据的存储器组件的单元。
21.存储器系统控制器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,且可实际上依赖于(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
22.一般来说,控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112a到112n的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及在与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路,以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a到112n,以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
23.存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,dram)和地址电路(例如,行解码器和列解码器),其可从控制器115接收地址且解码地址以存取存储器组件112a到112n。
24.存储器子系统110包含数据压缩组件113,控制器115可使用所述数据压缩组件113来压缩存储器组件112a、112n中的一或多个的同一平面内的数据。在一些实施例中,控制器115包含数据压缩组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的用于执行本文中所描述的操作的指令。在一些实施例中,数据压缩组件113是主机系统120、应用程序或操作系统的一部分。
25.如果不再需要数据块的页中的一些(例如,失效或无效页)中的数据,那么块为用于垃圾收集的候选项。数据压缩组件113可识别用于数据压缩的平面内的候选数据块。数据
压缩组件113可将有效数据从数据块复制到页缓冲器。数据压缩组件113可将有效数据从页缓冲器复制到同一平面内和/或另一平面中的块。下文描述关于数据压缩组件113的操作的其它细节。
26.图2为存储器组件200处的数据压缩的实例。存储器组件200包含四个平面:平面1、平面2、平面3和平面4。每一平面具有对应页缓冲器,且平面通过数据总线208彼此连接。数据总线208允许平面与控制器115之间的通信和数据传送。控制器115通过使用数据总线208来执行涉及平面的各种操作。每一平面划分成称为块(例如,块204、210、214)的较小区段。在本公开的一些实施例中,控制器115可读取及写入到个别存储器页,但可在块层级上擦除。
27.平面1 202包含含有旧块204和新块210的多个数据块,以及任何数目的其它数据块。在这一实例中,不再需要数据块204的存储器页中的一些数据(例如,失效或无效页),因此数据压缩组件113将数据块204识别为用于垃圾收集的候选项。数据压缩组件113可通过扫描各种存储器组件112a到112n以识别存储无效/失效数据的一或多个存储器页来识别数据块204中的无效页。在一些实例中,可通过识别非空页(例如,包含逻辑0的页中的存储器单元)来开始扫描。在识别页并不为空之后,数据压缩组件113可验证数据是否失效/无效(例如,并非存储在存储器子系统110中的数据的最新版本)。如果数据不处于对应逻辑地址的最新物理地址处,如果不再需要用于编程操作的数据,和/或如果数据以任何其它方式损坏,那么可认为含有数据的页无效。如果数据处于对应逻辑地址的最新物理地址处,如果需要用于编程操作的数据,和/或如果数据不以任何其它方式损坏,那么可认为含有数据的页有效。替代地,数据压缩组件113可通过参考本地存储器119中的记录来识别存储有效数据的一或多个存储器页。
28.在数据压缩组件113检测到平面1 202开始用完存储新数据的存储容量和/或平面1 202中的至少一个块含有无效数据时,可选择平面1 202以用于数据压缩。在选择平面1 202以用于数据压缩时,数据压缩组件113可将含有有效数据的页从旧块204复制到页缓冲器206。页缓冲器206耦合到且对应于平面1 202。页缓冲器206还耦合到数据总线208。由于数据压缩组件113检测到新块210具有存储传入数据的存储容量,因此可将含有来自旧块204的有效数据的页从页缓冲器206复制到新块210。数据压缩组件113可通过扫描平面1、平面2、平面3和平面4中的块以识别空页(例如,包含逻辑1的页中的存储器单元)或参考本地存储器119中的记录来识别块的自由存储容量。在新块210具有足够空间来存储来自旧块204的有效数据中的一些时,可认为新块210具有存储容量。在一些实施例中,来自旧块204的有效数据的一部分可存储在新块210中,且来自旧块204的有效数据的另一部分可存储在具有存储容量的一或多个其它块中。在块具有存储容量时,数据压缩组件113可将块识别为用于存储来自另一块(其数据待压缩)的有效数据的目标块。
29.这些实例的省时且节省成本的方面为旧块204和新块210处于同一平面(即平面1 202)中的事实。因此,含有来自旧块204的有效数据的页并不必须通过数据总线206到达不同平面(例如,平面2 212、平面3或平面4)。
30.在一个实例中,控制器115或数据压缩组件113可将来自旧块204的有效数据压缩回到旧块204中(例如将来自旧块204的有效数据复制到页缓冲器206,擦除旧块204,且将来自页缓冲器206的有效数据复制回到旧块204)。在此情况下,可通过使用例如耗损均衡的各
种技术来由存储器子系统110考虑写入放大的副作用,其中存储器组件的元件(例如,块)可仅编程及擦除有限数目次。写入放大通常是指存储器组件112n可在其使用寿命内维持的编程/擦除循环(p/e循环)的最大数目。标称地,每一nand块可经受住100,000个p/e循环。耗损均衡可确保统一地行使所有物理块。控制器115可使用耗损均衡来确保本公开中的实例中的任一个中的统一编程和擦除。主机系统120、存储器子系统110、数据压缩组件113和/或控制器115可记录块已编程(例如写入)及擦除的次数,以免耗损任何给定存储器组件112a到112n。
31.在一些实例中,有效数据可以逐存储器页的分段从旧块204传送到对应页缓冲器206且从页缓冲器206传送到新块210。在其它实例中,有效数据可以小于存储器页的分段从旧块204传送到对应页缓冲器206且从页缓冲器206传送到新块210。举例来说,可将来自旧块204的有效数据以逐段方式复制到对应页缓冲器206,其中小于一个存储器页的大小的有效数据的分段复制到页缓冲器206。由于逐段数据区块更快地移动,因此逐段数据传送可比复制存储器页大小的区块中的数据更高效。逐段数据区块可为2kb、4kb、6kb、8kb或任何其它大小。逐段数据传送可称为部分页编程。
32.由于存储器页的较大的大小,部分页编程适用于存储较小量的数据。在一些实例中,每一2112字节存储器页可容纳四个pc大小的512字节分区。每一页的备用64字节区域可提供用于错误校正码(ecc)的额外存储。虽然一次写入所有四个分区可能是有利的,但这通常不可能。举例来说,在数据附加到文件时,文件可以512字节开始,接着增长到1024字节。在此情形下,第一编程页操作可用于将第一512字节写入到存储器子系统110,且第二编程页操作可用于将第二512字节写入到存储器子系统110。在一些实例中,可在需要擦除之前编程部分页的最大次数为四次。在使用mlc存储器子系统的一些实例中,可在擦除操作之间支持每页的仅一个部分页编程。
33.图3为压缩存储器组件的同一平面内的数据的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的数据压缩组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
34.在框302处,处理装置可从存储器组件112a、112n的第一平面202中的第一数据块204识别一或多个存储器页,所述一或多个存储器页存储有效数据。处理装置可使用数据压缩组件113来从存储器组件112a、112n的第一平面202中的第一数据块204识别存储有效数据的一或多个存储器页。数据压缩组件113可扫描各种存储器组件112a到112n以识别存储有效数据的一或多个存储器页。在一些实例中,数据压缩组件113可扫描及识别非空页(例如,包含逻辑0的页的存储器单元)。在识别页并不为空之后,数据压缩组件113可验证数据是否仍有效。如果数据处于对应逻辑地址的最新物理地址处,如果需要用于编程的数据,和/或如果数据不以任何其它方式损坏,那么可认为含有数据的页有效。替代地,数据压缩组件113可通过参考本地存储器119中的记录来识别存储有效数据的一或多个存储器页。在数据压缩组件113确定存储有效数据的自由空间开始在存储器组件112a到112n中的一个中
用完时,控制器115可触发数据压缩组件113开始本文中所公开的数据压缩序列。
35.在框304处,处理装置可将一或多个存储器页复制到对应于存储器组件112a、112n的第一平面202的第一页缓冲器206。复制存储器页可包含页读取操作。页读取操作可花费约25μs,在此期间页从存储器单元阵列存取且加载到页缓冲器206中。页缓冲器206可为16,896位(2112字节)寄存器。处理装置接着可存取页缓冲器206中的数据以将数据写入到新位置(例如,新块210)。复制存储器页还可包含写入操作,其中处理装置可以各种速率(例如,7mb/s或更快)将数据写入到新块210。
36.在框306处,处理装置可确定存储器组件的第一平面202是否具有具备存储一或多个存储器页的容量的第二数据块210。处理装置可使用数据压缩组件113来确定存储器组件112a、121n的第一平面202是否具有具备存储一或多个存储器页的容量的第二数据块210。数据压缩组件113可扫描各种存储器组件112a到112n以识别具有用于新数据的存储容量的一或多个存储器页。具有存储容量的存储器页可称为“自由存储器页”。替代地,数据压缩组件113可通过参考本地存储器119中的记录来识别一或多个自由存储器页。
37.如果第二数据块210具有存储一或多个存储器页的容量,那么在框308处,处理装置可继续将一或多个存储器页从第一页缓冲器206复制到第一平面202中的第二数据块210。复制可包括从第一页缓冲器206读取一或多个存储器页以及将一或多个存储器页写入到第二数据块210。在一些实例中,处理装置可花费220μs到600μs来写入一个页的数据。在框308处,由于第二数据块210与第一数据块204处于同一平面202中,因此处理装置不需要使用数据总线208来将一或多个存储器页从第一页缓冲器206传送到第二数据块210。由于在这一数据传送序列中避免了数据总线行进,因此还避免了与沿着数据总线移动数据相关联的时延。因此,改进了存储器子系统110的操作效率。
38.如果第二数据块210不具有存储一或多个存储器页的容量,那么在框310处,处理装置可继续将一或多个存储器页从第一页缓冲器206复制到第二平面212中的第三数据块214。由于第三数据块214处于与第一数据块不同的平面中,因此一或多个存储器页在数据总线上行进以便到达第二平面212。这一行进时间影响数据总线208和存储器子系统110的操作速度和可用带宽。在其它实例中,处理装置也可将一或多个存储器页从第一页缓冲器206复制到来自第二数据块214的一个存储器页218(例如,slc到tlc压缩,其中三个slc页可写入到一个tlc页中;以及tlc到tlc折叠)。处理装置也可按小于一个存储器页的大小(例如,0.5kb、1kb、2kb、3kb或4kb段)的逐段量将一或多个存储器页从第一数据块204复制到第一页缓冲器206。
39.在框312处,处理装置可擦除第一数据块204中的所有数据,因此完全释放第一数据块以写入。在一些实例中,处理装置可通过将块中的存储器单元设置为逻辑1而实现擦除程序。在一些实例中,处理装置可花费至多500μs来完成擦除。
40.方法300可包含用于内部数据移动命令的读取。用于内部数据移动命令的读取也可称为“回写(copy back)”。其提供将数据内部地从一个页移动到另一页的能力,所述数据从不离开存储器子系统110。用于内部数据移动操作的读取将从一或多个存储器页读取的数据传送到页缓冲器(例如,页缓冲器206)。数据可接着编程/写入到存储器子系统110的另一页中(例如,在第二块210处)。这在控制器115需要在擦除块204(例如数据压缩)之前将数据从块204移出的情况下极其有益。也有可能修改在开始编程操作之前读取的数据。如果控
制器115希望在编程之前改变数据,那么这是有用的。
41.处理装置可进一步在存储器组件上和/或存储器组件外执行错误检测和校正。错误校正码存储器(ecc存储器)可用于这一过程中。ecc存储器为可检测及校正最常见类别的内部数据损坏的计算机数据存储的类型。ecc存储器可维持存储器系统不受单位错误的影响:从每一字读取的数据始终与已写入到其的数据相同,即使实际上存储的位中的一个已翻转到错误状态。
42.ecc还可以指检测且接着校正单位存储器错误的方法。单位存储器错误可为服务器/系统/主机输出或产生中的数据错误,且错误的存在可对服务器/系统/主机性能具有大影响。存在两种类型的单位存储器错误:硬错误和软错误。硬错误由物理因素引起,例如剧烈温度变化、电压应力或对存储器位造成的物理应力。在数据以与最初预期不同的方式写入或读取(例如母板上的电压变化)到可使得存储器中的位翻转的宇宙射线或放射性衰变时,发生软错误。由于位保留其呈电荷形式的编程值,因此这种类型的干扰可更改存储器位的电荷,从而产生错误。在服务器中,存在可发生错误的多个地点:在存储驱动器中、在cpu核心中、通过网络连接以及在各种类型的存储器中。错误检测和校正可减轻这些错误的影响。
43.图4为压缩存储器组件的同一平面202内的数据的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的数据压缩组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
44.在框402处,处理装置可从存储器组件112a、112n的第一平面202中的第一数据块204识别一或多个第一物理地址处的一或多个存储器页,所述一或多个存储器页存储有效数据,其中逻辑地址映射到第一物理地址。逻辑地址可由中央处理单元(cpu)产生,所述中央处理单元包含在主机系统120或存储器子系统110中或与主机系统120或存储器子系统110一起工作。逻辑地址为虚拟地址,因为其物理上不存在。这一虚拟地址用作cpu存取物理存储器位置的参考。术语逻辑地址空间可用于从编程观点产生的所有逻辑地址的集合。主机系统120可包含称为存储器管理单元(mmu)的硬件装置或与所述硬件装置一起工作,所述存储器管理单元将逻辑地址映射到其对应物理地址。物理地址识别存储器组件112a、112n中的数据的物理位置。主机系统120并不处理物理地址,但可通过使用其对应逻辑地址来存取物理地址。编程产生逻辑地址,但编程需要物理存储器以用于其执行,因此逻辑地址在使用之前由mmu映射到物理地址。术语物理地址空间用于对应于逻辑地址空间中的逻辑地址的所有物理地址。重定位寄存器可用于以各种方式将逻辑地址映射到物理地址。在一些实例中,在cpu产生逻辑地址(例如,345)时,mmu可产生添加到逻辑地址的重定位寄存器(例如,300)以识别物理地址的位置(例如,345 300=645)。在本公开中,在有效数据从一个块移动到另一块时,可更新重定位寄存器以反映有效数据的新位置。
45.在框402处,处理装置可使用数据压缩组件113来从存储器组件112a、112n的第一平面202中的第一数据块204识别存储有效数据的一或多个存储器页。数据压缩组件113可
扫描各种存储器组件112a到112n以识别存储有效数据的一或多个存储器页。在一些实例中,数据压缩组件113可扫描及识别非空页(例如,包含逻辑0的页的存储器单元)。在识别页并不为空之后,数据压缩组件113可验证数据是否仍有效。如果数据处于对应逻辑地址的最新物理地址处,如果编程仍需要数据,和/或如果数据不以任何其它方式损坏,那么可认为含有数据的页有效。替代地,数据压缩组件113可通过参考本地存储器119中的记录来识别存储有效数据的一或多个存储器页。在控制器115确定存储有效数据的自由空间开始在存储器组件112a到112n中的一个中用完时,控制器115可触发数据压缩组件113开始数据压缩序列。
46.在框404处,处理装置可将一或多个存储器页复制到对应于存储器组件的第一平面202的页缓冲器206。复制存储器页可包含页读取操作。页读取操作可花费约25μs,在此期间页从存储器单元阵列存取且加载到页缓冲器206中。页缓冲器206可为16,896位(2112字节)寄存器。处理装置接着可存取页缓冲器206中的数据以将数据写入到新位置。复制存储器页还可包含写入操作,其中处理装置可以各种速率(例如,7mb/s或更快)将数据写入到新块210。
47.在框406处,处理装置可确定存储器组件的第一平面202在第二物理地址处具有具备存储一或多个存储器页的容量的第二数据块210。处理装置可使用数据压缩组件113来确定存储器组件的第一平面202具有具备存储一或多个存储器页的容量的第二数据块210。数据压缩组件113可扫描各种存储器组件112a到112n以识别具有用于新数据的存储容量的一或多个存储器页。具有存储容量的存储器页可称为“自由存储器页”。替代地,数据压缩组件113可通过参考本地存储器119中的记录来识别一或多个自由存储器页。
48.在框408处,处理装置可将一或多个存储器页从页缓冲器206复制到第二数据块210,其中更新逻辑地址以映射到第二物理地址。复制可包括将一或多个存储器页写入到第二数据块210。在一些实例中,处理装置可花费220μs到600μs来写入一个页的数据。在框308处,由于第二数据块210与第一数据块204处于同一平面202中,因此处理装置不需要使用数据总线208来将一或多个存储器页从第一页缓冲器206传送到第二数据块210。由于在这一数据传送序列中避免了不必要的数据总线行进,因此还避免了与沿着数据总线移动数据相关联的时延。因此,改进了存储器子系统110的操作效率。
49.在框410处,处理装置可擦除第一数据块204中的所有数据,因此完全释放第一数据块204以写入或编程。在一些实例中,处理装置可通过将块中的存储器单元设置为逻辑1而实现擦除程序。在一些实例中,处理装置可花费至多500μs来完成擦除。
50.图5说明计算机系统500的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),其包含存储器子系统(例如,图1的存储器子系统110)、耦合到所述存储器子系统或利用所述存储器子系统或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的数据压缩组件113的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
51.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式
电话、网页器具、服务器、网络路由器、交换机或桥接器,或能够(循序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多个。
52.实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram)(例如同步dram(sdram)或rambus dram(rdram))等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(sram)等),和数据存储系统518,其经由总线530彼此通信。
53.处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或类似物。处理装置502配置成执行指令526,以用于执行本文中所论述的操作和步骤。计算机系统500可进一步包含网络接口装置508以通过网络520通信。
54.数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),在所述机器可读存储媒体上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多个的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻存在主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
55.在一个实施例中,指令526包含实施对应于数据压缩组件(例如,图1的数据压缩组件113)的功能性的指令。虽然在实例实施例中机器可读存储媒体524展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
56.已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所需结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等有时是便利的。
57.然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可指操纵计算机系统的寄存器和存储器内的表示为物理(电子)量的数据且将所述数据变换成计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
58.本公开还涉及用于执行本文中的操作的设备。这一设备可以出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算
机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
59.本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示内容的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
60.本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
61.在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
再多了解一些

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

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

相关文献