CS270 Computer Organization Fall 2017

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

Chapter 1 Welcome Aboard

CMPSCI 201: Architecture and Assembly Language

Chapter 1 Welcome Aboard

Introduction to Computer Engineering. CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

Computer Organization + DIGITAL DESIGN

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

CSc 2310 Principles of Programming (Java) Jyoti Islam

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

Lecture 1: Introduction to Digital Logic Design

Welcome to CS 135 (Winter 2018)

CPSC 213. Introduction to Computer Systems. Introduction. Unit 0

CS61A Lecture 1. Amir Kamil UC Berkeley January 23, 2013

EECE 321: Computer Organization

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

61A LECTURE 1 FUNCTIONS, VALUES. Steven Tang and Eric Tzeng June 24, 2013

Introduction to Data Structures

CS 241 Data Organization using C

Computer Systems Organization

BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani Pilani Campus Instruction Division. SECOND SEMESTER Course Handout Part II

CSC 261/461 Database Systems. Fall 2017 MW 12:30 pm 1:45 pm CSB 601

Welcome to CS 241 Systems Programming at Illinois

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

Welcome to CS 135 (Fall 2018) Themes of the course. Lectures. cs135/

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

Unit 10: Data Structures CS 101, Fall 2018

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

CSE 240 Introduction to Computer Architecture

Unit 2: Data Storage CS 101, Fall 2018

INF 315E Introduction to Databases School of Information Fall 2015

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

School of Computer Science

MATH 101: Introduction to Contemporary Mathematics

Midterm Exam #2 Review. CS 2308 :: Spring 2016 Molly O'Neil

CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims

WELCOME TO CS 16! Enrollment status: 117/ Problem Solving with Computers-I

Introduction to Computer Systems

CS 3030 Scripting Languages Syllabus

Lecture 1. Course Overview, Python Basics

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


CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

Welcome to MTH 308 A/B!! Principles of Numerical Computation / Numerical Analysis and Scientific Computing

CS240: Programming in C

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

Welcome to. Instructor Marc Pomplun CS 470/670. Introduction to Artificial Intelligence 1/26/2016. Spring Selectivity in Complex Scenes

CSE 240 Introduction to Computer Architecture

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 3, 2015

CMPE 152 Compiler Design

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

Computer Organization & Assembly Language Programming (CSE 2312)

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CSC 015: FUNDAMENTALS OF COMPUTER SCIENCE I

Announcements. 1. Forms to return today after class:

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

Lecture 1. Course Overview, Python Basics

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

Lecture I: Introduction and Overview

1. Go to and then click on the Bookstore link. Select Faculty Adoptions.

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Introduction to Programming System Design CSCI 455x (4 Units)

Review: Performance Latency vs. Throughput. Time (seconds/program) is performance measure Instructions Clock cycles Seconds.

CSE 142. Lecture 1 Course Introduction; Basic Java. Portions Copyright 2008 by Pearson Education

CPS104 Computer Organization Lecture 1

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

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CS415 Compilers Overview of the Course. These slides are based on slides copyrighted by Keith Cooper, Ken Kennedy & Linda Torczon at Rice University

ECE 250 / CPS 250 Computer Architecture. Introduction

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Intensive Introduction to Computer Science. Course Overview Programming in Scratch

CS 374: Algorithms & Models of Computation

ECE Object-Oriented Programming using C++ and Java

College Algebra. Cartesian Coordinates and Graphs. Dr. Nguyen August 22, Department of Mathematics UK

CS157a Fall 2018 Sec3 Home Page/Syllabus

CMSC 132: Object-Oriented Programming II. Administrivia

San Jose State University - Department of Computer Science

Fundamentals of Digital System Design ECE 3700, CPSC 3700

ECE 154A. Architecture. Dmitri Strukov

Welcome to CS 241 Systems Programming at Illinois

CS/SE 153 Concepts of Compiler Design

Welcome to Solving Problems with Computers I

Proctored Exam Support for TROY Online Faculty

Operating Systems CS 571

CS 61C: Great Ideas in Computer Architecture (Machine Structures) Caches Part 2

CSCE 312 Lab manual. Lab 4 - Computer Organization and Data Path Design. Instructor: Dr. Yum. Fall 2016

CS 3030 Scripting Languages Syllabus

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

Overview of the Class

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CS 241 Data Organization. August 21, 2018

WELCOME TO CSE 100! Advanced Data Structures in C++

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

Introduction to Prof. Clarkson Fall Today s music: Prelude from Final Fantasy VII by Nobuo Uematsu (remastered by Sean Schafianski)

Computer Architecture Lecture 2: Fundamental Concepts and ISA. Prof. Onur Mutlu Carnegie Mellon University Spring 2014, 1/15/2014

Welcome to CS 115 (Winter 2019)

COMP3221: Microprocessors and. Embedded Systems

Transcription:

CS270 Computer Organization Fall 2017 Lecture Goals Review course logistics Assignments & quizzes Policies Organization Grading Criteria Introduce key concepts Role of Abstraction Software versus Hardware Universal Computing Devices Layered Model of Computing 2 1

Logistics Course Website http://www.cs.colostate.edu/~cs270 Syllabus (Staff, Lecture/Recitations/Lab Hours, Grading, Late/Makeup Policy, Important Dates) Policies Progress/Schedule Resources Checkin Questions: Recitations / Help Desk http://piazza.com cs270@cs.colostate.edu Instructor Never Canvas! 3 Assignments & Quizzes Assignments Posted on Progress page of the course website Programming (C, LC-3) or Logisim circuit designs See Canvas for due dates Submit via Checkin before 11:59 PM (unless otherwise specified). There is no late period - don't play Clock Chicken. Regrading requests in Piazza (see the syllabus for policies). Quizzes: Can be on-line (canvas) or in-class (using iclicker) 4 2

Policies Grading Criteria Assignments (30%) Recitations (10%) Quizzes and iclicker (10%) Two Midterm Exams (15% each) Final Exam (20%) Late Policy None accepted Academic Integrity http://www.cs.colostate.edu/~info/student-info.html Do your own work Cannot copy and paste any code, unless provided by us 5 People Instructors: Dave Matthews Graduate Teaching assistants: Fahad Ullah Zahra Borhani Undergraduate Teaching Assistants: Jason Stock Sabrina White Office hours/locations See course website 6 3

Organization Order used in the class: Top down 1/3 C programming: data types, language syntax, variables and operators, control structures, functions, pointers and arrays, memory model, recursion, I/O, data structures 1/3 Instruction set architecture: machine/assembly code, instruction formats, branching and control, LC-3 programming, subroutines, memory model (stack) 1/3 computer hardware: numbers and bits, transistors, gates, digital logic, state machines, von Neumann model, instruction sets, LC-3 architecture 8 Top Down Perspective Multilayered view: Higher layers serves as the specification. Lower layer implements provides the implementation We will see How a higher level language (C) is implemented by a processor instruction-set architecture (ISA), LC-3 in our case? How an ISA is implemented using digital circuits? How are digital circuits implemented using transistors? And so on 9 4

Grading Criteria Letter Grade Points A 90% B 80% C 70% D 60% We will not cut higher than this, but we may cut lower. Your average score on exams must be 60% to receive a passing grade in this course. 10 How to be successful in this class 1) Read the textbook. 2) Attend all classes and recitations. 3) Take the in-class and on-line quizzes as required. 4) Do all the assignments yourself, ask questions (early! (but not too early!)) if you run into trouble. 5) Take advantage of lab sessions where help is available from TAs, but try to do it yourself first, too much help can be harmful. 11 5

Text book: Introduction to Computing Systems: From Bits and Gates to C and Beyond 2 nd Edition Yale N. Patt and Sanjay J. Patel Slides based on G. T. Byrd, NCState, McGraw-Hill, With modifications/additions by CSU Faculty 1-12 Chapter 1 Welcome Aboard 6

Two Recurring Themes Abstraction Productivity enhancer don t need to worry about details Can drive a car without knowing how the internal combustion engine works. until something goes wrong! Where s the dipstick? What s a spark plug? Important to understand the components and how they work together. Hardware vs. Software It s not either/or both are components of a computer system. Even if you specialize in one, you should understand capabilities and limitations of both. 1-14 Big Idea #1: Universal Computing Device All computers, given enough time and memory, are capable of computing exactly the same things. = = PDA Workstation Supercomputer 1-15 7

Turing Machine Mathematical model of a device that can perform any computation Alan Turing (1937) ability to read/write symbols on an infinite tape state transitions, based on current state and symbol Every computation can be performed by some Turing machine. (Turing s thesis) a,b T add a+b a,b T mul ab Turing machine that adds For more info about Turing machines, see http://www.wikipedia.org/wiki/turing_machine/ Turing machine that multiplies For more about Alan Turing, see http://www.turing.org.uk/turing/ 1-16 Universal Turing Machine A machine that can implement all Turing machines -- this is also a Turing machine! inputs: data, plus a description of computation (other TMs) T add, T mul a,b,c U c(a+b) Universal Turing Machine U is programmable so is a computer! instructions are part of the input data a computer can emulate a Universal Turing Machine A computer is a universal computing device. 1-17 8

From Theory to Practice In theory, computer can compute anything that s possible to compute given enough memory and time In practice, solving problems involves computing under constraints. time Ø weather forecast, next frame of animation,... cost Ø cell phone, automotive engine controller,... power Ø cell phone, handheld video game,... 1-18 Big Idea #2: Transformations Between Layers Problems Algorithms Language Instruction Set Architecture Microarchitecture Digital Circuits Devices 1-19 9

How do we solve a problem using a computer? A systematic sequence of transformations between layers of abstraction. Problem Algorithm Program Instr Set Architecture Software Design: choose algorithms and data structures Programming: use language to express design Compiling/Interpreting: convert language to machine instructions 1-20 Deeper and Deeper Instr Set Architecture Microarch DigCircuits Devices Processor Design: choose structures to implement ISA Logic/Circuit Design: gates and low-level circuits to implement components Process Engineering & Fabrication: develop and manufacture lowest-level components 1-21 10

Descriptions of Each Level Problem Statement stated using "natural language" may be ambiguous, imprecise Algorithm step-by-step procedure, guaranteed to finish definiteness, effective computability, finiteness Program express the algorithm using a computer language high-level language, low-level language Instruction Set Architecture (ISA) specifies the set of instructions the processor (CPU) can perform data types, addressing mode 1-22 Descriptions of Each Level (cont.) Microarchitecture detailed organization of a processor implementation different implementations of a single ISA Logic Circuits combine basic operations to realize microarchitecture many different ways to implement a single function (e.g., addition) Devices properties of materials, manufacturability 1-23 11

iclicker Quiz (trial) Registration Please register your iclicker using canvas and bring it every time Ensure you are using the right channel Quiz: Pick one: Instruction Set Architecture (ISA) A. specifies the set of instructions the CPU can perform, B. Architecture of a high level language C. How transistors are used to form digital circuits D. Architecture of a C program E. All of the above 1-24 iclicker Quiz (trial) Answer Quiz: Pick one: Instruction Set Architecture (ISA) A. specifies the set of instructions the CPU can perform B. Architecture of a high level language C. How transistors are used to form digital circuits D. Architecture of a C program E. All of the above 1-25 12

Many Choices at Each Level Solve a system of equations Red-black SOR Gaussian elimination Jacobi iteration Multigrid FORTRAN C C++ Java PowerPC Intel x86 ARM Centrino Pentium 4 Core Tradeoffs: cost performance power (etc.) Ripple-carry adder Carry-lookahead adder CMOS Bipolar GaAs 1-26 Course Outline Bits and Bytes How do we represent information using electrical signals? C Programming How do we write programs in C? How do we implement high-level programming constructs? Instruction set architecture/assembly language What operations (instructions) will we implement? How do we use processor instructions to implement algorithms? How do we write modular, reusable code? (subroutines) I/O, Traps, and Interrupts: How does processor communicate with outside world? Digital Logic and processor architecture How do we build circuits to process and store information? How do we build a processor out of logic elements? Computer systems: what is next? 1-27 13