Что означает неидемпотентный ввод-вывод с отображением памяти?

#io #cpu-architecture

#io #архитектура процессора

Вопрос:

На странице 75 привилегированной спецификации RISCV упоминается термин «неидемпотентный ввод-вывод с отображением памяти». Что такое неидемпотентный ввод-вывод с отображением памяти? Речь идет о побочном эффекте?В чем заключается проблема проектирования неидемпотентного ввода-вывода с отображением памяти?

Ответ №1:

Это означает, что запись одного и того же значения дважды — это не то же самое, что запись его только один раз.

например, регистр MMIO, в котором транзакция записи запускает UART для отправки битов через последовательный порт.

В отличие от управляющего регистра, где запись значения, которое уже есть, не имеет никакого эффекта. Или, например, параллельный порт, где внешние контакты отражают биты в регистре MMIO, и их повторная запись ничего не меняет.