实时反射内存网络是一种为使多个独立的计算机进行数据共享而特别设计的共享内存系统。实时反射内存网络在系统中的每个节点放置一个共享内存的独立的拷贝。每个节点都有写入数据访问和读取本地内存的权限。当数据写入本地内存,FPGA 捕获并发送数据到实时反射内存中网络下数据写入本地内存并送到下一节点,数据写入本地内存并送到下一节点,直到数据回到源发送的节点才将网络中的数据移除。由于这种特别的硬件
和一系列的节点,在极短的时间内,网络中所有的节点都被更新,在同样的地址有同样的数据。本地处理器可以随时访问内存中的数据,而不需要以随时访问内存中的数据,而不需要通过网络进行访问。由此,每个计算机都有新的的内存数据拷贝。在 4节点的实例中,仅需要 2.1us,所有的计算机都会收到写入实时反射内存的数据。实时反射内存卡(节点)由本地内存,PCI(或 PCIE,VME)接口,和提供计算机访问和实时网络内存网络更新的仲裁逻辑组成。实时反射内存卡可以与计算机总线连接,安装在VME,PCI/PCI-X,CPCI,PCIE 和其它标准系统中。这可以使大多部工作站和单板计算机通过实时网络内存连接而不用考虑与背板接口的互通性。其它串行网络连接计算机和 PLC 进行连接的地方,但它不是所有应用的解决方案。实时反射内存在实时是主要考虑因素的的系统中起到很大的作用。在需要低潜伏期,高速通迅的系统中,实时反射内存提供超高性能硬件和易用性。使用类似实时反射内存的低软件开销,高速,硬件驱动网络在整个网络和独立的网络节点有低的潜伏期,短潜伏时间性能对建立一个仿真的实时系统是十分重要的。
PCI5565 PCI-5565 PMC5565 VMIC5565 反射内存 反射内存卡 GE反射内存
反射内存网中的每个反射内存节点(任何5565反射内存卡)以菊花链的形式用光纤线互联。块卡的发送必须连接到第二块卡的接收端,第二块卡的发送端连接到第三块卡的接收端,以此类推,直到再连接到块卡的接收端完成一个完整的环形连接。也可以将所有节点连接到一个或多个ACC-5595反射内存HUB,每个节点的接收和发送都必须连接,如果没有检测到光信号或失去同步反射内存卡RFM-5565将不会发送数据包(例如光纤线已损坏)。反射内存网中每个节点的节点号必须一,节点号通过板上的拨码开关S2进行设置,任何两个节点不能有设置成同一个节点号,每个板卡的节点号可以在通过NODEID进行读取显示,节点号的顺序并不重要。
主系统对反射内存卡的板载SDRAM的写操作后,反射内内卡的硬件检测电路将自动发起一个整个反射内存网的数据传输动作。这个写操作可以是一个简单的PIO写或是一个DMA周期。当产生一个对SDRAM的写操作时,RFM-5565反射内存卡自动将数据和其它相关的信息写入到发送缓冲器中(其它相关信息包括节点号,数据地址等信息),在发送缓冲器中,发送电路检测数据,并且将数据变成一个4到64字节长度可变的数据包。通过光纤接口发送到下一个板卡的接收端口。接收电路检查数据包是否有错误,当无错误发生时数据被接收。接收电路解开数据包并且将数据存储到板载的接收缓冲器。在接收缓冲器中,另一个电路将数据写入到本地的SDRAM的和源节点相同的地址中。同时,该电路将数据同时发送到发送FIFO中,重复这个处理过程直到这个数据返回到源节点的接收端,在源节点中,接收电路检测到数据包的NODEID和源节点的NODEID相同,因此将数据包从网络中移除,这样所有的节点数据都被更新了。所以计算机将数据写入其本地网络内存卡后的,极短时间内,网上所有计算机都可以访问这个新数据。网络内存卡使用简单的读写方式,网络内存网上的数据传输是纯硬件操作,不需要考虑网络的通信协议,软件上只需要几行代码就可完成对网络内存卡的读、写操作,因此它与以太网等其他传统网络相比具有更低的数据传输延迟、更快的传输速度,更简单灵活的使用操作,可以满足实时系统快速反应周期的要求,而采用其他网络就很难满足这种要求。
反射内存是一种通过局域网在互连的计算机间提供高效的数据传输的技术,强实时网络设计人员已经越来越多地采用这种技术。反射内存实时局域网的概念十分简单,就是设计一种网络内存板,在分布系统中实现内存至内存的通信,并且没有软件开销。每台计算机上插一块反射内存卡,卡上带有双口内存,各层软件既可以读也可以写这些内存,当数据被写入一台机器的反射内存卡的内存中后,反射内存卡自动地通过光纤传输到其他连在网络上的反射内存卡的内存里,通常,只需几百纳秒的时间延迟,所有的反射内存卡上的内存将写入同样的内容。而各成员在访问数据时,只要访问本地的反射内存卡中的内存即可
实时网络需求
为提升计算能力,人们自然地想到研发性能更强的计算机,如天河系列等超级计算机应运而生,但超级计算机研制周期长、成本大、应用领域受限。为此,提出了集群系统概念,计算机集群系统是通过网络将PC机或工作站连接起来组成高性能计算系统。集群系统将一个任务并行在多台计算机上执行,组成一个实时系统。
在实时系统中,系统终结果的正确性不仅依赖于每一步计算得到的逻辑结果,而且依赖于得到结果的时刻,任务的完成时间是实时系统的决定性特征。根据实时性能的要求程度,实时系统可认为两类,即软实时和硬实时系统。对于软实时系统,要求事件相应是实时的,但并不是严格强制的。但是,对于硬实时系统来讲,每个任务都有一个处理截止事件,任务必须在规定的时间内完成,否则会影响全局任务的完成,给系统带来不希望的破坏或者造成不可恢复的灾难性后果。目前许多实时系统都采用硬实时系统,因为具有更强的实时性能。实时系统的应用需要实时互联,构建实时网络,完成数据在网络节点间的实时传输。
实时网络必须具备高速、可靠、可预测三个特点,重要的是通信的可预测性,可预测性是指实时网络中各个节点之间数据传输的时间是确定的。随着实时网络应用领域的不断扩展,目前已不仅仅局限于计算机集群系统的互联,而是广泛地应用在各种具有实时需求的互联系统中,如半实物仿真、高速数据获取等。
实时网络发展过程中,出现过两种设计思路:基于单一总线的多CPU共享全局内存和基于网络的分布式内存:
相比基于单一总线的多CPU共享全局内存系统,在基于网络的分布式内存体系中每个节点只访问自己的本地内存,不存在内存占有冲突,由于这种方式能够避免大量的总线仲裁控制时间而成为实时网络的主要设计方式。
实时网络要保证高速、可靠、可预测这三大指标,但千兆以太网、光纤通道(Fiber Channel,FC)协议等,在可预测性上很差,首先是因为通过设备驱动和软件网络协议的工作模式增加了额外的不确定开销,其次是同样存在共享冲突和碰撞的问题(如千兆以太网GBE中采用CSMA/CD载波监听多路访问/冲突检测机制、FC协议采用令牌环仲裁等)进一步增加了传输时间的不确定性。光纤反射内存网很好的解决了上述问题。
反射内存网是基于网络的分布式内存硬实时网络的一种设计思想,特点:1)反射内存网硬件实现分布式RAM之间数据的传输、共享,整个过程具有很低的实现延迟;2)反射内存网依靠硬件实现、不需要复杂的网络协议控制,能够在相同的传输带宽下达到更高的有效速率;3)反射内存网对数据的各种处理是通过硬件电路实现,在固定的时钟频率下周期工作,没有不确定的时间开销,确保数据处理的可预测性。
反射内存卡节点延时测试方法:
反射内存卡数据传输过程全部由硬件完成,在windows这种非实时操作系统下和实时vxworks操作系统下由软件测试这种节点延时都是不可取的。
反射内存卡、,首先它是一个PCI设备,提供给用户128MB的读写空间。当一节点有写入操作时,自动通过光纤链路将数据同步到所有节点。这一系列传输写入操作由硬件完成。两个节点间更新的延时为100ns级。
Sdram时钟:66MHZ
FIFO时钟:106MHZ
图1:反射内存硬件数据流
下面提供两种方式来说明或测试节点传输延时:
A:理论计算方式
Sdram时钟:66MHZ
FIFO时钟:106MHZ
在系统无数据传输过程是由PCI总线通过桥片PCI9656将数据写入到SDRAM中,在写SDRAM的同时数据,地址和控制数据打包发送至发送FIFO,这个过程是同时进行的,SERDES在接收到FIFO数据的中断后,立即将FIFO的数据读取至SERDES完成并串转换并发送至光纤收发器,FIFO的读取时间约只需要4个周期。在较短距离时,光纤传输的时间约为零,不予考虑。在接收端SERDES将光纤收发器数据进行并串转换。送至接收FIFO,接收FIFO中断本地SDRAM控制器,将数据写入SDRAM,完成本次数据的更新过程。SDRAM时钟周期时间为15NS左右,FIFO时钟周期为9.4NS,
由此可以计算出理论时间 15*21+9.4*10≈405ns。
B:硬件触发方式
由于光纤收发器数据传输的快速特性,由软件来来测试时间误差较大,本方法对两个节点上的数据信号进行采集并测量延时。测试探头分别测试节点A的SDRAM和节点B的SDRAM信号,发送特征数据,并在B节点等待触发信号。由示波器看到信号延时。触发后在节点B用软件观察数据是否更新到节点B,改变特征数据及触发条件,可重复数次测特征数据与SDRAM控制信号。可以记录延时约得出延时大小。
2.网络内存卡带宽测试:
网络内存卡带宽测试可采用本公司提供的软件进行测试或采用RFM2G下的命令行工具测试不同数据大小包的传输速度。