COMPUTER ORGANIZATION AND 5th
Edition
The Hardware/Software Interface
DESIGN
Chapter 1
Computer Abstractions
and Technology
§1.1 Introduction
The Computer Revolution
■ Progress in computer technology
■ Underpinned by Moore’s Law
■ Makes novel applications feasible
■ Computers in automobiles
■ Cell phones
■ Human genome project
■ World Wide Web
■ Search Engines
■ Computers are pervasive
Chapter 1 — Computer Abstractions and Technology — 2
Classes of Computers
■ Personal computers
■ General purpose, variety of software
■ Subject to cost/performance tradeoff
■ Server computers
■ Network based
■ High capacity, performance, reliability
■ Range from small servers to building sized
Chapter 1 — Computer Abstractions and Technology — 3
Classes of Computers
■ Supercomputers
■ High-end scientific and engineering
calculations
■ Highest capability but represent a small
fraction of the overall computer market
■ Embedded computers
■ Hidden as components of systems
■ Stringent power/performance/cost constraints
Chapter 1 — Computer Abstractions and Technology — 4
The PostPC Era
Chapter 1 — Computer Abstractions and Technology — 5
The PostPC Era
■ Personal Mobile Device (PMD)
■ Battery operated
■ Connects to the Internet
■ Hundreds of dollars
■ Smart phones, tablets, electronic glasses
■ Cloud computing
■ Warehouse Scale Computers (WSC)
■ Software as a Service (SaaS)
■ Portion of software run on a PMD and a
portion run in the Cloud
■ Amazon and Google
Chapter 1 — Computer Abstractions and Technology — 6
What You Will Learn
■ How programs are translated into the
machine language
■ And how the hardware executes them
■ The hardware/software interface
■ What determines program performance
■ And how it can be improved
■ How hardware designers improve
performance
■ What is parallel processing
Chapter 1 — Computer Abstractions and Technology — 7
Understanding Performance
■ Algorithm
■ Determines number of operations executed
■ Programming language, compiler, architecture
■ Determine number of machine instructions executed
per operation
■ Processor and memory system
■ Determine how fast instructions are executed
■ I/O system (including OS)
■ Determines how fast I/O operations are executed
Chapter 1 — Computer Abstractions and Technology — 8
§1.2 Eight Great Ideas in Computer Architecture
Eight Great Ideas
■ Design for Moore’s Law
■ Use abstraction to simplify design
■ Make the common case fast
■ Performance via parallelism
■ Performance via pipelining
■ Performance via prediction
■ Hierarchy of memories
■ Dependability via redundancy
Chapter 1 — Computer Abstractions and Technology — 9
§1.3 Below Your Program
Below Your Program
■ Application software
■ Written in high-level language
■ System software
■ Compiler: translates HLL code to
machine code
■ Operating System: service code
■ Handling input/output
■ Managing memory and storage
■ Scheduling tasks & sharing resources
■ Hardware
■ Processor, memory, I/O controllers
Chapter 1 — Computer Abstractions and Technology — 10
Levels of Program Code
■ High-level language
■ Level of abstraction closer
to problem domain
■ Provides for productivity
and portability
■ Assembly language
■ Textual representation of
instructions
■ Hardware representation
■ Binary digits (bits)
■ Encoded instructions and
data
Chapter 1 — Computer Abstractions and Technology — 11
§1.4 Under the Covers
Components of a Computer
The BIG Picture ■ Same components for
all kinds of computer
■ Desktop, server,
embedded
■ Input/output includes
■ User-interface devices
■ Display, keyboard, mouse
■ Storage devices
■ Hard disk, CD/DVD, flash
■ Network adapters
■ For communicating with
other computers
Chapter 1 — Computer Abstractions and Technology — 12
Abstractions
The BIG Picture
■ Abstraction helps us deal with complexity
■ Hide lower-level detail
■ Instruction set architecture (ISA)
■ The hardware/software interface
■ Application binary interface
■ The ISA plus system software interface
■ Implementation
■ The details underlying and interface
Chapter 1 — Computer Abstractions and Technology — 13
§1.6 Performance
Defining Performance
■ Which airplane has the best performance?
Chapter 1 — Computer Abstractions and Technology — 14
Response Time and Throughput
■ Response time
■ How long it takes to do a task
■ Throughput
■ Total work done per unit time
■ e.g., tasks/transactions/… per hour
■ How are response time and throughput affected
by
■ Replacing the processor with a faster version?
■ Adding more processors?
■ We’ll focus on response time for now…
Chapter 1 — Computer Abstractions and Technology — 15
Relative Performance
■ Define Performance = 1/Execution Time
■ “X is n time faster than Y”
■ Example: time taken to run a program
■ 10s on A, 15s on B
■ Execution TimeB / Execution TimeA
= 15s / 10s = 1.5
■ So A is 1.5 times faster than B
Chapter 1 — Computer Abstractions and Technology — 16
Measuring Execution Time
■ Elapsed time
■ Total response time, including all aspects
■ Processing, I/O, OS overhead, idle time
■ Determines system performance
■ CPU time
■ Time spent processing a given job
■ Discounts I/O time, other jobs’ shares
■ Comprises user CPU time and system CPU
time
■ Different programs are affected differently by
CPU and system performance
Chapter 1 — Computer Abstractions and Technology — 17
CPU Clocking
■ Operation of digital hardware governed by a
constant-rate clock
Clock period
Clock (cycles)
Data transfer
and computation
Update state
■ Clock period: duration of a clock cycle
■ e.g., 250ps = 0.25ns = 250×10–12s
■ Clock frequency (rate): cycles per second
■ e.g., 4.0GHz = 4000MHz = 4.0×109Hz
Chapter 1 — Computer Abstractions and Technology — 18
CPU Time
■ Performance improved by
■ Reducing number of clock cycles
■ Increasing clock rate
■ Hardware designer must often trade off clock
rate against cycle count
Chapter 1 — Computer Abstractions and Technology — 19
CPU Time Example
■ Computer A: 2GHz clock, 10s CPU time
■ Designing Computer B
■ Aim for 6s CPU time
■ Can do faster clock, but causes 1.2 × clock cycles
■ How fast must Computer B clock be?
Chapter 1 — Computer Abstractions and Technology — 20
Instruction Count and CPI
■ Instruction Count for a program
■ Determined by program, ISA and compiler
■ Average cycles per instruction
■ Determined by CPU hardware
■ If different instructions have different CPI
■ Average CPI affected by instruction mix
Chapter 1 — Computer Abstractions and Technology — 21
CPI Example
■ Computer A: Cycle Time = 250ps, CPI = 2.0
■ Computer B: Cycle Time = 500ps, CPI = 1.2
■ Same ISA
■ Which is faster, and by how much?
A is faster…
…by this much
Chapter 1 — Computer Abstractions and Technology — 22
CPI in More Detail
■ If different instruction classes take different
numbers of cycles
■ Weighted average CPI
Relative frequency
Chapter 1 — Computer Abstractions and Technology — 23
CPI Example
■ Alternative compiled code sequences using
instructions in classes A, B, C
Class A B C
CPI for class 1 2 3
IC in sequence 1 2 1 2
IC in sequence 2 4 1 1
■ Sequence 1: IC = 5 ■ Sequence 2: IC = 6
■ Clock Cycles ■ Clock Cycles
= 2×1 + 1×2 + 2×3 = 4×1 + 1×2 + 1×3
= 10 =9
■ Avg. CPI = 10/5 = 2.0 ■ Avg. CPI = 9/6 = 1.5
Chapter 1 — Computer Abstractions and Technology — 24
Performance Summary
The BIG Picture
■ Performance depends on
■ Algorithm: affects IC, possibly CPI
■ Programming language: affects IC, CPI
■ Compiler: affects IC, CPI
■ Instruction set architecture: affects IC, CPI, Tc
Chapter 1 — Computer Abstractions and Technology — 25
§1.10 Fallacies and Pitfalls
Pitfall: Amdahl’s Law
■ Improving an aspect of a computer and
expecting a proportional improvement in
overall performance
■ Example: multiply accounts for 80s/100s
■ How much improvement in multiply performance to
get 5× overall?
■ Can’t be done!
■ Corollary: make the common case fast
Chapter 1 — Computer Abstractions and Technology — 26
Pitfall: MIPS as a Performance Metric
■ MIPS: Millions of Instructions Per Second
■ Doesn’t account for
■ Differences in ISAs between computers
■ Differences in complexity between instructions
■ CPI varies between programs on a given CPU
Chapter 1 — Computer Abstractions and Technology — 27
§1.9 Concluding Remarks
Concluding Remarks
■ Cost/performance is improving
■ Due to underlying technology development
■ Hierarchical layers of abstraction
■ In both hardware and software
■ Instruction set architecture
■ The hardware/software interface
■ Execution time: the best performance
measure
■ Power is a limiting factor
■ Use parallelism to improve performance
Chapter 1 — Computer Abstractions and Technology — 28