David Weaver

Wednesday Jan 11, 2006

Intro to UltraSPARC Architecture -- #1

(this blog entry is cross-posted in the OpenSPARC General Forum )

Sun's new systems based on the Niagara ("UltraSPARC T1") processor seem to be causing quite a stir in the market. Not only is the T1 processor's implementation new, but it is the first processor that adheres to a revised processor architecture specification.

With this posting, I'll embark on a series of posts to introduce this new processor architecture, named UltraSPARC Architecture 2005. We're completing the final touches for external publication of the actual specification; it should be posted on the web (on http://OpenSPARC.net and on the Sun processor web site ) within a month. (to be notified when it's posted, Login to the OpenSPARC site and visit this OpenSPARC page to register for the opensparc-announce mailing list)

 

The first question many people (even some inside Sun!) ask about the UltraSPARC Architecture is "why is a new architecture specification needed? Can't/shouldn't we just refer to the existing SPARC V9 specification plus a User's Guides for specific processors, like we've done in the past?"

Well, we could have continued down that path. However, it would have required software developers (probably the largest group of readers) to consult not just two, but multiple documents ... primarily SPARC V9 plus various processor implementation documents. With the UltraSPARC Architecture, readers can go to a single document to understand all they need to know about a whole generation of UltraSPARC processors, with all the most up-to-date information. A few may also want to consult implementation-specific architecture supplements.

Other factors motivating the UltraSPARC Architecture document involve the state of the SPARC V9 specification:

  • it is now over 10 years old
  • its hardcopy version contains ~90 known errata (although the PDF softcopy at SPARC International has been updated with corrections to those bugs)
  • doesn't enumerate all exception-causing conditions for each instruction
  • contains many ambiguities (one example: trap priorities)
  • doesn't contain any of the numerous standard Sun extensions (many of which have been present for over 10 years).
    (fortunately, I can say all that about SPARC V9 without fear of insulting its editor ;-))
The UltraSPARC Architecture 2005 specification:
  1. describes processor behavior much more precisely than did SPARC V9
  2. describes all the Sun architectural extensions (for example, VIS 1 and VIS 2 instructions, GSR register, and global register sets)
  3. won't be a static document -- if/when documentation bugs are identified, they will be fixed and a revised version will be posted on the web

Ambiguities that were present in SPARC V9 have been cleared up whereever possible in the UltraSPARC Architecture document -- and when not, are spelled out as explicit implementation dependencies. In each instruction description, all exceptions that can be triggered by the instruction are now listed, along with the precise conditions that can cause each exception. Whereever possible, old implementation dependencies were resolved and closed, so there are fewer gratuitous differences between implemenations.

Does this specification replace SPARC V9? Yes and no. SPARC V9 is still the standard by which (64-bit) SPARC implementations are measured; compliance with it is a prerequisite for using the trademarked name "SPARC". And SPARC V9 covers 64-bit SPARC processors from all vendors (primarily Sun and Fujitsu, as I write this), whereas the UltraSPARC Architecture only applies to UltraSPARC processors. But for anyone using a Sun UltraSPARC processor, the UltraSPARC Architecture spec should become the reference of choice.

 

I mentioned that the UltraSPARC Architecture 2005 describes a whole generation of UltraSPARC processors. Does that mean that an update will be published whenever a new processor "family" is introduced? Yes!

In subsequent postings, I'll assume that the reader has at least passing familiarity with the SPARC instruction set architecture, and will begin describing the new features specified in the UltraSPARC Architecture 2005 -- including Hyperprivileged mode, Chip Multi-Threading (CMT) control, new global registers set organization, new privileged instructions, and how UltraSPARC Architecture is set up to smoothly evolve over the coming years while continuing to maintain compatibility for existing SPARC application binaries.

  David Weaver
UltraSPARC Architecture
Sun Microsystems / Scalable Systems Group (SSG)

[ T: ]   [ T: ]


Comments:

Post a Comment:
  • HTML Syntax: NOT allowed

Calendar

Feeds

Search

Links

Navigation

Referrers