Buffered RRAM write

nRF54LM20A | nRF54LM20B Datasheet

RRAMC enables fast buffered writes for contiguous memory regions.

RRAMC has an internal write-buffer that can be configured using CONFIG.WRITEBUFSIZE.

When buffered writes are enabled, RRAMC will collect as much data as possible in the internal write-buffer, before bulk-committing the buffer to RRAM.

When committing to RRAM, the commit operation updates only the data in RRAM memory that has modified values. Values that have not been altered remain unchanged in RRAM.

To use buffered writes, perform the following operations:
  1. Enable writing using CONFIG.WEN, and configure CONFIG.WRITEBUFSIZE.
  2. Write to RRAM memory in incrementing address order.
RRAMC commits the write-buffer when either of the following occurs:
  • The write-buffer is full
  • The address written is outside the buffer area
  • There is a read operation from a 128-bit data unit in the buffer that has already been written to
RRAMC stalls while the commit takes place, and additional wait-states can be observed for the bus access.
In addition to the automatic commit, a commit can also be triggered by the following:

The manual triggers are useful in situations where it is crucial to ensure that the write buffer has been committed. Register BUFSTATUS.WRITEBUFEMPTY can be used to check if the write-buffer is empty, or if it contains uncommitted data.

Note: The internal write-buffer is volatile, and data loss may occur during a power failure or when entering System OFF mode with uncommitted data in the buffer. Ensure that the write-buffer is empty (see BUFSTATUS.WRITEBUFEMPTY) and that READY is set before entering System OFF. When entering sleep in System ON mode, having uncommitted data in the internal write-buffer will keep the RRAM active, and thus increase power consumption.