PCI PCI-X PCI-E介绍
1.PCI
外设互联标准(或称个人电脑接口,Personal Computer Interface),实际应用中简称PCI(Peripheral Component Interconnect),是一种连接电子计算机主板和外部设备的总线标准。一般PCI设备可分为两种形式:直接布放在主板上的集成电路,在PCI规范中称作”平面设备“,另一种是安装在插槽中的扩展卡。
PCI bus常见于现代的个人计算机中,已经取代ISA和VESA局部总线,成为标准扩展总线。PCI总线最终将被PCI Express或者更先进的技术取代。
PCI是并行基于总线控制,所有设备共同分享单向32bit/64bit并行总线(半双工)。如果有多个PCI设备共用总线,他们将共享总的传输速率。
PCI标准于1993年7月被Intel发明,每个接口最多连接1个设备,可以工作在33MHz和66MHz(工作时电压33MHz为5V,66MHz为3V),2004年被PCI Express替代。
PCI插槽可以插很多类型的卡,包括网卡、声卡、调制解调器(内置Modem)、电视卡、磁盘控制器(RAID卡)、视频采集卡、IDE接口卡、IEEE1394卡、USB卡和串行等,原本也可以插显卡,但很快PCI的带宽不足以支持显卡的性能。PCI插槽通过插不同的卡几乎可以实现所有的外接功能。后来显卡使用AGP插槽,现在已被PCI Express插槽取代。
PCI接口分32bit和64bit两种。早期的PCI(PCI2.1标准)工作在32bit、33.33MHz、5V下,最大传输速度133MB/s(33.33MHz * 32bit / 8bit/byte = 133MB/s),后来又出现了PCI2.2 2.3等标准。现在PCI有32bit和64bit两种,32bit的一般用在PC上,64bit的一般应用于服务器上,64bit的要比32bit的长一些。32bit和64bit都有5v和3.3v电压两种,5v电压的是PCI2.1标准工作在33MHz,3.3v电压的是PCI2.2标准工作在66MHz的时钟频率上。频率或者位宽增加都会增加传输速率,实现也是通过这两个指标来实现的。
在PC上,64位PCI还没有成为主流。原因在于制造64位和66MHzPCI主板的难度很大。首先,使用64位PCI插槽需要64位南桥芯片组支持,该南桥控制器必须可以正确处理64位的数据。Intel和AMD都有64位的南桥可提供给主板厂商,但是价格很高;其次是因为66Mz
PCI槽对主板配套元件要求极高,且需要特殊的布线设计。这就是66MHzPCI技术一直停留在服务器领域的原因。
PCI有几种不同的接口样图:现在生产的多为通用模式的以防插错。还有64bit统一比32bit的宽出右边缺口的部分。

PCI 32bit的网卡都可以查到PCI 64bit插槽上使用。3.3v的插到3.3v的上,5v的插到5v的上。
有一些PCI网卡同时支持32位和64位标准的兼容网卡,这类网卡相比前面介绍的纯64位PCI网卡来说,在外观上也有一个明显的区别,那就是它又多了一个缺口,有3个缺口(上图右边第三个图)
PCI千兆网卡的局限性:
通常我们用的个人PC主板上的PCI总线频率位33MHz,总线位宽位32bit,PCI总线的带宽位133MB/s,换算下来是1064Gbps,理论上这是符合千兆往可的带宽的。但实际上,PCI设备是共享一个总线带宽的,像IDE总线,集成声卡等都是通过PCI总线工作的,这样自然分配给PCI千兆网卡的带宽自然就不够了。要真正的达到千兆网卡的速度,要求全双工工作,输入输出都是1Gbps,这样就要求带宽达到2Gbps,这样PCI总线是万万达不到的。因此在普通电脑上还是要采用PCI-E设备才能真正的达到千兆的速度。
2.PCI-X
PCI-X是传统PCI总线的改版,有更高的带宽。PCI-X插槽类型基本于64bit的PCI插槽相同。
PCI-X于1998年被IBM、HP和Compaq发明,64bit位宽,传输方式并发,2004年被新出的PCI Express替代。
PCI-X多用于服务器上,不过也是昙花一现。
无论PCI还是PCI-X都只是半双工的通信机制但PCI Express 却完全可以用全双工方式进行通信。此外在同一个总线里因为平行传输的关系,虽然控制器可以和每个接入的设备自动协调传输速率但却必需选用各个设备中速度最慢者的速度作为总线内共同的传输速度上限,高速设备往往因此而无用武之地。
PCI-X目前的最新版本是2.0。下面讲的的1.0版本,在外观上,它与64位PCI接口差不多。目前主要有100MHz和133MHz两种外频模式,不过目前主要用的是133MHzPCI-X接口,理论共享传输速率达到了1.06GB/s。后来推出的2.0版本,频率位266MHz和533MHz,共享传输速率为2.1GB/s和4.2GB/s。后来出的3.0标准1066MHz在PCI-E的冲击下没有了下文。
PCI-X相比PCI 32bit而言除了扩大到64bit,其余的传输协议、讯号和标准街头格式都一并兼容,因此它可以向下兼容于所有早期的+3.3V PCI 总线(但不容于最早期的+5V PCI BUS)。3.3v的PCI可以插到PCI-X中。
3.PCI-E
PCI-E于2004年被Intel发明,采用串行方式通信,支持全双工通信方式。
PCIe设备能够支持热拔插以及热交换特性,支持的三种电压分别为+3.3V、3.3Vaux以及+12V。
PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。
PCI-E有向下兼容的特性。既X16的接口可以插X1、X4、X8接口的卡。
PCI-E接口样图:

图中从上到下依次是PCIEX16、X1、X4、X16,图中没有X8的,X8的长度右边部分(主接口区)长度基本是X4的2倍,略小。
PCI-E有各版本的传输速度:
| 版本 | 数据传输带宽 | 单向单通道带宽 | 双向16通道带宽 | 原始传输率 | 发表日期 |
|---|---|---|---|---|---|
| 1.0 | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2002年7月22日 |
| 1.0a | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2003年4月15日 |
| 1.1 | 2Gb/s | 250MB/s | 8GB/s | 2.5GT/s | 2005年3月28日 |
| 2.0 | 4Gb/s | 500MB/s | 16GB/s | 5.0GT/s | 2006年12月20日 |
| 2.1 | 4Gb/s | 500MB/s | 16GB/s | 5.0GT/s | 2009年3月4日 |
| 3.0 | 8Gb/s | 1GB/s | 32GB/s | 8.0GT/s | 2010年11月10日 |
| 4.0 | 16Gb/s | 2GB/s | 64GB/s | 16.0GT/s | 2014年-2015年 |
PCI-E不同传输通道数设备的金手指数(双面金手指)和长度:
| 传输通道数 | 脚Pin总数 | 主接口区Pin数 | 总 长 度 | 主接口区 长度 |
|---|---|---|---|---|
| x1 | 36 | 14 | 25 mm | 7.65 mm |
| x4 | 64 | 42 | 39 mm | 21.65 mm |
| x8 | 98 | 76 | 56 mm | 38.65 mm |
| x16 | 164 | 142 | 89 mm | 71.65 mm |
4.三种接口的传输速度比较
| 规格 | 总线宽度 | 工作时钟频率 | 数据速率 |
|---|---|---|---|
| PCI 2.3 | 32 比特 | 33/66 MHz | 133/266 MB/s |
| PCI-X 1.0 | 64 比特 | 66/100/133 MHz | 533/800/1066 MB/s |
| PCI-X 2.0(DDR) | 64 比特 | 133 MHz | 2.1 GB/s |
| PCI-X 2.0(QDR) | 64 比特 | 133 MHz | 4.2 GB/s |
| PCI-E 1.0 X1 | 1 比特 | 2.5 GHz | 500 MB/s(双工,文稿数据) |
| PCI-E 1.0 X2 | 2 比特 | 2.5 GHz | 1 GB/s(双工) |
| PCI-E 1.0 X4 | 4 比特 | 2.5 GHz | 2 GB/s(双工) |
| PCI-E 1.0 X8 | 8 比特 | 2.5 GHz | 4 GB/s(双工) |
| PCI-E 1.0 X16 | 16 比特 | 2.5 GHz | 8 GB/s(双工) |
PCI 64bit的数据速率乘以2。
根据上面各个接口带宽的数据我们可以看到PCI-e X1的接口可以提供单向250MB/s的带宽,普通的千兆网卡用PCI-e X1接口就可以满足了,但是万兆网卡的就至少要PCI-e X4才能刚刚满足带宽需求,因此可以解释市场上见到的万兆网卡基本上都是PCI-e X8接口的,比如Intel PRO 10GBE XF LR(10千米,采用长波模块(LR)因此传输距离可以达到10公里,及 Intel PRO 10GBE XF SR(300米)采用的是短波(SR)模块,传输距离是300米。
PCI PCI-X PCI-E介绍的更多相关文章
- SATA接口、PCI/PCIe、NVMe的介绍
SATA接口.PCI/PCIe.NVMe的介绍 SATA接口 SATA是Serial ATA的缩写,即串行ATA. SATA已经完全取代旧式PATA(Parallel ATA或旧称IDE)接口的旧式硬 ...
- 2.3 PCI桥与PCI设备的配置空间
PCI设备都有独立的配置空间,HOST主桥通过配置读写总线事务访问这段空间.PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,PCI桥使用的配置空间和Cardbus ...
- PCI DSS合规建设ASV扫描介绍
最近查一些Nessus.Nexpose漏洞扫描工具相关资料,工具介绍都会提到一些审计功能,其中最常见的就是PCI DSS合规性审计.从网上找到一篇介绍较详尽的文章,与大家分享. 原文摘自:http:/ ...
- 【转】PCI学习笔记
1.PCI设备编号 每一个PCI device都有其unique PFA(PCI Fcntion Address) PFA由 bus number.device number.functi ...
- PCI Express(一)- Connector
在FPGA4FUN上看到一篇介绍PCI-E的帖子,简单易懂,适合入门,特地搬过来 原文地址:http://www.fpga4fun.com/PCI-Express.html 前言: As PCI Ex ...
- 基于WDF的PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建
原文出处:http://www.cnblogs.com/jacklu/p/4619110.html 本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法 ...
- 【翻译】运行于x86机器上的FreeBSD的PCI中断
来源 http://people.freebsd.org/~jhb/papers/bsdcan/2007/article/article.html 摘要 在拥有多个独立设备的计算机里一个重要的元素是一 ...
- 《Linux Device Drivers》第十二章 PCI司机——note
一个简短的引论 它给这一章总线架构的高级概述 集中访问讨论Peripheral Component Interconnect(PCI,外围组件互连)外设内核函数 PCI公交车是最好的支持的内核总线 本 ...
- 1.3 PCI总线的存储器读写总线事务
总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线并不例外. PCI总线使用单 ...
- 1.2 PCI总线的信号定义
PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号组成. PCI总线是一 ...
随机推荐
- 方格填数--蓝桥杯---dfs
答案:1580 相似题目:N皇后问题 注意要枚举的是什么 #include<iostream> #include<string.h> using namespace std; ...
- oracle 错误实例分析(ORA-01078)
01,问题描述 心血来潮想看一下启动数据库的alert log.然后把数据库给关闭了,同时也在监听日志文件 下面可谓是详细的描述了整个关机过程,也看到了无数的error [root@node1 ...
- JS正则表达式一些基本使用、验证、匹配、正则匹配时一个变量
js验证首位必须是字母 var str = "asfg"; /^[a-zA-Z].*/.test(str);//true是,false否 匹配所有空格 var str=" ...
- NSTimer_Block封装定时器的target-action成Block回调
前言 定时器NSTimer虽然简单易用,但是目标响应机制(target-action)这种方式很容易在代码中出现代码臃肿的情况,特别是在一个文件中有大量的代码,多个定时器的时候不方便调试,因此将NST ...
- Java入门系列-09-循环结构
这篇文章为你搞懂5个问题 while 循环如何使用 do-while 循环的使用 for 循环的使用 break.continue 的使用 循环结构的嵌套使用 生活中有很多事情需要我们重复的去做,比如 ...
- 深入理解Javascript封装DOMContentLoaded事件
最近在写一个Javascript的框架,刚把DOMContentLoaded事件封装好,略带小兴奋,把开发过程中遇到的原理和兼容性问题做篇笔记,省的忘记到处找. 我们在写js代码的时候,一般都会添加w ...
- [转]mvc5+ef6+Bootstrap 项目心得--身份验证和权限管理
本文转自:http://www.cnblogs.com/shootingstar/p/5629668.html 1.mvc5+ef6+Bootstrap 项目心得--创立之初 2.mvc5+ef6+B ...
- js判断下拉框改变状态
<script> $('#questSort').change(function(){ //此处写状态改变要实现的功能 var s=$('#questSort').children('op ...
- c# 字体库跨域解决
网上大部分的资料说的都是在apache和ng服务器的情况下解决方案,但基本的思路都是添加响应头 场景: 页面引用css文件: <link href="http://www.tuohua ...
- C++里创建 Trie字典树(中文词典)(一)(插入、遍历)
萌新做词典第一篇,做得不好,还请指正,谢谢大佬! 写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示 ...