Chapter 1 Welcome Aboard

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

CMPSCI 201: Architecture and Assembly Language

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

CS270 Computer Organization Fall 2017

Chapter 1 Welcome Aboard

Computer Organization + DIGITAL DESIGN

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

DC57 COMPUTER ORGANIZATION JUNE 2013

The LC3's micro-coded controller ("useq") is nothing more than a finite-state machine (FSM). It has these inputs:

COMP3221: Microprocessors and. and Embedded Systems. Instruction Set Architecture (ISA) What makes an ISA? #1: Memory Models. What makes an ISA?

COMP2121: Microprocessors and Interfacing

CISC 4090 Theory of Computation

COMP2121: Microprocessors and Interfacing. Instruction Set Architecture (ISA)

Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur

Unit 7 Number System and Bases. 7.1 Number System. 7.2 Binary Numbers. 7.3 Adding and Subtracting Binary Numbers. 7.4 Multiplying Binary Numbers

Practical Malware Analysis

ENCM 369 Winter 2019 Lab 6 for the Week of February 25

Terminology & Basic Concepts

(Refer Slide Time 6:48)

Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 1: Basic Concepts. Chapter Overview. Welcome to Assembly Language

Theory of Computations Spring 2016 Practice Final Exam Solutions

(Refer Slide Time 3:31)

Computer Architecture Set Four. Arithmetic

Computer Architecture Today (I)

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)

CSE 105 THEORY OF COMPUTATION

Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Computing Layers

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

9/3/2016. ECE 120: Introduction to Computing. Few Programmers Write Instructions (Assembly Code) Spend a Week Learning the C Programming Language

Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Review Topics. parameter passing, memory model)

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

Calendar Description

Computer Architecture Prof. Smruti Ranjan Sarangi Department of Computer Science and Engineering Indian Institute of Technology, Delhi

Data Representation Type of Data Representation Integers Bits Unsigned 2 s Comp Excess 7 Excess 8

Computer Science and Programming. CPS 06 Program Design and Methodology I. What is Computer Science? Computer Science

Computer Organization & Assembly Language Programming

Cost of Your Programs

Hardware Modeling using Verilog Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

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

Theory of Programming Languages COMP360

Computing Layers. Chapter 5 The LC-3

We can create PDAs with multiple stacks. At each step we look at the current state, the current input symbol, and the top of each stack.

Computer Organization & Assembly Language Programming

CSE 105 THEORY OF COMPUTATION

I ve been getting this a lot lately So, what are you teaching this term? Computer Organization. Do you mean, like keeping your computer in place?

Chapter 5:: Target Machine Architecture (cont.)

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Chapter Overview. Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 1: Basic Concepts. Printing this Slide Show

Outline. What Makes a Good ISA? Programmability. Implementability

CSCI 402: Computer Architectures. Instructions: Language of the Computer (1) Fengguang Song Department of Computer & Information Science IUPUI

EE 3170 Microcontroller Applications

Theory of Computation Prof. Raghunath Tewari Department of Computer Science and Engineering Indian Institute of Technology, Kanpur

컴퓨터개념및실습. 기말고사 review

Computer Organization & Assembly Language Programming (CSE 2312)

Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 1: Basic Concepts

Material from Recitation 1

School of Computer Science

CSCI 3130: Formal Languages and Automata Theory Lecture 16 The Chinese University of Hong Kong, Fall 2010

UNIT 1 USING LOGIC. UPGRADE 8 Write a detailed report on how logic gates would be used to add up two nibbles using examples and explanations

Binary Arithmetic Intro to Assembly Language CS 64: Computer Organization and Design Logic Lecture #3

Chapter 1. Introducing the Universal Machine

Econ 172A - Slides from Lecture 8

Chapter 3: part 3 Binary Subtraction

COMP 410 Lecture 1. Kyle Dewey

An Introduction to Python (TEJ3M & TEJ4M)

COMS 1003 Fall Introduction to Computer Programming in C. History & Computer Organization. September 15 th

Registers. Registers

Chapter 3 Arithmetic for Computers

COSC121: Computer Systems: Review

Does this program exist? Limits of computability. Does this program exist? A helper function. For example, if the string program is

Computer Architecture

EITF20: Computer Architecture Part2.1.1: Instruction Set Architecture

Week 7: Assignment Solutions

CMSC 313 COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE PROGRAMMING LECTURE 01, SPRING 2013

Introduction to Scientific Computing

CS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College February 9, 2016

CSE 120. Computer Science Principles

Week 6: Processor Components

CS 31: Intro to Systems ISAs and Assembly. Kevin Webb Swarthmore College September 25, 2018

CS311 Lecture: CPU Implementation: The Register Transfer Level, the Register Set, Data Paths, and the ALU

Real Time and Embedded Systems. by Dr. Lesley Shannon Course Website:

Recitation Session 6

CS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017

1 Parsing (25 pts, 5 each)

CS61C : Machine Structures

Numerical computing. How computers store real numbers and the problems that result

Topic 3: Fractions. Topic 1 Integers. Topic 2 Decimals. Topic 3 Fractions. Topic 4 Ratios. Topic 5 Percentages. Topic 6 Algebra

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

Slides for Faculty Oxford University Press All rights reserved.

1. Prove that if you have tri-state buffers and inverters, you can build any combinational logic circuit. [4]

Grade 6 Math Circles November 6 & Relations, Functions, and Morphisms

History of Computing. Ahmed Sallam 11/28/2014 1

Recursively Enumerable Languages, Turing Machines, and Decidability

CS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29

COSC121: Computer Systems: Review

( input = α output = λ move = L )

QUIZ. Name all the 4 parts of the fetch-execute cycle.

Systems Programming. Lecture 2 Review of Computer Architecture I

Divisibility Rules and Their Explanations

Problem Solving and Program Design - Chapter 1. Cory L. Strope

Transcription:

Introduction to Computing Systems: From Bits and Gates to C and Beyond 2 nd Edition Yale N. Patt Sanjay J. Patel Slides prepared by Gregory T. Byrd, North Carolina State University Modified by Chao Gong, UMHB 1-1 Chapter 1 Welcome Aboard 1

Introduction to the World of Computing 1.1 Computer: electronic genius? NO! Electronic idiot! Does exactly what we tell it to, nothing more. Goal of the course: You will understand what s going on underneath inside computer Approach: Build understanding from the bottom up. Bits Gates Processor Instructions C Programming 1-3 Two Recurring Themes 1.3 Abstraction Productivity enhancer don t need to worry about details We 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-4 2

Computer System 1.4 Central Processing Unit (CPU) or Processor: the hardware directing the processing of information, and performing the processing of information Computer System: including Hardware Software 1-5 Two Important Ideas 1.5 1. All computers, given enough time and memory, are capable of computing exactly the same things. 2. Computers carry out computational tasks through a sequence of systematic transformations. 1-6 3

Idea #1: Universal Computing Device 1.6 All computers, given enough time and memory, are capable of computing exactly the same things. = = Smart Phone Workstation Supercomputer 1-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-8 4

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 Universal TM 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-9 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-10 5

Idea #2: Transformations Between Layers 1.7 Problems Algorithms Language Instruction Set Architecture Microarchitecture Circuits Devices 1-11 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-12 6

Deeper and Deeper Instruction Set Architecture Microarch Circuits 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-13 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 computer can perform data types, addressing mode 1-14 7

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-15 Many Choices at Each Level Solve a system of equations Computer design is an exercise in Tradeoffs: cost, performance, power (etc.) Red-black SOR Gaussian elimination Jacobi iteration Multigrid FORTRAN C C++ Java PowerPC Intel x86 Atmel AVR Centrino Pentium 4 Xeon Ripple-carry adder Carry-lookahead adder CMOS Bipolar GaAs 1-16 8

Content Outline 1.2 Bits and Bytes (ch2) How do we represent information using electrical signals? Digital Logic (ch3) How do we build circuits to process information? Processor and Instruction Set (ch4 ~ 5) How do we build a processor out of logic elements? What operations (instructions) will we implement? Assembly Language Programming (ch6 ~ 7) How do we use processor instructions to implement algorithms? How do we write modular, reusable code? (subroutines) I/O, Traps, and Interrupts (ch8 ~ 10) How does processor communicate with outside world? C Programming (ch11 ~18) How do we write programs in C? How do we implement high-level programming constructs? 1-17 Exercises 1.13 Two computers, A and B, are identical except for the fact that A has a subtract instruction and B does not. Both have instructions that can take a value and produce the negative of that value. Which computer is able to solve more problems, A or B? Prove your result. 1.17 Briefly describe the difference between an ISA and a microarchitecture. 1.21 Say you buy some word processing software. What form is the software actually in? Is it in a high-level programming language? Is it in the ISA of the computer on which you will run it? Justify your answer. 1.23 Why is an ISA unlikely to change between successive generations of microarchitectures that implement it? For example, why would Intel want to make certain that the ISA implemented by the Pentium III is the same as the one implemented by the Pentium II? 1-18 9

Exercises 1.14 Suppose we wish to put a set of names in alphabetical order. We call the act of doing so sorting. One algorithm that can accomplish that is called the bubble sort. We could then program our bubble sort algorithm in C, and compile the C program to execute on an x86 ISA. The x86 ISA can be implemented with an Intel Pentium IV microarchitecture. Let us call the sequence Bubble sort, C program, x86 ISA, Pentium IV microarchitecture one transformation process. Assume we have available 4 sorting algorithms and can program in C, C++, C#, Java, and Python. We have available compilers that can translate from each of these to either x86 or SPARC, and we have available 3 different microarchitectures for x86 and 3 different microarchitectures for SPARC. a. How many transformation processes are possible? b. Write 3 examples of transformation processes. Hints: Rule of Product http://en.wikipedia.org/wiki/rule_of_product 1-19 10