tag 标签: Express

相关博文
  • 热度 23
    2015-12-16 11:02
    1687 次阅读|
    0 个评论
    在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线。业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PCI Express 2.0,Serial RapidIO 2.0三种协议进行了测试及对比分析。首先搭建了基于Virtex-6 FPGA的高速串行协议测试平台;然后设计并分别实现了三种协议的高速数据通信,测算了协议的实际传输速率;最后结合测试结果,从协议层次结构、链路数目、链路线速率、数据传输方式、协议开销、拓扑结构、设备寻址方式、应用领域等方面对三种协议进行了比较。本文研究工作可为三种协议的选用、测试和工程实现提供参考。 1 引言 随着雷达带宽和AD采样率的提高,在高性能雷达信号处理机研制中,系统对数据传输带宽的要求不断增加,高速串行总线正逐步取代传统的并行总线。 Xilinx公司推出的Virtex-6系列FPGA,在片上集成了固化的GTX模块,以提供高速串行通信支持。同时Xilinx公司提供有多种串行通信协议IP核,便于用户进行开发。Aurora 8B/10B,PCI Express 2.0和Serial RapidIO 2.0是其中较为常用的三种协议。目前已有众多文献涉及到三种协议基于FPGA的实现方案。然而这些方案未能充分发挥协议性能,存在线速率较低(仅为2.5Gb/s)或未实现多通道绑定。针对上述问题,本文基于Virtex-6 FPGA,分别实现了三种协议在4x链路,5.0Gb/s线速率模式下的数据通信,测得协议的实际传输速率,并对三种协议的特点与应用进行了对比分析。 2 测试平台简介 本文以实验室自行开发设计的PCIe光纤接收处理板(以下简称测试电路板)为测试平台。测试电路板的结构图和实物图分别如图1,图2所示。其中,FPGA选用XC6VLX240T-2FF1156,该芯片含20个GTX收发器,链路线速率可达6.6Gb/s。DSP选用TMS320C6678,该芯片含有SRIO接口,支持1x、2x和4x链路。光电转换模块选用FCBG410QB1C10,它包含4条链路,带宽可达40Gb/s。故而测试电路板的硬件设计符合本测试对数据传输速率的要求。 图1 测试电路板模块结构和链路连接图 图2 测试电路板实物图 如图3所示,将测试电路板插入服务器主板的PCIe插槽中,并将光纤接入测试电路板,完成测试平台的搭建。本测试中,PCI Express 2.0协议用于实现FPGA与服务器的数据通信,Serial RapidIO 2.0协议用于实现FPGA与DSP的数据通信,Aurora 8B/10B协议用于实现FPGA的光纤自发自收通信。由于三种协议都在物理层进行8B/10B编码,故在本测试工作模式下,它们的极限速率均为 图3 测试平台搭建 3 AURORA 8B/10B通信测试 Aurora 8B/10B协议是Xilinx公司针对高速传输开发的一种可裁剪的轻量级链路层协议,通过一条或多条串行链路实现两设备间的数据传输。协议Aurora协议可以支持流和帧两种数据传输模式,以及全双工、单工等数据通信方式。 本测试中,Aurora 8B/10B IP核配置为双工、流模式,参考时钟频率250MHz。 使用ChipScope软件观察FPGA相关信号如图4所示。观察RX_SRC_RDY_N可以发现,平均每4992周期出现7个周期的数据无效信号。由于接收数据时钟频率为250MHz,数据位宽为64bit,故本测试中,Aurora 8B/10B协议单向传输速率为, 图4 Aurora 8B/10B协议通信测试信号波形 下面分析协议理论传输速率和实际通信效率。该协议的帧格式比较简单,除2字节的起始标志,2字节终止标志和至多1字节的填装字符外,其余为数据部分。本测试采用的流模式是以无结尾的帧方式实现。故协议除8B/10B编码外,基本上不存在其他开销。故根据(1)式可得,协议的理论速率为2.0GB/s,协议的实际通信效率为99.75%。 4 PCI Express 2.0通信测试 PCI Express(简称PCIe)总线技术是取代PCI的第三代I/O技术。PCIe采用串行点对点互连,允许每个设备拥有专属的一条连接,不争夺带宽资源,同时保证了数据的完整性。PCI Express 2.0协议的链路线速率达到5Gb/s,最高支持32x链路。 本测试中,PCIe 2.0通信测试通过FPGA对服务器内存的DMA读/写操作来实现。 服务器方面,本测试选用Windriver软件进行PCIe驱动程序的开发。利用该软件提供的PCIe驱动程序及用户接口函数,编写符合本测试功能需求的程序。 FPGA方面,本测试通过设计用户模块,实现对PCIe IP核的控制,完成DMA读/写操作。FPGA模块结构如图5所示。 图5 PCIe 2.0通信测试FPGA模块结构 为便于服务器对测试电路板FPGA进行控制,在FPGA的PCIe存储空间模块中,定义了若干控制/状态寄存器,这些寄存器的作用有:DMA读/写初始化,控制DMA读/写的启动与停止,标志一次DMA传输是否完成,设置一次DMA传输的数据量等。 服务器通过PCIe接口对测试板FPGA控制/状态寄存器进行读/写操作,来控制DMA的进程。每次DMA完成后,处理板FPGA会向服务器CPU发送一次中断。服务器对测试电路板FPGA DMA传输的控制流程如图6所示。 图6 PCIe 2.0 DMA传输控制流程图 本测试将TLP包载荷数设为256Bytes(IP核允许的最大值),每次DMA传输的TLP包的数量为16384,故每次DMA传输的数据量为4MB。使用ChipScope软件观察FPGA内部的PCIe 2.0 DMA读/写相关信号,如图7,图8所示。本测试开发了PCIe读写功能测试软件,实现PCIe传输数据量和传输速率的实时显示。传输速率通过1s内DMA传输完成的次数来计算。测试结果如图9(a)、(b)所示。PCIe 2.0 DMA读的数据传输速率为1.770GB/s,DMA写的数据传输速率为1.820GB/s。 图7 PCIe 2.0 DMA读测试信号波形 图8 PCIe 2.0 DMA写测试信号波形 图9 PCIe 2.0 DMA读写速率测试结果(a)DMA读测试(b)DMA写测试 下面分析并计算本测试条件下PCIe 2.0 DMA读/写的理论传输速率和实际通信效率。 PCIe 2.0协议主要开销为8B/10B编码开销和数据包传送开销。PCIe总线以包的形式在不同器件之间交换信息。数据在进入处理层后会被封装一个包头,该包头长度在32bit地址下为12字节(本测试采用32bit地址)。当数据包进入数据链路层后,会添加2字节的序列号和4字节的LCRC字段。数据包进入物理层后,使用1字节的开始字符和1字节的结束字符将其封装成帧。 在DMA写测试中,FPGA每发送一次存储器写报文(含256字节数据)会带来20字节的额外开销。在DMA读测试中,FPGA向服务器发送存储器读报文,并由服务器返回完成报文(含256字节数据)。每返回一次完成报文会带来20字节的额外开销。由于PCIe 2.0定义了流量控制缓存管理机制,允许服务器返回完成报文的同时接收FPGA发来的存储器读报文,故DMA读测试中可忽略FPGA发送存储器读报文带来的开销。 故PCIe 2.0 DMA读/写的理论速率相同,均为 DMA读的实际通信效率为 DMA写的实际通信效率为 5 Serial RapidIO 2.0通信测试 RapidIO是针对嵌入式系统芯片间和板间互连而设计的一种开放式的基于包交换的高速串行标准,已在电信、国防等行业大量使用。 Serial RapidIO(简称SRIO)是物理层采用串行差分模拟信号传输的RapidIO标准。SRIO 2.0协议性能进一步增强,链路线速率可达6.25Gb/s,在电气层支持热插拔,并新添了控制符号和空闲模式功能。 本测试以测试电路板FPGA作为发起端,以测试电路板DSP作为目标端。通过FPGA向DSP发送SWRITE包,进行SRIO 2.0写测试,通过FPGA向DSP发送NREAD包,DSP向FPGA返回RESPONSE包,进行SRIO 2.0读测试。 FPGA模块结构如图10所示。通过VIO控制模块,可对包事务类型、包载荷、发送地址等参数进行设置。本测试将包载荷设为256字节,读/写内存空间设为DSP的MSM(Multi-core Shared Memory)空间。 图10 SRIO 2.0通信测试FPGA模块结构 DSP方面,需要进行相关寄存器的配置,完成SRIO的初始化,使DSP作为目标端处理FPGA发来的SRIO读/写请求。DSP主要配置流程包括使能SRIO接口,串并转换模块,链路数目,链路线速率,设备ID等参数的设置。 使用ChipScope软件观察FPGA相关信号,如图11,图12所示。 图11 SRIO 2.0读测试信号波形 图12 SRIO 2.0写测试信号波形 本测试中,FPGA每连续发送16384个SWRITE或NREAD包后,都会向DSP再发送1个门铃消息。因此,可以通过计算DSP收到的相邻两个门铃的时间间隔来计算SRIO读/写速率。 经测算,当FPGA执行SRIO读/写操作时, DSP接收的相邻两个门铃的平均时间间隔为分别为2.490ms,2.266ms。故SRIO 2.0读操作的数据传输速率为, SRIO 2.0写操作的数据传输速率为, 下面计算本测试条件下SRIO读/写的理论数据传输速率和实际通信效率。 SRIO 2.0协议的主要开销为物理层编码开销和数据包开销。本测试采用8位路由和34位偏移地址。该条件下SWRITE事务、RESPONSE事务的数据包结构分别如图13、图14所示。 图13 SRIO 2.0 SWRITE包结构 图14 SRIO 2.0 RESPONSE包结构 由图13可知,FPGA每发送一个SWRITE包,会带来10字节的开销,另外,DSP会返回一个4字节确认接收符号。故本测试中SRIO写操作的理论数据传输速率为, SRIO写操作的实际通信速率为, 与PCIe 2.0类似,SRIO 2.0可以流水地处理多个未完成的操作,应答开销与发送开销之间没有竞争。故而SRIO 2.0读操作可只考虑RESPONSE包开销而忽略NREAD包开销。由图14可知,DSP每返回一个RESPONSE包,会带来8字节的开销。另外,DSP接收到NREAD包后,会返回一个4字节确认接收符号,FPGA接收到响应包后,也会返回一个4字节确认接收符号。故本测试中SRIO读操作的理论数据传输速率为, SRIO读操作的实际通信效率为, SRIO读操作的实际通信效率较低的原因是DSP响应FPGA读请求的时间较长。 6 三种协议的分析比较 本测试中,Aurora 8B/10B、PCIe 2.0、SRIO 2.0均实现了在4x模式下的高速数据传输。下面将结合测试结果和协议的具体内容,从以下各方面对三种协议进行比较。 (1)协议分层结构 Aurora 8B/10B协议仅定义了链路层和物理层。属于较为底层的协议。SRIO 2.0协议定义了物理层,传输层和逻辑层,PCIe 2.0协议定义了物理层,数据链路层,事务层和软件层,这两种协议的内容和功能均比Aurora 8B/10B协议复杂。 (2)链路数目和链路线速率 Aurora 8B/10B协议在链路数目和链路线速率选择上比较灵活,链路数目可以在1x至16x之间自由选择,链路线速率可以在0.5Gb/s到6.6Gb/s间自由选择。PCIe 2.0支持1x,2x,4x,8x,12x,16x,32x链路,链路线速率支持2.5Gb/s和5.0Gb/s。SRIO 2.0支持1x、2x、4x、8x和16x链路,链路线速率支持1.25Gb/s、2.5Gb/s、3.125Gb/s、5.0Gb/s和6.25Gb/s。 综上可知,在链路线速率选择范围的广泛性和灵活性上, Aurora 8B/10BSrio 2.0Pcie 2.0, 链路数目选择的灵活性上, Aurora 8B/10BPcie 2.0Srio 2.0。 最大允许的链路数目上, Pcie 2.0Aurora 8B/10B=Srio 2.0。 (3)数据传输方式 Aurora 8B/10B协议在数据封装过程中未添加地址,设备号等信息,不能对目标设备的存储空间进行读写。 PCIe 2.0可通过Memory Write,Memory Read,I/O Write,I/O Read事务对目标设备地址空间进行读写,但必须具备对目标设备地址空间的可见性。 SRIO 2.0数据传输方式更为灵活。在具备对目标设备地址空间可见性的情况下,可通过NWRITE,NWRITE_R,SWRITE,NREAD,ASTOMIC等事务对目标设备的地址空间进行直接读写。在不具备目标设备地址空间可见性的情况下,SRIO还提供了消息传递机制。用户将数据和信箱号通过MESSAGE事务发至目标设备,目标设备根据信箱号与自身存储空间的映射关系将数据写入存储空间。 综上可知,数据传输方式的灵活性上,SRIO 2.0PCIe 2.0Aurora 8B/10B。 (4)协议开销和数据传输速率 三种协议均在物理层有20%的8B/10B编码开销。Aurora 8B/10B协议除此之外基本上无其它开销,而PCIe 2.0,SRIO 2.0还存在数据包开销。与PCIe 2.0相比,SRIO 2.0的数据包格式更为简洁,在相同的包载荷大小下,开销更低。以256B包载荷为例,SRIO 2.0的数据包开销最低为5.4%(SWRITE事务),而PCIe 2.0的数据包开销最低为7.3%(Memory Write事务)。然而,PCIe 2.0协议最大允许的包载荷为4KB,而SRIO最大允许的包载荷为256B。故PCIe 2.0协议可通过增大包载荷来达到更低的数据包开销。(4KB包载荷下,PCIe 2.0的数据包开销为0.5%) 协议的理论传输速率由通道带宽和协议开销决定,而协议的实际传输速率还受设备本身性能的影响。本测试中, PCIe 2.0 DMA读操作数据传输速率速率高于SRIO 2.0 NREAD的主要原因是服务器对FPGA的PCIe读请求的响应要快于DSP对FPGA的SRIO读请求响应。 (5)设备寻址 PCIe协议中,各设备共享一个PCIe地址空间。整个PCIe地址空间先被分成块,根据后来的下级总线这些块再进一步划分。树形结构中的每个设备在整个地址空间映射中被指定一个地址空间,通过执行全部地址译码来查找设备。在支持带有大容量存储器的设备系统中,这种设备寻址机制不适合灵活拓展。 SRIO采用基于设备ID寻址的方案。采用该方案,使得拓扑结构的变化仅需要更新事务路径中的设备,从而使系统的拓展与拓扑结构的更改比PCIe协议更为灵活。 Aurora 8B/10B协议未定义设备寻址机制。 (6)网络拓扑 PCIe规定了生成树拓扑结构,这种结构适合于单个主机,多个外围设备通信模式,但限制了端点数量,且不支持任意节点与节点间直接通信。PCIe的典型网络拓扑结构如图15所示。 图15 PCIe网络拓扑结构 SRIO的拓扑结构比PCIe更为灵活,可设计成网型,星型,雏菊链或树形拓扑结构,支持节点对节点通信,各节点间可对等的发起数据传输。 Aurora 8B/10B协议不支持网络拓扑结构。 (7)应用领域 Aurora 8B/10B协议作为Xilinx公司开发的轻量级链路层协议,协议开销小,链路数目和链路线速率选择灵活,适用于两片Xilinx FPGA之间的数据流传输。用户也可在其基础上开发高层协议。但其应用范围较为有限,尚未见在其他芯片中使用。 PCIe 2.0作为PCI总线的继承,带宽,拓展灵活性大大提高,适合于主机与外部设备的互联,在PC/Server平台、VPX平台有广泛应用,如声卡、显示卡、网络设备(包括以太网、Modem)、光纤接口卡、磁盘阵列卡等。 SRIO 2.0作为一种高性能包交换的互连技术,数据传输方式和拓扑结构灵活,为多处理器系统的实现提供便利,广泛用于嵌入式系统内的微处理器、DSP、通信和网络处理器、系统存储器之间的高速数据传输。 7 结束语 本文基于Virtex-6 FPGA芯片,对Aurora 8B/10B,PCIe2.0,SRIO 2.0三种串行通信协议进行了速率测试,并通过分析协议开销和协议的流控制机制,计算了三种协议的理论传输速率和协议实际通信效率。结合测试结果和三种协议的具体内容,对三种协议的相关参数和应用领域进行了对比分析。本文测试模块结构的设计可为三种协议的工程实现提供借鉴,协议实际传输速率的测算和协议理论传输速率的分析计算可为三种协议在不同平台和工作模式下的测试提供参考。在进行雷达信号处理机数据传输方案的设计时,可参照本文对三种协议的性能分析,根据系统自身的特点及对数据传输速率的要求,合理选择协议类型和协议的工作模式。
  • 热度 25
    2014-12-11 15:11
    2771 次阅读|
    0 个评论
    在高性能雷达信号处理机研制中,高速串行总线正逐步取代并行总线。业界广泛使用的Xilinx公司Virtex-6系列FPGA支持多种高速串行通信协议,本文针对其中较为常用的Aurora 8B/10B和PCI Express 2.0,Serial RapidIO 2.0三种协议进行了测试及对比分析。首先搭建了基于Virtex-6 FPGA的高速串行协议测试平台;然后设计并分别实现了三种协议的高速数据通信,测算了协议的实际传输速率;最后结合测试结果,从协议层次结构、链路数目、链路线速率、数据传输方式、协议开销、拓扑结构、设备寻址方式、应用领域等方面对三种协议进行了比较。本文研究工作可为三种协议的选用、测试和工程实现提供参考。 1 引言 随着雷达带宽和AD采样率的提高,在高性能雷达信号处理机研制中,系统对数据传输带宽的要求不断增加,高速串行总线正逐步取代传统的并行总线。 Xilinx公司推出的Virtex-6系列FPGA,在片上集成了固化的GTX模块,以提供高速串行通信支持。同时Xilinx公司提供有多种串行通信协议IP核,便于用户进行开发。Aurora 8B/10B,PCI Express 2.0和Serial RapidIO 2.0是其中较为常用的三种协议。目前已有众多文献涉及到三种协议基于FPGA的实现方案。然而这些方案未能充分发挥协议性能,存在线速率较低(仅为2.5Gb/s)或未实现多通道绑定。针对上述问题,本文基于Virtex-6 FPGA,分别实现了三种协议在4x链路,5.0Gb/s线速率模式下的数据通信,测得协议的实际传输速率,并对三种协议的特点与应用进行了对比分析。 2 测试平台简介 本文以实验室自行开发设计的PCIe光纤接收处理板(以下简称测试电路板)为测试平台。测试电路板的结构图和实物图分别如图1,图2所示。其中,FPGA选用XC6VLX240T-2FF1156,该芯片含20个GTX收发器,链路线速率可达6.6Gb/s。DSP选用TMS320C6678,该芯片含有SRIO接口,支持1x、2x和4x链路。光电转换模块选用FCBG410QB1C10,它包含4条链路,带宽可达40Gb/s。故而测试电路板的硬件设计符合本测试对数据传输速率的要求。 图1 测试电路板模块结构和链路连接图 图2 测试电路板实物图 如图3所示,将测试电路板插入服务器主板的PCIe插槽中,并将光纤接入测试电路板,完成测试平台的搭建。本测试中,PCI Express 2.0协议用于实现FPGA与服务器的数据通信,Serial RapidIO 2.0协议用于实现FPGA与DSP的数据通信,Aurora 8B/10B协议用于实现FPGA的光纤自发自收通信。由于三种协议都在物理层进行8B/10B编码,故在本测试工作模式下,它们的极限速率均为 图3 测试平台搭建 3 AURORA 8B/10B通信测试 Aurora 8B/10B协议是Xilinx公司针对高速传输开发的一种可裁剪的轻量级链路层协议,通过一条或多条串行链路实现两设备间的数据传输。协议Aurora协议可以支持流和帧两种数据传输模式,以及全双工、单工等数据通信方式。 本测试中,Aurora 8B/10B IP核配置为双工、流模式,参考时钟频率250MHz。 使用ChipScope软件观察FPGA相关信号如图4所示。观察RX_SRC_RDY_N可以发现,平均每4992周期出现7个周期的数据无效信号。由于接收数据时钟频率为250MHz,数据位宽为64bit,故本测试中,Aurora 8B/10B协议单向传输速率为, 图4 Aurora 8B/10B协议通信测试信号波形 下面分析协议理论传输速率和实际通信效率。该协议的帧格式比较简单,除2字节的起始标志,2字节终止标志和至多1字节的填装字符外,其余为数据部分。本测试采用的流模式是以无结尾的帧方式实现。故协议除8B/10B编码外,基本上不存在其他开销。故根据(1)式可得,协议的理论速率为2.0GB/s,协议的实际通信效率为99.75%。 4 PCI Express 2.0通信测试 PCI Express(简称PCIe)总线技术是取代PCI的第三代I/O技术。PCIe采用串行点对点互连,允许每个设备拥有专属的一条连接,不争夺带宽资源,同时保证了数据的完整性。PCI Express 2.0协议的链路线速率达到5Gb/s,最高支持32x链路。 本测试中,PCIe 2.0通信测试通过FPGA对服务器内存的DMA读/写操作来实现。 服务器方面,本测试选用Windriver软件进行PCIe驱动程序的开发。利用该软件提供的PCIe驱动程序及用户接口函数,编写符合本测试功能需求的程序。 FPGA方面,本测试通过设计用户模块,实现对PCIe IP核的控制,完成DMA读/写操作。FPGA模块结构如图5所示。 图5 PCIe 2.0通信测试FPGA模块结构 为便于服务器对测试电路板FPGA进行控制,在FPGA的PCIe存储空间模块中,定义了若干控制/状态寄存器,这些寄存器的作用有:DMA读/写初始化,控制DMA读/写的启动与停止,标志一次DMA传输是否完成,设置一次DMA传输的数据量等。 服务器通过PCIe接口对测试板FPGA控制/状态寄存器进行读/写操作,来控制DMA的进程。每次DMA完成后,处理板FPGA会向服务器CPU发送一次中断。服务器对测试电路板FPGA DMA传输的控制流程如图6所示。 图6 PCIe 2.0 DMA传输控制流程图 本测试将TLP包载荷数设为256Bytes(IP核允许的最大值),每次DMA传输的TLP包的数量为16384,故每次DMA传输的数据量为4MB。使用ChipScope软件观察FPGA内部的PCIe 2.0 DMA读/写相关信号,如图7,图8所示。本测试开发了PCIe读写功能测试软件,实现PCIe传输数据量和传输速率的实时显示。传输速率通过1s内DMA传输完成的次数来计算。测试结果如图9(a)、(b)所示。PCIe 2.0 DMA读的数据传输速率为1.770GB/s,DMA写的数据传输速率为1.820GB/s。 图7 PCIe 2.0 DMA读测试信号波形 图8 PCIe 2.0 DMA写测试信号波形 图9 PCIe 2.0 DMA读写速率测试结果(a)DMA读测试(b)DMA写测试 下面分析并计算本测试条件下PCIe 2.0 DMA读/写的理论传输速率和实际通信效率。 PCIe 2.0协议主要开销为8B/10B编码开销和数据包传送开销。PCIe总线以包的形式在不同器件之间交换信息。数据在进入处理层后会被封装一个包头,该包头长度在32bit地址下为12字节(本测试采用32bit地址)。当数据包进入数据链路层后,会添加2字节的序列号和4字节的LCRC字段。数据包进入物理层后,使用1字节的开始字符和1字节的结束字符将其封装成帧。 在DMA写测试中,FPGA每发送一次存储器写报文(含256字节数据)会带来20字节的额外开销。在DMA读测试中,FPGA向服务器发送存储器读报文,并由服务器返回完成报文(含256字节数据)。每返回一次完成报文会带来20字节的额外开销。由于PCIe 2.0定义了流量控制缓存管理机制,允许服务器返回完成报文的同时接收FPGA发来的存储器读报文,故DMA读测试中可忽略FPGA发送存储器读报文带来的开销。 故PCIe 2.0 DMA读/写的理论速率相同,均为 DMA读的实际通信效率为 DMA写的实际通信效率为 5 Serial RapidIO 2.0通信测试 RapidIO是针对嵌入式系统芯片间和板间互连而设计的一种开放式的基于包交换的高速串行标准,已在电信、国防等行业大量使用。 Serial RapidIO(简称SRIO)是物理层采用串行差分模拟信号传输的RapidIO标准。SRIO 2.0协议性能进一步增强,链路线速率可达6.25Gb/s,在电气层支持热插拔,并新添了控制符号和空闲模式功能。 本测试以测试电路板FPGA作为发起端,以测试电路板DSP作为目标端。通过FPGA向DSP发送SWRITE包,进行SRIO 2.0写测试,通过FPGA向DSP发送NREAD包,DSP向FPGA返回RESPONSE包,进行SRIO 2.0读测试。 FPGA模块结构如图10所示。通过VIO控制模块,可对包事务类型、包载荷、发送地址等参数进行设置。本测试将包载荷设为256字节,读/写内存空间设为DSP的MSM(Multi-core Shared Memory)空间。 图10 SRIO 2.0通信测试FPGA模块结构 DSP方面,需要进行相关寄存器的配置,完成SRIO的初始化,使DSP作为目标端处理FPGA发来的SRIO读/写请求。DSP主要配置流程包括使能SRIO接口,串并转换模块,链路数目,链路线速率,设备ID等参数的设置。 使用ChipScope软件观察FPGA相关信号,如图11,图12所示。 图11 SRIO 2.0读测试信号波形 图12 SRIO 2.0写测试信号波形 本测试中,FPGA每连续发送16384个SWRITE或NREAD包后,都会向DSP再发送1个门铃消息。因此,可以通过计算DSP收到的相邻两个门铃的时间间隔来计算SRIO读/写速率。 经测算,当FPGA执行SRIO读/写操作时, DSP接收的相邻两个门铃的平均时间间隔为分别为2.490ms,2.266ms。故SRIO 2.0读操作的数据传输速率为, SRIO 2.0写操作的数据传输速率为, 下面计算本测试条件下SRIO读/写的理论数据传输速率和实际通信效率。 SRIO 2.0协议的主要开销为物理层编码开销和数据包开销。本测试采用8位路由和34位偏移地址。该条件下SWRITE事务、RESPONSE事务的数据包结构分别如图13、图14所示。 图13 SRIO 2.0 SWRITE包结构 图14 SRIO 2.0 RESPONSE包结构 由图13可知,FPGA每发送一个SWRITE包,会带来10字节的开销,另外,DSP会返回一个4字节确认接收符号。故本测试中SRIO写操作的理论数据传输速率为, SRIO写操作的实际通信速率为, 与PCIe 2.0类似,SRIO 2.0可以流水地处理多个未完成的操作,应答开销与发送开销之间没有竞争。故而SRIO 2.0读操作可只考虑RESPONSE包开销而忽略NREAD包开销。由图14可知,DSP每返回一个RESPONSE包,会带来8字节的开销。另外,DSP接收到NREAD包后,会返回一个4字节确认接收符号,FPGA接收到响应包后,也会返回一个4字节确认接收符号。故本测试中SRIO读操作的理论数据传输速率为, SRIO读操作的实际通信效率为, SRIO读操作的实际通信效率较低的原因是DSP响应FPGA读请求的时间较长。 6 三种协议的分析比较 本测试中,Aurora 8B/10B、PCIe 2.0、SRIO 2.0均实现了在4x模式下的高速数据传输。下面将结合测试结果和协议的具体内容,从以下各方面对三种协议进行比较。 (1)协议分层结构 Aurora 8B/10B协议仅定义了链路层和物理层。属于较为底层的协议。SRIO 2.0协议定义了物理层,传输层和逻辑层,PCIe 2.0协议定义了物理层,数据链路层,事务层和软件层,这两种协议的内容和功能均比Aurora 8B/10B协议复杂。 (2)链路数目和链路线速率 Aurora 8B/10B协议在链路数目和链路线速率选择上比较灵活,链路数目可以在1x至16x之间自由选择,链路线速率可以在0.5Gb/s到6.6Gb/s间自由选择。PCIe 2.0支持1x,2x,4x,8x,12x,16x,32x链路,链路线速率支持2.5Gb/s和5.0Gb/s。SRIO 2.0支持1x、2x、4x、8x和16x链路,链路线速率支持1.25Gb/s、2.5Gb/s、3.125Gb/s、5.0Gb/s和6.25Gb/s。 综上可知,在链路线速率选择范围的广泛性和灵活性上, Aurora 8B/10BSrio 2.0Pcie 2.0, 链路数目选择的灵活性上, Aurora 8B/10BPcie 2.0Srio 2.0。 最大允许的链路数目上, Pcie 2.0Aurora 8B/10B=Srio 2.0。 (3)数据传输方式 Aurora 8B/10B协议在数据封装过程中未添加地址,设备号等信息,不能对目标设备的存储空间进行读写。 PCIe 2.0可通过Memory Write,Memory Read,I/O Write,I/O Read事务对目标设备地址空间进行读写,但必须具备对目标设备地址空间的可见性。 SRIO 2.0数据传输方式更为灵活。在具备对目标设备地址空间可见性的情况下,可通过NWRITE,NWRITE_R,SWRITE,NREAD,ASTOMIC等事务对目标设备的地址空间进行直接读写。在不具备目标设备地址空间可见性的情况下,SRIO还提供了消息传递机制。用户将数据和信箱号通过MESSAGE事务发至目标设备,目标设备根据信箱号与自身存储空间的映射关系将数据写入存储空间。 综上可知,数据传输方式的灵活性上,SRIO 2.0PCIe 2.0Aurora 8B/10B。 (4)协议开销和数据传输速率 三种协议均在物理层有20%的8B/10B编码开销。Aurora 8B/10B协议除此之外基本上无其它开销,而PCIe 2.0,SRIO 2.0还存在数据包开销。与PCIe 2.0相比,SRIO 2.0的数据包格式更为简洁,在相同的包载荷大小下,开销更低。以256B包载荷为例,SRIO 2.0的数据包开销最低为5.4%(SWRITE事务),而PCIe 2.0的数据包开销最低为7.3%(Memory Write事务)。然而,PCIe 2.0协议最大允许的包载荷为4KB,而SRIO最大允许的包载荷为256B。故PCIe 2.0协议可通过增大包载荷来达到更低的数据包开销。(4KB包载荷下,PCIe 2.0的数据包开销为0.5%) 协议的理论传输速率由通道带宽和协议开销决定,而协议的实际传输速率还受设备本身性能的影响。本测试中, PCIe 2.0 DMA读操作数据传输速率速率高于SRIO 2.0 NREAD的主要原因是服务器对FPGA的PCIe读请求的响应要快于DSP对FPGA的SRIO读请求响应。 (5)设备寻址 PCIe协议中,各设备共享一个PCIe地址空间。整个PCIe地址空间先被分成块,根据后来的下级总线这些块再进一步划分。树形结构中的每个设备在整个地址空间映射中被指定一个地址空间,通过执行全部地址译码来查找设备。在支持带有大容量存储器的设备系统中,这种设备寻址机制不适合灵活拓展。 SRIO采用基于设备ID寻址的方案。采用该方案,使得拓扑结构的变化仅需要更新事务路径中的设备,从而使系统的拓展与拓扑结构的更改比PCIe协议更为灵活。 Aurora 8B/10B协议未定义设备寻址机制。 (6)网络拓扑 PCIe规定了生成树拓扑结构,这种结构适合于单个主机,多个外围设备通信模式,但限制了端点数量,且不支持任意节点与节点间直接通信。PCIe的典型网络拓扑结构如图15所示。 图15 PCIe网络拓扑结构 SRIO的拓扑结构比PCIe更为灵活,可设计成网型,星型,雏菊链或树形拓扑结构,支持节点对节点通信,各节点间可对等的发起数据传输。 Aurora 8B/10B协议不支持网络拓扑结构。 (7)应用领域 Aurora 8B/10B协议作为Xilinx公司开发的轻量级链路层协议,协议开销小,链路数目和链路线速率选择灵活,适用于两片Xilinx FPGA之间的数据流传输。用户也可在其基础上开发高层协议。但其应用范围较为有限,尚未见在其他芯片中使用。 PCIe 2.0作为PCI总线的继承,带宽,拓展灵活性大大提高,适合于主机与外部设备的互联,在PC/Server平台、VPX平台有广泛应用,如声卡、显示卡、网络设备(包括以太网、Modem)、光纤接口卡、磁盘阵列卡等。 SRIO 2.0作为一种高性能包交换的互连技术,数据传输方式和拓扑结构灵活,为多处理器系统的实现提供便利,广泛用于嵌入式系统内的微处理器、DSP、通信和网络处理器、系统存储器之间的高速数据传输。 7 结束语 本文基于Virtex-6 FPGA芯片,对Aurora 8B/10B,PCIe2.0,SRIO 2.0三种串行通信协议进行了速率测试,并通过分析协议开销和协议的流控制机制,计算了三种协议的理论传输速率和协议实际通信效率。结合测试结果和三种协议的具体内容,对三种协议的相关参数和应用领域进行了对比分析。本文测试模块结构的设计可为三种协议的工程实现提供借鉴,协议实际传输速率的测算和协议理论传输速率的分析计算可为三种协议在不同平台和工作模式下的测试提供参考。在进行雷达信号处理机数据传输方案的设计时,可参照本文对三种协议的性能分析,根据系统自身的特点及对数据传输速率的要求,合理选择协议类型和协议的工作模式。
  • 热度 23
    2014-6-13 09:12
    893 次阅读|
    0 个评论
    概览 当您面对各种各样的仪器连接总线时,可能会很难为自己的应用作出最合适的选择。可以说每个总线都有各自的优势和相应的优化技术。因此,请您先问问自己如下四个问题,比较一下最常见PC总线的功能选项,即可作出决定。 什么总线可以用在仪器和计算机上? 我需要什么样的总线性能? 该仪器将要用在什么环境中? 设置和配置总线的难易程度如何? 更多关于仪器控制总线的信息 常见总线的选择指南 仪器控制硬件总线概述 1.什么总线可以用在仪器和计算机上? 一款仪器通常会提供一个或更多个总线选择,用于仪器的控制;PC通常也会为仪器控制提供多种总线选择。如果PC上没有自带连接到某种仪器的总线,您也可以通过一个插件板或者外部转换器来添加总线。用于仪器控制的总线类型很多,大体可以分为以下几类: 用于与机架式仪器连接的独立总线,包括测试与测量专用总线,如GPIB总线,以及其它PC标准总线,如串行总线(RS232)、以太网总线和USB总线。您也可以使用一些独立总线作为与其它独立总线转接的媒介,例如USB至GPIB转换器。 内嵌于模块化仪器的接口总线包括PCI、PCI Express、VXI、和PXI。您也可以使用这些总线作为一个媒介,为不具备独立总线的PC添加独立总线,例如:使用 NI PCI-GPIB控制器板卡。 2. 我需要什么样的总线性能? 影响总线的性能的三个主要因素包括:带宽、延迟和仪器实现方式。 带宽是数据传输的速率,它通常以百万比特每秒为单位测量。 延迟是数据传输的时间,通常以秒为单位。例如,通过以太网传输时,大的数据块被分解为小片段,然后以多个数据包的方式发送。延迟就是其中一个数据包的传输时间。 总线软件、固件和硬件的仪器实现方式将影响总线性能。并不是所有的仪器都是生来一致的,无论是用户定义的虚拟仪器还是厂商设计的传统仪器,在仪器具体实现过程中所采用的折中措施,都将影响仪器性能。虚拟仪器的一个好处就是:最终用户作为仪器的设计者,在仪器实现的过程中,自己就可以作出最优的折中决定。 3. 该仪器将要用在什么环境中? 在开发一个仪器控制应用时,充分考虑其部署环境是很重要的。您需要考虑的主要因素包括:仪器到PC之间的距离,以及接口和电缆的坚固性。这两个因素在为仪器控制系统选择总线时至关重要。 仪器到PC之间的距离 如果您的仪器离PC很近(小于5米),您就可以灵活地选择任意一种总线类型。如果您的仪器远离PC,例如,在另一个房间内或另一幢大楼里,那么您应该考虑分布式仪器控制系统的体系架构。分布式仪器控制系统中可能包括扩展器、中继器、LAN/LXI, 或者LAN转换器(例如,以太网至GPIB转换器)。 接口和电缆的坚固性 如果您的仪器处在充满噪声干扰的环境中,例如工业环境,那么您可以考虑使用提供保护的接口总线,隔离环境干扰。例如,在一个生产车间里,GPIB或者USB将是一个更加合适的选择,因为它的电缆锁定牢靠,具有坚固耐用的屏蔽指标。 《电子设计技术》网站版权所有,谢绝转载 4. 设置和配置总线的难易程度如何? 当您在选择总线接口时,请注意其设置和安装方式。某些仪器部署在有许多用户交互的地方,例如实验室中,这是就应该考虑选择SUB总线接口,使用起来非常方便,且与用户习惯一致。对于需要考虑安全性的仪器控制系统,您应该意识到信息技术部门可能会禁止使用以太网/LAN/LXI等总线。如果您确定以太网/LAN/LXI对于您的仪器控制系统来说是最佳总线接口,那么当您将其部署在一个需要考虑安全性的环境中时,应该在整个设计实施过程中与信息技术部门协同工作。 5. 常见总线的选择指南 6. 仪器控制硬件总线概述 GPIB 通用接口总线(GPIB)在独立仪器中是一种最常见的I/O接口。GPIB是8位并行数字通信接口,数据传输速率高达8 Mb/s。一个GPIB控制器总线可以最多连接14个仪器,并且其布线距离小于20米。但是,您可以通过使用GPIB扩展器和延长器克服这些限制。GPIB电缆和连接器种类丰富,并且是工业等级的,可以用于任何环境中。 GPIB不是一个PC工业总线,很少用于PC上。但是,您可以使用一个插件板,如PCI-GPIB,或者外部转换器,如NI GPIB-USB,将GPIB仪器控制功能添加到PC上。 串行总线 串行总线是主要用于老式台式机和笔记本电脑上的设备通信协议,请不要将其与USB混淆。在很多设备中,串行总线是最常见的仪器通信协议,而且很多与GPIB兼容的设备还具有EIA232端口。EIA232 和EIA485/EIA422也可以被称作RS232和RS485/RS422。 串行通信的概念很简单。串行端口每次发送和接收一个比特的信息。虽然它比每次传输整个字节的并行通信慢,但是串行总线更简单,而且使用距离更长。 《电子设计技术》网站版权所有,谢绝转载 通常情况下,工程师们使用串行接口来传输ASCII数据。他们使用三个传输线路来完成通信:地线、发送线和接收线。因为串行通信是异步的,端口可以在一条线路上传输数据,而在另一条线路上接收数据。其它线路可用于信号握手,但并不是必须的。串行通信的关键指标是波特率、数据位、停止位和奇偶校验位。两个串行端口若要进行通信,这些参数必须匹配。 USB 通用串行总线(USB)主要是用于与PC连接的外围设备,例如键盘、鼠标、扫描仪和磁盘驱动器等。在过去的几年中,支持USB连接的设备数量急剧增加。USB是一种即插即用技术,当添加一个新设备时,USB主机自动检测该设备,发出询问以识别该设备,并为其配置合适的设备驱动。 USB 2.0对于低速和全速设备是完全兼容的。其高速模式的数据传输速率能够高达480 Mbit/s (60 MB/s)。最新的USB3.0规范具有超高速模式,其理论数据传输速率可高达5.0Gbit/s。 虽然USB总线的设计初衷是针对PC外设,但是它的速度、广泛的适用性以易用性,令其在仪器控制应用中具有很大的吸引力。而USB总线在仪器控制中也存在一些不足:首先,USB线缆不是工业级标准的,可能在充满噪声的环境中导致数据丢失;另外,USB线缆没有锁紧装置,线缆可以很轻易地被拔出PC;而且,即便使用了中继器,USB线缆的最长传输距离只有30m。 以太网 以太网是一种成熟的技术,广泛应用于测量系统中,可以进行通用的网络连接以及远程数据存储。目前,全世界拥有超过一亿套配置以外网接口的计算机。而且,以太网还提供了用于仪器控制的功能选项。以太网是基于IEEE 802.3标准定义的,理论上可支持10Mbits/s(10 BASE-T)、100 Mbit/s (100BASE-T)和 1 Gbit/s (1000BASE-T)的数据传输速率。其中,最常见的就是100 Mbit/s (100BASE-T)以太网。 基于以太网的仪器控制应用充分利用了以太网总线的特点,包括远程仪器控制、简便的仪器共享方式、以及易于使用的数据结果的发布功能等。此外,用户还可充分利用公司或者实验室中现有的以太网络。然而,对于某些公司来说,以太网的这种特点还会带来一些麻烦:公司网络管理员可能需要介入到仪器应用的开发之中。 《电子设计技术》网站版权所有,谢绝转载 基于以太网总线的仪器控制还有其它缺点,例如可能存在实际传输速率、传输确定性以及安全性方面的问题。虽然以太网总线可以实现高达1 Gbit/s的理论传输速率,但在实际使用中,由于网络同时也被其它应用占用,而且存在数据传输失效等问题,这种理论传输速率很少能够真正实现。此外,由于传输速率不稳定,以太网很难保证数据传输的确定性。最后,对于一些敏感的数据,用户需要采取额外的安全措施,确保数据完整与保密。 PCI PCI总线通常不直接用于仪器控制,而是作为一种外设总线,通过连接GPIB或者串行通信总线来实现仪器控制。此外,由于其PCI总线带宽较高,常用于模块化仪器的背板总线,此时,其I/O总线内置于测量设备中。 PXI PXI(面向仪器系统的PCI扩展)基于PCI平台,是一种用于测量和自动化系统的坚固总线。PXI结合了PCI的电气总线特性与CompactPCI的坚固性、模块化及Eurocard机械封装的特性,并添加了专门的同步总线和重要的软件特性。这些技术使得PXI总线成为测量和自动化系统的高性能、低成本部署平台,应用于诸如生产线测试、军工与航空航天、机器状态监控、汽车以及工业测试领域。PXI在1997年完成开发,并在1998年正式推出,它是为了满足日益增加的对复杂仪器系统的需求而推出的一种开放式工业标准。如今,PXI标准由PXI系统联盟(PXISA)所管理。该联盟由超过65家公司组成,共同推广PXI标准,确保PXI的互换性,并维护PXI规范。PXI在模块化仪器平台得到了广泛的使用,这种平台基于紧凑、高性能测量硬件,并集成了定时和同步资源,对于传统的独立仪器来说是理想的替代产品。 PCI Express PCI Express与PCI相似,通常不会直接用于仪器控制,而是作为一种PC外设总线, 用于连接GPIB设备进行仪器控制。但是,由于PCI Express总线速度极高,可以用作模块化仪器的背板总线。 VXI VXI(面向仪器系统的VME扩展)总线是针对多厂商工业仪器标准的首次尝试。VXI最初在1987年推出,接着被定义为IEEE 1155标准。VXI总线的缺点包括:缺乏软件标准,无法显著提升系统吞吐率;而且由于VXI不使用标准的商用PC技术,无法降低系统成本。 《电子技术设计》网站版权所有,谢绝转载
  • 热度 26
    2013-5-13 11:54
    1539 次阅读|
    0 个评论
    虽然PCI总线取得了巨大的成功,但是随着处理器主频的不断提高,PCI总线提供的带宽愈发显得捉襟见肘。PCI总线也在不断地进行升级,其位宽和频率从最初的32位/33MHz扩展到64位/66MHz,而PCI-X总线更是将总线频率提高到533MHz,能够提供的最大理论带宽为4263MB。但是PCI总线仍无法解决其体系结构中存在的一些缺陷。PCI总线面临着一系列挑战,包括带宽、流量控制和数据传送质量等。 PCI总线的最高工作频率为66M,最大位宽为64b,从理论上讲,PCI总线可以提供的最大传输带宽为532MB。然而PCI总线作为一个共享总线,在其上的所有PCI设备必须要共享PCI总线的带宽。同时由于PCI总线的协议开销,导致PCI总线可以实际利用的数据带宽远小于其峰值带宽。 PCI总线采用提高总线位宽和频率的方法增加其传输带宽。但是这种方法从性能价格比的角度上看,并不是最优的。数据总线位宽的提高将直接影响芯片的生产成本,64位的PCI总线接口需要设计者使用更多的芯片引脚,从而导致64位的PCI总线接口芯片的价格远高于32位的PCI总线接口芯片。与32位PCI总线接口相比,设计者还需要使用更多的印制板层数来实现64位PCI总线接口。 而提高总线频率,除了给硬件工程师带来了一系列信号完整性的问题之外,更直接影响PCI总线的负载能力。一条33MHz的PCI总线最多可以驱动10个负载,而66Mhz的PCI总线最多只能驱动4个负载。因此片面提高PCI总线的频率和位宽,并不能有效地提高PCI总线的带宽。 除此之外PCI总线在设计之初并没有考虑服务质量的问题。有些实时数据采集卡,音频或者视频的多媒体应用需要PCI总线提供额定带宽,而PCI总线上的设备只能轮流使用PCI总线,当一个设备长期占用PCI总线时,将阻止其他PCI设备使用PCI总线,从而影响了PCI总线的传送质量。 基于以上几个原因,PCI总线在某种程度上说并不能完全适应现代处理器系统的需要,而使用PCIe总线可以有效解决PCI总线存在的一些问题。首先PCIe总线可以提供更大的总线带宽,PCIe V3.0支持的最高总线频率为4GHz,远高于PCI-X总线提供的最高总线频率。 其次PCIe总线支持虚通路VC(Virtual Channel)技术,优先级不同的数据报文可以使用不同的虚通路,而每一路虚通路可以独立设置缓冲,从而相对合理地解决了数据传送过程中存在的服务质量问题。 PCIe总线由若干层次组成,包括事务层、数据链路层和物理层。PCIe总线使用数据报文进行数据传递,这些数据报文需要通过PCIe总线的这些层次。PCIe总线的这种数据传递方式与互联网使用TCP/IP协议进行数据传递有类似之处。 实际上在互联网中存在的许多概念也存在于PCIe总线中,如交换、路由和仲裁机制等,不过这两者之间在实现上的最大不同在于前者主要使用软件程序实现其协议栈,而后者使用硬件逻辑实现。 半导体工艺的逐步提高,使得更多的软件算法可以使用硬件逻辑来实现,这给从事IC Design的工程师带来了巨大的挑战,因为他们使用Verilog/VHDL程序书写的算法,之前是使用C或者是C++这样的高别语言实现的。 PCIe总线在系统软件级与PCI总线兼容,基于PCI总线的系统软件几乎可以不经修改直接移植到PCIe总线中。绝大多数PCI/PCI-X总线使用的总线事务都被PCIe总线保留,而PCI设备使用的配置空间也被PCIe总线继承。基于PCI体系结构的系统编程模型,几乎可以在没有本质变化的前提下,直接在PCIe体系结构中使用。 但是从体系系统的角度上看,PCIe总线还是增加了一些新的特性,其中一些特性不仅仅是称呼上的变化,而且在功能上也得到了增强。如在PCIe体系结构中出现的RC(Root Complex)。RC的主要功能与PCI总线中的HOST主桥类似,但是在HOST主桥的基础上增加了许多功能。 在不同处理器系统中,RC的实现方式不同,因此仅仅用PCIe总线控制器称呼RC是不够的,实际上PCIe总线规范对RC并没有一个合适的解释。RC本身也是随处理器系统的不同而不同,是一个很模糊的概念。 Intel并没有使用PCIe总线控制器,而是使用RC管理PCIe总线,基于深层次的考虑。在x86处理器体系结构中,RC并不仅仅管理PCIe设备的数据访问,而且还包含访问控制、错误处理和虚拟化技术等一系列内容。因此使用PCIe总线控制器统称RC,在x86处理器体系结构中,并不合适。 在PCIe总线中,还有一些特性与PCIe总线协议的实现相关。与PCI总线相比,PCIe总线使用端到端的连接方式,添加流量控制机制,并对“访问序”做出了进一步优化。虽然从系统软件的角度上看,PCI总线与PCIe总线基本一致。但是从硬件设计的角度上看PCIe总线完全不同于PCI总线,基于PCIe总线各类设备的硬件设计难度远大于基于PCI总线的对应设备的设计难度。 目前PCIe总线规范,依然在迅猛发展,但并不是所有PCIe设备都支持这些在PCIe总线的最新规范中提及的概念。一般说来,PCIe总线规范提出的新的概念,最先在x86处理器系统的Chipset和Intel设计的EP中出现。
  • 热度 28
    2013-3-19 09:48
    1703 次阅读|
    0 个评论
    PCI(Peripheral Component Interconnect)总线的诞生与PC(Personal Computer)的蓬勃发展密切相关。在处理器体系结构中,PCI总线属于局部总线(Local Bus)。局部总线作为系统总线的延伸,主要功能是为了连接外部设备。 处理器主频的不断提升,要求速度更快,带宽更高的局部总线。起初PC使用8位的XT总线作为局部总线,并很快升级到16位的ISA(Industry Standard Architecture)总线,逐步发展到32位的EISA(Extended Industry Standard Architecture)、VESA(Video Electronics Standards Association)和MCA(Micro Channel Architecture)总线。 PCI总线规范在上世纪九十年代提出。这条总线推出之后,很快得到了各大主流半导体厂商的认同,迅速统一了当时并存的各类局部总线。EISA、VESA等其他32位总线很快就被PCI总线淘汰了。从那时起,PCI总线一直在处理器体系结构中占有重要地位。 在此后相当长的一段时间里,PC处理器系统的大多数外部设备都是直接或者间接地与PCI总线相连。即使目前PCI Express总线逐步取代了PCI总线成为PC局部总线的主流,也不能掩盖PCI总线的光芒。从软件层面上看,PCI Express总线与PCI总线基本兼容;从硬件层面上看,PCI Express总线在很大程度上继承了PCI总线的设计思路。因此PCI总线依然是软硬件工程师在进行处理器系统的开发与设计时,必须要掌握的一条局部总线。 PCI总线V1.0规范仅针对在一个PCB(Printed Circuit Board)环境内的,器件之间的互连,而1993年4月30日发布的V2.0规范增加了对PCI插槽的支持。1995年6月1日,PCI V2.1总线规范发布,这个规范具有里程碑意义。正是这个规范使得PCI总线大规模普及,至此PCI总线完成了对(E)ISA和MCA总线的替换。 至1996年,VESA总线也逐渐离开了人们的视线,当然PCI总线并不能完全提供显卡所需要的带宽,真正替代VESA总线的是AGP总线。随后PCISIG(PCI Special Interest Group)陆续发布了PCI总线V2.2,V2.3规范,并最终将PCI总线规范定格在V3.0。 除了PCI总线规范外,PCISIG还定义了一些与PCI总线相关的规范,如PCMCIA(Personal Computer Memory Card International Association)规范和MiniPCI规范。其中PCMCIA规范主要针对Laptop应用,后来PCMCIA升级为PC Card(Cardbus)规范,而PC Card又升级为ExpressCard规范。 PC Card规范基于32位,33MHz的PCI总线;而ExpressCard规范基于PCI Express和USB 2.0。这两个规范都在Laptop领域中获得了成功。除了PCMCIA规范外,Mini PCI总线也非常流行,与标准PCI插槽相比,Mini PCI插槽占用面积较小,适用于一些对尺寸有要求的应用。 除了以上规范之外,PCISIG还推出了一系列和PCI总线直接相关的规范。如PCI-to-PCI桥规范、PCI电源管理规范、PCI热插拔规范和CompactPCI总线规范。其中PCI-to-PCI桥规范最为重要,理解PCI-to-PCI桥是理解PCI体系结构的基础;而CompactPCI总线规范多用于具有背板结构的大型系统,并支持热拔插。 PCISIG在PCI总线规范的基础上,进一步提出PCI-X规范。与PCI总线相比,PCI-X总线规范可以支持133MHz、266MHz和533MHz的总线频率,并在传送规则上做了一些改动。虽然PCI-X总线还没有得到大规模普及就被PCI Express总线替代,但是在PCI-X总线中提出的许多设计思想仍然被PCI Express总线继承。 PCI总线规范是Intel对PC领域做出的一个巨大贡献。Intel也在PCI总线规范留下了深深的印记,PCI总线规范的许多内容都与基于IA (Intel Architecture)架构的x86处理器密切相关。但是这并不妨碍其他处理器系统使用PCI总线,事实上PCI总线在非x86处理器系统上也取得了巨大的成功。目前绝大多数处理器系统都使用PCI/PCI Express总线连接外部设备,特别是一些通用外设。 随着时间的推移,PCI和PCI-X总线逐步遇到瓶颈。PCI和PCI-X总线使用单端并行信号进行数据传递,由于单端信号容易被外部系统干扰,其总线频率很难进一步提高。目前,为了获得更高的总线频率以提高总线带宽,高速串行总线逐步替代了并行总线。PCI Express总线也逐渐替代PCI总线成为主流。但是从系统软件的角度上看,PCI Express总线仍然基于PCI总线。理解PCI Express总线的一个基础是深入理解PCI总线,同时PCI Express总线也继承了PCI总线的许多概念。本篇将详细介绍与处理器体系结构相关的,一些必备的PCI总线知识。 为简化起见,本篇主要介绍PCI总线的32位地址模式。在实际应用中,使用64位地址模式的PCI设备非常少。而且在PCI Express总线逐渐取代PCI总线的大趋势之下,将来也很难会有更多的,使用64位地址的PCI设备。如果读者需要掌握PCI总线的64位地址模式,请自行阅读PCI总线的相关规范。实际上,如果读者真正掌握了PCI总线的32位地址模式之后,理解64位地址模式并不困难。 为节省篇幅,下文将PCI Express总线简称为PCIe总线,PCI-to-PCI桥简称为PCI桥,PCI Express-to-PCI桥简称为PCIe桥,Host-to-PCI主桥简称为HOST主桥。值得注意的是许多书籍将HOST主桥称为PCI主桥或者PCI总线控制器。
相关资源
  • 所需E币: 1
    时间: 2022-1-13 15:32
    大小: 6.16MB
    上传者: qq_yousee
    PCIExpressBaseSpecificationRevision3.0
  • 所需E币: 0
    时间: 2021-3-4 09:49
    大小: 1.84MB
    上传者: 西风瘦马
    PXIExpress技术一本
  • 所需E币: 0
    时间: 2021-3-4 09:48
    大小: 1.31MB
    上传者: 西风瘦马
    PCIEXpress标准概述
  • 所需E币: 0
    时间: 2021-3-4 09:49
    大小: 135.5KB
    上传者: 西风瘦马
    PCIExpress技术简介
  • 所需E币: 0
    时间: 2021-3-4 09:49
    大小: 598.45KB
    上传者: 西风瘦马
    PXIExpress技术白皮书
  • 所需E币: 3
    时间: 2020-9-27 17:10
    大小: 39.52MB
    上传者: NB老兵
    以动画的方式介绍PCIbus演化进程,从PCI单端输出发展到PCIe差分输出的的目的及其应用的优势与方向
  • 所需E币: 5
    时间: 2020-8-15 20:09
    大小: 1.59MB
    上传者: 东亚安防
    ViPlexExpress局域网显示屏管理软件用户手册-V1.9.2
  • 所需E币: 5
    时间: 2020-8-15 20:08
    大小: 4.43MB
    上传者: 东亚安防
    ViPlexExpressPC端显示屏信息发布管理系统异步播放用户手册-V2.3.0
  • 所需E币: 5
    时间: 2020-8-15 20:07
    大小: 3.4MB
    上传者: 东亚安防
    ViPlexExpressPC端显示屏信息发布管理系统本机播放用户手册-V2.3.0
  • 所需E币: 5
    时间: 2019-12-27 19:47
    大小: 12.04MB
    上传者: givh79_163.com
    EZ-Color101培训模块:PSoCExpress设计和温度反馈……
  • 所需E币: 3
    时间: 2019-12-27 19:44
    大小: 22.48MB
    上传者: givh79_163.com
    几分钟内可完成的触摸感应设计-CapSenseExpress……
  • 所需E币: 5
    时间: 2019-12-27 20:55
    大小: 73.65KB
    上传者: rdg1993
    PCIExpress是PCI的第三代技术,用于连接电脑系统外围设备的I/O。该技术目的是作为通用目的I/O接口,以满足桌面、手机、服务器和通信中电脑平台的需要。它也提出了它些系统中背板、连接器和可移除卡的电气和机械特性。advertisementPCIExpressPowerandMiniCardSolutions……
  • 所需E币: 5
    时间: 2019-12-25 16:55
    大小: 104.91KB
    上传者: 978461154_qq
    AlteraPCIExpress高性能参考设计采用Altera PCIExpressMegaCore功能以及高性能的DMA,它能在FPGA额定内部存储器和系统存储器间传输数据.参考设计包括基于WindowsXP的可设定DMA传输的应用软件,应用软件还能测量和显示传输器所达到的性能.参考设计中所用的链式DMA是采用PCIExpress编译器所产生的链式DMA案例.Altera提供完整的PCI-SIG兼容的FPGA解决方案,提供各种的x1,x4和x8PCIExpress应用.解决方案包括可配置的PCIExpressIP核,以及用于端点,桥,交换和复合根功能的开发板.解决方案能简便快速实现协议,因此降低了设计风险,缩短了开发时间,使你集中精力在系统设计的核心功能上.……
  • 所需E币: 3
    时间: 2019-12-30 13:53
    大小: 3.79MB
    上传者: 微风DS
    现代电台向抗干扰、多频段、高带宽、多功能不断演进。技术的发展对当前电台测试的需求也在提高。要求减少实地现场错误,并且适应不断变化的测试需求,还要有良好的后期维护及支持。是德科技针对当前和未来发展的电台测试需求提出了全新的电台测试方案,支持模拟/数字电台的制式,覆盖射频及音频发射机和接收机测试。该系统由可扩展,可升级的PXIe模块搭建,配置灵活,集成度高,既可通过软件界面做一键式测量或故障诊断,也可基于开放的应用程序进行定制化编程;同时还可集成更多的测量模块如万用表,数字I/O,网络分析仪等搭建自定义系统;作为通用测量平台,该方案还提供如杂散谐波以及相位噪声等通用测量,以及通信制式测量如LTE,为下一代战略电台和公共安全电台测量升级做好准备。-RF测量高达27GHz-支持模拟/数字电台制式,如APCOP25及TETRA-覆盖多种射频及音频的发射机和接收机测量,如SINAD/SNR,THD,灵敏度及调制质量-开放的模块化平台,加速自动化进程,集成自定义需求-Keysight长期的测量经验和稳定可重复的测量结果-通用测量平台满足故障诊断并为下一代战略电台和公共安全电台测量做好准备……
  • 所需E币: 4
    时间: 2019-12-25 12:50
    大小: 519.43KB
    上传者: 978461154_qq
    提高生产率:IP与XML相结合InformationQuarterly[62]Number1,Spring2005MentorUartLeon2images/GaislerResearch.jpguarthttp://www.gaisler.com1.03BAIDU_CLB_fillSlot("1044978");
  • 所需E币: 5
    时间: 2019-12-25 12:42
    大小: 2.06MB
    上传者: givh79_163.com
    游戏程序需要世界级的硬件IPDESIGNSTRATEGIESANDMETHODOLOGIES游戏程序需要世界级的硬件IP采用物理IP的ARMAdvantageTM物存生成器作者理IP平台能够提供具有成本效益的高性=外设总线接口JackShandle能解决方案,而且来自一家IP供应商所以=标准单元库e-contentworks公司使用方便。由于多数物理IP供应商只供一种或RobBarnes高端游戏程序不断推进芯片设计的两种IP类型,所以设计团队可能会“四处ARM公司渠道营销主管性能极限。为便于管理网格、结构、纹选购”,从多家供应商选购IP。然而,使用理、色深和帧缓冲所需的大量数据,图形多家供应商会面临成本巨大的集成挑战,摘要:引擎IC设计师根据高度平行的深流水线几乎与进行定制设计一样具有高风险。其……
  • 所需E币: 3
    时间: 2019-12-31 17:32
    大小: 469.1KB
    上传者: 微风DS
    此后续资源包包含DAQ助手ExpressVI讲座的讲义及技术文档……
  • 所需E币: 4
    时间: 2020-1-2 00:31
    大小: 571.96KB
    上传者: rdg1993
    PETracerVerificationScriptEngineManualVerificationScriptEngineforLeCroyPETracer™ReferenceManualProtocolSolutionsGroup3385ScottBlvd.,SantaClara,CA95054Tel:+1/408.727.6600Fax:+1/408.727.6622VerificationScriptEngineforLeCroyPETracerReferenceManualForPETracerSoftwareVersion5.7xMarch2010LeCroyVerificationScriptEngineReferenceManualVersion5.71DocumentDisclaimerTheinformationcontainedinthisdocumenthasbeencarefullycheckedandisbelievedtobereliable.However,noresponsibilitycanbeassumedforinaccuraciesthatmaynothavebeendetected.LeCroyreservestherighttorevisetheinformationpresentedinthisdocumentwithoutnoticeorpenalty.TrademarksandServicema……
  • 所需E币: 5
    时间: 2020-1-2 00:31
    大小: 838.57KB
    上传者: givh79_163.com
    PETracerFile-BasedDecodingManualLeCroyProtocolAnalyzersFile-BasedDecodingUserManualPROTOCOLSOLUTIONSGROUP3385SCOTTBLVDSANTACLARA,CA95054LeCroyProtocolAnalyzersFile-BasedDecodingUserManualManualVersion2.00November2009DocumentDisclaimerFile-basedDecodingUserManualDocumentDisclaimerTheinformationinthisdocumenthasbeencarefullycheckedandisbelievedtobereliable.However,noresponsibilitycanbeassumedforinaccuraciesthatmaynothavebeendetected.LeCroyreservestherighttorevisetheinformationinthisdocumentwithoutnoticeorpenalty.TrademarksandServicemarks……
  • 所需E币: 4
    时间: 2020-1-2 00:31
    大小: 5.97MB
    上传者: 16245458_qq.com
    SummitZ2UserManualSummitZ2-16™PCIExpressMulti-LaneExerciserUserManualPROTOCOLSOLUTIONSGROUP3385SCOTTBLVDSANTACLARA,CA95054PETracerMLPCIExpressMulti-LaneProtocolAnalyzerPETrainerMLPCIExpressMulti-LaneExerciserUserManualForSoftwareVersion5.7xMarch2010PETracerMLUserManualDocumentDisclaimerTheinformationinthisdocumenthasbeencarefullycheckedandisbelievedtobereliable.However,noresponsibilitycanbeassumedforinaccuraciesthatmaynothavebeendetected.LeCroyreservestherighttorevisetheinformationinthisdocumentwithoutnoticeorpenalty.TrademarksandServicemarksLeCroy,CATCTrace,PCIExpress,PETracerEdge,PET……