ebook img

Mikroprozessortechnik : CISC, RISC. Systemaufbau. Assembler und C PDF

597 Pages·1998·40.687 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Mikroprozessortechnik : CISC, RISC. Systemaufbau. Assembler und C

Springer-Lehrbuch Springer-Verlag Berlin Heidelberg GmbH Thomas Flik . Hans Liebig Mikroprozessor technik CISC, RISC Systemaufbau Assembler und C 5., vollständig neubearbeitete Auflage mit 288 Abbildungen und 30 Tabellen Unter Mitwirkung von M. Menge Springer Dr.-Ing. Thornas Flik Prof. Dr.-Ing. Hans Liebig Technische Universität Berlin Institut für Technische Informatik Franklinstr. 28/29 10587 Berlin email: [email protected] [email protected] ISBN 978-3-662-08756-5 ISBN 978-3-662-08755-8 (eBook) DOI 10.1007/978-3-662-08755-8 Die deutsche Bibliothek -cIp-Einheitsaufnahme cIp-Eintrag beantragt Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und "Tabellen, der Funksendung, der Mikroverfilmung oder Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechts gesetzes. © Springer-Verlag BerUn Heidelberg 1998 Ursprünglich erschienen bei Springer-Verlag Berlin Heidelberg New York 1998. Softcover reprint ofthe hardcover 5th edition 1998 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daß solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Sollte in diesem Werk direkt oder indirekt auf Gesetze, Vorschriften oder Richtlinien (z.B. DIN, VDI, VDB) Bezug genommen oder aus ihnen zitiert worden sein, so kann der Verlag keine Gewähr für die Richtigkeit oder Aktualität übernehmen. Es empfiehlt sich, gegebenenfalls für die eigenen Arbeiten die vollständigen Vorschriften oder Richtlinien in der jeweils gültigen Fassung hinzuzuziehen. Satz: Reproduktionsreife Vorlage der Autoren Umschlaggestaltung:Design & Production, Heidelberg SPIN:I0662430 68/3020 -5 4 3 2 1 0 -Gedruckt auf säurefreien Papier Vorwort Das vorliegende Buch baut auf dem in vier Auflagen erschienenen Standardwerk Mikroprozessortechnik auf. In der fünften Auflage behandelt es die Technik der CISC- und RISC-Mikroprozessorsysteme in einer wesentlich erweiterten und gleichzeitig aktualisierten Form. Die Neuauflage erscheint so wiederum weit gehend neu konzipiert. Während in den früheren Auflagen mehr der Lehrbuch charakter dominierte, hat sich nun der Schwerpunkt in Richtung Nachschlagewerk mit ausführlichen Begriffserklärungen sowie einem umfangreichen Sachverzeich nis verlagert. Einen festen Stellenwert nehmen nach wie vor die Prinzipien der Rechnerorgani sation mit der für die Mikroprozessortechnik charakteristischen Detailtreue auf der Baustein- und Baugruppenebene ein. Insbesondere behandelt das Buch die für diese Technik notwendige Kombination von Hardware und Software für den Sy stemaufbau und das Zusammenspiel zwischen Prozessor, Bus und Speicher. Dar über hinaus wurde der Programmierung dieser Systeme besondere Bedeutung bei gemessen, und zwar in dieser Auflage erstmals in der Symbiose von Assembler und C, wie sie heute in der Praxis der Einbettung von Mikroprozessorsystemen üblich ist. (Durch die Ausweitung des Stoffes, verbunden mit dem Wandel im Charakter des Buches wurde auf die Aufgaben und Lösungen verzichtet. Die Fir menbeschreibungen von CISC- und RISC-Prozessoren führender Hersteller er scheinen nicht mehr als Extra-Kapitel, sondern sind nun mit ihren wichtigsten Merkmalen als Fallbeispiele in den Stoff integriert.) Die mit vielen Bildern und Tabellen versehene Präsentation des Stoffes soll es Studenten der einschlägigen Fachrichtungen sowie Entwicklungsingenieuren und Anwendern in den verschiedensten technischen Disziplinen ermöglichen, sich in die CISC- und RISC-Mikroprozessortechnik einschließlich ihrer Assembler- und maschinennahen Programmierung einzuarbeiten. Stoffauswahl und Darstellung lehnt sich zwar an die erfolgreichen Mikroprozessorsysteme mit Motorola-, Intel und SPARC-Prozessoren an, ist aber dennoch nicht an einen bestimmten Maschi nentyp gebunden und somit universell. Von Vorteil sind Kenntnisse im Logischen Entwurf digitaler Systeme sowie in höheren Programmiersprachen, insbesondere in C. Kapitell gibt eine Einführung in die Arbeitsweise, den Aufbau und die Assem blerprogrammierung von Mikroprozessorsystemen. Dieses Kapitel kann von Le sern übersprungen werden, denen die traditionellen Grundlagen der Rechnerorga nisation und der Assemblerprogrammierung bekannt sind. Lesern, die mit der VIII Vorwort RISC-Technologie nicht so vertraut sind, sei dennoch die Lektüre von Abschnitt 1.4 empfohlen, da die Kenntnis dieses Abschnitts insbesondere für das Verständ nis der Abschnitte 2.2 sowie der heute in diesem Zusammenhang besonders wich tigen Abschnitte 2.3 (Modeme CISC- und RISC-Architekturen) und 3.4 (RISC spezifische Programmierung) vorausgesetzt wird. Kapitel 2, mit Der Mikropro zessor überschrieben, behandelt die Architekturmerkmale der von CISC- und RISC-Techniken geprägten Mikroprozessoren von heute. Es bildet gleichzeitig die Grundlage für Kapitel 3, der Assemblerprogrammierung mit Gegenüberstellung von C-Programmen, in dem wichtige Programmierungstechniken für CISCs und RISCs beschrieben werden, wobei zu den exemplarisch gewählten Assembler Programmbeispielen ihre jeweiligen C-Entsprechungen mit angegeben sind. Ka pitel4, die Maschinennahe Programmierung in C, ist Programmierungstechniken gewidmet, die im Zusammenwirken von Hoch-und Assemblersprache eine effizi ente Programmierung auf hoher Abstraktionsebene erlauben, auch unter Einbezie hung des Betriebssystems. Kapitel 5 behandelt Busse und Systemstrukturen mit Schwerpunkt auf Ein- und Mehrbusstrukturen sowie Ein- und Mehrprozessorsystemen, auch in der Detail liertheit des Signalflusses zwischen Mikroprozessor und den einzelnen System bausteinen und Baugruppen. Kapitel 6 behandelt die Speicherorganisation, d.h. den Speicheraufbau unter Einbeziehung unterschiedlichster Speicherbausteine, die Techniken des schnellen Speicherzugriffs sowie die Organisation von Caches und die Speicherverwaltung mittels Speicherverwaltungseinheiten. Kapitel 7 behandelt die Ein-IAusgabeorganisation und Rechnerkommunikation mit der Beschreibung der gebräuchlichsten Interface-Techniken: hier werden insbesondere wichtige Schnittstellenvereinbarungen sowie verschiedene Interface-Bausteine und deren Einbeziehung in Mikroprozessorsysteme detailliert beschrieben. Hinzu kommen Erörterungen der Datenfemübertragung und von Rechnernetzen. Kapitel 8 behan delt schließlich Ein-IAusgabesteuereinheiten und Peripheriegeräte und ergänzt die Ausführungen von Kapitel 7 durch Ein-/Ausgabe-Controller und -computer sowie durch Hintergrundspeicher, Ein-/Ausgabegeräte und deren Anschluß über paral lele und serielle periphere Busse. Für die Mitwirkung an der fünften Auflage bedanken wir uns bei Frau Eveline Homberg für das Zeichnen der Bilder, bei Herrn Dipl.-Inform. Irenäus Schoppa für seine Beiträge zu Kapitel 3 sowie beim Springer-Verlag für die gute Zusam menarbeit. Über Verbesserungs vorschläge, Anregungen, Kritik (auch Hinweise auf Fehler) würden wir uns freuen. Berlin, im Frühjahr 1998 Thomas Flik [email protected] Hans Liebig [email protected] Matthias Menge [email protected] Inhaltsverzeichnis 1 Einführung in den Aufbau und die Programmierung von Mikroprozessorsystemen . 1 1.1 Informationsdarstellung 4 1.1. 1 Informationseinheiten . 4 1. 1. 2 Zeichen (characters) 5 1.1.3 Hexadezimal-und Oktalcode 7 1.1.4 Ganze Zahlen (binary numbers) 7 1.1.5 Gleitkommazahlen (floating-point numbers) . 11 1.1.6 Binärcodierte Dezimalziffem (BCD-Zahlen) . 14 1.2 Rechnerstruktur (CISC) 15 1.2.1 Übersicht über die Hardwarekomponenten 15 1.2.2 Busorientierte Systemstruktur . 19 1. 2.3 Mikroprozessor . 21 1.2.4 Speicher 27 1.2.5 Ein-/Ausgabeeinheit 31 1.3 Assemblerprogrammierung (CISC) 32 1.3. 1 Programmdarstellung . 33 1.3.2 Programmübersetzung (Assemblierung) 37 1.3.3 Programmeingabe und Textausgabe 44 1.4 Der RISC-Mikroprozessor 45 1.4.1 Prozessorstruktur 45 1.4.2 Maschinen-/Assemblerprogrammierung 53 2 Der Mikroprozessor . 61 2.1 CISC-Programmiermodell 63 2.1.1 Registersatz und Prozessorstatus . 63 2.1.2 Datenformate, Datentypen und Datenzugriff . 68 2.1.3 Adressierungsarten und Befehlsformate 71 2.1.4 Befehlssatz 80 2.1.5 Unterbrechungssystem und Betriebsarten 92 2.2 RISC-Programmiermodell 100 2.2.1 Registersatz und Prozessorstatus . 100 2.2.2 Datenformate, Datentypen und Datenzugriff . 105 X Inhaltsverzeichnis 2.2.3 Adressierungsarten und Befehlsformate . 106 2.2.4 Befehlssatz . . . . . . . . . . . 109 2.2.5 Unterbrechungssystem und Betriebsarten 115 2.3 Modeme CISC-und RISC-Architekturen . . 116 2.3.1 Parallel arbeitende Funktionseinheiten . 117 2.3.2 Konflikte bei superskalaren Prozessoren 123 2.3.3 Sprungvorhersage . . . . . . . . 139 3 Assemblerprogrammierung mit Gegenüberstellung von C-Programmen . . . . . . 145 3.1 Assemblersprache . . . . 146 3. 1 . 1 Algorithmendarstellung 146 3.1.2 Assemblersyntax und Assembleranweisungen 148 3.1.3 Feste und verschiebbare Programme . . 154 3.1.4 Makrobefehle und bedingte Assemblierung 158 3.2 Programmflußsteuerung . . . 161 3.2.1 Programmverzweigungen 161 3.2.2 Programmschleifen 173 3.3 Unterprogrammtechniken . . . 178 3.3.1 Unterprogrammanschluß 179 3.3.2 Parameterübergabe . . . 181 3.3.3 Geschachtelte Unterprogramme 187 3.3.4 Modulare Programmierung. 190 3.4 RISC-spezifische Programmierung 192 3.4.1 Lade-/Speichere-Problematik 194 3.4.2 Unterprogrammanschluß 196 3.4.3 Programmunterbrechungen 200 4 Maschinennahe Programmierung in C 206 (M. Menge) 4.1 Abstraktion von der Maschine . . . 207 4.1.1 Abstraktion durch das Betriebssystem . 208 4.1.2 Abstraktion durch den Übersetzer . . 210 4.2 C-Übersetzer mit Zuschnitt auf den Prozessor 212 4.2.1 Speicher-und Ein-/Ausgabezugriffe. 213 4.2.2 Datentypen . . . . . . . . . 214 4.2.3 Interrupts . . . . . . . . . . 215 4.2.4 Nutzung prozessorspezifischer Merkmale 218 4.2.5 Portabilität. . . . . . . . . . . . 219 Inhaltsverzeichnis XI 4.3 Standard-C mit Spezialisierung durch Assemblereinbindungen 222 4.3.1 Inline-Assembler 223 4.3.2 Assemblermodule . . . . . . . . . . 225 4.3.3 Startup-Code. . . . . . . . . . . . 230 4.4 C-Programmierung mit Betriebssystemunterstützung 232 4.4.1 Kommerzielle und frei verfügbare Betriebssysteme 232 4.4.2 Entwurf eines einfachen Betriebssystems. 235 5 Busse und Systemstrukturen . . . . 244 5.1 Systemaufbau und Systemstrukturen . 245 5. 1.1 Einkartensystem und Mikrocontroller 245 5.1.2 Busorientierte Mehrkartensysteme 246 5.1.3 Busfunktionen . . . . . . . . 249 5.1.4 Mehrbussysteme . . . . . . . 252 5.1.5 Einige gebräuchliche Busse und Einprozessorstrukturen 256 5. 1 .6 Mehrprozessorstrukturen 269 5.2 Adressierung der Systemkomponenten . . . . . 273 5.2.1 Isolierte und speicherbezogene Adressierung 273 5.2.2 Karten-, Block-und Bausteinanwahl . . . 275 5.2.3 Byte-, Halbwort-und Wortanwahl . . . . 277 5.2.4 Big-endian-und Little-endian-byte-Ordering. 279 5.2.5 Busankopplung. . . . . . . 285 5.3 Datentransportsteuerung . . . . . . 286 5.3.1 Synchroner und asynchroner Bus 287 5.3.2 Schreib-und Lesezyklen 289 5.3.3 Blockbuszyklus . 292 5.4 Busarbitration . . . . 294 5.4.1 Buszuteilung . . 296 5.4.2 Systemstrukturen 297 5.5 Interruptsystem und Systemsteuersignale 301 5.5.1 Codierte Interruptanforderungen . 302 5.5.2 Uncodierte Interruptanforderungen 306 5.5.3 Besondere Unterbrechungssignale 313 5.6 DerPCI-Local-Bus . . . . . . . . 315 5.6.1 Motivation und technische Daten. 315 5.6.2 Bussignale 317 5.6.3 Busoperationen . . . . . . . 321

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.