Expanding page interleave systems


The organizations of page and page interleave memory was described in chapter 4 as a way of increasing the speed of systems when using slow memory devices. The only problem with interleaving is that is requires more than one bank of memory upgrades must be planned with this in mind. In other words, you can expand memory by a single bank but you have to expand in pairs if you want to take advantage of the speed increase provided by interleave or page interleave. This also explains the very common restriction on fitting the same type of device to pairs of banks. If a pair of banks is being used to provide alternate memory locations then each has to supply the same amount of memory!

For example, if a 386SX machine can support a maximum of eight 256Kx9 Bit or 1Mx9Bit SIMMs (i.e. it has four banks) then there is a very real problem in deciding how a 2MByte machine should be configured. A 2Mbyte machine could be realized by using eight 256Kx9Bit SIMMs or a pair of 1MByte SIMMs. Using the eight 256Kbyte SIMMs would produce a faster machine because the multiple banks of memory could be used in interleave mode to reduce wait states. Unfortunately, this configuration makes it impossible to increase the memory without starting again. The alternative arrangement of using two 1MByte SIMMs has the advantage is that, being a single physical bank of memory, interleaving cannot be used and so the system will run slower. In nearly all cases it is batter to accept the slower machine that results from using a single bank with larger capacity memory modules. The reason is that memory upgrade is usually inevitable and so it makes sense to prepare for the future at the expense of present performance.

Increasing cache memory


System that use cache often, but not always, allow you to upgrade the size of the cache memory as well as main memory. It is important to understand that doing so will increase the speed of your machine but not the total amount of memory available to programs – cache memory is entirely separate from main memory and the fast processor.
It is also important that you use exactly the type of memory chips specified by the manufacture – this is very critical to the reliable operation of your machine. Notice also that cache memory is very fast SRMA, not DRAM as used in main memory. In nearly all cases when you fit extra cache memory you have to change the configuration of the machine by changing jumpers or switches on the main board.


Mainboard or expansion board ?


Early 386 machines depended on the use of expansion boards to hold the majority of their RAM. This was mainly due to the low capacity of memory chips available at the time and hence the large number needed to produce any reasonable sized memory. The only problem with expansion boards in the type of connector/bus used to plug them intc the mainboard. For  the 386/486 the familiar ISA bus used on the  286/AT is grossly inadequate for memory  expansion, being limited  to 16 bits. In the case of the  16-bit  386SX, however, memory expansion via the ISA bus is the possibility. To overcome  the shortcoming of the ISA bus most manufactures  have opted for proprietary 32-bit bus connectors. In the case of the 386SX there have even been proprietary 16 bit bus connectors. These are  fast enough to support memory  expansion but they have the disadvantage  of not being standardized. If your machine uses a 32-bit proprietary memory  expansion bus then you have to buy plug-in cards that are made specially   for your machine and usually by the same manufacturer. This single source  situation is only a problem in that is restricts  your shopping around, keeping price  high, and you run a small risk of not being able to  obtain  expansion cards if buy any chance the manufacture should go out  of business. However, some  machines , notably  those made by  IBM and Compaq , have sold in sufficiently large numbers  for third  party manufacturers  to  offer  lower cost alternatives.
The only way of providing standard 32-bit memory expansion cards is to use either  the 32-bit MCA or EISA bus. Both these standards have been extensively  described in chapter 3. Briefly , they are both  can be out –performed  in terms of  simplicity, cost and speed  by memory  installed directly on the main-board .
Indeed, this last comment could be applied to most memory expansion adapters. That most economical and efficient form  of memory is  that installed  on the main board  of your machine, and the upper  limit on the amount  of memory  installable  without expansion  adapters  is and important consideration in choosing  a machine. If  your machine does need memory expansion  adapters then you can generally buy them fully  populated. i.e complete with chips, or with 0 Kbytes installed i.e without chips. If you want a  trouble-free life then buy expansion boards  fully populated . but if you want to save money then buy boards  and chips separately. The process of installing them on the mainboard. In many cases the cost of a memory expansion card is  close to that of a replacement mainboard, complete with the amount  of memory you require, and upgrading  in this way is often a sensible  alternative.
Finally, don’t fail into  the  trap of confusing  expanded memory, EMS or LIM memory boards  with the sort of memory boards. Used to extent the memory in 386/486 based systems. Expanded memory is described  in detail in chapter 10 but briefly 386/486 systems use extended memory as  opposed to expanded memory hardware. Any expanded  memory that  may be required can be produced by using software that converts  extended memory  to expanded  memory. If this important  topic is worrying you then turn to chapter 10.





Memory banks


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!

Kategori