0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

PCIE知识点:谈谈bus master en等

ruikundianzi 来源:IP与SoC设计 2023-05-15 14:24 次阅读

PCIE Zero-Length read

1、Zero-Length Write

PCIe协议提出了zero-length的读写操作,并且做了如下说明

Zero-Length Write的含义

A Memory Write Request of 1 DW with no bytes enabled, 即Memory Write 类型tlp中只有1DW的data,且length字段为1,并且tlp header中的First DW BE[3:0] 和Last DW BE[3:0]均为0。

A Memory Write Request of 1 DW with “zero-length Write,”

Zero-Length Write的作用

Zero-Length Write has no effect at the Completer unless otherwise specified. 正常情况下Zero-Length Write不会对完成者造成任何影响,除非特别指定。例如:正常情况下,一颗芯片中的PCIe作为endpoint,收到Zero-Length Write时,此Zero-Length Write不会改写当前tlp中addr对应的寄存器(or RAM)的数值,也不会产生对应地址的写脉冲,更不会应该此写操作造成芯片功能的变化

A Memory Write 通常在特定的协议中去使用,已达到额外的效果,例如LN protocol.(没深入看)

2、Zero-Length Read

PCIe协议提出了zero-length的读操作,并且做了如下说明

Zero-Length Read的含义

A Memory Read Request of 1 DW with no bytes enabled。即Memory Read 类型tlp中且length字段为1,并且tlp header中的First DW BE[3:0] 和Last DW BE[3:0]均为0。

Zero-Length Write的作用

协议原文描述如下:

Zero-Length Read may be used by devices as a type of flush Request. For a Requester, the flush semantic allows a device to ensure that previously issued Posted Writes have been completed at their PCI Express destination. To be effective in all cases, the address for the zero-length Read must target the same device as the Posted Writes that are being flushed. One recommended approach is using the same address as one of the Posted Writes being flushed.

即:

Zero-Length Read 通常作为一种刷新操作,用于确保之前发起的Posted Writes已经被completer完成了。假设master在T0时刻已经发起mem_write(addrA),T1时刻发起zero_mem_rd(addA),T3时刻master收到对应的cpld。此时在T3时刻,master就知道了mem_write(addrA)已经被slave正确执行了。

对Zero-Length Write的要求:

If a Read Request of 1 DW specifies that no bytes are enabled to be read (First DW BE[3:0] field = 0000b), the corresponding Completion must specify a Length of 1 DW, and include a data payload of 1 DW.The contents of the data payload within the Completion packet is unspecified and may be any value。即对应cpl的长度必须指定为1DW,且必须包含1DW的data payload,并且data的数值没有要求,可以是任意值。

3、Zero-Length Read相对于正常读操作有什么优势呢?

假设目标地址的读写操作均会触发芯片内部不同功能的启动,而Zero-Length Read实际不要求真正去执行一次memory read操作。同样都能确保之前Posted Writes已经被执行,但是真实的读操作可能会改变芯片功能状态,而Zero-Length Read不会,因此Zero-Length Read更有优势。

谈谈bus master en

Bus master en信号

Type0的function:控制function发起Memory and I/O Read/Write Requests

1.Bus Master Enable为0,不允许function发起Memory and I/O Read/Write Requests

2.PF的Bus Master Enable 位于PF配置空间的Command Register的bit2,仅仅控制PF自身的请求,不会控制所属VF的请求

3.VF的Bus Master Enable,位于VF配置空间的Command Register的bit2,仅仅控制VF自身的请求

Type1的function:控制function向Upstream方向转发Memory and I/O Read/Write Requests

1.Switch upstream port的Bus Master Enable为0,

(1)会将downstream side收到的Memory and I/O Read/Write Requests当做UR处理

(2)Switch upstream port自身不允许向upstream 方向发出Memory and I/O Read/Write Requests

ECRC 与 credit 信用量

1、ECRC 是不算在信用量范围内的

从PCIe协议上可以看出,信用量仅仅包含三类:CPL credit/Post credit/non-post credit,其中每种包含data credit和header credit。

ECRC 是额外添加的校验字段,在TLP内是1DW,即4byte,不属于data payload,也不属于header字段。因此ECRC不在信用量的考量范围内。

2、Buffer size的注意事项

支持ECRC check功能的PCIE 在设计rx buffer时,需要考虑到当所有收到的TLP都带ECRC字段时,buffer是否会溢出。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409128
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117721
  • PCIe
    +关注

    关注

    13

    文章

    1083

    浏览量

    80843

原文标题:PCIE知识点:谈谈bus master en等

文章出处:【微信号:IP与SoC设计,微信公众号:IP与SoC设计】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    运放知识点

    `运放知识点`
    发表于 08-20 20:58

    嵌入式C/单片机C/标准C知识点

    :嵌入式C、标准C、单片机C区别  知识点2:程序组成和程序原则  知识点3:变量类型(函数、数组、指针、结构体类型)  知识点4:常用的运算符和关系表达式,例如: | || ^ ~
    发表于 10-24 14:42

    工程师总结了一些C语言的知识点

    类型(函数、数组、指针、结构体类型)知识点4:常用的运算符和关系表达式,例如:|||^~知识点5: 9条基本语句和32个关键字知识点6:
    发表于 07-25 10:23

    【信盈达】C语言知识点的总结

    一、嵌入式C/单片机C/标准C知识点知识点1:嵌入式C、标准C、单片机C区别知识点2:程序组成和程序原则知识点3:变量类型(函数、数组、指针、结构体类型)
    发表于 10-08 14:41

    使用PADS软件进行PCB设计,有哪些基础知识点

    使用PADS软件进行PCB设计,有哪些基础知识点?发现知识点很多、很杂、很乱,有没有聚合归纳统一的内容给到
    发表于 08-20 12:07

    关于前端有哪些知识点

    前端知识点总结
    发表于 07-08 15:37

    电机与电气控制基础的知识点

    电机就是我们平时俗称的“马达”,电机是依据电磁感应定律实现电能转换或传递的一种电磁装置。电机的主要作用是产生驱动转矩,作为用电器或各种机械的动力源。而电机与电气控制技术的一些基础的知识点是不论是在学习还是工作中都是需要牢记的。今天分享的就是关于电机与电气控制基础的一些基本的知识点
    发表于 01-22 06:54

    FPGA的基础知识点及工作原理是什么

    FPGA的基础知识点及工作原理是什么
    发表于 04-30 06:14

    电机与拖动知识点及其试题

    电机与拖动知识点分析一、基本知识与基础知识知识点常考题目二、直流电机一、基本知识与基础知识
    发表于 06-29 07:10

    STM32外部中断的知识点

    STM32_外部中断,从程序入手,深度解读每条程序,理解知识点
    发表于 08-13 08:57

    STM32外部中断知识点概述

    STM32外部中断概述知识点(1)知识点(2)知识点(3)中断服务函数外部中断常用库函数外部中断的一般配置步骤知识点(1)STM32的每个IO都可以作为外部中断输入。STM32的中断控
    发表于 08-16 07:43

    关于AUTOSAR架构的知识点看完你就懂了

    关于AUTOSAR架构的知识点看完你就懂了
    发表于 10-18 07:41

    GDB的知识点汇总,绝对实用

    GDB的知识点汇总,绝对实用
    发表于 12-24 06:01

    DBC编辑的知识点汇总,绝对实用

    DBC编辑的知识点汇总,绝对实用
    发表于 02-09 08:02

    SPI协议的知识点大合集,绝对实用

    SPI协议的知识点大合集,绝对实用
    发表于 02-17 07:31