CN104133777A - 一种共享存储系统及其使用方法 - Google Patents
一种共享存储系统及其使用方法 Download PDFInfo
- Publication number
- CN104133777A CN104133777A CN201410356575.7A CN201410356575A CN104133777A CN 104133777 A CN104133777 A CN 104133777A CN 201410356575 A CN201410356575 A CN 201410356575A CN 104133777 A CN104133777 A CN 104133777A
- Authority
- CN
- China
- Prior art keywords
- sata
- instruction
- sent
- cpu
- address mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明提供了一种共享存储系统及其使用方法,包括:第一SATA协议解析模块接收CPU发送的SATA指令进行解析;链路仲裁模块将SATA指令逐一发送至地址映射模块;地址映射模块,确定该SATA指令中指示存储的地址空间为NandFlash,将SATA指令发送至PCIe硬核;确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块。PCIe硬核对地址映射模块发来的SATA指令进行封装,并发送至NandFlash控制器;第二SATA协议解析模块对地址映射模块发来的SATA指令进行封装,并发送至硬盘。本发明实现了存储体的合理异构,存储资源的合理分配。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种共享存储系统及其使用方法。
背景技术
现有技术中不存在多CPU共享存储的技术。大部分高性能计算领域仍然采用一个CPU对一块硬盘的设计方式,或者采用内存条代替硬盘与CPU相连的设计方式。
现有技术的不足在于:
服务器存在较多CPU时,采用一个CPU对一块硬盘的设计方式,一个CPU带一块硬盘,则需要较多的硬盘,而一台高性能服务器带几百个硬盘,会使服务器体积庞大,存储资源过剩,是不合理的。而采用内存条代替硬盘与CPU相连的设计方式,不仅耗资巨大,而且资源不能灵活合理分配。
并且采用普通机械硬盘搭建多CPU共享存储系统,由于机械硬盘寻道时间长,速率低,无法满足众多CPU对数据读取速率的要求。
发明内容
本发明提出了一种共享存储系统及其使用方法,用以共享存储,实现存储资源的动态合理分配,提高了存储资源利用率。
本发明实施例中提供了一种共享存储系统,包括:至少一个第一SATA指令解析模块、链路仲裁模块、地址映射模块、第二SATA协议解析模块、以及PCIe硬核;其中:
第一SATA协议解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
链路仲裁模块,用于将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
地址映射模块,用于接收链路仲裁模块发来的SATA指令,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;其中,所指示存储的地址空间是分配给发出SATA指令的CPU的地址空间;
PCIe硬核,用于与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
第二SATA协议解析模块,用于与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
本发明实施例中提供了一种共享存储系统的使用方法,包括以下步骤:
第一SATA协议解析模块分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
链路仲裁模块将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
地址映射模块接收链路仲裁模块发来的SATA指令,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;其中,所指示存储的地址空间是分配给发出SATA指令的CPU的地址空间;
PCIe硬核与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
第二SATA协议解析模块与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘或内存条。
本发明的有益效果为:
现有共享存储指采用一个CPU带一块硬盘的设计方式,导致服务器带较多个硬盘,会使服务器体积庞大,存储资源过剩。即使采用内存条代替硬盘与CPU相连的设计方式,也存在耗资巨大,且资源不能灵活合理分配的问题。并且,采用普通机械硬盘搭建多CPU共享存储系统,由于机械硬盘寻道时间长,速率低,无法满足众多CPU对数据读取速率的要求。
本发明提供的技术方案中,第一SATA协议解析模块接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;链路仲裁模块将SATA指令逐一发送至地址映射模块;地址映射模块,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;该指示存储的地址空间是分配给发出SATA指令的CPU的地址空间。PCIe硬核对地址映射模块发来的SATA指令进行封装,并发送至NandFlash控制器;第二SATA协议解析模块对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
采用本发明实施例中提供的技术方案,在存储时,将NandFlash与硬盘结合使用,可根据不同CPU需求存储在不同的存储介质中,实现存储体的合理异构,实现了存储资源的合理分配,提高了存储资源利用率。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1为本发明实施例中提供的共享存储系统的结构示意图。
图2为本发明实施例中提供的共享存储系统的第一实施例的结构示意图。
图3为本发明实施例中提供的共享存储系统使用方法的流程示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。
发明人在发明过程中注意到:
现在市场不存在多CPU共享存储的技术,大部分高性能计算领域仍然采用一个CPU对一块硬盘的设计方式,以此来平衡CPU的高带宽和硬盘的低存取速率之间的差距。相应的技术如:RAID控制器,PCIe switch扩展硬盘接口。如果一个服务器有几百个CPU,按照现有技术,一个CPU带一块硬盘,则需要几百个硬盘,一台高性能服务器带几百个硬盘,会使服务器体积庞大,存储资源过剩,是不合理的。而为了使整机运算速度快,体积小,采用内存条代替硬盘与CPU相连的设计方式,不仅耗资巨大,而且资源不能灵活合理分配。
并且采用普通机械硬盘搭建多CPU共享存储系统,由于机械硬盘寻道时间长,速率低,无法满足众多CPU对数据读取速率的要求。
针对上述不足,本发明实施例中提供了一种共享存储系统及其使用方法,下面进行说明。
图1为本发明实施例中提供的共享存储系统的结构示意图。如图1所示,可以包括至少一个第一SATA指令解析模块(如图1所示,标记为1011、1012至101N)、链路仲裁模块(如图1所示,标记为102)、地址映射模块(如图1所示,标记为103)、第二SATA协议解析模块(如图1所示,标记为104)、以及PCIe硬核(如图1所示,标记为105);其中:
第一SATA协议解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
链路仲裁模块,用于将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
地址映射模块,用于接收链路仲裁模块发来的SATA指令,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;其中,所指示存储的地址空间是分配给发出SATA指令的CPU的地址空间;
PCIe硬核,用于与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
第二SATA协议解析模块,用于与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
具体实施中,可以采用更高速的存储介质替代机械硬盘。NandFlash可以满足高速和容量可线性扩展的要求。
NandFlash作为存储地址空间,读取速度比普通机械硬盘有很大提高,可以很好的解块共享存储系统硬盘IO瓶颈问题。可以为本发明实施例提供首选存储地址空间。目前市场上已经有为NandFlash设计的文件系统YAFFS。也有厂家专门生产NandFlash控制器。利用现有的NandFlash控制器可以简单快捷的实现对高性能云服务器共享存储系统性能的优化和提升。
由于NandFlash的特殊性,不需要支持SATA的NCQ(Native CommandQueuing,原生命令队列)操作,所以需要操作系统禁止NCQ模式。在SATA协议解析模块中也不需要实现与NCQ有关的功能,大大降低了SATA协议以及模块的设计难度。除此之外,操作系统需要依据NandFlash容量和各个CPU的需求,为每个CPU动态的分配存储空间。
具体实施中,本发明实施例中地址映射模块,可以管理一张地址映射表,该地址映射表不但可以实现多CPU共享一块NandFlash,还支持多CPU共享多块NandFlash控制器。同时,该地址映射模块还可以根据不同CPU的需求选择不同的存储介质。对于经常执行读操作的CPU,选用Flash类型的存储体,对于经常执行写操作的CPU,选用硬盘或内存条存储,实现存储体的合理异构。
具体实施中,链路仲裁模块可以选择严格优先序的、轮转的或加权轮转的仲裁方案对SATA指令进行选取,实现对不同优先级CPU的仲裁。链路仲裁模块还可以对SATA指令序别排队缓存,根据SATA指令到达时间先后和各个CPU优先级的不同,依次轮询或加权轮询每一个存储有SATA指令的队列,取出指令并发送给地址映射模块做处理。即可在高性能计算多CPU共享存储的背景下,通过链路仲裁模块,实现对不同优先级CPU的存取操作的控制。使优先级较高的CPU可以更快速的进行数据的存取操作。
实施中,第一SATA协议解析模块还可以用于接收到CPU发送的SATA指令时,对SATA指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至链路仲裁模块。
具体实施中,CPU和存储介质之间是串行进行数据交互的。串行的数据一来频率太高无法处理,再有就是都经过了编码和加扰操作,所以从CPU接收到的SATA指令可能无法直接进行处理,因此,需对接收到的SATA指令进行串并转换,将串行数据变为并行数据,并进行8b/10b编码转换以及解扰操作,这样才能得到可处理的SATA指令,然后将其发送至链路仲裁模块。
实施中,第一SATA协议解析模块还可以用于对CPU发送的SATA指令进行标识;地址映射模块还可以用于根据所述标识确定发出SATA指令的CPU的地址空间。
具体实施中,第一SATA协议解析模块可以对接收到的SATA指令通过打包的方式来进行标识,也可以用标记CPU的ID号的方式来进行标识,其目的是为了标记是由哪个CPU发送的指令。标识过的SATA指令传送到地址映射模块后,地址映射模块就可以知道是哪个CPU的SATA指令,及对应哪个地址空间。
第一SATA协议解析模块可以通过SATA接口与CPU互联,SATA接口符合SATA3.0规范,可以实现与各种支持SATA3.0规范的处理器互联,本发明实施例可以使用Intel Xeon E3处理器。
实施中,地址映射模块还可以用于通过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间。
实施中,第二SATA协议解析模块还可以用于在接收到地址映射模块发来的SATA指令时,将SATA指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
具体实施中,按照协议规范,CPU和存储介质之间是串行进行数据交互的。因此,需将SATA指令进行串并转换,将并行数据变为串行数据,并进行8b/10b编码转换以及加扰操作,返回给硬盘。
实施中,PCIe硬核还可以用于在接收到地址映射模块发来的SATA指令时,将SATA指令通过PCIe硬核封装后,发送至NandFlash。
具体实施中,在发送至NandFlash之前,可以先发送至NandFlash控制器。NandFlash控制器可以选用忆恒创源PBlaze3PCIe加速卡,与本发明实施例中的共享存储系统通过PCIe接口连接,另一端依据NandFlash标准接口连接Nandflash,其中包含高效的ECC算法。NandFlash控制器依据PICe硬核输入的控制信息要求,基于NandFlash数据存取规范,实现Flash的擦除和读写操作。将相应数据和状态信息通过寄存器返回给PCIe硬核。其中,响应结果可以包括:数据和状态信息。
具体实施中,NandFlash控制器连接NandFlash存储阵列,可通过位扩展的方式增加存储容量,这种做法需要修改NandFlash控制器的地址位宽。也可将一个NandFlash控制器与NandFlash存储阵列看成一组NandFlash对,复制多个NandFlash对,通过地址映射模块将多个CPU与多个NandFlash对进行映射。还可以利用PBlaze3加速卡,通过匹配不同类型琴键组成38种容量。这三种手段都可以灵活的增加系统的存储容量,实现存储资源的优化配置。
实施中,PCIe硬核还可以用于在接收到NandFlash发来的响应结果后,将响应结果进行解析,发送至地址映射模块。
实施中,第二SATA协议解析模块还可以用于接收到硬盘发来的响应结果后,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至地址映射模块。
具体实施中,如上所述,按照协议规范,CPU和存储介质之间是串行进行数据交互的。因此,需将响应结果进行串并转换,将并行数据变为串行数据,并进行8b/10b编码转换以及加扰操作,返回给地址映射模块。
实施中,地址映射模块还可以用于通过修改响应结果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中指示响应的地址空间。
具体实施中,地址映射模块可通过地址反映射,找出其对应的CUP,并可通过打包的方式来进行标识,也可以用标记CPU的ID号的方式来进行标识后,发送给链路仲裁模块。
实施中,第二SATA协议解析模块还可以用于对硬盘发送的响应结果进行标识;地址映射模块还可以用于根据所述标识确定接收响应结果的CPU。
实施中,PCIe硬核还可以用于对NandFlash发送的响应结果进行标识;地址映射模块还可以用于根据所述标识确定接收响应结果的CPU。
具体实施中,地址映射模块将接收到的SATA指令中的地址域进行地址映射后发送给PCIe硬核或第二SATA协议解析模块,PCIe硬核或第二SATA协议解析模块本身会将响应结果传回给地址映射模块,然后地址映射模块在对这个响应结果中的地址域修改后进行地址反映射,再传给链路仲裁模块。其中,地址映射与地址反映射是一个互为相反的过程,可以都在地址映射模块上完成。
实施中,第一SATA协议解析模块还可以用于在接收到链路仲裁模块的发来的响应结果后,将该响应结果进行串并转换,8b/10b编码转换以及加扰操作,将其发送至CPU。
实施中,第一SATA协议解析模块、仲裁模块、地址映射模块、第二SATA协议解析模块以及PCIe硬核在FPGA(Field-Programmable Gate Array,现场可编程门阵列)上实现。
为了描述的方便,以上所述数据存储系统的各部分以功能分为各种部件或单元分别描述。当然,在实施本发明时可以把各部件或单元的功能在同一个或多个软件或硬件中实现。
下面结合一个具体的实施示例来进行说明。
如图2所示,当第一SATA协议解析模块接收到其互联的CPU发来的SATA指令时,首先将SATA指令进行串并转换,8b/10b编码转换以及解扰操作,得到可处理的SATA指令;然后通过打包的方式对SATA指令进行标识,来标记是由哪个CPU发送的SATA指令;其次当地址映射模块不空闲时,暂存SATA指令;当地址映射模块空闲时,将该SATA指令发送至链路仲裁模块;接着,仲裁模块根据优先序的、轮转的或加权轮转的仲裁方案对SATA指令解析模块发来的SATA指令进行仲裁,按照该仲裁结果逐一发送至地址映射模块;然后地址映射模块根据标识确定发出SATA指令的CPU的地址空间,通过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间;该指示存储的地址可以为NandFlash、硬盘;如该指示存储的地址可以为NandFlash,将SATA指令发送至PCIe硬核;如该指示存储的地址可以为硬盘或内存条,将SATA指令发送至第二SATA协议解析模块。
PCIe硬核将SATA指令进行PCIe硬核封装后可以发送至NandFlash控制器。NandFlash控制器接收到SATA指令后,解析出CPU对应的地址空间,发送至NandFlash进行存储,并返回一个响应结果至地址映射模块。
第二SATA协议解析模块将SATA指令进行串并转换,8b/10b编码转换以及加扰操作后发送至硬盘。硬盘接收到SATA指令后,返回一个响应结果至地址映射模块。
地址映射模块接收PCIe硬核或第二SATA协议解析模块发送的响应结果,通过对这个响应结果中的地址域修改后进行地址反映射,其中,地址映射与地址反映射是一个互为相反的过程;确定响应结果中指示的CPU,并对该CPU的ID进行标识,发送至链路仲裁模块。
仲裁模块根据响应结果中指示的CPU的ID,将响应结果发送至与相应CPU互联的第一SATA协议解析模块;
第一SATA协议解析模块将响应结果进行串并转换,8b/10b编码转换以及加扰操作后,将其发送至对应的CPU。至此完成一次完整的交互。
基于同一发明构思,本发明实施例中还提供了一种共享存储系统的使用方法,由于该使用方法的原理与一种共享存储系统相似,因此该方法的实施可以参见数据存储系统的实施,重复之处不再赘述。
图3为本发明实施例中共享存储系统的使用流程示意图,如图所示,可以包括如下步骤:
步骤301、第一SATA协议解析模块分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
步骤302、链路仲裁模块将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
步骤303、判断地址映射模块接收的SATA指令指示存储的地址空间;
步骤304、若指示存储的地址空间为NandFlash,则将SATA指令发送至PCIe硬核;
步骤305、PCIe硬核与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
步骤306、若指示存储的地址空间为硬盘,则将SATA指令发送至第二SATA协议解析模块;
步骤307、第二SATA协议解析模块与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
实施中,第一SATA协议解析模块接收到CPU发送的SATA指令时,还可以包括:对SATA指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至链路仲裁模块。
实施中,第一SATA协议解析模块对CPU发送的SATA指令进行标识;地址映射模块根据所述标识确定发出SATA指令的CPU的地址空间。
实施中,地址映射模块通过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间。
实施中,第二SATA协议解析模块在接收到地址映射模块发来的SATA指令时,还可以包括:将SATA指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
实施中,PCIe硬核在接收到地址映射模块发来的SATA指令时,还可以包括:将SATA指令通过PCIe硬核封装后,发送至NandFlash。
实施中,PCIe硬核在接收到NandFlash发来的响应结果后,还可以包括:将响应结果进行解析,发送至地址映射模块。
实施中,第二SATA协议解析模块接收到硬盘发来的响应结果后,还可以包括:将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至地址映射模块。
实施中,地址映射模块通过修改响应结果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中指示响应的地址空间。
实施中,第二SATA协议解析模块对硬盘发送的响应结果进行标识;地址映射模块根据所述标识确定接收响应结果的CPU。
实施中,PCIe硬核对NandFlash发送的响应结果进行标识;地址映射模块根据所述标识确定接收响应结果的CPU。
实施中,第一SATA协议解析模块在接收到链路仲裁模块的发来的响应结果后,还可以包括:将该响应结果进行串并转换,8b/10b编码转换以及加扰操作,将其发送至CPU。
实施中,第一SATA协议解析模块、仲裁模块、地址映射模块、第二SATA协议解析模块以及PCIe硬核在FPGA上实现。
具体实施中,SATA指令和响应结果都可以是以帧的形式存在。
实施中,在物理层对SATA指令或响应结果进行串并转换,8b/10b编码转换。
实施中,在链路层对SATA指令或响应结果进行加解扰操作。
实施中,在链路层对SATA指令进行CRC校验。
实施中,在链路层对SATA指令的发送及接收进行流控。
实施中,在传输层上,接收到从链路层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知链路层。
实施中,在传输层上,接收到从网络层发来的帧;检查帧头以及长度,若丢弃错误的帧时,告知网络层。
实施中,在传输层上,接收到从网络层发来的SATA指令;将SATA指令按照指令中指示存储的地址空间,映射到分配给该CPU的地址空间。
实施中,在传输层上,接收到从链路层发来的响应结果;将响应结果按照地址空间的标识,映射到发出响应结果的NandFlash或硬盘对应的CPU的地址空间。
实施中,在网络层上,对传输层接收到的SATA指令进行标识;发送至链路仲裁模块。
实施中,在网络层上,接收到从链路仲裁模块发来的响应结果;发送至传输层。
本发明实施例中提供的系统和方法,采用NANDFlash代替机械硬盘,可以大大缩短数据读取速率,提高存储系统性能。利用FPGA实现多CPU共享NandFlash,填补了高性能计算领域多CPU共享硬盘的空白。两者的结合使用,平衡了CPU和硬盘的带宽差距,弥补了硬盘的IO存取瓶颈。实现了存储资源的动态合理分配,提高了存储资源利用率。
以上实施例仅用以说明本发明的技术方案,而非对其进行限制。因此,在不背离本发明的精神及其实质的情况下,本领域技术人员可作出各种改变、替换和变型。很显然,但这些改变、替换和变型都应涵盖于本发明权利要求的保护范围之内。
Claims (36)
1.一种共享存储系统,其特征在于,包括:至少一个第一SATA指令解析模块、链路仲裁模块、地址映射模块、第二SATA协议解析模块、以及PCIe硬核;其中:
第一SATA协议解析模块,用于分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
链路仲裁模块,用于将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
地址映射模块,用于接收链路仲裁模块发来的SATA指令,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;其中,所指示存储的地址空间是分配给发出SATA指令的CPU的地址空间;
PCIe硬核,用于与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
第二SATA协议解析模块,用于与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
2.如权利要求1所述的系统,其特征在于,所述第一SATA协议解析模块进一步用于接收到CPU发送的SATA指令时,对SATA指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至链路仲裁模块。
3.如权利要求1所述的系统,其特征在于,所述第一SATA协议解析模块进一步用于对CPU发送的SATA指令进行标识;
所述地址映射模块进一步用于根据所述标识确定发出SATA指令的CPU的地址空间。
4.如权利要求1所述的系统,其特征在于,所述地址映射模块进一步用于通过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间。
5.如权利要求1所述的系统,其特征在于,所述第二SATA协议解析模块进一步用于在接收到地址映射模块发来的SATA指令时,将SATA指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
6.如权利要求1所述的系统,其特征在于,所述PCIe硬核进一步用于在接收到地址映射模块发来的SATA指令时,将SATA指令通过PCIe硬核封装后,发送至NandFlash。
7.如权利要求1所述的系统,其特征在于,所述PCIe硬核进一步用于在接收到NandFlash发来的响应结果后,将响应结果进行解析,发送至地址映射模块。
8.如权利要求1所述的系统,其特征在于,所述第二SATA协议解析模块进一步用于接收到硬盘发来的响应结果后,将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至地址映射模块。
9.如权利要求7至8任一所述的系统,其特征在于,所述地址映射模块进一步用于通过修改响应结果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中指示响应的地址空间。
10.如权利要求7所述的系统,其特征在于,所述第二SATA协议解析模块进一步用于对硬盘发送的响应结果进行标识;
所述地址映射模块进一步用于根据所述标识确定接收响应结果的CPU。
11.如权利要求8所述的系统,其特征在于,所述PCIe硬核进一步用于对NandFlash发送的响应结果进行标识;
所述地址映射模块进一步用于根据所述标识确定接收响应结果的CPU。
12.如权利要求1所述的系统,其特征在于,所述第一SATA协议解析模块进一步用于在接收到链路仲裁模块的发来的响应结果后,将该响应结果进行串并转换,8b/10b编码转换以及加扰操作,将其发送至CPU。
13.如权利要求1至12任一所述的系统,其特征在于,第一SATA协议解析模块、仲裁模块、地址映射模块、第二SATA协议解析模块以及PCIe硬核在FPGA上实现。
14.一种如权利要求1至11任一所述的共享存储系统的使用方法,其特征在于,包括以下步骤:
第一SATA协议解析模块分别与相对应的CPU相连,接收CPU发送的SATA指令,对SATA指令进行解析,并将该指令发送至链路仲裁模块;
链路仲裁模块将第一SATA协议解析模块发来的SATA指令逐一发送至地址映射模块;
地址映射模块接收链路仲裁模块发来的SATA指令,在确定该SATA指令中指示存储的地址空间为NandFlash后,将SATA指令发送至PCIe硬核;在确定该SATA指令中指示存储的地址空间为硬盘后,将SATA指令发送至第二SATA协议解析模块;其中,所指示存储的地址空间是分配给发出SATA指令的CPU的地址空间;
PCIe硬核与NandFlash相连,对地址映射模块发来的SATA指令进行封装,并发送至NandFlash;
第二SATA协议解析模块与硬盘相连,对地址映射模块发来的SATA指令进行封装,并发送至硬盘。
15.如权利要求14所述的使用方法,其特征在于,所述第一SATA协议解析模块接收到CPU发送的SATA指令时,进一步包括:对SATA指令进行串并转换,8b/10b编码转换以及解扰操作后,将其发送至链路仲裁模块。
16.如权利要求14所述的使用方法,其特征在于,进一步包括:所述第一SATA协议解析模块对CPU发送的SATA指令进行标识;
所述地址映射模块根据所述标识确定发出SATA指令的CPU的地址空间。
17.如权利要求14所述的使用方法,其特征在于,进一步包括:所述地址映射模块通过修改SATA指令的地址域,将其映射到分配给该CPU的地址空间的方式来在SATA指令中指示存储的地址空间。
18.如权利要求14所述的使用方法,其特征在于,所述第二SATA协议解析模块在接收到地址映射模块发来的SATA指令时,进一步包括:将SATA指令进行串并转换,8b/10b编码转换以及加扰操作后,发送至硬盘。
19.如权利要求14所述的使用方法,其特征在于,所述PCIe硬核在接收到地址映射模块发来的SATA指令时,进一步包括:将SATA指令通过PCIe硬核封装后,发送至NandFlash。
20.如权利要求14所述的使用方法,其特征在于,所述PCIe硬核在接收到NandFlash发来的响应结果后,进一步包括:将响应结果进行解析,发送至地址映射模块。
21.如权利要求14所述的使用方法,其特征在于,所述第二SATA协议解析模块接收到硬盘发来的响应结果后,进一步包括:将响应结果进行串并转换,8b/10b编码转换以及解扰操作后,发送至地址映射模块。
22.如权利要求20至21任一所述的使用方法,其特征在于,进一步包括:所述地址映射模块通过修改响应结果的地址域,将其反映射到分配给该CPU的地址空间的方式来在响应结果中指示响应的地址空间。
23.如权利要求20所述的使用方法,其特征在于,进一步包括:所述第二SATA协议解析模块对硬盘发送的响应结果进行标识;
所述地址映射模块根据所述标识确定接收响应结果的CPU。
24.如权利要求21所述的使用方法,其特征在于,进一步包括:所述PCIe硬核对NandFlash发送的响应结果进行标识;
所述地址映射模块根据所述标识确定接收响应结果的CPU。
25.如权利要求14所述的使用方法,其特征在于,所述第一SATA协议解析模块在接收到链路仲裁模块的发来的响应结果后,进一步包括:将该响应结果进行串并转换,8b/10b编码转换以及加扰操作,将其发送至CPU。
26.如权利要求14至25任一所述的使用方法,其特征在于,第一SATA协议解析模块、仲裁模块、地址映射模块、第二SATA协议解析模块以及PCIe硬核在FPGA上实现。
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所述的使用方法,其特征在于,
在传输层上,接收到从链路层发来的响应结果;
将响应结果按照地址空间的标识,映射到发出响应结果的NandFlash、硬盘或内存条对应的CPU的地址空间。
35.如权利要求14所述的使用方法,其特征在于,
在网络层上,对传输层接收到的SATA指令进行标识;
发送至链路仲裁模块。
36.如权利要求35所述的使用方法,其特征在于,
在网络层上,接收到从链路仲裁模块发来的响应结果;
发送至传输层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410356575.7A CN104133777B (zh) | 2014-07-24 | 2014-07-24 | 一种共享存储系统及其使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410356575.7A CN104133777B (zh) | 2014-07-24 | 2014-07-24 | 一种共享存储系统及其使用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133777A true CN104133777A (zh) | 2014-11-05 |
CN104133777B CN104133777B (zh) | 2018-01-16 |
Family
ID=51806460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410356575.7A Active CN104133777B (zh) | 2014-07-24 | 2014-07-24 | 一种共享存储系统及其使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104133777B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109769018A (zh) * | 2018-12-29 | 2019-05-17 | 联想(北京)有限公司 | 一种信息处理方法、服务器和共享主机 |
CN109783220A (zh) * | 2017-11-10 | 2019-05-21 | 上海寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN110399327A (zh) * | 2018-04-24 | 2019-11-01 | 厦门雅迅网络股份有限公司 | 一种多cpu共享单硬盘的方法及系统 |
CN112347009A (zh) * | 2020-09-24 | 2021-02-09 | 天津市英贝特航天科技有限公司 | 多个处理器共享硬盘存储的实现装置 |
CN112380158A (zh) * | 2020-10-20 | 2021-02-19 | 广东电网有限责任公司中山供电局 | 一种面向深度学习的计算平台 |
CN112395220A (zh) * | 2020-11-18 | 2021-02-23 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
US11042497B2 (en) | 2017-05-24 | 2021-06-22 | Microsoft Technology Licensing, Llc | Communication between field programmable gate arrays |
CN113535084A (zh) * | 2021-06-22 | 2021-10-22 | 杭州华澜微电子股份有限公司 | 一种大容量sas硬盘的实现方法 |
CN114415959A (zh) * | 2022-01-20 | 2022-04-29 | 无锡众星微系统技术有限公司 | 一种sata磁盘动态加速访问方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024786A1 (en) * | 2007-07-16 | 2009-01-22 | Cheng-Sheng Chan | External storage device |
US20110252177A1 (en) * | 2010-04-13 | 2011-10-13 | Byungcheol Cho | Semiconductor storage device memory disk unit with programmable host interface |
CN102402396A (zh) * | 2010-09-15 | 2012-04-04 | 群联电子股份有限公司 | 复合式储存装置及其复合式储存媒体控制器与编址方法 |
US8296487B1 (en) * | 2008-08-22 | 2012-10-23 | Marvell International Ltd. | SATA pass through port |
-
2014
- 2014-07-24 CN CN201410356575.7A patent/CN104133777B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090024786A1 (en) * | 2007-07-16 | 2009-01-22 | Cheng-Sheng Chan | External storage device |
US8296487B1 (en) * | 2008-08-22 | 2012-10-23 | Marvell International Ltd. | SATA pass through port |
US20110252177A1 (en) * | 2010-04-13 | 2011-10-13 | Byungcheol Cho | Semiconductor storage device memory disk unit with programmable host interface |
CN102402396A (zh) * | 2010-09-15 | 2012-04-04 | 群联电子股份有限公司 | 复合式储存装置及其复合式储存媒体控制器与编址方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959144B (zh) * | 2017-05-24 | 2021-08-20 | 微软技术许可有限责任公司 | 现场可编程门阵列之间的通信 |
US11042497B2 (en) | 2017-05-24 | 2021-06-22 | Microsoft Technology Licensing, Llc | Communication between field programmable gate arrays |
CN109783220A (zh) * | 2017-11-10 | 2019-05-21 | 上海寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN109783220B (zh) * | 2017-11-10 | 2020-12-11 | 安徽寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN110399327A (zh) * | 2018-04-24 | 2019-11-01 | 厦门雅迅网络股份有限公司 | 一种多cpu共享单硬盘的方法及系统 |
CN109769018A (zh) * | 2018-12-29 | 2019-05-17 | 联想(北京)有限公司 | 一种信息处理方法、服务器和共享主机 |
CN112347009A (zh) * | 2020-09-24 | 2021-02-09 | 天津市英贝特航天科技有限公司 | 多个处理器共享硬盘存储的实现装置 |
CN112380158A (zh) * | 2020-10-20 | 2021-02-19 | 广东电网有限责任公司中山供电局 | 一种面向深度学习的计算平台 |
CN112395220A (zh) * | 2020-11-18 | 2021-02-23 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
CN112395220B (zh) * | 2020-11-18 | 2023-02-28 | 海光信息技术股份有限公司 | 共享存储控制器的处理方法、装置、系统及存储控制器 |
CN113535084A (zh) * | 2021-06-22 | 2021-10-22 | 杭州华澜微电子股份有限公司 | 一种大容量sas硬盘的实现方法 |
CN114415959A (zh) * | 2022-01-20 | 2022-04-29 | 无锡众星微系统技术有限公司 | 一种sata磁盘动态加速访问方法和装置 |
CN114415959B (zh) * | 2022-01-20 | 2023-03-10 | 无锡众星微系统技术有限公司 | 一种sata磁盘动态加速访问方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104133777B (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133777A (zh) | 一种共享存储系统及其使用方法 | |
US20230315290A1 (en) | Namespaces allocation in non-volatile memory devices | |
US10810135B2 (en) | Data transmission method, apparatus, device, and system | |
US11640242B2 (en) | Namespace management in non-volatile memory devices | |
US8966164B1 (en) | Storage processor managing NVME logically addressed solid state disk array | |
US20180150240A1 (en) | Technologies for offloading i/o intensive operations to a data storage sled | |
CN102681952A (zh) | 将数据写入存储设备的方法与存储设备 | |
CN105068953A (zh) | 用于对等高速外围组件互联存储传输的系统和方法 | |
CN104603739A (zh) | 对并行存储的块级访问 | |
CN107533440B (zh) | 标识磁盘驱动器和处理数据访问请求 | |
JP2012523612A (ja) | いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法 | |
CN111722786A (zh) | 基于NVMe设备的存储系统 | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US11372564B2 (en) | Apparatus and method for dynamically allocating data paths in response to resource usage in data processing system | |
CN104123228A (zh) | 一种数据存储系统及其使用方法 | |
KR101687762B1 (ko) | 저장 장치 및 그것의 커맨드 스케줄링 방법 | |
AU2015402888B2 (en) | Computer device and method for reading/writing data by computer device | |
US20170364266A1 (en) | Method and device for managing input/output (i/o) of storage device | |
CN101150486A (zh) | 一种零拷贝缓冲区队列网络数据接收的管理方法 | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN104104705A (zh) | 分布式存储系统的接入方法和设备 | |
CN109857553B (zh) | 内存管理方法及装置 | |
CN103577119A (zh) | 用于下一代固态硬盘控制器中乱序传输数据的系统和方法 | |
CN109375868B (zh) | 一种数据存储方法、调度装置、系统、设备及存储介质 | |
US20170039140A1 (en) | Network storage device for use in flash memory and processing method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220728 Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100193 building 36, Zhongguancun Software Park, 8 North East West Road, Haidian District, Beijing. Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |