当前位置: 首页 > news >正文

PCIE的吞吐量如何计算和记忆诀窍?

简介: PCIe标准中的性能参数有好几个,比如设备的带宽和吞吐量是多少?传输速率?

百度百科上,PCIE标准的传输速率与带宽对应表如下(表中速率为单向速率)。网上有些数据是双向的,性能数据就翻倍了。
PCIE 标准概览表

记忆PCIE吞吐量有诀窍

PCIE总线版本为n, 那么 PCIE x8的吞吐量=2的n次方 。 PCIE 3.0 带宽为2^3=8 GB/s ,和表格中7.877大差不差。
其他在x8的吞吐量倍数上折算即可。

详细说明

  1. Width(带宽):通常用x1、x2、x4、x8等表示,表示该链路由几条lane组成。
  2. Speed(速率):通常用2.5GT/s、5GT/s、8GT/s,表示每条lane上的传输速率。PCIe1.0为2.5GT/s,PCIe2.0为5GT/s,PCIe3.0为8GT/s,
  3. GT/s :Giga transation per second (千兆传输/秒),即每一秒内传输的次数。重点在于描述物理层通信协议的速率属性,可以不和链路宽度等关联。
  4. Gbps :Giga Bits Per Second (千兆位/秒)。GT/s 与Gbps 之间其实不是相等的,但可以认为近似相等。近似的原因是编码算法造成的,有极少的码元bit用于存放纠错码了。

PCIe 链路吞吐量计算方法:

  • 吞吐量 = 速率 * 带宽 * 2方向(全双工) * 编码方式

1)PCI-e2.0 协议支持 5.0 GT/s,即每一条Lane 上支持每秒钟内传输 5G个bit;但这并不意味着 PCIe 2.0协议的每一条Lane支持 5Gbps 的速率。因为PCIe 2.0 的物理层协议中使用的是 8b/10b 的编码方式。 即每传输8个bit,需要发送10个bit;这多出的2个bit是纠错码,并不是对上层有实际意义的。

  • 以PCIe 2.0 x8的通道为例,吞吐量=5GT * 8 * 8/10 = 32 Gbps = 4GB/s。

2)PCI-e3.0 协议支持 8.0 GT/s, 即每一条Lane 上支持每秒钟内传输 8G个bit。而PCIe 3.0 的物理层协议中使用的是 128b/130b 的编码方案。 即每传输128个bit,需要发送130个bit。

  • 以PCIe 3.0 x4的通道为例,该链路的吞吐量= 8GT * 4 * 128/130 = 31.508 Gbps = 3.938GB/s
  • 以PCIe 3.0 x8的通道为例,该链路的吞吐量= 8GT * 8 * 128/130 = 63.015Gbps = 7.877 GB/s

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Calibre版图验证工具调用_笔记
  • 下载kibana-7.10.2教程
  • 恭喜!X医生斩获英国伦敦大学学院访问学者邀请函
  • Java工程师入职指南:从准备到适应新工作的每一步
  • [Python学习篇] Python运算符
  • GStreamer编译安装——使用Meson从源代码编译
  • 服务器无法远程桌面连接,解决服务器进行无法远程桌面连接方法有哪些
  • 在typora中利用正则表达式,批量处理图片
  • 【MySQL】MySQL45讲-读书笔记
  • 通过Stream流对集合进行操作
  • PHP聚合通多平台支付平台源码
  • 关于stm32的软件复位
  • spark MLlib (DataFrame-based) 中的聚类算法Bisecting K-Means、K-Means、Gaussian Mixture
  • 美丽的拉萨,神奇的布达拉宫
  • 项目实战系列——WebSocket——websock简介
  • python3.6+scrapy+mysql 爬虫实战
  • [译] 怎样写一个基础的编译器
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Go 语言编译器的 //go: 详解
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MaxCompute访问TableStore(OTS) 数据
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 后端_MYSQL
  • 将 Measurements 和 Units 应用到物理学
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 看域名解析域名安全对SEO的影响
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端js -- this指向总结。
  • 数据科学 第 3 章 11 字符串处理
  • 听说你叫Java(二)–Servlet请求
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 第二十章:异步和文件I/O.(二十三)
  • ​【已解决】npm install​卡主不动的情况
  • ‌移动管家手机智能控制汽车系统
  • $.proxy和$.extend
  • (C语言)二分查找 超详细
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (vue)页面文件上传获取:action地址
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十三)Maven插件解析运行机制
  • (转)shell中括号的特殊用法 linux if多条件判断
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .htaccess配置重写url引擎
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET中使用Redis (二)
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @31省区市高考时间表来了,祝考试成功
  • @JsonFormat 和 @DateTimeFormat 的区别
  • @RequestBody的使用
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Android]使用Git将项目提交到GitHub
  • [Assignment] C++1