[comp.sys.ibm.pc] '386 questions: price, cacheing, un*x

oxalis@ccb.ucsf.edu (Michael Sintchak) (06/03/89)

   Hi, I am looking for any information people have dealing with the
company Micro Generation (a division of Continental Technology).  In
this months computer shopper they offer what appears to be a great
deal - a 33.6 MHz '386 base system for only $1795.  If anybody has
recently gotten one of these systems or any system from Micro
Generation please email me your opinions.

   A related question is: what is the best memory cacheing available
(price/performance) for these '386 machines.  Micro Generation's board
uses "interleaved/page memory access" - is this comparable to
cacheing?  Also, I see that some boards advertise an 80387 socket,
others an 80387/80287 socket.  Will I be able to use my 80287 or does
it depend on the BIOS on the motherboard?

   My final question is about memory.  How much memory will I need on
a '386 machine to run some form of un*x?  What is the cheapest form of
un*x that runs on the '386 platform?  If I get a cheap un*x, will I be
able to run something like X windows on it (if yes, how much more
memory would I need)?

    Thanks in advance for your help.


-- Mike.




=================================
Mike Sintchak (oxalis@ccb.ucsf.edu)
Dept. of Pharm. Chem. - UC San Francisco
=================================

madd@bu-cs.BU.EDU (Jim Frost) (06/05/89)

In article <2021@ucsfcca.ucsf.edu> oxalis@ccb.ucsf.edu (Michael Sintchak) writes:
|   A related question is: what is the best memory cacheing available
|(price/performance) for these '386 machines.  Micro Generation's board
|uses "interleaved/page memory access" - is this comparable to
|cacheing?

Which is better depends on your application.  To give you some idea of
why, what follows is a brief summary of what each does and why.  Don't
trust this to be completely accurate, but it should give you some
idea.

It's pretty easy to make generalizations as to how a program is likely
to read memory.  The text portion of memory is likely to be quite
sequential, the data portion is likely to be localized, and the stack
is very likely to be localized.  With this in mind you can attempt to
cut down the frequency that particular chips are accessed, cutting out
wait-states.

Caching is a technique where you have a (relatively) small amount of
very high-speed memory which gets loaded in blocks from low-speed
memory.  So long as accesses fall within this cache, you get no
wait-states.  Cache misses are generally a little more expensive than
directly accessing the slow memory would have been -- and there's also
the time needed to load the cache (and other considerations), so there
are tradeoffs.  Since code and stack are usually very localized
(especially when high-level languages such as Pascal and C are used),
cache memory tends to work very well.

Interleaving is a technique where sequential memory locations are
spread amongst multiple chips.  Four-way interleaving would give you
four locations in a row which may be accessed sequentially with no
waiting, after which the first bank would probably be ready to be
accessed again.  If your code is very sequential, interleaving is very
good.  Even if it is not sequential, you have at least a 1 in 4 chance
(in my example) of getting a "ready" memory location.  At worst case
interleaved memory works no worse than straight memory.

Generally interleaved systems don't work as well as cached ones, but
it depends on your application.  Personally I like cached memory
systems, but they tend to be more expensive than interleaved (they are
more difficult to make and also require some amount of high-speed
memory) so it's another tradeoff.

For better discussions, you should look in back issues of PC-oriented
magazines right around the time the 80386 machines were starting to
come out.  I recall several excellent articles, although I cannot
remember which specific magazines they were in.  Check out "PC
Magazine" back-issues, I'm pretty sure they had one of those articles.

|   My final question is about memory.  How much memory will I need on
|a '386 machine to run some form of un*x?  What is the cheapest form of
|un*x that runs on the '386 platform?  If I get a cheap un*x, will I be
|able to run something like X windows on it (if yes, how much more
|memory would I need)?

How much you need depends on which UNIX you want to run and what you
want to do with it.  XENIX will run with 2Mb of memory (so the docs
say), although I'd say that you really want 4Mb if you're doing
development.  I haven't tried X Windows under it so I can't help
there.  Interactive's 386/ix (my favorite of the SysV versions and
which I like better than XENIX) needs at least 4Mb (I guess it'll run
with less but it won't be fun).  If you're running only a single user
without X Windows this will work fine.  If you're running X (they have
probably the best 386 X product there is, excluding those with
hardware assist) then you want 6-8Mb, with 8 highly recommended.
Running X with 4Mb works but it is constantly swapping so performance
is poor.

If you would like additional information, feel free to email me.

jim frost
madd@bu-it.bu.edu