
On Sun, Feb 23, 2025 at 11:59:51AM -0500, D. Hugh Redelmeier via talk wrote:
Warning: I'm feeling explainy today, even though nobody asked. You can skip this.
It is very easy to swap B and b and not even notice. Worse, bits sometime means data-including-overhead but Bytes usually excludes some overhead. So simply dividing b/s by 8 may not give you B/s. Old example: 110 b/s serial was 10 seven- or eight-bit characters/second.
I believe in the case of SATA it is about 10 bits per byte due to encoding overhead of 8b/10b encoding, to allow clock recovery from the data.
Not only that, this is a speed difference that you can actually feel in every-day operations on your personal computer.
Note: the limit of a disk protocol is not usually the bottleneck, the device itself is.
SSD's have performance that is rather hard to understand because they are using a very odd medium (flash memory) and disguising this with a layer of firmware to emulate an older odd medium, the hard disk.
One name for this firmware is the "Flash Translation Layer" but its complicated function is called "Wear Levelling". One side-effect is called "write amplification". (All this firmware is proprietary and we must infer its structure from its behaviour.)
The most observable surprise is that most modern SSDs can accept write requests at quite a rate but if a sequence of writes fills the SSD's cache, the write throughput drops drastically. The most likely example I can think of occurs when you backup to an SSD.
Pet idea:
Most flash is TLC or QLC: each flash cell stores 3 or 4 bits. I can buy a 1T NVMe drive for about $100. I would like to be able to run it (or part of it) in SLC mode (1 bit per cell). This would reduce the capacity by a factor of 3 or 4 but make the drive very fast and perhaps increase durability.
I think that this should be easy for the drive manufacturers. The firmware already use some flash in pseudo-SLC mode to implement the cache (for speed reasons).
I know some eMMC chips allow you to configure pSLC on some part while leaving other parts for capacity. It does hugely increase durability since the tolerance between the voltage for 0 and 1 becomes much much larger than it is when you have 8 or 16 voltage levels to tell apart. -- Len Sorensen