default header

Hardware

RAM Disks

Moderator: JC Denton

RAM Disks

Unread postby icycalm » 10 Oct 2012 15:30

First time I heard of this concept, in Maximum PC's latest edition of their Dream Machine:

The Maximum PC Staff wrote:With eight slots and quad-channel RAM support at our disposal, we decided to go for broke this year by maxing out the system RAM with 64GB of Corsair Dominator Platinum DDR3/2133. We did this not only because these modules looks pretty as hell, but also because we wanted to take advantage of lower RAM prices to run a large RAM disk. Not everyone needs a RAM disk, of course, but it’s hard to argue with 32GB of storage that reads at 5,000MB/s.


http://www.maximumpc.com/article/hardwa ... w?page=0,1

Five times faster than the fastest SSDs (which clock in at about 800MB/s to 1,000MB/s).

I wonder though what you can do with them. Can you install an entire game on them, and would you see any discernible performance increase? In what, frame rates, loading times? I can't really imagine getting any improvement in frame rates, and aren't loading times already practically non-existent with SSDs? (I say this having never used an SSD).
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby Beakman » 20 Nov 2012 20:55

The hardware implementation of this concept is somewhat old. System RAM partitions themselves are older, but not used for game performance reasons until recently.

If you have a very fast main storage unit at your disposal, the increase on performance depends on the memory management implementation in each game, which in short means: "In most games, you'll only see faster load times". This is because most games only access the main storage unit once in a while (i.e. loading between levels).

The exception would be games that use streaming extensively, this is, they continuously load (extract data from the main storage unit) while actually running, in order to, for example, render vast or very detailed areas without resorting to loading screens and without being limited to whatever amount of system memory you've got. Soul Reaver, the recent games from The Elder Scrolls series and Rage are examples of games that use this technique heavily.

And then when you already have what you need in system memory, the game stops loading from main storage. Until it does it again, any performance increase resulting from having a very fast main storage unit disappears. If you have lots of system memory available (as in a decent gaming PC), having a slow main storage unit usually doesn't hinder performance too much, since memory management facilities are built around assuming you have a regular, old-ass HDD. So the game loads at once everything it can in system memory, with system memory storage space to spare in order to keep loading slowly "behind curtains". For example: loading stuff that's very far away from the player's point of view.

Funnily, the best case I've seen of performance increases because of faster main storage units is on the PS3. Its versions of Rage and Skyrim (which again, feature streaming a lot, almost all the time) benefit greatly from installing an SSD on the PS3. This is mostly because the PS3 has a really tiny amount of RAM (even less available than the Xbox 360, and split in two 256MB chunks, video and system RAM) and it has to be refreshed continuously with data from both main storage units (the optical disc and the HDD). Having faster data transfers because of using solid state memory helps a lot. You can read about it here. As you can see, there's little difference of performance with games that don't feature heavy streaming.

About loading times: they can be very fast with RAM drives (or to a lesser extent, SSDs) but they're not instantaneous. Here you've got a video of the PC version of Skyrim loading from a regular, kinda slow hard disk drive and then from a RAM partition:

http://www.youtube.com/watch?v=zMYhUm0n1Gw

55 seconds on a 5400 RPM HDD vs 8 seconds on a 6GB RAM partition. Pretty impressive, huh? But there's still some loading time. The reason for this is simple: Even if with a RAM partition the main storage unit and system memory are physically the same device, they don't share the same set of memory blocks. So you have to move data from one to another via data paths which, I presume, are built into the motherboard and memory controller. Kind of inefficient, but a step forwards, nonetheless. And of course you still have to load data into video RAM, anyway.

Maybe in the near future we will see true fusion between storage, system and video memory in one big, fast pool of storage blocks connected to the processing units via very fast data paths. Then we would finally kiss loading screens goodbye. That is essentially how old computers worked. Funny, isn't it?
User avatar
Beakman
 
Joined: 26 Apr 2009 17:30
Location: Mexico City

Unread postby Beakman » 20 Nov 2012 21:10

On a side note: Wouldn't it be better to say "fuck it" and load the whole game into system memory at once if there's enough space available? And with video cards featuring lots of VRAM, you wouldn't have to cope with loading times for them either.

I always thought that this should be a feature of every PC game, even old ones, for some kind of future proofing. It's a waste of everyone's time to still be seeing loading screens in, say, Half Life 2 or Unreal Tournament 2004.
User avatar
Beakman
 
Joined: 26 Apr 2009 17:30
Location: Mexico City

Unread postby icycalm » 21 Nov 2012 00:11

Beakman wrote:On a side note: Wouldn't it be better to say "fuck it" and load the whole game into system memory at once if there's enough space available?


That's what I asked in my post up there. And if you have had a RAM disk at some point, you should be able to answer this question. If the disk gets its own letter along all the other ones (e.g. "E"), then I don't see why you couldn't.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby Beakman » 21 Nov 2012 19:34

No, you're not loading the whole game in main system memory because the RAM "disk" (or RAM partition, as I've been referring to it) isn't being used as such. With the partition, you're reserving memory blocks for main system memory use and another set of blocks for storage unit use. Both sets aren't logically (and not even physically) the same, so there's still data transfer between both sets.

So if you install a game on a RAM partition being used as a storage unit (analogous to a very fast HDD, with drive letter and everything), once you start running the game its data will transfer from your RAM "disk" to the other part of your RAM reserved as actual main system memory (what we would usually refer just as "RAM"). The transfer will be very fast, but still redundant since the data is essentially being copied again into the same device (albeit into different memory blocks, of course -- this is, to a different partition in the same device). That's why I said this implementation is kind of inefficient.

This data redundancy inside the same device won't happen with actual hardware implementations of RAM "disks", such as with Gigabyte's i-RAM drives (see my first link above). This is because every memory block available in those devices is used as a main storage unit, while leaving the actual system RAM alone. Still, when installing something into an i-RAM drive, you're not loading it into what the computer regards as system memory. Again, the computer is basically using the same kind of devices for very different purposes.

Storage (usually, an HDD, optical disk, etc.) and system memory (usually, RAM) is not unified in these schemes. Not logically since the computer regards them as different purpose memory units and not physically since the memory blocks that conform the RAM sticks are being split into two sets: a main storage drive and the system memory set.

I've used RAM partitions for troubleshooting purposes since many years ago. You can run a lightweight version of an OS installed in a RAM partition (or storage drive), while leaving the other part of the RAM as regular, system memory. This is useful when the OS in your hard drive fucks up and won't boot -- you still have this way to run an OS in your computer even if you don't have another HDD handy.
User avatar
Beakman
 
Joined: 26 Apr 2009 17:30
Location: Mexico City

Unread postby icycalm » 22 Nov 2012 01:18

I asked:

I wrote:Can you install an entire game on them [...]?


And you replied:

You wrote:No, you're not loading the whole game in main system memory because...


It's like if I were asking "Is it raining outside?", and you replied "No, I didn't have eggs for breakfast". I am exaggerating a bit, but hopefully you can see my point.

So I guess what you are saying is that you CAN install an entire game on them. And what happens when you reset the machine? Is the game wiped off and has to be reinstalled? What about any registry changes it might have made, or saved games, etc.?

Your clarifications about the game's redundant use of RAM in the normal manner had not occurred to me, however, and are very welcome. But what I was getting at is that if it was realistically possible to install entire games on a RAM disk, it would effectively render traditional hard drives, whether mechanical or solid state, redundant -- at least for top-end machines with tons of RAM and owners who didn't mind playing only, say, one or two games at a time. Further performance gains could be made by modifying the games to not use RAM in the traditional way any more, but those had not occurred to me when I started this thread.

If you can take all your posts above, and also answer my questions, and stitch everything up into an article, then you can post it in the Submissions forum and it will go on the frontpage for the usual fee of a tenner. If not it's not a big deal. The info is in this thread, but it would be nice to have this properly formatted on the frontpage and in the rather neglected Hardware section of the features.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby Beakman » 22 Nov 2012 20:58

icycalm wrote:It's like if I were asking "Is it raining outside?", and you replied "No, I didn't have eggs for breakfast".


lol! I'm sorry! I'll try to better explain myself. First of all, your answers:

  • Installing games in a RAM disk:

  • That's right, you can install a game into a RAM "disk". (I prefer "RAM partition", or to be very specific: "Secondary storage drives in RAM", since there's nothing disk-shaped in there anyway).

  • About powering off your computer:

  • If you reset or power off your computer, everything stored in RAM (including everything stored in a RAM drive partition, of course) goes away. Therefore, you would have to reinstall the game into the RAM drive each time you power off.

    This doesn't happen with the i-RAM devices I mentioned before. These things have a battery in order to keep the RAM sticks with enough power to keep storing data when you turn off your PC.

  • Registry changes:

  • These are kept in the drive that stores your operating system. So, if you got the OS installed on another drive, which is usually the case, registry changes (or user account changes) are kept safely, outside your RAM storage drive.

  • About save games:

  • This changes depending in the game. If it keeps its saves in the same directory where the game itself is installed (usually: [Drive letter]:/Program Files/[Publisher's name]/[Game's name]). Then, it's installed in our RAM drive, therefore the save games themselves are there and they'll be erased forever if you turn off the PC!

    Many games keep their saves somewhere in your user account directory, though. In this case the same rules for registry changes apply. In any way, you can use software such as GameSave Manager in order to quickly make backups of your save games for most of your games, regardless of where they're stored.

  • About loading times:

  • As I said, with RAM drives they'll be very quick, but they're still there because of data redundancy. The optimal solution will be if the game itself was coded in such a way that it orders the OS to load it wholly into "system memory" (this is, any device used as such --optimally, actual RAM sticks) each time they're run.

    This would take a very long load time at first and then never again until the games unloads itself from system memory (i.e., the game tells the OS to do so, or you power off your PC -- you get my point) and you have to load it again. There should be at least an option to run games like this in my opinion, and it's up to PC game developers to implement it.

    This is different from RAM drives in that you wouldn't be using RAM space as a secondary storage partition at all. You would be using it as regular, system memory, with no redundancy in the same device and no time spent moving around data already stored in it.

    Then there would be no reason to use RAM drives as performance enhancers at all.

Just a side note: Load times aren't always present because of data transfers between devices. Data decompression also takes time and this is the reason why some Super Famicom games have load screens. In this scenario is not a matter of what kind of storage device or memory management scheme your using, it's just time spent processing data.
Last edited by Beakman on 22 Nov 2012 21:03, edited 1 time in total.
User avatar
Beakman
 
Joined: 26 Apr 2009 17:30
Location: Mexico City

Unread postby Beakman » 22 Nov 2012 21:01

And I will gladly write an article about this. It'll be when I finish with the Ace Combat: Assault Horizon one.
User avatar
Beakman
 
Joined: 26 Apr 2009 17:30
Location: Mexico City

Unread postby icycalm » 23 Nov 2012 08:08

You've already written it. All you need to do is stitch up the pieces, and make sure to end with this paragraph:

Beakman wrote:Maybe in the near future we will see true fusion between storage, system and video memory in one big, fast pool of storage blocks connected to the processing units via very fast data paths. Then we would finally kiss loading screens goodbye. That is essentially how old computers worked. Funny, isn't it?


And take your time, as usual.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands

Unread postby icycalm » 18 Jun 2013 16:42

A review of the AMD Radeon RAMDisk, which if I understand it correctly, is an application that creates and manages a RAM disk, i.e. not a hardware product. If so, it's a bit confusing they added the "Radeon" brand to its name. Isn't Radeon supposed to be only about their graphics line? Anyway, the review is also a good primer on how the technology operates. I just skimmed it for now, I'll be reading it more carefully when I upgrade my system to 24GB of RAM and start looking into how to get this thing running. The idea will be to install on it whatever game I am currently playing.

http://www.hardwarecanucks.com/forum/ha ... eview.html

AMD_Radeon_RAMDisk_Xtreme_RDx.jpg
AMD_Radeon_RAMDisk_Xtreme_RDx.jpg (34.76 KiB) Viewed 14017 times


AkG wrote:AMD’s RAMDisk software currently comes in two downloadable flavors: A free version and an “Xtreme” edition which will put you back $18.99. The free version is what most people will gravitate towards since the included feature set is identical to that of its bigger brother, albeit with some severe capacity limitations. It allows users to create a RAM drive of up to 4GB, though anyone using Radeon-branded memory will get access to 6GB of space. Meanwhile, Radeon RAMDisk Xtreme ups maximum capacity to a more reasonable 64GB and eliminates the always-present “upgrade now” popup which appears in the free version. Regardless of that path you choose, RAMDisk is compatible with all current AMD sockets like FM1, FM2 and AM3+ along with Intel platforms as well.

Without a doubt, the free version is an excellent starter service but the smaller drive size it creates is horrendously small. This translates into less programs being accelerated and ultimately slower overall system performance than a larger dedicated RAM drive would provide.

Price may be a concern but AMD’s $19 Xtreme is competitively positioned against the alternatives. 30GB cache drives like OCZ’s Synapse and Corsair’s Accelerator routinely go for about $70 and conversely, 1600MHz 32GB DDR3 memory kits can be found for $150 or less, allowing you to tackle system memory and better performance in one swoop. So from a cost perspective at least, the Xtreme version seems to make perfect sense as a partial substitute for an SSD cache and you can always expand it in the future with additional memory.


AkG wrote:In its most basic form a RAM Drive / RAM Disk is a virtual hard drive which uses a portion of your system’s memory as a storage device. You ‘format’ this portion of memory just like you would a hard drive partition and assign it a drive letter. As far as the operating system or any software is concerned, this new drive is just another storage medium, just one that has unusually low latency and ultra-high read / write performance.

Consumer grade memory may be extremely fast, but it was never designed with long term storage in mind; once power is lost any data stored in the RAM is toast. This is where AMD’s Radeon RAMDisk software enters the equation. It not only creates a user configurable drive, but also saves any data on the RAM drive to your system’s HDD at set intervals and before shutdown. The information is then restored to the RAM upon system restart.

Radeon RAMDisk goes about its process via a kernel level driver and some highly specialized configuration abilities within the software itself. Unfortunately, this whole process leads to noticeably increased start-up and shutdown times but in return, consumers are able to physically install programs to the RAM drive without worrying about software compatibility issues. For example you could install your most used application or – space permitting – install your favorite game and enjoy load times which will make even an SSD seem slow by comparison.
User avatar
icycalm
Hyperborean
 
Joined: 28 Mar 2006 00:08
Location: Tenerife, Canary Islands


Return to Hardware