1.1 Introduction ............................................................................................................................ 3
1.2 Eight Great Ideas in Computer Architecture........................................................................... 3
1.3 Below Your Program ............................................................................................................... 3
1.4 Under the Covers .................................................................................................................... 4
1.5 Technologies for Building Processors and Memory................................................................ 5
1.6 Performance ........................................................................................................................... 6
1.7 The Power Wall ....................................................................................................................... 7
1.8 The Sea Change: The Switch from Uniprocessors to Multiprocessors ................................... 7
1.9 Real Stuff: Benchmarking the Intel Core i7 ............................................................................. 8
1.10 Fallacies and Pitfalls ................................................................................................................ 8
Chapter 2: Instructions: Language of the Computer .............................................................................. 8
2.1 Introduction ............................................................................................................................ 8
2.2 Operations of the Computer Hardware .................................................................................. 9
2.3 Operands of the Computer Hardware .................................................................................. 10
2.4 Signed and Unsigned Numbers ............................................................................................. 11
2.5 Representing Instructions in the Computer.......................................................................... 12
2.6 Logical Operations ................................................................................................................ 13
2.7 Instructions for Making Decisions......................................................................................... 13
2.8 Supporting Procedures in Computer Hardware ................................................................... 14
2.9 Communicating with People ................................................................................................. 17
2.10 MIPS Addressing for 32-Bit Immediates and Addresses ....................................................... 17
2.11 Parallelism and Instructions: Synchronization ...................................................................... 19
2.12 Translating and Starting a Program ...................................................................................... 19
2.13 A C Sort Example to Put It All Together ................................................................................ 20
2.14 Arrays versus Pointers .......................................................................................................... 22
Chapter 3: Arithmetic for Computers ................................................................................................... 23
3.1 Introduction .......................................................................................................................... 23
3.2 Addition and Subtraction ...................................................................................................... 23
3.3 Multiplication ........................................................................................................................ 24
3.4 Division .................................................................................................................................. 24
3.5 Floating Point ........................................................................................................................ 25
Chapter 4: The Processor ...................................................................................................................... 27
4.1 Introduction .......................................................................................................................... 27
4.2 Logic Design Conventions ..................................................................................................... 27
4.3 Building a Datapath............................................................................................................... 28
4.4 A Simple Implementation Scheme ........................................................................................ 29
4.5 An Overview of Pipelining ..................................................................................................... 30
Chapter 5: Large and Fast: Exploring Memory Hierarchy ..................................................................... 30
5.1 Introduction .......................................................................................................................... 30
5.2 Memory Technologies .......................................................................................................... 31
5.3 The Basic of Caches ............................................................................................................... 31
5.4 Measuring and Improving Cache Performance .................................................................... 32
Appendix B: The basics of logic design ................................................................................................. 33
B-1 Introduction .......................................................................................................................... 33
B-2 Gates, Truth Tables, and Logic Equations ............................................................................. 33
B-3 Combinational Logic.............................................................................................................. 34
B-5 Constructing a Basic Arithmetic Logic Unit (excl. Verilog) .................................................... 35
B-8 Memory Elements: Flip-Flops, Latches, and Registers (excl. Verilog) .................................. 36
B-10 Finite-State Machines (excl. Verilog) .................................................................................... 37
, Computers are used in three different classes of applications:
1. Personal Computers (PCs): a computer designed for use by an individual, usually incorporating a
graphics display, a keyboard, and a mouse.
2. Servers: a computer used for running larger programs for multiple users.
3. Embedded computers: a computer inside another device used for running one predetermined
application or collection of software
Hardware or software component How this component affects performance
Algorithm Determines both the number of source-level statements
and the number of input/output operations executed
Programming language, compiler, and Determines the number of computer instructions for each
architecture source-level statement
Processor and memory system Determines how fast instructions can be executed
Input/output system (hardware and Determines how fast input/output operations may be
operating system executed
1. Design for Moore’s law: Integrated circuit resources double every 18-24 months. Knowledge for
design for computer technologies changes rapidly.
2. Use abstraction to simplify design: Abstraction is used as a major productivity technique to
shorten the design time.
3. Make the common case fast: Enhance performance better than optimizing the rare case.
4. Performance via parallelism: By performing operations in parallel you get more performance.
5. Performance via pipelining: A particular pattern of parallelism.
6. Performance via prediction: Guess and start working rather than wait until you know for sure.
7. Hierarchy of memories: Fastest, smallest and most expensive memory at the top of the hierarchy
to use the capacity limits of the memory efficiently.
8. Dependability via redundancy: By including redundant components that can take over when a
failure occurs and to help detect failures, the system is dependable.
Systems software = Software that provides services that are useful,
including:
- Operating system (f.a. Windows)
- Compiler: translates high-level language statements into
assembly language statements.
- Loaders
- Assemblers: programs that translate a symbolic version of
instructions into the binary version.
Computers follow instructions in binary code.