PCI总线宽度为的宽度为32位不能扩充到64位

”是由PCISIG (PCI Special Interest Group)推出的一种局部并行总線标准。在现在电子设备中应用非常广泛下面我详细介绍下PCI总线宽度为的工作原理,希望对大家有所帮助 

  随着计算机技术的继续發展,CPU的处理速度越来越快EISA总线的32MB/s带宽已经满足不了CPU的需求,CPU外围总线带宽已经成为制约计算机处理能力继续提高的瓶颈1991年下半年,Intel公司首选提出PCI总线宽度为的概念并与IBM、Compaq、AST、HP、DEC等100多家公司成立PCISIG组织,联合推出PCI总线宽度为       

  随着PCI总线宽度为的发展,PCI总线宽度为又發展到PCI-X时代与PCI总线宽度为相比,PCI –X总线的位宽未改变而是将时钟频率进行了提高。   

  与PCI总线宽度为相比PCI-X除掉在时钟频率高外,还茬传输协议上进行了改进PCI-X采用了“寄存器到寄存器”的新协议,在新协议模式下发送方发出的数据信号会被预先送入一个专门的寄存器内,并在寄存器中保存一个时钟周期接收端只要在这个周期内做出响应,取走数据即可PCI协议中却没有这个缓冲,数据发出去后洳果对方因某种原因没能及时接收,数据将会被丢弃   

  如今,PCI总线宽度为已经发展到PCI-Express时代这是一个串行高速总线,也是由PCISIG推出分為X1,X2,X4,X8,X12,X16X32七种模式,X1模式有2对差分线1对收1对发,X2模式有4对差分线2对收2对发,其它类推PCI-E

  PCI总线宽度为是一种树型结构,并且独立于CPU总线可以和CPU总线并行操作。PCI总线宽度为上可以挂接PCI设备PCI桥片PCI总线宽度为上只允许有一个PCI主设备,其他的均为PCI 从设备而且读写操作只能茬主从设备之间进行,从设备之间的数据交换需要通过主设备中转PCI总线宽度为结构如下图所示。

  PCI主设备最少需要49根线从设备最少需要47根线,剩下的线可选在介绍PCI管脚功能前,先来说明下PCI管脚信号的类型      

Tri-state),每次由且只由一个单元拥有并驱动低有效双向三态信号驱动一个s/t/s信号到低的单元在释放该信号浮空之前必须要将它驱动到高电平至少一个周期。这个特点很重要在后面我们分析PCI信号质量案例的时候会用到;    

  #:此符号代表该信号在低电平时有效。  

  AD[31:0]:t/s地址数据复用引脚。FRAME#开始变为有效的那个时钟周期内AD[31:0]上传输的昰地址对于配置空间和存储空间,这是一个双字节地址对于I/O空间,这个一个单字节地址传输数据时,AD[7:0]为最低字节数据        

  PAR:t/s,AD[31:0]和C/BE[3:0]#仩的数据偶效验PAR与AD[31:0]有相同的时序,但延迟一个时钟在地址段后一个时钟,PAR稳定并有效;对于数据段在写传输中,PAR在IRDT#有效一个时钟稳萣并有效而在读传输中,PAR在TRDY#有效后一个时钟周期稳定并有效一旦PAR有效,它必须保持有效直到当前数据段完成后一个时钟在地址段和寫数据段,主PCI设备驱动PAR在读数据段,目标从PCI

  FRAME#:s/t/s帧开始信号。由当前总线主设备驱动以说明一个操作的开始和延续。FRAME#有效说明總线开始传输,当FRAME#维持有效时说明总线传输继续进行,当FRAME#无效时说明传送的最后一个字节正在进行。       

Ready)说明传输的启动者完成当前数據传输的能力。在读操作中IRDY#有效说明总线主设备已准备好接收收据在写操作中它说明AD[3:0]上已有有效数据。在IRDY#和TRDY#都有效的时钟周期完成數据传输在IRDY#和TRDY#都有效之前,需要插入等待状态        

  TRDY#:s/t/s,目标设备准备就绪(Target Ready)说明传输的目标设备完成当前的数据传输能力。在写操作ΦTRDY#有效说明目标设备已经准备好接收数据在读操作中它说明AD[31:0]上已有有效数据。        

  DEVSEL#:s/t/s设备选择。当驱动有效时说明驱动它嘚设备已将其地址解码为当前操作的目标设备。   

  REQ#:t/s申请。向仲裁器说明该单元想使用总线这是一个点对点的信号,每个总线主设備都有自己的REQ#     

  GNT#:t/s,允许仲裁器向申请单元说明其对总线的操作已被允许。这是一个点对点信号每个总线主设备都有自己的GNT#。   

Error)該引脚用于反馈在除特殊周期外的其他传送过程中的数据奇偶校验错误。PERR#维持三态在检测到奇偶校验错误后,在数据结束后两个时钟周期由接收数据的单元驱动PERR#有效。并至少持续一个时钟周期只有发出DEVSEL#的单元才能发出PERR#。      

  SERR#:o/d系统错误(System Error)。用于反馈地址奇偶校验错误、特殊周期命令中的数据奇偶校验错误和将引起重大事故的其他灾难性的系统错误  

  一个能高速缓存的PCI存储器必须利用这两条高速缓存支持引脚作为输入,以支持写通(write-through)回写(write-back)如果可高速缓存的存储器是位于PCI上,则连接回写高速缓存到PCI的桥路必须利用这两条引脚且作為输出。连接写通高速缓存的桥路可以只使用一条引脚SDONE      

  SDONE: in/out,监视进行表明对当前操作的监视状态。当其无效时说明监视结果仍未定。当有效时说明监视已有结果。      

  AD[63:32]:t/s地址数据复用引脚提供32个附加位。在一个地址段传送64位地址的高32位。在数据段传送64位Φ的高32位。   

  PAR64:t/s高双字偶校验。中国通信人博客 Y*E

  PCI信号为半波驱动方式为了更好的说明什么是半波驱动方式,下面我用一个仿真實例来说明下图为仿真链路。

  从上图可以看出PCI_OUT_3.3V输出先是以大约2.3V的半幅度来驱动总线,经过大约2ns延迟后信号到达接收端,接收端阻抗不匹配将信号反射回始端,反射信号经过2ns的延迟后到达始端驱动信号与反射信号在始端出现叠加,使PCI_OUT_3.3V在大约4ns的位置达到全幅度3.3Vの后经过短暂振荡后趋于平衡。由于大多数PCI器件片内都内置了限幅器件所以PCI信号在不在始端添加串行匹配电阻都可以使PCI信号很快平稳。呮是加串阻后信号幅度更低,使PCI器件的使用寿命更长   

  假设PCI仲裁器上接三个PCI设备,如下图所示

  假定PCI1,PCI2,PCI3三个设备的优先级相同,仩电后PCI总线宽度为仲裁器会将PCI1设备的GNT1信号驱动为低电平(有效)。即PCI1占用PCI总线宽度为如果此时PCI1上没有数据传输,但PCI2上有数据要传输PCI2设备僦会驱动REQ2为低电平来向仲裁器发出PCI总线宽度为使用请求。仲裁器在时钟的上升沿采样到REQ2信号在下一个时钟沿,PCI2将FRAME和IRDY驱动为低电平(FRAME和IRDY是所囿PCI设备共用的)仲裁器在时钟的上升沿采样到这两个信号后,就将GNT2驱动为低电平应答PCI2的请求,这样PCI2就拥有了PCI总线宽度为的使用权。   

  这里有一个问题为什么PCI总线宽度为仲裁器不在采样到REQ2信号有效后立即将GNT2置低,将PCI总线宽度为的使用权交给PCI2设备而是要等到PCI2设备的FRAME和IRDY信号有效后才执行呢?   

  这主要是仲裁器避免某些PCI设备申请总线使用权而实际上不使用所以要等到FRAME和IRDY信号有效后(表示数据传输准备就緒)才授权使用总线。如果仲裁器在采样到REQ2有效后一直没有采样到FRAME和IRDY信号有效,仲裁器会不会一直等待下去呢答案是不会,仲裁器内部囿一个定时器等到定时器超时后,仲裁器就不再等了   

  仲裁规则:优先级高设备抢占优先级低设备资源   

  某个时刻,PCI1正在使用PCI总線宽度为传输数据如果此时PCI2想要使用PCI总线宽度为,于是将REQ2驱动为低向PCI总线宽度为仲裁器申请PCI总线宽度为的使用权,此时REQ1和REQ2都处于有效狀态虽然PCI2的优先级高于PCI1,但是总线仲裁器不会马上响应PCI2的请求而是等待PCI1完成一次操作(注意:是一次操作,不是全部)后PCI1将FRAME和IRDY总线驱动為高(每完成一次操作都需要进行此操作的)。

  PCI2探测到PCI总线宽度为空闲后将FRAME和IRDY信号驱动为低。总线仲裁器采样到这两个信号有效后将GNT1驅动为高,同时将GNT2驱动为低将总线的使用权转交给PCI2。

  如果PCI1还有数据等待传输那么它会将REQ1一直保持为低电平,一直进行总线申请┅直等待到PCI2完成所有操作后,还会将PCI总线宽度为的使用权释放给PCI1     

  前面已经说过了,在FRAME信号有效后的第一时钟周期AD[31:0]总线上传输的是目标PCI器件的地址,C/BE[3:0]上传输的操作命令类型如下图所示。     

  PCI总线宽度为写时序如下图所示 

  如上图所示,在FRAME#有效后的第一个时钟周期内AD上传输的是要写入目标PCI设备的地址信息,C/BE#上传输的是命令类型(I/O写命令为0011)DEVSEL#信号有效后,表明目标PCI设备已经被选择到IRDY#和TRDY#同时有效後,主PCI设备向目标PCI设备中传输要写入的数据在第5个时钟周期时,IRDY#和TRDY#同时变为无效状态AD总线上被插入一个等待周期,第6和第7个时钟周期時IRDY#有效,但是TRDY#无效传输仍然不能有效进行,总线上被继续插入两个等待周期第8个时钟周期时,IRDY#和TRDY#都有效数据传输继续。

  读操莋同写操作类似只是在FRAME#有效后的第一个时钟周期内,C/BE#上传输的是读操作命令而已(I/O读操作命令为0010)    

  所有除主桥之外的设备功能,必须實现配置地址空间目前有三种类型的首部格式:首部类型0,用于全部除PCI桥之外的设备首部类型1用于PCI-PCI桥首部类型2,用于Card Bus桥

  每個PCI设备的配置空间大小为256字节,用来存放PCI配置文件其中文件头标识区占64字节,下图为Type0类型首部

  2).设备ID:用来标识设备类型。

  3).命囹寄存器:为发出PCI和响应PCI总线宽度为命令提供粗略控制

  4).状态寄存器:用于记录PCI总线宽度为的事件状态信息。

  5).版本标识:标识PCI设備的版本

  6).分类代码:用来表示PCI设备的功能分类和特定的编程接口,为只读存储器

  7).Cache行大小:指定系统中高速缓存cache一行的长度,鉯Dword为单位可读写。

  8).持有定时器:指定PCI总线宽度为主设备的延时计时值以PCI总线宽度为的时钟为单位。

  9).配置类型:表示头标区类型以及是否为多功能设备。

  11).基地址0~5:实现PCI设备所有使用地址空间的再定位

  12).扩展ROM基地址:表示ROM再内存中的起始地址,执行其中玳码完成PCI初始化

  13).中断线: 报告PCI设备与系统中断连接情况。

  14).中断引脚:表示PCI设备使用了哪些中断引脚

  15).最短获准时间:指定PCI設备对延时计数器的设定值。

  在测试PCI总线宽度为的TRDY信号时发现该信号从低电平拉升到高电平时太缓慢,如下图所示   

  经过分析該PCI总线宽度为的逻辑代码得知,该逻辑在处理s/t/s 信号时没有完全按照规范要去来做在将TRDY信号置为低电平有效后直接释放到高阻态,没有将咜驱动到高电平后再释放因此,TRDY在低电平位置被释放到高阻态后完全依靠外部的上拉电阻将其拉到高电平位置,由于外部上拉比较弱导致我们上面见到的TRDY电平上升缓慢现象。修改逻辑代码后问题消失。


}

我要回帖

更多关于 pci总线的宽度为32位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信