Vorwort | 5 |
Teil 1: Grundlagen | 15 |
1 Einleitung | 17 |
1.1 Grundbegriffe | 17 |
1.2 Einheiten | 19 |
1.3 Geschichte | 20 |
1.4 Arten von Computern | 22 |
2 Allgemeiner Aufbau eines Computersystems | 29 |
2.1 Blockdiagramm und grundlegende Abläufe | 29 |
2.2 Detaillierteres Computermodell | 32 |
2.3 Speicher und E/A-Bausteine | 33 |
2.4 Prozessor und Busse | 36 |
2.5 Taxonomien | 38 |
3 Performance und Performanceverbesserung | 41 |
3.1 Angabe der Rechenleistung | 41 |
3.2 Caching | 44 |
3.2.1 Caching beim Lesen von Daten | 44 |
3.2.2 Caching beim Schreiben von Daten | 46 |
3.2.3 Cacheable Area | 48 |
3.2.4 Cache-Hierarchien | 48 |
3.3 Pipelining | 51 |
4 Verbreitete Rechnerarchitekturen | 57 |
4.1 CISC-Architektur | 57 |
4.2 RISC-Architektur | 58 |
4.3 VON-NEUMANN-Architektur | 62 |
4.4 Harvard-Architektur | 65 |
Teil 2: Digitaltechnik | 69 |
5 Grundlegende BOOLEsche Verknüpfungen | 71 |
5.1 BOOLEsche Algebra und Digitaltechnik | 71 |
5.2 Gatter | 72 |
5.2.1 Treiber und Identität | 72 |
5.2.2 Inverter und Negation | 75 |
5.2.3 UND-Gatter und Konjunktion | 76 |
5.2.4 NAND | 78 |
5.2.5 ODER-Gatter und Disjunktion | 79 |
5.2.6 NOR | 81 |
5.2.7 XOR und Antivalenz | 82 |
5.2.8 XNOR und Äquivalenz | 83 |
5.3 Gesetze der BOOLEschen Algebra | 84 |
6 Komplexere Schaltnetz-Komponenten | 87 |
6.1 Adressdecoder | 87 |
6.2 Multiplexer und Demultiplexer | 89 |
6.2.1 Multiplexer 2:1 | 89 |
6.2.2 Demultiplexer 1:2 | 90 |
6.2.3 Multiplexer n:1 | 91 |
6.2.4 Demultiplexer 1:n | 92 |
6.2.5 Multiplexer m × n:n | 94 |
6.3 Varianten der Schaltzeichen | 96 |
6.4 Digitaler Komparator | 98 |
6.5 Addierer | 99 |
6.6 ALU | 99 |
7 Schaltwerke | 101 |
7.1 RS-Flipflop | 101 |
7.2 Arten von Eingängen | 103 |
7.2.1 Vorrangige Eingänge | 103 |
7.2.2 Taktzustandssteuerung | 104 |
7.2.3 Taktflankensteuerung | 105 |
7.2.4 Asynchrone Eingänge | 106 |
7.3 D-Flipflop | 106 |
7.4 Register und Schieberegister | 107 |
7.5 T-Flipflop | 109 |
7.6 JK-Flipflop | 110 |
7.7 Zähler | 111 |
Teil 3: Arithmetik | 113 |
8 Zahlendarstellung | 115 |
8.1 Vorzeichen-Betrags-Darstellung | 116 |
8.2 Einerkomplement | 119 |
8.3 Zweierkomplement | 121 |
9 Arithmetische und logische Operationen | 125 |
9.1 Arithmetische Operationen | 125 |
9.2 Logische Operationen | 126 |
9.3 Bitoperationen in C und C++ | 132 |
10 Rechnen mit vorzeichenlosen Dualzahlen | 133 |
10.1 Addition und Subtraktion | 133 |
10.2 Multiplikation und Division | 136 |
11 Rechnen in der Vorzeichen-Betragsdarstellung | 143 |
11.1 Addition und Subtraktion | 143 |
11.2 Multiplikation und Division | 145 |
12 Rechnen im Zweierkomplement | 147 |
12.1 Addition und Subtraktion | 147 |
12.2 Multiplikation und Division | 150 |
12.3 Fazit | 150 |
13 Ganzzahl-Rechenwerk | 153 |
13.1 Beispiel-Rechenwerk | 154 |
13.2 Ergänzende Betrachtungen | 157 |
13.3 Beispiel: Addition | 161 |
13.4 Beispiel Multiplikation | 164 |
14 Gleitkommarechenwerk | 175 |
14.1 Darstellung von Gleitkommazahlen | 176 |
14.2 Umwandlung von Dezimalbrüchen in Dualbrüche | 179 |
14.3 Ein Beispiel-Gleitkommarechenwerk | 182 |
14.3.1 Addition und Subtraktion | 183 |
14.3.2 Multiplikation | 185 |
14.3.3 Division | 186 |
Teil 4: Prozessoren | 189 |
15 Maschinensprache | 191 |
16 Steuerwerk | 197 |
17 Mikroprogrammierung | 201 |
17.1 Konzept | 201 |
17.2 Beispiel-Mikroprogrammsteuerung | 202 |
17.3 Befehlssatzentwurf | 209 |
17.4 Erweiterung der Mikroprogrammsteuerung | 213 |
18 Spezielle Techniken und Abläufe im Prozessor | 217 |
18.1 Befehlszyklus | 217 |
18.2 Strategien bei Programmverzweigungen | 219 |
18.3 Out of Order Execution | 227 |
18.4 64-Bit-Erweiterungen | 227 |
18.5 Sicherheitsfeatures | 229 |
19 Multiprozessorsysteme | 233 |
19.1 Ansätze zur Performancesteigerung | 233 |
19.2 Aufwand für Parallelisierung | 236 |
19.3 Topologien | 237 |
19.4 Datenübertragung | 239 |
19.5 Software für Multiprozessorsysteme | 241 |
19.6 Speicherzugriff | 242 |
19.7 Konsistenz | 242 |
20 Digitale Signalprozessoren | 247 |
20.1 Einsatzgebiete | 247 |
20.2 Zeitabhängige Signale und Signalverarbeitungskette | 248 |
20.3 Analoge Vorverarbeitung und A/D-Wandlung | 249 |
20.4 Spektralanalyse | 253 |
20.5 Operationen im Frequenzbereich | 258 |
20.6 D/A-Wandlung und analoge Nachbearbeitung | 260 |
20.7 Architektur-Besonderheiten von DSP | 260 |
Teil 5: Speicher und Peripherie | 263 |
21 Speicherbausteine | 265 |
21.1 Arten von Speichermedien | 265 |
21.2 Halbleiter-Speicher | 266 |
21.3 Statisches und dynamisches RAM | 267 |
21.4 Speicherorganisation auf Chipebene | 268 |
21.5 Interfacing und Protokolle | 274 |
21.6 Speichermodule | 279 |
21.7 Flash Speicher | 282 |
22 Speicherverwaltung | 285 |
22.1 Programme und Prozesse | 285 |
22.2 Virtueller Speicher | 286 |
22.3 Segmentierung und Swapping | 292 |
22.4 Paging | 293 |
23 Datenübertragung und Schnittstellen | 299 |
23.1 Leitungstheorie | 299 |
23.2 Serielle und parallele Datenübertragung | 301 |
23.3 Das OSI-Modell | 303 |
23.4 Codierung | 306 |
23.4.1 NRZ-Codierung | 306 |
23.4.2 Manchester-Codierung | 307 |
23.4.3 NRZI-Codierung | 309 |
23.4.4 MLT3-Codierung | 309 |
23.4.5 Bit Stuffing, 4B/5B- und 8B/10B-Codierung | 310 |
23.5 Fehlererkennung und Fehlerkorrektur | 311 |
23.6 Beispiel USB | 317 |
24 Festplatte | 321 |
24.1 Aufbau | 321 |
24.2 Datenorganisation | 321 |
24.3 Partionierung und Formatierung | 322 |
24.4 Serial-ATA-Schnittstelle | 322 |
24.5 Performance | 323 |
24.6 Verfügbarkeit | 323 |
25 Optische Datenspeicher | 327 |
25.1 Standards | 327 |
25.2 Aufbau | 328 |
25.3 Verfügbarkeit | 329 |
25.4 Leseverfahren | 330 |
25.5 Vermeidung, Erkennung und Korrektur von Fehlern | 331 |
Zusammenfassung und Schlussworte | 333 |
Literaturverzeichnis | 335 |
Antworten zu den Aufgaben | 337 |
Index | 387 |