【技术实现步骤摘要】
一种基于Aurora总线的双机内存数据共享系统
本专利技术涉及数据共享
,具体涉及一种基于Aurora总线的双机内存数据共享系统。
技术介绍
PCIe总线是目前在各类计算机中大规模应用的一种高速串行局部总线。作为连接Cache和主存储器的系统总线的延伸,其主要功能是连接外部设备。作为传统PCI总线的升级,PCIe在兼容PCI总线的同时,大大提升了数据传输速率与效率,更能有效地保证传输的可靠性。然而PCIe总线是基于一种树形的拓补结构,并不适合在双机系统中实现点对点对等通信以及内存数据共享等应用。Aurora是Xilinx公司于2002年首次提出的一种可裁剪的、轻量级的、数据链路层的点对点高速串行总线协议,专门针对FPGA之间的高速数据通信。相比于涵盖至传输层的、并适合于点对高性能但价格不菲的SRIO总线,Aurora总线具有开源免费、速率配置灵活的特点。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何设计一种基于PCIe总线DMA传输与Aurora总线的双机系统中的数据共享系统。(二)技术方案为了解决上述技术问题,本专利技术提供了一种基于 ...
【技术保护点】
1.一种基于Aurora总线的双机内存数据共享系统,其特征在于,包括:PCIe总线IP核、PCIe‑AXI总线桥接模块、AXI总线互联模块,DMA控制器模块,Aurora传输层协议映射模块、Aurora总线链路管理模块以及Aurora总线接口IP核;其中,所述PCIe总线IP核用于与上游设备的CPU进行数据交互,收发PCIe总线TLP;所述PCIe‑AXI总线桥接模块用于处理所述TLP,将上游设备发来的数据包转换为AXI4总线事务,将内部的AXI4总线事务转换为PCIe数据包TLP,发送给上游设备的CPU;所述AXI总线互联模块用于系统内部AXI总线事务的处理、路由转发,实 ...
【技术特征摘要】
1.一种基于Aurora总线的双机内存数据共享系统,其特征在于,包括:PCIe总线IP核、PCIe-AXI总线桥接模块、AXI总线互联模块,DMA控制器模块,Aurora传输层协议映射模块、Aurora总线链路管理模块以及Aurora总线接口IP核;其中,所述PCIe总线IP核用于与上游设备的CPU进行数据交互,收发PCIe总线TLP;所述PCIe-AXI总线桥接模块用于处理所述TLP,将上游设备发来的数据包转换为AXI4总线事务,将内部的AXI4总线事务转换为PCIe数据包TLP,发送给上游设备的CPU;所述AXI总线互联模块用于系统内部AXI总线事务的处理、路由转发,实现系统中主从设备之间不同时钟域、不同数据位宽,以及不同接口协议(AXI-full和AXI-lite)之间的匹配,为系统内各模块提供互联的通路;所述DMA控制器模块作为PCIeEP中的busmaster,在CPU内存与本系统内部Aurora传输层协议映射模块之间进行数据搬运,DMA控制器模块支持Scatter-Gather模式,按照约定的模式处理CPU维护的缓存描述符链表,并搬运数据缓存之间的数据;Aurora传输层协议映射模块用于实现本发明中为Aurora总线定义的用于实现双机系统内存数据共享的传输层协议功能;所述Aurora总线链路管理模块用于将上层Aurora传输层协议映射模块与下层Aurora总线接口IP核之间进行数据通路互联,以及基于Aurora总线的自然流量控制NFC和用户流量控制UFC功能实现数据流量控制与中断消息交互。2.如权利要求1所述的系统,其特征在于,所述Aurora传输层协议映射模块6中结合数据负载,即双机间用于共享的数据和Aurora传输层协议映射模块6中的配置寄存器,产生传输层包Aurora_TLP,经由Aurora总线链路管理模块7送入Aurora总线接口IP核8发出;并处理收到的Aurora_TLP。3.如权利要求1所述的系统,其特征在于,Aurora总线链路管理模块具体用于采用Aurora总线支持的NFC实现链路的流量控制:当接收方的接收数据缓存占用超过寄存器中配置的阈值后,向对端发送XOFFNFC消息,强制发送方关闭发送,待发送的数据阻塞在发送方的发送缓存,当接收方的数据缓存数据被取走,占用量下降到寄存器中配置的阈值之下后,向发送方发送XONNFC消息,打开发送,使得发送方发送数据缓存中的数据得以继续发送。4.如权利要求1所述的系统,其特征在于,所述Aurora总线链路管理模块具体用于采用Aurora总线支持的UFC实现中断的交互:发送方CPU向指定寄存器的写操作将被转换为AuroraUFC消息被发送出去,接收方接收到UFC消息后,会将UFC消息映射为请求,向CPU上报中断。5.一种利用权利要求1至4中任一项所述的系统实现本机将其内存一地址段的数据写入远端内存一地址段的方法,其特征在于,首先在该方法中做如下定义:CPU地址域,指单机CPU能够访问到的地址范围,包括通过PCIe总线能够访问到的BAR空间;共享虚拟地址域:指CPU之间进行共享数据时可主动将自己内部的数据通过直接读写或PCIeDMA的方式向远端写出或者从外部将数据读入的地址,这种读或写请求的目标地址落在一地址范围内,会被本系统以整体偏移的方式转换,映射到对双机含义统一的共享虚拟地址域,这个地址范围被称为OutboundWindow;反之,一方主动发起读写请求,读写请求被映射到共享虚拟地址域中的一段地址空间,则会被接收方的FPGA以类似的整体偏移方式映射到接收方CPU域的一段地址空间;对接收方来说,共享虚拟地址域空间中的这段地址空间被称为InboundWindow;本机A机将其内存一地址段X的数据写入远端B机内存一地址段Y的过程为:首先A机设置OutboundWindow参数,B机设置InboundWindow参数,配置A机CPU域地址X到共享虚拟地址域Z的转换关系和共享虚拟地址域Z到B机CPU地址域Y的转换关系;若A机采用直接访问的方式向B机写数据,则向远端写出操作的AXI总线事务由CPU经过PCIe总线发出,目标地址应落到Aurora传输层协议映射模块中设置的OutboundWindow地址范围,经过Aurora传输层协议映射模块转换为共享虚拟地址域中的地址,之后将转换后的地址域数据负载及长度和寄存器中配置的包格式信息组成Aurora_TLP,送往Aurora总线接口IP核发往B机;若A机采用DMA的方式向远端写出数据,则DMA控制器模块中设置的源地址为A机CPU域内存中数据负载所在的地址,目标地址为OutboundWindow中的地址范围,此时实际远端写出操作的AXI总线事务不再由CPU通过PCIe总线发出,而是由DMA控制器模块发出到Aurora传输层协议映射模块,并转换出Aurora_TLP,进而发送到B机。6.一种利用权利要求1至4中任一项所述的系统实现本机使用其CPU地址域从远端一地址段读取数据的过程的方法,其特征...
【专利技术属性】
技术研发人员:王啸林,卢秋实,张小佩,阎哲,
申请(专利权)人:北京计算机技术及应用研究所,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。