From: dbg@slac.stanford.edu (David Gustavson)
Newsgroups: comp.arch
Subject: Re: Is the SCI spec online anywhere??
Date: 20 Dec 92 20:31:22 GMT
Followup-To: comp.arch,comp.sys.dec,comp.sys.sgi,comp.sys.hp
Organization: SLAC

In article <1992Dec18.205501.1092@walter.bellcore.com>,
mo@gizmo.bellcore.com (Michael O'Dell) wrote:
> 
> I asked uncle archie but he didn't seem to know.
> 
> 	-Mike

SCI is an approved ANSI/IEEE standard, IEEE Std 1596-1992 Scalable Coherent
Interface, and as such is available for purchase from the IEEE Service
Center at 1-800-678-4333 (US) or ++908-562-3800 (fax ++908-981-9667), just
like any other IEEE standard. The price is $64+$5 handling (US). For the
time being what you will receive is a prepublication draft, D2.00
(18Nov91), which was also included in SCI mailing M25, available from
Kinko's copy service 415-328-3381 fax 415-328-7518, and portions of which
can be found online in PostScript form at sunsci.cern.ch last I heard.

The IEEE finances its standards activities by sale of standards, so I urge
you to purchase the document from them if they can meet your delivery
requirements. 

The standard is currently being edited for printing, which should occur
sometime 1Q93. The printed version will not be available electronically
according to current IEEE policies. There are ongoing discussions of these
policies, but the fundamental problem is how to pay for standards work if
the standards are available online free of charge. The staff's got to eat
too....

The prepublication draft is tedious to print, because 60+% of it is C code
listings, bringing it up to a fat 730 pages. The English text is largely
tutorial and useful reading, but the C is more usefully read via machines.
The plan is to separate the C and the English for publication, and to
include the C on a diskette and in a separate or separable volume (it has
to be printed as well as on disk, for legal reasons, but we'll use smaller
type next time, following legal tradition, and 2-up). The C code has been
undergoing debugging and reorganization for easier understanding, so if you
want to execute the latest version you can find it on the SCI server at HP,
hplsci.hpl.hp.com. Ask Dave James to put you on the reflector list for bug
info distribution etc. too, dvj@apple.com.

For a readily accessible overview, IEEE Micro Feb 92 pp 10-22 may be
useful.

Most people don't need the details, because you'll just buy an SCI
interface chip (yes, it's a single chip, including transceivers and all)
from a vendor who understood the details. However, if you like to know how
things work, or if you are designing a multiprocessor architecture or cache
or memory controller, you'll have to read the document. 

Draft 2 sections 1-3 deal with overview and logical protocols (moving
packets), section 4 is largely the C code detailing the packet protocol,
then section 5 covers the mechanical and electrical and optical specs,
section 6 discusses the coherence protocol, and section 7 is largely C code
detailing the coherence protocol.

In order to make SCI available in a timely way, the standard provides a
basic coherence mechanism that is robust and probably efficient enough for
a few hundred processors (depending on sharing patterns, of course). This
uses a distributed linked list as the coherence directory. There is a
project (P1596.2, kiloprocessor extensions) under way to build on this list
to form tree-structured directories, which will provide the logarithmic
behavior one needs for large systems. At the time we finalized the base SCI
spec, no one knew how to do that in a way that met our requirements (but we
had ideas). Rather than delay SCI for an unknown time, we decided to put in
the hooks for future compatible enhancement and release the linear list
version. That is fully adequate for the first generation or so of
applications--in fact, some users won't need coherence at all in their
first applications.

Our requirements for the tree structured directories included: no lock
variables; guarantee of forward progress (no deadlocks or livelocks); build
reasonably balanced tree in a distributed parallel multiprocessor way,
without looking far beyond your own neighborhood (i.e. you can't take time
to look at the whole tree to analyze it and balance it); compatible with
request-combining, to eliminate hot spots; maintenance work distributed to
eliminate hot spots; useful for efficient barrier sync; same memory
controller compatible with either tree or linear structure.

We now have a solution in hand that seems to meet these requirements, and
we are analyzing and polishing it. We'll probably finish it in about a
year. The chairman of P1596.2 is Stein Gjessing, gjessing@ifi.uio.no. The
next meeting is January 12 at LSI Logic in Milpitas, CA.

If you want to be added to the reflector for SCI announcements and/or the
reflector for SCI discussions, send me your email address. I'd also like
your mail address, phone and fax (but these are optional and not kept
confidential). It's nice to be able to reach someone via an alternate path
when his email starts bouncing...

--------------------------------------------------------------
-- David B. Gustavson, Computation Research Group, SLAC, POB 4349 MS 88,
    Stanford, CA 94309   tel (415)961-3539  fax (415)961-3530
-- What the world needs next is a Scalable Coherent Interface!
-- Any opinions expressed are mine and not necessarily those
   of the Stanford Linear Accelerator Center, the University, or the DOE.