Frequently Asked Questions
NVMe is an acronym that stands for nonvolatile memory express, a protocol designed to speed up the transfer of data between enterprise and client systems and flash memory systems, such as solid-state drives (SSDs). In acting as a logical interface with flash media, NVMe capitalizes on the critical performance characteristics of SSDs, including their non-volatility, high-bandwidth, low-latency and internal parallelism.
In short, NVMe is a feature-rich, scalable storage protocol designed for NUMA (Non Uniform Memory Access) that connects non-volatile memory directly to the CPU through a PCIe interface. This configuration allows transfer speeds up to 32 GBps, compared to SATA and SAS, which, respectively, can attain up to 6 GBps and 12 GBps.
Non-Volatile Memory Express (NVMe) is an interface protocol designed to standardize the use of PCI Express (PCIe) communications with solid-state drives (SSDs). Its development came about when high-speed SSD adoption accelerated as component costs dropped, and namely to address the new use of the faster PCIe memory channel over the use for SATA/SAS interfaces (which were designed for the existing HHD-based enterprise storage systems).
Because PCIe slots connect directly to the CPU, PCIe channels provide the better choice over SATA/SAS for accessing SSD memory. Taking early advantage of this before NVMe, many vendors produced proprietary firmware that, while exploiting the increased memory speed, still had several scaling challenges including maintaining firmware across all systems, incompatibilities between devices and firmware, inefficient memory processes because of low maturity of firmware, and lack of value-adding enterprise features. The greater memory access gained in these early protocols, however, further fueled the development of NVMe, which would overcome these challenges.
According to the official specification, NVMe was developed from the ground up for SSDs, and introduces several features that makes a more efficient interface, lowers latency, and enables scalability. How it works is through the introduction of several interface and architectural features that ease how host software communicates with non-volatile memory across multiple channels.
"The NVMe architecture brings a new high performance queuing mechanism that supports 65,535 I/O queues each with 65,535 commands (referred to as queue depth, or number of outstanding commands). Queues are mapped to CPU cores delivering scalable performance. The NVMe interface significantly reduces the number of memory-mapped input/output commands and accommodates operating system device drivers running in interrupt or polling modes for higher performance and lower latency. The NVMe specification also contains host-to-device protocol for SSD commands used by an operating system for: read, write, flush, TRIM, firmware management, temperature, errors and others." nvmexpress.org
There are three types of NVMe specifications that have been developed since its original publication in 2011.
- NVM Express (NVMe) — These initial specifications define the base commands, and support 64k I/O queues, multiple-core CPUs, parallel data path operations, end-to-end data security, enhanced error reporting, and virtualization.
- NVM Express Management Interface (NVMe-MI) — An additional command set, NVMe-MI is an industry-standard protocol for managing NVMe devices. The command set supports in-band and out-of-band management, discovery, monitoring, and firmware updates.
- NVMe over Fabrics Drive Specification (NVMe-oF) — NVMe-oF extends NVMe to include remote hosts, and scale-out NVMe data storage systems, by providing commands that enable Fibre Channels, remote direct memory access (RDMA), and TCP/IP.
Companies are overwhelmed with data today, but also data-starved: Their aging technology investments struggle to provide immediate information accessibility, quicker transfer rates and faster read/write speeds.
By using the NVMe protocol to make greater use of flash capabilities, companies can enjoy significantly lower latency. With response times as low as 70 microseconds, NVMe-enabled systems make an enormous difference in how quickly an organization can access data and use it to make fact-based decisions in critical areas of the business.
Data visualization tools are commonly used today as business intelligence (BI) reporting tools. These tools use automation to collect and process data and then create dashboards that represent company key performance indicators (KPIs) as visuals.
Two qualifications are required to be considered a data visualization tool:
- Collect and consumer data from multiple sources, file uploads, database queries, and APIs
- Provide visual representation of key performance indicators
Tools can come as proprietary, with enhanced features, and a support team to help troubleshoot. Popular names in data visualization and big data tools include Microsoft, SAP, IBM, and SAS. For those teams with different needs, open source data visualizations tools exist too, like Redash, D3.js, and Google Charts.
Solid State Drives (SSD) and Non Volatile Memory Express (NVMe) are associated topics because they work closely together to build high-performance storage systems. However, they are not comparable items.
SSD is hardware. NVMe is a protocol specification.
SSD is storage media using integrated circuits, such as NAND flash memory, to store data without the limitations associated with the moving parts in traditional spinning disk drives. SSDs connect to motherboards, and subsequently the system, via a SATA or PCIe bus.
NVMe is a logical interface specification designed with enhanced features that optimize the performance of such storage as SSD. Typically, NVMe is used with PCIe-based SSD.
Enterprise systems have always operated at the limits of technology, using brute force computing, and massive collections of storage to keep up with their IT needs. With the advent of NVMe, smarter, more resilient memory management is now possible.
NVMe’s features help teams avoid the challenges of scaling with traditional infrastructure.
The development of the NVMe specification began in 2007, in response to growing data volumes and market demand for faster data availability and transfer speeds. An industry working group led by Intel started to work on the problem, and the first NVMe protocol appeared on Intel’s website in early 2008. The technical work needed to launch this new standard began in 2009 and was conducted by the NVM Express Workgroup, which included more than 90 businesses.
It wasn’t until 2012 that NVMe chipsets were commercially available, marketed by Integrated Device Technology. In 2013, Samsung launched a new enterprise drive supporting the NVMe standard. Samsung promoted the acceleration benefits of this drive, including a 3GB/s read rate: six times faster than previous offerings. By 2014, NVMe drives were widely available.
Today, the initial working group has evolved to become NVM Express, Inc. More than 65 companies belong to this group, which owns the NVMe standard and promotes its use. Its board of directors includes representatives from Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk and Seagate.