MIPS R3000

Die erste “Massenmarkt CPU” von MIPS… und damit auch die erste in größeren Stückzahlen verkaufte RISC CPU.

Hallo ihr silizium Juenger!

Die Welt aus der ich komme faengt mit U an. U wie Unix. In dieser Welt zaehlt nichts mehr als Performance, Geschwindigkeit, Speed (und nichts weniger als Geld). Gerade dieser Welt hat es der Rest der Computer zu verdanken,dass es RISC CPUs gibt. Eine Zeitlang vergessen sind sie jetzt wieder voll da…sehr voll! Ein Unix-Rechner,der etwas auf sich haelt, und nicht von den anderen Rechnern per Ethernet ausgelacht werden will, hat einen RISC Proz. in sich (oder natuerlich einen MOTOROLA 🙂 ! ). Einer der am weitesten verbreiteten RISC Prozessoren ist der LR3000 (Oft auch als MIPS 3000 oder R3000 bezeichnet). Der R3000 ist so ziehmlich der modernste RISCer auf dem Markt. Ein Rechner mit diesem “Herz” braucht meisst weniger als ein DIN A4 Blatt fuer sein Motherboard. Das Geheimniss seiner Geschwindigkeit (42300 Dhrystones,25Mhz) liegt in seiner Architektur. Der R3000 benutzt drei Coprozessoren. Der erste (CP0 genannt) befindet sich auf dem Chip selbst und unterstuetzt die adressierung des sog. virtuellen Speichers und die Ausnahmenverarbeitung (aeh…zu deutsch: Exception handling) des R3000. Fuer die Uebersetzung einer virtuellen Adresse in eine entsprechende physikalische verwendet der CP0 eine TLB (Translation Lookaside Buffer) der 64 Eintraege speichert. Als weiterer Coproz. tummelt sich der R3010,seines Zeichens FPU, auf dem Board (der ist uebrigens OBLIGATORISCH…nix leerer Sockel).Der vierte Coproz. heisst R3020 und ist eigentl. nur ein Schreibpuffer..aber eben ein sehr schneller (Dieser Coproz. ist NICHT obligatorisch..aber gut). Ueberaus trickreich arbeiten die Coprozessoren zusammen. Sie ueberwachen naemlich selbststaendig wenn die Daten ueber den Bus flitzen und picken sich dann “ihre” Befehle raus (Snooplogik). Das spart natuerlich enorm Zeit,da die CPU nicht damit beschaeftigt ist die Aufgaben zu verteilen. Doch LSI-Logic, der Hersteller des LR3000, setzt weiter Meilensteine in der RISC Geschichte. Sowohl ueber den Cache (den hat er auch) als auch direkt laesst sich der R3000 mit dem Hauptspeicher verbinden. Der Cache ist,wie bei den Motorolas auch, in einen Befehls und einen Daten Cache geteilt wobei dieser 4-265KB (KB!) gross sein kann. Jeden Zu- griff auf den Cache wickelt der R3000 mit einem Zyklus ab. Bis zu 4GB kann der R3000 adressieren, wobei folgende “Regel” gilt: 2GB als Userbereich und 2GB als Kernelbereich. Arbeitet der R3000 im Usermode so wird der Speicher als ein 2GB grosser betrachtet. Jede virtuelle Adresse erweitert der Prozessor mit einem 6Bit Wort, der sog. Prozess ID. Fuer Parallelverarbeitung tun sich da neue Moeglich- keiten auf: Jeder laufende Prozess erhaelt so automatisch eine einzig- artige nur ihm zugeteilte virtuelle Adresse. Bis zu 64 Prozesse kann der R3000 verarbeiten. Befindet sich der Proz. im Kernelmode so wird der 4GB grosse Adressraum in 4 Segmente geteilt. Die ersten 2GB sind identisch mit dem Usermode. Hinter dem Useradressraum folgt ein 512MB Speicherbereich,der zwar ueber den Cache mit der CPU verbunden ist, jedoch nicht auf die TLB abgebildet wird. Dieser Speicherbereich heisst “kseg0” und liegt immer im ersten halben GByte des physikalischen Speichers. Dem kseg0 folgt ein weiterer 512MB Block, genannt “kseg1”. Beide Speicherbereiche bildet die Hardware des Prozessors auf die gleiche Adresse ab.Der einzige Unterschied beider Segmente besteht darin, dass der kseg1 weder ueber die TLB noch ueber den Cache geschleust wird. Diese Tatsache erweisst sich beim Debuggen als sehr nuetzlich. Der noch uebrige 1GB Bereich im Kernelmode verhaelt sich aehnlich dem Arbeits- speicher des Usermodes. Jetzt zum Technischen. Der R3000 hat 32 32Bit Register, einen Barrelshifter und eine 5 Stufige Pipeline die folgender- massen arbeitet: Fetch (hol das Stoeckchen), Read (Operanden lesen), Ausfueren (do it!), Speicherzugriff bei lade/speicherbefehlen und Ergebniss ausspucken. Jede Stufe erfordert einen Taktzyklus, d.h. pro Zyklus ein kompletter Befehl.

Eine kleine Anekdote zum Schluss: Ein Rechner der (fuer mich) die Bruecke zu diesem Prozessor schlaegt ist der SONY NeWS 3860. Alle SONY Workstations vorher arbeiteten traditionell mit Motorolas. Man steigerte sich bis hin zum Rechner mit zwei 68030ern. Einer als CPU, Einer fuer IO. Als auch diese Maschiene zu lahm war packte man kurzerhand einen R3000 als CPU rein. Jetzt werkeln beide gemeinsam und beim Plattenzugriff bleibt nix stehen… dank Motorola ,und alles geht schneller…dank LSI. Gott sei dank! 🙂

mfg AXEL

Leave a Reply

Your email address will not be published. Required fields are marked *