RAM Guide: Part I
DRAM and SRAM Basics
...but if you remember what I said in the "Storage Theory" section
at the beginning of this article, you know that the CPU likes to fill up its
entire 32-bit (i486) or 64-bit (Pentium and up) data bus when it fetches data.
So the problem arises of how to fill up that 32-bit or 64-bit data bus. Well,
the answer is, unsurprisingly, more of the same. Except this time, instead of
stacking the outputs of multiple chips together on one module, we stack the
outputs of multiple modules together into one RAM bank. The
following picture shows you one bank of four, 8-bit modules. Assume that each
chip in each module is a 4194304 x 1 chip, making each module a 4194304 x 8 (4
MB) module. The following bank then, with the 8-bit data buses from each module
combined gives a bus width of 32 bits.
The 16MB of memory that the above bank represents is broken up between the
modules so that each module stores every fourth byte. So, module 1 stores byte
1, module 2 stores byte 2, module 3 stores byte 3, module 4 stores byte 4,
module 1 stores byte 5, module 2 stores byte 6, and so on up to byte 16,777,216.
This is done so that when the CPU needs a particular byte, it can not only
grab the byte it needs but it can also put the rest of the adjacent bytes on the
data bus, too, and bring them all in at the same time.
To add memory to a system like this, you can do one of two things. The first
option would be to increase the size of the bank by increasing the size of each
individual module by the same amount. Say you wanted 32MB of memory; you'd
increase the amount of storage on each module from 4MB to 8MB. The other
option would be to add more banks.
The example above shows what a RAM bank on some i486 systems would actually
have looked like, with each of the modules being a 30-pin, single-sided SIMM.
Modern, Pentium-class systems are organized a bit differently... which brings me
around to the fact that before we can talk about Pentium-class systems, I have a
confession to make. Throughout this article I've been speaking as if everything
I've said applies to all systems. It doesn't. It really only applies to outdated
i486 systems. However, before you accuse me of having wasted your time, you
should realize that in order to understand how more advanced Pentium-class
systems are laid out, the concepts presented thus far, outdated though they may
be, are essential.
The differences between memory organization in Pentium-class vs. 486 systems
stems from one important change at the level of the RAM chip itself. This change
ripples all the way up through the organizational scheme. In just a moment, I'll
tell you what this change is and how it affects things.