摘要 分布式并行计算的开展对嵌入式体系互联技能提出了更高的要求,RapidIO可供给芯片间、板间的高功用互联,传输功率高于PCIE和千兆以太网。文中给出了一种依据RapidIO的双主机节点嵌入式体系互联的规划计划、硬件规划及其软件完结,并对体系功用和功用进行验证。验证成果标明,该体系功用安稳、牢靠,并为新一代高功用嵌入式体系互联供给了杰出的解决计划。
关键词 RapidIO;TSI578;体系互联;MPC8641D
跟着嵌入式体系对信号处理功用和数据传输功用的不断进步,单纯依托进步处理器功用来改进体系功用的办法已无法满意需求。并行计算正日益成为一种添加体系处理才能的可行方向,多处理器间的数据传输、资源共享与同步便成了一个约束体系功用的重要环节。传统依托进步并行总线宽度与速率的办法已不能满意嵌入式商场对总线带宽的需求。因而,需新式的高功用总线互联技能来完结体系互联通讯的更高要求。
RapidIO互连构架作为一种依据牢靠性的开放式互连协议规范,以其高功率、高安稳性、低体系本钱等特色,可为通讯体系各器材间供给高带宽、低延时数据传输的解决计划。RapidIO具有交流功用,具有齐备的包交流、应对、中止、容错机制,牢靠性高,传输功率高于PCIE和千兆以太网,可为芯片到芯片,板到板供给高功用的互联,其功用可到达1~60 Gbit·s-1,可以为新一代高功用嵌入式体系互联供给杰出的解决计划。本文评论了一种依据RapidIO的具有双主机节点的嵌入式体系互联规划,给出体系规划计划及驱动软件规划,并在详细运用环境中对规划计划进行了体系验证。
1 体系计划
在RapidIO互联运用中,一般不会将RapidIO端点彼此直接连在一起,而是经过交流机完结端点之间的体系互联,这样可使体系的本钱削减,并改进体系的功用。典型的RapidIO交流网络节点分为主机节点(Host)、交流机(Switch)和端节点(End-Point)3类,每个设备由DeviceID仅有标识。体系发动时,主机节点担任体系初始化和网络的枚举,在作业时,主机节点将协谐和监控体系运转和过错康复,一起,主机节点可看做是交流网络中的一个端节点,担任发送和接纳网络中的数据包。交流机完结端体系的互连,且完结RapidIO包的路由和转发。
为了完结RapidIO通讯功用,主机节点需求完结RapidIO控制器,RapidIO控制器的完结首要有两种方法,一种是经过FPGA的专用IP核来完结,这种方法受限于IP核对器材的约束,本钱较高,且主机节点一般要完结数据处理与体系办理功用,单靠FPGA完结不太实际。另一种方法是经过集成有RapidIO控制器的CPU来完结,如PowerPC。PowerPC处理器功用强大,处理速度快,可以合作嵌入式操作体系完结任务的办理和调度,一起较多PowerPC处理器集成有RapidIO控制器,因而大多运用RapidIO网络的嵌入式范畴都选用PowerPC做为主机节点。
本体系选用两片MPC8641D处理器芯片做为主控制器,Freescale出产的MPC8641D芯片内部集成了2个e600内核,每个核包含32 kB的一级指令Cache和数据Cache,以及1个1 MB的二级Cache。高集成MPC8641D可以替代多器材,极大节省了底板制作的本钱和空间。MPC8641D芯片集成了RapidIO控制器,其间1x/4x串行通道的传输速率可为1.25 Gbit·s-1、2.5 Gbit·s-1和3.125 Gbit·s-1,音讯单元支撑存储地址寄存器最大长度4 kB的音讯。
体系选用TS1578做为交流机,Tsi578交流芯片是Tundra公司的第3代RapidIO交流芯片,其支撑高达80 Gbit·s-1的聚合带宽,可独立装备成最多8个4X端口或16个1X端口,端口的频率可装备为1.25 Gbit·s-1、2.5 Gbit·s-1、3.125 Gbit·s-1,支撑混合的速率和带宽装备。SRIO的路由和交流是经过每个端点设备的ID号来完结的,每个端点设备都会分配一个仅有的ID号,当一个端点宣布一个数据包时,在其的包头中包含有意图终端的ID号和发送源端的ID号。Tsi578的每个端口上都有一个交流路由表,依据路由表就可决议此数据包由哪一个端口送出。
依据RapidIO的双主机嵌入式互联拓扑结构如图1所示。
2 驱动软件规划
2.1 体系主从方法初始化
在运用RapidIO进行通讯前,首要要进行RapidIO体系初始化,首要包含SRIO控制器初始化、Doorbell初始化、Message初始化、DMA初始化、RapidIO交流机初始化、RapidIO网络初始化等。
体系中选用两块CPU,两块CPU均可作为主机节点对RapidIO网络进行装备,为了确保RapidIO网络可以正常初始化,需运用主从方法的RapidIO网络初始化,初始化时由某一RapidIO节点进行主装备,完结RapidIO网络初始化,其他节点等候网络初始化成功后发动各自功用。假如进行主装备的节点出现问题,未完结RapidIO网络初始化,具有从装备功用的节点需求进行RapidIO网络初始化,以进步RapidIO网络初始化的鲁棒性。
因为TSI578设备在重复初始化时会发生反常,为了避免主从设备一起对交流机进行初始化,规划时考虑初始化时首要判别RIO_HOST_BASE _ID_LOCK寄存器是否已被确定,若已被确定,标明交流机已被初始化,则该节点直接越过这一过程。优势在于对运用而言只需供给一个初始化接口,规划人员在进行运用编程时无需考虑主设备或从设备是否现已对交流机进行了初始化,方便了运用规划。
2.2 网络映射
网络映射成果将体系中所有非主机结点的RapidIO空间映射到自己的地址空间上,不同的非主机节点依据需求不同可映射不同的开端地址和映射空间。体系中运用rioMapOutb和rioMapInb接口动态装备RapidIO网络地址映射,映射的地址长度都必须为4 kB的倍数,且地址需求对齐,映射后在此存储空间内进行通讯。软件中运用的函数接口如下:
(1)STATUS rioMapOutb(UINT32 lstart,UINT32rstart,UINT32 size,UINT32 tid,UINT32 flags)rioMapOutb映射外部节点tid的以rstart开端的内存空间到本地lstart地址。