The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.

Slides:



Advertisements
Similar presentations
Microcomputer Circuits Prof Jess UEAB 2007 Designing a Microprocessor Chapter 1.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Introduction to Computer Programming Nai-Wei Lin Department of Computer Science and Information Engineering National Chung Cheng University.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 2: Overview of Computer Organization Partially adapted from Computer Organization and.
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.
FLAC Lecture 19 Turing Machines and Real Life * Reductions Mihai Budiu March 3, 2000.
CS 300 – Lecture 3 Intro to Computer Architecture / Assembly Language Digital Design II.
Snick  snack A Working Computer Slides based on work by Bob Woodham and others.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computing Systems: From Bits and Gates.
1. By the end of this lecture you should be able … To describe in general terms how computers function To describe the fetch-execute cycle To explain.
Snick  snack A Working Computer Slides based on work by Bob Woodham and others.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Copyright © 2003 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard,
1 Patt and Patel Ch. 1 Abstraction and Computer Systems.
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.
Welcome Aboard – Chapter 1 COMP 2610 Dr. James Money COMP
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Computer Architecture Examples and Hierarchy By Cheuk Wong.
CCSE251 Introduction to Computer Organization
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
Levels of Architecture & Language CHAPTER 1 © copyright Bobby Hoggard / material may not be redistributed without permission.
Computer Organization Intro 1 CEG 320/520: Computer Organization and Assembly Language Programming Introduction to Computer Organization.
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
1 CO Games Development 2 Week 21 Turing Machines & Computability Gareth Bellaby.
Digital Design and Computer Architecture Dr. Robert D. Kent LT Ext Lecture 1 Introduction.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Introduction to Computer Engineering ELEC S100F (Fall.
Welcome CSC 480/580 – Digital Logic & Computer Design Term: Winter 2002 Instructor: William T Krieger.
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.
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
Computer Architecture And Organization UNIT-II General System Architecture.
1 Text Reference: Warford. 2 Computer Architecture: The design of those aspects of a computer which are visible to the programmer. Architecture Organization.
Spring 2002INEL 4206 Microprocessors Lecture 4 1 Practical Universal Computers Prof. Bienvenido Velez Lecture 4 Bits Wires Gates Turing Machines.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
PART 1 Introduction 1. Layers of Abstraction 2. Turing Machine 3. Layer Transformation 4. Descriptions of Layers.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Introduction to Computer Engineering CS/ECE 252, Spring 2008 Prof. David A. Wood Computer Sciences Department University of Wisconsin – Madison Adapted.
ICC Module 3 Lesson 1 – Computer Architecture 1 / 6 © 2015 Ph. Janson Information, Computing & Communication Computer Architecture Clip 3 – Instruction.
Capabilities of computing systems Numeric and symbolic Computations A look at Computability theory Turing Machines.
MARC ProgramEssential Computing for Bioinformatics 1 The Nature of Computing Prof. Bienvenido Velez ICOM 4995 Lecture 3.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CS150: Computer Organization and Architecture Michael D. Wilder, Ph.D.
MARC: Developing Bioinformatics Programs Alex Ropelewski PSC-NRBSC Bienvenido Vélez UPR Mayaguez Reference: How to Think Like a Computer Scientist: Learning.
1 The user’s view  A user is a person employing the computer to do useful work  Examples of useful work include spreadsheets word processing developing.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Chapter 1 Welcome Aboard. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-2 Introduction to the World of.
Computer Organization and Architecture Lecture 1 : Introduction
Yale N. Patt Sanjay J. Patel
Computers’ Basic Organization
CSC235 Computer Organization & Assembly Language
Computer Organization and Machine Language Programming CPTG 245
Introduction to Computer Engineering
Instructor:Po-Yu Kuo 教師:郭柏佑
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Introduction to Computer Engineering
Ch. 11 Theory of Computation
Computer Organization & Assembly language
Welcome Aboard 1.
EEL 4713/EEL 5764 Computer Architecture
Chapter 1 Welcome Aboard!. Chapter 1 Welcome Aboard!
Instructor:Po-Yu Kuo 教師:郭柏佑
Introduction to Computer Engineering
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
The Nature of Computing
Introduction to Computer Engineering
Dr. Clincy Professor of CS
Presentation transcript:

The Nature of Computing INEL 4206 – Microprocessors Lecture 2 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez

The Nature of ComputingINEL Microprocessors - Spring Some Inaccurate (Although Popular) Perceptions of Computing Computing = (Electronic) Computers Computing = Programming Computing = Software

The Nature of ComputingINEL Microprocessors - Spring Computing = Computers Computing is about solving problems using computers A.K.A. The Computing Device View of Computing

The Nature of ComputingINEL Microprocessors - Spring Computing = Programming Computing is about writing programs for computers A.K.A. The Programming Language view of Computing

The Nature of ComputingINEL Microprocessors - Spring Computing = Software Computing is not concerned with hardware design A.K.A. The “Floppy Disk” view of Computing

The Nature of ComputingINEL Microprocessors - Spring Outline What is Computing? Computing Models and Computability Interpretation and Universal Computers Abstraction and Building Blocks

The Nature of ComputingINEL Microprocessors - Spring What is computing then? Algorithmic Computation Function Input Information Output Information Computing is the study of Computation: the process of transforming information

The Nature of ComputingINEL Microprocessors - Spring The Computation Process Problem … encode … computedecode Solution

The Nature of ComputingINEL Microprocessors - Spring Fundamental Questions Addressed by the Discipline of Computing What is the nature of computation? What can be computed? What can be computed efficiently? How to build practical computing devices?

The Nature of ComputingINEL Microprocessors - Spring Computers as Integer Functions … encode … compute Problem decode Solution Integer Function

The Nature of ComputingINEL Microprocessors - Spring Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF

The Nature of ComputingINEL Microprocessors - Spring The Halting Problem (Alan Turing 1936) Given a program P and an input I to P determine if P stops on I Computer Program P Input I P Halts on I? We cannot build this machine … period

The Nature of ComputingINEL Microprocessors - Spring Computability All Integer Functions (IF) Computable Integer Functions (CF) IF ≟ CF Halting Problem IF ≠ CF We want to formally describe the set of computable functions. BUT HOW???

The Nature of ComputingINEL Microprocessors - Spring Mathematical Computers: The Turing Machine (1936) Alan Turing FSM Infinit e I/O TAPE 0/{0,R} 1/{1,L} Tape Head Turing demonstrated how to solve several problems using his LCM computing model

The Nature of ComputingINEL Microprocessors - Spring Mathematical Computers: The Turing Machine (1936) Alan Turing Turing demonstrated how to solve several problems using his LCM computing model FSM Infinit e I/O TAPE 0/{0,R} 1/{1,L} Tape Head

The Nature of ComputingINEL Microprocessors - Spring A TM Machine Recognizing a n b n Rutgers Turing Machine Example

The Nature of ComputingINEL Microprocessors - Spring The Halting Problem Proof Sketch (Blackboard) Given a program P and an input I to P determine if P stops on I Computer Program P Input I P Halts on I? Cannot build this … period

The Nature of ComputingINEL Microprocessors - Spring FSM Sorting TM FSM Sorting TM FSM Sorting TM Ad-hoc Turing Machines FSM Sorting TM FSM Searching TM FSM Integrating TM Can we build ONE general purpose TM? We know we can build TM’s to solve many interesting problems. But building a TM is a lot of work

The Nature of ComputingINEL Microprocessors - Spring The Universal Turing Machine (UTM) The Paradigm for Modern General Purpose Computers Universal TM Encoded TM MEncoded Tape for M Capable of Emulating Every other TM Shown computable by Alan Turing (1936) Software just bits weightless effective computing models Hardware heavy expensive cumbersome computing model BIG IDEAS: INTERPRETATION & PROGRAMMABILITY!!!

The Nature of ComputingINEL Microprocessors - Spring Other Familiar Models of Computation Combinational Circuits Sequential Circuits (FSM’s) Pentium Instruction Set Architecture Lambda Calculus Recursive Functions C, C++, Java, C#, etc… Can you tell which ones are Turing Universal, or which ones can emulate any other Turing Machine?

The Nature of ComputingINEL Microprocessors - Spring Church’s Thesis Alonso Church “All the models of computation yet developed, and all those that may be developed in the future, are equivalent in power.” “Any realizable computing device can be simulated by a Turing machine” Issues not considered: Size, Programmability, Performance But they must be considered if one is to build …

The Nature of ComputingINEL Microprocessors - Spring DataPaths PC ABR ALU AC Practical Universal Computers ( John) Von Neumann Architecture (1945) Program Data Memory Control Unit (FSM) CPU CPU is a universal TM An interpreter of some programming language (PL) status control This looks just like a TM Tape

The Nature of ComputingINEL Microprocessors - Spring Computing in Perspective CMOS Gate FSM ISA Assembler 1Assembler 2Assembler 3 C++PascalFortran MatLab Build One Build Many Excel Programming is the art/science of encoding algorithms PSpice All have embedded PL’s Multiple Coexisting Levels of Interpretation

The Nature of ComputingINEL Microprocessors - Spring Computing in Perspective Application Programs High-Level Language Assembly Language Machine Language (ISA) CS1/CS2, Programming, Data Structures Programming Languages, Compilers Computer Architecture Computer Human Interaction, User Interfaces people People computers Each abstraction layer implements an INTERPRETER of some computing/programming model INEL 4206

The Nature of ComputingINEL Microprocessors - Spring Why Abstraction Layers? Resilience to change: –Each layer provides a level of indirection Divide and Conquer Approach: –Can work on one small semantic gap at a time Building Block Approach: –Can build many higher layer on same lower layer Because we know of no other way of doing anything

The Nature of ComputingINEL Microprocessors - Spring Hardware Building Blocks AB sel O SEL A B O Gate-Level Logic Provides a Computing Model A 2-1 multiplexer

The Nature of ComputingINEL Microprocessors - Spring Software Building Blocks // MUX – Implements a 2-1 binary multiplexer bool MUX(bool a, bool b, bool sel) { switch(sel) { case 0: return a; break; case 1: return b; break; } Other abstraction tools include: structures, classes, modules The function is one of the most ubiquitous abstraction tools

The Nature of ComputingINEL Microprocessors - Spring What Makes a Good Building Block Provides a clear and simple contract The contract hides irrelevant detail The contract is general and orthogonal The contract is easy to remember

The Nature of ComputingINEL Microprocessors - Spring Some Properties of a Good Programming Language Does not hide expressive power of lower layers Can be efficiently interpreted Provides adequate higher level abstractions Provides a variety of constructs for creating new abstractions, layers and modules Achieves all of the above with minimal complexity

The Nature of ComputingINEL Microprocessors - Spring Summary Computing = Information Transformation Information Transformation = Integer Functions Some integer functions are not computable Turing Machine computations = All computations Universal Computer = Universal TM Interpretation => Programmability => Flexibility Building blocks are abstract contracts

The Nature of ComputingINEL Microprocessors - Spring "Computer Science is no more about computers than Astronomy is about telescopes" E. W. Dijkstra Turing Award Summary