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

最新文章

  1. Go简介
  2. test markdown
  3. Java数组的一些基本算法
  4. bootstrap垂直下拉菜单默认展开
  5. IP地址的分类与寻址
  6. 【python】linux将python改为默认3.4版本
  7. oracle group 语句探究(笔记)
  8. CSS控制背景
  9. 设置MATLAB中figure的背景为白色
  10. WPF 常用样式
  11. python如何安装模块
  12. h5audio标签
  13. isinstance(obj1,class) 可以判断前者是否是后者的实例
  14. 转:sql server锁知识及锁应用
  15. scrapy-redis
  16. vim 自动添加作者、版权、修改时间等信息
  17. linux 自定义信号
  18. centos7 hive + 远程mysql 搭建笔记
  19. Mysql的优化一则
  20. IdentityServer4系列之中文文档及实际项目经验分享

热门文章

  1. 【转】2017PHP程序员的进阶之路
  2. nodejs微服务
  3. (转) view视图的放大、缩小、旋转
  4. SOAP很2的问题
  5. My first blog on cnBlogs!
  6. intellij idea 分屏设置 与快捷键
  7. 【视频】Linux高级程序设计01.1开发工具及gcc gdb
  8. Winform打砖块游戏制作step by step第4节---小球移动
  9. Winform打砖块游戏制作step by step第三节---移动挡板
  10. appium Parameters were incorrect