Post on 07-Mar-2021
1
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
1 CS270 - Fall Semester 2016
Introduction to Computing Systems: From Bits and Gates to C and Beyond
2nd Edition
Yale N. Patt Sanjay J. Patel
Original slides from Gregory Byrd, North Carolina State University
Modified slides by Chris Wilcox, Andres Calderon J., Sanjay Rajopadhye, CSU
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
2 CS270 - Fall Semester 2016
Lecture Goals
Review course logistics n Assignments n Policies n Organization n Grading Criteria
Introduce key concepts n Role of Abstraction n Software versus Hardware n Universal Computing Devices n Layered Model of Computing
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
3 CS270 - Fall Semester 2016
Logistics Lectures: See syllabus Staff: See syllabus Recitations: See syllabus Help desks: See syllabus Office hours: See syllabus Materials on the website: n http://www.cs.colostate.edu/~cs270
Piazza: access through Canvas
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
4 CS270 - Fall Semester 2016
Assignments Assignments are posted on website:
Weekly assignments (mostly) alternate between written and programming assignments. Homework assignments: submission mode and deadline varies. Programming assignments are submitted in electronic form Sun. at 10pm. Late submission varies depending on the difficulty of the assignment. Regrading: through Piazza (see syllabus).
2
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
5 CS270 - Fall Semester 2016
Policies Grading Criteria n Assignments (35%) n Recitations (10%) n Peer Instruction (5%) n Two Midterm Exams (15% each) n Final Exam (20%) n You must earn a passing grade (60% or higher) on each
part – assignments and exams– in order to pass the class Late Policy n On-time = full points, late submission= 20% penalty
Academic Integrity n http://www.cs.colostate.edu/~info/student-info.html n Do your own work n Be smart about Internet resources
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
6 CS270 - Fall Semester 2016
Organization 1/3 computer hardware: numbers and bits, transistors, gates, digital logic, state machines, von Neumann model, instruction sets, LC-3 architecture 1/3 assembly code: instruction formats, branching and control, LC-3 programming, subroutines, memory model (stack) 1/3 C programming: data types, language syntax, variables and operators, control structures, functions, pointers and arrays, memory model, recursion, I/O, data structures
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
7 CS270 - Fall Semester 2016
Grading Criteria How to be successful in this class: 1) Attend all classes and recitations, info will
presented that you can’t get anywhere else. 2) Do all the homework assignments, ask
questions (early! (but not too early)) if you run into trouble.
3) Take advantage of lab sessions where help is available from instructors.
4) Read the textbook, work through the end of chapter problems.
Chapter 1 Welcome Aboard
3
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
9 CS270 - Fall Semester 2016
Introduction to the World of Computing
Computer: electronic genius? n NO! Electronic idiot! n Does exactly what we tell it to, nothing more.
Goal of the course: n You will be able to write programs in C n You will understand how a computer works (what’s going
on under the hood). Textbook Approach: n From the bottom up (we will use mostly a top-down
approach). n Bits ➨ Transistors ➨ Gates ➨ Logic ➨ Processor ➨
Instructions ➨ Assembly Code ➨ C Programming
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
10 CS270 - Fall Semester 2016
Two Recurring Themes
Abstraction n Productivity enhancer – don’t need to worry about
details… Can drive a car without knowing how the internal combustion engine works.
n …until something goes wrong! Where’s the dipstick? What’s a spark plug?
n Important to understand the components and how they work together.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
11 CS270 - Fall Semester 2016
Two Recurring Themes
Hardware vs. Software n It’s not either/or – both are components of a computer
system that cooperate. n Even if you specialize in one, you should understand
capabilities and limitations of both. n The best programmers understand the computer
systems which run their programs. n Computers are an entire ecosystem with multiple
levels of abstraction.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
12 CS270 - Fall Semester 2016
Big Idea #1: Universal Computing Devices
All computers, given enough time and memory, are capable of computing exactly the same things.
= = PDA
Workstation Supercomputer
4
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
13 CS270 - Fall Semester 2016
Turing Machine
Mathematical model of a device that can perform any computation – Alan Turing (1937) n ability to read/write symbols on an infinite “tape” n 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/
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
14 CS270 - Fall Semester 2016
Universal Turing Machine
A machine that can implement all Turing machines – this is also a Turing machine! n inputs: data, description of computation (other TMs)
U a,b,c c(a+b)
Universal Turing Machine
Tadd, Tmul
Universal machine 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.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
15 CS270 - Fall Semester 2016
From Theory to Practice In theory, computer can compute anything
that can possibly be computed n given enough memory and time
In practice, solving problems involves computing under constraints. n time
weather forecast, next frame of animation, ...
n cost cell phone, automotive engine controller, ...
n Power/energy cell phone, handheld video game, ...
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
16 CS270 - Fall Semester 2016
Big Idea #2: Transformations Between Layers
Problems
Language
Instruction Set Architecture
Microarchitecture
Circuits
Devices
Algorithms
5
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
17 CS270 - Fall Semester 2016
How do we solve a problem using a computer?
A systematic sequence of transformations between layers of abstraction.
Problem
Algorithm
Program
Software Design: choose algorithms and data structures
Programming: use language to express design
Instr Set Architecture
Compiling/Interpreting: convert language to machine instructions
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
18 CS270 - Fall Semester 2016
Deeper and Deeper…
Instr Set Architecture
Microarch
Circuits
Processor Design: choose structures to implement ISA
Logic/Circuit Design: gates and low-level circuits to implement components
Devices
Process Engineering & Fabrication: develop and manufacture lowest-level components
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
19 CS270 - Fall Semester 2016
Descriptions of Each Level Problem Statement n stated using "natural language" n may be ambiguous, imprecise
Algorithm n step-by-step procedure, guaranteed to finish n definiteness, effective computability, finiteness
Program n express the algorithm using a computer language n high-level language, low-level language
Instruction Set Architecture (ISA) n specifies the set of instructions the computer can perform n data types, addressing mode
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
20 CS270 - Fall Semester 2016
Descriptions of Each Level (cont.)
Microarchitecture n detailed organization of a processor implementation n different implementations of a single ISA
Logic Circuits n combine basic operations to realize microarchitecture n many different ways to implement a single function
(e.g., addition) Devices n properties of materials, manufacturability
6
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
21 CS270 - Fall Semester 2016
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 Atmel AVR
Centrino Pentium 4 Xeon
Ripple-carry adder Carry-lookahead adder
CMOS Bipolar GaAs
Tradeoffs: cost performance power (etc.)
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
22 CS270 - Fall Semester 2016
Book Outline Bits and Bytes n How do we represent information using electrical signals?
Digital Logic n How do we build circuits to process information?
Processor and Instruction Set n How do we build a processor out of logic elements? n What operations (instructions) will we implement?
Assembly Language Programming n How do we use processor instructions to implement algorithms? n How do we write modular, reusable code? (subroutines)
I/O, Traps, and Interrupts n How does processor communicate with outside world?
C Programming n How do we write programs in C?
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
23 CS270 - Fall Semester 2016
Course Outline First, C programming (plus Bits/Bytes/Numbers) n Since you already have two semesters of Java n Learn the C memory model n How function parameters are passed (activation records, stack)
Assembly Language Programming n How do we use processor instructions (three address instructions) to
implement C programs (translation)? n How do we implement modular, reusable code? (subroutines) n How structured programs are broken down into “straight-line” code
with (conditional) branches? Instruction set processor n Instructions and Data (the von Neumann model)?
Digital circuits n Transistors and Gates, Memory and State machines n How the processor is built out of these (Register Transfer Notation)
I/O, Traps, and Interrupts n How does processor communicate with outside world?