PCI局部总线协议的学习(1)

上一篇 / 下一篇  2007-07-20 16:20:14 / 天气: 晴朗 / 心情: 郁闷

PCI局部总线协议的学习(1)

  最近在做关于PCI的IP,所以要先学习一下PCI局部总线协议。将学习的内容陆续写出来,表示自己已经理解这一部分了。

  1 总线交易

  1.1 总线读交易(Read Transaction)

  1.2 总线写交易(Write Transaction)

  1.3 交易的终止(Transaction Termination)

    所有交易的结束标志是FRAME#信号和IRDY#信号均已撤消而进入总线空闲状态。

  1.3.1 由主设备发起的终止(Master Initiated Termination)

    (1)正常终止(normal termination):

点击看大图

    (2)废止终止(abort termination):

点击看大图

总之,在所有PCI交易中,FRAME#和IRDY#应遵循如下原则:

(1)FRAME#和它相对应的IRDY#定义了总线的空闲状态和忙状态。当二者之一有效时,总线处于忙状态;当二者都无效时,总线处于空闲状态。

(2)一旦FRAME#被撤消,则同一个交易期内不能重新有效。

(3)除非IRDY#有效,否则不能撤消FRAME#(IRDY#必须在撤消FRAME#的第一个时钟边沿有效)。

(4)一旦主设备建立了IRDY#,在当前数据期完成之前,它不能改变IRDY#或FRAME#。

(5)最后一个数据期完成后,主设备必须撤消IRDY#信号。

  1.3.2 由目标设备发起的终止(Target Initiated Termination)

(1)重试(Retry):没有数据传输,目标忙,暂不能进行交易。

点击看大图

(2)断开(Disconnect):分为有数据断开和无数据断开两种情形。

有数据断开(disconnect with data):

点击看大图

无数据断开情形1(disconnect1 without data):

点击看大图

无数据断开情形2(disconnect2 without data):

点击看大图

(3)目标废止终止(Target Abort)

作为主设备,必须具备正确处理所有目标终止的能力:

(1)在目标终止时撤消REQ#,保持无效至少两个时钟周期。

(2)因重试而终止时,主设备必须无条件的重复同一请求,直到该交易完成。同一请求指同一地址,同一命令,同一字节使能及写交 易的同一写数据。一般的,主设备在发生重试时先撤消REQ#并保持无效至少两个时钟周期,然后重新使REQ#有效,申请使用总线。当获得总线使用权时,进 行同一交易的重复。

  1.3.3 延迟交易(Delayed Transaction)

  使用延迟交易的设备有两种:I/O控制器和桥(特别是PCI-PCI桥)。一般的,I/O控制器只能处理一个单延迟交易,桥能够处理多个延迟交易以提高系统性能。延迟交易的目的是及时让出总线,提高总线利用率。

(1)延迟交易基本操作:

  一个延迟交易的完成需经过主设备请求、目标设备完成请求和主设备完成交易三个步骤。

第一步:主设备在总线上产生一个交易,目标设备译码该访问、锁存完成访问所需的请求信息并采用重试终止交易。

第二步:目标设备利用锁存的请求信息,独立完成请求。如读请求就获得读取的数据和完成状态。

第三步:主设备成功的重新仲裁总线并重复同一请求,目标设备译码请求并向主设备返回完成状态,如果是读请求还返回数据。

(2)延迟请求所需的信息,目标设备必须锁存:

    ● 地址;

    ● 命令;

    ● 字节使能;

    ● 奇偶错误响应位(配置空间命令寄存器的bit6)被设置时,锁存地址和数据的奇偶信息;

    ● REQ64#(如果是64位传输);

(3)延迟交易的放弃

    对于一个延迟的请求,在它没有完成之前,要求主设备不断的重复该延迟的请求,因此,当一个延迟的请求还没有在目的总线进行完成尝试时,主设备可以将它放 弃。如果目标设备已经在目标总线上进行完成尝试后,主设备必须继续重复操作,直到在目的总线上完成,不能放弃。目标设备可以在下列两种情况下放弃延迟完 成:其一,延迟完成时对一个可预取区域的读操作;其二,在215个时钟内主设备没有重复请求所有的延迟完成(读或写,可预取或不可预取)。


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar