- 1. A tour of Computer System
- 2. Programs are translatedxd by other Programs into Different Forms
- 3. It pays to understand How Compilation System Works
- 4. Processors Read and Interpret instructions Stored in Memory
- Running the hello Program
- Caches Matters
- Storage Devices Form a Hiararchy
- The Operating System Manages the Hardware
- Systems Communicate with Other Systems Using Networks
- Important Themes
- Summary
- 1. 2.1 Information Storage
- 2.2 Integer Representations
- 2.3 Integer Arithmetic
- 2.4 Floating Point
- 2.5 Summary
- 1. 3.1 A Historical Perspective
- 2. 3.2 Program Encodings
- 3.3 Data Formats
- 3.4 Accessing Information
- 3.5 Arithmetic and Logical Operations
- 3.6 Control
- 3.7 Procedures
- 3.8 Array Allocation and Access
- 3.9 Heterogeneous Data Structures
- 3.10 Putting It Together: Understanding Pointers
- 3.11 Life in the Real World: Using the gdb Debugger
- 3.12 Out-of-Bounds Memory References and Buffer Overflow
- 3.13 x86-64: Extending IA32 to 64 Bits
- 3.13.2 An Overview of x86-64
- 3.13.3 Accessing Information
- 3.13.4 Control
- 3.13.5 Data Structures
- 3.13.6 Concluding Observations about x86-64
- 3.14 Machine-Level Representations of Floating-Point Programs
- 3.15 Summary
- 4.1 The Y86 Instruction Set Architecture
- 4.2 Logic Design and the Hardware Control Language HCL
- 4.3 Sequential Y86 Implementations
- 4.4 General Principles of Pipelining
- 4.5 Pipelined Y86 Implementations
- 5.1 Capabilities and Limitations of Optimizing Compilers
- 5.2 Expressing Program Performance
- 5.3 Program Example
- 5.4 Eliminating Loop Inefficiencies
- 5.5 Reducing Procedure Calls
- 5.6 Eliminating Unneeded Memory References
- 5.7 Understanding Modern Processors
- 5.8 Loop Unrolling
- 5.9 Enhancing Parallelism
- 5.10 Summary of Results for Optimizing Combining Code
- 5.11 Some Limiting Factors
- 5.12 Understanding Memory Performance
- 5.13 Life in the Real World: Performance Improvement Techniques
- 5.14 Identifying and Eliminating Performance Bottlenecks
- 5.14.1 Program Profiling [gprof is not available for mac]
- 5.14.2 Using a Profiler to Guide Optimization
- 5.14.3 Amdahl’s Law
- 5.15 Summary