Why Random Access Memory, RAM, called "Random Access"?

"Random" refers to the fact that there is no penalty for switching between memory locations. There is effectively no difference between sequential and random reads, unlike other types of media.

RAM may have a similar "2D" array layout as other memory types but it has none of the head movement or area selection drawbacks of "sequential" memory types such as hard disks, tape drives or CD ROMs.

The names for a lot of these computing terms were coined in an era when tape drives were common, and even paper punch cards were used. Neither of those could easily be used in a random fashion. They typically forced you to scan the entire media in one long sequential fashion to find the spot you want. Even now hard disks have to seek to the area, wait for the data to move under the head and then start reading.

It has nothing to do with physical layout nor speed of the device. In terms of speed SSDs are coming close to RAM speeds, but they still prefer sequential over random access.

Most storage devices have a natural preference for sequential access rather than random access. RAM doesn't. RAM allows truly random access at all times.


RAM, unlike most storage media, has full and dedicated address and data buses connected to the CPU. This address bus means that memory needs very little in the way of active controller and switching between areas is effectively "free". There is a tiny penalty, sure, but it is far less than in other types of device. While I agree with your original link by Mark Hahn on that technicality he is largely wrong about the main part of it. Separate buses means that the address can be being changed all the time, with data "simply" flowing in one direction or the other.

Other storage devices do not have direct and dedicated address bus access by the CPU. They all have a data channel and need some kind of controller that has to wait for a command, decode that command, seek for data, receive data, and then marshal it out to the CPU. They may have "grab next block" commands that can make things faster, but once they see a new address command they have to essentially start again from scratch. Random access and sequential access have very different performance characteristics due to using a command protocol to access media. They lack the fast dual-bus that gives RAM its "easy" access to any memory location at any moment.

RAM may have some buffering, but it has none of the controller overhead for command decode and switching.