ZHCAE42 June   2024 AM6442

 

  1.   1
  2.   摘要
  3.   商标
  4. 1缩写
  5. 2引言
    1. 2.1 外设组件快速互连
      1. 2.1.1 PCIe 通信的元件
        1. 2.1.1.1 根复合体
        2. 2.1.1.2 中继器
        3. 2.1.1.3 端点
      2. 2.1.2 信号
        1. 2.1.2.1 PERST
        2. 2.1.2.2 WAKE 和 CLKREQ
        3. 2.1.2.3 REFCLK
      3. 2.1.3 PCIe 常见用途
      4. 2.1.4 PCIe 聚合吞吐量
    2. 2.2 AM64x 和 AM243x 上的 PCIe 特性
  6. 3x86 作为 RC,AM64x 作为 EP
    1. 3.1 硬件环境
    2. 3.2 软件环境
      1. 3.2.1 构建应用程序
      2. 3.2.2 用法
  7. 4测试设置
    1. 4.1 适用于 LINUX 和 WIN 的通用设置
    2. 4.2 Linux 驱动程序(VFIO)
      1. 4.2.1 先决条件
      2. 4.2.2 构建
      3. 4.2.3 部署
    3. 4.3 测试应用程序使用情况
    4. 4.4 LINUX PC 的设置步骤
      1. 4.4.1 UART 控制台输出
    5. 4.5 MSI 示例
    6. 4.6 Windows PC 的设置步骤
      1. 4.6.1 先决条件
      2. 4.6.2 构建
      3. 4.6.3 部署
  8. 5PCIe 测试规范
    1. 5.1  标识和配置功能
      1. 5.1.1 测试用例
    2. 5.2  基准时钟功能
    3. 5.3  入站 ATU 和 BAR 功能
    4. 5.4  出站 ATU 功能
    5. 5.5  MSI 功能
    6. 5.6  下行中断功能
    7. 5.7  器件电源管理状态功能
    8. 5.8  功能级复位机制
    9. 5.9  传统中断机制
    10. 5.10 MSI-X 功能
    11. 5.11 热复位机制
  9. 6Windows 示例驱动程序验证
  10. 7参考资料

PCIe 聚合吞吐量

PCI Express 互连称为链路,用于连接两个器件。链路由每个方向的 1、2、4、8、12、16 或 32 个信号组成(请注意,系统使用全差分信号,每个信号实际上需要两根导线)。这些信号被称为通道。设计人员根据给定链路上所需的目标性能基准确定要实施的通道数。在命名法中,链路的宽度用一个数字的前面加上 x 显示,其中 x 的发音为 by,因此比如链路在每个方向上有 4 个信号,称为 by four 链路。

AM6442 PCIe Express 链路图 2-3 PCIe Express 链路

表 2-1 展示了各种链路宽度实现的聚合带宽数。从此表中可以明显看出,PCI Express 可实现的峰值带宽明显高于当今大多数现有总线。

考虑一下这些带宽数是如何计算的。目前,每个方向的发送/接收速率为每通道 2.5Gbps。为了在数据传输和接收期间支持更高程度的稳健性,将要发送的每个数据字节都转换为一个 10 位代码(通过发送器器件中的 8b/10b 编码器)。换句话说,每发送一个字节的数据实际上会传输 10 位的编码数据。结果是传输一个数据字节会产生 25% 的开销。PCI Express 实现了双工/单工链路,这表示数据是同时发送和接收的。

聚合带宽假定两个方向同时传输流量。要获得表 2-1 中的聚合带宽数,请将每秒 2.5Gbits 乘以 2(以考虑两个方向),然后乘以通道数,最后除以每字节 10 位(以考虑 8 至 10 位编码),以得到每秒字节数。

表 2-1 PCIe 链路速度
PCIExpress 链路宽度x1x2x4x8x12x16x32
AggregateBand - 宽度 (GB/s)0.51246816