[comp.sys.ibm.pc.hardware] Mixing 1M and 256K simms- Why not?

bash@cbnewsd.att.com (thomas.w.basham) (02/23/91)

There seems to be a consensus (or myth) that a system using SIMM
memory can't mix 1M and 256K simms.  My machine uses two banks of
4 slots.  Bank 0 must be filled, bank 1 is optional.  Since the
system obviously has the ability to determine bank 1's status,
why is it beyond reason to simply see how high one can access bank 1,
add that to what's in bank 0, and store it in CMOS.  

Those who have 1M in 256K's and upgrade to 4M wouldn't have to sell
off their 256K's, but now have 5M.

My question is:  why wouldn't/isn't this done?  Are there valid
reasons (other than programming shortcuts) to keep memory to a
1/2/4/8 M system.

Or:

If this mixing can be done, why is so few people seem to know about this?

Seems to me it's nothing but poor BIOS programming that can't access
the separate banks with different ranges.  I've mixed ram types in
(homemade) micros before, albiet (considerably) smaller systems.  It's
really just a matter of knowing what the top address is, and not
exceeding it.

Very curious,

Tom
-- 
Tom Basham      AT&T Bell Laboratories   
bash@ihlpb.ATT.COM   I'm the NRA.  I also vote.  
I can't say what AT&T does.

6600arac@ucsbuxa.ucsb.edu (Wolf) (02/23/91)

You can mix the two types of simms.  My motherboard manual
actually tells you what types you can mix.  I have 5 meg on
board because I wanted to keep my old simms.


"I prefer them and us.  It gets rid of excess baggage and lets you
get right down to cases."

Wolf
6600arac@ucsbuxa.ucsb.edu (Internet)
6600arac@ucsbuxa.bitnet   (Bitnet)

ong@d.cs.okstate.edu (ONG ENG TENG) (02/24/91)

From article <1991Feb23.045704.985@cbnewsd.att.com>, by bash@cbnewsd.att.com (thomas.w.basham):
> 
> There seems to be a consensus (or myth) that a system using SIMM
> memory can't mix 1M and 256K simms.  My machine uses two banks of
> 4 slots.  Bank 0 must be filled, bank 1 is optional.  Since the
> system obviously has the ability to determine bank 1's status,
> why is it beyond reason to simply see how high one can access bank 1,
> add that to what's in bank 0, and store it in CMOS.  
> 
> Those who have 1M in 256K's and upgrade to 4M wouldn't have to sell
> off their 256K's, but now have 5M.
> 
> My question is:  why wouldn't/isn't this done?  Are there valid
> reasons (other than programming shortcuts) to keep memory to a
> 1/2/4/8 M system.
> 
> Or:
> 
> If this mixing can be done, why is so few people seem to know about this?
> 
> Seems to me it's nothing but poor BIOS programming that can't access
> the separate banks with different ranges.  I've mixed ram types in
> (homemade) micros before, albiet (considerably) smaller systems.  It's
> really just a matter of knowing what the top address is, and not
> exceeding it.

Well, sure, you can mix, but you might have to sacrifice CPU power.  What
do I mean?  Well on a 12MHz 286, that's fine, because 80ns RAM's are common
and we can achieve 0 wait state w/o interleaving.  But when you go 
to say 16MHz or 20MHz, 80ns is not fast enough to keep pace with the
CPU, so bank interleave is required for 0 wait state (else you have to
go 1 wait state on NO interleave).  What does interleave requires?
Well instead of having just one bank (that is, 18 bits for 286 and 386SX,
36 bits for 386DX) of the same type of memory (that is 256k chips or 1meg 
chips), you need 2 banks of the same kind.  Since most motherboards
regardless of 386DX or 386SX have only 2 banks on board, mixing memory
chip types mean sacrificing interleaving, i.e. CPU power. 

Yes, I do have 1meg of 256k memory chips sitting around after upgrading to
4meg.  Memories are so cheap today that I can play smash-the-bug with
my hammer on the chips. (They should make a law that requires all 
386's onwards to have at least 4meg)!

rcollins@altos86.Altos.COM (Robert Collins) (02/27/91)

In article <1991Feb23.045704.985@cbnewsd.att.com> bash@cbnewsd.att.com (thomas.w.basham) writes:
>
>There seems to be a consensus (or myth) that a system using SIMM
>memory can't mix 1M and 256K simms.  My machine uses two banks of
>
>Seems to me it's nothing but poor BIOS programming that can't access
>the separate banks with different ranges.  I've mixed ram types in

As a BIOS programmer who has ported to a few chipsets, I think it is safe
to say that it depends on the capabilities of the chipset.  I can't think
of a single BIOS implementation doesn't take full advantage of the
chips used in the system.  Consider the C&T NEAT chipset.  The following
is a list of valid configurations in the NEAT (& LEAP):

	BANK0	BANK1	BANK2	BANK3	Total
1	  0k	  0k	  0k	  0k	  0k
2	256k	  0k	  0k	  0k	512k
3	  1M	  0k 	  0k	  0k	  2M
4	256k	 64k	  0k	  0k	640k
5	256k	256k	  0k	  0k	  1M (+)
6	  1M	  1M	  0k	  0k	  4M (+)
7	256k	256k	256k	  0k	1.5M
8	256k	256k	  1M	  0k	  3M
9	  1M	  1M	  1M	  0k	  6M
10	256k	 64k	256k	256k   1.64M 
11	256k	256k	256k	256k	  2M (*)
12	256k	 64k	  1M	  1M   6.64M
13	256k	256k	  1M	  1M	  5M (+)
14	  1M	  1M	  1M	  1M	  8M (*)

(+) = 2-way page interleave mode
(*) = 4-way page interleave mode


The above description is EVERY possible configuration this chipset allows.
As you can see, not every permutation of 256k, 64k, and 1M chips is
programmable into this chipset.  

So to answer your question:  it is not sloppy BIOS programming that
inhibits the mixture, it's most likely the chipset.



-- 
"Worship the Lord your God, and serve him only."  Mat. 4:10
Robert Collins                 UUCP:  ...!sun!altos86!rcollins
HOME:  (408) 225-8002
WORK:  (408) 432-6200 x4356