View Single Post
  #27 (permalink)  
Old 08-08-2008, 05:41 PM
XGuard04's Avatar
XGuard04
Lurker
Offline
 
Join Date: Oct 2007
Posts: 24
Reputation: 10
XGuard04 is a n00b
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Re: MiniSD card into RAM?

This whole topic is quite simple actually. In short, you do not gain much by using flash memory to perform this function. Here is why...let's start with the example of a computer:

Memory is referenced in a hierarchy as stated before. All information is stored at the top level, which is your HDD. Then there are memory levels below that.

HDD
^
Virtual Memory (Part of HDD just on the inside of disk)
^
RAM
^
L2 Cache
^
L1 Cache

As I'm sure most of you already know.

Depending on the structure of the computer architecture the rules for paging memory can vary but this is a typical case. Frequent memory accesses are always kept as close to the lowest level as possible. If you are running an application it will be requested by RAM from the HDD, then by L2 from RAM, L1 from L2 then kept in L1 (there is more to this than I want to get into). This allows your programs to work quickly by making the most frequent cases the fastest case. You'll notice here that your HDD cannot function as your RAM because of speed constraints, this is the way the architecture is designed.

This is what people are proposing:
uSD--|
^ .....|
RAM <|
^
L2
^
L1

Likewise your internal Flash for program storage is at the same level as uSD, consider it a different drive.

How can you have uSD function as "RAM"? Page references are already being taken from uSD when an application on the card is referenced!

Additionally, "Expanding your RAM" won't give you much since the read/write speeds of the uSD are so much slower than RAM. (You might might as well be referencing from a higher level in the heiarchy, since higher levels are slower.)

For those of you that use ReadyBoost as an example, HDD's are exceptionally faster than flash memory when comapred to squentially referenced pages (which is what many memory references from a higher level end up being). (Wikipedia is biased and sometimes ill informed.) Readyboost comes into play in certain situations when random pages need to referenced that are not sequentially read from a higher level (say a program thats smaller than a page size). (This is because the initial latency for a HDD to spin up and begin reading data is longer than reading/writing data for a small burst.)

This is a difficult topic to explain in a thread however most people who have taken a computer architecture class would understand this. This is a topic usually left to academia or those directly involved with researching this topic. (I do not mean those two comments in a demeaning way, I am only trying to inform .)

Hopefully this helps some people and if you have a question or discrepancy with what I have said please reply, I might have wrote something wrong!

BTW:
GO GATORS! EEL4713! (I knew it would finally come in handy!)

Last edited by XGuard04; 09-28-2008 at 02:27 PM.
Reply With Quote