The MIPS 1 instruction set is small compared to those of the contemporary 80x86 and 680x0 architectures, encoding only more commonly used operations and supporting few addressing modes. Combined with its fixed instruction length and only three different types of instruction formats, this simplified instruction decoding and processing. It employed a 5-stage instruction pipeline, enabling execution at a rate approaching one instruction per cycle, unusual for its time.
The architecture makes use of a branch delay slot. The compilers for the R3000 available from MIPS Computer Systems were typically able to fill the delay slot some 70 to 90 percent of the time. In some military applications, the figure was 75 to 80 percent occupied.
This MIPS generation supports up to four co-processors. In addition to the CPU core, the R3000 microprocessor includes a Control Processor (CP), which contains a Translation Lookaside Buffer and a Memory Management Unit. The CP works as a coprocessor. Besides the CP, the R3000 can also support an external R3010 numeric coprocessor, along with two other external coprocessors.
The R3000 CPU does not include level 1 cache. Instead, its on-chip cache controller operates external data and instruction caches of up to 256KB each. It can access both caches during the same clock cycle.
Silicon Graphics for their Professional IRIS, Personal IRIS and Indigo workstations, and the multiprocessor Power Series visualization systems.
Sony for their PlayStation and PlayStation 2 (SCPH-10000 to SCPH-700XX - clocked at 36.864MHz for use as an I/O CPU and at 33.8688MHz for compatibility with PlayStation games) video game consoles, and NEWS workstations, as well as the Bemani System 573 Analog arcade unit, which runs on the R3000A.
Tandem Computers for their NonStop Cyclone/R and CLX/R fault-tolerant servers.
Derivatives of the R3000 for non-embedded applications include:
R3000A - A further development by MIPS introduced in 1989. It operated at clock frequencies up to 40MHz.
PR3400 - Developed by Performance Semiconductor, introduced in May 1991, also at up to 40MHz. It integrated the Performance Semiconductor PR3000A and PR3010A onto a single die.
Use in real-time systems
The MIPS R3000 could be used for real-time computing; indeed, an editor of Computer Design journal characterized the R3000 as "about the cleanest of the RISC processors to implement a real-time operating system". It was possible for embedded implementations of the R3000 to customize the processor in certain ways, such as adding debugging facilities or adding traps on unimplemented features and opcodes. The R3000 was used as an embedded systems microprocessor by a number of companies:
LSI Logic, with their LR33000 for embedded control applications, with a 50Mz processor, 8K instruction cache and 1K data cache, including an LR33000 Pocket Rocket Evaluation Board; also with their larger LR3000, with memory management included
MIPS Computer Systems itself, with their R3200-6 CPU board
Lockheed Sanders, with their STAR MVP R3000/R3010 board that contains a 25 MHz processor, 128K instruction and data caches, and a 4-word write buffer
A number of these embedded systems were used in defense/avionics applications, and as such by the early 1990s there were a number of Ada programming language cross-compiler implementations available for the R3000. The Joint Integrated Avionics Working Group (JIAWG), a United States government initiative of the late 1980s intended to establish common standards for the next generation of U.S. Air Force, Navy, and Army aircraft, selected the R3000 as one of two 32-bit instruction set architectures for real-time embedded systems applications (the other being the Intel i960). In defense industry uses, the R3000 was often a successor to the 16-bit MIL-STD-1750A architecture.
Use in other lower-cost designs
Even after advances in technology rendered the R3000 obsolete for high-performance systems, it found continued use in lower-cost designs. Derivatives of the R3000 for embedded applications include:
IDT R3051IDT R3081
CW4003, DCAM-101 - Aimed at digital camera applications, the CW4003 core featured a "multiplier-addition bolt-on" (MABO) unit for accelerated integer arithmetic and a pixel-processing accelerator (PPA) unit accessible via the coprocessor 2 interface. The DCAM-101 combined the CW4003 core with modules interfacing to a camera sensor, display, storage and other peripherals, also incorporating a JPEG compression/decompression unit.
PR31500, PR31700 - Microprocessors from Philips Semiconductors used in the Philips Velo handheld PC range. The 75MHz PR31700 was fabricated in a 350nm process, delivered in a 208-pin LQFP, it operated at 3.3V and dissipated only 350mW.[citation needed]
RISController - A family of embedded microprocessors from IDT. Models included the R3041, R3051, R3052, R3071 and R3081. All models included integrated L1 caches. Higher-end models included larger caches and optional MMUs and FPUs. They competed with the intel i960 and AMD 29000.
TX3900 - A microcontroller from Toshiba.
Mongoose-V - A radiation-hardened and expanded 10–15MHz CPU for use on spacecraft, it is still in use today in applications such as NASA's New Horizons space probe.
References
↑Stallings, William (1996). Computer Organization and Architecture: Designing for Performance (Fourthed.). Upper Saddle River, New Jersey: Prentice-Hall. p.461. ISBN0-13-359985-X.
123456"Ada Implementations". Ada–JOVIAL Newsletter. High Order Language Control Facility, Wright-Patterson AFB, U.S. Air Force. September 1993. pp.26–43, especially 32–34.
↑Schilling, Jonathan L.; Nielsen, Johan Olmütz (May–June 1994). "Automatic compiler recognition of monitor tasks". ACM SIGAda Ada Letters. 14 (3): 91–104. doi:10.1145/181468.181474.