掌桥专利:专业的专利平台
掌桥专利
首页

用于写回合并的位屏蔽有效扇区

文献发布时间:2023-06-19 11:08:20


用于写回合并的位屏蔽有效扇区

技术领域

本公开的实施例大体上涉及存储器子系统,且更确切地说,涉及用于写回合并的位屏蔽有效扇区。

背景技术

存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统在存储器组件处存储数据且从存储器组件检索数据。

发明内容

一方面,本申请提供一种方法,其包括:识别第一存储器组件中将写入到第二存储器组件的受管理单元的数据部分;确定所述第一存储器组件中是否有与所述受管理单元相关联的额外数据部分存储在所述第一存储器组件处;产生位掩码,所述位掩码标识所述受管理单元中与所述数据部分和所述额外数据部分相关联的位置;以及基于所述位掩码,执行写入操作以将所述数据部分和所述额外数据部分写入到所述第二存储器组件的所述受管理单元。

另一方面,本申请提供一种系统,其包括:存储器装置;高速缓存媒体装置;以及处理装置,其与所述存储器装置和所述高速缓存媒体装置操作性地耦合以进行以下操作:从所述高速缓存媒体装置接收将写入到所述存储器装置的受管理单元的第一数据部分;接收所述高速缓存媒体装置中将写入到所述存储器装置的所述受管理单元的第二数据部分;接收位掩码,所述位掩码标识所述受管理单元中将写入所述第一数据部分和所述第二数据部分的位置;以及基于所述位掩码,在单个写入操作中将所述第一和第二数据部分从所述高速缓存媒体装置写入到所述存储器装置的所述受管理单元。

另一方面,本申请提供一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:识别第一存储器组件中将写入到第二存储器组件的受管理单元的数据部分;确定所述第一存储器组件中是否有与所述受管理单元相关联的额外数据部分存储在所述第一存储器组件处;产生位掩码,所述位掩码标识所述受管理单元中与所述数据部分和所述额外数据部分相关联的位置;以及基于所述位掩码,执行写入操作以将所述数据部分和所述额外数据部分写入到所述受管理单元。

附图说明

根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。

图2是根据本公开的一些实施例的产生用于写回合并的位掩码的实例方法的流程图。

图3是根据本公开的一些实施例的使用用于写回合并的位掩码执行写入操作的实例方法的流程图。

图4示出根据本公开的一些实施例的使用用于写回合并的位掩码的存储器子系统。

图5示出根据本公开的一些实施例的基于存储在高速缓存媒体中的码字产生数据位掩码。

图6A和6B示出根据本公开的一些实施例的在单个写入操作中使用位掩码将多个码字写入到受管理单元。

图7是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面涉及用于高速缓存写回合并的位屏蔽有效扇区。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合物。下面结合图1描述存储装置和存储器模块的实例。大体来说,主机系统可利用包含存储数据的一或多个存储器装置的存储器子系统。主机系统可提供将存储在存储器子系统处的数据,并且可请求将从存储器子系统检索的数据。

存储器模块可包含存储器组件,例如三维交叉点(3DXP)存储器。相比于另一存储器组件的存取粒度,例如高速缓存媒体,存储器组件可具有更大的数据存取粒度。数据存取粒度可以是能够在单个操作中从存储器组件检索的数据的大小。数据存取粒度越大,可以在单个操作中从存储器组件检索的数据量越大。由于高速缓存媒体和存储器组件的存取粒度之间的差异,从高速缓存媒体写回到存储器组件可能需要额外操作,例如读取-修改-写入操作。写回可以将新的或更新后的数据从修改数据的高速缓存(基于从主机系统接收到的写入)写入到存储数据的存储器组件。读取-修改-写入操作可包含从存储器组件读取整个受管理单元、根据来自高速缓存媒体的写入而修改受管理单元的数据(即,读取-修改-写入操作的修改部分),以及将受管理单元的经修改数据写回到存储器组件。受管理单元可以是一组较小数据部分,被称为码字,出于媒体管理和数据存取目的而将它们分组在一起。在一些例子中,高速缓存媒体可包含与受管理单元的码字相关联的多个数据部分或缓存行。

受管理单元的码字在高速缓存媒体中时可修改(即,写入)为缓存行,然后写回到受管理单元。当码字被写入受管理单元时,还可基于写入到码字的新数据,修改独立磁盘冗余阵列(RAID)校验位码字。RAID码字可用于受管理单元中所包含的码字的数据保护。可以根据经修改码字更新RAID校验码字。在常规的存储器模块中,高速缓存媒体中的多个缓存行可能需要多个读取-修改-写入操作来将所有码字从缓存行写回到受管理单元。更新RAID校验码字还可包含根据每个经修改码字单独进行更新的额外操作。额外码字的多个写入和RAID位更新可能会增加时延并降低系统性能。额外写入和RAID更新操作还可能会增加媒体耗损。

本公开的方面通过使用位掩码向公共受管理单元提供合并写入能力解决了上述和其它不足之处。高速缓存控制器可管理高速缓存媒体,并确定要存储在高速缓存媒体或者要从高速缓存媒体移除的数据。如果高速缓存控制器确定对应于MU中的码字的缓存行将写回到MU,那么高速缓存控制器还可确定是否有额外缓存行对应于MU的码字。如果存在对应于MU的任何额外缓存行将写回到媒体,那么高速缓存控制器可产生标识缓存行将写回到MU的码字位置的位掩码。接着,可在单个写入操作中使用位掩码将缓存行写入到MU。例如,媒体管理器可从高速缓存控制器接收缓存行和位掩码中的每一个,并解译位掩码以识别MU中要写入每一缓存行的码字位置。媒体管理器可读取MU,通过应用掩码并将缓存行插入到对应的码字位置来修改MU,然后将经修改MU写回到媒体。媒体管理器可通过读取RAID码字并在它写回到受管理单元之前根据经修改码字中的每一个执行逻辑运算来更新RAID码字。

因此,使用位掩码合并写回操作的能力可以增加存储器子系统的使用寿命,因为读取-修改-写入操作及媒体处对RAID校验位的读取和写入有所减少。因为通过在单个写入操作中写回属于公共受管理单元的高速缓存媒体中的所有扇区或码字可以更有效地管理高速缓存媒体,所以存储器子系统的写入时延减小。最后,由于RAID码字的读取和写入次数减少,所以写入时延可以减小。

图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类装置的组合。

存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合物。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外廓DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”大体上是指组件之间的连接,此连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管是有线还是无线,包含电气、光学、磁性等连接。

主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如以便将数据写入到存储器子系统110和从存储器子系统110读取数据。

主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接接口)等等。物理主机接口可用于在主机系统120和存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口,在存储器子系统110通过PCIe接口与主机系统120耦合时存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110和主机系统120之间传递控制、地址、数据和其它信号的接口。

存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在其先前已进行擦除的情况下进行编程。

存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含例如SLC、MLC、TLC、QLC或它们的任何组合的一或多个阵列。在一些实施例中,特定存储器装置可包含SLC部分,以及存储器单元的MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可以分组为页,页可以指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)中,可以将页分组以形成块。一些类型的存储器,例如3D交叉点,可以跨裸片和通道将页分组以形成管理单元(MU)。

尽管描述了例如3D交叉点型和NAND型快闪存储器的非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115(或者为简单起见,称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。

存储器子系统控制器115可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管图1中的实例存储器子系统110示出为包含存储器子系统控制器115,但是在本公开的另一实施例中,存储器子系统110可以不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机或者由与存储器子系统分离的处理器或控制器提供)。

一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换成指令或适当的命令以实现期望的对存储器装置130的存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾数据收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)和物理地址(例如,物理MU地址、物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统,用于经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成存取存储器装置130的命令指令,并将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可以从存储器子系统控制器115接收地址并将地址解码以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器)。

在一些实施例中,存储器装置130包含结合存储器子系统控制器115用于对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,它是与本地控制器(例如,本地控制器135)组合以用于相同存储器装置封装内的媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含写回合并组件113,它可用于合并从高速缓存媒体到存储器组件的写回。在一些实施例中,存储器子系统控制器115包含写回合并组件113的至少一部分。例如,存储器子系统控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,写回合并组件113是主机系统110、应用程序或操作系统的一部分。

写回合并组件113可识别高速缓存媒体中对应于存储器组件的单个受管理单元的码字的缓存行。写入合并组件113可产生用于对应于存储器组件中的受管理单元的码字的缓存行的位掩码。写回合并组件113可在单个写入中使用位掩码将缓存行写入到受管理单元,以识别受管理单元中要写入缓存行的码字位置。下文描述了关于写回合并组件113的操作的其它细节。

图2是根据本公开的一些实施例的产生用于写回合并的位掩码的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的写回合并组件113执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为只是实例,并且所示过程可以按照不同次序执行,一些过程可以并行执行。另外,在各种实施例中,可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。

在操作210处,存储器子系统的处理逻辑识别高速缓存存储器中要写入到存储器组件的受管理单元的数据部分。高速缓存存储器中的所述数据部分可以是存储在高速缓存存储器中的数据的缓存行。缓存行可以是特定量的数据,例如受管理单元的扇区或码字。高速缓存控制器可包含缓存策略,例如逐出策略,其中存储在高速缓存存储器中的缓存行在某些条件下写回到存储器组件的受管理单元。例如,当新的码字将写入到高速缓存媒体且缓存行是最近最少使用的缓存行时,可以从高速缓存媒体逐出此缓存行。另外,如果高速缓存存储器中的缓存行已经修改(即,为脏),那么在从高速缓存媒体移除数据之前,应该将数据写回到受管理单元以存储数据。在另一实例中,存储在高速缓存媒体中的所有缓存行都在逐出后写回到存储器组件。

缓存行可与存储器组件的受管理单元内的特定位置相关联。受管理单元内的所述特定位置可称为扇区或码字。码字可含有特定量的数据(例如,64字节、128字节等)。在存取码字时,它可以通过主机系统从存储器组件的受管理单元检索并放在高速缓存存储器中,主机系统可以从高速缓存存储器快速存取数据。对高速缓存存储器中的数据作出的任何修改可能不会立即写入到存储器组件的受管理单元。因此,数据修改可以写回到媒体上的受管理单元,确保数据的变化保持。

在操作220处,处理逻辑确定高速缓存存储器中是否有与受管理单元相关联的额外数据部分存储在高速缓存存储器处。高速缓存存储器中的额外数据部分可以是存储在高速缓存存储器中的数据的另一缓存行。高速缓存存储器中的所述额外数据部分可与受管理单元内的另一位置(即,码字)相关联。高速缓存控制器可确定数据部分和额外数据部分使用它们的对应地址而与相同的受管理单元相关联。受管理单元可具有基地址,并且包含在来自基地址的所限定数目个字节内的所有数据。例如,受管理单元可含有一个千字节的数据,它分段成八个部分,每个部分为128字节的码字。因此,受管理单元可包含从基地址到基地址加一个千字节的所有地址。一旦在操作210处高速缓存控制器识别出数据部分,高速缓存控制器就可识别受管理单元的基地址,然后确定高速缓存存储器内的任何其它数据部分是否具有在受管理单元的地址范围内的地址。

在操作230处,处理逻辑产生标识受管理单元中与数据部分和额外数据部分相关联的位置的位掩码。位掩码可包含用于位于受管理单元内的每一码字的位。因此,每个位可指示高速缓存存储器是否包含与每一特定码字相关联的数据部分。例如,设定为1的每个位可指示缓存行存储在高速缓存媒体中与所述码字对应,并且设定为0的每个位指示高速缓存存储器不包含对应码字的数据,反之亦可。

在操作240处,处理逻辑基于位掩码而执行写入操作,以将数据部分和额外数据部分写入到受管理单元。写入合并组件可解译位掩码、数据部分和额外数据部分以在单个写入操作中,将数据部分写入到其在受管理单元中对应的码字,并将额外数据部分写入到其对应的码字。为执行写入操作,写入合并组件可利用数据部分和额外数据部分两者对受管理单元执行读取-修改-写入操作。但是,如果整个MU都存在于高速缓存存储器中,那么处理逻辑可执行全MU的写入,而不是读取-修改-写入。处理逻辑可读取整个受管理单元,然后根据位掩码利用数据部分和额外数据部分修改第一和第二码字。位掩码可识别要利用数据部分修改的第一码字及要利用额外数据部分修改的第二码字。一旦适当的码字被修改,处理逻辑就可将整个经修改受管理单元写回到存储器组件。因此,处理逻辑并不是执行两个单独的读取-修改-写入操作来将数据部分和额外数据部分写入到受管理单元,而是将写入合并成单个读取-修改-写入操作。这可以在受管理单元中针对任何数目个缓存行来完成。例如,任何数目个码字,最多为受管理单元中的所有码字,可以在单个写入操作中合并。另外,如果受管理单元的所有码字存储在高速缓存存储器中,那么可以执行整个受管理单元的写入操作,而不是执行读取-修改-写入。

另外,处理逻辑可另外在执行写入操作时更新受管理单元的RAID校验码字。为了更新受管理单元的RAID校验位,处理逻辑可对RAID校验位和每个经修改码字执行逻辑运算。例如,处理逻辑可执行第一码字和RAID校验位的XOR运算,并对由先前XOR运算产生的第二码字和RAID校验位执行另一XOR运算。接着,处理逻辑可将更新后的RAID校验位写回到受管理单元。

图3是根据本公开的一些实施例的使用用于写回合并的位掩码执行写入操作的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的写回合并组件113执行。尽管以特定顺序或次序示出,但是除非另外指定,否则过程的次序可以修改。因此,所示实施例应理解为只是实例,并且所示过程可以按照不同次序执行,一些过程可以并行执行。另外,在各种实施例中,可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。

在操作310处,存储器子系统的处理逻辑从高速缓存媒体组件接收将写入到存储器组件的受管理单元的第一数据部分。第一数据部分可以是存储在高速缓存媒体组件中的缓存行。第一数据部分可对应于存储在存储器组件的受管理单元(即,码字)处的数据子集。受管理单元可以分组在一起以用于存储器管理和数据存取的较大码字集合。在一些实施例中,受管理单元对应于存储器组件的存取粒度。因此,第一数据部分可以是与受管理单元的特定码字相关联的缓存行。第一存储器部分可小于受管理单元的存取粒度,并且因此为了写入数据部分,处理逻辑可对受管理单元执行读取-修改-写入操作。处理逻辑可读取整个受管理单元的数据,修改受管理单元的一或多个码字,然后将经修改数据写回到受管理单元。

在操作320处,处理逻辑接收高速缓存媒体组件中将写入到存储器组件的受管理单元的第二数据部分。第二数据部分可以是与受管理单元的第二码字相关联的数据。因此,第一和第二数据部分(或缓存行)将写入到相同受管理单元的不同码字。另外,可以将任何数目个额外数据部分识别为将写入到相同的受管理单元。

在操作330处,处理逻辑接收标识受管理单元中将写入第一数据部分和第二数据部分的位置的位掩码。位掩码可以是一连串对应于受管理单元的码字的位。位掩码中的每个位可指示是否有新数据要写入到对应码字。例如,设定为1的每个位可指示缓存行存储在高速缓存媒体中与所述码字对应,并且设定为0的每个位指示高速缓存存储器不包含对应码字的数据,反之亦可。因此,位掩码中的第一位可指示第一数据部分将写入到第一码字且第二数据部分将写入到第二码字。第一和第二码字可以是非邻近的不连续码字。

在操作340处,处理逻辑基于位掩码而在单个写入操作中将第一和第二数据部分从高速缓存媒体组件写入到存储器组件的受管理单元。为了执行写入操作,写入合并组件可利用第一数据部分和第二数据部分两者对受管理单元执行读取-修改-写入操作。处理逻辑可从整个受管理单元读取数据,并根据位掩码利用第一数据部分和第二数据部分修改第一和第二码字。位掩码可识别要利用第一数据部分修改的第一码字及要利用第二数据部分修改的第二码字。一旦适当的码字被修改,处理逻辑就可将整个经修改受管理单元写回到存储器组件。因此,处理逻辑并不是执行多个读取-修改-写入操作来将第一数据部分和第二数据部分写入到受管理单元,而是将写入合并成单个读取-修改-写入操作。这一合并可以在受管理单元中针对任何数目个缓存行完成。例如,在单个写入操作中可以合并两个、三个、四个或更多个缓存行。

图4描绘使用用于写回合并的位掩码的存储器子系统400。存储器子系统400包含存储器控制器410、高速缓存媒体420和存储器组件430。存储器控制器410包含高速缓存控制器412和媒体管理器414,其中的每一个都包含写入合并组件113。存储器控制器410可管理存储器子系统400中的数据存储及存储器子系统400的存储器组件(例如高速缓存媒体420和存储器组件430)之间的数据传递。高速缓存控制器412可包含管理在高速缓存媒体420中高速缓存的来自存储器组件430的数据的高速缓存策略。高速缓存控制器412可确定要高速缓存的数据、要写回到存储器组件430的数据和要从高速缓存媒体420移除的数据。存储器控制器410的媒体管理器414可管理存储在存储器组件430处的数据。

媒体管理器414可存取和管理存储器组件430中被称为受管理单元432A-D的一或多个数据组中的数据。尽管描绘为独立组件,但是高速缓存控制器412和媒体管理器414均可包含存储器控制器410的单个组件中。媒体管理器414还可管理错误校正码(ECC)和独立磁盘(RAID)校验位的冗余阵列。在数据部分出现错误或丢失的情况下,ECC和RAID校验位可提供错误校正和存储器保护。媒体管理器414可利用对受管理单元432A-D的数据进行的每一修改来更新RAID校验位。每一受管理单元432A-D可具有从受管理单元读取且基于写入到受管理单元接着写回到受管理单元的新数据更新的RAID校验位码字。在一个实例中,RAID校验位通过RAID校验位和写入到受管理单元的新码字之间的“异或”(XOR)逻辑运算来更新。

高速缓存媒体420可以是低时延存储器,例如DRAM或SRAM。来自存储器组件430的数据部分可以存储在高速缓存媒体420(即,缓存行422)处,使得主机系统可以快速存取数据。高速缓存媒体420可以将来自存储器组件430的受管理单元432A-D的码字存储为可由主机系统存取和修改的缓存行。高速缓存媒体420可另外存储与每一缓存行相关联的缓存行元数据,其指示对应缓存行422的状态,例如脏位424和有效位426。在一些实施例中,高速缓存控制器412可使用脏位424和有效位426来确定缓存行是否已经修改以及它是否应该写回到存储器组件430。例如,如图4中所描绘,“码字0”、“码字2”和“码字7”各自指示为脏和有效。因此,码字0、2和7含有有效和脏数据,并且都需要在从高速缓存媒体420移除之前写回到存储器组件430,以确保修改保持。

存储器组件430可以是新兴的存储器、快闪存储器、3DXP、DRAM等。存储器组件430可以是一类具有比高速缓存媒体420大的存取粒度并且具有比它高的存取时延的媒体。存储器组件430可包含一或多个受管理单元432A-D,它们各自包含多个数据码字和/或扇区。媒体管理器414可通过读取-修改-写入操作写入到受管理单元432A-D的每个码字。因此,尽管媒体管理器在受管理单元粒度下存取存储器组件430,但是每个码字可以通过额外操作(读取-修改-写入)单独地读取和写入,这可能会增加存储器组件430的时延。

在一个实例中,如图5和6A-B进一步示出,写入合并组件113可识别高速缓存媒体420中将写回到存储器组件430的第一高速缓存线。接着,写入合并组件113识别可以写回到与第一高速缓存线相同的受管理单元的任何额外缓存行。例如,码字0、2和7可各自对应于受管理单元432A的一个码字。接着,写入合并组件可产生标识受管理单元中要写入缓存行0、2和7的码字的位掩码。使用位掩码,媒体管理器414的写入合并组件113可以在单个写入操作中将缓存行0、2和7中的每一个写入到受管理单元432A。另外,媒体管理器414的写回合并组件113可以读取和更新受管理单元432A-D的RAID校验位,此操作在RAID校验位写回到受管理单元432A-D之前通过单个逻辑运算进行。

图5示出基于存储在高速缓存媒体(例如,图4的高速缓存媒体420)中的码字产生位掩码。图1和4中描绘的写入合并组件113可识别与单个受管理单元432相关联的每一缓存行422以产生位掩码510。缓存行422可包含来自受管理单元432的码字的数据。另外,当在高速缓存媒体中时,码字可修改为将替换掉受管理单元432的先前码字的新码字。例如,高速缓存媒体420的缓存行422可包含对应于受管理单元432的码字0的“新码字0”。高速缓存媒体420可另外包含新码字2和新码字7,它们分别对应于受管理单元的码字2和码字7。每一新码字可以是来自受管理单元432的原始码字的干净版本、修改版本或完全替代。如所描绘,接着,可产生位掩码510以标识受管理单元432中与新码字对应的每一个码字。新码字0对应于受管理单元432的码字0,它位于受管理单元432中的第一位置。因此,位掩码510中对应于第一位置的位可以设定为“1”,标识新码字0将写入到受管理单元432的第一位置,替换掉码字0。类似地,新码字2对应于受管理单元中的位置3。因此,位掩码510中对应于位置3的位可以设定为“1”。最后,新码字7可对应于位置8处的码字7。因此,位掩码510中对应于位置8的位可以设定为“1”。

图6A是示出使用位掩码执行写回合并的图式。根据图5产生的位掩码510可供写入合并组件113使用以在单个写入操作中将多个码字写入到受管理单元432。位掩码510包含对应于受管理单元432的每个码字的位。位掩码510的每个位可指示对应于码字的缓存行是否存储在高速缓存媒体中和/或是否应该写入到对应码字。

例如,如图6A中所描绘,位0、2和7被设定为1,以指示将写入对应码字。根据图5,新码字0基于其地址和位掩码510的位0而被识别为将写入到码字0的位置的新码字。新码字2基于其地址和位掩码510的位2而被识别为将写入到码字2的位置的新码字。新码字7基于其地址和位掩码510的位8而被识别为将写入到码字7的位置的新码字。

图6B是示出在使用位掩码执行写回合并之后得到的受管理单元的图式,如图6A中所描绘。如所描绘,在写入操作期间,通过位掩码510识别的码字可以替换为来自高速缓存媒体的缓存行的新码字。尽管未描绘,但是受管理单元432可包含RAID校验位码字。存储器管理器可使用RAID校验位重新产生已经损坏的码字。当新的码字被写入到受管理单元432时,存储器管理器可更新RAID校验位。

图7示出计算机系统700的实例机器,所述实例机器内可以执行用于使机器执行本文所论述的方法中的任何一或多个的一组指令。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的写回合并组件113的操作)。在替代实施例中,所述机器可以在LAN、内联网、外联网和/或互联网中连接(例如,联网)到其它机器。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的资格操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础设施或环境中的服务器或客户端机器操作。

所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管示出单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器的集合单独地或共同地执行一组(或多组)指令以执行本文论述的方法中的任何一或多个。

实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统718,它们经由总线730彼此通信。

处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文中所论述的操作和步骤的指令726。计算机系统700可进一步包含经由网络720通信的网络接口装置708。

数据存储系统718可包含机器可读存储媒体724(也被称为计算机可读媒体),在其上存储一组或多组指令726或体现本文中所描述的方法或功能中的任何一或多个的软件。指令726在由同样构成机器可读存储媒体的计算机系统700、主存储器704和处理装置702执行期间还可完全地或至少部分地驻存在主存储器704内和/或处理装置702内。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。

在一个实施例中,指令726包含实施对应于程序脉冲控制组件(例如,图1的程序脉冲控制组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体724示出为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多个的任何媒体。术语“机器可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。

先前详细描述的一些部分已经关于计算机存储器内的数据位的操作的算法和符号表示呈现。这些算法描述和表示是数据处理领域中的技术人员用来将他们的工作内容传达给本领域的其他技术人员的最有效方式。此处且一般来说,算法被设想为产生所需结果的操作的自一致序列。所述操作是需要物理量的物理操控的那些操作。通常但是不一定,这些量采取能够存储、组合、比较和以其它方式操控的电气或磁性信号的形式。已经证实,将这些信号称为位、值、元件、符号、字符、项、数字等等有时是方便的,主要是出于常用的原因。

然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便的标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们分别耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将从下文描述中呈现用于各种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用多种编程语言来实施如本文所描述的本公开的教示内容。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 用于写回合并的位屏蔽有效扇区
  • 用于在物流仓库内将k个有效负载输入流合并成一个输出流的方法
技术分类

06120112811456