Skip to main content
Version: 1.10

Addressing

The physical address of an ADU is assigned by the SEF Unit and returned after the data has been written to a QoS domain. The returned addresses must be supplied when reading the data back from a QoS domain. Because the layout of a flash memory address depends on the type of a SEF device, flash memory addresses should be treated as opaque. When debugging, it can be useful to know their structure. They consist of a QoS domain ID, super block ID and an ADU offset as shown in Figure 11.1.

Figure 11.1: Flash Address

Flash Address

QoS domain IDs are 16 bits. The lower 48-bit field of LBA field consists of Super Block ID in the upper and ADU Offset in the lower, and the remaining part is reserved. The exact size of each field depends on the device type. The functions SEFParseFlashAddress() and SEFCreateFlashAddress() are used to pull apart and build flash memory addresses.

In Perfect and Packed modes, the ADU offset is contiguous from 0 up to the size of the super block. In Fragmented mode, the ADU Offset is non-contiguous and the defective planes are skipped. ADU Offset is constructed with ADU number, Plane number, Die number and Page number in low-to-high order. Note that each element is not always a power of two.

Figure 11.2: Elements constructing ADU Offset in Fragmented mode

Elements constructing ADU Offset in Fragmented mode

The function SEFParseFlashAddress() and SEFCreateFlashAddress() hide the details of deconstructing and constructing a flash memory address.