So far
we have concentrated on identifying the type and speed of memory device that is needed, but you cannot add
extra memory in any amount. For example, it seems reasonably obvious that you cannot add a single 1MBit chip . The reason is simply that
supplying 1 bit of each storage location
in a megabyte of memory doesn't allow you
to store a complete byte in any of
the locations. To be of any use , each
location has to have a full complement of 8 bits (9 including parity) and so
you have to fit memory devices to give
this number of bits at each location. For example, by fitting eight (or nine
including parity) 1MBit chips. Another way of saying this is that memory has to be at
least eight (or nine) bits wide.
This
restriction of fitting memory in whole
bytes seems reasonable enough, but the
386SX gets data form memory in 16-bit chunks and the rest of the 386
family works in 32-bit chunks. The argument about fitting
memory in complete eight-bit blocks also
applies to the 16- and 32-bit
blocks used by the 386SX and rest
of the 386 family. That is when the
processor tries to retrieve a 16-bit or 32-bit item of data from memory
all 16 or 32 bits have to be there!
In
other words:
Ø For the 386SX you have to add memory in 13-bit wide chunks
And
Ø For the 386DX, 486DX and 486SX you have to add memory in
32-bit wide chunks.
The
smallest chunk of memory that you can
add to a machine is usually referred to as a
bank and so the 386SX uses 16-bit banks and the rest use 32-bits banks.
The
number of banks and the type of memory
device that a machine accepted
can have important implications for memory expansion. For example,
suppose you have a 386SX machine with four SIMM sockets talking either
256Kx9Bit, 1Mx9Bit or 4Mx9Bit SIMMs. Simple minded reasoning
suggest that you can reach any memory capacity by fitting mixtures of
different types of SIMM in each socket (for example, two 256Kx9Bit SIMMs, one
1Mx9Bit SIMM and a 4Mx9Bit SIMM to give a total of 5.5 Mbytes). In fact you
cannot and this configuration would most definitely be illegal! The reason is
that although there are four SIMM
sockets these are organized as a pair of
banks each consisting of two of
the sockets. Each bank has to be
filled or empty, i.e you can not have
a half used bank and is has to be
filled with the same type of memory device. This severely restricts the
possible memory configuration and
certainly makes the example configuration illegal!
Once
you realize that memory devices have to be added in whole banks, many of the
strange rules that apply to which memory
sizes are reachable and which are
not become clear some machines are even
more restrictive than this and demand
not only that you fit the same type of
memory device to each bank but to
all of the banks. In this case configurations such as 2x256Kx9Bit SIMMs in bank
0 and 2x1Mx9Bit SIMMs in bank 1, giving a total of 3.5 Mbytes, would be
illegal!
You
can also see that having a limited number of banks can stop you reaching the maximum configuration of any given machine. For example in the case of a
386DX or a 486,each bank would have to consist of four SIMM sockets. If there are two banks then fitting all 4Mx9Bit SIMMs would produce a total of 32 bytes.
However, If the machine was initially
delivered with 4Mbytes of RAM
fitted then this could only be supplied as
four 1Mx9Bit SIMMs i.e filling one bank.
Notice that it is impossible to supply
this small amount of memory in any other
way as a single 4Mx9Bit SIMM wouldn't fill a whole bank. When you
subsequently consider the upgrade
options you can only fill the
second bank with more 1Mx9Bit SIMMs,
giving a total of 8 Mbytes, or if you are allowed to mix the type of memory
device, use four 4Mx9Bit SIMMs, giving a total
of 20 Mbytes. To reach the
maximum memory you would have no
choice but to remove the initial bank of
1Mx9Bit SIMMs.
The
same arguments apply to the use of
DIL chips, only in this case the
numbers involved are larger. That
is for a 386SX, a bank of DIL chips consists of 16 (18 including parity) 1-bit
devices and for the 386DX and 486 a bank consists of 32 (36 including parity)
1-bit devices. With chips having to be fitted
in multiples of 32 or 36 you can start
to see the advantage of memory
modules!