- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
双机通信在CPCI总线上的实现
摘 要:介绍了PCI Bridge的工作原理,基于地址映射机制提出了SBC(Single Board Computer)间直接内存访问的新方案。该方案可将板间通信效率提高6倍以上,并可服务于各种高层应用。
关键词:PCI总线">CPCI总线 地址映射 PCI Bridge 单板计算机 性能优化
在电信、电力、国防等应用领域中,经常要求其所用设备有极高的实时性。当需要在各个设备间进行大容量的信息交换时,传统的网络包交换模式已不能很好地满足实时性的要求。而借助于PCI总线">CPCI总线,两个设备可以互访对方的内存,具有传输速度快、传输容量大和高可靠性等特点,非常适合大容量的信息传递。国家数字交换系统工程技术研究中心承担的国家863计划项目——“中国第三代移动通信系统”CDMA2000系统集成就选择基于PCI总线">CPCI总线的多SBC平台。各个SBC间的通信效率直接决定了整个系统性能的高低。目前常用的实时操作系统如VxWorks、Lynx等,都针对PCI总线">CPCI总线实现了消息队列,可用于SBC间的消息通信。但VxWorks、Lynx中消息传递的实现方式很不灵活,一般是通过在一个特定的SBC(通常为system board)中开启一块共享内存,其他各个SBC(通常为non system board)通过对共享内存的读写交换信息;每完成一次两个non system SBC间的信息交换,都要进行一次PCI读写操作,效率不高。另外VxWorks、Lynx中的消息长度都有一个最大值,当要进行大数据量(如1GB的内存数据库)的信息传输时,操作系统提供消息传递机制也无能为力。而以上这些问题,都可以通过任意两个SBC间的直接内存访问得到解决。本文首先介绍了PCI Bridge的工作原理;然后以Motorola公司提供的CPX8000系列工控机为例,讨论了两个SBC是如何基于背板(Backplane)上的PCI总线">CPCI总线,并利用PCI Bridge的地址映射机制,通过互访内存的方式最终实现双机通信;最后介绍了实际应用时应注意的性能优化问题。
1 PCI Bridge的工作原理
在简单的计算机系统中,其拥有的外部设备较少,单级总线结构便能满足系统的需要。但是由于单个 PCI总线可支持的 PCI 设备数量有电气限制,对拥有大量外设的计算机系统而言,单级总线结构已不能满足系统的要求,因此便产生了桥接设备。通过PCI-to-PCI Bridge可扩展出新的PCI总线,通过PCI-to-ISA Bridge可扩展出ISA总线。借助PCI Bridge这些特殊的PCI设备,系统中各级总线被粘和在一起,使整个系统成为一个有机整体。
每个PCI设备都有自己的PCI I/O空间、PCI内存空间和PCI配置空间(configuration space)。PCI设备的设备驱动程序对PCI配置空间进行初始化设置后,各个智能控制器如CPU、DMA控制器等,可以对PCI设备的PCI I/O空间、PCI内存空间进行访问。在图1中,CPU若要访问网卡,首先会在PCI Bus0上生成一个物理地址,这个地址经PCI-to-PCI Bridge的过滤及转换后,在PCI Bus1上产生一PCI Bus地址,网卡通过地址译码,响应对这个地址的访问。
图1 基于PCI的系统
从这个过程可以了解到,PCI-to-PCI Bridge有两种基本的功能:
(1)地址映射功能。虽然同是对网卡进行访问,但PCI Bus0与PCI Bus1上的地址意义是不同的。两个地址分属各自的地址空间,通过PCI-to-PCI Bridge实现两个地址的映射。根据这两个地址是否相同,可将PCI-to-PCI Bridge区分为两种类型:
如何成为一名优秀的射频工程师,敬请关注: 射频工程师养成培训
上一篇:Enea与SA论坛(SAF)结盟
下一篇:网格资源调用中支撑技术的研究与实现