this post was submitted on 21 Jan 2024
250 points (97.7% liked)
Technology
59439 readers
4638 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
What you’re describing is the holy grail of computer memory technology. If we had nonvolatile memory as fast as RAM, we would absolutely be using it instead. Unfortunately even the fastest SSD today would be a significant drop in speed from modern RAM.
Would it be faster than loading gigabytes of data from an SSD over NVMe into RAM?
RAM is basically the scratch space for the CPU. It doesn’t just contain data loaded from the SSD, it contains the running state of the OS and all applications and is constantly being read from and written to by the CPU. As it is, RAM is already a lot slower than the CPU. Replacing RAM with a standard NVMe SSD would slow a PC down to an unusable crawl.
I'm familiar with what RAM is for.
The idea I'm getting at is, back in the day computer software especially video games came on ROM cartridges, which were little more than a plastic shell around a small circuit board that had a ROM chip or two, maybe a battery backed RAM chip to save game progress if you're Nintendo. This ROM was attached to the same data bus on the CPU as the system's built-in RAM, which meant the CPU could read from it just like RAM. This meant that cartridge-based systems didn't need as much total RAM, because instructions, graphics, audio etc. were read directly from ROM, and it didn't have to load instructions or graphics into memory before executing/displaying them. So no loading screens.
Modern computer SSDs are attached via SATA or at best the PCIe bus, and the CPU has to interact with a controller on the device to get data loaded into memory before it can be executed. Could you attach some non-volatile storage on the same bus with the RAM. Like, the average ATX motherboard has 4 RAM slots, right? Could you mount two sticks of RAM and two sticks of non-volatile storage that exists in the memory address space?
The simple answer your entire query is the fact that PCIe is not the bottleneck. The bus that connects your storage to the CPU is faster than any storage we have these days (ignore sata it doesn't count). There is no innovation to be had with your suggestion, just complexity.
Now, there is something related to your suggestion. Graphics cards are exploring / have explored having storage communicate with them directly because of the latency in loading assets into the CPU then sending them to the GPU. This is where progress is being made on optimizing communication between storage and host.
If you're only loading data to access it once, then yes, but it almost never is the case - some specific programs might do it, but OS definitely caches pretty much everything it can in RAM for subsequent access - Linux, for example, fills unused RAM with cache