PCIe协议学习笔记

0

PCIe的官网是: www.pci-sig.com

1 introduction

Tx和Rx都是由一对差分信号组成的。
Lane : 1个Tx加1个Rx组成1 Lane。
Link : 两个组建之间的连接叫做Link,可能包含1 Lane或者多个Lane。
Link支持的Lane数量有 : x1, x2, x4, x8, x16, x32

拓扑结构: 以RC为中心。 RC可以与EP连接,可以与Switch连接,还可以连接Bridge。

RC的作用:
configuration请求总是从RC发起。

EP的作用:

  1. 响应配置请求。
  2. 响应IO请求。
  3. 响应Memory请求。
  4. 发起Memory请求。

根据行为要求的不同,EP分三类:

  • Legacy EP
  • PCIe EP
  • RC Integrated EP

Switch
Switch类似于多个Bridge的结合体。

两种配置模式:

  1. PCI compitable
  2. PCI express enhanced

协议分层:
PCIe协议分为三层
* Transaction Layer
* Data Link Layer
* Physical Layer
Physical层又分为:
* Logical sub-block
* Electrical sub-block

最上层是Transaction Layer。 Transaction Layer使用的数据结构是TLP(Transaction Layer Packet)。 Transaction Layer的主要职责就是组装和拆解TLP。
TLP支持4种地址类型的请求:

  • Configuration
  • I/O
  • Memory
  • Message
    Transaction Layer支持4种地址空间,对应地,也是:
  • Memory
  • I/O
  • Configuration
  • Message

中间层是Data Link Layer。
Data Link Layer使用的数据结构是DLLP (Data LInk Layer Packet)。

2 transaction layer

Transaction Layer的作用

  1. 处理TLP
  2. Flow Control
  3. Virtual Channel管理

Transaction Layer使用4种Address spaces:

  1. memory
  2. IO
  3. configuration
  4. Message
    前面3种都分别包括read和write。 Message类型的请求不区分read、write。

在读协议过程中有requester、completer两个感念,分别表示一个请求的发起者和响应者。

TLP的组成有以下几个部分,依次为:

  • TLP prefixes
  • TLP header
  • TLP payload
  • TLP digest

其中TLP prefixes是可选的。实际上,特殊的场景才需要TLP prefix。

TLP Header的第一个字节包含Type和Format。 Type占0~4 bit, Format占5~7 bit 。
因Type和Format的不同,TLP Header后面的内容也不尽相同。

TD : Transaction Descripter
TD实际是TLP Header中的4~7字节。包含三部分内容:
* Transaction ID
* Attrributes
* Traffic Class
其中Transaction ID又由Requester ID和Tag组成。

Memory、I/O、Configuration 传输有相似之处。
他们的TD都包含Requester ID、Tag、Last DW BE、1st DW BE。
TLP Header中TD的后面是Address。

Mesage与前面几种传输不同,它的TLP Header中的TD中不包含Last DW BE、1st DW BE,而是包含了Message Code。另外Message 的TLP Header中不包含Address。
根据Messages Code不同,有如下几种Message:
* INTx interrupt signalling(A, B, C, D)
* Power Management
* Error Signalling
* Locked Transation
* Slot Power Limit Support
* Vendor-defined Messages (VDM)
* LTR Messages (Latency Tolerance Reporttings)
* OBFF Messages (optimized buffer flush/fill)
* DRS Messages
* FRS Messages
* PTM Messages (precison time messurement)

TLP Prefixes:
有2种:

  • Local —— 与MR-IOV有关
  • End to End

关于Vritual channel:
* VC: Virtual Channel
* TC: Traffic Class
TC就是TD中的那个Traffic Class。 TLP中会根据TC的不同而进行不同的处理,具体怎么处理还不太清楚。
不同的TC有不同的优先级, TC0的优先级最高。TC1~7优先级按照Weighted Round-Robin进行仲裁。
VC会映射到TC上,VC0会固定映射到TC0上, VC1~7与TC的映射是软件配置的。
不同的VC有独立的资源,包括队列、buffer、控制逻辑等。

3 Data Link Layer

Data Link Control
* DL_Inactive
* DL_Init
* DL_Active
* DL_Down
* DL_Up

DLLP:
* Data Link Layer Packets
* ACK
* NAK
* InitFC1, InitFC2, UpdataFC

4 Physical Layer

2.5GT/s – 8b/10b encoding
8GT/s – 128/130b encoding

LTSSM (Link Training and Status State Machine):
* Detect
* Polling
* Configuration
* Recovery
* L0
* L0s
* L1
* L2
* Disable
* Loopback
* Hot Reset

5 Power Management

低功耗状态有如下几种。

  • L0
  • L0s
  • L1
    • L1.1
    • L1.2
  • L2
  • L3
    其中L3是需要软件处理的,其余都完全由硬件处理。
    在PCIe协议的4.2.6节有一个状态机图。

PME: Power Management Event
这是一种Message,是Message类型的TLP, 用于协商功耗管理。

ASPM: Active State Power Management

前面L0 ~ L3是指Link状态, 设备有自己的状态。
Device power management states:
D0, D1, D2, D3

6 System Architecture

待补充。

7 System

PCIe支持2种配置机制:

  • CAM: Configuration Access Mechanism
  • ECAM: Enhanced Configuration Access Mechanism

PCIe的配置空间4096字节。 其中0~255字节是PCI Configuration Space。 0x100 ~ 0xFFF是PCIe Configuration Space。

不同的设备地址空间不同, RC、EP分别有自己的配置空间。当然不同类型的设备的配置空间中的内容也不相同。
RC的配置空间叫做RCRB。

配置空间的地址是用bus number、device number、Function number组合出来的。

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIE-DMA是一种基于PCIe接口的直接内存访问技术,能够实现高速数据传输。在我的学习笔记中,我详细记录了与PCIE-DMA相关的知识和学习心得。 首先,我了解到PCIE-DMA技术的基本原理和作用。PCIE-DMA可以通过PCIe总线直接访问系统内存中的数据,而不需要过多的CPU干预,提高数据传输的速度和效率。这种技术在需要大量数据传输的场景下非常有效,比如高性能计算、数据采集等。 其次,我深入学习PCIE-DMA的工作原理。PCIE-DMA的核心是DMA控制器,它负责管理和控制数据传输的流程。当设备需要读写内存中的数据时,它通过DMA控制器发送请求,然后DMA控制器生成一个事务,将数据直接传输到或从内存中。这样就大大减少了CPU的参与,提高了数据传输的效率。 另外,我还学习PCIE-DMA的配置和编程方法。PCIE-DMA的配置主要包括硬件配置和软件配置两个部分。硬件配置通常涉及到DMA控制器和PCIe接口的初始化和配置,软件配置则需要编写驱动程序来驱动DMA控制器和处理数据传输过程中的事件和异常。这部分内容对于我来说还比较新颖,需要更多的实践和实践。 最后,我总结了PCIE-DMA的应用场景和发展前景。PCIE-DMA在高性能计算、数据采集等领域具有广阔的应用前景。随着数据量的不断增加和传输速度的要求越来越高,PCIE-DMA技术的需求也将越来越大。因此,对于我来说,学习掌握PCIE-DMA技术非常有价值。 通过学习和记录PCIE-DMA的相关知识和经验,我对这项技术有了更深入的理解和掌握。希望将来能通过应用PCIE-DMA技术解决实际问题,为科研和工程项目的顺利进行做出贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值