Professional Documents
Culture Documents
Computer Abstractions and Technology: Diego Montero
Computer Abstractions and Technology: Diego Montero
Diego Montero
Slide Sources: Patterson & Hennessy MK 3rd and 5th edition, adapted and supplemented
Facultad de Ingenierı́a
Introduction
Outline Notes
1 Introduction
Classes of Computing Applications and Their Characteristics
Welcome to the PostPC Era
Objectives of this course
Understanding Program Performance
5 Performance
Defining Performance
Measuring Execution Time
Instruction Count and CPI
Relevance Notes
Introduction
Relevance Notes
Servers
multiple users, carry sizable workloads
accessed via a network
resources expandable, dependability
Embedded computers
designed to run one or a set of related applications
found in your car, the computers in a television set, and the networks
of processors that control a modern airplane or cargo ship
Figure: The number manufactured per year of tablets and smart phones, which
reflect the post-PC era, versus PC and traditional cell phones.
Introduction PostPC
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, Google
Objectives Notes
What is the interface between the software and the hardware, and
how does software instruct the hardware to perform needed functions?
Introduction Objectives
Objectives Notes
Introduction Performance
Exercise Notes
Can you think of examples where each of the following is the right place to
look for a performance bottleneck?
The algorithm chosen
The programming language or compiler
The operating system
The processor
The I/O system and devices
Ideas
Outline Notes
1 Introduction
Classes of Computing Applications and Their Characteristics
Welcome to the PostPC Era
Objectives of this course
Understanding Program Performance
5 Performance
Defining Performance
Measuring Execution Time
Instruction Count and CPI
Outline Notes
1 Introduction
Classes of Computing Applications and Their Characteristics
Welcome to the PostPC Era
Objectives of this course
Understanding Program Performance
5 Performance
Defining Performance
Measuring Execution Time
Instruction Count and CPI
Operating system
Interfaces between a user’s program and the hardware
Handles basic input and output operations
Allocates storage and memory
Provides protected sharing of the computer among multiple
applications using it simultaneously.
Linux, iOS, Android and Windows
Compilers
translation of a program written in a high-level language, such as C,
C++, Java, or Visual Basic into instructions that the hardware can
execute
Figure:
Montero,CDiego
program compiled intoAbstractions
(OAC-18586) assembly language and then assembled into
and Technology 20 / 49
Outline Notes
1 Introduction
Classes of Computing Applications and Their Characteristics
Welcome to the PostPC Era
Objectives of this course
Understanding Program Performance
5 Performance
Defining Performance
Measuring Execution Time
Instruction Count and CPI
Mainboard
connects to I/O devices
Memory
The processor
Memory
built with DRAM chips
Cache Memory
small and fast memory
act as a buffer for the DRAM
SRAM technology: faster but less dence → more expensive
Storage
Main memory, volatile, DRAM
non-volatile storage: Flash drives, hard drives
Abstractions Notes
One key interface between the levels of abstraction is the instruction set
architecture—the interface between the hardware and low-level software.
This abstract interface enables many implementations of varying cost and
performance to run identical software.
Recap
Recap Notes
Hardware components
Abstractions
ISA
Raspberry PI ISA: ARM Cortex-A72, ARMv8-A 64-bit instruction set.
Outline Notes
1 Introduction
Classes of Computing Applications and Their Characteristics
Welcome to the PostPC Era
Objectives of this course
Understanding Program Performance
5 Performance
Defining Performance
Measuring Execution Time
Instruction Count and CPI
Performance Notes
Performance Notes
Datacenter
Throughput or bandwidth: total amount of work done in a given
time (metric), e.g., tasks/transactions/... per hour
For a computer X:
1
PerformanceX =
Execution timeX
For two computers X and Y, if the performance of X is greater than Y:
Elapsed time
Total response time, including: 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
Hardware designer must often trade off clock rate against cycle count
Designing Computer B
Objective: 6s CPU time
Can do faster clock, but causes 1.2 × clock cycles of A
cycles
CPU clock cyclesA = 10 seconds × 2 × 109 = 20 × 109 cycles
second
Clock rate for B?
1.2 × CPU clock cyclesA 1.2 × 20 × 109 cycles
CPU timeB = =
Clock rateB Clock rateB
InstructionCount = 2 + 1 + 2 = 5 10
CPI1 = 5 =2
ClockCycles = 2 × 1 + 1 × 2 + 2 × 3 = 10
Sequence 2:
InstructionCount = 4 + 1 + 1 = 6 9
CPI2 = 6 = 1.5
ClockCycles = 4 × 1 + 1 × 2 + 1 × 3 = 9
Hardware
or software Affects what?
component
Instruction count,
Algorithm
possibly CPI
Programming Instruction count,
language CPI
Instruction count,
Compiler
CPI
Instruction set Instruction count,
architecture clock rate, CPI
Cost/performance is improving
Due to underlying technology development