Computer System Design Lecture 3

Slides:



Advertisements
Similar presentations
Chapter Three.
Advertisements

1 Chapter Three Last revision: 4/17/ Arithmetic Where we've been: –Performance (seconds, cycles, instructions) –Abstractions: Instruction Set Architecture.
Chapter 3 Arithmetic for Computers. Exam 1 CSCE
Datorteknik IntegerMulDiv bild 1 MIPS mul/div instructions Multiply: mult $2,$3Hi, Lo = $2 x $3;64-bit signed product Multiply unsigned: multu$2,$3Hi,
©UCB CPSC 161 Lecture 6 Prof. L.N. Bhuyan
1 CONSTRUCTING AN ARITHMETIC LOGIC UNIT CHAPTER 4: PART II.
Chapter 3 Arithmetic for Computers. Multiplication More complicated than addition accomplished via shifting and addition More time and more area Let's.
Arithmetic CPSC 321 Computer Architecture Andreas Klappenecker.
361 div.1 Computer Architecture ECE 361 Lecture 7: ALU Design : Division.
1  2004 Morgan Kaufmann Publishers Chapter Three.
1 Chapter 4: Arithmetic Where we've been: –Performance (seconds, cycles, instructions) –Abstractions: Instruction Set Architecture Assembly Language and.
1 Lecture 8: Binary Multiplication & Division Today’s topics:  Addition/Subtraction  Multiplication  Division Reminder: get started early on assignment.
Chapter Four Arithmetic and Logic Unit
Arithmetic I CPSC 321 Andreas Klappenecker. Administrative Issues Office hours of TA Praveen Bhojwani: M 1:00pm-3:00pm.
ECE 15B Computer Organization Spring 2010 Dmitri Strukov Lecture 6: Logic/Shift Instructions Partially adapted from Computer Organization and Design, 4.
1 ECE369 Chapter 3. 2 ECE369 Multiplication More complicated than addition –Accomplished via shifting and addition More time and more area.
1  1998 Morgan Kaufmann Publishers Chapter Four Arithmetic for Computers.
Chapter 3 Arithmetic for Computers. Arithmetic Where we've been: Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's.
Arithmetic for Computers
1 Bits are just bits (no inherent meaning) — conventions define relationship between bits and numbers Binary numbers (base 2)
EGRE 426 Fall 09 Chapter Three
Computing Systems Basic arithmetic for computers.
ECE232: Hardware Organization and Design
07/19/2005 Arithmetic / Logic Unit – ALU Design Presentation F CSE : Introduction to Computer Architecture Slides by Gojko Babić.
1 EGRE 426 Fall 08 Chapter Three. 2 Arithmetic What's up ahead: –Implementing the Architecture 32 operation result a b ALU.
1  1998 Morgan Kaufmann Publishers Arithmetic Where we've been: –Performance (seconds, cycles, instructions) –Abstractions: Instruction Set Architecture.
Lecture 6: Multiply, Shift, and Divide
Conversion to Larger Number of Bits Ex: Immediate Field (signed 16 bit) to 32 bit Positive numbers have implied 0’s to the left. So, put 16 bit number.
Lecture notes Reading: Section 3.4, 3.5, 3.6 Multiplication
Csci 136 Computer Architecture II – Multiplication and Division
Mohamed Younis CMCS 411, Computer Architecture 1 CMSC Computer Architecture Lecture 11 Performing Division March 5,
Chapter 3 Arithmetic for Computers. Chapter 3 — Arithmetic for Computers — 2 Arithmetic for Computers Operations on integers Addition and subtraction.
1 ELEN 033 Lecture 4 Chapter 4 of Text (COD2E) Chapters 3 and 4 of Goodman and Miller book.
Computer Architecture Lecture Notes Spring 2005 Dr. Michael P. Frank Competency Area 4: Computer Arithmetic.
CDA 3101 Spring 2016 Introduction to Computer Organization
순천향대학교 정보기술공학부 이 상 정 1 3. Arithmetic for Computers.
1 ALU for Computers (MIPS) design a fast ALU for the MIPS ISA requirements ? –support the arithmetic/logic operations: add, addi addiu, sub, subu, and,
Prof. Hsien-Hsin Sean Lee
Computer Arthmetic Chapter Four P&H. Data Representation Why do we not encode numbers as strings of ASCII digits inside computers? What is overflow when.
9/23/2004Comp 120 Fall September Chapter 4 – Arithmetic and its implementation Assignments 5,6 and 7 posted to the class web page.
May 2, 2001System Architecture I1 Systems Architecture I (CS ) Lecture 11: Arithmetic for Computers * Jeremy R. Johnson May 2, 2001 *This lecture.
By Wannarat Computer System Design Lecture 3 Wannarat Suntiamorntut.
1 CPTR 220 Computer Organization Computer Architecture Assembly Programming.
Based on slides from D. Patterson and www-inst.eecs.berkeley.edu/~cs152/ COM 249 – Computer Organization and Assembly Language Chapter 3 Arithmetic For.
1 (Based on text: David A. Patterson & John L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 3 rd Ed., Morgan Kaufmann,
More Binary Arithmetic - Multiplication
Computer Arthmetic Chapter Four P&H.
Integer Multiplication and Division
MIPS mul/div instructions
Part II : Lecture III By Wannarat.
CS/COE0447 Computer Organization & Assembly Language
Morgan Kaufmann Publishers
Morgan Kaufmann Publishers
Lecture 8: Binary Multiplication & Division
CDA 3101 Summer 2007 Introduction to Computer Organization
CS352H: Computer Systems Architecture
Lecture 8: Addition, Multiplication & Division
Computer Architecture Chapter 4 Arithmetic for Computers
Lecture 8: Addition, Multiplication & Division
Topic 3c Integer Multiply and Divide
Arithmetic Logical Unit
Topic 3a Two’s Complement Representation
Computer Arithmetic Multiplication, Floating Point
ECEG-3202 Computer Architecture and Organization
Addition & Subtraction
Computer Architecture EECS 361 Lecture 6: ALU Design
Morgan Kaufmann Publishers Arithmetic for Computers
COMS 361 Computer Organization
Chapter3 Fixed Point Representation
Presentation transcript:

241-440 Computer System Design Lecture 3 Wannarat Suntiamorntut 241-440 W.S.@2009

Arithmetic for Computer Implementing the Architecture 241-440 W.S.@2009

The numbers Binary number (base 2) numbers are finite (overflow) fraction and real number negative number e.g., No MIPS subi instruction, addi can add a negative number 241-440 W.S.@2009

Possible Representations Sign Magnitude One’s complement Two’s complement 000 = +0 000 = +0 000 = +0 001 = +1 001 = +1 001 = +1 010 = +2 010 = +2 010 = +2 011 = +3 011 = +3 011 = +3 100 = -0 100 = -3 100 = -4 101 = -1 101 = -2 101 = -3 110 = -2 110 = -1 110 = -2 111 = -3 111 = -0 111 = -1 Negative and Invert are different! 241-440 W.S.@2009

Addition & Subtraction 7 - 6 {0111 - 0110} = 0001 two’s complement 0111 + 1010 = 0001 Overflow n-bit does not yield an n-bit number 0111 + 0001 1000 241-440 W.S.@2009

Detecting overflow No overflow when add positive&negative No overflow when signs are the same for subtraction Overflow occur when : - add two positives yield a negative - add two negative gives a positive - subtract negative from positive and get negative - subtract positive from negative get a positive 241-440 W.S.@2009

Effect of Overflow Exception occur (Interrupt) - control jumps to predefined address for exception - Interrupted address is saved Don’t always to detect overflow - New MIPS instructions: addu, addiu ... 241-440 W.S.@2009

ALU Build ALU support andi, ori instructions 241-440 W.S.@2009

Multiplexor Select one of the inputs to be output, base on control input 241-440 W.S.@2009

ALU for Addition instruction Cout = ab + bcin + acin Sum = a xor b xor cin 241-440 W.S.@2009

ALU for Subtraction instruction Two’s complement approach : just negative b and ADD 241-440 W.S.@2009

Supporting slt 241-440 W.S.@2009

241-440 W.S.@2009

MIPS Arithmetic Instruction format 241-440 W.S.@2009

Conclusion ALU in MIPS Use multiplexor to select output we want efficiently perform subtraction using two’s complement replicate 1-bit ALU to 32-bit ALU 241-440 W.S.@2009

Computation Problem :fast adder 32-bit ALU faster than 1-bit ALU? Carry-lookahead adder g = ab, p = a + b c1 = g0 + p0c0 c2 = g1 + p1c1c2 c3 = g2 + p2c2c3 ... 241-440 W.S.@2009

241-440 W.S.@2009

Part II : Lecture III 241-440 W.S.@2009

Multiplication 0010 (multiplicand) x 1011 (multiplier) ???? 241-440 W.S.@2009

Unsign Combinational Multiplier 241-440 W.S.@2009

Multiplication : First Version (Unsign) 241-440 W.S.@2009

Multiplication : First Version (contd.) 241-440 W.S.@2009

Analyze First Version 1 clock per cycle 50 % of bit in multiplicand always = 0 => 64-bit adder is wasted 0’s inserted in left of multiplicand as shifted => lead significant bits of product never changed once formed 241-440 W.S.@2009

Multiplication : Second Version 241-440 W.S.@2009

Multiplication : Second Version (Contd.) 241-440 W.S.@2009

Analyze Second Version Product register wasted space that exactly matches size of multiplier Combine Multiplier register and Product register 241-440 W.S.@2009

Multiplication : Third Version 241-440 W.S.@2009

Multiplication : Third Version (Contd.) 241-440 W.S.@2009

Analyze Third Version 2 steps per bit because multiplier & product combined MIPS registers Hi, Lo are left and right half of product 241-440 W.S.@2009

Booth’s Algorithm 241-440 W.S.@2009

Example : 2 x 7 241-440 W.S.@2009

Example : 2 x -3 241-440 W.S.@2009

Shifter : 2 kinds 241-440 W.S.@2009

Part III : Lecture III 241-440 W.S.@2009

Divide 241-440 W.S.@2009

Divide : First Version 241-440 W.S.@2009

Divide : First Version (Contd.) 241-440 W.S.@2009

Analyze First Version 50% bits in divisor always 0 =>1/2 of 64-bit adder is wasted => 1/2 divisor is wasted 1 step cannot produce a 1 in quotient bit => Switch order to shift first 241-440 W.S.@2009

Divide : Second Version 241-440 W.S.@2009

Divide : Second Version (Contd.) 241-440 W.S.@2009

Analyze Second Version Eliminate Quotient register by combining with Remainder as shifted left 241-440 W.S.@2009

Divide : Third Version 241-440 W.S.@2009

Divide : Third Version (Contd.) 241-440 W.S.@2009

Analyze Third Version Do Analyze by yourself 241-440 W.S.@2009

Floating Point : IEEE754 241-440 W.S.@2009

Floating-point Representation -0.75 = -3/4 = -3/22 = -11/ 22 = -0.11 = -1.1x 2-1 = (-1)s x (1 + signifiand) x 2 (exponent-127) = (-1) x (1+.1000 0000) x 2(126-127) 1 01111110 1000 0000 0000 0000 0000 000 S E M 1-bit 8-bit 23-bit 241-440 W.S.@2009

Floating-point Addition 9.999 x 101 + 1.610x10-1 Step1 : Change exponent as : 1.610 x 10 -1 = 0.016 x 101 Step2 : Add significands 9.999 (10) + 0.016 (10) 10.015 (10) Sum = 10.015 x 101 241-440 W.S.@2009

Floating-point Addition 9.999 x 101 + 1.610x10-1 Step3 : correct it (normalization) : 10.015 x 10 1 = 1.0015 x 102 Step4 : Four digits for significand 1.002 x 102 241-440 W.S.@2009

Example Floating-point Addition 0.5 + (-0.4375) 0.5 = 1/2 = 1/21 = 0.1 x 20 = 1.00 x 2-1 -0.4375 = -7/16 = -7/24 = - 0.0111 = -1.110 x 2-2 step 1 : -0.111 x 2-1 step 2 : 1.0x 2-1 + (-0.111 x 2-1)=0.001 x 2-1 step 3 : 1.0 x 2 -4 step 4 : 0.0625 241-440 W.S.@2009

Multiplication Floating-point Study in Text Book by yourself. 241-440 W.S.@2009

Next on Lecture 4 241-440 W.S.@2009