您的位置:首页 > 健康 > 美食 > 建设通是什么网站_鄂州手机网站设计_免费培训网站_电商项目策划书

建设通是什么网站_鄂州手机网站设计_免费培训网站_电商项目策划书

2024/10/6 1:37:26 来源:https://blog.csdn.net/qq_42711537/article/details/142346606  浏览:    关键词:建设通是什么网站_鄂州手机网站设计_免费培训网站_电商项目策划书
建设通是什么网站_鄂州手机网站设计_免费培训网站_电商项目策划书

MindShare 官网,地址如下:
MindShare

Chapter 1:PCIE 背景介绍 - PCI 总线模型

1. 以 PCI 总线作为外设总线的 SOC 芯片架构

下图展示了一个以 PCI 总线作为外设总线的 SOC 芯片架构(PCI 总线类似 AXI 下的 AHB?):
在这里插入图片描述

由上图可知:PCI 作为芯片内部的外设总线,那么处理器内核的地址指令与数据指令(寄存器读写)可以方便的转换为 PCI 总线数据,与各外设 IP 核进行通信

进一步扩展:芯片外部的 pci 总线上的外设,也可以通过地址指令和数据指令(寄存器读写)访问

North Bridge: 北桥,连接处理器与外设总线(类似 AXI?龙芯的处理器上似乎也有)。

South Bridge: 南桥,连接 PCI 与系统外设(类似 APB?)。

2. functions 与 PCI device

每一个 pci 设备最多包含 8 个 functions, 每一个功能都有一个编号:[0:7].

3. PCI device 与 PCI bus

PCI 总线最多可挂载 32 个设备,由于电气特性,实际只会更少。 33MHz 频率时,最多能挂载 10-12 个设备.

4. PCI 总线与 PCI 架构

一个 PCI 架构最多允许挂载 256 条 PCI 总线

5. PCI 地址空间映射

PCI 架构支持 3 种地址空间:

  1. mem 空间:包含 32/64 位 mem;
  2. I/O 空间:外设寄存器区域?
  3. configuration: 配置空间

PCI 设备的每一个 function 都需要 256 字节的配置空间。

那么在任一 PCI 架构中,最多需要 256 * 8(功能)* 32(设备) * 256(总线) = 16MB 配置空间。

因为每一个 PCI 架构最多支持 256 条 PCI 总线,每条总线最多支持 32 个设备,每个设备最多支持 8 个 functions, 每个 function 需要 256 字节配置空间。

6. PCI function 配置空间 header。

每一个 function 需要 256 字节配置空间,配置空间的前 64 字节包含一个称为 Header 的标准结构。剩余的 192 字节支持可选的功能。

存在两种类型的 Header:

  1. bridge 类 Header;
  2. device 类 Header;

7. bridge 类 Header(Type 1 Header)

位域 Header Type = 1, 表示 bridge 类 Header.
在这里插入图片描述

8. device 类 Header(Type 0 Header)

位域 Header Type = 0, 表示device 类 Header.

9. pci 驱动首先需要做的事就是查找 function 的 Header,并判断 Header 类。

这一步称做枚举。(通过访问配置空间完成.)

在这里插入图片描述

10. PCI-X 与 PCI 只有硬件上的区别

PCI-x 频率更高,带宽更大。

Chapter 2: PCIe 架构概述

1. PCIE 是由 PCI 并行总线发展而来的串行总线

pcie 是使用差分线传输的串行全双工总线。

2. PCIE 驱动与 PCI 驱动完全兼容

因为 PCIE 使用与 PCI 一样的配置 Header,所以可以保证软件的兼容性。

在这里插入图片描述

3. PCIE 运行在更高的频率下

与 PCI 不同,由于不需要考虑高频并行总线下的信令偏移问题,PCIE 总线可以运行在更高的时钟频率下。

PCIE 1.0 运行在 2.5GT/s 频率下。

PCIE 2.0 运行在 5 GT/s 频率下;

PCIE 3.0 运行在 8 GT/s 频率下;

PCIe 1.0/2.0 使用 8b/10b 编码。

PCIe 3.0 使用 128b/130b 编码。

PCIE 链路带宽如下图:
在这里插入图片描述

不同版本 PCIE 带宽计算方法如下:

PCIE 1.0 Bandwidth = (2.5Gb/s * 2) / 10 bits per symbol = 0.5GB/s

PCIE 2.0 Bandwidth = (5Gb/s * 2) / 10 bits per symbol = 1.0GB/s

PCIE 3.0 Bandwidth = (8Gb/s * 2) / 8 bits per symbol = 2.0GB/s

4. PCIE 不需要公共时钟

PCIE 使用源同步模型,也就是由数据发送方提供时钟给接收方,发送方会将时钟信号编码进差分数据中,接收方通过 PLL 对比、锁频来确定时钟.

5. PCIE 使用基于包的数据传输协议

物理底层使用数据包的形式进行数据交换

6. PCIE 链路可以使用多个 lane

两个 PCIE 设备之间的链路, 称为 link. link 可以会使用多个通道, 称为 lane.

比如 pcie x1, x2, x4, x8, x16, x32

7. PCIE link 必须是点对点的连接

PCIE 需要使用 switch/bridge 来建立更灵活的树形拓扑结构

那么两个 PCIE 设备之间的每一个点对点的连接, 单独占用一条总线?

8. CPU 使用 Root Complex 与外部 PCIE 设备或总线连接

CPU 与 PCIE 总线之间也许包含几个额外的组件(处理器接口, DRAM 接口或其他芯片), 这些额外组件统称为 Root Complex.

Root Complex 代表 CPU 与 PCIE 树形拓扑结构中的剩余设备通信.

Root Complex 内部存在一个 Host-PCI Bridge 作为 PCIE 0 号虚拟总线, 并存在额外的 PCIE bridges 用于创建新的总线.

在这里插入图片描述

9. Switch 与 Bridge

Switch 和 Bridge 感觉没啥区别. 都可以拓展 PCIE 总线,与 Root Complex 一样,switch 内部也存在一条虚拟总线,以及多个 pcie bridge,用于创建新的总线或下挂设备。.

switch 图解如下(与 Root Complex 差不多):

在这里插入图片描述

10. End point 即是 PCIE 设备

11. PCIE 设备是层级设备

设备分层架构如下:

在这里插入图片描述

从上至下的 layerlayer 描述
Device Core/ PCIe Core软件层, PCIE 设备功能的核心实现, 如果 PCIE 设备由 8 个 functions, 那么每个 functions 都有自己的配置空间, 用于实现设备功能.
Transaction Layer传输层, 负责 TLP 数据包的生成并发送, 接收并解析, 同时实现流控/QOS
Data Link Layer数据链路层, 负责 DLLP 生成并发送/接收并解析, 同时负责错误检测与纠正, 应答.
Paysical Layer物理层, 使用差分信号线实现面向数据包的传输.

物理层发送的数据包概念图如下:

在这里插入图片描述

12. Device Core/ Software Layer

用于实现具体的设备功能,不在 PCIE 规范中定义。

13. Transaction Layer

响应软件层的请求,传输层生成待发送的数据包,也会解析输入的数据包,并上传给软件层;

传输层使用 TLP 进行数据处理,每一个 TLP 属于下列帧类型之一:

  1. Memory
  2. I/O
  3. Configuration
  4. Message

14. Data Link Layer

数据链路层负责链路管理,并完成如下三个功能:

  1. TLP 错误检测;
  2. 流控;
  3. 链路功耗管理;

15. Paysical Layer

物理层是使用数据包的数据交换协议.

16. 一个实例,用于读取 PCIE 设备 memory

首先, 发送方发送 memory read request 给接受方, 图解如下:

在这里插入图片描述

request 发送方:

  1. 软件层将读取的内存地址发送给传输层, 传输层打包为传输层数据包 TLP, 并传递给 DLL
  2. 数据链路层将 TLP 打包为 DLLP, 然后传输给 Physical Layer
  3. 物理层添加自己的包头与包围, 通过差分线路,将数据发送到对端.

request 接收方:

以相反的顺序对数据包进行解析.

之后, 接收方发送 memory read Completion with Data 给发送方, 图解如下:

在这里插入图片描述

数据封包与拆包过程与 request 过程差不多, 不赘述.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com