您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > PCIE接口介绍-修改
PCIe接口介绍PCIe接口简介PCIe(PeripheralComponentInterconnectExpress)总线的诞生与PC(PersonalComputer)的蓬勃发展密切相关,是由PCISIG(PCISpecialInterestGroup,主要是intel)推出的一种局部并行总线标准,主要应用于电脑和服务器的主板上(目前几乎所有的主板都有PCIe的插槽),功能是连接外部设备(如显卡、存储、网卡、声卡、数据采集卡等)。PCI总线规范最早在上世纪九十年代提出,属于单端并行信号的总线,目前已淘汰,被PCIe总线(在2001年发布,采用点对点串行连接)替代。目前PCIe的主流应用是3.0,4.0还没正式推出,但标准已经制定的差不多了。PCI总线使用并行总线结构,在同一条总线上的所有外部设备共享总线带宽,而PCIe总线使用了高速差分总线,并采用端到端的连接方式,因此在每一条PCIe链路中只能连接两个设备。这使得PCIe与PCI总线采用的拓扑结构有所不同。PCIe总线除了在连接方式上与PCI总线不同之外,还使用了一些在网络通信中使用的技术,如支持多种数据路由方式,基于多通路的数据传递方式,和基于报文的数据传送方式,并充分考虑了在数据传送中出现服务质量QoS(QualityofService)问题。每一个Lane上使用的总线频率与PCIe总线使用的版本相关。PCIe总线规范总线频率单Lane的峰值带宽编码方式1.x1.25GHz2.5GT/s8/10b编码2.x2.5GHz5GT/s8/10b编码3.X4GHz8GT/s128/130b编码如上表所示,不同的PCIe总线规范使用的总线频率并不相同,其使用的数据编码方式也不相同。PCIe总线V1.x和V2.0规范在物理层中使用8/10b编码,即在PCIe链路上的10bit中含有8bit的有效数据;而V3.0规范使用128/130b编码方式,即在PCIe链路上的130bit中含有128bit的有效数据。实际使用中,PCIe无法一直维持在峰值传输状态,因为编码方式、链路管理消耗、存储时间延迟等原因,一般只有50%~60%的效率。2PCIe接口原理连接方式PCIe链路使用“端到端的数据传送方式”,发送端和接收端中都含有TX(发送逻辑)和RX(接收逻辑),其结构如图一。由上图所示,在PCIe总线的物理链路的一个数据通路(Lane)中,由两组差分信号,共4根信号线组成。其中发送端的TX部件与接收端的RX部件使用一组差分信号连接,该链路也被称为发送端的发送链路,也是接收端的接收链路;而发送端的RX部件与接收端的TX部件使用另一组差分信号连接,该链路也被称为发送端的接收链路,也是接收端的发送链路。PCIe链路使用差分信号进行数据传送,一个差分信号由D+和D-两根信号组成,信号接收端通过比较这两个信号的差值,判断发送端发送的是逻辑“1”还是逻辑“0”。PCIe链路可以由多条Lane组成,目前PCIe链路可以支持1、2、4、8、12、16和32个Lane,即×1、×2、×4、×8、×12、×16和×32宽度的PCIe链路。在主板上常见的是PCIeX1、PCIeX4和PCIeX16接口;3PCIe的信号线PCIe的接口保证了前向兼容(3.X/2.X/1.X的信号定义一样,只是信号线上的速度和电平不同),主要分为电源、信号传输lane和一些辅助信号。PCIe插槽的pin脚定义如下(灰色背景色的是辅助信号):456电源有+12V、+3.3V和3.3Vaux。其中+12V主要给PCIe设备(如显卡)提供更大的供电能力(PCIe3.0的插槽最大有150W);PCIe设备使用的主要逻辑模块均使用+3.3V供电,对于芯片内部的PCIe模块,大多只需要+3.3V;而一些与电源管理相关的逻辑使用3.3Vaux供电。在PCIe设备中,一些特殊的寄存器通常使用3.3Vaux供电,如StickyRegister,此时即使PCIe设备的其他电源被移除,这些与电源管理相关的逻辑状态和这些特殊寄存器的内容也不会发生改变。在PCIe总线中,使用3.3Vaux的主要原因是为了降低功耗和缩短系统恢复时间。因为3.3Vaux在多数情况下并不会被移除,因此当PCIC设备的电源恢复(唤醒)后,该设备不用重新恢复使用3.3Vaux供电的逻辑,从而设备可以很快地恢复到正常工作状状态。PETp0~15、PETn0~15和PERp0~15、PERn0~15共64根信号线组成32对差分信号,其中16对PETxx信号用于发送链路,另外16对PERxx信号用于接收链路。辅助信号:1、PERST#信号:该信号为全局复位信号,由主系统提供,主系统需要为PCIe插槽和PCIe设备提供该复位信号。PCIe设备使用该信号复位内部逻辑。当该信号有效时,PCIe设备将进行复位操作。2、REFCLK+和REFCLK-信号:参考时钟,其频率范围为100MHz±300ppm。当PCIe设备作为Add-In卡连接在PCIe插槽时,可以直接使用PCIe插槽提供的REFCLK+和7REFCLK-信号,也可以使用独立的参考时钟,只要这个参考时钟在100MHz±300ppm范围内即可。3、WAKE#信号:当PCIe设备进入休眠状态,主电源已经停止供电时,PCIe设备使用该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCIe设备提供主电源Vcc。在PCIe总线中,WAKE#信号是可选的,因此使用WAKE#信号唤醒PCIe设备的机制也是可选的。值得注意的是产生该信号的硬件逻辑必须使用辅助电源Vaux供电。PCIe设备除了可以使用WAKE#信号实现唤醒功能外,还可以使用Beacon信号实现唤醒功能。与WAKE#信号实现唤醒功能不同,Beacon使用In-band信号,即差分信号D+和D-实现唤醒功能。Beacon信号DC平衡,由一组通过D+和D-信号生成的脉冲信号组成。这些脉冲信号宽度的最小值为2ns,最大值为16us。当PCIe设备准备退出L2状态(该状态为PCIe设备使用的一种低功耗状态)时,可以使用Beacon信号,提交唤醒请求。4、SMCLK和SMDAT信号:SMCLK和SMDAT信号与x86处理器的SMBus(SystemMangementBus)相关。SMBus于1995年由Intel提出,SMBus由SMCLK和SMDAT信号组成。SMBus源于I2C总线,以便于PCI/PCIe设备与处理器系统进行交互。5、JTAG信号:JTAG(JointTestActionGroup)是一种国际标准测试协议,与IEEE1149.1兼容,主要用于芯片内部测试。目前绝大多数器件都支持JTAG测试标准。JTAG信号由TRST#、TCK、TDI、TDO和TMS信号组成。其中TRST#为复位信号;TCK为时钟信号;TDI和TDO分别与数据输入和数据输出对应;而TMS信号为模式选择。6、PRSNT1#和PRSNT2#信号:PRSNT1#和PRSNT2#信号与PCIe设备的热插拔相关。在基于PCIe总线的Add-in卡中,PRSNT1#和PRSNT2#信号直接相连,而在处理器主板中,PRSNT1#信号接地,而PRSNT2#信号通过上拉电阻接为高。PCIe设备的热插拔结构如下图所示。8如上图所示,当Add-In卡没有插入时,处理器主板的PRSNT2#信号由上拉电阻接为高,而当Add-In卡插入时主板的PRSNT2#信号将与PRSNT1#信号通过Add-In卡连通,此时PRSNT2#信号为低。处理器主板的热插拔控制逻辑将捕获这个“低电平”,得知Add-In卡已经插入,从而触发系统软件进行相应地处理。拓扑结构一个PCIe系统的拓扑结构包括四个功能类型——根联合体根联合体(rootcomplex)、交换器(switch)、端点(EP/endpoint)和桥(图2)。虚线代表着两个PCIe设备间的一个连接,被称为链路。9•根联合体对整个PCIe建构实施初始化并配置各链路。它通常把中央处理单元(CPU)与其它三个功能中的一或多个——PCIe交换器、PCIe端点和PCIe到PCI桥——连接起来。•PCIe交换器把数据路由至下游多个PCIe端口,并分别从其中每个端口路由到上游唯一一个根联合体。PCIe交换器也可以灵活地把数据从一个下游端口路由到另一个下游端口(点对点),它消除了传统PCI系统限制性的树状结构。•端点通常位于终端应用内,它负责连接应用与系统内的PCIe网络。端点要求并完成PCIe事务传输。一般来说,系统内的端点比任何其他类型的PCIe部件都要多。•桥用于连接PCIe与系统内诸如PCI/PCI-X等其他PCI总线标准;这样的系统同时采用上述各总线架构。PCIe层次结构PCIe规范定义的协议遵循开放源码促进会(OSI)模型。该模型分为5个基本层,如下图左侧所示。10•事务层(Transaction层)定义了PCIe总线使用总线事务,其中多数总线事务与PCI总线兼容。这些总线事务可以通过Switch等设备传送到其他PCIe设备或者RC。RC也可以使用这些总线事务访问PCIe设备。事务层接收来自PCIe设备应用层(图中xx层)的数据,并将其封装为TLP(TransactionLayerPacket)后,发向数据链路层。此外事务层还可以从数据链路层中接收数据报文,然后转发至PCIe设备的应用层。在PCIe总线中,事务层传递报文时可以乱序,还可以使用流量控制机制保证PCIe链路的使用效率。•数据链路层(Link层)保证来自发送端事务层的报文可以可靠、完整地发送到接收端的数据链路层。来自事务层的报文在通过数据链路层时,将被添加SequenceNumber前缀和CRC后缀。数据链路层使用ACK/NAK协议保证报文的可靠传递。PCIe总线的数据链路层还定义了多种DLLP(DataLinkLayerPacket),DLLP产生于数据链路层,终止于数据链路层。值得注意的是,TLP与DLLP并不相同,DLLP并不是由TLP加上SequenceNumber前缀和CRC后缀组成的。•物理层(Physical层)是PCIe总线的最底层,将PCIe设备连接在一起。PCIe总线的物理电气特性决定了PCIe链路只能使用端到端的连接方式。•在上图的右边,我们对其余层进行了展开,以更准确地显示那些更靠底部的层是如何映射到物理硬件实现的。如上图所示,物理层分为两个子层:电气和逻辑层。不少公司已经在电气层和逻辑层间定义了一个称为PCIExpress(PIPE)的物理接口,并对其加11以利用。PIPE接口使设计能参照一个标准接口进行且还能使购自不同厂商的多个部件协同工作。•物理层下的电气子层实现包括收发器、模拟缓冲器、串行/解串行器(SerDes)在内的模拟器件以及10位接口。•物理编码子层(PCS)把每8位数据字节编码/解码为10位代码。这种编码特性不仅能检查有效字符,而且也限制了被发送的“0”和“1”数量上的差异,从而同时在发射器和接收器侧保持了DC均衡,进而大大提高了电磁兼容性(EMC)和电气信号性能。•在物理层内PIPE接口的另一侧包含用以指示链路训练和状态的状态机(LTSSM)、通道间去除偏移、特殊序列检测和生成等功能。•机械层定义了诸如对连接器、卡外形尺寸、卡检测和热插拔等要求的机械环境。在实际物理硬件内,还有另一种分层:从串行引脚层到PIPE接口层统称为物理层(PHY);从PIPE接口到应用的那些层统称为数字控制器。任何给定PCIe链路的端点都必须包括物理层和数字控制器。下图显示了插入到根联合体内的PCIe物理层和控制器。端点使用端点端口控制器,根联合体设备使用根端口控制器。PCIePHYPCIe的PHY主要有物理编码子层(PCS)和电气子层(Electrical)。12物理编码子层(PCS)主要功能是8b/10b的编码和解码(实现内嵌时钟,DC平衡)、Rx检测等,属于数字部分,功能属于物理层的逻辑子层的一部分。不同的PCIe协议,编码方式也不同;而电气子层(Electrical)的核心是串行/解串行器(
本文标题:PCIE接口介绍-修改
链接地址:https://www.777doc.com/doc-1397982 .html