Architettura MIPS: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
termine corretto |
Ortografia |
||
| (6 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1:
[[File:Toshiba TC86R4400MC-200 9636YJA top.jpg|thumb|Un microprocessore MIPS R4400 fabbricato da ''Toshiba'']]
In [[elettronica]] e [[informatica]] l{{'}}'''architettura MIPS''' ([[acronimo]] dell'[[lingua inglese|inglese]] '''''m'''icroprocessor without '''i'''nterlocked '''p'''ipeline '''s'''tages'') è un'[[architettura informatica]] per [[microprocessori]] [[RISC]] sviluppata dalla [[MIPS Computer Systems Inc.]] (oggi ''MIPS Technologies Inc''.). Il disegno dell'architettura e del [[set di istruzioni]] è semplice e lineare, spesso utilizzato come caso di studio nei corsi universitari indirizzati allo studio delle architetture dei processori; tale architettura ha influenzato le architetture di molti altri processori RISC tra i quali si segnala la famiglia [[DEC Alpha]]: è stata utilizzata ad es. nel campo dei computer [[Silicon Graphics|SGI]], ed ha trovato
== Storia ==
[[File:MIPS Architecture (Pipelined).svg|thumb|upright=1.8|Classica pipeline MIPS a 5 stadi]]
Nel [[1981]] il professore [[John L. Hennessy]] dell'[[Università di Stanford]] avviò un gruppo di ricerca sulle architetture RISC. Le ricerche del team di sviluppo portarono allo sviluppo della prima generazione di processori MIPS. Allora era noto che per incrementare le prestazioni dei processori si sarebbe potuto utilizzare la tecnica delle [[pipeline dati|pipeline]]. Questa tecnica sebbene fosse semplice da ideare non era semplice da implementare. Le pipeline per funzionare correttamente richiedono che le varie unità siano sincronizzate e che i dati delle varie istruzioni non si sovrappongano, quindi all'interno delle pipeline vengono posti dei blocchi ([[Interlock (informatica)|interblocco]]) che sorvegliano il completamento delle varie istruzioni e fanno procedere la pipeline solamente quando tutti gli stadi sono pronti. Questo meccanismo garantisce la corretta esecuzione del programma ma introduce spesso stalli nella CPU che deprimono le prestazioni.
Riga 10 ⟶ 12:
Nel 1984 Hennessy si convinse delle potenzialità commerciali del progetto e abbandonò temporaneamente l'università per fondare la MIPS Computer Systems. La società presentò l{{'}}'''R2000''' nel 1985 e il successore '''R3000''' nel 1988. Questi processori, basati su un'architettura a 32 bit, furono la base di molti sistemi commerciali, tra i maggiori utilizzatori delle CPU si distinse la [[Silicon Graphics]] che utilizzò le CPU nelle sue [[workstation]]. Il progetto commerciale delle CPU MIPS si differenziava dal progetto accademico per la presenza delle istruzioni di moltiplicazione e di divisione e di conseguenza per la presenza di unità di Interlock tra gli stadi che contraddiceva il nome stesso della [[microarchitettura]]. Nel 1991 MIPS presentò il suo primo processore a 64 bit, l{{'}}'''R4000'''. La MIPS in quel periodo affrontava una seria crisi finanziaria e quindi SGI decise di acquisire la società per assicurarsi la commercializzazione del processore a 64 bit dato che era fondamentale per le sue workstation. Come sussidiaria della SGI, la società cambiò nome in [[MIPS Technologies]].
Agli inizi degli anni '90 la MIPS iniziò a licenziare i suoi processori a fornitori terzi. Questa scelta era ragionevole considerando la semplicità e la potenza del progetto. I processori MIPS iniziarono a sostituire i processori CISC in molte applicazioni [[Sistema embedded|embedded]], va ricordato che il prezzo di un processore è legato al numero di transistor e al numero di piedini del processore, quindi i processori MIPS risultavano avvantaggiati per il loro basso uso di transistor. [[Sun Microsystems]] cercò di replicare il successo dei processori MIPS fornendo in licenza i suoi processori [[SPARC]]. Il progetto di Sun non ebbe successo e i processori SPARC non si diffusero nel settore embedded. I processori MIPS durante gli anni novanta acquisirono elevate quote di mercato nel segmento embedded e nel 1997 la società festeggiò il quarantottesimo milione di processori venduti, rendendo il MIPS il primo processore RISC a superare la famosa famiglia [[Motorola 68000]]. Nel 1998 la SGI si separò dalla MIPS Technologies e
[[File:IDT RV4700 die.jpg|thumb|IDT R4700]]
Nel 1999 MIPS annunciò la possibilità di acquistare la licenza per due processori base. Il processore '''MIPS32''' a 32 bit e il processore '''MIPS64''' a 64 bit. [[Nippon Electric Corporation|NEC]], [[Toshiba]] e [[SiByte]] (in seguito acquisita da [[Broadcom]]) ottennero la licenza del MIPS64 appena questa fu annunciata. [[Philips]], [[SiliconValley:LSI Logic|LSI Logic]] e IDT acquisirono la licenza in seguito. Successo dopo successo i processori MIPS divennero quelli più utilizzati per applicazioni ad alta potenza di calcolo ma che richiedevano dissipazioni di calorecontenute tipo [[Palmare|PDA]], [[Set-top box]] ecc. Un chiaro indicatore della bontà del progetto la si ha dalla scelta di [[Freescale Semiconductor|Freescale]] (società [[spin-off (mass media)|spin-off]] di [[Motorola]]) di utilizzare il core MIPS per i suoi processori invece del core [[PowerPC]] di sua proprietà.
La possibilità di utilizzare sotto licenza il core MIPS ha spinto molte persone a fondare === Famiglie MIPS ===
Riga 22 ⟶ 25:
L'R2000 poteva utilizzare la codifica [[big-endian]] o [[little-endian]]. Era dotato di 32 registri a 32 bit di uso generale, ma non utilizzava la tecnica della [[register window]] dato che era considerata un potenziale collo di bottiglia. La register window invece era utilizzata da processori come l'[[AMD 29000]] e il [[DEC Alpha]]. Inoltre il program counter non era direttamente accessibile. L'R2000 poteva gestire fino a quattro coprocessori, di cui uno era integrato all'interno del processore e veniva utilizzato per gestire le eccezioni e le trap mentre gli altri tre erano disponibili per altri usi. Uno poteva essere il processore opzionale '''R2010''', un coprocessore che implementava una [[Floating Point Unit|FPU]] con trentadue registri a 32bit, i quali potevano essere utilizzati come 16 registri a 64 bit per la doppia precisione.
[[File:CXD8606BQ 02.JPG|thumb|MIPS R3000A-compatible (R3051) 32bit a 33,8688 MHz della [[
L{{'}}'''R3000''' successore dell'R2000 venne presentato nel [[1988]], aggiunse una [[CPU cache|cache]] da 32 KB per istruzioni e dati (in seguito venne espansa a 64 KB) che supportava la coerenza delle cache per facilitare lo sviluppo di sistemi multiprocessore. Sebbene il supporto del multiprocesso fosse parzialmente fallato l'R3000 venne utilizzato da molti sistemi multiprocessore. L'R3000 includeva una [[Memory management unit|MMU]], una caratteristica comune per i processori di quell'epoca. L'R3000 fu il primo processore MIPS a vendere più di un milione di processori. Il processore R3000A venne utilizzato nella console [[PlayStation]] della [[Sony]] ed era una versione a 40 Megahertz. Come l'R2000 anche l'R3000 poteva essere affiancato da un coprocessore matematico, l{{'}}'''R3010'''. Pacemips produsse l{{'}}'''R3400''' e [[Integrated Device Technology|IDT]] produsse l{{'}}'''R3500''', che non era altro che un R3000 e R3010 in un solo chip. Il [[Toshiba]] '''R3900''' è virtualmente il primo [[System-on-a-chip|SoC]] per i primi [[palmare|palmari]] basati su [[Windows CE]].
Riga 31 ⟶ 34:
[[File:QED RM7000 diephoto.jpg|thumb|QED RM7000]]
[[Quantum Effect Devices]] (QED) era una compagnia nata dall'abbandono della MIPS di alcuni progettisti che sviluppò i processori '''R4600''', '''R4700''', '''R4650''' e '''R5000'''. I progettisti della QED erano rimasti contrariati dalla scelta della famiglia R4000 di sacrificare la cache per ottenere delle frequenze di funzionamento elevate. I progettisti invece enfatizzarono la presenza di una ampia cache ad accesso rapido (due cicli di clock per accedervi) e fecero un uso efficiente del silicio. L'R4600 e l'R4700 vennero utilizzati da SGI per le sue macchine a basso costo [[SGI Indy]]. Furono i primi processori di tipo MIPS ad essere utilizzati da [[Cisco Systems|Cisco]] per i suoi router. L'R4650 venne utilizzato per il set-top box WebTV. La FPU dell'R5000 era più efficiente della FPU dell'R4000, difatti gli SGI Indy basati su R5000 fornivano prestazioni notevolmente migliori nel settore grafico rispetto alle macchine SGI Indy basate su R4000. In seguito la QED presentò i processori '''RM7000''' e '''RM9000''' per applicazioni embedded come dispositivi di rete e stampanti laser. QED venne acquisita da [[PMC-Sierra]] nell'agosto del [[2000]].
[[File:R 10000.png|thumb|[[Microarchitettura]] del processore R10000]]
Nel [[1994]] venne presentato l{{'}}'''R8000''' il primo MIPS [[superscalare]]. Il processore era dotato di due ALU ed era in grado di eseguire due operazioni per ciclo di clock. Il progetto del processore venne diviso su sei integrati. Un integrato conteneva le unità di esecuzione per gli interi (con una cache da 16 KB per i dati e da 16KB per le istruzioni). Un secondo integrato conteneva l'unita FPU, due integrati contenevano una cache di secondo livello e un integrato arbitrava il bus della cache. L'ultimo integrato era un controller della cache ASIC. Il progetto era basato su due pipeline complete con unità di moltiplicazione e di somma a doppia precisione. Le pipeline venivano alimentate dalla cache di secondo livello da 4 MB. L'R8000 venne utilizzato dai server SGI Power Challenge inizialmente e dai server Power Indigo2 in seguito. Le ridotte prestazioni nel calcolo sugli interi e il suo elevato costo scoraggiò molti acquirenti sebbene le prestazioni nel calcolo in virgola mobile furono apprezzate dagli enti scientifici. L'R8000 rimase sul mercato per solo un anno quindi è un processore MIPS abbastanza raro.
Riga 93 ⟶ 98:
== Applicazioni ==
Molti produttori di [[workstation]] hanno utilizzato processori MIPS. Tra i vari segnaliamo la [[Silicon Graphics|SGI]], [[MIPS Technologies|MIPS Computer Systems Inc.]], [[Olivetti]], [[Siemens Nixdorf Informationssysteme|Siemens-Nixdorf]], [[Acer (azienda)|Acer]], [[Digital Equipment Corporation]], [[NEC Corporation|NEC]], e [[DeskStation]]. Molti [[sistema operativo|sistemi operativi]] sono stati portati per le architetture basate su processori MIPS. I più famosi sono l'[[IRIX]] prodotto da SGI, [[Microsoft]] [[Windows NT]] (
Tuttavia l'utilizzo dei processori MIPS all'interno di computer e workstation
La quasi totalità dei [[router]] per molti anni sono
=== Core ===
Riga 114 ⟶ 119:
La famiglia MIPS include anche l{{'}}'''R6000''', una implementazione [[Emitter-coupled logic|ECL]] dell'architettura MIPS prodotto da [[Bipolar Integrated Technology]]. L'R6000 introdusse il set di istruzioni <code>MIPS II</code>. Il [[Translation Lookaside Buffer|TLB]] e l'architettura della cache era diversa da quella degli altri membri della famiglia MIPS. R6000 non aveva le prestazioni che i progettisti speravano e dopo un breve utilizzo da parte di [[Control Data Corporation]] venne abbandonato. L{{'}}'''RM7000''' era una versione dell'R5000 con 256 KB di cache di secondo livello e un controller per una cache di terzo livello opzionale. Il suo mercato primario erano i dispositivi embedded e i dispositivi di rete, difatti venne utilizzato estesamente da Cisco System. Il nome '''R9000''' non è stato mai utilizzato.
In quel periodo (anno 2003 e seguenti) SGI decise di abbandonare la piattaforma MIPS a favore dei processori [[Intel]] [[Itanium]] e quindi fermò lo sviluppo dei processori successivi all'R10000. I tempi di passaggio alla piattaforma Itanium furono più lunghi del previsto e intanto le macchine basate su MIPS venivano migliorate. Nel 1999 comunque era chiaro che lo sviluppo dei processori di fascia alta era stato abbandonato troppo rapidamente e quindi vennero presentati i processori R14000 e R16000 che nonostante il nome non erano molto dissimili dall'R10000. SGI cercò di portare la potente FPU della serie R8000 in altri processori MIPS e di sviluppare una versione dual core, ma problemi finanziari bloccarono il progetto. Inoltre SGI decise di utilizzare la tecnologia [[QuickTransit]] per permettere alle macchine basate su Itanium di utilizzare i programmi compilati per MIPS e quindi pose la parola fine allo sviluppo dei processori MIPS per piattaforma IRIX.
Una versione semplificata della gestione della pipeline è la [[DLX (informatica)|pipeline DLX]], possibile grazie alla [[rinominazione dei registri|rinominazione dei registri esplicita]]<ref>{{cita web|titolo=Dynamic Scheduling Techniques|url=http://web.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/dynamSchedTech.html|accesso=24 gennaio 2016}}</ref>.
| |||