Microprocessor without Interlocked Pipeline Stage (MIPS) este o arhitectură de procesor care utilizează setul de instrucțiuni RISC simplificată și foarte scalabilă dezvoltată de MIPS Computer Systems în 1985. Procesoarele MIPS au o linie de instrucțiuni în 5 etape pentru a executa mai multe instrucțiuni în același timp. Ideea de bază este de a executa instrucțiuni în linia de instrucțiuni, fără pauze. Pe instrucțiuni executate trebuie să fie necesară doar o frecvență de ceas.

Procesoarele cu această arhitectură sunt utilizate în sisteme înglobate, smartphone, tablete, routere, gateway, stații de lucru, console de jocuri video cum ar fi Sony PlayStation și Nintendo 64, supercalculatoare (NEC Cenju-4), autovehicule (Tesla Model S), inteligență artificială, internetul obiectelor. Five most iconic devices to use MIPS CPUs mips.com, Alex Voica, June 2016

În 1992, MIPS Computer Systems a fost preluat de Silicon Graphics, sub numele de MIPS Technologies. Aceasta a fost achiziționată la 17 decembrie 2012, de către Imagination Technologies, continuând să dezvolte arhitectura MIPS.About mips.com

Primul procesor MIPS R2000 pe 32-bit, a fost dezvoltat în 1984, elementele de bază fiind deja create în1981 la Universitatea Stanford. Acesta era un procesor underpipelined bazat pe arhitectura setului de instrucțiuni RISC și cu un sistem de codare fix. În 1988, a fost introdusă o versiune îmbunătățită, R2000A la 12,5 și 16,67 MHz din IC-urile R2000A și R2010A. A fost utilizat pe scară largă în sisteme înglobate, cum ar fi controlere de imprimantă. R2000 a fost urmat de R3000, utilizând un design general similar al sistemului, cu implementare mai rapidă a cipurilor.

Versiuni MIPS CPU Există mai multe versiuni de microprocesoare MIPS: MIPS I, II, III și IV, precum și versiuni de MIPS32/64. Versiunile MIPS V H1 Beast și H2 Captain au fost doar planificate. Primele arhitecturi MIPS I și MIPS II erau pe 32 de biți. Începând cu aprilie 2018, versiunea actuală este MIPS64 vers. 6 cu microprocesorul I7200. MIPS I7200 Multiprocessing System Datasheet s3-eu-west-1.amazonaws.comMIPS32 Architecture mips.com

MIPS I R2000 (1985): 8,3…16,7 MHz R2000A (1988): 12,5…16,7 MHz R3000 (1988): 20…33 MHz R3000A (1989): 25…40 MHz MIPS II R6000 MIPS III R4000 (1991): 100 MHz R4400 (1992): 150…250 MHz R4200 (1993): 80 MHz R4600 (1994): 133 MHz R4650 (1994): 133...180 MHz R4700 (1996): 100...200 MHz MIPS IV R8000 (1994): 75…90 MHz R10000 (1995): 150…270 MHz R5000 (1996): 150…200 MHz R12000 (1998): 300…400 MHz R12000A (2000): 180...400 MHz R7000 (2000): 250…600 MHz R14000 (2001): 500…600 MHz R14000A (2002): 130...600 MHz R16000 (2003): 700 MHz R16000A (2004): 800…1000 MHz MIPS32 4K (1999): 167 MHz 24K (2003): 400 MHz, 750 MHz, 1468 MHz 34K (2006): 500 MHz, 1454 MHz 74K (2007): 1110 MHz 1004K (2008): 1100 MHz M14K (2009): 200 MHz 1074K (2010): 1500 MHz MIPS64 5K (1999) 20K (2000) Warrior IP Cores : serie de microprocesoare produse de Imagination Technologies din octombrie 2013, bazate pe MIPS32 release 5 și MIPS64 release 6. Acestea au fost produse în trei clase de performanță și caracteristici: Warrior M-class (M5100, M5150 și seria microAptiv M6200 și M6250) Warrior I-class ( I6400, I7200, I16500, I16500-F, I17200) Warrior P-class (P5600, P6600).

Caracteristici Registre MIPS I are 32 de registre fiecare putând înmagazina un număr de 32 de biți (un cuvânt):

Registrul 0 ($ zero) este întotdeauna zero. Înregistrarea 1 ($ at) este rezervată asamblorului. Registrele 2 și 3 ($ v0 și $ v1) sunt utilizate pentru a stoca rezultatele funcțiilor. Registrele de la 4 la 7 ($ a0 la $ a3) sunt utilizate pentru a stoca primele 4 argumente ale subrutinei 3. Registrele de la 8 la 15 ($ t0 la t7) sunt registre temporare. Registrele de la 16 la 23 ($ s0 la s7) sunt registre salvate și utilizate ulterior. Registrele 24 și 25 ($ t8 și $ t9) sunt registre temporare. Registrele 26 și 27 ($ k0 și $ k1) sunt registre rezervate sistemului. Registrul 28 ($ gp) corespunde indicatorului global. Registrul 29 ($ sp) corespunde indicatorului stivei. Registrul 30 ($ fp) corespunde indicatorului cadru. Registrul 31 ($ ra) corespunde adresei de returnare.

Instrucțiuni Există trei tipuri de formate de instrucțiuni MIPS: R, I și J. Fiecare instrucțiune începe cu un cod opțional de 6 biți:

Formatul R (registru): corespunde instrucțiunilor aritmetice și logice având ca operanzi trei registre, un câmp de montare cu schimbare și un câmp funcțional. op: codul instrucțiunii (opcode), 6 biți rs: primul operand sursă, 5 biți rt: al doilea operand sursă, 5 biți rd: operandul destinație, 5 biți shamt: shift amount, 5 biți funct: funcția operației (selectează varianta specifică de operație pentru un anumit opcode), 6 biți. Formatul I (instrucțiune): dispune doar de patru câmpuri, două registre și o valoare imediată de 16 biți. Este folosit de două categorii de instrucțiuni: instrucțiunile load-store (de acces la memorie) și instrucțiunile de salt condiționat. op: opcode, 6 biți rs: primul operand sau registru bază, 5 biți rt: al doilea operand sau registru destinație, 5 biți adresă: adresă de memorie sau de salt, 16 biți. Formatul J (jump): corespunde instrucțiunilor de salt necondiționat (jump) și conține doar două câmpuri. op: opcode, 6 biți adresă: adresa care este adăugată la PC+4 pentru a forma adresa de salt necondiționat, 26 biți. Universitatea “TRANSILVANIA” Brașov. Facultatea de Electrotehnică. 2 - Arhitecturi RISC etc.unitbv.roMIPS Instruction Set Formats: R I J with Tables assemblylanguagetuts.com, Nauman Rehmat

Nivele Microprocesoarele MIPS prezintă 5 nivele tipice: Nivelul IF (instruction fetch): se calculează adresa instrucțiunii ce trebuie citită din cache-ul de instrucțiuni sau din memoria principală și se aduce instrucțiunea. Nivelul ID (instruction decode) - se decodifică instrucțiunea adusă și se citesc operanzii din setul de regiștri generali. În cazul instrucțiunilor de salt, pe parcursul acestei faze se calculează adresa de salt. Nivelul ALU (execute address) - se execută operația ALU asupra operanzilor selectați în cazul instrucțiunilor aritmetico-logice; se calculează adresa de acces la memoria de date pentru instrucțiunile LOAD / STORE. Nivelul MEM (memory acccess) - se accesează memoria cache de date sau memoria principală, numai pentru instrucțiunile LOAD/STORE. Acest nivel pe funcția de citire poate pune probleme datorate neconcordanței între rata de procesare și timpul de acces la memoria principală. Nivelul WB (write back) - se scrie rezultatul ALU sau data citită din memorie (în cazul unei instrucțiuni LOAD) în registrul destinație din setul de regiștri generali al microprocesorului.

nanoMIPS NanoMIPS este o arhitectură de seturi de instrucțiuni cu lungimi variabile concepută special pentru sisteme înglobate, care oferă performanțe ridicate într-o dimensiune a codului substanțial redusă. nanoMIPS este acceptat în versiunea 6 a arhitecturii MIPS. Este inclusă în MIPS64 vers. 6 și implementată în noua serie de procesoare multi-core multi-thread MIPS I7200. Suportul pentru compilator este inclus în instrumentele de dezvoltare bazate pe MIPS GNU.nanoMIPSTM Architecture mips.com

microMIPS Concepută pentru microcontrolere și alte sisteme înglobate cu amprentă mică, microMIPS este o arhitectură de set de instrucțiuni de compresie a codului care oferă performanță pe 32 de biți cu dimensiune de cod pe 16 biți pentru majoritatea instrucțiunilor. Păstrează 98% din performanța MIPS32, reducând în același timp dimensiunea codului cu până la 25%, ceea ce se traduce printr-o reducere semnificativă a costurilor cu siliciu. Datorită accesului redus la memorie și utilizarea eficientă a cache-ului de instrucțiuni, conduce de asemenea la reducerea consumului de energie al sistemului. microMIPS este inclusă în versiunile r3, r5 și r6 ale arhitecturii MIPS și sste implementată în microprocesoarele M14K, M5100 și M6200.microMIPSTM Architecture mips.com

Note

Vezi și Arhitectură ARM Arhitectura calculatoarelor Set de instrucțiuni

Legături externe

MIPS.com Imaginationtech.com MIPS Linux

Categorie:Arhitectură RISC Categorie:Arhitectura calculatoarelor Categorie:Microprocesoare