1
\$\begingroup\$

What is a namespace in NAND or NOR based Flash Memory?

Is it a range of addresses of NVM? If yes, then is it specified by SSD Manufacturer?

\$\endgroup\$
  • \$\begingroup\$ I have never heared of a namespace in this context. Can you give an example where it is used? \$\endgroup\$ – Wouter van Ooijen Jun 10 '15 at 7:25
  • \$\begingroup\$ Actually in NVMe protocol, each read & write command is associated with a namespace ID. \$\endgroup\$ – Karan Shah Jun 10 '15 at 7:41
1
\$\begingroup\$

Namespace is actually the list of LBAs(Logical Block Address) in an NVMe Dev. It is usually Vendor Specific & is embodied in the NVMe device. Take an example of Intel® Solid-State Drive DC P3700 Series. It says 781,422,768 total User Addressable Sectors in LBA Mode in 400GB capacity. Also, a complete table is given for namespace identification.

\$\endgroup\$
  • \$\begingroup\$ (i) If Namespace is embodied in NVMe Controller, then how a Namespace Address would map to a SSD Address for any Read/Write Command? (ii) According to NVMe Spec 1.2, A Namespace can be created through Namespace Management Command (An Admin Command), so in that case, how Namespace addresses will be mapped into SSD Addresses? \$\endgroup\$ – Karan Shah Jun 10 '15 at 9:11
  • \$\begingroup\$ Win or Lin Driver discovers it with NVMe Identify command.After NVMe1.1, Namespace management is added to NVMe spec. thats when it is getting called Enterprise NVMe. In newer tech, you have ability to Ability to create and delete a namespace. \$\endgroup\$ – Oshi Jun 10 '15 at 9:30
  • \$\begingroup\$ I don't have question on the ability, I just want to know address mapping from Namespace Address to SSD Address for (i) Namespace embodies in NVMe Controller & (ii) For Newly Created Namespace through Namespace Management Command? \$\endgroup\$ – Karan Shah Jun 10 '15 at 9:39
  • \$\begingroup\$ pmem.io/documents/NVDIMM_Namespace_Spec.pdf - Hope this can help!!! \$\endgroup\$ – Oshi Jun 10 '15 at 11:03
  • \$\begingroup\$ What I get from that PDF is that in case of NVMe, generally Block Namespace would be used & creation of that namespace, it's SSD/DIMM addresses all would be done by SSD controller. So in case of Namespace Management Command, NVMe controller would just give another command to SSD Controller, to create Namespace & SSD Controller would create it with provided size (Considering addresses do not conflict with any else). Kindly comment on my understanding. \$\endgroup\$ – Karan Shah Jun 11 '15 at 5:43
1
\$\begingroup\$

Namespace is an area or quantity of non-volatile memory that is formatted into small logical blocks count. After formation each namespace contains “n” number of logical blocks with logical block addresses from 0 to (n-1). Thus namespace is a collection of logical blocks.

Namespace ID is an identifier used by a controller to provide access to a namespace.

Private namespace
A namespace that is accessible by only one controller. A host may determine whether a namespace is a private namespace or may be a shared namespace by the value of the Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) field in the Identify Namespace data structure.

Shared namespace
A namespace that is accessible by two or more controllers. A host may determine whether a namespace is a private namespace or may be a shared namespace by the value of the Namespace Multi-path I/O and Namespace Sharing Capabilities (NMIC) field in the Identify Namespace data structure.

\$\endgroup\$
  • \$\begingroup\$ Hi, welcome to the site. This question was already answered some months ago, I don't think it needs another answer now. \$\endgroup\$ – Claudio Avi Chami Jan 12 '17 at 8:45
0
\$\begingroup\$

When a SSD is manufacture which supporting namespaces, there should be no namespace in the SSD. It is up to user to create and attach namespaces.

\$\endgroup\$
0
\$\begingroup\$

A quantity of non-volatile memory that may be formatted into logical blocks. When formatted, a namespace of size n is a collection of logical blocks with logical block addresses from 0 to (n-1). NVMe Specs Section 1.6.17

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.