为了进行链路训练,需要发送一些特殊的字符序列:TS1和TS2序列、Idle序列、FTS序列、SKIP序列等;
TS1和TS2序列,即普通的训练序列(Training Sequence),其中TS1序列的主要作用是检测PCIe链路的配置信息,而TS2序列确认TS1序列的结果,有16个字符组成,具体见PCIe规范(表4-2和表4-3);
Idle序列:要进入或退出空闲状态(Idle)所发送的序列;
FTS序列:主要目的是使接收端RX能重新获得bit/symbolLock,发送端TX要发送的FTS序列个数由接收到的TS1/2序列决定,TS1/2序列的第3个字符是需要发送的FTS个数;
SKIP序列:作用是进行时钟补偿;因为在接收端RX中,存在2个时钟:1个是通过PLL从报文中恢复的时钟,另一个是本地时钟,这2个时钟并不完全同步。在RX端有个同步FIFO来进行同步,该FIFO的大小固定,2端时钟误差太大FIFO就会溢出。所以每个lane在发送一定长度的字符后,必须要根据FIFO的状态增加或减少发送SKIP序列来补偿2端时钟的误差;
在进行链路训练时,使用的是LTSSM状态机,如下图,这里就不深入了;
17
PCIe控制器的数据链路层
数据链路层确保可靠的数据交换,负责错误检测和重传、流量控制额度(FCC)的初始化和更新以及电源管理服务。为实现这些功能,数据链路层生成并处理数据链路层数据包(DLLP)。一旦LTSSM发出物理链路协商,数据链路层就被启能。在此,各端点的数据链路层利用流量控制(FC)初始化协议进行链路初始化。使用该协议交互各链路伙伴可用的排队资源的资讯。一旦完成FC初始化,链接就准备好为事务传输层提供可靠的数据传输服务。在TLP传输时,定期流量控制更新继续追踪缓冲区的可用空间以防止溢出。数据链路层在不可靠(有损耗)的物理链路上提供了可靠的数据传输服务。它是通过验证收到的TLP及使用接收到数据的正确认并在接收失败时重新传送数据来做到这点的。当TLP被发送时,它们被分配给序列号,并采用一个CRC码且把该码发送至物理层以用于串行链路上的传输。接收时,检查CRC和序列号。CRC内的错误或出序的序列号显示发生了传输错误,信号通过给出负确认(NAK)予以响应。接到NAK后,发送器重新传送数据包,该数据包被存储在专为此目的设置的“重传”缓存器内。若18
CRC序列号检查成功,接收器发出正确认(ACK)。对给定TLP来说,仅当收到ACK时,才对重传缓冲区进行数据刷新。使用此协议,数据链路层可以保证TLP的正确发送。
PCIe控制器的事物传输层
数据传输层创制出站及接收入站事务传输层数据包(TLP)。TLP包括一个报头、一个可选数据配载以及一个可选的端到端CRC(ECRC)。TLP既可以是请求也可以是对请求(完成)的响应,它永远是4个字节(1个DWORD)的倍数。报头指定事务类型、优先级、地址,路由规则及其他数据包特征。发送事务传输层构建数据包报头、伺机添加ECRC并门控数据包的传输(直到有足够的远程流量控制额度可用)。接收事务传输层检查TLP格式和报头。它也择机检查ECRC。
PCIe基本功能和属性
吞吐量:流量控制额度
如前所述,PCIe连接的两端采用流量控制额度(FCC)以确保数据不会因缓冲区溢出而丢失。流量控制额度因而对总有效吞吐量发挥着关键作用。流量控制额度就是关于接收器缓冲器容量的信息,因而由接收器件发出。链路的发送端只传送接收端有足够空间所能容纳接收的数据包的数量,在数据包发送过程中这些空间在减少。链路的接收端随着其缓冲空间的空出,会接着发布缓冲器容量信息。有用于送出、未送出和完成的流量控制队列,因此,有三类流量控制DLLP。另外还有:
Init_FC DLLPs定义各FC类(P、NP、CPL)的初始缓冲空间; Update_FC DLLPs用来宣告又有新“额度”;
QoS:传输类别和虚拟通道
传输分类和通道虚拟化使系统能为不同应用提供不同的服务质量(QoS)。如在PC中,会给视频流以最高优先级以确保有足够的带宽提供高品质视频,保证其不会被其它应用阻扰。在网络服务器应用中,这种优先级对网络服务提供商的经营来说必不可少,它们必须要能以不同的服务定价提供多种服务水平不同的服务。
通道虚拟化允许多个独立的数据流复用同一条线路。虚拟通道拥有自己的缓冲资源。 传输分类使用传输类标记定义端到端的优先级,任何数据包都会被指配一个针对其它流通的优先级。根联合体为每一传输类分配一个虚拟通道,虽然在数据包路径上的不同点19
可能会有不同的虚拟通道。灵活的仲裁机制使虚拟通道保有必要的优先级和服务水准。仲裁机制包括:任意(自定义)、循环赛、加权轮循等。
RAS:数据完整性
数据完整性是由采用一系列必要和可选的协议特性保证的。所需要的特性有: ?物理层检查——8b/10b编码/解码以剔除无效字符。
?链路层检查——数据包CRC(PCRC)检查;数据包序号检查;验证确认/负确认(ACK/NAK)。
?事务传输层检查——报头和数据包有效性;完成超时。
可选特性——无论可选或不可选,任何PCIe IP实际上都该支持的特性有——接收器溢出检查、流量控制错误检查、端对端CRC(ECRC)检查、损坏的TLP检查、存储器奇偶校验和数据通路奇偶校验。
RAS: 排序/PCI规则
排序衍生自PCI模型,它有两个目标:
?为避免系统死锁。PCIe是通过确保一些数据包类型必须要能通过被隔阻的其他类型做到这点的;因此,有些数据包类型可能永远不会通过其它类型。例如,完成和发出的写操作必须要被允许通过读请求。
?要不间断地观察数据和标志以确保数据有效性。例如,完成和读请求可能无法通过发出的写,而发出的写可能无法通过其他发出的写。
可由硬件或软件实现排序规则。例如,硬件接收缓冲区根据数据包的到达次序和类型自动传递或阻延数据包。软件实现会限制读请求问题以防范死锁、控制旗帜的位置以便使旁通无关紧要,另外,只要写顺序得以保持,就把标志放在接收器中并由产生者用写对其进行设置。
主动电源管理
主动电源管理就是当检测不到系统或设备的活动时,自动进入低功耗状态:也就是说,当链路上没有数据包且出现了超时;另外,当需要时,自动退出低功耗状态。主动电源20
相关推荐: