SlideShare a Scribd company logo
CS-210
Computer Architecture and
Organization
Textbook
Computer Architecture: A Quantitative Approach
by Hennessy & Patterson
Morgan & Kauffman Series (2006)
Fourth Edition
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
What is Architecture?
• Original sense:
– Taking a range of building materials, putting
together in desirable ways to achieve a building
suited to its purpose
• In Computer Science:
– Similar: how parts are put together to achieve
some overall goal
– Examples: the architecture of a chip, of the
Internet, of an enterprise database system, an
email system, a cable TV distribution system
Adapted from David Clark’s, What is “Architecture”?
Why Computer Architecture?
Exploit advances in technology
Make things Faster, Smaller, Cheaper, …
Which enables new applications
Shrek 20 years ago?
Make new things possible
Accurate one-month weather forecasts? Cure for
cancer? Life-like virtual reality?
The advancement of computer architecture is vital
for the advancement of all other areas of computing!
Moore’s Law (1965)
• Transistors per inch square
– Twice as many after ~1.5-2 years
• Related trends
– Processor performance
Twice as fast after ~18 months
– Memory capacity
Twice as much in <2 years
Growth in processor performance
1
10
100
1000
10000
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006
Performance(vs.VAX-11/780)
25%/year
52%/year
20%/year
• VAX : 25%/year 1978 to 1986
• RISC + x86: 52%/year 1986 to 2002
• RISC + x86: 20%/year 2002 to present
From Hennessy and Patterson, Computer
Architecture: A Quantitative Approach, 4th
edition, October, 2006
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Changing Face of Computing
 In the 1960s mainframes roamed the planet
 Very expensive, operators oversaw operations
 Applications: business data processing,
large scale scientific computing
 In the 1970s, minicomputers emerged
 Less expensive, time sharing
 In the 1990s, Internet and WWW, handheld devices (PDA),
high-performance consumer electronics for video games have
emerged
 Dramatic changes have led to
3 different computing markets
 Servers, Desktop computing, Embedded Computers
Depends on the Class of Processor
Feature Desktop Server Embedded
Price of
system (USD)
$500-$5K $5K - $5M $10 - $100K
(ex. high-end
network routers)
Price of CPU
(per processor)
$50 - $500 $200 - $10K $0.01 - $100
Critical design
issues
Price-
performance,
graphics
performance
Throughput,
availability,
scalability
Price, power,
application-
specific
performance
Desktop Systems
• Examples
– Intel Core 2 Duo
– AMD Opteron
• Applications: everything (general purpose)
– Office, Internet, Multi-media, Video Games…
• Goals
– performance, price/performance
– power  affects cost, size
Servers
Examples
IBM Power
Sun Niagara (T1)
Intel Xeon
Applications
infrastructure: file server, email server, …
business: web, e-commerce, databases
Goals
Throughput (transactions/second)
Availability (reliability, dependability, fault tolerance …)
Cost not a major issue
Embedded
• Examples
– Xscale, ARM, MIPS, x86, … (many varieties)
• Applications
– cell phones, mp3 players, game consoles,
consumer electronics (refrigerator, microwave),
automobiles, … (many varieties)
• Goals
– Cost, Power
– Sufficient performance, real-time performance
– Size (CPU size, memory footprint, chip count…)
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Task of Computer Designer
“Determine what attributes are important for a
new machine; then design a machine to maximize
performance while staying within cost, power, and
availability constraints.”
• Aspects of this task
– Instruction set design
– Functional organization
– Logic design and implementation
(IC design, packaging, power, cooling...)
What is Computer Architecture?
• Instruction Set Architecture
– the computer visible to the assembly language programmer or
compiler writer (registers, data types, instruction set,
instruction formats, addressing modes)
• Organization
– high level aspects of computer’s design such as the memory system,
the bus structure, and the internal CPU (datapath + control) design
• Hardware
– detailed logic design, interconnection and packing technology,
external connections
Computer Architecture covers all three aspects of computer
design
Instruction Set Architecture:
Critical Interface
Properties of a good abstraction
Lasts through many generations (portability)
Used in many different ways (generality)
Provides convenient functionality to higher levels
Permits an efficient implementation at lower levels
instruction set
software
hardware
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Technology Trends
 Integrated circuit technology – 55% /year
 Transistor density – 35% per year
 Die size – 10-20% per year
 Semiconductor DRAM
 Density – 40-60% per year (4x in 3-4 years)
 Cycle time – 33% in 10 years
 Bandwidth – 66% in 10 years
 Magnetic disk technology
 Density – 100% per year
 Access time – 33% in 10 years
 Network technology (depends on switches and
transmission technology)
 10Mb-100Mb (10years)
 Bandwidth – doubles every year (for USA)
Processor Transistor Count
Intel
4004,
2300tr
(1971)
Intel P4 – 55M tr
(2001)
Intel
McKinley –
221M tr.
(2001)
Intel Core 2 Extreme
Quad-core 2x291M tr.
(2006)
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Dependability: Some Definitions
• Computer system dependability is the quality of delivered service
• The service delivered by a system is its observed actual behavior
• Each module has an ideal specified behavior, where a service
specification is an agreed description of the expected behavior
• A failure occurs when the actual behavior deviated from the
specified behavior
• The failure occurred because of an error
• The cause of an error is a fault
Dependability: Measures
• Service accomplishment vs. service interruption
(transitions: failures vs. restorations)
• Module reliability: a measure of the continuous service
accomplishment
• A measure of reliability: MTTF – Mean Time To Failure
(1/[rate of failure]) reported in [failure/1billion hours of operation)
• MTTR – Mean time to repair (a measure for service interruption)
• MTBF – Mean time between failures (MTTF+MTTR)
• Module availability – a measure of the service accomplishment; =
MTTF/(MTTF+MTTR)
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Cost-Performance
Purchasing perspective: from a collection of
machines, choose one which has
best performance?
least cost?
best performance/cost?
Computer designer perspective:
faced with design options, select one which has
best performance improvement?
least cost?
best performance/cost?
Both require: basis for comparison and
metric for evaluation
Two “notions” of performance
Which computer has better performance?
User: one which runs a program in less time
Computer centre manager:
one which completes more jobs in a given time
Users are interested in reducing
Response time or Execution time
the time between the start and
the completion of an event
Managers are interested in increasing
Throughput or Bandwidth
total amount of work done in a given time
Definition of Performance
We are primarily concerned with Response Time
Performance [things/sec]
“X is n times faster than Y”
As faster means both increased performance and
decreased execution time, to reduce confusion
will use “improve performance” or
“improve execution time”
)(_
1
)(
xtimeExecution
xePerformanc 
)(
)(
)(_
)(_
yePerformanc
xePerformanc
xtimeExecution
ytimeExecution
n 
Execution Time and Its Components
Wall-clock time, response time, elapsed time
the latency to complete a task, including disk accesses,
memory accesses, input/output activities,
operating system overhead,...
CPU time
the time the CPU is computing, excluding I/O or
running other programs with multiprogramming
often further divided into user and system CPU times
User CPU time
the CPU time spent in the program
System CPU time
the CPU time spent in the operating system
CPU Execution Time
• Instruction count (IC) = Number of instructions executed
• Clock cycles per instruction (CPI)
timecycleClockprogramaforcyclesclockCPUtimeCPU 
rateClock
programaforcyclesclockCPU
CPUtime 
IC
programaforcyclesclockCPU
CPI 
CPI - one way to compare two machines with same instruction set,
since Instruction Count would be the same
CPU Execution Time (cont’d)
timecycleClockCPIICtimeCPU 
rateClock
CPIIC
timeCPU


IC CPI Clock rate
Program X
Compiler X (X)
ISA X X
Organisation X X
Technology X
Program
Seconds
cycleClock
Seconds
nInstructio
cyclesClock
Program
nsInstructio
timeCPU 
How to Calculate CPI
• First calculate CPI for each individual instruction (add, sub, and,
etc.): CPIi
• Next calculate frequency of each individual instr.: Freqi = ICi/IC
• Finally multiply these two for each instruction and add them up
to get final CPI
2.2
18%
14%
45%
23%
% Time
0.4220%Bran.
0.3310%Store
1.0520%Load
0.5150%ALU
Prod
.
CPIiFreqiOp
i
n
i
i
CPI
IC
IC
CPI 

1
Choosing Programs to Evaluate Per.
• Ideally run typical programs with typical input before
purchase, or before even build machine
– Engineer uses compiler, spreadsheet
– Author uses word processor, drawing program, compression
software
• Workload – mixture of programs and OS commands that
users run on a machine
• Few can do this
– Don’t have access to machine to “benchmark” before purchase
– Don’t know workload in future
Benchmarks
• Different types of benchmarks
– Real programs (Ex. MSWord, Excel, Photoshop,...)
– Kernels - small pieces from real programs (Linpack,...)
– Toy Benchmarks - short, easy to type and run
(Sieve of Erathosthenes, Quicksort, Puzzle,...)
– Synthetic benchmarks - code that matches frequency of key
instructions and operations to real programs (Whetstone,
Dhrystone)
• Need industry standards so that different processors
can be fairly compared
• Companies exist that create these benchmarks:
“typical” code used to evaluate systems
Benchmark Suites
• SPEC - Standard Performance Evaluation Corporation
(www.spec.org)
– originally focusing on CPU performance
SPEC89|92|95, SPEC CPU2000 (11 Int + 13 FP)
– graphics benchmarks: SPECviewperf, SPECapc
– server benchmark: SPECSFS, SPECWEB
• PC benchmarks (Winbench 99, Business Winstone
99, High-end Winstone 99, CC Winstone 99)
(www.zdnet.com/etestinglabs/filters/benchmarks)
• Transaction processing benchmarks (www.tpc.org)
• Embedded benchmarks (www.eembc.org)
Comparing and Summarising Per.
• An Example
• What we can learn from these statements?
• We know nothing about
relative performance of computers A, B, C!
• One approach to summarise relative performance:
use total execution times of programs
Program Com. A Com. B Com. C
P1 (sec) 1 10 20
P2 (sec) 1000 100 20
Total (sec) 1001 110 40
– A is 20 times faster than C for
program P1
– C is 50 times faster than A for
program P2
– B is 2 times faster than C for
program P1
– C is 5 times faster than B for
program P2
Comparing and Sum. Per. (cont’d)
• Arithmetic mean (AM) or weighted AM to track time


n
i
iTime
n 0
1



n
i
ii Timew
0
Timei – execution time for ith program
wi – frequency of that program in workload
Outline
• Introduction
• Classes of Computers
• Computer Architecture
• Trends in Technology
• Dependability
• Measuring, Reporting and Summarizing
Performance
• Quantitative Principles of Computer Design
Quantitative Principles of
Design
• Where to spend time making improvements?
 Make the Common Case Fast
– Most important principle of computer design:
Spend your time on improvements where those
improvements will do the most good
– Example
• Instruction A represents 5% of execution
• Instruction B represents 20% of execution
• Even if you can drive the time for A to 0, the CPU will only be 5%
faster
• Key questions
– What the frequent case is?
– How much performance can be improved by making that
case faster?
Amdahl’s Law
• Suppose that we make an enhancement to a machine that will
improve its performance; Speedup is ratio:
• Amdahl’s Law states that the performance improvement
that can be gained by a particular enhancement is limited
by the amount of time that enhancement can be used
tenhancemenusingtaskentireforExTime
tenhancemenwithouttaskentireforExTime
Speedup 
tenhancemenwithouttaskentireforePerformanc
tenhancemenusingtaskentireforePerformanc
Speedup 
Computing Speedup
• Fraction enhanced = fraction of execution time in the original machine
that can be converted to take advantage of enhancement (E.g., 10/30)
• Speedup enhanced = how much faster the enhanced code will run (E.g.,
10/2=5)
Execution time of enhanced program will be sum of old execution time of the
unenhanced part of program and new execution time of the enhanced part of
program:
enhanced
enhanced
unenhancednew
Speedup
ExTime
ExTimeExTime 
20 10 20 2
Computing Speedup (cont’d)
• Enhanced part of program is Fraction enhanced,
so times are:
• Factor out Time old and divide by Speedup enhanced:
• Overall speedup is ratio of Time old to Time new:
 enhancedoldunenhanced FractionExTimeExTime  1
enhancedoldenhanced FractionExTimeExTime 







enhanced
enhanced
enhancedoldnew
Speedup
Fraction
FractionExTimeExTime 1
enhanced
enhanced
enhanced
Speedup
Fraction
Fraction
Speedup


1
1
An Example
• Enhancement runs 10 times faster and it
affects 40% of the execution time
• Fractionenhanced = 0.40
• Speedupenhanced = 10
• Speedupoverall = ?
561
640
1
10
40
401
1
.
..
.


Speedup

More Related Content

PPTX
Unit i-introduction
PPT
computer architecture.
PPTX
1 Computer Architecture
PPTX
Computer Architecture
PPTX
Hyper-Theading
PPTX
Cpu performance matrix
PPTX
Advanced computer architecture
PPT
Introduction to Embedded system
Unit i-introduction
computer architecture.
1 Computer Architecture
Computer Architecture
Hyper-Theading
Cpu performance matrix
Advanced computer architecture
Introduction to Embedded system

What's hot (20)

DOC
Aca module 1
PDF
Ugif 12 2011-smart meters-11102011
PPTX
FUNDAMENTALS OF COMPUTER DESIGN
PPTX
04. availability-concepts
PPTX
Embedded os
PPT
Fundamentals of Computer Design including performance measurements & quantita...
PDF
Chapter 6 computer and controls systems within manufacturing
PPT
39245175 intro-es-ii
PPTX
03. non-functional-attributes-introduction-4-slides
PPT
Information system architecture
PPTX
Introduction to embedded system
PPTX
01. 02. introduction (13 slides)
PPTX
08. networking-part-2
PDF
PPTX
Multimedia operating system
PPTX
11. operating-systems-part-1
PPTX
01. 03.-introduction-to-infrastructure
PPTX
Design challenges in embedded systems
PPT
The Deal
PPTX
computer Architecture
Aca module 1
Ugif 12 2011-smart meters-11102011
FUNDAMENTALS OF COMPUTER DESIGN
04. availability-concepts
Embedded os
Fundamentals of Computer Design including performance measurements & quantita...
Chapter 6 computer and controls systems within manufacturing
39245175 intro-es-ii
03. non-functional-attributes-introduction-4-slides
Information system architecture
Introduction to embedded system
01. 02. introduction (13 slides)
08. networking-part-2
Multimedia operating system
11. operating-systems-part-1
01. 03.-introduction-to-infrastructure
Design challenges in embedded systems
The Deal
computer Architecture
Ad

Similar to Computer Architechture and Organization (20)

PPTX
Caqa5e ch1 with_review_and_examples
PPTX
Fundamentals of Quantitative Design and Analysis.pptx
PPTX
Advanced Computer Architecture – An Introduction
PDF
Computer architecture short note (version 8)
PPT
lect1.ppt of a lot of things like computer
PPTX
Chapter 1.pptx
PPTX
Chapter_01.pptx
PPT
CA UNIT I PPT.ppt
PPT
Chapter_01computer architecture chap 2 .ppt
PPT
287233027-Chapter-1-Fundamentals-of-Computer-Design-ppt.ppt
PPT
Computer Abstractions and Technologies
PPT
Chapter 1 computer abstractions and technology
PPT
lec01_intr architecture com computeo.ppt
PDF
Lecture1_Introduction_computerar (1).pdf
PPTX
Basic Computer Architecture slides num.1
PPTX
2021Arch_2_Ch1_1.pptx Fundamentals of Quantitative Design and Analysis
PPT
Mano PPT for introduction Computer Architecture .ppt
PDF
Lecture 1 Advanced Computer Architecture
PPTX
CA UNIT I.pptx
PPT
module01.ppt
Caqa5e ch1 with_review_and_examples
Fundamentals of Quantitative Design and Analysis.pptx
Advanced Computer Architecture – An Introduction
Computer architecture short note (version 8)
lect1.ppt of a lot of things like computer
Chapter 1.pptx
Chapter_01.pptx
CA UNIT I PPT.ppt
Chapter_01computer architecture chap 2 .ppt
287233027-Chapter-1-Fundamentals-of-Computer-Design-ppt.ppt
Computer Abstractions and Technologies
Chapter 1 computer abstractions and technology
lec01_intr architecture com computeo.ppt
Lecture1_Introduction_computerar (1).pdf
Basic Computer Architecture slides num.1
2021Arch_2_Ch1_1.pptx Fundamentals of Quantitative Design and Analysis
Mano PPT for introduction Computer Architecture .ppt
Lecture 1 Advanced Computer Architecture
CA UNIT I.pptx
module01.ppt
Ad

Recently uploaded (20)

PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
O7-L3 Supply Chain Operations - ICLT Program
PDF
102 student loan defaulters named and shamed – Is someone you know on the list?
PPTX
Cell Types and Its function , kingdom of life
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PDF
VCE English Exam - Section C Student Revision Booklet
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
Module 4: Burden of Disease Tutorial Slides S2 2025
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PPTX
Cell Structure & Organelles in detailed.
PDF
Insiders guide to clinical Medicine.pdf
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PDF
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
PDF
Basic Mud Logging Guide for educational purpose
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Abdominal Access Techniques with Prof. Dr. R K Mishra
O7-L3 Supply Chain Operations - ICLT Program
102 student loan defaulters named and shamed – Is someone you know on the list?
Cell Types and Its function , kingdom of life
Pharmacology of Heart Failure /Pharmacotherapy of CHF
VCE English Exam - Section C Student Revision Booklet
Week 4 Term 3 Study Techniques revisited.pptx
Anesthesia in Laparoscopic Surgery in India
Module 4: Burden of Disease Tutorial Slides S2 2025
Complications of Minimal Access Surgery at WLH
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Cell Structure & Organelles in detailed.
Insiders guide to clinical Medicine.pdf
Renaissance Architecture: A Journey from Faith to Humanism
O5-L3 Freight Transport Ops (International) V1.pdf
grade 11-chemistry_fetena_net_5883.pdf teacher guide for all student
Basic Mud Logging Guide for educational purpose

Computer Architechture and Organization

  • 1. CS-210 Computer Architecture and Organization Textbook Computer Architecture: A Quantitative Approach by Hennessy & Patterson Morgan & Kauffman Series (2006) Fourth Edition
  • 2. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 3. What is Architecture? • Original sense: – Taking a range of building materials, putting together in desirable ways to achieve a building suited to its purpose • In Computer Science: – Similar: how parts are put together to achieve some overall goal – Examples: the architecture of a chip, of the Internet, of an enterprise database system, an email system, a cable TV distribution system Adapted from David Clark’s, What is “Architecture”?
  • 4. Why Computer Architecture? Exploit advances in technology Make things Faster, Smaller, Cheaper, … Which enables new applications Shrek 20 years ago? Make new things possible Accurate one-month weather forecasts? Cure for cancer? Life-like virtual reality? The advancement of computer architecture is vital for the advancement of all other areas of computing!
  • 5. Moore’s Law (1965) • Transistors per inch square – Twice as many after ~1.5-2 years • Related trends – Processor performance Twice as fast after ~18 months – Memory capacity Twice as much in <2 years
  • 6. Growth in processor performance 1 10 100 1000 10000 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 Performance(vs.VAX-11/780) 25%/year 52%/year 20%/year • VAX : 25%/year 1978 to 1986 • RISC + x86: 52%/year 1986 to 2002 • RISC + x86: 20%/year 2002 to present From Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 4th edition, October, 2006
  • 7. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 8. Changing Face of Computing  In the 1960s mainframes roamed the planet  Very expensive, operators oversaw operations  Applications: business data processing, large scale scientific computing  In the 1970s, minicomputers emerged  Less expensive, time sharing  In the 1990s, Internet and WWW, handheld devices (PDA), high-performance consumer electronics for video games have emerged  Dramatic changes have led to 3 different computing markets  Servers, Desktop computing, Embedded Computers
  • 9. Depends on the Class of Processor Feature Desktop Server Embedded Price of system (USD) $500-$5K $5K - $5M $10 - $100K (ex. high-end network routers) Price of CPU (per processor) $50 - $500 $200 - $10K $0.01 - $100 Critical design issues Price- performance, graphics performance Throughput, availability, scalability Price, power, application- specific performance
  • 10. Desktop Systems • Examples – Intel Core 2 Duo – AMD Opteron • Applications: everything (general purpose) – Office, Internet, Multi-media, Video Games… • Goals – performance, price/performance – power  affects cost, size
  • 11. Servers Examples IBM Power Sun Niagara (T1) Intel Xeon Applications infrastructure: file server, email server, … business: web, e-commerce, databases Goals Throughput (transactions/second) Availability (reliability, dependability, fault tolerance …) Cost not a major issue
  • 12. Embedded • Examples – Xscale, ARM, MIPS, x86, … (many varieties) • Applications – cell phones, mp3 players, game consoles, consumer electronics (refrigerator, microwave), automobiles, … (many varieties) • Goals – Cost, Power – Sufficient performance, real-time performance – Size (CPU size, memory footprint, chip count…)
  • 13. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 14. Task of Computer Designer “Determine what attributes are important for a new machine; then design a machine to maximize performance while staying within cost, power, and availability constraints.” • Aspects of this task – Instruction set design – Functional organization – Logic design and implementation (IC design, packaging, power, cooling...)
  • 15. What is Computer Architecture? • Instruction Set Architecture – the computer visible to the assembly language programmer or compiler writer (registers, data types, instruction set, instruction formats, addressing modes) • Organization – high level aspects of computer’s design such as the memory system, the bus structure, and the internal CPU (datapath + control) design • Hardware – detailed logic design, interconnection and packing technology, external connections Computer Architecture covers all three aspects of computer design
  • 16. Instruction Set Architecture: Critical Interface Properties of a good abstraction Lasts through many generations (portability) Used in many different ways (generality) Provides convenient functionality to higher levels Permits an efficient implementation at lower levels instruction set software hardware
  • 17. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 18. Technology Trends  Integrated circuit technology – 55% /year  Transistor density – 35% per year  Die size – 10-20% per year  Semiconductor DRAM  Density – 40-60% per year (4x in 3-4 years)  Cycle time – 33% in 10 years  Bandwidth – 66% in 10 years  Magnetic disk technology  Density – 100% per year  Access time – 33% in 10 years  Network technology (depends on switches and transmission technology)  10Mb-100Mb (10years)  Bandwidth – doubles every year (for USA)
  • 19. Processor Transistor Count Intel 4004, 2300tr (1971) Intel P4 – 55M tr (2001) Intel McKinley – 221M tr. (2001) Intel Core 2 Extreme Quad-core 2x291M tr. (2006)
  • 20. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 21. Dependability: Some Definitions • Computer system dependability is the quality of delivered service • The service delivered by a system is its observed actual behavior • Each module has an ideal specified behavior, where a service specification is an agreed description of the expected behavior • A failure occurs when the actual behavior deviated from the specified behavior • The failure occurred because of an error • The cause of an error is a fault
  • 22. Dependability: Measures • Service accomplishment vs. service interruption (transitions: failures vs. restorations) • Module reliability: a measure of the continuous service accomplishment • A measure of reliability: MTTF – Mean Time To Failure (1/[rate of failure]) reported in [failure/1billion hours of operation) • MTTR – Mean time to repair (a measure for service interruption) • MTBF – Mean time between failures (MTTF+MTTR) • Module availability – a measure of the service accomplishment; = MTTF/(MTTF+MTTR)
  • 23. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 24. Cost-Performance Purchasing perspective: from a collection of machines, choose one which has best performance? least cost? best performance/cost? Computer designer perspective: faced with design options, select one which has best performance improvement? least cost? best performance/cost? Both require: basis for comparison and metric for evaluation
  • 25. Two “notions” of performance Which computer has better performance? User: one which runs a program in less time Computer centre manager: one which completes more jobs in a given time Users are interested in reducing Response time or Execution time the time between the start and the completion of an event Managers are interested in increasing Throughput or Bandwidth total amount of work done in a given time
  • 26. Definition of Performance We are primarily concerned with Response Time Performance [things/sec] “X is n times faster than Y” As faster means both increased performance and decreased execution time, to reduce confusion will use “improve performance” or “improve execution time” )(_ 1 )( xtimeExecution xePerformanc  )( )( )(_ )(_ yePerformanc xePerformanc xtimeExecution ytimeExecution n 
  • 27. Execution Time and Its Components Wall-clock time, response time, elapsed time the latency to complete a task, including disk accesses, memory accesses, input/output activities, operating system overhead,... CPU time the time the CPU is computing, excluding I/O or running other programs with multiprogramming often further divided into user and system CPU times User CPU time the CPU time spent in the program System CPU time the CPU time spent in the operating system
  • 28. CPU Execution Time • Instruction count (IC) = Number of instructions executed • Clock cycles per instruction (CPI) timecycleClockprogramaforcyclesclockCPUtimeCPU  rateClock programaforcyclesclockCPU CPUtime  IC programaforcyclesclockCPU CPI  CPI - one way to compare two machines with same instruction set, since Instruction Count would be the same
  • 29. CPU Execution Time (cont’d) timecycleClockCPIICtimeCPU  rateClock CPIIC timeCPU   IC CPI Clock rate Program X Compiler X (X) ISA X X Organisation X X Technology X Program Seconds cycleClock Seconds nInstructio cyclesClock Program nsInstructio timeCPU 
  • 30. How to Calculate CPI • First calculate CPI for each individual instruction (add, sub, and, etc.): CPIi • Next calculate frequency of each individual instr.: Freqi = ICi/IC • Finally multiply these two for each instruction and add them up to get final CPI 2.2 18% 14% 45% 23% % Time 0.4220%Bran. 0.3310%Store 1.0520%Load 0.5150%ALU Prod . CPIiFreqiOp i n i i CPI IC IC CPI   1
  • 31. Choosing Programs to Evaluate Per. • Ideally run typical programs with typical input before purchase, or before even build machine – Engineer uses compiler, spreadsheet – Author uses word processor, drawing program, compression software • Workload – mixture of programs and OS commands that users run on a machine • Few can do this – Don’t have access to machine to “benchmark” before purchase – Don’t know workload in future
  • 32. Benchmarks • Different types of benchmarks – Real programs (Ex. MSWord, Excel, Photoshop,...) – Kernels - small pieces from real programs (Linpack,...) – Toy Benchmarks - short, easy to type and run (Sieve of Erathosthenes, Quicksort, Puzzle,...) – Synthetic benchmarks - code that matches frequency of key instructions and operations to real programs (Whetstone, Dhrystone) • Need industry standards so that different processors can be fairly compared • Companies exist that create these benchmarks: “typical” code used to evaluate systems
  • 33. Benchmark Suites • SPEC - Standard Performance Evaluation Corporation (www.spec.org) – originally focusing on CPU performance SPEC89|92|95, SPEC CPU2000 (11 Int + 13 FP) – graphics benchmarks: SPECviewperf, SPECapc – server benchmark: SPECSFS, SPECWEB • PC benchmarks (Winbench 99, Business Winstone 99, High-end Winstone 99, CC Winstone 99) (www.zdnet.com/etestinglabs/filters/benchmarks) • Transaction processing benchmarks (www.tpc.org) • Embedded benchmarks (www.eembc.org)
  • 34. Comparing and Summarising Per. • An Example • What we can learn from these statements? • We know nothing about relative performance of computers A, B, C! • One approach to summarise relative performance: use total execution times of programs Program Com. A Com. B Com. C P1 (sec) 1 10 20 P2 (sec) 1000 100 20 Total (sec) 1001 110 40 – A is 20 times faster than C for program P1 – C is 50 times faster than A for program P2 – B is 2 times faster than C for program P1 – C is 5 times faster than B for program P2
  • 35. Comparing and Sum. Per. (cont’d) • Arithmetic mean (AM) or weighted AM to track time   n i iTime n 0 1    n i ii Timew 0 Timei – execution time for ith program wi – frequency of that program in workload
  • 36. Outline • Introduction • Classes of Computers • Computer Architecture • Trends in Technology • Dependability • Measuring, Reporting and Summarizing Performance • Quantitative Principles of Computer Design
  • 37. Quantitative Principles of Design • Where to spend time making improvements?  Make the Common Case Fast – Most important principle of computer design: Spend your time on improvements where those improvements will do the most good – Example • Instruction A represents 5% of execution • Instruction B represents 20% of execution • Even if you can drive the time for A to 0, the CPU will only be 5% faster • Key questions – What the frequent case is? – How much performance can be improved by making that case faster?
  • 38. Amdahl’s Law • Suppose that we make an enhancement to a machine that will improve its performance; Speedup is ratio: • Amdahl’s Law states that the performance improvement that can be gained by a particular enhancement is limited by the amount of time that enhancement can be used tenhancemenusingtaskentireforExTime tenhancemenwithouttaskentireforExTime Speedup  tenhancemenwithouttaskentireforePerformanc tenhancemenusingtaskentireforePerformanc Speedup 
  • 39. Computing Speedup • Fraction enhanced = fraction of execution time in the original machine that can be converted to take advantage of enhancement (E.g., 10/30) • Speedup enhanced = how much faster the enhanced code will run (E.g., 10/2=5) Execution time of enhanced program will be sum of old execution time of the unenhanced part of program and new execution time of the enhanced part of program: enhanced enhanced unenhancednew Speedup ExTime ExTimeExTime  20 10 20 2
  • 40. Computing Speedup (cont’d) • Enhanced part of program is Fraction enhanced, so times are: • Factor out Time old and divide by Speedup enhanced: • Overall speedup is ratio of Time old to Time new:  enhancedoldunenhanced FractionExTimeExTime  1 enhancedoldenhanced FractionExTimeExTime         enhanced enhanced enhancedoldnew Speedup Fraction FractionExTimeExTime 1 enhanced enhanced enhanced Speedup Fraction Fraction Speedup   1 1
  • 41. An Example • Enhancement runs 10 times faster and it affects 40% of the execution time • Fractionenhanced = 0.40 • Speedupenhanced = 10 • Speedupoverall = ? 561 640 1 10 40 401 1 . .. .   Speedup