存储阵列和存储系统及数据保护方法.pdf

上传人:a1 文档编号:971381 上传时间:2018-03-22 格式:PDF 页数:29 大小:708.03KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110276089.0

申请日:

2011.09.16

公开号:

CN102346653A

公开日:

2012.02.08

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 3/06申请公布日:20120208|||著录事项变更IPC(主分类):G06F 3/06变更事项:申请人变更前:成都市华为赛门铁克科技有限公司变更后:华为数字技术(成都)有限公司变更事项:地址变更前:611731 四川省成都市高新区西部园区清水河片区变更后:611731 四川省成都市高新区西部园区清水河片区|||专利申请权的转移IPC(主分类):G06F 3/06变更事项:申请人变更前权利人:华为数字技术(成都)有限公司变更后权利人:华为技术有限公司变更事项:地址变更前权利人:611731 四川省成都市高新区西部园区清水河片区变更后权利人:518129 广东省深圳市龙岗区坂田华为总部办公楼登记生效日:20121207|||实质审查的生效IPC(主分类):G06F 3/06申请日:20110916|||公开

IPC分类号:

G06F3/06

主分类号:

G06F3/06

申请人:

成都市华为赛门铁克科技有限公司

发明人:

柯乔; 饶成莉

地址:

611731 四川省成都市高新区西部园区清水河片区

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙) 44285

代理人:

彭愿洁;李文红

PDF下载: PDF下载
内容摘要

本发明实施例提供存储阵列和存储系统及数据保护方法,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到该非易失性存储装置中,再将其存储在该非易失性存储装置的非易失性存储介质,即实现用户接口芯片到非易失性存储装置的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能;并且,基于上述架构进行用户接口芯片输入数据的校验保护,有利于提升数据安全性。

权利要求书

1: 一种存储设备数据保护方法, 其特征在于, 包括 : 将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路传递到第一非易失性 存储装置, 其中, 所述用户接口芯片和所述第一非易失性存储装置连接到 PCIE 链路, 所述 第一非易失性存储装置包括内存和非易失性存储介质 ; 将所述数据写入所述第一非易失性存储装置的内存中 ; 读取出包括所述数据在内的一组待校验运算的数据 ; 对所述一组待校验运算的数据进行校验运算得到校验数据 ; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失性存 储装置的非易失性存储介质 ; 通过 PCIE 链路将所述校验数据写入所述第一非易失性存储装置的非易失性存储介质 或第二非易失性存储装置的非易失性存储介质。
2: 根据权利要求 1 所述的方法, 其特征在于, 所述将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路传递到第一非易 失性存储装置, 包括 : CPU 将从用户接口芯片输入的数据, 通过 PCIE 链路写入到第一非易失性存储装置的 PCIE 总线存储 Memory 窗口地址 ; 其中, 所述第一非易失性存储装置为分配了 PCIE 总线 Memory 窗口地址空间的存储设备。
3: 根据权利要求 2 所述的方法, 其特征在于, 所述方法还包括 : CPU 通过控制指令将所述 PCIE 总线 Memory 窗口地址与固态硬盘的逻辑存储空间地址 的对应关系, 通知所述第一非易失性存储装置 ; 所述第一非易失性存储装置还包括控制器, 所述将所述数据写入所述第一非易失性存储装置的内存中, 包括 : 所述第一非易失性存储装置的控制器将所述数据写入所述非易失性存储装置的内存 中; 所述将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失 性存储介质, 包括 : 所述第一非易失性存储装置的控制器根据所述 PCIE 总线 Memory 窗口地址与第一非易 失性存储装置的逻辑存储空间地址的对应关系, 以及所述第一非易失性存储装置的逻辑存 储空间地址和物理存储空间地址的映射对应关系, 将写入所述第一非易失性存储装置的内 存中的所述数据, 对应写入到所述第一非易失性存储装置的非易失性存储介质。
4: 根据权利要求 1 所述的方法, 其特征在于, 所述方法还包括 : 将所述数据写入第三非易失性存储装置的内存中, 所述第三非易失性存储装置包括内 存和非易失性存储介质。
5: 根据权利要求 4 所述的方法, 其特征在于, 所述将所述校验数据写入所述第一非易失性存储装置或第二非易失性存储装置的非 易失性存储介质, 之后还包括 : CPU 向所述第三非易失性存储装置发送数据删除指令 ; 所述第三非易失性存储装置根据所述数据删除指令删除其内存中存储的所述数据。 2
6: 一种存储设备数据访问方法, 其特征在于, 包括 : 将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路分别传递到第一非易 失性存储装置和第二易失性存储装置, 其中, 所述用户接口芯片和所述非易失性存储装置 连接到 PCIE 链路, 所述第一非易失性存储装置和第二易失性存储装置分别包括内存和非 易失性存储介质 ; 将所述数据写入所述第一非易失性存储装置和第二非易失性存储装置的内存中 ; 将写入所述第一非易失性存储装置的内存中的数据, 写入到所述非易失性存储介质。
7: 根据权利要求 6 所述的方法, 其特征在于, 所述将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路分别传递到第一 非易失性存储装置和第二非易失性存储装置, 包括 : 中央处理器 CPU 将从用户接口芯片输入的数据, 通过 PCIE 链路分别写入到第一非易失 性存储装置和第二非易失性存储装置的 PCIE 总线存储 Memory 窗口地址 ; 其中, 所述第一非 易失性存储装置和第二非易失性存储装置为分配了 PCIE 总线 Memory 窗口地址空间的存储 设备。
8: 一种存储阵列, 其特征在于, 包括 : 中央处理器 CPU、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片, 及第一非易失性存 储装置或第一非易失性存储装置和第二非易失性存储装置 ; 其中, PCIE 交换芯片将 CPU、 用户接口芯片和第一非易失性存储装置连接到 PCIE 链路 ; 所述第一非易失性存储装置包括内存和非易失性存储介质 ; 所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路传递到所述第一 非易失性存储装置 ; 所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的内存 中; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失性存 储装置的非易失性存储介质 ; 所述 CPU 还用于, 读取出包括所述数据在内的一组待校验运算的数据 ; 对所述一组待 校验运算的数据进行校验运算得到校验数据 ; 控制将所述校验数据通过 PCIE 链路传递到 所述第一非易失性存储装置或第二非易失性存储装置。
9: 根据权利要求 8 所述的存储阵列, 其特征在于, 所述 CPU 还用于, 将所述数据写入第三非易失性存储装置的内存中, 所述第三非易失 性存储装置包括内存和非易失性存储介质。
10: 一种存储阵列, 其特征在于, 包括 : 中央处理器 CPU、 硬件引擎、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片以及第一 非易失性存储装置 ; 其中, PCIE 交换芯片将 CPU、 硬件引擎、 用户接口芯片和第一非易失性存储装置连接到 PCIE 链路 ; 所述第一非易失性存储装置包括内存和非易失性存储介质 ; 所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路传递到所述第一 非易失性存储装置 ; 所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的内存 中; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失性存 3 储装置的非易失性存储介质 ; 所述硬件引擎用于, 读取出包括所述数据在内的一组待校验运算的数据 ; 对所述一组 待校验运算的数据进行校验运算得到校验数据 ; 控制将所述校验数据通过 PCIE 链路传递 到所述第一非易失性存储装置或第二非易失性存储装置。
11: 一种存储阵列, 其特征在于, 包括 : 中央处理器 CPU、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片以及第一非易失性 存储装置和第三非易失性存储装置 ; 其中, PCIE 交换芯片将 CPU、 用户接口芯片、 第一非易失性存储装置和第三非易失性存 储装置连接到 PCIE 链路 ; 所述第一非易失性存储装置和第三非易失性存储装置包括内存 和非易失性存储介质 ; 所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路分别传递到所述 第一非易失性存储装置和第三非易失性存储装置 ; 所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的内存 中; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失性存 储装置的非易失性存储介质 ; 所述第三非易失性存储装置, 用于将所述数据写入所述第三非易失性存储装置的内存 中。
12: 一种存储系统, 其特征在于, 包括 : 如权利要求 8 至 11 任一项所述的存储阵列, 以及与所述存储阵列的用户接口芯片连接 的用户端设备 ; 其中, 所述用户端设备, 用于通过所述用户接口芯片访问所述存储阵列。

说明书


存储阵列和存储系统及数据保护方法

    【技术领域】
     本发明涉及计算机技术领域, 具体涉及一种存储阵列和存储系统及数据保护方法。 背景技术
     传统机械硬盘有机械部件, 输入输出 (IO, Input/Output) 性能较低。现有的能 提供存储功能的系统级设备主要是采用机械硬盘作为存储介质, 而这类产品 ( 例如个人电 脑、 服务器、 存储阵列等 ) 的设计方法是建立在传统硬盘的低 IO 性能基础之上的。
     近年, 固态硬盘 (SSD, solid state disk) 逐步兴起, 固态硬盘的最主要的特点是 几乎没有机械部件, IO 性能非常高。利用固态硬盘设计的系统级产品的性能可以得到进一 步的提升。
     参见图 1, 现有的存储阵列 ( 例如网络附属存储设备 ) 的典型架构是 X86 架构, 该系统通过用户接口芯片和用户端 ( 例如服务器等 ) 相连。快速外设组件互联 (PCIE, Peripheral Component Interconnect Express) 总 线 交 换 芯 片 将 中 央 处 理 器 (CPU, central processing unit) 和用户接口芯片以及存储接口芯片等外设组件互联。
     现有在用户接口芯片输入的数据的写入过程中, CPU 控制先将数据写入到与 CPU/ 北桥连接的内存中, 在该内存中完成缓存 (cache) 处理, 并将该数据镜像到另一与 CPU/ 北 桥连接的内存 ; 而后在 CPU 的控制下将数据从该内存写入到非易失性存储介质。现有的数 据访问方式占用较多 PCIE 链路, 影响到系统性能的进一步提升。 发明内容 本发明实施例提供存储阵列和存储系统及数据保护方法, 以减少数据访问对 PCIE 链路的占用, 提升系统性能。
     为解决上述技术问题, 本发明实施例提供以下技术方案 :
     一种存储设备数据保护方法, 包括 :
     将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路传递到第一非易 失性存储装置, 其中, 所述用户接口芯片和所述第一非易失性存储装置连接到 PCIE 链路, 所述第一非易失性存储装置包括内存和非易失性存储介质 ;
     将所述数据写入所述第一非易失性存储装置的内存中 ;
     读取出包括所述数据在内的一组待校验运算的数据 ;
     对所述一组待校验运算的数据进行校验运算得到校验数据 ;
     将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失 性存储装置的非易失性存储介质 ;
     通过 PCIE 链路将所述校验数据写入所述第一非易失性存储装置的非易失性存储 介质或第二非易失性存储装置的非易失性存储介质。
     一种存储设备数据访问方法, 包括 :
     将从用户接口芯片输入的数据通过快速外设组件互联 PCIE 链路分别传递到第一 非易失性存储装置和第二易失性存储装置, 其中, 所述用户接口芯片和所述非易失性存储 装置连接到 PCIE 链路, 所述第一非易失性存储装置和第二易失性存储装置分别包括内存 和非易失性存储介质 ;
     将所述数据写入所述第一非易失性存储装置和第二非易失性存储装置的内存 中;
     将写入所述第一非易失性存储装置的内存中的数据, 写入到所述非易失性存储介 质。
     一种存储阵列, 包括 :
     中央处理器 CPU、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片, 及第一非易失 性存储装置或第一非易失性存储装置和第二非易失性存储装置 ;
     其中, PCIE 交换芯片将 CPU、 用户接口芯片和第一非易失性存储装置连接到 PCIE 链路 ; 所述第一非易失性存储装置包括内存和非易失性存储介质 ;
     所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路传递到所述 第一非易失性存储装置 ; 所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的 内存中 ; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失 性存储装置的非易失性存储介质 ;
     所述 CPU 还用于, 读取出包括所述数据在内的一组待校验运算的数据 ; 对所述一 组待校验运算的数据进行校验运算得到校验数据 ; 控制将所述校验数据通过 PCIE 链路传 递到所述第一非易失性存储装置或第二非易失性存储装置。
     一种存储阵列, 包括 :
     中央处理器 CPU、 硬件引擎、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片以及 第一非易失性存储装置 ;
     其中, PCIE 交换芯片将 CPU、 硬件引擎、 用户接口芯片和第一非易失性存储装置连 接到 PCIE 链路 ; 所述第一非易失性存储装置包括内存和非易失性存储介质 ;
     所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路传递到所述 第一非易失性存储装置 ;
     所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的 内存中 ; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失 性存储装置的非易失性存储介质 ;
     所述硬件引擎用于, 读取出包括所述数据在内的一组待校验运算的数据 ; 对所述 一组待校验运算的数据进行校验运算得到校验数据 ; 控制将所述校验数据通过 PCIE 链路 传递到所述第一非易失性存储装置或第二非易失性存储装置。
     一种存储阵列, 包括 :
     中央处理器 CPU、 用户接口芯片、 快速外设组件互联 PCIE 交换芯片以及第一非易 失性存储装置和第三非易失性存储装置 ;
     其中, PCIE 交换芯片将 CPU、 用户接口芯片、 第一非易失性存储装置和第三非易失 性存储装置连接到 PCIE 链路 ; 所述第一非易失性存储装置和第三非易失性存储装置包括
     内存和非易失性存储介质 ;
     所述 CPU, 用于控制将从所述用户接口芯片输入的数据通过 PCIE 链路分别传递到 所述第一非易失性存储装置和第三非易失性存储装置 ;
     所述第一非易失性存储装置, 用于将所述数据写入所述第一非易失性存储装置的 内存中 ; 将写入所述第一非易失性存储装置的内存中的所述数据, 写入到所述第一非易失 性存储装置的非易失性存储介质 ;
     所述第三非易失性存储装置, 用于将所述数据写入所述第三非易失性存储装置的 内存中。
     一种存储系统, 包括 :
     如上述实施例所述的存储阵列, 以及与所述存储阵列的用户接口芯片连接的用户 端设备 ; 其中, 所述用户端设备, 用于通过所述用户接口芯片访问所述存储阵列。
     由上可见, 本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易 失性存储介质, 将内存和非易失性存储介质整合在一起, 而用户接口芯片输入的数据直接 通过 PCIE 链路传递到该非易失性存储装置中, 再将其存储在该非易失性存储装置的非易 失性存储介质, 即实现用户接口芯片到非易失性存储装置的数据直接传输, 可以无需经过 CPU 控制的内存进行中转, 该数据读写机制相对于现有技术占用更少的 PCIE 链路, 有利于 提升存储系统性能 ; 并且, 基于上述架构进行用户接口芯片输入数据的校验保护, 有利于提 升数据安全性。 附图说明 为了更清楚地说明本发明实施例和现有技术中的技术方案, 下面将对实施例和现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可 以根据这些附图获得其它的附图。
     图 1 是现有技术的一种存储阵列架构示意图 ;
     图 2-a 是本发明实施例提供的一种存储阵列架构示意图 ;
     图 2-b 是本发明实施例提供的另一种存储阵列架构示意图 ;
     图 3 是本发明实施例提供的一种数据保护方法流程示意图 ;
     图 4 是本发明实施例提供的另一种数据保护方法流程示意图 ;
     图 5 是本发明实施例提供的一种数据写入流程示意图 ;
     图 6-a 是本发明实施例提供的一种存储阵列示意图 ;
     图 6-b 是本发明实施例提供的另一种存储阵列示意图 ;
     图 6-c 是本发明实施例提供的另一种存储阵列示意图 ;
     图 7-a 是本发明实施例提供的另一种存储阵列示意图 ;
     图 7-b 是本发明实施例提供的另一种存储阵列示意图 ;
     图 8 是本发明实施例提供的一种存储阵列示意图 ;
     图 9 是本发明实施例提供的一种存储系统示意图。
     具体实施方式本发明实施例提供存储阵列和存储系统及数据保护方法。
     为了使本技术领域的人员更好地理解本发明方案, 下面将结合本发明实施例中的 附图, 对本发明实施例中的技术方案进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是 本发明一部分的实施例, 而不是全部的实施例。基于本发明中的实施例, 本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例, 都应当属于本发明保护的范 围。
     为便于理解实施, 本发明实施例中首先提供一种存储阵列的架构, 参见图 2-a 和 图 2-b, 图 2-a 和图 2-b 为本发明实施例举例提供的两种存储阵列的架构示意图。图 2-a 所 示存储阵列可包括至少 1 个 CPU 和多个非易失性存储装置 ( 例如 SSD 或其它非易失性存储 装置, 图 2-a 中以 SSD 为例 ), 以及至少一个 PCIE 交换芯片 ; 图 2-b 所示存储阵列可包括至 少 1 个 CPU、 至少一个硬件引擎和多个非易失性存储装置 ( 例如 SSD、 机械硬盘或其它非易 失性存储装置, 图 2-a 中以 SSD 为例 ), 以及至少一个 PCIE 交换芯片。其中, PCIE 交换芯 片配置有多个 PCIE 接口, PCIE 交换芯片可将 CPU、 以及用户接口芯片和非易失性存储装置 等外设组件连接到 PCIE 链路。其中, 非易失性存储装置可包括内存 ( 该内存可以是物理内 存, 也可以是虚拟内存 ) 和非易失性存储介质, 非易失性存储装置还可包括控制器, 该控制 器可控制将数据从该非易失性存储装置的内存, 写入该非易失性存储装置的非易失性存储 介质, 以及将该非易失性存储装置的非易失性存储介质存储的数据, 读取到该非易失性存 储装置的内存等。 本发明实施例的数据保护方法例如可基于图 2-a 或 2-b 所示架构的存储阵列具体 实施, 当然亦可在基于该架构的灵活变形架构上具体实施。
     本发明存储设备数据保护方法的一个实施例, 可包括 : 将从用户接口芯片输入的 数据通过 PCIE 链路传递到第一非易失性存储装置, 其中, 该用户接口芯片和第一非易失性 存储装置连接到 PCIE 链路, 第一非易失性存储装置包括内存和非易失性存储介质 ; 将该数 据写入第一非易失性存储装置的内存中 ; 读取出包括该数据在内的一组待校验运算的数 据; 对该一组待校验运算的数据进行校验运算得到校验数据 ; 将写入该第一非易失性存储 装置的内存中的上述数据, 写入到第一非易失性存储装置的非易失性存储介质 ; 通过 PCIE 链路将上述校验数据写入第一非易失性存储装置的非易失性存储介质或第二非易失性存 储装置的非易失性存储介质。
     参见图 3, 具体步骤可以包括 :
     301、 将从用户接口芯片输入的数据通过 PCIE 链路传递到第一非易失性存储装 置;
     在一种应用场景下, 当用户端设备的某数据 ( 为便于引述, 称之为第一数据 ) 需要 通过存储设备 ( 例如存储阵列或一般的存储设备 ) 的用户接口芯片写入该存储设备时, 可 以由 CPU 控制将从用户接口芯片输入的第一数据通过 PCIE 链路传递到该存储设备的某一 非易失性存储装置 ( 为便于引述, 可称之为第一非易失性存储装置 )。
     其中, 存储设备配置有包括一个或多个非易失性存储装置 ( 例如 SSD 或其它存储 介质类型的非易失性存储装置 ) ; 非易失性存储装置包括内存和非易失性存储介质等 ; 用 户接口芯片提供用户接口, 主要负责用户端设备和存储设备的数据交互。
     其中, 非易失性存储装置的内存可为 : 双倍速率 (DDR, Double Data Rate) 同步动
     态随机存储器、 DDRII 同步动态随机存储器、 DDRIII 同步动态随机存储器等高性能的易失 性存储介质, 或者也可以为虚拟内存。非易失性存储介质可包括 : 闪速存储器 (flash)、 铁 电存储介质或其它存储介质。
     在实际应用中, 若用户接口芯片可以直接访问块 (Block) 设备, 则 CPU 可控制将从 用户接口芯片输入的第一数据, 通过 PCIE 链路写入到第一非易失性存储装置的某逻辑存 储地址 (LBA, logic Block address)。若用户接口芯片并不能直接访问 Block 设备, 但可 以访问存储 (Memory) 设备, 则 CPU 在为接入的第一非易失性存储装置初始化时, 可为第一 非易失性存储装置分配一段 Memory 窗口地址空间 ( 其中, 该 Memory 窗口地址空间的大小 例如可以等于该非易失性存储装置的内存 ( 如 4GB) 的大小, 或者也可以等于该非易失性存 储装置的逻辑存储空间 ( 例如 400GB) 的大小, 当然也可为其它的取值 ), 当用户接口芯片输 入第一数据时, CPU 可控制将从用户接口芯片输入的第一数据通过 PCIE 链路写入到第一非 易失性存储装置的某 PCIE 总线 Memory 窗口地址。
     302、 将上述数据写入第一非易失性存储装置的内存中 ;
     其中, 非易失性存储装置集成内存, 这就为 cache 由集中式管理变为分布式管理 创造了条件, 例如若每个非易失性存储装置都集成内存, 则每个非易失性存储装置可对其 内存进行独立的管理, 这样就无需由 CPU 来统一管理所有的内存, 这样就可实现 cache 由集 中式管理向分布式管理转变。
     303、 读取出包括该数据在内的一组待校验运算的数据 ;
     在实际应用中, 可根据业务需要来确定校验分条的大小 ( 例如, 1 个分条大小为 16KB、 32KB、 64KB 或其它大小等 ), 一个校验分条包括一组待校验运算的数据, 例如可将用 户接口芯片输入的上述数据和非易失性存储装置 ( 如第一非易失性存储装置和 / 或其它非 易失性存储装置 ) 存储的其它待校验运算的数据作为一组待校验运算的数据 ; 或, 也可直 接将从用户接口芯片输入的上述数据作为一组待校验运算的数据。
     304、 对该一组待校验运算的数据进行校验运算得到校验数据 ;
     其中, 若存储阵列中包括 CPU 和硬件引擎, 则可由 CPU 或硬件引擎读取出包括该数 据在内的一组待校验运算的数据, 并对该一组待校验运算的数据进行校验运算 ( 例如异或 运算或其它校验运算 ) 得到校验数据。若存储阵列中包括 CPU 但不包括硬件引擎, 则可由 CPU 读取出包括该数据在内的一组待校验运算的数据, 并对该一组待校验运算的数据进行 校验运算 ( 例如异或运算或其它校验运算 ) 得到校验数据。
     在实际应用中, CPU 或硬件引擎可根据业务需要, 对数据进行多种可选方式的数 据保护, 例如若进行 RAID5(Redundant Array of Independent Disk-5, 独立冗余磁盘阵 列 -5) 校验保护, 则可计算出一个校验数据 ( 即单校验 ), 若进行 RAID6 校验运算, 则可计算 得到两个校验数据 ( 双校验 )。
     305、 将写入该第一非易失性存储装置的内存中的上述数据, 写入到第一非易失性 存储装置的非易失性存储介质 ;
     在一种应用场景下, 非易失性存储装置还可以包括控制器, 该控制器可对该非易 失性存储装置的内存进行缓存 (cache) 管理, 包括 : 输入输出聚合 (IO 聚合 )、 数据命中、 数 据淘汰等, 其中, 具体的 cache 管理策略可根据具体情况具体设定, 此处不做限定。若第一 非易失性存储装置为分配了 PCIE 总线 Memory 窗口地址空间的存储装置, 则 CPU 可通过控制信令, 将上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置的逻辑存储空间地址 的映射对应关系, 通知第一非易失性存储装置 ( 当然, 若 PCIE 总线 Memory 窗口地址与非易 失性存储装置的逻辑存储空间地址的映射对应关系, 是 CPU 和第一非易失性存储装置事先 约定的一种默认对应关系, 则 CPU 可无需将上述 PCIE 总线 Memory 窗口地址与第一非易失 性存储装置的逻辑存储空间地址的映射对应关系通知给第一非易失性存储装置 )。第一非 易失性存储装置的控制器可将第一数据写入该非易失性存储装置的内存中 ; 该控制器可基 于预设的缓存管理策略 ( 该缓存管理策略可以包括 : 当非易失性存储装置的内存的剩余空 间低于某阈值 ( 该阈值例如为 10%, 20%、 30%或其它值 ) 时, 将写入内存中的数据写入非 易失性存储介质 ; 或者将写入到内存中的数据立即写入非易失性存储介质, 当然也可以包 括其它缓存管理策略 ), 并根据上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 的逻辑存储空间地址的映射对应关系, 以及第一非易失性存储装置的逻辑存储空间地址和 物理存储空间地址的映射对应关系, 控制将写入第一非易失性存储装置的内存中的第一数 据, 写入到第一非易失性存储装置的非易失性存储介质中。
     此外, 若 CPU 对第一非易失性存储装置的内存空间进行了统一的编址, 则也可以 由 CPU 控制将第一数据写入该非易失性存储装置的内存中, 并基于预设的缓存管理策略, 将写入该非易失性存储装置的内存中的第一数据写入该非易失性存储装置的非易失性存 储介质。 在实际应用中, 第一非易失性存储装置的控制器将第一数据写入该第一非易失性 存储装置的内存时, 该控制器可先判断该非易失性存储装置的内存中是否已缓存有与第 一数据相同的数据 ( 通常可根据写入地址是否相同来判断内存中是否已缓存有与第一数 据相同的数据, 若内存中存在与第一数据写入地址相同的数据 ( 为便于描述, 可称之为第 二数据 ), 则可认为第二数据和第一数据相同 ), 若没有 ; 则将第一数据写入该非易失性存 储装置的内存 ; 若有, 则将该第二数据作为写入到非易失性存储装置的内存中的第一数据 ( 即此时控制器不再控制将第一数据写入到非易失性存储装置的内存, 而将第二数据作为 是写入到非易失性存储装置的内存中的第一数据 ), 或者将第一数据写入该非易失性存储 装置的内存以替换该第二数据。
     可以发现, 本实施例的上述方案中, 某一数据的写入过程只需要占用一次 PCIE 链 路, 该数据写入机制相对于现有技术 ( 现有技术中用户接口芯片输入的数据先到与 CPU 连 接的内存, 而后再从与 CPU 连接的该内存搬移到存储设备 ) 将有效的降低数据写入过程的 总线资源占用, 同时, 由于可由非易失性存储装置分布是管理数据写入过程, 故而可减少对 CPU 资源的占用。
     306、 通过 PCIE 链路将上述校验数据写入第一非易失性存储装置或第二非易失性 存储装置的非易失性存储介质。
     其中, 存储阵列中 CPU 或硬件引擎可通过 PCIE 链路, 将上述校验数据传递到第一 非易失性存储装置 ( 或第二非易失性存储装置 ), 例如, 将上述校验数据写入第一非易失性 存储装置 ( 或第二非易失性存储装置 ) 的某 PCIE 总线 Memory 窗口地址。与存储用户接口 芯片输入数据的方式类似, 第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的控制器 可将校验数据写入第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的内存中 ; 该控制 器可基于预设的缓存管理策略 ( 该缓存管理策略例如可包括 : 当非易失性存储装置的内存
     的剩余空间低于某阈值 ( 例如 10%, 20%、 30%或其它值 ) 时, 将写入内存中的数据写入非 易失性存储介质 ; 或者将写入到内存中的数据立即写入非易失性存储介质, 当然也可包括 其它缓存管理策略 ), 并根据上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 ( 或 第二非易失性存储装置 ) 的逻辑存储空间地址的映射对应关系, 以及第一非易失性存储装 置 ( 或第二非易失性存储装置 ) 的逻辑存储空间地址和物理存储空间地址的映射对应关 系, 控制将写入第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的内存中的校验数据, 写入第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的非易失性存储介质中。此外, 若 CPU 对第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的内存空间进行了统一的编 址, 则也可由 CPU 或硬件引擎控制将校验数据写入第一非易失性存储装置 ( 或第二非易失 性存储装置 ) 的内存中, 并基于预设的缓存管理策略, 将写入该第一非易失性存储装置 ( 或 第二非易失性存储装置 ) 的内存中的校验数据写入该第一非易失性存储装置 ( 或第二非易 失性存储装置 ) 的非易失性存储介质。
     此外, 若还需要进行写入数据的内存镜像, 则还可将用户接口芯片输入的上述数 据写入第三非易失性存储装置的内存中, 该第三非易失性存储装置包括内存和非易失性存 储介质, 可以理解, 此时第三非易失性存储装置是作为第一非易失性存储装置的一个备份 非易失性存储装置。例如, CPU 可控制将从用户接口芯片输入的第一数据通过 PCIE 链路分 别写入到第一非易失性存储装置的某 PCIE 总线 Memory 窗口地址和第三非易失性存储装置 的某 PCIE 总线 Memory 窗口地址 ; 其中, 与第一非易失性存储装置的控制器写入数据的方式 类似, 第三非易失性存储装置的控制器可将上述第一数据写入该非易失性存储装置的内存 中; 该控制器可基于预设的缓存管理策略, 并根据上述 PCIE 总线 Memory 窗口地址与第三非 易失性存储装置的逻辑存储空间地址的映射对应关系, 以及第三非易失性存储装置的逻辑 存储空间地址和物理存储空间地址的映射对应关系, 控制将写入第三非易失性存储装置的 内存中的第一数据, 写入到第三非易失性存储装置的非易失性存储介质中。此外, 若 CPU 对 第三非易失性存储装置的内存空间进行了统一的编址, 则也可由 CPU 控制将第一数据写入 第三非易失性存储装置的内存中, 并基于预设的缓存管理策略, 将写入第三非易失性存储 装置的内存中的第一数据写入第三非易失性存储装置的非易失性存储介质。特别的, 考虑 到对第一数据进行校验保护后便可以删除写入第三非易失性存储装置的第一数据, 因此, 第三非易失性存储装置可暂时不将写入其内存中的第一数据存入其非易失性存储介质, 而 在将校验数据写入第一非易失性存储装置 ( 或第二非易失性存储装置 ) 的非易失性存储介 质之后, CPU 可向第三非易失性存储装置发送数据删除指令, 第三非易失性存储装置根据该 数据删除指令删除其内存中缓存的第一数据, 这样既进行了内存镜像, 又相对减了对其非 易失性存储介质进行数据写入或擦除的次数。
     可以理解的是, 存储设备在数据读写过程中, 存储设备的不同模块可能会对数据 的封装格式进行一定的转换, 例如, 用户接口芯片可将来自用户端设备的数据的封装格式 转换为 PCIE 报文, 将需向用户端设备发送的数据转换为该用户端设备所对应的封装格式 ; 非易失性存储装置则可将来自用户接口芯片或其它模块的 PCIE 报文的报文头去除, 并缓 存到内存以及写入非易失性存储介质 ; 非易失性存储装置亦可将从其内存中读取的需向用 户接口芯片或其它模块发送的数据封装为 PCIE 报文并发送 ; 当然, 不同的应用场景, 数据 对应的封装格式可能有所不同, 此处不再一一赘述。由上可见, 本实施例中的存储设备配置的非易失性存储装置包括内存和非易失性 存储介质, 将内存和非易失性存储介质整合在一起, 而用户接口芯片输入的数据直接通过 PCIE 链路传递到非易失性存储装置中, 再将其存储在非易失性存储装置的非易失性存储介 质, 即可以实现用户接口芯片到 SSD 的数据直接传输, 可无需经过 CPU 控制的内存进行中 转, 该数据读写机制相对于现有技术占用更少的 PCIE 链路, 有利于提升存储系统性能 ; 并 且, 基于上述架构进行用户接口芯片输入数据的校验保护, 有利于提升数据安全性。
     进一步的, 由于为非易失性存储装置配置内存, 存储设备若配置多个非易失性存 储装置, 则可以提供出数倍于现有技术的内存通道, 提供更大的内存接口带宽, 进一步提升 存储系统性能 ; 并且, 各个非易失性存储装置可进行内存的分布式管理, 有利于减少对 CPU 资源的占用。
     为便于更好的理解和实施本发明实施例的技术方案, 下面主要以在如图 2-b 所示 存储阵列架构下进行数据保护的一种实施场景为例进行详细介绍。其中, 本实施例中主要 以存储阵列包括的非易失性存储装置为固态硬盘为例进行描述, 采用其它类型的非易失性 存储装置的工作流程于此类似。
     参见图 4, 本发明存储阵列数据保护方法一个实施例, 可包括 : 401、 用户接口芯片通过指令向 CPU 请求写入来自用户端设备的某数据 ( 为便于引 述, 称之为数据 D1) ;
     402、 CPU 为用户接口芯片写入数据 D1 分配某固态硬盘 ( 为便于引述, 称之为固态 硬盘 SSD-1) 的 PCIE 总线 Memory 窗口地址 ( 为便于引述, 称之为 PCIE 总线 Memory 窗口地 址 add-1), 以及为用户接口芯片写入数据 D1 分配另一固态硬盘 ( 为便于引述, 称之为固态 硬盘 SSD-2) 的 PCIE 总线 Memory 窗口地址 ( 为便于引述, 称之为 PCIE 总线 Memory 窗口地 址 add-2) ;
     例如图 2-b 所示存储阵列, 可包括至少一个 PCIE 交换芯片。 PCIE 交换芯片配置有 多个 PCIE 接口, CPU、 硬件引擎和用户接口芯片、 固态硬盘等各种外设组件 PCIE 交换芯片连 接到 PCIE 总线链路。
     其中, 本实施例中的固态硬盘可以配置有至少两个 PCIE 接口, 以分别连接的不同 PCIE 交换芯片的 PCIE 接口, 由于通过多条 PCIE 链路连接到 PECI 交换芯片, 这样可以避免 因单点失效而造成该固态硬盘无法工作。
     在实际应用中, CPU 在为接入的固态硬盘 SSD-1 和 SSD-2 初始化时, CPU 可以扫描 固态硬盘 SSD-1 和 SSD-2 的配置空间, 可根据扫描到的该配置空间记录的 PCIE 总线 Memory 窗口地址空间的申请量, 为固态硬盘 SSD-1 和 SSD-2 分配对应数量的 PCIE 总线 Memory 窗口 地址空间, 分别为固态硬盘 SSD-1 和 SSD-2 分配一段 PCIE 总线 Memory 窗口地址空间 ( 该 Memory 窗口的大小例如可以等于该固态硬盘的内存 ( 如 4GB) 的大小, 或者也可以等于该固 态硬盘的逻辑存储空间 ( 例如 400GB) 的大小, 当然也可以是其它的取值 ), 当用户接口芯片 请求写入数据 D1 时, CPU 可为用户接口芯片写入数据 D1 分配对应固态硬盘 SSD-1 的 PCIE 总线 Memory 窗口地址 add-1 以及固态硬盘 SSD-2 的 PCIE 总线 Memory 窗口地址 add-2 ;
     403、 用户接口芯片将数据 D1 通过 PCIE 链路写入到固态硬盘 SSD-1 的 PCIE 总线 Memory 窗口地址 add-1 和固态硬盘 SSD-2 的 PCIE 总线 Memory 窗口地址 add-2。
     404、 固态硬盘 SSD-1 的控制器将数据 D1 写入固态硬盘 SSD-1 的内存 ;
     固态硬盘 SSD-2 的控制器将数据 D1 写入固态硬盘 SSD-2 的内存 ;
     405、 硬件引擎读取出包括数据 D1 在内的一组待校验运算的数据 ;
     在实际应用中, 可根据业务需要来确定校验分条的大小 ( 例如, 1 个分条大小为 16KB、 32KB、 64KB 或其它大小等 ), 一个校验分条包括一组待校验运算的数据, 例如可将用 户接口芯片输入的上述数据 D1 和非易失性存储装置 ( 如第一非易失性存储装置和 / 或其 它非易失性存储装置 ) 存储的其它数据作为一组待校验运算的数据 ; 或者, 也可直接将从 用户接口芯片输入的上述数据 D1 作为一组待校验运算的数据。
     406、 硬件引擎对读取出的上述一组待校验运算的数据进行校验运算得到校验 数据 ( 为便于引述, 称之为数据 RD1), 并将该校验数据写入固态硬盘 SSD-3 的 PCIE 总线 Memory 窗口地址 add-3 ;
     其中, 硬件引擎可对该一组待校验运算的数据进行例如异或运算或其它校验运 算, 得到校验数据 RD1。 在实际应用中, 硬件引擎可根据业务需要, 对数据进行多种可选方式 的数据保护, 例如若进行 RAID5 校验保护, 则可计算出一个校验数据 ( 即单校验 ), 若进行 RAID6 校验运算, 则可计算得到两个校验数据 ( 双校验 )。
     可以理解的是, 本实施例是以硬件引擎将计算出的校验数据 RD1 写入固态硬盘 SSD-3( 即与固态硬盘 SSD-1 和 SSD-2 不同的 SSD, 以实现盘间保护 ) 的 PCIE 总线 Memory 窗口地址为例, 当然, 硬件引擎也可将计算出的校验数据 RD1 写入固态硬盘 SSD-1 或 SSD-2 的 PCIE 总线 Memory 窗口地址。
     407、 固态硬盘 SSD-1 的控制器将写入其内存中的数据 D1, 写入到固态硬盘 SSD-1 的非易失性存储介质 ;
     在一种应用场景下, 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 所示的数据写入示意图。
     在实际应用中, 固态硬盘 SSD-1 的控制器可先判断固态硬盘 SSD-1 的内存中是否 已经有与数据 D1 相同的数据 ( 通常可根据写入地址是否相同来判断内存中是否已缓存有 与数据 D1 相同的数据, 若内存中存在与数据 D1 写入地址相同的数据 ( 为便于描述, 可称之 为第二数据 ), 则可认为第二数据和数据 D1 相同 ), 若没有, 则可以数据 D1 写入固态硬盘 SSD-1 的内存中 ; 若有, 则可以直接将该已写入的与数据 D1 相同的数据作为数据 D1, 写入固 态硬盘 SSD-1 的非易失性存储介质, 而无需执行将数据 D1 写入到内存, 再写入到非易失性 存储介质的操作。而这也可看成是固态硬盘 SSD-1 进行的一种分布式的缓存管理, 下放了CPU 的缓存管理功能, 以降低 CPU 的工作负荷。
     可以理解的是, 将数据 D1 写入固态硬盘 SSD-2 的方式, 可以与上述将数据 D1 写入 固态硬盘 SSD-1 的方式类似。
     可以发现, 本实施例的方案中, 数据 D1 的写入某个固态硬盘只需要占用一次 PCIE 链路, 该数据写入机制相对于现有技术 ( 现有技术中用户接口芯片输入的数据先到与 CPU 连接的内存, 而后再从与 CPU 连接的该内存搬移到存储设备 ), 将有效的降低数据写入过程 的总线资源占用, 同时, 由于可由非易失性存储装置分布是管理数据写入过程, 故而可减少 对 CPU 资源的占用。
     408、 固态硬盘 SSD-3 的控制器将校验数据 RD1 写入其内存, 并将写入其内存中的 数据写入到其非易失性存储介质 ;
     409、 CPU 向固态硬盘 SSD-2 发送数据删除指令。
     固态硬盘 SSD-2 可根据该数据删除指令删除其内存中存储的数据 D1。 由于固态硬 盘 SSD-2 并未立即将数据 D1 写入其非易失性存储介质, 这样就有利于减少对其非易失性存 储介质进行数据写入或擦除的次数。
     在实际应用中, 固态硬盘 ( 如 SSD-1、 SSD-2、 SSD-3) 的控制器可对该固态硬盘的内 存进行 cache 管理, 例如可包括 : 输入输出聚合 (IO 聚合 )、 数据命中、 数据淘汰等, 其中, 具 体的 cache 管理策略可根据具体情况具体设定, 此处不做限定。
     举例来说, 若固态硬盘 SSD-1 的内存剩余足够的空间, 固态硬盘 SSD-1 的控制器可 将数据 D1 写入固态硬盘 SSD-1 的内存, 当然, 如果其内存不足, 则固态硬盘 SSD-1 的控制器 可先淘汰该内存中的非必要数据 ( 非必要数据例如可以是长时间未被访问的数据 ), 而后 再将数据 D1 写入固态硬盘 SSD-1 的内存, 而这也可看成是固态硬盘 SSD-1 进行的一种分布 式的缓存管理, 下放 CPU 的缓存管理功能, 以降低 CPU 的工作负荷。
     进一步的, 若后续还需要从固态硬盘 SSD-1 读取数据 D1, 则固态硬盘 SSD-1 的控制 器可将该固态硬盘 SSD-1 的非易失性存储介质中存储的数据 D1 读取到固态硬盘 SSD-1 的 内存中 ; 将读取到固态硬盘 SSD-1 的内存中的数据 D1 通过 PCIE 链路传递到用户接口芯片 ( 若用户接口芯片请求读取数据 D1) ; 或者可将读取到该固态硬盘的内存中的数据 D1 通过 PCIE 链路传递给 CPU 或硬件引擎处理 ( 若 CPU 或硬件引擎需要对数据 D1 处理 )。
     由上可见, 本实施例中的存储设备配置的固态硬盘包括内存和非易失性存储介 质, 将内存和非易失性存储介质 ( 包括 : 闪速存储器、 铁电存储介质或其它类型的存储介 质 ) 整合在一起, 而用户接口芯片输入的数据直接通过 PCIE 链路传递到固态硬盘中, 再将 其存储在固态硬盘的非易失性存储介质, 即实现用户接口芯片到 SSD 的数据直接传输, 可 以无需经过 CPU 控制的内存进行中转, 该数据访问机制相对于现有技术占用更少的 PCIE 链路, 有利于提升存储系统性能 ; 并且, 基于上述架构进行用户接口芯片输入数据的校验保 护, 有利于提升数据安全性。
     进一步的, 由于固态硬盘配置内存, 存储设备若配置多个固态硬盘, 则可以提供出 数倍于现有技术的内存通道, 提供更大的内存接口带宽, 进一步提升存储系统性能。
     部分或全部缓存管理功能 ( 包括 : 数据读写控制、 IO 聚合、 数据命中、 数据淘汰等 ) 由 CPU 集中式管理转换为各个固态硬盘的分布式管理, 这样可相对降低 CPU 的处理负荷, 进 一步提升存储系统性能。 并且, 采用该实施例架构的存储阵列, 有利于降低存储阵列的体积和功耗。 为便于更好的实施上述实施例的技术方案, 本发明实施例还提供用于实现上述技 术方案的设备。
     参见图 6-a, 本发明实施例提供的一种存储阵列 600, 可包括 :
     中央处理器 610、 用户接口芯片 620、 PCIE 交换芯片 630 以及第一易失性存储装置 640。
     其中, PCIE 交换芯片 630 将中央处理器 610、 用户接口芯片 620 和第一非易失性存 储装置 640 连接到 PCIE 链路 ; 第一非易失性存储装置 640 包括内存和非易失性存储介质 ;
     中央处理器 610, 用于控制将从用户接口芯片 620 输入的数据通过 PCIE 链路传递 到第一非易失性存储装置 640 ;
     第一非易失性存储装置 640, 用于将所述数据写入第一非易失性存储装置 640 的 内存中 ; 将写入第一非易失性存储装置 640 的内存中的所述数据, 写入到第一非易失性存 储装置 640 的非易失性存储介质 ;
     中央处理器 610 还用于, 读取出包括所述数据在内的一组待校验运算的数据 ; 对 该一组待校验运算的数据进行校验运算得到校验数据 ; 控制将该校验数据通过 PCIE 链路 传递到第一非易失性存储装置 640。
     参见图 6-b, 存储阵列 600 还可包括 : 第二非易失性存储装置 650, 第二非易失性存 储装置 650 包括内存和非易失性存储介质 ;
     中央处理器 610 也还可用于, 读取出包括所述数据在内的一组待校验运算的数 据; 对该一组待校验运算的数据进行校验运算得到校验数据 ; 控制将该校验数据通过 PCIE 链路传递到第二非易失性存储装置 650。
     参见图 6-c, 在一种应用场景下, 存储阵列 600 还可包括 :
     第三非易失性存储装置 650, 其中, 第三非易失性存储装置 650 包括内存和非易失 性存储介质 ;
     中央处理器 610 还用于, 将数据写入第三非易失性存储装置 660 的内存中。
     可以理解的是, 本实施例中的存储阵列 600 的可如上述方法实施例中的存储阵 列, 其功能可以根据上述方法实施例中的方法具体实现, 其具体实现过程可以参照上述方 法实施例的相关描述, 此处不再赘述。
     参见图 7-a, 本发明实施例提供的一种存储阵列 700, 可包括 :
     中央处理器 710、 硬件引擎 720、 用户接口芯片 730、 PCIE 交换芯片 740 以及第一易 失性存储装置 750。
     其中, PCIE 交换芯片 740 将中央处理器 710、 硬件引擎 720、 用户接口芯片 730 和 第一非易失性存储装置 750 连接到 PCIE 链路 ; 第一非易失性存储装置 750 包括内存和非易 失性存储介质 ;
     其中, 第一非易失性存储装置 750 的非易失性存储装置的内存可为 : DDR 同步动态 随机存储器、 DDRII 同步动态随机存储器、 DDRIII 同步动态随机存储器等高性能的易失性 存储介质, 或者也可为虚拟内存。 第一非易失性存储装置 750 非易失性存储介质可包括 : 闪 速存储器 (flash)、 铁电存储介质或其它存储介质。
     中央处理器 710, 用于控制将从用户接口芯片 730 输入的数据通过 PCIE 链路传递
     到第一非易失性存储装置 750。
     第一非易失性存储装置 750, 用于将上述数据写入第一非易失性存储装置 750 的 内存中 ; 将写入第一非易失性存储装置 750 的内存中的该数据, 写入到第一非易失性存储 装置 750 的非易失性存储介质。
     在实际应用中, 若用户接口芯片 730 可以直接访问块 (Block) 设备, 则 CPU 可控制 将从用户接口芯片输入的第一数据, 通过 PCIE 链路写入到第一非易失性存储装置 750 的某 逻辑存储地址 (LBA)。若用户接口芯片 730 并不能直接访问 Block 设备, 但可以访问存储 (Memory) 设备, 则 CPU 710 在为接入的第一非易失性存储装置 750 初始化时, 可为第一非易 失性存储装置 750 分配一段 Memory 窗口地址空间 ( 其中, 该 Memory 窗口地址空间的大小 例如可以等于第一非易失性存储装置 750 的内存 ( 如 4GB) 的大小, 或者也可以等于第一非 易失性存储装置 750 的逻辑存储空间 ( 例如 400GB) 的大小, 当然也可为其它的取值 ), 当用 户接口芯片 730 输入第一数据时, CPU 可控制将从用户接口芯片输入的第一数据通过 PCIE 链路写入到第一非易失性存储装置 750 的某 PCIE 总线 Memory 窗口地址。
     在一种应用场景下, 第一非易失性存储装置 750 还可以包括控制器, 该控制器可 对该非易失性存储装置的内存进行缓存 (cache) 管理, 包括 : 输入输出聚合 (IO 聚合 )、 数 据命中、 数据淘汰等, 其中, 具体的 cache 管理策略可根据具体情况具体设定, 此处不做限 定。若第一非易失性存储装置 750 为分配了 PCIE 总线 Memory 窗口地址空间的存储装置, 则 CPU 710 可通过控制信令, 将上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 750 的逻辑存储空间地址的映射对应关系, 通知第一非易失性存储装置 750( 若 PCIE 总线 Memory 窗口地址与非易失性存储装置的逻辑存储空间地址的映射对应关系, 是 CPU710 和 第一非易失性存储装置 750 事先约定的一种默认对应关系, 则 CPU 710 可无需将上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 750 的逻辑存储空间地址的映射对应关系 通知给第一非易失性存储装置 750)。 第一非易失性存储装置 750 的控制器可将第一数据写 入该非易失性存储装置的内存中 ; 该控制器可基于预设的缓存管理策略 ( 该缓存管理策略 可以包括 : 当非易失性存储装置的内存的剩余空间低于某阈值 ( 该阈值例如为 10%, 20%、 30%或其它值 ) 时, 将写入内存中的数据写入非易失性存储介质 ; 或者将写入到内存中的 数据立即写入非易失性存储介质, 当然也可以包括其它缓存管理策略 ), 并根据上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 750 的逻辑存储空间地址的映射对应关系, 以及第一非易失性存储装置 750 的逻辑存储空间地址和物理存储空间地址的映射对应关 系, 控制将写入第一非易失性存储装置 750 的内存中的第一数据, 写入到第一非易失性存 储装置 750 的非易失性存储介质中。
     此外, 若 CPU 710 对第一非易失性存储装置 750 的内存空间进行了统一的编址, 则 也可以由 CPU 710 控制将第一数据写入第一非易失性存储装置 750 的内存中, 并基于预设 的缓存管理策略, 将写入该第一非易失性存储装置 750 的内存中的第一数据写入第一非易 失性存储装置 750 的非易失性存储介质。
     在实际应用中, 第一非易失性存储装置 750 的控制器将第一数据写入该第一非易 失性存储装置 750 的内存时, 该控制器可先判断该非易失性存储装置的内存中是否已缓存 有与第一数据相同的数据 ( 通常可根据写入地址是否相同来判断内存中是否已缓存有与 第一数据相同的数据, 若内存中存在与第一数据写入地址相同的数据 ( 为便于描述, 可称之为第二数据 ), 则可认为第二数据和第一数据相同 ), 若没有 ; 则将第一数据写入该非易 失性存储装置的内存 ; 若有, 则将该第二数据作为写入到第一非易失性存储装置 750 的内 存中的第一数据 ( 即, 此时控制器不再控制将第一数据写入到非易失性存储装置的内存, 而将第二数据作为是写入到非易失性存储装置的内存中的第一数据 ), 或者将第一数据写 入第一非易失性存储装置 750 的内存以替换该第二数据。
     硬件引擎 720, 用于读取出包括上述数据在内的一组待校验运算数据 ; 对该一组 待校验运算的数据进行校验运算 ( 例如异或运算或其它校验运算 ) 得到校验数据 ; 控制将 该校验数据通过 PCIE 链路传递到第一非易失性存储装置 750。
     在实际应用中, 可根据业务需要来确定校验分条的大小 ( 例如, 1 个分条大小为 16KB、 32KB、 64KB 或其它大小等 ), 一个校验分条包括一组待校验运算的数据, 例如硬件引 擎 720 可将用户接口芯片输入的上述数据和非易失性存储装置 ( 如第一非易失性存储装置 750 和 / 或其它非易失性存储装置 ) 存储的其它数据作为一组待校验运算的数据 ; 或, 硬件 引擎 720 也可直接将从用户接口芯片输入的上述数据作为一组待校验运算的数据。
     其中, 若存储阵列中包括 CPU 和硬件引擎, 则可由 CPU 或硬件引擎读取出包括该数 据在内的一组待校验运算的数据, 并对该一组待校验运算的数据进行校验运算 ( 例如异或 运算或其它校验运算 ) 得到校验数据。若存储阵列中包括 CPU 但不包括硬件引擎, 则可由 CPU 读取出包括该数据在内的一组待校验运算的数据, 并对该一组待校验运算的数据进行 校验运算 ( 例如异或运算或其它校验运算 ) 得到校验数据。
     参见图 7-b, 存储阵列 700 还可包括 :
     第二非易失性存储装置 760, 第二非易失性存储装置 760 包括内存和非易失性存 储介质 ; 其中, 第二非易失性存储装置 760 的非易失性存储装置的内存可为 : DDR 同步动态 随机存储器、 DDRII 同步动态随机存储器、 DDRIII 同步动态随机存储器等高性能的易失性 存储介质, 或者也可为虚拟内存。 第二非易失性存储装置 760 非易失性存储介质可包括 : 闪 速存储器 (flash)、 铁电存储介质或其它存储介质。
     硬件引擎 720 也可用于, 读取出包括上述数据在内的一组待校验运算的数据 ; 对 该一组待校验运算的数据进行校验运算得到校验数据 ; 控制将该校验数据通过 PCIE 链路 传递到第二非易失性存储装置 760。
     可以理解的是, 本实施例中的存储阵列 700 的可如上述方法实施例中的存储阵 列, 其功能可以根据上述方法实施例中的方法具体实现, 其具体实现过程可以参照上述方 法实施例的相关描述, 此处不再赘述。
     参见图 8, 本发明实施例提供的一种存储阵列 800, 可包括 :
     中央处理器 810、 用户接口芯片 820、 PCIE 交换芯片 830 以及第一易失性存储装置 840 和第三非易失性存储装置 850。
     其中, PCIE 交换芯片 830 将中央处理器 810、 用户接口芯片 820 和第一非易失性存 储装置 840、 第三非易失性存储装置 850 连接到 PCIE 链路 ;
     第一非易失性存储装置 840 和第三非易失性存储装置 850 包括内存和非易失性存 储介质 ; 其中, 第一非易失性存储装置 840 和第三非易失性存储装置 850 的非易失性存储装 置的内存可为 : DDR 同步动态随机存储器、 DDRII 同步动态随机存储器、 DDRIII 同步动态随 机存储器等高性能的易失性存储介质, 或也可为虚拟内存。第一非易失性存储装置 840 和第三非易失性存储装置 850 非易失性存储介质可包括 : 闪速存储器 (flash)、 铁电存储介质 或其它存储介质。
     中央处理器 810, 用于控制将从用户接口芯片 820 输入的数据通过 PCIE 链路分别 传递到第一非易失性存储装置 840 和第三非易失性存储装置 840 ;
     第一非易失性存储装置 840, 用于将上述数据写入第一非易失性存储装置 840 的 内存中 ; 将写入第一非易失性存储装置 840 的内存中的该数据, 写入到第一非易失性存储 装置 840 的非易失性存储介质。
     在一种应用场景下, 第一非易失性存储装置 840 还可以包括控制器, 该控制器可 对该非易失性存储装置的内存进行缓存 (cache) 管理, 包括 : 输入输出聚合 (IO 聚合 )、 数 据命中、 数据淘汰等, 其中, 具体的 cache 管理策略可根据具体情况具体设定, 此处不做限 定。若第一非易失性存储装置 840 为分配了 PCIE 总线 Memory 窗口地址空间的存储装置, 则 CPU 710 可通过控制信令, 将上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 840 的逻辑存储空间地址的映射对应关系, 通知第一非易失性存储装置 840( 若 PCIE 总线 Memory 窗口地址与非易失性存储装置的逻辑存储空间地址的映射对应关系, 是 CPU710 和 第一非易失性存储装置 840 事先约定的一种默认对应关系, 则 CPU 710 可无需将上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 840 的逻辑存储空间地址的映射对应关系 通知给第一非易失性存储装置 840)。 第一非易失性存储装置 840 的控制器可将第一数据写 入该非易失性存储装置的内存中 ; 该控制器可基于预设的缓存管理策略 ( 该缓存管理策略 可以包括 : 当非易失性存储装置的内存的剩余空间低于某阈值 ( 该阈值例如为 10%, 20%、 30%或其它值 ) 时, 将写入内存中的数据写入非易失性存储介质 ; 或者将写入到内存中的 数据立即写入非易失性存储介质, 当然也可以包括其它缓存管理策略 ), 并根据上述 PCIE 总线 Memory 窗口地址与第一非易失性存储装置 840 的逻辑存储空间地址的映射对应关系, 以及第一非易失性存储装置 840 的逻辑存储空间地址和物理存储空间地址的映射对应关 系, 控制将写入第一非易失性存储装置 840 的内存中的第一数据, 写入到第一非易失性存 储装置 840 的非易失性存储介质中。
     此外, 若 CPU 710 对第一非易失性存储装置 840 的内存空间进行了统一的编址, 则 也可以由 CPU 710 控制将第一数据写入第一非易失性存储装置 840 的内存中, 并基于预设 的缓存管理策略, 将写入该第一非易失性存储装置 840 的内存中的第一数据写入第一非易 失性存储装置 840 的非易失性存储介质。
     在实际应用中, 第一非易失性存储装置 840 的控制器将第一数据写入该第一非易 失性存储装置 840 的内存时, 该控制器可先判断该非易失性存储装置的内存中是否已缓存 有与第一数据相同的数据 ( 通常可根据写入地址是否相同来判断内存中是否已缓存有与 第一数据相同的数据, 若内存中存在与第一数据写入地址相同的数据 ( 为便于描述, 可称 之为第二数据 ), 则可认为第二数据和第一数据相同 ), 若没有 ; 则将第一数据写入该非易 失性存储装置的内存 ; 若有, 则将该第二数据作为写入到第一非易失性存储装置 840 的内 存中的第一数据 ( 即, 此时控制器不再控制将第一数据写入到非易失性存储装置的内存, 而将第二数据作为是写入到非易失性存储装置的内存中的第一数据 ), 或者将第一数据写 入第一非易失性存储装置 840 的内存以替换该第二数据。
     第三非易失性存储装置 850, 用于将上述数据写入第三非易失性存储装置 850 的内存中。 可以理解, 此时第三非易失性存储装置 850 是作为第一非易失性存储装置 840 的 一个备份非易失性存储装置。例如, CPU 810 可控制将从用户接口芯片输入的第一数据通 过 PCIE 链路分别写入到第一非易失性存储装置 840 的某 PCIE 总线 Memory 窗口地址和第 三非易失性存储装置 850 的某 PCIE 总线 Memory 窗口地址 ; 其中, 与第一非易失性存储装 置 840 的控制器写入数据的方式类似, 第三非易失性存储装置 850 的控制器可将上述第一 数据写入该非易失性存储装置的内存中 ; 该控制器可基于预设的缓存管理策略, 并根据上 述 PCIE 总线 Memory 窗口地址与第三非易失性存储装置 850 的逻辑存储空间地址的映射对 应关系, 以及第三非易失性存储装置 850 的逻辑存储空间地址和物理存储空间地址的映射 对应关系, 控制将写入第三非易失性存储装置 850 的内存中的第一数据, 写入到第三非易 失性存储装置 850 的非易失性存储介质中。此外若 CPU 810 对第三非易失性存储装置的内 存空间进行了统一的编址, 则也可由 CPU 810 控制将第一数据写入第三非易失性存储装置 850 的内存中, 并基于预设的缓存管理策略, 将写入第三非易失性存储装置 850 的内存中的 第一数据写入第三非易失性存储装置 850 的非易失性存储介质。特别的, 考虑到对第一数 据进行校验保护后便可以删除写入第三非易失性存储装置 850 的第一数据, 因此, 第三非 易失性存储装置 850 可暂时不将写入其内存中的第一数据存入其非易失性存储介质, 而在 将校验数据写入第一非易失性存储装置 840( 或第二非易失性存储装置 ) 的非易失性存储 介质之后, CPU 810 可向第三非易失性存储装置 850 发送数据删除指令, 第三非易失性存储 装置 850 根据该数据删除指令删除其内存中缓存的第一数据, 这样既进行了内存镜像, 又 相对减了对其非易失性存储介质进行数据写入或擦除的次数。
     可以理解的是, 本实施例中的存储阵列 800 的可如上述方法实施例中的存储阵 列, 其功能可以根据上述方法实施例中的方法具体实现, 其具体实现过程可以参照上述方 法实施例的相关描述, 此处不再赘述。
     参见图 9, 本发明实施例还提供一种存储系统, 可包括 :
     存储阵列, 以及与存储阵列 910 的用户接口芯片连接的用户端设备 920。
     其中, 用户端设备 920 可用于通过存储阵列的用户接口芯片, 访问存储阵列 910, 例如用户端设备 920 可向存储阵列 910 写入数据, 和 / 或, 从存储阵列 910 读取数据等。
     其中, 存储阵列 910 例如可为存储阵列 600、 存储阵列 700 或存储阵列 800。
     需要说明的是, 对于前述的各方法实施例, 为了简单描述, 故将其都表述为一系列 的动作组合, 但是本领域技术人员应该知悉, 本发明并不受所描述的动作顺序的限制, 因为 依据本发明, 某些步骤可以采用其它顺序或者同时进行。其次, 本领域技术人员也应该知 悉, 说明书中所描述的实施例均属于优选实施例, 所涉及的动作和模块并不一定是本发明 所必须的。
     在上述实施例中, 对各个实施例的描述都各有侧重, 某个实施例中没有详述的部 分, 可以参见其它实施例的相关描述。
     综上, 本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性 存储介质, 将内存和非易失性存储介质整合在一起, 而用户接口芯片输入的数据直接通过 PCIE 链路传递到非易失性存储装置中, 再将其存储在非易失性存储装置的非易失性存储 介质, 该数据写入机制相对于现有技术 ( 现有技术中用户接口芯片输入的数据先到与 CPU
     连接的内存, 而后 CPU 控制将该数据从该与 CPU 连接的内存搬移到存储设备 ) 占用更少的 PCIE 链路, 有利于提升存储系统性能 ; 并且, 基于上述架构进行用户接口芯片输入数据的 校验保护, 有利于提升数据安全性。
     进一步的, 由于非易失性存储装置配置内存, 存储设备若配置多个非易失性存储 装置, 则可以提供出数倍于现有技术的内存通道, 提供更大的内存接口带宽, 进一步提升存 储系统性能。
     部分或全部缓存管理功能 ( 如数据读写控制、 IO 聚合、 数据命中、 数据淘汰等 ) 由 CPU 集中式管理转变为各个非易失性存储装置的分布式管理, 这样可相对降低 CPU 的处理 负荷, 进一步提升存储系统性能。 并且, 采用该架构的存储阵列有利于降低存储阵列的体积 和功耗。
     本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成, 该程序可以存储于一计算机可读存储介质中, 存储 介质可以包括 : 只读存储器、 随机存储器、 磁盘或光盘等。
     以上对本发明实施例所提供的存储阵列和存储系统及数据保护方法进行了详细 介绍, 本文中应用了具体个例对本发明的原理及实施方式进行了阐述, 以上实施例的说明 只是用于帮助理解本发明的方法及其核心思想 ; 同时, 对于本领域的一般技术人员, 依据本 发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上, 本说明书内容不应理解 为对本发明的限制。

存储阵列和存储系统及数据保护方法.pdf_第1页
第1页 / 共29页
存储阵列和存储系统及数据保护方法.pdf_第2页
第2页 / 共29页
存储阵列和存储系统及数据保护方法.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《存储阵列和存储系统及数据保护方法.pdf》由会员分享,可在线阅读,更多相关《存储阵列和存储系统及数据保护方法.pdf(29页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102346653A43申请公布日20120208CN102346653ACN102346653A21申请号201110276089022申请日20110916G06F3/0620060171申请人成都市华为赛门铁克科技有限公司地址611731四川省成都市高新区西部园区清水河片区72发明人柯乔饶成莉74专利代理机构深圳市深佳知识产权代理事务所普通合伙44285代理人彭愿洁李文红54发明名称存储阵列和存储系统及数据保护方法57摘要本发明实施例提供存储阵列和存储系统及数据保护方法,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整。

2、合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到该非易失性存储装置中,再将其存储在该非易失性存储装置的非易失性存储介质,即实现用户接口芯片到非易失性存储装置的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能;并且,基于上述架构进行用户接口芯片输入数据的校验保护,有利于提升数据安全性。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书16页附图9页CN102346673A1/3页21一种存储设备数据保护方法,其特征在于,包括将从用户接口芯片输入的数据通过快速外设组件互联PCI。

3、E链路传递到第一非易失性存储装置,其中,所述用户接口芯片和所述第一非易失性存储装置连接到PCIE链路,所述第一非易失性存储装置包括内存和非易失性存储介质;将所述数据写入所述第一非易失性存储装置的内存中;读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运算的数据进行校验运算得到校验数据;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;通过PCIE链路将所述校验数据写入所述第一非易失性存储装置的非易失性存储介质或第二非易失性存储装置的非易失性存储介质。2根据权利要求1所述的方法,其特征在于,所述将从用户接口芯片输入的数据通过快速外设。

4、组件互联PCIE链路传递到第一非易失性存储装置,包括CPU将从用户接口芯片输入的数据,通过PCIE链路写入到第一非易失性存储装置的PCIE总线存储MEMORY窗口地址;其中,所述第一非易失性存储装置为分配了PCIE总线MEMORY窗口地址空间的存储设备。3根据权利要求2所述的方法,其特征在于,所述方法还包括CPU通过控制指令将所述PCIE总线MEMORY窗口地址与固态硬盘的逻辑存储空间地址的对应关系,通知所述第一非易失性存储装置;所述第一非易失性存储装置还包括控制器,所述将所述数据写入所述第一非易失性存储装置的内存中,包括所述第一非易失性存储装置的控制器将所述数据写入所述非易失性存储装置的内存。

5、中;所述将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储介质,包括所述第一非易失性存储装置的控制器根据所述PCIE总线MEMORY窗口地址与第一非易失性存储装置的逻辑存储空间地址的对应关系,以及所述第一非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,将写入所述第一非易失性存储装置的内存中的所述数据,对应写入到所述第一非易失性存储装置的非易失性存储介质。4根据权利要求1所述的方法,其特征在于,所述方法还包括将所述数据写入第三非易失性存储装置的内存中,所述第三非易失性存储装置包括内存和非易失性存储介质。5根据权利要求4所述的方法,其特征在于,所述将所。

6、述校验数据写入所述第一非易失性存储装置或第二非易失性存储装置的非易失性存储介质,之后还包括CPU向所述第三非易失性存储装置发送数据删除指令;所述第三非易失性存储装置根据所述数据删除指令删除其内存中存储的所述数据。权利要求书CN102346653ACN102346673A2/3页36一种存储设备数据访问方法,其特征在于,包括将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路分别传递到第一非易失性存储装置和第二易失性存储装置,其中,所述用户接口芯片和所述非易失性存储装置连接到PCIE链路,所述第一非易失性存储装置和第二易失性存储装置分别包括内存和非易失性存储介质;将所述数据写入所述第一非易。

7、失性存储装置和第二非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的数据,写入到所述非易失性存储介质。7根据权利要求6所述的方法,其特征在于,所述将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路分别传递到第一非易失性存储装置和第二非易失性存储装置,包括中央处理器CPU将从用户接口芯片输入的数据,通过PCIE链路分别写入到第一非易失性存储装置和第二非易失性存储装置的PCIE总线存储MEMORY窗口地址;其中,所述第一非易失性存储装置和第二非易失性存储装置为分配了PCIE总线MEMORY窗口地址空间的存储设备。8一种存储阵列,其特征在于,包括中央处理器CPU、用户接口芯片。

8、、快速外设组件互联PCIE交换芯片,及第一非易失性存储装置或第一非易失性存储装置和第二非易失性存储装置;其中,PCIE交换芯片将CPU、用户接口芯片和第一非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置包括内存和非易失性存储介质;所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路传递到所述第一非易失性存储装置;所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;所述CPU还用于,读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运。

9、算的数据进行校验运算得到校验数据;控制将所述校验数据通过PCIE链路传递到所述第一非易失性存储装置或第二非易失性存储装置。9根据权利要求8所述的存储阵列,其特征在于,所述CPU还用于,将所述数据写入第三非易失性存储装置的内存中,所述第三非易失性存储装置包括内存和非易失性存储介质。10一种存储阵列,其特征在于,包括中央处理器CPU、硬件引擎、用户接口芯片、快速外设组件互联PCIE交换芯片以及第一非易失性存储装置;其中,PCIE交换芯片将CPU、硬件引擎、用户接口芯片和第一非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置包括内存和非易失性存储介质;所述CPU,用于控制将从所述用户接口芯。

10、片输入的数据通过PCIE链路传递到所述第一非易失性存储装置;所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存权利要求书CN102346653ACN102346673A3/3页4储装置的非易失性存储介质;所述硬件引擎用于,读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运算的数据进行校验运算得到校验数据;控制将所述校验数据通过PCIE链路传递到所述第一非易失性存储装置或第二非易失性存储装置。11一种存储阵列,其特征在于,包括中央处理器CPU、用户接口芯片、快速外设组件互联PCIE。

11、交换芯片以及第一非易失性存储装置和第三非易失性存储装置;其中,PCIE交换芯片将CPU、用户接口芯片、第一非易失性存储装置和第三非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置和第三非易失性存储装置包括内存和非易失性存储介质;所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路分别传递到所述第一非易失性存储装置和第三非易失性存储装置;所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;所述第三非易失性存储装置,用于将所述数据写入所述第三非易失性。

12、存储装置的内存中。12一种存储系统,其特征在于,包括如权利要求8至11任一项所述的存储阵列,以及与所述存储阵列的用户接口芯片连接的用户端设备;其中,所述用户端设备,用于通过所述用户接口芯片访问所述存储阵列。权利要求书CN102346653ACN102346673A1/16页5存储阵列和存储系统及数据保护方法技术领域0001本发明涉及计算机技术领域,具体涉及一种存储阵列和存储系统及数据保护方法。背景技术0002传统机械硬盘有机械部件,输入输出IO,INPUT/OUTPUT性能较低。现有的能提供存储功能的系统级设备主要是采用机械硬盘作为存储介质,而这类产品例如个人电脑、服务器、存储阵列等的设计方法。

13、是建立在传统硬盘的低IO性能基础之上的。0003近年,固态硬盘SSD,SOLIDSTATEDISK逐步兴起,固态硬盘的最主要的特点是几乎没有机械部件,IO性能非常高。利用固态硬盘设计的系统级产品的性能可以得到进一步的提升。0004参见图1,现有的存储阵列例如网络附属存储设备的典型架构是X86架构,该系统通过用户接口芯片和用户端例如服务器等相连。快速外设组件互联PCIE,PERIPHERALCOMPONENTINTERCONNECTEXPRESS总线交换芯片将中央处理器CPU,CENTRALPROCESSINGUNIT和用户接口芯片以及存储接口芯片等外设组件互联。0005现有在用户接口芯片输入的。

14、数据的写入过程中,CPU控制先将数据写入到与CPU/北桥连接的内存中,在该内存中完成缓存CACHE处理,并将该数据镜像到另一与CPU/北桥连接的内存;而后在CPU的控制下将数据从该内存写入到非易失性存储介质。现有的数据访问方式占用较多PCIE链路,影响到系统性能的进一步提升。发明内容0006本发明实施例提供存储阵列和存储系统及数据保护方法,以减少数据访问对PCIE链路的占用,提升系统性能。0007为解决上述技术问题,本发明实施例提供以下技术方案0008一种存储设备数据保护方法,包括0009将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路传递到第一非易失性存储装置,其中,所述用户接口芯。

15、片和所述第一非易失性存储装置连接到PCIE链路,所述第一非易失性存储装置包括内存和非易失性存储介质;0010将所述数据写入所述第一非易失性存储装置的内存中;0011读取出包括所述数据在内的一组待校验运算的数据;0012对所述一组待校验运算的数据进行校验运算得到校验数据;0013将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;0014通过PCIE链路将所述校验数据写入所述第一非易失性存储装置的非易失性存储介质或第二非易失性存储装置的非易失性存储介质。0015一种存储设备数据访问方法,包括说明书CN102346653ACN102346673A2/。

16、16页60016将从用户接口芯片输入的数据通过快速外设组件互联PCIE链路分别传递到第一非易失性存储装置和第二易失性存储装置,其中,所述用户接口芯片和所述非易失性存储装置连接到PCIE链路,所述第一非易失性存储装置和第二易失性存储装置分别包括内存和非易失性存储介质;0017将所述数据写入所述第一非易失性存储装置和第二非易失性存储装置的内存中;0018将写入所述第一非易失性存储装置的内存中的数据,写入到所述非易失性存储介质。0019一种存储阵列,包括0020中央处理器CPU、用户接口芯片、快速外设组件互联PCIE交换芯片,及第一非易失性存储装置或第一非易失性存储装置和第二非易失性存储装置;002。

17、1其中,PCIE交换芯片将CPU、用户接口芯片和第一非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置包括内存和非易失性存储介质;0022所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路传递到所述第一非易失性存储装置;0023所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;0024所述CPU还用于,读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运算的数据进行校验运算得到校验数据;控制将所述校验数据通过PCIE链路传递到所述。

18、第一非易失性存储装置或第二非易失性存储装置。0025一种存储阵列,包括0026中央处理器CPU、硬件引擎、用户接口芯片、快速外设组件互联PCIE交换芯片以及第一非易失性存储装置;0027其中,PCIE交换芯片将CPU、硬件引擎、用户接口芯片和第一非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置包括内存和非易失性存储介质;0028所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路传递到所述第一非易失性存储装置;0029所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存。

19、储装置的非易失性存储介质;0030所述硬件引擎用于,读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运算的数据进行校验运算得到校验数据;控制将所述校验数据通过PCIE链路传递到所述第一非易失性存储装置或第二非易失性存储装置。0031一种存储阵列,包括0032中央处理器CPU、用户接口芯片、快速外设组件互联PCIE交换芯片以及第一非易失性存储装置和第三非易失性存储装置;0033其中,PCIE交换芯片将CPU、用户接口芯片、第一非易失性存储装置和第三非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置和第三非易失性存储装置包括说明书CN102346653ACN10234667。

20、3A3/16页7内存和非易失性存储介质;0034所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路分别传递到所述第一非易失性存储装置和第三非易失性存储装置;0035所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;0036所述第三非易失性存储装置,用于将所述数据写入所述第三非易失性存储装置的内存中。0037一种存储系统,包括0038如上述实施例所述的存储阵列,以及与所述存储阵列的用户接口芯片连接的用户端设备;其中,所述用户端设备,用于通过所述用户接口芯。

21、片访问所述存储阵列。0039由上可见,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到该非易失性存储装置中,再将其存储在该非易失性存储装置的非易失性存储介质,即实现用户接口芯片到非易失性存储装置的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能;并且,基于上述架构进行用户接口芯片输入数据的校验保护,有利于提升数据安全性。附图说明0040为了更清楚地说明本发明实施例和现有技术中的技术方案,下面将对实施例和现有。

22、技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。0041图1是现有技术的一种存储阵列架构示意图;0042图2A是本发明实施例提供的一种存储阵列架构示意图;0043图2B是本发明实施例提供的另一种存储阵列架构示意图;0044图3是本发明实施例提供的一种数据保护方法流程示意图;0045图4是本发明实施例提供的另一种数据保护方法流程示意图;0046图5是本发明实施例提供的一种数据写入流程示意图;0047图6A是本发明实施例提供的一种存储阵列示意图;0048图6B是。

23、本发明实施例提供的另一种存储阵列示意图;0049图6C是本发明实施例提供的另一种存储阵列示意图;0050图7A是本发明实施例提供的另一种存储阵列示意图;0051图7B是本发明实施例提供的另一种存储阵列示意图;0052图8是本发明实施例提供的一种存储阵列示意图;0053图9是本发明实施例提供的一种存储系统示意图。具体实施方式说明书CN102346653ACN102346673A4/16页80054本发明实施例提供存储阵列和存储系统及数据保护方法。0055为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例。

24、仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。0056为便于理解实施,本发明实施例中首先提供一种存储阵列的架构,参见图2A和图2B,图2A和图2B为本发明实施例举例提供的两种存储阵列的架构示意图。图2A所示存储阵列可包括至少1个CPU和多个非易失性存储装置例如SSD或其它非易失性存储装置,图2A中以SSD为例,以及至少一个PCIE交换芯片;图2B所示存储阵列可包括至少1个CPU、至少一个硬件引擎和多个非易失性存储装置例如SSD、机械硬盘或其它非易失性存储装置,图2A中以SSD。

25、为例,以及至少一个PCIE交换芯片。其中,PCIE交换芯片配置有多个PCIE接口,PCIE交换芯片可将CPU、以及用户接口芯片和非易失性存储装置等外设组件连接到PCIE链路。其中,非易失性存储装置可包括内存该内存可以是物理内存,也可以是虚拟内存和非易失性存储介质,非易失性存储装置还可包括控制器,该控制器可控制将数据从该非易失性存储装置的内存,写入该非易失性存储装置的非易失性存储介质,以及将该非易失性存储装置的非易失性存储介质存储的数据,读取到该非易失性存储装置的内存等。0057本发明实施例的数据保护方法例如可基于图2A或2B所示架构的存储阵列具体实施,当然亦可在基于该架构的灵活变形架构上具体实。

26、施。0058本发明存储设备数据保护方法的一个实施例,可包括将从用户接口芯片输入的数据通过PCIE链路传递到第一非易失性存储装置,其中,该用户接口芯片和第一非易失性存储装置连接到PCIE链路,第一非易失性存储装置包括内存和非易失性存储介质;将该数据写入第一非易失性存储装置的内存中;读取出包括该数据在内的一组待校验运算的数据;对该一组待校验运算的数据进行校验运算得到校验数据;将写入该第一非易失性存储装置的内存中的上述数据,写入到第一非易失性存储装置的非易失性存储介质;通过PCIE链路将上述校验数据写入第一非易失性存储装置的非易失性存储介质或第二非易失性存储装置的非易失性存储介质。0059参见图3,。

27、具体步骤可以包括0060301、将从用户接口芯片输入的数据通过PCIE链路传递到第一非易失性存储装置;0061在一种应用场景下,当用户端设备的某数据为便于引述,称之为第一数据需要通过存储设备例如存储阵列或一般的存储设备的用户接口芯片写入该存储设备时,可以由CPU控制将从用户接口芯片输入的第一数据通过PCIE链路传递到该存储设备的某一非易失性存储装置为便于引述,可称之为第一非易失性存储装置。0062其中,存储设备配置有包括一个或多个非易失性存储装置例如SSD或其它存储介质类型的非易失性存储装置;非易失性存储装置包括内存和非易失性存储介质等;用户接口芯片提供用户接口,主要负责用户端设备和存储设备的。

28、数据交互。0063其中,非易失性存储装置的内存可为双倍速率DDR,DOUBLEDATARATE同步动说明书CN102346653ACN102346673A5/16页9态随机存储器、DDRII同步动态随机存储器、DDRIII同步动态随机存储器等高性能的易失性存储介质,或者也可以为虚拟内存。非易失性存储介质可包括闪速存储器FLASH、铁电存储介质或其它存储介质。0064在实际应用中,若用户接口芯片可以直接访问块BLOCK设备,则CPU可控制将从用户接口芯片输入的第一数据,通过PCIE链路写入到第一非易失性存储装置的某逻辑存储地址LBA,LOGICBLOCKADDRESS。若用户接口芯片并不能直接访。

29、问BLOCK设备,但可以访问存储MEMORY设备,则CPU在为接入的第一非易失性存储装置初始化时,可为第一非易失性存储装置分配一段MEMORY窗口地址空间其中,该MEMORY窗口地址空间的大小例如可以等于该非易失性存储装置的内存如4GB的大小,或者也可以等于该非易失性存储装置的逻辑存储空间例如400GB的大小,当然也可为其它的取值,当用户接口芯片输入第一数据时,CPU可控制将从用户接口芯片输入的第一数据通过PCIE链路写入到第一非易失性存储装置的某PCIE总线MEMORY窗口地址。0065302、将上述数据写入第一非易失性存储装置的内存中;0066其中,非易失性存储装置集成内存,这就为CACH。

30、E由集中式管理变为分布式管理创造了条件,例如若每个非易失性存储装置都集成内存,则每个非易失性存储装置可对其内存进行独立的管理,这样就无需由CPU来统一管理所有的内存,这样就可实现CACHE由集中式管理向分布式管理转变。0067303、读取出包括该数据在内的一组待校验运算的数据;0068在实际应用中,可根据业务需要来确定校验分条的大小例如,1个分条大小为16KB、32KB、64KB或其它大小等,一个校验分条包括一组待校验运算的数据,例如可将用户接口芯片输入的上述数据和非易失性存储装置如第一非易失性存储装置和/或其它非易失性存储装置存储的其它待校验运算的数据作为一组待校验运算的数据;或,也可直接将。

31、从用户接口芯片输入的上述数据作为一组待校验运算的数据。0069304、对该一组待校验运算的数据进行校验运算得到校验数据;0070其中,若存储阵列中包括CPU和硬件引擎,则可由CPU或硬件引擎读取出包括该数据在内的一组待校验运算的数据,并对该一组待校验运算的数据进行校验运算例如异或运算或其它校验运算得到校验数据。若存储阵列中包括CPU但不包括硬件引擎,则可由CPU读取出包括该数据在内的一组待校验运算的数据,并对该一组待校验运算的数据进行校验运算例如异或运算或其它校验运算得到校验数据。0071在实际应用中,CPU或硬件引擎可根据业务需要,对数据进行多种可选方式的数据保护,例如若进行RAID5RED。

32、UNDANTARRAYOFINDEPENDENTDISK5,独立冗余磁盘阵列5校验保护,则可计算出一个校验数据即单校验,若进行RAID6校验运算,则可计算得到两个校验数据双校验。0072305、将写入该第一非易失性存储装置的内存中的上述数据,写入到第一非易失性存储装置的非易失性存储介质;0073在一种应用场景下,非易失性存储装置还可以包括控制器,该控制器可对该非易失性存储装置的内存进行缓存CACHE管理,包括输入输出聚合IO聚合、数据命中、数据淘汰等,其中,具体的CACHE管理策略可根据具体情况具体设定,此处不做限定。若第一非易失性存储装置为分配了PCIE总线MEMORY窗口地址空间的存储装置。

33、,则CPU可通过控说明书CN102346653ACN102346673A6/16页10制信令,将上述PCIE总线MEMORY窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系,通知第一非易失性存储装置当然,若PCIE总线MEMORY窗口地址与非易失性存储装置的逻辑存储空间地址的映射对应关系,是CPU和第一非易失性存储装置事先约定的一种默认对应关系,则CPU可无需将上述PCIE总线MEMORY窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系通知给第一非易失性存储装置。第一非易失性存储装置的控制器可将第一数据写入该非易失性存储装置的内存中;该控制器可基于预设的缓存管理策略。

34、该缓存管理策略可以包括当非易失性存储装置的内存的剩余空间低于某阈值该阈值例如为10,20、30或其它值时,将写入内存中的数据写入非易失性存储介质;或者将写入到内存中的数据立即写入非易失性存储介质,当然也可以包括其它缓存管理策略,并根据上述PCIE总线MEMORY窗口地址与第一非易失性存储装置的逻辑存储空间地址的映射对应关系,以及第一非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,控制将写入第一非易失性存储装置的内存中的第一数据,写入到第一非易失性存储装置的非易失性存储介质中。0074此外,若CPU对第一非易失性存储装置的内存空间进行了统一的编址,则也可以由CPU控制将第一数。

35、据写入该非易失性存储装置的内存中,并基于预设的缓存管理策略,将写入该非易失性存储装置的内存中的第一数据写入该非易失性存储装置的非易失性存储介质。0075在实际应用中,第一非易失性存储装置的控制器将第一数据写入该第一非易失性存储装置的内存时,该控制器可先判断该非易失性存储装置的内存中是否已缓存有与第一数据相同的数据通常可根据写入地址是否相同来判断内存中是否已缓存有与第一数据相同的数据,若内存中存在与第一数据写入地址相同的数据为便于描述,可称之为第二数据,则可认为第二数据和第一数据相同,若没有;则将第一数据写入该非易失性存储装置的内存;若有,则将该第二数据作为写入到非易失性存储装置的内存中的第一数。

36、据即此时控制器不再控制将第一数据写入到非易失性存储装置的内存,而将第二数据作为是写入到非易失性存储装置的内存中的第一数据,或者将第一数据写入该非易失性存储装置的内存以替换该第二数据。0076可以发现,本实施例的上述方案中,某一数据的写入过程只需要占用一次PCIE链路,该数据写入机制相对于现有技术现有技术中用户接口芯片输入的数据先到与CPU连接的内存,而后再从与CPU连接的该内存搬移到存储设备将有效的降低数据写入过程的总线资源占用,同时,由于可由非易失性存储装置分布是管理数据写入过程,故而可减少对CPU资源的占用。0077306、通过PCIE链路将上述校验数据写入第一非易失性存储装置或第二非易失。

37、性存储装置的非易失性存储介质。0078其中,存储阵列中CPU或硬件引擎可通过PCIE链路,将上述校验数据传递到第一非易失性存储装置或第二非易失性存储装置,例如,将上述校验数据写入第一非易失性存储装置或第二非易失性存储装置的某PCIE总线MEMORY窗口地址。与存储用户接口芯片输入数据的方式类似,第一非易失性存储装置或第二非易失性存储装置的控制器可将校验数据写入第一非易失性存储装置或第二非易失性存储装置的内存中;该控制器可基于预设的缓存管理策略该缓存管理策略例如可包括当非易失性存储装置的内存说明书CN102346653ACN102346673A7/16页11的剩余空间低于某阈值例如10,20、3。

38、0或其它值时,将写入内存中的数据写入非易失性存储介质;或者将写入到内存中的数据立即写入非易失性存储介质,当然也可包括其它缓存管理策略,并根据上述PCIE总线MEMORY窗口地址与第一非易失性存储装置或第二非易失性存储装置的逻辑存储空间地址的映射对应关系,以及第一非易失性存储装置或第二非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,控制将写入第一非易失性存储装置或第二非易失性存储装置的内存中的校验数据,写入第一非易失性存储装置或第二非易失性存储装置的非易失性存储介质中。此外,若CPU对第一非易失性存储装置或第二非易失性存储装置的内存空间进行了统一的编址,则也可由CPU或硬件引。

39、擎控制将校验数据写入第一非易失性存储装置或第二非易失性存储装置的内存中,并基于预设的缓存管理策略,将写入该第一非易失性存储装置或第二非易失性存储装置的内存中的校验数据写入该第一非易失性存储装置或第二非易失性存储装置的非易失性存储介质。0079此外,若还需要进行写入数据的内存镜像,则还可将用户接口芯片输入的上述数据写入第三非易失性存储装置的内存中,该第三非易失性存储装置包括内存和非易失性存储介质,可以理解,此时第三非易失性存储装置是作为第一非易失性存储装置的一个备份非易失性存储装置。例如,CPU可控制将从用户接口芯片输入的第一数据通过PCIE链路分别写入到第一非易失性存储装置的某PCIE总线ME。

40、MORY窗口地址和第三非易失性存储装置的某PCIE总线MEMORY窗口地址;其中,与第一非易失性存储装置的控制器写入数据的方式类似,第三非易失性存储装置的控制器可将上述第一数据写入该非易失性存储装置的内存中;该控制器可基于预设的缓存管理策略,并根据上述PCIE总线MEMORY窗口地址与第三非易失性存储装置的逻辑存储空间地址的映射对应关系,以及第三非易失性存储装置的逻辑存储空间地址和物理存储空间地址的映射对应关系,控制将写入第三非易失性存储装置的内存中的第一数据,写入到第三非易失性存储装置的非易失性存储介质中。此外,若CPU对第三非易失性存储装置的内存空间进行了统一的编址,则也可由CPU控制将第。

41、一数据写入第三非易失性存储装置的内存中,并基于预设的缓存管理策略,将写入第三非易失性存储装置的内存中的第一数据写入第三非易失性存储装置的非易失性存储介质。特别的,考虑到对第一数据进行校验保护后便可以删除写入第三非易失性存储装置的第一数据,因此,第三非易失性存储装置可暂时不将写入其内存中的第一数据存入其非易失性存储介质,而在将校验数据写入第一非易失性存储装置或第二非易失性存储装置的非易失性存储介质之后,CPU可向第三非易失性存储装置发送数据删除指令,第三非易失性存储装置根据该数据删除指令删除其内存中缓存的第一数据,这样既进行了内存镜像,又相对减了对其非易失性存储介质进行数据写入或擦除的次数。00。

42、80可以理解的是,存储设备在数据读写过程中,存储设备的不同模块可能会对数据的封装格式进行一定的转换,例如,用户接口芯片可将来自用户端设备的数据的封装格式转换为PCIE报文,将需向用户端设备发送的数据转换为该用户端设备所对应的封装格式;非易失性存储装置则可将来自用户接口芯片或其它模块的PCIE报文的报文头去除,并缓存到内存以及写入非易失性存储介质;非易失性存储装置亦可将从其内存中读取的需向用户接口芯片或其它模块发送的数据封装为PCIE报文并发送;当然,不同的应用场景,数据对应的封装格式可能有所不同,此处不再一一赘述。说明书CN102346653ACN102346673A8/16页120081由上。

43、可见,本实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到非易失性存储装置中,再将其存储在非易失性存储装置的非易失性存储介质,即可以实现用户接口芯片到SSD的数据直接传输,可无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能;并且,基于上述架构进行用户接口芯片输入数据的校验保护,有利于提升数据安全性。0082进一步的,由于为非易失性存储装置配置内存,存储设备若配置多个非易失性存储装置,则可以提供出数倍于现有技术的内存通道,提供更大的内。

44、存接口带宽,进一步提升存储系统性能;并且,各个非易失性存储装置可进行内存的分布式管理,有利于减少对CPU资源的占用。0083为便于更好的理解和实施本发明实施例的技术方案,下面主要以在如图2B所示存储阵列架构下进行数据保护的一种实施场景为例进行详细介绍。其中,本实施例中主要以存储阵列包括的非易失性存储装置为固态硬盘为例进行描述,采用其它类型的非易失性存储装置的工作流程于此类似。0084参见图4,本发明存储阵列数据保护方法一个实施例,可包括0085401、用户接口芯片通过指令向CPU请求写入来自用户端设备的某数据为便于引述,称之为数据D1;0086402、CPU为用户接口芯片写入数据D1分配某固态。

45、硬盘为便于引述,称之为固态硬盘SSD1的PCIE总线MEMORY窗口地址为便于引述,称之为PCIE总线MEMORY窗口地址ADD1,以及为用户接口芯片写入数据D1分配另一固态硬盘为便于引述,称之为固态硬盘SSD2的PCIE总线MEMORY窗口地址为便于引述,称之为PCIE总线MEMORY窗口地址ADD2;0087例如图2B所示存储阵列,可包括至少一个PCIE交换芯片。PCIE交换芯片配置有多个PCIE接口,CPU、硬件引擎和用户接口芯片、固态硬盘等各种外设组件PCIE交换芯片连接到PCIE总线链路。0088其中,本实施例中的固态硬盘可以配置有至少两个PCIE接口,以分别连接的不同PCIE交换芯。

46、片的PCIE接口,由于通过多条PCIE链路连接到PECI交换芯片,这样可以避免因单点失效而造成该固态硬盘无法工作。0089在实际应用中,CPU在为接入的固态硬盘SSD1和SSD2初始化时,CPU可以扫描固态硬盘SSD1和SSD2的配置空间,可根据扫描到的该配置空间记录的PCIE总线MEMORY窗口地址空间的申请量,为固态硬盘SSD1和SSD2分配对应数量的PCIE总线MEMORY窗口地址空间,分别为固态硬盘SSD1和SSD2分配一段PCIE总线MEMORY窗口地址空间该MEMORY窗口的大小例如可以等于该固态硬盘的内存如4GB的大小,或者也可以等于该固态硬盘的逻辑存储空间例如400GB的大小,。

47、当然也可以是其它的取值,当用户接口芯片请求写入数据D1时,CPU可为用户接口芯片写入数据D1分配对应固态硬盘SSD1的PCIE总线MEMORY窗口地址ADD1以及固态硬盘SSD2的PCIE总线MEMORY窗口地址ADD2;0090403、用户接口芯片将数据D1通过PCIE链路写入到固态硬盘SSD1的PCIE总线MEMORY窗口地址ADD1和固态硬盘SSD2的PCIE总线MEMORY窗口地址ADD2。0091404、固态硬盘SSD1的控制器将数据D1写入固态硬盘SSD1的内存;说明书CN102346653ACN102346673A9/16页130092固态硬盘SSD2的控制器将数据D1写入固态硬。

48、盘SSD2的内存;0093405、硬件引擎读取出包括数据D1在内的一组待校验运算的数据;0094在实际应用中,可根据业务需要来确定校验分条的大小例如,1个分条大小为16KB、32KB、64KB或其它大小等,一个校验分条包括一组待校验运算的数据,例如可将用户接口芯片输入的上述数据D1和非易失性存储装置如第一非易失性存储装置和/或其它非易失性存储装置存储的其它数据作为一组待校验运算的数据;或者,也可直接将从用户接口芯片输入的上述数据D1作为一组待校验运算的数据。0095406、硬件引擎对读取出的上述一组待校验运算的数据进行校验运算得到校验数据为便于引述,称之为数据RD1,并将该校验数据写入固态硬盘。

49、SSD3的PCIE总线MEMORY窗口地址ADD3;0096其中,硬件引擎可对该一组待校验运算的数据进行例如异或运算或其它校验运算,得到校验数据RD1。在实际应用中,硬件引擎可根据业务需要,对数据进行多种可选方式的数据保护,例如若进行RAID5校验保护,则可计算出一个校验数据即单校验,若进行RAID6校验运算,则可计算得到两个校验数据双校验。0097可以理解的是,本实施例是以硬件引擎将计算出的校验数据RD1写入固态硬盘SSD3即与固态硬盘SSD1和SSD2不同的SSD,以实现盘间保护的PCIE总线MEMORY窗口地址为例,当然,硬件引擎也可将计算出的校验数据RD1写入固态硬盘SSD1或SSD2的PCIE总线MEMORY窗口地址。0098407、固态硬盘SSD1的控制器将写入其内存中的数据D1,写入到固态硬盘SSD1的非易失性存储介质;0099在一种应用场景下,CPU可将PCIE总线MEMORY窗口地址ADD1与固态硬盘SSD1的逻辑存储空间地址的映射对应关系其中,PCIE总线MEMORY窗口地址和相应固态硬盘的逻辑存储空间地址之间存在一定的映射对应关系,该映射对应关系可用窗口地址映射表来记录通知固态硬盘SSD1当然,若PCIE总线MEMORY窗口地址与固态硬盘的逻辑存储空间地址之间的映射对应关系,是CPU和固态硬盘事先约定的一种默认对应关系,则CPU可无需将PCIE总线。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1