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

协同存储架构的制作方法

2021-10-20 00:41:00 来源:中国专利 TAG:协同 架构 公开


1.本公开涉及协同存储架构。


背景技术:

2.与硬盘驱动器(hdd)相比,基于nand闪速存储器的固态驱动器(ssd)因其更高的带宽和更低的延迟而广泛用于各种应用中。通常,与可比较的hdd相比,ssd提供更快的访问时间和更低的功耗。经常在主机计算设备和固态驱动器(ssd)之间使用互连协议来促进信号和数据传输。主机计算设备充当向用户或网络上的其他节点提供信息资源、服务、命令和/或应用的服务器。主机计算设备管理ssd以从ssd访问数据,例如读取或写入数据以用于操作和存储,并且提供诸如自动分层和全局磨损级别管理的服务。
3.近年来,多个固态驱动器(ssd)经常用于提供多个存储阵列以在计算系统中构建大型数据存储装置。结果,中央主机(诸如主机计算系统)与固态驱动器(ssd)之间的通信和/或连接变得复杂并且有时拥塞。由于在目前的互连协议下需要将来自固态驱动器(ssd)的数据通信和/或信号传输延迟回主机计算系统以进行管理,因此随着存储装置大小的增长,添加到主机计算机设备的计算负载和存储器带宽负载显著增加。当主机计算设备达到其最大计算负载和存储器带宽负载时,主机计算设备下允许的固态驱动器的数量也达到其极限,从而限制了存储装置的容量的进一步增长。


技术实现要素:

4.本公开提供了一种互连架构,其使能在计算系统中的数据存储驱动器之间的通信和/或数据传输,而具有来自计算系统中的主机计算设备的最少参与。每个数据存储驱动器中的闪存转换层(ftl)可以以协同方式操作,其允许跨来自在计算系统中实现的数据存储驱动器的每个的存储器阵列的通信和/或数据传输。在一个示例中,这里描述的本公开的一个方面包括一种在计算系统中处理命令的方法。该方法包括:由一个或多个处理器在布置在计算系统中的第一数据存储驱动器中接收操作命令;响应于该操作命令,由第一数据存储驱动器直接与布置在计算系统中的第二数据存储驱动器通信;并且由一个或多个处理器基于该通信,确定计算系统中的数据存储驱动器以处理该操作命令。
5.在一个示例中,数据存储驱动器的确定进一步基于操作命令的类型。当该操作命令是读取命令时,数据存储驱动器的确定基于闪存转换层指示数据在第一数据存储驱动器和/或第二数据存储驱动器中的何处驻留。当该操作命令是写入命令时,数据存储驱动器的确定基于分配表包括全局驱动器属性或全局驱动器磨损统计中的至少一个。全局驱动器属性包括容量或磨损能力中的至少一个。与第二数据存储驱动器的直接通信进一步包括在不与计算系统中的主机计算设备通信的情况下进行直接通信。第一和第二数据存储驱动器是固态驱动器。该操作命令包括数据写入命令、数据读取命令、数据编程命令或数据擦除命令。
6.在一个示例中,在第一数据存储驱动器中接收操作命令进一步包括:由一个或多
个处理器,通过配置在第一数据存储驱动器中的第一缓冲器管理器处理该操作命令;以及由所述一个或多个处理器,从第一缓冲器管理器向配置在第二数据存储驱动器中的第二缓冲器管理器进行直接通信。
7.在一个示例中,数据块被定义在布置在第一数据存储驱动器或第二数据存储驱动器中的多个非易失性存储器或多个易失性存储器中。所述多个非易失性存储器为多个nand闪速存储器。在另一示例中,所述多个易失性存储器是多个dram。第一固态驱动器和第二固态驱动器之间的直接通信通过在第一固态驱动器和第二固态驱动器之间定义的互连链路协议传送。该互连链路协议使能在第一数据存储驱动器和第二数据存储驱动器之间的直接通信,而无需与计算系统中的主机计算设备进行通信。
8.本公开的另一方面包括一种装置。该装置包括计算系统,该计算系统包括主机计算设备。多个数据存储驱动器与主机计算设备通信。互连链路协议与计算系统中的所述多个数据存储驱动器相连接。该互连链路协议允许所述多个数据存储驱动器之间的直接通信,而无需来自主机计算设备的参与。
9.在一个示例中,互连链路协议允许在所述多个数据存储驱动器中的每个中配置的闪存转换层之间的直接通信。该互连链路协议允许在所述多个数据存储驱动器中的每个中配置的缓冲器管理器之间的直接通信。数据存储驱动器是固态驱动器。
10.本公开的又一方面包括一种用于处理命令的系统。该系统包括一个或多个处理器,所述处理器被配置为在布置在计算系统中的第一数据存储驱动器中接收操作命令。响应于该操作命令,第一数据存储驱动器与布置在该计算系统中的第二数据存储驱动器直接通信。确定该计算系统中的数据存储驱动器以处理该操作命令。
附图说明
11.图1是图示根据本公开的方面的计算系统的框图。
12.图2是图示根据本公开的方面的计算系统中的固态驱动器(ssd)之间的通信的框图。
13.图3是图示根据本公开的方面的固态驱动器(ssd)中的闪存转换层(ftl)之间的通信的框图。
14.图4是图示根据本公开的方面的客户端计算设备、主机计算设备和固态驱动器(ssd)之间的通信的框图。
15.图5是图示根据本公开的方面的ssd之间的数据传输的示例的数据处理序列图。
16.图6是图示根据本公开的方面的ssd之间的数据传输的另一示例的数据处理序列图。
17.图7是根据本公开的方面的在计算系统中的示例过程数据处理和通信的流程图。
具体实施方式
18.本公开提供了一种互连架构,其使能在计算系统中实现的数据存储驱动器之间的通信和/或数据传输。在一个示例中,这里使用的数据存储驱动器是固态驱动器(ssd)。每个ssd中的闪存转换层(ftl)可以被配置为以协同方式操作,其允许跨来自安装在计算系统中的每个ssd的存储装置中的数据存储驱动器进行通信和/或数据传输,诸如设备到设备通信
或存储器到存储器通信。在每个ssd中配置的ftl可以处理跨所有ssd的写入/读取命令,而无需推迟到在计算系统中实现的主机计算设备。因此,在其中将额外的ssd添加到计算系统中的示例中,ftl的处理能力也增加以适应在计算系统中额外添加的ssd的管理,从而为计算系统中的存储装置提供横向可伸缩性。这种横向可伸缩性使得能够通过增加在计算系统中实现的数据存储驱动器的数量来构建更大的存储装置,而无需增加计算系统中相应主机计算设备的性能。
19.传统的互连架构需要诸如主机处理器之类的主机计算设备来管理计算系统中诸如数据存储驱动器之类的附接设备之间的通信。例如,主机计算设备管理每个数据存储驱动器的存储器阵列中的存储装置,通常称为主机到设备(h2d)通信。因此,需要单独从主机计算设备向每个数据存储驱动器中的存储装置发出分离的命令或请求以用于数据通信。通过启用数据存储驱动器之间的通信,例如设备到设备(d2d)通信,来自一个数据存储驱动器的命令/请求可以以协同方式通过来自数据存储驱动器中的ftl的配置和设置传送到另一个数据存储驱动器,从而卸载主机计算设备所需的计算负载和存储器带宽负载中的一些。因此,可以以更少的业务时间和更高的传输效率获得简化的数据事务流,以支持新兴的计算应用。
20.图1是示出计算系统100的框图。计算系统100可以是任何类型的计算设备。例如,计算系统100可以是服务器系统,其中,各种设备可以通过网络或通过物理连接与其进行电通信。计算系统100包括主机计算设备150和数据存储驱动器101。主机计算设备150经由单个或多个互连、连接总线、迹线、引脚等与数据存储驱动器101进行电通信。在一个示例中,在图1中描述的数据存储设备101可以是固态硬盘(ssd)。注意,其他类型的设备(诸如加速器设备)也可以在计算系统100中实现以提高计算系统100的操作性能。
21.可以使用这里描述的技术来实现主机计算设备150和数据存储驱动器101。在该示例中,主机计算设备150可以是与数据存储驱动器101可操作地耦合的电子设备。主机计算设备150可以发出各种类型的命令和/或请求,诸如向数据存储驱动器101中继或处理来自由用户操作的i/o设备144的请求。主机计算设备150可以是多种形式。作为一些示例,主机计算设备150可以被实现为cpu或与加速器一起在个人计算机、膝上型计算机、服务器、平板计算机或笔记本计算机或任何合适的形式中使用的cpu。
22.在一个示例中,一个或多个i/o设备144可以经由各种合适的网络(诸如,基于以太网的通信协议、wifi连接协议或其他合适的通信协议)耦合到主机计算设备150。主机计算设备150被配置为从一个或多个i/o设备144接收输入的请求/命令。
23.在一个示例中,主机计算设备150可以通过互连链路协议180连接到数据存储驱动器101以使得数据、信号和消息能够在它们之间传送。在一些实施例中,互连链路协议180可用于支持多个协议以及经由多个互连协议(包括计算快速链路(cxl)协议、加速器的高速缓存相干互连(ccix)协议、以太网协议等)的数据和信号的通信。例如,互连链路协议180可以支持各种互连协议,包括非相干互连协议、相干互连协议、存储器互连协议等。
24.在一个示例中,数据存储驱动器101可以是固态驱动器,其包括具有嵌入其中的多个组件的控制器102。控制器102可操作地耦合到:一个或多个非易失性存储器,诸如多个nand闪速存储器130;以及,随机存取存储器(ram),诸如多个dram存储器131,其包括一个或多个存储器管芯。存储器管芯或芯片包括存储器结构,诸如存储器单元阵列、控制电路和
读/写电路。存储器结构可通过字线寻址。读/写电路包括多个存储器块并允许并行读取或编程存储单元页。命令和数据经由多个dram存储器131和多个nand闪速存储器130中的通信线路在控制器102和一个或多个存储器管芯之间传输。
25.nand闪速存储器130可以是二维nand闪速存储器、三维nand闪速存储器。存储器结构可以包括单片3d存储器结构,其中,多个存储器级形成在诸如晶片的单个衬底之上,没有中间衬底。控制器102可以通过其中的数据或信号从第一格式模拟为第二格式,该第二格式对于nand存储器130或dram存储器131是可读/可写的。
26.易失性存储器设备的示例包括动态随机存取存储器(dram)或静态随机存取存储器(sram)设备等。非易失性存储器设备的示例包括电阻随机存取存储器(reram)、电可擦除可编程只读存储器(eeprom)、闪速存储器、铁电随机存取存储器(fram)和磁阻随机存取存储器(mram)以及其他能够存储信息的半导体元件。每种类型的存储器设备可以具有不同的配置。例如,闪速存储器设备可以配置为nand或nor配置。存储器设备可由无源和/或有源元件以任何组合形成。在一个示例中,无源半导体存储器元件包括reram设备元件,在一些实施例中,其包括:电阻率切换存储元件,诸如反熔丝或相变材料;以及,可选的导引元件,诸如二极管或晶体管。有源半导体存储器元件包括eeprom和闪速存储器设备元件,在一些实施例中,它们包括包含电荷存储区的元件,诸如浮栅、导电纳米颗粒或电荷存储介电材料。
27.数据存储驱动器100中的控制器102包括主机接口106,该主机接口106具有被配置为与主机计算设备150通信的主机接口电路。例如,主机接口106可以包括非易失性存储器express规范,例如,nvme控制器或其他合适类型的接口电路以促进主机计算设备150和数据存储驱动器101之间的通信。主机接口106可以接收各种命令,诸如写入命令、读取命令、移动命令、擦除命令或来自主机计算设备150的其他各种操作命令来执行数据存储驱动器101中的各种任务。例如,可以从主机计算设备150发送写入命令,以请求数据存储驱动器101基于写入命令在存储器130、131中写入数据。在一个示例中,写入命令可以包括开始逻辑块寻址(lba)、传输长度和注册id。写入命令中的注册id可以是用于识别可以写入数据的区域的标识符。在一个示例中,注册id可以是命名空间id。读取命令可以请求数据存储驱动器101以获取存储在其中的数据。读取命令还可以包括起始lba、传输长度和注册id。读取命令中的注册id也可用于识别待读取的数据存储驱动器101中存储数据的区域。注册id也可以是命名空间id。
28.互连链路协议180可以与主机接口106对接以促进数据连接或通过其的传输。
29.在一个示例中,外围接口102也可以在数据存储驱动器101中实现。外围接口102包括外围接口电路,该外围接口电路被配置为使能在数据存储驱动器或在计算系统100中实现的其他数据存储驱动器或其他设备(诸如,加速器设备)之间的通信。例如,外围接口102可以促进外部设备(诸如数据存储驱动器101或其他数据存储驱动器)之间的直接数据通信或直接信号传输,如图2进一步所示,无需将信号推迟回主机计算设备150。因此,数据存储驱动器101和其他驱动器可以通过外围接口102彼此直接电通信,而不使用主机计算设备150作为中央处理代理以通过其进一步转发或传送命令。在一个示例中,外围接口102可以是任何合适类型的接口电路或接口互连协议,以促进数据存储驱动器101或计算系统100中的其他设备之间的通信。注意,在外围接口102不存在或配置在数据存储驱动器101中的示例中,一个或多个数据存储驱动器与其他外部设备之间的通信可以利用互连链路协议180
中配置的软件编程或互连协议以促进横向通信,诸如设备到设备或驱动器到驱动器(d2d)通信,没有或很少有主机计算设备150的参与。
30.类似地,外围接口102可以从数据存储驱动器101或其他外部设备接收各种命令,诸如写入命令、读取命令、各种控制命令。写入和读取命令可以被类似地配置为来自主机计算设备150的写入和读取命令。
31.可以在数据存储驱动器101中实现多个处理器125。多个处理器125被配置为控制主机接口106、外围接口102(如果存在)、dram控制器156和nand控制器155。处理器125通过从rom 121、nand存储器130和/或dram 131加载固件、代码或软件等来执行各种处理和操作。诸如dram存储器131、rom 121和nand闪速存储器130的存储器包括代码,诸如指令集,并且处理器125可操作以执行该指令集以提供这里描述的功能。
32.在一个示例中,处理器125可以从主机计算设备150接收命令和/或在数据存储驱动器101中执行这样的命令。例如,在控制器102中配置的ftl 104可以接收这样的命令并且操作该命令用于其预期目的。在一个示例中,ftl 104被配置为执行nand闪速存储器130的数据管理和块管理。ftl 104可以用于执行处理或操作,诸如以磨损均衡管理对nand闪速存储器130的写入和读取命令,在nand闪速存储器130中维护逻辑到物理(l2p)映射表,并向主机计算设备150、计算系统100中实现的其他设备提供逻辑块编号接口。因此,通过由处理器125执行的固件、软件或算法控制数据存储驱动器101的操作或处理。
33.由ftl 104编程的处理可以由专用硬件(诸如,nand控制器151或控制器102内的处理器125)执行。在一个示例中,ftl 104可以被配置为与主机计算设备150通过主机接口106对接以处理数据通信或信号传输。在另一个示例中,除了去往或来自主机计算设备150的数据通信或信号传输,ftl 104可以被配置为与如图2所示其他数据存储驱动器或者计算系统100中的其他外部设备(未示出)对接以用于横向数据通信或信号传输。ftl 104可以是被配置为由处理器125执行的用于nand闪速存储器管理的内部的模块。
34.在一个示例中,ftl 104可以包括一种算法,该算法将来自主机计算设备150的写入和读取命令转换为可由nand闪速存储器130操作的写入和读取命令。nand控制器155被配置为在处理器125的控制下控制nand闪速存储器130。例如,ftl 104可以格式化nand闪速存储器130以确保nand闪速存储器130正常运行,例如映射出不好的闪速存储器单元、分配备用存储器单元以替换未来的故障单元等。备用单元的某些部分可用于保存固件以操作nand控制器155并实现其他特征。在操作中,当主机计算设备150需要从nand闪速存储器130读取数据或将数据写入nand闪速存储器130时,主机计算设备150将与ftl 104通信。如果主机计算设备150提供数据被读取/写入的逻辑地址,则ftl 104可以将从主机计算设备150接收的逻辑地址转换为nand闪速存储器130中的物理地址。ftl 104还可以执行各种存储器管理功能,诸如但不限于磨损均衡和垃圾收集,将在下面更详细地描述它们。
35.在一些示例中,除了在主机计算设备150和数据存储驱动器101之间转换写入和读取命令之外,ftl 104中配置的算法还可以使能数据存储驱动器和/或在计算系统100中实现的其他外部设备之间的通信和数据传输。
36.缓冲器管理器154也可以被配置在处理器125中。缓冲器管理器154可以包括被配置为管理写缓冲器的算法或程序,以用于临时将写入数据存储在dram 131中,该写入数据可以稍后被写入到nand闪速存储器130。缓冲器管理器154可以缓冲从主机计算设备150读
取或写入的数据,该数据被配置为写入nand闪速存储器130以用于数据业务管理。缓冲器管理器154可以将来自主机计算设备150的数据写入nand闪速存储器130并映射存储器地址,然后使用逻辑块寻址(lba)将数据写入nand闪速存储器130。缓冲器管理器154可以在诸如像dram 131的易失性存储器之类的高速缓存中分配空间,使得正在处理的读取命令在返回到主机计算设备150之前具有临时目的地。缓冲器管理器154还可以允许写入命令暂时存储在缓冲器管理器154中的高速缓存中,直到来自主机计算设备150的数据可以发送到nand闪速存储器130,反之亦然。
37.在一个示例中,缓冲器管理器154还被配置为通过处理器125的执行与其他数据存储驱动器101或在计算系统100中实现的外部设备通信。因此,来自dram 131的内容可以被传送到计算系统100中的其他dram或存储器,以提高计算系统100中存储容量的利用率,而具有来自主机计算设备150的最少参与。
38.dram控制器156被配置为在处理器125的控制下控制dram存储器131。缓冲器管理器154和闪存转换层104中的程序和算法可以由处理器125执行和实施以控制数据存储驱动器101中的读取和写入命令,以用于计算系统100中的数据通信或信号传输。
39.图2描绘了具有在其中实现多个数据存储驱动器101、202a、202b、202c的计算系统200的示例。与数据存储驱动器101类似配置或相同的数据存储驱动器202a、202b、202c也可以是固态驱动器(ssd)。多个数据存储驱动器101、202a、202b、202c可以在主机计算设备150不参与或较少参与的情况下进行直接电通信。如上所述,多个数据存储驱动器101、202a、202b、202c中的每个中的闪存转换层(ftl)104可以被配置为不仅与主机计算设备150电通信,而且在没有来自主机计算设备150的干预或参与的情况下在数据存储驱动器101、202a、202b、202c之间进行直接电通信。例如,ftl 104可以具有被配置为允许在数据存储驱动器101、202a、202b、202c之间直接传输请求和命令的算法。数据存储驱动器101、202a、202b、202c的每个中的外围接口102可以将来自ftl 104或缓冲器管理器154的信号或读取或写入命令传送到每个数据存储驱动器101、202a、202b、202c中的对应ftl或对应缓冲器管理器。在数据存储驱动器101、202a、202b、202c之间连接和编程的互连链路协议可以实现数据存储驱动器101、202a、202b、202c之间的数据、信号或命令传输。在一些示例中,互连链路协议可操作以支持多个协议以及经由多个互连协议的数据和信号的通信,该多个互连协议包括计算快速链路(cxl)协议、加速器的高速缓存相干互连(ccix)协议、以太网协议等。互连链路协议可以与外围接口102对接以用于数据传输或连接。注意,互连协议以允许数据存储驱动器101、202a、202b、202c之间的线性或横向通信的方式进行配置,而无需来自主机计算设备150的参与或中继,从而卸载来自主机计算设备150的一些计算负载。互连链路协议可以支持各种互连协议,包括非相干互连协议、相干互连协议、存储器互连协议等。此外,数据存储驱动器101、202a、202b、202c中的每个也可以经由单个或多个互连180、209(诸如,连接总线、互连迹线、引脚等)物理连接,以促进它们之间的数据传输和/或信号通信。在一些示例中,物理连接209可以是交换结构。
40.在其中在数据存储驱动器101、202a、202b、202c中不存在外围接口102的示例中,数据存储驱动器101、202a、202b、202c之间的数据通信或信号传输可以利用配置在计算系统200中的互连链路180,其与主机接口106对接。因此,垂直通信(诸如主机到设备(h2d)通信)连同水平通信(诸如设备到设备(d2d)通信或被称为横向或线性通信)可由互连链路协
议180集成和启用。例如,数据通信和/或信号传输可利用在互连链路协议180中配置的协议以促进在数据存储驱动器101、202a、202b、202c中的横向或水平通信。如上所述,互连链路协议180可操作以支持多个协议以及经由多个互连协议(包括计算快速链路(cxl)协议、加速器的高速缓存相干互连(ccix)协议、以太网协议等)的数据和信号的通信。这些互连协议可以被编程或配置为允许在数据存储驱动器101、202a、202b、202c之间的水平、横向或线性通信,例如d2d通信。
41.在每个数据存储驱动器101、202a、202b、202c中编程的ftl 104或缓冲器管理器154可以执行与在计算系统200中的其他数据存储驱动器101、202a、202b、202c中的其他ftl 104或缓冲器管理器154配合的处理。因此,nand闪速存储器130和dram 131的使用、消耗和容量可由处理器125从在计算系统200中实现和可用的数据存储驱动器101、202a、202b、202c中的任一个可访问和可读取/可写入。因此,当数据写入命令被发起时,来自数据存储驱动器101、202a、202b、202c的ftl 104或缓冲器管理器154可以协同地配合以为跨在计算系统200中实现的数据存储驱动器101、202a、202b、202c中的可用nand闪速存储器130和/或dram 131的数据写入请求有效地定位存储空间。ftl 104或缓冲器管理器154的写入命令处理可以跨数据存储驱动器101、202a、202b、202c中的可用处理器125进行分片或划分,以便使能跨数据存储驱动器101、202a、202b、202c的处理器125的并行处理。因此,来自ftl 104或缓冲器管理器154的工作负载可以被划分并跨d2d网络传送到可用处理器125,使得来自数据存储驱动器101、202a、202b、202c的每个的处理器125可以共享和处理工作负载的一部分。因此,跨数据存储驱动器101、202a、202b、202c分片或划分给不同处理器的工作负载可以同时处理指配给ftl 104或缓冲器管理器154的命令,而无需来自主机计算设备150的参与。因此,通过这样做,由数据存储驱动器101、202a、202b、202c每个中的每个ftl 104或缓冲器管理器154执行的处理可能不需要推迟回主机计算设备150以进一步分派,从而减少来自主机计算设备150的计算负载和存储器带宽负载。此外,存储装置的容量可以通过下述方式来增加:简单地增加在计算系统200中实现的附加数据存储驱动器101、202a、202b、202c并增加跨数据存储驱动器101、202a、202b、202c的存储应用的可伸缩性,而无需更换具有更高性能要求的主机计算设备150。
42.图3描绘了说明根据本公开的方面的ssd 101、202a

c中的ftl104、350a

c之间的通信的框图。注意,其他组件(诸如处理器、dram或缓冲器管理器等)在图3中被去除,以便于图示和说明。如上所述,每个数据存储驱动器101、202a

c中的ftl 104、350a

c被配置为在执行由处理器执行的处理时彼此进行电通信。注意,也可以类似地配置每个数据存储驱动器101、202a

c中的缓冲器管理器。ftl 104、350a

c可以包括逻辑到物理映射块302、352a

c、垃圾收集块304、354a

354c和磨损均衡块306、356a

c等。逻辑到物理映射块302、352a

c提供映射算法,该算法可以管理诸如nand闪速存储器130、340a

c的物理存储器内的数据的逻辑到物理映射。ftl 104、350a

c可以负责将由用户提供的逻辑块地址(诸如从i/o设备144通过主机计算设备150传送到ssd 101、202a

c中的任何一个的写入信号)转换为nand闪速存储器130、340a

c中的物理块地址。
43.垃圾收集(gc)块304、354a

c还提供gc算法,该算法被配置为在nand闪速存储器130、340a

c中来回移动数据,以便确保每个物理存储器块的编程/擦除(p/e)周期可以是统一的。gc块304、354a

c可以访问在每个数据存储驱动器中配置的分配表。分配表可以至少
包括全局驱动器磨损水平和/或全局驱动器属性。gc块304、354a

c对全局驱动器磨损水平和/或全局驱动器属性的访问可以确保p/e周期跨在数据存储驱动器的每个中的所有存储器块和跨所有数据存储驱动器是一致的。ftl 104、350a

c中的gc算法还可负责通过下述方式回收包含无效数据的物理存储块:将它们的有效数据复制到新块并在gc块304、354a

c中擦除它们。ftl 104、350a

c中的gc算法也可能在块已满后仅将有效数据页移动到数据存储驱动器中的新块或另一个数据存储驱动器,因此可以擦除和重用已满的块。
44.此外,随着时间的推移,nand闪速存储器130、340a

c可能会磨损。因此,磨损均衡块306、356a

c可以提供磨损均衡(wl)算法,其通过将数据写入或复制到物理存储器中的适当位置来确保物理存储器以一致的方式磨损。wl算法可以均匀分布写入以避免磨损特定的存储器块,否则这些存储器块将被重复写入。
45.通过在ftl 104、350a

c中配置算法以允许ssd 101、202a

c之间的直接通信,在nand闪速存储器130、340a

c中执行的gc、逻辑到物理映射以及磨损均衡的功能可以被共同和协同地操作。例如,驱动器101、202a

c的协同操作能够以相对一致的方式平衡跨整个驱动器101、202a

c组的磨损以避免一个特定驱动器成为磨损热点的可能性。在驱动器继续提供与主机计算设备150被配置为操作的相同的总容量和相同的逻辑块地址空间的静态分配的同时,也可以保持并实现该益处。
46.因此,位于不同ssd 101、202a

c处的nand闪速存储器130、340a

c可以由ssd 101、202a

c中的ftl 104、350a

c中的任何一个管理。例如,由gc块304、354a

c、逻辑到物理映射块302、352a

c和磨损均衡块306、356a

c执行的处理和/或功能可以在ssd 101、202a

c之间的存储装置级别处配合,而主机计算设备较少参与或不参与。此外,可以通过ftl 104、350a

c以共同方式检测ssd 101、202a

c中的nand闪速存储器130、340a

c之间的磨损程度,因此跨nand闪速存储器130、340a

c的数据可以被重新映射以避免某些区域或某些特定的nand闪速存储器130、340a

c比其他区域磨损得更快。
47.在一个示例中,可以使用多种不同类型的存储器设备来实现物理存储器。在此处描述的一个示例中,可以使用诸如nand闪速存储器设备130的闪速存储器设备或其他类型的非易失性存储器设备来实现物理存储器。在某些实施方式中,诸如随机存取存储器设备的易失性存储器设备可用于物理存储器。注意,其他类型的物理存储器也是可能的,并且可以使用其他类型的存储器设备来实现这里描述的内容。
48.此外,处理器125可以生成定义存储在nand闪速存储器130、340a

c中的数据的逻辑块的命名空间。命名空间的生成还消耗nand闪速存储器130、340a

c的资源。因此,单个ssd可能仅具有一定的有限容量以允许生成一定数量的命名空间。在一个示例中,在单个ssd中可以支持8个命名空间。利用允许在ftl 104、350a

c之间直接通信的设备到设备通信,可以使用编程的算法组合、共享或整合在每个ssd中指配或生成的命名空间,从而呈现在计算系统中可用于在ssd之间使用的额外资源的8xn命名空间,例如,n是在计算系统中实现的ssd的数量。
49.图4是图示根据本公开的方面的客户端计算设备、主机计算设备和固态驱动器(ssd)之间的通信的示例的框图。一个或多个客户端计算设备360a、360b、360c、360d(类似于上述任何合适类型的i/o设备144)可用于向主机计算设备150提供命令。命令可通过各种合适的网络361被传送到主机计算设备150。处理器(诸如cpu 365)可以在主机计算设备150
中实现,主机计算设备150被配置为服务于读取和写入从客户端计算设备360a

360d发出的命令。cpu 365可以通过互连链路协议180或其他合适的通信协议将逻辑地址空间分配给每个驱动器101、202a、202b、202c。因此,从客户端计算设备360a

360d传送的每个读取或写入命令可以到达指定的驱动器以服务于逻辑地址。cpu 365通过互连链路协议180与驱动器101、202a、202b、202c进行通信以用于读取和写入命令。
50.通过利用驱动器到驱动器通信,互连链路协议180和/或横向互连链路协议可以允许驱动器101、202a、202b、202c之间的通信。驱动器101、202a、202b、202c彼此通信,使得来自cpu 365的命令、地址映射以及其自身驱动器的磨损统计可以在它们之间传送。驱动器101、202a、202b、202c能够通过互连链路协议180和/或横向互连链路协议相互传输数据以实现驱动器到驱动器(d2d)通信。驱动器101、202a、202b、202c还能够指示其他驱动器101、202a、202b、202c在所提供的地址映射处将数据传输到cpu 365。
51.在一个示例中,每个驱动器101、202a、202b、202c被配置为维护允许将分配的逻辑块映射到远程驱动器或系统中的其他驱动器的每个ftl。ftl还可以维护驱动器101、202a、202b、202c持有的逻辑块的物理地址。每个驱动器101、202a、202b、202c可以包括分配表,诸如至少全局驱动器属性表和/或全局驱动器磨损统计表,其显示存储系统中每个驱动器的属性或磨损级别。由于每个驱动器101、202a、202b、202c可能具有不同的属性,诸如不同的存储容量和/或磨损能力,这样的全局驱动器属性表和/或磨损统计表可以向在系统中分配的每个驱动器101、202a、202b、202c提供相关的驱动器属性和信息。例如,与三级单元(tlc)驱动器相比,四级单元(qlc)驱动器可能具有更高的容量但磨损能力更低。
52.因此,当cpu 365向驱动器101、202a、202b、202c之一(诸如驱动器101)发出写入命令时,被选择的驱动器101可以检查表中的全局磨损统计和全局驱动器属性并确定是否应将写入命令传输到更合适的远程驱动器或系统中其他合适的驱动器。在被选择的驱动器确定接受写入命令的情况下,驱动器中的先前写入的块可以被传输或传递到更适合保存该先前写入的块的另一个远程或本地驱动器。
53.相比之下,当cpu 365向驱动器发出读取命令时,驱动器可以检查其ftl以定位数据所驻留在的驱动器。一旦定位了数据,则可以将读取命令传送到数据所驻留在的驱动器。在某些示例中,远程驱动器将直接将数据传输到cpu 365。
54.此外,驱动器到驱动器通信还可以利用具有异构驱动器和自动分层的协同存储系统,以便提供更好的容量和/或性能操作点以及降低的操作成本。例如,协同驱动器可以基于接收到的数据特征的类型和协同存储系统中可用的驱动器来执行自动分层。像这样,保存到驱动器的每种类型的数据可能具有匹配的属性。例如,自动分层可以包括一组快速驱动器,其可以是快速层,也称为高层。相比之下,一组慢速驱动器可能是慢速层,也称为低层。因此,来自自动分层功能的不同层可以允许存储在不同驱动器中的数据的不同属性以期望的价格范围实现期望的操作性能。存储在快速层中的数据通常称为热数据,而存储在慢速层中的数据通常称为冷数据。因此,通过利用协同存储操作,冷数据可以被配置为存储在四级单元(qlc)驱动器(诸如较低层驱动器)中,而热数据可以被配置为存储在相对高耐久性的多级单元(mlc)驱动器(诸如较高层驱动器)中。经常被读取的数据可以被配置为存储在低延迟驱动器中。因此,通过利用协同存储系统,可以获得良好的数据匹配和分配管理,以实现高的操作性能,以及保持较低的操作成本。
55.图5描绘了图示根据本公开的方面的利用设备到设备通信在数据存储驱动器之间的示例数据传输的数据处理序列图。在图5中所示的示例中,输入的写入命令可以由用户利用i/o设备144发起。然后可以将写入命令传送到主机计算设备150进行处理,如信号流路径402所示。注意,可以在计算系统中的组件之间传送的命令可以包括数据写入命令、数据读取命令、数据写入/编程命令和数据擦除命令以及其他类型的数据命令/请求,诸如例如移动命令和/或复制命令。
56.计算设备150中的处理器可以确定将写入命令传送到计算系统中可用的数据存储驱动器中哪个数据存储驱动器以用于存储。在图5所示的示例中,计算设备150中的处理器还可以向设备2传送写入命令,如信号流路径404中所示,旨在将写入命令存储在设备2存储器中。然而,设备2存储器可能出于任何原因,诸如存储器单元故障等,其可能未准备好接收写入命令。因此,代替将写入命令推迟回主机计算设备150以用于进一步分派或指令(如信号流路径411中所示),写入命令可以被传送到其他数据存储驱动器,诸如设备3(如信号流路径406中所示)。由每个设备中的ftl提供的设备到设备通信可以以协同方式共同通信以确定用于处理写入命令的合适的数据存储驱动器。因此,设备到设备通信使能驱动器1、驱动器2和驱动器3之间的直接通信。因此,可以将写入命令传送到合适的驱动器,诸如驱动器3,以将写入命令存储在设备3存储器中,如信号流路径408所示。
57.图6是根据本公开的方面的在利用d2d通信的计算系统中处理固态驱动器之间的写入命令的另一示例过程的数据处理序列图。例如,当写入命令(诸如从第一驱动器中的缺陷块到第二驱动器中的良好块的重写数据命令)从驱动器2中的ftl发起时,代替将写入命令推迟到主机计算设备150中,写入命令可以通过它们之间的直接通信直接被传送到驱动器3中的ftl以确定用于处理写入命令的合适驱动器(如信号流路径506所示)。驱动器3中的ftl然后可以处理驱动器3中的写入命令,诸如将数据重写到驱动器3存储器中的良好块中,如信号流路径508所示,而不将写入命令推迟到主机计算设备以做决定,如信号流路径510所示。
58.图7是根据本公开的方面的在利用设备到设备通信的计算系统中处理固态驱动器之间的写入命令的示例过程600的流程图。可以使用上述系统、其修改或具有不同配置的多种系统中的任一种来执行此类方法。应当理解,以下方法中涉及的操作不需要按照所描述的精确顺序进行。相反,可以以不同的顺序或同时处置各种操作,并且可以添加或省略操作。
59.过程600开始于块602:在计算系统中实现的数据存储驱动器的第一驱动器中接收写入命令。当在第一驱动器中接收到写入命令时,第一驱动器中的ftl可以处理写入命令并确定用于存储来自写入命令的数据的存储器块。
60.在一个示例中,在块604处,可以确定来自写入命令的数据被写入到第一驱动器中的第一驱动器存储器中。
61.然而,在来自写入命令的数据未能写入第一驱动器存储器或被确定为移动到其他存储器块以进行存储的示例中,写入命令然后可以被进一步重定向回第一驱动器,如箭头627所示,并且第一驱动器可以将写入命令重新传送到第二驱动器,如块614所示。第二驱动器中的ftl然后可以处理写入命令并确定用于数据存储的第二驱动器存储器中的存储块,如块616所示。
62.然而,在来自写入命令的数据未能写入第二驱动器存储器或被确定为移动到其他存储器块以进行存储的示例中,写入命令然后可以被进一步重定向回第一驱动器,如箭头620所示,然后第一驱动器可以与第三驱动器通信,如箭头624所示,以请求数据存储,如块632所示。可替选地,写入命令然后可以被进一步重定向回第二驱动器,如箭头628所示,并且第二驱动器可以将写入命令重新传送到第三驱动器,如箭头626所示,以用于数据存储,如块632所示。可替选地,在每个驱动器中配置的第一、第二和第三ftl驱动器之间的通信可以同时通信以确定可用于处理和存储写入命令的合适的存储器块。
63.本公开提供了一种互连协议,其使能在计算系统中实现的数据存储驱动器之间的直接通信和/或数据传输,而具有来自计算系统中的主机计算设备的最少参与。每个数据存储驱动器中的闪存转换层(ftl)可以以协同方式操作,其允许在计算系统中的存储装置中跨数据存储驱动器进行直接通信和/或数据传输,诸如d2d通信或存储器到存储器通信。因此,d2d通信使得能够在驱动器级构建更大的存储装置,而无需提高在计算系统中实现的主机计算设备的性能。因此,在计算系统中扩展存储装置的灵活性变得简单且不那么复杂。
64.尽管可以将过程描述为包括多个操作,但这并不意味着所有或任何操作是优选的、必不可少的或必需的。各种其他实施方式可以包括省略一些或全部所描述的操作的其他过程。尽管可以单独或不参考其他产品或过程来描述过程,但是在一些示例中,过程可以与其他产品或过程相互作用。可以提供这种相互作用以增强过程的灵活性或合意性。
65.本公开的方面可以在单个设备上执行或者可以在多个设备上执行。例如,包括在此描述的一个或多个组件的程序模块可以位于不同的设备中并且可以各自执行本公开的一个或多个方面。在本公开中使用的术语“一”或“一个”可以包括一个或多个项目,除非另有特别说明。此外,除非另有特别说明,否则短语“基于”旨在表示“至少部分基于”。
66.除非另有说明,否则上述替选示例不是相互排斥的,而是可以以各种组合实现以获得独特的优势。由于可以在不脱离由权利要求限定的主题的情况下利用以上讨论的特征的这些和其他变化和组合,因此示例的前述描述应当通过说明的方式而不是通过由权利要求限定的主题的限制来给出。此外,此处描述的示例的提供以及表述为“诸如”和“包括”等的条款不应被解释为将权利要求的主题限制于具体示例;相反,这些示例旨在只是说明许多可能的示例中的一个。此外,不同附图中的相同附图标号可以标识相同或相似的元件。
67.在本技术中描述了并且仅出于说明的目的给出许多示例。所描述的示例在任何意义上都不是,也不旨在是限制性的。本领域的普通技术人员将认识到,所公开的主题可以通过各种修改和变更来实践,例如结构、逻辑、软件和电气修改。应当理解,除非另有明确说明,否则所描述的特征不限于在一个或多个特定示例或附图中的使用,参考这些示例或附图中描述了所描述的特征。
68.在特定应用及其要求的上下文中提供上述讨论。对所公开的实施方式的各种修改对于本领域技术人员来说将是显而易见的,并且在不脱离所公开的技术的精神和范围的情况下,这里定义的一般原理可以应用于其他实施方式和应用。因此,所公开的技术并不旨在限于所示的实施方式,而是符合与本文所公开的原理和特征一致的最宽范围。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜