反射内存是一种强实时高带宽局域网技术,在互连的计算机间提供高效的数据传输。强实时网络应用领域已经越来越广泛的采用这种技术
反射内存网络在所有互连的节点中虚拟出一段全局共享的网络内存,在分布系统中实现内存至内存的通信,因此应用程序没有软件开销。每台结点机上插一块反射内存卡,卡上带有双端口内存。每个节点机的各层应用软件可以直接读写反射内存卡上的内存。当数据被写入一台机器的反射内存卡的内存中后,反射内存卡自动通过光纤传输到所有其他连在网络上的反射内存卡的内存里相应的位置,传输延迟只有几百纳秒。即,所有反射内存卡上的内存总是同步更新为完全相同的内容,就像虚拟出一段全局共享内存一样。而各节点机在访问数据时,只要访问本地的反射内存卡内存即可,无需设备驱动程序和网络协议
反射内存网中的每个反射内存节点(任何5565反射内存卡)以菊花链的形式用光纤线互联。第一块卡的发送必须连接到第二块卡的接收端,第二块卡的发送端连接到第三块卡的接收端,以此类推,直到再连接到第一块卡的接收端完成一个完整的环形连接。也可以将所有节点连接到一个或多个ACC-5595反射内存HUB,每个节点的接收和发送都必须连接,如果没有检测到光信号或失去同步反射内存卡RFM-5565将不会发送数据包(例如光纤线已损坏)。反射内存网中每个节点的节点号必须唯一,节点号通过板上的拨码开关S2进行设置,任何两个节点不能有设置成同一个节点号,每个板卡的节点号可以在通过NODEID进行读取显示,节点号的顺序并不重要。
主系统对反射内存卡的板载SDRAM的写操作后,反射内内卡的硬件检测电路将自动发起一个整个反射内存网的数据传输动作。这个写操作可以是一个简单的PIO写或是一个DMA周期。
当产生一个对SDRAM的写操作时,RFM-5565反射内存卡自动将数据和其它相关的信息写入到发送缓冲器中(其它相关信息包括节点号,数据地址等信息),在发送缓冲器中,发送电路检测数据,并且将数据变成一个4到64字节长度可变的数据包。通过光纤接口发送到下一个板卡的接收端口。
接收电路检查数据包是否有错误,当无错误发生时数据被接收。接收电路解开数据包并且将数据存储到板载的接收缓冲器。在接收缓冲器中,另一个电路将数据写入到本地的SDRAM的和源节点相同的地址中。同时,该电路将数据同时发送到发送FIFO中,重复这个处理过程直到这个数据返回到源节点的接收端,在源节点中,接收电路检测到数据包的NODEID和源节点的NODEID相同,因此将数据包从网络中移除,这样所有的节点数据都被更新了。