SSD (solid-state drive) is a type of nonvolatile storage media that stores persistent data on flash memory. It has two essential parts - a NAND flash memory and a flash controller optimized to deliver high read-write performance in sequential as well as random data fetching.
SSDs don’t have any moving parts, so no breaking, spinning up or down, as was the case with ragged hard-disk drives with their rotating, magnetic media. SSD offers a distinct performance advantage. In the past, the pricing of SSDs had been way higher than HDDs. Still, with the improvements in manufacturing technology and chip capacity, prices are continuously dropping, which makes it worth every buck.
SSDs offer high transfer speeds, low latency even with random data access, more durability but not for hierarchical storage use, and expectedly no sound of moving parts. The stark performance boost can be seen in day-to-day usages, like swift system boot and shut down speeds, application launch is more robust, and the system feels smoother and without any lagging.
For perceived and real performance gains, storage was the last bottleneck, which was eliminated with the advent of SSD and then the high-performance NVMe SSD storage solutions. The NAND flash SSDs radically improved input-output performance, access times dropped from 6-12 milliseconds to less than 1ms.
However, less than 1ms access times and breakneck I/O weren’t anywhere near the actual capacity of what flash drives could do. The issue was the old hardware and software that was built over five decades ago for HDDs instead of the blazing-fast SSDs.
Several types of SSDs available that compete with one another in terms of performance and form factor, the real efficacy and robustness of flash memory have far been achieved.
What is SATA SSD?
SATA (Serial ATA) technology was introduced in 2003, replacing the older PATA (Parallel ATA) as the storage connection interface standard in computers. It was ushered in as a universal connector entailing a power cord and a SATA data cable, breakneck throughput in read-write speeds.
At present, SATA is the market incumbent and is mostly used for connecting an SSD to the computer system. SATA uses the AHCI command protocol and supports the IDE, which primarily was built for the older and sluggish spinning disk drives and not for the sturdy flash-based storage.
Even to this day, when we consider the storage space, hard drives have a clear advantage over SSDs as they cost less per gigabyte and hold data for longer.
SATA interface was established at the time of spinning hard disk drives, and companies made no compatibility changes. SATA SSDs can utilize the existing infrastructure for replacing the aged hard drives with a new SATA disk drive. Still, the recent advancement in the shape of NVMe doesn’t fit the SATA ports and needs an M.2 port, which is rather difficult to find in prevalent consumer personal computers or laptops.
The theoretical speed of SATA 3.0 is 750MB/s, while due to physical overheads and encoding during the transfer itself, the effective transfer rate you’ll get with the newest SATA model is around 600MB/s, which is quite fast for a limiting SATA interface.
The difference in SATA and PCIe SSDs is significant in terms of cost per gigabyte, but SATA drives will give you more storage for your money, and we know when it comes to storage, we think of space, not speed mostly. SATA SSD can give you a terabyte or two for the same price as 250GB or 500GB of high-performance NVMe drive, though the speed difference isn’t noticeable for regular users.
Mistakes to avoid
Defragmentation is not for SSDs and can negatively affect their lifespan. SSDs save data in blocks and can randomly read from any location, whether contiguous or random. You will be overkilling the flash drive when you defrag.
Don’t use the SSD to its full capacity or you risk choking it. Because its performance gets affected, mainly write speeds, it is suggested to have a minimal 25 percent of your storage space free for improved performance.
Modern SSDs come with an in-built Garbage Collection Mechanism. Whether the TRIM command should be enabled or not is a question based on the specific OS you are using and needs to be looked into as it can clutter unwanted data in your drive and needs to be handled properly.
What is NVMe SSD?
Non-Volatile Memory Express (NVMe) is the latest industry-standard software interface for PCIe SSDs. Formally it is an optimized “scalable host controller interface designed to address the needs of Data Center, Enterprise, and Client systems that utilize PCI Express (PCIe) based Solid-State drives.” NVMe is a layer between the device driver and the PCIe device, standardizing the rules with emphasis on scalability, low latency, and security.
The standard developed to allow modern SSDs to operate at speeds flash memory is capable of, a sharp advantage with faster read-write. The NVMe SSD enables the flash memory to run directly through the PCI Express (PCIe) serial bus interface as it offers high bandwidth due to being directly attached to the CPU rather than function through the limiting SATA speeds. As SSDs superseded the slower HHDs as primary storage, a fast interface was required to achieve optimal use of the quicker speed capabilities.
In other words, it’s a technological depiction of the bus, the memory component (SSD) uses to communicate with the computer, and not exactly a new type of memory. A communications interface and driver that outlines a command set and feature set of PCIe-based SSD. It comes in two form factors, M.2 or PCIe expansion card, a 2.5-inch U.2 connector, but with both form factors, it directly connects electrically to the motherboard via the PCIe rather than SATA connection.
The NVMe supports up to 64K commands per queue, but the protocol requires only thirteen commands to deliver high performance. The interface is designed for high scalability and NVM independence to enable next-generation technologies to deliver 4KB I/O in a mere 10μs or less, which is about one-thousandth of the latency of a high power 7200 RPM SATA drive.
NVMe is an improvement over the last interfaces like Serial ATA (SATA), and Serial Attached SCSI (SAS), which were developed for the shabby Hard Disk Drives (HDDs) and were being used till now even when replaced with SSDs because the memory technology was rapidly evolving. Still, the communication interface was not given proper attention. HDDs are still used as they provide large capacity and cheap storage, while the flash memory has previously been only employed in mobile devices like tablets, smartphones, but now are more quickly coming to the primary computer market because of blazing-fast speeds and comparatively cheaper than before.
Though disk benchmarks are not indeed an accurate indicator of memory performance, they offer a baseline of what’s probable with a particular drive and system. You can see a clear difference in performance when you use NVMe, with a read/write throughput far higher than the hard drives and slower SATA SSDs also lagging somewhat behind. As prices continue to drop for the latest NVMe SSDs, they are becoming commonplace for normal personal computer users.
NVMe permits drives to use PCI Express connection, which brings many advantages over the SATA SSD interface, feasible for many application and usage scenarios. NVMe doesn’t need the intervening HBA and can connect to a higher number of PCIe lanes. A SAS lane runs at 12GB per second, which contracts to just about 1GB per second after overheads. As well a SATA lane props half of that, while PCIe lane runs at 1GB per second, and a standard NVMe SSD can be attached to four such lanes, supporting up to 4GB per second. So, a SATA SSD runs at 0.5GB per second and an NVMe SSD at around 3GB per second, which is six times higher throughput.
Recent Updates of NVMe
Just this year, NVM Express, Inc. released the NVMe® 2.0 family of specifications. The new restructured specifications allow for faster and simpler development of NVME solutions. With that said, the solutions can support the diverse NVMe devise environment.
New independent command sets are developed because of the specifications that come along with NVMe® 2.0. This includes command sets like Zoned Namespaces (ZNS) and Key Value (KV).
The library of specifications of NVMe 2.0 consists of multiple documents, including the NVMe Base specification, Command Set specifications, Transport specifications, and the NVMe Management Interface specification. These new changes facilitate the emerging NVMe ecosystem, including enterprise and client SSDs, removable cards, and computer accelerators.
Let’s dig deeper into the key features of NVMe 2.0 under Command Set Specifications:
ZNS Specification - provides a zone storage devise interface that allows the SSD and host to collaborate on data placement. ZNS permits data to align to the physical media of the SSD, improving overall devise performance and cost while increasing media capacity that can be made available to the host.
KV Command Set - provides data access to the NVMe SSD controller using a key rather than a block address. KV allows applications to directly communicate with the drive using Key Value pairs, avoiding the overhead of translation tables between keys and logical blocks.
Namespace Types - provide a mechanism to allow an NVMe SSD controller to support the different command sets that are defined as part of the NVMe 2.0 release as well as part of the future command sets.
NVMe Endurance Group Management - enables media to be configured in endurance groups, exposing granularity of access to SSDs and improving control. 32/64 Bit CRC - expands the information protection and data protection to 32 and 64 bit, allowing for new types of metadata used cases and more robust data protection for large-scale data systems.
Command group control - this prevents unintended changes after the system is provisioned and protects the system from unintentional or malicious changes. This is the new security feature, and this uses a new lockdown command. This can be used to put a drive in a state where both already read and writes are allowed with the drive but various admin commands are locked out so that the other features cannot be re-configured. The system for handling new command sets now makes it possible for different namespaces behind the same controller to support different command sets rather than requiring all namespaces to support all of the commands sets that the parent controller supports.
NVMe has multiple information buses, which makes the data rate much faster than SATA. NVMe is not affected by the ATA interface constrictions as it sits right on the top of the PCI Express directly connected to the CPU. That results in 4 times faster Input/Output Operations Per Second (IOPs) rivaling the fastest SAS option out there. The seek time for data is ten times faster.
NVMe can deliver a sustained read-write speed of 2000MB per second, way faster than the SATA SSD III, which limits at 600MB per second. Here the bottleneck is NAND technology, which is rapidly advancing, which means we’ll likely see higher speeds soon with NVMe.
NVMe enables drives to benefit from the same “pool” of lanes that directly connect to the CPU. That offers a scalable performance by going beyond the conventional four lanes found in most PCIe SSDs and utilize them for added performance. PCIe sockets transfer more than 25 times more data than their SATA equivalent.
NVMe drives consume a paltry amount of power in standby mode. Some of the NVMe companies have adopted the L1.2 low-power-consumption standby mode, meaning the power consumption will be under 2mW. A drastic 97 percent reduction from the 50mW used by an L1 state, widely used today. In addition to low power consumption in idle, there are other power states available for enterprise-grade users that can benefit from these to save power.
The new NVMe 2.0 specification maintains backward compatibility from the previous NVMe generation. Regardless of form factor, NVMe directly communicates with the system CPU and works with all major operating systems.
NVMe SSDs reinforce the industry-standard security solutions such as the Opal SSC and Enterprise SSC by the Trusted Computing Group, by supporting the security container commands akin to the security container commands found in the SCSI.
The new update of NVMe is much secured than its previous releases. NVMe 2.0 uses 32/64 bit CRC, meaning the protection of data and information is expanded to 32 to 64 bit, allowing more robust protection for large-scale data systems.
Another security feature command group control prevents unintended changes after the system is provisioned and protects the system from unintentional or malicious changes. This security feature uses a new lockdown command that puts a drive in a state where reads and writes are allowed but various admin commands are locked out to avoid re-configuration of the other features.