所有直接I/O包和DOORBELL包的发送都由LSU模块执行。直接I/O包内包含了数据本地DSP地址、目标设备ID及数据在目标SRIO设备上需要保存或读取的地址,DSP通过配置总线对发送端口配置一系列MMRs作为传输描述符,在包传输之前硬件自动把它们加在包头。启动SRIO传输后数据自动实现DSP内部存储空间(L2 SRAM)到SRIO发送端口缓冲区的DMA数据传输,处理器参与的仅仅是配置过程,而真正的数据搬移过程全由DMA完成,并且包信息中包含了接收端口的ID及地址信息,数据在接收端口由MAU模块自动DMA到包头信息指定的地址空间,对用户来说是完全透明的。
2.4 C6455的SRIO关键事务处理
SRIO的逻辑层采用的是包格式来交换数据,所有包的有效载荷最大为256字节。事务就是指向SRIO地址空间的加载存储及DMA的操作,其中最为关键重要的就是NREAD(读操作)、NWRITE(写操作)、DOORBELL(门铃操作)。通过SRIO包的这几种事务处理可以实现互连器件间的数据传输。在发送DSP的SRIO端口和接收DSP的SRIO端口都需要首先进行初始化,包括使能端口,配置端口工作模式,设置和使能PLL模块,设置设备ID及数据传输速率(注意发送和接收端口速率要求一致)。在初始化完成后,通过循环查询SRIO端口状态寄存器来判断链路的连接成功与否。一般情况下,链路会很快连接成功,否则前述的初始化配置可能有错。链路连接成功后,就可以进行读写和门铃操作。在系统测试中,发送端DSP通过写操作发送完一帧数据,随即发送一个门铃数据包,门铃数据包在接收端DSP上产生一个系统中断告知数据到达有效,于是接收端DSP又将一个门铃数据包发送回发送端DSP,同样产生一个中断给发送端DSP,发送端DSP收到中断后又继续发送下一个数据帧,如此循环往复实现高速传输数据。
3 C6455与Virtex5-LXT的串行接口互联
在DSP+FPGA复合架构中,DSP的优势在于,对新型及复杂算法开发上只需较短的时间,并能够快速灵活地移植到新一代DSP处理器上;而FPGA的最大优势在于,通过并行处理实现的效能最大化。因此通过SRIO实现DSP和FPGA的互联可以达到两者的优势互补。如图3中,通过DSP的一个SRIO端口和一个Virtex5 LX50T实现SRIO连接,每一个FPGA都可以通过SRIO通道访问SRIO网络上的任何资源。用于SRIO的Xilinx端点IP解决方案针对RapidIO规范(v1.3)而设计,完整的Xilinx端点IP解决方案包括用户收发数据接口逻辑、传输控制及缓存逻辑、SRIO物理层IP,以及SRIO管理配置寄存器实现逻辑4部分。
结 语
在多处理器互联处理系统实现方案中,SRIO是最佳的数据互联方式之一。高带宽、低延时、引脚少、DMA传输、低软件复杂度满足了飞速发展的高速实时数据处理对性能的要求。C6455间的SRIO高速通信满足不同应用软件设计的灵活性,DSP和FPGA的SRIO通信提高了多处理器系统的计算能力,通过SRIO通信方式构建的计算网络提供了共享式分布处理,能轻松满足不同应用领域高速发展的海量数据高速处理需求。