Arhitektura MIPS – definicija, zgodovina, 32/64-bitna RISC arhitektura
Arhitektura MIPS je nabor ukazov za računalnike, ki so ga leta 1981 razvili na Univerzi Stanford. Na začetku je bila arhitektura MIPS kratica za Microprocessor without Interlocked Pipeline Stages. Večina je narejena v RISC. V popolni arhitekturi RISC imajo vsi ukazi enako dolžino. To poenostavi zasnovo mikročipa in omogoča uporabo hitrih taktov. Na začetku je arhitektura uporabljala 32-bitno vodilo, od leta 1991 pa se uporablja 64-bitna arhitektura.
Leta 2015 so se izvedbe MIPS uporabljale predvsem v vgrajenih sistemih, kot so naprave s sistemom Windows CE, usmerjevalniki, stanovanjski prehodi in igralne konzole, kot so Sony Playstation, PlayStation 2 in PlayStation Portable. Do konca leta 2006 so se uporabljale tudi v številnih računalniških izdelkih podjetja SGI. Izvedbe MIPS so konec osemdesetih in v devetdesetih letih prejšnjega stoletja uporabljali tudi podjetja Digital Equipment Corporation, NEC, Pyramid Technology, Siemens Nixdorf, Tandem Computers in druga. V sredini in ob koncu devetdesetih let je bilo ocenjeno, da je bil vsak tretji proizvedeni mikroprocesor RISC izvedba MIPS.
Definicija in osnovna načela
MIPS je tipična RISC (Reduced Instruction Set Computer) arhitektura, zasnovana okoli preprostih, hitro izvedljivih ukazov z enotno dolžino (32 bitov pri osnovnih različicah). Gre za load–store arhitekturo: le ukazi za nalaganje in shranjevanje dostopajo do pomnilnika, aritmetični in logični ukazi pa delujejo nad registri. Glavna načela so preprosta kodna tabela ukazov, strogo ločeni fazni koraki izvajanja in pipeline zasnova, ki omogoča visoke takte.
Zgodovina in razvoj
MIPS se je začel kot raziskovalni projekt na Stanfordu v začetku osemdesetih. Kasneje so bili ti koncepti komercializirani in MIPS procesorji so bili široko licencirani in uporabljeni v različnih strojnih platformah — zlasti v vgrajenih sistemih, komunikacijski opremi in igralnih konzolah. V začetnih izvedbah je prevladovala 32-bitna oblika, leta 1991 pa je bila predstavljena 64-bitna razširitev (MIPS‑III), kar je omogočilo naslovitev večjih pomnilniških prostorov in boljšo podporo za serverske aplikacije. Kasnejše standardizirane družine vključujejo MIPS I–IV in sodobne komplete ukazov MIPS32 ter MIPS64.
Arhitekturne značilnosti
- Fiksna dolžina ukazov: osnovni ukazi so dolgi 32 bitov, kar poenostavi dekodiranje in pipelining.
- R, I in J formati ukazov: MIPS uporablja tri osnovne formate navodil: R (register), I (immediate) in J (jump), vsak s fiksnimi polji za lažje strojno dekodiranje.
- Load–store arhitektura: le nalaganje/hranjenje dostopa do pomnilnika; aritmetični ukazi delujejo samo na registrih.
- Pipelining: klasična 5-stopenjska cev (IF, ID, EX, MEM, WB) omogoča izvajanje več ukazov hkrati in visoko IPC (instructions per cycle). Zaradi zgodnjih oblik pipeline so nekateri modeli uporabljali koncept delay slot pri vejicah (branch delay slot).
- Interlocked Pipeline Stages: izvorni akronim poudarja, da je bil cilj zmanjšati strojne interlock mehanizme; v nekaterih zgodnjih implementacijah so bile interlock rešitve omejene in so zahtevale optimizacije na ravni kompilerja.
- Bi-endian: mnoge MIPS implementacije podpirajo tako big-endian kot little-endian način naslovljanja.
Registri in koprocesorji
MIPS 32-bitne arkitekture ponavadi imajo 32 splošnih registov (označeni $0–$31), pri čemer je $0 stalno ničla. Standardno imenskovanje registra vključuje:
- $a0–$a3: argumenti funkcij
- $v0–$v1: rezultati funkcij
- $t0–$t9: začasni registri (caller-saved)
- $s0–$s7: shranjeni registri (callee-saved)
- $ra ($31): naslov vrnitve
MIPS ima tudi koprocesorje: COP0 (sistemni koprocesor za izjemne situacije, upravljanje pomnilnika in prekinitve), COP1 (plavajoča vejica – FPU) in možnost dodatnih koprocesorjev za posebne funkcije.
Standardi in ABI
Za programsko združljivost so nastali različni ABI-ji in standardi, na primer O32 za 32-bitne sisteme ter N32/N64 za 64-bitne profile. MIPS32 in MIPS64 določata skupek ukazov in pričakovano obnašanje strojne kode na določenih profilih implementacij (profil za vgrajene sisteme, profil za strežniške sisteme itd.).
Specifične lastnosti programiranja
- Pseudo-ukazi: za lažje programiranje so razpoložljive pseudo‑instrukcije (npr. li, move), ki jih assembler pretvori v eno ali več pravo ukazov.
- Branch delay slot: nekateri MIPS procesorji uporabljajo delay slot za vejitev, kar pomeni, da se ukaz neposredno za vejavo izvede ne glede na izid pogoja (to je pomembno za optimizacijo in pravilno generiranje kode).
- Upravljanje z izjemami in prekinitvami: COP0 skrbi za tabelo izjem, statusne registre in vektorje izjem.
Uporaba in pomen
MIPS je bil zelo vpliven pri razvoju sodobnih RISC arhitektur. Zaradi enostavnosti in učinkovitosti ga pogosto izberejo za vgrajene naprave, omrežno opremo, set-top box-e in igralne konzole. Njegova modularnost in jasen nabor ukazov sta bili prednost za komercialno licenciranje in implementacije IP jeder v ASIC/FPGA rešitvah.
Zaključek
MIPS ostaja pomembna referenca pri razumevanju RISC principov: fiksna dolžina ukazov, load–store model, jasna pipelina in preprosta encodiranja. Čeprav so v zadnjih desetletjih nastale številne druge arhitekture (ARM, RISC‑V, Power, x86), MIPS še vedno živi v številnih vgrajenih produktih in kot učno orodje za arhitekturo računalnikov.
Vprašanja in odgovori
V: Kaj je arhitektura MIPS?
O: Arhitektura MIPS je nabor ukazov za računalnike, ki so ga leta 1981 razvili na Univerzi Stanford.
V: Kaj pomeni MIPS?
O: MIPS je bila sprva kratica za Microprocessor without Interlocked Pipeline Stages.
V: Kaj je RISC v arhitekturi MIPS?
O: Večina arhitekture MIPS je narejena v načinu RISC. RISC je kratica za Reduced Instruction Set Computing (računanje z zmanjšanim naborom ukazov).
V: Kakšna je prednost uporabe RISC v arhitekturi MIPS?
O: V popolni arhitekturi RISC imajo vsi ukazi enako dolžino. To poenostavi zasnovo mikročipa in omogoča uporabo hitrih taktov.
V: Kakšna je bila arhitektura vodila, uporabljena v začetnih različicah arhitekture MIPS?
O: Na začetku je arhitektura uporabljala 32-bitno vodilo.
V: Kdaj je bila v arhitekturi MIPS uporabljena 64-bitna arhitektura?
O: Od leta 1991 se je uporabljala 64-bitna arhitektura.
V: V katerih sistemih se predvsem uporabljajo izvedbe arhitekture MIPS?
O: Leta 2015 se izvedbe MIPS uporabljajo predvsem v vgrajenih sistemih, kot so naprave s sistemom Windows CE, usmerjevalniki, stanovanjski prehodi in konzole za videoigre, kot so Sony Playstation, PlayStation 2 in PlayStation Portable.