Files
hpr-knowledge-base/hpr_transcripts/hpr3567.txt

168 lines
12 KiB
Plaintext
Raw Normal View History

Episode: 3567
Title: HPR3567: What is NVMe™ and why is it important?
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3567/hpr3567.mp3
Transcribed: 2025-10-25 01:28:43
---
This is Hacker Public Radio Episode 3567 for Tuesday the 5th of April 2022.
Today's show is entitled, What is Noom and Why Is It Important?
It is hosted by JWP and is about 17 minutes long.
It carries a clean flag.
The summary is.
A short podcast about how it works and it is good.
Good day.
My name is JWP and today I am going to talk to you about NVMe technology.
So what is this NVMe technology?
It stands for non-volatile memory express.
It's a new protocol for accessing high-speed storage media that brings many advantages
compared to latest legacy protocols.
But what is NVMe and why is it important to a data driven business?
As people in businesses contend with perpetual growth of data, they need to rethink how
data is captured, preserved, accessed and transformed, performance economics and endurance
of data at scale is paramount.
NVMe is having a great impact on businesses and people and what they can do with the data,
particularly fast data for real-time analytics and emerging technologies.
In this podcast, I'll explain what NVMe is and share a deep technical dive into how
the storage architecture works.
In an upcoming podcast, I will cover what features and benefits it brings to people and
businesses and use cases where it's being deployed today and how many customers and
normal people can take advantage of NVMe, SSDs and platforms that feature fully flash
storage systems for everything from IOT to applications to personal gaming.
That's right, you can have this on a personal gaming thing.
Over the years, I've done many podcasts via the network that have been associated with
storage data protocols and somewhere or the other for more than a decade.
This has gone on.
I've worked both professionally and privately with PCIe, SSD products and long-term storage
technologies for years and years.
Watching the evolution of storage devices from up close, I'm incredibly excited about
the transformation with NVMe is bringing to individual people and to data centers and
the unique capability of the technology to deliver innovation up and down the stack.
NVMe is opening a new world of possibilities for everyone.
Okay, so how did the evolution of NVMe start?
The first flash-based SSDs were leveraged by legacy, SATA and SAS interfaces, protocols
and form factors to minifies changes in the existing hard drive HDD-based technology
storage systems.
However, none of these interfaces protocols was designed for high-speed storage, i.e.
NAND and that's capital N, A, and D or persistent memory because the interface speed performance
of the new storage media and the proximity to the CPU, PCIe, PCIe was the next logical
storage interface, PCIe slots directly connect to the CPU by providing memory-like access
and can run a very efficient software stack.
However, early PCIe interface SSDs did not have industry standards and enterprise features.
PCIe SSDs leveraged memory proprietary firmware, which was particularly challenging for
system scaling for various reasons, including running and maintaining device firmware and
firmware device capabilities with different system software, not always making the best
use of available lands for CPU Prox 7a and lack of value features for enterprise or personal
workloads.
The NVMe specifications emerge primarily because of these changes.
So what is NVMe?
NVMe is a high performance, NUMA, NUMA stands for non-uniform memory access, optimized
and highly scalable storage protocol that connects to the host from the memory subsystem.
The protocol is relatively new, feature rich and designed from the ground up for non-volatile
memory media in NAD, N A N D and persistent memory directly connected to the CPU via the
PCIe interface.
The protocol is built on a high-speed lanes.
PCIe generation 30 can link or PCIe Gen 3 link can offer a transfer speed of more than
2X that of the standard SATA.
And so what you have is you have the CPU and he has his normal access to his DRAM and
then he has a direct access to the NVMe SSDs that are connected over his PCIe lane.
And then before you would have the, you also still have access to your normal host bus
adapter and your normal SSDs.
So either you be coming through your fiber channel adapter or you would have a host bus
adapter that's like a scusy controller times passed or a smart controller inside your
box to control the SSD.
And so what is the value of NVMe?
The NVMe protocol capitalizes on parallel low latency database to the underlying media
similar to high performance processor architectures.
This offers significantly higher performance and lower latency compared to legacy, SAS
and SATA protocols.
This not only accelerates the existing applications that require high performance but also enables
new applications and new capabilities for real time workload processing in a data center
and an edge.
Conventional protocols consume many CPU cycles to make available applications and these
are wasted compute cycles cost.
People and businesses real money, IT infrastructure budgets are not growing at the pace of data
and are always under tremendous pressure to maximize returns on infrastructure, both
in storage and compute because NVMe can handle rigorous application of workloads with smaller
infrastructure footprint, people and organizations can reduce their total cost of ownership and
accelerate the top line of their business or personal productivity growth.
Okay, so the NVMe architecture and understanding IOQs.
So let's take a deeper dive into the NVMe architecture and how it achieves high performance
and low latency.
MVE can support multiple IOQs with up to 64K with each Q having 64K entries.
Legacy, SAS and SATA can only support single Qs with each can have 254 and 32 entries respectively.
The MVE host software can create Qs up to the maximum allowed by the MVE controller
as per the system configuration and expected workload.
MVE supports scatter slash gather IOs minimizing the CPU overhead on data transfers and even
provides the capacity of changing their priority on based on workload requirements.
This is a very simple view of the communication between the host and the NVMe controller.
This architecture allows the application to start, execute and finish multiple IO requests
simultaneously and use the underlying media in the most effective way to maximize the
speed limits.
So how do these commands work?
So how do MVE commands work?
The way this works is that the host writes IOQ and the doorbell registers IOQ ready signal
and the NVMe controller then picks the IOQ and executes and sends the IO completion Qs
followed by an interrupt to the host.
The host records the IOCompletion Qs and clears the door register which is the IOQ completion
signal and this translates into significantly lower overheads compared to SAS and SATA.
So in this way you get the controller and it fetches the IOQ and then the controller
then executes the IO command Qs and the controller sends the IO command completion Qs and then
the controller generates interrupt and on the other side of the thing, the host submits
the IO submission or the Q, the host bells, the host bells, the door register Q ready and
then the host receives the IOQ and then the host clears the register when it's complete.
Why does NVMe get the most performance from multi-core processors?
As I mentioned NVMe is a NUMA optimized protocol.
This allows multiple CPU cores to share ownership of the Qs, their priority as well as
arbitration mechanisms and the authenticity of the commands such as NVMe SSDs can scatter
slash gather commands and process them out of turn at far higher IObs and lower data
to get these. So what are some of the NVMe form factor and standards? The NVMe specification
is a collection of standards managed by a consortium. Now I realize that this sounds very
dangerous but it's just a simple consortium. I much like the ARM consortium or any of
these other things, you know people get together and they sort of make the standard for
this. And so it's currently, it is currently the standard for the PCIe solid state drives
for all form factors and these include standard form factors such as the 2.5, you 0.2
factor, the internal mounted M2 and adding card which is called AIC and the various EDSFF
form factors. There are many interesting developments happening on added features to the standard
like multiple Qs, combined IOs, defined ownership, the prioritization process, multi-path
and virtualization of IOs capture a synchronously device updates and many other enterprise features
that have not existed before. I will go into depth about these features and how they're
opening up new possibilities for private and personal businesses. So we're seeing standard
use cases more often. One example is zone storage and ZNS SSDs. So NVMe zone namespace or
ZNS is a technical proposal under consideration by the NVMe express organization. It came
about to contend with massive data management and large scope infrastructure deployments by
moving intelligent data placement from the drive to the host. To do so, it divides the
LBA of the namespace into zones that must be written sequentially and then and if written
again must be explicitly reset. The specification introduced a new type of NVMe drive that provide
several benefits over traditional NVMe SSDs such as higher performance through right application
reduction, higher capacities by lowering over positioning, lower costs due to SSD controller
and DRAM foot print and improved latencies. Another interesting use case is the SD which is
a trademark and micro SD express card which marries the SD and micro SD card with the PCIe
and NVMe interfaces. This is an example and in this example the capabilities, the next
generation high performance mobile computing. So yes, your SD card and your micro SD
card will soon have a space on the PCIe lane. Lastly, the NVMe protocol is not limited
to simply connecting flash drives. It may be also used as a networking protocol or NVMe
over fabrics. Excuse me. So again, lastly, the NVMe protocol is not limited to simply
connecting flash drives. It may also be used as a networking protocol or NVMe over fabrics.
This new networking protocol enables high performance storage networking fabric on common
frameworks for a variety of transports. So why is NVMe important for you? So personal
or enterprise systems are generally data starved. The exceptional rise in data and demands
from a new applications can bog down with a traditional SSD, even high performance SSDs
connected to legacy storage protocols can experience lower performance, higher latency and
poor quality of service. When confronted with some of the new challenges of fast data,
the NVMe's unique features help avoid the bottlenecks for everything from traditional
scale-up database applications to emerging edge computing architectures and scale to meet
new data demands. Designed for high performance, non-bottled media storage NVMe is the only
protocol that stands out in highly demanding compute and intensive enterprise, cloud and
edge data ecosystems or if you're playing Call of Duty. I hope that this blog or not
the blog that this podcast has helped you understand NVMe and why it's important to
you. You can continue studying this by going to westerndigital.com and searching for
NVMe. All right, hey guys, you all have a great day and if you don't need anything, my
name is JWP and you can reach me at JWP5 at hotmail.com. Thank you so much.
You have been listening to Hacker Public Radio at Hacker Public Radio. Today's show was
contributed by a HBR listener like yourself. If you ever thought of recording podcasts,
you click on our contribute link to find out how easy it leads. Hosting for HBR has been
kindly provided by an onsthost.com, the Internet Archive and our sings.net. On this
otherwise stated, today's show is released under Creative Commons Attribution 4.0 International
License.