Chinaunix首页 | 论坛 | 博客
  • 博客访问: 699562
  • 博文数量: 183
  • 博客积分: 2650
  • 博客等级: 少校
  • 技术积分: 1428
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-22 17:02
文章分类
文章存档

2017年(1)

2015年(46)

2014年(4)

2013年(8)

2012年(2)

2011年(27)

2010年(35)

2009年(60)

分类: LINUX

2011-01-14 10:37:36

从1992年创立规范到如今,PCI总线已成为了的一种标准总线。由PCI总线构成的标准系统结构如图一所示。 PCI总线取代了早先的。当然与在PCI总线后面出现专门用于显卡的,与现在相比,速度要慢,但是PCI能从1992用到现在,说明他有许多优点,比如即插即用(Plug and Play)、中断共享等。

从数据宽度上看,PCI总线有32bit、64bit之分;从总线速度上分,有33MHz、66MHz两种。目前流行的是32bit @ 33MHz,而64bit系统正在普及中。改良的PCI系统,PCI-X,最高可以达到64bit @ 133MHz,这样就可以得到超过1GB/s的数据传输速率。如果没有特殊说明,以下的讨论以32bit @ 33MHz为例。

一、基本概念

不同于ISA总线,PCI总线的地址总线与数据总线是分时复用的。这样做的好处是,一方面可以节省接插件的管脚数,另一方面便于实现突发数据传输。在做数据传输时,由一个PCI设备做发起者(主控,Initiator或Master),而另一个PCI设备做目标(从设备,Target或Slave)。总线上的所有时序的产生与控制,都由Master来发起。PCI总线在同一时刻只能供一对设备完成传输,这就要求有一个仲裁机构(Arbiter),来决定在谁有权力拿到总线的主控权。

32bit PCI系统的管脚按功能来分有以下几类:

系统控制: CLK,PCI时钟,上升沿有效 
RST ,Reset信号 
传输控制: FRAME#,标志传输开始与结束 
IRDY#,Master可以传输数据的标志 
DEVSEL#,当Slave发现自己被寻址时置低应答 
TRDY#,Slave可以转输数据的标志 
STOP#,Slave主动结束传输数据的信号 
IDSEL,在即插即用系统启动时用于选中板卡的信号 
地址与数据总线: AD[31::0],地址/数据分时复用总线 
C/BE#[3::0],命今/字节使能信号 
PAR,奇偶校验信号 
仲裁号: REQ#,Master用来请求总线使用权的信号 
GNT#,Arbiter允许Master得到总线使用权的信号 
错误报告: PERR#,数据奇偶校验错 
SERR#,系统奇偶校验错 

PCI

当PCI总线进行操作时,发起者(Master)先置REQ#,当得到(Arbiter)的许可时(GNT#),会将FRAME#置低,并在AD总线上放置Slave地址,同时C/BE#放置命令信号,说明接下来的传输类型。所有PCI总线上设备都需对此地址译码,被选中的设备要置DEVSEL#以声明自己被选中。然后当IRDY#与TRDY#都置低时,可以传输数据。当Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据要传输,并在传完数据后放开IRDY#以释放总线控制权。

这里我们可以看出,PCI总线的传输是很高效的,发出一组地址后,理想状态下可以连续发数据,峰值速率为132MB/s。实际上,目前流行的33M@32bit一般可以做到100MB/s的连续传输。

二、即插即用的实现

所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序。而不象旧的ISA板卡,需要进行复杂的手动配置。

实际的实现远比说起来要复杂。在PCI板卡中,有一组寄存器,叫"配置空间"(Configuration Space),用来存放基地址与内存地址,以及中断等信息。

以内存地址为例。当上电时,板卡从ROM里读取固定的值放到中,对应的地方放置的是需要分配的内存字节数等信息。操作系统要跟据这个信息分配内存,并在分配成功后把相应的寄存器中填入内存的起始地址。这样就不必手工设置开关来分配内存或基地址了。对于中断的分配也与此类似。

PCI

三、中断共享的实现

ISA卡的一个重要局限在于中断是独占的,而我们知道计算机的中断号只有16个,系统又用掉了一些,这样当有多块ISA卡要用中断时就会有问题了。

PCI总线的中断共享由硬件与软件两部分组成。

硬件上,采用电平触发的办法:信号在系统一侧用电阻接高,而要产生中断的板卡上利用的集电极将信号拉低。这样不管有几块板产生中断,中断信号都是低;而只有当所有板卡的中断都得到处理后,中断信号才会回复高电平。

软件上,采用中断链的方法:假设系统启动时,发现板卡A用了中断7,就会将中断7对应的内存区指向A卡对应的中断服务程序入口ISR_A;然后系统发现板卡B也用中断7,这时就会将中断7对应的内存区指向ISR_B,同时将ISR_B的结束指向ISR_A。以此类推,就会形成一个中断链。而当有中断发生时,系统跳转到中断7对应的内存,也就是ISR_B。ISR_B就要检查是不是B卡的中断,如果是,要处理,并将板卡上的拉低电路放开;如果不是,则呼叫ISR_A。这样就完成了中断的共享。

PCI - 特点

PCI

PCI总线系统要求有一个PCI控制卡,它必须安装在一个PCI插槽内。这种插槽是目前主板带有最多数量的插槽类型,在当前流行的台式机主板上,结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽。根据实现方式不同,PCI控制器可以与CPU一次交换32位或64位数据,它允许PCI辅助利用一种总线主控技术与CPU并行地执行任务。PCI允许技术,即允许一个以上的电子信号同时存在于总线之上。

PCI - PCI DAQ 卡

PCI-1710/1710HG PCI 总线 16 通道 100 KHz,12 位多功能卡(高增益)  4510.-    
PCI-1720 4 通道隔离 D/A 输出卡                            4510.-    
PCI-1750 PCI 总线 32 通道数字量输入/输出卡,具有 2500 V DC 隔离保护  1645-    
PCI-1751 PCI 总线 48 位数字量输入/输出卡           1280-    
PCI-1760 继电器输出和隔离数字量输入卡              2240-    
PCI-1713                  100 kS/s、12 位卡、32 通道 隔离模拟量输入   5420.-  
PCI-1714  4通道同步30MS/s模拟量输入卡 
PCI-1711 100KS/s,12位16路单端输入低成本多功能数据采集卡 
PCI-1711L 100KS/s,12位16路单端输入低成本多功能数据采集卡 
PCI-1712 1MS/s,12位高速多功能数据采集卡 
PCI-1712L 1MS/s,12位高速多功能数据采集卡 
PCI-1716 250 KS/s, 16位, 16路高分辨率多功能数据采集卡 
PCI-1716L 16位高精度多功能带模拟量输出数据采集卡 
PCI-1747U  250K 16-bit 64-ch AI card 
PCI-1721 12位,4路增强模拟量输出卡 
PCI-1723 16位,8路非隔离模拟量输出卡 
PCI-1724U  14-bit, 32-ch Isolated Analog Output Card 
PCI-1730 32路隔离数字量输入/输出卡 
PCI-1733 32路隔离数字量输入卡 
PCI-1734 32路隔离数字量输出卡 
PCI-1752 64路隔离数字量输出卡 
PCI-1753 96/192位数字量I/0卡 
PCI-1753E PCI-1753扩展板 
PCI-1754 64路隔离数字量输入卡 
PCI-1755 高速32通道数字量输入输出板卡 
PCI-1756 64路隔离数字量I/O卡 
PCI-1761 8路继电器输出和8路隔离数字量输入卡 
PCI-1762 16路隔离数字量输入和16路继电器输出卡 
PCI-1780 8通道计数器/定时器卡

PCI - 主要版本

PCI2.2允许66MHz的信号传输(需要在3.3伏特的信号,传输速率峰值为533MB每秒)。

PCI2.3允许使用3.3伏特和通用标识符,但在5伏特的情况不能下使用。

PCI3.0是PCI总线的最后一个官方版本,彻底取消了对使用5伏特的设备的支持。

PCI-X稍稍改变了协定并增加了资料传输速率到133MHz(传输速率峰值为1066MB/s)。

PCI-X2.0指定了266MHz(传输速率峰值为2133MB/s)和533MHz速率,扩充可规划空间至4096bytes,增加了16-bit的可变总线并且允许1.5伏特的电压讯号。

微型PCI是PCI2.2版中的新要素,主要用于笔记本电脑的内部。

Cardbus是32位33MHz的PCI,是PCMCIA的要素。

紧凑型PCI,usesEurocard-sizedmodulespluggedintoaPCIbackplane.

PC/104-Plus是一种利用PCI总线连接多个连接器的工业总线。

高级电讯计算体系(ATCA)是电讯工业下一代总线。

PCI - PCI总线

是一种高性能局部总线,是为了满足外设间以及外设与间高速数据传输而提出来的。在数字图形、图像和语音处理,以及高速实时数据采集与处理等对率要求较高的应用中,采用PCI总线来进行数据传输,可以解决原有的标准总线数据传输率低带来的瓶颈问题。

最早提出的工作在33MHz频率之下,传输带宽达到133MB/s(33MHz*32bit/s),基本上满足了当时的发展需要。随着对更高性能的要求,1993年又提出了64bit的PCI总线,后来又提出把的频率提升到66MHz。目前广泛采用的是32-bit、33MHz的PCI总线,64bit的更多是应用于服务器产品。从结构上看,PCI是在CPU和原来的系统总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现上下之间的接口以协调数据的传送。管理器提供信号缓冲,能在高时钟频率下保持高性能,社和为,,,等设备提供连接接口,工作频率为33MHz/66MHz。

系统要求有一个PCI控制卡,它必须安装在一个PCI插槽内。根据实现方式不同,PCI控制器可以与CPU一次交换32位或64位数据,它允许智能PCI辅助适配器利用一种总线主控技术与CPU并行地执行任务。PCI允许多路复用技术,即允许一个以上的电子信号同时存在于总线之上。

PCI总线的主要性能

(1)支持10台外设
(2)总线时钟频率33.3MHz/66MHz
(3)最大数据传输速率133MB/s
(4)时钟同步方式
(5)与CPU及时钟频率无关
(6)总线宽度32位(5V)/64位(3.3V)
(7)能自动识别外设

PCI总线的主要特点

•具有与和子系统完全并行操作的能力
•具有隐含的中央仲裁系统 
•采用多路复用方式(地址线和数据线)减少了引脚数 
•支持64位寻址 •完全的多总线主控能力 
•提供地址和数据的奇偶校验 
•可以转换5V和3.3V的信号环境

PCI - PCI插槽

PCI插槽

PCI插槽是基于PCI局部总线的扩展插槽,其颜色一般为乳白色,位于主板上AGP插槽的下方,ISA插槽的上方。其位宽为32位或64位,工作频率为33MHz,最大数据传输率为133MB/sec(32位)和266MB/sec(64位)。可插接显卡、声卡、、内置Modem、内置ADSLModem、USB2.0卡、IEEE1394卡、IDE接口卡、RAID卡、电视卡、视频采集卡以及其它种类繁多的扩展卡。PCI插槽是主板的主要扩展插槽,通过插接不同的扩展卡可以获得目前电脑能实现的几乎所有功能,是名副其实的“万用”扩展插槽。

PCI插槽是目前主板带有最多数量的插槽类型,在当前流行的台式机主板上,ATX结构的主板一般带有5~6个PCI插槽,而小一点的MATX主板也都带有2~3个PCI插槽。

根据实现方式不同,PCI控制器可以与CPU一次交换32位或64位数据,它允许智能PCI辅助适配器利用一种总线主控技术与CPU并行地执行任务。PCI允许多路复用技术,即允许一个以上的电子信号同时存在于总线之上。 

由于PCI 总线只有133MB/s的带宽,对声卡、网卡、视频卡等绝大多数输入/输出设备显得绰绰有余,但对性能日益强大的显卡则无法满足其需求。Intel在2001年春季的IDF上,正式公布了旨在取代PCI总线的第三代I/O技术,该规范由Intel支持的(Arapahoe Working Group)负责制定。2002年4月17日,AWG正式宣布3GIO1.0规范草稿制定完毕,并移交PCI-SIG(PCI特别兴趣小组,PCI-Special Interest Group)进行审核。开始的时候大家都以为它会被命名为Serial PCI(受到串 
行ATA的影响),但最后却被正式命名为PCI Express,Express意思是高速、特别快的意思。 

PCI - PCI-E标准

PCI-E或称PCI-Express是最新的总线和接口标准,它原来的名称为“3GIO”,是由英特尔提出的,很明显英特尔的意思是它代表着下一代I/O接口标准。交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。这个新标准将全面取代现行的PCI和AGP,最终实现总线标准的统一。它的主要优势就是数据传输速率高,目前最高可达到10GB/s以上,而且还有相当大的发展潜力。PCI-Express也有多种规格,从PCI-Express 1X到PCI-Express 16X,能满足现在和将来一定时间内出现的低速设备和高速设备的需求。能支持PCI-Express的主要是英特尔的i915和i925系列芯片组。

PCI-E采用了流行的点对点串行连接,比起PCI以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI-E的双单工连接能提供更高的传输速率和质量,它们之间的差异跟半双工和全双工类似。

PCI-E的接口根据总线位宽不同而有所差异,包括X1、X4、X8以及X16,而X2模式将用于内部接口而非插槽模式。PCI-E规格从1条通道连接到32条通道连接,有非常强的伸缩性,以满足不同系统设备对数据传输带宽不同的需求。此外,较短的PCI-E卡可以插入较长的PCI-E插槽中使用,PCI-E接口还能够支持热拔插,这也是个不小的飞跃。PCI-E X1的250MB/秒传输速度已经可以满足主流声效芯片、网卡芯片和存储设备对数据传输带宽的需求,但是远远无法满足图形芯片对数据传输带宽的需求。 因此,用于取代AGP接口的PCI-E接口位宽为X16,能够提供5GB/s的带宽,即便有编码上的损耗但仍能够提供约为4GB/s左右的实际带宽,远远超过AGP 8X的2.1GB/s的带宽。

PCI

尽管PCI-E技术规格允许实现X1(250MB/秒),X2,X4,X8,X12,X16和X32通道规格,但是依目前形式来看,PCI-E X1和PCI-E X16已成为PCI-E主流规格,同时很多芯片组厂商在南桥芯片当中添加对PCI-E X1的支持,在北桥芯片当中添加对PCI-E X16的支持。除去提供极高数据传输带宽之外,PCI-E因为采用串行数据包方式传递数据,所以PCI-E接口每个针脚可以获得比传统I/O标准更多的带宽,这样就可以降低PCI-E设备生产成本和体积。另外,PCI-E也支持高阶电源管理,支持热插拔,支持数据同步传输,为优先传输数据进行带宽优化。

优点:

与PCI总线相比,PCI-Express总线主要以下优点:

1) PCI-Express是串行总线,进行点对点传输,每个传输通道独享带宽。

2) PCI-Express总线支持双向传输模式和数据分通道传输模式。其中数据分通道传输模式即PCI-Express总线的x1、x2、x4、x8、x12、x16和x32多通道连接,x1单向传输带宽即可达到250MB/s,双向传输带宽更能够达到500MB/s,这个已经不是普通PCI总线所能够相比的了。

3) PCI-Express总线充分利用先进的点到点互连、基于交换的技术、基于包的协议来实现新的总线性能和特征。电源管理、服务质量(QoS)、热插拔支持、数据完整性、错误处理机制等也是PCI-Express总线所支持的高级特征。

4) 与PCI总线良好的继承性,可以保持软件的继承和可靠性。PCI-Express总线关键的PCI特征,比如应用模型、存储结构、软件接口等与传统PCI总线保持一致,但是并行的PCI总线被一种具有高度扩展性的、完全串行的总线所替代。

5) PCI-Express总线充分利用先进的点到点互连,降低了系统硬件平台设计的复杂性和难度,从而大大降低了系统的开发制造设计成本,极大地提高系统的性价比和健壮性。系统总线带宽提高同时,减少了硬件PIN的数量,硬件的成本直接下降。

缺点:

1) 并行总线无法连接太多设备,总线扩展性比较差,线间干扰将导致系统无法正常工作;

2) 当连接多个设备时,总线有效带宽将大幅降低,传输速率变慢;

3) 为了降低成本和尽可能减少相互间的干扰,需要减少总线带宽,或者地址总线和数据总线采用复用方式设计,这样降低了带宽利用率。 PCI-Express总线是为将来的计算机和通讯平台定义的一种高性能,通用I/O互连总线。

PCI - 发展历史

PCI

PCI标准的开发于1990年前后开始于英特尔公司。1992年6月22日,英特尔发表PCI1.0标准,该标准仅限于组件级规范。1993年4月30日,PCI-SIG发表了PCI2.0标准,这个标准第一次建立了连接器与主板插槽间的标准。

PCI标准被立即应用于服务器中,取代了先前的MCA及EISA,成为服务器扩展总线的不二选择。在主流个人计算机中,PCI标准则缓慢地取代着VESA局部总线(VLB);直至1994年后期第二代奔腾PC推出后,该标准方得以实现具有重要意义的市场突破。1996年,VLB彻底退出了个人计算机市场,制造厂商甚至将PCI标准应用于486计算机中。EISA标准则与PCI标准共存使用至2000年。苹果电脑在1995年中期将PCI标准应用于专业产品PowerMacintosh电脑中(而取代了NuBus),而消费者产品MacintoshPerforma则于1996年中期完成了换代(取代了LCPDS)。

后续版本的PCI标准不断加入了新的功能与性能提升,包括66MHz/3.3V标准,133MHzPCI-X以及适应多种主板板型等。2004年,串行总线标准PCI-Express面世后,主板制造商逐渐减少了传统PCI插槽,而引入PCIExpress接口。虽然这两种接口还会同时并存,但是传统的PCI总线将会慢慢的消失。

阅读(2757) | 评论(1) | 转发(0) |
0

上一篇:内核通知链的学习

下一篇:C语言的inline

给主人留下些什么吧!~~

chinaunix网友2011-03-09 13:22:02

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com