一、故事前传

之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transaction layer), 数据链路层(Data link layer)和物理层(Physical layer)。

较为详细解释请见之前的文章:

1. PCIe技术概述;

2.0 PCIe Transaction layer事务层概述;

2.1~2.3 TLP结构及原理解析;

2.4 Flow control机制概述;

二、Flow Control缓存架构

在上一篇文章中,我们提到PCIe总线的flow control(流量控制)是由事务层和数据链路层协调完成。发送端先以TLP的方式把数据发送至数据链路层,达到数据缓存之后会被分解为两个部分:Header和Data。

在PCIe总线中,VC buffer总共由六个部分组成:

  1. PH(Posted Request Header):存放Memory Writes和Messages请求的TLP header;

  2. PD(Posted Request Data):存放Memory Writes和Messages请求的TLP Data;

  3. NPH(Non-Posted Request Header):存放Non-Posted请求的TLP header;

  4. NPD(Non-Posted Request Data):存放Non-Posted请求的TLP Data;

  5. CPLH(Completion Header):存放Read/Wirte Completions请求的TLP header;

  6. CPLD(Completion Data):存放Read/Wirte Completions请求的TLP Data;

注:有关TLP的结构与种类详见之前的文章。

所以,在发送TLP之前,发送端要确保接收端的Header buffer和Data buffer均有足够的空间接收数据。

三、Flow Control信用积分

通过阅读上一篇名为"Flow control机制概述"的文章,相信大家应该大概了解了Flow control信用机制的含义。PCIe协议中将接收端VC buffer的可用空间划分了很多单元,最小单元称为Flow control信用积分。

PCIe总线对Header和Data的信用积分单元大小的定义是不一样的:

  1. Header (for Competitions) Credit Unit: 4DWs;

  2. Header (for Requestions) Credit Unit: 5DWs;

  3. Data (for Requestions) Credit Unit: 4DWs;

PCIe系列专题之二:2.5 Flow Control缓存架构及信用积分相关推荐

  1. PCIe系列专题之二:2.8 事务排序机制

    一.故事前传 之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transacti ...

  2. PCIe系列专题之二:2.3 TLP结构解析

    一.故事前传 之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transacti ...

  3. PCIe系列专题之二:2.1 TLP的前世今生

    一.故事前传 之前我们讲了对PCIe的一些基础概念作了一个宏观的介绍,了解了PCIe是一种封装分层协议(packet-based layered protocol),主要包括事务层(Transacti ...

  4. NVMe系列专题之二:队列(Queue)管理

    转载链接:https://mp.weixin.qq.com/s?__biz=MzIwNTUxNDgwNg==&mid=2247484355&idx=1&sn=04f0617bf ...

  5. Microsoft .Net Remoting系列专题之二:Marshal、Disconnect与生命周期以及跟踪服务

    Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...

  6. Microsoft .Net Remoting系列专题之二

    Microsoft .Net Remoting系列专题之二 一.远程对象的激活 在Remoting中有三种激活方式,一般的实现是通过RemotingServices类的静态方法来完成.工作过程事实上是 ...

  7. PCIe系列专题之五:PCIe总线电源管理

    PCIe总线的电源管理包括两方面的内容: 一是基于软件控制的PCI-PM电源管理机制,这部分与PCI总线兼容: 二是基于硬件控制的ASPM电源管理机制, 不需要Host端软件口控制,PCIe链路自主管 ...

  8. SATA系列专题之二: 2.2 Link layer链路层加扰/解扰/CRC解析

    一.故事前传 我们之前说到Link layer的结构,link layer的作用大致可以包括以下几点: Frame flow control CRC的生成与检测 对数据与控制字符的Scrmable/D ...

  9. [C# 网络编程系列]专题十二:实现一个简单的FTP服务器

    引言: 休息一个国庆节后好久没有更新文章了,主要是刚开始休息完心态还没有调整过来的, 现在差不多进入状态了, 所以继续和大家分享下网络编程的知识,在本专题中将和大家分享如何自己实现一个简单的FTP服务 ...

最新文章

  1. leetcode-455 分发饼干
  2. xcode 的一些问题
  3. osfmount 命令加载虚拟光驱_OSFMount挂载虚拟磁盘工具下载
  4. 理解java并发工具Phaser
  5. springboot使用shiro配置多个过滤器和session同步案例
  6. 2021年四季度企业薪酬报告发布 38个核心城市平均薪酬首次超万
  7. perl语言编程 第四版_被称作“胶水语言”的PERL,在芯片设计和验证中可以这样使用...
  8. PHP开发从入门到实战教程分享
  9. Live555本地保存H264/PCM视频音频帧附加SPS/PPS
  10. 使用bat脚本运行python脚本,bat出现闪退,怎么解决?
  11. 民非企业盈利怎么处理_民办非企业可以盈利吗
  12. 中科院院士!南京大学,迎来新校长
  13. LOL中那些不可错过的精彩对局!!!
  14. 框架流程图绘制工具OmniGraffle 7 for Mac
  15. 网易内推(Android) 拿offer
  16. 微信小程序 —— 倒计时(展示时钟)
  17. AIX中 |SMIT/SMITTY| 的使用
  18. 程序员.恋曲.人生(3)
  19. 解决:java.lang.IllegalStateException: Failed to load property source from ‘file:~application.yml
  20. 迪赛智慧数——文字(文本墙):80后儿童时期风靡的25种玩具

热门文章

  1. 深度学习模型试跑(十一):PaddleOCR(c++,vs2019)
  2. 数据库——关系模型之关系演算(元组演算与域演算)
  3. Python实现图像的手绘效果
  4. 老外常用的网络英文缩写
  5. 多次 ifconfig down 无效的问题
  6. 判断一个数是不是2的N次方 自己写的土算法
  7. 精美viso制图(1)
  8. 擎创告警的智能聚类、压缩及降噪
  9. HMS Core 5,activity事件分发
  10. JVM面试专题(上)