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

块装置的构建的制作方法

2022-06-09 00:05:01 来源:中国专利 TAG:


1.本公开大体上涉及在存储器子系统中构建块装置,且更具体来说涉及利用异构媒体来实施块装置。


背景技术:

2.存储器子系统可包含存储数据的存储器装置内的一或多个存储器组件。所述存储器组件可为例如非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统以将数据存储在所述存储器组件处及从所述存储器组件检索数据。
附图说明
3.从下文所给出的详细描述及从本公开的各种实施例的附图,将更全面地理解本公开。然而,附图不应被视为将本公开限于特定实施例,而是仅用于解释及理解。
4.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
5.图2说明根据本公开的一些实施例的用以托管块装置的多个异构存储器组件的初始分配。
6.图3说明根据本公开的一些实施例的经修改块装置配置。
7.图4是根据本公开的一些实施例的用以构建异构块装置的实例方法的流程图。
8.图5说明根据本公开的一些实施例的跨多个主机系统以形成块装置的异构存储器组件的初始分配。
9.图6说明根据本公开的一些实施例的经修改块装置配置。
10.图7是根据本公开的一些实施例的用以构建异构块装置的实例方法的流程图。
11.图8是可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
12.本公开的方面涉及在存储器子系统中构建异构块装置。存储器子系统在后文中也被称为“存储器装置(memory device或memory devices)”。存储器子系统的实例是经由存储器总线连接到中央处理单元(cpu)的一或多个存储器模块。存储器子系统可为存储装置、存储器模块或存储装置及存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器装置的存储器子系统。所述存储器装置可包含例如非易失性存储器装置,例如与非(nand)存储器装置及原位写入存储器装置,例如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。下文结合图1更详细地描述其它类型的存储器装置,包含易失性存储器装置。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。
13.如本文中所提到,块装置是可格式化成群组、物理单元、分块及逻辑块的一定量的非易失性存储器(nvm)。例如,块装置可为分配给应用程序或用途且以格式化群组,例如块或其它存储器单元写入的nvm的一部分的抽象(例如,如同分区或物理存储资源的其它逻辑
抽象)。在一些背景下,块装置可被称为命名空间。下文所描述的实施例涉及块装置但不限于“块”的特定定义。因而,术语“块装置”可与术语“存储器分配”互换地使用。
14.常规块装置是使用存储器子系统内的同构媒体来构建。例如,当多种类型的非易失性存储器(nvm)(例如,单电平单元(slc)nand快闪存储器、多电平单元(mlc)nand快闪存储器、三电平单元(tlc)nand快闪存储器、四电平单元(qlc)nand快闪存储器、3d xpoint、reram(电阻式随机存取存储器)或nram(纳米ram)、mram(磁阻式ram)、stt(自旋力矩转移mram)、mram、fram(铁电ram)可用时,每一传统块装置仅使用一种媒体类型。由于此限制,常规系统通常无法恰当地匹配在主机系统上运行的应用程序的多样化需求。
15.本公开的方面通过使用不同媒体类型的聚合,例如选择最匹配应用程序的需求的媒体类型构建异构块装置来解决以上及其它缺点。例如,应用程序可使用存储的高密度、高延时部分以及存储的低密度、低延时部分两者以实施块装置内的存储分层或高速缓冲存储。
16.所公开实施例进一步支持块装置的动态修改,从而允许其在通过媒体类型的初始选择构建之后,随后被扩展、收缩、精简配置、复制及迁移。换句话说,存储器组件及存储器装置可在最初建立块装置之后的某个时间添加到块装置或从块装置移除。所公开实施例可响应于指示动态地扩展、收缩或重建块装置的需求的各种触发。
17.有利地,所公开实施例尝试动态地匹配主机系统上的应用程序的需求,从而使块装置适应主机系统的变化要求或nvm的组件的失效。
18.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112a到112n(也被称为“存储器装置”)。存储器组件112a到112n可为易失性存储器组件、非易失性存储器组件或其组合。存储器子系统110可为存储装置、存储器模块或存储装置及存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪存储器驱动器、通用串行总线(usb)快闪存储器驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储装置(ufs)驱动器及硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)及非易失性双列直插式存储器模块(nvdimm)。
19.计算环境100可包含耦合到一或多个存储器子系统110的主机系统120(例如,包含存储器子系统管理堆叠125)。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110,例如,以将数据写入到存储器子系统110及从存储器子系统110读取数据。如本文中所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中介组件),无论是有线的还是无线的,包含例如电、光学、磁性等的连接。
20.主机系统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之间传递控制、地址、数据及其它信号的接口。
21.存储器组件112a到112n可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)型快闪存储器。存储器组件112a到112n中的每一者可为例如包含存储器单元,例如单电平单元(slc)、多电平单元(mlc)、三电平单元(tlc)或四电平单元(qlc)的一或多个阵列的裸片。所述存储器单元中的每一者可存储由主机系统120使用的一或多个数据位。尽管描述例如nand型快闪存储器的非易失性存储器组件,但存储器组件112a到112n可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112a到112n可为但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)、reram、nram(纳米ram、电阻式非易失性随机存取存储器)及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格数据存取阵列,基于体电阻的变化来执行位存储。另外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中可对非易失性存储器单元进行编程,而无需预先擦除非易失性存储器单元。此外,存储器组件112a到112n的存储器单元可经分组以形成页面或可指用以存储数据的存储器组件的单元。对于一些类型的存储器(例如nand),页面可经分组以形成块。
22.(若干)存储器系统控制器115(后文中被称为“控制器(controller或controllers))可与存储器组件112a到112n进行通信以执行例如在存储器组件112a到112n处读取数据、写入数据或擦除数据的操作及其它此类操作。在一个实施例中,如参考图3到4及5到6所描述,存储器子系统110包含用于特定媒体类型的一组一或多个存储器组件112a到112n的控制器115。例如,所述存储器子系统可包含用以管理一组一或多个slc存储器组件112a到112n的第一控制器115、用以管理一组一或多个tlc存储器组件112a到112n的第二控制器115等。
23.每一控制器115可包含硬件,例如一或多个集成电路及/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作,包含处置存储器子系统110与主机系统120之间的通信的各种过程、操作、逻辑流程及及例程的指令的嵌入式存储器。在一些实施例中,本地存储器119可包含存储存储器指针、经获取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然图1中的存储器子系统110已被说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,而是可依赖对存储器组件112a到112n的至少一些管理的外部控制(例如,由与存储器子系统110分开的主机、处理器或控制器提供)。
24.一般来说,控制器115可从主机系统120接收命令或操作且可将命令或操作转换成指令或适当命令以实现对存储器组件112a到112n的所期望存取。控制器115可负责其它操
作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ecc)操作、加密操作、去重复操作、压缩操作、高速缓冲存储操作及和存储器组件112a到112n相关联的逻辑地址(例如,逻辑块地址(lba))与物理地址(例如,物理块地址)之间的地址转译。控制器115可进一步包含用以经由物理主机接口与主机系统120进行通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成用以存取存储器组件112a到112n的命令指令并且将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
25.存储器组件112a到112n中的任一者可包含媒体控制器(例如,媒体控制器130a及媒体控制器130n)以管理存储器组件112a-112n的存储器单元,与存储器子系统控制器115进行通信,且执行从存储器子系统控制器115接收的存储器请求(例如,读取或写入)。
26.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从控制器115接收地址且对地址进行解码以存取存储器组件112a到112n的高速缓冲存储或缓冲器(例如,dram)及地址电路系统(例如,行解码器及列解码器)。
27.主机系统120包含块装置管理器113,所述块装置管理器可使用异构媒体类型的存储器组件来分配及管理块装置。块装置管理器在后文中也被称为“异构块装置管理器(heterogeneous block device manager或heterogeneous block device managers)”。在一个实施例中,块装置管理器113是存储器子系统管理堆叠125的一部分—例如,提供由主机应用程序使用的逻辑块地址与和存储器子系统110及其组件112a到112n相关联的物理块地址之间的地址转译的软件堆叠或解决方案堆叠。例如,这可以是允许主机系统120以抽象化方式读取/写入存储器子系统的小型计算机系统接口(scsi)或nvme块装置管理堆叠。例如,存储器子系统管理堆叠125可为开放通道存储器系统,其还允许主机系统120控制常规上将由(若干)控制器115在内部管理的方面,例如输入/输出调度、数据放置、废弃项目收集及损耗均衡。存储器子系统管理堆叠125可为或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适处理器。另外,经配置以执行存储在本地存储器135中的指令的一或多个处理器130(处理装置)可实施存储器子系统管理堆叠125的至少一部分。例如,(若干)处理器130可执行存储在本地存储器135中以用于执行本文中所描述的操作的指令。虽然本文中的描述集中于作为主机系统120的一部分的块装置管理器113,但在一些实施例中,在(若干)控制器115内实施块装置管理器113的功能性的一些或全部。下文描述关于块装置管理器113的操作的进一步细节。
28.图2说明根据一些实施例的用以托管块装置的多个异构存储器组件的初始分配。如所展示,存储器子系统110耦合到主机系统120。存储器子系统110是上文所描述的存储器子系统110的详细实例且包含将存储器装置208、220及232耦合到主机系统120的存储器总线207。存储器装置208、220及232中的每一者包含控制器,例如展示为作为上文所描述的控制器115的实例的控制器210、222及234。存储器装置208、220及232中的每一者包含一组一或多个存储器组件,所述存储器组件是上文所描述的存储器组件112a到112n的实例。在一个实施例中,存储器装置208、220及232中的每一者是单一类型的媒体的存储器模块。
29.存储器装置208包含控制器210以及四个qlc存储器组件212、214、216及218。在一些实施例中,如在此,存储器组件212、214、216及218可通过通道抽象化成并行单元(如本文中所使用,并行单元是指通道内的存储器组件)。例如,不同存储器组件可经由不同通道或群组耦合到控制器,从而增强并行性及吞吐量。此类群组提供另一寻址层。qlc存储器组件
216及218是并行单元219的一部分。根据所公开实施例,存储器装置208不限于具有四个存储器组件。在未展示的其它实施例中,存储器装置208包含更多qlc存储器组件。
30.存储器装置220包含控制器222以及四个qlc存储器组件224、226、228及230。qlc存储器组件228及230是并行单元231的一部分。根据所公开实施例,存储器装置220不限于具有四个存储器组件。在未展示的其它实施例中,存储器装置220包含更多qlc存储器组件。
31.存储器装置232包含控制器234以及四个slc存储器组件236、238、240及242。slc存储器组件240及242是并行单元243的一部分。根据所公开实施例,存储器装置232不限于具有四个存储器组件。在其它实施例中,存储器装置232包含更多slc存储器组件。
32.在此,存储器子系统110被展示为包含qlc及slc存储器装置。其它实施例包含具有各种媒体类型中的任一者的存储器组件,包含slc、mlc、tlc或qlc快闪存储器,及/或非易失性存储器单元的交叉点阵列,或其它nvm,例如reram或nram或mram或stt mram、fram。通常,slc存储器组件在读取及写入延时方面具有比mlc、tlc及qlc更高的性能。qlc存储器组件可每单元存储4个位,这使每位比slc存储器组件产生更高的容量及更低的成本。因此,所说明存储器组件类型在成本及性能速度方面是降低的,因为每单元存储的位从slc到mlc到tlc到qlc存储器装置是增加的。
33.在操作中,块装置管理器113从主机系统120接收用以构建块装置244的请求。例如,块装置管理器113通过分派物理单元、裸片及/或逻辑单元号(lun)来构建块装置244。在一些实施例中,存储器装置208、220及232使它们的内部存储资源对主机系统120可见。在一些实施例中,主机系统120可例如通过向存储器装置208、220及232发出几何形状命令来发现所述存储器装置内的存储器组件的几何形状。如本文中所使用,“几何形状”是指存储器装置中的群组、并行单元及分块的边界。主机系统120接着可指定经请求几何形状连同(或外加)用以构建块装置的请求。
34.在一个实施例中,块装置管理器113从包含存储器装置208、220及232的存储器装置池当中选择多个存储器装置,以实施块装置。块装置管理器113从选定存储器装置当中进一步选择多个存储器组件以实施块装置244。如所展示,块装置管理器113分配所述存储器装置的部分,例如指派六个存储器组件的物理单元(pu)、裸片及/或逻辑单元号(lun)以实施块装置244。选定部分在本文中有时被称为分配、分派或经分派部分。如所展示,从异构存储器组件(slc及qlc存储器组件)当中选择用以构建块装置244的分配。在一些实施例中,块装置管理器113可使选定分配的媒体类型与块装置244的需求匹配,如由主机系统120所指示。表1展示块装置管理器113对块装置244的实施,其也在图2中进行说明。
35.表1.块装置244(图2)
36.分配存储器装置存储器组件120821422202243232236422022652322386208216
37.块装置管理器113接着产生待用以存取实施块装置244的多个存储器组件的阶层
式地址并将所述阶层式地址提供到存储器子系统管理堆叠125。例如,块装置管理器113将指派给块装置244的媒体的阶层式地址提供给存储器子系统管理堆叠125。阶层包含存储器装置、存储器组件(具有相关联几何形状信息)及存储器组件112内的逻辑块、分块或页面。
38.在一些实施例中,块装置管理器113从主机系统120接收对块装置的需求的指示连同用以构建块装置的请求。此类需求可包含容量、性能、耐久性或功率消耗。替代地,主机系统120可依据媒体类型来指示此类需求。在一些实施例中,块装置管理器113接收两个或更多个此类需求及归因于每一需求的存储量的指示。作为响应,当选择多个存储器装置及多个存储器组件时,块装置管理器113使对块装置的需求与对应媒体类型的存储器装置及组件匹配。例如,所述请求可指示块装置的一半是高性能/低延时存储,而另一半是高容量存储。作为响应,块装置管理器113可选择slc媒体以满足高性能/低延时存储需求且选择qlc媒体以满足高容量存储需求。主机系统120还可请求精简配置的块装置(例如,首先仅分配50%容量,然后按需扩展)。主机系统120还可请求块装置管理器113缩减经分配容量(例如,在不使用时取消分配50%容量)。
39.图3说明根据一些实施例的块装置配置的按需修改。所述图说明如图2中所说明及表1中所描述的从存储器子系统110到块装置244的分配的重新配置。块装置管理器113最初通过响应于主机请求的几何形状而选择及聚合存储器装置208、220及232的六个存储器组件214、224、236、226、238及216(分别是分配1、2、3、4、5及6)来构建块装置244。如图3中所展示,块装置管理器113修改块装置分配以迁移分配2到5,移除分配6,且添加分配7及8。这个经重新配置分配被说明为块装置394,含有七个分配的聚合(即,容量的替换及扩展)。表2展示块装置管理器113对块装置394的实施,其也在图3中进行说明。如所说明及描述,块装置管理器113利用存储器组件214、212、240、242、218、226及238来实施块装置394以分别托管由分配1、2、3、4、5、7及8组成的几何形状。
40.表2.块装置394(图3)
41.经重新配置分配存储器装置存储器组件1208214220821232322404232242520821872202268232238
42.在一些实施例中,块装置管理器113可接收用于动态地修改块装置的一或多个触发调用。在此类实施例中,块装置管理器113可通过重新配置块装置来响应。例如,主机系统120可发出触发块装置管理器113扩展块装置的请求。在一些实施例中,块装置管理器113通过从已实施块装置的存储器装置中的一者、池化存储器装置的存储器装置中的一者或添加到存储器装置池的存储器装置当中选择额外存储器组件(或其部分)且将额外存储器组件与先前选定存储器组件聚合以实施经扩展块装置来响应。块装置的此扩展的实例包含存储器装置220的存储器组件226中的新添加分派7及存储器装置232的存储器组件238中的新添加分派8。下文参考图4进一步描述用于构建块装置244的方法。
43.通过支持块装置的按需扩展,所公开实施例允许主机系统120在需要时增加块装置的容量或替换经取消分配的分派。
44.在一些实施例中,主机系统120发出触发块装置管理器113使块装置的一部分或经指派分派引退、到期或取消分配,或以其它方式收缩块装置的请求。在经重新配置块装置394中移除分派6是此取消分配的实例。在此,如图3中所展示且在表2中描述,块装置管理器113已取消分配指派给分配6的存储。
45.通过允许块装置的按需收缩,所公开实施例能够移除/替换失效或性能不佳的存储器装置。取消分配不需要的存储器组件还可使经取消分配的存储容量可用于主机系统120以用于另一目的。
46.在一些实施例中,主机系统120发出触发块装置管理器113将块装置的一部分从第一存储器组件迁移到同一存储器装置上的相同媒体类型的第二存储器组件的请求。此需求可能出于多种原因而产生,例如以不同方式放置数据以允许在存取数据时实现更大并行性,从失效的存储器组件移动数据,改变主机系统的性能、容量及功率消耗需求中的一或多者的需求。块装置管理器113通过选择将分派迁移到的另一存储器组件且将数据从先前选定存储器组件复制到新选定存储器组件来响应。新选定存储器组件可被指示为来自主机系统120的请求的部分。同一存储器装置内的迁移的实例被说明为分配3从存储器装置232的存储器组件236到同一存储器装置232中的相同类型的存储器组件240的迁移。
47.在一些实施例中,出现将分派迁移到相同媒体类型但在不同存储器装置中的另一存储器组件的需求。例如,存储器装置或组件的失效可触发一或多个分派的迁移。块装置管理器113可自动地选择将分派迁移到的存储器组件,或可将目标存储器组件指示为来自主机系统120的请求的部分。此迁移的实例被说明为分派2从存储器装置220的存储器组件224到存储器装置208的相同类型的存储器组件212的迁移。
48.在一些实施例中,块装置管理器113从第一存储器装置接收第一存储器装置或第一存储器装置内的存储器组件已达到耐久性水平阈值的指示。在一些实施例中,耐久性水平阈值是预定阈值或可编程阈值。在其它实施例中,块装置管理器113可从主机系统120接收所述指示。在一些实施例中,所述指示自动地触发第二存储器装置的选择及块装置的一部分到第二存储器装置的迁移。
49.在一些实施例中,主机系统120响应于性能、容量或功率消耗需求的变化而请求块装置的重新配置。例如,不再需要(或需要更少)高性能存储器的应用程序可指示块装置管理器113将块装置的部分迁移到低性能媒体类型。同样地,应用程序可能需要更多容量,或可能需要降低功率消耗。在此类实施例中,块装置管理器113可将块装置的一部分从(多个存储器组件中的)一个存储器组件迁移到(存储器装置池的)另一存储器装置的另一存储器组件。在一个实施例中,第二存储器组件具有与第一存储器组件不同的媒体类型。例如,第二存储器组件的媒体类型可能比第一存储器组件更适合满足主机系统的性能、容量及功率消耗需求中的一或多者。按照以上实例,不同媒体类型可为较低成本、较低功率的媒体类型。块装置管理器113可类似地将数据从低性能媒体类型迁移到高性能媒体类型。所公开实施例允许此类功率及成本优化。将分配从高性能存储器组件迁移到更低性能、更低成本的存储器组件的实例被说明为分派5从slc存储器装置232的存储器组件238到qlc存储器装置208的存储器组件218的迁移。
50.将分派从低性能、低成本媒体类型迁移到更高性能、更高成本的媒体类型的实例被说明为分派4从存储器装置220的qlc存储器组件226到存储器装置232的slc存储器组件242的迁移。
51.针对另一实例,在一些实施例中,一或多个存储器装置及存储器组件最初被分配为块装置的部分。一些实施例响应于由于主机系统的变化需求(例如,新请求的几何形状、实施分层或实施高速缓冲存储)而重建块装置的触发。在一些此类实施例中,通过从存储器装置池选择新存储器装置群组、从新存储器装置群组当中选择包含多达两种或更多种不同媒体类型的新存储器组件群组且聚合新存储器组件群组以建立新块装置来构建新块装置。应注意,在构建块装置之前或之后,可将存储器装置添加到存储器装置池或将其从存储器装置池移除,从而创建新存储器装置池。例如,一些实施例通过首先将零个或多个存储器装置添加到池化存储器装置或将其移除来响应于用以重建块装置的触发。
52.所公开实施例还可通过构建作为独立存储器组件冗余阵列(raimc)而操作的块装置来获得冗余性、故障容差及性能方面的优势。如本文中所使用,raimc将跨存储器子系统中的存储器装置的多个物理存储器组件组合成一个逻辑单元(与使用多个磁盘以创建所述逻辑单元的独立磁盘冗余阵列(raid)相比)。更特定来说,在一些实施例中,处理装置(即,块装置管理器)从子系统/装置选择多个存储器组件以用作raimc。处理装置将用于存取第一存储器组件的阶层式地址提供到主机系统。阶层式地址包含相关联主机系统的主机id及相关联存储器装置的装置id。处理装置跨多个存储器组件对寻址到第一存储器组件的数据存取进行分条及/或复制。在一些实施例中,处理装置还针对每一数据元素存储错误校正值(例如,奇偶校验值可存储在第三存储器组件中,当经复制的第一及第二存储器组件的两个对应元素的异或(xor)是非零时,所述奇偶校验值指示数据错误)。在一些实施例中,raimc与擦除编码算法一起使用,所述擦除编码算法涉及总共n个存储器组件,其中m个组件存储数据且k个组件存储奇偶校验信息,使得n=m k。所公开实施例允许使用异构存储器组件来构建raimc,无论所述异构存储器组件在同一存储器装置、存储器子系统或主机系统内,及/或在不同存储器装置、存储器子系统或主机系统中。
53.图4是根据本公开的一些实施例的用以构建异构块装置的实例方法的流程图。方法400可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的块装置管理器113来执行。尽管以特定序列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,且所说明过程可以不同顺序执行。一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每个实施例中均需要所有过程。其它过程流程也是可能的。
54.在操作405处,处理装置接收用以构建块装置的请求。例如,块装置管理器113从操作系统、应用程序或在主机系统120内运行的另一过程接收块装置请求。在一个实施例中,所述请求指示块装置的需求。在一个实施例中,所述需求包含容量、性能、耐久性或功率消耗中的两者或更多者。在一个实施例中,所述请求指定块装置的经请求几何形状(例如,存储器装置、装置内的存储器组件的并行单元/群组的数目等)。
55.在操作410处,处理装置从存储器装置池当中选择多个存储器装置。例如,块装置
管理器113可维护列出存储器装置池中具有相关联几何形状的可用存储器组件资源的数据结构。
56.在一个实施例中,此可用性数据结构列出可用存储器装置、其中的可用存储器组件、可用媒体类型、待分配的存储范围等。在一些实施例中,所述可用性数据结构还包含可用存储空间的特性,例如最大可用连续块、最小可用块、几何形状(并行单元/群组)等。在一个实施例中,所述可用性数据结构用以准备经分派存储空间及存储器装置统计的按需报告。在一些实施例中,由执行方法400的块装置管理器113维护所述可用性数据结构。参考所述可用性数据结构,例如,块装置管理器113从存储器装置208、220及232的列表(例如,池)当中选择多个存储器装置。在一些实施例中,块装置管理器113应用通过尝试跨多个存储器装置及组件均匀扩展经分派存储空间来平衡系统范围存储利用的选择策略。在一个实例中,当所述请求包含经请求几何形状时,块装置管理器113选择多个存储器装置以匹配所述请求。
57.在操作415处,处理装置从多个存储器装置当中选择具有多达两种或更多种(即,一种、两种、三种或更多种)不同媒体类型的多个存储器组件。例如,如上文所提及,块装置管理器113可维护可用性数据结构且根据所述请求来选择存储器组件。在实例中,块装置管理器113存取可用性数据结构且从多个存储器装置当中选择具有多达两种或更多种(即,一种、两种、三种或更多种)不同媒体类型的多个存储器组件214、224、236、226、238及216。在这个实例中,选定存储器组件具有两种不同媒体类型:slc及qlc。在一些实施例中,块装置管理器113选择具有同构媒体类型(例如,全部是slc)的存储器组件。
58.在操作420处,处理装置聚合多个存储器组件以实施块装置。例如,块装置管理器113识别待用以存取多个经分配存储器组件的阶层式地址。此类阶层式地址每一者包含相关联存储器装置的装置id。
59.在实施例中,块装置管理器113聚合多个经分配存储器组件且构建详述块装置244的几何形状的几何形状数据结构。例如,此几何形状数据结构可包含构成块装置的存储器组件分配的逻辑块地址、并行单元/群组及地址格式。另外,此几何形状数据结构可指定写入数据要求,例如最小写入数据大小。几何形状数据结构还可指示性能相关度量,例如用于读取、写入及复位的典型及最大时间。
60.在一个实施例中,块装置管理器113维护指示过往分配的日志或历史数据结构,包含为过往请求做出的分配。
61.当响应于请求而提供新分配时,块装置管理器113更新此数据结构。在实施例中,历史数据结构可用以在故障或失效(例如,存储器组件失效或存储器装置失效)的情况下重建块装置。
62.在操作425处,处理装置将待用以存取多个存储器组件的阶层式地址提供到存储器子系统管理堆叠。例如,块装置管理器113将在操作420处创建的几何形状数据结构提供到存储器子系统管理堆叠125。提供到存储器子系统管理堆叠125的阶层式地址每一者包含相关联存储器装置的装置id。阶层式地址还可包含存储器装置内的个别存储器组件可能需要的几何形状及其它寻址。
63.在一些实施例中,阶层式地址包含识别与每一存储器组件相关联的地址阶层的若干层的字段,包含:
64.·
装置id:识别相关联存储器装置。
65.·
群组:并行单元(pu)的集合,所述pu每一者在所述装置上的不同传送总线或通道上。
66.·
并行单元(pu):共享所述装置上的同一传送总线或通道的个别存储器组件的集合。
67.·
逻辑块:用于读取及写入的最小可寻址单元。
68.·
分块:逻辑块的集合。也可为用于复位(擦除)的最小可寻址单元。
69.在一个实施例中,存储器子系统管理堆叠125维护含有分配给一或多个块装置的逻辑地址的分配数据结构以供将来使用。在另一实施例中,计算环境100中的存储器装置中的每一者维护列出有关过往分派的细节的分配数据结构。此分配数据结构可用以在故障(例如,存储器组件或装置失效)的情况下重建块装置分配。此分配数据结构还可用以产生系统范围存储分配的按需报告。
70.在操作430处,处理装置响应于一或多个触发以扩展、收缩或重建块装置,或迁移块装置内的存储器组件。在一些实施例中,处理装置可将新存储器装置或新存储器组件添加到块装置。例如,块装置管理器113可意识到以下触发中的任一者的发生以动态地修改块装置:1)组件的失效(例如,存储器组件或存储器装置失效),2)耐久性改变(即,存储器装置接近耐久性水平阈值),3)性能需求改变(例如,主机系统的增加的性能要求或降低的性能要求),4)容量需求改变(例如,主机系统的增加的容量要求或降低的容量要求),5)功率消耗需求改变(例如,增加的功率预算可能需要添加更多或更快的媒体;降低的功率预算可能需要取消分配一些存储媒体或将块装置的一部分迁移到更低性能、更低功率的媒体类型),及6)其它改变需求(例如,新请求的几何形状、实施分层的需求或实施高速缓冲存储的需求)。所公开实施例通过动态地重建或修改块装置来响应于此触发。
71.例如,在一些实施例中,当主机系统120需要更高性能的存储时,其将块装置的部分迁移到更高性能的媒体类型。在此实施例中,块装置管理器113将块装置的一部分从多个存储器装置中的第一者的存储器组件迁移到具有不同的更高性能媒体类型的第二存储器装置上的存储器组件。第一及第二存储器装置可与同一主机系统或不同主机系统相关联。将分配从低性能、低成本媒体类型迁移到高性能媒体类型的实例被说明为分配4从存储器装置220的qlc存储器组件226到存储器装置232的slc存储器组件242的迁移,如图2到3中所说明。
72.通过允许在包含异构非易失性存储器组件的异构存储器组件当中按需迁移分配,一些所公开实施例通过启用动态高速缓冲存储分配来改进性能。
73.针对另一实例,在一些实施例中,一或多个存储器装置及存储器组件最初被分配为块装置的部分。一些实施例响应于指示由于主机系统的变化需要(例如,新请求的几何形状、实施分层或实施高速缓冲存储)而将重建块装置的触发。在一些此类实施例中,通过从存储器装置池选择新存储器装置群组、从新存储器装置群组当中选择包含多达两种或更多种不同媒体类型的新存储器组件群组且聚合新存储器组件群组以建立新块装置来构建新块装置。
74.一旦被构建,就将用以存取块装置的存储器组件的阶层式地址提供到主机系统。在此,阶层式地址可含有与每一存储器组件相关联的主机id,以及装置id、群组、并行单元、
逻辑块及分块的识别符,如上文所描述。
75.图5说明根据一些实施例的用以托管块装置的多个异构存储器组件的另一初始分配。如所展示,计算系统500包含主机系统501、502及503的池,所述主机系统中的每一者包含块装置管理器113。主机系统501、502及503是主机系统120的实例,如上文所描述。应注意,在操作中,可将主机系统添加到主机系统池或将其从主机系统池移除。例如,可通过添加从被添加到主机系统池的另一主机系统中的附加存储器装置选择的存储器组件来扩展块装置。
76.主机系统总线509允许主机系统501、502及503的池当中的通信。例如,主机系统501可维护指示存储器装置508及520内的可用媒体类型的量的列表或其它数据结构且与主机系统502及503共享那个数据。类似地,主机系统502及503可针对它们相应的底层存储器子系统532及560维护及共享类似数据结构。在一个实施例中,主机系统使用主机系统总线509以请求从由所述池内的另一主机系统管理的存储器子系统分配媒体。在一些实施例中,主机系统总线509是以太网、pcie、无限带宽(infiiband)或另一主机网络互连总线。在其它实施例中,主机501到503经由所述总线上的nvmeof(nvme over fabrics)协议连接进行通信。
77.存储器子系统506与主机系统501相关联且包含存储器装置508及520的池。应注意,在操作中,可将存储器装置添加到存储器装置池或将其从存储器装置池移除,且可将主机系统添加到主机系统池或将其从主机系统池移除。存储器装置508包含控制器115及四个slc存储器组件512、514、516及518。存储器装置520包含控制器115以及四个mlc存储器组件524、526、528及530。存储器装置508及520的控制器115是控制器115的实例,如上文所论述。在一些实施例中,如在此,存储器组件512、514、516、518、524、526、528及530可按通道抽象化成并行单元群组。例如,不同存储器组件可经由不同通道耦合到控制器,从而增强并行性及吞吐量。此类群组提供另一寻址层。slc存储器组件516及518是并行单元519的一部分。mlc存储器组件528及530是并行单元531的一部分。同样地,mlc存储器组件524及526是并行单元527的部分。并行单元531及527是群组且每一者属于单独通道或传送总线。
78.存储器子系统532与主机系统502相关联且包含存储器装置534及546的池。存储器装置534含有控制器115以及四个qlc存储器组件538、540、542及544。存储器组件542及544是并行单元545的部分。存储器装置546含有控制器115及四个qlc存储器组件:550、552、554及556。qlc存储器组件554及556是并行单元557的部分。
79.存储器子系统560与主机系统503相关联且包含存储器装置562及574的池。存储器装置562含有控制器115以及四个tlc存储器组件566、568、570及572。tlc存储器组件570及572是并行单元573的部分。存储器装置574含有控制器115以及四个mlc存储器组件578、580、582及584。mlc存储器组件582及584是并行单元585的部分。
80.主机系统501、502及503中的每一者可使用存储器子系统总线507以分别与其相关联存储器子系统506、532及560进行通信。在一些实施例中,存储器子系统总线507允许所述主机系统中的每一者与其相关联存储器子系统中的存储器装置及存储器组件进行通信。在一些实施例中,存储器子系统总线507是外围组件接口快速(pcie)总线,且所述总线上传达的数据分组遵循非易失性存储器快速(nvme)协议。这个总线可为其它类型,例如gen-z、cxl(计算机快速链路)、ccix(针对加速器的高速缓冲存储一致性互连)、ddr(双倍数据速率)
等。
81.在此,计算系统500被展示为包含slc、mlc、tlc及qlc存储器装置。其它实施例包含具有各种媒体类型中的任一者的存储器组件,包含所说明媒体类型及/或非易失性存储器单元的交叉点阵列。
82.在操作中,以主机系统501为例,块装置管理器113从(若干)处理器130(在此未展示,但上文关于图1描述)接收用以构建块装置544的请求。例如,块装置管理器113通过分派物理单元、裸片及/或lun来构建块装置544。在一些实施例中,存储器装置508、520、534、546、562及574使它们的内部存储资源对主机系统可见。在如此做时,存储器装置508、520、534、546、562及574可被认为形成耦合到主机系统501、502及503的池的存储器装置池。在一些实施例中,主机系统501可例如通过向存储器装置508、520、534、546、562及574发出几何形状命令来发现所述存储器装置内的存储器组件的几何形状。如上文所描述,主机系统501接着可指定经请求几何形状连同(或外加)用以构建块装置的请求。
83.在一个实施例中,块装置管理器113从主机系统池当中选择多个主机系统(包含主机系统501、502及503),且从选定主机系统选择多个存储器装置(包含存储器装置508、534及562),以实施块装置。块装置管理器113从选定存储器装置当中进一步选择多个存储器组件以实施块装置544。如所展示,块装置管理器113分配存储器装置的部分,例如,指派五个存储器组件的物理单元(pu)、裸片及/或逻辑单元号(lun)以实施块装置544。如所展示,从异构存储器组件(各种媒体类型的存储器组件:slc、mlc、tlc及qlc)当中选择用以构建块装置544的分配。在一些实施例中,块装置管理器113可使选定分配的媒体类型与块装置544的需求匹配,如由主机系统501所指示。表3描述块装置管理器113对块装置544的原始实施,如图5中所说明。
84.表3.块装置544(图5)
85.分派存储器子系统存储器装置存储器组件15065085142532534540350650851245325345385560562566
86.块装置管理器113接着产生待用以存取实施块装置544的多个存储器组件的阶层式地址并将所述阶层式地址提供到主机系统501。例如,块装置管理器113将指派给块装置544的媒体的阶层式地址提供给存储器子系统管理堆叠125。
87.在一些实施例中,块装置管理器113从主机系统501接收对块装置的需求的指示连同(或外加)用以构建块装置的请求。此类需求可包含容量、性能、耐久性或功率消耗。替代地,主机系统501可依据媒体类型来指示此类需求。在一些实施例中,块装置管理器113接收多达两个或更多个(即,一个、两个、三个或更多个)此类需求及归因于每一需求的存储量的指示。作为响应,块装置管理器113在选择多个主机系统、多个存储器装置及多个存储器组件时,使对块装置的需求与媒体类型匹配。例如,所述请求可指示块装置的一半是高性能/低延时存储,而另一半是高容量存储。作为响应,块装置管理器113可选择slc媒体以满足高性能/低延时存储需求且选择qlc媒体以满足高容量存储需求。下文参考图7进一步描述用
于构建块装置544的方法。
88.图6说明根据本公开的一些实施例的经修改块装置配置。所述图说明如图5中所说明及表3中所描述的存储器子系统506、532及560的分配的重新配置。
89.块装置管理器113最初通过响应于主机请求的几何形状而选择及聚合存储器装置508、534及562的五个存储器组件514、540、512、538及566(分别是分配1、2、3、4及5)来构建块装置544。如图6中所展示,块装置管理器113修改块装置分配以迁移分配1到4,移除分配5,且添加分配6及7。这个经重新配置分配被说明为块装置694,含有六个分配的聚合。表4展示块装置管理器113对块装置694的实施,如图6中所说明。如所说明及描述,块装置管理器113利用存储器组件512、552、542、516、518及580来实施块装置694以分别托管由分配1、2、3、4、6及7组成的几何形状。
90.表4.块装置694(图6)
91.分配存储器子系统存储器装置媒体组件150650851225325465523532534542450650851665065085187560574580
92.在一些实施例中,块装置管理器113响应于来自主机系统的请求而重新配置块装置。例如,主机系统501可发出触发块装置管理器113扩展块装置的请求。在一些实施例中,块装置管理器113通过从池化存储器装置当中或从存储器装置池的另一存储器装置或从被添加到存储器装置池的额外存储器装置或从被添加到主机系统池的额外主机系统选择额外存储器组件(或其部分)且将额外存储器组件与先前选定存储器组件聚合以实施经扩展块装置来响应。块装置的此扩展的实例包含存储器装置508的存储器组件518中的新添加分派6及存储器装置574的存储器组件580中的新添加分派7。
93.例如,在一些实施例中,块装置管理器113可通过从多个存储器装置当中动态地选择含有额外存储器组件的额外存储器装置且将额外存储器组件与已实施块装置的多个存储器组件聚合来扩展块装置。
94.通过支持块装置的按需扩展,所公开实施例允许主机系统501在需要时增加块装置的容量或替换经取消分配的分派。
95.在一些实施例中,主机系统501发出触发块装置管理器113使分派的一部分引退、到期或取消分配,或以其它方式收缩块装置的请求。在经重新配置的块装置694中移除分派5是此取消分配的实例。在此,如图6中所展示及表4中所描述,块装置管理器113已取消分配指派给分配5的存储。
96.通过允许块装置的按需收缩,所公开实施例能够移除/替换失效或性能不佳的存储器装置。取消分配不需要的存储器组件还可使经取消分配存储容量可用于主机系统501(及主机系统502及503)以用于另一目的。
97.在一些实施例中,主机系统501发出触发块装置管理器113将块装置的一部分从第一存储器组件迁移到同一存储器装置上的相同媒体类型的第二存储器组件的请求。此需要
可能由于多种原因而出现,例如以不同方式放置数据以允许在存取数据时实现更大并行性,从失效的存储器组件移动数据等的需求。块装置管理器113通过选择将分派迁移到的另一存储器组件且将数据从先前选定存储器组件复制到新选定存储器组件来响应。新选定存储器组件可被指示为来自主机系统501的请求的部分。同一存储器装置内的迁移实例被说明为分配1从存储器装置508的存储器组件514到同一存储器装置508中的相同类型的存储器组件512的迁移。
98.在一些实施例中,出现将分派迁移到相同媒体类型但在不同存储器装置中的另一存储器组件的需求。例如,存储器装置的失效可触发一或多个分派的迁移。块装置管理器113可选择将分派迁移到的存储器组件,或可将目标存储器组件指示为来自主机系统501的请求的部分。此迁移的实例被说明为分派2从存储器装置534的qlc存储器组件540到存储器装置546中的相同类型的qlc存储器组件552的迁移。
99.在一些实施例中,块装置管理器113从第一存储器装置接收第一存储器装置或第一存储器装置内的存储器组件已达到耐久性水平阈值的指示。在其它实施例中,块装置管理器113从主机系统120接收所述指示。所述指示触发第二存储器装置的选择及块装置的一部分到第二存储器装置的迁移。
100.如上文所描述,在一些实施例中,主机系统501响应于若干触发中的任一者而动态地重新配置块装置。凭借重新配置,可扩展、收缩、重建、精简配置、复制及迁移块装置。将分派从低性能、低成本媒体类型迁移到更高性能、更高成本的媒体类型的实例被说明为分派4从存储器装置534的qlc存储器组件538到存储器装置508的slc存储器组件516的迁移。
101.在一些实施例中,主机系统501不再需要(或需要更少)高性能存储且将块装置的部分迁移到更低成本的媒体类型。在此类实施例中,块装置管理器113将块装置的一部分从多个存储器装置中的第一者的第一存储器组件迁移到第二存储器装置上的第二存储器组件,所述第二存储器组件具有与所述第一存储器组件的媒体类型不同的媒体类型。将分配从高性能存储器组件迁移到更低成本的存储器组件的实例被说明为分配3从存储器子系统506的存储器装置508的slc存储器组件512到存储器子系统532的存储器装置534的qlc存储器组件542的迁移。
102.在一些实施例中,主机系统501需要更高性能的存储且将块装置的部分迁移到更高性能的媒体类型。在此实施例中,块装置管理器113将块装置的一部分从多个存储器装置中的第一者的第一存储器组件迁移到第二存储器装置上的第二存储器组件,所述第二存储器组件具有不同的更高性能媒体类型。第一及第二存储器装置可与同一主机系统或不同主机系统相关联。将分配从低性能、低成本媒体类型迁移到高性能媒体类型的实例被说明为分配4从存储器子系统532的存储器装置534的qlc存储器组件538到存储器子系统506的存储器装置508的slc存储器组件516的迁移。
103.通过允许在异构存储器组件当中按需迁移分配,一些所公开实施例通过启用动态高速缓冲存储分配来改进性能。
104.图7是根据本公开的一些实施例的用以构建异构块装置的实例方法的流程图。方法700可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700由图1的块装置管理器113来执行。尽管以特定序
列或顺序展示,但除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,且所说明过程可以不同顺序执行。一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每个实施例中均需要所有过程。其它过程流程也是可能的。
105.在操作705处,处理装置从主机系统接收用以构建块装置的请求。例如,块装置管理器113从操作系统、应用程序或在主机系统501内运行的另一过程接收块装置请求。在一个实施例中,所述请求指示块装置的需求。在一个实施例中,所述需求包含容量、性能、耐久性或功率消耗中的两者或更多者。在一个实施例中,所述请求指定块装置的经请求几何形状。
106.在操作710处,处理装置从主机系统池当中选择多个主机系统。例如,块装置管理器113可维护列出主机系统池中的可用资源的数据结构。此可用性数据结构的创建、维护及使用类似于上文关于操作410所描述的可用性数据结构的创建、维护及使用。然而,方法700中所使用的可用性结构还包含有关多个主机系统的可用性信息。
107.在一个实施例中,由主机系统中的执行方法700中的异构块装置管理器113维护及更新可用性数据结构。在一些实施例中,由系统500中的一或多个其它冗余异构块装置管理器113维护及更新可用性数据结构。例如,响应于分配、修改或取消分配块装置544,主机系统501的块装置管理器113可将反映系统500中的可用存储器资源的可用性数据结构的更新传输到主机系统502及503中的异构块装置管理器113,从而使每一块装置管理器113能够更新可用性数据结构的本地副本。例如在故障(例如,主机系统或装置或组件失效)的情况下,此类冗余可用性数据结构可用以重构过往分派。
108.在一些实施例中,系统中的主机或存储器装置中的每一者维护与其域中的存储器组件相关的本地可用性数据结构。在执行操作710之前由执行方法700的异构块装置管理器113查询此本地可用性数据结构。那样,块装置管理器113将具有系统范围分派的最新、准确知识。此最新知识还将反映由其它异构块装置管理器113创建或删除的分配。
109.如上文所描述,此可用性数据结构列出可用主机系统、存储器装置及存储器组件,以及可用媒体类型、尚未分配的存储范围等。参考此可用性数据结构,例如,块装置管理器113从主机系统501、502及503的列表(例如,池)选择多个主机系统。在一个实例中,当所述请求包含经请求几何形状时,块装置管理器113选择多个主机系统、存储器装置及存储器组件以匹配所述请求。在一个实施例中,块装置管理器113将优先级给予直接耦合到发起所述请求的主机系统/在所述主机系统本地的存储器装置/组件,且当所述请求无法在本地实现时(例如,由于对应媒体类型缺乏可用性),利用耦合到池中的其它主机系统的存储器装置/组件。在一些实施例中,块装置管理器113在执行操作710时,应用如同上文关于操作410所描述的选择策略的选择策略。
110.在操作715处,处理装置从多个主机系统当中选择多个存储器装置。例如,如同操作710,块装置管理器113参考可用性数据结构,从存储器装置508、520、534、546、562及574的池当中选择多个存储器装置。在一个实例中,当所述请求包含经请求几何形状时,块装置管理器113选择多个主机及多个存储器装置以匹配所述请求。
111.在一个实施例中,所述请求指示块装置的需求(例如,容量、性能、耐久性或功率消耗中的两者或更多者)。当所述请求指示块装置的需求时,块装置管理器113选择可用主机
系统、存储器装置及存储器组件以实施块装置。在一个实例中,当所述请求指示对块装置的高性能部分的需求时,块装置管理器113通过选择slc存储器组件来匹配那个需求。在另一实例中,当所述请求指示对块装置的低成本部分的需求时,块装置管理器113通过选择qlc存储器组件来匹配那个需求。
112.在操作720处,处理装置从多个存储器装置当中选择具有多达两种或更多种(即,一种、两种、三种或更多种)媒体类型的多个存储器组件。例如,如上文所提及,块装置管理器113可维护可用性数据结构。在一个实例中,参考可用性数据结构,块装置管理器113从在操作715处选择的多个存储器装置当中选择具有多达两种或更多种(即,一种、两种、三种或更多种)不同媒体类型的多个存储器组件514、540、512、538及566。在这个实例中,选定存储器组件具有三种不同/异构媒体类型:slc、qlc及tlc。在一些实施例中,块装置管理器113可选择具有同构媒体类型的存储器组件。
113.在操作725处,处理装置聚合多个存储器组件以实施块装置。例如,块装置管理器113识别待用以存取多个经分配存储器组件的阶层式地址。此类阶层式地址每一者包含相关联主机系统的主机id及相关联存储器装置的装置id。
114.在实施例中,块装置管理器113聚合多个经分配存储器组件且构建详述块装置544的几何形状的几何形状数据结构(如同上文关于操作420所描述的几何形状数据结构)。例如,此几何形状数据结构可包含构成块装置的分配的逻辑块地址及地址格式。另外,此几何形状数据结构可指定写入数据要求,例如最小写入数据大小。几何形状数据结构还可指示性能相关度量,例如用于读取、写入及复位的典型及最大时间。
115.在一个实施例中,块装置管理器113维护指示过往分配的日志或历史数据结构,包含为过往请求做出的分配。当响应于所述请求而提供新分配时,块装置管理器113更新此数据结构。在实施例中,历史数据结构可用以在故障或失效(例如,主机、装置或组件失效)的情况下重建块装置。
116.在操作730处,处理装置将待用以存取多个存储器组件的阶层式地址提供到主机系统。例如,块装置管理器113将在操作725处创建的几何形状数据结构提供到主机系统120。提供到主机系统120的阶层式地址每一者包含相关联主机系统的主机id及相关联存储器装置的装置id。如上文所描述,阶层式地址还可描述装置id、群组、并行单元、逻辑块及分块。
117.在操作735处,与操作430类似,处理装置响应于一或多个触发以扩展、收缩或重建块装置,或迁移块装置内的存储器组件。
118.在一个实施例中,主机系统501维护含有分配给其的逻辑地址的分配数据结构以供将来使用。在另一实施例中,系统500中的存储器装置中的每一者维护列出有关过往分派的细节的分配数据结构。此分配数据结构可用以在故障(例如,存储器组件故障、装置故障或主机故障)的情况下重建块装置分配。此分配数据结构还可用以产生系统范围存储分配的按需报告。在另一实施例中,主机系统502及503中的一或多者维护分配数据结构的冗余副本。
119.图8说明计算机系统800的实例机器,可在所述计算机系统内执行用于致使所述机器执行本文中所论述的方法中的任何一或多者的一组指令。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储
器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的块装置管理器113的操作)。在替代实施例中,所述机器可连接(例如,联网)到lan、内联网、外联网及/或因特网中的其它机器。所述机器可在客户端服务器网络环境中以服务器或客户端机器的身份操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础架构或环境中的服务器或客户端机器操作。
120.所述机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、网络设施、服务器、网络路由器、交换机或网桥,或能够执行一组指令(循序指令或其它指令)的机器,所述指令指定待由那个机器采取的动作。此外,虽然说明单个机器,但术语“机器”也应被理解为包含个别地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多者的机器的任何集合。
121.实例计算机系统800包含经由总线830彼此进行通信的处理装置802、主存储器804(例如,只读存储器(rom)、快闪存储器、动态随机存取存储器(dram),例如同步dram(sdram)或rambus dram(rdram)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(sram)等)及数据存储系统818。
122.处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,所述处理装置可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置802经配置以执行指令826以用于执行本文中所论述的操作及步骤。计算机系统800可进一步包含用以通过网络820进行通信的网络接口装置808。
123.数据存储系统818可包含其上存储有体现本文中所描述的方法或功能中的任何一或多者的一或多组指令826或软件的机器可读存储媒体824(还被称为计算机可读媒体)。指令826在由计算机系统800执行期间还可全部或至少部分地驻留在主存储器804及/或处理装置802内,主存储器804及处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818及/或主存储器804可对应于图1的存储器子系统110。
124.在一个实施例中,指令826包含用以实施对应于异构块装置管理器(例如,图1的块装置管理器113)的功能性的指令。虽然机器可读存储媒体824在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被理解为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被理解为包含可存储或编码一组指令以供机器执行且致使机器执行本公开的方法中的任何一或多者的任何媒体。因此,术语“机器可读存储媒体”应被理解为包含但不限于固态存储器、光学媒体及磁性媒体。
125.已依据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示是被数据处理领域的技术人员用以最有效地向所属领域的其他技术人员传达他们的工作实质的方式。算法在此被认为且通常被认为是导向所期望结果的自洽操作序列。所述操作是需要对物理量进行物理操纵的那些操作。通常,尽管并非必需的,但这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已证明,有时主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
126.然而,应记住,所有这些及类似术语应与适当物理量相关联且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
127.本公开还涉及用于执行本文中的操作的设备。这个设备可经专门构件用于预期目的,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统,例如控制器115可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而实行计算机实施方法400及700。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、cd-rom及磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器)、磁卡或光卡或适合存储电子指令的任何类型的媒体,每一者耦合到计算机系统总线。
128.本文中所提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备来执行所述方法是方便的。多种这些系统的结构将如在以下描述中所阐述那样出现。另外,未参考任何特定编程语言描述本公开。将明白,可使用多种编程语言以实施如本文中所描述的本公开的教示。
129.本公开可被提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有指令的机器可读媒体,所述指令可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
130.在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神及范围的情况下,可对本公开进行各种修改。因此,说明书及附图应被视为说明性意义而非限制性意义。
再多了解一些

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

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

相关文献