0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCIE协议技术交流

ruikundianzi 来源:IC技术交流 2023-03-27 10:44 次阅读

一、link和lane

99f39d18-cb39-11ed-bfe3-dac502259ad0.png

一组link就是连接两个port之间的若干条lane,通常为x1/x2/x4/x8/x16。每条lane包含四根线tx_p/m,rx_p/m(两组差分对)。

这里的port/component可以理解为一个设备,如果pcie支持bifurcation,则一个x16的接口可以连接多个port(2个x8/1个x16/4个x4/8个x2等),每个port中每条lane的linkID相同,不同port间的linkID不同。

二、PCIE体系结构说明

9a17152c-cb39-11ed-bfe3-dac502259ad0.png

Root Complex:

RC是CPU和PCIE总线连接的接口。主要功能是完成存储器域到PCIE总线域的地址转换,随着虚拟化技术的引入,RC功能也越来越复杂。RC把来自CPU的request转化成PCIE的4类request(configuration、memory、I/O、message)并发送给下面的设备。

Switch & Bridge

Switch提供了分散/聚合的功能,它允许更多的设备接入到一个PCIE port。它扮演了数据包路由的功能。Bridge提供了一个转换接口用来连接其他的总线,如PCI/PCI-X。这样可以允许在PCIE的系统中接入一张旧的PCI设备。

PCIE Endpoint:

它只有一个上游端口,位于PCIE拓扑结构的树的末端。他作为请求的发起者或者完成者。分为Legacy Endpoint、PCIE Endpoint和Root Complex Integrated Endpoint三种。

虚拟化技术:

虚拟化可以理解为一台电脑运行了两套系统,比如我们在windows下安装linux虚拟机,两套操作系统共用一套硬件,这要求每套系统的存储域范围不重叠,即对应了两套地址转换,将存储器地址转换为不同的物理地址,以此实现一套硬件运行多系统。虚拟化技术的核心是地址的映射和转换。

三、PCIElane翻转和PN翻转

9a34b348-cb39-11ed-bfe3-dac502259ad0.png

为了方便板子布线,允许lane翻转

9a703918-cb39-11ed-bfe3-dac502259ad0.png

每条lane的差分信号也可翻转。

lane翻转和pn极性翻转有以下要求:

1、PN翻转无限制,可翻转部分lane,也可只翻转TX或RX

2、lane翻转必须全部翻转,不能部分翻转

3、lane翻转TX/RX必须同时翻转,不能只翻转TX或RX

4、lane翻转和PN翻转可以同时存在

四、吞吐量

PCIE gen1/2使用8b/10b编码,编码效率为0.8

PCIE gen3/4/5使用128b/130b≈0.985

PCIE 5.0x4的速率为:32Gbpsx4x128÷130÷8b/B≈15.754GB/s

9a8cbc0a-cb39-11ed-bfe3-dac502259ad0.png  

五、PCIE枚举图

开机启动时软件会扫描系统中的所有PCIE设备(PCIE枚举),对软件而言,Bus/Device/Function是必不可少的。

Bus:在一个系统中存在1~256个bus; Device:在一条bus中存在1~32个设备; Function:每个设备有1~8个功能;

9aa8c60c-cb39-11ed-bfe3-dac502259ad0.png

对于每个中间桥而言,三条Bus必须知道:Primary Bus/Secondary Bus/Subordinate Bus: Primary Bus:上游bus号 Secondary Bus:下游第一级bus号 Subordinate Bus:下游最大的bus号

9ad58b6a-cb39-11ed-bfe3-dac502259ad0.png  

六、PCIE设备与系统地址映射

PCIE设备有四种地址空间:

1、Configuration Space配置空间;

2、Memory Space存储空间;

3、I/O Space空间,存在于老的PCI设备;

4、Message Space,PCIE设备新增,包含边带指示信号,比如中断; 这些PCIE总线地址空间需要在初始化时就映射为存储器域的存储器地址空间,方便处理器访问。

系统软件对PCIE总线进行配置时,首先获得BAR寄存器的初始化信息,之后根据处理器系统的配置,将合理的基地址写入到相应的BAR寄存器中,这个过程在BIOS运行阶段和OS启动阶段完成。

系统软件还可以使用该寄存器获得PCIE设备使用的BAR空间的长度,其方法是向BAR寄存器写入0xFFFF_FFFF后再读取该寄存器。

每个PCIE设备在BAR中描述自己需要占用多少地址空间,BIOS或OS通过所有设备的这些信息构建一张完整的地址映射表,描述系统中资源的分配情况,然后再合理地将地址空间配置给每个PCI设备。

BAR在bit0来表示该设备是映射到memory还是I/O,BAR的bit0是readonly的,就是说设备寄存器映射到memory还是I/O是由设备制造商决定的,其他人无法修改。

9b0063a8-cb39-11ed-bfe3-dac502259ad0.png

PCI的配置空间如上图所示,每个设备的每个function都有独立的配置空间,大小为256B,前64B为表头,PCIE设备的配置空间拓展为4KB。 所有PCI的配置空间为: 16MB=256Busx32Device/Busx8Function/Devicex256B/Func 所有PCIE的配置空间为: 256MB=256Busx32Device/Busx8Function/Devicex4KB/Func X86架构地址又分为memory space和I/O space。

I/O space可以理解为直接寄存器读写地址空间,属于X86早期产物,访问速率较慢。 x86:32bit(4GB) x64:64bit(16EB) I/O space:16bit(64KB)

9b45963a-cb39-11ed-bfe3-dac502259ad0.png

从上图可知Memory地址前640KB为Conventional Memory,1MB间的为Boot ROM,中间一段为DRAM内存,其余的分配给PCI存储器域。I/O地址中可以通过CF8-CFB和CFC-CFF访问PCI的16MB配置空间,剩下的为各PCI设备映射的I/O地址空间。

对于PCIE而言,配置空间通过memory的方式映射(MMIO),不再通过I/O Map的方式访问,这会占用一部分系统内存,也是内存用不满的原因(还有主板上的集成显卡/BIOS等也会占用内存)。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163598
  • 差分信号
    +关注

    关注

    3

    文章

    367

    浏览量

    27649
  • 虚拟机
    +关注

    关注

    1

    文章

    908

    浏览量

    28086
  • LINUX内核
    +关注

    关注

    1

    文章

    316

    浏览量

    21617
  • PCIe接口
    +关注

    关注

    0

    文章

    120

    浏览量

    9675

原文标题:技术交流 | 协议类 — PCIE协议

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    [推荐]液晶技术交流QQ群,35224782 邀请加入.

    液晶技术交流QQ群,35224782 邀请加入.LCD群成立! ID:35224782 请加入!技术交流之LCD!QQ群ID:35224782 欢迎对此感兴趣的朋友们加入!讨论交流关于液晶屏,液晶模块的开发和使用的
    发表于 03-28 14:25

    labview 技术交流群 29735323

    labview 技术交流群 29735323 喜欢LabVIEW的朋友请进来,
    发表于 12-21 17:09

    labview 技术交流群 29735323

    labview 技术交流群 29735323 喜欢LabVIEW的朋友请进来
    发表于 12-22 09:23

    一个电子技术交流群QQ群

    新建了一个电子技术交流群,新建了个电子技术交流群,有兴趣的加,群号152354513
    发表于 01-09 19:56

    FPGA技术交流群001 252520964

    FPGA技术交流群:h t t p : / / u r l . c n / Q K 4 a a Q
    发表于 02-17 19:34

    FPGA相关技术交流

    PCBLayout QQ群312651747FPGA相关技术交流群QQ群198904805硬件设计技术交流QQ群375120144STM8技术交流QQ群112579730
    发表于 04-12 20:58

    单片机技术交流 48711429

    单片机技术交流 48711429本群创建于2007/10/17 有420人左右,希望有共同爱好都加入: 台系、三星、 MICROCHIP、ATMEL......单片机技术交流,软件开发,小家电类控制板开发,母婴用品电器控制、智能控制......
    发表于 01-20 15:50

    单片机技术交流 48711429

    单片机技术交流 48711429本群创建于2007/10/17 有420人左右,希望有共同爱好都加入: 台系、三星、 MICROCHIP、ATMEL......单片机技术交流,软件开发,小家电类控制板开发,母婴用品电器控制、智能控制......
    发表于 01-20 15:53

    PCB设计技术交流~

    新人报到~~诚邀各位PADS,ALLEGRO和AD的技术大虾,有兴趣 兼职 或技术交流的可以加群: 104911569 (若群满可以加Q:3150856053 )
    发表于 04-09 15:14

    无线充电技术交流顺利结束

    `` 本帖最后由 music586 于 2018-1-14 13:31 编辑 无线充电技术交流顺利结束技术交流群:16519783``
    发表于 01-14 13:27

    maxim美信技术交流群号:1039469053

    为方面大家交流沟通 我成立一个技术交流群maxim美信技术交流群号:1039469053
    发表于 02-03 12:52

    电脑技术交流之常见故障排除

    进行电脑技术交流。通过电脑技术交流,我们可以得到很多的知识,此外还可以及时的解决我们所遇到的问题。小编经常与朋友们进行电脑技术交流,在网上也有相应的电脑技术交流群、电脑
    发表于 09-08 08:25

    CST仿真技术交流

    CST仿真技术交流
    发表于 03-11 09:46 17次下载

    PDH技术交流071105

    PDH技术交流071105
    发表于 01-02 19:49 0次下载

    ftth技术交流(技术原理)

    ftth技术交流(技术原理)(安徽理士电源技术有限公司是什么企业)-ftth技术交流(技术原理)              
    发表于 09-24 10:56 5次下载
    ftth<b class='flag-5'>技术交流</b>(<b class='flag-5'>技术</b>原理)