Sparc Overview
SPARC (the Scalable Processor ARChitecture) is a RISC-based processor mainly used in high-end workstations and servers; in particular, Sun's SparcStation and many of Sun's Ultra machines are SPARC based. Notable features of Sun's implementation include:
- OpenBoot (aka OpenFirmware, IEEE 1275)
As Sparc hardware generally is highly expensive, few hobby OS's target it; however, as more and more older SPARCs are being replaced, an interested developer can often find them at swap meets and in discard piles, where they are available at little cost.
As a side effect of their high cost, little documentation is available for Sun's workstations at a hardware level, and what is available from Sun often requires a support contract. Fortunately, several free operating systems support the Sparc, such as Linux and *BSD.
The Sparc processor has several versions:
- V8: 32-bit, used in Sun's SparcStations
- V9: 64-bit, used in Sun's ULTRA workstations. Also known as UltraSparc.
Registers
Name | Number | Function | Callee must preserve? |
---|---|---|---|
%g0 | $0 | constant 0 | |
%g1-%g7 | $1-$7 | global registers 1-7 | |
%o0-%o5 | $8-$13 | output registers 0-5 | |
%sp | $14 | stack pointer | |
%o7 | $15 | subroutine return address | |
%l0-%l7 | $16-$23 | local registers 0-7 | |
%i0-%i5 | $24-$29 | input registers 0-5 | |
%fp | $30 | frame pointer | |
%i7 | $31 | function return address |