ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PCIe初探(2/2)

2020-01-31 20:55:53  阅读:845  来源: 互联网

标签:TLP 初探 DLLP PCIe 物理层 链路 数据包


  上一篇讲到了PCIe的事务层,下面会对数据链路层和物理层做简要介绍。

数据链路层的主要功能为

TLP传输
出错检测和裁决
  LCRC和Sequence Number的生成 
  存储发送端的TLP用于重发
  为TLP和DLLP做crc校验
  DLLP的ack/nack响应
  链路初始化和电源管理
DLLP传输
  用于链路管理功能(TLP确认,电源管理,VC通道初始化)

仍然用下面这张图来梳理三层结构中的事务包.

 

 

数据链路层为了保证事务包传输的正确性, 采用了Ack/Nak的握手机制,

Ack/Nak是一种由硬件实现的,完全自动的机制,目的是保证TLP有效可靠地传输。Ack DLLP用于确认TLP被成功接收,Nak DLLP则用于表明TLP传输中遇到了错误。

下图为数据链路层的工作过程:

 

 

 

PCIe的物理层 :

物理层分为两部分,逻辑物理层和电气物理层。如下图所示:

 

 

电气层和逻辑层间定义了一个成为PIPE的物理接口
电气子层: 包括收发器、模拟缓冲器、串行/解串行器(SerDes)在内的模拟器件以及10位接口
编码子层(PCS)把每8位数据字节编码/解码为10位代码。这种编码特性不仅能检查有效字符,而且也限制了被发送的0/1数量上的差异,从而同时在发射器和接收器侧保持了DC均衡,进而大大提高了电磁兼容性(EMC)和电气信号性能。
在物理层内PIPE接口的另一侧包含用以指示链路训练和状态的状态机(LTSSM)、通道间去除偏移、特殊序列检测和生成等功能。

电气层涉及模拟电路的部分,这里简单了解一点:

  从串行引脚层到PIPE接口层统称为物理层。
  从PIPE接口到应用的那些层称为数字控制器(Controller)。

SerDes设计挑战
  串行到并行的数据转换,要求先进的模拟设计
  不同工艺技术间,模拟设计不具有移植性。所以必须针对芯片制造所采用的工艺技术对物理层实施重新设计
  高速-模拟链路引入的额外设计复杂性使设计难度进一步加大(如因信号完整性和噪音导致的衰减问题)
  物理层必须通过严格的电气和兼容性测试,以确保与其他设备的互操作性。

 逻辑物理层:

物理层的发射部分负责:
  采用特殊符号插入对数据包进行帧化处理; 如用STP或SDP符号标志数据包的开始,用END符号标记数据包结束。
  通道映射使顺序传送数据包在到通道链路上同时发送,从而增加吞吐量。接收器物理层以正确顺序对数据包进行重组
  数据加扰
  链路控制 – 初始化、宽度和通道反转协商
  多通道传输控制
  生成跳跃序列以补偿链路两端的时钟PPM差。

 

 

 

物理层的接收部分负责:
  负责包含多通道链路的通道映射、通道到通道间的去偏移
  数据解扰
  发现数据包并实施去帧化处理
  CDR恢复始终信号
  检测特殊数据包序列,如: TS1, TS2, Skip和电气闲置。

关于三层结构介绍暂时到这里,那么PCIe在上电后是怎么开始工作的呢?下面会较详细的叙述PCIe开始工作的过程。

PCIe开始工作主要分为3个步骤:链路训练,枚举扫描,配置BAR空间。

链路初始化:

 

 

 Link Initialization & Training:

 

 

 

 

 

 枚举扫描:

 

 

 总线枚举过程:

 

 

 

 

 

 配置BAR:

  配置基地址寄存器,给PCIe分配地址空间。

 

 

 

 

 

 

 

 PCIe还有很多其他内容,比如Ordering, 中断,RAS,Power管理,虚拟化等,每一个话题都可以单独开题,PCIe初探部分就到此为止了,后续会对PCIe的Ordering和在ARM架构中的应用做一次专题,敬请期待.

 

标签:TLP,初探,DLLP,PCIe,物理层,链路,数据包
来源: https://www.cnblogs.com/IC-Chenxinmin/p/12246642.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有