MIPS-arkitekturen blev udviklet på Stanford University i begyndelsen af 1980'erne og præsenteret i 1981 som et forsøg på at realisere de grundlæggende RISC-principper. Navnet MIPS stod oprindeligt for Microprocessor without Interlocked Pipeline Stages (mikroprocessor uden interlocked pipeline‑faser). Ideen var at holde instruktionerne enkle og af fast længde for at forenkle hardwaren og gøre det muligt at få høje clockfrekvenser gennem effektiv pipelining. De tidlige MIPS-implementeringer brugte en 32-bit databus; fra omkring 1991 kom også 64-bit varianter.

Historie og udbredelse

MIPS blev hurtigt populær inden for både akademisk forskning og kommercielle produkter. Mange virksomheder byggede processorer og systemer baseret på MIPS-arkitekturen, herunder SGI, Digital Equipment Corporation, NEC, Pyramid Technology, Siemens Nixdorf, Tandem Computers og andre. I midten og slutningen af 1990'erne blev det anslået, at omkring hver tredje RISC-mikroprocessor, der blev produceret, var en MIPS-implementering.

Fra 1990'erne og frem blev MIPS særligt udbredt i indlejrede systemer; i praksis fandt man MIPS-baserede chips i routere, set-top-boxe, adgangspunkter og i forskellige forbruger-elektronikprodukter. Flere kendte spilkonsoller brugte MIPS-CPU'er, fx Sony Playstation, PlayStation 2 og PlayStation Portable. Indtil slutningen af 2006 benyttede SGI også MIPS i mange af deres arbejdsstationer og servere.

Designprincipper og tekniske kendetegn

  • RISC / load‑store arkitektur: MIPS er et klassisk RISC‑design hvor kun load og store instruktioner adresserer hukommelsen; aritmetiske og logiske instruktioner arbejder udelukkende på registre.
  • Fast instruktionlængde: De oprindelige instruktioner er 32 bit lange, hvilket forenkler instruktionshentning og dekodning.
  • Registresæt: Typisk 32 generelle registre (GPR), hvor register $zero er hardkodet til værdien 0. Arkitekturen definerer også kontrol- og specialregistre, f.eks. til hukommelsesstyring og undtagelseshåndtering (COP0 i klassiske implementeringer).
  • Pipelining: Klassiske MIPS‑designs har en 5‑trins pipeline (IF, ID, EX, MEM, WB). Oprindeligt var der minimal hardwareinterlock, hvilket betød, at meget af afhængighedshåndteringen blev placeret i compileren; senere implementeringer indførte flere interlocks og hazard‑løsninger i hardware.
  • Branches og delay‑slots: MIPS benytter traditionelt branch delay‑slots (instruktionen efter en betinget forgrening udføres før forgreningseffekten), hvilket er et karakteristisk træk fra ældre RISC‑designs.
  • Endianness: MIPS‑systemer kan ofte konfigureres til enten big‑endian eller little‑endian afhængigt af implementationen.

Arkitekturvarianter og udvidelser

Gennem tiden er MIPS-arkitekturen udbygget i flere versioner og profiler:

  • MIPS I–V: Tidlige arkitekturversioner, som introducerede og udvidede grundlæggende instruktioner og funktioner.
  • MIPS32 og MIPS64: Definerede profiler for 32‑bit og 64‑bit indlejrede og system‑CPU'er, almindeligt brugt i industrielle og kommercielle CPU‑designs.
  • Kodekomprimering og små core‑varianter: Der findes også varianter som MIPS16e og microMIPS designet til at reducere kodeplads og strømforbrug i indlejrede miljøer ved at tilbyde kortere eller alternative instruktioner.

Anvendelser

MIPS blev og bliver brugt i en bred vifte af produkter:

  • Indlejrede systemer: routere, gateways, internet‑adgangsprodukter og TV‑set‑top‑bokse.
  • Forbrugerelektronik: spilkonsoller (fx Sony PlayStation‑serier), medieafspillere mv.
  • Arbejdstationer og servere: historisk brugt i SGI‑maskiner og andre UNIX‑systemer.
  • Specialiserede systemer: netværksudstyr, industrielle controllere og andre applikationer hvor lavt effektforbrug og omkostningseffektivitet er vigtige.

Fordele og begrænsninger

Fordele: Enkel instruktionsarkitektur gør design og implementering enklere, hvilket ofte giver god energieffektivitet og høje klokkefrekvenser; effektiv pipelining og en kompilatorvenlig ISA har været attraktive for indlejrede anvendelser.

Begrænsninger: Konkurrence fra andre ISA'er (særligt ARM) og fragmentering i licens‑ og implementeringsmodeller har begrænset MIPS' markedsandel i visse segmenter. Desuden kræver visse ældre MIPS‑træk (som delay‑slots) særlig opmærksomhed i moderne compiler‑design.

Økosystem og værktøjer

MIPS understøttes af en række udviklingsværktøjer og open‑source toolchains, herunder GNU GCC, binutils og forskellige emulatore‑ og debuggerløsninger. Arkitekturen har også haft forskellige licensmodeller: nogle leverandører har solgt komplette cores, andre har licenseret ISA'en til tredjepartsimplementeringer.

Arv og status

MIPS har haft stor indflydelse på RISC‑forskning og -design og er et tydeligt eksempel på, hvordan simple og veldefinerede instruktioner kan give fordelagtige egenskaber i både forskning og industri. I praksis er MIPS i mange år mest synlig i indlejrede produkter, men dens designprincipper har påvirket en lang række senere processorer. Konkurrence fra ARM og nyere initiativer som RISC‑V har ændret landskabet, men MIPS' rolle i computinghistorien og i mange indlejrede systemer er stadig betydelig.

Hvis du ønsker, kan jeg uddybe en bestemt del — fx pipelinedesignet i detaljer, forskelle mellem MIPS32 og MIPS64, eller hvordan microMIPS og MIPS16e fungerer i praksis.