Instructor. ECE 152 Introduction to Computer Architecture. Course Website. Undergrad Teaching Assistants

Similar documents
Instructors. ECE 152 Introduction to Computer Architecture. Undergrad Teaching Assistants. Course Website. Textbook.

ECE 250 / CPS 250 Computer Architecture. Introduction

EECE 321: Computer Organization

Handouts. (CSC-3501) Lecture 1 (15 Jan 2008) Seung-Jong Park (Jay) Class information. Schedule (check online frequently)

Computers in Engineering COMP 208. A Brief History. Mechanical Calculators. A Historic Perspective Michael A. Hawker

Computers in Engineering COMP 208

Computer Architecture. Fall Dongkun Shin, SKKU

COURSE OVERVIEW. Introduction to Computer Engineering 2015 Spring by Euiseong Seo

Computer System architectures

CS64 Computer Organization

Computer Systems and Networks. ECPE 170 University of the Pacific

ECE 154A. Architecture. Dmitri Strukov

EITF20: Computer Architecture Part1.1.1: Introduction

CPS104 Computer Organization Lecture 1. CPS104: Computer Organization. Meat of the Course. Robert Wagner

Course Outline. Introduction. Intro Computer Organization. Computer Science Dept Va Tech January McQuain & Ribbens

CPS104 Computer Organization Lecture 1

IT 252 Computer Organization and Architecture. Introduction. Chia-Chi Teng

Welcome to CSE 4300! Spring 2018

CMPSCI 201: Architecture and Assembly Language

CSE 141: Computer Architecture. Professor: Michael Taylor. UCSD Department of Computer Science & Engineering

Administrative matters. EEL-4713C Computer Architecture Lecture 1. Overview. What is this class about?

URL: Offered by: Should already know how to design with logic. Will learn...

Figure 1-1. A multilevel machine.

When and Where? Course Information. Expected Background ECE 486/586. Computer Architecture. Lecture # 1. Spring Portland State University

How What When Why CSC3501 FALL07 CSC3501 FALL07. Louisiana State University 1- Introduction - 1. Louisiana State University 1- Introduction - 2

CS430 - Computer Architecture William J. Taffe Fall 2002 using slides from. CS61C - Machine Structures Dave Patterson Fall 2000

Computer Evolution. Budditha Hettige. Department of Computer Science

Computer Evolution. Computer Generation. The Zero Generation (3) Charles Babbage. First Generation- Time Line

EEM 486: Computer Architecture

Unit 1: Introduction

CSE Introduction to Computer Architecture

You Will Need Floppy Disks for your labs!

CS61C Machine Structures. Lecture 1 Introduction. 8/25/2003 Brian Harvey. John Wawrzynek (Warznek) www-inst.eecs.berkeley.

Computer Organization & Assembly Language Programming (CSE 2312)

Computer Architecture Computer Architecture. Computer Architecture. What is Computer Architecture? Grading

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

Computer Architecture is...??? CSE 240A -- Principles of Computer Architecture. Computer Architecture is...??? Computer Architecture is...???

Instructors: Randy H. Katz David A. PaHerson hhp://inst.eecs.berkeley.edu/~cs61c/fa10. Fall Lecture #1. Agenda

Computer Organization

Introduction to Computing Systems: From Bits and Gates to C and Beyond 2 nd Edition

Moore s Law. CS 6534: Tech Trends / Intro. Good Ol Days: Frequency Scaling. The Power Wall. Charles Reiss. 24 August 2016

Operating Systems CMPSC 473. Introduction January 15, Lecture 1 Instructor: Trent Jaeger

CS270 Computer Organization Fall 2017

EECS 678: Introduction to Operating Systems. Heechul Yun

Introduction. What is Computer Architecture? Design constraints. What is Computer Architecture? Computer Architecture ELEC3441

CS 6534: Tech Trends / Intro

What is this class all about?

Calendar Description

Agenda. Old School CS61c. Agenda. New School CS61c 8/26/10. CS 61C: Great Ideas in Computer Architecture (Machine Structures)

1DT157 Digitalteknik och datorarkitekt. Digital technology and computer architecture, 5p

CMSC 611: Advanced Computer Architecture

CSE : Introduction to Computer Architecture

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

Computer Architecture

ESET 349 Microcontroller Architecture, Fall 2018

URL: Offered by: Should already know: Will learn: 01 1 EE 4720 Computer Architecture

CS 3410: Intro to Computer System Organization and Programming

CS61C Machine Structures. Lecture 1 Introduction. 8/27/2006 John Wawrzynek (Warzneck)

Computer Architecture

Fundamentals of Digital System Design ECE 3700, CPSC 3700

Introduction. What is Computer Architecture? Meltdown & Spectre. Meltdown & Spectre. Computer Architecture ELEC /1/17. Dr. Hayden Kwok-Hay So

378: Machine Organization and Assembly Language

Evolution of the Computer

Chapter 1. The Big Picture

CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro

Introduction. What is Computer Architecture? Meltdown & Spectre. Meltdown & Spectre. Computer Architecture ELEC3441. Dr. Hayden Kwok-Hay So

Introduction to Computer Systems

EECS 678: Introduction to Operating Systems. Heechul Yun

CSE 417 Practical Algorithms. (a.k.a. Algorithms & Computational Complexity)

CS Computer Architecture Spring Lecture 01: Introduction

C Programming for Engineers Introduction

About Me. Office Hours: Tu 4-5, W 1-2, or by appointment Office: 346A IST Bldg

Computer Systems & Architecture

Chapter 1. Introduction To Computer Systems

Lecture 1: Gentle Introduction to GPUs

14:332:331. Lecture 1

ECE 15B COMPUTER ORGANIZATION

Erik Jonsson School of Engineering and Computer Science THE UNIVERSITY OF TEXAS AT DALLAS HISTORY OF EE 2310

ECE 250 / CS250 Introduction to Computer Architecture

Inf2C - Computer Systems Lecture 1 Course overview & the big picture

Where We Are in This Course Right Now. ECE 152 Introduction to Computer Architecture Input/Output (I/O) Copyright 2012 Daniel J. Sorin Duke University

What is this class all about?

Computer Architecture!

Introduction to Computer Systems

CSC Operating Systems Fall Lecture - I Introduction. Tevfik Ko!ar. Louisiana State University. August 25 th, Contact Information

time step first instruction second instruction

Chapter 2. OS Overview

Introduction to Data Structures

Intro to Math 230 Assembly Language Programming. Lecture # 01 01/15/08

ELEC 5200/6200 Computer Architecture and Design Spring 2017 Lecture 1: Introduction

Welcome to COS151! 1.1

EE282H: Computer Architecture and Organization. EE282H: Computer Architecture and Organization -- Course Overview

Computer Architecture

What is Computer Architecture? CSE Introduction to Computer Architecture. Why do I care? Which is faster? Allan Snavely

Computer Architecture. Introduction. Lynn Choi Korea University

CS101 Lecture 25: The Machinery of Computation: Computer Architecture. John Magee 29 July 2013 Some material copyright Jones and Bartlett

CS240: Programming in C

CS 241 Data Organization using C

Thomas Polzer Institut für Technische Informatik

Introduction to Computer Systems

Transcription:

Instructor ECE 152 Introduction to Computer Architecture Intro and Overview Copyright 2009 Daniel J. Sorin Duke University Slides are derived from work by Amir Roth (Penn) and Alvy Lebeck (Duke) Spring 2009 Professor: Dan Sorin Office: Hudson Hall 209C Email: sorin@ee.duke.edu subject of all emails to me must begin with ECE152 Office Hours: TBD If you have class at all of these times, email me to meet No graduate TA for this course ECE 152 2 Undergrad Teaching Assistants Undergraduate TAs (UTAs): Kevin Brown (kjb5@duke.edu) Zach Cancio (zachary.cancio@duke.edu) Alex Edelsburg (alex.edelsburg@duke.edu) Alex Hunter (alex.hunter@duke.edu) George Rossin (george.rossin@duke.edu) Preeyanka Shah (preeyanka.shah@duke.edu) Will help with Answering email questions about homeworks and project Holding office hours to help with CAD software Will NOT bail you out at 3am when deadline is at 10am Course Website Course Web Page http://www.ee.duke.edu/~sorin/ece152/ Lecture slides available on web before or shortly after class Print them out and bring them with you to class Value (just reading slides) << Value (attending class) Missing class = missing important course material Most important info for course is on website Please check it before emailing me or TAs You are required to monitor web page Homework and project assignments will appear on web page I will announce them as well ECE 152 3 ECE 152 4

Google Group for ECE 152 I will communicate with you via email You must check your email I have also set up a Google group and invited all of you And the TAs! If you have questions about homeworks or project parts, please post them there then everyone can see the answer(s) posted there by me, a TA, or your fellow classmate Textbook Text: Computer Organization & Design (Patterson & Hennessy) 4 th edition of the textbook You are expected to complete the assigned readings We will not cover material in the textbook in a strictly linear fashion ECE 152 5 ECE 152 6 Workload This is not an easy class Readings from textbook Homework assignments (performed in groups of 2) Pencil and paper problems Small programming problems Project (performed in groups of 2) Building the Duke152/16 computer in real hardware! Programming the Duke152/16 computer you built You will choose project partners, and I will ensure that group grading is done fairly by end-of-semester questionnaires Project will be broken up into smaller parts to make it more manage-able Project Part 1: Building a register file and finite state machine, due: Fri, Jan 16 In case you don t believe me, listen to your colleagues ECE 152 7 ECE 152 8

Grading Grade breakdown Homework 20% Project 35% (graded as a group, but fairly) Midterm Exam 20% Final Exam 25% I strongly believe in partial credit Please explain your answers to get as much credit as possible Late homework policy 10% reduction for each day late No credit after the homework is graded and handed back Assignments take a lot of time, so start them early Yes, this means you! And you and you and especially you. Academic Misconduct Academic Misconduct Refer to Duke Honor Code (link to it off course website) Studying together in groups is encouraged Homework and project must be in groups of 2 You may choose a different partner for each homework You will choose one partner for all parts of project Common examples of cheating: Running out of time and using someone else's output Borrowing code from someone who took course before Using solutions found on the Web I will not tolerate any academic misconduct! Historically, this course has led the league in cases of academic misconduct that have led to suspensions and expulsions Software for detecting cheating is very, very good and I use it ECE 152 9 ECE 152 10 Goals of This Course Outline of Introduction By end of semester, you will Know how computers work What s inside a computer? How do computers run programs written in C, C++, Java, Matlab, etc.? Design your own computer, build it in real hardware, and program it! Understand the engineering tradeoffs to be made in the design and implementation of different types of computers If, at any point, it s not clear why I m talking about some topic, please ask! Administrivia What is a computer? What is computer architecture? Why are there different types of computers? How do we tell computers what to do? ECE 152 11 ECE 152 12

Reading Assignment Patterson & Hennessy Chapter 1 This is a short and relatively easy-to-read chapter Please read it such that afterwards you d feel comfortable teaching the material to an ECE 52 student For those of you who haven t done digital logic design in a while, you may want to go back to your ECE 52 textbook Digital logic design is a pre-requisite for this course, but I understand if some of you haven t done this in a while You should be able to design combination logic and finite state machines otherwise, you re going to have a very rough semester What is a Computer? A computer is just a digital system Consists of combinational and sequential logic One big, honking finite state machine A computer would be a very exciting ECE 52 project Seriously, it s just a digital system Yes, but what does this digital system do? Whatever you tell it to do! No more, no less A computer just does what software tells it to do Software is a series of instructions ICQ (In-Class Question): What instructions does a computer need? ECE 152 13 ECE 152 14 Computers Execute Instructions What kinds of instructions are there? Arithmetic: add, subtract, multiply, divide, etc. Read/write from memory Conditional: if condition, then jump to other part of program What other kinds of instructions might be useful? How do we represent instructions? Digitally! With strings of zeros and ones Remember: a computer is just a digital system! So how do computers run programs in Java or C/C++ or Matlab or whatever whippersnappers use these days? None of us write programs in binary (zeros and ones) We ll get to this in a few minutes Instruction Sets Computers can only execute instructions that are in their specific machine language Every type of computer has a different instruction set that it understands Intel (and AMD) IA-32 (x86): Pentium4, Pentium CoreDuo, AMD Athlon and Opteron, AMD Dual Core, etc. Intel IA-64: Itanium, Itanium 2 PowerPC: In Cell Processor and old Apple Macs SPARC: In computers from Sun Microsystems ARM: In many embedded processors MIPS: MIPS R10000 this is the example used in the textbook Note: no computer executes Java or C++ Not even Matlab (sorry, Dr. G) ECE 152 15 ECE 152 16

Outline of Introduction Administrivia What is a computer? What is computer architecture? Why are there different types of computers? How do we tell computers what to do? Hint: It Doesn t Involve Skyscrapers Strictly speaking, a computer architecture specifies what the hardware looks like (its interface), so that we can write software to run on it Exactly what instructions does it have Number of register storage locations it has And more that we ll learn about later in semester Important point: there are many, many different ways to build digital systems that provide the same interface to software There are many microarchitectures that conform to same architecture Some are better than others! If you don t believe me, I ll trade you my original Intel Pentium for your Intel QuadCore ICQ: So what s inside one of these digital systems? ECE 152 17 ECE 152 18 The Inside of a Computer System Organization The Five Classic Components of a Computer CPU Processor/CPU Control Datapath Memory Input Output cache Cache memory bus main Main memory Memory disk controller I/O bridge I/O Bus graphics controller network interface disk disk graphics Network ECE 152 19 ECE 152 20

What Is ECE 152 All About? Architecture = interface between hardware and software Application OS Compiler Firmware CPU I/O Memory Digital Circuits Gates & Transistors Software Interface between HW & SW Hardware Outline of Introduction Administrivia What is a computer? What is computer architecture? Why are there different types of computers? How do we tell computers what to do? ECE 152 = design of CPU, memory, and I/O ECE 152 21 ECE 152 22 Differences Between Computers We have different computers for different purposes Some can achieve performance needed for highperformance gaming E.g., Cell Processor in PlayStation 3 Others can achieve decent enough performance for laptop without using too much power E.g., Intel Pentium M (for Mobile) And yet others can function reliably enough to be trusted with the control of your car s brakes ICQ: What computers do you use? ICQ: Which of those computers do you own? Kinds of Computers Traditional personal computers Laptop, desktop Less-traditional personal computers iphone, Blackberry, ipod, Xbox, Wii, etc. Hidden big computers Mainframes and servers for business, science, government E.g., the unreliable POS that runs Duke email Google has tens of thousands of computers (that you don t see) Hidden embedded computers Controllers for cars, airplanes, ATMs, toasters, DVD players, etc. Far and away the largest market for computers! Other kinds of computers?? ECE 152 23 ECE 152 24

Applications Forces on Computer Architecture Technology Operating Systems Computer Architecture Programming Languages History A Very Brief History of Computing 1645 Blaise Pascal s Calculating Machine 1822 Charles Babbage Difference Engine Analytic Engine: Augusta Ada King first programmer (woman) < 1946 Eckert & Mauchly ENIAC (Electronic Numerical Integrator and Calculator) 1947 John von Neumannn Proposed the Stored Program Computer Virtually all current computers are von Neumann machines 1949 Maurice Wilkes EDSAC (Electronic Delay Storage Automatic Calculator) ECE 152 25 ECE 152 26 Some Commercial Computers Microprocessor Trends (for Intel CPUs) Year Name Size (cu. ft.) Adds/sec Price 1951 UNIVAC I 1000 1,900 $1,000,000 1964 IBM S/360 Model 50 60 500,000 $1,000,000 1965 PDP-8 8 330,000 $16,000 1976 Cray-1 58 166 million $4,000,000 1981 IBM PC desktop 240,000 $3,000 1991 1996 2002 2002 HP 9000 / model 750 PC with Intel PentiumPro PC with Intel Pentium4 PC with Intel Itanium2 desktop desktop desktop/laptop/ rack desktop/rack 50 million 400 million 4 billion ~10 billion $7,400 $4,400 $1-2K $1-2K 2008 Cell processor PlayStation3 ~200 billion ~$350 (ebay) ECE 152 27 ECE 152 28

What Do Computer Architects Do? Full disclosure: I m a computer architect Design new microarchitectures Very occasionally, we design new architectures Design computers that meet ever-changing needs and challenges Tailored to new applications (e.g., image/video processing) Amenable to new technologies (e.g., faster and more plentiful transistors) More reliable, more secure, use less power, etc. Computer architecture is engineering, not science There is no one right way to design a computer this is why there isn t just one type of computer in the world This does not mean, though, that all computers are equally good Outline of Introduction Administrivia What is a computer? What is computer architecture? Why are there different types of computers? How do we tell computers what to do? ECE 152 29 ECE 152 30