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 Unit, 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 7.
Figure 7: 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. The 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.