Arhitectura MIPS

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Un microprocesor MIPS R4400 fabricat de Toshiba

În electronica si stiinta calculatoarelor, arhitectura MIPS ( acronim din limba engleză m icroprocessor fără a i nterlocked Tages p ipeline s) este o arhitectură de calculator pentru RISC microprocesoare dezvoltate de MIPS Computer Systems Inc (acum MIPS Technologies Inc.). Proiectarea arhitecturii și a setului de instrucțiuni este simplă și directă, adesea utilizată ca studiu de caz în cursurile universitare care vizează studiul arhitecturilor procesorului; această arhitectură a influențat arhitecturile multor alte procesoare RISC, inclusiv familia DEC Alpha : este folosită de exemplu. în domeniul computerelor SGI și a găsit o răspândire pe scară largă în domeniul sistemelor încorporate , dispozitivelor Windows CE și routerelor Cisco și chiar și consolele Nintendo 64 , Sony PlayStation , PlayStation 2 și PlayStation Portable utilizează procesoare MIPS.

Istorie

Conductă clasică MIPS în 5 trepte

În 1981 , profesorul Universității Stanford John L. Hennessy a început un grup de cercetare privind arhitecturile RISC. Cercetările efectuate de echipa de dezvoltare au condus la dezvoltarea primei generații de procesoare MIPS. În acel moment, se știa că linia de conducte putea fi utilizată pentru a crește performanța procesorului. Deși această tehnică a fost simplă de conceput, nu a fost ușor de implementat. Pentru a funcționa corect, conductele necesită sincronizarea diferitelor unități și ca datele diferitelor instrucțiuni să nu se suprapună, prin urmare blocuri ( Interlock ) sunt plasate în interiorul conductelor care monitorizează finalizarea diferitelor instrucțiuni și fac ca conducta să continue doar când toate etapele sunt gata. Acest mecanism garantează executarea corectă a programului, dar de multe ori introduce blocuri în CPU care scad performanța.

Caracteristica distinctivă a proiectului MIPS este că toate instrucțiunile trebuiau finalizate de etapele conductei într-un singur ciclu de ceas, astfel încât să nu se introducă întârzieri și blocaje în conductă. Acest lucru a permis, de asemenea, eliminarea multor componente electronice legate de sincronizarea etapelor, simplificând proiectul. Această alegere a dus la simplificarea și accelerarea proiectului, dar a adus și dezavantaje foarte evidente, cum ar fi eliminarea instrucțiunilor utile, cum ar fi multiplicarea și divizarea. Unii observatori au subliniat că proiectul MIPS (și mai general filozofia RISC) impunea programatorului să înlocuiască multiplicările și diviziunile cu o serie de operații mai simple și că, prin urmare, îmbunătățirea performanței a fost eliminată sau redusă semnificativ. Acești observatori nu și-au dat seama că îmbunătățirea derivată din structura de conducte fără blocaj a compensat în mare măsură multiplicarea lentă și diviziunile.

În 1984, Hennessy a devenit convins de potențialul comercial al proiectului și a abandonat temporar universitatea pentru a înființa MIPS Computer Systems. Compania a introdus R2000 în 1985 și succesorul R3000 în 1988. Aceste procesoare, bazate pe o arhitectură pe 32 de biți, au stat la baza multor sisteme comerciale, printre utilizatorii majori de procesoare, s-a remarcat Silicon Graphics care utilizează procesoare. stații de lucru . Proiectarea comercială a procesoarelor MIPS a diferit de proiectarea academică pentru prezența instrucțiunilor de multiplicare și divizare și, în consecință, pentru prezența unităților de interblocare între etape care au contrazis chiar numele microarhitecturii . În 1991, MIPS a introdus primul său procesor pe 64 de biți, R4000 . MIPS se confrunta cu o criză financiară gravă în acel moment și, prin urmare, SGI a decis să achiziționeze compania pentru a asigura comercializarea procesorului pe 64 de biți, deoarece acesta era esențial pentru stațiile sale de lucru. În calitate de filială a SGI, compania și-a schimbat numele în MIPS Technologies .

La începutul anilor 1990, MIPS a început să licențieze procesoarele sale către furnizori terți. Această alegere a fost rezonabilă având în vedere simplitatea și puterea designului. Procesoarele MIPS au început să înlocuiască procesoarele CISC în multe aplicații încorporate , trebuie amintit că prețul unui procesor este legat de numărul de tranzistoare și de numărul de pini de procesor, astfel încât procesoarele MIPS au fost avantajoase pentru utilizarea lor redusă a tranzistoarelor. Sun Microsystems a încercat să reproducă succesul procesorelor MIPS prin acordarea de licențe pentru procesoarele SPARC . Proiectul Sun nu a avut succes, iar procesoarele SPARC nu s-au răspândit în industria încorporată. Procesoarele MIPS în anii 1990 au câștigat cote de piață ridicate pe segmentul încorporat, iar în 1997 compania a sărbătorit cele 48 de milioane de vânzări, făcând din MIPS primul procesor RISC care a depășit familia populară Motorola 68000 . În 1998, SGI s-a separat de MIPS Technologies și în prezent mai mult de jumătate din câștigurile companiei depind de licențele vândute, în timp ce veniturile rămase provin din dezvoltarea de procesoare pentru cumpărători externi care vor fi produse de furnizori externi.

IDT R4700

În 1999, MIPS a anunțat posibilitatea de a licenția două procesoare de bază. Procesorul MIPS32 de 32 de biți și procesor MIPS64 pe 64 de biți.NEC , Toshiba și SiByte (achiziționate ulterior de Broadcom ) au obținut licența MIPS64 imediat ce a fost anunțată. Philips , LSI Logic și IDT au achiziționat licența ulterior. Succes după succes, în prezent, procesoarele MIPS sunt printre cele mai utilizate procesoare pentru aplicații cu putere de calcul mare, dar care necesită o disipare redusă, cum ar fi PDA , Set-top box etc. Un indicator clar al bunătății proiectului vine din alegerea Freescale (o companie derivată a Motorola ) de a utiliza nucleul MIPS pentru procesoarele sale în locul nucleului PowerPC pe care îl deține.

Capacitatea de a licenția nucleul MIPS a determinat mulți oameni să înceapă companii care produc versiuni personalizate ale procesorului. Una dintre primele companii a fost Dispozitivele cu efect cuantic . Unii designeri MIPS care au proiectat procesorul R4300 au abandonat MIPS pentru a fonda compania SandCraft și a dezvolta R5432 pentru NEC, care a dezvoltat ulterior R7100 , unul dintre primele procesoare de aplicații încorporate capabile să execute instrucțiuni din comandă . Designerii primului StrongARM s-au împărțit în două grupuri și au fondat două companii care au dezvoltat procesoare bazate pe nuclee MIPS. Primul grup a fondat SiByte și a dezvoltat SB-1250 unul dintre primele procesoare de înaltă performanță sisteme pe chip (SOC) pe arhitectura MIPS. Al doilea grup a fondat Alchemy Semiconductor (achiziționat ulterior de AMD ), care a produs Au-1000 , un procesor SOC ) pentru aplicații cu putere redusă. Lexra a folosit un nucleu de tip MIPS și a adăugat extensii DSP pentru prelucrarea datelor audio și extensii multithreading pentru gestionarea rețelelor locale. MIPS a intentat două procese împotriva Lexra pentru încălcări ale proprietății sale intelectuale. Primul a fost rezolvat rapid atunci când Lexra a promis că nu va face publicitate procesorelor sale ca fiind compatibile cu MIPS. Al doilea proces a fost mult mai lung și a afectat afacerea ambelor companii; încheiat cu MIPS Technologies oferind Lextra o licență gratuită și o compensație financiară substanțială.

Familiile MIPS

Primul MIPS comercial a fost R2000, care a fost introdus în 1985 . Acest procesor în comparație cu versiunea dezvoltată la universitate a adăugat instrucțiuni de multiplicare și divizare care au fost tratate independent de procesor. Au fost adăugate noi instrucțiuni pentru a recupera rezultatele produse de înmulțiri și diviziuni. În mod ironic, aceste instrucțiuni blocau (foloseau interlock) și, prin urmare, contraziceau numele procesorului în sine, îmbunătățind în același timp densitatea codului.

R2000 ar putea utiliza codificare big-endian sau little-endian . A fost echipat cu 32 de registre de 32 de biți de uz general, dar nu a folosit tehnica ferestrei de înregistrare , deoarece a fost considerată un potențial blocaj. Fereastra de înregistrare, pe de altă parte, a fost utilizată de procesoare precum AMD 29000 și DEC Alpha . Mai mult, contorul de programe nu era accesibil direct. R2000 putea gestiona până la patru coprocesoare, dintre care unul era integrat în procesor și era folosit pentru a gestiona excepții și capcane, în timp ce celelalte trei erau disponibile pentru alte utilizări. Unul ar putea fi procesorul opțional R2010 , un coprocesor care implementează o FPU cu treizeci și doi de registre pe 32 de biți, care ar putea fi folosit ca 16 registre pe 64 de biți pentru o precizie dublă.

Compatibil cu MIPS R3000A (R3051) pe 32 de biți la 33,8688 MHz din PlayStation

Succesorul R3000 al R2000 a fost introdus în 1988 , a adăugat un cache de 32 KB pentru instrucțiuni și date (ulterior extins la 64 KB) care a susținut coerența cache-ului pentru a facilita dezvoltarea sistemelor multiprocesor. Deși suportul multiproces a fost parțial eșuat, R3000 a fost utilizat de multe sisteme multiprocesor. R3000 a inclus un MMU , o caracteristică comună pentru procesoarele din acea epocă. R3000 a fost primul procesor MIPS care a vândut peste un milion de procesoare. Procesorul R3000A a fost folosit în consola Sony PlayStation și a fost o versiune de 40 Megahertz. La fel ca R2000, R3000 ar putea fi alăturat și de un coprocesor matematic, R3010 . Pacemips-urile au produs R3400, iar IDT a produs R3500 , care nu era altceva decât un R3000 și R3010 într-un singur cip. Toshiba R3900 este practic primul SoC pentru primele dispozitive portabile bazate pe Windows CE .

R4000 a fost introdus în 1991 și a extins setul de instrucțiuni MIPS la 64 de biți. FPU a fost integrat în procesor pentru a crea un singur cip foarte rapid (a fost prezentat cu o frecvență de 100 MHz). Cu toate acestea, pentru a obține o frecvență ridicată, proiectanții au redus memoria cache la 8 KB și fiecare acces a necesitat încă 3 cicluri. Frecvența ridicată a fost realizată prin crearea unei conducte adânci (denumită super conductă de către companie). După prezentarea modelului R4000 au fost prezentate multe alte versiuni. Printre diferitele versiuni se numără R4400 prezentat în 1993. Procesorul a fost echipat cu 16 KB de cache, o arhitectură pe 64 de biți și un controler pentru un cache extern de nivel secundar de 1 megabyte.

După ce a devenit o divizie a SGI, MIPS a dezvoltat procesorul R4200 low-cost și mai târziu R4300 , o magistrală externă R4200 pe 32 de biți. Nintendo 64 a folosit procesorul VR4300 fabricat de NEC, care era o versiune low cost a MIPS R4300i [1]

QED RM7000

Dispozitivele cu efect cuantic (QED) a fost o companie născută din abandonul MIPS de către unii designeri care au dezvoltat procesoarele R4600 , R4700 , R4650 și R5000 . Designerii QED au fost dezamăgiți de alegerea familiei R4000 de a sacrifica cache-ul pentru frecvențe de operare ridicate. În schimb, designerii au subliniat prezența unui cache mare de acces rapid (două cicluri de ceas pentru a-l accesa) și au folosit în mod eficient siliciul. R4600 și R4700 au fost utilizate de SGI pentru mașinile sale SGI Indy cu cost redus. Au fost primele procesoare de tip MIPS utilizate de Cisco pentru routerele sale. R4650 a fost folosit pentru set-top box-ul WebTV. FPU R5000 a fost mai eficient decât FPU R4000, de fapt, mașinile SGI Indy bazate pe R5000 au oferit o performanță grafică semnificativ mai bună decât mașinile SGI Indy bazate pe R4000. QED introduse mai târziu procesoarele RM7000 și RM9000 pentru aplicații embedded , cum ar fi dispozitive de rețea și imprimante laser. QED a fost achiziționat de PMC-Sierra în august 2000 .

Microarhitecturii a procesorului R10000

În 1994 a fost introdus R8000 , primul MIPS suprascalar . Procesorul era echipat cu două ALU-uri și era capabil să efectueze două operații pe ciclu de ceas. Designul procesorului a fost împărțit pe șase jetoane. Unul integrat conținea unitățile de execuție pentru numerele întregi (cu o memorie cache de 16 KB pentru date și o memorie cache de 16 KB pentru instrucțiuni). Un al doilea IC conținea FPU, două IC-uri conțineau un cache de al doilea nivel și un IC arbitra magistrala cache. Ultimul integrat a fost un controler cache ASIC. Proiectul s-a bazat pe două conducte complete cu multiplicare de precizie dublă și unități de sumă. Conductele au fost alimentate din memoria cache de nivel 2 de 4 MB. R8000 a fost utilizat inițial de serverele SGI Power Challenge și de serverele Power Indigo2 după aceea. Performanța scăzută în calculul întreg și costul ridicat au descurajat mulți cumpărători, deși performanța în calculul cu virgulă mobilă a fost apreciată de organismele științifice. R8000 a fost pe piață doar un an, deci este un procesor MIPS destul de rar.

În 1995 a fost introdus R10000 . Procesorul se bazează pe un singur design integrat și a fost conceput pentru a fi mult mai rapid decât R8000. Acesta a fost echipat cu un cache primar de 32 KB pentru date și instrucțiuni. Procesorul a fost suprascalar și a fost gestionat din ordinea executării instrucțiunilor. Deși echipat cu o singură FPU și o singură magistrală către memorie, performanța ridicată în calculul întreg, costul redus și densitatea ridicată au făcut din R10000 alegerea preferată pentru majoritatea clienților. Proiectele ulterioare s-au bazat pe arhitectura modelului R10000. R12000 a fost o versiune miniaturizată a R10000 pentru a crește frecvența de funcționare. Procesorul R14000 a fost o versiune cu frecvență mai mare, cu suport suplimentar pentru memoria DDR SDRAM pentru memoria cache de al doilea nivel. În plus, procesorul a fost echipat cu o magistrală externă de 200 MHz pentru a crește performanța. Versiunea ulterioară denumită R16000 și R16000A avea o frecvență de funcționare mai mare, o memorie cache mai mare de primul nivel și o dimensiune mai mică datorită noii tehnologii de fabricație.

Specificații microprocesor MIPS
Șablon Frecvență [MHz] An Proces [µm] Tranzistoare [milioane] Dimensiunea matriței [mm²] IO Pin Putere [W] Voltaj Dcache [k] Icache [k] Scache [k]
R2000 8-16.7 1985 2.0 0,11 - - - - 32 64 nu este
R3000 20-40 1988 1.2 0,11 66.12 145 4 - 64 64 nu este
R4000 100 1991 0,8 1,35 213 179 15 5 8 8 1024
R4400 100-250 1992 0,6 2.3 186 179 15 5 16 16 1024
R4600 100-133 1994 0,64 2.2 77 179 4.6 5 16 16 512
R5000 150-200 1996 0,35 3.7 84 223 10 3.3 32 32 1024
R8000 75-90 1994 0,5 2.6 299 591 30 3.3 16 16 1024
R10000 150-250 1995 0,35 6.8 299 599 30 3.3 32 32 512
R12000 270-400 1998 0,18-0,25 6.9 204 600 20 4 32 32 1024
R14000 500-600 2001 0,13 7.2 204 527 17 - 32 32 2048
R16000 700-800 2002 0,11 - - - 20 - 64 64 4096

Notă: Specificațiile indicate sunt cele mai frecvente, dar există variații în special pentru cache-ul de al doilea nivel.

Descriere

Arhitecturile MIPS timpurii au fost construite pe 32 de biți (în general pe 32 de biți pentru registre și căi de date), în timp ce cele mai recente versiuni sunt pe 64 de biți. Există cinci revizuiri ale setului de instrucțiuni MIPS, numite MIPS I , MIPS II , MIPS III , MIPS IV și MIPS 32/64 . Cea mai recentă dintre acestea, MIPS 32/64 Release 2, definește un set de registre de control ca set de instrucțiuni. Multe extensii suplimentare sunt, de asemenea, disponibile, inclusiv MIPS-3D care este un set simplu de instrucțiuni dedicate în virgulă mobilă SIMD pentru aplicații 3D, MDMX , care este o instrucțiune SIMD întreagă foarte costisitoare, utilizând virgulă mobilă, înregistrează un 64-bit, MIPS16 care adaugă compresie instrucțiunilor care creează un program prin reducerea spațiului ocupat (o tehnologie similară cu tehnologia Thumb implementată de arhitectura ARM ) și cel mai recent MIPS MT , o nouă adăugare multithreading pentru sisteme similare HyperThreading implementate de Intel în Pentium 4 procesoare .

Aplicații

Mulți producători de stații de lucru au folosit procesoare MIPS. Printre altele menționăm SGI , MIPS Computer Systems Inc. , Olivetti , Siemens-Nixdorf , Acer , Digital Equipment Corporation , NEC și DeskStation . Multe sisteme de operare au fost portate la arhitecturi bazate pe procesor MIPS. Cele mai faimoase sunt IRIX produse de SGI, Microsoft Windows NT (deși suportul pentru procesoarele MIPS s-a încheiat cu Windows NT 4.0), Windows CE , Linux , BSD , Unix System V , SINIX , MIPS Computer Systems RISC / OS și altele.

Cu toate acestea, utilizarea procesorelor MIPS în computere și stații de lucru este în continuă declin. SGI a anunțat retragerea mașinilor bazate pe arhitectură MIPS, preferând să se concentreze pe mașinile bazate pe procesorul Intel IA-64 . Cu toate acestea, utilizarea procesorelor MIPS în mașinile încorporate este încă obișnuită. Procesoarele sunt de putere redusă și oferă performanțe bune, astfel încât sunt deseori alese pentru mașini portabile. În plus, arhitectura MIPS este larg răspândită, astfel încât există multe instrumente de dezvoltare și programatori experți ai platformei.

Aproape toate routerele se bazează acum pe MIPS pe sistemul de operare Linux , adesea în versiunea OpenWrt sau DD-WRT , cu excepția ARM-urilor rare, cum ar fi Alice Gate Enterprise care montează un ARM940. Sonda spațială New Horizons , dezvoltată de NASA pentru explorarea lui Pluto și a satelitului său Charon lansată în 2006, este echipată cu un procesor MIPS R3000.

Miezul

În ultimii ani, multe nuclee MIPS au fost comercializate cu tehnologie de bază IP pentru a permite proiectarea sistemelor integrate personalizate. 32 și 64 de biți miezuri au fost introduse pe piață sub numele de 4k și 5K și au fost vândute sub licență, așa cum a fost făcut ani mai devreme pentru MIPS32 și MIPS64 proiecte. Miezurile pot fi conectate la alte unități, cum ar fi unitățile FPU, sistemele SIMD și alte dispozitive de intrare / ieșire etc.

Miezurile MIPS au fost un succes comercial și sunt utilizate de multe industrii pentru a-și face produsele. De exemplu, Cisco și Linksys folosesc nuclee pentru routerele și modemurile lor. Miezurile se află în multe imprimante laser, cititoare de carduri inteligente, set top box-uri, roboți, laptopuri, console precum Sony PlayStation 2 și PlayStation Portable . Procesoarele ARM tind să fie utilizate pe dispozitive precum telefoanele și PDA-urile, care sunt principalii concurenți ai procesoarelor MIPS din sectorul încorporat. În acest sector, Microchip Technology , unul dintre cei mai mari producători de microcontrolere din lume, a folosit nucleul MIPS 4K pentru modelul său pilot PIC32.

Programare și emulatoare

Există un emulator gratuit de procesor R2000 / R3000 numit SPIM, care funcționează pe multe sisteme de operare (Unix, Linux, Mac OS X, MS Windows 95/98 / NT / 2000 / XP și MS DOS), care oferă un mediu bun pentru învățare. și să se obișnuiască cu programarea mașinilor RISC [2] .

GXemul, pe de altă parte, este un emulator foarte puternic (cunoscut anterior ca proiect mips64emul) care nu numai că emulează procesoare (de la R4000 la R10000), dar poate emula mașini complete. De exemplu, puteți utiliza GXemul pentru a simula funcționarea unei mașini DECstation cu MIPS R4400 sau o mașină SGI O2 cu MIPS R10000 și o serie de periferice, cum ar fi controlere SCSI , plăci grafice etc.

Qemu este un emulator open source și multiplatform bine cunoscut. Deși este utilizat în principal pentru a emula un procesor x86, vă permite, de asemenea, să emulați o platformă virtuală bazată pe MIPS, simulând un procesor MIPS32 4Kc. În cele din urmă, MARS este un emulator și un IDE foarte puternic, scris în Java și dezvoltat de un grup al Universității de Stat din Missouri, cu diverse instrumente și o fereastră de ajutor foarte detaliată.

Alte modele și evoluții viitoare

Familia MIPS include și R6000 , o implementare ECL a arhitecturii MIPS fabricată de Bipolar Integrated Technology . R6000 a introdus setul de instrucțiuni MIPS II . Arhitectura TLB și cache a fost diferită de cea a celorlalți membri ai familiei MIPS. R6000 nu a avut performanța la care sperau designerii și după o utilizare scurtă de către Control Data Corporation a fost abandonat. RM7000 a fost o versiune a R5000 cu 256 KB de cache de nivel secund și un controler pentru un cache de nivel 3 opțional. Piața sa principală a fost dispozitivele încorporate și dispozitivele de rețea, de fapt a fost folosită pe scară largă de Cisco System. Numele R9000 nu a fost folosit niciodată.

În acel moment, SGI a decis să abandoneze platforma MIPS în favoarea procesoarelor Intel Itanium și, prin urmare, a oprit dezvoltarea procesorilor după R10000. Timpii de livrare către platforma Itanium au fost mai mari decât era de așteptat, în timp ce mașinile bazate pe MIPS erau îmbunătățite. Cu toate acestea, în 1999, a fost clar că dezvoltarea procesoarelor high-end a fost abandonată prea repede și, prin urmare, au fost introduse procesoarele R14000 și R16000 care, în ciuda numelui, nu erau foarte diferite de R10000. SGI a încercat să aducă puternica serie R8000 FPU la alte procesoare MIPS și să dezvolte o versiune dual core, dar problemele financiare au blocat proiectul. Mai mult, SGI a decis să utilizeze tehnologia QuickTransit pentru a permite mașinilor bazate pe Itanium să utilizeze programe compilate pentru MIPS și, prin urmare, să pună capăt dezvoltării procesoarelor MIPS pentru platforma IRIX.

O versiune simplificată a gestionării conductelor este conducta DLX , făcută posibilă prin redenumirea explicită a registrului [3] .

Notă

Bibliografie

  • ( EN ) Patterson și Hennessy, Organizarea și proiectarea computerelor. Interfața hardware / software . Morgan Kaufmann Publishers. ISBN 1-55860-604-1
  • (EN) Dominic Sweetman, vezi MIPS Run. Morgan Kaufmann Publishers. ISBN 1-55860-410-3

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN ( EN ) sh99000179
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT