Motorola 680x0: function codes

Ähnliche Dokumente
Motorola 680x0: function codes

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen

Teil 1: Prozessorstrukturen


Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Die Mikroprogrammebene eines Rechners

ARM: Befehlssatz (Forts.)

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

9. Assembler: Der Prozessor Motorola 68000

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

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Vorlesung Rechnerarchitektur. Einführung

Instruktionssatz-Architektur

Befehle zur Verarbeitung von Daten ( data processing ):

Die ARM-Mikroarchitektur. Acorn RISC Machine ARM. Asm Prak SS03 p.1/13

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

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

3. Grundlagen der Rechnerarchitektur

Mikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen

Grundlagen der Rechnerarchitektur. Einführung

Tutorium Rechnerorganisation

Geräteentwurf mit Mikroprozessoren 1

Prinzipieller Aufbau und Funktionsweise eines Prozessors

RO-Tutorien 3 / 6 / 12

Übungsblatt 10 (Block C 2) (16 Punkte)

Mikrocomputertechnik. 6. Exceptionhandling ( Ausnahmebearbeitung)

z/architektur von IBM

Mikroprozessor als universeller digitaler Baustein

Arbeitsfolien - Teil 4 CISC und RISC

Inhalt. Prozessoren. Curriculum Manfred Wilfling. 28. November HTBLA Kaindorf. M. Wilfling (HTBLA Kaindorf) CPUs 28. November / 9

10. Die Adressierungsarten des MSP 430

E Mikrocontroller-Programmierung

L3. Datenmanipulation

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

ARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH

Von-Neumann-Architektur

Leichtgewichtsprozesse

Computer-Architektur Ein Überblick

Datenpfad einer einfachen MIPS CPU

Tutorium Rechnerorganisation

Technische Informatik 2 Adressierungsarten

Datenpfad einer einfachen MIPS CPU

Mikroprozessoren. Aufbau und Funktionsweise. Christian Richter. Ausgewählte Themen der Multimediakommunikation SS 2005

Teil VIII Von Neumann Rechner 1

Prozessoren für mobile und. eingebettete Systeme I: Die ARM-Architektur. EMES: Eigenschaften mobiler und eingebetteter Systeme

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung

Vorwort 8. Kap. 1: Grundlagen 10

Datenpfad einer einfachen MIPS CPU

Grundlagen der Rechnerarchitektur

Helmut Bähring. Mikrorechner Technik. Übungen und Lösungen. Mit 78 Abbildungen und CD-ROM. Springer

RO-Tutorien 15 und 16

DIGITALE SCHALTUNGEN II

68000 Assembler. WAS ist ein Assembler? Ein System, das den Programmierer hilft, eine maschinennahe Programmierung zu realisieren.

"Organisation und Technologie von Rechensystemen 4"

Daniel Betz Wintersemester 2011/12

Technische Informatik - Eine Einführung

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

8. Beschreibung des Prozessors MSP 430

Rechneraufbau und Rechnerstrukturen

Rechnergrundlagen. Vom Rechenwerk zum Universalrechner

Technische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1

Inhaltsangabe. 2.1 DieCPU Der Speicher Die Busse Klassifikation der von-neumann-rechner... 37

Grundlagen der Rechnerarchitektur

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

Arithmetische und Logische Einheit (ALU)

Assembler - Adressierungsarten

Fragenkatalog zur Klausur Computersysteme

Grundlagen der Rechnerarchitektur

1 Einleitung zum RISC Prozessor

Mikrocomputertechnik

Teil 2: Rechnerorganisation

Microcomputertechnik

Ein- Ausgabeeinheiten

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

Fragenkatalog Computersysteme Test 25. April 2008

Mikroprozessortechnik

2.2 Rechnerorganisation: Aufbau und Funktionsweise

Mikroprozessortechnik Grundlagen 1

Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega128

4 Der Von-Neumann-Rechner als Grundkonzept für Rechnerstrukturen

Wie groß ist die Page Table?

Neues vom STRIP Forth-Prozessor

Sicheres C Programmieren in Embedded Systemen ARM II (ARM7TMDI [1] ) Wintersemester

Fachbereich Medienproduktion

Neue Prozessor-Architekturen für Desktop-PC

Mikrocontroller-Programmierung

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

Rechneraufbau und Rechnerstrukturen

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

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

MikroController der 8051-Familie

Name : Klasse : Punkte : Note :

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Assembler Integer-Arithmetik

Echtzeitbetriebssysteme

Informatikgrundlagen I Grundlagen der Informatik I

i386 Interrupt-Deskriptortabelle (IDT)

Transkript:

Motorola 680x0: function codes CPU unterscheidet mittels function codes fünf Adressräume: CPU-Adreßraum wird für E/A, Interrupts und Koprozessoren eingesetzt Realisierung z.b. durch Speicherverwaltungseinheit ( Memory Management Unit, MMU) 13 Motorola 680x0: Interrupts interne Interrupts ( exceptions ) ausgelöst z.b. durch Versuch, im User-Modus privilegierte System-Befehle auszuführen Adressierungsfehler bei Instruktionen auf ungeraden Adressen Versuch, nicht implementierte Instruktionen auszuführen explizite Trap Befehle im Programm externe Interrupts: über drei Eingangsleitungen wird bei jedem Interrupt der CPU eine Prioritätsstufe p {1,...,7} mitgeteilt; nur wenn p größer ist als die durch (I 2 I 1 I 0 ) im Systembyte des SR dargestellte Zahl, wird Interrupt akzeptiert höher priorisierter Interrupt unterbricht ggf. eine Behandlungroutine für einen niedrigeren Interrupt und setzt (I 2 I 1 I 0 ) auf den neuen Wert p Ausführung von RTI stellt vorherigen Inhalt von (I 2 I 1 I 0 ) wieder her alle Interrupts setzen Prozessor in den System-Modus und sichern PC und SR auf Stack! 14 1

Motorola 680x0: Interrupts (Forts.) vektorisierte Interrupts: Interrupt-Vektortabelle (IVT) mit 256 Einträgen an beliebiger Stelle im Speicher, Startadresse der IVT in Vektor-Basis-Register VBR Ablauf eines vektorisierten Interrupts: 1. E/A-Gerät signalisiert Interrupt einer Ebene p 2. CPU signalisiert IACK(p), wenn Interrupt (nach Vergleich mit I 2 I 1 I 0 ) akzeptiert 3. E/A-Gerät legt lokal gespeicherten 8-Bit Interrupt-Vektor IV auf Datenbus 4. CPU lädt PC mit Startadresse der Behandlungsroutine aus IVT[IV] 15 Motorola 680x0: neue Befehle (Auswahl) Befehle zur Verarbeitung von Bit-Strings variabler Länge width [1,32] auf Adresse ba=<ea>{offset:width} mit Bit-Offset offset [0,31] BFINS Dn,ba BFFO ba,dn BFCLR ba bit field insert bit field find first one bit field clear BFEXTU ba,dn BFTST ba BFSET ba bit field extract bit field test bit field set Beispiel: MOVE.W #3,D0 ; kopiere 4 Bitmuster L1 BFEXTU (A0){2:15},D1 ; lade D1 mit Bitmuster von (A0) BFINS D1,(20,A0){5:15} ; schreibe Bitmuster an (A0)+20 LEA (4,A0),A0 ; A0 A0+4 DBRA D0,L1 ; dekrementiere D0 und springe, ; wenn D0-1 Befehle zum Verschieben von Daten im Speicher Beispiele: MOVE.<size> <ea>,<ea> ; einzelnes 8/16/32-Bit Datum MOVE16 (An)+,(Am)+ ; 16 Bytes (mit Postinkrement) MOVE16 (An),<addr> ; 16 Bytes (absolut) Befehle für 32 32 64 Bit Multiplikation, Beispiel: MULS.L <ea>,d1-d0 16 2

Motorola 680x0: Architektur mikroprogrammiertes Steuerwerk drei ALUs: für arithmetisch/logische Operationen auf 8/16/32-Bit Daten aus Dn zur Berechnung effektiver Speicheradressen mittels Zeiger in An zur Ermittlung des neuen PC-Inhalts für die nächste Instruktion interne Harvard-Architektur (weitgehend getrennte interne Behandlung von Daten- und Programm-Adressen) seit 68020: Ausrichtungslogik für inkorrekt ausgerichtete 16/32-Bit Daten (benötigt zusätzliche Takte) seit Motorola 68020: integrierte Cache-Speicher (zunächst ein 256 Byte Instructions-Cache, in Motorola 68040 zwei separate 4 KByte Daten- und Instruktions-Caches) seit Motorola 68030: Integration von MMU ( Memory Management Unit ) mit ATC ( Address Translation Cache ) für Mehrprogrammsysteme seit Motorola 68040: Integration von FPU ( Floating-Point Unit ) 17 Motorola 680x0: Architektur (Forts.) Aufbau der 68040 CPU: 18 3

CISC RISC Ende der 70er Jahre übernahmen Motorola und Intel das CISC- Konzept von den IBM Großrechnern und DEC Minicomputern und lenkten den Mikroprozessormarkt in diese Richtung in der 80er Jahren bestand der Trend zu immer komplexeren CISC-Architekturen: jede durch technologischen Fortschritt ermöglichte Steigerung der Transistoranzahl wurde für neue Instruktionen und Adressierungsarten verwendet (begünstigt durch interne Mikroprogrammierung) Befürworter des CISC-Konzeptes wollten die semantische Lücke zwischen System-/Anwendungsprogrammen und Maschinenprogrammen schliessen Man erhoffte sich hierdurch eine Steigerung der Softwareproduktivität, einfachere Übersetzer, kürzere und elegantere Maschinenprogramme sowie eine höhere Leistung 19 CISC RISC (Forts.) die Prozessorhersteller bedachten jedoch nicht die aus der zunehmenden Komplexität ihrer CISC-CPUs resultierenden Probleme: Kompatibilität zu alten Prozessorentwürfen führte zu ineffizienten und umständlichen Architekturen (vor allem bei Intel x86 Familie) komplexe Mikroprogrammwerke mussten je Maschinenbefehl im Mittel etwa 10 Mikrobefehle ausführen bei den ersten CISC-CPUs war dies aufgrund schneller interner ROMs (mit Mikroprogramm) und langsamer externer RAMs (mit Maschinenprogramm) noch akzeptabel durch die Einführung von schnellen Cache-Speichern für Instruktionen verschwand jedoch der Geschwindigkeitsvorteil des internem Mikroprogrammspeichers fast völlig nur alle 10 Takte wird im Mittel eine neue Instruktion aus dem Cache geholt und ausgeführt, d.h. CPI ( Clocks Per Instruction ) 10 20 4

CISC RISC (Forts.) D.A. Patterson stellte 1981 ein anderes Konzept für eine effiziente Prozessorarchitektur vor (ähnliches Konzept wurde jedoch zuvor bereits 1979 im IBM 801 Minicomputer realisiert) Ziel: Ausführung einer Instruktion je Maschinentakt, d.h. CPI = 1 Ansatz: Analyse der Nutzung von Maschineninstruktionen in typischen (aus einer Hochsprache übersetzten) Anwendungsprogrammen Ergebnisse: ca. 74% aller Instruktionen sind einfache MOVE, Bcc, JSR und RTS Befehle! es ist sinnvoller, die Ausführung einfacher Befehle zu optimieren anstatt neue mächtige Instruktionen hinzuzufügen Ursachen sind u.a. häufige Aufrufe von Unterprogrammen mit Parameterübergabe und Erzeugung lokaler Variablen auf Stack instruction type data movement control flow arithmetic compare logical shift bit manipulation miscellaneous usage 45.28 % 28.73 % 10.75 % 5.92 % 3.91 % 2.93 % 2.05 % 0.44 % aus A. Clements, Computer Hardware, S. 354 21 CISC RISC (Forts.) weitere Ergebnisse der Analyse: 56% aller verwendeten Konstanten lagen im Bereich von 16 bis 15; 98% lagen im Bereich von 512 bis 511! Konstanten können in 10 Bit des Befehlswortes kodiert werden! bei Unterprogrammaufrufen wurden in 95% aller Fälle nicht mehr als 12 Speicherworte für Parameter und lokale Variablen benötigt mit mindestens 12 Register können Unterprogrammaufrufe effizient realisiert werden 53% aller Operationen verwendeten eine Register-Adressierung, 32% eine Speicheradressierung und 15% die unmittelbare Adressierung Registeradressierung stellt die wichtigste Adressierungsart dar bei den Speicherzugriffen lag in ca. 70% aller Fälle eine indizierte Adressierung (ohne/mit Offset) vor indizierte Adressierung ist in meisten Fällen ausreichend! 22 5

Eigenschaften von RISC-Prozessoren ausreichend große Anzahl von Registern zur Speicherung von Zwischenergebnissen und zur Parameterübergabe zwei Klassen von Befehlen: Load/Store Instruktionen, die ein Wort zwischen Speicher und Register transferieren 3-Adress-Instruktionen nur mit Registeroperanden: <instr> <reg1>,<reg2>,<reg3> Verzicht auf komplexe, selten benötigte Instruktionen und Adressierungsarten effiziente Realisierung von Sprungbefehlen Steuerwerk durch festverdrahtete Logik realisiert; nach Möglichkeit eine Instruktion je Takt (mittels Instruktionspipelining) einfache (und somit schnelle) Dekodierung aller Befehle durch weitgehend einheitliches Instruktionsformat; je Befehl nur ein Instruktionswort (typische Länge: 32 Bit)! 23 Beispiel: ARM Prozessor die Fa. Acorn Computer Group (UK) stellte 1985 den ersten kommerziell entwickelten RISC-Prozessor vor 1990 Gründung der Fa. ARM (Advanced RISC Machines, UK) Familie kompatibler RISC-Prozessoren wurde entwickelt: ARM7 (1993, 17 MIPS) bis ARM10 (1998, 390 MIPS) Portierung von Windows CE auf ARM im Jahre 1996; Intel kauft 1998 Lizenz zum Bau des StrongARM RISC Prozessors einfache und elegante 32-Bit RISC Architektur mit einigen interessanten Architekturmerkmalen Entwurf optimiert für sehr geringen Energieverbrauch wird heute z.b. in Handheld Computern und in eingebetteten Systemen eingesetzt 24 6

ARM: Programmiermodell Programmiermodell: 16 Allzweck-Register r0 bis r15 r15 ist PC r14 ist link register lr (speichert die Rücksprungadresse!) r13 dient als stack pointer sp (jedoch nicht zwingend) nach Interrupts und Ausnahmen werden einige der Register r8 bis r14 automatisch ausgetauscht Statusregister CPSR ( current program status register ), Bit 7...0 im user mode nicht veränderbar; nach Interrupts und Ausnahmen Sicherung in einem von 5 SPSRs ( saved program status register ) 25 ARM: Architektur Aufbau des ARM7: insgesamt 37 Register Barrel Shifter zum Schieben eines 32-Bit Wertes um eine beliebige Distanz in einem Takt little / big endian Formate hardwaremäßig einstellbar 5 Unterbrechungsarten mit fester Priorität Reset (höchste Priorität) Abort (z.b. bei Speicherfehler) FIQ (Fast Interrupt) IRQ undefined instruction / SWI versetzen CPU in abort/fiq/ IRQ/undefined/supervisor mode 26 7