Super Blocks
Super blocks are the main units of allocation used within the SEF API. Like super pages, super blocks span all the dies within a single virtual device. The number of super pages in a super block is fixed and is the same as the number of pages in a die. The size of a super block in ADUs, however, is dependent on the configuration of the virtual device that it resides in. A super block is only 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 10.1 shows the state transitions regarding super
blocks.
Super blocks are allocated either explicitly by the Allocate
command, or implicitly by the Write
command. When a reserved flash memory address (0xFFFFFFFFFFFFFFFF) 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 is allocated (assuming the capacity limit is not exceeded) once the current
super block is filled.
Host does not need to erase super block. When the defect strategy is packed or fragmented, the apparent size of the super block may shrink after it is erased. This affects SEFWriteWithoutPhysicalAddress1(), SEFGetSuperBlockInfo() and SEFAllocateSuperBlock(). The number of available ADUs may also shrink as the super block is programmed.
Figure 10.1: 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 block transits to Free
upon the Release command.
Open State
This is the state of super blocks in the middle of being programmed. Free
super block transits to
Open
by Allocate command and Write Without Physical Address command.
Internally, there are three Open
states:
Open for Write Without Physical Address: A super block dedicated to Write Without Physical Address. The super block transits to this state by 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 for Nameless Copy: A super block dedicated to Nameless Copy. The super block transits to this state by a Nameless Copy command without explicit super block ID. Only one super block can be open for nameless copy at a time.
Open by Erase: A super block opened by the super block management command
Allocate
. This super block can be used for Nameless Write by specifying explicit super block ID. For special case only.
Closed
This is the state of super blocks which retain effective data after all Super Pages have been
programmed. Open
super block transits to Closed
by either a Nameless Write command, a
Nameless Copy command, an explicit Close command or a device-initiated automatic close