[comp.arch] New SPARC definition

david@elroy.jpl.nasa.gov (David Robinson) (03/22/91)

I have heard a couple blurbs about Sparc International releasing a
new version of the SPARC architecture.  Does anyone have any concrete
details on what things have changed from the original SPARC definition?
I assume that it will be upwardly compatible.  I have also heard bits
about it being better suited for multiprocessing.  Maybe a integer
multiply and divide?

Or is it just another person confusing a new implementation with a
new architecture?

	-David

-- 
David Robinson	david@elroy.jpl.nasa.gov 	{decwrl,usc,ames}!elroy!david
Disclaimer: No one listens to me anyway!
"Once a new technology rolls over you, if you're not part of the steamroller,
 you're part of the road." - Stewart Brand

mslater@cup.portal.com (Michael Z Slater) (03/24/91)

>I have heard a couple blurbs about Sparc International releasing a
>new version of the SPARC architecture.  Does anyone have any concrete
>details on what things have changed from the original SPARC definition?
>I assume that it will be upwardly compatible.  I have also heard bits
>about it being better suited for multiprocessing.  Maybe a integer
>multiply and divide?

>Or is it just another person confusing a new implementation with a
>new architecture?

Version 8 of the spec is indeed an updated architecture definition, not just
a new implementation. In fact, there are no announced implementations of
version 8.

The version 8 specification adds integer multiply and divide instructions. 
In addition, a "Store Barrier" instruction was added that requires all stores 
initiated before it to be completed before operation can continue. This is 
designed to support future multiprocessor machines that allow memory 
operations to occur out-of-order.

Version 8 formally specifies a no-op instruction. This does not add a new 
opcode but is just a recommendation for which of the many possible "no 
operation" instructions (such as moving any register to register 0) 
compilers should use. This will be helpful for future superscalar 
implementations, since it makes it easier to identify instructions as no-ops 
that can be discarded. The new specification also redefines the existing 
80-bit floating-point instructions to be 128-bit quad precision.

The forthcoming Lightning, Pinnacle, and Viking processors presumably 
will include the version 8 extensions. Existing SPARC processors trap on 
any undefined instructions, and Sun's current operating system already 
emulates the new multiply and divide instructions in the trap handler. The 
Store Barrier instruction is simply a no-op in existing systems, which don't 
perform out-of-order stores. Programs using the new instructions are 
therefore fully compatible with existing hardware, as long as 
quad-precision floating-point is not used or emulation is provided.

The new document also includes the reference MMU specification and 
recommended ASI (address space identifier) assignments. Many changes 
have been made to the wording to eliminate ambiguities and ensure 
compatibility among various implementations. The specification also adds a 
precise memory model, specifying a set of rules for out-of-order memory 
transactions, which Sun claims is important to provide portability for 
multiprocessor applications.

Michael Slater, Microprocessor Report   mslater@cup.portal.com

torek@elf.ee.lbl.gov (Chris Torek) (03/24/91)

In article <40492@cup.portal.com> mslater@cup.portal.com
(Michael Z Slater) writes:
>Version 8 of the spec is indeed an updated architecture definition, not just
>a new implementation. ...

Okay, so just how does one go about obtaining version 8 of the spec?
It would be nice to have both Sprite and our kernel support multiply
and divide instructions, for instance....
-- 
In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427)
Berkeley, CA		Domain:	torek@ee.lbl.gov

mslater@cup.portal.com (Michael Z Slater) (03/25/91)

>>Version 8 of the spec is indeed an updated architecture definition, not just
>>a new implementation. ...
>
>Okay, so just how does one go about obtaining version 8 of the spec?

The SPEC is distributed by SPARC International. phone 415/321-8692 or
fax 415/321-8015.  I don't know what the price is.

Michael Slater, Microprocessor Report  mslater@cup.portal.com

davidsen@crdos1.crd.ge.COM (Wm E Davidsen Jr) (03/25/91)

In article <40492@cup.portal.com> mslater@cup.portal.com (Michael Z Slater) writes:

| The version 8 specification adds integer multiply and divide instructions. 
| In addition, a "Store Barrier" instruction was added that requires all stores 
| initiated before it to be completed before operation can continue. This is 
| designed to support future multiprocessor machines that allow memory 
| operations to occur out-of-order.

  And now we can recycle all the arguments we just had about ordering of
stores to disk.

  "You can't run a database on a machine with out of order {x} writes."

  "But we do."

  "It will be a lot slower because you have to {y}."

  "it's lots faster then then the old {z} machine."

  "Less filling!"

  "Tastes great!"
-- 
bill davidsen	(davidsen@crdos1.crd.GE.COM -or- uunet!crdgw1!crdos1!davidsen)
        "Most of the VAX instructions are in microcode,
         but halt and no-op are in hardware for efficiency"