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

文档序号:6433347阅读:215来源:国知局
专利名称:存储阵列和存储系统及数据保护方法
技术领域
本发明涉及计算机技术领域,具体涉及一种存储阵列和存储系统及数据保护方法。
背景技术
传统机械硬盘有机械部件,输入输出(10,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)管理,包括输入输出聚合(10聚合)、数据命中、数据淘汰等,其中,具体的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请求写入来自用户端设备的某数据(为便于引述,称之为数据Dl);402XPU为用户接口芯片写入数据Dl分配某固态硬盘(为便于引述,称之为固态硬盘SSD-1)的PCIE总线Memory窗口地址(为便于引述,称之为PCIE总线Memory窗口地址add-Ι),以及为用户接口芯片写入数据Dl分配另一固态硬盘(为便于引述,称之为固态硬盘SSD-2)的PCIE总线Memory窗口地址(为便于引述,称之为PCIE总线Memory窗口地址 add-2);例如图2-b所示存储阵列,可包括至少一个PCIE交换芯片。PCIE交换芯片配置有多个PCIE接口,CPU、硬件引擎和用户接口芯片、固态硬盘等各种外设组件PCIE交换芯片连接到PCIE总线链路。其中,本实施例中的固态硬盘可以配置有至少两个PCIE接口,以分别连接的不同 PCIE交换芯片的PCIE接口,由于通过多条PCIE链路连接到PECI交换芯片,这样可以避免因单点失效而造成该固态硬盘无法工作。在实际应用中,CPU在为接入的固态硬盘SSD-I和SSD-2初始化时,CPU可以扫描固态硬盘SSD-I和SSD-2的配置空间,可根据扫描到的该配置空间记录的PCIE总线Memory 窗口地址空间的申请量,为固态硬盘SSD-I和SSD-2分配对应数量的PCIE总线Memory窗口地址空间,分别为固态硬盘SSD-I和SSD-2分配一段PCIE总线Memory窗口地址空间(该 Memory窗口的大小例如可以等于该固态硬盘的内存(如4GB)的大小,或者也可以等于该固态硬盘的逻辑存储空间(例如400GB)的大小,当然也可以是其它的取值),当用户接口芯片请求写入数据Dl时,CPU可为用户接口芯片写入数据Dl分配对应固态硬盘SSD-I的PCIE 总线Memory窗口地址add_l以及固态硬盘SSD-2的PCIE总线Memory窗口地址add_2 ;403、用户接口芯片将数据Dl通过PCIE链路写入到固态硬盘SSD-1的PCIE总线 Memory窗口地址add_l和固态硬盘SSD-2的PCIE总线Memory窗口地址add_2。404、固态硬盘SSD-I的控制器将数据Dl写入固态硬盘SSD-I的内存;
固态硬盘SSD-2的控制器将数据Dl写入固态硬盘SSD-2的内存;405、硬件引擎读取出包括数据Dl在内的一组待校验运算的数据;在实际应用中,可根据业务需要来确定校验分条的大小(例如,1个分条大小为 16KB、32KB、64KB或其它大小等),一个校验分条包括一组待校验运算的数据,例如可将用户接口芯片输入的上述数据Dl和非易失性存储装置(如第一非易失性存储装置和/或其它非易失性存储装置)存储的其它数据作为一组待校验运算的数据;或者,也可直接将从用户接口芯片输入的上述数据Dl作为一组待校验运算的数据。406、硬件引擎对读取出的上述一组待校验运算的数据进行校验运算得到校验数据(为便于引述,称之为数据RDl),并将该校验数据写入固态硬盘SSD-3的PCIE总线 Memory 窗口地址 add-3 ;其中,硬件引擎可对该一组待校验运算的数据进行例如异或运算或其它校验运算,得到校验数据RDl。在实际应用中,硬件引擎可根据业务需要,对数据进行多种可选方式的数据保护,例如若进行RAID5校验保护,则可计算出一个校验数据(即单校验),若进行 RAID6校验运算,则可计算得到两个校验数据(双校验)。可以理解的是,本实施例是以硬件引擎将计算出的校验数据RDl写入固态硬盘 SSD-3(即与固态硬盘SSD-I和SS D-2不同的SSD,以实现盘间保护)的PCIE总线Memory 窗口地址为例,当然,硬件引擎也可将计算出的校验数据RDl写入固态硬盘SSD-I或SSD-2 的PCIE总线Memory窗口地址。407、固态硬盘SSD-I的控制器将写入其内存中的数据D1,写入到固态硬盘SSD-I 的非易失性存储介质;在一种应用场景下,CPU可将PCIE总线Memory窗口地址add-Ι与固态硬盘SSD-1 的逻辑存储空间地址的映射对应关系(其中,PCIE总线Memory窗口地址和相应固态硬盘的逻辑存储空间地址之间存在一定的映射对应关系,该映射对应关系可用窗口地址映射表来记录)通知固态硬盘SSD-I (当然,若PCIE总线Memory窗口地址与固态硬盘的逻辑存储空间地址之间的映射对应关系,是CPU和固态硬盘事先约定的一种默认对应关系,则CPU可无需将PCIE总线Memory窗口地址add-Ι与第一固态硬盘SSD-I的逻辑存储空间地址的映射对应关系通知该固态硬盘)。固态硬盘SSD-I的控制器可在将数据Dl写入该固态硬盘的内存中后;根据上述PCIE总线Memory窗口地址add-Ι与固态硬盘SSD-I的逻辑存储空间地址的对应关系,以及固态硬盘SSD-I的逻辑存储空间地址和物理存储空间地址的映射对应关系(其中,固态硬盘的逻辑存储空间与物理存储空间的映射对应关系,记录在固态硬盘维护的逻辑地址映射表中),控制将写入固态硬盘SSD-I的内存中的数据D1,写入到固态硬盘SSD-I的非易失性存储介质中,写入过程例如可参见图5所示的数据写入示意图。在实际应用中,固态硬盘SSD-I的控制器可先判断固态硬盘SSD-I的内存中是否已经有与数据Dl相同的数据(通常可根据写入地址是否相同来判断内存中是否已缓存有与数据Dl相同的数据,若内存中存在与数据Dl写入地址相同的数据(为便于描述,可称之为第二数据),则可认为第二数据和数据Dl相同),若没有,则可以数据Dl写入固态硬盘 SSD-I的内存中;若有,则可以直接将该已写入的与数据Dl相同的数据作为数据D1,写入固态硬盘SSD-I的非易失性存储介质,而无需执行将数据Dl写入到内存,再写入到非易失性存储介质的操作。而这也可看成是固态硬盘SSD-I进行的一种分布式的缓存管理,下放了CPU的缓存管理功能,以降低CPU的工作负荷。可以理解 的是,将数据Dl写入固态硬盘SSD-2的方式,可以与上述将数据Dl写入固态硬盘SSD-I的方式类似。可以发现,本实施例的方案中,数据Dl的写入某个固态硬盘只需要占用一次PCIE 链路,该数据写入机制相对于现有技术(现有技术中用户接口芯片输入的数据先到与CPU 连接的内存,而后再从与CPU连接的该内存搬移到存储设备),将有效的降低数据写入过程的总线资源占用,同时,由于可由非易失性存储装置分布是管理数据写入过程,故而可减少对CPU资源的占用。408、固态硬盘SSD-3的控制器将校验数据RDl写入其内存,并将写入其内存中的数据写入到其非易失性存储介质;409、CPU向固态硬盘SSD-2发送数据删除指令。固态硬盘SSD-2可根据该数据删除指令删除其内存中存储的数据D1。由于固态硬盘SSD-2并未立即将数据Dl写入其非易失性存储介质,这样就有利于减少对其非易失性存储介质进行数据写入或擦除的次数。在实际应用中,固态硬盘(如SSD-I、SSD-2、SSD_3)的控制器可对该固态硬盘的内存进行cache管理,例如可包括输入输出聚合(10聚合)、数据命中、数据淘汰等,其中,具体的cache管理策略可根据具体情况具体设定,此处不做限定。举例来说,若固态硬盘SSD-I的内存剩余足够的空间,固态硬盘SSD-I的控制器可将数据Dl写入固态硬盘SSD-I的内存,当然,如果其内存不足,则固态硬盘SSD-I的控制器可先淘汰该内存中的非必要数据(非必要数据例如可以是长时间未被访问的数据),而后再将数据Dl写入固态硬盘SSD-I的内存,而这也可看成是固态硬盘SSD-I进行的一种分布式的缓存管理,下放CPU的缓存管理功能,以降低CPU的工作负荷。进一步的,若后续还需要从固态硬盘SSD-I读取数据D1,则固态硬盘SSD-I的控制器可将该固态硬盘SSD-I的非易失性存储介质中存储的数据Dl读取到固态硬盘SSD-I的内存中;将读取到固态硬盘SSD-I的内存中的数据Dl通过PCIE链路传递到用户接口芯片 (若用户接口芯片请求读取数据Dl);或者可将读取到该固态硬盘的内存中的数据Dl通过 PCIE链路传递给CPU或硬件引擎处理(若CPU或硬件引擎需要对数据Dl处理)。由上可见,本实施例中的存储设备配置的固态硬盘包括内存和非易失性存储介质,将内存和非易失性存储介质(包括闪速存储器、铁电存储介质或其它类型的存储介质)整合在一起,而用户接口芯片输入的数据直接通过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)管理,包括输入输出聚合(10聚合)、数据命中、数据淘汰等,其中,具体的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的非易失性存储介质。在一种应用场景下,第一非易失性存储装置8 40还可以包括控制器,该控制器可对该非易失性存储装置的内存进行缓存(cache)管理,包括输入输出聚合(10聚合)、数据命中、数据淘汰等,其中,具体的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的处理负荷,进一步提升存储系统性能。并且,采用该架构的存储阵列有利于降低存储阵列的体积和功耗。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括只读存储器、随机存储器、磁盘或光盘等。以上对本发明实施例所提供的存储阵列和存储系统及数据保护方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
权利要求
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向所述第三非易失性存储装置发送数据删除指令;所述第三非易失性存储装置根据所述数据删除指令删除其内存中存储的所述数据。
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链路传递到所述第一非易失性存储装置;所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;所述硬件引擎用于,读取出包括所述数据在内的一组待校验运算的数据;对所述一组待校验运算的数据进行校验运算得到校验数据;控制将所述校验数据通过PCIE链路传递到所述第一非易失性存储装置或第二非易失性存储装置。
11.一种存储阵列,其特征在于,包括中央处理器CPU、用户接口芯片、快速外设组件互联PCIE交换芯片以及第一非易失性存储装置和第三非易失性存储装置;其中,PCIE交换芯片将CPU、用户接口芯片、第一非易失性存储装置和第三非易失性存储装置连接到PCIE链路;所述第一非易失性存储装置和第三非易失性存储装置包括内存和非易失性存储介质;所述CPU,用于控制将从所述用户接口芯片输入的数据通过PCIE链路分别传递到所述第一非易失性存储装置和第三非易失性存储装置;所述第一非易失性存储装置,用于将所述数据写入所述第一非易失性存储装置的内存中;将写入所述第一非易失性存储装置的内存中的所述数据,写入到所述第一非易失性存储装置的非易失性存储介质;所述第三非易失性存储装置,用于将所述数据写入所述第三非易失性存储装置的内存中。
12.—种存储系统,其特征在于,包括如权利要求8至11任一项所述的存储阵列,以及与所述存储阵列的用户接口芯片连接的用户端设备;其中,所述用户端设备,用于通过所述用户接口芯片访问所述存储阵列。
全文摘要
本发明实施例提供存储阵列和存储系统及数据保护方法,本发明实施例中的存储设备配置的非易失性存储装置包括内存和非易失性存储介质,将内存和非易失性存储介质整合在一起,而用户接口芯片输入的数据直接通过PCIE链路传递到该非易失性存储装置中,再将其存储在该非易失性存储装置的非易失性存储介质,即实现用户接口芯片到非易失性存储装置的数据直接传输,可以无需经过CPU控制的内存进行中转,该数据读写机制相对于现有技术占用更少的PCIE链路,有利于提升存储系统性能;并且,基于上述架构进行用户接口芯片输入数据的校验保护,有利于提升数据安全性。
文档编号G06F3/06GK102346653SQ201110276089
公开日2012年2月8日 申请日期2011年9月16日 优先权日2011年9月16日
发明者柯乔, 饶成莉 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1