为什么pcie上的MMIO需要中断?

Why are interrupts needed for MMIO on pcie?

此博客post讨论了为 ARM 设备带来 pci passtrhough 支持的困难:https://www.linaro.org/blog/kvm-pciemsi-passthrough-armarm64/

它cies GICv2/GICv3 是ARM 的中断控制器。您可以通过 MMIO 写入它并使其向 CPU 传递中断。

但是,为什么需要中断? PCIe 驱动程序不应该通过 MMIO 与 PCIe 设备通信。即writing/reading从记忆中?

这是必要的,否则操作系统无法知道事件的发生。操作系统不会不断地轮询内存。他们仍然需要知道事件发生的时间。这就是中断的来源。

假设您有一个硬盘 PCIe 控制器。操作系统如何知道磁盘何时将其数据写入 RAM?