SRIO结构

【写在前面:在学习SRIO后续知识时发现有很多概念很难理解,查资料发现我对SRIO构架那部分学习太过敷衍,特此用一篇博文来学习交流一下SRIO构架。】

RapidIO层次构建

SRIO模块由三层构建而成。

逻辑层 确定终端处理传输的协议,包括包的格式。

传输层 定义了在系统中正确路由信息包的寻址方案。

物理层 包含设备级的接口信息,如电气特性、错误管理数据和基本的流量控制数据。

传输层与逻辑层和物理层是上下兼容的。

Figure1-1说明了RapidIO各层之间的关系。

逻辑层包含终端处理传输(transaction)的必要信息,如传输类型、大小、物理地址。

传输层包含系统中终端相互传输包(packet)的信息,如寻址。

物理层包含物理设备之间相互传递包(packet)时所需的信息,如电接口,流的控制。

RapidIO互联结构

RapidIO的互连结构被定义为一个独立于物理层实现的分组交换协议。

Figure1-2显示的是SRIO互联系统。

图中可以看到,RapidIO遍布各个模块。

物理层 1x/4x LP-Serial(长浮点串口) 规格

现在有两种SRIO贸易协会认可的物理层规格:
1、 8/16 LP-LVDS
2、 1x/4x LP-Serial

第一种规格是点对点同步时钟源DDR接口;第二种规格是点对点,交流耦合,时钟恢复接口。而且两种规格不兼容。

SRIO遵从第二种规格,即1x/4x LP-Serial规格,SRIO中的串行/解串技术也是由这种规格分配的。

该规格适用于4个频率点,即1.25,2.5,3.125和5Gbps,这定义了每个I/O差分对的总带宽。

有一个8位/ 10位编码方案,确保时钟恢复电路的充足的数据转换。由于8位/ 10位编码方案的开销,每个差分对各自的有效数据带宽是1,2,2.5,4 Gbps。SRIO只同时为1X和4X的port指定频率。

一个1X port被定义为一个TX(transanction)和一个RX(receive)的差分对。类似于一个IO口的差分对。4 X port就是4个1X的组合。一个4X port也可以被配置为4个1X port。

SRIO提供了支持从1G到16G带宽的可升级接口。

Figure1-3显示了怎样连接两个1X设备(或两个4X设备),一个设备的positive transmit data line (TDx) 【高电平有效传输数据线TDx】和另一个设备的positive receive data line (RDx)相连,低电平有效传输数据线 TDx和低电平有效接收数据线RDx相连。



SRIO中RapidIO支持的功能

以下是支持的功能:

1、遵从RapidIO互联协议REV2.1.1;
2、LP- Serial协议REV2.1.1;
3、4个可操作的1Xports;
  2个可操作的2Xports,使用2Xport时可以用2个1Xport或1个2Xport;
  1个可操作的4Xport,使用4Xport时可以用1个4Xport或4个1Xport;
4、在TI SerDes(串行/解串器)集成时钟恢复功能;
5、运行不同的port时使用不同的波特率,但是只支持倍频,比如2.5G和5G是支持的,但是3.125G和5G是不支持的;
6、硬件错误处理,包括CRC(循环冗余校验(Cyclic Redundancy Check, CRC));
7、差分CML(Current-Mode Logic 电流型逻辑(电路))信号支持AC和DC耦合;
8、能对不用的port进行掉电(powerdown);
9、支持1.25, 2.5, 3.125, and 5 Gbps rates;
10、支持读,写,写/反馈,流数据的写入,out-going Atomic(什么意思?外向原子?),维护操作;
11、向CPU产生中断(门铃包和内部调度);
12、支持8位和16位的设备ID;
13、支持接收34位的地址;
14、支持产生34位,50位和66位地址;
15、支持数据类型:位,半字,字,双字;
16、是BIG-ENDIAN(big endian是指低地址存放最高有效字节(MSB),与之对应的是small endian)模式的;
17、DirectIO传输;
18、消息(Message)传递;
19、数据payload最高256位;
20、单个消息最多包含16个包;
21、时钟域切换支持Elastic Store FIFO(FIFO弹性存储);
22、Short Run and Long Run compliant(不太懂,百度得到的结果只有经济学中的短期和长期,long run指的是不变成本和可变成本都能快速可变的时期,随着市场的自身的调节,市场的供求能达到平衡;short run是不变成本很难改变,商品的价格与不变成本具有粘滞性的时期;short和long是相对而言的,不一定short就比long小。T-T我不是在看DSP吗T_T?)
23、支持错误管理拓展;
24、支持拥挤(多个核同时访问同一地址)控制扩展;
25、支持多点ID;
26、支持长短控制符;
27、支持IDLE1和IDLE2;(IDLE为系统挂起命令,是为了节省系统消耗)
28、基于优先级和频率的严格优先级段交至协议单元;

以下是不支持的功能

1、不支持全局内存共享协议(GSM);
2、不兼容8/16 LP-LVDS规格;
3、不支持RapidIO原子操作目标;



规格

支持的两个REV2.1.1规格上面已经提到过了,不再赘述。
serial RapidIO AC specification(串行RapidIO交流协议)两种驱动,称为long run和short run。
long run协议适用于至少50cm长的长底板应用和至少两个连接设备的应用;
short run协议适用于低功率应用,它通常用于同一个板子上或者底板较短的连接上。
这两类规格的不同在于驱动的Vod。(什么是Vod,很明显不是点播技术)

Target atomic operations(目标原子操作)包括增长,减少,测试和交换,置位和清除操作在L2缓存或寄存器中是不支持的。
对外部设备的Atomic request operations(原子请求操作)是支持的。

(atomic到底是个啥啊?)



外部设备需求

SRIO提供了基于RapidIO Physical Layer 1x/4x LP-Serial 协议的对所有外部设备的无缝接口。这些设备包括ASIC(专用集成电路)、microprocessor(微处理器)、DSP和来自多个供应商的交换机设备。



附:由于作者的个人习惯,“specification”=“规格”=“协议”,三词通用,希望读者不要认为这三个词意思不同。

参考文献

http://www.ti.com/cn/litv/pdf/sprugw1b

PS:欢迎大家与我讨论文章中的问题,包括反对我的观点。

SRIO学习(二)——SRIO结构相关推荐

  1. Go语言学习二 语言结构 基础语法 数据类型

    Go 语言结构 由 youj 创建, 最后一次修改 2015-09-08 Go 语言结构 在我们开始学习 GO 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构. Go Hello ...

  2. 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环

    目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...

  3. 向大佬学习C语言1198: 考试排名(二)(结构体专题)

    题目 1198: 考试排名(二)(结构体专题) 时间限制: 1 Sec 内存限制: 128 MB 提交: 3737 解决: 728ACM 国际大学生程序设计竞赛,英文全称:ACM Internatio ...

  4. c++ 结构体赋值_《零基础看得懂的C语言入门教程》—(十二)结构体是这么回事

    一.学习目标 了解C语言的结构体的使用方法 了解C语言结构体的结构的赋值 了解多种C语言结构体变量的赋值方法和取值方法 目录 <零基础看得懂的C语言入门教程>--(二)简单带你了解流程 & ...

  5. AI:一个20年程序猿的学习资料大全—结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件--只有你不想要的,没有你找不到的 目录 (有偿提供,替朋友转载,扫描 ...

  6. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  7. PyTorch框架学习二十——模型微调(Finetune)

    PyTorch框架学习二十--模型微调(Finetune) 一.Transfer Learning:迁移学习 二.Model Finetune:模型的迁移学习 三.看个例子:用ResNet18预训练模 ...

  8. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  9. 深度学习二(Pytorch物体检测实战)

    深度学习二(Pytorch物体检测实战) 文章目录 深度学习二(Pytorch物体检测实战) 1.PyTorch基础 1.1.基本数据结构:Tensor 1.1.1.Tensor数据类型 1.1.2. ...

  10. (转)MyBatis框架的学习(二)——MyBatis架构与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/71699515 MyBatis框架的架构 MyBatis框架的架构如下图:  下面作简要概述: ...

最新文章

  1. BZOJ4401 块的计数
  2. thinkpad 61系机器(T61 X61/X61S R61)休眠掉电问题解决办法
  3. mysql避免回环复制_【20181204】 MySQL 双主复制是如何避免回环复制的
  4. 使用C#进行Word 2002和Excel 2002编程
  5. 数据库外键约束的几种方法及区别
  6. P4859-已经没有什么好害怕的了【容斥,dp】
  7. 怎样用计算机添加文章标题,计算机论文题目怎么定-易指做帮写网
  8. php 控制器 模板,php学习笔记(一)php模板与控制器
  9. python上传文件 request_Python request post上传文件常见要点
  10. LinuxCNC基础知识
  11. 大型网站技术架构(五)--网站高可用架构(转)
  12. qc中的流程图怎么画_QC流程图
  13. Vue.js Ajax(axios)
  14. 初生牛犊不怕虎的我记录一次 web面试
  15. linux 进程共享内存同步,Linux使用共享内存通信的进程同步退出问题
  16. ubuntu下安装git安装及使用
  17. 医疗项目(HIS)业务简单介绍
  18. Android self_adaption of screen
  19. 基于Core Text实现的TXT电子书阅读器
  20. LeetCode.黑白方格画

热门文章

  1. cloc统计代码字数
  2. CSS文本溢出显示省略号怎么实现?
  3. 云计算行业分析PPT
  4. Fisher算法分析
  5. matlab kalman 跟踪,Kalman matlab中基于卡尔曼滤波的目标跟踪程序 272万源代码下载- www.pudn.com...
  6. Kalman滤波封装Matlab函数
  7. 少说话多写代码之Python学习016——get方法练习
  8. RBAC权限模型详解
  9. unigui发布_uniGUI免登录的实现
  10. Jeewx-Boot 1.1 版本发布,基于SpringBoot的开源微信管家系统