NVMe or Non-Volatile Memory Express is the latest protocol for accessing high-speed storage devices. NVMe storage devices are much faster than HDDs and SSD storage devices. Due to the higher speeds for managing data, they are becoming more popular among businesses.
NVMe technology has made it possible to open new possibilities by letting you do much more with data.
How NVMe storages came to being?
Initially we started storing data in HDDs and these were soon overcome by SSD storages. SSDs came into being without the moving parts that accompanied the hard disk drives. Excluding the spinning drives in HDDs resulted in a much faster storage solution.
However none of these interfaces and protocols were designed for high speed storage media. Even though SSDs were much faster than HDDs the connection between the storage device and the processor remained the same.
SSDs performed much faster than HDDs but the SATA cables were not able to perform. Due to the interface speed, performance of the new storage media, PCI Express (PCIe) was the next logical storage interface.
PCIe slots are directly connected to the CPU providing extremely fast data transfer rates. The problem was that early PCIe interface SSDs did not have industry standards. This meant:
- System scaling was halted due to running and maintaining system firmware
- The firmware or devices were not compatible with different systems and software
- Not making use of all the available lanes and CPU proximity
- Lack of value added features for enterprise systems
These challenges made possible for the NVMe specifications to come to light.
What is NVMe?
NVMe is a high performing and extremely flexible storage protocol that connects the host to the memory. It is a high-performance, NUMA (Non-Uniform Memory Access) optimized, and highly scalable storage protocol.
This is specifically made for the non-volatile memory media which are directly connected to the CPU through the PCIe interface. The protocol is built on high speed PCIe lanes. PCIe Gen 3.0 link can offer transfer speed more than 2x than that of SATA interface.
How NVMe work?
NVMe maps the input and output commands and responses to a shared memory over the PCIe interface. This interface supports parallel I/O responses with multicore processors which results in higher throughput and reduces CPU bottlenecks.
The NVMe technology provides a more streamlined set of commands to process input/output requests. This also requires less than half the number of CPU instructions than the command set which was used in SATA drives.
It enables new applications and capabilities for real-time workload processing. NVMe can handle rigorous application workloads with the least infrastructure footprint. You can reduce the total cost of ownership.
For a comparison NVME support 64000 commands in a single message que and 65535 I/O requests. In SAS devices typically supports 256 commands and SATA drives support 32 commands. This shows clearly that NVMe’s are quite powerful.
Even though it has better performance, the NVMe-based PCIe SSDs are more expensive than the SAS and SATA based SSDs. NVMe PCIe SSDs are so powerful that it is capable of providing a level of performance that many applications do not require.
NVMe Architecture – Understanding I/O Queues
- NVMe can support multiple I/O queues
- 64K with each queue having 64K entries
- The NVMe host software can create queues
- It supports scatter/gather IOs
- It minimizes CPU overhead on data transfers
- It provides the capability of changing their priority based on workload requirements
How NVMe Commands Work?
The host writes I/O Command Queues and doorbell registers (I/O Commands Ready Signal). NVMe controller picks the I/O Command Queues.
It executes them and sends I/O Completion Queues, followed by an interrupt to the host. The host records I/O Completion Queues and clears the door register (I/O Commands Completion Signal).
Why NVMe Gets the Most Performance from Multicore Processors?
NVMe, a NUMA-optimized protocol, allows for multiple CPU cores to share the ownership of queues. It enhances their priority, as well as arbitration mechanisms and atomicity of the commands.
NVMe SSDs can scatter/gather commands and process them out of turn to offer far higher IOPS and lower data latencies.
NVMe Form Factor and Standards
It is a collection of standards managed by a consortium, currently the industry standard for PCIe solid-state drives for all form factors. A standard 2.5” U.2 form factor, internal mounted M.2, Add In Card (AIC), and various EDSFF form factors
Why NVMes are important?
When it comes to enterprise systems, they are generally handling loads of data. The exponential rise of collecting and using data in new applications can lower the performance of SSDs. Your entire system slows down because of the low data flow around the whole organization.
In some cases even high high-performance SSDs connected to legacy storage protocols can experience lower performance, higher latencies, and poor quality of service when confronted with some of the new challenges of Fast Data.
NVMe’s features helps to avoid any kind of bottlenecks. From traditional scale-up database applications to emerging Edge computing architectures can be handled without any complications.
Designed for high performance and non-volatile storage media, NVMe is the only protocol that stands out in highly demanding and compute intensive enterprise, cloud and edge data ecosystems.
If you’re looking to set up a dedicated server with low latencies and higher performance, look no further. We provide high quality dedicated servers with NVMe storage capabilities upon request.