Ulrich Golze Der RISC-Prozessor TOOBSIE
Aus dem Bereich Informatik / DV Aufbau und Arbeitsweise von Rechenanlagen von Wolfgang Coy Rechnerarchitektur von John L. Hennessy and David A. Patterson VLSI-Entwurf eines RISC-Prozessors von Ulrich Golze Der RISC-Prozessor TOOBSIE von Ulrich Golze Parallelität und Transputer von Volker Penner Konzepte und Praxis des Compilerbaus von Volker Penner UNIX von Werner Brecht Verteilte Systeme unter UNIX von Werner Brecht Die Strategie der integrierten Produktentwicklung von Oliver Steinmetz Qualitätsoptimierung der Software-Entwicklung von Georg Erwin Thaller Modemes Proiektmanagement von Erik Wischnewski DV-gestützte Produktionsplanung von Stefan Oeters und Oliver Woitke Vieweg
Ulrich Golze unter Mitarbeit von Peter Blinzer, Elmar Cochlovius, Michael Schäfers und Klaus-Peter Wachsmann Der RISC-Prozessor IOOBSIE Hintergrundband zum Buch "VLSI-Entwurf eines RISC-Prozessors" für den Entwurfsspezialisten IJ Vleweg
CIP-Codierung angefordert Das in diesem Buch enthaltene Programm-Material ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Der Autor und der Verlog übernehmen infolgedessen keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art ous der Benutzung dieses Programm-Materials oder Teilen dovon entsteht. Alle Rechte vorbehalten Friedr. Vieweg & Sohn Verlagsgesellschaft mbh, Braunschweig/Wiesbaden, 1995 Der Verlag Vieweg ist ein Unternehmen der Bertelsmann Fachinformation GmbH. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Dos gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Klaus Birk, Wiesbaden Gedruckt auf säurefreiem Papier ISBN 978-3-322-89552-3 001 10.1007/978-3-322-89551-6 ISBN 978-3-322-89551-6 (ebook)
Vorwort Das Buch VLSI-Entwurf eznes RISC-Prozessors behandelt den modernen Chip-Entwurf, indem als großes Beispiel der reale Prozessor TOOBSIE entworfen wird. Während in einer Einführung sicher nicht alle Einzelheiten interessieren, möchten Experten den Entwurf gleichwohl an ausgewählten Stellen oder sogar vollständig "bis ins letzte Bit" verstehen oder ihn als Basis für die Entwicklung eigener CAD-Werkzeuge oder Entwurfsmethoden verwenden. Daher enthält dieser Hintergrundband eine detaillierte Spezifikation aller RISC-Befehle, das Interpreter-Modell mit Simulationsergebnis, Kommentare zu den Controllern und der Systemumgebung des Grobstrukturmodells sowie erste Simulationen, das umfangreiche HDL-Modell selbst und schließlich alle graphischen "Schematics" des Gattermodells mit Kommentaren. Bilder und Tabellen sind je Kapitel gemeinsam durchnumeriert. E2, H2 und öl2 beziehen sich auf das zweite Kapitel des Einführungsbuches, dieses Hintergrundbandes bzw. der Diskette, wobei der Vorsatz H im vorliegenden Band entfallt. Alle Danksagungen, das Who did what, Literaturverzeichnis, Index und weitere Erläuterungen des Einführungsbandes gelten auch hier. Braunschweig, Dezember 1994 Ulrich Golze
vi Vorwort
Inhalt Vorwort... v Inhalt... vii 1 Einleitung......................... 1 2 Die Befehle im einzelnen... 3 3 Das Interpreter.Modell als VERILOG-Code......... 25 4 Das Grobstrukturmodell... 43 4.1 Die Pipeline-Control-Unit PCU... 43 4.1.1 Die RESET-Logik... 46 4.1.2 Die Interrupt-Logik... 47 4.1.3 Die PC_BUS-Logik... '"... 51 4.1.4 Die BCU-Logik... 52 4.1.5 Die Status-Forwarding-Logik... 53 4.1.6 Die Status-Pipeline... 54 4.1.6.1 Die PF-Stufe... 55 4.1.6.2 Die IF-Stufe... 56 4.1.6.3 Die ID-Stufe... 56 4.1.6.4 Die EX-Stufe... 57 4.1.6.5 Die MA-Stufe... 57 4.1.6.6 Die WB-Stufe... 57 4.1.7 Die SREG-Logik... 57 4.1.7.1 Die SREG-Read-Logik... 58 4.1.7.2 Die SREG-Write-Enable-Logik... 59 4.1.7.3 Die SREG-Write-Logik... 59 4.1.8 Der Modul WORK_UNIT... 60 4.2 Die Bus-Control-Unit BCU... 61 4.3 Der Branch-Target-Cache BTC... 63 4.3.1 4.3.2 Der PC-Multiplexer... 66 Der T AKEN-Multiplexer... 66 4.3.3 4.3.4 Der CAll-Write-Multiplexer... '"... 67 Der DIS_IDU-Multiplexer... 68 4.3.5 Die Read-Write-Logik RWl... 68 4.3.6 Der Branch-Cache BCACHE... 69 4.3.7 Die Call-Detection-Logik CDl... 70 4.3.8 Die History-Decision-Logik Hil... 71 4.3.9 Die Pipeline-Control-Logik PCl... 71 4.3.10 4.3.11 Die Branch-Correction-Logik BCl... 72 Die History-Update-Logik HUl... 73 4.4 Die Behandlung von Interrupts... 73 4.4.1 Allgemeines... 73 4.4.2 Software-Interrupts und Exceptions.,... 74 4.4.3 Die Behandlung von Hardware-Interrupts... 79
viii Inhalt 4.5 Die Systemumgebung... 81 4.5.1 Der Modul SYSTEM..., 82 4.5.2 Der Prozessormodul CHIP... 83 4.5.3 Die Speichermodule RAM und ROM... 83 4.5.4 Testunterstützung... 84 4.5.4.1 Die Stev.erdatei TEST... 85 4.5.4.2 Die Statistik TRACE... 86 4.5.4.3 Die Speicher- und Registerausgabe DUMP... 86 4.5.4.4 Die Graphikausgabe GRAPHWAVES... 87 4.5.4.5 Die Busüberwachung CHECKBUS... 87 4.6 Experimente mit dem Grobstrukturmodell... 87 4.7 Q u e l l des ~ ogrobstrukturmodells d e... 102 4.7.1 Der Prozessor CHIP... 102 4.7.2 Die Instruction-Fetch-Unit IFU... 107 4.7.3 Die Instruction-Decode-Unit IDU... 135 4.7.4 Die Arithmetic-Logic-Unit ALU... 140 4.7.5 Die Memory-Acess-Unit MAU... 145 4.7.6 Die Forwarding-and-Register-Unit FRU... 148 4.7.7 Die Pipeline-Control-Unit PCU... 154 4.7.8 Die Bus-Control-Uriit BCU... 170 4.7.9 Die Systemumgebung SYSTEM... 175 4.7.10 Die Service-Module... 191 4.7.10.1 Die Steuerdatei TEST... 191 4.7.10.2 Die Statistik TRACE... 192 4.7.10.3 Die Speicher- und Registerausgabe DUMP... 208 4.7.10.4 Die Graphikausgabe GRAPHWAVES... 214 4.7.10.5 Die Busüberwachung CHECKBUS... 223 4.7.10.6 Die Kontrolle MCTRL... 227 5 Das Gattermodell... 229 5.1 Hierarchische Gliederung... 230 5.2 Der Prozessor-Chip (Ebene 1)... 236 5.3 Die Pipeline-Stufen (Ebene 2)... 240 5.3.1 Die Instruction-Fetch-Unit IFU... 240 5.3.2 Die Instruction-Decode-Unit IDU... 243 5.3.3 Die Arithmetic-Logic-Unit ALU... 244 5.3.4 Die Memory-Access-Unit MAU... 245 5.3.5 5.3.6 Die Forwarding-and-Register-Unit FRU... 246 Die Pipeline-Control-Unit PCU... 248 5.3.7 Die Bus-Control-Unit BCU... 250 5.4 Die Caches und andere Untermodule (Ebene 3)... 252 5.4.1 Der Program-Counter-Calculator PCC der IFU... 252 5.4.2 Der IFU-Address- Multiplexer und andere Untermodule der IFU... 253 5.4.3 Der Multi-Purpose-Cache MPC... 254 5.4.4 Der Branch-Target-Cache BTIC... 255 5.4.5 Die PC-Bus-Logik derpcu... 258 5.4.6 Die SREG-Logik der PCU... 258 5.4.7 Die Status-Pipeline der PCU... 262 5.5 Schematics... 264 Literatur und Index... 431