原创 PCI/PCIE笔记

2012-10-29 19:17 3437 20 20 分类: FPGA/CPLD

PCI总线的存储器读写总线事务

Non-Posted总线事务:总线事务在数据到达目的地才能结束,引起总线拥塞。

Posted总线事务:总线事务可逐级接管、结束,缓解总线拥塞,PCI总线只有存储器写/写并无效请求可使用Posted总线事务。

Delayed总线事务:PCI桥或目标设备收到Delay读写请求后使用Retry周期,当重新发起相同的总线周期时,PCI桥或设备接收请求并转为Delay读写完成总线事务逐级送回;只能在Non-Posted总线事务中使用,但过多的总线重试周期但仍不理想。

Split总线事务:存储器读请求逐级接管、结束并记录发起方ID,接收方用存储器度完成总线事务主动把数据和ID逐级传回。在PCI-X中首先采用,用来替代Delayed总线事务。

Combining

Merging

Collapsing

读写操作

1. 检测到FRAME#有效的第一个时钟上升沿为address phase。

2. IRDY#或TRDY#无效时,为WAIT周期。

3. 一个data phase 完成标志是IRDY# and (TRDY# or STOP#)有效;master或target一旦允许当前数据传输,在当前data phase完成前不能撤消有关信号。

4. 一个data phase包括wait cycles和一个数据传输。

5. C/BE#必须从data phase第一个时钟沿到所有数据传输完成一直保持有效。

6. 读传输的第一个data phase前需要一个turnaround cycle,由TRDY#保证。target必须在turnaround cycle后DEVSEL#有效时开始驱动AD信号。

7. 写传输不需要turnaround cycle。

8. 最后的data phase结束标志是FRAME#无效、IRDY#和TRDY#有效。

master停止传输

    原因:completion,time out(包括master abort)。

    方式:使FRAME#无效、IRDY#有效;此时target不一定要立刻使TRDY#有效,但不超过2或3个时钟周期。

    例外:Memory Write and Invalidate命令到达缓存边界时,超时停止才起作用。

    master abort:master发起传输后,DEVSEL#长时间无效,master abort会发生,仍然通过FRAME#无效、IRDY#有效结束操作。

target停止传输

    类型:retry,disconnect,target abort。

    retry:在第一个data phase时发生,target同时使STOP#有效、TRDY#无效,没有任何数据传输。

    disconnect:在第一个data phase时或之后发生,target同时使STOP#有效、TRDY#无效,可能有或无数据传输。

    target abort:如果target有效了DEVSEL#,就可以在任何时间通过同时使DEVSEL#无效、STOP#有效,停止传输。

PCI总线的中断机制

由于INTx信号属于边带信号、异步信号,PCI总线桥不处理此信号,此信号的传输并不与PCI总线的数据传递同步,所以需要同步。

“读刷新方法”:中断服务例程在使用“PCI设备写入存储器”的这些数据之前,需要对这个PCI设备进行读操作,利用PCI总线的传送序规则,强制将数据写入存储器中。

MSI中断机制:PCI设备向HOST处理器指定的存储器地址写指定的数据(通常含有中断向量号)。在PCI V2.2起规定,但并不常用。

文章评论0条评论)

登录后参与讨论
我要评论
0
20
关闭 站长推荐上一条 /2 下一条