问题描述
一般问题描述:
在第77页的“PCI-X用户指南”的“基本启动程序控制”部分下,它指出:
“通过设置位28请求64位宽数据传输。如果与存储器命令或分离完成一起使用,并且请求的传输至少为三个QWORDS,则设置此位将导致64位数据传输请求总线。否则,传输将作为32位数据传输进行。“
为什么是这样?
解决/修复方法
这消除了与FRAME#的反断言相关的一些不期望的极端情况。
是的,如果你有一个QWORD,可以进行一次64位传输。但它提出了一些必须解决的极端案例。
例如,如果断言FRAME#和REQ64#,则对于单个数据相位QWORD传输,然后立即置位这些信号以指示您正在执行一个数据相位。如果目标仅响应DEVSEL#而不是ACK64#,该怎么办?然后,只有一个DWORD传输,然后你必须完成传输,因为你表明它是一个数据相位。所以你必须开始第二次转移才能移动另一个DWORD。
在开发核心时,决定将小型转移仅转换为32位,这样就不会出现这种情况。权衡是:
*对于小型转移,总是有一对“偶数”的数据相位
(恒定,小开销~50%)
与
*有时必须进行多次转移
(取决于系统,大开销> 100%)
如果您只有32位数据,则应进行32位传输。
没有回复内容