71

I am new to the hardware side of things. I run a few machines which have 400GB+ SSD's and 32GB RAM. I have been thinking about going up to 64GB RAM, however, I was thinking, since SSD's are solid-state like RAM, can't my extra space be used as RAM?

If I do this, will the extra RAM (from disk space) be significantly less efficient than DDR3 RAM?

6
  • 17
    Isn't that basically what "swap"/"pagefile" functions in modern OSes are doing?
    – user1686
    Jul 10, 2013 at 9:44
  • 8
    Because SSD have limited writes, and your system makes hundreds of writes to your memory every hour, which means a SSD device would have a lifespan of a few days at that rate. Plus in terms of pure speed SSD is extremely slow compared to memory. Random Access Memory does not store the values after the power has been turned off, NAND the memory sed in SSD hardware does. NAND would make horrible Random Access Memory for a lot of reasons other then speed.
    – Ramhound
    Jul 10, 2013 at 10:53
  • If it were that simple, wouldnt everyone be doing it?
    – Keltari
    Aug 4, 2014 at 16:47
  • 1
    I know that it's an older question but depending on your workload they can certainly be beneficial as caches for a HDD array though, less writes than trying to use it as memory but an appropriately sided SDD cache for your workload can be a significant performance benefit by avoiding unnecessary HDD accesses for frequently accessed data. It's probably not a bad idea to make the investment in a large capacity drive with high P/E cycle flash for a cache drive though. That said a 6,000 P/E * 1 TB = 6 PB my cache averages 30GB/day so at that rate old age will probably get me before the 547 years.
    – MttJocy
    May 22, 2016 at 13:42
  • I am starting to see some new computers that are sold with DDR RAM, and very small solid-state drives for caching, and regular hard drives. They simply call it "memory" but it's not the same as RAM. Nov 9, 2017 at 18:37

8 Answers 8

50

Two years after the question was posed, the answer is changing from no to maybe.

Samsung SM951 is the current state of the art and, in RAID 0, has been shown in testing to achieve 4.5GB/s read and 3GB/s write. At a cost of $1/GB per disk this is significantly cheaper than RAM.

http://www.legitreviews.com/samsung-sm951-m2-pcie-ssds-raid0-performance_161753/5

DDR4 data transfer rate:
DDR4 2133:17 GB/s
DDR4 2400:19.2 GB/s
DDR4 2666:21.3 GB/s
DDR4 3200:25.6 GB/s

http://www.transcend-info.com/Support/FAQ-292

Further, the short lifespans of SSDs have been greatly exaggerated with tests showing that the 250GB Samsung 840 Pro sustains 2.4PB of writes.

http://techreport.com/review/27909/the-ssd-endurance-experiment-theyre-all-dead/4

Depends on the application. If speed is more important than space then RAM, otherwise (maybe) look at SSD.

10
  • Prolly relevant, tho smewhat extreme. newsoffice.mit.edu/2015/cutting-cost-power-big-data-0710 - MIT's experimenting with a cluster that uses SSDs, and some FPGA stuff. The tech world's changed a fair bit since my original answer, tho I still think SSDs compilment not replace having enough ram for what you are doing.
    – Journeyman Geek
    Jul 13, 2015 at 4:45
  • Nice read, that last link. And also, unrelated but good to know: "Among the ones we tested, only the Intel 335 Series and first HyperX remained accessible at the end. Even those bricked themselves after a reboot." So if my SSD ever reports an error, I'm going to make sure not to reboot until I saved all recent data :-)
    – Arjan
    Sep 1, 2015 at 22:01
  • I do strongly agree that "short lifespans of SSDs have been greatly exaggerated", even if you do continuous full write stress test, it should have a relatively long life, even going over a year.
    – sharp12345
    Feb 29, 2016 at 2:33
  • if the answer is changing from no to maybe, is it possible to do it?, how? Oct 25, 2016 at 19:53
  • 1
    The PCIe M.2 performances quoted are sequential transfer speed, not random read/write. So we may not be comparing apples to apples here. Nov 7, 2016 at 16:07
56

Firstly, RAM is still significantly faster than both your regular 6gb/s SATA or even the newer PCI-e based solutions. RAM is also designed to be written and erased repeatedly, at the cost of volatility. RAM generally doesn't wear out due to regular use - though, of course, it can fail like any component.

While the lifespans of SSDs have gotten much better, SSDs do wear out. They're absolutely brilliant for nonvolatile use, but if you wrote and overwrote NAND (which SSDs contain) like you do RAM, it would wear out.

Both are really optimised for different things, and you're better off having enough RAM (and using SSDs or spinny hard drives for paging out) than compromising on enough RAM for the task.

41

As grawity suggested you already have the swap/page file performing this task. Now even a SSD is much more slower compared to DDR3. SSDs can deliver up to about 654MB/s while 1333MHz DDR3 in dual-channel mode can deliver up to 21.3GB/s (21 332MB/s).

3
  • But many applications don't work on the pagefile, when the RAM is full they just give an error.
    – skan
    Sep 27, 2016 at 19:49
  • 2
    @skan Nothing can be done about bad coded applications. AFAIK the paging of system memory should be transparent to the application. Broken applications my simply think that if there is no more RAM left it's time to shut the business down.
    – user555
    Sep 28, 2016 at 14:46
  • 1
    @skan, no.. applications are not even aware they are being paged out. They only way they can tell is by the slow down, which can be caused simply by higher priority tasks hogging the cpu.
    – psusi
    Nov 1, 2016 at 23:41
27

Yes, it will be significantly less efficient than DDR3 RAM.

  1. SSD will wear off quickly if used as RAM (frequent writes). So it will only be effective for 2 months or so, after that it will surely die. (So instead of 10 years of life ... it will live for about 10 weeks.)
  2. SSD is a disk device. CPUs can only pre-load data into its cache from RAM. If it will be on an SSD, it must be first loaded into RAM... Accessing the disk (even very-fast SSD) is around 100 times slower than accessing RAM. See benchmarks of HDD, SSD and RAMDISK (ramdisks on DDR3 have more than 3000 MB / sec , and less than 0.1 milisecond wait time for access. So, clearly: SSD cannot compete with speed of RAM).
22

The key reason why you can not use an SSD as RAM is because it is connected to the computer as if it were a disk drive, rather than RAM. That is to say, that the processor can not directly address the memory in the SSD but instead has to hand a block of RAM to the SATA controller and ask it to transfer data between that ram and an area in the drive.

The new NVM Express interface is poised to change this. It allows the CPU to map swaths of the SSD directly into its memory space and use it like RAM instead of issuing IO requests to transfer between RAM and the SSD. This has the potential significantly speed up access to the SSD while using less RAM as it is no longer required to cache the data while the CPU accesses it. This is currently an area of active development in the Linux kernel.

4
  • 4
    The first paragraph is basically the correct answer to the immediate question. Speed and wear on drive mentioned by others are secondary issues - even if SSDs were just as fast and resilient as RAM, currently we still could not use it as RAM.
    – mtone
    Apr 12, 2015 at 16:53
  • Anyone in the know-how in this area be able to update the answer? For example, are Samsung's m.2 960 Pros fast enough with good enough heat dissipation to manage the job?
    – n1k31t4
    Oct 31, 2016 at 20:02
  • @DexterMorgan, heat dissipation isn't really a thing, and whether it is fast enough is a judgment call.
    – psusi
    Nov 1, 2016 at 23:31
  • this isn't true. NVMe drives can't address single bytes, so they can never be usable as RAM
    – phuclv
    Oct 3, 2021 at 3:32
2

First, I have to say that swap/pagefile isn't RAM or virtual RAM. It's a BIG misconception that lots of people have. Pagefile is simply a place to store "unused" memory pages. If a program touch a page that's not available in memory then the memory controller will throw an exception that the OS will catch and load that page from any kind of memory like hard disk, SSD, network or zram, zcache... or simply kill the process away. That no way means pagefile is RAM

Now back to the main question


Indeed SSDs are always slower than RAM in the same era, but...

The reason isn't speed!!!

Even if SSD is faster than RAM we still can't use it as RAM, because the SSDs you can buy nowadays doesn't have the capability to address individual bytes like RAM. They're block devices which means you can only work on blocks. Under the hood they're comprised of NAND flash modules which can only read/write single pages. You can't edit a single byte without reading and rewriting the whole page. Each page is far bigger than the CPU's cache line

That means unlike what psusi said in the second paragraph, an NVMe or M.2 SSD can't work as RAM even if you can map it to the CPU's address space!!!

There are some kinds of non-volatile memory that's byte-addressable though, for example NOR flash. That's why small microcontrollers for embedded devices occasionally use NOR flash as an execute in place (XIP) medium to avoid the need for separate RAM and EEPROM/flash chips. But that doesn't work for large computers because of the speed and cost, just like how some small MCUs use SRAM directly as RAM instead of DRAM like normal CPUs

Additionally, to be able to work as RAM you not only need the ability to read/write single bytes but also the support from the memory controller/MMU. Mapping the address space doesn't work if the memory controller doesn't know how to interact with the device. Currently memory controllers all deal with RAM modules directly, so you need to use the same RAM interface for anything intended to be used as RAM regardless of the memory type

That's what Intel® Optane™ A.K.A 3D XPoint is currently doing. It's currently the closest to "using SSD as RAM" because it's the only thing that's fast enough and also byte-addressable. Note that only the Intel® Optane™ Persistent Memory comes in the DDR4 form factor and can be used as RAM. You still need some special hardware and OS support though, otherwise they still assume data in RAM are always volatile

Optane memory in comparison with DDR4

The other form factors, Intel® Optane™ SSD, can't be used as RAM due to the reasons I said

Intel® Optane™ memory comes in the M.2 form factor and will not be used in the DIMM/ DRAM memory slots. As such, it will not replace the current RAM that you have in place.

Can Intel® Optane™ Memory be used as RAM?

The price isn't cheap though, as expected: Intel Optane DIMM Pricing: $695 for 128GB, $2595 for 256GB, $7816 for 512GB (April 07, 2019)

See also

0
0

I have a laptop with maximum RAM of 4GB installed. I thought that using SSD for swap space would speed up my system. I have 250 GB Samsung drive, and allocated 32 GB for swap space. My PC runs much slower! I'm running Windows 10 Pro 1709 on a Lenovo 3000 N200 laptop. I have recently read that Microsoft recommends minimum of 8 GB RAM for Windows 10. I now have an 8 GB laptop, and its performance is much, much better.

3
  • 1
    correction: my speed results are invalid. I made the mistake of changing the virtual memory settings in Control Panel, instead of just clicking the ReadyBoost button in File Explorer. Dec 1, 2017 at 15:28
  • 1
    This is not a valid test! Apr 24, 2018 at 13:17
  • 1
    Ok Fiddler -- you win. Jun 22, 2018 at 6:47
0

I think the answers to the OP have got it covered - RAM is fast, volatile and not cycle limited, NAND is less fast, non volatile and wears out. BUT I'd like to mention another angle on this that has been in my mind for years.

A mechanical disk is a sequential R/W write device, that is, you start reading or writing at a particular spot, and keep going along the stream of bits until another spot where you stop. If you want to swap locations, you need to navigate the R/W head to the place where the new data is. Memory, by its nature, is random access - you can read/write each cycle to a completely different place in memory with no performance penalty.

Now, current SSDs are engineered to look like sequential R/W devices, simply because that's the known paradigm they are replacing. But they're really not sequential - they are memory. So what if we had a new kind of interface that allowed memory-style random access to the memory in an SSD, while being able to distinguish it from RAM.

I'm mainly thinking of databases here - they are traditionally based on disk, but the bottleneck has always been the sequential media - in fact, a lot of database servers actually have a map relating data directly to disk sectors in order to increase speed. If we could create a database server that mapped data directly to random access SSD-style nonvolatile memory, it could be a game changer for database speed.

Perhaps I'm dreaming and the SSD interface approaches the speed of direct random access, since that's what it's doing internally (plus it offers other services such as write cycle distribution).

I've just never heard this concept stated directly before, so I thought it was worth mentioning.

(edit: whoops, I see @psusi already mentioned this. I'll leave the answer here as an elaboration anyway)

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