18
Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Embed Size (px)

Citation preview

Page 1: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Introduction to Computer Architecture

SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING

SUMMER 2015

RAMYAR SAEEDI

Page 2: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Course Outline

Computers!

Computer Architecture’s Components (Big Picture)

Performance Measurements

Digital System Design Background

Number Representation and Operation

MIPS Microprocessor and Assembly Language

Processor Design Components

Advanced Concepts(Pipeline, Control, Data path)

Memory(Types, Cache…)

Input/output

….

Page 3: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Course Structure

Homework Assignments (4-5 set) (30-35%)

One or two midterms (30-40%)

Final exam(40%-45%)

Bonus PROGECT(10-15%)

Resources Main: Computer Organization and Design — The Hardware

Software Interface – 5th Edition, David Patterson and John Hennessy

Digital Design and Computer Architecture: ARM Edition, Sarah HarrisDavid Harris

Page 4: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Course Structure(Cont.)

We will have two review sessions

Two workshops on assembly programming/digital design 3rd and 5th week of class

Office Hours: Tuesday-Thursday 2pm-3pm; Sloan 314

Programming background(e.g. c++, java)

Contact: [email protected]

Homepage of Course: http://epsl.eecs.wsu.edu/introduction-to-computer-architecture/

HWs and announcement will be posted on the homepage!

Page 5: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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!

Page 6: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Components of a Computer 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

The BIG Picture

Page 7: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Programming Levels

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

Page 8: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Inside the Processor

Apple A5

Different Components? What do you think?

Memory?

Cores?

Page 9: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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…

Page 10: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Relative Performance Define Performance = 1/Execution Time

“X is n time faster than Y”

n XY

YX

time Executiontime Execution

ePerformancePerformanc

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

Page 11: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

CPU Clocking Operation of digital hardware governed by

a constant-rate clock

Clock (cycles)

Data transferand computation

Update state

Clock period

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

Page 12: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Performance Improvement

How?

Reducing number of clock cycles

Increasing clock rate

Hardware designer must often trade off clock rate against cycle count

Rate Clock

Cycles Clock CPU

Time Cycle ClockCycles Clock CPUTime CPU

Page 13: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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

Rate Clock

CPICount nInstructio

Time Cycle ClockCPICount nInstructioTime CPU

nInstructio per CyclesCount nInstructioCycles Clock

Page 14: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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?

1.2500psI

600psI

ATime CPUBTime CPU

600psI500ps1.2IBTime CycleBCPICount nInstructioBTime CPU

500psI250ps2.0IATime CycleACPICount nInstructioATime CPU

A is faster…

…by this much

Page 15: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

CPI in More Detail If different instruction classes take different numbers of

cycles

Weighted average CPI

n

1iii )Count nInstructio(CPICycles Clock

n

1i

ii Count nInstructio

Count nInstructioCPI

Count nInstructio

Cycles ClockCPI

Relative frequency

Page 16: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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 Clock Cycles

= 2×1 + 1×2 + 2×3= 10

Avg. CPI = 10/5 = 2.0

Sequence 2: IC = 6 Clock Cycles

= 4×1 + 1×2 + 1×3= 9

Avg. CPI = 9/6 = 1.5

Page 17: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

Performance Summary

Performance depends on Algorithm: affects IC, possibly CPI

Programming language: affects IC, CPI

Compiler: affects IC, CPI

Instruction set architecture: affects IC, CPI, Tc

cycle Clock

Seconds

nInstructio

cycles Clock

Program

nsInstructioTime CPU

Page 18: Introduction to Computer Architecture SCHOOL OF ELECTRICAL AND COMPUTER ENGINEERING SUMMER 2015 RAMYAR SAEEDI

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?

Corollary: make the common case fast

2080

20 n

Can’t be done!

unaffectedaffected

improved Tfactor timprovemen

TT