
Rechnerarchitektur für Dummies. Das Lehrbuch
Beschreibung
Weitere Details
Weitere Ausgaben
Person
Inhalt
Über den Autor 7
Einleitung 19
Über dieses Buch 20
Törichte Annahmen über den Leser 21
Was Sie nicht lesen müssen 22
Wie dieses Buch aufgebaut ist 22
Teil I: Grundlegendes zu Rechnerarchitekturen 22
Teil II: Das Kernelement: Der Prozessor 22
Teil III: Das Konzept der Speicherhierarchie 23
Teil IV: Vom Nutzen der Parallelverarbeitung 23
Teil V: Der Top-Ten-Teil 23
Symbole, die in diesem Buch verwendet werden 23
Wie es weitergeht 24
Teil I: Grundlegendes zu Rechnerarchitekturen 25
Kapitel 1 Blick aus der Vogelperspektive 27
Das Zeitalter der Computer 27
Embedded Systems und Ubiquitous Computing 28
Klassen von Rechnern 30
Der Begriff »Rechnerarchitektur« 33
Die Instruction Set Architecture (ISA) 34
Die Mikro-Architekturebene 38
Die Definition der Rechnerarchitektur aus meiner Sicht 38
Höchstintegration und die Grenzen des Wachstums 39
Steigerung der Anzahl der Transistoren auf einem Chip 39
Der Performance-Gap 42
Alternativen zur Steigerung der Taktrate 44
Fortschritte beim automatisierten Entwurf solcher Chips 45
Modellierungstechnik 47
Aufbaupläne (Instanzennetze) 48
Ablaufpläne (Petri-Netze) 51
Kapitel 2 Leistungsbewertung von Rechnern 55
Überblick über Leistungsmaße 56
MIPS und MFLOPS 57
Die Prozessorausführungszeit 58
Vereinfachung durch den CPI-Wert 61
Benchmarkprogramme 63
Das Gesetz von Amdahl 67
Teil II: Das Kernelement: Der Prozessor 71
Kapitel 3 Die von Neumann-Maschine 73
Die Komponenten eines von Neumann-Rechners 76
Der Prozessor 76
Die Ein-/Ausgabeeinheit 77
Der Hauptspeicher 78
Der Systembus 79
Charakteristika der von Neumann-Maschine 80
Interpretation der Informationskomponenten 80
Befehlszählerprinzip und die Abwicklung eines Programms 84
Prozesse und Strukturelemente in einem Rechner 87
Komponenten des Operationswerks 94
Speicherorganisation 104
Klassen von Prozessorarchitekturen 118
Das Steuerwerk 124
Kapitel 4 Programmiermodell und Assemblerprogrammierung 139
Charakteristische Merkmale der Hochsprachen-Programmierung 140
Charakteristische Merkmale der maschinennahen Programmierung 140
Das Programmiermodell 141
Assemblerprogrammierung 143
Der Befehlssatz des Prozessors 144
Adressierungsarten 150
Assemblerprogrammierung am Beispiel 158
Ablauf der Assemblierung 166
Unterprogrammtechnik 179
Kapitel 5 Kommunikation und Ausnahmeverarbeitung 193
Datenaustausch über den Systembus 193
Zeitverhalten am Systembus 194
Synchroner Bus 194
Semi-synchroner Systembus 197
Asynchroner Systembus 198
Bussysteme in der heutigen Praxis 202
Bus-Arbitration 203
Lokale Bus-Arbitration 203
Globale Bus-Arbitration 206
Priorisierung mehrerer Master 207
Zentrales Verfahren zur Busvergabe 207
Dezentrales Verfahren zur Busvergabe 208
Erweiterung des Prozessormodells 209
Ausnahmeverarbeitung 210
Einführung des Abwicklerverwalters 211
Klassifizierung von Unterbrechungen und Ausnahmeverarbeitungen 213
Priorisierung in einer Interruptebene 222
Modellierung des Hardware-Dispatchers 228
Ein-/Ausgabe-Interfaces und Synchronisation 234
Ein-/ Ausgabe-Interfaces 234
Informationelle Struktur eines Interface-Bausteins 235
Synchronisation mit peripheren Instanzen 236
Synchronisation durch Busy-Waiting 238
Synchronisation durch Programmunterbrechung 241
Synchronisation durch Handshake-Betrieb 241
Direkter Speicherzugriff DMA (Direct Memory Access) 243
Der DMA-Controller 246
Aufbau eines DMA-Controllers 247
Das Kommunikations-Interface PCI-Express 251
Teil III: Das Konzept der Speicherhierarchie 253
Kapitel 6 Speichersysteme im Rechner 255
Der optimale Rechner 255
Die Speicherhierarchie 257
Inhomogenität und Organisation der Speicherhierarchie 259
Lokalitätseigenschaften von Programmen 262
Prinzipieller Aufbau von Halbleiter-Speicherbausteinen 263
Festwertspeicher 264
Schreib-/Lesespeicher 265
Speicherzugriffe mittels Blockbuszyklen 271
Verschränkung von Speicherbänken (Interleaving) 272
Modularer Speicheraufbau 275
Organisation des Hauptspeichers 276
Praktische Ausprägung des Hauptspeicherzugriffs 278
Eine Lösung durch spezielle Chipsätze 280
Weitere Bausteintypen für Schreib-/Lesespeicher 283
Sekundärspeicher 285
Festplatten 286
Redundant Array of Inexpensive Disks (RAID) 288
Solid State Disks (SSD) 290
Unternehmensweite Speichersysteme (NAS und SAN) 290
Archivspeicher 292
Optische Plattenspeicher 292
Magnetbandspeicher 293
Kapitel 7 Cachespeicher 295
Das Problem der Zykluszeit 296
Die Idee des Cachings 296
Systemstrukturen für Caches 299
Look-aside-Cache 299
Look-through-Cache 300
Zugriff auf den Cachespeicher 301
Lesezugriffe 301
Schreibzugriffe 303
Die Idee des Assoziativspeichers 306
Verdrängungsstrategie und Alterungsinformation 308
Arbeitsweise des Cachespeichers 309
Trefferrate und Zugriffszeiten 309
Cache-Kohärenzproblem 310
Kohärenzproblem bei einem Cache-Hit 312
Kohärenzproblem bei Copy-back-Verfahren 312
Lösung des Kohärenzproblems 313
Strukturen von Cachespeichern 315
Der voll-assoziative Cachespeicher 316
Direkt zuordnender Cache (Direct-mapped Cache) 319
Mehrwege-Satz-assoziativer Cache (n-way Set-associative Cache) 322
Das MESI-Protokoll 325
Cachespeicher-Hierarchie 331
Kapitel 8 Virtuelle Speicherverwaltung 337
Die Idee des virtuellen Speichers 337
Das Problem der Speicherzuweisung 339
Die Memory Management Unit (MMU) 343
Zusammenfassung: Das Prinzip der virtuellen Speicherverwaltung 344
Segmentverwaltung 346
Das Seitenverfahren 356
Die zweistufige Adressumsetzung 365
Virtuelle und reale Cache-Adressierung 368
Virtuelle Cache-Adressierung 368
Reale Cache-Adressierung 370
Teil IV: Vom Nutzen der Parallelverarbeitung 373
Kapitel 9 Die Idee der Parallelisierung 375
Der Einfluss der Parallelisierung auf die Rechnerarchitektur 376
Charakteristika für eine Parallelisierung auf Hardwareebene 377
Mikroskopische oder makroskopische Parallelität 378
Symmetrische oder asymmetrische Strukturen 379
Feinkörnige oder grobkörnige Parallelität 380
Implizite oder explizite Parallelität 381
Typen paralleler Architekturen - die Taxonomie von Flynn 381
Single Instruction Single Data (SISD) 383
Single Instruction Multiple Data (SIMD) 383
Multiple Instruction Single Data (MISD) 384
Multiple Instruction Multiple Data (MIMD) 384
Performance von Multiprozessorsystemen und von Multicore-Prozessoren 386
Die Harvard-Architektur 389
CISC-Rechner und deren Probleme 389
Die Idee der RISC-Maschinen 390
Die Architektur eines RISC-Prozessors 391
Erweiterung der ALU um einen Bypass 395
Zusammenfassung 397
Synchronisation von Prozessen 398
Sequenzielle und parallele Prozesse 398
Gegenseitiger Ausschluss von Prozessen 400
Binäre Semaphore zur Synchronisation 402
Der Test-and-Set- Befehl für Semaphorvariablen 404
Kapitel 10 Fließbandverarbeitung 409
Die DLX-Pipeline 412
Leistungssteigerung durch Pipelining 415
Hardwarestruktur einer k-stufigen Pipeline 419
Pipeline-Hemmnisse 422
Datenabhängigkeiten 423
Lösung der Datenkonflikte 429
Strukturkonflikte 433
Lösungen von Strukturkonflikten 434
Steuerflusskonflikte 435
Kapitel 11 Parallele Pipelines und Superskalarität 441
Parallelisierung der Programmabwicklung 441
Pipelines mit mehreren Ausführungseinheiten 442
VLIW-Prozessoren 446
Superskalare Prozessoren 449
Prinzipielle Architektur einer superskalaren Pipeline 450
Sprungzielvorhersage 457
Statische Sprungzielvorhersage 459
Dynamische Sprungzielvorhersage 459
Superskalare Pipeline - eine Verbesserung 464
Core-Architektur 466
Leistungssteigerung durch Multithreading 468
Prozesse 468
Threads 469
Vorteile des Multithreading 470
Simultaneous Multithreading bei superskalaren Pipelines 474
Nachteile der auf Performance optimierten Prozessor-Hardware 475
Kapitel 12 Vom Prozessor zu Rechnersystemen 479
Cluster 480
Supercomputer 481
Grid Computing 482
Virtuelle Maschinen 484
Cloud Computing 486
Liefermodelle 487
Dienstleistungsmodelle 488
Kapitel 13 Die zukünftige Entwicklung 491
Taktfrequenzen und Miniaturisierung 491
Ein neuer Hoffnungsträger - Graphen 493
Nanotubes als Speichertechnologie 493
Optische Prozessoren 494
Architektur und Mikroarchitektur 495
Processing-in-Memory 496
Neuromorphe Hardware 497
Memristor 499
Quantencomputer 500
Qubits und Quantengatter 500
Superposition und Quantenparallelismus 501
Quantenverschränkung 503
Einsatzgebiete für Quantencomputer 505
Ein kurzes Resümee 506
Teil V: Der Top-Ten-Teil 507
Kapitel 14 Zehn Kernthemen zur Rechnerarchitektur 509
Höchstintegration für Rechnerchips 509
Die von Neumann-Architektur 510
Die Harvard-Architektur und die RISC-Maschinen 511
Die Instruction Set Architecture (ISA) 511
Die Speicherhierarchie 512
Cachespeicher 513
Virtueller Speicher 514
Fließbandverarbeitung 514
Superskalare Prozessoren 516
Quantencomputer 516
Kapitel 15 Mögliche Trugschlüsse 519
Assemblerprogrammierung ist immer schneller 519
Die übertragenen Daten pro Zeiteinheit 520
Lange Pipelines ergeben eine bessere Performance 520
Höhere Cache-Kapazität ergibt bessere Performance 521
Von Neumann-Architektur als Auslaufmodell 522
Multi-Prozessorsysteme sind stets performanter als Mono-Prozessorsysteme 522
Amdahls Gesetz bei parallelen Rechnern 523
Flash-Speicher statt Hauptspeicher 523
Multicore-Prozessoren in der Taxonomie von Flynn 524
Hoher Parallelitätsgrad bei Anwendungssoftware 524
Kapitel 16 Zehn Selbsttests zum Fachgebiet 527
Selbsttest zu Kapitel 1 527
Selbsttest zu Kapitel 2 und 3 528
Selbsttest zu Kapitel 4 529
Selbsttest zu Kapitel 4 und 5 529
Selbsttest zu Kapitel 3 und 6 530
Selbsttest zu Kapitel 9 und 10 531
Selbsttest zu Kapitel 10 und 11 531
Selbsttest zu Kapitel 7 und 11 532
Selbsttest zu Kapitel 8 533
Selbsttest zu Kapitel 13 533
Lösungen zu den Selbsttests 534
Wichtige Literatur 535
Abbildungsverzeichnis 537
Stichwortverzeichnis 545
Einleitung
Die Digitalisierung all unserer Lebensbereiche bedingt, dass Computer unser Leben in einem nie dagewesenen Umfang beeinflussen. Zu keiner Zeit war die Abhängigkeit von funktionierenden Rechnersystemen größer als heutzutage. Betrachten Sie Ihr Arbeitsleben, Ihre Umgebung oder Ihre Privatsphäre.
Es ist nun fast unmöglich, einen technischen Gegenstand zu finden, in dem kein Computer eingebaut ist. Von den mechanischen Uhren mal abgesehen; Smart Watch, Fitnessarmbänder, Kaffeeautomaten, Blue-Ray-Player, Smart-TVs, Anti-Blockiersysteme, Navigationssysteme und vieles mehr. Alles funktioniert nur deshalb, weil sich im Inneren dieser Systeme kleine Rechner befinden, die die gewünschte Funktionalität unsichtbar für den Nutzer erbringen. Auch die Trendthemen Industrie 4.0, Künstliche Intelligenz oder Autonomes Fahren, all diese sind heute nur deshalb so relevant, weil man über eine enorme Rechenpower verfügt, die diese Anwendungen erst möglich machen. Computer, wahlweise auch Rechner genannt, bilden die Grundlage für diese digitale Revolution.
Die Fülle an Informationen zum Thema Rechnerarchitektur in Form von Büchern und insbesondere von Materialien, die im Internet verfügbar sind, hat in den letzten Jahren stark zugenommen. Aber genau genommen hat nur die verfügbare Information darüber in dieser Fülle zugenommen, nicht das Wissen in den Köpfen der Menschen. Denn es gibt einen wesentlichen Unterschied zwischen Information und Wissen: Jedes Wissen basiert auf verarbeiteter Information, aber nicht jede Information bedeutet einen Zuwachs an Wissen. Um von der angebotenen Informationsflut auch profitieren zu können, braucht es ein fundiertes Grundwissen, an dem neue Information angedockt werden kann. Wie kompliziert und innovativ neue Rechnersysteme auch sind, die grundlegenden Konzepte eines Rechners, wie er aufgebaut ist und wie die Abwicklung jeglicher Software darauf erfolgt, ist in großen Teilen invariant gegenüber diesen Innovationen.
Digitalrechner stellen sogenannte informationelle Systeme dar, deren Funktion und Wirken erst dann verständlich wird, wenn man die beobachtbaren Sachverhalte interpretiert. So geht es nicht darum, dass ein Signal den Spannungswert 0,5 V besitzt, sondern darum, dass die mit dem Signal verbundene Variable den logischen Wert 0 besitzt, mit dem eine bestimmte Bedeutung verbunden ist. Deshalb werden in diesem Buch der Aufbau und die Funktion von Rechnern systemtechnisch modelliert. Die verwendete Modellierungstechnik ist die FMC-Methodik (Fundamental Modelling Concepts). Auf der Systemebene ist die Realisierung von Komponenten als Hardware oder als Software zweitrangig, die Funktion steht im Vordergrund. Die FMC-Methodik ist sowohl unabhängig von der gewählten Art der Realisierung eines Systems als auch vom aktuellen Stand der Technologie. Eine wichtige Eigenschaft dieser Modellierungstechnik ist also die Implementierungsunabhängigkeit der Systembeschreibung.
Über dieses Buch
Seit mehr als 20 Jahren vertrete ich das Lehrgebiet »Rechnerarchitektur« an der Hochschule und ich habe in zahlreichen Semestern und Prüfungen erfahren, was die Sicht der Studierenden auf das Thema erhellt und was eher als schwierig empfunden wird. In diesem Buch habe ich versucht, diese Kenntnis einzuarbeiten. Bei den technischen Informatikern kann man auf viele Details eines Rechnersystems eingehen, was natürlich einen umfassenden Einblick in die technischen Zusammenhänge erlaubt; das sind Details, die aber Wirtschaftsinformatiker gar nicht interessieren. Diese sind an den grundlegenden Prinzipien interessiert und möchten die Thematik funktional und prozessorientiert verstehen. Je weniger tief man in das Fachgebiet eintauchen will, umso klarer müssen die funktionalen Aspekte herausgearbeitet werden, da man auf die Detailfülle verzichtet.
Die Kunst besteht dabei im Weglassen unwichtiger Informationen und im Abstrahieren von wichtigen Informationen. Illustrationen, die in diesem Buch sehr häufig verwendet werden, verringern die Detailmengen und unterstützen somit die Wissensverarbeitung. Ich halte es in diesem Buch mit einer Aussage des bekannten französischen Schriftstellers Antoine de Saint-Exupéry: »Perfektion wird nicht darin erreicht, wenn man nichts mehr hinzufügen kann, sondern wenn nichts mehr weggelassen werden kann.«
Es ist klar, dass ich dieses Buch nicht hätte schreiben können, ohne dass ich viel von anderen gelernt hätte. Insbesondere die in diesem Buch verwendete Art der Modellierung von informationsverarbeitenden Systemen mittels der Methodik der Fundamental Modelling Concepts stammt nicht von mir, sondern wurde ursprünglich von Prof. Dr. Siegfried Wendt konzipiert und wurde in den letzten Jahrzehnten von anderen Autoren verfeinert und an vielen Stellen erfolgreich eingesetzt. Diese Methodik durfte ich als Student kennen und später als wissenschaftlicher Mitarbeiter schätzen lernen. Ich habe sie dann auch in der eigenen Lehre konsequent eingesetzt.
Ich erinnere mich an die Erzählung eines unserer Studierenden, als wir uns anlässlich einer Veranstaltung etwa drei Jahre nach seinem Abschluss wieder trafen. Er hatte nach dem Studium bei der Firma SAP angefangen und musste sich damals mit der Konzeption des neuen Produkts SAP HANA befassen; einer Technologie, die aus Performancegründen die schnelle In-Memory-Technik nutzt. Seine Aussage war, dass er zur Einarbeitung in diese komplexe Thematik erst einmal wieder die Unterlagen des Rechnerarchitektur-Kurses, den er bei mir gehört hatte, durchgearbeitet habe und sich auf dieser Basis weiter in die neuen Systeme einarbeiten konnte. Das hat mir dann doch Hoffnung gemacht, dass die Inhalte nützlich sein können.
Dieses Buch vermittelt Ihnen, beginnend von den Grundlagen bis hin zu Zukunftstechnologien, ein fundiertes Wissen zum Thema »Rechnerarchitektur«. Alle wichtigen Strukturen, Funktionsprinzipien und Konzepte, gemischt mit anschaulichen Beispielen, werden Sie in diesem Buch finden, ganz im Sinne der . für Dummies-Reihe.
Gegenüber anderen auf dem Markt befindlichen Büchern zeichnet sich dieses Buch dadurch aus, dass das Grundsätzliche an den hier behandelten Systemen und Mechanismen realisierungsunabhängig verstanden werden kann. Dies liegt im Wesentlichen an der verwendeten Modellierungstechnik. Immer dann, wenn es nötig ist, einen konkreten, realen Prozessor zu betrachten, nehme ich auf die Prozessoren der M68xxx-Serie von Motorola Bezug, da diese didaktisch sehr gut geeignet sind, um beispielsweise die Architektur und die Grundlagen der Assemblerprogrammierung zu vermitteln. Dadurch ist es möglich, Sachverhalte an konkreten, realen Systemen zu studieren.
Wenn man sich nicht auf einen bestimmten Prozessortyp festlegen will, wäre es sicherlich in einem Lehrbuch über Computer auch möglich, einen fiktiven Modellprozessor einzuführen, an dem dann die relevanten Sachverhalte diskutiert werden können. Ich habe mich dennoch für ein exemplarisches Vorgehen entschieden. Ein Problem liegt sicher in der Auswahl der Typenvielfalt der am Markt angebotenen Prozessoren. Obwohl mir bewusst ist, dass der Markt momentan von anderen Prozessoren beherrscht wird, bin ich trotzdem bei diesem Prozessortyp M68xxx geblieben. Der Befehlssatz eines neueren Prozessors, wie beispielsweise dem Intel Prozessor Core i7, ist viel zu komplex, um ihn im Detail in diesem Buch zu behandeln. Dies wäre dem Ziel dieses Buchs, nämlich ein grundlegendes Verständnis zu erlangen, nicht dienlich gewesen.
Das Umsteigen auf andere Prozessortypen wird den Anwender nicht vor grundsätzlich neue Probleme stellen. Hier liegt der Vergleich mit einer Fahrschule nahe. Dort lernt man in der Regel auch auf einem bestimmten PKW fahren und sich nach deutscher Straßenverkehrsordnung zu bewegen. Im theoretischen Unterricht lernt man außerdem etwas über den Aufbau und die Arbeitsweise des Automobils. Wenn man den Führerschein erst mal erworben hat, kann man aber mit geringer Mühe auch andere PKW-Typen fahren und sich auch im Ausland, beispielsweise mit Linksverkehr, mit etwas Übung bewegen.
Törichte Annahmen über den Leser
Ich nehme an, dass Sie sich, lieber Leser, für das Thema »Rechnerarchitektur« interessieren und tiefere Erkenntnisse dazu gewinnen möchten. Zu dieser Thematik gibt es zwar eine Menge an Literatur und Büchern, teils mit sehr vielen Details, aber Sie möchten das Thema vermutlich gerne von einer übergeordneten Warte aus kennenlernen oder vertiefen.
Höchstwahrscheinlich gehören Sie zu den Studierenden technischer Fachrichtungen, wie beispielsweise der Informatik, der Elektrotechnik oder der Mechatronik, und wollen oder müssen das Fach »Rechnerarchitektur« im Rahmen Ihres Studiums absolvieren. Die Klausur rückt näher und Sie suchen nach einem systematischen Zugang zur Thematik.
Vielleicht sind Sie aber auch Experte zum Thema »Rechnerarchitektur«. Trotzdem kann es durchaus hilfreich sein, eine Darstellung dieses Fachgebiets vor sich zu haben, die Ihnen vielleicht Ideen oder Zusammenhänge aufzeigt, die Sie vorher so nicht gesehen haben.
Auch Informatiker und Ingenieure aus der Praxis sowie Fachkräfte aus dem technischen Bereich könnten im Rahmen einer Weiterbildung am Thema »Rechnerarchitektur«...
Systemvoraussetzungen
Dateiformat: ePUB
Kopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
- Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
- Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
- E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an.
Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.
Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.