如果充当桥接器的AXI从站已接受可缓存(ACACHE [0])和可缓存(ACACHE [1])写入并响应BRESP,在以后接受来自同一AXI主站的重叠但被标记为不可缓存的读取时,是否需要刷新此缓冲的写操作?
换句话说,应该使用可缓存位来确定何时应刷新可缓冲写入,还是仅在收到具有匹配AWID的不可缓冲写入时才按规范中所述进行刷新?
如果充当桥接器的AXI从站已接受可缓存(ACACHE [0])和可缓存(ACACHE [1])写入并响应BRESP,在以后接受来自同一AXI主站的重叠但被标记为不可缓存的读取时,是否需要刷新此缓冲的写操作?
换句话说,应该使用可缓存位来确定何时应刷新可缓冲写入,还是仅在收到具有匹配AWID的不可缓冲写入时才按规范中所述进行刷新?
我想是一个在写数据到达最终目的地之前决定为可缓冲写操作提供BRESP的从站。用于对来自相同或不同母版的后续读取或写入进行任何危险检查。
不可缓冲的写入将需要刷新写入缓冲区以维持正确的系统事件顺序,但是如果检测到命中,则可以通过转发来自写入缓冲区的写入数据来处理读取,而不是在写入缓冲区时延迟主机被冲洗。
读取的可缓存性(是否为实字?)不应影响缓冲区是否被刷新。
还是我想念一个更微妙的问题?
我猜想如果您想使系统万无一失(并且更简单),则刷新写入缓冲区以进行任何后续读取访问将确保您正在访问最新数据。