What about extending the RAM through an SD Card?


RAM access does not happen bit by bit, it happens with several words at a time. If you can access two 32-bit words per cycle, then 100MHz translates to 800MB/s. It's probably some multiple of that.

See also: http://en.wikipedia.org/wiki/DDR3_SDRAM

I don't know the exact specs for the Pandora, but the RAM speed should be in the order of gigabytes per second. For example, it is no problem to have a 800x480x32bit surface in memory (about 1.5MB) and do a couple of full reads and writes on the entire surface in each frame of a 60 FPS game - that in itself already means you're transferring hundreds of megabytes per second from and to RAM.

So SD cards (e.g. swap) are several orders of magnitude slower than RAM. At least 100 times slower, maybe 1000 times.
 
Thanks, guys, that really put it into perspective.

So readyboost/Swap really only helps when your device is severely low on RAM (compared to its usage of it).
 
Pandora's main RAM is 166MHz 32-bit DDR for the CC/Rebirth units, 200MHz for the 1GHz units. So 1.33GB/s or 1.6GB/s. For various reasons normal code comes nowhere close to saturating that, although some specialized close can come closer.

I don't exactly remember what the SD clock is set to on Pandora, except that I'm pretty confident it's somewhere between 25 and 50MHz. That'd be 12.5-25MB/s theoretical max because the SD interface is 4-bits wide.

But it's not just the bandwidth that matters, latency would play a very big role. With RAM you can freely read and write to it with only a relatively small worst case setup cost for changing to different regions of memory, and that's all handled by the controller. This latency is in the hundreds of nanoseconds at the worst. With flash you have to load an entire big block in advance and the latency for doing this can be in the tens of microseconds, could easily end up 100x worse than main RAM. Especially when you consider that the SD controller is moving blocks around for wear leveling.
 
Last edited by a moderator:
FWIW, I recall Battle for Wesnoth was difficult to run on CC units with 256MB of RAM, but I've run it fine with 512MB of RAM and no swapfile, so presumably it needs something between those two figures. But then it does have a lot of high-resolution graphics, and is primarily designed to run on PCs so has probably been optimised for speed/ease of development and not space in a few places.
 
Back
Top