RapidIO协议

1.概述

1.1介绍

RapidIO是基于包交换互联协议,主要作为系统内部接口使用,如:芯片间、板间的通讯,速度能在GB/S数量级。如连接处理器、内存、内存映射的I/O设备。这些设备可能是网络设备、内存子系统或一般目的的计算。

RapidIO互连面向内存映射的分布式内存系统和子系统。这样的系统由多个独立的设备组成,它们之间使用DMA传输数据及设备间通过往后或往前传输信息以维护它们的一致性

RapidIO是系统互连的一个定义。系统的概念,比如处理器编程模型,Cache、系统复位、中断编程模型等超出了RapidIO架构的范畴,但是,这些功能可以使用RapidIO网络里提供的资源得以实现,比如,RapidIO架构提供必要的操作,以支持处理器编程模型,范围从整体存储有序化以维持严格的一致性到弱序化。在RapidIO架构规范里对这些方面的任何参考引用仅仅是为了描述,RapidIIO的后续规范可能会进一步定义这些系统功能。

虽然,这套RapidIO规范构建是基于分布式内存系统,未来的版本会扩展这些接口的能力和处理新的主题内容,比如串行物理层,全局共享内存,互相可操作性等,这些规范有满足本规范的自己独立的封装。

RapidIO采用三层架构:逻辑、通用传输层、物理层。

  • 逻辑层:定义端点要求的操作协议,以及必要的交易包格式,通过这些协议进行目标操作。逻辑层不针对特定的传输或物理接口,因此,它们规定位流格式。为层架构里的较低层添加逻辑层的必要的位。因为应用程序使用不同的编程模型,所以,RapidIO结构为了支持它们,拆分成一些子协议,当前RapioIO逻辑层协议包括:

    • 系统I/O协议规范:输入输出逻辑协议

    • 消息传递协议规范。

    • 在各自不同的封装下的附加逻辑层协议规范

  • 传输层:公共传输层协议描述包路由寻址机制,以便将RapidIO包从一个端点传递到另一个端点,公共传输层是RapidIO所有的公共部分。

  • 物理层:定义两个设备之间的接口和传包输机制、流控制、电气性能参数。

1.2 RapidIO特征集

RapidIO特征集和协议是基于通用计算和嵌入式应用做了很多考虑,每一层的特征可以分成三类:功能方面的特征、物理方面的特征和性能方面的特征。

1.2.1逻辑层特征

如果较大量的非相关数据封装在一个包里,消息传输和DMA设备能改善互联输效率,所以,RapidIO包格式支持不同尺寸的数据包,因为消息传递编程模型从本质上说是一个非相关非共享内存模型,在RapidIO设备里,内存空间某些部分仅能被一个处理器或一个控制消息传递接口的本地设备直接存取。

包头尽可能小以降低控制负荷并且包的组织、封装、拆解等操作更快更有效率。随着一个包中包含的数据增加,包的效率也增加。RapidIO支持数据负荷最大256字节,消息对嵌入式控制应用是非常重要的,所以,要支持大小数据域的变化和多包消息。

在系统里允许多次交易的并发传输,不仅能对单个设备进行流水交易,还能在多个设备之间分时使用接口。不具备这些特征,系统通过率的大部分会被浪费掉。

1.2.1.1功能特征
  • 许多嵌入式系统是多处理器系统,而非多处理系统。为了支持分布式I/O和分布式处理等要求,特别在网络和路由市场,消息传递或基于软件的一致性编程模型优于传统的计算机类型的全局共享内存编程模型。RapidIO支持所有的这些编程模型。

  • 无论是非常大还是非常小的系统,都支持同样的兼容的包格式,以满足将来的扩展和需求的变化。

  • 读-修改-写原子操作对实现处理器之间,或者别的系统部件之间的同步是非常有用的。

  • RapidIO结构支持50-60bit的地址,也支持较小系统的34bit本地地址。

  • 如果较大量的非相关数据封装在一个包里,消息传输和DMA设备能改善互联输效率,所以,RapidIO包格式支持变尺寸的数据包。

  • 因为消息传递编程模型从本质上说是一个非相关非共享内存模型,RapidIO假设内存空间某些部分仅能被一个处理器或一个相对于那个内存空间是本地的设备直接存取。企图存取这一部分内存的远程设备必须通过一个控制消息传递接口的本地设备

1.2.1.2物理特征
  • RapidIO包的定义是独立于物理接口的宽度

  • 协议和包的格式独立于物理互连结构,如点到点环节、总线型、多维交换网络、双串口连接等等

  • RapidIO不依赖于物理架构的带宽或延迟

  • 协议处理失序的包发送和接收

  • 在RapidIO里不要求地理寻址,设备的标识与它的地理位置无关,但是能通过其它方式分配标识符。

  • 为了正确操作,某些设备有带宽和延迟要求,RapidIO不应该排除在系统实现时利用这些限制。

1.2.1.3性能特征
  • 对网络应用,消息是非常重要的,所以为了提高效率,支持变化的大小数据域以及多包信息。

  • 包头尽可能小,以降低控制代价,使得包的组织、封装、拆解效率更高。

  • 多次交易允许并发,防止系统性能的浪费。

1.2.2传输层特征
1.2.2.1功能特征
  • 系统尺寸可以很大也可以很小,但是都是一样的或兼容的包格式

  • 因为RapidIO仅有一个传输协议,在不同的具体的实现中的兼容性是被假设存在的

  • 传输协议是灵活的,所以,适应将来的应用。

  • 包总是被假设从一个源到一个目的地。

1.2.2.2物理特征
  • 传输层定义独立于物理接口的宽度。

  • 在RapidIO里不要求地理寻址,设备的标识与它的地理位置无关,但是能通过其它方式分配标识符。

1.2.2.3性能特征
  • 包头尽可能小,以降低控制代价,使得包的组织、封装、拆解效率更高。

  • 广播和多播能够通过在互联结构中的解释传输信息来实现。

1.2.3物理层特征
1.2.3.1功能特征
  • RapidIO在通讯的设备之间提供流控制机制,因为任何设备都不可能实现无限长度的数据缓冲。

1.2.3.2物理特征
  • 连接可以是:点到点单向、一进一出、8-bit或16bit端口

  • 物理层协议和包格式在某种程度上独立于物理互联的拓扑结构,然而,物理结构假设是链式的

  • 不依赖于物理结构的带宽或延迟

  • 物理层协议处理失序和有序的包传输和接收

  • 物理层协议容忍系统里因高频操作或过高噪声引起的瞬时错误

1.2.3.3性能特征
  • 物理协议和包格式允许最小的到最大的数据符合尺寸

  • 包头尽可能小。以减轻控制代价,使得包的组织、封装、拆解效率更高。

  • 系统允许并发交易,以防止浪费系统潜在性能

  • 电器特性允许最高可能的速度。以备将来。

转载自:http://blog.csdn.net/shanghaiqianlun/article/details/50513068

http://xilinx.eetrend.com/article/10510

RapidIO协议(1)的更多相关文章

  1. 【高速接口-RapidIO】1、RapidIO协议概述

    一.RapidIO背景介绍 RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放 ...

  2. 1.RapidIO协议概述

    转自https://www.cnblogs.com/liujinggang/p/9925859.html 一.RapidIO背景介绍 RapidIO是由Motorola和Mercury等公司率先倡导的 ...

  3. RAPIDIO高速串行协议

    RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能. 低引脚数. 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准.RapidI ...

  4. 【高速接口-RapidIO】6、Xilinx RapidIO核仿真与包时序分析

    提示:本文的所有图片如果不清晰,请在浏览器的新建标签中打开或保存到本地打开 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 ...

  5. 【高速接口-RapidIO】5、Xilinx RapidIO核例子工程源码分析

    提示:本文的所有图片如果不清晰,请在浏览器的新建标签中打开或保存到本地打开 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 ...

  6. 【高速接口-RapidIO】4、Xilinx RapidIO核详解

    一.RapidIO核概述 RapidIO核的设计标准来源于RapidIO Interconnect Specification rev2.2,它支持1x,2x和4x三种模式,每通道的速度支持1.25G ...

  7. 【高速接口-RapidIO】3、RapidIO串行物理层的包传输过程

    一.引言 前几篇文章已经谈到RapidIO的协议,串行物理层与控制符号. RapidIO协议包括读事务(NREAD),写事务(NWRITE),流写事务(SWRITE),有响应的写事务(NWRITE_R ...

  8. 【高速接口-RapidIO】2、RapidIO串行物理层的包与控制符号

    一.RapidIO串行物理层背景介绍 上篇博文提到RapidIO的物理层支持串行物理层与并行物理层两种,由于Xilinx 部分FPGA内部已经集成了串行高速收发器,所以用FPGA实现RapidIO大多 ...

  9. 2.RapidIO串行物理层的包与控制符号

    转自https://www.cnblogs.com/liujinggang/p/9932150.html 一.RapidIO串行物理层背景介绍 上篇博文提到RapidIO的物理层支持串行物理层与并行物 ...

随机推荐

  1. HDOJ 5385 The path

    Dicription You have a connected directed graph.Let $d(x)$ be the length of the shortest path from $1 ...

  2. 【神奇の做法】bzoj2456 mode

    题解:http://www.tuicool.com/articles/BfQBzif #include<cstdio> using namespace std; int n,x,ans,t ...

  3. 工作流Activiti新手入门学习路线整理

    写在前面: 最近项目中使用到了工作流,虽然此部分不是自己需要完成的,但是也涉及到了要调用写的接口.正好有时间,就了解下,以便之后能在其他项目中用到时,不至于什么都不知道什么都不了解. 这里就主要整理下 ...

  4. 美团在Redis上踩过的一些坑-3.redis内存占用飙升(转载)

     一.现象:     redis-cluster某个分片内存飙升,明显比其他分片高很多,而且持续增长.并且主从的内存使用量并不一致.   二.分析可能原因:  1.  redis-cluster的bu ...

  5. CSS box-flex属性,然后弹性盒子模型简介(转)

    一.淡淡的开头语 昨天趁着不想工作的时间间隙闲逛24ways,在My CSS Wish List一文中,见到了个新鲜的CSS属性,就是题目中的box-flex,以前没有见过,顿生疑惑,不知是骡子还是马 ...

  6. glib wpa_supplicant Unix上库编译错误解决与总结

    编译Linux下的库是一件痛苦的事情,这里主要阐述glib和wpa_supplicant库的编译,因各自的依赖关系,另外一些库要事先编译.glib依赖libffi和zlib,而wpa_supplica ...

  7. HTTP协议下保证登录密码不被获取最健壮方式

    原文:http://www.cnblogs.com/intsmaze/p/6009648.html HTTP协议下保证登录密码不被获取最健壮方式   说到在http协议下用户登录如何保证密码安全这个问 ...

  8. gin框架中间件解决跨域问题

    http://www.niu12.com/article/45// 初始化routerrouter := gin.New() router.Use(gin.Logger()) router.Use(g ...

  9. servlet之request和response的使用区分

    有的时候在写servlet程序时,我总是被一个方法该用request去调用.还是用response去调用而困惑.从而造成编程时间的延长. 我在区分request和response的使用时,使用的方法是 ...

  10. 通过案例对SparkStreaming透彻理解三板斧之二

    本节课主要从以下二个方面来解密SparkStreaming: 一.解密SparkStreaming运行机制 二.解密SparkStreaming架构 SparkStreaming运行时更像SparkC ...