Studying for the A+, Network+ or Security+ exams? Get over 2,600 pages of FREE study guides at CertiGuide.com!|
Join the PC homebuilding revolution! Read the all-new, FREE 200-page online guide: How to Build Your Own PC!
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
Memory Banks and Package Bit Width
As discussed in the section on memory buses in the memory section and processor section, data from the memory flows to and from the processor along the data bus. The width of the data bus dictates how much information can flow in each clock cycle. In order to take advantage of the full width of the processor's data bus, it is necessary to arrange the system memory so that each clock cycle, the full data bus width can be transferred at once. In fact, most systems require the system memory to be arranged so that this is the case.
A quantity of memory that is wide enough to match the bit width of the data bus is called a bank of memory. Most of today's PCs have a data bus width of 32 bits (fourth generation processors) or 64 bits (fifth and sixth generation CPUs). A computer will not read a partial bank of memory; the result of setting up a partial bank ranges from the memory in it being ignored, to the system not booting at all. The PC definitely will not start if the first bank is incomplete, since then it has no usable memory at all.
Most PCs have room for more than one bank of memory; some support two banks, some three or more. Banks are usually numbered starting from zero, although sometimes starting with bank one. The lowest-numbered bank should always be filled first, and they should always be filled sequentially.
Each of the different types of memory modules arranges its memory so that a certain bit width can be accessed simultaneously. 30-pin SIMMs have a width of 8 data bits, 72-pin SIMMs have 32 data bits, and DIMMs have 64 bits. In addition, when parity is used, an extra bit is added for error detection. So 30-pin parity SIMMs have 9 bits, 72-pin parity or ECC SIMMs 36, and parity or ECC DIMMs 72 bits. Each module can be made up of various types of DRAM chips, as long as the right width is maintained.
Choosing memory packaging is an exercise in matching the width of the packaged RAM to the data bus width of the processor to make sure that a full bank of memory is provided. Fortunately, this is not as difficult as it sounds. The table below shows how this works (the 8088 and 8086 are not shown since they used individual memory chips, not SIMMs):
Note that a PC with a 64 bit data bus could use 8 30-pin SIMMs, except that this older technology is not supported on these newer machines; too much motherboard "real estate" is required with 30-pin SIMMs. Also, a 486 motherboard could actually make use of a single 168-pin DIMM to make up 2 banks of memory since the DIMM is 64 bits and the motherboard 32, but in practice this isn't done.
As you can see, Pentium-class and later PCs require two 72-pin SIMMs to make up a single bank. This is why you are always told to use a pair of SIMMs when buying memory for these machines. While this is generally true, there are in fact some Pentium motherboards that don't require a pair of 72-pin SIMMs. How is this possible? Basically, the chipset "cheats" by doing two consecutive accesses to 32 bits of memory at a time, allowing these machines to use a 32-bit bank size. This is a non-standard setup and leads to lower performance. It is found generally in older designs and is done mostly as a corner-cutting measure. In doing this, the bandwidth of the memory is cut in half for really no good reason. All else being equal, these motherboards should generally be avoided.
You should always use identical SIMMs when you require more than one to comprise a bank. Using different brands or speeds, or SIMMs with different types or quantities of DRAM chips, can cause motherboard system timing problems.