本文主要是介绍PCIe学习笔记(23)--- 中断(4)--- 同步问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
存在这样一种现象:
设备往系统MEMORY中写数据,“认为”该笔数据写完之后,触发中断
中断函数处理该笔数据,但事实上,系统MEMORY中的数据,可能是STALE的
导致该问题的原因,
第一,写数据是POST的
第二,写的过程可能会被DELAY
第三,一旦有DELAY,就可能导致中断先于数据写先到
方法一:
dummy read
在ISR中加一个device read,因为有transaction ordering, 所以,读返回之前,写数据必定写完了
方法二:
MSI
transaction ordering保证写数据先于MSI写完成
从transaction ordering角度考虑问题的时候,就必须保证,他们有同样的TC(VC)
即使保证了TC(VC)的相同,也必须不使用relax ordering
这篇关于PCIe学习笔记(23)--- 中断(4)--- 同步问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!