CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale.

Slides:



Advertisements
Similar presentations
Assembly Language for Intel-Based Computers, 4 th Edition Chapter 1: Basic Concepts (c) Pearson Education, All rights reserved. You may modify and.
Advertisements

 Suppose for a moment that you were asked to perform a task and were given the following list of instructions to perform:
EET 1131 Unit 7 Arithmetic Operations and Circuits
EE1A2 Microprocessor Systems & Digital Logic Part I Digital Electronic System Design Dr. T. Collins.
CS231: Computer Architecture I Laxmikant V. Kale Spring 2010.
The Logic Machine We looked at programming at the high level and at the low level. The question now is: How can a physical computer be built to run a program?
CSC 110 – Intro to Computing Lecture 14: Midterm Review.
Computer ArchitectureFall 2008 © August 25, CS 447 – Computer Architecture Lecture 3 Computer Arithmetic (1)
CS 300 – Lecture 2 Intro to Computer Architecture / Assembly Language History.
More Basics of CPU Design Lecture for CPSC 5155 Edward Bosworth, Ph.D. Computer Science Department Columbus State University.
The Study of Computer Science Chapter 0 Intro to Computer Science CS1510, Section 2.
ES 244: Digital Logic Design Chapter 1 Chapter 1: Introduction Uchechukwu Ofoegbu Temple University.
1 CS/COE0447 Computer Organization & Assembly Language Pre-Chapter 2.
CS231: Computer Architecture I Laxmikant Kale Fall 2004.
How Computers Work Dr. John P. Abraham Professor UTPA.
CSU0014 Assembly Languages Homepage: Textbook: Kip R. Irvine, Assembly Language for Intel-Based Computers,
CS 1308 – Computer Literacy and the Internet. It’s Not Magic  The goal of the next series of lectures is to show you exactly how a computer works. 
CS1Q Computer Systems Lecture 9 Simon Gay. Lecture 9CS1Q Computer Systems - Simon Gay2 Addition We want to be able to do arithmetic on computers and therefore.
The Study of Computer Science Chapter 0 Intro to Computer Science CS1510.
Comp Sci 251 Intro 1 Computer organization and assembly language Wing Huen.
Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Roadmap Problems Algorithms.
Topic: Arithmetic Circuits Course: Digital Systems Slide no. 1 Chapter # 5: Arithmetic Circuits.
Computer Math. The Decimal System How do we represent “One Hundred and Twenty Five”? How do we represent “One Hundred and Twenty Five”? Simple: 125 !!!
Fall 2012: FCM 708 Foundation I Lecture 2 Prof. Shamik Sengupta
CPU Internal memory I/O interface circuit System bus
How Computers Work … and how you can work them. Art 315 Lecture 03 Dr. J Parker Fall 2010.
The Hexadecimal Number System and Memory Addressing ISAT 121.
CSC 110 – Intro to Computing Lecture 8: Computing Components.
4. Computer Maths and Logic 4.2 Boolean Logic Logic Circuits.
CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale.
Computer Science Binary. Binary Code Remember the power supply that is inside your computer and how it sends electricity to all of the components? That.
1 Ethics of Computing MONT 113G, Spring 2012 Session 5 Binary Addition.
IT253: Computer Organization Lecture 9: Making a Processor: Single-Cycle Processor Design Tonga Institute of Higher Education.
IT253: Computer Organization
 Lecture 2 Processor Organization  Control needs to have the  Ability to fetch instructions from memory  Logic and means to control instruction sequencing.
CS 1308 – Computer Literacy and the Internet Building the CPU.
Chapter 3 Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Transistor: Building.
CS231: Computer Architecture I Laxmikant (Sanjay) Kale And Luddy Harrison Fall 2006.
CompSci Today’s topics Computer Hardware Electric Circuits Designing an Adder Upcoming Computer Communications ( Great Ideas Chapter 10) Reading.
9/23/2004Comp 120 Fall September Chapter 4 – Arithmetic and its implementation Assignments 5,6 and 7 posted to the class web page.
Winter 2016CISC101 - Prof. McLeod1 Today How transistors can carry out commands in a CPU. For example, how to add two integers in an integrated circuit.
Basic Electricity and Electronics Module Two Basic Electronics Copyright © Texas Education Agency, All rights reserved.
CS231: Computer Architecture I Laxmikant Kale Fall 2002.
Unit 1 Introduction Number Systems and Conversion.
Topic: Binary Encoding – Part 1
The Study of Computer Science Chapter 0
Invitation to Computer Science, C++ Version, Fourth Edition
COMPUTER ORGANIZATION & ASSEMBLY LANGUAGE
Stateless Combinational Logic and State Circuits
The Study of Computer Science Chapter 0
Binary Addition and Subtraction
CS140 Lecture 03: The Machinery of Computation: Combinational Logic
CS231: Computer Architecture I
Fundamentals & Ethics of Information Systems IS 201
Invitation to Computer Science, Java Version, Third Edition
The Study of Computer Science
Decimal System The radix or base of a number system determines
CISC101 Reminders Your group name in onQ is your grader’s name.
Arithmetic Logical Unit
Everything that goes on under the hood of a computer is done in binary -- the language of 0s and 1s. If we have only two numbers, it's very easy to represent.
Instructor:Po-Yu Kuo 教師:郭柏佑
Number Systems and Circuits for Addition
Machine Architecture and Number Systems
CS231: Computer Architecture I
CMSC250 Fall 2018 Circuits 1 1.
Tonga Institute of Higher Education IT 141: Information Systems
CS231: Computer Architecture I
COMPUTER ORGANIZATION
The Study of Computer Science Chapter 0
Dr. Clincy Professor of CS
Presentation transcript:

CS 232: Computer Architecture II Prof. Laxmikant (Sanjay) Kale

CS 232 Objectives: Learn about how a computer system, and specifically its processor, works –Assembly language programming –Instruction Set Architecture –Basic Processor design: Data-path and control –An overview of advanced topics with specific topics covered in depth Example: Pipelining, Caches, I/O, Multiprocessors

Some of the Dos and Don’t Must use the class web page regularly –Important announcements, syllabus, lecture notes (slides), assignments Also, must read the class newsgroup regularly –Frequently asked questions –Timely response –Make sure you don’t post solutions –No trash tolerated!

Lets begin with numbers Say you wanted to build a machine that calculates the exact square of any given number quickly. –100 years ago –May want to use the same idea for other things calculate cubes? Other number calculations? Need to decide: –How are you going to represent the numbers? –What are you going to build the machine out of? Need a basic “smart” component

Representing numbers Focus on integers Examine our decimal number system: –Much nicer compared to roman numbers How do you add two large numbers in roman representation? With weighted positions (ones, tens, hundreds) addition is easy. –In fact, we can describe a simple procedure (“algorithm”) for doing it. –But choice of “10” as the base is somewhat arbitrary What base is better for our machine? –Base 10: need 10 symbols –Base 2: need 2 symbols (0,1) We can probably make machines that can represent 0 and 1 –so that they don’t mix with each other

Binary number representation You have done this in CS231 –11011 is 27 –35 is –Addition and subtraction rules are the same as decimal numbers Let us agree to use this in our machine –Still have the problem of having to translate between decimal system (that we understand) and binary system, that our machine understands –Assume we will do it manually, for now

Smart component: Switch A switch is either on or off –To really compose switches to build a machine, we need to be able to control a switch (I.e. if switch A is ON, it will also change switch B to the ON position). –Let us assume we have electricity Basics: Voltage, Current, Flows if switch is on Make a controllable switch –such that if input voltage is “High”, the switch is “ON” (closed) –Let us assume “High Voltage” represents 1 and “Low” 0.

Gates We can now connect switches together: –Two switches (A and B) connected in series: If both are “ON”, the output is HIGH So, if the input to both switch A and switch B is High, the output of the composite circuit is High Let us call this the “AND” circuit (or AND gate) –You can also connect switches such that: If either of the switch is ON, the output is HIGH Connect the switches in parallel So, if input to A is HIGH or input to B is HIGH, output is High: AND gate –NOT gate: Input High, Output Low, and vice versa

Gates to Adders We can now connect gates together to make an adder: –Half adder (ignores carry): Given two inputs, if exactly one of them 1, then output 1 Also output carry if both are 1 How can we connect gates together to make this circuit? –Full adder: uses carry 3 inputs lines, two output lines: –Multi-bit adder: Feed the carry of least significant bit to the next higher one

So, we have an adder But we needed to square a number…. The “adder” is just a simple calculating device –We could connect a lot more of those to make a multiplier, or a squarer. –But, we can reuse the same hardware. –Challenge: just use one adder (say 32 bit adder). We need one more type of device: –to store intermediate results –“Memory”: or registers –We tell the adder to repeatedly add M to a running total. –So, we need to store the running total and M somewhere –Also need to to remember how many times to add (Count)

What does it look like now? We have: –3 32 bit “registers” : M, result, count –1 32 bit adder –How are they connected? We need to bring back M and result to the inputs of the adder Store the sum back in result bring “count” and “1” to the adder store sum in count We can use gates to select which register is connected to the input of the adder –Also, must decide when the count has reached M –How to tell when to connect which input to the adder??

Instructions and “Stored Program” Let us have a “control unit” –Tells which inputs are connected, –Where to store the output How does the control unit know what to do? –Store instructions for it in another set of registers? –What is an instruction? Identifies Input registers, and output register

Let us add memory When the amount of data is large: –Can’t keep on adding registers –Memory: a linear, random-access storage –Cheaper, slower than registers –Now we need to bring the data from memory into registers and vice versa