PCIe学习笔记(10)

Memory、I/O和Configuration请求规则

  以下规则适用于所有内存请求、I/O请求和配置请求。接下来是针对每种请求类型的附加规则。

•除了常见的报头字段,所有的内存,I/O和配置请求包括以下字段:

◦Requester ID[15:0] 和 Tag[9:0],形成Transaction ID

Last DW BE[3:0]和First DW BE[3:0]。对于 TH 位为1的 Memory Read Requests 和 AtomicOp Requests,报头中Last DW BE[3:0] 和 First DW BE[3:0] 字段的字节位置将被调整为 ST[7:0] 字段。对于 TH 位为1的 AtomicOp Requests,DW BE 字段的值隐含为保留。对于 TH 位为0的 AtomicOp Requests,DW BE 字段为保留。

对于Memory请求

请遵循以下原则:

•Memory Requests按地址路由,支持64位或32位寻址

•对于Memory Read Requests,长度不能超过Max_Read_Request_Size指定的值

对于AtomicOp请求,体系结构的操作数大小及其相关的Length字段值在下表

FetchAdd请求包含一个操作数,即“add”值

Swap交换请求包含一个操作数,即“swap”值。

CAS请求包含两个操作数。数据区的第一个是“compare”值,第二个是“swap”值。

•对于AtomicOp请求,地址必须与操作数的大小自然对齐。Completer必须检查是否违反此规则。如果TLP违反此规则,则该TLP为畸形TLP。这是一个与接收端口相关的报告错误。

•请求不能指定导致内存空间访问超过4 kb边界的地址/长度组合。

◦接收方可以选择检查是否违反此规则。如果执行此检查的接收器确定某个TLP违反了此规则,则该TLP为畸形TLP。

▪如果选中,这是一个与接收端口相关的报告错误(见6.2节)。

◦对于AtomicOp请求,强制Completer检查地址的自然对齐(见上文)已经保证访问不会跨越4-KB边界,所以一个单独的4-KB边界检查是没有必要的。

◦如果对AtomicOp CAS请求执行4-KB边界检查,该检查必须理解TLP长度值是基于两个操作数的大小,而对内存空间的访问是基于一个操作数的大小。

对于I/O请求

请遵循以下规则:

•I/O请求按地址路由,使用32寻址(如图所示)

•I/O请求有以下限制:

TC[2:0]必须为000b;

I/O请求不适用LN且位为Reserved;

I/O请求不适用TH且位为Reserved;

Attr[2]为Reserved;

Attr[1:0]必须为00b,不要求或不鼓励接收方检查此选项

Length[9:0]必须为00 0000 0001b

Last DW BE[3:0]必须为0000b

接收方可以选择检查是否违反这些规则(但不能检查保留位)。这些检查是独立可选

对于Configuration请求

以下规则适用:

•配置通过ID请求路由,并使用3DW报头。

•除了所有内存请求、I/O请求和配置请求的报头字段和ID路由字段外,配置请求还包含以下附加字段(如图2-20所示)。

Register Number[5:0]

Extended Register Number[3:0]

•配置请求有以下限制:

TC[2:0]必须为000b

LN不适用于Configuration Requests且比特为Reserved

TH不适用于Configuration Requests且比特为Reserved

Attr[2]为Reserved

Attr[1:0]必须为00b

AT[1:0]必须为00b不要求或不鼓励接收方检查此选项。

Length[9:0]必须为00 0000 0001b

Last DW BE[3:0]必须为0000b

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

余额充值