http://shenjin235.blog.163.com/blog/static/32325786200971010381581/?latestBlog

http://bbs.21ic.com/icview-227246-1-1.html

http://www.ic-jiazhi.com/showinfo.asp?id=2812

-----------------------------------

小结by   e-shannon:

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB

Rapid IO技术最初是由Freescale 和Mercury 共同研发的一项互连技术

最大payload是256字节(类似硬盘簇,所以多用于网络存储,不知为什么会用在无线基站),分为三层,单一传输实体

物理层:8b/10b编码,XAUI(10GbE Attachment Unit Interface)接口,对链路的管理,包括流量控制,包定界和错误报告等使用专用的8B/10B码(即K码),每一个通道支持三种不同的传送波特率1.25G,2.5G,3.125G(与之相对应的数据速率分别是 1.0G,2.0G,2.5Gbps)。

传输层:Rapid IO的第二层是传输层,实现Rapid IO数据包的路由、传送。Rapid IO的路由和交换是通过每个终端设备的ID号来实现的

逻辑层:在Rapid IO的体系结构中定义了6种基本操作,用来执行相应操作的事务和对操作的描述。这6种操作包 括:NREAD(读),NWRITE(写),NWRITE_R(写操作,但操作结束前需要等等一个响应);SWRITE(流写,面向大数据量DMA传 送);Atomic(原子操作:读-修改-写);Maintenance(维护包,以Rapid IO专用寄存器为目标的事务,如:系统发现,初始化、配置以及系统维护)。

流量控制是任何互连技术的重要内容,Rapid IO提供了链路级的流量控制和端到端的流量控制两种方式,由于业务流与物理连接和系统拓朴结构相关,规定流量控制为Rapid IO物理层规范的内容,同时定义了重传、限速和基于信用三种流控方

---------------------------------------

RAPIDIO简介&什么是RAPIDIO  

2009-08-10 22:38:15|  分类: 默认分类 |  标签:什么是rapidio  rapidio是什么  rapidio简介  rapi   |字号 订阅

 

前言:

最近工作中可能要用到RAPIDIO,RAPIDIO的协议暂时是没空看了,这里先临时抱佛脚,找了两篇介绍RAPIDIO的文章看看,当然里面还加了部分我自己的话,呵呵。

在过去的30多年时间内,处理器的主频和性能呈现指数上升的趋势,而与之相对应的处理器总线传 送能力的增长却相对缓慢的多,这就导致了由时钟频率表征的CPU的性能和由总线频率表征的CPU可用的总线带宽之间的差距不断在变大,互连总线成为高速运 算和处理系统的瓶颈。现代的高性能计算系统和网络存储系统需要更高速率的数据传送。高带宽、低延迟,高可靠性成为衡量一个总线技术的基本要求。

 

一、 传统总线的问题:

传统总线多采用并线总线的工作方式,这类总线一般分为三组:数据线,地址线和控制线。实现此类 总线互连的器件所需引脚数较多,例如对于64位数据宽的总线,一般由64根数据线,32-40根地址线以及30根左右的控制线,另外由于半导体制造工艺的 限制还要加上一定数量的电源引线和地线,总共会有约200根左右的引线,这给器件封装、测试、焊接都带来了一些问题,如果要将这种总线用于系统之间的通过 背板的互连,由此带来的困难就可想而知。

 为了提高总线的传输能力,传统总线多采用增加数据总线的宽度或是增加总线的频率的方式来实 现。如PCI总线支持25M、33M、50M、66M的工作频率,PCI-X总线是在PCI总线结构的基础上进得到的一种总线结构,在硬件和软件上兼容 PCI总线,PCI-X总线可以支持32bit、64bit的总线,其工作频率为66M、133M,对于64bit的PCI-X,如果其总线工作频率为 133MHz,其峰值传送带宽可达到133×64bit=8.512Gbps。目前PCI-X也有一些版本定义了总线频率为266MHz或者533MHz 的总线,另外也有一些总线定义了数据宽度为128bit 或是256bit的总线,但很少有人会选用这样的总线,因为增加总线频率和数据带宽虽然一定程度上满足了人们对高速数据传送的需求,但同时也带来了一些新 的问题。更宽的总线导致器件引脚数的增加,从而增加封装尺寸,当然带来成本上的增加。

 另一个问题是当总线的工作频率超过133MHz时,很难在一条总线上支持超过两个外部设备, 在总线上增加器件相当于增加容性负载,而容性负载的增加意味着装载或排空电荷使总线达到所需的额定电平的时间增长,信号的上升和下降时间的增长会限制总线 的工作频率。对于并线总线的另一个问题是时钟与信号的偏移容限的问题,对于这样一组并行信号线的集合,信号的采样是取决于时钟信号的上升沿或是下降沿,这 样对于信号的跳变和时钟的跳变时刻的时间差就有一个上限值,随着速率的升高,布线长度、器件门电路自身的翻转时间都会影响总线的速率。

用于处理器之间互连以及背板互连的另一个主要技术是以太网,近些年来,以太网在存储、电信、通 讯、无线、工业应用以及嵌入式应用中得到大量的应用,现有的成熟的硬件和协议栈降低了开发的复杂性和产品的开发成本。但是在局域网和广域网中得到很好应用 的以太网用于这种芯片级或是板极的系统互连显示出了低效率、高延时的特性,QOS需要高层软件的参与,造成软件模块化结构不清晰。尤其是当背板的传输速率 从1Gbps增加到10Gbps时,增加的处理要求已经超出了以太网的能力。

二、什么是Rapid IO?

上面说了这么多,我们可能在想,难道还有比这更快的传输方式,一个时钟传输相应总线宽度的数据不是已经是极限了吗?难道还有其他方法?呵呵,其实这只是思维上的错区,或者说我们想错地方了,我们还是先看看什么是RapidIO吧。

Rapid IO技术最初是由Freescale 和Mercury 共同研发的一项互连技术,其研发初衷是作为处理器的前端总线,用于处理器之间的互连,但在标准制定之初,其创建者就意识到了RapidIO还可以做为系统 级互连的高效前端总线而使用。1999年完成第一个标准的制定,2003 年5月,Mercury Computer Systems公司首次推出使用Rapid IO技术的多处理器系统ImpactRT 3100, 表明Rapid IO已由一个标准制定阶段进展到产品阶段,到目前为止,Rapid IO已经成为电信,通迅以及嵌入式系统内的芯片与芯片之间,板与板之间的背板互连技术的生力军。

Rapid IO 是针对嵌入式系统的独特互连需求而提出的,那么我们首先来说明嵌入式系统互连的一些基本需求:嵌入式系统需要的是一种标准化的互连设计,要满足以下几个基 本的特点:高效率、低系统成本,点对点或是点对多点的通信,支持DMA操作,支持消息传递模式交换数据,支持分散处理和多主控系统,支持多种拓朴结构;另 外,高稳定性和QOS也是选择嵌入式系统总线的基本原则。而这些恰是Rapid IO期望满足的方向。所以Rapid IO在制定之初即确定了以下几个基本原则:一是轻量型的传输协议,使协议尽量简单;二是对软件的制约要少,层次结构清晰;三是专注于机箱内部芯片与芯片之 间,板与板之间的互连。

Rapid IO采用三层分级的体系结构,分级结构图如下图所示:

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB

由此图可见,Rapid IO协议由逻辑层、传输层和物理层构成。最明显的一个特点就是Rapid IO采用了单一的公用传输层规范来相容、会聚不同的逻辑层和物理层,单一的逻辑层实体增强了Rapid IO的适应性。

物理层定义了串行和并行两个实体,得到广泛应用的只有串行方式,尤其是用在背板互连的场合,串 行方式可以在两个连接器之间允许80-100cm的连线,单链路传输带宽可达10Gbps。目前Rapid IO的标准是Version1.3,在未来的Version2.0规范中定义了更高的传输速率,可以得到更高的传输带宽。

物理层:

Rapid IO规范中定义的最低层是物理层,最初定义的是并行总线,之后定义了串行总线,并线总线可以选择8位或16位的宽度,传输电平采用LVDS方式,时钟信息 在一对单独的差分线上传送,不在数据流中编码,频率在250M-1.0G之间。相比串行总线而言,无多少优点可言,所以只是在最初有支持这种总线的芯片出 现,目前几乎所有的物理层均采用了串行方式。

串行物理层定义了器件间的全双工串行链路,在每个方向上支持1个串行差分对称为1个通道 (1x),或同时支持4个并行的串行差分对称为4通道(4x),接口的电气特性采用成熟的XAUI(10GbE Attachment Unit Interface)接口,编码方式采用的是8B/10B编码,对链路的管理,包括流量控制,包定界和错误报告等使用专用的8B/10B码(即K码),接 收端从链路上提取时钟信息,无需独立的时钟线。每一个通道支持三种不同的传送波特率1.25G,2.5G,3.125G(与之相对应的数据速率分别是 1.0G,2.0G,2.5Gbps)。

 

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB                                                           图:Control symbol 包的结构

Rapid IO是一种基于可靠传送的协议,每一个数据据包的传送均要求对端在物理层上响应一个控制符号包,此包是一个4个字节的数据包,表明了数据包的传送状态,数 据包是否被对方接方,还是要求重新发送或是包未被接收。发送方和接收方均可以使用控制符号包来获得对方的状态。

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB                                                        图:Rapid IO包结构及物理层组成

Ack ID被接收方用作发送响应包的ID号,表明此包是否被接收端接收,或是需要重传。Rapid IO协议定义了两个bit位用于表示包的优先级,所以共有4个优先等级,0是最低的,3是最高的,优先级高的包将被交换器优先传送。

每一个数据包都会被物理层附加上一个或两个16bit的CRC字段,用于接收方判断接收到的数 据包的完整性,小于80个字节的数据包只有一个CRC,大于80个字节的数据包除了在第80个字节后有第一个CRC字段后,还会在包的末尾再加上一个 CRC字段,实现数据包的检错,自动纠错和自动重传的功能,保证数据包被对端完整正确的接收。第一个CRC字段可用于对大数据包包头的验证,这样就可以在 整个数据包被接收下来之前就可以进行对数据包的处理,交换器的直通模式就是利用了这个特性,这样可以有效减少传送时延。ACKID并不包括在CRC的计算 范围内,这几个bit位在计算CRC时用0代替,这样就保证了在每一个链路上CRC无须被重新计算,当然如果HOP_COUNT字节有变化时,CRC还是 需要重新计算的。

传输层:

Rapid IO的第二层是传输层,实现Rapid IO数据包的路由、传送。所有的逻辑层协议均使用单一的传输层实体来实现,这样无论逻辑层怎么变化,或是采用何种方式来封装应用,都可以用单一的传输层实 体来实现,即使有新的逻辑层规范出现,也可以用这个单一的传输层来实现。

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB      

Rapid IO的路由和交换是通过每个终端设备的ID号来实现的。每一个终端都会分配一个唯一的ID号,当一个终端发出一个数据包时,在它的包头中包含有目的终端的 ID号和发送源端的ID号。每一个交换器在它的每一个端口上都有一个交换路由表,根据此表就可以决定此数据包由那一个端口送出。每个端口的路由表需要在系 统初始化时进行配置,这与以太网相比,显得不是非常的灵活和智能,但正是如此,使得系统的路由实现变得非常简单。同样对于组播功能的实现也变得简单,只是 由单一的传输层就可以实现了。

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB

Rapid IO系统构成如左图,包括两类器件,一个是终端,产生数据包和接收数据包;另一类是交换器,实现数据包在各个端点间的路由和传送,且不对数据包做解释。

Rapid IO的传输层包头中的另一个字节是HOP_COUNT,是用来实现终端对交换器的初始化和路由配置,Rapid IO交换器的配置可以用任一个与之相连的终端进行配置,当交换器收到一个数据包时,它会首先判断收到包的HOP_COUNT值,如果此值是0则由此交换器 终结此数据包,交换器利用此数据包的数据进行读写操作;如果此值不是0,则交换器将此值减一,然后按照目的ID值查路由表进行转发。如果是要对级连的多个 交换器进行配置,可以在发送这些维护包时设置HOP_COUNT为0,1,2等对与之相连的第一个交换器,第二个交换器以及第三个交换器,以此类推。

逻辑层:

         在Rapid IO的体系结构中定义了6种基本操作,用来执行相应操作的事务和对操作的描述。这6种操作包 括:NREAD(读),NWRITE(写),NWRITE_R(写操作,但操作结束前需要等等一个响应);SWRITE(流写,面向大数据量DMA传 送);Atomic(原子操作:读-修改-写);Maintenance(维护包,以Rapid IO专用寄存器为目标的事务,如:系统发现,初始化、配置以及系统维护)。

RAPIDIO简介什么是RAPIDIO - shenjin235 - ARMFPGAPCB

在消息传递系统中,经常使用两种机制将命令或数据从一个器件到另一个器件,一个是DMA(直接内存访问),另一个是messaging(消息)。使用消息传送时,发送端只须访问目标,而不需要象DMA方式那样,还需对目标的地址空间的可见性。

 Rapid IO定义了两种不同的包格式用于消息事务,第10类包格式(door bell)和第11类包格式,doorbell非常适合传送8bit或16bit短信息,可以用于处理器的中断等。第11类消息数据所最大的载荷是 4096字节,可以由16个消息事务组成,每个最大载荷是256字节。Rapid IO可以支持4个讯息信箱(mailbox),每个信箱可以最多装入4个信件,这样发送方可以同时发送4个信件到同一个目标信箱。

        除此,Rapid IO也具备Data Streaming的逻辑层协议,为封装和传输通过Rapid IO交换器的数据流提供一种标准方法。支持独立流事务,通过SAR功能支持长度可变的PDU,且与内部的PDU协议无关,提供对虚拟流识别功 能;Rapid IO流是由源ID、目的ID与传送链路组成的逻辑结构,为了支持固定、较小的包长,必须对较长PDU分段处理,数据流支持分段传输以及重组还原操作,在段 落类型上主要有:开始(Start)、继续(Continuation)和结束(End), 当然可能会有多个继续段。虚拟流被定义为协议数据单元定序集,可以对各个数据流进行识别,在输入输出器件对之间可以只存在一个单独的流,系统也可以为每一 用户和流量类型的组合分配一个单独的流,使用虚拟流标识最多可标识四百万个流,特定的流量级别可以提供基于优先级、延迟和吞吐率等因素的流量商定,可以根 据中最高位的优先次序处理交换结构中的流量。

        流量控制是任何互连技术的重要内容,Rapid IO提供了链路级的流量控制和端到端的流量控制两种方式,由于业务流与物理连接和系统拓朴结构相关,规定流量控制为Rapid IO物理层规范的内容,同时定义了重传、限速和基于信用三种流控方式,保证Rapid IO数据流的正确传送。除了链路级的流量控制处,同时Rapid IO也定义了端到端的流量控制机制,链路级流控管理紧相连的两个器件,但对于来自多个源,发往同一个或多个目的地的流量会很大程度上降低系统的性能,端到 端的流量控制使用由交换或是端点器件产生的特殊拥塞包来控制流量,通过交换器件将拥塞控制包传回到源端,源端可根据收到的控制包暂停发送数据包一定时间, 通过限制源头流量来达到流量控制的目的。单一的Rapid IO传输层结构使得拥塞数据控制包的传送变得非常简单,交换结构只是把他当作普通数据包进行传送,但包的优先级可能不同。

三、 Rapid IO在高速系统设计中的应用

       目前,Rapid IO在无线基站系统中已经得到了广泛的应用,同样在视频处理,语音处理,高性能计算机及存储领域也会得到越来越多的应用。在实现芯片到芯片之间、板与板之 间的高速互连上,Rapid IO所能带来的好处也越来越直观,对于简化系统设计、高带宽、低延时等特点也被开发人员广泛接受。

 

       下一代的Rapid IO在应用上也要向机箱与机箱间的高速互连方向上发展,同时也会提供更高的传输速率,2.0规范中已经可以实现40Gbps的带宽。我们相信,随着越来越多的处理器支持Rapid IO接口,Rapid IO的应用前景会越来越光明。

-----------------------------

本文比较了两种技术芯片到芯片、板到板、背板之间或机柜间长达100米的连接状态下所带来的好处。现在采用RapidIO连接的应用已经很常见,如无线基带信号处理、军用计算平台、视频处理和工业控制。当然也有一些采用其他连接应用比如大型数据中心机房内的设备RapidIO技术概述 和以太网类似,RapidIO可以在各种介质上实现包交换。RapidIO包最大净荷是256字节,最大总包长为276字节。最有效的RapidIO包格 式使用12字节的开销传输256字节的数据,协议效率为95%。RapidIO支持消息和读/写语义,这有助于控制平面和数据平面操作使用相同的物理互 连,从而有效地提高效率,简化系统设计。RapidIO协议的设计是要从根本上尽量降低传输延迟。经过优化,RapidIO技可以利用硬件实现。 通过简单的流量控制和错误恢复机制,即使是存在拥塞和传输错误,RapidIO链路也可以保证包的传输。这些机制的实现是采用短的、链路特定数量的所谓“控制符号”。大多数控制符号可以嵌入在包内,以确保可靠的包交换控制回路的延迟达到最小。 RapidIO Gen2规范发布于2008年。RapidIO Gen2比RapidIO链路传输速率增加了一倍,达到了6.25 Gbaud,同时在其物理层中增加了8个新的虚拟通道支持能力。RapidIO Gen2生态系统中最快的、通用端口是一个以20 Gbps运行的四通道端口。逻辑层因支持针对数据流包的基于速率和可信度的流控制而得到了增强。另外,还增加了一个虚拟输出队 列背压机制。 在电信领域,RapidIO技术占有主导地位,尤其是在无线基带信号处理方面。此外,RapidIO已在军事、视频处理和工业控制应用中占有显著的市场份 额。庞大和不断增长的RapidIO产业生态系统包括了许多交换器厂商(IDT、PMC-Sierra、Mercury等),这些厂商提供的产品都有大约 100纳秒(ns)的延迟。关于这些微小的延迟值将在本文后面予以讨论。 以太网技术概述 尽管最常见以太网数据包的有效载荷仅稍多于1500字节,但以太网数据包最大支持多达9千字节大小(KB)的包传输。以太网的最小包大小为64字节。由于以太网需要软件支 持(如传输控制协议TCP)才能提供可靠的传输服务,所以传统意义上的以太网是一种 “有损”传输。尽管以太网包支持比RapidIO更大的有效载荷,其最大协议效率仅略高于97%,原因是基于软件的可靠传递协议需要大报头开销。 “PAUSE”包流控制机制一直是以太网终端之间拥塞管理的主要手段。以太网的流量控制机制作为网络层控制协议,为的是根据丢包检测来 控制传输速率,因为这是目前在以太网上传输合理吞吐量的最有效的方法。 以太网目前在制定40 Gbps和100 Gbps链路标准。这项工作建立在现有的10 Gbps单通道以太网标准基础之上。 最近,“无损以太网”的概念已经公布。无损以太网针对的是存储区域网络,特别是以光纤通道以太网(FCoE),所以它也称为“数据中心以太网” (DCE)。无损以太网目前正围绕着以下几个增强功能进 行研究,如基于IEEE 802.1p优先级的流量控制(PFC)和802.1au拥塞通知功能。这些增强功能利用了已制定协议规定的包优先级信息,如多协议标签交换(MPLS) 和IEEE 802.1Q VLAN。 通过建立链路级流量控制,无损以太网减少了由于以太网互联网拥塞造成的丢包。丢包量的大大降低大幅提高了整体网络传输的效率。拥塞条件下的无损以太网在某 种意义上讲采用类似RapidIO的方式进行传输。 虽然以太网产业生态系统要比RapidIO的产业生态系统大得多,但是以太网交换器件供应商仍然只有3家——Marvel、Fulcrum和 Broadcom。这些制造商有各种各样的互联网产品。在无损以太网规范的支持下,这些厂商已经宣布了具有亚微秒延迟的交换器。 发现DCE有吸引力的功能的系统设计人员也可以考虑建立一个RapidIO生态系统作为器件来源。同样,DCE的新功能有助于系统设计人员考虑将无损以太 网作为某些应用中RapidIO的替代品。 逻辑层的比较 表1对比了RapidIO与以太网技术的比较,它引自“系统互连结构:以太网与RapidIO技术”白皮书获取。
表1:RapidIO与以太网的比较
包格式的比较
表2:数据中心以太网和RapidIO包格式
虽然很明显DCE报头比一个RapidIO包头更大,但在两个包格式之间可能不会有什么明显越来越多的相似之处。 传统的“互联网”以太网包不包括多协议标签交换(MPLS)或虚拟局域网(VLAN)报头,可是许多现代LAN和WAN两者都使用了。互联网以太网包路由 是基于TCP/IP头中的IP地址。然而,IP路由是计算密集型,所以可以在路由中使用简单的20位MPLS标签结合12位VLAN标识符。采用MPLS 和VLAN路由操作比硬件实现的IP查找成本更低,因为MPLS和VLAN路由操作是利用路由表的检索来执行的,而不是IP路由所需的多序列比较操作。 表检索是RapidIO交换器中路由表操作所需的唯一机制。RapidIO的路由数量称为设备ID,可以是8或16位大小。RapidIO生态系统中的许 多交换器的每个端口都有一个路由表。每个端口路由表都为RapidIO交换器提供了类似VLAN的功能。 两种包格式之间的最大区别是其最大包大小的不同。常见的互联网以太网包大小约为1500字节。巨型包可以超过9000字节。然而,最大的RapidIO包 却只有276字节。尽管在包大小方面存在差异,但整体协议效率却大致相同:互联网以太网为97%左右,而RapidIO大约为95%。 如表1所示,以太网和RapidIO均支持类似的功能。两者都支持读/写和消息语义,但RapidIO支持读/写语义的效率远远高于现有的基于以太网的协 议。消息功能使这两种技术都可以支持其他协议封装。例如,RapidIO已经用来作为一种标准做法:采用消息和/或数据流包类型,将以太网包封装在RapidIO结构上。

 
posted on 2011-10-30 13:26  e_shannon  阅读(1002)  评论(0编辑  收藏  举报