Preface |
|
ix | |
|
Computer Abstractions and Technology |
|
|
2 | (44) |
|
|
3 | (8) |
|
|
11 | (4) |
|
|
15 | (13) |
|
Real Stuff: Manufacturing Pentium 4 Chips |
|
|
28 | (5) |
|
|
33 | (2) |
|
|
35 | (1) |
|
Historical Perspective and Further Reading |
|
|
36 | (1) |
|
|
36 | (10) |
|
Computers in the Real World |
|
|
|
Information Technology for the 4 Billion without IT |
|
|
44 | (2) |
|
Instructions: Language of the Computer |
|
|
46 | (112) |
|
|
48 | (1) |
|
Operations of the Computer Hardware |
|
|
49 | (3) |
|
Operands of the Computer Hardware |
|
|
52 | (8) |
|
Representing Instructions in the Computer |
|
|
60 | (8) |
|
|
68 | (4) |
|
Instructions for Making Decisions |
|
|
72 | (7) |
|
Supporting Procedures in Computer Hardware |
|
|
79 | (11) |
|
Communicating with People |
|
|
90 | (5) |
|
MIPS Addressing for 32-Bit Immediates and Addresses |
|
|
95 | (11) |
|
Translating and Starting a Program |
|
|
106 | (10) |
|
|
116 | (5) |
|
How Compilers Work: An Introduction |
|
|
121 | (1) |
|
A C Sort Example to Put It All Together |
|
|
121 | (9) |
|
Implementing an Object-Oriented Language |
|
|
130 | (1) |
|
|
130 | (4) |
|
Real Stuff: IA-32 Instructions |
|
|
134 | (9) |
|
|
143 | (2) |
|
|
145 | (2) |
|
Historical Perspective and Further Reading |
|
|
147 | (1) |
|
|
147 | (11) |
|
Computers in the Real World |
|
|
|
Helping Save Our Environment with Data |
|
|
156 | (2) |
|
|
158 | (80) |
|
|
160 | (1) |
|
Signed and Unsigned Numbers |
|
|
160 | (10) |
|
|
170 | (6) |
|
|
176 | (7) |
|
|
183 | (6) |
|
|
189 | (28) |
|
Real Stuff: Floating Point in the IA-32 |
|
|
217 | (3) |
|
|
220 | (5) |
|
|
225 | (4) |
|
Historical Perspective and Further Reading |
|
|
229 | (1) |
|
|
229 | (9) |
|
Computers in the Real World |
|
|
|
Reconstructing the Ancient World |
|
|
236 | (2) |
|
Assessing and Understanding Performance |
|
|
238 | (44) |
|
|
240 | (6) |
|
CPU Performance and Its Factors |
|
|
246 | (8) |
|
|
254 | (5) |
|
Real Stuff: Two SPEC Benchmarks and the Performance of Recent Intel Processors |
|
|
259 | (7) |
|
|
266 | (4) |
|
|
270 | (2) |
|
Historical Perspective and Further Reading |
|
|
272 | (1) |
|
|
272 | (10) |
|
Computers in the Real World |
|
|
|
Moving People Faster and More Safely |
|
|
280 | (2) |
|
The Processor: Datapath and Control |
|
|
282 | (86) |
|
|
284 | (5) |
|
|
289 | (3) |
|
|
292 | (8) |
|
A Simple Implementation Scheme |
|
|
300 | (18) |
|
A Multicycle Implementation |
|
|
318 | (22) |
|
|
340 | (6) |
|
Microprogramming: Simplifying Control Design |
|
|
346 | (1) |
|
An Introduction to Digital Design Using a Hardware Design Language |
|
|
346 | (1) |
|
Real Stuff: The Organization of Recent Pentium Implementations |
|
|
347 | (3) |
|
|
350 | (2) |
|
|
352 | (1) |
|
Historical Perspective and Further Reading |
|
|
353 | (1) |
|
|
354 | (14) |
|
Computers in the Real World |
|
|
|
|
366 | (2) |
|
Enhancing Performance with Pipelining |
|
|
368 | (98) |
|
An Overview of Pipelining |
|
|
370 | (14) |
|
|
384 | (15) |
|
|
399 | (3) |
|
Data Hazards and Forwarding |
|
|
402 | (11) |
|
|
413 | (3) |
|
|
416 | (10) |
|
Using a Hardware Description Language to Describe and Model a Pipeline |
|
|
426 | (1) |
|
|
427 | (5) |
|
Advanced Pipelining: Extracting More Performance |
|
|
432 | (16) |
|
Real Stuff: The Pentium 4 Pipeline |
|
|
448 | (3) |
|
|
451 | (1) |
|
|
452 | (2) |
|
Historical Perspective and Further Reading |
|
|
454 | (1) |
|
|
454 | (12) |
|
Computers in the Real World |
|
|
|
Mass Communication without Gatekeepers |
|
|
464 | (2) |
|
Large and Fast: Exploiting Memory Hierarchy |
|
|
466 | (98) |
|
|
468 | (5) |
|
|
473 | (19) |
|
Measuring and Improving Cache Performance |
|
|
492 | (19) |
|
|
511 | (27) |
|
A Common Framework for Memory Hierarchies |
|
|
538 | (8) |
|
Real Stuff: The Pentium P4 and the AMD Opteron Memory Hierarchies |
|
|
546 | (4) |
|
|
550 | (2) |
|
|
552 | (3) |
|
Historical Perspective and Further Reading |
|
|
555 | (1) |
|
|
555 | (9) |
|
Computers in the Real World |
|
|
|
Saving the World's Art Treasures |
|
|
562 | (2) |
|
Storage, Networks, and Other Peripherals |
|
|
564 | (2) |
|
|
566 | (3) |
|
Disk Storage and Dependability |
|
|
569 | (11) |
|
|
580 | (1) |
|
Buses and Other Connections between Processors, Memory, and I/O Devices |
|
|
581 | (7) |
|
Interfacing I/O Devices to the Processor, Memory, and Operating System |
|
|
588 | (9) |
|
I/O Performance Measures: Examples from Disk and File Systems |
|
|
597 | (3) |
|
|
600 | (3) |
|
Real Stuff: A Digital Camera |
|
|
603 | (3) |
|
|
606 | (3) |
|
|
609 | (2) |
|
Historical Perspective and Further Reading |
|
|
611 | (1) |
|
|
611 | (11) |
|
Computers in the Real World |
|
|
|
Saving Lives through Better Diagnosis |
|
|
622 | |
|
Multiprocessors and Clusters |
|
|
2 | (2) |
|
|
4 | (4) |
|
Programming Multiprocessors |
|
|
8 | (3) |
|
Multiprocessors Connected by a Single Bus |
|
|
11 | (9) |
|
Multiprocessors Connected by a Network |
|
|
20 | (5) |
|
|
25 | (2) |
|
|
27 | (3) |
|
Multiprocessors Inside a Chip and Multithreading |
|
|
30 | (4) |
|
Real Stuff: The Google Cluster of PCs |
|
|
34 | (5) |
|
|
39 | (3) |
|
|
42 | (5) |
|
Historical Perspective and Further Reading |
|
|
47 | (8) |
|
|
55 | |
|
|
|
A Assemblers, Linkers, and the SPIM Simulator |
|
|
2 | (1) |
|
|
3 | (7) |
|
|
10 | (8) |
|
|
18 | (1) |
|
|
19 | (1) |
|
|
20 | (2) |
|
A.6 Procedure Call Convention |
|
|
22 | (11) |
|
A.7 Exceptions and Interrupts |
|
|
33 | (5) |
|
|
38 | (2) |
|
|
40 | (5) |
|
A.10 MIPS R2000 Assembly Language |
|
|
45 | (36) |
|
|
81 | (1) |
|
|
82 | |
|
B The Basics of Logic Design |
|
|
2 | (1) |
|
|
3 | (1) |
|
B.2 Gates, Truth Tables, and Logic Equations |
|
|
4 | (4) |
|
|
8 | (12) |
|
B.4 Using a Hardware Description Language |
|
|
20 | (6) |
|
B.5 Constructing a Basic Arithmetic Logic Unit |
|
|
26 | (12) |
|
B.6 Faster Addition: Carry Lookahead |
|
|
38 | (9) |
|
|
47 | (2) |
|
B.8 Memory Elements: Flip-flops, Latches, and Registers |
|
|
49 | (8) |
|
B.9 Memory Elements: SRAMs and DRAMs |
|
|
57 | (10) |
|
B.10 Finite State Machines |
|
|
67 | (5) |
|
B.11 Timing Methodologies |
|
|
72 | (5) |
|
B.12 Field Programmable Devices |
|
|
77 | (1) |
|
|
78 | (1) |
|
|
79 | |
|
C Mapping Control to Hardware |
|
|
2 | (1) |
|
|
3 | (1) |
|
C.2 Implementing Combinational Control Units |
|
|
4 | (4) |
|
C.3 Implementing Finite State Machine Control |
|
|
8 | (13) |
|
C.4 Implementing the Next-State Function with a Sequencer |
|
|
21 | (6) |
|
C.5 Translating a Microprogram to Hardware |
|
|
27 | (4) |
|
|
31 | (1) |
|
|
32 | |
|
D A Survey of RISC Architectures for Desktop, Server, and Embedded Computers |
|
|
2 | (1) |
|
|
3 | (2) |
|
D.2 Addressing Modes and Instruction Formats |
|
|
5 | (4) |
|
D.3 Instructions: The MIPS Core Subset |
|
|
9 | (7) |
|
D.4 Instructions: Multimedia Extensions of the Desktop/Server RISCs |
|
|
16 | (3) |
|
D.5 Instructions: Digital Signal-Processing Extensions of the Embedded RISCs |
|
|
19 | (1) |
|
D.6 Instructions: Common Extensions to MIPS Core |
|
|
20 | (5) |
|
D.7 Instructions Unique to MIPS64 |
|
|
25 | (2) |
|
D.8 Instructions Unique to Alpha |
|
|
27 | (2) |
|
D.9 Instructions Unique to SPARC v.9 |
|
|
29 | (3) |
|
D.10 Instructions Unique to PowerPC |
|
|
32 | (2) |
|
D.11 Instructions Unique to PA-RISC 2.0 |
|
|
34 | (2) |
|
D.12 Instructions Unique to ARM |
|
|
36 | (2) |
|
D.13 Instructions Unique to Thumb |
|
|
38 | (1) |
|
D.14 Instructions Unique to SuperH |
|
|
39 | (1) |
|
D.15 Instructions Unique to M32R |
|
|
40 | (1) |
|
D.16 Instructions Unique to MIPS16 |
|
|
41 | (2) |
|
|
43 | (3) |
|
|
46 | (1) |
|
|
47 | |
Index |
|
1 | (1) |
Glossary |
|
1 | (1) |
Further Reading |
|
1 | |