Sun SPARC

ImprimirCitar
Sun UltraSparc II.

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–40V71987-19921×1=1800-1300~0.1-1.8--160-256----0-128 (unified)N/PN/P
microSPARC I (Tsunami) IT TMS390S10 40–50V819921×1=18000.8225?2882.5524N/PN/P
SuperSPARC I (Viking) TI TMX390Z50 / Sun STP1020 33–60V819921×1=18003.1--29314,3516200-2048N/P
SPARClite Fujitsu MB8683x 66–108V8E19921×1=1------144, 176--2.5/3,3V-5,0V, 2.5V-3,3V1, 2, 8, 161, 2, 8, 16N/PN/P
hyperSPARC (Coloration 1) Ross RT620A 40–90V819931×1=15001.5------5?08128-256N/P
microSPARC II (Swift) Fujitsu MB86904 / Sun STP1012 60–125V819941×1=15002.323332153.3816N/PN/P
hyperSPARC (Colorated 2) Ross RT620B 90–125V819941×1=14001.5------3.308128-256N/P
SuperSPARC II (Voyager) Sun STP1021 75–90V819941×1=18003.1299--16--16201024-2048N/P
hyperSPARC (Colorated 3) Ross RT620C 125-166V819951×1=13501.5------3.308512-1024N/P
TurboSPARC Fujitsu MB86907 160–180V819961×1=13503.013241673.51616512N/P
UltraSPARC (Spitfire) Sun STP1030 143-167V919951×1=14703,8315521303.31616512-1024N/P
UltraSPARC (Hornet) Sun STP1030 200V919981×1=14205.2265521--3.31616512-1024N/P
hyperSPARC (Colorated 4) Ross RT620D 180–200V819961×1=13501.7.------3.31616512N/P
SPARC64 Fujitsu (HAL) 101-118V919951×1=1400--Multichip286503,8128128----
SPARC64 II Fujitsu (HAL) 141-161V919961×1=1350--Multichip286643.3128128----
SPARC64 III Fujitsu (HAL) MBCS70301 250-330V919981×1=124017.6240----2.564648192--
UltraSPARC IIs (Blackbird) Sun STP1031 250–400V919971×1=13505.4149521252.516161024 or 4096none
UltraSPARC IIs (Sapphire-Black) Sun STP1032 / STP1034 360-480V919991×1=12505.4126521211.916161024–8192N/P
UltraSPARC IIi (Sabre) Sun SME1040 270-360V919971×1=13505.4156.587211.91616256–2048N/P
UltraSPARC IIi (Sapphire-Red) Sun SME1430 333-480V919981×1=12505.4--587211.916162048N/P
UltraSPARC IIe (Hummingbird) Sun SME1701 400–500V919991×1=1180 Al----370131.5-1.71616256N/P
UltraSPARC IIi (IIe+) (Phantom) Sun SME1532 550-650V920001×1=1180----37017.61.7.1616512N/P
SPARC64 GP Fujitsu SFCB81147 400–563V920001×1=118030.2217----1,81281288192--
SPARC64 GP -- 600-810V9--1×1=115030.2------1.51281288192--
SPARC64 IV Fujitsu MBCS80523 450-810V920001×1=1130----------1281282048--
UltraSPARC III (Cheetah) Sun SME1050 600V9 / JPS120011×1=1180 Al293301368531.664328192N/P
UltraSPARC III (Cheetah) Sun SME1052 750–900V9 / JPS120011×1=1130 Al29--1368--1.664328192N/P
UltraSPARC III Cu (Cheetah+) Sun SME1056 1002-1200V9 / JPS120011×1=1130 Cue292321368801.664328192none
UltraSPARC IIIi (Jalapeño) Sun SME1603 1064-1593V9 / JPS120031×1=113087.5206959521.3.64321024N/P
SPARC64 V (Zeus) Fujitsu 1100–1350V9 / JPS120031×1=1130190289269401.21281282048--
SPARC64 V+ (Olympus-B) Fujitsu 1650–2160V9 / JPS120041×1=1904002972796511281284096--
UltraSPARC IV (Jaguar) Sun SME1167 1050–1350V9 / JPS120041×2=21306635613681081.35643216384N/P
UltraSPARC IV+ (Panther) Sun SME1167A 1500–2100V9 / JPS120051×2=2902953361368901.1.6464204832768
UltraSPARC T1 (Niagara) Sun SME1905 1000-1400V9 / UA 200520054×8=32903003401933721.3.8163072N/P
SPARC64 VI (Olympus-C) Fujitsu 2150-2400V9 / JPS120072×2=490540422--120--128x2128x26144N/P
UltraSPARC T2 (Niagara 2) Sun SME1908A 1000-1600V9 / UA 200720078×8=64655033421831951.1-58164096N/P
UltraSPARC T2 Plus (Victoria Falls) Sun SME1910A 1200-1600V9 / UA 200720088×8=64655033421831--8164096N/P
SPARC64 VII (Jupiter) Fujitsu 2400–2880V9 / JPS120082×4=865600445--150--64x464x46144N/P
UltraSPARC "RK" (Rock) Sun SME1832 2300V9/ --canceled2×16=3265?3962326??32322048?
SPARC64 VIIIfx (Venus) Fujitsu 2000V9 / JPS120091x8=845760513127158?32x832x86144N/P
SPARC T3 (Rainbow Falls) Oracle/Sun 1650V9 / UA _?_20108×16=12840?371?139?8166144none
SPARC64 VII+ (Jupiter-E or M3) Fujitsu 2667-3000V9 / JPS120102x4=865---160-64x464x412288N/P
MCST-4R MCST (Russia) 750-1000V920101x4=490150115-15132162048N/P
SPARC T4 (Yosemite Falls) Oracle 2850-3000V9 / OSA2011?20118×8=6440855403?240?16x816x8128x84096
SPARC64 IXfx Fujitsu 1850V9 / JPS1?20121x16=164018704841442110?32x1632x1612288N/P
SPARC64 X Fujitsu 3000?V9 / JPS20122x16=32282950587,51500??64x1664x1624576N/P
SPARC T5 Oracle 3600V9 / OSA2011?20138×16=12828?????16x816x8128x168192
SPARC M5 Oracle 3600V9 / OSA2011?20138×6=4828?????16x616x6128x649152
SPARC M6 Oracle 3600V9 / OSA2011?20138×12=9628?????16x1216x12128x1249152
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:

  1. ↑ a b threads per core × number of cores
  2. 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.
  3. a 167 MHz
  4. 250 MHz
  5. 400 MHz
  6. a 440 MHz
  7. up to 500 MHz
  8. 900 MHz

Contenido relacionado

Intel Pentium partition error

On October 30, 1994, Professor Thomas Nicely of Lynchburg University discovered an error in the floating point unit of the Intel Pentium. Nicely noticed that...

Bioclimatic architecture

Bioclimatic architecture consists of the design of buildings taking into account climatic conditions, taking advantage of available resources to reduce...

Master boot record

A master boot record, also known as a master boot record /i>, MBR) is the first sector of a data storage device, such as a hard drive. Sometimes it is used to...
Más resultados...
Tamaño del texto:
Copiar
Síguenos en YouTube
¡ Ayúdanos a crecer con @academialab !