lecture 1: computer architecture and technology professor mike schulte computer architecture ece 201

31
Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Upload: dylan-phillips

Post on 21-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Lecture 1:Computer Architecture and

Technology

Professor Mike Schulte

Computer Architecture

ECE 201

Page 2: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Today’s Lecture

° Course Objectives, Format, and Grading

° Course Prerequisites and Content

° Introduction to Computer Architecture

° Computer Technology

° Computer Components

Page 3: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Course Objective

° Course Objective : To give students a clear understanding of the architecture and organization of modern computers, and the cost and performance tradeoffs involved in there design.

Technology ProgrammingLanguages

OperatingSystems History

ApplicationsInterface Design

Measurement &

Evaluation

Parallelism

Computer Architecture:• Instruction Set Design• Machine Organization• Implementation

Page 4: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Class Goals

° Show you how to understand modern computer architecture in its rapidly changing form - discuss fundamental ideas, plus real world examples.

° Provide you with an understanding of current and future trends in computer architecture

° Show you how to design by leading you through the process on challenging problems

° Give you exposure to digital design tools

° Make the class informative and enjoyable. So ...• ask questions

• offer feedback on the course

• come to lecture and office hours

• learn from those around you

Page 5: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Lecture Format

° Lectures presented from Power Point slides & transparencies

° Examples worked on the board

° Copies of slides, homeworks and other information can be downloaded from the course home page at:

http://www.cse.lehigh.edu/~mschulte/ece201-02

° Readings from the book are assigned to complement the lectures.

° Look over the notes and the material from the book before coming to class (not today :).

° Class is designed to be interactive => ask and answer questions.

° Office Hours: T, TH 12:00-1:00 or by appointment, PL 326.

Page 6: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Grading

° Grading for the course is as follows:• Homework and Quizzes : 25%• Midterm Exam : 20%• Class Project : 25%• Final Exam : 30%

° Homework• Due at the start of class• Encouraged to work together, but make sure work is your own• For some homeworks, you will be asked to work in teams

° Exams• Open book and open note (most likely)• Makeup exams given only under extreme circumstances• Final is comprehensive

° Projects - • Design and simulate a version of the MIPS processor• Done in teams of 3 to 4 students• Initial Proposal, Status Report, Final Report, Project Demo• More details later

Page 7: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Prerequisites

° The course prerequisite is ECE 33 or the equivalent.

° You are expected to be familiar with:• Boolean algebra

• Binary number systems

• 2’s complement arithmetic

• Combinational circuits (e.g., AND/OR gates)

• Sequential circuits (e.g. registers)

• Assembly language programming

° If you do not have the above prerequisites, please talk to me after class.

Page 8: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Course Info

° If it has been a long time since you have had ECE 33, it would be a good idea to look over your ECE 33 class notes and Appendix B.

° This class will probably be lots of work, but hopefully you’ll also have fun and learn a lot.

° For the class projects and some homeworks, you will be expected to work in teams - start forming you teams now.

° Please give me feedback whenever you have questions/concerns - feedback form on web page or just stop by my office

° Email for course related questions:

[email protected]

Page 9: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Course Content

° Text book: Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Patterson and Hennessy, Morgan Kaugman, 1997.

° Topics covered include :• Computer Architecture and Technology

• Computer Performance

• Computer Instruction Sets

• Computer Arithmetic

• Processor Design

• Pipelined Processors

• Memory System Design

• Input/Output System Design

Page 10: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Three Great Teaching Assistants

Name: Tony Deliebro Email: [email protected] Office hours: TBD

Name: Venkatram Muddhasani Email: [email protected]

Name: Faisal KhanEmail: [email protected]

Offices and Offices hours coming soon!

Page 11: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Things We Hope You Will Learn from ECE201

° Keep it simple and make it work• Fully test everything individually and then together

• Retest everything whenever you make any changes

• Last minute changes are big “no nos”

° Group dynamics. Communication is the key to success:

• Be open with others of your expectations and your problems

• Everybody should be there on design meetings when key decisions are made and jobs are assigned

° Planning is very important:• Promise what you can deliver; deliver more than you promise

• Murphy’s Law: things DO break at the last minute

- Don’t make your plan based on the best case scenarios

- Freeze you design and don’t make last minute changes

° Never give up! It is not over until you give up.

Page 12: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

What is “Computer Architecture”

° Computer Architecture is the design of the computer at the hardware/software interface.

° Computer Architecture = Instruction Set Architecture + Machine Organization

Computer Architecture

Instruction Set Design Machine Organization

Computer Interface Hardware Components

Compiler/System View Logic Designer’s View

Page 13: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

The Instruction Set: a Critical Interface

instruction set

software

hardware

Page 14: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Instruction Set Architecture

° Instruction set architecture is the attributes of a computing system as seen by the assembly language programmer or compiler. This includes

• Instruction Set (what operations can be performed?)

• Instruction Format (how are instructions specified?)

• Data storage (where is data located?)

• Addressing Modes (how is data accessed?)

• Exceptional Conditions (what happens if something goes wrong?)

° A good understanding of computer architecture is important for compiler writers, operating system designers, and general computer programmers.

Page 15: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

MIPS R3000 Instruction Set Architecture (Summary)

° Instruction Categories• Load/Store

• Computational

• Jump and Branch

• Floating Point

• Memory Management

• Special

R0 - R31

PCHI

LO

OP

OP

OP

rs rt rd sa funct

rs rt immediate

jump target

3 Instruction Formats: all 32 bits wide

Registers

Page 16: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Machine Organization

° Machine organization is the view of the computer that is seen by the logic designer. This includes

• Capabilities & performance characteristics of functional units (e.g., registers, ALU, shifters, etc.).

• Ways in which these components are interconnected

• How information flows between components

• Logic and means by which such information flow is controlled

• Coordination of functional units to realize the ISA

° Typically the machine organization is designed to meet a given instruction set architecture.

° However, in order to design good instruction sets, it is important to understand the how the architecture might be implemented.

Page 17: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Key considerations in “Computer Architecture”

I/O systemInstr. Set Proc.

Compiler

OperatingSystem

Application

Digital DesignCircuit Design

Instruction Set Architecture

Firmware

° Coordination of many levels of abstraction

° Under a rapidly changing set of forces

° Design, Measurement, and Evaluation

Datapath & Control

Layout

Software

Hardware

Page 18: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Levels of abstraction

° An important concept in computer architecture is the use of various levels of abstractions.

° Each level of abstraction consists of • an interface (outside view of what it does), and

• an implementation (inside view of how it works)

A

B

Y

S

2 x 1 Mu

x

A

B

S

NAND

NAND

NAND

Y

Interface Implementation

Page 19: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Forces on Computer Architecture

ComputerArchitecture

Technology ProgrammingLanguages

OperatingSystems

History

Applications

Page 20: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Technology Trends

° In 1985, the single-chip 32-bit processor and the single-board computer emerged

° By 2002, we will have entire computer systems on a single chip.

DRAM

Year Size

1980 64 Kb

1983 256 Kb

1986 1 Mb

1989 4 Mb

1992 16 Mb

1996 64 Mb

1999 256 Mb

2002 1 Gb

i80286

i80486

Pentium

i80386

i8086

i4004

R10000

R4400

R3010

SU MIPS

1000

10000

100000

1000000

10000000

100000000

1970 1975 1980 1985 1990 1995 2000 2005

Transistors

i80x86M68KMIPSAlpha

Microprocessor Logic DensityDRAM chip capacity

Page 21: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Technology trends

° Processor• logic capacity: increases about 30% per year• clock rate: increases about 20% per year• performance: increases about 50% per year

° Memory• DRAM capacity: increases about 60% per year (4x every 3 years)• performance: increases about 3.4% per year

° Disk• capacity: about 60% per year• performance: increases about 3.4% per year

° Network Bandwidth• Bandwidth increasing more than 100% per year!

° What impact does this have on future computer systems?

° What impact does this have on design decisions?

Page 22: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Technoloy Trends

Page 23: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Processor Performance

Year

Perf

orm

an

ce

0

50

100

150

200

250

300

19

82

19

83

19

84

19

85

19

86

19

87

19

88

19

89

19

90

19

91

19

92

19

93

19

94

19

95

RISC

Intel x86

35%/yr

RISCintroduction

performance now improves 50% per year (2x every 1.5 years)

Page 24: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Levels of Representation

High Level Language Program

Assembly Language Program

Machine Language Program

Control Signal Specification

Compiler

Assembler

Machine Interpretation

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

lw$15, 0($2)lw$16, 4($2)sw $16, 0($2)sw $15, 4($2)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

°°

ALUOP[0:3] <= InstReg[9:11] & MASK

Page 25: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

The Big Picture

Control

Datapath

Memory

Processor

Input

Output

° Since 1946 all computers have had 5 main components

Page 26: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Components of a Computer

° The functions of the different computer components are

• datapath - performs arithmetic and logic operations

- e.g., adders, multipliers, shifters

• memory - holds data and instructions

- e.g., cache, main memory, disk

• input - sends data to the computer

- e.g., keyboard, mouse

• output - gets data from the computer

- e.g., screen, sound card

• control - gives directions to the other components

- e.g., bus controller, memory interface unit

Page 27: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Relative Cost of Computer Components

Processor

Computer

Control

Datapath

Memory Devices

Input

Output

Workstation Design Target:25% of cost on Processor25% of cost on MemoryRest on I/O devices,power supplies, box

Page 28: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Computer System Components

Proc

CachesBusses

Memory

I/O Devices:

Controllers

adapters

DisksDisplaysKeyboards

Networks

° All have interfaces & organizations

Controllers

Page 29: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Example Organization

° TI SuperSPARCtm TMS390Z50 in Sun SPARCstation20

Floating-point Unit

Integer Unit

InstCache

RefMMU

DataCache

StoreBuffer

Bus Interface

SuperSPARC

L2$

CC

MBus Module

MBus

L64852 MBus controlM-S Adapter

SBus

DRAM Controller

SBusDMA

SCSIEthernet

STDIO

serialkbdmouseaudioRTCBoot PROMFloppy

SBusCards

Page 30: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Instruction Execution

Instruction

Fetch

Instruction

Decode

Operand

Fetch

Execute

Result

Store

Next

Instruction

Obtain instruction from program storage

Determine required actions and instruction size

Locate and obtain operand data

Compute result value or status

Deposit results in storage for later use

Determine successor instruction

Page 31: Lecture 1: Computer Architecture and Technology Professor Mike Schulte Computer Architecture ECE 201

Summary

° Computer Architecture includes the design of the Instruction Set Architecture (progammer’s view) and the Machine Organization (logic designer’s view).

° Levels of abstraction, which consist of an interface and an implementation are useful to manage designs.

° Processor performance increases rapidly, but the speeds of memory and I/0 have not kept pace.

° Computer systems are comprised on datapath, memory, input devices, output devices, and control.

° By next class: • Read fill out course survey

• read over all of Chapter 1 and Sections 2.1 to 2.3

• Start finding teammates for project and homework