Sun SPARC
SPARC (from Scalable Processor ARChitecture) is a big-endian RISC architecture. That is, an architecture with a reduced instruction set.
Originally designed by Sun Microsystems in 1985, it is based on the University of California at Berkeley RISC I and II designs that were defined between 1980 and 1982.
The company Sun Microsystems designed this architecture and licensed it to other manufacturers such as Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logic among others.
SPARC is the first open RISC architecture and as such the design specifications are published so that other microprocessor manufacturers can develop their own design.
One of the innovative ideas of this architecture is the registers window that allows to easily make high performance compilers and a significant memory reduction in load/store instructions relative to other RISC architectures. The advantages are seen above all in large programs.
The SPARC CPU is composed of an Integer Unit (IU), which processes basic execution, and a Floating Point Unit (FPU), which performs real number calculations and operations. The UI and FPU may or may not be built on the same chip.
Although not a formal part of the architecture, computers based on Sun Microsystems SPARC systems have a memory management unit (MMU) and a large virtual address cache (for instructions and data) that are arranged peripherally on a data bus and 32-bit addresses.
Main features
- Its distinctive feature is to use log windows.
- 32 whole 32-bit records.
- 16 64-bit floating comma logs (for double-precision) that can be used as 32 32-bit logs (for simple accuracy).
- Direction modes:
- Immediately, 13-bit counts.
- Straight, 13-bit offset.
- Indirect, (record + offset of 13 bits or record + record).
- Use delayed instructions (salts, load and store).
- Memory management:
- Virtual space of 4 Gigabytes.
- Memory management unit (MMU) that works with configurable size pages.
Instruction Categories
The SPARC architecture has about 50 integer instructions, a few more than the previous RISC design, but less than half the number of integer instructions in Motorola's 6800.
SPARC instructions can be classified into five categories:
- LOAD and STORE (the only way to access memory). These instructions use two logs or a record and a constant to calculate the memory address to address.
- Arithmetic/Legical/Shift Instructions. Run arithmetic operations, logics and bit displacement. These instructions calculate the result if it is a 2 operating function and save the result in a registry.
- Coprocessor operations. The IU extracts the floating comma operations from the data bus instructions and places them in the tail for the UPDF. The UPDF executes the floating comma calculations with a fixed number in arithmetic unit of floating comma (the number is dependent on the application). The floating comma operations are performed concurrently with IU instructions and other floating comma operations when necessary. The SPARC architecture also specifies an interface for the connection of an additional coprocessor.
- Transfer Control Instructions. These include jumps, calls, rags and branches. Transfer control is usually delayed until after the execution of the next instruction, so the pipeline is not emptied because time control occurs. Thus, compilers can be optimized by retarded branches.
- Records control instructions Read/Write. These instructions are included to read and record the contents of several control records. Generally the source or destination is implied in the instruction.
Log windows
A unique feature of the SPARC design is the window with overlapping registers. The processor has much more than 32 integer registers, but it presents 32 at any given time. An analogy can be created by comparing the register window to a rotating wheel. Some part of the wheel is always in contact with the ground; so turning it takes different portions of the wheel (the effect is similar for the record window overlap). The result of a register is changed to an operand for the next operation, obviating the need for an extra Load and Store statement.
It was agreed for the specification of the architecture, to be able to have 32 "visible" Divide into groups of 8.
- From r0 to r7, GLOBAL records.
- From r7 to r15, SALIDA records.
- From r15 to r23, LOCAL records.
- From r24 to r31, ENTRADA records.
Global records are "viewed" by all windows, the locales are only accessible by the current window, and the output registers overlap the input registers of the next window (the output registers for one window should be set as input records for the next, and should be in the same registry).
The window pointer keeps track of which window is currently active. There are instructions for "opening" and "close" windows, for example for a "call" instruction, the register window rotates anti-clockwise; for return from a "call" instruction, it rotates clockwise.
An interrupt uses a fresh window, that is, it opens a new window. The number of windows is an implementation parameter, usually 7 or 8.
The more elaborate alternative to slowly circling the log window is to place the logs at compile time. For languages like C, Pascal, etc., this strategy is difficult and time consuming. Therefore, the compiler is crucial to improve the productivity of the program.
"Recent research suggests that window registers, found on SPARC systems but not on other commercial RISC machines, are able to provide excellent performance for development languages such as Lisp and Smalltalk." (R. Blau, P. Foley, etc. 1984).
Traps and Exceptions
The SPARC design supports a full set of traps or interrupts. They are managed by a table that supports 128 hardware interrupts and 128 software traps. Although floating point instructions can be executed concurrently with integer instructions, floating point traps must be exact because the FPU provides (from the table) the addresses of the instructions that fail.
Memory protection
Some SPARC instructions are privileged and can only be executed while the processor is in supervisor mode. These instructions executed in protected mode ensure that user programs are not accidentally altered by the state of the machine with respect to its peripherals and vice versa. The SPARC design also provides memory protection, which is essential for multitasking operations.
The SPARC has many similarities to the Berkeley design, the RISC II. Similar to RISC II, it uses a register window to reduce the number of Load and Store instructions.
SPARC according to Sun Microsystems
Until recently, the RISC architectures had a poor performance regarding floating comma calculations. For example, IBM 801 was implementing software-floating coma operations. Berkeley, RISC I and RISC II projects exceeded a VAX 11/780 in whole calculations but NOT in arithmetic floating coma. This is also true for the Stanford processor, the MIPS. SPARC systems, however, are designed for optimal performance in floating comma calculations and support simple, double and extended precision in the operating and operations as specified by the ANSI/IEEE standard 754 of the floating comma standard.The high performance in floating comma calculations results from the concurrence of the IU and the UPDF. The IU (Integer Unit) makes the "load" and "store" while the FPU (Floating Point Unit) executes operations and calculations.
SPARC systems achieve high speeds as a result of refinement in chip manufacturing techniques.
The SPARC system delivers very high levels of performance. The flexibility of architecture makes future systems capable of obtaining many better times than that of initial implementation. In addition, open architecture makes this possible to absorb technological advances almost as soon as these occur.[chuckles]required]
Implementations
SPARC
- First generation released in 1987.
- Watch frequency from 16 to 50 MHz.
- Scaling design.
SUPER SPARC
- Second generation released in 1992.
- Watch frequency from 33 to 50 MHz.
- Superscale design
ULTRA SPARC II
- Launched in mid-1996.
- Super climbing architecture of 4 stages and 64 bits.
- Five units of floating comma.
- Speeds between 250 and 300 MHz.
Advanced Product Line (APL)
- Launched in mid-2004.
- Trade Agreement between Sun Microsystems and Fujitsu
- Super-scale architecture compatible with 64-bit SPARC V9 design.
- Speeds between 1.35 and 2.7 GHz.
Used by Sun Microsystems, Cray Research, Fujitsu / ICL and others.
SPARC Microprocessors Specifications
This table contains the specifications of certain SPARC processors: frequency (megahertz), architecture version, year of release, number of threads (threads per core multiplied by the number of cores), manufacturing process (nanometers), number transistors (millions), die size (mm²), number of input/output pins, power dissipated (watts), voltage and sizes of data, instruction, L2 and L3 caches (kibibytes).
Name | Model | Frequency (MHz) | Arq version. | Year | Total threads | Process (nm) | Transistors (millions) | Matrix size (mm2) | Pines de ES | Consumption (W) | Voltage (V) | Cache D L1 (KiB) | Cache I L1 (KiB) | Cache L2 (KiB) | cache L3 (KiB) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SPARC | (varies), including MB86900 | 14,28–40 | V7 | 1987-1992 | 1×1=1 | 800-1300 | ~0.1-1.8 | -- | 160-256 | -- | -- | 0-128 (unified) | N/P | N/P | |
microSPARC I (Tsunami) | IT TMS390S10 | 40–50 | V8 | 1992 | 1×1=1 | 800 | 0.8 | 225? | 288 | 2.5 | 5 | 2 | 4 | N/P | N/P |
SuperSPARC I (Viking) | TI TMX390Z50 / Sun STP1020 | 33–60 | V8 | 1992 | 1×1=1 | 800 | 3.1 | -- | 293 | 14,3 | 5 | 16 | 20 | 0-2048 | N/P |
SPARClite | Fujitsu MB8683x | 66–108 | V8E | 1992 | 1×1=1 | -- | -- | -- | 144, 176 | -- | 2.5/3,3V-5,0V, 2.5V-3,3V | 1, 2, 8, 16 | 1, 2, 8, 16 | N/P | N/P |
hyperSPARC (Coloration 1) | Ross RT620A | 40–90 | V8 | 1993 | 1×1=1 | 500 | 1.5 | -- | -- | -- | 5? | 0 | 8 | 128-256 | N/P |
microSPARC II (Swift) | Fujitsu MB86904 / Sun STP1012 | 60–125 | V8 | 1994 | 1×1=1 | 500 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 | N/P | N/P |
hyperSPARC (Colorated 2) | Ross RT620B | 90–125 | V8 | 1994 | 1×1=1 | 400 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 128-256 | N/P |
SuperSPARC II (Voyager) | Sun STP1021 | 75–90 | V8 | 1994 | 1×1=1 | 800 | 3.1 | 299 | -- | 16 | -- | 16 | 20 | 1024-2048 | N/P |
hyperSPARC (Colorated 3) | Ross RT620C | 125-166 | V8 | 1995 | 1×1=1 | 350 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 512-1024 | N/P |
TurboSPARC | Fujitsu MB86907 | 160–180 | V8 | 1996 | 1×1=1 | 350 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | N/P |
UltraSPARC (Spitfire) | Sun STP1030 | 143-167 | V9 | 1995 | 1×1=1 | 470 | 3,8 | 315 | 521 | 30 | 3.3 | 16 | 16 | 512-1024 | N/P |
UltraSPARC (Hornet) | Sun STP1030 | 200 | V9 | 1998 | 1×1=1 | 420 | 5.2 | 265 | 521 | -- | 3.3 | 16 | 16 | 512-1024 | N/P |
hyperSPARC (Colorated 4) | Ross RT620D | 180–200 | V8 | 1996 | 1×1=1 | 350 | 1.7. | -- | -- | -- | 3.3 | 16 | 16 | 512 | N/P |
SPARC64 | Fujitsu (HAL) | 101-118 | V9 | 1995 | 1×1=1 | 400 | -- | Multichip | 286 | 50 | 3,8 | 128 | 128 | -- | -- |
SPARC64 II | Fujitsu (HAL) | 141-161 | V9 | 1996 | 1×1=1 | 350 | -- | Multichip | 286 | 64 | 3.3 | 128 | 128 | -- | -- |
SPARC64 III | Fujitsu (HAL) MBCS70301 | 250-330 | V9 | 1998 | 1×1=1 | 240 | 17.6 | 240 | -- | -- | 2.5 | 64 | 64 | 8192 | -- |
UltraSPARC IIs (Blackbird) | Sun STP1031 | 250–400 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 149 | 521 | 25 | 2.5 | 16 | 16 | 1024 or 4096 | none |
UltraSPARC IIs (Sapphire-Black) | Sun STP1032 / STP1034 | 360-480 | V9 | 1999 | 1×1=1 | 250 | 5.4 | 126 | 521 | 21 | 1.9 | 16 | 16 | 1024–8192 | N/P |
UltraSPARC IIi (Sabre) | Sun SME1040 | 270-360 | V9 | 1997 | 1×1=1 | 350 | 5.4 | 156. | 587 | 21 | 1.9 | 16 | 16 | 256–2048 | N/P |
UltraSPARC IIi (Sapphire-Red) | Sun SME1430 | 333-480 | V9 | 1998 | 1×1=1 | 250 | 5.4 | -- | 587 | 21 | 1.9 | 16 | 16 | 2048 | N/P |
UltraSPARC IIe (Hummingbird) | Sun SME1701 | 400–500 | V9 | 1999 | 1×1=1 | 180 Al | -- | -- | 370 | 13 | 1.5-1.7 | 16 | 16 | 256 | N/P |
UltraSPARC IIi (IIe+) (Phantom) | Sun SME1532 | 550-650 | V9 | 2000 | 1×1=1 | 180 | -- | -- | 370 | 17.6 | 1.7. | 16 | 16 | 512 | N/P |
SPARC64 GP | Fujitsu SFCB81147 | 400–563 | V9 | 2000 | 1×1=1 | 180 | 30.2 | 217 | -- | -- | 1,8 | 128 | 128 | 8192 | -- |
SPARC64 GP | -- | 600-810 | V9 | -- | 1×1=1 | 150 | 30.2 | -- | -- | -- | 1.5 | 128 | 128 | 8192 | -- |
SPARC64 IV | Fujitsu MBCS80523 | 450-810 | V9 | 2000 | 1×1=1 | 130 | -- | -- | -- | -- | -- | 128 | 128 | 2048 | -- |
UltraSPARC III (Cheetah) | Sun SME1050 | 600 | V9 / JPS1 | 2001 | 1×1=1 | 180 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | N/P |
UltraSPARC III (Cheetah) | Sun SME1052 | 750–900 | V9 / JPS1 | 2001 | 1×1=1 | 130 Al | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | N/P |
UltraSPARC III Cu (Cheetah+) | Sun SME1056 | 1002-1200 | V9 / JPS1 | 2001 | 1×1=1 | 130 Cue | 29 | 232 | 1368 | 80 | 1.6 | 64 | 32 | 8192 | none |
UltraSPARC IIIi (Jalapeño) | Sun SME1603 | 1064-1593 | V9 / JPS1 | 2003 | 1×1=1 | 130 | 87.5 | 206 | 959 | 52 | 1.3. | 64 | 32 | 1024 | N/P |
SPARC64 V (Zeus) | Fujitsu | 1100–1350 | V9 / JPS1 | 2003 | 1×1=1 | 130 | 190 | 289 | 269 | 40 | 1.2 | 128 | 128 | 2048 | -- |
SPARC64 V+ (Olympus-B) | Fujitsu | 1650–2160 | V9 / JPS1 | 2004 | 1×1=1 | 90 | 400 | 297 | 279 | 65 | 1 | 128 | 128 | 4096 | -- |
UltraSPARC IV (Jaguar) | Sun SME1167 | 1050–1350 | V9 / JPS1 | 2004 | 1×2=2 | 130 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 | 16384 | N/P |
UltraSPARC IV+ (Panther) | Sun SME1167A | 1500–2100 | V9 / JPS1 | 2005 | 1×2=2 | 90 | 295 | 336 | 1368 | 90 | 1.1. | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 (Niagara) | Sun SME1905 | 1000-1400 | V9 / UA 2005 | 2005 | 4×8=32 | 90 | 300 | 340 | 1933 | 72 | 1.3. | 8 | 16 | 3072 | N/P |
SPARC64 VI (Olympus-C) | Fujitsu | 2150-2400 | V9 / JPS1 | 2007 | 2×2=4 | 90 | 540 | 422 | -- | 120 | -- | 128x2 | 128x2 | 6144 | N/P |
UltraSPARC T2 (Niagara 2) | Sun SME1908A | 1000-1600 | V9 / UA 2007 | 2007 | 8×8=64 | 65 | 503 | 342 | 1831 | 95 | 1.1-5 | 8 | 16 | 4096 | N/P |
UltraSPARC T2 Plus (Victoria Falls) | Sun SME1910A | 1200-1600 | V9 / UA 2007 | 2008 | 8×8=64 | 65 | 503 | 342 | 1831 | - | - | 8 | 16 | 4096 | N/P |
SPARC64 VII (Jupiter) | Fujitsu | 2400–2880 | V9 / JPS1 | 2008 | 2×4=8 | 65 | 600 | 445 | -- | 150 | -- | 64x4 | 64x4 | 6144 | N/P |
UltraSPARC "RK" (Rock) | Sun SME1832 | 2300 | V9/ -- | canceled | 2×16=32 | 65 | ? | 396 | 2326 | ? | ? | 32 | 32 | 2048 | ? |
SPARC64 VIIIfx (Venus) | Fujitsu | 2000 | V9 / JPS1 | 2009 | 1x8=8 | 45 | 760 | 513 | 1271 | 58 | ? | 32x8 | 32x8 | 6144 | N/P |
SPARC T3 (Rainbow Falls) | Oracle/Sun | 1650 | V9 / UA _?_ | 2010 | 8×16=128 | 40 | ? | 371 | ? | 139 | ? | 8 | 16 | 6144 | none |
SPARC64 VII+ (Jupiter-E or M3) | Fujitsu | 2667-3000 | V9 / JPS1 | 2010 | 2x4=8 | 65 | - | - | - | 160 | - | 64x4 | 64x4 | 12288 | N/P |
MCST-4R | MCST (Russia) | 750-1000 | V9 | 2010 | 1x4=4 | 90 | 150 | 115 | - | 15 | 1 | 32 | 16 | 2048 | N/P |
SPARC T4 (Yosemite Falls) | Oracle | 2850-3000 | V9 / OSA2011? | 2011 | 8×8=64 | 40 | 855 | 403 | ? | 240 | ? | 16x8 | 16x8 | 128x8 | 4096 |
SPARC64 IXfx | Fujitsu | 1850 | V9 / JPS1? | 2012 | 1x16=16 | 40 | 1870 | 484 | 1442 | 110 | ? | 32x16 | 32x16 | 12288 | N/P |
SPARC64 X | Fujitsu | 3000? | V9 / JPS | 2012 | 2x16=32 | 28 | 2950 | 587,5 | 1500 | ? | ? | 64x16 | 64x16 | 24576 | N/P |
SPARC T5 | Oracle | 3600 | V9 / OSA2011? | 2013 | 8×16=128 | 28 | ? | ? | ? | ? | ? | 16x8 | 16x8 | 128x16 | 8192 |
SPARC M5 | Oracle | 3600 | V9 / OSA2011? | 2013 | 8×6=48 | 28 | ? | ? | ? | ? | ? | 16x6 | 16x6 | 128x6 | 49152 |
SPARC M6 | Oracle | 3600 | V9 / OSA2011? | 2013 | 8×12=96 | 28 | ? | ? | ? | ? | ? | 16x12 | 16x12 | 128x12 | 49152 |
Name (codename) | Model | Frequency (MHz) | Arq version. | Year | Total threads | Process (nm) | Transistors (millions) | Matrix size (mm2) | Pines de ES | Consumption (W) | Voltage (V) | Cache D L1 (KiB) | Cache I L1 (KiB) | Cache L2 (KiB) | cache L3 (KiB) |
Notes:
- ↑ a b threads per core × number of cores
- ↑ Several SPARC V7 implementations were produced by Fujitsu, LSI Logic, Weitek, Texas Instruments and Cypress. A SPARC V7 processor usually consists of several discrete CIs, usually understanding an integer unit (IU), a floating comma unit (FPU), a memory management unit (MMU) and cache memory.
- ↑ a 167 MHz
- ↑ 250 MHz
- ↑ 400 MHz
- ↑ a 440 MHz
- ↑ up to 500 MHz
- ↑ 900 MHz
Contenido relacionado
Intel Pentium partition error
Bioclimatic architecture
Master boot record