# SGI O2

The O2 is an entry-level Unix workstation introduced in 1996 by Silicon Graphics, Inc. (SGI) to replace their earlier Indy series. Like the Indy, the O2 uses a single MIPS microprocessor and was intended to be used mainly for multimedia. Its larger counterpart is the SGI Octane. The O2 was SGI's last attempt at a low-end workstation.

## Hardware
### System architecture

Originally known as the "Moosehead" project, the O2 architecture features a proprietary high-bandwidth Unified Memory Architecture (UMA) to connect system components. A PCI bus is bridged onto the UMA with one slot available. It has a designer case and an internal modular construction. Two SCSI drives can be mounted on special caddies (one in the later R10000/R12000 models due to heat constraints) and an optional video capture / sound cassette mounted on the far left side.

### CPU

The O2 came in two distinct CPU flavours: the low-end MIPS 180 to 350 MHz R5000- or RM7000-based units and the higher-end 150 to 400 MHz R10000- or R12000-based units. The 200 MHz R5000 CPUs with 1 MB L2-cache are generally noticeably faster than the 180 MHz R5000s with 512 KB cache. There is a hobbyist project that has successfully retrofitted a 600 MHz RM7xxx MIPS processor into the O2.

### Memory

There are eight DIMM slots on the motherboard and memory, and all O2s are expandable to 1 GB using proprietary 239-pin SDRAM DIMMs. The Memory & Rendering Engine (MRE) ASIC contains the memory controller. Memory is accessed via a 133 MHz 144-bit bus, of which 128 bits are for data and the remaining for ECC. This bus is interfaced by a set of buffers to the 66 MHz 256-bit memory system.

### I/O

I/O functionality is provided by the IO Engine ASIC. The ASIC provides a 64-bit PCI bus, an ISA bus, two PS/2 ports for keyboard and mouse, and a 10/100 Base-T Ethernet port. The PCI bus has one 64-bit slot, but the ISA bus is present solely for attaching a Super I/O chip to provide serial and parallel ports.

### Disks

The O2 carries an UltraWide SCSI drive subsystem (Adaptec 7880). Older O2's generally have 4x speed Toshiba CD-ROMs, but any Toshiba SCSI CD-ROM can be used (as well as from other manufacturers, the bezel replacement however is designed to fit Toshiba design and also IRIX cannot utilize CD-DA mode other than Toshiba). Later units have Toshiba DVD-ROMs. The R5000/RM7000 units have two available drive sleds for SCA UltraWide SCSI hard-disks. Because the R10000/R12000 CPU module has a much higher cooling-fan assembly, the R10000/R12000 units have room for only one drive-sled.

### Graphics

The O2 used the CRM chipset specifically developed by SGI for the O2. It was developed to be a low-cost implementation of the OpenGL 1.1 architecture with ARB image extensions in both software and hardware. The chipset consists of the microprocessor, and the ICE, MRE and Display ASICs. All display list and vertex processing, as well as the control of the MRE ASIC is performed by the microprocessor. The ICE ASIC performs the packaging and unpacking of pixels as well as operations on pixel data. The MRE ASIC performs rasterization and texture mapping. Due to the unified memory architecture, the texture and framebuffer memory comes from main memory, resulting in a system that has a variable amount of each memory. The Display Engine generates analog video signals from framebuffer data fetched from the memory for display.

### Operating systems

Several operating systems support the O2:
* IRIX 6.3 or 6.5.x (native platform).
* Linux port is working, but some drivers are missing. Debian, Gentoo and T2 Linux have releases that work on the O2.
* OpenBSD ran on the O2 starting from OpenBSD 3.7 until the discontinuation of the "sgi" port in OpenBSD 6.9.
* NetBSD has run on the O2 since NetBSD 2.0. It was the first open-source operating system to be ported to the O2. See the sgimips port page.

## Performance

The SGI O2 has an Imaging and Compression Engine (ICE) application-specific integrated circuit (ASIC) for processing streaming media and still images. ICE operates at 66 MHz and contains a R3000-derived microprocessor serving as the scalar unit to which a 128-bit SIMD unit is attached using the MIPS coprocessor interface. ICE operates on eight 16-bit or sixteen 8-bit integers, but still provides a significant amount of computational power which enables the O2 to do video decoding and audio tasks that would require a much faster CPU if done without SIMD instructions. ICE only works with the IRIX operating system, as this is the only system that has drivers capable of taking advantage of this device.
The Unified Memory Architecture means that the O2 uses main memory for graphics textures, making texturing polygons and other graphics elements trivial. Instead of transferring textures over a bus to the graphics subsystem, the O2 passes a pointer to the texture in main memory which is then accessed by the graphics hardware. This makes using large textures easy, and even makes using streaming video as a texture possible.
Since the CPU performs many of geometry calculations, using a faster CPU will increase the speed of a geometry-limited application. The O2's graphics is known to have slower rasterization speed than the Indigo2's Maximum IMPACT graphics boards, though the Maximum IMPACT graphics is limited to 4 MB of texture memory, which can result in thrashing, whereas the O2 is limited only by available memory.
While CPU frequencies of 180 to 400 MHz seem low today, when the O2 was released in 1996, these speeds were on par with or above the current offerings for the x86 family of computers (cf. Intel's Pentium and AMD's K5).

## Uses

O2s were often used in the following fields:
* Imaging (especially medical)
* On-air TV graphics; the most widespread example of an O2 running TV graphics is the Weather Star XL computer for The Weather Channel
* Desktop workstation
* 3D modelling
* Analogue video post-production
* Defense industries