PCI-5565-反射内存RFM2G的学习与使用

1、介绍

反射内存集成在反射内存卡上,我们使用的是PCI总线的反射内存卡PCI5565,还有PCIE和其它总线类型的反射内存卡,原理差不多。在两台计算机的PCI插槽插两块反射内存卡,然后通过光纤连接。常见的反射内存卡大小有128M和256M的,当在A卡的地址0x10000写入数据,就会触发数据通过光纤写入到B卡相同的地址,从而实现数据的共享。 反射内存的组网主要有环状和星状,所谓环状就是A卡的出口光纤连接B卡的入口,B卡的出口光纤连接C卡的入口,以此类推,最后一张卡的出口光纤再连接A卡的入口。当环网中任何一张卡的数据发生变更都会传输到下一张卡,最后回到它自身结束传递。所谓星状是指使用反射内存Hub设备做数据的转发,类似一台交换机,从而达到星状网络里所有卡上相同内存地址空间的数据一致。

2、安装

安装包括硬件安装和软件的安装。 硬件安装就是把反射内存卡插入到计算机的PCI插槽,然后通过光纤连接两张卡。 (1) 首先需要确认你的计算机是否有PCI插槽,可以打开机箱查看主板上有没有预留PCI插槽。 (2) 设置反射内存卡上的S1和S2值,S1和S2都是8位的开关,例如S1的第一位开关控制反射内存是否打开冗余模式,第二位控制是否打 开高性能开关,第三位和第四位一起控制需要使用的反射内存空间的大小,等等。默认S1的设置全部是OFF,建议开始就使用默认 设置就好了。 S2用来设置当前反射内存卡的NodeID, 全网的反射内存卡需要NodeID唯一,不能重复。所以同一个反射内存网 络最多支持256块反射内存卡。

 

 

 

 

反射内存卡,连接光纤。这里需要注意四点: 1)如上图反射内存卡最左边的卡板可能和机箱PCI插卡处不匹配,无法插入,可以用螺丝刀把卡板拆除直接插卡。 2)反射内存卡的插针可能会比机箱的PCI插槽宽,只要能插入就可以,多余插针没插入没关系。 3)插卡前计算机要关机断电,防止静电。 4)光纤连接的时候要保证出口线接入口线,入口线接出口线。

软件安装就是安装反射内存卡的驱动程序。可以到官网下载驱动程序,解压后结果如下图:

 

 

 

api:反射内存api接口文件 diags: 官方提供的反射内存命令行程序,也是通过调用API接口实现的,可以通过这个程序以命令的方式查询,执行反射内存数据。 driver: 驱动程序代码 include: 驱动程序头文件 samples: 官方提供的测试样例,包含发数据,收数据和map反射内存数据到本地内存空间三个文件。可以直接make -f Makefile* 后执行。 rfm2g_load:安装驱动后会调用这个脚本创建设备文件,加载驱动ko文件等。 具体安装直接参考上面的install文件,只需执行 # make install 即可。

这里有两点需要注意: 1)当前从官网下载到的驱动程序最高版本是R09, 其支持的最高linux内核版本是 3.x ,所以当你的linux内核版本高于3.x,那在安装的时候大 概率会报错。可以直接在网上搜索错误信息,解决问题。报错的原因一般是不同linux内核头文件和宏定义有变更,导致驱动程序代码编 译失败。例如我使用的debian系统的内核是4.9.0-9,编译报struct access f->f_dentry->d_inode was replaced by accessor function, 需要用使用file_inode(f)替换掉f->f_dentry->d_inode。 2)可以联系反射内存的技术支持获取最新的驱动程序,前不久技术支持反馈给我一个最新的驱动程序,版本是R10, 其支持的最高linux 内核版本是4.12. 我的debian环境安装这个驱动直接成功了,但另一个RedHat服务器内核是4.18的,安装还是遇到了问题,只能自己 解决。

3、使用 可以把反射内存当作一个文件,使用时需要先打开反射内存,然后往某个规划好的地址写固定大小的数据,这时数据会从本地内存IO到 反射内存,此处的IO有两张模式:DMA和PIO,DMA模式是不需要计算机CPU的参与直接通过PCI总线把数据IO到反射内存,PIO需要 CPU参与。故一般推荐使用DMA模式传输。然后这些数据会在几十微秒内通过光纤传输到下一个反射内存结点,很快整个反射内存网络 节点都会收到数据,但可能并不是所有节点都需要这份数据,这里你可以通过发送事件来通知需要这份数据的节点去读取数据。接收数 据的节点读取对应地址固定大小的数据,这样就完成了两个节点数据的快速交换。 具体到项目中的使用,可以把之前需要使用socket通信的地方改换成反射内存通信。在代码中include驱动程序中的头文件和实现代码即 可使用对应的API函数。
-----------------------------------

posted @ 2023-03-07 16:43  可乐oo  阅读(1437)  评论(0)    收藏  举报