前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCIe“拍了拍”PCI- PCI和PCIe发展历史

PCIe“拍了拍”PCI- PCI和PCIe发展历史

作者头像
碎碎思
发布2020-07-06 10:42:22
1.3K0
发布2020-07-06 10:42:22
举报
文章被收录于专栏:OpenFPGA

自PC在1981年被IBM发明以来,主板上都有扩展槽用于扩充计算机功能。现在最常见的扩展槽是PCIe插槽,实际上在你看不见的计算机主板芯片内部,各种硬件控制模块大部分也是以PCIe设备的形式挂载到了一颗或者几颗PCI/PCIe设备树上。固件和操作系统正是通过枚举设备树们才能发现绝大多数即插即用(PNP)设备的。那究竟什么是PCI呢?

PCI/PCIe的历史

在我们看PCIe是什么之前,我们应该要了解一下PCIe的祖先们,这样我们才能对PCIe的一些设计有了更深刻的理解,并感叹计算机技术的飞速发展和工程师们的不懈努力。

1. ISA (Industry Standard Architecture)

2. MCA (Micro Channel Architecture)

3. EISA (Extended Industry Standard Architecture)

4. VLB (VESA Local Bus)

5. PCI (Peripheral Component Interconnect)

6. PCI-X (Peripheral Component Interconnect eXtended)

7. AGP (Accelerated Graphics Port)

8. PCI Express (Peripheral Component Interconnect Express)

下面这个大表列出所有的速度比较。其中一些x8,x16的概念后面细节部分有介绍。

表1‑1 PCI到PCIe各历程对比

标准

时钟

传输带宽

每时种数据

带宽 /MB/s

ISA

4.77 MHz

8

1

4.77

ISA

8 MHz

160.5

0.5

8

MCA

5 MHz

16

1

10

MCA

5 MHz

32

1

20

EISA

8.33 MHz

32

1

33.3(16.7 typically)

VLB

33 MHz

32

1

133

PCI

33 MHz

32

1

133

PCI-X 66

66 MHz

64

1

533

PCI-X 133

133 MHz

64

1

1066

PCI-X 266

133 MHz

64

2

2132

PCI-X 533

133 MHz

64

4

4266

AGP x1

66 MHz

32

1

266

AGP x2

66 MHz

32

2

533

AGP x4

66 MHz

32

4

1066

AGP x8

66 MHz

32

8

2133

PCIe 1.0 x1

2.5 GHz

1

1

250

PCIe 1.0 x4

2.5 GHz

4

1

1000

PCIe 1.0 x8

2.5 GHz

8

1

2000

PCIe 1.0 x16

2.5 GHz

16

1

4000

PCIe 2.0 x1

5 GHz

1

1

500

PCIe 2.0 x4

5 GHz

4

1

2000

PCIe 2.0 x8

5 GHz

8

1

4000

PCIe 2.0 x16

5 GHz

16

1

8000

PCIe 3.0 x1

8 GHz

1

1

1000

PCIe 3.0 x4

8 GHz

4

1

4000

PCIe 3.0 x8

8 GHz

8

1

8000

PCIe 3.0 x16

8 GHz

16

1

16000

科技的每一步前进都是为了解决前一代中出现的问题,这里的问题就是速度。作为扩展接口,它主要用于外围设备的连接和扩展,而外围设备吞吐速度的提高,往往会倒推接口速度的提升。第一代ISA插槽出现在第一代IBM PC XT机型上(1981),作为现代PC的盘古之作,8位的ISA提供了4.77MB/s的带宽(或传输率)。到了1984年,IBM就在PC AT上将带宽提高了几乎一倍,16位ISA第二代提供了8MB/s的传输率。

之后各个厂家开始针对ISA进行升级,不过后来由于兼容性及速度瓶颈,虽然短暂的出现了EISA和VLB总线,但是最后也被Intel组建的PCI-SIG (PCI Special Interest Group)(PCI 特殊兴趣组J)的企业联盟,提出的PCI(Peripheral Component Interconnect)总线协议(1992)年所取代。

正是由于当时Intel并没有采封闭这一总线,使得PCI得到广泛推广和使用。并且统一之后的PCI总线刺激外围设备制造商进行不断地创新,丰富了整个PC行业的发展。

PCI总线标准第一次提出就提供了133MB/s的带宽(33MHz时钟,每时钟传送32bit)。

2004年,Intel觉得PCI总线还是不够,于是又搞起了小团体革了PCI的命。PCI express(PCIe,注意官方写法是这样,而不是PCIE或者PCI-E)诞生了,以上就是简单的PCIe诞生过程,看似简单,其实是一代代“革命者”不断追求完美才形成今天的PCIe。

从下面的主频变化图中,大家可能注意到更新速度越来越快。

图1‑1 主频变化图

下面简单总结一下PCI标准的特点

1. 它是个并行总线。在一个时钟周期内32个bit(后扩展到64)同时被传输。引脚定义如下:

图1‑4 PCI引脚定义

地址和数据在一个时钟周期内按照协议,分别一次被传输。

2. PCI空间与处理器空间隔离。PCI设备具有独立的地址空间,即PCI总线地址空间,该空间与存储器地址空间通过Host bridge隔离。处理器需要通过Host bridge才能访问PCI设备,而PCI设备需要通过Host bridge才能主存储器。在Host bridge中含有许多缓冲,这些缓冲使得处理器总线与PCI总线工作在各自的时钟频率中,彼此互不干扰。Host bridge的存在也使得PCI设备和处理器可以方便地共享主存储器资源。处理器访问PCI设备时,必须通过Host bridge进行地址转换;而PCI设备访问主存储器时,也需要通过Host bridge进行地址转换。

深入理解PCI空间与处理器空间的不同是理解和使用PCI的基础。

3.扩展性强。PCI总线具有很强的扩展性。在PCI总线中,Root Bridge可以直接连出一条PCI总线,这条总线也是该Root bridge所管理的第一条PCI总线,该总线还可以通过PCI桥扩展出一系列PCI总线,并以Root bridge为根节点,形成1颗PCI总线树。在同一条PCI总线上的设备间可以直接通信,并不会影响其他PCI总线上设备间的数据通信。隶属于同一颗PCI总线树上的PCI设备,也可以直接通信,但是需要通过PCI桥进行数据转发。

PCI后期越来越不能适应高速发展的数据传输需求,PCI-X和AGP走了两条略有不同的路径,PCI-x不断提高时钟频率,而AGP通过在一个时钟周期内传输多次数据来提速。随着频率的提高,PCI并行传输遇到了干扰的问题:高速传输的时候,并行的连线直接干扰异常严重,而且随着频率的提高,干扰(EMI)越来越不可跨越。

所以PCIe“拍了拍”PCI,就把PCI“拍在沙滩上”了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenFPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档