Why does the nvme ssd transfer speed get decrease while transfering large data?

2

My laptop has PCIe NVMe 512GB M.2 SSD. And when I transfer data under 7 GB it gives me transfer speed from around 400 MB/s to 500 MB/s. But when I transfer large data like 35GB its speed get decrease upto 50MB/s and sometime it gives 25 MB/s. So I just want to know why this is happening.

user7761585

Posted 2020-01-01T18:08:48.697

Reputation: 21

Is the sending drive slower than the laptop. It may not be able to keep up with the faster drive. Is your connection wireless or wired. ? I have PCIe NVMe 1 TB M.2 SSD on my laptop and I can connect by Ethernet to my Desktop SATA3 SSD 2 TB (a bit slower than my Laptop and no degradation of copy performance. Wireless is definitely slower. Both Systems are Windows 10 V1909 – John – 2020-01-01T18:15:48.570

Actually i am copying files on same nvme ssd. – user7761585 – 2020-01-01T18:18:52.380

SSDs are divided in sections with different speeds. When you write too much data the fastest section (SLC) is full. – Robert – 2020-01-02T20:01:52.743

Answers

4

TL;DR

Most modern SSDs use relatively slow TLC NAND. To make up for this, a small buffer of much faster SLC NAND is used which hides this slower performance under most usage conditions. This buffer can be exhausted when writing large amounts of data to the drive in a short period of time, resulting in reduced performance during large transfers.


Technical details

NAND flash memory, the type of memory used in nearly all SSDs today, comes in a number of different varieties. Most notably, NAND can be configured to store anywhere between one and four bits of data per memory cell:

  • One bit per cell: SLC
  • Two bits per cell: MLC
  • Three bits per cell: TLC
  • Four bits per cell: QLC

With more bits per cell, more data can be stored in a single NAND flash chip, and the less it costs to manufacture a drive with a given storage capacity. However, performance and write endurance decreases with more bits stored in each cell. (It's the performance difference that matters here; with a few exceptions typically involving very small drives, most consumers don't need to worry about write endurance as they don't write anywhere near enough to wear out even QLC NAND on a reasonably-sized drive within its intended service life.) Indeed, SLC is extremely hard to find outside of drives for specialized industrial applications requiring extremely high write endurance, and MLC drives (e.g. Samsung SSD 970 PRO) are uncommon and very expensive.

As a result, most drives use TLC NAND, and a few are starting to use QLC NAND. With both types of NAND, the write performance is slow enough to generally be unacceptable for consumer PCs. Fortunately, NAND memory cells can be configured to store fewer bits, e.g. TLC NAND can be made to store one bit per cell as though it were SLC NAND instead of three bits. On nearly all drives that use TLC or QLC NAND, a small amount of space, typically a few gigabytes in size, is internally set aside to operate in this much faster SLC mode. This creates a fast buffer or cache to which data is always written first.1 (MLC NAND is usually fast enough to not require an SLC buffer, but I digress.)

When the drive is idle, data in this SLC buffer is automatically moved to the underlying TLC or QLC NAND. Because most consumer workloads only access the drive in short bursts, the drive will have plenty of free time during which it can flush the SLC buffer, so it is rare for it to completely fill up. As a result, you usually won't notice the slower performance of the TLC or QLC NAND. However, this buffer can be exhausted when large amounts of data are written in a short period of time, such as when installing large games or performing large file transfers. This is why you're experiencing degraded performance.


1A fixed portion of the drive's raw capacity is dedicated to the SLC buffer; larger drives will usually have a larger buffer. Many newer drives can automatically expand this buffer by taking advantage of free space in the drive: unused memory cells can be configured to operate in SLC mode so that higher performance can be maintained for longer. When that space is actually needed to store data, those cells are converted back to TLC or QLC mode. This functionality depends on the operating system sending the drive TRIM commands which specify which blocks are not in use, and is designed to be transparent to the user. Samsung calls this Intelligent TurboWrite, and this is more generally referred to as a dynamic SLC buffer.

bwDraco

Posted 2020-01-01T18:08:48.697

Reputation: 41 701