TMS320C6455 SRIO 实现方案

TMS320C6455 SRIO 实现方案
 
SRIO(Serial RapidIO)构架是一种基于高性能包交换的互连技术,主要功能是完成在一个系统内的微处理器、DSP、通信和网络处理器、系统存储器以及外设之间高速的传输数据。它成功解决了处理器集成芯片之间和线路板之间的互连问题。如果合理运用SRIO技术,可以构成信号处理网络,增强整机系统的处理能力和灵活性[88]。
SRIO具有以下的特征:
更大的带宽:该技术的标准采用了 LVDS 技术,因而可以在 8bit 位的路径上提供 10Gbit/s 的带宽。
低延迟:由于该技术具有高频率和较低的包开销,可以在更窄的交换里实现比 PCI 更小的延迟。
对现有的软件平台透明:SRIO协议是由硬件实现的,所以它对于现存的操作系统和应用软件是透明的,并且为寄存器映像系统提供了灵活的解决办法,错误可以通过硬件直接纠正。
支持多处理和多IO技术[89]: 该协议可以用FPGA和ASIC完成,这样的互连更具灵活的拓扑结构和传输能力。快速的交换技术支持多个拓扑结构[90],例如星形、网形。由于是点到点的通信,该技术可支持更多的同步传输。
SRIO 为了满足灵活性和可扩张性的要求,将协议分为三层:逻辑层、传输层、物理层[91],如图3-12所示。
              图3-12 SRIO协议分层结构
(1)逻辑层:指定了逻辑层协议,定义了包格式及端点设备完成事务的信息,这些是终端处理包所必需的。目前逻辑层已支持四种不同的传输机制:全局共享存储器、存储器映射的输入输出、消息传递以及流式数据。RapidIO 交换设备直接转发流经的报文,提高了交换设备对未来协议的兼容性[92]。
(2)传输层:定义了包交换的路由和寻址机制。RapidIO 支持8 位小系统(256个独立的端点地址)和16 位大系统的地址空间,由ID 号来控制。ID 号为报文在端点设备间传输提供了的路由信息,交换器件根据ID 信息查询路由表将数据转发到目的设备。
(3)物理层:说明设备级接口信息,如电气特性、错误管理和流量控制机制。
物理层包括8 位/16 位并行接口标准和1x/4x 串行接口标准。并行接口传输时延相对较小,但引脚数目大大增多,传输距离等限制较多系统较为复杂。串行RapidIO不仅具备可靠的高速数据传输,而且有利于系统简单化,因此前景更为广阔。
RapidIO 操作是以请求和响应事务为基础的[1]。包是系统中端点器件间的基本通信单元。发起器件或者叫做主控器件发起一个请求事务,该事务被送至目标器件。目标器件产生一个响应事务返回给发起器件来完成一次握手操作。在硬件上通常不会将 RapidIO 端点相互直接连在一起,而是通过介于其间的单个或多个交换器件的集合连接。图 3-13 显示了如何在 RapidIO 系统中传送事务。
在图 3-13 中,系统中的发起器件产生一个请求事务开始一次操作。该请求包传送至交换结构器件,通常指一个交换机,交换结构器件发出控制符号确认收到了该请求包,然后交换结构器件将该包转发至目标器件。这就完成了此次操作的请求阶段。目标器件完成要求的操作,产生响应事务。通过交换结构将承载该事务的响应包传送回发起器件。传送过程中使用控制符号对每一包进行确认。一旦响应包到达发起器件并得到确认,就认为此次操作已完成。
               图3-13 SRIO事务传输示意图
SRIO数据包由代表三级规范体系结构的多个字段组成[89]。典型的请求和响应包的格式如图3-14。
请求包以物理层字段开始。S 位表示这是一个包还是控制符号。AckID 表示交换结构器件将用控制符号来确认哪一个包。PRIO 字段表示用于流量控制的包优先级。TT、目标地址(TargetAddress)和源地址(SourceAddress)字段表示传输地址的机制类型、包应被递送到的目的器件的地址和产生包的器件的源地址。Ftype和事务(Transaction)表示正被请求的事务。长度(Size)字段表示编码后事务的长度。RapidIO 事务数据的有效载荷(Payload)长度从 1 到 256 字节不等。srcTID表示源事务 ID。RapidIO 器件在两个端点器件间最多允许有 256 个未完成的事务。对于存储器映射事务,跟随在 srcTID 后面的是表示器件的偏移地址(Device Offset Address)字段。写事务由数据的有效载荷结束。所有包以 16 位循环冗余校验码(CRC)结束。响应包与请求包类似。状态(Status)字段表示是否成功完成了事务。目标 TID(目标事务 ID)字段的值与请求包中源事务 ID 字段的值相等。
              图3-14 SRIO包格式
SRIO包的类型由Ftype和Ttype位共同决定。表3-5列出了由Ftype,Ttype共同确定的所有模式及其相应的解码动作。根据包的格式的不同,将事务划分成很多类型,其中最重要的类型有3种:NREAD(基本读操作)、NWRITE(基本写操作)、DOORBELL(门铃操作)。通过这3种类型的组合就可以完成所有的存储器读写操作[93]。
SRIO通信模式选择DirectIO 模式,这种模式使用的前提是主设备必须知道目的端的存储器地址分配,主端对目的端读写时,使用EDMA 来实现,并不干涉目地端的操作。配置这种模式发送接收时,需要更改图3-15 所示的七个寄存器[1]

转载自:http://www.eefocus.com/module/forum/thread-130361-1-1.html

原文地址:https://www.cnblogs.com/chengqi521/p/7799000.html