技术领域
[0001] 本公开的实施例大体上涉及存储器装置,并且更具体地说,涉及扩展存储器装置的存储器单元的大小,例如存储器装置的页或页的码字。
相关背景技术
[0002] 存储器子系统可包含存储数据的一或多个存储器装置。所述存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可使用存储器子系统以在存储器装置处存储数据并且从存储器装置检索数据。
具体实施方式
[0013] 本公开的各方面涉及扩展存储器装置的存储器单元的大小,例如存储器装置的页的码字的大小,其中存储器装置可包含在存储器系统(例如,存储器子系统)中。具体地说,一些实施例实施扩展(例如,增加)所述存储器单元(例如,码字)的大小以将例如更多主机数据(例如,用户数据)和保护数据(例如,奇偶校验数据)之类的更多数据存储在所述存储器单元内,同时使用大小比扩展存储器单元小的存储器单元存储槽(例如,页中的码字存储槽)。下文中,具有扩展大小的存储器单元可被称为扩展存储器单元。一些实施例截断扩展存储器单元,使得扩展存储器单元的保护数据被打破(例如,划分成至少两个部分),但所得截断存储器单元(例如,包含保护数据的一个部分的截断码字)适合放在其既定存储器单元存储槽内。另外,各种实施例实施对扩展(例如,增大大小)码字的支持,同时至少维持码字的编码速率(例如,同时继续在码字内提供足够量的奇偶校验数据,例如低密度奇偶校验检查(LDPC)数据),这可使存储器装置能够满足或维持目标耐久性、保持性和可靠性特征。
[0014] 存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可使用包含例如存储数据(例如,主机数据)的存储器装置之类的一或多个组件的存储器子系统。主机系统可将存取请求发送到存储器子系统,以便在存储器子系统处存储数据并且从存储器子系统读取数据。
[0015] 主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”。主机请求可包含主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、命名空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、名称空间)可以是主机数据的元数据的部分。元数据还可包含错误处理数据(例如,错误校正码(ECC)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的时期)、有效位图(哪些LBA或逻辑传递单元含有有效数据)等等。
[0016] 存储器子系统可以对存储在存储器装置上的主机数据发起媒体管理操作,例如写入操作。例如,作为垃圾收集管理操作的部分,存储器子系统的固件可将先前写入的主机数据从存储器装置的方位重写到新位置。重写的数据(例如,如通过固件启动)在下文中称为“垃圾收集数据”。
[0017] 下文中的“用户数据”大体指代主机数据和垃圾收集数据。下文中的“系统数据”指由存储器子系统产生和/或维护以用于响应于主机请求而执行操作和用于媒体管理的数据。系统数据的实例包含但不限于系统表(例如,逻辑到物理存储器地址映射表,在本文中也称为L2P表)、来自日志记录的数据、高速暂存数据等。
[0018] 存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每个裸片可由一或多个平面构成。对于一些类型的非易失性存储器装置(例如,与非(NAND)型装置),每个平面由一组物理块构成。对于一些存储器装置,块是可擦除的最小区域。每个块由页集合构成。每个页由存储数据位的一组存储器单元构成。存储器装置可以是原始存储器装置(例如,NAND),其在外部例如由外部控制器管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其是与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。
[0019] 传统上,已基于业界标准扇区大小设置NAND型存储器装置的页的大小。一般来说,每个页包括特定数目个码字,其中每个码字包括用于存储某一数目个数据扇区(或扇区)的有效负载部分(或有效负载),所述数据扇区包括来自主机系统的数据(或主机数据),并且其中每个码字包括可包含保护数据(例如,奇偶校验数据)以用于保护(例如,促进错误校正)码字中的所有数据的非有效负载部分。非有效负载部分还可包含保护信息、循环冗余检查(CRC)数据以及元数据(例如,安全元数据和固件元数据)等。在过去,由主机系统使用的扇区的大小已经设置成512字节,并且因此,NAND型存储器装置已经配置有包括四个4096字节码字的16千字节页,其中每个码字包括有效负载,所述有效负载各自存储八个512字节扇区并且包括奇偶校验数据,以用于促进对存储在有效负载中的主机数据的错误校正。
[0020] 然而,存储器技术(例如,对于企业市场和应用)的最近发展已使得每个码字内的扇区大小和有效负载大小增加(例如,使每个增加到存储八个528字节扇区的4588字节有效负载),这通常使得用于存储保护数据(例如,LDPC数据)的码字中的空间减少。例如,在保护数据含有奇偶校验数据的情况下,空间的减少可使得码字不能存储足够的奇偶校验数据以满足目标错误校正能力(例如,满足错误校正要求)。举例来说,在奇偶校验数据包括LDPC数据的情况下;用于将LDPC数据存储在码字内的空间的减小将产生码字的较高编码速率(CR)。如本文所使用,码字的编码速率是码字的有效负载的大小与码字的总大小之间的比率。例如,在4588字节码字包括4224字节有效负载的情况下,码字的编码速率将为0.929。码字的编码速率可用作由存储在码字中的保护数据(例如,奇偶校验数据)提供的对码字内的位错误的数据保护(例如,错误保护)能力的指示。一般来说,码字的编码速率越低,通过其保护数据提供给码字的数据保护(例如,错误保护)越多。因此,当LDPC数据在码字内减少时,针对码字产生的编码速率会更高,并且LDPC数据对码字内的数据提供的数据保护能力(例如,错误校正)会更低。对于某些应用,例如企业应用,需要使NAND型存储器装置的页的码字具有小于0.929的编码速率,因为这可确保NAND型存储器装置满足特定可靠性(例如,充分克服存储器装置的位错误率)、耐久性和数据保持预期。不利的是,增加码字内的扇区和有效负载大小,而不增加页中的码字的大小或不增加页自身的大小,可产生较高编码速率和减少/减弱的数据保护能力。
[0021] 本公开的各方面通过扩展存储器装置的存储器单元(例如,页或页中的码字)的大小而不增加用以将存储器单元存储于存储器装置上的存储器单元存储槽的大小来解决以上和其它不足。根据实施例的大小得到扩展的存储器单元可被称为扩展存储器单元。例如,一些实施例扩展页的码字的大小(以产生扩展码字),同时避免页内的码字存储槽的大小增加或避免码字的编码速率增加。本文所描述的各种实施例通过截断扩展存储器单元(例如,扩展码字)以产生扩展存储器单元(截断存储器单元)的截断版本而促进扩展存储器单元的大小,其中产生截断存储器单元以使得其可适合放在存储器单元存储槽(例如,码字存储槽)中,并且其中扩展存储器单元的保护数据(例如,奇偶校验数据)被打破(例如,划分)成保护数据的第一部分和第二部分,并且保护数据的第二部分与截断存储器单元分开存储。
[0022] 例如,实施例可产生大于(存储器装置的页的)目标码字存储槽的扩展码字,其中将存储扩展码字。实施例可将扩展码字划分(例如,拆分或解构)成第一码字部分和第二码字部分,所述第一码字部分至少包括用于存储主机数据的有效负载和用于扩展码字的保护数据的第一部分(例如,奇偶校验数据的第一部分),所述第二码字部分包括用于扩展码字的保护数据的第二部分(例如,奇偶校验数据的第二部分),其中保护数据的第一部分和第二部分形成用于扩展码字的原始保护数据。实施例可将第一码字部分存储在目标码字存储槽中,并且可将第二码字部分存储在(例如,同一页或不同页的)另一码字存储槽中。以此方式,本文所描述的扩展码字可经截断(例如,缩短)以适合放到其预期(目标)码字存储槽(例如,具有大小为1/4页的码字存储槽)中,并且可将由截断产生的(经打破/划分)保护数据存储在其它地方(当需要在扩展码字上进行错误校正操作时存取)。结果,各种实施例使得码字能够在大小上扩展以在其中支持较大有效负载大小或扇区大小(大于常规技术原本可能的大小),而扩展码字可使用码字存储槽的现有大小(例如,最初经配置以适合1/4页大小的码字的1/4页大小的存储槽),并且仍可实现用于扩展码字的目标编码速率。取决于实施例,由扩展码字的截断产生的第二码字部分(包括保护数据的第二部分)可存储在与由截断产生的第一码字部分相同的页中的不同码字存储槽中,或者存储在存储器装置的不同页的码字存储槽中。另外,由截断(例如,同一页或不同页的)多个码字产生的第二码字部分可共同地存储于不同页的一或多个码字存储槽中。
[0023] 各种实施例基于在存储器装置的存储器位置处的第一存储器单元存储槽位内单独存储经扩展存储器单元的截断版本以及在第二存储器单元存储槽内(例如,在存储器装置的相同或另一存储器位置处)存储经扩展存储器单元的保护数据的一部分而对经扩展存储器单元执行操作(例如,读取操作或写入操作)。例如,在已划分扩展码字并且将第一码字部分(包括主机数据和保护数据的第一部分)和第二码字部分(包括保护数据的第二部分)单独地存储在存储器装置上之后,可通过使用保护数据的第一部分并且不使用第二码字部分(例如,不使用包含保护数据的第二部分)、使用错误校正组件(错误校正引擎,例如LDPC引擎)初始地处理第一码字部分而从存储器装置读取扩展码字。例如,在错误校正组件预期接收并处理扩展码字的情况下,错误校正组件可仅具备第一码字部分,并且经指示/配置以忽略扩展码字的对应于第二码字部分的剩余部分(例如,避免对扩展码字的剩余部分进行错误校正)。当错误校正组件未检测到数据错误时,各种实施例可避免必须存取并且使用第二码字部分来校正扩展码字。然而,响应于错误校正组件检测到第一码字部分中的数据错误(例如,检测到LDPC触发或LDPC失败)并且未能使用保护数据的第一部分校正数据错误,可从存储器装置存取第二码字部分(包含保护数据的第二部分),并且第一码字部分可由错误校正组件处理,但与第二码字部分一起处理(例如,错误校正组件经指示/配置以停止忽略扩展码字的对应于第二码字部分的剩余部分)。在这样做时,错误校正组件能够使用来自在错误校正组件失败后存取的第二码字部分的保护数据的第二部分(例如,奇偶校验数据的第二部分)对扩展码字进行错误校正。虽然本文描述了关于码字的一些实施例,但本文所描述的各种实施例可应用于存储器装置上使用的不同类型的存储器单元。
[0024] 通过使用一些实施例,可扩展存储于现有存储器装置(例如,NAND型存储器装置)的存储器单元(例如,页内的码字)中的保护数据(例如,奇偶校验数据),而不必重新配置用以将扩展存储器单元存储于存储器装置上的存储器单元存储槽(例如,码字存储槽)的大小。在这样做时,可在不增加存储器装置的页内的码字存储槽的大小的情况下实现码字的强编码速率(例如,通过使用足够的LDPC奇偶校验而使CR小于0.929)。
[0025] 如本文所使用,存储器单元可包括存储器装置的页或页的码字。如本文所使用,页的一部分可存储多个码字。例如,页可存储四个码字(例如,四个4KB码字)。如本文所使用,编码速率可包括存储于码字内的总主机数据(例如,码字内的主机扇区的大小)与码字的总大小之间的比率。如本文所使用,保护数据可包括奇偶校验数据,例如LDPC数据。如本文所使用,LDPC表示错误校正算法的实例。各种实施例可使用其它类型的错误校正算法,例如擦除编码算法。如本文所使用,经扩展存储器单元可指代具有比用于将单独的存储器单元(例如,码字)存储于存储器装置上的单独的存储器单元存储槽(例如,码字存储槽)大的大小的存储器单元(例如,大小经扩展为较大的码字)。如本文所使用,存储器单元的非截断版本(非截断存储器单元)可表示其全部的存储器单元。存储器单元的非截断版本可包括:存储器单元的截断版本,其包含保护数据的第一部分;以及用于存储器单元的非截断版本的第二部分保护数据。如本文所使用,存储器单元的截断版本(截断存储器单元)可表示包含保护数据的第一部分但经截断以适合放到存储器装置的存储器单元存储槽中的存储器单元的版本。
[0026] 本文所公开的是扩展存储器装置的存储器单元的大小的一些实例,如本文所描述的。
[0027] 图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
[0028] 存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储器(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO‑DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
[0029] 计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
[0030] 计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到”或“与……耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论有线或无线,包含例如电、光学、磁性等的连接。
[0031] 主机系统120可包含处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器),以及存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
[0032] 主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于SATA接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步使用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1示出存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
[0033] 存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
[0034] 非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND类型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
[0035] 每个存储器装置130可包含一或多个存储器单元阵列。一种类型的存储器单元,例如SLC,可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、TLC、四层级单元(QLC)和五层级单元(PLC)每单元可存储多个位。在一些实施例中,每个存储器装置130可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或其任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为可指代用以存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
[0036] 尽管描述了例如非易失性存储器单元的3D交叉点阵列及NAND型快闪存储器(例如,2D NAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)‑MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
[0037] 存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲器存储器,或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
[0038] 存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示实例中,存储器子系统控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种处理、操作、逻辑流程和例程。
[0039] 在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管将图1中的实例存储器子系统110示出为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,并且可能改为依靠(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
[0040] 一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
[0041] 存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并且解码所述地址以存取存储器装置130。
[0042] 在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地媒体控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
[0043] 存储器子系统控制器115包含扩展存储器单元操作器113,其实现或促进关于存储器子系统110的存储器装置,例如存储器装置130、140中的一个上的扩展存储器单元的操作。对于一些实施例,存储器子系统控制器115从主机系统120接收从存储器地址读取所存储数据(例如,所存储主机数据)的请求,其中存储器地址对应于存储器装置(例如,130、140)上的存储器位置。响应于所述请求,存储器子系统控制器115可处理从存储器地址读取所存储数据的请求。对于一些实施例,存储器子系统控制器115通过从存储器位置存取选择存储器单元(截断存储器单元)的截断版本而处理从存储器地址读取所存储数据的请求,其中从存储器位置中的选择位置(例如,选择存储器单元存储槽)存取选择存储器单元的截断版本。所述选择存储器单元的截断版本可包括用于选择存储器单元的非截断版本的保护数据的第一部分,并且可不包括用于选择存储器单元的非截断版本的保护数据的第二部分。
选择存储器单元表示大小经设定为大于意图存储经扩展存储器单元的(存储器位置的)存储器单元存储槽的大小的经扩展存储器单元;如本文所描述的,经扩展存储器单元可由本文所描述的实施例截断以适合放到存储器单元存储槽中。存储器位置可包括存储器装置(例如,130、140)的页,并且存储器位置可包括多个存储器单元存储槽(例如,码字存储槽),例如各自包括1/4页的四个码字存储槽。
[0044] 根据各种实施例,存储器子系统控制器115通过以下操作处理从存储器地址读取所存储数据的请求:对从存储器位置存取的选择存储器单元(截断存储器单元)的截断版本执行错误校正过程;以及确定对截断版本执行的错误校正过程是否会触发错误校正失败。对于一些实施例,基于保护数据的第一部分(包含在截断版本中)对选择存储器单元的截断版本执行错误校正过程。对于一些实施例,选择存储器单元的截断版本不包括用于选择存储器单元(非截断存储器单元)的非截断版本的保护数据的第二部分。对于一些实施例,对选择存储器单元的截断版本执行错误校正过程,使得错误校正过程使用保护数据的第一部分(来自截断版本)并且忽略选择存储器单元的截断版本中不包括的保护数据的第二部分。
例如,错误校正过程可包括LDPC处理(例如,经由存储器系统的LDPC解码器执行),并且低密度奇偶校验检查处理可通过使用擦除零(例如,幻象零)而忽略选择存储器单元的截断版本中不包括的保护数据的第二部分。保护数据可包括用于选择存储器单元的非截断版本的奇偶校验数据。例如,奇偶校验数据可包括LDPC数据,并且错误校正过程可包括LDPC处理。错误校正失败可包括错误校正过程基于保护数据的第一部分错误校正了选择存储器单元的截断版本的失败。例如,错误校正失败可包括LDPC失败(例如,硬LDPC失败)。
[0045] 对于一些实施例,响应于确定对选择存储器单元的截断版本执行的错误校正过程不会触发错误校正失败,存储器子系统控制器115使用由对选择存储器单元的截断版本执行的错误校正过程产生的结果产生对主机系统120的至少部分响应,以用于请求。对截断版本执行的错误校正过程的结果可包括基于保护数据的第一部分而应用一或多个错误校正(例如,选择存储器单元的错误校正版本)的选择存储器单元的截断版本。因此,对于主机系统120的响应可包含来自经由错误校正过程的结果(例如,应用了错误校正)提供的选择存储器单元的截断版本的有效负载部分的主机数据。替代地,根据一些实施例,响应于确定对选择存储器单元的截断版本执行的错误校正过程会触发错误校正失败,存储器子系统控制器115从存储器装置的不同存储器单元存取保护数据的第二部分。不同存储器单元可存储在存储器装置(例如,130、140)的与存储选择存储器单元的截断版本的位置相同的存储器位置(例如,同一页)中,或不同存储器单元可存储在存储器装置的不同存储器位置(例如,不同页)处。根据各种实施例,存储器子系统控制器115通过将从存储器位置存取的选择存储器单元的截断版本与从不同存储器单元存取的保护数据的第二部分组合来产生(例如,重构)选择存储器单元(非截断)的非截断版本。将选择存储器单元的截断版本与保护数据的第二部分组合可包括将保护数据附加(例如,重新附接)到选择存储器单元的截断版本,由此使选择存储器单元完全恢复或重构。
[0046] 此后,一些实施例的存储器子系统控制器115基于保护数据的第一部分和保护数据的第二部分对选择存储器单元的非截断版本执行错误校正过程。对于一些实施例,存储器子系统控制器115确定对选择存储器单元的非截断版本执行的错误校正过程是否会触发错误校正失败。根据一些实施例,响应于确定对选择存储器单元的非截断版本执行的错误校正过程不会触发错误校正失败,存储器子系统控制器115使用由对选择存储器单元的非截断版本执行的错误校正过程产生的结果产生对主机系统120的至少部分响应,以用于请求。对非截断版本执行的错误校正过程的结果可包括基于保护数据的第一部分和保护数据的第二部分而应用一或多个错误校正(例如,选择存储器单元的错误校正版本)的选择存储器单元的非截断版本。因此,对于主机系统120的响应可包含来自经由错误校正过程的结果(例如,应用了错误校正)提供的选择存储器单元的非截断版本的有效负载部分的主机数据。
[0047] 对于一些实施例,存储器子系统控制器115从主机系统120接收将主机数据写入到存储器地址的请求,其中存储器地址对应于存储器装置(例如,130、140)上的存储器位置。响应于所述请求,存储器子系统控制器115可处理将主机数据写入到存储器地址的请求。对于一些实施例,存储器子系统控制器115通过基于主机数据的选择部分产生选择存储器单元的非截断版本来处理将主机数据写入到存储器地址的请求,其中选择存储器单元的非截断版本包括(例如,部分表示)包含保护数据的第一部分的选择存储器单元的截断版本,并且包括(例如,部分表示)用于选择存储器单元的非截断版本的保护数据的第二部分。根据选择存储器单元的非截断版本,实施例可将选择存储器单元的非截断版本划分为选择存储器单元的截断版本和选择存储器单元的非截断版本的保护数据的第二部分。如本文所描述,可设定选择存储器单元的截断版本的大小以使得其可适合放在存储器装置的存储器位置的存储器单元存储槽内。产生选择存储器单元的非截断版本可包括截断(例如,划分)选择存储器单元的非截断版本。根据选择存储器单元的非截断版本,一些实施例的存储器子系统控制器115将选择存储器单元的截断版本存储到存储器位置,其中选择存储器单元的截断版本包括用于选择存储器单元的非截断版本的保护数据的第一部分,并且不包括用于选择存储器单元的非截断版本的保护数据的第二部分。根据各种实施例,选择存储器单元的截断版本存储于存储器位置的存储器单元存储槽中。对于各种实施例,存储器单元存储槽(用于存储选择存储器单元的截断版本)的大小太小而无法存储选择存储器单元的非截断版本,但选择存储器单元的截断版本的大小小于或等于存储器单元存储槽的大小。另外,根据选择存储器单元的非截断版本,一些实施例的存储器子系统控制器115将保护数据的第二部分存储到存储器装置的不同存储器单元中的选择位置。以此方式,保护数据的第二部分可与选择存储器单元的截断版本分开存储。对于各种实施例,不同存储器单元存储于与用以存储选择存储器单元的截断版本的第二存储器单元存储槽不同的第一存储器单元存储槽中。第一存储器单元存储槽和第二存储器单元存储槽可具有相同存储器位置(例如,存储器装置130的同一页),或各自可以是单独存储器位置(例如,存储器装置130的两个不同页)的一部分。用来存储用于选择存储器单元的非截断版本的保护数据的第二部分的不同存储器单元(例如,不同码字)可用于存储用于多个、不同非截断存储器单元(例如,多个非截断码字)的保护数据的第二部分,其中用于每个非截断存储器单元的保护数据的第二部分存储在不同存储器单元内的不同(例如,指定)位置处。
[0048] 参考图6示出和描述了页的存储器单元(例如,非截断码字)和存储器单元存储槽(例如,码字存储槽)的非截断版本的实例。参考图7示出和描述了经截断存储器单元(例如,截断码字)的存储和保护数据的第二部分与经截断存储器单元的分开存储的实例。
[0049] 取决于实施例,选择存储器单元可包括第一码字,并且不同存储器单元可包括第二(不同)码字。例如,选择存储器单元可包括第一码字,其中第一码字包括有效负载部分和非有效负载部分,其中有效负载部分经配置以存储由主机系统120提供的数据(例如,主机数据),并且其中非有效负载部分包括保护数据的第一部分。非有效负载部分还可包括例如以下各项中的至少一个:第一码字的保护信息、第一码字的循环冗余检查(CRC)数据,以及第一码字的元数据。不同存储器单元可包括第二码字,其中第二码字可经配置以存储用于存储器装置(例如,130、140)的多个码字的保护数据的第二部分,并且其中多个码字包含第一码字。例如,第二码字可包括有效负载部分和非有效负载部分,并且其中有效负载部分可经配置以存储用于多个码字的保护数据的第二部分,并且其中非有效负载部分可经配置以存储用于第二码字的非主机数据(例如,保护信息、CRC数据、元数据等等)。
[0050] 图2至5是根据本公开的一些实施例的用于在具有扩展大小的存储器单元上执行操作的实例方法的流程图。方法200、300、400、500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200、300、400、500中的至少一个由图1的存储器子系统控制器115基于扩展存储器单元操作器113执行。另外或替代地,对于一些实施例,方法200、300、400、500中的至少一个至少部分地由图1的存储器装置130的本地媒体控制器135执行。虽然以特定顺序或次序示出,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。其它过程流程也是可能的。
[0051] 现在参考图2的方法200,对于一些实施例,方法200表示用于处理来自主机系统(例如,120)的请求以从存储器地址读取所存储数据的方法,其中存储器地址对应于存储器系统(例如,存储器子系统110)的存储器装置(例如,130、140)上的存储器位置(例如,页)。在操作220处,处理装置(例如,存储器子系统控制器115的处理器117)对从存储器位置存取的存储器单元的截断版本执行错误校正过程,其中存储器单元的截断版本包括用于存储器单元的非截断版本的保护数据的第一部分,并且不包括用于存储器单元的非截断版本的保护数据的第二部分。对于一些实施例,存储器单元包括第一码字,其中第一码字包括有效负载部分和非有效负载部分,并且其中有效负载部分经配置以存储由主机系统提供的数据,并且非有效负载部分包括保护数据。例如,非有效负载部分可包括例如以下各项中的至少一个:第一码字的保护信息、第一码字的循环冗余检查(CRC)数据,以及第一码字的元数据。
另外,对于一些实施例,保护数据可包括用于存储器单元的非截断版本的奇偶校验数据。例如,奇偶校验数据可包括用于存储器单元的非截断版本的低密度奇偶校验检查(LDPC)数据,其中LDPC数据可由LDPC处理使用以对存储器单元的非截断版本进行检查和错误校正。
[0052] 虽然未在图2中示出,但可在操作220之前从存储器位置存取存储器单元的截断版本。在操作222处,处理装置(例如,处理器117)确定对存储器单元的截断版本执行的错误校正过程是否会触发错误校正失败。
[0053] 对于一些实施例,(对存储器单元的截断版本执行错误校正过程的)操作220包括对存储器单元的截断版本执行错误校正过程,使得错误校正过程使用(来自截断版本的)保护数据的第一部分并且忽略存储器单元的截断版本中不包括的保护数据的第二部分。操作220可例如使得(例如,通过指示或配置)错误校正过程使用保护数据的第一部分并且忽略保护数据的第二部分(也就是说,存储器单元的截断版本不包括保护数据的第二部分)。对于各种实施例,错误校正过程包括低密度奇偶校验检查(LDPC)过程,并且低密度奇偶校验检查处理通过使用擦除零(例如,幻象零)来忽略存储器单元的截断版本中不包括的保护数据的第二部分。
[0054] 响应于确定(在操作222处)对存储器单元的截断版本执行的错误校正过程会触发错误校正失败,在操作224处,处理装置(例如,处理器117)从存储器装置(例如,130、140)的不同存储器单元存取(用于存储器单元的非截断版本的)保护数据的第二部分。在操作226处,处理装置(例如,处理器117)通过将从存储器位置存取的存储器单元的截断版本与从不同存储器单元存取的保护数据的第二部分(在操作224处存取)组合来产生存储器单元的非截断版本。对于一些实施例,存储器单元包括第一码字,并且不同存储器单元包括第二码字。例如,不同码字可经配置以存储用于存储器装置(例如,130、140)的多个码字的保护数据的第二部分,其中所述多个码字包含第一码字。随后,在操作228处,处理装置(例如,处理器117)基于保护数据的第一部分和保护数据的第二部分对在操作226处产生的存储器单元的非截断版本执行错误校正过程。参考图3示出和描述了更多相关额外操作(基于操作228)。
[0055] 尽管未在图2中示出,响应于确定(在操作222处)对存储器单元的截断版本执行的错误校正过程不会触发错误校正失败,处理装置(例如,处理器117)使用由对存储器单元的截断版本执行的错误校正过程产生的结果产生至少部分响应。
[0056] 现在参考图3的方法300,对于一些实施例,方法300类似于图2的方法200,其中操作320、322、324、326、328分别类似于方法200的操作220、222、224、226、228。在操作302处,处理装置(例如,存储器子系统控制器115的处理器117)从主机系统接收从存储器地址读取所存储数据的请求,其中存储器地址对应于存储器装置(例如,130、140)上的存储器位置。响应于在操作302处接收到请求,处理装置(例如,处理器117)通过执行操作318至332来处理请求(在操作304处)。
[0057] 在操作318处,处理装置(例如,处理器117)从存储器位置存取存储器单元的截断版本,其中存储器单元的截断版本包括用于存储器单元的非截断版本的保护数据的第一部分并且不包括用于存储器单元的非截断版本的保护数据的第二部分。操作320至328在操作318之后执行,其中操作320、322、324、326、328分别类似于图2的方法200的操作220、222、
224、226、228。
[0058] 在操作330处,处理装置(例如,处理器117)确定对存储器单元的非截断版本执行的错误校正过程(在操作328处)是否会触发错误校正失败。响应于确定(在操作330处)对存储器单元的非截断版本执行的错误校正过程不会触发错误校正失败,处理装置(例如,处理器117)可停止处理读取所存储数据的请求,并且可向主机系统(例如,120)通知所述请求处理失败。替代地,响应于确定(在操作330处)对存储器单元的非截断版本执行的错误校正过程不会触发错误校正失败,在操作332处,处理装置(例如,处理器117)使用由对存储器单元的非截断版本执行的错误校正过程(在操作328处)产生的结果产生对主机系统(例如,120)的至少部分响应,以用于请求(在操作302处接收)。最终,所产生的响应可由存储器系统(例如,存储器子系统110)提供(例如,从其发送)到主机系统(例如,120)。由对存储器单元的非截断版本执行的错误校正过程产生的结果可包括应用了错误校正(由错误校正过程使用来自存储器单元的截断版本的保护数据的第一部分和从不同存储器单元存取的保护数据的第二部分应用)的存储器单元的非截断版本。
[0059] 同样如图3所示,响应于确定(在操作328处)对存储器单元的截断版本执行的错误校正过程不会触发错误校正失败,在操作332处,处理装置(例如,处理器117)使用由对存储器单元的截断版本执行的错误校正过程(在操作320处)产生的结果产生至少部分响应。由对存储器单元的截断版本执行的错误校正过程产生的结果可包括应用了错误校正(由错误校正过程应用而不使用保护数据的第二部分)的存储器单元的截断版本。
[0060] 现在参考图4的方法400,对于一些实施例,方法400表示用于处理来自主机系统(例如,120)的请求以将主机数据写入存储器地址的方法,其中存储器地址对应于存储器系统(例如,存储器子系统110)的存储器装置(例如,130、140)上的存储器位置(例如,页)。在操作420处,处理装置(例如,存储器子系统控制器115的处理器117)基于由主机系统(例如,120)提供的主机数据的选择部分而产生存储器单元的非截断版本,其中存储器单元的非截断版本包括:存储器单元的截断版本,其包括用于存储器单元的非截断版本的保护数据的第一部分;以及用于存储器单元的非截断版本的保护数据的第二部分。对于一些实施例,存储器单元包括第一码字,其中第一码字包括有效负载部分和非有效负载部分,并且其中有效负载部分经配置以存储主机数据的选择部分。对于一些实施例,非有效负载部分包括以下各项中的至少一个:第一码字的保护信息、第一码字的循环冗余检查(CRC)数据,以及第一码字的元数据。另外,对于一些实施例,非有效负载部分不包括保护数据。
[0061] 在操作422处,处理装置(例如,处理器117)将存储器单元的截断版本从存储器单元的非截断版本(在操作420处产生)存储到存储器位置,其中存储器单元的截断版本不包括保护数据的第二部分。另外,在操作424处,处理装置(例如,处理器117)将保护数据的第二部分从存储器单元的非截断版本(在操作420处产生)存储到存储器装置的不同存储器单元中的选择位置。对于一些实施例,不同存储器单元包括第二(不同)码字,其中第二码字可经配置以存储用于存储器装置的多个码字的保护数据的第二部分,并且其中多个码字包含第一码字。
[0062] 现在参考图5的方法500,对于一些实施例,方法500类似于图4的方法400,其中操作520、522、524分别类似于方法400的操作420、422、424。在操作502处,处理装置(例如,存储器子系统控制器115的处理器117)从主机系统接收将主机数据写入到存储器地址的请求,其中存储器地址对应于存储器装置(例如,130、140)上的存储器位置。响应于在操作502处接收到请求,处理装置(例如,处理器117)通过执行操作520至524来处理请求(在操作504处)。
[0063] 图6是示出根据本公开的一些实施例的具有扩展大小的存储器单元600的实例的图。取决于实施例,存储器单元600可在大小上扩展以适应更多有效负载数据(例如,主机数据)、适应更多非有效负载数据(例如,保护信息或元数据)或这两者。存储器单元600表示在根据本文所描述的各种实施例的存储之前的存储器单元600的非截断版本,并且存储器单元存储槽610表示待用于存储存储器单元600的截断版本的(例如,页的)存储槽。如所示出,存储器单元600具有大于存储器单元存储槽610的大小(例如,具有1/4页的大小),并且因此,各种实施例可截断存储器单元600并且击穿(例如,在620处划分)保护数据(如本文所描述的)以使存储器单元600能够适合于存储器单元存储槽610。例如,在页的存储器单元存储槽具有4588字节的大小的情况下,存储器单元600(其非截断版本)可具有4652字节的大小,其中存储器单元的截断版本可具有4588字节的大小,并且存储器单元600不包括的64个字节(例如,包括保护数据)可存储在如本文所描述的不同存储器单元处。在图6中,存储器单元600包括可存储主机数据的存储器单元600的有效负载部分602,并且包括可存储可包含保护数据的非主机数据的非有效负载部分604。例如,如所示出,非有效负载部分604可存储保护信息(PI)、跨存储器单元600的所有数据(指定为HCRC)计算的循环冗余检查(CRC)数据、存储器单元600的元数据(MD)、跨有效负载部分602计算的循环冗余检查(CRC)数据以及存储器单元600的奇偶校验数据606,其中奇偶校验数据606可表示存储器单元600的保护数据。对于一些实施例,存储器单元600实施具有比将用于存储码字的码字存储槽大的扩展大小的码字。根据本文描述的各种实施例,奇偶校验数据606被打破(例如,划分)成第一部分和第二部分,使得:包括奇偶校验数据606的第一部分但不包括奇偶校验数据606的第二部分的存储器单元600的截断版本,可适合放到存储器单元存储槽610中;并且奇偶校验数据606的第二部分可存储在另一存储器单元存储槽中(例如,在仅使用奇偶校验数据606的第一部分对存储器单元600的截断版本进行的错误校正失败的情况下,用于将来可能的检索)。
[0064] 图7是示出根据本公开的一些实施例的截断存储器单元和相关联保护数据的实例以及执行错误校正过程的实例的图。具体地说,图7示出包括存储器装置(例如,130、140)的十六个页(页0至15)的超级页702。如所示出,超级页702中的每个页包括用于存储四个存储器单元(MU)的四个存储器单元存储槽。例如,超级页702的页0示出为存储存储器单元0至3(MU0至MU3),并且超级页702的页15示出为存储存储器单元60至63(MU60至MU63)。根据各种实施例,存储器单元0至62(MU0到MU62)中的每一个可表示存储器单元的经截断版本(例如,类似于600),其大小大于由超级页702的页提供的存储器单元存储槽。例如,在图7中,每个存储器单元存储槽可具有足以存储具有4588字节大小的存储器单元的截断版本的大小,这可能不包括存储器单元(的非截断版本)的64字节数据。另外,根据各种实施例,如图7所示,存储器单元0至62(MU0到MU64)中的每一个中不包括的保护数据的一部分存储在存储器单元63(MU63)中(例如,存储在存储器单元63内的相应位置中)。
[0065] 图7的700A和700B示出处理请求以读取超级页702的页0的存储器单元2(MU2)中(至少部分地)存储的数据的操作。现在参考图7的700A,当处理所述请求时,各种实施例存取MU2,所述MU2存储存储器单元的截断版本(其具有4588字节)。各种实施例随后使用存储器系统(例如,LDPC解码器)的错误校正组件720对所存取的MU2(其不包括保护数据的一部分)执行错误校正过程。在712处,图7示出包含保护数据的第一部分(714)并且不包括保护数据的第二部分(716)(从MU2遗漏64字节)的MU2可如何作为擦除或幻象零而馈送到错误校正组件720中,这可使得错误校正组件720(例如,LDPC解码器)忽略对保护数据的第二部分的遗漏字节的错误校正。
[0066] 现在参考图7的700B,其中对MU2执行的错误校正过程使得错误校正组件720触发错误校正失败(如本文所描述),各种实施例从存储器单元63(MU63)存取与(对应于)MU2相关联的保护数据(64字节)的第二部分(716)。各种实施例随后使用存储器系统(例如,LDPC解码器)的错误校正组件720对所存取的MU2(其不包括保护数据的第二部分)和从MU63存取的保护数据的第二部分的组合执行错误校正过程。如本文所描述,所存取的MU2与保护数据的第二部分(从MU63存取)的组合可表示存储器单元的非截断版本。在718处,图7示出所存取的MU2与从MU63存取的保护数据的第二部分的组合如何馈送到错误校正组件720中。在对所存取的MU2和从MU63存取的保护数据的第二部分的组合执行的错误校正过程不会使得错误校正组件720触发错误校正失败(如本文所描述)的情况下,错误校正组件处理的结果(例如,错误校正组件720的输出)可用于产生对读取所存储数据的请求的至少部分响应。
[0067] 在MU2表示码字的情况下,对不具有其64字节保护数据的第二部分(在712处)的4588字节的MU2执行错误校正过程可表示0.93的编码速率,这可能使得错误校正失败(例如,硬LDPC失败)的速率低于预期。相比而言,对具有其64字节保护数据的第二部分(在716处)的4588字节的MU2执行错误校正过程可表示0.92的编码速率,这表示比0.93更强的校正能力和错误校正失败(例如,硬LDPC失败)的速率降低。
[0068] 图8A、8B和8C提供了示出在一些实施例的上下文中计算环境的组件之间的交互的交互图,其中执行如本文所描述的用于处理从具有扩展大小的存储器单元读取所存储数据的请求的方法。所述方法的操作可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130或140)或其某一组合执行。虽然以特定顺序或次序示出操作,但是除非另外规定,否则可修改过程的次序。因此,应理解,所示出的实施例仅为实例,并且所示出的过程可以不同次序执行,并且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都使用所有过程。在图8A至8C所示的实例的上下文中,主机系统可包含主机系统120,存储器子系统控制器可包含存储器子系统控制器115,并且存储器装置可包含存储器装置140。
[0069] 如图8A所示,在操作802处,主机系统120将从存储器地址读取所存储数据的请求发送到存储器子系统110,其中存储器地址对应于存储器装置140的存储器位置。在操作810处,存储器子系统控制器115从主机系统120接收请求。响应于接收到所述请求,存储器子系统控制器115可处理接收到的请求。具体地说,在操作812处,存储器子系统控制器115从存储器位置存取存储器单元的截断版本,其中存储器单元的截断版本包括用于存储器单元的非截断版本的保护数据的第一部分,并且不包括用于存储器单元的非截断版本的保护数据的第二部分。在操作840处,存储器装置140向存储器子系统控制器115提供对存储器单元的截断版本的存取权。
[0070] 在操作814处,存储器子系统控制器115基于保护数据的第一部分对存储器单元的截断版本(从存储器位置存取的)执行错误校正过程。此后,在操作816处,存储器子系统控制器115确定(在操作814处)对存储器单元的截断版本执行的错误校正过程是否会触发错误校正失败。
[0071] 响应于确定(在操作816处)对存储器单元的截断版本执行的错误校正过程会触发错误校正失败,在操作818处,存储器子系统控制器115从存储器装置140的不同存储器单元存取(用于存储器单元的非截断版本的)保护数据的第二部分。在操作842处,存储器装置140向存储器子系统控制器115提供对不同存储器单元的存取权。
[0072] 现在参考图8B,在操作820处,存储器子系统控制器115通过将从存储器位置(在操作812处)存取的存储器单元的截断版本与从不同存储器单元存取(在操作818处)的保护数据的第二部分组合来产生存储器单元的非截断版本。在操作822处,存储器子系统控制器115基于保护数据的第一部分和保护数据的第二部分对存储器单元的非截断版本执行错误校正过程。此后,在操作824处,存储器子系统控制器115确定对存储器单元的非截断版本执行的错误校正过程是否会触发错误校正失败。
[0073] 现在参考图8C,响应于确定(在操作824处)对存储器单元的非截断版本执行的错误校正过程不会触发错误校正失败,在操作826处,存储器子系统控制器115针对在操作810处接收到的请求产生对主机系统120的至少部分响应。对于各种实施例,存储器子系统控制器115使用由对操作822处的存储器单元的非截断版本执行的错误校正过程产生的结果产生至少部分响应。对于一些实施例,在操作826处产生的响应可包含来自选择存储器单元的非截断版本的有效负载部分的主机数据,如经由错误校正过程的结果所提供(例如,在应用错误校正的情况下)。随后,存储器子系统控制器115在操作828处将响应(在操作826处产生的)提供到主机系统120。在操作804处,主机系统120接收对在操作802处所发送的请求的响应。
[0074] 图9示出呈计算机系统900形式的实例机器,在其内可执行一组指令以使得所述机器执行本文中论述的方法中的任何一或多种。在一些实施例中,计算机系统900可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行本文所描述的操作。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端‑服务器网络环境中的服务器或客户端机器的容量中操作。
[0075] 机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接桥,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。此外,虽然示出单个机器,但是还应认为术语“机器”包含机器的任何集合,所述集合单独地或联合地执行指令的集合(或多个集合)以执行本文所论述的方法中的任何一或多种。
[0076] 实例计算机系统900包含处理装置902、主存储器904(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器906(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储装置918,其经由总线930彼此通信。
[0077] 处理装置902表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置902可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置902经配置以执行指令926,以用于执行本文所论述的操作和步骤。计算机系统900可以进一步包含网络接口装置908以通过网络920通信。
[0078] 数据存储装置918可以包含机器可读存储媒体924(也被称为计算机可读媒体),其上存储有体现本文中所描述的方法或功能中的任何一或多个的指令或软件926的一或多个集合。指令926还可在由计算机系统900执行期间完全或至少部分地驻存在主存储器904内和/或处理装置902内,主存储器904和处理装置902也构成机器可读存储媒体。机器可读存储媒体924、数据存储装置918和/或主存储器904可对应于图1的存储器子系统110。
[0079] 在一个实施例中,指令926包含用于实施与对具有本文所描述的扩展大小的存储器单元(例如,图1的扩展存储器单元操作器113)执行操作相对应的功能的指令。尽管在实例实施例中将机器可读存储媒体924示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令并且使机器执行本公开的方法中的任何一或多种的任何媒体。术语“机器可读存储媒体”可包含但不限于固态存储器、光学媒体和磁性媒体。
[0080] 已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。算法在这里且通常认为是引起所要结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数目等是方便的。
[0081] 然而,应牢记,所有这些和类似术语应与适当物理量相关联,并且仅是应用于这些量的方便标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0082] 本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于各自耦合到计算机系统总线的计算机可读存储媒体中,例如但不限于包含软盘、光盘、CD‑ROM和磁性光盘的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体。
[0083] 本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
[0084] 本公开可以提供为计算机程序产品或软件,其可以包含在其上存储有可以用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
[0085] 在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。