MIPS-Architektur

Prozessorarchitektur
(Weitergeleitet von R3000)

Die MIPS-Architektur (englisch Microprocessor without interlocked pipeline stages; deutsch etwa „Mikroprozessor ohne verschränkte Pipeline-Stufen“) ist eine Befehlssatzarchitektur im RISC-Format.

MIPS R4400-Prozessor von Toshiba
Prozessorkern (Die)-Foto eines MIPS R3000A auf einem Wafer
Prozessorkern (Die)-Foto eines MIPS R4000 auf einem Wafer

Geschichte

Bearbeiten

Die MIPS-Architektur wurde ab 1981 von John L. Hennessy und seinen Mitarbeitern an der Stanford-Universität entwickelt. Die Weiterentwicklung erfolgte 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 folgte 1991 und wurde mit dem R4000-Prozessor eingeführt. Viele RISC-Architekturen aus dieser Zeit beeinflussten sich gegenseitig, hierzu gehören Sun SPARC, DECs Alpha-Prozessor und Hewlett-Packards PA-RISC. Die MIPS-Architektur nutzt das Register/Register-Ausführungsmodell.[1]

Ab Februar 2013 wurde die MIPS-Architektur vom britischen Unternehmen Imagination Technologies weiterentwickelt und vermarktet. 2017 wurde die MIPS-Sparte, gemeinsam mit der PowerVR-Sparte, an das chinesische Investmentunternehmen Canyon Bridge Capital Partners verkauft[2] und gehörte danach Tallwood Venture Capital. Ab 2018 gehörte die MIPS-Architektur dem 2010 gegründeten auf KI spezialisierten Start-up-Unternehmen Wave Computing, das mit der Übernahme die Entwicklung von KI und Deep Learning durch die Kombination beider Technologien weiter voranbringen wollte.[3] Ende 2018 wurde dazu die MIPS Open Initiative ins Leben gerufen und angekündigt, die MIPS-Architektur Anfang 2019 unter eine Open-Source-Lizenz zu stellen.[4]

Aus einem Insolvenzverfahren im Jahr 2020 ging Wave Computing 2021 wieder unter dem Namen des vorher übernommenen Unternehmen MIPS hervor. Gleichzeitig stellte man die Entwicklung um auf die RISC-V-Architektur und trat der Non-Profit-Organisation RISC-V International bei. Inwieweit die eigenen MIPS-Architektur weiter unterstützt wird, ist nicht ganz klar.[5] Das Unternehmen unterstützt heute verschiedene Open-Source-Architekturen.[6]

Verwendung

Bearbeiten

MIPS-Prozessoren wurden von Silicon Graphics in Unix-Workstations (z. B. SGI Indigo) 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. Siemens bzw. SNI bestückten ihre Server der RM-Serie mit MIPS-Prozessoren der R4000-, R5000- und R10000-Familie, Sun verwendete Prozessoren der R5000-Familie in mehreren Servermodellen der Cobalt Qube- und RaQ-Reihe. Es gab Versuche, MIPS-Prozessoren mit Hilfe der ECL-Technik zu beschleunigen. Man verwendete dazu den Typ R6000, letztlich eine ECL-Variante des R3000. Dieser Prozessortyp wurde in Computern des Typs CDC 4680 der Firma Control Data Corporation eingesetzt.

In den frühen 1990er Jahren begann MIPS Computer Systems Inc., ihre Mikroprozessordesigns an Dritte zu lizenzieren. Ab Mitte der 1990er Jahre gelangte die MIPS-Architektur so in die Videospielkonsolen Nintendo 64 (1996), PlayStation (1994), PlayStation 2 (2000) und PlayStation Portable (2004).

CPUs mit MIPS-Architektur werden bis heute häufig bei der Konstruktion von z. B. Netzwerkroutern, Kraftfahrzeug-Navigationssystemen, Digitalreceivern, Set-Top-Boxen und Digitalen Spiegelreflexkameras eingebettet. Der Einsatz der MIPS-basierten Prozessorkerne innerhalb dieser Geräteklassen erfolgt im Rahmen von Ein-Chip-Systemen (SoCs). Imagination Technologies bietet den Herstellern hierfür sowohl fertige IP-Cores als auch eine Architekturlizenz an.

Für die Entwicklung der MIPS-kompatiblen Loongson-CPU erwarb das Institute of Computing Technology (ICT) der Chinesischen Akademie der Wissenschaften im Jahr 2009 eine Architekturlizenz.[7] Das Modell Loongson 3B bildet die Mikroprozessorbasis für den chinesischen Supercomputer Dawning 6000.

Funktion

Bearbeiten
 
IDT Orion R4600.

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 und Operanden holen, Befehl mit Operanden ausführen, Hauptspeicher lesen oder schreiben 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 (engl. „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 den Wert im nächsten möglichen Zyklus aus einem Register zu holen.

Die MIPS-Architektur verzichtet auf solche Sperren und verlangt vom Assemblersprachenprogrammierer oder Compiler entsprechende Maßnahmen wie Umsortierung oder das Einfügen von Nulloperationen (NOP). Dadurch kann die Architektur einfach gehalten werden. Es hat sich aber gezeigt, dass der Maschinencode durch die einzufügenden NOP-Befehle derart aufgebläht wurde, dass die Trefferquote im später eingeführten Befehlscache reduziert wurde. Das führte wiederum zu Performance-Verlusten, die durch den ursprünglichen Verzicht auf Interlocking eigentlich vermieden werden sollten. Es wurden daher in den nachfolgenden MIPS-Versionen Maßnahmen implementiert, die einen Programmablauf ohne Berücksichtigung der Pipeline-Stufen ermöglichen. Die Abkürzung „MIPS“ hat seitdem ihre eigentliche Bedeutung verloren.

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

Bearbeiten
MIPS-Mikroprozessor-Spezifikationen
Modell Frequenz
in MHz
Jahr Herstellungs-
prozess in µm
Transistoren
in Millionen
Die-Größe
in mm²
IO-Pins Leistung
in W
Spannung
in V
Dcache
in KiB
Icache
in KiB
Scache
in MiB
R2000 8,3…16,7 1985 2,0 0,11 80 ? ? ? 32 64
R2000A 12,5…16,7 1988 2,0 0,11 80 ? ? ? 32 64
R3000 20…33 1988 1,2 0,11 66,12 145 4 ? 64 64
R3000A 25…40 1989 1,2 0,11 66,12 145 4 ? 64 64
R4000 100 1991 1–0,8 1,35 213 179 15 5 08 08 1
R4300 93,75 1996 ? ? ? ? ? ? 0? 0? ?
R4400 150…250 1992 0,6 2,3 186 179 15 5 16 16 1
R4600 133 1994 0,64 2,2 77 179 4,6 5 16 16 0,5
R5000 150…200 1996 0,35 3,7 84 223 10 3,3 32 32 1
R7000 250…600 2000 0,13 ? ? 304 2–3 3,3(io)/1,2(int) 16 16 0,25
R8000 75…90 1994 0,5 2,6 299 591 30 3,3 16 16 1…8
R10000 150…270 1995 0,35 6,8 299 599 30 3,3 32 32 0,5…16
R12000 300…400 1998 0,18–0,25 6,9 204 600 20 2,3 32 32 0,5…16
R14000 500…600 2001 0,13 7,2 204 527 17 1,5 32 32 0,5…16
R16000 700 2002 0,11 ? ? ? 20 1,5 32 32 0,5…16
R16000A 800…1000 2004 0,11 ? ? ? ? 1,5 32 32 0,5…16

Emulatoren

Bearbeiten

  • QtSpim[8] – neueste Version von Spim, plattformübergreifend laufende Bedienoberfläche.
  • EduMIPS64
  • GXemul
  • MARS[9] (MIPS Assembler and Runtime Simulator) ist ein an der Missouri State University in Java geschriebener MIPS32-Emulator.
  • OVPsim
  • QEMU
  • Simics
  • SPIM
  • JPCSP ist ein auf der Programmiersprache Java aufgebauter MIPS R4000 (Allegrex)-Emulator, der primär PSP-Software emuliert.
  • Unicorn ist ein auf QEMU basierender Emulator der Schnittstellen für viele moderne Programmiersprachen (darunter C, Python und Java) anbietet.[10]

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • David A. Patterson, John L. Hennessy: Computer Organization & Design, The Hardware / Software Interface. 4. Auflage. Morgan Kaufmann Publishers, San Francisco 2008, ISBN 0-12-374493-8.
  • John L. Hennessy, David A. Patterson: Computer Architecture – A Quantitative Approach. 3. Auflage. Morgan Kaufmann Publishers, San Francisco 2003, ISBN 1-55860-724-2.
Bearbeiten
Commons: MIPS-Architektur – Sammlung von Bildern

Einzelnachweise

Bearbeiten
  1. MIPS architecture overview. Abgerufen am 27. Mai 2012.
  2. Benjamin Kraft: Imagination Technologies an chinesische Investorengruppe verkauft. In: Heise online. 24. September 2017. Abgerufen am 17. Juni 2018.
  3. Bernd Mewes: KI-Spezialist Wave Computing kauft MIPS. In: Heise online. 16. Juni 2018. Abgerufen am 17. Juni 2018.
  4. Alexandra Kleijn: Prozessor-Architektur: MIPS wird Open Source. In: Heise online. 18. Dezember 2018. Abgerufen am 18. Dezember 2018.; Zitat: „Die Architektur der MIPS-CPU soll Anfang 2019 unter eine Open-Source-Lizenz kommen und im Rahmen der Initiative MIPS Open weiterentwickelt werden.“.
  5. Jim Turley: Wait, What? MIPS Becomes RISC-V. Classic CPU Company Exits Bankruptcy, Throws in the Towel. EE-Journal, 8. März 2021, abgerufen am 27. Oktober 2024 (englisch).
  6. Company. MIPS, abgerufen am 27. Oktober 2024 (englisch).
  7. Andreas Stiller: Prozessorgeflüster – Von MIPS und MIPS In: c’t – magazin für computertechnik, 9. Oktober 2010.
  8. QtSpim
  9. courses.missouristate.edu MARS (MIPS Assembler and Runtime Simulator)
  10. Unicorn: Unicorn – The ultimate CPU emulator. Abgerufen am 12. September 2017.