CS2504, Spring'2007 ©Dimitris Nikolopoulos CS2504: Computer Organization Lecture 1: Welcome to...

31
CS2504, Spring'2007 ©Dimitris Nikolopoulo CS2504: Computer Organization Lecture 1: Welcome to CS2504 Instructor: Dimitris Nikolopoulos (Δημήτρης Νικολόπουλος)

Transcript of CS2504, Spring'2007 ©Dimitris Nikolopoulos CS2504: Computer Organization Lecture 1: Welcome to...

CS2504, Spring'2007©Dimitris Nikolopoulos

CS2504: Computer Organization

Lecture 1: Welcome to CS2504Instructor: Dimitris Nikolopoulos

(Δημήτρης Νικολόπουλος)

CS2504, Spring'2007©Dimitris Nikolopoulos

2

Administrivia

Instructor: Dimitris Nikolopoulos Office hours: MCB 614, Monday 10.00am-

11.30am 217 VTKWII Building, Wednesday 3.00pm-

4.30pm By appointment: [email protected]

TA: Ganesh Narayanaswami Office hours: TBD [email protected]

CS2504, Spring'2007©Dimitris Nikolopoulos

3

Administrivia

Course structure: Lectures, discussion, some problem solving 10% pop quizzes (always have a notebook),

20% midterm, 25% final, 50% homework (including programming and logic design assignments)

Midterm, final, quizzes in class. Usual honor rules apply

Use common sense You can not share code or written material You can share ideas

CS2504, Spring'2007©Dimitris Nikolopoulos

4

Prerequisites

Familiarity with UNIX (CS 2204) Data structures and C++ (CS 2605)

Grades C or higher Fill out forms, honestly

CS2504, Spring'2007©Dimitris Nikolopoulos

5

Textbook

Patterson and Hennessy, Computer Organization and Design, 3ed. Additional material on CD

Software (simulators, etc.) Practice problems

Course web sites: http://courses.cs.vt.edu/~cs2504 Make a habit of checking the web site! http://forum.cs.vt.edu Curator to be used for homework assignments

CS2504, Spring'2007©Dimitris Nikolopoulos

6

Assignments

Submitted online via curator Instructions for file formats, coding

rules, tools etc. will be posted Primary tools: SPIM, LogicSIM Late submission penalized by 25% per

diem We do use plagiarism detection tools Protocol:

Discuss grade with grader (TA or DSN) If not resolved, discuss further with DSN

CS2504, Spring'2007©Dimitris Nikolopoulos

7

Assignments

Use common sense: Take frequent backups Keep copies of your assignments until they

are graded and any grading issues are resolved

Assignments are atomic Can't prevent exchange of ideas. Feel free! Don't exchange code Do not edit the output! We run the

assignments and we enforce occasional demos

Use reasonable coding principles Some instructions will be posted. Use comments, reasonable identation, etc.

CS2504, Spring'2007©Dimitris Nikolopoulos

8

Reading

Read the book, lectures follow the book Read lecture notes, come to lectures

Check University policies for attendance Lectures convey useful insight Lectures will be posted shortly after class Reward for bugs in lecture notes

Consult frequently with the TA and DSN Nice guys, help a lot!

Textbook CD, companion site Google!

CS2504, Spring'2007©Dimitris Nikolopoulos

9

Evaluation

Graded on a curve: 100-point scale Top 10% of class A, If within 95% of top 10% average A- 1 point under A, B+ 2 points under A B 10 points from A, C 20 points etc Curves may foster some competition, but they

also shield you from unexpected failures in tests and assignments

Instructor reserves right to tune grading policy

CS2504, Spring'2007©Dimitris Nikolopoulos

10

Course outline

I. Computers, abstractions and technology

II.Instruction set architecture: talking to the computer in its own language

III.Arithmetic for computers

IV.Understanding and measuring performance

V.Processor: Datapath and control

VI.Improving performance: pipelines and ILP

VII.Memory hierarchies

VIII.Storage and I/O

IX.Multiprocessors and clusters

CS2504, Spring'2007©Dimitris Nikolopoulos

11

Introduction

Computers, Abstractions and Technology

CS2504, Spring'2007©Dimitris Nikolopoulos

12

Computer revolution

Computers in ATMs Computers in cars Laptops, palmtops, cell phones Settop boxes, Sony PS3, Wii Computers and the web Computers and scientific revolution

Human genome Climate change Nuclear reactions

CS2504, Spring'2007©Dimitris Nikolopoulos

13

Computers around us

Desktops: one user, at home Servers: many users, remotely Supercomputers: highest performance Embedded computers: computers

hidden inside a box, running one application

Class quiz: Which category has the highest population on the planet?

CS2504, Spring'2007©Dimitris Nikolopoulos

14

And the winner is...

CS2504, Spring'2007©Dimitris Nikolopoulos

15

Quiz set No. 2

How many of you know what a Pentium processor is?

How many of you know what an ARM processor is?

How many of you think that they are carrying an ARM processor in their jackets?

CS2504, Spring'2007©Dimitris Nikolopoulos

16

Microprocessor sales

CS2504, Spring'2007©Dimitris Nikolopoulos

17

Below your program

System software Operating system:

hiding complexities, managing resources efficiently

Compiler: translate high-level languages into assembly language instructions

Assembler: translate assembly instructions to bit streams

CS2504, Spring'2007©Dimitris Nikolopoulos

18

A computer from 10 feet

CS2504, Spring'2007©Dimitris Nikolopoulos

19

A computer from 1 foot

CS2504, Spring'2007©Dimitris Nikolopoulos

20

Inside a microprocessor

CS2504, Spring'2007©Dimitris Nikolopoulos

21

Some definitions

Integrated circuit A large collection of transistors

CPU Microprocessor

Datapath and control Arithmetic and instruction logic in the CPU

DRAM Volatile storage for data and instructions

CS2504, Spring'2007©Dimitris Nikolopoulos

22

Some definitions

Cache Volatile superfast storage for instructions

and data Non-volatile storage

Disks, tapes and other media for permanent storage

ISA (instruction set architecture) Abstract interface between hardware and

software: how to talk to a machine correctly ABI (application binary interface)

ISA plus OS interfaces for talking to devices other than the CPU

CS2504, Spring'2007©Dimitris Nikolopoulos

23

Abstracting it away

Computers seen as layers of abstractions: Each layers provides an interface to access

the computer and hides implementation details from the layers above it

Example: binary code, instruction set, high-level programming language, component programming

Simplifies computing tasks, such as programming, compiling, running programs

CS has been raising the level of abstraction for almost 50 years

Some indications that this trend may change in the near future (blurred boundaries)

CS2504, Spring'2007©Dimitris Nikolopoulos

24

Memory hierarchies

A hierarchy of storage “devices”: E.g. Cache, DRAM, disk, tapes, the library Moving down: Lower cost, increased capacity,

slower access time What makes memory hierarchies work:

The principle of locality Programs go through phases A program needs only a portion of its

instructions/data to execute in the time span of a phase

Adjacent data accessed by adjacent instructions Data is often reused

CS2504, Spring'2007©Dimitris Nikolopoulos

25

The network

Wasn't even in the CO books until the latest edition...

Now, a computers without a network interface may be considered useless!

Networking drives computer evolution in many ways

CS2504, Spring'2007©Dimitris Nikolopoulos

26

Moore's law (processors)

CS2504, Spring'2007©Dimitris Nikolopoulos

27

Moore's law (memories)

CS2504, Spring'2007©Dimitris Nikolopoulos

28

Moore's law discussion

Many project its end Some reasons for being pessimistic:

Physical limitations with packaging components in silicon

Physical limitations with power. Microprocessor power density is similar to that of nuclear reactors...

Physical limitations with distance. Signals need time to travel inside the processor...

CS2504, Spring'2007©Dimitris Nikolopoulos

29

Moore's law discussion

What is the driving force? For many years: technology! Able to package more transistors on a chip Think of PC ads you've seen in the past. All

about clock-rate... Think of PC ads you've seen recently. All

about multicore... So what changed?

CS2504, Spring'2007©Dimitris Nikolopoulos

30

Staying on Moore's curve

Innovation in the design of microprocessors has become more important Instruction-level parallelism Prediction, speculation Thread-level parallelism Better organization of memory hierarchies

System software has become more important Optimizing compilers for exotic

microprocessors Parallelism in algorithms and system

software

CS2504, Spring'2007©Dimitris Nikolopoulos

31

Recap

An exciting, rapidly changing field of study: The computer is ubiquitous

You may be carrying 2-3 with you as we speak May have a few tens of them at home

Exponential growth driven by: Technology Innovation

Technology that changes our lives in ways not seen before:

Google and access to information The human genome The $100 laptop The virtual patient