TripTheWorld

PCIe总线何去何从? 实际的需求催生了技术的变革。 PCIe就像是计算机王国里的一场“交通革命”,它替代了PCI成为计算机领域主要的互联总线。那么它的发展趋势如何?让我们一步一步揭开它神秘的面纱。欢迎关注微信公众号“硬件工程师宝典”,获取更多资讯。

PCIe从入门到精通之十二:PCIe设备的配置空间header详解2

0
阅读(364)

0,引言

在上一篇文章《PCIe从入门到精通之十一:PCIe设备的配置空间header详解1》中,我们介绍了PCIe配置空间前0x3F个寄存器(header)以及Type0和Type1的相同部分。在这一篇文章中我们继续介绍PCIe配置空间前0x3F个寄存器Type0和Type1不同的部分。

所有PCIe主题的文章都会收录在《深入浅出聊PCIe》合集里,欢迎评阅。

需要下载PCIe学习资料标准的朋友(pdf格式),请关注本微信公众号“硬件工程师宝典”,在对话框内回复“PCIe”,将获取标准下载链接。

一,温故而知新: PCIe配置空间分类

PCIe架构中的配置空间头部类型PCI header分为Type 0和Type 1,它们的主要区别在于设备在PCIe拓扑中的角色和功能,以及配置空间中包含的寄存器类型。

简单地来说(通俗易懂地说),Type 0 是用于实际执行功能的设备(Endpoint,RCiEP, RCEC),他们相当于公司里边具体干活的一般员工,俗称牛马;而 Type 1 是用于管理、沟通协调和连接这些牛马(设备)的桥梁(PCI-PCI Bridge),他们是公司里的管理层,俗称领导。

 

在PCI兼容的配置空间里,前0h~3Fh存放的是PCI header(device基本信息),后面的40h~FFh存放的是PCIe Capability Structure(device都有哪些本领)。其中,header: 0h~3Fh里,Type0与Type1两者部分相同,有部分不同;Capability Register:40h~FFh里,Type0与Type1两者相同;

在扩展配置空间里(Byte 100h~FFFh),全部存放的是PCIe Extended Parameters and Capability Structure。Capability Register: Byte100h~FFFh里,Type0与Type1两者相同。

PCIe配置空间Type 0和Type 1对比总结如下:

44.png

对应寄存器的offset位置如下图: 

45.png

二,PCI兼容的配置空间里Type0和Type1不同的部分对比

 1.  Type 0 配置空间(Endpoint Device)独有的寄存器

Type 0 配置空间主要关注设备的资源分配、功能描述和中断配置。

46.png

2.  Type 1 配置空间(Bridge Device)独有的寄存器

 

注:上图来源于网络

 Type 1 配置空间主要关注总线拓扑的建立、地址范围的映射和事务的路由。

50.png

这些不同的寄存器体现了Type 0和Type 1设备在PCIe总线层次结构中扮演的截然不同的角色:Type 0设备是功能的执行者,需要配置自己的资源;而Type 1设备是网络的构建者,需要管理其连接的总线段和数据流(如Primary Bus Number,Secondary Bus Number和Subordinate Bus Number这三者就是用来管理下游设备的寄存器。)。

三,抛砖引玉

在这一章中我们介绍了前0x3F个寄存器以及Type0和Type1的和不同部分。

这其中我们介绍了PCIe设备Vender ID, Device ID, Subsystem Vendor ID, Subsystem ID,那么从这四个具体含义是什么?它们有什么区别?它们有什么用途?

敬请关注下一篇:PCIe从入门到精通之十三:PCIe设备Vender ID, Device ID, Subsystem Vendor ID, Subsystem ID的区别

四,参考文献:

需要以下参考文献(PCIe标准)的朋友,请关注本微信公众号“硬件工程师宝典”,在对话框内回复“PCIe”,将获取标准下载链接。

15_baidu_file.png

百度网盘分享的文件