
Once the hardware limitations
of SATA are overcome, the
next barrier in performance
is software. The first wave
of SATA-based SSDs, again
seeking maximum compatibility
with legacy hard drives,
used the Advanced Host
Controller Interface (AHCI).
This standardized protocols
so that hard drives and SSDs
were interchangeable, but
compromised performance.
First-generation PCIe-based
SSDs often used proprietary
protocols, enabling them to
achieve better performance
than using AHCI, but requiring
device-specific drivers and
potentially new BIOS. The
standards community responded
with a new logical interface
specification, NVM Express
or NVMe, and the definition of
SATA Express allowing AHCI and
NVMe to co-exist in the same
system.
3
NVMe was designed from
the ground up to provide a
consistent, high performance
logical interface for SSDs over
PCIe. It provides features such
as enhanced queueing, interrupt
steering, and multiple threading.
Instead of the single command
queue with 32 commands in
AHCI, NVMe has 64K queues
with 64K commands each. One
interrupt in AHCI is supplanted
by 2048 in NVMe, and the
locking synchronization scheme
has been eliminated.
4
Both SSD vendors and software
firms have rapidly embraced
the NVMe logical interface.
Microsoft Windows 8.1 added
native support for NVMe, carried
forward into Windows 10.
NVMe support is also available
in Mac OS X Yosemite, and
the latest versions of Linux
and Google Chrome OS. With
advanced, multi-threading
operating systems and multicore
processors, NVMe support is
essential to getting the most
out of new SSDs with PCIe
interfacing and V-NAND flash.
NVME BECOMES THE LOGICAL CHOICE
CONTROLLER MANAGEMENT
Admin
Submission
Queue
Admin
Completion
CORE 0
I/O
Submission
Queue
I/O
Completion
Queue
I/O
Submission
Queue
I/O
Completion
Queue
I/O
Submission
Queue
I/O
Completion
Queue
I/O
Completion
Queue
CORE 1 CORE N
NVMe Controller
Adapted from NVM Express, Inc
MORE CORES, MORE QUEUES, MORE COMPLETED REQUESTS
Komentáře k této Příručce