aurora协议.docx
《aurora协议.docx》由会员分享,可在线阅读,更多相关《aurora协议.docx(9页珍藏版)》请在冰豆网上搜索。
![aurora协议.docx](https://file1.bdocx.com/fileroot1/2022-10/13/62ee5425-b384-4796-a069-5a905f7c6639/62ee5425-b384-4796-a069-5a905f7c66391.gif)
aurora协议
aurora协议
文献综述
摘要
本综述介绍了高速串行通信的现状,并简要介绍了Aurora通信协议的特点,发展和现状。
着重介绍了Aurora协议的原理,接口及应用等相关知识。
关键词:
Aurora;FPGA;高速串行通信
Abstract
Thisarticleintroducestheactualityofhigh-speedserialcommunicationsandthecharacters,developmentsandactualityoftheAuroraprotocol.Thisarticleespeciallyintroducesthetheories,interfaces,applicationsandsomeotherknowledges.
Keywords:
Aurora;FPGA;high-speedserialcommunication
一、引言
在典型的嵌入式系统中提高处理器的速度是改善系统性能的解决方案之一。
高速缓存和更先进的处理器架构的使用。
不断提高着微处理器的性能,但研究表明处理器总线频率的增长速度相对处理器内核性能的增长速度较慢,且两者之间的差距正在不断扩大。
处理器速率的提高无助于改进处理器和外设芯片之间的连接或多处理器系统中多个处理器间的连接。
传统的分层共享总线已无法满足未来高性能嵌入式系统的I/O性能需求和快速高效的信号处理和数据传输。
系统互连,即系统内的不同组件之间彼此通信的速率,已成为制约嵌入式系统性能提高的瓶颈[5]。
当前,在系统级互连设计中,高速串行I/O技术迅速取代传统的并行I/O技术正成为业界趋势。
高速串行I/O技术能够带来更高的性能、更低的成本和更简化的设计。
人们已经意识到不论是单端并行I/O还是差分并行I/O,发展到今天都已经达到了它们的物理极限,无法为超过1Gbit/s的数据速率提供可靠而低廉的实现方法。
高速串行I/0技术的发展克服了并行I/O的速度瓶颈,被越来越广泛地应用于各种系统设计中,包括PC、消费电子、海量存储器、服务器、通信网络、工业计算和控制、测试设备等。
迄今业界已经发展出了多种串行系统接口标准,例如PCI—Express、串行RapidIO、InfiniBand、千兆以太网、10Gbit/s以太网XAUI、串行ATA等。
高速串行I/O日益受到重视,Xilinx公司也推出了用于高速串行I/O的Aurora协议。
Xilinx公司的FPGA(现场可编辑门阵列)芯片中内置了RocketIO收发器,提供从400Mbps到83.2Gbps的传输速率。
同时,FPGA由于其灵活性和低成本为高速串行接口的设计带来了很大的灵活性。
2、Aurora协议
1.Aurora简介
Aurora协议是由Xilinx公司提供的一个开放、免费的链路层协议,可以用来进行点到点的串行数据传输,具有实现高性能数据传输系统的高效率和简单易用的特点。
Aurora允许器件之间以下图所示的方式通过多个MGT通道绑定完成通信。
单个GTX通道可实现750Mbit/s-6.5Gbit/s的通信传输,多个GTX通道的组合可实现几十Gbit/s甚至上百Gbit/s的通信传输。
图1中,MGT到MGT之间的一个链接被称为“弄”
图1aurora协议应用举例[15]
Aurora通过为MGT提供透明的接口而将其分装缩小,允许以太网和tcp/ip等专利技术和标准协议的上层在其顶部运行并提供方便的访问。
Aurora核为用户提供了一个透明的物理层接口,它支持任何上层私有的或符合工业标准的协议,如TCP/IP、Ethern-et等。
此易用、预定义的协议只需很少时间即可与现有的用户设计集成[12]。
但也存在一些不完善的地方:
aurora不具备地址机制,不能支持切换功能,没有规定数据有效载荷内校正。
2.Aurora操作
Aurora协议将复杂的RocketIO控制结构转化为简单的用户接口,而用户接口使用尽可能少的信号连接到用户的应用设计中,并提供一套LocalLink兼容的输入输出信号来接收和发送用户数据,其接口信号如图2所示。
图2Aurora核的用户接口[9]
在数据传输过程中,用户通过控制信号控制协议引擎完成如下操作:
封装/解封装数据并使其在串行通道中传输;暂停数据传送(插入空闲状态)。
协议引擎中的发送帧将待传输的数据封装在通道协议数据单元(PDU)中。
对我们使用的Aurora协议引擎来说,一个串行通道就由1个“弄”组成。
这里,“弄”是设计中每个MGT的数据路径标识。
插入空闲状态的目的是为了填充“弄”来完成字边界对齐。
图2中的REM总线(dataremainderbus)用来表示在PDU传送最后一个数据期间有效的字节数。
实际的字节数等于REM总线的值加1。
用户可以根据设计需要改变通道PDU的长度,它反过来也影响数据传输的效率。
更长的PDU可以实现更高的传输效率,但同时也降低了传输的可靠性。
用户可通过控制TX_SOF_N和TX_EOF_N信号来调整PDU长度。
在传输过程中,用户可复位TX_SRC_RDY_N信号来产生数据停顿。
在停顿期间,发送器发送空闲序列。
重新置位TX_SRC_RDY_N,就可以恢复数据传输,用户可无限制地插入停顿。
接收帧的功能与发送帧相反,将数据从“弄”中提取出来。
在接收过程中,协议引擎自动完成以下功能:
检测和丢弃控制字节;置位PDU绑定信号;从“弄”中恢复数据;重新装配数据并送往RX_D[0:
31]总线。
3.Aurora的流控机制
Aurora支持可选的数据流量控制,以防止由于双方源端和宿端速率不同而造成的数据丢失。
Aurora支持两种流控机制:
故有流量控制(NativeFlowControl)和用户流量控制(UserFlowControl)。
固有的流量控制:
NFC操作有两个状态机控制:
tx和rx。
Rx状态机将空rxfifo的状态。
当有溢出危险时,它会生成NFCpdu,要求对方在特定的时间内暂停传输用户pdu。
Tx状态机通过在要求的时间内等待予以相应,从而使rxfifo从一处状态恢复。
发送NFC要求的同时,tx状态机营销出任何往返延迟。
理想状态下,NFC要求在接收fifo溢出前发出。
您可以将NFC暂停设置为0到256,最大暂停为无限。
NfC暂停止是非累积的,新的NFC会覆盖旧的值[12]。
用户流量控制:
用户无需等待数据的结束,即可发送UFC信息。
UFC信息与普通的数据共享数据通道,但有更高的优先级。
UFC消息由用户自定义和解析。
4.Aurora的核参数
5.表1.核参数
参数
描述
支持的值
弄
在通道中应用的GTP/GTX收发器的数量
Virtex-5设备
GTP/GTX:
1到16
Virtex-6设备
GTX:
1到16
Spartan-6设备
GTP:
1,2,4
表1核参数(续)
参数
描述
支持的值
弄宽度
Virtxe-5FPGAGTP收发器在核心中设置使用2字节构造数据。
Virtex-5/Virtex-6FPGAGTX收发器和Spartan-6
FPGAGTP收发器设置使用2字节和4字节SERDES
Virtex-5设备
GTP:
2字节
GTX:
2/4字节
Virtex-6设备
GTX:
2/4字节
Spartan-6设备
GTP:
2/4字节
方向
COREGenerator软件生成的通道的类型,可以是全双工的,单一的TX方向,单一的RX方向,或是在一个GTP/GTX收发器上设立两个单独的单一的模块(一个用于TX,一个用于RX)
Full-Duplex
Simplex-TX
Simplex-RX
Simplex-Both
后通道
核Aurora8B/10B心有两种单一的后通道:
·Siderbands:
通过对方发送的Siderbands设置单一TX状态转换
·Timer:
不同于Siderbands,在初始化时通过内置的计时器完成单一TX状态转换
Sidebands
Timer
表1核参数(续)
参数
描述
支持的值
流控制
流控制的使能。
有两种类型:
·自带流控制(NFC):
NFC使全双工接收器可以控制输入数据的速率。
完成模式,当帧完成时,NFC强制空值。
立即模式,一旦流控制信息到达,NFC强制为空值。
·用户流控制(UFC):
UFC使应用程序可以通过通道相互发送简短的高优先级的信息。
None
NFCImmediate
NFCCompletion
UFC
UFC和NFCImmediate
UFC和NFCCompletion
接口
用户可以指定一到两种接口:
·数据帧:
用户数据帧接口是本地连接适应的。
初始化后,数据帧可以通过Aurora通道发送。
用户数据帧接口倾向于更大,因为有广泛的包容字队列和无逻辑控制特征。
·数据流:
用户数据流接口使得用户可以开启一个单独的无界限的数据帧。
初始化完成后,用户通过一个简单的寄存器接口和一个空值信号向数据帧中输入数据。
Framing(本地连接)
Streaming
表1核参数(续)
参数
描述
支持的值
线速率
线速率规定了收发器工作时的速度。
该参数与Aurora8B/10B核心的性能有关。
好的性能会有更高的线速率。
详细介绍请参考LogiCOREIPAurora8B/10Bv5.1UserGuide
Virtex-5设备
GTP收发器:
500Mbps到3.75Gbps
GTX收发器:
50Mbps到6.5Gbps
Virtex-6LXT/SXT设备
GTX收发器:
750Mbps到6.5Gbps
Virtex-6CXT设备
GTX收发器:
750Mbps到3.75Gbps
Virtex-6LowerPower设备
GTX收发器:
750Mbps到5.0Gbps
Spartan-6设备
GTP收发器:
614Mbps到3.125Gbps
表1核参数(续)
参数
描述
支持的值
收发器参考时钟频率
COREGenerator软件根据参考参数值设置以下设备的参考时钟速率Virtex-5,Virtex-6,andSpartan-6FPGAs.
详细介绍请参考LogiCOREIPAurora8B/10Bv5.1UserGuide。
根据选择的线速率和下列设备可用的时钟乘法器设置合适的速率:
•Virtex-5FPGAGTP/GTX
收发器
•Virtex-6FPGAGTX
收发器
•Spartan-6FPGAGTP收发器
收发器参考时钟
可以根据种种专用和非专用的时钟网络赋予GTP/GTX收发器一个参考时钟。
如何为应用程序选择一个最佳的参考时钟网络,详细介绍请参考LogiCOREIPAurora8B/10Bv5.1UserGuide。
Virtex-5设备:
GTPD/GTXDclocks
Virtex-6设备:
GTXQclocks
Spartan-6设备:
GTPDclocks
表1核参数(续)
参数
描述
支持的值
收发器放置
COREGenerator软件提供了一个图形接口
使用户可以为特殊的GTP/GTX设计弄.请参考TheVirtex-5FPGARocketIOGTPTransceiverUserGuide,Vir