【PCIe】初识PCIe

news2025/1/8 22:49:49

在这里插入图片描述

🔥博客主页:[PannLZ]

😘欢迎关注:👍点赞🙌收藏✍️留言

文章目录

      • PCIe简介
      • PCIe速度


PCIe简介

计算机内部有很多电子元器件,他们之间会有数据沟通和传输的需求。如果A元件想给B元件传输数据,那他就需要建立通路。在电脑里这种不同交互数据的通路就被我们称为总线。无论什么线路,都是基于目前的物理准则之上的,总线也是有一定承载能力的,不可能做到所有的数据秒传。总线单位时间内传输的数据量我们称之为带宽

说了总线再简单说说协议,简单来说协议就是电脑内部的一种规矩,规定了两个设备通讯时如何识别对方,如何建立连接,使用的讯号类型,数据编码解码方式,数据传输的类型,数据传输的方式,物理层电压电流,保持和截止时间等等规定。两个设备只有协议一样或者相容才能够进行通讯。协议也可以说就是通讯双方提前约定好采用某种形式,以某种规格利用某种物体把数据传输出去,另一方在以同样的规则和流程去接受数据的约定制度。

**PCI-Express(peripheral component interconnect express),简称PCIE,**是一种高速串行计算机扩展总线标准,主要用于扩充计算机系统总线数据吞吐量以及提高设备通信速度。即是总线,也是协议。作为一种总线标准,PCIe定义了设备间的物理连接方式和电气特性。作为一种协议,PCIe定义了设备间数据传输的规则和格式12。PCIe协议包括物理层、数据链路层、事务层等多个层次,每个层次都有其特定的功能

PCIe速度

PCle 发展到现在,从 PCle 1.0、PCle 2.0,PCIe 3.0 -->PCIe 6.0 速度一代比一代快。如下表:

连接速度x 1x 2x 4x 8x 12x 16x 32
PCIe 1.0带宽/(GB/s)0.51246816
PCIe 2.0带宽/(GB/s)1248121632
PCIe 3.0带宽/(GB/s)~2~4~8~16~24~32~64

连接速度这一行的x1、x2、 x4等指PCIe连接的通道数(Lane)。就像高速公路有单车道、2 车道、4 车道一样(见图 8-1),PCIe 连接也可以有多个通道,只不过8车道及以上的公路不常见,而PCle最多可以有32个Lane。
两个设备之间的PCIe连接称为**Link**。

在这里插入图片描述

两个PCIe设备之间,有独立的发送和接受数据通道,数据可以往两个方向传输。

表中的带宽,如PCIe 3.0 x 1,带宽为2 GB/s,是指双向带宽,即读写带宽。如果单独指读或者写,带宽应减半。

表中带宽是如何计算的:

PCIe是串行总线,PCIe 1.0的线上位传输速率为2.5 Gb/s,物理层使用8/10编码,即8位的数据,实际在物理线路上是需要传输10位的,多余的2位用来校验。因此:

PCIe 1.0 ×1的带宽=(2.5 GB/s×2(双向通道))/10=0.5 GB/s

PCIe是从PCI发展过来的,PCIe中的“e”是express的简称,表示“快”。PCIe怎么能比PCI(或者PCI-X)快呢?那是因为PCIe在物理传输上跟PCI有着本质的区别:PCI使用并口传输数据,而PCIe使用串口传输数据。PCI并行总线单个时钟周期可以传输32 b或64 b数据,为什么比不了单个时钟周期传输1 b数据的串行总线呢?

在实际时钟频率比较低的情况下,并口因为可以同时传输若干比特位,速率确实比串口快。随着技术的发展,要求数据传输速率越来越快,要求时钟频率也越来越快,但是并行总线时钟频率不是想快就能快的。

在发送端,数据在某个时钟沿传出去,在接收端,数据在下个时钟沿接受。因此,要想使接收端能正确采集到数据,时钟 的周期必须大于数据传输的时间。受限于数据传 输时间(该时间随着数据线长度的增加而增加),时钟频率不能做得太高。另外,时钟信号 在线上传输的时候,也会存在相位偏移(Clock Skew), 影响接收端的数据采集。由于采用 并行传输,接收端必须等最慢的那个比特位数据到了以后才能锁住整个数据。

PCIe 使用串行总线进行数据传输就没有上述问题。它没有外部时钟信息,它的时钟信 息通过8/10编码或者128/130编码嵌在数据流中,接收端可以从数据流里面恢复时钟信息, 因此,它不受数据在线上传输时间的限制,导线多长、数据传输频率多快都没有问题。没有 外部时钟信息,自然就没有所谓的相位偏移问题。由于是串行传输,只有一位数据在传输, 所以也不存在信号偏移 (Signal Skew) 问题。但是,如果使用多条Lane 传输数据(串行中 又有并行),那么这个问题就又回来了,因为接收端同样要等最慢的那个Lane 上的数据到达 后才能处理整个数据。不过,PCle 自己能解决这个问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1498133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb04-Request,Response

目录 一、Request(请求) 1.作用 2.继承体系 3.获取请求数据 (1)请求行 (2)请求头 (3)请求体(POST) (5)Request通用方式获取请求…

Unity用Shader将一张图片变成描边图片素描风格。

环境&#xff1a; unity2021.3.x 效果&#xff1a; 实现核心思路(shader)&#xff1a; fixed4 frag (v2f i) : SV_Target {fixed4 col tex2D(_MainTex, i.uv);// 调整相似度bool isRedMatch abs(col.r - _TargetColor.r) < 0.15;bool isGreenMatch abs(col.g - _Target…

消息队列-Kafka-如何进行顺序消费

全局有序 只有 1 个分区&#xff0c;那这个时候就是能够保证消息的顺序消费。 分区有序 如果我们还是想同时消费多个分区并且保证有序&#xff0c;这个时候我们需要将需要保证顺序的消息路由到同一个分区。 在发送消息的时候我们可以看到&#xff1a; 上面的代码定义了消息…

【R语言实战】聚类分析及可视化

&#x1f349;CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一&#xff5c;统计学&#xff5c;干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项&#xff0c;参与研究经费10w、40w级横向 文…

【自然语言处理】BitNet b1.58:1bit LLM时代

论文地址&#xff1a;https://arxiv.org/pdf/2402.17764.pdf 相关博客 【自然语言处理】【大模型】BitNet&#xff1a;用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58&#xff1a;1bit LLM时代 【自然语言处理】【长文本处理】RMT&#xff1a;能处理长度超过一百万t…

【Vue】sessionStorage存取数据

一. 需求 1.1 模板 Vab Admin Pro 1.2 组件 ElementUI 1.3 阐述 列表页面搜索【关键词】点击【查询】后&#xff0c;点击【查看】按钮跳转到【详情页】&#xff0c;详情页【返回】【保留原搜索关键词】 原图 搜索查询【关键词】 详情 返回后【保留】【搜索查询关键词…

一次简单操作代替所有异常处理

一、背景 在服务端处理前端发过来的响应的时候&#xff0c;开发者不可能穷尽用户的所有奇怪的操作。除此之外&#xff0c;我们还需要应付前端人员对我们的无情吐槽&#xff0c;你对XXXX请求返回的为啥是奇怪的响应数据呢&#xff1f;于是全局异常处理应运而生&#xff0c;一次处…

Java面试篇【并发编程·进阶】常见面试题(2024最新)

并发常见面试题进阶 1.synchronized synchronized关键字解决的是多线程之间访问资源的同步性&#xff0c;synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能被一个线程执行。 监视器锁&#xff08;monitor&#xff09;是依赖于底层的操作系统的 Mutex Lock来…

回溯算法07-子集(Java/子集问题)

.子集 题目描述 给你一个整数数组 nums &#xff0c;数组中的元素 互不相同 。返回该数组所有可能的子集&#xff08;幂集&#xff09;。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[],[…

通过vue ui创建项目

确认前端环境都安装好之后 打开黑窗口 输入 vue ui 会打开一个vue的网页 在此创建项目 可以选择在那个路径创建 这是我的项目配置 这里是选择vue版本 我要用的是vue2 选好点击创建项目就好了 创建好后的重点的目录结构以及结构的作用 启动前端工程 将创建好的项目导入编译器 我…

自动化测试po模式是什么?自动化测试po分层如何实现?

一、什么是PO模式 全称&#xff1a;page object model 简称&#xff1a;POM/PO PO模式最核心的思想是分层&#xff0c;实现松耦合&#xff01;实现脚本重复使用&#xff0c;实现脚本易维护性&#xff01; 主要分三层&#xff1a; 1.基础层BasePage&#xff1a;封装一些最基…

通义灵码-智能编码辅助工具

1.介绍 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;并针对阿里云 SDK/OpenAPI 的使用场景调优&a…

C++并发编程 -5. 基于锁实现线程安全的队列和栈容器

如何通过互斥锁和条件变量构建线程安全的队列&#xff08;栈&#xff09; 在C并发编程 -2.线程间共享数据 已经介绍过构建线程安全的栈&#xff0c;现在重新回顾。 一.构建线程安全的栈 1.异常发生在接口处 有时候我们可以将对共享数据的访问和修改聚合到一个函数&#xff0c…

YoloV8改进策略:Block改进|自研Block,涨点超猛

参考模型 参考的Block,如下图: 我对Block做了修改,修改后的结构图如下: 代码详解 from timm.models.layers import DropPathfrom torch import Tensor def channel_shuffle(x: Tensor, groups: int

Unity Samples和帧动画的问题

拖动序列帧图片和自己创建clip的帧率不同 我今天在创建帧动画的时候用了两种方式第一种是直接拖动序列帧图片到Hierachy&#xff0c;然后生成的第二种是这样我发现两者播放的动画速率不一样最后查了半天查不到原因。最后发现是Samples的原因&#xff0c;而且Unity把Samples这个…

Vision Transformer结构解析

Vision Transformer结构解析 ViT简介ViT三大模块ViT图像预处理模块——PatchEmbed多层Transformer Encoder模块MLP&#xff08;FFN&#xff09;模块 基本的Transformer模块Vision Transformer类的实现Transformer知识点 ViT简介 Vision Transformer。transformer于2017年的Att…

【操作系统概念】 第7章:死锁

文章目录 0.前言7.1 系统模型7.2 死锁特征7.2.1 必要条件7.2.2 资源分配图 7.3 死锁处理方法7.4 死锁预防&#xff08;deadlock prevention&#xff09;7.4.1 互斥7.4.2 占有并等待7.4.3 非抢占7.4.4 循环等待 7.5 死锁避免&#xff08;deadlock-avoidance&#xff09;7.5.1 安…

银行数字化转型导师坚鹏:银行数字化转型案例研究

银行数字化转型案例研究 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚银行科技金融数智化案例&#xff1f; 不清楚银行供应链金融数智化案例&#xff1f; 不清楚银行普惠金融数智化案例&#xff1f; 不清楚银行跨境金融数智…

Visual Studio如何进行类文件的管理(类文件的分离)

大家好&#xff1a; 衷心希望各位点赞。 您的问题请留在评论区&#xff0c;我会及时回答。 一、问题背景 实际开发中&#xff0c;类的声明放在头文件中&#xff0c;给程序员看类的成员和方法。比如&#xff1a;Dog.h&#xff08;类的声明文件&#xff09; 类的成员函数的具体…

[LeetCode][239]【学习日记】滑动窗口最大值——O(n)单调队列

题目 239. 滑动窗口最大值 难度&#xff1a;困难相关标签相关企业提示 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 示例 1…