Skip to main content
Version: 1.10

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

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