Super Blocks
Super blocks are the main units of allocation used within the SEF API. By default, super blocks span all the dies within a single virtual device. However, the size of the super block may be changed prior to creating any QoS Domains. The number of super pages in a super block is fixed and is the same as the number of pages in a flash die. The size of a super block, however, is dependent on the configuration of the virtual device that it resides in. A super block can only be a member of a single QoS domain at any point in time. A super block can only be assigned to a different QoS domain after it has been released.
When an erase or allocation occurs within a QoS domain, it is performed in units of super blocks.
Super Block Management Commands
Super block management commands consist of three functions: Allocate
, Close
and Release
.
Super block data commands consist of the commands Write
and Copy
. Each command affects
state conditions of the super block. Figure 6 shows the state
transitions regarding super blocks.
Super blocks are allocated either explicitly by the Allocate
command, or implicitly by the Write
command. When the reserved flash memory address SEFAutoAllocate
is specified in a Write
command, SEF will check if a super block has been allocated for the
corresponding placement ID; if not and the QoS domain has not exceeded its capacity limit, a
new super block will automatically be allocated and assigned to the placement ID. When a Write
command with the reserved flash memory address extends past the end of the current automatically
opened super block, a new super block will be allocated (assuming the capacity limit is not exceeded)
once the current super block is filled.
The host does not need to erase super blocks. When the defect strategy is packed or fragmented, the apparent size of the super block may shrink after it is erased. This affects SEFWriteWithoutPhysicalAddress, SEFGetSuperBlockInfo and SEFAllocateSuperBlock The number of available ADUs may also shrink as the super block is programmed.
Figure 6: Super Block State Transitions
Free State
Free
is the initial state for super blocks. Free
super blocks belong to the free pool owned by a
Virtual Device.
Closed
super blocks transit to Free
upon the Release command.
Open State
This is the state of super blocks in the middle of being programmed. Free
super blocks transit to
Open
by either the Allocate or Write Without Physical Address command.
There are two sub-states of the Open
states:
Open for Write Without Physical Address: A super block dedicated to SEFWriteWithoutPhysicalAddress. The su- per block transits to this state via a Nameless Write command without explicit super block ID. The number of super blocks that can exist in this state is determined by the
placementID
parameter at the time of creation for a QoS domain.Open by Erase: A super block opened by the super block management command SEFAllocateSuperBlock. This super block can be used as a destination for Nameless copy and by Nameless Write by specifying an explicit super block ID.
Closed
This is the state of super blocks which retain effective data after all Super Pages have been
programmed. Open
super blocks transit to Closed
by either a Nameless Write command, a
Nameless Copy command, an explicit Close command, an explicit Flush command or a device-
initiated automatic flush or close.