2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. 16/32 bit- Mikroprozessor- Systeme Von Dr.-Ing. Manfred Rubel Akademischer Direktor im Fachbereich Elektrotechnik der Universität der Bundeswehr Hamburg Mit 278 Bildern B. G. Teubner Stuttgart 1991
Einführung Inhaltsverzeichnis 1.1 Entwicklung der Mikroprozessoren 1 1.2 Informationsdarstellung 2 1.2.1 Darstellung von Zahlen, elementare Rechenoperationen 4 1.2.1.1 Umwandlung ganzer Dezimalzahlen in andere Zahlensysteme 4 1.2.1.2 Umwandlung ganzer Hexadezimal-, Oktal- und Dualzahlen in das Zehnersystem 6 1.2.1.3 Zahlen bei vereinheitlichten Busbreiten 8 1.2.1.4 Darstellung binär codierter Dezimalzahlen 10 1.2.1.5 Addition von ganzen positiven Zahlen 10 1.2.1.6 Darstellung negativer ganzer Zahlen 12 1.2.1.7 Darstellbare Bereiche ganzer Zahlen bei verschiedenen Datenformaten 13 1.2.1.8 Addition und Subtraktion positiver und negativer ganzer Zahlen 14 1.2.1.9 Bereichsüberschreitung bei Addition und Subtraktion 15 1.2.1.1 ODarstellung von Dezimalbrüchen als Dualbrüche, Festkommaarithmetik 1 7 1.2.2 Gleitkommadarstellung 19 1.2.3 Alphanumerische Zeichen 25 2 Struktur eines Mikroprozessorsystems 28 2.1 Grundsätzlicher Systemaufbau 2 8 2.2 Speicher (Lese-, SchreibVLesespeicher) 30 2.3 DateneinV-ausgabe 3 2 2.4 Busstruktur 35 2.5 Mikroprozessor 3 6 3.6 Mikrocomputer und Mikrocomputersysteme 45 2.6.1 Unterbrechungstechnik (//i/e/rupftechnik) 47 2.6.2 Speicherverwaltung 50 2.6.3 Betriebssystem 53 2.6.4 Programme 55 * 2.6.4.1 Task und Prozeß 56 * 2.6.4.2 7a>Ardeskriptor 56 * ' 2.6.4.3 7as*zustände 57 3 Assemblerprogrammierung 60 i<j.l Symbolische Schreibweise 61 fc 3.1.1 Auszug aus der Befehlsliste 62? 3.1.2 Beispiel: Addition zweier Zahlen 65 I Assembler 66 3.2.1 Pseudoinstruktionen 69 3.2.2 Symboltabelle 71 3.2.3 Zweiphasenassembler 7 3 3.2.4 Assemblersyntax 74 3.2.5 Erweitertes Additionsbeispiel 75 3.2.6 Flußdiagramme 7 7
VI 4 Der Mikroprozessor M68000 4.1 Speicheradressierung und Datenorganisation 4.2 Stapelspeicher 4.3 Programmiermodell 4.3.1 Bedingungscoderegister CCR 4.3.2 Daten- und Adreßregister 4.3.3 Systembyte des Statusregisters 4.3.3.1 System- und Anwendermodus 4.3.3.2 Uberwachungsbit 4.3.3.3 //ire/rupfrnaskenbits 4.3.3.4 Tracebii 4.4 Adressierungsaiten 4.4.1 Operationswort 4.4.2 Allgemeines Befehlsformat 4.4.3 Übersicht über die Adressierungsarten 4.4.4 Adressierungsart Datenregister direkt 4.4.5 Adressierungsart Adreßregister direkt 4.4.6 Adressierungsart Adreßregister indirekt 4.4.7 Adressierungsart Adreßregister indirekt mit Postinkrement 4.4.8 Adressierungsart Adreßregister indirekt mit Predekrement 4.4.9 Adressierungsart Adreßregister indirekt mit Adreßdistanz d 16 4.4.10 Adressierungsart Adreßregister indirekt mit Adreßdistanz dg und Indexregister 4.4.1 1 Adressierungsart Absolut kurz 4.4.12 Adressierungsart Absolut lang 4.4.13 Adressierungsart Programmzählerrelativ mit Adreßdistanz d 16 4.4.14 Adressierungsart Programmzählerrelativ mit Adreßdistanz d 8 und Indexregister 4.4.15 Adressierungsart Unmittelbar 4.4.16 Adressierungsart Unmittelbar schnell 4.4.17 Adressierungsart Implizit 4.5 Ausgewählte Befehle 4.5.1 Bedingungscodes 4.5.2 Bedingte Verzweigung 4.5.3 Befehle ADDX (Add With Extend) und SUBX (.Subtract With Extend) 4.5.4 Befehle LSL (Logical Shift Leffi und LSR (Logical Shift Righf) 4.5.5 Befehle ASL (Arithmetic Shift Leff) und ASR (Arithmetic Shift Righf) 4.5.6 Befehle DBcc (Prüfe Bedingung, dekrementiere und verzweige) 4.5.7 Unterprogramme und Parameterübergabe, Befehle BSR, JSR, RTS 4.5.8 Befehle LEA (.Load Effective Address) und PEA (.Push Effective Address) 4.5.9 Befehle LINK und UNLK Wnlink) 4.5.10 Befehl CHK (.Check Register against Bounds) 4.6 Befehls- und Datenvorgriff 4.7 Verschiebbarer Code 4.8 Kommunikation mit Speicher und Peripherie über den Bus 4.8.1 Taktsignal CCLCK) 4.8.2 Der Bus 4.8.2.1 Der Synchrone Bus 4.8.2.2 Der Asynchrone Bus
VII 4.8.2.3 Bausteinauswahl und DTACK-Erzeugung 194 4.8.2.4 Beispiel Dekodierung und DTACK-Logik 197 4.8.2.5 Synchrone Buszyklen des M68OOO 200 4.8.3 Die Statusleitungen (FC2-FC0) 203 4.9 Ausnahmeverarbeitung 205 4.9.1 TRAP-Ausnahme 214 4.9.2 Privilegverletzungsausnahme 218 4.9.3 Weitere befehlsbedingte Ausnahmen 218 4.9.4 #ese/-ausnahme 220 4.9.5 Unterbrechungsausnahme 2 24 4.9.5.1 Nichtautovektorielle Unterbrechung 2 24 4.9.5.2 Beispiel Nichtautovektorielle Unterbrechung 2 28 4.9.5.3 Anwender-ISR 2 34 4.9.5.4 Autovektorielle Unterbrechung 2 35 4.9.6 Zusammentreffen mehererer Unterbrechungsanforderungen 237 4.9.7 Nicht initialisierte Unterbrechungsanforderung 243 4.9.8 Busfehlerausnahme 24 3 4.9.9 Adreßfehlerausnahme 249 4.9.10 Gleichzeitiges Auftreten mehrerer Ausnahmen 249 4.9.1 1 Gruppe O-Ausnahme während einer Gruppe O-Ausnahme 255 4.9.12 Undefinierter Interrupt 255 4.10 Buszuteilung 255 S Halbleiterspeicher 260 5.1 Nichtflüchtige Halbleiterspeicher 261 5.1.1 Read Only Memory (ROM) 261 5.1.2 Programmierbares Read Only Memory (PROM) 263 5.1.3 Löschbares PROM (EPROM. Erasable PROM) 264 5.1.4 Elektrisch löschbares PROM (EEPROM, Electrically Erasable PROM) 264 5.1.5 Nichtflüchtiges RAM (NVRAM, Non Volatile RAM) 265 5.2 Flüchtige Halbleiterspeicher 267 5.2.1 Statisches RAM 267 5.2.2 Dynamisches RAM 267 5.3 Flüchtige Speicher mit Schutz gegen Spannungsausfall 273 Gleitkommacoprozessor 68881 2 79 Befehlssatz 279 Zusätzliche Datenformate 2 8 1 Befehlsbeispiele 2 8 2 Programmiermodell 28 3 6.4.1 Modussteuerbyte 284 6.4.2 Byte Ausnahme zulassen 2 85 6.4.3 Bedingungscodebyte des Statusregisters 286 6.4.4 Ausnahmestatusbyte 286 '6.4.5 Byte Aufgetretene Ausnahmen 287.6.4.6 Register für Adresse der Gleitkommainstruktion 288 Coprozessorschnittstelle 2 88 Befehlsaufbau 289 Der Gleitkommaprozessor 68881 in M68O2O-Systemen 292 Kommunikationsprotokoll 295 Peripherer Prozessor 299
VIII 7 Direkter Speicherzugriff 301 7.1 7.2 7.3 7.4 7.4.1 7.4.2 7.4.3 8 8.1 8.2 8.2.1 8.2. 1.1 8.2. 1.2 8.2.2 8.2. 2.1 8.2. 2.2 8.2. 2.3 8.2. 2.4 8.2. 2.5 8.2. 2.6 8.3 8.3.1 8.3.2 8.3.3 Grundsätzliche Funktion eines DMA-Bausteins 302 Übertragung in zwei Buszyklen (Transfer mit zwei BusadresserO 304 Übertragung in einem Buszyklus CEinadreßtransfer) 306 Anforderungen an einen vielseitigen DMA-Steuerbaustein 307 Anforderungen durch Geräteschnittstellen 307 Anforderungen durch den Systembus 3 10 Anforderungen durch das Betriebssystem 311 Datenein-Aausgabe 317 Speicheradressierte EinVAusgabe 3 20 Parallel E/A-Baustein mit Zeitgeber 68230 321 Die ParalleleinV-ausgabe des 68230 322 Eingabequittungsbetrieb 322 Ausgabequittungsbetrieb 324 Die verschiedenen Modi und ihre Programmierung 3 26.1 Unidirektionaler 8 bit-modus - doppelt gepufferte Eingabe. einfach gepufferte Ausgabe 3 30.2 Bidirektionaler 16 bit-modus - doppelt gepufferte Eingabe. doppelt gepufferte Ausgabe 3 32 Zeitgebersektion des 68230 3 35 Funktionen 335 Register der Zeitgebersektion 3 36 Interne Struktur der Zeitgebersektion 3 36 Das Timer Control Register TCR 3 37 Periodische Unterbrechungsanforderungen 3 38 Watchdog Timer 3 39 Serieller Schnittstellenbaustein 3 40 Datenausgabe mit der Methode Aktives Warten 341 Datenausgabe durch einen tabellengesteuerten Treiber 343 Modifizierter Treiber für alle Bausteine gleichen Typs im System 3 56 9 Literatur 366 Anhang Befehle des M68OOO 367 Liste der Abkürzungen 4 1 4 Sachverzeichnis 416