Why are memory-mapped I/O registers commonly marked as uncacheable or given special memory attributes?

Options

  • A. Because device-register reads and writes may have side effects or require access to the actual device
  • B. Because memory-mapped I/O cannot use addresses
  • C. Because all device registers are stored permanently in CPU cache
  • D. More than one of the above
  • E. None of the above

Correct Answer (Detailed Explanation is Below)

A. Because device-register reads and writes may have side effects or require access to the actual device

Detailed Explanation

Correct Answer: Option A.

Explanation: Caching or reordering accesses to device registers can cause incorrect behavior. A cached read might return an outdated status, while a write might not immediately reach the device. Appropriate memory attributes and ordering mechanisms help ensure correct device access.