非幂等内存映射 I/O 是什么意思?

What is non-idempotent memory-mapped I/O meaning?

RISCV privileged spec 第 75 页提到一个术语 "non-idempotent memory-mapped I/O"。什么是非幂等内存映射I/O?是关于非副作用的吗?非幂等内存映射的设计关注点是什么I/O?

这意味着将相同的值写入两次与只写入一次不同。

例如一个 MMIO 寄存器,其中写入事务触发 UART 通过串行端口发送位。

与写入已经存在的值无效的控制寄存器不同。或者例如并行端口,外部引脚反映 MMIO 寄存器中的位,再次写入它们不会改变任何内容。