3

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.

3
  • 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
    Jan 1, 2020 at 18:15
  • Actually i am copying files on same nvme ssd. Jan 1, 2020 at 18:18
  • SSDs are divided in sections with different speeds. When you write too much data the fastest section (SLC) is full.
    – Robert
    Jan 2, 2020 at 20:01

1 Answer 1

8

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.

4
  • So is 20 MB/s as in the OP a reasonable speed for pure TLC/QLC NAND storage? That's even slower than a hard disk. And also, are there any specs from manufacturers which show how large this cache is? I've looked at listings extensively and it doesn't seem anyone lists this (important) information anywhere. Jan 18, 2021 at 4:54
  • @SkeletonBow: The highest speeds are only achievable with continuous sequential writes, so if it's lots of smaller files, you're going to get much slower speeds. Typical sequential-write speeds for the TLC NAND on this kind of drive are in the ballpark of 300 to 1,000 MB/s, which is considerably slower than the 2,000 to 3,500 MB/s typically attainable on the SLC buffer.
    – bwDraco
    May 23, 2021 at 18:11
  • 1
    As for buffer size, many SSD manufacturers do publish this information. For example, the 500 GB Samsung SSD 970 EVO Plus has a minimum TurboWrite capacity of 4 GB, with Dynamic TurboWrite adding up to an additional 18 GB. The maximum sequential write speed is 3,200 MB/s on the TurboWrite buffer and 900 MB/s once the buffer is exhausted. tomshardware.com/reviews/samsung-970-evo-plus-ssd,5608.html
    – bwDraco
    May 23, 2021 at 18:16
  • Amazing. Thanks for the information! May 27, 2021 at 2:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.