Rechneraufbau und Rechnerstrukturen von Walter Oberschelp RWTH Aachen und Gottfried Vossen Universität Münster 10. Auflage c 2006 R. Oldenbourg Verlag GmbH, München
Inhaltsverzeichnis Auszug... x... aus dem Vorwort zur ersten Auflage x... aus dem Vorwort zur dritten Auflage xi... aus dem Vorwort zur sechsten Auflage xii... aus dem Vorwort zur siebten Auflage xv... aus dem Vorwort zur neunten Auflage xvi Vorwort zur zehnten Auflage xvii 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 Körpersummendarstellung Boolescher Funktionen............ 27 1.6 NAND- und NOR-Darstellungen..................... 29 1.7 Übungen................................... 32 1.8 Bibliographische Hinweise......................... 38 2 Multiplexer und Addiernetze als spezifische Schaltnetze 39 2.1 Vorüberlegungen zur Synthese von Schaltnetzen............. 39 2.2 Multiplexer zur Realisierung Boolescher Funktionen.......... 42 2.3 Demultiplexer, Decoder und Encoder................... 51 2.4 Addiernetze mit Halb- und Volladdierern................ 55 2.5 Beschleunigung der Übertragsberechnung................ 62 2.6 Übungen................................... 68 2.7 Bibliographische Hinweise und Ergänzungen............... 70 v
vi Inhalt 3 Optimierung und Test von Schaltnetzen 71 3.1 Vereinfachung von Schaltnetzen...................... 71 3.1.1 Das Verfahren von Karnaugh................... 71 3.1.2 Das Verfahren von Quine und McCluskey............ 78 3.2 Fehlerdiagnose von Schaltnetzen..................... 83 3.3 Hasards in Schaltnetzen.......................... 87 3.4 Übungen................................... 96 3.5 Bibliographische Hinweise und Ergänzungen............... 99 4 OBDDs und Komplexität 101 4.1 Geordnete binäre Entscheidungs-Diagramme (OBDD)......... 101 4.1.1 Boolesche Differentiation und Shannon-Entwicklung...... 101 4.1.2 Entscheidungsbäume........................ 105 4.1.3 OBDDs............................... 109 4.2 Vereinfachung und Komposition von OBDDs.............. 113 4.3 Überdeckungsmatrizen und Minimalüberdeckungen........... 121 4.4 NP-vollständige Probleme......................... 125 4.5 Übungen................................... 128 4.6 Bibliographische Hinweise......................... 130 5 Schaltungen mit Delays (Schaltwerke) 131 5.1 Einführung................................. 131 5.2 Zur technischen Realisierung von Delays................. 138 5.3 Addierwerke................................. 139 5.3.1 Parallel- und Serienaddierer.................... 139 5.3.2 Das von Neumann-Addierwerk.................. 142 5.4 Lineare Schaltkreise und Anwendungen................. 147 5.4.1 Lineare Schaltkreise........................ 148 5.4.2 Pseudo-Zufallszahlen und zyklische Linearcodes......... 150 5.5 Übungen................................... 157 5.6 Bibliographische Hinweise......................... 159 6 Darstellung von Daten im Rechner. Rechnerarithmetik 161 6.1 Darstellung ganzer Zahlen. Subtraktion................. 161 6.2 Darstellung von Gleitkomma-Zahlen................... 167 6.3 Rechnerarithmetik, insbesondere Multiplikation............. 173 6.4 Darstellung alphanumerischer Daten................... 178 6.4.1 Der ASCII-Code.......................... 178 6.4.2 Der Unicode............................ 180 6.5 Übungen................................... 183 6.6 Bibliographische Hinweise......................... 186 7 Programmierbare Logik und VLSI 189 7.1 Einführung................................. 189 7.2 Aufbau eines PLAs............................. 190 7.3 Programmierung von PLAs........................ 196 7.4 Anwendungen von PLAs: ROMs und Mikroprogrammierung...... 200 7.5 Klassifikation von Logik-Designs..................... 207
Inhalt vii 7.6 Einführung in VHDL............................ 212 7.7 VLSI-Schaltungen: Technologie und deren Grenzen........... 216 7.8 Übungen................................... 219 7.9 Bibliographische Hinweise......................... 221 II Rechnerarchitektur (Globale Konzepte) 223 8 Organisationsplan eines Von-Neumann-Rechners 227 8.1 Einführung................................. 227 8.2 Die Arbeitsweise einer Zentraleinheit (CPU)............... 232 8.3 Der Speicher................................ 234 8.4 Die E/A-Einheit. Das Konzept des Interrupts.............. 238 8.5 Busse.................................... 242 8.6 Klassifikation von Von-Neumann-Rechnern............... 245 8.6.1 Globale Rechner-Klassifikationen................. 247 8.6.2 Lokale Prozessor-Klassifikationen................. 250 8.7 Alternativen zum Von-Neumann-Konzept................ 254 8.8 Übungen................................... 257 8.9 Bibliographische Hinweise......................... 259 9 Architektur und Maschinenbefehle eines RISC-Prozessors 261 9.1 Die Architektur der PowerPC-Familie.................. 262 9.2 Befehlsformate und Befehlssatz des PowerPC 601............ 270 9.2.1 Arithmetische und logische Befehle................ 271 9.2.2 Load/Store-Befehle......................... 274 9.2.3 Floating-Point-Befehle....................... 275 9.2.4 Prozessor-Kontroll-Instruktionen................. 275 9.3 Assemblerprogrammierung und Beispielprogramme........... 275 9.4 PowerPC-Versionen............................. 282 9.5 Übungen................................... 284 9.6 Bibliographische Hinweise......................... 286 10 Eine Register-Speicher-Architektur. Rechnersteuerung 287 10.1 Architektur und Befehle des AT&T WE32100.............. 287 10.1.1 Zur Assembler-Sprache des WE32100.............. 290 10.1.2 Adressierungsarten......................... 294 10.1.3 Befehle und Programmbeispiele.................. 295 10.1.4 Unterschiede zum PowerPC.................... 302 10.2 Assembler, Linker und Lader....................... 303 10.2.1 Der Assembler........................... 303 10.2.2 Der Linker............................. 306 10.2.3 Der Lader.............................. 308 10.3 Rechnersteuerung, insbesondere durch Mikroprogrammierung..... 309 10.4 Übungen................................... 318 10.5 Bibliographische Hinweise......................... 321
viii Inhalt 11 Optimierung von Ressourcen-Nutzung und Prozessorleistung 323 11.1 Virtuelle Speicherverwaltung....................... 324 11.1.1 Aufgaben von Betriebssystemen................. 324 11.1.2 Virtuelle Speicherung mittels Paging............... 328 11.1.3 Segmentierung........................... 331 11.1.4 Beispiel einer hardware-mäßigen Unterstützung: Cache und MMU des PowerPC.................. 335 11.1.5 Adresstransformation beim PowerPC............... 340 11.2 Pipelining.................................. 343 11.2.1 Grundlegende Ideen........................ 343 11.2.2 Superskalare Befehlszuordnung.................. 346 11.2.3 Pipeline-Hasards.......................... 347 11.3 Dynamisches Scheduling von Instruktionen nach Tomasulo....... 349 11.4 Weitere ILP-Techniken........................... 356 11.5 Grenzen der Parallelarbeit: Scheduling bei zwei Prozessoren...... 357 11.6 Übungen................................... 361 11.7 Bibliographische Hinweise......................... 365 12 Weitere Prozessor-Beispiele 367 12.1 Zilog-Prozessoren.............................. 367 12.1.1 Zilog Z80.............................. 367 12.1.2 Moderne Zilog-Prozessoren.................... 371 12.2 Intel-Prozessoren.............................. 372 12.2.1 Intel 8086 und 8088........................ 372 12.2.2 Intel 80386 und 80486....................... 375 12.2.3 Intel Pentium............................ 376 12.2.4 Pentium Pro............................ 380 12.2.5 Pentium II und III......................... 382 12.2.6 Pentium 4 und Nachfolger..................... 382 12.3 Motorola-Prozessoren........................... 383 12.3.1 Motorola 68000........................... 384 12.3.2 Motorola 68020........................... 387 12.3.3 Motorola 68030, 68040 und 68060................. 388 12.3.4 DragonBall-Prozessoren...................... 388 12.4 SPARC-Prozessoren............................ 390 12.5 Eingebettete Prozessoren und Systeme.................. 395 12.6 Übungen................................... 399 12.7 Bibliographische Hinweise und historische Ergänzungen........ 400 III Parallelverarbeitung (Alternative Rechnerkonzepte) 403 13 Grund-Konzepte und -Modelle für die Parallelverarbeitung 407 13.1 VLSI-Algorithmen. Systolische Netze................... 407 13.2 SIMD-Rechner. Das Speicherproblem. Die PRAM............ 417 13.3 Kommunikation bei verteiltem Speicher: Superkonzentratoren..... 421 13.4 Spezielle Permutationsnetze: Ring, Shuffle, Mesh, Hypercube..... 426 13.5 Beispiel: Matrix-Multiplikation auf dem Hypercube........... 433
Inhalt ix 13.6 Routing in programmierbaren Permutationsnetzen. Das Ω-Netz als Bidelta-Netz........................ 438 13.7 Universalität von Permutationsnetzen. Die Netze von Beneš und Clos 446 13.8 Übungen................................... 450 13.9 Bibliographische Hinweise und Ergänzungen............... 454 14 Parallelrechner-Architekturen 457 14.1 Übersicht.................................. 457 14.2 SIMD-Architekturen............................ 459 14.3 MIMD-Architekturen............................ 468 14.3.1 Shared-Memory-MIMD-Rechner................. 472 14.3.2 Distributed-Memory-MIMD-Rechner............... 476 14.4 Netzwerk-Architekturen.......................... 478 14.4.1 Cluster............................... 478 14.4.2 Grid-Computing.......................... 479 14.5 Übungen................................... 480 14.6 Bibliographische Hinweise und Ergänzungen............... 481 15 Grundlagen der Rechnernetz-Technik 485 15.1 Einführung................................. 485 15.2 Das ISO-Referenz-Modell......................... 488 15.3 Codierung von Daten in Netzen...................... 499 15.4 Lokale Netze................................ 502 15.4.1 Charakteristika........................... 503 15.4.2 Topologien und Übertragungsmedien............... 504 15.4.3 Netzzugangsverfahren....................... 506 15.4.4 Hochgeschwindigkeitsnetze.................... 513 15.5 Globale Netze. Das Internet........................ 514 15.5.1 Charakteristika........................... 514 15.5.2 Das Internet............................ 515 15.5.3 TCP/IP-Protokolle......................... 515 15.5.4 Das World-Wide Web....................... 519 15.5.5 Die Arbeitsweise einer Suchmaschine am Beispiel Google... 521 15.5.6 Ausblick............................... 527 15.6 Übungen................................... 528 15.7 Bibliographische Hinweise......................... 529 Literaturverzeichnis 531 Index 548