Hacker News new | ask | show | jobs
by paulpan 770 days ago
I don't think it's strictly for price gouging/segmentation purposes.

On the Macbooks (running MacOS), RAM has been used as data cache to speed up data read/write performance until the actual SSD storage operation completes. It makes sense for Apple to account for with higher RAM spec for the 1TB/2TB configurations.

8 comments

> RAM has been used as data cache to speed up data read/write performance until the actual SSD storage operation completes.

I'm pretty sure that's what all modern operating systems are doing.

I'm writing this from memory, so some details may be wrong but: most high end ssds have dram caches on board, with a capacitor that maintains enough charge to flush the cache to flash in case of power failure. This operates below the system page cache that is standard for all disks and oses.

Apple doesn't do this, and use their tight integration to perform a similar function using system memory. So there is some technical justification, I think. They are 100% price gougers though.

Using host memory for SSD caches is part of the NVMe spec, it's not some Apple-magic-integration thing: https://www.servethehome.com/what-are-host-memory-buffer-or-...

It's also still typically just worse than an actual dram cache.

> writing this from memory

Gave me a chuckle ;)

One company's "Price Gouging" is another's "Market Segmentation"
Probably, but since we're talking about an Apple product, comparing it to macOS make sense, since they all share the same bottom layer.
Not, probably, that just how any "modern" OS works. It also uses RAM as a cache to avoid reads from storage, just like any other modern OS.

Apple uses it for segmentation and nothing else.

Modern being - since the 80s.

Even on the Atari ST you would use a "RAM disk" when working with "large" data before manually flushing it to a floppy. Some people would use the trashcan icon to emphasise the need to manually flush... Not quite a cache, but the concept was there.
> I don't think it's strictly for price gouging/segmentation purposes.

I think it is strictly for that purpose.

That is called a buffer/page cache and has existed in operating systems since the 1980s.
With hardware where power-off is only controlled by software, battery life is predictable, and large amounts of data like raw video are being persisted, they might have a very aggressive version of page caching, and a large amount of storage may imply that a scale-up of RAM would be necessary to keep all the data juggling on a happy path. That said, there’s no non-business reasons why they couldn’t extend that large RAM to smaller storage systems as well.
People without the "large amount of storage model" need to record video from the camera too.

The justifications I see are to reduce the number of models needed to stock and to keep the purchasing decision simple for customers. These are very good reasons.

It's unified memory which means the SSD controller is also using the system memory. So more flash needs more memory.
Then give me more memory. 512gb storage with 16gb ram
This post starts with "then" but isn't responsive to anything I said.
No this is caching with SSDs, it's not the same league.
Shouldn't the required cache size be dependent on throughput more so than disk size? It does not necessarily seem like you'd need a bigger write cache if the disk is bigger, people who have a 2TB drive don't read/write 2x as much in a given time as those with a 1TB drive. Or am I missing something?
IIRC SSD manufacturers are likely to store a mapping table of LBAs (logical block addresses) to PBAs (physical block addresses) in the DRAM or Host Memory Buffer.

Some calculation like:

total storage size / page size per LBA (512B or 4KiB usually) * mapping data structure size

> SSD manufacturers are likely to store a mapping table of LBAs (logical block addresses) to PBAs (physical block addresses) in the DRAM or Host Memory Buffer.

Are LBA's a thing on SSD's nowadays? I thought it was the legacy of the spinning rust.

SSD's operate on memory pages of the flash memory, and the page management is a complicated affair that is also entirely opaque to the host operating system due to the behind the scenes page remapping. Since flash memory is less durable (in the long term), the SSD's come overprovisioned and the true SSD capacity is always more (up to a double if my memory serves me well). The SSD controller also runs an embedded RTOS that monitors failures in flash chips and proactively evacuates and remaps ailing flash memory pages onto the healthy ones. Owing to this behaviour, the memory pages that the SSD controller reports back to the operating system have another, entirely hidden, layer of indirection.

Yep, LBAs are the primary addressing scheme in the NVMe spec, written into every single IO command. I would imagine there could be a better way, but NVMe & OS support still carries some baggage from SATA HDDs -> SATA SSDs -> NVMe SSDs.

As you mentioned, over-provisioning and other NAND flash memory health management techniques like garbage collection and wear leveling are needed for usable modern SSDs. Modern SSD controllers are complex beasts having 3-7 microprocessor cores (probably double digit core counts now with PCIe 5.0), encryption engines, power & thermal management, error correction, multiple hardware PHYs, etc.

Example product sheet: https://www.marvell.com/content/dam/marvell/en/public-collat...

On a physical level, flash deals with pages and erase blocks. NVMe has LBAs defined but it's always been an awkward legacy thing.
If I'm understanding your point correctly that wouldn't prevent them from offering higher ram specs for the lower storage eg. 512 gig macs. So it seems like it is just price gouging
How does that justify locking the 16GB option to 1TB/2TB options?
Since memory is on their SoC it makes it challenging to maintain multiple SKUs. This segmentation makes to me as a consumer.
If that were the case why do they bother with an iPad, iPad Air, iPad Pro, iPhone SE, iPhone, iPhone Pro, iPhone Pro Max, ... each with their own number of colors and storage variations.

But no 16GB without more SSD? lol?

iPad Air was created to make a new price category.

The iPhone SE exists because there is a market for this form factor. If you look at the specs, you would notice it uses hardware previously used by more expensive models.

> iPhone, iPhone Pro, iPhone Pro Max

Again, different customers for different form-factors. These phones differ more than just SoC in them.

You understand that having N different colors of iPads is different from having N different SoCs for the same model of an iPad.

Do people not understand that Apple's 'price gouging' is about UX? A person who has the money to buy a 1TB iPad is worth more than average customer. A 16GB RAM doubtlessly results in a faster UX and that person is more likely to continue purchasing.
> Do people not understand that Apple's 'price gouging' is about UX? A person who has the money to buy a 1TB iPad is worth more than average customer. A 16GB RAM doubtlessly results in a faster UX and that person is more likely to continue purchasing.

And that decision somehow turns into making budget conscious people's UX shittier? How is that a reason not to make 16gb RAM, which is almost a bare minimum in 2024, available to everyone?

The write speed needs to match what the camera can output or the WiFi/cellular can download. It has nothing to do with the total size of the storage.