存储阵列和存储系统及数据访问方法转让专利

申请号 : CN201010615960.0

文献号 : CN102063274B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨继涛周伟台

申请人 : 华为技术有限公司

摘要 :

本发明实施例公开了存储阵列和存储系统及数据访问方法,其中,一种存储设备数据访问方法,包括:将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置,该用户接口芯片和该非易失性存储装置连接到PCIE链路,非易失性存储装置包括内存和非易失性存储介质;将该数据写入该非易失性存储装置的内存中;将写入该非易失性存储装置的内存中的数据,写入到该非易失性存储介质。本发明实施例提供的技术方案,有利于减少数据访问对PCIE链路的占用,提升系统性能。

权利要求 :

1.一种存储设备数据访问方法,其特征在于,包括:

将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置,所述用户接口芯片和所述非易失性存储装置连接到PCIE链路,其中,所述非易失性存储装置为固态硬盘,所述非易失性存储装置包括内存和非易失性存储介质;

将所述数据写入所述非易失性存储装置的内存中;

将写入所述非易失性存储装置的内存中的数据,写入到所述非易失性存储介质;

其中,所述将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置,包括:中央处理器CPU将从用户接口芯片输入的数据,通过PCIE链路写入到非易失性存储装置的PCIE总线存储Memory窗口地址;其中,所述非易失性存储装置为分配了PCIE总线Memory窗口地址空间的存储设备。

2.根据权利要求1所述的方法,其特征在于,

所述方法还包括:

CPU通过控制指令将所述PCIE总线Memory窗口地址与所述非易失性存储装置的逻辑存储空间地址的对应关系,通知所述非易失性存储装置;

所述非易失性存储装置还包括控制器,所述将所述数据写入所述非易失性存储装置的内存中;将写入所述非易失性存储装置的内存中的数据,写入到所述非易失性存储介质,包括:所述非易失性存储装置的控制器将所述数据写入所述非易失性存储装置的内存中;并根据所述PCIE总线Memory窗口地址与所述非易失性存储装置的逻辑存储空间地址的对应关系,以及所述非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,将写入所述非易失性存储装置的内存中的数据,对应写入到所述非易失性存储介质。

3.根据权利要求1至2任一项所述的方法,其特征在于,所述方法还包括:将所述非易失性存储介质中存储的数据读取到所述非易失性存储装置的内存中;

将读取到所述非易失性存储装置的内存中的数据通过PCIE链路传递到用户接口芯片;或者,将读取到所述非易失性存储装置的内存中的数据通过PCIE链路传递给CPU处理。

4.根据权利要求1至2任一项所述的方法,其特征在于,将所述数据写入所述非易失性存储装置的内存中,包括:判断所述非易失性存储装置的内存中是否已缓存有与用户接口芯片输入的数据相同的第二数据,若没有;则将所述用户接口芯片输入的数据写入所述非易失性存储装置的内存;若有,则将所述第二数据作为写入到非易失性存储装置的内存中的所述用户接口芯片输入的数据。

5.一种存储阵列,其特征在于,包括:

中央处理器CPU、用户接口芯片、快速外设组件互联PCIE交换芯片以及一个或多个非易失性存储装置;

其中,PCIE交换芯片将CPU、用户接口芯片和非易失性存储装置连接到PCIE链路;其中,所述非易失性存储装置为固态硬盘,所述非易失性存储装置包括内存和非易失性存储介质;

所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路传递到所述非易失性存储装置;

所述非易失性存储装置,用于将所述数据写入所述非易失性存储装置的内存中;将写入所述非易失性存储装置的内存中的数据,写入所述非易失性存储介质;

其中,所述非易失性存储装置为分配了PCIE总线Memory窗口地址空间的存储设备;所述CPU具体用于,控制将从用户接口芯片输入的数据通过PCIE链路写入到所述非易失性存储装置的PCIE总线Memory窗口地址。

6.根据权利要求5所述的存储阵列,其特征在于,

所述CPU还用于,通过控制信令将所述PCIE总线Memory窗口地址与非易失性存储装置的逻辑存储空间地址的对应关系,通知所述非易失性存储装置;

所述非易失性存储装置还包括控制器,所述控制器,用于将所述数据写入所述非易失性存储装置的内存中;并根据所述PCIE总线Memory窗口地址与非易失性存储装置的逻辑存储空间地址的对应关系,以及所述非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,将写入所述非易失性存储装置的内存中的数据,对应写入到所述非易失性存储介质。

7.根据权利要求5至6任一项所述的存储阵列,其特征在于,

所述非易失性存储装置还用于,将所述非易失性存储介质中存储的数据读取到所述非易失性存储装置的内存中;将读取到所述非易失性存储装置的内存中的数据通过PCIE链路传递到用户接口芯片;或者,将读取到所述非易失性存储装置的内存中的数据通过PCIE链路传递给CPU处理。

8.一种存储系统,其特征在于,包括:

如权利要求5至7任一项所述的存储阵列,以及与所述存储阵列的用户接口芯片连接的用户端设备;其中,所述用户端设备,用于通过所述用户接口芯片访问所述存储阵列。

说明书 :

存储阵列和存储系统及数据访问方法

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及存储阵列和存储系统及数据访问方法。

背景技术

[0002] 传统机械硬盘有机械部件,输入输出(IO,Input/Output)性能较低。现有的能提供存储功能的系统级设备主要是采用机械硬盘作为存储介质,这类产品(例如个人电脑、服务器、存储阵列等)的设计方法是建立在传统硬盘的低IO性能基础之上的。
[0003] 近年,固态硬盘(SSD,solid state disk)逐步兴起,固态硬盘的最主要的特点是几乎没有机械部件,IO性能非常高。利用固态硬盘设计的系统级产品的性能可以得到进一步的提升。
[0004] 参见图1,现有的存储阵列(例如网络附属存储设备)的典型架构是X86架构,该系统通过用户接口芯片和用户端(例如服务器等)相连。快速外设组件互联(PCIE,Peripheral Component Interconnect Express)总线交换芯片将中央处理器(CPU,central processing unit)和用户接口芯片以及存储接口芯片等外设组件互联。
[0005] 现有在用户接口芯片输入的数据的写入过程中,CPU控制先将数据写入到与CPU/北桥连接的内存中,在该内存中完成缓存(cache)处理,并将该数据镜像到另一与CPU/北桥连接的内存;而后在CPU的控制下将数据从该内存写入到非易失性存储介质。现有的数据写入方式占用较多PCIE链路,影响到系统性能的进一步提升。

发明内容

[0006] 本发明实施例提供存储阵列和存储系统及数据访问方法,以减少数据访问对PCIE链路的占用,提升系统性能。
[0007] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0008] 一种存储设备数据访问方法,包括:
[0009] 将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置,所述用户接口芯片和所述非易失性存储装置连接到PCIE链路,所述非易失性存储装置包括内存和非易失性存储介质;
[0010] 将所述数据写入所述非易失性存储装置的内存中;
[0011] 将写入所述非易失性存储装置的内存中的数据,写入到所述非易失性存储介质。
[0012] 一种存储阵列,包括:
[0013] 中央处理器CPU、用户接口芯片、快速外设组件互联PCIE交换芯片以及一个或多个非易失性存储装置;
[0014] 其中,PCIE交换芯片将CPU、用户接口芯片和非易失性存储装置连接到PCIE链路;所述非易失性存储装置包括内存和非易失性存储介质;
[0015] 所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路传递到所述非易失性存储装置;
[0016] 所述非易失性存储装置,用于将所述数据写入所述非易失性存储装置的内存中;将写入所述非易失性存储装置的内存中的数据,写入所述非易失性存储介质。
[0017] 一种存储系统,包括:
[0018] 如上述实施例所述的存储阵列,以及与所述存储阵列的用户接口芯片连接的用户端设备;其中,所述用户端设备,用于通过所述用户接口芯片访问所述存储阵列。
[0019] 由上可见,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到该非易失性存储装置中,再将其存储在该非易失性存储装置的非易失性存储介质,即实现用户接口芯片到非易失性存储装置的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能。

附图说明

[0020] 为了更清楚地说明本发明实施例和现有技术中的技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0021] 图1是现有技术的一种存储阵列架构示意图;
[0022] 图2是本发明实施例提供的一种存储阵列架构示意图;
[0023] 图3是本发明实施例提供的一种数据访问方法流程示意图;
[0024] 图4是本发明实施例二提供的一种数据访问方法流程示意图;
[0025] 图5是本发明实施例二提供的一种数据写入流程示意图;
[0026] 图6是本发明实施例提供的一种存储阵列示意图;
[0027] 图7是本发明实施例提供的一种存储系统示意图。

具体实施方式

[0028] 本发明实施例提供存储阵列和存储系统及数据访问方法。
[0029] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0030] 为便于理解实施,本发明实施例中首先提供一种存储阵列的架构,参见图2,图2为本发明实施例举例提供的一种存储阵列的架构示意图。存储阵列可包括至少一个CPU和多个非易失性存储装置(例如SSD、机械硬盘或其它非易失性存储装置,图2中以SSD为例),以及至少一个PCIE交换芯片。其中,PCIE交换芯片配置有多个PCIE接口,PCIE交换芯片可将CPU、以及用户接口芯片和非易失性存储装置等外设组件连接到PCIE链路。其中,非易失性存储装置可包括内存(该内存可以是物理内存,也可以是虚拟内存)和非易失性存储介质,非易失性存储装置还可包括控制器,该控制器可控制将数据从非易失性存储装置的内存写入非易失性存储介质,以及将非易失性存储介质存储的数据读取到该非易失性存储装置的内存等。
[0031] 其中,本发明实施例的数据访问方法可基于图2所示架构的存储阵列具体实施,当然亦可在该架构的灵活变形架构上具体实施。
[0032] 实施例一
[0033] 本发明数据访问方法的一个实施例,可以包括:将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置,该用户接口芯片和该非易失性存储装置通过PCIE链路连接,该非易失性存储装置包括内存和非易失性存储介质;将该数据写入该非易失性存储装置的内存中;将写入该非易失性存储装置的内存中的数据写入到该非易失性存储装置的非易失性存储介质。
[0034] 参见图3,具体步骤可以包括:
[0035] 310、将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到非易失性存储装置;
[0036] 在一种应用场景下,当用户端设备的某数据(为便于引述,称之为第一数据)需要通过存储设备(例如存储阵列或一般的存储设备)的用户接口芯片写入该存储设备时,可以由CPU控制将从用户接口芯片输入的第一数据通过PCIE链路传递到该存储设备的某一非易失性存储装置(为便于引述,可称之为第一非易失性存储装置)。
[0037] 其中,存储设备配置有包括一个或多个非易失性存储装置(例如SSD、机械硬盘或其它存储介质类型的非易失性存储装置);非易失性存储装置包括内存和非易失性存储介质等;用户接口芯片提供用户接口,主要负责用户端设备和存储设备的数据交互。
[0038] 其中,非易失性存储装置的内存可为:双倍速率(DDR,Double Data Rate)同步动态随机存储器、DDRII同步动态随机存储器、DDRIII同步动态随机存储器等高性能的易失性存储介质,或者也可以为虚拟内存。非易失性存储介质可包括:闪速存储器(flash)、铁电存储介质或其它存储介质。
[0039] 在实际应用中,若用户接口芯片可以直接访问块(Block)设备,则CPU可控制将从用户接口芯片输入的第一数据通过PCIE链路写入到第一非易失性存储装置的某逻辑存储地址(LBA,logic Block address)。若用户接口芯片并不能直接访问Block设备,但可以访问存储(Memory)设备,则CPU在为接入的第一非易失性存储装置初始化时,可为第一非易失性存储装置分配一段Memory窗口地址空间(其中,该Memory窗口地址空间的大小例如可以等于该非易失性存储装置的内存(如4GB)的大小,或者也可以等于该非易失性存储装置的逻辑存储空间(例如400GB)的大小,当然也可以是其它的取值),当用户接口芯片输入第一数据时,CPU可控制将从用户接口芯片输入的第一数据通过PCIE链路写入到第一非易失性存储装置的某PCIE总线Memory窗口地址。
[0040] 320、将上述数据写入上述非易失性存储装置的内存中;
[0041] 其中,非易失性存储装置集成内存,为cache由集中式管理变为分布式管理创造了条件。
[0042] 330、将写入上述非易失性存储装置的内存中的数据,写入到上述非易失性存储装置的非易失性存储介质。
[0043] 在一种应用场景下,非易失性存储装置还可以包括控制器,该控制器可对该非易失性存储装置的内存进行缓存(cache)管理,包括:输入输出聚合(IO聚合)、数据命中、数据淘汰等等,其中,具体的cache管理策略可根据具体情况具体设定,此处不做限定。若第一非易失性存储装置为分配了PCIE总线Memory窗口地址空间的存储装置,则CPU可通过控制信令,将上述PCIE总线Memory窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系,通知第一非易失性存储装置(当然,若PCIE总线Memory窗口地址与非易失性存储装置的逻辑存储空间地址的映射对应关系,是CPU和第一非易失性存储装置事先约定的一种默认对应关系,则CPU可不将上述PCIE总线Memory窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系通知给第一非易失性存储装置)。第一非易失性存储装置的控制器可将第一数据写入该非易失性存储装置的内存中;该控制器可基于预设的缓存管理策略(该缓存管理策略可以包括:当非易失性存储装置的内存的剩余空间低于某阈值时,将写入内存中的数据写入非易失性存储介质;或者将写入到内存中的数据立即写入非易失性存储介质,当然也可以包括其它缓存管理策略),并根据上述PCIE总线Memory窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系,以及第一非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,控制将写入第一非易失性存储装置的内存中的第一数据,写入到第一非易失性存储装置的非易失性存储介质中。此外,若CPU对第一非易失性存储装置的内存空间进行了统一的编址,则也可以由CPU控制将第一数据写入该非易失性存储装置的内存中,并基于预设的缓存管理策略,将写入该非易失性存储装置的内存中的第一数据写入该非易失性存储装置的非易失性存储介质。
[0044] 在实际应用中,第一非易失性存储装置的控制器将第一数据写入该第一非易失性存储装置的内存时,该控制器可先判断该非易失性存储装置的内存中是否已缓存有与第一数据相同的数据(为便于描述,可称之为第二数据),若没有;则将第一数据写入该非易失性存储装置的内存;若有,则将该第二数据作为写入到非易失性存储装置的内存中的第一数据(即此时控制器不再控制将第一数据写入到非易失性存储装置的内存,而将第二数据作为是写入到非易失性存储装置的内存中的第一数据)。
[0045] 可以发现,本实施例的上述方案中,某一数据的写入过程只需要占用一次PCIE链路,这将有效的降低数据写入过程的总线资源占用。
[0046] 进一步的,若还需要从非易失性存储装置读取数据,则非易失性存储装置的控制器还可将该非易失性存储装置的非易失性存储介质中存储的数据读取到非易失性存储装置的内存中;将读取到该非易失性存储装置的内存中的数据通过PCIE链路传递到用户接口芯片;或者,可将读取到该非易失性存储装置的内存中的数据通过PCIE链路传递给CPU处理。
[0047] 可以理解的是,存储设备在数据读写过程中,存储设备的不同模块可能会对数据的封装格式进行一定的转换,例如,用户接口芯片可将来自用户端设备的数据的封装格式转换为PCIE报文,将需向用户端设备发送的数据转换为该用户端设备所对应的封装格式;非易失性存储装置则可将来自用户接口芯片或其它模块的PCIE报文的报文头去除,并缓存到内存以及写入非易失性存储介质;非易失性存储装置亦可将从其内存中读取的需向用户接口芯片或其它模块发送的数据封装为PCIE报文并发送;当然,不同的应用场景,数据对应的封装格式可能有所不同,此处不再一一赘述。
[0048] 由上可见,本实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到非易失性存储装置中,再将其存储在非易失性存储装置的非易失性存储介质,即实现用户接口芯片到SSD的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能。
[0049] 进一步的,由于为非易失性存储装置配置内存,存储设备若配置多个非易失性存储装置,则可以提供出数倍于现有技术的内存通道,提供更大的内存接口带宽,进一步提升存储系统性能。
[0050] 实施例二
[0051] 为便于更好的理解本发明实施例的技术方案,下面以在图2所示存储阵列架构下进行数据访问的具体应用场景为例,进行详细的介绍。
[0052] 其中,本实施例中主要以存储阵列包括的非易失性存储装置为固态硬盘为例进行描述,采用其它类型的非易失性存储装置的工作流程于此类似。
[0053] 参见图4,本发明数据访问方法一个实施例,可以包括:
[0054] 401、用户接口芯片通过指令向CPU请求写入来自用户端设备的某数据(为便于引述,称之为数据D1);
[0055] 402、CPU为用户接口芯片写入数据D1分配某固态硬盘(为便于引述,称之为固态硬盘SSD-1)的PCIE总线Memory窗口地址(为便于引述,称之为PCIE总线Memory窗口地址add-1);
[0056] 例如图2所示存储阵列,可包括至少一个PCIE交换芯片。PCIE交换芯片配置有多个PCIE接口,CPU和用户接口芯片、固态硬盘等各种外设组件PCIE交换芯片连接到PCIE总线链路。
[0057] 其中,本实施例中的固态硬盘可以配置有至少两个PCIE接口,以分别连接的不同PCIE交换芯片的PCIE接口,由于通过多条PCIE链路连接到PECI交换芯片,这样可以避免因单点失效而造成该固态硬盘无法工作。
[0058] 在实际应用中,CPU在为接入的固态硬盘SSD-1初始化时,CPU可以扫描该固态硬盘的配置空间,可根据扫描到的该配置空间记录的PCIE总线Memory窗口地址空间的申请量,为该固态硬盘分配对应数量的PCIE总线Memory窗口地址空间,为该固态硬盘SSD-1分配一段PCIE总线Memory窗口地址空间(该Memory窗口的大小例如可以等于该固态硬盘的内存(如4GB)的大小,或者也可以等于该固态硬盘的逻辑存储空间(例如400GB)的大小,当然也可以是其它的取值),当用户接口芯片请求写入数据D1时,CPU可为用户接口芯片写入数据D1分配对应固态硬盘SSD-1的PCIE总线Memory窗口地址add-1;
[0059] 403、用户接口芯片将数据D1通过PCIE链路写入到固态硬盘SSD-1的PCIE总线Memory窗口地址add-1。
[0060] 404、固态硬盘SSD-1的控制器将数据D1写入固态硬盘SSD-1的内存,并将写入固态硬盘SSD-1内存中的数据,写入到该固态硬盘SSD-1的非易失性存储介质;
[0061] 在实际应用中,固态硬盘SSD-1的控制器可对该固态硬盘SSD-1的内存进行cache管理,可包括:输入输出聚合(IO聚合)、数据命中、数据淘汰等,其中,具体的cache管理策略可根据具体情况具体设定,此处不做限定。
[0062] 举例来说,若固态硬盘SSD-1的内存剩余足够的空间,固态硬盘SSD-1的控制器可将数据D1写入固态硬盘SSD-1的内存,当然,如果其内存不足,则固态硬盘SSD-1的控制器可先淘汰该内存中的非必要数据(非必要数据例如可以是长时间未被访问的数据),而后再将数据D1写入固态硬盘SSD-1的内存,而这可看成是固态硬盘SSD-1进行的一种分布式的缓存管理,下放CPU的缓存管理功能,以降低CPU的工作负荷。
[0063] 在一种应用场景下,CPU可将上述PCIE总线Memory窗口地址add-1与固态硬盘SSD-1的逻辑存储空间地址的映射对应关系(其中,PCIE总线Memory窗口地址和相应固态硬盘的逻辑存储空间地址之间存在一定的映射对应关系,该映射对应关系可用窗口地址映射表来记录),通知固态硬盘SSD-1(当然,若PCIE总线Memory窗口地址与固态硬盘的逻辑存储空间地址之间的映射对应关系,是CPU和固态硬盘事先约定的一种默认对应关系,则CPU可不将PCIE总线Memory窗口地址add-1与第一固态硬盘SSD-1的逻辑存储空间地址的映射对应关系通知该固态硬盘)。固态硬盘SSD-1的控制器可将数据D1写入该固态硬盘的内存中;并根据上述PCIE总线Memory窗口地址add-1与固态硬盘SSD-1的逻辑存储空间地址的对应关系,以及固态硬盘SSD-1的逻辑存储空间地址和物理存储空间地址的映射对应关系(其中,固态硬盘的逻辑存储空间与物理存储空间的映射对应关系,记录在固态硬盘维护的逻辑地址映射表中),控制将写入固态硬盘SSD-1的内存中的数据D1,写入到固态硬盘SSD-1的非易失性存储介质中,例如可参见图5所示的数据写入示意图。
[0064] 在实际应用中,固态硬盘SSD-1的控制器可先判断固态硬盘SSD-1的内存中是否已经有与数据D1相同的数据,若没有,则可以数据D1写入固态硬盘SSD-1的内存中;若有,则可以直接将该已写入的与数据D1相同的数据作为数据D1,写入固态硬盘SSD-1的非易失性存储介质,而无需执行将数据D1写入到内存,再写入到非易失性存储介质的操作。而这也可看成是固态硬盘SSD-1进行的一种分布式的缓存管理,下放了CPU的缓存管理功能,以降低CPU的工作负荷。
[0065] 可以发现,本实施例的方案中,数据D1的写入过程只需要占用一次PCIE链路,这将有效的降低数据写入过程的总线资源占用。
[0066] 进一步的,若还需要从固态硬盘SSD-1读取数据D1,则固态硬盘SSD-1的控制器可将该固态硬盘SSD-1的非易失性存储介质中存储的数据D1读取到固态硬盘SSD-1的内存中;将读取到该固态硬盘SSD-1的内存中的数据D1通过PCIE链路传递到用户接口芯片(若用户接口芯片请求读取数据D1);或者可将读取到该固态硬盘的内存中的数据通过PCIE链路传递给CPU处理(若CPU需要读取数据D1处理)。
[0067] 由上可见,本实施例中的存储设备配置的固态硬盘包括内存和非易失性存储介质,将内存和非易失性存储介质(包括:闪速存储器、铁电存储介质或其它类型的存储介质)整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到固态硬盘中,再将其存储在固态硬盘的非易失性存储介质,即实现用户接口芯片到SSD的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据访问机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能。
[0068] 进一步的,由于固态硬盘配置内存,存储设备若配置多个固态硬盘,则可以提供出数倍于现有技术的内存通道,提供更大的内存接口带宽,进一步提升存储系统性能。
[0069] 部分或全部缓存管理功能(包括:数据读写控制、IO聚合、数据命中、数据淘汰等)由CPU集中式管理转换为各个固态硬盘的分布式管理,这样可相对降低CPU的处理负荷,进一步提升存储系统性能。并且,采用该实施例架构的存储阵列,有利于降低存储阵列的体积和功耗。
[0070] 为便于更好的实施上述实施例的技术方案,本发明实施例还提供用于实现上述技术方案的设备。
[0071] 参见图6,本发明实施例提供的一种存储阵列600,可包括:
[0072] 中央处理器610、用户接口芯片620、PCIE交换芯片630以及一个或多个非易失性存储装置640。
[0073] 其中,PCIE交换芯片630将中央处理器610、用户接口芯片620和非易失性存储装置640连接到PCIE链路;非易失性存储装置600包括内存和非易失性存储介质;
[0074] 中央处理器610,用于将从用户接口芯片620输入的数据通过PCIE链路传递到非易失性存储装置640;
[0075] 非易失性存储装置640,用于将上述数据写入非易失性存储装置640的内存中;将写入该内存中的数据,写入非易失性存储装置640的非易失性存储介质。
[0076] 在一种应用场景下,若非易失性存储装置为分配了PCIE总线Memory窗口地址空间的存储装置;中央处理器610可具体用于,控制将从用户接口芯片420输入的数据通过PCIE链路写入到非易失性存储装置640的PCIE总线Memory窗口地址。
[0077] 在一种应用场景下,中央处理器610还用于,通过控制信令将PCIE总线Memory窗口地址与非易失性存储装置的逻辑存储空间地址的对应关系,通知非易失性存储装置640;
[0078] 非易失性存储装置640还包括控制器,该控制器,用于将上述数据写入非易失性存储装置640的内存中;并根据上述PCIE总线Memory窗口地址与非易失性存储装置640的逻辑存储空间地址的对应关系,以及非易失性存储装置640的逻辑存储空间地址和物理存储空间地址的映射对应关系,将写入非易失性存储装置640的内存中的数据,对应写入到非易失性存储装置640的非易失性存储介质。此外,若中央处理器610对非易失性存储装置600的内存空间进行了统一的编址,则也可以由中央处理器610控制将第一数据写入该非易失性存储装置的内存中,并基于预设的缓存管理策略,将写入该非易失性存储装置的内存中的第一数据写入该非易失性存储装置的非易失性存储介质。
[0079] 其中,若非易失性存储装置640的内存剩余足够的空间,非易失性存储装置640的控制器可将数据写入非易失性存储装置640的内存,当然,如果其内存不足,则非易失性存储装置640的控制器可先淘汰该内存中的非必要数据,而后再将待写入的数据写入非易失性存储装置640的内存,而这可看成是非易失性存储装置640的控制器执行的一种分布式缓存管理,下放CPU的缓存管理功能,以降低CPU的工作负荷。
[0080] 在实际应用中,非易失性存储装置640的控制器也可先判断非易失性存储装置640的内存中是否已经有与待写入的数据相同的第二数据,若有,则可以直接将该已写入的与待写入的数据相同的第二数据,写入非易失性存储装置640的非易失性存储介质,而无需执行上述待写入的数据写入到内存,再将其写入到非易失性存储介质的操作。而这也可看成是非易失性存储装置640进行的一种分布式的缓存管理,下放了CPU的缓存管理功能,以降低CPU的工作负荷。
[0081] 在一种应用场景下,非易失性存储装置640还用于,将非易失性存储装置640的非易失性存储介质中存储的数据读取到固态硬盘的内存中;将读取到非易失性存储装置640的内存中的数据通过PCIE链路传递到用户接口芯片;或者,将读取到非易失性存储装置640的内存中的数据通过PCIE链路传递给中央处理器610处理。
[0082] 其中,本实施例的非易失性存储装置640,例如可为SSD、机械硬盘或其它非易失性存储装置。
[0083] 可以理解,本实施例的存储阵列600可为独立的设备,也可作为某设备的存储设备。例如,存储阵列600可用于存储系统、服务器、工作站、个人电脑等等。
[0084] 可以理解,本实施例的存储阵列600可以是如上述方法实施例中的存储阵列,其可以用于实现上述方法实施例中的全部技术方案,其各个功能模块的功能可以根据上述方法实施例中的方法具体实现,其具体实现过程可参照上述实施例中的相关描述,此处不再赘述。
[0085] 由上可见,本实施例中的存储阵列600配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到非易失性存储装置中,再将其存储在非易失性存储装置的非易失性存储介质,即实现用户接口芯片到SSD的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能。
[0086] 参见图7,本发明实施例还提供一种存储系统,可包括:存储阵列600,以及与存储阵列600的用户接口芯片连接的用户端设备700。
[0087] 其中,用户端设备700可用于通过存储阵列600的用户接口芯片,访问存储阵列600,例如用户端设备700可向存储阵列600写入数据,和/或,从存储阵列600读取数据等。
[0088] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0089] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0090] 综上,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到非易失性存储装置中,再将其存储在非易失性存储装置的非易失性存储介质,该数据写入机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能。
[0091] 进一步的,由于非易失性存储装置配置内存,存储设备若配置多个非易失性存储装置,则可以提供出数倍于现有技术的内存通道,提供更大的内存接口带宽,进一步提升存储系统性能。
[0092] 部分或全部缓存管理功能(如数据读写控制、IO聚合、数据命中、数据淘汰等)由CPU集中式管理转变为各个非易失性存储装置的分布式管理,这样可相对降低CPU的处理负荷,进一步提升存储系统性能。并且,采用该架构的存储阵列有利于降低存储阵列的体积和功耗。
[0093] 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
[0094] 以上对本发明实施例所提供的存储阵列和存储系统及数据访问方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。