CS270 Computer Organization

Slides:



Advertisements
Similar presentations
1-1 Welcome to: CSC225 Introduction to Computer Organization Paul Hatalsky.
Advertisements

CSC 2400 Computer Systems I Lecture 3 Big Ideas. 2 Big Idea: Universal Computing Device All computers, given enough time and memory, are capable of computing.
ITCS 3181 Logic and Computer Systems
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
Copyright © 2003 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard,
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University.
Introduction to Computer Engineering ECE/CS 252, Fall 2010 Prof. Mikko Lipasti Department of Electrical and Computer Engineering University of Wisconsin.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
Instructor : Po-Yu Kuo 教師:郭柏佑 Ch. 1 Introduction EL 1009 計算機概論 ( 電子一 A) Introduction to Computer Science.
Welcome Aboard – Chapter 1 COMP 2610 Dr. James Money COMP
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Welcome to: CSC225 Introduction to Computer Organization.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Computer Organization Intro 1 CEG 320/520: Computer Organization and Assembly Language Programming Introduction to Computer Organization.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computer Engineering ELEC S100F (Fall.
مبانی کامپیوتر و برنامه سازی محمودرضا هاشمی دانشکده برق و کامپيوتر دانشگاه تهران پاییز 84.
MARC: Developing Bioinformatics Programs July 2009 Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist:
Spring 2006ICOM 4036 Programming Laguages Lecture 2 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4036 Lecture 2.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
Introduction to Computer Engineering CS/ECE 252, Spring 2008 Prof. David A. Wood Computer Sciences Department University of Wisconsin – Madison Adapted.
MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Introduction to CSCI 1311 Dr. Mark C. Lewis
Yale N. Patt Sanjay J. Patel
CSC235 Computer Organization & Assembly Language
Computer Network Fundamentals CNT4007C
ECE2030 Introduction to Computer Engineering Lecture 1: Overview
Instructor:Po-Yu Kuo 教師:郭柏佑
Computer Organization and Machine Language Programming CPTG 245
ENCM 369 Computer Organization
Assembly Language for x86 Processors 6th Edition
CSc 1302 Principles of Computer Science II
Computer Networks CNT5106C
Introduction to Computer Engineering
Instructor:Po-Yu Kuo 教師:郭柏佑
0. Problem solving in IT (COMP1001)
GC101 Introduction to computers and programs
Microprocessor Systems Design I
Microprocessor Systems Design I
Computer Architecture
Introduction to Computer Engineering
Computer Architecture Syllabus
INTRODUCTION TO MICROPROCESSORS
Computer Science 102 Data Structures CSCI-UA
September 27 – Course introductions; Adts; Stacks and Queues
INTRODUCTION TO MICROPROCESSORS
Welcome Aboard 1.
CS190/295 Programming in Python for Life Sciences: Lecture 1
Foundations of Computer Science
Computer Networks CNT5106C
CDA 3100 Spring 2009.
T Computer Architecture, Autumn 2005
CDA 3100 Summer 2013.
Chapter 1 Welcome Aboard!. Chapter 1 Welcome Aboard!
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
Introduction to Computer Engineering
Introduction to Microprocessor Programming
Welcome to: CSC225 Introduction to Computer Organization
The Nature of Computing
Computer Networks CNT5106C
Professor: Shereen Khoja
Introduction to Computer Engineering
Dr. Clincy Professor of CS
Presentation transcript:

CS270 Computer Organization Slides based on G. T. Byrd, NCState, © McGraw-Hill, With modifications/additions by CSU Faculty

To answer the questions How? and Why? Why are you here? To answer the questions How? and Why? Then use that information to write better code So far you have learned to write code but not how that code actually controls a computer or how a computer works. Answering these questions is generally what this class is going to cover

Who am I Phil Sharp Masters in Computer Science CS270 student in Fall 16 sharpp@colostate.edu The TAs GTAs Zara, Pooria TAs Kacey, Elinor, Nathan, Ryan

What is the output of the C code fragment shown below? CS160 - Intro CS160 - Intro What is the output of the C code fragment shown below? hello 2 0x1a 5.68 Hello 2 0x1a 5.68 Hello 50 0x1a 5.68 Hello 2 0x26 5.68 Hello 2 0x1A 5.67 char *s = “Hello”; char c = 50; int x = 26; float f = 5.6789; printf(“%s %c 0x%02x %.2f\n”, s, c, x, f); Answer is B), Hello is capitalized, ASCII 50 is 2, 26 is 0x1a (not 0x1A), and %.2f rounds not truncates. 4

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

Logistics Lectures: See syllabus Staff: See syllabus Recitations: See syllabus Help desks: See Piazza Office hours: See syllabus Materials on the website: http://www.cs.colostate.edu/~cs270 Piazza: access through Canvas, or directly

Policies Grading Criteria Late Policy Academic Integrity Assignments (20%) Recitations (10%) Quizzes and iClicker (10%) Two Midterm Exams (20% each) Final Exam (20%) Late Policy Two days on assignments 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 Not sequential, we will start on C programming right away!

Assignments & Quizzes Assignments Quizzes 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). Late period for assignments – two days, 20% deduction Quizzes Can be on-line (canvas) or in-class (using iClicker) iClicker quizzes will be randomly assigned and used for attendance iClicker practice quiz next class period (no points)

Worksheets Worksheets Worksheets will be done as part of the lecture Can work with your neighbors No points for now Questions may appear on tests We will go over worksheets at the beginning on the following class period Great way to test your understanding of the material Bring a laptop to lookup material Questions could appear on a test

Attendance ~6 iClicker attendance quizzes throughout the semester Random dates One freebie Always bring your iClicker iClicker practice on Thursday

Organization C programming Instruction set architecture data types, language syntax, variables and operators, control structures, functions, pointers and arrays, memory model, recursion, I/O, data structures Instruction set architecture machine/assembly code, instruction formats, branching and control, LC-3 programming, subroutines, memory model (stack) Computer hardware numbers and bits, transistors, gates, digital logic, state machines, von Neumann model, instruction sets, LC-3 architecture Not sequential, we aill start on C programming right away!

Top Down Perspective Multilayered view We will see 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 … Not sequential, we aill start on C programming right away!

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 ≥65% to receive a passing grade in this course. Solutions to the odd number problems are given on the class website.

How to be successful in this class Read the textbook It takes multiple passes to understand new material Attend all classes and recitations. Random iClicker attendance quizzes Take the in-class and on-line quizzes as required. Do the worksheets Do all the assignments yourself Ask questions (early! (but not too early!)) if you run into trouble. Take advantage of lab sessions where help is available from TAs Try to do it yourself first, too much help can be harmful. Solutions to the odd number problems are given on the class website.

Textbook Introduction to Computing Systems: From Bits and Gates to C and Beyond 2nd Edition Yale N. Patt and Sanjay J. Patel

Other Resources Computer Organization and Design by David Patterson, John Hennessy C Programming Language by Dennis Ritchie, Brian Kernighan MIT Open Courseware 6.004 Introduction to the Theory of Computation by Michael Sipser

CS160 - Intro CS160 - Intro What are the binary and hexadecimal equivalents of the decimal number 137, assuming 8-bit precision, unsigned? 10000011, 0x83 10000101, 0x85 10000111, 0x87 10001001, 0x89 None of the above Correct answer is D) 17

Chapter 1 Welcome Aboard

Two Recurring Themes Abstraction Hardware vs. Software 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.

Big Idea #1: Universal Computing Device All computers, given enough time and memory, are capable of computing exactly the same things. = = PDA Workstation Supercomputer

Classes of Automata https://en.wikipedia.org/wiki/File:Automata_theory.svg

Tadd Tmul 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) Tadd a,b a+b Turing machine that adds Tmul a,b ab Turing machine that multiplies For more info about Turing machines, see http://www.wikipedia.org/wiki/Turing_machine/ For more about Alan Turing, see http://www.turing.org.uk/turing/

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) U a,b,c c(a+b) Universal Turing Machine Tadd, Tmul 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.

From Theory to Practice In theory, computer can compute anything that’s possible to compute halting problem computable/decidable? 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, ...

Big Idea #2: Transformations Between Layers Problems Algorithms Language Instruction Set Architecture Microarchitecture Digital Circuits Devices

How do we solve a problem using a computer? A systematic sequence of transformations between layers of abstraction. Problem Software Design: choose algorithms and data structures Algorithm Programming: use language to express design Program Compiling/Interpreting: convert language to machine instructions Instr Set Architecture

Deeper and Deeper… Processor Design: Instr Set Architecture Processor Design: choose structures to implement ISA Microarch Logic/Circuit Design: gates and low-level circuits to implement components DigCircuits Process Engineering & Fabrication: develop and manufacture lowest-level components Devices

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 Time flies like an arrow

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 Examples of problems that span layers: CMU Computer Architecture Intro Lecture

Many Choices at Each Level Solve a system of equations Gaussian elimination Jacobi iteration Red-black SOR Multigrid FORTRAN C C++ Java Intel x86 PowerPC ARM Centrino Pentium 4 Core Ripple-carry adder Carry-lookahead adder CMOS Bipolar GaAs Tradeoffs: cost performance power (etc.) Sun and Java are trademarks of Sun Microsystems, Inc. Intel, Pentium, Centrino, and Xeon are trademarks of Intel Corporation. AMD and Athlon and trademarks of Advanced Micro Devices, Inc. Atmel and AVR are registered trademarks of Atmel Corporation. PowerPC is a trademark of International Business Machines Corporation.

Course Outline Computer systems: what is next? Bits and Bytes How do we represent information? 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?