一个典型的PCI Bus周期

      PCI Bus是一种地址和数据复用的Bus,即地址和数据占用同一组信号线AD。PCI Bus的所有信号都与时钟信号同步,即所有的信号变化都发生在时钟的上升沿,或者在时钟上升沿进行采样。


      除了时钟信号CLK和数据地址复用信号AD之外,PCI总线至少还应包括FRAME#(用于表示一次数据传输的起始)、C/BE(Command/Byte Enable)、IRDY#(Initiator Ready for data)、TRDY#(Target Ready)、DESEL#(Device Selec,片选信号,用于选择PCI设备)和GNT#(Grant)信号等。信号名后的“#”表示该信号低电平有效。


      下面来介绍一个简单的例子,主机接收来自特定从机的数据。
基于PCI Bus的处理器系统
在这里插入图片描述
如上图所示:

  1. 在第一个时钟上升沿,FRAME#和IRDY#都为inactive,表明Bus当前处于空闲状态。与此同时,某个设备的GNT#信号处于active,表明Bus仲裁器已经选定当前设备为下一个initiator(可以理解为主机)。
  2. 在第二个时钟上升沿,FRAME#被initiator拉低,表明新的事务(Transaction)已经开始。与此同时,地址与命令被一次发送到AD,Bus上面的所有其他设备(从机)都会锁存这些信息,并检查地址和命令是否与自己匹配。
  3. 在第三个时钟上升沿,IRDY#处于active状态,表明主机准备就绪,可以接收数据。AD信号上的旋转箭头表示AD信号目前处于三态状态(处于输出和输入的转换状态),即Turn-around cycle。要注意的是,此时的TRDY#应处于inactive状态,以保证Turn-around cycle顺利进行。
  4. 在第四个时钟上升沿,PCI Bus上某个从机确认身份,并以此将DEVSEL#信号和TRDY#拉低,并将相应的数据输出到AD上。此时,FRAME#信号为active状态,表明这不是最后一个数据。
  5. 在第五个时钟上升沿,TRDY#处于inactive状态,表明从机尚未就绪,因此所有操作暂缓一个时钟周期(或者说插入了一个Wait State)。PCI Bus最多允许8个这样的Wait State。
  6. 在第六个时钟上升沿,从机向主机发送第二个数据。此时,FRAME#信号依旧为active状态,表明不是最后一个数据。
  7. 在第七个时钟上升沿,IRDY#处于inactive状态,表明主机尚未就绪,再次插入一个Wait State。但是此时从机依旧可以向AD上发送数据。
  8. 在第八个时钟上升沿,AD上的第三个数据被发送至主机,由于此时FRAME#信号被拉高,即inactive,表明是本次事务(Transaction)的最后一个数据。此后,所有的控制信号均被拉高,处于inactive状态,AD、FRAME#和C/BE#处于三态状态。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCI(Peripheral Component Interconnect)协议中,双地址周期命令(Dual Address Cycle Command)是一种用于访问PCI设备配置空间的特殊命令。 双地址周期命令允许对32位的配置空间进行访问,因为PCI设备的配置空间通常是256字节(32位)。在正常的单地址周期中,只有其中的低11位用于选择配置空间的偏移地址,因此最大只能访问到64字节的配置数据。 当需要访问超过64字节的配置数据时,就需要使用双地址周期命令。这个命令通过两个连续的PCI事务周期来实现。在第一个周期中,低11位用于选择配置空间的偏移地址,高21位用于选择PCI设备的设备号。在第二个周期中,只使用高21位来选择设备号,并读取或写入配置数据。 在PCI总线上,双地址周期命令通过DEVSEL#(Device Select)信号来呈现。当双地址周期命令被发起时,DEVSEL#会在第一个周期中保持激活状态(拉低),以指示PCI设备该处理双地址周期命令。在第二个周期中,DEVSEL#变为非激活状态(高电平),表示数据传输完成。 至于C/BE(Command/Byte Enable)信号,在这两个周期中传送的是命令和字节选择信息。在第一个周期中,C/BE传输命令信息,指示执行读取或写入操作。在第二个周期中,C/BE传输字节选择信息,表示要读取或写入的配置数据位。 总结起来,双地址周期命令允许访问PCI设备配置空间的全部32位数据。通过两个连续的PCI事务周期,使用设备号和偏移地址进行选择和访问。在这两个周期中,DEVSEL#和C/BE信号起到指示和传输命令、数据的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值