ASUS motherboard model and part numbers printed on back of main board
The back of an ASUS motherboard shows its identifying model and part numbers along with the Made in China marking. These numbers are important when identifying the exact board and searching for a compatible replacement when one is available. This repair image is an independent work sample and is not an illustration of the educational subject discussed below.

Dividing a storage device usually brings disk partitions to mind. A physical drive appears to the computer, and software divides its address space into separate regions that can be formatted and used independently.

NVMe introduced another layer of separation. A compatible NVMe controller could organize its storage into namespaces, with each namespace presenting its own logical block address space to the host.

That distinction placed part of the organization inside the storage device itself rather than relying entirely on a partition table written across one visible disk.

A namespace is not simply another name for a partition. It is a logical block address space presented by the NVMe controller as a storage entity that host software can access.

The Controller Could Present More Than One Storage Space

A conventional view of a drive is straightforward. The operating system discovers one device with a certain capacity, and that device can then be partitioned by software.

An NVMe subsystem could work differently. Its available non-volatile memory could support multiple namespaces. Each namespace received an identifier and represented a collection of logical block addresses accessible to the host.

From the host’s perspective, those namespaces could appear as separate storage targets even though they were associated with the same underlying NVMe subsystem.

The Separation Existed Below the Partition Table

A partition divides an address space that the storage device has already presented. The drive remains the underlying storage device, while information in the partition table tells the operating system where one partition ends and another begins.

A namespace exists at a different level. The NVMe controller exposes the namespace itself. Software can subsequently place partitions and file systems inside that namespace if required.

The important distinction

Partitioning divides a storage space already visible to the computer. NVMe namespaces determine which logical storage spaces the controller makes available in the first place.

This meant the two mechanisms could coexist. A system could receive a namespace from an NVMe device and then partition that namespace just as it would other block storage.

A Namespace Needed Its Own Identifier

Each namespace was addressed using a namespace identifier, commonly abbreviated as NSID. Commands directed toward a particular namespace could use that identifier to specify which logical storage space they concerned.

The numbering did not mean that every possible namespace identifier had to correspond to an active namespace. Namespace management allowed the set of available namespaces to change.

This was one reason namespaces were more than fixed slices drawn across a disk. They were objects understood by the NVMe architecture and managed through NVMe commands.

Namespace management

NVMe 1.2 included namespace management operations that allowed supported devices to create and delete namespaces, along with attachment operations controlling which controller could access them.

Creating Storage Was Only Part of the Process

Creating a namespace did not necessarily make it immediately available for normal input and output. The namespace also had to be associated with an appropriate controller before the host could use it through that controller.

This separation between creation and attachment gave the architecture additional flexibility. The existence of a logical storage space and the path through which it could be accessed were related but distinct concepts.

A namespace could therefore move through different states as storage was configured. It could exist without currently being attached, become accessible after attachment, or be removed when no longer required.

Several Controllers Could Change the Meaning of Attachment

The attachment concept became particularly important in systems containing more than one NVMe controller. A namespace did not always have to belong exclusively to a single access path.

NVMe supported the idea of namespace sharing, allowing appropriate configurations to make a namespace accessible through multiple controllers. That capability was relevant to storage designs where redundancy, multiple paths, or shared access mattered.

The storage space and the controller used to reach that storage space did not always have to be the same architectural object.

This was quite different from thinking of an SSD merely as one physical box containing one inseparable logical disk.


The Capacity Could Be Organized for Different Purposes

Multiple namespaces could give storage administrators and device designers another way to organize available non-volatile memory. Separate logical spaces could be created for different workloads or system requirements while remaining under the NVMe architecture.

The mechanism could also interact with device provisioning. A namespace did not necessarily have to consume every bit of physical capacity that might otherwise be visible from the underlying media.

Logical separation

A namespace describes an addressable logical storage space. It should not be interpreted as proof that the corresponding data occupies a physically isolated group of flash memory chips.

That difference is important. Logical organization and physical NAND placement are separate matters, and the internal flash-management decisions remain under the control of the SSD firmware.

The Operating System Still Saw Block Storage

Namespaces did not require applications to understand the internal arrangement of NAND flash. Once an active namespace was exposed through the controller, host software could interact with its logical blocks as storage.

A file system could be created there. Partitions could be added. Applications could store ordinary files without needing to know which flash dies, channels, or cells ultimately held the information.

NVMe therefore added flexibility beneath familiar storage software rather than requiring every program to adopt a completely new concept of a file or disk.

One Physical Device No Longer Implied One Logical Device

The familiar relationship between a drive and its visible capacity could make storage seem physically straightforward. One installed device appeared as one disk, and partitions subdivided it afterward.

NVMe namespaces weakened that assumption. The controller could participate directly in defining the logical storage spaces presented upward to the host.

That architectural separation was especially useful as NVMe expanded beyond simple single-drive desktop configurations. The protocol was being designed not merely around faster flash, but around ways of organizing, identifying, and accessing non-volatile storage in increasingly sophisticated systems.