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
TMS320C6455 SRIO 实现方案的更多相关文章
- Aurora 8B/10B、PCIe 2.0、SRIO 2.0三种协议比较
在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线.业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PC ...
- FPGA和DSP间基于SRIO的高速通信系统设计
作者:陈婷,岳强,汪洋 解放军信息工程大学 摘要: 现代信号处理系统通常需要在不同处理器之间实现高速数据通信,SRIO协议由于高效率.低延时的特性被广泛使用.本文研究了在FPGA和DSP两种处理器之间 ...
- 分布式锁1 Java常用技术方案
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题.所以自己结合实际工作中的一些经验和网上看到的一些资 ...
- 再谈C#采集,一个绕过高强度安全验证的采集方案?方案很Low,慎入
说起采集,其实我是个外行,以前拔过阿里巴巴的客户数据,在我博客的文章:C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 中,介绍过采集用的工具,其实很Low的,分析 ...
- 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- iOS开发之多种Cell高度自适应实现方案的UI流畅度分析
本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...
- 尝试asp.net mvc 基于controller action 方式权限控制方案可行性
微软在推出mvc框架不久,短短几年里,版本更新之快,真是大快人心,微软在这种优秀的框架上做了大量的精力投入,是值得赞同的,毕竟程序员驾驭在这种框架上,能够强力的精化代码,代码层次也更加优雅,扩展较为方 ...
- Redis百亿级Key存储方案(转)
1 需求背景 该应用场景为DMP缓存存储需求,DMP需要管理非常多的第三方id数据,其中包括各媒体cookie与自身cookie(以下统称supperid)的mapping关系,还包括了supperi ...
- Android 几种消息推送方案总结
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6241354.html 首先看一张国内Top500 Android应用中它们用到的第三方推送以及所占数量: 现 ...
随机推荐
- Python_Tips[5] -> 可变数据类型作为初始化形参
可变数据类型作为初始化形参 / Mutable Parameter as Init Formal-para 由于在Python中,没有类似C语言的static静态参数,因此当一个函数需要一个只初始化一 ...
- Python的程序结构[3] -> 变量/Variable[1] -> LEGB 法则
LEGB法则 / LEGB Rule LEGB 变量搜索顺序 ---- 来源于<Python学习手册>/ Learning Python Page 419 ---- Python 的变量名 ...
- LCA【bzoj3364】 [Usaco2004 Feb]Distance Queries 距离咨询
Description 奶牛们拒绝跑马拉松,因为她们悠闲的生活无法承受约翰选择的如此长的赛道.因此约翰决心找一条更合理的赛道,他打算咨询你.此题的地图形式与前两题相同.但读入地图之后,会有K个问题. ...
- POJ 3977:Subset(折半枚举+二分)
[题目链接] http://poj.org/problem?id=3977 [题目大意] 在n个数(n<36)中选取一些数,使得其和的绝对值最小. [题解] 因为枚举所有数选或者不选,复杂度太高 ...
- System对象
System:类中的方法和属性都是静态的 out:标准输出,默认是控制台 in:标准输入.默认是键盘 System:描述系统的一些信息. 获取系统属性信息:Properties getProperti ...
- 【Mybatis】mybatis查询报错org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'areaName' in 'class java.lang.String'
mybatis查询报错: Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for pro ...
- ios frame,bound和center
frame:指的是视图在父视图的坐标系统中的大小和位置. bound:指的是视图在试图本身的坐标系统中的大小(位置起点是原点). center:指的是视图在父视图坐标系统中的中心点. 贴张苹果官网的图 ...
- kubernetes1.5.2--部署dashboard服务
本文基于kubernetes 1.5.2版本编写 使用http方式访问api server的部署 cat dashboard-controller.yaml apiVersion: extension ...
- web服务器、wsgi、应用
1.web服务器(比如Apache.Nginx.Tomcat.Jetty.IIS)属于静态服务器,只能返回静态的文件,服务器多是C/C++语言开发的.web服务器可以说一个request proxy, ...
- sass的高级语法
1. 变量 sass允许使用变量,所有变量以$开头 2.引用父元素 & 这里 "&" 就代表是 a 3.继承 这样 class2 就 拥有了class1的所有属性 ...