Article View: comp.arch
Article #12932Re: shared memory multiproc. question
From: markp
Date: Thu, 05 Feb 1987 00:23
Date: Thu, 05 Feb 1987 00:23
74 lines
4866 bytes
4866 bytes
>
> There are a number of shared memory multiprocessors on the market today
> that consist of a number of high-end microprocessors on a single bus.
> Decent performance is obtained by using fancy cache technology. Making
> a single board computer is pretty trivial now-a-days, and making a
> multiprocessor system without the caches is not much harder but fairly
> pointless. How hard is it to make these caches? Are there chips on
> the market that do most of the work for you?
>
> I am mildly interested in building a shared memory multiprocessor to
> attatch to a Sun or some other workstation for experimental purposes.
> Is anybody selling boards from which one could build such a system
> easily and inexpensively?
>
> Ralph Johnson ihnp4!uiucdcs!johnson johnson@p.cs.uiuc.edu
Silicon support for caches is close to non-existent, with a few notable
exceptions. The most obvious are "cache-tag RAMs," which are just fast
static RAMs with built-in expandable comparators for implementing the
cache tag directory. The only cache management chips I know of off hand
are some Signetics 689xx (sic.) which do address translation and virtual
cache management, but only work on 68010's, hardly state-of-the-art.
Some processor designers have actually started to think about smart
caches, but all we see for the most part is a bit in the page table
controlling cacheability. The 80386 doesn't even have that. A notable
highlight is the MIPS R2000, which has on-chip cache control for
direct-mapped I/D caches, but which doesn't support hardware invalidates.
The 68030's on-chip data cache won't support invalidates either. Yech!
Pure software-enforcement. Might just as well use message-passing. :-)
Now, if you want something off the shelf, check out the Fairchild Clipper.
The Clipper modules have built-in instruction and data write-back caches,
but consistency is only enforced in write-through mode (programmable on a
per-page basis). The modules are fairly expensive (well over a thousand
dollars in small quantities last time I checked), but are good for about
4-5 MIPS each. You hook them in parallel on a proprietary synchronous bus
and would then need to build memory boards that plug into the same form
factor. Unless you REALLY want to spend the time designing a cache-based
CPU, the Clippers might do the trick for you. They might even give you a
good deal on off-speed parts for research use. Call your local rep, or
(800)423-5516 (Fairchild advanced processor division in Palo Alto, CA).
It is not inherently difficult or expensive to design a cache-based CPU board,
particularly direct-mapped with a block size of 1 word and write-through.
The only modification to an otherwise-conventional CPU board design that you
make is a bank of cache tag RAMs and cache data RAMs, hooked up in a fashion
left as an exercise for the reader, and a circuit to steal cycles in the
cache directory whenever somebody else does a write on the external bus.
When this happens, you query the cache directory and invalidate.
The suitability of this approach depends on how many boards you want to
build, and what kind of performance you want. Write-through is essentially
worthless with more than 2 or 3 of today's 32-bit microprocessors. If you
want to cascade enough processors to make it really interesting, write-back
is a necessity. When Futurebus (IEEE P896) is adopted (in May/June), it
will become the first bus standard that supports write-back caches.
However, the design of a smart write-back cache with a finite block size is
not an exercise for the faint-hearted, particularly with no advanced silicon
support. It is expected that this will change, now that there will be a
standard bus structure to interface to (instead of Sequent/Encore/Convergent
/ad nausem's proprietary busses), and a well-documented set of bus operations
to support the functioning of smart caches.
I love talking about caches, and could probably continue on forever, but
won't in this public forum. Feel free to address more specific questions
by email.
Mark Papamarcos
Valid Logic Systems, Inc.
{ihnp4,hplabs}!pesnta!valid!markp
(member, P896 working group and cache task group)
Generic disclaimer-- I have no vested interest in anyone mentioned above.
(except Futurebus, whose banner I loyally wave)
Technical Details
Message-ID:
<977@valid.UUCP>Path:
arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!codas!peora!pesnta!valid!markpReferences:
<76700001@uiucdcsp>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!burl!codas!peora!pesnta!valid!markp From: markp@valid.UUCP Newsgroups: comp.arch Subject: Re: shared memory multiproc. question Message-ID: <977@valid.UUCP> Date: Wed, 4-Feb-87 19:23:21 EST Article-I.D.: valid.977 Posted: Wed Feb 4 19:23:21 1987 Date-Received: Sat, 7-Feb-87 18:22:49 EST References: <76700001@uiucdcsp> Organization: Valid Logic, San Jose, CA Lines: 74