没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1 PCIe 入门
1.1 PCI
1.1.1 PCI 总线基本概念
PCI 是 Peripheral Component Interconnect(外设部件互连标准)的缩写,它曾经是
个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。目
前该总线已经逐渐被 PCI Express 总线所取代。
PCI 即 Peripheral Component Interconnect,中文意思是“外围器件互联”,是由
PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。PCI 总线是由
ISA(Industy Standard Architecture)总线发展而来的,是一种同步的独立于处理器
的 32 位或 64 位局部总线。从结构上看,PCI 是在 CPU 的供应商和原来的系统
总线之间插入的一级总线,具体由一个桥接电路实现对这一层的管理,并实现
上下之间的接口以协调数据的传送。从 1992 年创立规范到如今,PCI 总线已成
为了计算机的一种标准总线,广泛用于当前高档微机、工作站,以及便携式微
机。主要用于连接显示卡、网卡、声卡。
注:ISA 并行总线有 8 位和 16 位两种模式,时钟频率为 8MHz,工作频率为
33MHz/66MHz。
PCI 总线是一种树型结构,并且独立于 CPU 总线,可以和 CPU 总线并行操作。
PCI 总线上可以挂接 PCI 设备和 PCI 桥,PCI 总线上只允许有一个 PCI 主设备(同
一时刻),其他的均为 PCI 从设备,而且读写操作只能在主从设备之间进行,
从设备之间的数据交换需要通过主设备中转。
注:这并不意味着所有的读写操作都需要通过北桥中转,因为 PCI 总线上的主
设备和从设备属性是可以变化的。比如 Ethernet 和 SCSI 需要传输数据,可以通
过一种叫做 Peer-to-Peer 的方式来完成,此时 Ethernet 或者 SCSI 则作为主机,
其它的设备则为从机。具体会在后面的博文中详细介绍。
一个典型的 33MHz 的 PCI 总线系统如上图所示,处理器通过 FSB 与北桥相连
接,北桥上挂载着图形加速器(显卡)、SDRAM(内存)和 PCI 总线。PCI 总线
上挂载着南桥、以太网、SCSI 总线(一种老式的小型机总线)和若干个 PCI 插
槽。CD 和硬盘则通过 IDE 连接至南桥,音频设备以及打印机、鼠标和键盘等也
连接至南桥,此外南桥还提供若干的 USB 接口。
PCI 总线是一种共享总线,所以需要特定的仲裁器(Arbiter)来决定当前时刻的
总线的控制权。一般该仲裁器位于北桥中,而仲裁器(主机)则通过一对引
脚,REQ#(request) 和 GNT# (grant)来与各个从机连接。如下图所示:
需要注意的是,并不是所有的设备都有能力成为仲裁器(Arbiter)或者
initiator 。
最初的 PCI 总线的时钟频率为 33MHz,但是随着版本的更新,时钟频率也逐渐
的提高。但是由于 PCI 采用的是一种 Reflected-Wave Signaling 信号模型(后面
会详细的介绍),导致了时钟频率越高,总线的最大负载越少,如下图所示:
到了 PCI-X2.0 版本,整个总线就只能插一个 PCI 卡了(相当于两个 PCI 负载),
为了能够在主板上提供更多的插槽,则必须通过连接多个 PCI 桥来实现(后面
会详细地介绍)。
1.1.2 一个典型的 PCI 总线周期
PCI 总线是一种地址和数据复用的总线,即地址和数据占用同一组信号线 AD。
PCI 总线的所有信号都与时钟信号同步,及所有的信号的变化都发生在时钟的上
升沿,或者在时钟上升沿进行采样。
如下图所示,除了时钟信号 CLK 和数据地址复用信号 AD 之外,PCI 总线至少还
应包括 FRAME#(用于表示一次数据传输的起始)、C/BE#(Command/Byte
Enable)、IRDY#(Initiator Ready for data)、TRDY#(Target ready)、DESEL#
(Device Selec,片选信号,用于选择 PCI 设备)和 GNT#(Grant)信号等。
注:完整的信号时序图,请参考 PCI Spec。信号名后面的#表示该信号低电平有
效。
下面来介绍一个简单的例子,主机接收来自特定从机的数据。
如上图所示:
1、在第一个时钟上升沿,FRAME#和 IRDY#都为 inactive,表明总线当前处于空
闲状态。与此同时,某个设备的 GNT#信号处于 active,表明总线总裁器已经选
定当前设备为下一个 initiator(可以理解为主机)。
2、在第二个时钟上升沿,FRAME#被 initiator 拉低,表明新的事务
(Transaction)已经开始。与此同时,地址和命令被依次发送到 AD 上,总线上
面的所有其他设备(从机)都会锁存这些信息,并检查地址和命令是否与自己
匹配。
3、在第三个时钟上升沿,IRDY#处于 active 状态,表明主机准备就绪,可以接
收数据了。AD 信号上的旋转的箭头表示 AD 信号目前处于三态状态(处于输出
和输入的转换状态),即 Turn‐around cycle。需要注意的是,此时的 TRDY#应当
处于 inactive 状态,以保证 Turn‐around cycle 顺利进行。
4、在第四个时钟上升沿,PCI 总线上的某个从机确认身份,并依次将 DEVSEL#
信号和 TRDY#拉低,并将相应的数据输出到 AD 上。此时,FRAME#信号为
active 状态,表明这并不是最后一个数据。
5、在第五个时钟上升沿,TRDY#处于 inactive 状态,表明从机尚未就绪,因此
所有的操作暂缓一个时钟周期(或者说插入了一个 Wait State)。PCI 总线最多
允许 8 个这样的 Wait State。
6、在第六个时钟上升沿,从机向主机发送第二个数据。此时,FRAME#信号依
旧为 active 状态,表明这并不是最后一个数据。
7、在第七个时钟上升沿,IRDY#处于 inactive 状态,表明主机尚未就绪,再次插
入一个 Wait State。但是此时从机依旧可以向 AD 上发送数据。
8、在第八个时钟上升沿,AD 上的第三个数据被发送至主机,由于此时
FRAME#信号被拉高,即 inactive,表明这是本次事务(Transaction)的最后一个
数据。此后,所有的控制信号均被拉高,处于 inactive 状态,AD、FRAME#和
C/BE#处于三态状态。
1.1.3 PCI 总线的反射波信号
PCI Spec 规定了每个 PCI 总线上最多可以连接多达 32 个 PCI 设备,但是实际
上却远远达不到 32 个,33MHz 的 32 位 PCI 总线一般只能连接 10 到 12 个负
载。
注:如果使用插槽连接,则一个连接算两个 PCI 设备,插槽和 PCI 卡分别算作一
个 PCI 设备。也就是说一个 33MHz 的 PCI 总线最多只能连接 4 到 5 个插槽即 PCI
卡。
这是因为 PCI 总线在设计的时候,为了降低功耗,采用了一种叫做 reflected‐
wave signaling 的技术,如下图所示:
由图可知,为了降低功耗 PCI 设备的发送端采用了一种 weak transmit buffers,
其只能驱动信号电平达到实际需求的一半。然后依靠反射回来的信号叠加到原
本的信号上,使得信号电平达到实际的需求。当然,所有的这些过程都要求在
一个时钟周期内完成,这种机制也限制了 PCI 总线频率的提高,也限制了单个
剩余225页未读,继续阅读
资源评论
纳兰铁柱
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功