All Topics  
MIPS architecture

 
MIPS Architecture

   Email Print
   Bookmark   Link






 

MIPS architecture



 
 
MIPS (originally an acronym for Microprocessor without Interlocked Pipeline Stages) is a reduced Instruction set computing (RISC) instruction set architecture (ISA) developed by MIPS Computer Systems
MIPS Technologies

MIPS Technologies, Inc. , formerly MIPS Computer Systems, is most widely known for developing the MIPS architecture and a series of pioneering Reduced instruction set computer Central processing unit....
 (now MIPS Technologies).






Discussion
Ask a question about 'MIPS architecture'
Start a new discussion about 'MIPS architecture'
Answer questions from other users
Full Discussion Forum



Recent Posts









Encyclopedia


Toshiba Tc86r4400mc 200 9636yja Top
MIPS (originally an acronym for Microprocessor without Interlocked Pipeline Stages) is a reduced Instruction set computing (RISC) instruction set architecture (ISA) developed by MIPS Computer Systems
MIPS Technologies

MIPS Technologies, Inc. , formerly MIPS Computer Systems, is most widely known for developing the MIPS architecture and a series of pioneering Reduced instruction set computer Central processing unit....
 (now MIPS Technologies). In the mid to late 1990s, it was estimated that one in three RISC microprocessors produced were MIPS implementations.

MIPS implementations are currently primarily used in many embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
s such as the Series2 TiVo
TiVo

TiVo is the pioneer of the digital video recorder . TiVo was introduced in the United States, and is now available in Canada, Mexico, Australia, and Taiwan....
, Windows CE
Windows CE

Windows CE is Microsoft's operating system for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and Kernel , rather than a trimmed-down version of desktop Windows....
 devices, Cisco
Cisco Systems

Cisco Systems, Inc. is a multinational corporation with more than 66,000 employees and annual revenue of United States dollar39 billion as of 2008....
 router
Router

A router is a Computer network device whose software and hardware are usually tailored to the tasks of routing and forwarding information. For example, on the Internet, information is directed to various paths by routers....
s, residential gateway
Residential gateway

A residential gateway is a home networking device. The term is generally used to cover any networking appliance used in homes. The term however is misleading....
s, Foneras
FON

FON is a company that runs a system of shared wireless networks. The business was launched in November 2005.People can become members by agreeing to let FON share their wireless internet connection....
, Avaya
Avaya

Avaya Inc. is a privately held telecommunications company which specializes in enterprise telephony and call center technology. Formerly the Business Communications unit of Lucent Technologies, it was Spin-off on October 1, 2000 with 34,000 employees....
, and video game console
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
s like the Nintendo 64
Nintendo 64

The , often abbreviated as N64, is Nintendo's third home video game console for the international market. Named for its 64-bit CPU, it was released on June 23, 1996 in Japan, September 29, 1996 in North America, March 1, 1997 in Europe and Australia, September 1, 1997 in France and December 10, 1997 in Brazil....
 and Sony
Sony

is a multinational corporation list of conglomerates corporation headquartered in Minato, Tokyo, Japan, and one of the world's largest media conglomerates with revenue exceeding US$99.1 billion ....
 PlayStation
PlayStation

The PlayStation is a 32-bit history of video game consoles video game console released by Sony Computer Entertainment in December .The PlayStation was the first of the ubiquitous PlayStation ....
, PlayStation 2
PlayStation 2

The PlayStation 2 is a History of video game consoles video game console manufactured by Sony. The successor to the PlayStation, and the predecessor to the PlayStation 3, the PlayStation 2 forms part of the PlayStation of video game consoles....
, and PlayStation Portable
PlayStation Portable

The PlayStation Portable is a handheld game console manufactured and marketed by Sony Computer Entertainment. Development of the console was first announced during History of E3#During the Rise of Online Gaming , and it was unveiled on May 11, 2004 at a Sony press conference before E3 2004....
 handheld system. Until late 2006 they were also used in many of SGI
Silicon Graphics

Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
's computer products. MIPS implementations were also used by Digital Equipment Corporation
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
, NEC
NEC

is a Japan multinational corporation IT company headquartered in Minato, Tokyo, Japan. NEC, part of the Sumitomo Group, provides information technology and network solutions to business enterprises, communications services providers and government....
, Siemens Nixdorf, Tandem
Tandem

Tandem is a Latin language adverb meaning "at length" or "finally." In English, the term was originally used for two or more draft horses harnessed one behind another as opposed to side-by-side....
 and others during the late 1980s and 1990s.

The early MIPS architectures were 32-bit (generally 32-bit wide registers and data paths), while later versions were 64-bit. Multiple revisions of the MIPS instruction set
Instruction set

An instruction set is a list of all the instruction , and all their variations, that a processor can execute.Instructions include:* Arithmetic such as add and subtract...
 exist, including MIPS I, MIPS II, MIPS III, MIPS IV, MIPS V, MIPS32, and MIPS64. The current revisions are MIPS32 (for 32-bit implementations) and MIPS64 (for 64-bit implementations). MIPS32 and MIPS64 define a control register set as well as the instruction set. Several "add-on" extensions are also available, including MIPS-3D which is a simple set of floating-point SIMD
SIMD

In computing, SIMD is a technique employed to achieve data level parallelism....
 instructions dedicated to common 3D tasks, MDMX
MDMX

The MDMX , also known as MaDMaX is a SIMD computational unit developed for the MIPS architecture family of processors. It was released in 1996.This computational unit offers an instruction set to allow SIMD processing of multimedia data packed into the floating point registers....
 (MaDMaX) which is a more extensive integer SIMD
SIMD

In computing, SIMD is a technique employed to achieve data level parallelism....
 instruction set using the 64-bit floating-point registers, MIPS16e which adds compression to the instruction stream to make programs take up less room (allegedly a response to the Thumb
ARM architecture

The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
 encoding in the ARM architecture
ARM architecture

The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
), and the recent addition of MIPS MT, new multithreading additions to the system similar to HyperThreading in the Intel's Pentium 4 processors.

Computer architecture
Computer architecture

Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit performs internally an...
 courses in universities and technical schools often study the MIPS architecture. The architecture greatly influenced later RISC architectures such as Alpha
DEC Alpha

Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations....
 (previously Alpha AXP).

History


RISC Pioneer

In 1981, a team led by John L. Hennessy
John L. Hennessy

John LeRoy Hennessy is an United States computer scientist and academic. Hennessy is the founder of MIPS Computer Systems Inc. and is the 10th President of Stanford University....
 at Stanford University
Stanford University

Leland Stanford Junior University, commonly referred to as Stanford University or Stanford, is a private university research university located in Stanford, California, California, United States....
 started work on what would become the first MIPS processor. The basic concept was to increase performance through the use of deep instruction pipeline
Instruction pipeline

File:5 Stage Pipeline.svgAn instruction pipeline is a technique used in the design of computers and other digital electronic devices to increase their instruction throughput ....
s. Pipelining as a basic technique was well known before (see IBM 801
IBM 801

The 801 was a RISC Central processing unit designed by International Business Machines in the 1970s, and used in various roles in IBM until the 1980s....
 for instance), but not developed into its full potential. CPUs are built up from a number of dedicated sub-units such as instruction decoders, ALUs (integer arithmetics and logic), load/store units (handling memory), and so on. In a traditional non-optimized design, a particular instruction in a program sequence must be (almost) completed before the next can start to "flow" from one unit to another; in a pipelined architecture, successive instructions instead overlaps in execution. For instance, at the same time a math instruction is fed into the floating point unit, the load/store unit can fetch the next instruction.

One major barrier to pipelining was that some instructions, like division, take longer to complete and the CPU therefore has to wait before passing the next instruction into the pipeline. One solution to this problem is to use a series of interlocks that allows stages to indicate that they are busy, pausing the other stages upstream. Hennessy's team viewed these interlocks as a major performance barrier since they had to communicate to all the modules in the CPU which takes time, and appeared to limit the clock speed. A major aspect of the MIPS design was to fit every sub-phase, including cache-access, of all instructions into one cycle, thereby removing any needs for interlocking, and permitting a single cycle throughput.

Although this design eliminated a number of useful instructions such as multiply and divide it was felt that the overall performance of the system would be dramatically improved because the chips could run at much higher clock rates. This ramping of the speed would be difficult with interlocking involved, as the time needed to set up locks is as much a function of die size as clock rate. The elimination of these instructions became a contentious point.

The other difference between the MIPS design and the competing Berkeley RISC involved the handling of subroutine
Subroutine

In computer science, a subroutine or subprogram is a portion of computer code within a larger computer program, which performs a specific task and is relatively independent of the remaining code....
 calls. RISC used a technique called register window
Register window

In computer engineering, the use of register windows is a technique to improve the performance of a particularly common operation, the procedure call....
s to improve performance of these very common tasks, but this limited the maximum depth of multi-level calls. Each subroutine call required its own set of registers, which in turn required more real estate on the CPU and more complexity in its design. Hennessy felt that a careful compiler could find free registers without resorting to a hardware implementation, and that simply increasing the number of registers would not only make this simple, but increase the performance of all tasks.

In other ways the MIPS design was very much a typical RISC design. To save bits in the instruction word, RISC designs reduce the number of instructions to encode. The MIPS design uses 6 bits of the 32-bit word for the basic opcode; the rest may contain a single 26-bit jump address or it may have up to four 5-bit fields specifying up to three registers plus a shift value combined with another 6-bits of opcode; another format, among several, specifies two registers combined with a 16-bit immediate value, etc. This allowed this CPU to load up the instruction and the data it needed in a single cycle, whereas an (older) non-RISC design, such as the MOS Technology 6502
MOS Technology 6502

The MOS Technology 6502 is an 8-bit microprocessor that was designed by Chuck Peddle and Bill Mensch for MOS Technology in 1975. When it was introduced, it was the least expensive full-featured central processing unit on the market by a considerable margin, costing less than one-sixth the price of competing designs from larger companies such...
 for instance, required separate cycles to load the opcode and the data. This was one of the major performance improvements that RISC offered. However, modern non-RISC designs achieves this speed by other means (such as queues in the CPU).

In 1984 Hennessy was convinced of the future commercial potential of the design, and left Stanford to form MIPS Computer Systems. They released their first design, the R2000, in 1985, improving the design as the R3000 in 1988. These 32-bit CPUs formed the basis of their company through the 1980s, used primarily in SGI
Silicon Graphics

Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
's series of workstation
Workstation

A workstation is a high-end microcomputer designed for technical or scientific applications. Intended primarily to be used by one person at a time, they are commonly connected to a local area network and run multi-user operating systems....
s. These commercial designs deviated from the Stanford academic research by implementing most of the interlocks in hardware, supplying full multiply and divide instructions (among others).

In 1991 MIPS released the first 64-bit microprocessor, the R4000. However, MIPS had financial difficulties while bringing it to market. The design was so important to SGI, at the time one of MIPS' few major customers, that SGI bought the company outright in 1992 in order to guarantee the design would not be lost. As a subsidiary of SGI, the company became known as MIPS Technologies
MIPS Technologies

MIPS Technologies, Inc. , formerly MIPS Computer Systems, is most widely known for developing the MIPS architecture and a series of pioneering Reduced instruction set computer Central processing unit....
.

Licensable Architecture


In the early 1990s MIPS started licensing their designs to third-party vendors. This proved fairly successful due to the simplicity of the core, which allowed it to be used in a number of applications that would have formerly used much less capable CISC
Complex instruction set computer

A complex instruction set computer is a computer instruction set architecture in which each instruction can execute several low-level operations, such as a load from Memory , an arithmetic operator, and a memory , all in a single instruction....
 designs of similar gate count
Gate count

In microprocessor design, gate count refers to the number of transistor switches, or logic gate, that are needed to implement a design. Even with today's process technology providing what was formerly considered impossible numbers of gates on a single chip, gate counts remain one of the most important overall factors in the end price of a chi...
 and price -- the two are strongly related; the price of a CPU is generally related to the number of gates and the number of external pins. Sun Microsystems
Sun Microsystems

Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
 attempted to enjoy similar success by licensing their SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
 core but was not nearly as successful. By the late 1990s MIPS was a powerhouse in the embedded processor field, and in 1997 the 48-millionth MIPS-based CPU shipped, making it the first RISC CPU to outship the famous 68k
68k

The Motorola 680x0/m68k/68k/68K is a family of 32-bit Complex instruction set computer microprocessor central processing unit chips and was the primary competition for the Intel x86 family of chips in personal computers of the 1980s and early 1990s....
 family. MIPS was so successful that SGI spun-off MIPS Technologies in 1998. Fully half of MIPS' income today comes from licensing their designs, while much of the rest comes from contract design work on cores that will then be produced by third parties.

In 1999 MIPS formalized their licensing system around two basic designs, the 32-bit MIPS32 (based on MIPS II with some additional features from MIPS III, MIPS IV, and MIPS V) and the 64-bit MIPS64 (based on MIPS V). NEC, Toshiba
Toshiba

is a multinational corporation list of conglomerates manufacturing company, headquartered in Tokyo, Japan. The company's main business is in Infrastructure, Consumer Products, and Electronic devices and components....
 and SiByte (later acquired by Broadcom
Broadcom

Broadcom Corporation is an United States supplier of integrated circuits for broadband communications. Founded in 1991 by Henry Samueli and Henry T....
) each obtained licenses for the MIPS64 as soon as it was announced. Philips
Philips

Koninklijke Philips Electronics N.V. , usually known as Philips, is a Netherlands electronics company. It is one of the largest electronics companies in the world, founded and headquartered in the Netherlands....
, LSI Logic and IDT
Integrated Device Technology

IDT was founded in 1980 as a semiconductor vendor. Employing approximately 2500 people worldwide, headquartered in San Jose, California, and operating a Fab in Hillsboro, Oregon, the company both designs and fabricates semiconductor components....
 have since joined them. Success followed success, and today the MIPS cores are one of the most-used "heavyweight" cores in the marketplace for computer-like devices (hand-held computers, set-top box
Set-top box

A set-top box or set-top unit is a information appliance that connects to a television and an external source of signal , turning the signal into content which is then displayed on the television screen....
es, etc.), with other designers fighting it out for other niches. Some indication of their success is the fact that Freescale (spun-off by Motorola
Motorola

Motorola, Inc. is an United States, multinational, Fortune 100, telecommunications company based in Schaumburg, Illinois. It is a manufacturer of wireless telephone handsets, also designing and selling wireless network infrastructure equipment such as cellular transmission base stations and signal amplifiers....
) uses MIPS cores in their set-top box designs, instead of their own PowerPC
PowerPC

PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
-based cores.

Since the MIPS architecture is licensable, it has attracted several processor start-up
Startup company

A startup company or start-up is a company with a limited operating history. These companies, generally newly created, are in a phase of development and research for markets....
 companies over the years. One of the first start-ups to design MIPS processors was Quantum Effect Devices
Quantum Effect Devices

Quantum Effect Devices was a company originally named Quantum Effect Design, incorporated in 1991. The three founders, Tom Riordan, Earl Killian and Ray Kunita, were senior managers at MIPS Computer Systems Inc.....
 (see next section). The MIPS design team that designed the R4300 started the company SandCraft, which designed the R5432 for NEC and later produced the SR71000, one of the first out-of-order execution
Out-of-order execution

In computer engineering, out-of-order execution, OoOE, is a paradigm used in most high-performance microprocessors to make use of Instruction cycle that would otherwise be wasted by a certain type of costly delay....
 processors for the embedded market. The original DEC
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
 StrongARM
StrongARM

The StrongARM is a family of microprocessors that implemented the ARM architecture instruction set architecture . It was developed by Digital Equipment Corporation , and later sold to Intel who continued to manufacture it, before replacing it with the XScale....
 team eventually split into two MIPS-based start-ups: SiByte which produced the SB-1250, one of the first high-performance MIPS-based systems-on-a-chip
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
 (SOC); while Alchemy Semiconductor (later acquired by AMD) produced the Au-1000 SoC
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
 for low-power applications. Lexra
Lexra

Lexra was a semiconductor intellectual property core company based in Waltham, Massachusetts. It was founded in 1997 and began developing and licensing semiconductor intellectual property cores that implemented the MIPS-I instruction set, except for the four unaligned load and store instructions....
 used a MIPS-like architecture and added DSP extensions for the audio chip market and multithreading support for the networking market. Due to Lexra not licensing the architecture, two lawsuits were started between the two companies. The first was quickly resolved when Lexra promised not to advertise their processors as MIPS-compatible. The second (about MIPS patent 4814976 for handling unaligned memory access) was protracted, hurt both companies' business, and culminated in MIPS Technologies giving Lexra a free license and a large cash payment.

Two companies have emerged that specialize in building Multi-core
Multi-core (computing)

A multi-core processor combines two or more independent cores into a single package composed of a single integrated circuit , called a Die , or more dies packaged together....
 devices using the MIPS architecture. Raza Microelectronics Inc purchased the product line from failing Sandcraft and later produced devices that contained 8 CPU cores that were targeted at the telecom and networking markets. Cavium Networks
Cavium Networks

Cavium Networks is a Mountain View, California-based company specializing in ARM architecture-based and MIPS architecture-based network and security processors....
, originally a security processor vendor also produced devices with 8 CPU cores for the same markets. Both of these companies designed their cores in-house, just licensing the architecture instead of purchasing cores from MIPS.

Losing the Desktop

Among the manufacturers which have made computer workstation
Workstation

A workstation is a high-end microcomputer designed for technical or scientific applications. Intended primarily to be used by one person at a time, they are commonly connected to a local area network and run multi-user operating systems....
 systems using MIPS processors are SGI
Silicon Graphics

Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
, MIPS Computer Systems, Inc., Whitechapel Workstations, Olivetti
Olivetti

Ing. C. Olivetti & Co., SpA., known as Olivetti, is an Italy manufacturer of computers, computer printers and other business machines....
, Siemens-Nixdorf
Siemens Nixdorf Informationssysteme

Siemens Nixdorf Informationssysteme, Aktiengesellschaft was formed in 1990 by the merger of Nixdorf Computer AG and the Siemens AG' Data Information Services division....
, Acer
Acer (company)

Acer Incorporated is a Taiwanese multinational electronics manufacturer. It owns the largest franchised computer retail chain in Taipei, Taiwan....
, Digital Equipment Corporation
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
, NEC, and DeskStation. Operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s ported to the architecture include SGI's IRIX
IRIX

IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers....
, Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
's Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 (until v4.0), Windows CE
Windows CE

Windows CE is Microsoft's operating system for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and Kernel , rather than a trimmed-down version of desktop Windows....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, BSD, UNIX
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
 System V, SINIX
SINIX

SINIX was a version of the Unix operating system from Siemens Nixdorf Informationssysteme. Supersedes SIRM OS and Pyramid Technology's DC/OSx. Its last release under the SINIX name was version 5.43 in 1995....
 and MIPS Computer Systems' own RISC/os
RISC/os

RISC/os was a UNIX operating system distributed by MIPS Technologies during the 1980s and 1990s for use with their computer workstations and server s, such as the M/120 server or MIPS Magnum workstation....
.

There was speculation in the early 1990s that MIPS and other powerful RISC processors would overtake the Intel IA32 architecture. This was encouraged by the support of the first two versions of Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
's Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 for DEC Alpha
DEC Alpha

Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations....
, MIPS and PowerPC
PowerPC

PowerPC is a RISC instruction set architecture created by the 1991 Apple Inc.?IBM?Motorola alliance, known as AIM alliance. Originally intended for personal computers, PowerPC CPUs have since become popular embedded system and high-performance processors....
 - and to a lesser extent the Clipper architecture
Clipper architecture

Not to be confused with the Clipper chipThe Clipper architecture is a 32-bit RISC-like instruction set architecture designed by Fairchild Semiconductor....
 and SPARC
SPARC

SPARC is a Reduced Instruction Set Computer microprocessor instruction set Computer architecture originally designed in 1985 by Sun Microsystems....
. However, as Intel quickly released faster versions of their Pentium
Pentium

Introduced on March 22, 1993, the original Pentium was the first superscalar x86 architecture microprocessor. Its fifth-generation x86 microarchitecture was a direct extension of the 80486 architecture with dual integer pipeline s, a faster FPU unit, wider data bus, and features for further reduced address calculation latency....
 class CPUs, Microsoft Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 v4.0 dropped support for anything but Intel and Alpha. With SGI's decision to transition to the Itanium
Itanium

Itanium is the brand name for 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel has released two processor families using the brand: the original Itanium and the Itanium 2....
 and IA32 architectures, use of MIPS processors on the desktop has now disappeared almost completely.

See main article Advanced Computing Environment
Advanced Computing Environment

The Advanced Computing Environment was defined by an industry consortium in the early 1990s to be the next generation commodity computing platform, the successor to personal computers based on Intel's x86....
.

Embedded markets

Through the 1990s, the MIPS architecture was widely adopted by the embedded market, including for use in computer network
Computer network

A computer network is a group of interconnected computers. Networks may be classified according to a wide variety of characteristics. This article provides a general overview of some types and categories and also presents the basic components of a network....
ing/telecommunications, video arcade games, home video game console
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
s, computer printer
Computer printer

File:Lexmark X5100 Series.jpgIn computing, a printer is a peripheral which produces a hard copy of documents stored in computer file form, usually on physical print media such as paper or Transparency ....
s, digital set-top box
Set-top box

A set-top box or set-top unit is a information appliance that connects to a television and an external source of signal , turning the signal into content which is then displayed on the television screen....
es, digital television
Digital television

Digital television is the sending and receiving of moving images and sound by Discrete signal signals, in contrast to the Analog television used by analog TV....
s, DSL and cable modem
Cable modem

File:Sb5120.jpgA cable modem is a type of modem that provides bi-directional data communication via radio frequency channels on a cable television infrastructure....
s, and personal digital assistant
Personal digital assistant

A personal digital assistant is a handheld computer, also known as a palmtop computer. Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones, , web browsers, or portable media players....
s.

The low power-consumption and heat characteristics of embedded MIPS implementations, the wide availability of embedded development tools, and knowledge about the architecture means use of MIPS microprocessors in embedded roles is likely to remain common.

Synthesizeable Cores for Embedded Markets


In recent years most of the technology used in the various MIPS generations has been offered as IP-cores
Semiconductor intellectual property core

In electronic design a semiconductor intellectual property core, IP block, IP core, or logic core is a reusable unit of logic, cell, or chip layout design and is also the intellectual property of one party....
 (building-blocks) for embedded processor designs. Both 32-bit
32-bit

The range of integer values that can be stored in 32 bits is 0 through 4,294,967,295 or -2,147,483,648 through 2,147,483,647 using two's complement encoding....
 and 64-bit
64-bit

64-bit CPUs have existed in supercomputers since the 1960s and in RISC-based computer workstation and Server s since the early 1990s. In 2003 they were introduced to the mainstream personal computer arena, in the form of the x86-64 and 64-bit PowerPC processor architectures....
 basic cores are offered, known as the 4K and 5K respectively, and the design itself can be licensed as MIPS32 and MIPS64. These cores can be mixed with add-in units such as FPU
FPU

FPU may mean:* Federation of Progressive Unions, a trade union center in Mauritius* Federation of Trade Unions of Ukraine* Fishermen's Protective Union, a left populist political party and later service organization in the former Dominion of Newfoundland from 1908 to the 1960s....
s, SIMD
SIMD

In computing, SIMD is a technique employed to achieve data level parallelism....
 systems, various input/output devices, etc.

MIPS cores have been commercially successful, now being used in many consumer and industrial applications. MIPS cores can be found in newer Cisco
Cisco

Cisco may refer to:Companies:* Cisco Systems, a computer networking company* Certis CISCO, corporatised entity of the former Commercial and Industrial Security Corporation in Singapore....
, Linksys
Linksys

Linksys, founded in 1988 and acquired by Cisco Systems in 2003, is a major provider of home and small office network products. Linksys also manufactures broadband and wireless routers, consumer and small business grade ethernet switching, Voice over IP equipment, wireless internet video camera, AV products, network storage systems, and oth...
 and Mikrotik's routerboard
Mikrotik

Mikrotikls Ltd., known internationally as MikroTik, is a Latvian manufacturer of computer Computer networking equipment. It sells wireless products and routers....
 routers, cable modem
Cable modem

File:Sb5120.jpgA cable modem is a type of modem that provides bi-directional data communication via radio frequency channels on a cable television infrastructure....
s and ADSL
Asymmetric Digital Subscriber Line

Asymmetric Digital Subscriber Line is a form of Digital subscriber line, a data communications technology that enables faster data transmission over copper telephone lines than a conventional voiceband modem can provide....
 modems, smartcards, laser printer
Laser printer

A laser printer is a common type of computer printer that rapidly produces high quality text and graphics on plain paper. As with digital photocopiers and multifunction printers , laser printers employ a Xerography printing process but differ from analog photocopiers in that the image is produced by the direct scanning of a laser beam acros...
 engines, set-top box
Set-top box

A set-top box or set-top unit is a information appliance that connects to a television and an external source of signal , turning the signal into content which is then displayed on the television screen....
es, robot
Robot

A robot is a virtual or mechanical artificial agent. In practice, it is usually an Electromechanics which, by its appearance or movements, conveys a sense that it has Intention or Agency of its own....
s, handheld computers, Sony PlayStation 2
PlayStation 2

The PlayStation 2 is a History of video game consoles video game console manufactured by Sony. The successor to the PlayStation, and the predecessor to the PlayStation 3, the PlayStation 2 forms part of the PlayStation of video game consoles....
 and Sony PlayStation Portable
PlayStation Portable

The PlayStation Portable is a handheld game console manufactured and marketed by Sony Computer Entertainment. Development of the console was first announced during History of E3#During the Rise of Online Gaming , and it was unveiled on May 11, 2004 at a Sony press conference before E3 2004....
. In cellphone/PDA applications, the MIPS core has been unable to displace the incumbent, competing ARM
ARM architecture

The ARM architecture is a 32-bit RISC central processing unit architecture developed by ARM Limited that is widely used in embedded system designs....
 core.

MIPS architecture processors include: IDT RC32438; ATI
Ati

As a word, Ati may refer to:* Ati, Chad, a town in Chad* Ati , a Negrito ethnic group in the Philippines** Ati-Atihan Festival, an annual celebration held in the Philippines...
 Xilleon; Alchemy Au1000, 1100, 1200; Broadcom Sentry5; RMI
RMI Corporation

RMI Corporation, also known as RMI, formerly known as Raza Microelectronics, Inc., is a privately held Fabless semiconductor company headquartered in Cupertino, California, which specializes in designing System-on-a-chip processors for Computer networking and consumer media applications....
 XLR7xx, Cavium
Cavium Networks

Cavium Networks is a Mountain View, California-based company specializing in ARM architecture-based and MIPS architecture-based network and security processors....
 Octeon CN30xx, CN31xx, CN36xx, CN38xx and CN5xxx; Infineon Technologies
Infineon Technologies

Infineon Technologies Aktiengesellschaft was founded in April 1999 when the semiconductor operations of parent company, Siemens AG, were spun off to form a separate legal entity....
 EasyPort, Amazon, Danube, ADM5120, WildPass, INCA-IP, INCA-IP2; NEC
NEC

is a Japan multinational corporation IT company headquartered in Minato, Tokyo, Japan. NEC, part of the Sumitomo Group, provides information technology and network solutions to business enterprises, communications services providers and government....
 EMMA and EMMA2, NEC VR4181A, VR4121, VR4122, VR4181A, VR5432, VR5500; Oak Technologies Generation; PMC-Sierra
PMC-Sierra

PMC-Sierra is a fabless semiconductor company which develops and sells devices into the communications, storage, printing, and embedded computing marketplaces....
 RM11200; QuickLogic
QuickLogic

QuickLogic Corporation is a manufacturer of programmable logic devices. Until recently they were a supplier of Field-programmable gate array based on antifuse technology, making the devices one-time programmable....
 QuickMIPS ESP; Toshiba "Donau", Toshiba
Toshiba

is a multinational corporation list of conglomerates manufacturing company, headquartered in Tokyo, Japan. The company's main business is in Infrastructure, Consumer Products, and Electronic devices and components....
 TMPR492x, TX4925, TX9956, TX7901.

MIPS based Supercomputers

One of the more interesting applications of the MIPS architecture is its use in massive processor count supercomputers. Silicon Graphics
Silicon Graphics

Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
 (SGI) refocused its business from desktop graphics workstations to the high performance computing (HPC
HPC

HPC may may refer to:* High-performance computing* Handheld PC* Health Professions Council* Hemangiopericytoma* Hydrometeorological Prediction Center...
) market in the early 1990s. The success of the company's first foray into server systems, the Challenge
SGI Challenge

The Challenge, code-named Eveready and Terminator , is a family of Server and supercomputers developed and manufactured by Silicon Graphics in the early to mid-1990s that succeeded the earlier Power series systems....
 series based on the R4400 and R8000
R8000

The R8000 is a microprocessor chip set implementing the MIPS architecture instruction set architecture jointly developed by MIPS Technologies , then a subsidiary of Silicon Graphics, Inc....
, and later R10000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
, motivated SGI to create a vastly more powerful system. The introduction of the integrated R10000 allowed SGI to produce a system, the Origin 2000, eventually scalable to 1024 CPUs using its NUMAlink
NUMAlink

NUMAlink is a system interconnect developed by Silicon Graphics for use in its distributed shared memory ccNUMA computer systems. NUMAlink was originally developed by SGI for their SGI Origin 2000 and SGI Onyx2 systems....
 cc-NUMA interconnect. The Origin 2000 begat the Origin 3000 series which topped out with the same 1024 maximum CPU count but using the R14000 and R16000 chips up to 700 MHz. Its MIPS based supercomputers were withdrawn in 2005 when SGI made the strategic decision to move to Intel's IA-64 architecture.

An HPC startup introduced a radical MIPS based supercomputer in 2007. SiCortex
SiCortex

SiCortex is a supercomputer manufacturer founded in 2003 and headquartered in Maynard, Massachusetts. The company builds and markets a family of Cluster computing of between 12 and 972 compute nodes, connected in a Kautz graph....
, Inc. has created a tightly integrated Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 cluster supercomputer based on the MIPS64 architecture and a high performance interconnect based on the Kautz digraph topology. The system is very power efficient and computationally powerful. The most unique aspect of the system is its multicore processing node which integrates six MIPS64 cores, a crossbar
Crossbar

Crossbar can refer to:Structural usage:* A structural member that crosses any two other elements* A primitive Latch consisting of a post barring a door...
 memory controller
Memory controller

The memory controller is a digital circuit which manages the flow of data going to and from the main memory. It can be a separate chip or integrated into another chip, such as on the Die of a microprocessor....
, interconnect DMA engine, Gigabit Ethernet and PCI Express controllers all on a single chip which consumes only 10 watts of power, yet has a peak floating point performance of 6 GFLOPs. The most powerful configuration, the SC5832, is a single cabinet supercomputer consisting of 972 such node chips for a total of 5832 MIPS64 processor cores and 8.2 teraFLOPS of peak performance.

CPU family


The first commercial MIPS CPU model, the R2000, was announced in 1985. It added multiple-cycle multiply and divide instructions in a somewhat independent on-chip unit. New instructions were added to retrieve the results from this unit back to the execution core; these result-retrieving instructions were interlocked.

The R2000 could be booted either big-endian
Big-endian

Big-endian may refer to:* Endianness, the byte ordering in memory used to represent some kind of data in computing.* Name given to the inhabitants of the island of Lilliput and Blefuscu from the book Gulliver's Travels by Jonathan Swift, on account of their belief that eggs should be cracked on the larger end....
 or little-endian
Little-endian

Little-endian may refer to:* A philosophical viewpoint held by inhabitants of the island of Lilliput and Blefuscu from the book Gulliver's Travels by Jonathan Swift....
. It had thirty-two 32-bit general purpose registers, but no condition code register (the designers considered it a potential bottleneck), a feature it shares with the AMD 29000 and the Alpha
DEC Alpha

Alpha, originally known as Alpha AXP, was a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations....
. Unlike other registers, the program counter
Program counter

The program counter, or PC is a processor register that indicates where the computer is in its instruction sequence. Depending on the details of the particular computer, the PC holds either the address of the instruction being executed, or the address of the next instruction to be executed....
 is not directly accessible.

The R2000 also had support for up to four co-processors, one of which was built into the main CPU and handled exceptions, traps and memory management, while the other three were left for other uses. One of these could be filled by the optional R2010 FPU
Floating point unit

A floating-point unit is a part of a computer system specially designed to carry out operations on floating point numbers. Typical operations are addition, subtraction, multiplication, division , and square root....
, which had thirty-two 32-bit registers that could be used as sixteen 64-bit registers for double-precision.

The R3000 succeeded the R2000 in 1988, adding 32 KB (soon increased to 64 KB) caches for instructions and data, along with cache coherency
Cache coherency

In computing, cache coherence refers to the integrity of data stored in local caches of a shared resource. Cache coherence is a special case of memory coherence....
 support for multiprocessor use. While there were flaws in the R3000's multiprocessor support, it still managed to be a part of several successful multiprocessor designs. The R3000 also included a built-in MMU
Memory management unit

A memory management unit , sometimes called paged memory management unit , is a computer hardware component responsible for handling accesses to computer memory requested by the central processing unit ....
, a common feature on CPUs of the era. The R3000, like the R2000, could be paired with a R3010 FPU. The R3000 was the first successful MIPS design in the marketplace, and eventually over one million were made. A speed-bumped version of the R3000 running up to 40 MHz, the R3000A delivered a performance of 32 VUPs (VAX Unit of Performance)
Instructions per second

Instructions per second is a measure of a computer's processor speed. Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches, whereas realistic workloads consist of a mix of instructions and applications, some of which take longer to execute than others....
. The R3000A was the processor used in the extremely successful Sony
Sony

is a multinational corporation list of conglomerates corporation headquartered in Minato, Tokyo, Japan, and one of the world's largest media conglomerates with revenue exceeding US$99.1 billion ....
 PlayStation
PlayStation

The PlayStation is a 32-bit history of video game consoles video game console released by Sony Computer Entertainment in December .The PlayStation was the first of the ubiquitous PlayStation ....
. Third-party designs include Performance Semiconductor's R3400 and IDT's R3500, both of them were R3000As with an integrated R3010 FPU. Toshiba
Toshiba

is a multinational corporation list of conglomerates manufacturing company, headquartered in Tokyo, Japan. The company's main business is in Infrastructure, Consumer Products, and Electronic devices and components....
's R3900 was a virtually first SoC
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
 for the early handheld PC
Handheld PC

A Handheld PC, or H/PC for short, is a term for a computer built around a form factor which is smaller than any standard laptop computer. It is sometimes referred to as a Palmtop....
s based on the Windows CE
Windows CE

Windows CE is Microsoft's operating system for minimalistic computers and embedded systems. Windows CE is a distinctly different operating system and Kernel , rather than a trimmed-down version of desktop Windows....
. A radiation-hardened variant for space applications, the Mongoose-V
Mongoose-V

The Mongoose-V 32-bit microprocessor for spacecraft on-board computer applications is a radiation hardening and expanded 10–15 megahertz version of the MIPS architecture central processing unit....
, is a R3000 with an integrated R3010 FPU.

The R4000 series, released in 1991, extended the MIPS instruction set to a full 64-bit architecture, moved the FPU onto the main die to create a single-chip microprocessor, and operated at a radically high internal clock speed (it was introduced at 100 MHz). However, in order to achieve the clock speed the caches were reduced to 8 KB each and they took three cycles to access. The high operating frequencies were achieved through the technique of deep pipelining (called super-pipelining at the time). With the introduction of the R4000 a number of improved versions soon followed, including the R4400 (1993) which included 16 KB caches, largely bug-free 64-bit operation, and support for a larger external level 2 cache.

MIPS, now a division of SGI called MTI, designed the lower-cost R4200, and later the even lower cost R4300, which was the R4200 with a 32-bit external bus. The Nintendo 64
Nintendo 64

The , often abbreviated as N64, is Nintendo's third home video game console for the international market. Named for its 64-bit CPU, it was released on June 23, 1996 in Japan, September 29, 1996 in North America, March 1, 1997 in Europe and Australia, September 1, 1997 in France and December 10, 1997 in Brazil....
 used a NEC VR4300 CPU that was based upon the low-cost MIPS R4300i.

Quantum Effect Devices
Quantum Effect Devices

Quantum Effect Devices was a company originally named Quantum Effect Design, incorporated in 1991. The three founders, Tom Riordan, Earl Killian and Ray Kunita, were senior managers at MIPS Computer Systems Inc.....
 (QED), a separate company started by former MIPS employees, designed the R4600 "Orion", the R4700 "Orion", the R4650 and the R5000. Where the R4000 had pushed clock frequency and sacrificed cache capacity, the QED designs emphasized large caches which could be accessed in just two cycles and efficient use of silicon area. The R4600 and R4700 were used in low-cost versions of the SGI Indy
SGI Indy

The Indy, code-named "Guinness", is a low-end workstation introduced on 12 July 1993. Developed and manufactured by Silicon Graphics , it was the result of their attempt to obtain a share of the low-end computer-aided design market, which was dominated at the time by other workstation vendors; and the desktop publishing and multimedia mark...
 workstation as well as the first MIPS based Cisco routers, such as the 36x0 and 7x00-series routers. The R4650 was used in the original WebTV set-top boxes (now Microsoft TV). The R5000 FPU had more flexible single precision floating-point scheduling than the R4000, and as a result, R5000-based SGI Indys had much better graphics performance than similarly clocked R4400 Indys with the same graphics hardware. SGI gave the old graphics board a new name when it was combined with R5000 in order to emphasize the improvement. QED later designed the RM7000 and RM9000 family of devices for embedded markets like networking and laser printers. QED was acquired by the semiconductor manufacturer PMC-Sierra
PMC-Sierra

PMC-Sierra is a fabless semiconductor company which develops and sells devices into the communications, storage, printing, and embedded computing marketplaces....
 in August 2000, the latter company continuing to invest in the MIPS architecture. The RM7000 included an on-board 256 kB level 2 cache and a controller for optional level three cache. The RM9xx0 were a family of SOC
System-on-a-chip

System-on-a-chip or system on chip refers to integrating all components of a computer or other Electronics system into a single integrated circuit ....
 devices which included northbridge
Northbridge (computing)

The northbridge, also known as a memory controller hub or an integrated memory controller in Intel systems , is one of the two chips in the core logic chipset on a PC motherboard, the other being the Southbridge ....
 peripherals such as memory controller
Memory controller

The memory controller is a digital circuit which manages the flow of data going to and from the main memory. It can be a separate chip or integrated into another chip, such as on the Die of a microprocessor....
, PCI
Peripheral Component Interconnect

The PCI Local Bus , or Conventional PCI, is a computer bus for attaching computer hardware in a computer. These devices can take either the form of an integrated circuit fitted onto the motherboard itself, called a planar device in the PCI specification or an expansion card that fits into a socket....
 controller, gigabit ethernet
Gigabit Ethernet

Gigabit Ethernet is a term describing various technologies for transmitting Ethernet frames at a rate of a Data rate units#gigabit_per_second, as defined by the IEEE 802.3-2005 standard....
 controller and fast IO such as a hypertransport
HyperTransport

HyperTransport , formerly known as Lightning Data Transport , is a bidirectional serial/parallel high-bandwidth, Memory latency Point-to-point that was introduced on April 2 2001....
 port.

The R8000
R8000

The R8000 is a microprocessor chip set implementing the MIPS architecture instruction set architecture jointly developed by MIPS Technologies , then a subsidiary of Silicon Graphics, Inc....
 (1994) was the first superscalar
Superscalar

A superscalar Central processing unit architecture implements a form of parallel computer called instruction level parallelism within a single processor....
 MIPS design, able to execute two integer or floating point and two memory instructions per cycle. The design was spread over six chips: an integer unit (with 16 KB instruction and 16 KB data caches), a floating-point unit, three full-custom secondary cache tag RAMs (two for secondary cache accesses, one for bus snooping), and a cache controller ASIC. The design had two fully pipelined double precision multiply-add units, which could stream data from the 4 MB off-chip secondary cache. The R8000 powered SGI's POWER Challenge
SGI Challenge

The Challenge, code-named Eveready and Terminator , is a family of Server and supercomputers developed and manufactured by Silicon Graphics in the early to mid-1990s that succeeded the earlier Power series systems....
 servers in the mid 1990s and later became available in the POWER Indigo2 workstation. Although its FPU performance fit scientific users quite well, its limited integer performance and high cost dampened appeal for most users, and the R8000 was in the marketplace for only a year and remains fairly rare.

In 1995, the R10000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
 was released. This processor was a single-chip design, ran at a faster clock speed than the R8000, and had larger 32 KB primary instruction and data caches. It was also superscalar, but its major innovation was out-of-order execution. Even with a single memory pipeline and simpler FPU, the vastly improved integer performance, lower price, and higher density made the R10000 preferable for most customers.

Recent designs have all been based upon R10000 core. The R12000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
 used a 0.25 micrometre process to shrink the chip and achieve higher clock rates. The revised R14000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
 allowed higher clock rates with additional support for DDR
DDR SDRAM

DDR SDRAM is a class of memory integrated circuits used in computers. It achieves nearly twice the bandwidth of the preceding "single data rate" SDRAM by double data rate without increasing the clock frequency....
 SRAM
Static random access memory

Static random access memory is a type of semiconductor memory where the word static indicates that, unlike dynamic random access memory, it does not need to be periodically memory refresh, as SRAM uses bistable latch to store each bit....
 in the off-chip cache
CPU cache

A CPU cache is a cache used by the central processing unit of a computer to reduce the average time to access computer storage. The cache is a smaller, faster memory which stores copies of the data from the most frequently used main memory locations....
, and a faster system bus clocked to 200 MHz for better throughput. Later iterations are named the R16000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
 and the R16000A and feature increased clock speed, additional L1 cache, and smaller die manufacturing compared with before.

Other members of the MIPS family include the R6000, an ECL implementation of the MIPS architecture which was produced by Bipolar Integrated Technology
Bipolar Integrated Technology

Bipolar Integrated Technology was a semiconductor company based in Beaverton, Oregon which sold products implemented with ECL technology. The company was founded in 1983 by former Floating Point Systems, Intel, and Tektronix engineers....
. The R6000 microprocessor introduced the MIPS II instruction set. Its TLB
Translation Lookaside Buffer

A Translation lookaside buffer is a Central processing unit CPU cache that is used by Memory management unit to improve the speed of virtual address translation....
 and cache architecture are different from all other members of the MIPS family. The R6000 did not deliver the promised performance benefits, and although it saw some use in Control Data machines, it quickly disappeared from the mainstream market.

MIPS Microprocessors
Model Frequency (MHz)Year Process (µm) Transistors (Millions) Die Size (mm²)Pin Count Power (W)Voltage Dcache (KB) Icache (KB)L2 CacheL3 Cache
R20008-16.6719852.00.11????3264NoneNone
R300012-4019881.20.1166.121454?64640-256 KB ExternalNone
R400010019910.81.35213179155881 MB ExternalNone
R4400100-25019920.62.318617915516161-4 MB ExternalNone
R4600100-13319940.642.2771794.651616512 KB ExternalNone
R5000150-20019960.353.784223103.332321 MB ExternalNone
R8000
R8000

The R8000 is a microprocessor chip set implementing the MIPS architecture instruction set architecture jointly developed by MIPS Technologies , then a subsidiary of Silicon Graphics, Inc....
75-9019940.72.6299591+591303.316164 MB ExternalNone
R10000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
150-25019960.35, 0.256.7299599303.332321-4 MB ExternalNone
R12000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
270-40019980.25, 0.186.920460020432322-8 MB ExternalNone
RM7000250-60019980.25, 0.18, 0.13189130410, 6, 33.3, 2.5, 1.51616256 KB Internal1 MB External
R14000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
500-60020010.137.220452717?32322-4 MB ExternalNone
R16000
R10000

The R10000, code-named "T5", is a microprocessor implementation of the MIPS architecture instruction set architecture developed by MIPS Technologies , then a division of Silicon Graphics ....
700-100020020.11???20?64644-16 MB ExternalNone
Note: These specifications are for common processor models. Variations exist, especially in Level 2 cache.

Note: The R8000 has a unique cache hierarchy named 'Data Streaming Cache' where there is 16 KB of L1 data cache for the integer chip with an external 4 MB L2 cache that served as the secondary unified cache for the integer chip but as the L1 data cache for the floating point chip.

Summary of R3000 instruction set Opcodes


Instructions are divided into three types: R, I and J. Every instruction starts with a 6-bit opcode. In addition to the opcode, R-type instructions specify three registers, a shift amount field, and a function field; I-type instructions specify two registers and a 16-bit immediate value; J-type instructions follow the opcode with a 26-bit jump target.

The following are the three formats used for the core instruction set:

Type -31-                                 format (bits)                                 -0-
R opcode (6) rs (5) rt (5) rd (5) shamt (5) funct (6)
I opcode (6) rs (5) rt (5) immediate (16)
J opcode (6) address (26)


MIPS Assembly Language


These are assembly language instructions that have direct hardware implementation, as opposed to pseudoinstructions which are translated into multiple real instructions before being assembled.

  • In the following, the register letters d, t, and s are placeholders for (register) numbers or register names.
  • "C" denotes a constant ("immediate").
  • All the following instructions are native instructions.
  • Opcodes and funct codes are in hexadecimal.
  • The MIPS32 Instruction Set states that the word unsigned as part of Add and Subtract instructions, is a misnomer. The difference between signed and unsigned versions of commands is not a sign extension (or lack thereof) of the operands, but controls whether a trap is executed on overflow (e.g. Add) or an overflow is ignored (Add unsigned). An immediate operand CONST to these instructions is always sign-extended.

Integer

MIPS has 32 integer ("fast") registers. Data must be in registers to perform arithmetic. Register $0 always holds 0 and register $1 is normally reserved for the assembler (for handling pseudo instructions and large constants).

The encoding shows which bits correspond to which parts of the instruction. A hyphen (-) is used to indicate don't cares.

Category Name Instruction syntax Meaning Format/opcode/funct Notes/Encoding
Arithmetic Add add $d,$s,$t $d = $s + $t R 0 adds two registers, executes a trap on overflow
000000ss sssttttt ddddd--- --100000
Add unsigned addu $d,$s,$t $d = $s + $t R 0 as above but ignores an overflow
000000ss sssttttt ddddd--- --100001
Subtract sub $d,$s,$t $d = $s - $t R 0 subtracts two registers, executes a trap on overflow
000000ss sssttttt ddddd--- --100010
Subtract unsigned subu $d,$s,$t $d = $s - $t R 0 as above but ignores an overflow
000000ss sssttttt ddddd000 00100011
Add immediate addi $t,$s,C $t = $s + C (signed) I - Used to add sign-extended constants (and also to copy one register to another "addi $1, $2, 0"), executes a trap on overflow
001000ss sssttttt CCCCCCCC CCCCCCCC
Add immediate unsigned addiu $t,$s,C $t = $s + C (signed) I - as above but ignores an overflow, C still sign-extended
001001ss sssttttt CCCCCCCC CCCCCCCC
Multiply mult $1,$2 LO = (($1 * $2) << 32) >> 32;
HI = ($1 * $2) >> 32;
R 0 Multiplies two registers and puts the 64-bit result in two special memory spots - LO and HI. Alternatively, one could say the result of this operation is: (int HI,int LO) = (64-bit) $1 * $2 . See mfhi and mflo for accessing LO and HI regs.
Divide div $x, $y LO = $x / $y     HI = $x % $y R 0 1A Divides two registers and puts the 32-bit integer result in LO and the remainder in HI.
Divide unsigned divu $x, $y LO = $x / $y     HI = $x % $y R 0 1B Divides two registers and puts the 32-bit integer result in LO and the remainder in HI.
Data Transfer Load double word ld $x,C($y) $x = Memory[$y + C] I - loads the word stored from: MEM[$y+C] and the following 7 bytes to $x and the next register.
Load word lw $x,C($y) $x = Memory[$y + C] I - loads the word stored from: MEM[$y+C] and the following 3 bytes.
Load halfword lh $x,C($y) $x = Memory[$y + C] (signed) I - loads the halfword stored from: MEM[$y+C] and the following byte. Sign is extended to width of register.
Load halfword unsigned lhu $x,C($y) $x = Memory[$y + C] (unsigned) I - As above without sign extension.
Load byte lb $x,C($y) $x = Memory[$y + C] (signed) I - loads the byte stored from: MEM[$y+C].
Load byte unsigned lbu $x,C($y) $x = Memory[$y + C] (unsigned) I - As above without sign extension.
Store double word sd $x,C($y) Memory[$y + C] = $x I - stores two words from $x and the next register into: MEM[$y+C] and the following 7 bytes. The order of the operands is a large source of confusion.
Store word sw $x,C($y) Memory[$y + C] = $x I - stores a word into: MEM[$y+C] and the following 3 bytes. The order of the operands is a large source of confusion.
Store half sh $x,C($y) Memory[$y + C] = $x I - stores the first half of a register (a halfword) into: MEM[$y+C] and the following byte.
Store byte sb $x,C($y) Memory[$y + C] = $x I - stores the first fourth of a register (a byte) into: MEM[$y+C].
Load upper immediate lui $x,C $x = C << 16 I - loads a 16-bit immediate operand into the upper 16-bits of the register specified. Maximum value of constant is 216-1
Move from high mfhi $x $x = HI R 0 Moves a value from HI to a register. Do not use a multiply or a divide instruction within two instructions of mfhi (that action is undefined because of the MIPS pipeline).
Move from low mflo $x $x = LO R 0 Moves a value from LO to a register. Do not use a multiply or a divide instruction within two instructions of mflo (that action is undefined because of the MIPS pipeline).
Move from Control Register mfcZ $x, $y $x = Coprocessor[Z].ControlRegister[$y] R 0 Moves a 4 byte value from Coprocessor Z Control register to a general purpose register. Sign extension.
Move to Control Register mtcZ $x, $y Coprocessor[Z].ControlRegister[$y] = $x R 0 Moves a 4 byte value from a general purpose register to a Coprocessor Z Control register. Sign extension.
Logical And and $d,$s,$t $d = $s & $t R 0 Bitwise
Bitwise

Bitwise may refer to:* Bitwise operation, a basic function in computer programming* BitWise IM, a cryptographic instant messaging client* Bitwise IIT Kharagpur, an algorithm-intensive programming contest by CSE IIT Kharagpur...
 and
000000ss sssttttt ddddd--- --100100
And immediate andi $t,$s,C $t = $s & C I - 001100ss sssttttt CCCCCCCC CCCCCCCC
Or or $x,$y,$z $x = $y | $z R 0 Bitwise
Bitwise

Bitwise may refer to:* Bitwise operation, a basic function in computer programming* BitWise IM, a cryptographic instant messaging client* Bitwise IIT Kharagpur, an algorithm-intensive programming contest by CSE IIT Kharagpur...
 or
Or immediate ori $x,$y,C $x = $y | C I -  
Exclusive or xor $x,$y,$z $x = $y ^ $z R 0  
Nor nor $x,$y,$z $x = ~ ($y | $z) R 0 Bitwise
Bitwise

Bitwise may refer to:* Bitwise operation, a basic function in computer programming* BitWise IM, a cryptographic instant messaging client* Bitwise IIT Kharagpur, an algorithm-intensive programming contest by CSE IIT Kharagpur...
 nor
Set on less than slt $x,$y,$z $x = ($y < $z) R 0 Tests if one register is less than another.
Set on less than immediate slti $x,$y,C $x = ($y < C) I - Tests if one register is less than a constant.
Bitwise Shift Shift left logical sll $x,$y,C $x = $y << C R 0 0 shifts C number of bits to the left (multiplies by )
Shift right logical srl $x,$y,C $x = $y >> C R 0 shifts CONST number of bits to the right - zeros are shifted in (divides by ). Note that this instruction only works as division of a two's complement number if the value is positive.
Shift right arithmetic sra $x,$y,C
R 0 shifts C number of bits - the sign bit is shifted in (divides 2's complement number by )
Conditional branch Branch on equal beq $s,$t,C if ($s

$t) go to PC+4+4*C

I - Goes to the instruction at the specified address if two registers are equal.
000100ss sssttttt CCCCCCCC CCCCCCCC
Branch on not equal bne $x,$y,C if ($x != $y) go to PC+4+4*C I - Goes to the instruction at the specified address if two registers are not equal.
Unconditional jump Jump j C PC = PC+4[31:28] . C*4 J - Unconditionally jumps to the instruction at the specified address.
Jump register jr $x goto address $x R 0 Jumps to the address contained in the specified register
Jump and link jal C $31 = PC + 4; PC = PC+4[31:28] . C*4 J - For procedure call - used to call a subroutine, $31 holds the return address; returning from a subroutine is done by: jr $31


NOTE: In MIPS assembler code, the offset for branching instructions can be represented by a label elsewhere in the code.

NOTE: that there is no corresponding "load lower immediate" instruction; this can be done by using addi (add immediate, see below) or ori (or immediate) with the register $0 (whose value is always zero). For example, both addi $1, $0, 100 and ori $1, $0, 100 load the decimal value 100 into register $1.

NOTE: Subtracting an immediate can be done with adding the negation of that value as the immediate.

Floating point

MIPS has 32 floating-point registers. Two registers are paired for double precision numbers. Odd numbered registers cannot be used for arithemetic or branch, just for data transfer of the right "half" of double precision register pairs.
Category Name Instruction syntax Meaning Format/opcode/funct Notes/Encoding
Arithmetic FP add single add.s $x,$y,$z $x = $y + $z Floating-Point add (single precision)
FP subtract single sub.s $x,$y,$z $x = $y - $z Floating-Point subtract (single precision)
FP multiply single mul.s $x,$y,$z $x = $y * $z Floating-Point multiply (single precision)
FP divide single div.s $x,$y,$z $x = $y / $z Floating-Point divide (single precision)
FP add double add.d $x,$y,$z $x = $y + $z Floating-Point add (double precision)
FP subtract double sub.d $x,$y,$z $x = $y - $z Floating-Point subtract (double precision)
FP multiply double mul.d $x,$y,$z $x = $y * $z Floating-Point multiply (double precision)
FP divide double div.d $x,$y,$z $x = $y / $z Floating-Point divide (double precision)
Data Transfer Load word coprocessor lwcZ $x,CONST ($y) Coprocessor[Z].DataRegister[$x] = Memory[$y + CONST] I Loads the 4 byte word stored from: MEM[$2+CONST] into a Coprocessor data register. Sign extension.
Store word coprocessor swcZ $x,CONST ($y) Memory[$y + CONST] = Coprocessor[Z].DataRegister[$x] I Stores the 4 byte word held by a Coprocessor data register into: MEM[$2+CONST]. Sign extension.
Logical FP compare single (eq,ne,lt,le,gt,ge) c.lt.s $f2,$f4 if ($f2 < $f4) cond=1; else cond=0 Floating-point compare less than single precision
FP compare double (eq,ne,lt,le,gt,ge) c.lt.d $f2,$f4 if ($f2 < $f4) cond=1; else cond=0 Floating-point compare less than double precision
Branch branch on FP true bc1t 100 if (cond 1) go to PC+4+100 PC relative branch if FP condition
branch on FP false bc1f 100 if (cond

0) go to PC+4+100

PC relative branch if not condition


Pseudo instructions


These instructions are accepted by the MIPS assembler, however they are not real instructions within the MIPS instruction set. Instead, the assembler translates them into sequences of real instructions.

Name instruction syntax Real instruction translation meaning
Load Address la $1, LabelAddr lui $1, LabelAddr[31:16]; ori $1,$1, LabelAddr[15:0] $1 = Label Address
Load Immediate li $1, IMMED[31:0] lui $1, IMMED[31:16]; ori $1,$1, IMMED[15:0] $1 = 32 bit Immediate value
Branch if greater than bgt $rs,$rt,Label slt $at,$rt,$rs; bne $at,$zero,Label if(R[rs]>R[rt]) PC=Label
Branch if less than blt $rs,$rt,Label slt $at,$rs,$rt; bne $at,$zero,Label if(R[rs]
Branch if greater than or equal bge etc if(R[rs]>=R[rt]) PC=Label
branch if less than or equal ble if(R[rs]<=R[rt]) PC=Label
branch if greater than unsigned bgtu if(R[rs]=>R[rt]) PC=Label
branch if greater than zero bgtz if(R[rs]>0) PC=Label


Some other important instructions

  • NOP
    NOP

    In computer science NOP or NOOP is an assembly language instruction, sequence of programming language statements, or protocol command that effectively does nothing at all....
     (no operation) (machine code 0x00000000, interpreted by CPU as sll $0,$0,0)
  • break (breaks the program, used by debuggers)
  • syscall (used for system calls to the operating system)
  • a full set of Floating point instructions for both single precision and double precision operands


Compiler Register Usage



The hardware architecture specifies that:
  • General purpose register $0 always returns a value of 0 .
  • General purpose register $31 is used as the link register for jump and link instructions.
  • HI and LO are used to access the multiplier/divider results, accessed by the mfhi (move from high) and mflo commands.
These are the only hardware restrictions on the usage of the general purpose registers.

The various MIPS tool-chains implement specific calling conventions that further restrict how the registers are used. These calling convention
Calling convention

In computer science, a calling convention is a scheme for how function s receive parameters from their caller and how they return a result; calling conventions can differ in:...
s are totally maintained by the tool-chain software and are not required by the hardware.

Registers
Name Number Use Callee must preserve?
$zero $0 constant 0 N/A
$at $1 assembler temporary no
$v0–$v1 $2–$3 Values for function returns and expression evaluation no
$a0–$a3 $4–$7 function arguments no
$t0–$t7 $8–$15 temporaries no
$s0–$s7 $16–$23 saved temporaries yes
$t8–$t9 $24–$25 temporaries no
$k0–$k1 $26–$27 reserved for OS kernel no
$gp $28 global pointer yes
$sp $29 stack pointer
Stack-based memory allocation

Stack s in computing architectures are regions of memory where data is added or removed in a LIFO manner.In most modern computer systems, each Thread has a reserved region of memory referred to as its stack....
 
yes
$fp $30 frame pointer yes
$ra $31 return address
Return address

In postal mail, a return address is an explicit inclusion of the address of the person sending the message. It provides the recipient with a means to determine how to respond to the sender of the message if needed....
 
N/A


Registers that are preserved across a call are registers that (by convention) will not be changed by a system call or procedure (function) call. For example, $s-registers must be saved to the stack by a procedure that needs to use them, and $sp and $fp are always incremented by constants, and decremented back after the procedure is done with them (and the memory they point to). By contrast, $ra is changed automatically by any normal function call (ones that use jal), and $t-registers must be saved by the program before any procedure call (if the program needs the values inside them after the call).

Simulators

Open Virtual Platforms (OVP) includes the freely available simulator OVPsim
OVPsim

OVPsim is a multiprocessor platform emulator that uses dynamic binary translation technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor, peripheral and platform models....
, a library of models of processors, peripherals and platforms, and APIs which enable users to develop their own models. The models in the library are open source, written in C, and include the MIPS 4K, 24K and 34K cores. These models are created and maintained by Imperas and in partnership with MIPS Technologies have been tested and assigned the MIPS-Verified(tm) mark. The OVP site also includes models of ARM, Tensilica and OpenCores/openRisc processors. Sample MIPS-based platforms include both bare metal environments and platforms for booting unmodified Linux binary images. These platforms/emulators are available as source or binaries and are fast, free, and easy to use. OVPsim
OVPsim

OVPsim is a multiprocessor platform emulator that uses dynamic binary translation technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor, peripheral and platform models....
 is developed and maintained by Imperas and is very fast (100s of million instructions per second), and built to handle multicore architectures. To download the MIPS OVPsim
OVPsim

OVPsim is a multiprocessor platform emulator that uses dynamic binary translation technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor, peripheral and platform models....
 simulators/emulators visit .

There is a freely available "MIPS32 Simulator" (earlier versions simulated only the R2000/R3000) called SPIM
SPIM

SPIM is a MIPS architecture processor simulator, designed to run assembly language code for this architecture. The program simulates R2000 and R3000 processors, and was written by James R....
 for several operating systems (specifically Unix or GNU/Linux; Mac OS X; MS Windows 95, 98, NT, 2000, XP; and DOS) which is good for learning MIPS assembly language programming and the general concepts of RISC-assembly language programming: http://www.cs.wisc.edu/~larus/spim.html

EduMIPS64 is a GPL graphical cross-platform MIPS64 CPU simulator, written in Java/Swing. It supports a wide subset of the MIPS64 ISA and allows the user to graphically see what happens in the pipeline when an assembly program is run by the CPU. It has educational purposes and is used in some Computer Architecture courses in Universities around the world. More info at http://www.edumips.org

MARS is another GUI based MIPS emulator designed for use in education, specifically for use with Hennessy's Computer Organization and Design. More information is available at http://courses.missouristate.edu/KenVollmar/MARS/

More advanced free MIPS emulators are available from the GXemul
GXemul

GXemul is a computer architectureemulator being developed by Anders Gavare. It isavailable as free software under a revised BSD license.In 2005, Gavare changed the name of the software project...
 (formerly known as the mips64emul project) and QEMU
QEMU

QEMU is a central processing unit emulator that relies on dynamic binary translation to achieve a reasonable speed while being easy to port on new host CPU architectures....
 projects, which emulate not only the various MIPS III and higher microprocessors (from the R4000 through the R10000), but also entire computer systems which use the microprocessors. For example, GXemul can emulate both a DECstation
DECstation

The DECstation was a brand of computers used by Digital Equipment Corporation, and refers to three distinct lines of computer systems—the first released in 1978 as a word processing system, and the latter two both released in 1989....
 with a MIPS R4400 CPU (and boot to Ultrix
Ultrix

Ultrix was the brand name of Digital Equipment Corporation's native Unix systems. While ultrix is the Latin word for avenger, the name was chosen solely for its sound....
), and an SGI O2
SGI O2

The O2 is an entry-level Unix workstation introduced in 1996 by Silicon Graphics to replace their earlier SGI Indy series. Like the Indy, the O2 used a single MIPS architecture-based Central processing unit and was intended to be used mainly for multimedia....
 with a MIPS R10000 CPU (although the ability to boot Irix
IRIX

IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers....
 is limited), among others, as well as the various framebuffer
Framebuffer

A framebuffer is a video output device that drives a video display from a memory buffer containing a complete video frame of data. The information in the buffer typically consists of color values for every pixel on the screen....
s, SCSI
SCSI

Small Computer System Interface, or SCSI , is a set of standards for physically connecting and transferring data between computers and peripheral devices....
 controllers, and the like which comprise those systems.

Commercial simulators are available especially for the embedded use of MIPS processors, for example Virtutech Simics
Simics

Simics is a full system simulation used to run unchanged production binaries of the target hardware at high-performance speeds. Simics was originally developed by the Swedish Institute of Computer Science , and then spun off to Virtutech for commercial development in 1998....
 (MIPS 4Kc and 5Kc, PMC RM9000, QED RM7000), VaST Systems (R3000, R4000), and CoWare
Coware

CoWare is a supplier of platform-driven electronic system level design software and services.CoWare is headquartered in San Jose, California, and has offices around the world, major R&D offices in Belgium, Germany and India....
 (the MIPS4KE, MIPS24K, MIPS25Kf and MIPS34K).

Trivia

  • "Mips" the rabbit in Super Mario 64
    Super Mario 64

    is a platform game developed by Nintendo Entertainment Analysis and Development and published by Nintendo for the Nintendo 64. It was released in Japan on June 23, 1996, and later in North America and in Europe....
     is named after the technology, which was used by the Nintendo 64
    Nintendo 64

    The , often abbreviated as N64, is Nintendo's third home video game console for the international market. Named for its 64-bit CPU, it was released on June 23, 1996 in Japan, September 29, 1996 in North America, March 1, 1997 in Europe and Australia, September 1, 1997 in France and December 10, 1997 in Brazil....
    .


Further reading



See also

  • DLX
    DLX

    The DLX is a Reduced instruction set computer Central processing unit Computer architecture design by John L. Hennessy and David A. Patterson , the principal designers of the MIPS architecture and the Berkeley RISC designs , the two benchmark examples of RISC design....
    , a very similar architecture designed by John L. Hennessy
    John L. Hennessy

    John LeRoy Hennessy is an United States computer scientist and academic. Hennessy is the founder of MIPS Computer Systems Inc. and is the 10th President of Stanford University....
     (creator of MIPS) for teaching purposes
  • Loongson, a MIPS-like processor architecture developed at Chinese Academy of Sciences
  • MIPS-X
    MIPS-X

    MIPS-X is a microprocessor and instruction set architecture developed as a follow-on project to the MIPS architecture at Stanford University by the same team that developed MIPS....
    , developed as a follow-on project to the MIPS architecture
  • Mongoose-V
    Mongoose-V

    The Mongoose-V 32-bit microprocessor for spacecraft on-board computer applications is a radiation hardening and expanded 10–15 megahertz version of the MIPS architecture central processing unit....
    , a radiation hardened version of the MIPS R3000 used in spacecrafts
  • SPIM
    SPIM

    SPIM is a MIPS architecture processor simulator, designed to run assembly language code for this architecture. The program simulates R2000 and R3000 processors, and was written by James R....
    . is a MIPS processor simulator.


External links