【PCI-E通道是个什么东西?他是干啥的?】

https://zhuanlan.zhihu.com/p/62426408

前言:

经常接触台式机的同学肯定绕不开PCI-E这个名词,因为这是台式机里最重要的接口/通道之一,就算是笔记本,也有很多地方会提到,就好比你加固态硬盘的时候,查阅资料的时候你应该会发现有的M.2接口走的就是PCI-E X4通道,很多的雷电3接口也会提到这个是半速的,还是满血满速的,雷电3接口走的也是PCI-E通道。所以这个通道在电脑DIY里非常重要,如果你想学电脑硬件,这个通道是必须要认识的,但是很多人并不懂这个通道是个什么东西,到底是干什么的,这个文章我们来详细解读一下。

正文部分:

【总线的概念】

在电脑里,不同的设备要想交互数据,就必须要经过一定的通道,就好像现实当中,两个城市要交换货物,就必须要修路,这里的路就和计算机里的总线概念一样,总线就是计算机里,用于走数据的“路”,CPU核心和cache缓存交互数据的时候,使用的就是内部总线,这个总线只在CPU内交互数据,但是CPU不可能就自己在那空算数吧,他总要和其他设备交互数据,就需要用到外部总线了,CPU会通过外部总线和其他的设备比如硬盘,网卡,声卡,USB设备沟通,我们这个文章想要介绍的PCI-E就是外部总线的一种。

【PCI-E的前身】

早些年那时候电脑还没有标准化,各种配件的接口和协议都不统一,声卡用着声卡的接口,网卡用着网卡的接口,显卡用着显卡的接口,大家都不统一,不同品牌不同厂商的接口又都不一样,不统一带来的问题就是不方便拓展,你用着A家的主板,那你就只能买A家接口的显卡声卡和网卡。所以为了解决这种不统一,业内当时统一了一个规格,这就是最早的ISA接口,下图中红色圈中这个黑色的长槽就是ISA了,ISA诞生于距今十分遥远的1981年,它作为IBM PC/XT电脑的系统总线首次出现,由于PC/XT在相当长一段时间内都曾经是PC领域的统治者,所以这个接口也沿用了很久

不过,ISA的弱点也是显而易见的,作为最初的数据总线,ISA的传输速率很快便成了周边设备性能提升的瓶颈,它还有CPU占用率高以及占用硬件中断资源等其他问题,所以渐渐的也就无法再满足高速发展的外围设备的需求了,因此业界开始了对ISA总线的放弃以及对替代品的寻找。这位继任者,便是几乎陪伴了一代人的PCI,下图中白色的长槽就是了。(此段位引用)

PCI相对于ISA不仅提高了带宽速度,还做到了即插即用,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序。而不象旧的ISA板卡,需要进行复杂的手动配置,大幅简化的操作使得这个接口迅速普及而且统治了很长一段时间的个人电脑。(此段位引用)

但是随着时间的推移,PCI接口的弊端也逐渐暴露出来,带宽也逐渐跟不上需求了,所以业内又开始寻找新的接口替代,这就是我们当代见得最多的PCI-E

PCI-E的全名叫PCI Express,简称PCI-E,官方简称PCIe,他是计算机内部的一种高速总线。

【PCI-E有什么用】

由于ISA和PCI年代太过久远了,我们就不多介绍了,大家有兴趣的可以去维基百科或者百度百科找找相关资料和信息,我们着重介绍一下PCI-E。

PCI-E既是通道,也是接口,当他以接口形式存在的时候,就是我们主板上那长长的槽。

目前的声卡和网卡都是主板集成了,不需要我们额外再插,所以PCI-E接口目前最大的作用就是插显卡,除了显卡还有无线网卡,万兆有线网卡这些高带宽设备,除了这些PCI-E接口也可以转接成很多接口,比如USB3.0,Type-c,雷电3,又或者U.2,M.2。

PCIe所能承受的带宽一般以版本和长度来区分,目前的PCIe版本是3.0,X1长度所能承受的带宽大约是986MB/S,我们可以理解为就是1GB/S,X2长度就是2GB/S,X4长度就是4GB/S,那X16长度就是16GB/S

而我们台式机主板上看到的最长的那个槽,就是X16的槽,所能承载的带宽就是16GB/S,而在长槽之间我们还能看见很短的槽,那就是PCIe X1,能承受1GB/S的带宽。

几乎任何长度的PCIE设备只需要X1就可以运行,你可以把X16的显卡插在X1槽中(尾部非闭合),你也可以把X1的设备插在X16槽中,这都是可以运行的,只是可能会带宽不足或者浪费带宽了

很多人看到这里就要说了,PCI-E这个接口好像就台式机有啊,和笔记本好像没有什么关系吧,为什么你文章开头说笔记本也要研究PCI-E呢,上面我们介绍的是PCI-E以接口形式存在,而这里就要介绍另一个情况,当PCI-E以通道形式存在了

【PCI-E以通道形式存在】

传统的SATA3接口固态硬盘采用的是AHCI协议,比如金士顿A400,三星860EVO,intel545S使用的都是SATA3接口,这种接口速率上限的理论值是750MB/S,但是实际上就只有600MB/S左右,所以这种固态硬盘速度大家可以看到都不超过600MB/S,这就是被SATA3这个接口的带宽限制了。

而为了摆脱限制,我们只能考虑换接口,PCI-E速率不是很快么,我们就用PCI-E好了,但是PCI-E体积太大怎么办,那么我们就缩小体积换个样子,这就是M.2接口,M.2接口你可以理解为他就是PCI-E接口,只是换了个形状而已。

所以这个时候,接口就是M.2,PCI-E在这里的作用就是扮演传输数据的通道了,而不是直接以接口存在。除了M.2包括雷电3这样的接口,都是利用PCI-E通道传输速率的,所以这就有了满血M.2/雷电3,还有残血M.2/雷电3这个说法了,满血的就是X4带宽,残血的就是X2带宽。比如小米笔记本PRO 15.6这款笔记本,第一个M.2就是X4的带宽,而第二个只有X2的带宽,所以你给米PRO装固态,第二个固态是怎么也不可能跑到2GB/S以上的顺序速度的。

那这里很多朋友就会发现了,我们目前使用的i3 i5 i7的民用平台,都只有X16条PCI-E,所以要么是1X16,或者2X8或者1X8+2X4,但是我的主板上有两个M.2接口,像技嘉和华擎上面甚至有3个M.2,而大家都知道一张显卡就需要用掉X16的槽,那这是否意味着我要是插满这些M.2之后,我的显卡就会自动降低到X8甚至是X4呢?

所以这里又要引出一个话题,那就是直连PCI-E和绕道PCI-E和南桥芯片组

【直连PCI-E和绕道PCI-E与南桥芯片组】

电脑里有很多的设备要和CPU通讯,比如内存,显卡,键盘鼠标,声卡网卡,如果这些设备全接到CPU上,对于CPU的设计难度,还有台式机的模块化难度是非常高的,光主板布线的难度相对于现在都是指数的提升,如果有兴趣研究PCB的,大家可以看一下CPU底座到内存那块,走了多少密密麻麻的线

图文无关

所以我们不可能让所有的设备都去找CPU通讯,那我们就给CPU安排一个下手,显卡和内存由于对于延迟和带宽要求很高,还是由CPU来直接通讯,但是键盘鼠标,声卡网卡这些,就让这个下属去管,然后这个下属再给CPU汇报数据。这个用来交互数据的下属,就是主板南桥芯片组,芯片组除了提供相应的主板特性外,最重要的就是作为外部设备的交互中转站。

芯片组的作用很像我们用的分线器,就是把一个接口分成很多小接口,其实他就是电脑主板的内部分线器,他将CPU发送给他的总线分给下属设备。

但是很多人就想到了,目前家用CPU的PCI-E只有16条,那那些M.2是谁提供的PCI-E通道呢?我装了下图是我从intel官网找到的Z390总线结构图

在左上角我们可以看到,直连CPU的PCI-E只有16条,要么是1X16,要么是2X8,要么是1X8+2X4,但是在芯片组左边我们可以看到Up to 24X PCI-E 3.0这个字样,也就是说,Z390芯片组下是可以挂载最大24条走南桥的PCI-E。

所以这就可以解释为什么目前主板上有2个甚至3个M.2的情况下,你的显卡依旧是PCI-E X16,就是因为这些PCI-E并不是intel说的那16条直连PCI-E,而是走南桥绕道的PCI-E。

所以这就可以解释另外一个问题,为什么M.2,雷电3,还有U.2的带宽上限目前最高都是PCI-E X4呢?因为CPU和芯片组之间通过DMI3.0总线连接,这个总线速度只有PCIEX4的水平也就是4GB/S,所以雷电3,M.2,U.2目前都无法突破X4带宽,就是被这个DMI牙签总线限制了。

但是木头龙的例子就非常好,一个能停100辆车的停车场不用吧出入口修成100个车道宽,因为他们不太可能一块进出,所以只需要留出入两个车道就可以,挂在在南桥下面的设备不太可能大家一块输出数据,所以纵使目前DMI3.0只能提供X4的带宽,也足以满足我们的需求了。


全文完,感谢您的耐心观看!!!

如果您觉得我的文章写得不错就点一波关注吧,您的关注是对我最大的支持!!!

在关注专栏的同时不要忘记关注我本人哦,非常感谢您的支持!!!

【转帖】【PCI-E通道是个什么东西?他是干啥的?】的更多相关文章

  1. 【Unity Shaders】Using Textures for Effects —— 实现Photoshop的色阶效果

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  2. [知乎]鲲鹏920对比intel8180

    作者:韩朴宇链接:https://www.zhihu.com/question/308298687/answer/568737742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  3. [转] [腾讯游戏学院] Roguelike到底是什么?

    如果你是一位资深游戏玩家,那么最近你肯定在哪里看到过 Roguelike 这个词.Roguelike 这个古老的游戏类型现在又变得很潮流,其中各种要素都在不断的被新游戏借鉴.作为一名就是比你有更多空余 ...

  4. Intel主板芯片组

    写这个的初衷还是由于linux内核本身就是硬件的抽象,如果你对硬件的相关发展,机制以及架构不了解,实际你也是看不懂linux内核代码以及看不懂linux很多命令输出的结果的,如果你看内核代码就会发现内 ...

  5. linux脚本编程(shell)浅介 (转载)

    linux脚本(shell)编程 啊,昨天上网看到一篇讲 linux/unix shell 的文章,想想自己最后写这东西也是一年前的事了,想想都快忘光了. 还是整理一下,做一次回顾,以后说不定还用得上 ...

  6. 【redis】06Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存

    上节课详细讲解了redis数据库的常用命令,以及redis数据库高级应用当中的, 安全性,跟咱们的主从复制, 这节课呢,咱们继续来讲咱们的高级应用, 首先来看一下咱们的事务处理, 事务处理 我前面说过 ...

  7. 几个RTP的开源实现

    玩了两天rtp协议,基本把rtsp/rtcp/rtp/rtmp/srtp/strcp/mms,几个协议的区别和概念弄明白了. 这里记录一下. rtsp:类似用户界面操作,和Http比较类似,提供播放, ...

  8. PipedInputStream/PipedOutputStream原理

    PipedInputStream类与PipedOutputStream类用于在应用程序中创建管道通信.一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进 ...

  9. 这是一位拿到BAT大厂offer应届生的年终总结,那么你的呢?

    壹 关于求职 2018年初,我还在北京后厂村的马路上被风吹得瑟瑟发抖. 那时我刚刚结束了半年的实习时光,开始考虑年后是否要继续实习.一开始我也在纠结实习转正和秋招之间如何权衡,但是在经历了春招以后,我 ...

随机推荐

  1. CF1208题解

    C \(\begin{aligned}\ 0 0 1 1\\ 0 0 1 1\\ 2 2 3 3\\ 2 2 3 3\\ \end{aligned}\)将每个四方格分别加上\(0,4,8,12\) D ...

  2. 微信小程序 图片设置为圆形

    要图片圆形显示,需要设置border-radius:50%,还要设置overflow:hidden,具体如下: Tip:user-avatar是图片控件的class .user-avatar { wi ...

  3. fluent中截取任意面的数据

    原版视频下载链接: https://pan.baidu.com/s/1c2aE740 密码: mf2i

  4. RabbitMQ入门学习系列(五) Exchange的Direct类型

    快速阅读 利用Exchange的Direct类型,实现对队列的过滤,消费者启动以后,输入相应的key值,攻取该key值对应的在队列中的消息 . 从一节知道Exchange有四种类型 Direct,To ...

  5. Linux中的定时自动执行功能(at,crontab)

    Linux中的定时自动执行功能(at,crontab) 概念 在Linux系统中,提供了两种提前对工作进行安排的方式 at 只执行一次 crontab 周期性重复执行 通过对这两个工具的应用可以让我们 ...

  6. html5的 embed元素 和 object元素

    html5的 embed元素 和 object元素 一.总结 一句话总结: embed定义嵌入的内容,比如插件,比如flash object定义定义一个嵌入的对象,用于包含对象,比如图像.音频.视频. ...

  7. 树莓派VNC

    sudo raspi-config Interfacing Options -> VNC 1.停止VNC窗口: vncserver -kill:1 2.修改密码 vncpasswd 3.重启服务 ...

  8. ArcPy python实例教程-条件平差-测量平差

    ArcPy python实例教程-条件平差-测量平差 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 输入参数:条件方程的系数,观测值,常数项和 ...

  9. MWC飞控增加声纳定高的方法(转)

    源: MWC飞控增加声纳定高的方法

  10. 从0开始学爬虫9之requests库的学习之环境搭建

    从0开始学爬虫9之requests库的学习之环境搭建 Requests库的环境搭建 环境:python2.7.9版本 参考文档:http://2.python-requests.org/zh_CN/l ...