Ulrich Golze. Der RISC-Prozessor TOOBSIE

Ähnliche Dokumente
Ulrich Golze. Der RISC-Prozessor TOOBSIE

Datenpfad einer einfachen MIPS CPU

Was ist die Performance Ratio?

Auch hier wieder. Control. RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite. Instruction[31 26] (also: das Opcode Field der Instruktion)


Teil 2: Rechnerorganisation

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Die Mikroprogrammebene eines Rechners

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Vorlesung Rechnerarchitektur. Einführung

Neue Prozessor-Architekturen für Desktop-PC

Regina B. und Rolf B. Baumeister (Hrsg.) dbase III Software Training

Anpassungsstörung und Akute Belastungsreaktion

H Hypothetischer Prozessor

Jurgen Burberg Peter Schneid erlochner. Microsoft Excel 3.0. Einsteigen leichtgemacht

Anita Lenz Stefan Meretz. Neuronale Netze und Subiektivität

Tutorium Rechnerorganisation

Die Big Five und ihre Auswirkungen auf das Gründungsverhalten

Echtzeit-Multitasking

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Anjes Tjarks. Familienbilder gleich Weltbilder

Rechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at

Name: ES2 Klausur Thema: ARM Name: Punkte: Note:

CPU. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Bettina Heberer. Grüne Gentechnik. Hintergründe, Chancen und Risiken

Instruktionssatz-Architektur

2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Das Prinzip an einem alltäglichen Beispiel

Zahnbehandlungs- phobie

Förderung der Autonomieentwicklung im Umgang mit Kinderliteratur in der Grundschule

Computer-Architektur Ein Überblick

Einführung (1) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Rechneraufbau und Rechnerstrukturen

Felix Huth. Straßenkinder in Duala

Grundlagen der Rechnerarchitektur

Zusammenfassung der Assemblerbefehle des 8051

Berufseinstieg für Ingenieure

P H I L I P P I K A Altertumswissenschaftliche Abhandlungen Contributions to the Study of Ancient World Cultures

Mit freundlichen Empfehlungen KARL STORZ

Rechneraufbau und Rechnerstrukturen

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Modul 5 Die Nummer 1 für Männer

Hardware Praktikum 2008

Teil VIII Von Neumann Rechner 1

Mikroprozessor als universeller digitaler Baustein

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Technische Informatik 1 - HS 2016

Praxiswissen Online-Marketing

Technische Informatik 1

Semestralklausur Einführung in Computer Microsystems

Führung und Mikropolitik in Projekten

Inga Jung. Betreten verboten! Territorialverhalten bei Hunden verstehen

Die Entwicklung der Rechtsprechung hinsichtlich der Rechtsstellung der Gesellschaft bürgerlichen Rechts und ihrer Gesellschafter im Rechtsverkehr

Lösungen zum Lehrbuch Angewandtes Rechnungswesen

Sozialwissenschaftliche Fakultät der Universität Göttingen. Sommersemester Statistik mit SPSS

Wie groß ist die Page Table?

Rechner Architektur. Martin Gülck

Prüfungstraining für Bankkaufleute

Abenteuer Metallgießerei. Eine spannende Entdeckungsreise in die Welt der Metallgießerei

Martin Scholz, Ute Helmbold (Hrsg.) Bilder lesen lernen

Kurzstudie BESTSELLER. Roman Büttner. Das Phänomen Fast Food. Eine sozialgeschichtliche Untersuchung zur Erfindung des schnellen Essens

Yoga - die Kunst, Körper, Geist und Seele zu formen

Grundlagen der Rechnerarchitektur

Christina Berghold. Die Szenario-Technik LEITFADEN. zur strategischen Planung mit Szenarien vor dem Hintergrund einer dynamischen Umwelt

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

RO-Tutorien 3 / 6 / 12

Zukunftsorientierte Unternehmenssteuerung in der Energiewirtschaft

Ratgeber Schlafstörungen

Hilfsangebote für Kinder und Jugendliche ohne eigenen Wohnsitz

Kap 4. 4 Die Mikroprogrammebene eines Rechners

TeB Bewertung von Wirtschaftsgiitem

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

Wörterbuch der Leit- und Automatisierungstechnik

Johann Wolfgang Goethe-Universität

Claus von Eitzen. Datenbankanwendungen mit FileMaker Pro

Picking the winners - Dienstleistungsorientierte Bestandspflegeund Ansiedlungspolitik

Innovative Preismodelle für hybride Produkte

Springer essentials sind innovative Bücher, die das Wissen von Springer DE in kompaktester Form anhand kleiner, komprimierter Wissensbausteine zur

Ideengeschichte der Physik

Mikrocomputertechnik. Thema: Der Aufbau des XC888-Mikrocontrollers -Teil 1 -

Wilfried Weißgerber. Elektrotechnik für Ingenieure Klausurenrechnen

Anhang zum Buch. Was sagt Clementine zur lila Kuh? Fernsehwerbung analysieren und interpretieren. Nicola Berger

Bachelorarbeit. Das Phänomen Bestseller. Alexandra Bayer. Eine Analyse am Beispiel von Daniel Kehlmanns Roman Die Vermessung der Welt. Diplom.

Grundlagen der Rechnerarchitektur. Ein und Ausgabe

Microcomputertechnik

Armin Klein (Hrsg.) Gesucht: Kulturmanager

Die deutsch-französischen Beziehungen von der Wiedervereinigung zum Maastrichter Vertrag

Einführung in Theorien und Methoden der Erziehungswissenschaft

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Arithmetische und Logische Einheit (ALU)

Prüfungsklausuren mit Lösungen Band 2014

Übergewichtige Kinder und Jugendliche in Deutschland

Der Toy Rechner Ein einfacher Mikrorechner

Gunther Graßhoff. Zwischen Familie und Klassenlehrer

Thomas Geisen. Arbeit in der Moderne

Mikroprozessortechnik. 03. April 2012

Führungsstile im Vergleich. Kritische Betrachtung der Auswirkungen auf die Mitarbeitermotivation

Transkript:

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 U... 43 4.1.1 Die RESET-Logik... 46 4.1.2 Die Interrupt-Logik... 47 4.1.3 Die _BUS-Logik... '"... 51 4.1.4 Die BCU-Logik... 52 4.1.5 Die -Forwarding-Logik... 53 4.1.6 Die -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 -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 l... 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 U... 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 U... 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 C der IFU... 252 5.4.2 Der IFU-Address- Multiplexer und andere Untermodule der IFU... 253 5.4.3 Der Multi-Purpose-Cache M... 254 5.4.4 Der Branch-Target-Cache BTIC... 255 5.4.5 Die -Bus-Logik deru... 258 5.4.6 Die SREG-Logik der U... 258 5.4.7 Die -Pipeline der U... 262 5.5 Schematics... 264 Literatur und Index... 431

Vorwort und Einleitung Die Einführung in ein neues Fachgebiet ist oft von besonderem Reiz. Das Buch VLSI-Entwurf eines RISC-Prozessors führt in das Design großer Chips ein. Mit Hardware-Beschreibungssprachen (HDL) als Schwerpunkt wird dort der moderne Semi-Custom-Entwurf behandelt, die Architektur von RISC-Prozessoren wird eingeführt, und ein großer VLSI-Entwurf des realen schnellen RISC-Prozessors TOOBSIE wird spezifiziert und auf der Verhaltens- und Strukturebene HDL-modelliert. Die Synthese eines fertigungsfähigen Gattermodells wird angeschnitten, und der erfolgreiche Test des gefertigten Prozessors wird skizziert. Irgendwann allerdings ist die Zeit der Einführung vorbei, dann tauchen Detailfragen auf, spätestens dann, wenn der Leser selber ernsthaft zu entwerfen beginnt. Hier ist der Sinn des vorliegenden Hintergrundbandes zu sehen, der die Kenntnis des Einführungsbandes voraussetzt. Niemand liest einen Straßenatlas vollständig, niemand findet ihn per se spannend. Gleichwohl kann er zum wichtigen Hilfsmittel werden und spannende Reisen unterstützen. In diesem Sinne besteht der vorliegendp. Band aus lose gekoppelten Kapiteln, die den Entwurf von TOOBSIE durch ein Nachschlagewerk vervollständigen. Gerade auf die Vollständigkeit eines Straßenatlas legen wir Wert. Ein vollständig offengelegtes großes Beispiel dürfte auch für Experten interessant sein, die CAD-Werkzeuge zum VLSI-Entwurf testen, verbessern oder gar entwickeln oder die sich mit realistischer Entwurfsmethodik beschäftigen, ohne sich auf Schulbeispiele zu beschränken.

2 1 Vorwort und Einleitung Im einzelnen enthält Kapitel 2 eine detaillierte Spezifikation aller Prozessorbefehle. Dabei wurde kleiner Zugriffszeit für den Leser Vorrang gegeben gegenüber zusammengefaßter Darstellung. Kapitel 3 besteht aus dem Interpreter-Modell im VERILOG-Code mit einer weiteren Simulation. Kapitel 4 umfaßt nicht nur das vollständige große VERILOG-Grobstrukturmodell, sondern kommentiert auch die schwierigeren Komponenten wie die Controller. Es geht auf die vielfältigen Möglichkeiten der Simulation ein. Erstmals wird das im Einführungsband nur punktuell behandelte, sehr umfangreiche Gattermodell im Kapitel 5 kommentiert und vollständig graphisch wiedergegeben. Bilder und Tabellen sind je Kapitel gemeinsam durchnumeriert. E2, H2 und C5l 2 beziehen sich auf das zweite Kapitel des Einführungsbuches, dieses Hintergrundbandes bzw. der Diskette, wobei der Vorsatz H im vorliegenden Band entfällt. Alle Danksagungen, das Who did what, Literaturverzeichnis, Index und weitere Erläuterungen des Einführungsbandes gelten hier natürlich auch, ohne wiederholt zu werden.

Die Befehle im einzelnen Im Einführungsband haben wir anläßlich der externen Verhaltensspezifikation des RISC-Prozessors TOOBSIE seinen Befehlssatz formatiert und in Klassen zusammengefaßt definiert. Dabei mußten manche Feinheiten verborgen bleiben. Dieses Kapitel spezifiziert die Befehle im Detail. Sie sind alphabetisch nach ihren Mnemonics geordnet. Die synthetischen Befehle enthalten einen Hinweis, da sie keine eigenständigen Maschinenbefehle sind. Jeder Befehl ist durch die folgenden Informationen gekennzeichnet. Mnemonic: dies ist die Abkürzung für einen Befehl. : der Befehlsname läßt auf die Funktion des Befehls schließen. : in kurzer Form wird die Semantik eines Befehls skizziert. : in allgemein bekannter Weise wird die Syntax des entsprechenden -Befehls notiert [Mierse 1994]. : die wichtigen Auswirkungen auf die Flags der Tabelle E5.4 werden genannt. : die betroffenen werden, falls sinnvoll, erläutert; dabei wird auf den Abschnitt E5.2 Bezug genommen. : hier steht der Binärcode des Befehls (vgl. Bild E5.I). Beschreibung: der Befehl wird ausführlicher erläutert. Die folgende Liste ist "aufgebläht" in dem Sinne, daß auch für jede Option CF,.A,.Q,.B,.D) ein eigener Eintrag vorhanden ist. Eine Zusammenfassung würde die Länge der Liste aus 83 Einträgen fast halbieren. Weiter könnten alle

4 2 Die Befehle im einzelnen Branch-Befehle zusammengefaßt werden, alle arithmetischen usw. Dann würde zwar wieder der RISC-Charakter eines sehr kleinen Befehlssatzes deutlich werden, die Zugriffszeit für den nachschlagenden Experten wäre aber erheblich größer. Mnemonic ADD Add dest <- srca + srcb ADD Rd,Ra,Rb ader ADD Rd,Ra, Immediate14 dest REG[DEST] srca REG[SRCA) srcb REG[SRCB) oder Immediate14 DEST =d, SRCA=a, SRCB=b 101100001 1 OEST 1 SRCA 1 ISRCBI 101100000loESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird zu srcb addiert, das wird in Register DEST geschrieben. Operation A D D. F Add, set flags dest <- srca + srcb ADD.F Rd,Ra,Rb ader ADD.F Rd,Ra, Immediate14 N,Z,C,V dest REG[DEST] srca REG[SRCA) srcb REG[SRCB) oder Immediate14 DEST,.d, SRCAma, SRCB-b 101100011 IOESTlsRCAI ISRCBI 101100010loESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird zu srcb addiert, das wird in Register DEST geschrieben. Die Flags des ses kommen in das register. 10110010110ESTIsRCAI ADDC Add with carry dest <- srca + srcb + C ADDC Rd,Ra,Rb ader ADDC Rd,Ra, Immediate14 dest REG[DEST] srca REG[SRCA) srcb REG[SRCB) oder Immediate14 DEST =d, SRCA=a, SRCB=b ISRCBI 101100100loESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird zu srcb und dem Wert des Carry-Bits im addiert und das wird in Register DEST geschrieben. ADDC_F Add with carry, set!iags dest <- srca + srcb + C ADDC.F Rd,Ra,Rb ader ADDC.F Rd,Ra, Immediate14 N,Z,C,V dest REG[OEST] srca REG[SRCA) srcb REG[SRCB) ader Immediate14 DEST =d, SRCA=a, SRCB=b 101100111 IOESTlsRCAI ISRcsl 101100110loESTIsRCAI ImmediateM 31 24 19 14 5 0 Beschreibung srca wird zu srcb und dem Wert des Carry-Bits im addiert und das wird in Register DEST geschrieben. Vom werden die Flags berechnet und in das register übernommen.

2 Die Befehle im einzelnen 5 AND And dest +- srca & srcb AND Rd,Ra,Rb oder AND Rd,Ra, Immediate14 dest REG[DEST] srca REG[SRCA] srcb REG[SRCB] oder Immediate14 DEST =Cl, SRCA=a, SRCB=b 101000001 IDESTlsRCAI ISRcsl 101000000lDESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung Operand an Es wird bit-weise das logische UND der srca und srcb gebildet, das wird in Register DEST geschrieben. AN D. F And, set liags dest +- srca & scrb AND Rd,Ra,Rb oder AND Rd,Ra, Immediate14 N,Z dest REG[DEST] srca REG[SRCA] srcb REG[SRCB] oder Immediate14 DEST -d, SRCA_a, SRCB-b 101000011 IDESTlsRCAI ISRcsl 101000010lDESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird b ~ - w mit e isreb s e logisch verundet und das wird in Register DEST geschrieben. Vom werden die Flags berechnet und in das register übernommen. ASR Arithmetic shilt right dest +- srca» scrb ASR Rd,Ra,Rb oder ASR Rd,Ra, Immediate14 dest REG[DEST] srca REG[SRCA] srcb REG[SRCB] oder Immediate14 DEST =Cl, SRCA=a, SRCB=b 101011001 IDESTlsRCAI ISRcsl 101011000lDESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird bit-weise um srcb Positionen arithmetisch nach rechts, d.h. in Richtung niedrigstwertiges Bit, verschoben, und das wird in Register DEST geschrieben. Arithmetisch" bedeutet, daß die höchstwertigen Bit-Positionen mit dem Vorzeichen-Bit aulgefüllt werden.

6 2 Die Befehle im einzelnen 10101101110ESTIsRCAI A SR. F Arithmetic shift right, set flags dest +- srca» scrb ASR.F Rd,Ra,Rb oder ASR.F Rd,Ra, Immediate14 C,N,Z dest REG[DEST] srca REG[SRCA] srcb REG[SRCB] oder Immediatel4 DEST =d, SRCA=a, SRCB=b ISRCBI 101011010loESTIsRCAI Immediate14 31 24 19 14 5 0 Beschreibung srca wird bit-weise um srcb Positionen arithmetisch nach rechts, d. h. in Richtung des niedrigstwertigen Bits verschoben, und das wird in Register DEST geschrieben. Arithmetisch" bedeutet, daß die höchstwertigen Bit Positionen mit dem Vorzeichen-Bit aufgefüllt werden. Vom werden die Flags berechnet und in das register übernommen. Das Carry-Flag ist 0 für srcb=o und sonst der Wert an der (gedachten) Bit-Position 1 von dest. Bee Branch on carry elear Falls (-C), dann <- + (OffsetI9,OO); BCC Offset19 111111100 1000011 Offset19 Beschreibung Falls die Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Danach wird in jedem Fall die Delay Instruktion ausgefü hrt. Be e. A Branch on carry elear, ANNUL Option Falls (-C), dann +- + (OffsetI9,OO) und BCC.A Olfsetl9 111111100 It 000 11 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum der um zwei Bit nach links ver schobene Offsetl9 addiert. Nur dann wird danach dia Delay Bes Branch on carry set Falls (C), dann +- + (OffsetI9,OO); danach Delay lnstruktion BCS Offset 19 111111100 1010011 Oflset19 Beschreibung Falls die -Flags die Sprung bedingung erfüllen, wird zum der um zwei Bit nach links ver schobene Oflset19 addiert. Danach wird in jedem Fall die Delay

2 Die Befehle im einzelnen 7 Mnemonic B C S _ A Branch on carry set, ANNUL Option Falls (C), dann <- pe + {Offset19,OO} und BCS.A Offset19 pe 111111100 1110001 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Nur dann wird danach die Delay Mnemonic BEO Branch on equal Falls (Z), dann pe <- + {Offset19,OO}; BEQ Offset19 111111100 101000 I Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum pe Offset 19 addiert. Danach wird in jedem Fall die Delay Mnemonic BE 0 _ A Branch on equal, ANNUL-Option Falls (Z), dann <- + {Offset19,OO} und BEO.A Offset19 111111100 1110001 Offset19 31 24 19 o Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Nur dann wird danach die Delay BF Branch on false (never) Delay-Instruktion BF Offset19 111111100 1001111 Offset19 Beschreibung Dieser Befehl hat keine Auswirkungen, außer daß danach die Delay-Instruktion ausgeführt wird. B F _ A Branch on false (never), ANNUl Option BF.A Offset19 111111100 11 01111 Offset19 Beschreibung Dieser Befehl hat keine Auswirkungen; die Delay-Instruktion wird nicht ausgeführt.

8 2 Die Befehle im einzelnen BGE Branch on greater or equal Falls (-(N V) I Z), dann pe f- pe + {Offset19,OO}; BGE Offset19 pe 111111100 1001011 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum pe Offset19 addiert. Danach wird in jedem Fall die Delay BGT Branch on greater than Falls -((N V) I Z), dann pe f- pe + {01fset19,OO}; BGT Offset19 pe 1111111 00 100110 I Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum pe Offset19 addiert. Danach wird in jedem Fall die Delay B GE. A Branch on greater er equal, ANNUL-Option Falls (-(N V) I Z), dann pe f- pe + {OffsetI9,OO} und BGE.A Offset19 pe 111111100 1101011 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum pe Offset19 addiert. Nur dann wird danach die Delay Mnemonic B G T. A Branch on greater than, ANNUL-Option Falls -((N V) I Z), dann pe f- pe + {OffsetI9,OO} und BGT.A Offset19 pe 111111100 1101101 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum pe Offset19 addiert. Nur dann wird danach die Delay

2 Die Befehle im einzelnen 9 B H I Branch on higher Falls (-(C I Z)), dann <- + {Offset19,OO}; BHIOffset19 111111100 1000111 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Danach wird in jedem Fall die Delay Mnemonic Ergebnfs B H I. A Branch on higher, ANNUL-Option Falls (-(C I Zn, dann <- + {Offset19,OO} und BHI.A Offset19 111111100 1100111 Offset19 Beschreibung Falls die Flags die Sprung bedingung erfüllen, wird zum der um zwei Bit nach links ver schobene Offset19 addiert. Nur dann wird danach die Delay BlE Branch on less or equal Falls ((N A V) I Z), dann <- + {Offset19,OO}; danach Delay lnstruktion BLE Offset19 1111111 00 10111 0 I Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Danach wird in jedem Fall die Delay B l E. A Branch on less or equal. ANNUL Option Falls ((N A V) I Z), dann <- + {Offset19.00} und BLE.A Offset19 111111100 1111101 Offset19 Beschreibung Falls die Flags die Sprung' bedingung erfüllen, wird zum Offset19 addiert. Nur dann wird danach die Delay Mnemonfc BlS Branch on less or same Falls (C I Z), dann <- + {Offset19,OO}; BLS Offset19 111111100 1010111 Offset19 Beschreibung Falls die -Flags die Sprung' bedingung erfüllen, wird zum der um zwei Bit nach links ver schobene Offset19 addiert. Danach wird in jedem Fall die Delay

10 2 Die Befehle im einzelnen BLS.A Branch on less or same. ANNUL- Option Falls (C IZ), dann... + {Offset19,OO) und BLS.A Offset19 pe format 111111100 1110111 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Nur dann wird danach die Delay BLT Branch on less than Falls ((N A V) I Z), dann pe... pe + {Offset19,OO); BL T Offset19 pe 111111100 1011011 Offset19 Beschreibung Falls die Flags die Sprung bedingung erfüllen, wird zum pe der um zwei Bit nach links ver schobene Offset 19 addiert. Danach wird in jedem Fall die Delay B L T. A Branch on less than. ANNUL-Op tion Falls ((N A V) I Z), dann... + {Offset19,OO) und danach Delay lnstruktion BL T.A Offset19 format 111111100 1111011 Offset19 Beschreibung Falls die Flags die Sprungbedingung erfüllen, wird zum pe Offset19 addiert. Nur dann wird danach die Delay BMI Branch on minus Falls (N), dann pe... pe + {Offset19,OO); danach Delay lnstruktion BMIOffset19 Formal 1111111 00 101 01 0 1 Oflset19 Beschreibung Falls die- -Flags die Sprung bedingung erfüllen, wird zum pe der um zwei Bit nach links ver schobene Offset19 addiert. Danach wird in jedem Fall die Delay

2 Die Befehle im einzelnen 11 Mnemonic B MI. A Branch on minus. ANNUL-Option Falls (N). dann pe +- pe + {Offset19.00} und BMI.A Offset19 pe 111111100 111010 I Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen. wird zum pe der um zwei Bit nach links ver s.;hobene Offset19 addiert. Nur dann wird danach die Delay BNE Branch on not equal Falls (-Z). dann pe +- pe + (Offset19.00}; BNE Offset19 111111100 1000001 Oflset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen. wird zum pe Offset19 addiert. Danach wird in jedem Fall die Delay B NE. A Branch on not &qual. ANNUL Option Falls (-Z). dann pe +- pe + (Offset19.00} und BNE.A Ollset19 Pe 111111100 1100001 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen. wird zum pe Offset19 addiert. Nur dann wird danach die Delay B P L Branch on plus Falls (-N). dann pe +- pe + {Offset19.00}; BPL 0llset19 Pe 111111100 1000101 Offset19 Beschreibung Falls die Flags die Sprungbedingung erfüllen. wird zum pe der um zwei Bit nach links ver schobene Offset19 addiert. Danach wird in jedem Fall die Delay

12 2 Die Befehle im einzelnen Mnemonic B P L. A Branch on plus. ANNUL Option Falls (-N). dann pe <- pe + {Offsetl 9,OO} und danach Oelay-Instruktion BPL.A Offset19 1111111001100101 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen. wird zum Offset19 addiert. Nur dann wird danach die Oelay BVe Branch on overflow ele ar Falls (-V), dann pe <- pe + {Offset19.00}; danach Oelay lnstruktion BVe Offset19 111111100 1001001 Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset 1 9 addiert. Danach wird in jedem Fall die Delay Mnemonic BT Branch on true (always) <- pe + {Offsetl 9.00}; danach Oelay-Instruktion BT Offset19 111111100 1011111 Offset19 Beschreibung Zum wird der um zwei Positionen nach links verschobene Wert Offset19 addiert. Danach wird die Delay- B T. A Branch on true (always), ANNUL Option <- + {Offset19.00} und BT.A Offset19 pe 111111100 1111111 Offsel19 31 24 19 o Beschreibung Zum wird der um zwei Positionen nach links verschobene Wert Offset19 addiert. Danach wird die Delay- Anmerkung Da der Sprung unbedingt genommen wird. wird auch die Delay Instruktion in jedem Fall ausgeführt. Daher haben die Befehle BT und BT.A gleiche Auswirkungen. Mnemonic B V C. A Branch on overtlow clear. ANNUL Option Falls (-V), dann <- + {Offset19,OO} und BVC.A Offset19 111111100 110100 I Offset19 Beschreibung Falls die -Flags die Sprungbedingung erfüllen, wird zum Offset19 addiert. Nur dann wird danach die Delay