MIPS: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 16: | Zeile 16: | ||
Es gab Versuche, MIPS-Prozessoren mit Hilfe der ECL-Technik zu beschleunigen. Man verwendete dazu den Typ Mips R6000, letztlich eine ECL-Variante des Mips R3000. Dieser Prozessortyp wurde in Computern des Typs CDC 4680 der Firma Control Data Corporation eingesetzt. | Es gab Versuche, MIPS-Prozessoren mit Hilfe der ECL-Technik zu beschleunigen. Man verwendete dazu den Typ Mips R6000, letztlich eine ECL-Variante des Mips R3000. Dieser Prozessortyp wurde in Computern des Typs CDC 4680 der Firma Control Data Corporation eingesetzt. | ||
== Funktion == | |||
Ein Befehl in diesen Prozessoren wird in mehreren Stufen in einer Pipeline abgearbeitet, so dass mehrere Befehle in unterschiedlichen Bearbeitungsschritten (etwa Befehl holen, Befehl dekodieren, Operanden holen, Befehl mit Operanden ausführen und das Ergebnis rückschreiben) gleichzeitig im Prozessor sein können. Falls ein nachfolgender Befehl auf das Ergebnis eines vorangehenden angewiesen ist, muss der nachfolgende Befehl eventuell angehalten werden, bis das Ergebnis zur Verfügung steht. Dies wird normalerweise durch Sperren (Locks/Stalls) erreicht. Eine andere Möglichkeit der Verarbeitung solcher Datenhürden ist das sogenannte „Forwarding“, bei dem die für den folgenden Befehl benötigten Rechenergebnisse direkt nach Berechnung zum nächsten Befehl geleitet werden, statt das Ende des aktuellen Befehlszyklus abzuwarten. | |||
Die MIPS-Architektur verzichtet auf solche Sperren und verlangt vom Assemblersprachenprogrammierer oder Compiler entsprechende Maßnahmen wie Umsortierung oder das Einfügen von NOP (No Operation)-Befehlen. Dadurch kann die Architektur einfach gehalten werden. | |||
Ein weiterer Mechanismus, der zur Beschleunigung der MIPS-Architektur dient, ist das sogenannte Superpipelining. Im Gegensatz zu räumlich parallelen Architekturen (z. B.: VLIW-Prozessoren) wird hier eine zeitliche Parallelität der Befehlsabarbeitung durch Unterteilung der Befehlspipeline in mehr Stufen erreicht. So entsteht eine feinere Unterteilung des Fließbandes. Die Stufen der Pipeline haben auf diese Weise eine kürzere Durchlaufzeit, und daher kann die Taktrate erhöht werden. Superpipelining wurde erstmals in den MIPS-R4000-Prozessoren implementiert. | |||
== MIPS-Prozessoren == | |||
{| class="wikitable" | |||
|+ MIPS Mikroprocessor Spezifikationen | |||
|- class="hintergrundfarbe6" style="vertical-align: top;" | |||
!Model | |||
!Frequenz in MHz | |||
!Jahr!!Herstellungsprozess in µm | |||
!Transistoren in Millionen | |||
!Die-Größe in mm² | |||
!IO-Pins | |||
!Leistung in W | |||
!Spannung in V | |||
!Dcache in k | |||
!Icache in k | |||
!Scache in k | |||
|- | |||
||R2000||16,7||1985||2,0||0,11||—||—||—||—||32||64||none | |||
|- | |||
||R3000||25||1988||1,2||0,11||66,12||145||4||—||64||64||none | |||
|- | |||
||R4000||100||1991||0,8||1,35||213||179||15||5||8||8||1024 | |||
|- | |||
||R4300||93,75||1996||—||—||—||—||—||—||—||—||— | |||
|- | |||
||R4400||150…250||1992||0,6||2,3||186||179||15||5||16||16||1024 | |||
|- | |||
||R4600||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 | |||
|- | |||
||R7000||250…600||2000||0,13||—||—||304||2-3||3,3(io)/1,2(int)||16||16||256 | |||
|- | |||
||R8000||75…90||1994||0,5||2,6||299||591||30||3,3||16||16||1024…8192 | |||
|- | |||
||R10000||150…270||1995||0,35||6,8||299||599||30||3,3||32||32||512…4096 | |||
|- | |||
||R12000||300…400||1998||0,18-0,25||6,9||204||600||20||4||32||32||2048…8192 | |||
|- | |||
||R14000||500…600||2001||0,13||7,2||204||527||17||—||32||32||2048 | |||
|- | |||
||R16000||700||2002||0,11||—||—||—||20||—||64||64||4096 | |||
|- | |||
||R16000A||800…1000||2004||0,11||—||—||—||—||—||64||64||4096…16384 | |||
|} |
Version vom 24. April 2010, 07:07 Uhr

Microprocessor without interlocked pipeline stages, eine spezielle Mikroprozessor-Architektur
MIPS-Architektur
Die MIPS-Architektur (engl. Microprocessor without interlocked pipeline stages; auf Deutsch etwa „Mikroprozessor ohne Pipeline-Sperren“) ist eine RISC-Prozessorarchitektur, die ab 1981 von John Hennessy und seinen Mitarbeitern an der Stanford-Universität entwickelt wurde. Die Weiterentwicklung erfolgt ab 1984 bei der neugegründeten Firma MIPS Computer Systems Inc., heute MIPS Technologies.
MIPS war ursprünglich eine 32-Bit-Architektur, die 64-Bit-Erweiterung erfolgte 1991 und wurde mit dem R4000 eingeführt. Viele RISC-Architekturen aus dieser Zeit beeinflussten sich gegenseitig, hierzu gehören Sun SPARC, DECs Alpha-Prozessor oder Hewlett-Packards PA-RISC.
Verwendung
MIPS-Prozessoren wurden von Silicon Graphics in Unix-Workstations (z. B.: SGI Indigo2) und Unix-Servern (z. B.: SGI Origin2000) eingesetzt. Früher boten auch andere Workstation-Hersteller wie z. B. die Digital Equipment Corporation (DEC) Maschinen mit MIPS-Prozessoren an, so z. B. die DECstation-Familie (2100, 3100, 5000) und die DECsystem unter dem Betriebssystem Ultrix. Beispielsweise bestückten Siemens bzw. SNI ihre Server der RM-Serie mit MIPS-Prozessoren der R4000-, R5000- und R10000-Familie.
MIPS-Prozessoren werden auch häufig in eingebetteten Systemen eingesetzt. Dazu zählen z. B. Cisco-Router, Suns Cobalt-Server bis RaQ/Qube2, BMW-Navigationssysteme, die Fritz!Box, Satellitenreceiver, Dreambox, Konica Minolta DSLRs und Sony- und Nintendo-Spielkonsolen.
Es gab Versuche, MIPS-Prozessoren mit Hilfe der ECL-Technik zu beschleunigen. Man verwendete dazu den Typ Mips R6000, letztlich eine ECL-Variante des Mips R3000. Dieser Prozessortyp wurde in Computern des Typs CDC 4680 der Firma Control Data Corporation eingesetzt.
Funktion
Ein Befehl in diesen Prozessoren wird in mehreren Stufen in einer Pipeline abgearbeitet, so dass mehrere Befehle in unterschiedlichen Bearbeitungsschritten (etwa Befehl holen, Befehl dekodieren, Operanden holen, Befehl mit Operanden ausführen und das Ergebnis rückschreiben) gleichzeitig im Prozessor sein können. Falls ein nachfolgender Befehl auf das Ergebnis eines vorangehenden angewiesen ist, muss der nachfolgende Befehl eventuell angehalten werden, bis das Ergebnis zur Verfügung steht. Dies wird normalerweise durch Sperren (Locks/Stalls) erreicht. Eine andere Möglichkeit der Verarbeitung solcher Datenhürden ist das sogenannte „Forwarding“, bei dem die für den folgenden Befehl benötigten Rechenergebnisse direkt nach Berechnung zum nächsten Befehl geleitet werden, statt das Ende des aktuellen Befehlszyklus abzuwarten.
Die MIPS-Architektur verzichtet auf solche Sperren und verlangt vom Assemblersprachenprogrammierer oder Compiler entsprechende Maßnahmen wie Umsortierung oder das Einfügen von NOP (No Operation)-Befehlen. Dadurch kann die Architektur einfach gehalten werden.
Ein weiterer Mechanismus, der zur Beschleunigung der MIPS-Architektur dient, ist das sogenannte Superpipelining. Im Gegensatz zu räumlich parallelen Architekturen (z. B.: VLIW-Prozessoren) wird hier eine zeitliche Parallelität der Befehlsabarbeitung durch Unterteilung der Befehlspipeline in mehr Stufen erreicht. So entsteht eine feinere Unterteilung des Fließbandes. Die Stufen der Pipeline haben auf diese Weise eine kürzere Durchlaufzeit, und daher kann die Taktrate erhöht werden. Superpipelining wurde erstmals in den MIPS-R4000-Prozessoren implementiert.
MIPS-Prozessoren
Model | Frequenz in MHz | Jahr | Herstellungsprozess in µm | Transistoren in Millionen | Die-Größe in mm² | IO-Pins | Leistung in W | Spannung in V | Dcache in k | Icache in k | Scache in k |
---|---|---|---|---|---|---|---|---|---|---|---|
R2000 | 16,7 | 1985 | 2,0 | 0,11 | — | — | — | — | 32 | 64 | none |
R3000 | 25 | 1988 | 1,2 | 0,11 | 66,12 | 145 | 4 | — | 64 | 64 | none |
R4000 | 100 | 1991 | 0,8 | 1,35 | 213 | 179 | 15 | 5 | 8 | 8 | 1024 |
R4300 | 93,75 | 1996 | — | — | — | — | — | — | — | — | — |
R4400 | 150…250 | 1992 | 0,6 | 2,3 | 186 | 179 | 15 | 5 | 16 | 16 | 1024 |
R4600 | 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 |
R7000 | 250…600 | 2000 | 0,13 | — | — | 304 | 2-3 | 3,3(io)/1,2(int) | 16 | 16 | 256 |
R8000 | 75…90 | 1994 | 0,5 | 2,6 | 299 | 591 | 30 | 3,3 | 16 | 16 | 1024…8192 |
R10000 | 150…270 | 1995 | 0,35 | 6,8 | 299 | 599 | 30 | 3,3 | 32 | 32 | 512…4096 |
R12000 | 300…400 | 1998 | 0,18-0,25 | 6,9 | 204 | 600 | 20 | 4 | 32 | 32 | 2048…8192 |
R14000 | 500…600 | 2001 | 0,13 | 7,2 | 204 | 527 | 17 | — | 32 | 32 | 2048 |
R16000 | 700 | 2002 | 0,11 | — | — | — | 20 | — | 64 | 64 | 4096 |
R16000A | 800…1000 | 2004 | 0,11 | — | — | — | — | — | 64 | 64 | 4096…16384 |