MIPS: Unterschied zwischen den Versionen

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(11 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(223, 223, 223); padding: 0em 1em 1em; background-color: rgb(0, 0, 53);">
<div style="margin: 10px 10px 0pt 0pt; border: 1px solid rgb(51, 51, 51); padding: 0em 1em 1em; background-color: rgb(27, 28, 45);"><br><center>[[Image:ZD-Logo.png]]</center> <center><big><span style="color: rgb(181, 181, 181);">'''''Das Board mit Freiheiten'''''</span></big></center>  
<br> <font color="silver"></font>
<font color="white"></font>  
<center><font color="silver">[[Image:ZD-Logo.png]]</font></center>  
 
<font color="silver"><font color="silver"></font></font>
<center><font color="silver"><font color="silver"><big>'''''Das Board mit Freiheiten'''''</big></font></font></center>  
----
----
<div style="margin: 10px 10px 0pt 0pt; border: 10px solid rgb(0, 0, 0); padding: 0em 1em 1em; background-color: rgb(48, 49, 64);">
<font color="silver"><font color="silver"><font color="white"></font></font></font>


<font color="white">[[Image:600px-Toshiba TC86R4400MC-200 9636YJA top.jpg|thumb|right|85x85px]] Microprocessor without interlocked pipeline stages, eine spezielle Mikroprozessor-Architektur</font>  
<br>
<div style="margin: 0px 20px 15pt 15pt; padding: 0em 1em 1em; background-color: rgb(48, 49, 64); border: 1px solid rgb(0, 0, 0);">
<br>  


== <font color="white"><font color="#4169e1">MIPS-Architektur</font></font>  ==
[[Image:600px-Toshiba TC86R4400MC-200 9636YJA top.jpg|thumb|right|85x85px]] Microprocessor without interlocked pipeline stages, eine spezielle Mikroprozessor-Architektur


<font color="white">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.</font>
== MIPS-Architektur ==


<font color="white">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.</font>
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.


<font color="white"><br></font>
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.


== <font color="white"><font color="#4169e1">Verwendung</font></font>  ==


<font color="white">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.</font>


<font color="white">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.</font>
== Verwendung  ==


<font color="white">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.</font>
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.


== <font color="white"><font color="#4169e1">Funktion</font></font>  ==
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.


<font color="white">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.</font>
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.  


<font color="white">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.</font>
== Funktion  ==


<font color="white">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. </font>
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.


== <font color="#4169e1">MIPS-Prozessoren</font>  ==
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.


{| class="wikitable"
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.
|+ <font color="#4169e1">MIPS Mikroprocessor Spezifikationen</font>
 
|- class="hintergrundfarbe6" style="vertical-align: top;"
== MIPS-Prozessoren  ==
! Model
 
{| class="wikitable sortable"
|- style="background:#000040; color:white"
! Modell
! Frequenz in MHz  
! Frequenz in MHz  
! Jahr  
! Jahr  
Zeile 51: Zeile 50:
! Icache in k  
! Icache in k  
! Scache in k
! Scache in k
|-
|- style="background:#000040; color:white"
| R2000  
| R2000  
| 16,7  
| 16,7  
Zeile 64: Zeile 63:
| 64  
| 64  
| none
| none
|-
|- style="background:#000040; color:white"
| R3000  
| R3000  
| 25  
| 25  
Zeile 77: Zeile 76:
| 64  
| 64  
| none
| none
|-
|- style="background:#000040; color:white"
| R4000  
| R4000  
| 100  
| 100  
Zeile 90: Zeile 89:
| 8  
| 8  
| 1024
| 1024
|-
|- style="background:#000040; color:white"
| R4300  
| R4300  
| 93,75  
| 93,75  
Zeile 103: Zeile 102:
| —  
| —  
| —
| —
|-
|- style="background:#000040; color:white"
| R4400  
| R4400  
| 150…250  
| 150…250  
Zeile 116: Zeile 115:
| 16  
| 16  
| 1024
| 1024
|-
|- style="background:#000040; color:white"
| R4600  
| R4600  
| 133  
| 133  
Zeile 129: Zeile 128:
| 16  
| 16  
| 512
| 512
|-
|- style="background:#000040; color:white"
| R5000  
| R5000  
| 150…200  
| 150…200  
Zeile 142: Zeile 141:
| 32  
| 32  
| 1024
| 1024
|-
|- style="background:#000040; color:white"
| R7000  
| R7000  
| 250…600  
| 250…600  
Zeile 155: Zeile 154:
| 16  
| 16  
| 256
| 256
|-
|- style="background:#000040; color:white"
| R8000  
| R8000  
| 75…90  
| 75…90  
Zeile 168: Zeile 167:
| 16  
| 16  
| 1024…8192
| 1024…8192
|-
|- style="background:#000040; color:white"
| R10000  
| R10000  
| 150…270  
| 150…270  
Zeile 181: Zeile 180:
| 32  
| 32  
| 512…4096
| 512…4096
|-
|- style="background:#000040; color:white"
| R12000  
| R12000  
| 300…400  
| 300…400  
Zeile 194: Zeile 193:
| 32  
| 32  
| 2048…8192
| 2048…8192
|-
|- style="background:#000040; color:white"
| R14000  
| R14000  
| 500…600  
| 500…600  
Zeile 207: Zeile 206:
| 32  
| 32  
| 2048
| 2048
|-
|- style="background:#000040; color:white"
| R16000  
| R16000  
| 700  
| 700  
Zeile 220: Zeile 219:
| 64  
| 64  
| 4096
| 4096
|-
|- style="background:#000040; color:white"
| R16000A  
| R16000A  
| 800…1000  
| 800…1000  
Zeile 235: Zeile 234:
|}
|}


== <font color="#4169e1">Emulatoren</font>  ==
Bei Lade- und Speichervorgängen in Registern und Speichern werden die Bytes in unterschiedlicher Reihenfolge eingelesen. Diese Byte-Reihenfolge heißt im Englischen Endianness. Beim Endianness unterscheidet man zwischen dem Little-Endian-Format und dem Big-Endian-Format.
Das Big-Endian-Format ist ein Datenformat für die Übertragung oder Speicherung binärer Daten, in denen das höherwertige Byte oder Bit (Most Significant Byte, MSB) an erster Stelle kommt. Ein Big-Endian-System speichert höherwertige Bytes auf den niedrigsten Adressen. Mainframe-Prozessoren, einige RISC-Architekturen und Minicomputer verwenden das Big-Endian-System. In TCP/IP-Netzwerken erfolgt die Byte-Anordnung ebenfalls in Big Endian. Gegensatz: Little Endian.
Nach dem Big-Endian-Verfahren arbeiten u.a. der MC68000 von Motorola, SPARC CPUs, IBM PowerPC.
 
== Siehe auch ==
 
* [[mipsel]]
* [[Emulatoren]]


*[http://www.linux-mips.org/wiki/Emulators |Emulatoren]


*[[Hauptseite|<span style="color:#87ceeb;">Zurück zu Hauptseite</span>]]


[[Category:Sitemap]]
[[Category:Sitemap]]
[[Category:Hardware]]

Aktuelle Version vom 9. Oktober 2011, 16:32 Uhr


Das Board mit Freiheiten




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

Modell 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

Bei Lade- und Speichervorgängen in Registern und Speichern werden die Bytes in unterschiedlicher Reihenfolge eingelesen. Diese Byte-Reihenfolge heißt im Englischen Endianness. Beim Endianness unterscheidet man zwischen dem Little-Endian-Format und dem Big-Endian-Format. Das Big-Endian-Format ist ein Datenformat für die Übertragung oder Speicherung binärer Daten, in denen das höherwertige Byte oder Bit (Most Significant Byte, MSB) an erster Stelle kommt. Ein Big-Endian-System speichert höherwertige Bytes auf den niedrigsten Adressen. Mainframe-Prozessoren, einige RISC-Architekturen und Minicomputer verwenden das Big-Endian-System. In TCP/IP-Netzwerken erfolgt die Byte-Anordnung ebenfalls in Big Endian. Gegensatz: Little Endian. Nach dem Big-Endian-Verfahren arbeiten u.a. der MC68000 von Motorola, SPARC CPUs, IBM PowerPC.

Siehe auch