PCIe学习笔记(2)

今天很忙,但既然开始了,或多或少得写点。

该图为PCIe层次结构示意图。

事务层

    事务层的主要职责是tlp的组装和拆卸。tlp用于通信事务,例如读写,以及某些类型的事件。事务层还负责管理tlp的基于信用的流量控制

    每个需要响应包的请求包都被实现为拆分事务。每个数据包都有一个唯一的标识符,使响应数据包能够定向到正确的发起者。数据包格式根据事务的类型(内存、I/O、配置和消息)支持不同形式的寻址(地址路由、IO路由以及隐式路由)。数据包也可能具有诸如No Snoop、relax Ordering和基于id的排序(IDO)等属性。

    事务层支持四个地址空间:它包括三个PCI地址空间(内存、I/O和配置),并增加了消息空间。使用消息空间来支持所有先前的边带信号,如中断、电源管理请求等。

    事务层还负责支持软件和硬件启动的电源管理。

事务层的数据包生成和处理服务要求:

•从设备核心请求生成TLP

•将接收到的请求TLP转换为设备核心的请求

•将接收到的完成数据包转换为可交付给核心的有效载荷或状态信息

检测不支持的TLP并调用适当的机制来处理它们

•如果支持端到端数据完整性,则生成端到端数据完整性CRC并相应地更新TLP报头

事务层包括以下内容:(主要工作

TLP构建和处理

•事务级机制与设备资源的关联,包括:

流量控制

虚通道管理

  •TLPs的排序和管理规则

◦PCI/PCI- x兼容排序

◦包括流量类区分

该图为TLP的数据构成以及分别在事务层、数据链路层以及物理层的添加部分。

注意:TLP在事务层生成后,不管是在数据链路层添加Sequence Number和LCRC字段,还是在物理层添加字段,都不会将其改变为其他数据,仍为TLP,只是TLP在不同层次的表现形式。以数据链路层为例,需要区分在该层的TLP数据和DLLP数据。

数据链路层

数据链路层的主要职责为链路管理和数据完整性,包括错误检测和纠错

数据链路层的传输端接收事务层组装的TLP,计算并应用数据保护码和TLP序列号(Seq Num、LCRC),提交给物理层进行链路传输。

接收数据链路层负责检查接收到的tlp的完整性,并将其提交给事务层进行进一步处理。当检测到TLP错误时,该层负责请求重传TLP,直到信息被正确接收,或者链路被确定为故障。

数据链路层还生成和发送用于链路管理功能的数据包,即数据链路层包(DLLP)。

  • 初始化和电源管理服务:

接受来自事务层的电源状态请求并传递给物理层

将启动/复位/断开/电源管理状态传递给事务层

  •  数据保护、错误检查和重试服务:

CRC生成

•TLP存储用于数据链路级重试

错误检查

•TLP确认和重试消息

•错误指示 用于错误报告和日志记录

物理层

物理层包括接口操作的所有电路,包括驱动器和输入缓冲器、串并转换、锁相环和阻抗匹配电路。它还包括与接口初始化和维护相关的逻辑功能。物理层以特定于实现的格式与数据链路层交换信息。该层负责将从数据链路层接收到的信息转换成适当的序列化格式,并以与连接到链路另一端的设备兼容的频率和宽度在PCI快速链路上传输。(PLP)

PCI Express架构通过速度升级和高级编码技术来支持未来的性能增强。未来的速度、编码技术或媒体可能只会影响物理层的定义

  • 接口初始化、维护控制和状态跟踪:

复位/热插拔控制/状态

互连电源管理

宽度和Lane映射协商

Lane极性反转

  • 符号和特殊有序集生成:

8b/10b编码/解码

嵌入式时钟调谐和校准

  • 符号传输和对齐:

发送电路

接收电路

•接收侧弹性缓冲

•接收侧多车道倾斜(Multi-Lane de-skew (宽度> x1)

可测试性系统设计(DFT)支持特性:

地址空间、事务类型(待补充)

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值