Rechneraufbau und Rechnerstrukturen von Prof. Dr. em. Walter Oberschelp, RWTH Aachen und Prof. Dr. Gottfried Vossen, Universität Münster 9. Auflage Oldenbourg Verlag München Wien
Inhaltsverzeichnis Vorwort zur ersten Auflage Vorwort zur dritten Auflage Vorwort zur sechsten Auflage Vorwort zur siebten Auflage Vorwort zur neunten Auflage x xii xiv xviü xx I Bausteine und Lokale Grundkonzepte 1 1 Schaltfunktionen und ihre Darstellung 5 1.1 Zahlendarstellungen 5 1.2 Boolesche Algebra 7 1.3 Schaltfunktionen und Boolesche Funktionen 11 1.4 Schaltnetze 21 1.5 Ringsummendarstellung Boolescher Funktionen 26 1.6 Geordnete binäre Entscheidungs-Diagramme (OBDD) 29 1.7 Übungen 32 1.8 Bibliographische Hinweise 36 2 Spezifische Schaltnetze und ihre Verbesserung 37 2.1 Entwurf von Schaltnetzen: Vorüberlegungen 37 2.2 Multiplexer und andere Bausteine zur Realisierung Boolescher Funktionen 41 2.3 Addiernetze 54 2.4 Vereinfachung von Schaltnetzen 64 2.4.1 Das Verfahren von Karnaugh 64 2.4.2 Das Verfahren von Quine und McCIuskey 72 2.5 Vereinfachung und Komposition von OBDDs 78 2.6 Fehlerdiagnose von Schaltnetzen 85
vi Inhalt 2.7 Hasards in Schaltnetzen 89 2.8 Übungen 97 2.9 Bibliographische Hinweise und Ergänzungen 101 3 Das Überdeckungsproblem als Optimierungsaufgabe 103 3.1 Überdeckungsmatrizen 103 3.2 Minimalüberdeckungen 104 3.3 Übungen 112 3.4 Bibliographische Hinweise 113 4 Schaltungen mit Delays (Schaltwerke) 115 4.1 Einführung 115 4.2 Addierwerke 121 4.3 Lineare Schaltkreise und Schieberegister (LSR) 131 4.4 Anwendungen von LSRs: Pseudo-Zufallszahlen und zyklische Linearcodes 133 4.5 Übungen 140 4.6 Bibliographische Hinweise 141 5 Darstellung von Daten im Rechner. Rechnerarithmetik 143 5.1 Darstellung ganzer Zahlen. Subtraktion 143 5.2 Darstellung von Gleitkomma-Zahlen 151 5.3 Rechnerarithmetik, insbesondere Multiplikation 156 5.4 Darstellung alphanumerischer Daten 161 5.5 Übungen 162 5.6 Bibliographische Hinweise 165 6 Programmierbare Logik und VLSI 167 6.1 Aufbau eines PLAs 167 6.2 Zur Programmierung von PLAs 174 6.3 Anwendungen von PLAs: ROMs und Mikroprograminierung 177 6.4 Komplexes Logik-Design 185 6.5 VLSI-Schaltungen 192 6.6 Übungen 195 6.7 Bibliographische Hinweise 196 II Rechnerarchitektur (Globale Konzepte) 199 7 Organisationsplan eines Von-Neumann-Rechners 203 7.1 Einführung 203 7.2 Die Arbeitsweise einer Zentraleinheit (CPU) 207 7.3 Der Speicher 210 7.4 Die E/A-Einheit. Das Konzept des Interrupts 214 7.5 Busse 217 7.6 Klassifikation von Von-Neumann-Rechnern 222 7.6.1 Globale Rechner-Klassifikationen 222 7.6.2 Lokale Prozessor-Klassifikationen 226
Inhalt vü 7.7 Alternativen zum Von-Neumann-Konzept 229 7.8 Übungen 232 7.9 Bibliographische Hinweise 234 8 Architektur und Maschinenbefehle eines RISC-Prozessors 237 8.1 Die Architektur der PowerPC-Familie 238 8.2 Befehlsformate und Befehlssatz des PowerPC 601 246 8.2.1 Arithmetische und logische Befehle 246 8.2.2 Load/Store-Befehle 250 8.2.3 Floating-Point-Befehle 250 8.2.4 Prozessor-Kontroll-Instruktionen 251 8.3 Assemblerprogramrnierung und Beispielprogramme 251 8.4 PowerPC-Versionen 258 8.5 Übungen 261 8.6 Bibliographische Hinweise 261 9 Eine Register-Speicher-Architektur. Rechnersteuerung 263 9.1 Architektur und Befehle des AT&T WE32100 263 9.1.1 Zur Assembler-Sprache des WE32100 266 9.1.2 Adressierungsarten 270 9.1.3 Befehle und Programmbeispiele 271 9.1.4 Unterschiede zum PowerPC 278 9.2 Assembler, Linker und Lader 279 9.2.1 Der Assembler 279 9.2.2 Der Linker 282 9.2.3 Der Lader 283 9.3 Rechnersteuerung, insbesondere durch Mikroprogrammierung 285 9.4 Übungen 293 9.5 Bibliographische Hinweise 296 10 Maßnahmen zur Leistungssteigerung 297 10.1 Hardwaremäßige Unterstützung virtueller Speicherverwaltung 297 10.1.1 Aufgaben von Betriebssystemen 298 10.1.2 Virtuelle Speicherung und Paging 301 10.1.3 Segmentierung 304 10.1.4 Cache und MMU des PowerPC 306 10.1.5 Adresstransformation beim PowerPC 312 10.2 Pipelining 313 10.2.1 Grundlegende Ideen 313 10.2.2 Superskalare Befehlszuordnung 315 10.2.3 Pipeline-Hasards 316 10.3 Very Large Instruction Words 318 10.4 Grenzen der Parallelarbeit: Scheduling bei zwei Prozessoren 319 10.5 Übungen 323 10.6 Bibliographische Hinweise 325
Inhalt 11 Weitere Prozessor-Beispiele 327 11.1 Zilog-Prozessoren 327 11.1.1 ZilogZ80 327 11.1.2 Moderne Zilog-Prozessoren 331 11.2 Intel-Prozessoren 332 11.2.1 Intel 8086 und 8088 332 11.2.2 Intel 80386 und 80486 334 11.2.3 Intel Pentium 336 11.2.4 Pentium Pro 340 11.2.5 Pentium II und III 342 11.2.6 Pentium 4 343 11.3 Motorola-Prozessoren 343 11.3.1 Motorola 68000 344 11.3.2 Motorola 68020 347 11.3.3 Motorola 68030 und 68040 348 11.3.4 DragonBall-Prozessoren 348 11.4 SPARC-Prozessoren 349 11.5 Übungen 354 11.6 Bibliographische Hinweise und historische Ergänzungen 355 III Parallelverarbeitung (Alternative Rechnerkonzepte) 359 12 Grund-Konzepte und -Modelle für die Parallelverarbeitung 363 12.1 VLSI-Algorithmen. Systolische Netze 363 12.2 SIMD-Rechner. Das Speicherproblem. Die PRAM 373 12.3 Kommunikation bei verteiltem Speicher: Superkonzentratoren 376 12.4 Spezielle Permutationsnetze: Ring, Shuffle, Mesh, Hypercube 382 12.5 Beispiel: Matrix-Multiplikation auf dem Hypercube 388 12.6 Routing in programmierbaren Permutationsnetzen. Das O-Netz als Bidelta-Netz 395 12.7 Universalität von Permutationsnetzen. Die Netze von Benes und Clos 401 12.8 Übungen 406 12.9 Bibliographische Hinweise und Ergänzungen 411 13 Parallelrechner-Architekturen 415 13.1 Übersicht 415 13.2 SIMD-Architekturen 418 13.3 MIMD-Architekturen 427 13.3.1 Shared-Memory-MIMD-Rechner 431 13.3.2 Distributed-Memory-MIMD-Rechner 435 13.4 Netzwerk-Architekturen 437 13.4.1 Cluster 437 13.4.2 Grid-Computing 438 13.5 Übungen 439 13.6 Bibliographische Hinweise und Ergänzungen 440
Inhalt ix 14 Grundlagen der Rechnernetz-Technik 443 14.1 Einführung 443 14.2 Das ISO-Referenz-Modell 446 14.3 Codierung von Daten in Netzen 457 14.4 Lokale Netze 460 14.4.1 Charakteristika 460 14.4.2 Topologien und Übertragungsmedien 461 14.4.3 Netzzugangsverfahren 464 14.4.4 Hochgeschwindigkeitsnetze 471 14.5 Globale Netze. Das Internet 472 14.5.1 Charakteristika 472 14.5.2 Das Internet 473 14.5.3 TCP/IP-Protokolle 474 14.5.4 Das World-Wide Web 477 14.5.5 Die Arbeitsweise einer Suchmaschine am Beispiel Google... 479 14.5.6 Ausblick 485 14.6 Übungen 486 14.7 Bibliographische Hinweise 487 Literaturverzeichnis 489 Index 505