何谓SRIO——RapidIO之旅从这里开始

SRIO(Serial RapidIO)协议是一种用于高速串行通信的协议,旨在连接数字信号处理器(DSP)、网络处理器、FPGA等芯片,以及它们之间的互连。SRIO协议具有低延迟、高带宽(支持 1.25 Gbps 到 25 Gbps 的数据传输速率)、可靠性高等特点,常用于数据中心、通信设备、无线基站、雷达、航空电子等领域。

根据

1 历史沿革

1997年,Motorola设计并推出了一种名为"Serial Interconnect Fabric"(SIF)的串行互连技术。
2001年,Motorola将SIF改名为Serial RapidIO,并邀请其他公司加入该协议的制定。
2002年,RapidIO Trade Association由Cypress、IDT、Motorola、Texas Instruments、Xilinx等几家公司成立,致力于推广RapidIO技术。
2003年,发布第一个版本的SRIO规范,支持数据传输速率为1.25 Gbps。
2005年,SRIO 2.0规范发布,支持更高的数据传输速率,最高可达3.125 Gbps。
2008年,SRIO 2.1规范发布,加入了新的特性,如流控和虚拟通道等。
2011年,SRIO 2.2规范发布,进一步提高了数据传输速率和性能,并增强了对多处理器系统的支持。
2014年,SRIO 3.0规范发布,引入了新的物理层和协议特性,并支持更高达25 Gbps的数据传输速率。
2019年,SRIO 4.0规范发布,继续增强SRIO在5G网络、人工智能、高性能计算等领域的应用能力。

2 推广组织

2.1 RAPIDIO

RapidIO.org 是一个非营利性组织,旨在促进RapidIO互连技术的发展和推广。该组织成立于2000年,已成为全球领先的低延迟、高带宽、可伸缩性和可靠性的互连标准之一。

RapidIO.org致力于推广RapidIO技术,促进其在多个领域的应用,包括通信设备、计算机、军事和航天等领域。该组织的会员包括芯片制造商、系统集成商、软件开发商、OEM厂商、研究机构和学术界等各个领域的专家和企业。

RapidIO.org提供了各种资源和服务,以支持RapidIO技术的开发和应用,包括技术规范、测试套件、开发工具、培训课程、会议和论坛等。此外,该组织还积极参与标准化组织和行业联盟的活动,推动RapidIO技术的国际标准化和产业化进程。

总之,RapidIO.org致力于推广RapidIO互连技术,在多个领域促进其应用,并为其开发和应用提供各种支持和服务。

2.2 RapidIO和SRIO的关系

SRIO (Serial RapidIO) 是一种串行通信协议,旨在实现高速数据传输和低延迟的通信。而 RapidIO 则是一个组织,致力于推广和发展使用 SRIO 技术的标准化互连架构。

换言之,SRIO 是一种通信协议,而 RapidIO 是一个组织,它的成员使用 SRIO 技术来实现高速和低延迟的互连。RapidIO 组织负责制定和推广 RapidIO 互连标准,并支持 RapidIO 产品的开发和部署。因此,SRIO 和 RapidIO 是相互关联的,但它们是不同的概念。

3 代际特点

RapidIO 1.x:发布于2002年,支持1.25Gbps和2.5Gbps的速率,最大传输距离为100米,具有可靠性高、低延迟、服务质量保障等特点。

RapidIO 2.x:发布于2007年,支持3.125Gbps和6.25Gbps的速率,最大传输距离为15米,具有更高的带宽、更低的延迟和更强的错误检测与纠正能力。

RapidIO 3.x:预计于2022年发布,支持12.5Gbps的速率,将采用更先进的协议和技术,使其成为连接高性能计算设备的最佳选项之一。与前两代相比,RapidIO 3.x 的主要改进包括更低的延迟、更高的带宽、更灵活的拓扑结构等。

4 协议实现

RapidIO分为3层:

逻辑层(Logical Layer):RapidIO的逻辑层定义了协议和交互规则,包括命名服务、配置管理、错误报告和事件通知等。逻辑层主要负责确保数据在传输过程中的正确性和可靠性,并提供基本的路由功能来寻址目标设备。

传输层(Transport Layer):RapidIO的传输层提供高效的数据传输机制,支持点对点和多点广播传输模式,并提供流控制和拥塞控制等重要功能。传输层还支持多队列机制,可以实现同时传输多个会话或数据流,从而提高带宽利用率和系统吞吐量。

物理层(Physical Layer):RapidIO的物理层定义了硬件接口和电气特性,包括传输速率、信号编码、差分信号传输和时钟同步等。物理层还支持多种不同的物理介质,包括高速串行器件、光纤和电缆等。

4.1 逻辑层

RapidIO是基于包交换的互连技术,传输层定义了包交换的路由和寻址机制。

逻辑层协议包括控制、数据和管理三个子层。

在RapidIO中,控制子层负责建立和维护端到端的通信路径,并对数据传输进行控制。这个过程可以通过发送控制报文来实现,其中控制报文包含有关源地址、目标地址、传输类型、QoS(服务质量)等信息。

数据子层则负责实际的数据传输。数据报文由源节点打包成多个数据包,每个数据包都包含同步信息、错误控制信息和有效载荷数据。接收节点根据同步信息解包数据包,并使用错误控制信息检测和纠正任何传输错误。

最后,管理子层负责管理节点之间的连接和网络拓扑结构。管理报文用于发现新节点、确定节点状态、管理路由表和配置寄存器等。

逻辑层定义了操作协议和相应的包格式。RapidIO支持的逻辑层业务主要是:直接IO/DMA (Direct IO/Direct Memory Access)和消息传递(Message Passing)。

直接IO/DMA模式是最简单实用的传输方式,其前提是主设备知道被访问端的存储器映射。在这种模式下,主设备可以直接读写从设备的存储器。直接IO/DMA在被访问端的功能往往完全由硬件实现,所以被访问的器件不会有任何软件负担。从功能上讲,这一特点和德州仪器DSP的传统的主机接口(HPI, Host Port Interface)类似。但和HPI口相比,SRIO(Serial RapidIO)带宽大,管脚少,传输方式更灵活。

对上层应用来说,发起直接IO/DMA传输主要需提供以下参数:目地器件ID、数据长度、数据在目地器件存储器中的地址。

直接IO/DMA模式又可进一步分为以下几种传输格式:

  1. NWRITE: 写操作,不要求接收端响应。
  2. NWRITE_R: 带响应的NWRITE(NWRITE with Response),要求接收端响应。
  3. SWRITE:流写(Stream Write),数据长度必须是8字节的整数倍,不要求接收端响应。
  4. NREAD: 读操作。

4.2 传输层

传输层是RapidIO协议栈的一个组成部分,位于物理层和消息层之间。其主要功能是提供可靠的数据传输和流控制。传输层使用虚拟通道(VC)概念来支持多路复用和分时复用,从而在单个物理链路上同时传输多个数据流。

传输层包括四个不同的子层:数据链路控制层(DLC)、流控制层(FLC)、可靠性层(RLC)和可选的直接存储器访问层(DAM)。DLC负责帧同步、检错和重传,FLC负责流量控制,RLC负责确认和重传丢失或损坏的数据包,DAM提供了一种直接将数据写入/读取到内存中的机制,以避免处理器的干预。

在传输层中,每个VC都有唯一的VC编号和优先级,以及一个独立的发送和接收缓冲区。这些缓冲区可以设置为固定大小或自适应大小,以提高数据传输效率。传输层还支持多种数据类型,包括消息、数据和DMA事务。
RapidIO网络主要由两种器件,终端器件(End Point)和交换器件(Switch)组成。终端器件是数据包的源或目的地,不同的终端器件以器件ID来区分。RapidIO支持8 bits 或 16 bits器件ID,因此一个RapidIO网络最多可容纳256或65536个终端器件。与以太网类似,RapidIO也支持广播或组播,每个终端器件除了独有的器件ID外,还可配置广播或组播ID。交换器件根据包的目地器件ID进行包的转发,交换器件本身没有器件ID。

RapidIO的互连拓扑结构非常灵活,除了通过交换器件外,两个终端器件也可直接互连。

4.2.1 交换机器件

Tsi721:这是IDT公司生产的SRIO交换机,支持2.5Gbps和5Gbps的速率,具有多种配置选项,可以灵活适应不同的应用场景。Tsi721还支持可靠的数据传输、流控制和错误检测等功能。

AS57xx系列:这是AMCC公司(现在归属于Microsemi)生产的SRIO交换机,支持1x、2x、4x、8x和16x的速率,可达到20Gbps的带宽。AS57xx系列还支持双网格体系结构、多路复用和多路分解等高级特性。

P4080DS:这是寒武纪公司(Cavium Networks)生产的基于Power Architecture的开发板,集成了P4080多核处理器和SRIO交换机。P4080DS支持多种接口标准,包括PCI Express、SRIO和10GbE,可用于构建高速数据中心和网络设备。

MPC8572DS:这是飞思卡尔公司(Freescale Semiconductor)生产的基于Power Architecture的开发板,集成了MPC8572多核处理器和SRIO交换机。MPC8572DS支持多种接口标准,包括PCI Express、SRIO和10GbE,可用于构建高性能计算、存储和网络设备。

Stratix IV GX:这是英特尔公司(Altera)生产的FPGA芯片,集成了SRIO收发器和逻辑电路,可用于构建高速互连和数据处理系统。Stratix IV GX支持多种协议标准,包括SRIO、PCI Express、10GbE和DDR3存储器等。

4.3 物理层

Serial RapidIO的物理层规范定义了信号传输的电气和机械特性,包括信号编码、时钟同步、差分传输、信号模式匹配和错误检测等。

RapidIO 1.x 协议定义了以下两种物理层接口标准:

  1. 8/16 并行LVDS协议
  2. 1x/4x 串行协议 (SRIO)

并行RapidIO由于信号线较多(40~76)难以得到广泛的应用,而1x/4x串行RapidIO仅4或16个信号线,逐渐成为主流。

Serial RapidIO物理层使用差分传输技术,即在发送端将数据分成两部分,在接收端再将其合并,以减少噪声干扰和传输误差。Serial RapidIO还采用了多种信号编码方式,如8b/10b、64b/66b和128b/130b等,以实现数据的可靠传输和时钟同步。

串行RapidIO基于现在已广泛用于背板互连的SerDes(Serialize Deserialize)技术,它采用差分交流耦合信号。差分交流耦合信号具有抗干扰强、速率高、传输距离较远等优点。差分交流耦合信号的质量不是由传统的时序参数来衡量,而是通过眼图来衡量,眼图中的“眼睛”张得越开则信号质量越好。

差分信号的强弱由一对信号线的电压差值表示,串行RapidIO协议规定信号峰-峰值的范围是200mV-2000mV。信号幅度越大,则传输距离越远,RapidIO协议按信号传输距离定义两种传输指标:

短距离传输(Short Run),<=50厘米,主要用于板内互连,推荐的发送端信号峰-峰值为500mV-1000mV

长距离传输(Long Run),>50厘米,主要用于板间或背板互连,推荐的发送端信号峰-峰值为800mV-1600mV

为了支持全双工传输,串行RapidIO收发信号是独立的,所以每一个串行RapidIO口由4根信号线组成。标准的1x/4x 串行RapidIO接口,支持四个口,共16根信号线。这四个口可被用作独立的接口传输不同的数据;也可合并在一起当作一个接口使用,以提高单一接口的吞吐量。

发送时,逻辑层和传输层将组好的包经过CRC编码后被送到物理层的FIFO中,“8b/10b编码”模块将每8bit数据编码成10bits数据,“并/串转换”模块将10bits并行数据转换成串行bits,发送模块把数字bit转换成差分交流耦合信号在信号线上发送出去。这里的8b/10编码的主要作用是:

保证信号有足够的跳变,以便于接收方恢复时钟。串行RapidIO没有专门的时钟信号线,接收端靠数据信号的跳变恢复时钟。所以需要把信号跳变少的8bits数据(如全0或全1)编码成有一定跳变的10bits数据。另外,也使得总体数据中0和1的个数均衡,以消除直流分量,保证交流耦合特性;

8b/10编码可扩大符号空间,以承载带内控制符号。10bits能表示1024个符号,其中256个表示有效的8bits数据,剩下的符号中的几十个被用作控制符号。控制符号可被用作包分隔符,响应标志,或用于链路初始化,链路控制等功能;

8b/10编码能实现一定的检错功能。1024个符号中,除了256个有效数据符号和几十个控制符号外,其它符号都是非法的,接收方收到非法符号则表示链路传输出错。

接收的过程则正好相反,首先接收方需要根据数据信号的跳变恢复出时钟,用这个时钟采样串行信号,将串行信号转换为10bits的并行信号,再按8b/10b编码规则解码得到8bits数据,最后做CRC校验并送上层处理。

数据被正确的接收时,接收端会发送一个ACK响应包给发送端;如果数据不正确(CRC错或非法的10bits符号),则会送NACK包,要求发送方重传。这种重传纠错的功能由物理层完成,而物理层功能往往由硬件实现,所以不需要软件干预。

串行RapidIO支持的信号速率有三种:1.25GHz,2.5GHz,3.125GHz。但由于8b/10b编码,其有效数据速率分别为:1Gbps, 2Gbps, 2.5Gbps。 4个1x端口或一个4x端口支持的最高速率为10Gbps。

为了确保信号传输的稳定性和可靠性,Serial RapidIO还提供了多种信号模式匹配和错误检测机制。其中,PRBS(Pseudo-Random Bit Sequence)序列测试可以用于验证串行链路的完整性和性能。而FEC(Forward Error Correction)技术则可以在数据传输过程中纠正部分错误,提高可靠性和抗干扰能力。

在RapidIO中,电器传输采用差分信号传输技术,在高速传输时可以减少噪声干扰。传输速率从1.25 Gbps到25 Gbps,物理层包括RSPE码(Reduced Signal Pulse Encoding)和8B/10B编码。

另一方面,光学传输可以支持更高的传输速率和长距离传输。RapidIO使用小型Form-factor Pluggable(SFP)或Quad Small Form-factor Pluggable(QSFP)光模块进行光学传输。光学传输还可以减少电磁干扰和地线回路问题。

除了传输介质之外,RapidIO物理层还包括多个子层,如PHY、PCS、PMA和PMD等,这些子层通过降低传输干扰、提高信号完整性和控制时序来实现高性能数据传输。

5 信号形式

SRIO使用差分信号传输数据,因为差分信号具有抗干扰能力较强、传输距离远等优点。

差分信号由一对相反的信号组成,例如P(正极性)和N(负极性)信号。在SRIO中,数据被编码为差分信号,其中P和N信号之间的电压差代表了数据的0或1状态。当P信号上升时,N信号下降,这种反向变化可以减少信号的辐射噪声和EMI(电磁干扰),同时还可以提高信号的可靠性和传输速率。

在SRIO中,差分信号还用于时钟、复位和控制信号的传输。通过使用差分信号,SRIO可以实现高速、可靠的数据传输,使其成为高性能计算和通信系统中广泛使用的互连技术之一。

5.1 差分信号

差分信号是指两个信号之间的差异或差异值。通常情况下,这两个信号是同一信号的两个副本,但在某些情况下,它们也可以是来自不同源的信号。差分信号通常用于噪声消除、信号传输和数据编码等应用中。

在电路设计中,差分信号通常使用差分对进行处理,其中一个信号经过放大并取反,然后与另一个信号相加,以产生增强的输出信号。这种方法可以抵消干扰信号并提高信号质量。

在数字信号处理中,差分信号通常用于数据压缩和加密等应用中。通过计算相邻数据点之间的差异,并将这些差异编码为单个数据点,可以减少需要传输或存储的数据量,从而提高效率。

5.2 眼图

差分信号的眼图是一种由示波器生成的多个码元波形重叠在一起形成的图像,主要出现在差分对信号上,可以利用双通道示波器观察。眼图能揭示出差分信号的噪声和失真特性,是评估信号质量的重要工具之一。

6 参考

  • 什么是眼图?(扫盲向)
  • rapidio.org 组织官网
  • TSI721 RapidIO Bridge
  • 串行 RapidIO: 高性能嵌入式互连技术

何谓SRIO——RapidIO之旅从这里开始相关推荐

  1. 【SRIO】5、Xilinx RapidIO核例子工程源码分析

    目录 一.软件平台与硬件平台 二.打开例子工程 三.例子工程详解 3.1 工程概述 3.2 工程结构 3.3 工程分析 四.工程源码分析 3.1 顶层模块srio_example_top.v源码分析 ...

  2. 【SRIO】4、Xilinx RapidIO核详解

    目录 一.RapidIO核概述 二.RapidIO核接口说明 2.1 逻辑层接口 2.2 Buffer接口 2.3 物理层接口 2.4 寄存器空间 三.使用RapidIO核 3.1 设计指南 3.2 ...

  3. 【SRIO】2、RapidIO串行物理层的包与控制符号

    目录 一.RapidIO串行物理层背景介绍 二.RapidIO串行物理层的包格式 2.1 串行物理层包格式与并行物理层包格式的区别 2.2 RapidIO串行物理层包格式 2.3 RapidIO串行物 ...

  4. 【高速接口-RapidIO】Xilinx SRIO IP 核详解

    目录 原文链接:https://www.cnblogs.com/liujinggang/p/10072115.html 一.RapidIO核概述 二.RapidIO核接口说明 2.1 逻辑层接口 2. ...

  5. 沧小海基于xilinx srio核的学习笔记之第二章 Rapidio技术概述

    总的目录在这哦~ https://blog.csdn.net/z123canghai/article/details/114648658 目录 第二章 Rapidio技术概述 2.1 总体原则 2.2 ...

  6. 串行RapidIO(Serial RapidIO,SRIO):协议介绍

    目录 一.RapidIO背景介绍 二.RapidIO协议概述 2.1 操作与控制符号 2.2 包格式 三.I/O逻辑操作与包格式 3.1 引言 3.2 常用的I/O逻辑操作 读操作(NREAD, RE ...

  7. 【SRIO】6、Xilinx RapidIO核仿真与包时序分析

    目录 一.软件平台与硬件平台 二.介绍 三.例子工程结构 四.SRIO核包时序分析 4.1 链路初始化与控制符号 4.2 SWRITE事务 4.3 NWRITE_R事务 4.4 NWRITE_R的响应 ...

  8. 串行RapidIO(Serial RapidIO,SRIO):IP核基础知识

    目录 前言:SRIO .RapidIO.GT 有什么关系? 一.SRIO IP核概述 1.1. 概述 ​​​​​​​1.2 SRIO核架构 二.接口介绍 2.1. 逻辑层接口LOG(重点) 2.1.1 ...

  9. RAPIDIO(SRIO)动态调节速率设计方案

    1. 概述 本文用于讲解xilinx FPGA中的RAPIDIO的DRP的配置情况,用实例演示配置过程,实现动态调节RAPIDIO的线速率的方案. 名词解释: GTXE2_CHANEL :FPGA的高 ...

最新文章

  1. C++对象模型学习——站在对象模型的尖端
  2. vue-video-player集成videojs-contrib-hls实现.m3u8文件播放
  3. 归并排序 Merge Sort
  4. C#中dynamic、ExpandoObject 的正确用法
  5. pageaudit属性不正确_科学的基本属性
  6. defender 报备_去体育中心游泳碰上竞训怎么办?酒店承接会议业务需要报备吗?部门这样说...
  7. Web.py Cookbook 简体中文版 - 在webpy中使用Cheetah模板引擎
  8. 编程器测试软件,CH341A编程器
  9. 敏捷软件开发与极限编程
  10. 0xc0000005 系统应用日志_异常代码: 0xc0000005
  11. c# - 美元符号是什么$
  12. 经典蓝牙inquiry与inquiry scan
  13. alibaba的json包的数据转换
  14. 单细胞转录组文章复现系列(一)——seurat
  15. 魔方自动还原程序3D版本和2D 修正版
  16. TXT文本的格式问题
  17. 解决memoryerror
  18. 我的Hadoop安装流程
  19. 首都师范大学计算机调剂被拒绝,首都师范大学考研调剂注意事项有哪些?
  20. Git中smart Checkout与force checkout

热门文章

  1. LCD1602液晶 - 开发技术详解
  2. Prim算法求图的最小生成树(Java)
  3. 银行管理系统 - 2022计科实训QT课设
  4. 如何使用petri网建模工具
  5. 使用jQuery判断浏览器UA类型
  6. 013 gtsam/examples/ISAM2Example_SmartFactor.cpp
  7. linux下启动 Tomcat的报错cannot touch '/usr/local/tomcat.../logs/catalina.out' Permission denied.
  8. 五面阿里拿下飞猪事业部offer,面试题附答案
  9. 夜神模拟器开启网络桥接模式共享局域网ip
  10. MacBook安装Windows系统后耗电快的原因在这里