一种数据存储系统及其使用方法

文档序号:6620816阅读:148来源:国知局
一种数据存储系统及其使用方法
【专利摘要】本发明提供了一种数据存储系统及其使用方法,包括:SATA指令解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并发送至对应的地址映射模块;地址映射模块,用于在SATA指令中指示存储的地址空间后发送至仲裁模块,其中,所指示的地址空间是分配给发出SATA指令的CPU的地址空间;仲裁模块,用于将各地址映射模块发来的SATA指令逐一发送至RAID控制模块;RAID控制模块,用于在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA指令发送至各数据封装模块;数据封装模块,用于与其对应的磁盘相连,将SATA指令进行封装并发送至磁盘。采用本发明的技术方案,能够实现多CPU共享存储,提高了磁盘的利用率,实现了存储资源的按需配置。
【专利说明】一种数据存储系统及其使用方法

【技术领域】
[0001] 本发明涉及计算机【技术领域】,特别涉及一种数据存储系统及其使用方法。

【背景技术】
[0002] 在高性能计算领域,服务器单节点往往配置大量多核CPU以满足服务器对高运算 速率和高并发数的要求,传统的服务器为每个CPU单独配置存储部分,使得整机的结构复 杂。
[0003] 在云服务器共享存储体系的结构中,采用软件方式实现的多CPU共享存储使得 (PU带宽成倍增加,而磁盘读写速率却难以提升。
[0004] 现有技术的不足在于:现有的存储架构,不能从硬件底层实现多CPU共享存储。


【发明内容】

[0005] 本发明提供了一种数据存储系统及其使用方法,用以实现CPU共享存储。
[0006] 本发明提供了一种数据存储系统,包括:至少一个SATA指令解析模块、至少一个 地址映射模块、仲裁模块、RAID控制模块、以及至少一个数据封装模块;其中:
[0007] SATA指令解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对 SATA指令进行解析,并发送至对应的地址映射模块;
[0008] 地址映射模块,用于在接收到SATA指令解析模块发来的SATA指令时,在SATA指 令中指示存储的地址空间后发送至仲裁模块,其中,所指示的地址空间是分配给发出SATA 指令的CPU的地址空间;
[0009] 仲裁模块,用于将各地址映射模块发来的SATA指令逐一发送至RAID控制模块;
[0010] RAID控制模块,用于在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA 指令发送至各数据封装模块;
[0011] 数据封装模块,用于与其对应的磁盘相连,将SATA指令进行封装并发送至磁盘。
[0012] 本发明还提供了一种数据存储系统的使用方法,包括:
[0013] SATA指令解析模块接收其对应的CPU发送的SATA指令,并将该SATA指令发送至 地址映射模块;
[0014] 地址映射模块在接收到仲裁模块发来的SATA指令时,在SATA指令中指示存储的 地址空间后发送至数据封装模块,其中,所指示的地址空间是分配给发出SATA指令的CPU 的地址空间;
[0015] 仲裁模块将地址映射模块发来的SATA指令逐一发送至RAID控制模块;
[0016] RAID控制模块在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA指令 发送至各数据封装模块;
[0017] 数据封装模块将SATA指令封装后发送至磁盘。
[0018] 本发明的有益效果是:
[0019] 本发明实施例提供的技术方案中,对于各CPU发出的SATA指令,经过SATA指令解 析模块的解析,地址映射模块在SATA指令中指示存储的地址空间后由仲裁模块逐一发送 至RAID控制模块,而经RAID控制模块确定SATA指令被分配发送至的磁盘中地址空间,数 据封装模块将SATA指令封装并发送至各磁盘。采用本发明的技术方案,能够从硬件底层实 现多CPU共享存储,提高了磁盘的利用率,实现了存储资源的按需配置。

【专利附图】

【附图说明】
[0020] 下面将参照附图描述本发明的具体实施例,其中:
[0021] 图1为本发明实施例中数据存储系统的实施结构示意图。
[0022] 图2为本发明实施例中数据存储系统第一实施例的实施结构示意图。
[0023] 图3为本发明实施例中数据存储系统的使用流程示意图。

【具体实施方式】
[0024] 为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性 实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是 所有实施例的穷举。
[0025] 发明人在发明过程中注意到:
[0026] 目前现有技术中,在高性能计算领域,服务器单节点往往配置大量多核CPU以满 足服务器对高运算速率和高并发数的要求,传统的服务器为每个CPU单独配置存储部分, 使得整机的结构复杂。如果要实现共享同一实体存储空间,即为不同的CPU分配不同的地 址空间,通常是通过软件的方式,将存储空间进行逻辑的分隔,组成不同的逻辑存储空间。 这样的方式需要对操作系统以及软件做一些改动。
[0027] 这种方案的不足在于:对操作系统及软件的改变,必然会带来一些兼容性、稳定性 的问题,后期维护及升级也需投入较大的人力成本。现有技术中尚未有利用硬件的方式实 现共享同一实体存储空间的方案。
[0028] 针对上述不足,本发明实施例中提供了一种数据存储系统及其使用方法,下面进 行说明。
[0029] 图1为本发明实施例中数据存储系统的实施结构示意图,如图所示,可以包括至 少一个SATA指令解析模块(如图1所示,标记为1011、1012至101N)、至少一个地址映射模 块(如图1所示,标记为1021、1022至102N)、仲裁模块103、RAID控制模块104、以及至少 一个数据封装模块(如图1所示,标记为1051、1052至105N);其中:
[0030] SATA指令解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对 SATA指令进行解析,并发送至对应的地址映射模块;
[0031] 地址映射模块,用于在接收到SATA指令解析模块发来的SATA指令时,在SATA指 令中指示存储的地址空间后发送至仲裁模块,其中,所指示的地址空间是分配给发出SATA 指令的CPU的地址空间;
[0032] 仲裁模块,用于将各地址映射模块发来的SATA指令逐一发送至RAID控制模块;
[0033] RAID控制模块,用于在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA 指令发送至各数据封装模块;
[0034] 数据封装模块,用于与其对应的磁盘相连,将SATA指令进行封装并发送至磁盘。
[0035] 具体实施中,可以米用基于 RAID (Redundant Arrays of independent Disks 独立 冗余磁盘阵列)卡的磁盘阵列替代传统的机械硬盘,可以提高硬盘存取带宽,灵活的扩展 存储容量,提高存储系统的可靠性和容错能力。
[0036] RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘 组(逻辑硬盘),从而提供比单个硬盘更高的存储性能与数据备份能力的技术。RAID特色 是N块硬盘同时读取速度加快及提供容错性。RAID扩大了存储能力可由多个硬盘组成容量 巨大的存储空间,并且降低了单位容量的成本,市场上最大容量的硬盘每兆容量的价格要 大大高于普及型硬盘,因此采用多个普及型硬盘组成的阵列其单位价格要低得多。提高了 存储速度单个硬盘速度的提高均受到各个时期的技术条件限制,要更进一步往往是很困难 的,而使用RAID,则可以让多个硬盘同时分摊数据的读或写操作,因此整体速度有成倍地提 高。可靠性方面,RAID系统可以使用两组硬盘同步完成镜像存储,这种安全措施对于网络 服务器来说是最重要不过的了。RAID控制器的一个关键功能就是容错处理。容错阵列中如 有单块硬盘出错,不会影响到整体的继续使用,高级RAID控制器还具有拯救数据功能。
[0037] 具体实施中,CPU可以构成一个阵列,由一个或多个高端或低端的CPU组合而成, 分布在服务器的一个节点上,构成该节点的计算单元,通过SATA3. 0总线连接外接存储设 备,并支持向下兼容SATA1.0和SATA2. 0。
[0038] 实施中,SATA指令解析模块还可以用于在接收到CPU发送的SATA指令时,将SATA 指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至地址映射模块。
[0039] 具体实施中,按照协议规范,CPU和磁盘之间是串行进行数据交互的。串行的数据 一来频率太高无法处理,再有就是都经过了编码和加扰操作,所以从CPU接收到的SATA指 令可能无法直接进行处理,因此,需对接收到的SATA指令进行串并转换,将串行数据变为 并行数据,并进行8b/10b编码转换以及解扰操作,这样才能得到可处理的SATA指令,然后 将其发送至地址映射模块。
[0040] 实施中,SATA指令解析模块还可以用于对CPU发送的SATA指令进行标识;
[0041] 具体实施中,SATA指令解析模块可以对接收到的SATA指令通过打包的方式来进 行标识,也可以用标记CPU的ID号的方式来进行标识,其目的是为了标记是由哪个CPU发 送的指令。
[0042] 实施中,地址映射模块还可以用于根据标识确定发出SATA指令的CPU的地址空 间。
[0043] 具体实施中,标识过的SATA指令传送到地址映射模块后,地址映射模块就可以知 道是哪个CPU的SATA指令,及对应哪个地址空间。
[0044] 实施中,SATA指令解析模块还可以用于在RAID控制模块不空闲时,暂存SATA指 令,在RAID控制模块空闲时将其发送至仲裁模块。
[0045] 具体实施中,SATA指令解析模块可能并不是接收到SATA指令立马发送给仲裁模 块,而要进行暂存。暂存的作用是等待RAID控制模块空闲时,将暂存的SATA指令发往仲裁 模块。
[0046] 具体实施中,仲裁模块可以选择严格优先序的、轮转的或加权轮转的仲裁方案对 SATA指令进行选取,实现对不同优先级CPU的仲裁。
[0047] 实施中,地址映射模块还可以用于通过修改SATA指令的地址域,将其映射到分配 给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间。
[0048] 实施中,数据封装模块还可以用于在接收到RAID控制模块发来的SATA指令时,将 SATA指令进行串并转换,8b/ 10b编码转换以及加扰操作后,发送至磁盘。
[0049] 具体实施中,如前所述,按照协议规范,CPU和磁盘之间是串行进行数据交互的,因 此,可以将SATA指令进行串并转换,将并行数据变为串行数据,并进行8b/10b编码转换以 及加扰操作,这样得到磁盘可处理的SATA指令,然后发送至磁盘。
[0050] 实施中,数据封装模块还可以用于在接收到磁盘发来的响应结果时,将响应结果 进行串并转换,8b/ 10b编码转换以及解扰操作后,发送至RAID控制模块。
[0051] 具体实施中,按照协议规范,CPU和磁盘之间是串行进行数据交互的。串行的数据 一来频率太高无法处理,再有就是都经过了编码和加扰操作,所以从磁盘接收到的响应结 果可能无法直接进行处理,因此,需对接收到的响应结果进行串并转换,将串行数据变为并 行数据,并进行8b/10b编码转换以及解扰操作,这样才能得到可处理的响应结果,然后将 其发送至RAID控制模块。
[0052] 实施中,RAID控制模块还可以用于通过修改响应结果的地址域,将其反映射到分 配给该CPU的地址空间的方式来在响应结果中指示响应的地址空间。
[0053] 具体实施中,RAID控制模块将接收到的SATA指令中的地址域进行地址映射后发 送给磁盘,磁盘本身会将响应结果传回给RAID控制模块,然后RAID控制模块在对这个响应 结果中的地址域修改后进行地址反映射,再传给仲裁模块。其中,地址映射与地址反映射是 一个互为相反的过程。
[0054] 实施中,数据封装模块还可以用于在SATA指令解析模块不空闲时,暂存响应结 果,在SATA指令解析模块空闲时将其发送至仲裁模块。
[0055] 实施中,数据封装模块还可以用于对磁盘发送的响应结果进行标识;地址映射模 块还可以用于根据标识确定接收响应结果的CPU。
[0056] 具体实施中,每个SATA指令解析模块对发送给仲裁模块的SATA指令都会进行标 识,使地址映射模块得知是哪个CPU的指令,地址映射模块根据这个标识除了进行地址映 射,RAID控制模块根据数据封装模块对响应结果的标识进行地址反映射,将修改后的响应 结果通过SATA指令解析模块发送给对应的CPU。
[0057] 实施中,SATA指令解析模块还可以用于在接收到地址映射模块发送的响应结果 时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至CPU。
[0058] 实施中,RAID控制模块还可以用于根据管理节点给出的RAID级别的要求,选择相 应RAID算法,确定SATA指令被分配发送至的磁盘中地址空间。
[0059] 具体实施中,管理节点可以看做是上层管理软件,通过寄存器配置,可以告诉FPGA 的RAID控制模块用户需要使用RAID0还是RAID1。RAID控制模块可以根据这些寄存器的 变化,实现不同的功能。上层管理软件可以提供与用户的交互界面,用户可根据需求选择不 同的地址映射模式,对于重要的数据,使用RAID1,可以保障数据的安全可靠,对于一些不重 要的数据,使用RAID0能够节约存储资源。硬件RAID不同于软件RAID,没有过多的资源开 销。
[0060] 具体实施中,RAID控制模块可以根据一些控制逻辑,实现最基本的把将要发往某 一个磁盘盘的指令和数据,分发到了多个磁盘上,或者分发到不同磁盘的不同分区。同一块 数据可以被分割成多个区段,分别存放在不同磁盘上。至于具体每个指令和数据会被重定 向到哪个磁盘的哪个空间,可以由软件配置和计算,并且通知RAID控制逻辑完成。
[0061] 例如,把一个需要发往磁盘1的数据,同时发给磁盘1和磁盘3,就可以实现数据 的备份。本发明实施例中并没有使用RAID卡,而是由软件配合FPGA实现RAID功能。由于 走得是SATA协议,所以数据封装仍然是SATA的数据封装模块,也就是说磁盘端和CPU端的 数据封装模块相同。RAID0把N块同样的磁盘用硬件的形式通过RAID控制模块串联在一 起创建一个大的卷集。可使整个系统能使用的存储容量达到最大。也可以在N块磁盘上选 择合理的分区来创建带区集,将原先顺序写入这一组串联磁盘的数据分散到所有N个磁盘 中,每个磁盘只写N分之一,N块磁盘并行操作,不仅提高了读写速率,还可以为系统提供更 多的空间。RAID1在RAID0的基础上,将一块磁盘的数据镜像到另一块磁盘,该功能可以保 证系统的可靠性,也很容易由RAID控制模块实现。只需要在磁盘端做简单的地址映射,把 一条指令分两个路径发出去即可。
[0062] 实施中,SATA指令解析模块、地址映射模块、仲裁模块、RAID控制模块、以及数据 封装模块在FPGA上实现。
[0063] 具体实施中,磁盘控制器可以采用RAID控制器连接多块带SATA 口的SSD,通过配 置不同RAID级别,可以实现存储效率和可靠性之间的平衡。
[0064] RAID控制器可以采用MegaRAID SAS9286-8e,包含八个外接SATA 口,可连接最多 240个带有SATA或SAS接口的HDD或SSD固态硬盘(Solid State Disk)存储设备。
[0065] RAID控制器可以按需的调整RAID级别,实现云服务器存储部分的性能和可靠性 的平衡。云服务器单块板卡或单节点上可以包含一个或多个CPU,这些CPU共享一块存储阵 列,可以实现存储资源的按需分配,系统可以根据功能和应用情况,将闲置的存储资源更多 的分配给有需要的CPU。
[0066] 具体实施中,通过FPGA逻辑实现RAID控制器功能,这种做法不仅降低了硬件成 本,优化了系统结构,也省去了数据封装硬核,缩短了存储延迟,降低了系统的开发难度。 [0067] 为了描述的方便,以上所述数据存储系统的各部分以功能分为各种部件或单元分 别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中 实现。
[0068] 下面结合具体的实施示例来进行说明。
[0069] 实施例一:
[0070] 如图2所示,SATA指令解析模块1011、SATA指令解析模块1012、SATA指令解析 模块1013、以及SATA指令解析模块101N分别与其对应的CPU相连,当SATA指令解析模块 1011、SATA指令解析模块1012、SATA指令解析模块1013、以及SATA指令解析模块101N接 收到其对应CPU发来的SATA指令时,首先将SATA指令进行串并转换,8b/10b编码转换以 及解扰操作,得到可处理的SATA指令;然后通过打包的方式对SATA指令进行标识,来标记 是由哪个CPU发送的SATA指令;其次当RAID控制模块104不空闲时,暂存SATA指令;当 RAID控制模块104空闲时,将该SATA指令发送至仲裁模块103 ;接着,仲裁模块103根据优 先序的、轮转的或加权轮转的仲裁方案对地址映射模块102发来的SATA指令进行仲裁,按 照该仲裁结果逐一发送至RAID控制模块104 ;然后RAID控制模块104根据管理节点给出 的RAID级别的要求,选择相应RAID算法,确定发出SATA指令的CPU对应的磁盘中地址空 间;找到存储的地址空间后,分别发送至数据封装模块1051、数据封装模块1052、数据封装 模块1053、以及数据封装模块105N,在其上将SATA指令进行串并转换,8b/10b编码转换以 及加扰操作后发送至磁盘阵列。
[0071] 磁盘接收到SATA指令后,返回一个响应结果。首先,数据封装模块1051、数据封装 模块1052、数据封装模块1053、以及数据封装模块105N在接收到磁盘发来的响应结果时, 将响应结果进行串并转换,8b/10b编码转换以及解扰操作,变为可处理的响应结果;然后 RAID控制模块104通过对这个响应结果中的地址域修改后进行地址反映射,其中,地址映 射与地址反映射是一个互为相反的过程;其次对磁盘发送的响应结果进行标识,SATA指令 解析模块1011、SATA指令解析模块1012、SATA指令解析模块1013、以及SATA指令解析模 块101N根据标识确定接收响应结果的CPU ;接着,数据封装模块1051、数据封装模块1052、 数据封装模块1053、以及数据封装模块105N在SATA指令解析模块102不空闲时,暂存响应 结果,在其空闲时将其发送至仲裁模块103 ;SATA指令解析模块1011、SATA指令解析模块 1012、SATA指令解析模块1013、以及SATA指令解析模块101N在接收到地址映射模块102 发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送 至对应的CPU。至此完成一次完整的交互。
[0072] 基于同一发明构思,本发明实施例中还提供了一种数据存储系统的使用方法,由 于该使用方法的原理与一种数据存储系统相似,因此该方法的实施可以参见数据存储系统 的实施,重复之处不再赘述。
[0073] 图2为本发明实施例中数据存储系统的使用流程示意图,如图所示,可以包括如 下步骤:
[0074] 步骤20USATA指令解析模块接收其对应的CPU发送的SATA指令,并将该SATA指 令发送至地址映射模块;
[0075] 步骤202、地址映射模块在接收到仲裁模块发来的SATA指令时,在SATA指令中指 示存储的地址空间后发送至数据封装模块,其中,所指示的地址空间是分配给发出SATA指 令的CPU的地址空间;
[0076] 步骤203、仲裁模块将地址映射模块发来的SATA指令逐一发送至RAID控制模块;
[0077] 步骤204、RAID控制模块在确定SATA指令被分配发送至的磁盘中地址空间后,将 SATA指令发送至各数据封装模块;
[0078] 步骤205、数据封装模块将SATA指令封装后发送至磁盘。
[0079] 进一步的,在SATA指令解析模块接收到CPU发送的SATA指令时,可以将SATA指 令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至地址映射模块。
[0080] 进一步的,在SATA指令解析模块接收到CPU发送的SATA指令时,可以对CPU发送 的SATA指令进行标识;
[0081] 在地址映射模块接收到SATA指令时,可以根据所述标识确定发出SATA指令的CPU 的地址空间。
[0082] 进一步的,在SATA指令解析模块接收到CPU发送的SATA指令时,可以在RAID控 制模块不空闲时,暂存SATA指令,在RAID控制模块空闲时将其发送至仲裁模块。
[0083] 进一步的,在地址映射模块接收到SATA指令解析模块发来的SATA指令时,可以通 过修改SATA指令的地址域的方式来在SATA指令中指示存储的地址空间,将SATA指令映射 到分配给该CPU的地址空间。
[0084] 进一步的,在数据封装模块接收到RAID控制模块发来的SATA指令时,可以将SATA 指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至磁盘。
[0085] 进一步的,在数据封装模块将SATA指令发送至磁盘后,可以接收磁盘发来的响应 结果,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至RAID控制模块。
[0086] 进一步的,在RAID控制模块接收到磁盘发来的响应结果时,可以通过修改响应结 果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中指示响应的地 址空间。
[0087] 进一步的,在RAID控制模块接收到数据封装模块发来的响应结果时,可以在SATA 指令解析模块不空闲时,暂存响应结果,在SATA指令解析模块空闲时将其发送至仲裁模 块。
[0088] 进一步的,在数据封装模块接收到磁盘发来的响应结果时,可以对磁盘发送的响 应结果进行标识;
[0089] 在地址映射模块接收仲裁模块发送的响应结果时,可以根据所述标识确定接收响 应结果的CPU。
[0090] 进一步的,在SATA指令解析模块接收到地址映射模块发送的响应结果时,可以将 响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至CPU。
[0091] 进一步的,在RAID控制模块在接收到仲裁模块发来的SATA指令时,可以根据管理 节点给出的RAID级别的要求,选择相应RAID算法,确定SATA指令被分配发送至的磁盘中 地址空间。
[0092] 进一步的,在FPGA上对SATA指令进行解析、地址映射、仲裁、RAID控制以及数据 封装。
[0093] 实施中,SATA指令和响应结果都可以是以帧的形式存在。
[0094] 进一步的,在物理层对SATA指令或响应结果进行串并转换,8b/10b编码转换。
[0095] 具体实施中,物理层可以基于Stratix V的Transceiver Native Physic Ip实现。
[0096] 进一步的,在链路层对SATA指令或响应结果进行加解扰操作。
[0097] 进一步的,在链路层对SATA指令进行CRC校验。
[0098] 进一步的,在链路层对SATA指令的发送及接收进行流控。
[0099] 进一步的,在传输层上,接收到从链路层发来的帧;检查帧头以及长度,若丢弃错 误的巾贞时,告知链路层。
[0100] 进一步的,在传输层上,接收到从网络层发来的帧;检查帧头以及长度,若丢弃错 误的帧时,告知网络层。
[0101] 进一步的,在传输层上,接收到从网络层发来的SATA指令;
[0102] 将SATA指令按照指令中指示存储的地址空间,映射到分配给该CPU的地址空间。
[0103] 进一步的,在传输层上,接收到从链路层发来的响应结果;
[0104] 将响应结果按照地址空间的标识,映射到发出响应结果的磁盘对应的CPU的地址 空间。
[0105] 进一步的,在网络层上,对传输层接收到的SATA指令进行标识;发送至仲裁模块 102。
[0106] 进一步的,在网络层上,接收到从仲裁模块103发来的响应结果;发送至传输层。
[0107] 本发明实施例提供的数据存储系统及其使用方法,对于各CPU发出的SATA指令, 经过SATA指令解析模块的解析,地址映射模块在SATA指令中指示存储的地址空间后由仲 裁模块逐一发送至RAID控制模块,而经RAID控制模块确定SATA指令被分配发送至的磁盘 中地址空间,数据封装模块将SATA指令封装并发送至各磁盘。采用本发明的技术方案,能 够从硬件底层实现多CPU共享存储,提高了磁盘的利用率,实现了存储资源的按需配置。
[0108] 本发明通过RAID卡控制多个磁盘同时存取数据,可以大大提升磁盘端的存取带 宽,使其与CPU端相匹配。不仅可以提升整个存储系统的性能,而且可以通过不同RAID级 的设置提升系统的可靠性和容错能力。
[0109] 以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本 发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但 这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。
【权利要求】
1. 一种数据存储系统,其特征在于,所述系统包括:至少一个SATA指令解析模块、至少 一个地址映射模块、仲裁模块、RAID控制模块、以及至少一个数据封装模块;其中: SATA指令解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA 指令进行解析,并发送至对应的地址映射模块; 地址映射模块,用于在接收到SATA指令解析模块发来的SATA指令时,在SATA指令中 指示存储的地址空间后发送至仲裁模块,其中,所指示的地址空间是分配给发出SATA指令 的CPU的地址空间; 仲裁模块,用于将各地址映射模块发来的SATA指令逐一发送至RAID控制模块; RAID控制模块,用于在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA指令 发送至各数据封装模块; 数据封装模块,用于与其对应的磁盘相连,将SATA指令进行封装并发送至磁盘。
2. 如权利要求1所述的数据存储系统,其特征在于,所述SATA指令解析模块进一步用 于在接收到CPU发送的SATA指令时,将SATA指令进行串并转换,8b/10b编码转换以及解扰 操作后,将其发送至地址映射模块。
3. 如权利要求1所述的数据存储系统,其特征在于,所述SATA指令解析模块进一步用 于对CPU发送的SATA指令进行标识; 所述地址映射模块进一步用于根据所述标识确定发出SATA指令的CPU的地址空间。
4. 如权利要求1所述的数据存储系统,其特征在于,所述SATA指令解析模块进一步用 于在RAID控制模块不空闲时,暂存SATA指令,在RAID控制模块空闲时将其发送至仲裁模 块。
5. 如权利要求1所述的数据存储系统,其特征在于,所述地址映射模块进一步用于通 过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中 指示存储的地址空间。
6. 如权利要求5所述的数据存储系统,其特征在于,所述数据封装模块进一步用于在 接收到RAID控制模块发来的SATA指令时,将SATA指令进行串并转换,8b/10b编码转换以 及加扰操作后,发送至磁盘。
7. 如权利要求1所述的数据存储系统,其特征在于,所述数据封装模块进一步用于在 接收到磁盘发来的响应结果时,将响应结果进行串并转换,8b/10b编码转换以及解扰操作 后,发送至RAID控制模块。
8. 如权利要求7所述的数据存储系统,其特征在于,所述RAID控制模块进一步用于通 过修改响应结果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中 指示响应的地址空间。
9. 如权利要求1所述的数据存储系统,其特征在于,所述数据封装模块进一步用于在 SATA指令解析模块不空闲时,暂存响应结果,在SATA指令解析模块空闲时将其发送至仲裁 模块。
10. 如权利要求1所述的数据存储系统,其特征在于,所述数据封装模块进一步用于对 磁盘发送的响应结果进行标识; 所述地址映射模块进一步用于根据所述标识确定接收响应结果的CPU。
11. 如权利要求1所述的数据存储系统,其特征在于,所述SATA指令解析模块进一步用 于在接收到地址映射模块发送的响应结果时,将响应结果进行串并转换,8b/10b编码转换 以及加扰操作后,将其发送至CPU。
12. 如权利要求1至11任一所述的数据存储系统,其特征在于,所述RAID控制模块进 一步用于根据管理节点给出的RAID级别的要求,选择相应RAID算法,确定SATA指令被分 配发送至的磁盘中地址空间。
13. 如权利要求1至12任一所述的数据存储系统,其特征在于,所述SATA指令解析模 块、地址映射模块、仲裁模块、RAID控制模块、以及数据封装模块在FPGA上实现。
14. 如权利要求1至13任一所述的数据存储系统的使用方法,其特征在于,所述方法包 括步骤: SATA指令解析模块接收其对应的CPU发送的SATA指令,并将该SATA指令发送至地址 映射模块; 地址映射模块在接收到仲裁模块发来的SATA指令时,在SATA指令中指示存储的地址 空间后发送至数据封装模块,其中,所指示的地址空间是分配给发出SATA指令的CPU的地 址空间; 仲裁模块将地址映射模块发来的SATA指令逐一发送至RAID控制模块; RAID控制模块在确定SATA指令被分配发送至的磁盘中地址空间后,将SATA指令发送 至各数据封装模块; 数据封装模块将SATA指令封装后发送至磁盘。
15. 如权利要求14所述的使用方法,其特征在于,在SATA指令解析模块接收到CPU发 送的SATA指令时,进一步包括,将SATA指令进行串并转换,8b/10b编码转换以及解扰操作 后,将其发送至地址映射模块。
16. 如权利要求14所述的使用方法,其特征在于,在SATA指令解析模块接收到CPU发 送的SATA指令时,进一步包括,对CPU发送的SATA指令进行标识; 在地址映射模块接收到SATA指令时,进一步包括,根据所述标识确定发出SATA指令的 CPU的地址空间。
17. 如权利要求14所述的使用方法,其特征在于,在SATA指令解析模块接收到CPU发 送的SATA指令时,进一步包括,在RAID控制模块不空闲时,暂存SATA指令,在RAID控制模 块空闲时将其发送至仲裁模块。
18. 如权利要求14所述的使用方法,其特征在于,在地址映射模块接收到SATA指令解 析模块发来的SATA指令时,进一步包括,通过修改SATA指令的地址域的方式来在SATA指 令中指示存储的地址空间,将SATA指令映射到分配给该CPU的地址空间。
19. 如权利要求18所述的使用方法,其特征在于,在数据封装模块接收到RAID控制模 块发来的SATA指令时,进一步包括,将SATA指令进行串并转换,8b/10b编码转换以及加扰 操作后,发送至磁盘。
20. 如权利要求14所述的使用方法,其特征在于,在数据封装模块将SATA指令发送至 磁盘后,进一步包括,接收磁盘发来的响应结果,将响应结果进行串并转换,8b/10b编码转 换以及解扰操作后,发送至RAID控制模块。
21. 如权利要求20所述的使用方法,其特征在于,在RAID控制模块接收到磁盘发来的 响应结果时,进一步包括,通过修改响应结果的地址域,将其反映射到分配给该CPU的地址 空间的方式来在响应结果中指示响应的地址空间。
22. 如权利要求20所述的使用方法,其特征在于,在RAID控制模块接收到数据封装模 块发来的响应结果时,进一步包括,在SATA指令解析模块不空闲时,暂存响应结果,在SATA 指令解析模块空闲时将其发送至仲裁模块。
23. 如权利要求20所述的使用方法,其特征在于,在数据封装模块接收到磁盘发来的 响应结果时,进一步包括,对磁盘发送的响应结果进行标识; 在地址映射模块接收仲裁模块发送的响应结果时,进一步包括,根据所述标识确定接 收响应结果的CPU。
24. 如权利要求20所述的使用方法,其特征在于,在SATA指令解析模块接收到地址映 射模块发送的响应结果时,进一步包括,将响应结果进行串并转换,8b/10b编码转换以及加 扰操作后,将其发送至CPU。
25. 如权利要求14至24任一所述的使用方法,其特征在于,在RAID控制模块在接收到 仲裁模块发来的SATA指令时,进一步包括,根据管理节点给出的RAID级别的要求,选择相 应RAID算法,确定SATA指令被分配发送至的磁盘中地址空间。
26. 如权利要求14至25任一所述的使用方法,其特征在于,在FPGA上对SATA指令进 行解析、地址映射、仲裁、RAID控制以及数据封装。
27. 如权利要求14所述的使用方法,其特征在于,在物理层对SATA指令或响应结果进 行串并转换,8b/10b编码转换。
28. 如权利要求14所述的使用方法,其特征在于,在链路层对SATA指令或响应结果进 行加解扰操作。
29. 如权利要求28所述的使用方法,其特征在于,在链路层对SATA指令进行CRC校验。
30. 如权利要求29所述的使用方法,其特征在于,在链路层对SATA指令的发送及接收 进行流控。
31. 如权利要求14所述的使用方法,其特征在于, 在传输层上,接收到从链路层发来的帧; 检查帧头以及长度,若丢弃错误的帧时,告知链路层。
32. 如权利要求31所述的使用方法,其特征在于, 在传输层上,接收到从网络层发来的帧; 检查帧头以及长度,若丢弃错误的帧时,告知网络层。
33. 如权利要求31所述的使用方法,其特征在于, 在传输层上,接收到从网络层发来的SATA指令; 将SATA指令按照指令中指示存储的地址空间,映射到分配给该CPU的地址空间。
34. 如权利要求33所述的使用方法,其特征在于, 在传输层上,接收到从链路层发来的响应结果; 将响应结果按照地址空间的标识,映射到发出响应结果的磁盘对应的CPU的地址空 间。
35. 如权利要求14所述的使用方法,其特征在于, 在网络层上,对传输层接收到的SATA指令进行标识; 发送至仲裁模块。
36.如权利要求35所述的使用方法,其特征在于, 在网络层上,接收到从仲裁模块发来的响应结果; 发送至传输层。
【文档编号】G06F12/02GK104123228SQ201410347213
【公开日】2014年10月29日 申请日期:2014年7月21日 优先权日:2014年7月21日
【发明者】聂华, 杨晓君, 周雪 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1