Skip to main content
Version: 1.14

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

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.