[comp.sys.ibm.pc.misc] memory & speed

coxc0015@ucselx.sdsu.edu (Imagine) (05/01/91)

      I'm new on the IBM scene and in my motherboard manual it says that when

running on less that 4 slots filled the cpu speed is reduced by 10%-20%. I

have a Dieco 286-16Mhz, I used the norton system info utility. The benchmark

was at 8.4(Mhz, I think). If my mathmatics is correct that a little less than

50% reduced speed. Can someone please explain why such a great lose in speed.





                                      Thanks,

                                             Trung

  


 

david@kessner.denver.co.us (David Kessner) (05/01/91)

In article <1991Apr30.181315.2889@ucselx.sdsu.edu> coxc0015@ucselx.sdsu.edu (Imagine) writes:
>      I'm new on the IBM scene and in my motherboard manual it says that when
>running on less that 4 slots filled the cpu speed is reduced by 10%-20%. I
>have a Dieco 286-16Mhz, I used the norton system info utility. The benchmark
>was at 8.4(Mhz, I think). If my mathmatics is correct that a little less than
>50% reduced speed. Can someone please explain why such a great lose in speed.
>
>                                             Trung

Well.  First off.  Nortons does not give it's results in Mhz.  Rather, it gives
an index that it only good for comparing with other Norton results.  Further,
Nortons Si 4.5 results are very different from Norton Si 5.0 results.  By
the number you gave, I assume you have version 5.0-- the one I am least
familiar with.

You say four slots, I assume you mean four SIMM sockets.  

Here's the poop on memory.  On most 16mhz machines, the memory cannot keep
up with the CPU so the CPU often was to wait for the memory to spit out the
data.  This is known as a wait-state.  A one-wait state system will have
the CPU wait one additional clock cycle for each memory access.  Most 16mhz
machines use one or two wait-states.

There are many ways of getting rid of these wait-states.  You motherboard 
probably uses an "Interleaved" scheme, while most 386/486's use a cache.

In a normal system, memory can be thought of as one bank-- and all memory
accesses are using that bank with the associated wait states.  In an 
interleaved system, there is two banks where all odd bytes are in one
bank, and all even bytes in the other bank-- hence the term 'interleaved'.

When the CPU is accessing one bank, the system _starts_ a memory access on
the other bank (for the next byte).  It takes the same amount of time
for each memory access, but since they are overlapping you get an effective
zero-wait-state.

It's not perfect, however.  The motherboard assumes that the CPU will want
the _next_ byte, and starts to access that byte.  This is a good guess and
works most of the time, but there are times when the next byte is not
wanted and the system must start over and access the correct byte.  This
is why caches are better (but more expensive).

The SIMM's in your computer come in two sizes-- 256K and 1meg-a-byte.  Each
one will provide 8-bits of data at a time (I'm ignoring parity), but the
286 CPU wants data 16-bits at a time.  Therefore, you will (almost) always
see them in groups (banks) of two.  

Since interleaving requires two banks of RAM, and each bank has two SIMMs,
you need at least four SIMMs to have interleaved memory-- and that is why
you need four 'sockets' filled to benifit from the speed that interleaved
memory will provide.

Common memory configurations are:

	Total	Size of	Number	Interleaved?
	RAM	SIMM's	SIMM's
	-----	------	------	------------
	512	256K	2	No
	1meg	256K	4	Yes
	2meg	1meg	2	No
	4meg	1meg	4	Yes
	8meg	1meg	8	Yes

Actual configurations may vary-- consult your manual to be absolutely sure..

I hope that helped!
-- 
David Kessner - david@kessner.denver.co.us            | do {
1135 Fairfax, Denver CO  80220  (303) 377-1801 (p.m.) |    . . .
If you cant flame MS-DOS, who can you flame?          |    } while( jones);