introduction to computer engineering { eecs...

76
Introduction to Computer Engineering – EECS 203 http://ziyang.eecs.northwestern.edu/ dickrp/eecs203/ Instructor: Robert Dick Office: L477 Tech Email: [email protected] Phone: 847–467–2298 TA: Neal Oza Office: Tech. Inst. L375 Phone: 847-467-0033 Email: [email protected] TT: David Bild Office: Tech. Inst. L470 Phone: 847-491-2083 Email: [email protected]

Upload: others

Post on 13-Mar-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Introduction to Computer Engineering – EECS 203http://ziyang.eecs.northwestern.edu/∼dickrp/eecs203/

Instructor: Robert DickOffice: L477 TechEmail: [email protected]: 847–467–2298

TA: Neal OzaOffice: Tech. Inst. L375Phone: 847-467-0033Email: [email protected]

TT: David BildOffice: Tech. Inst. L470Phone: 847-491-2083Email: [email protected]

Page 2: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Outline

1. Number systems

2. Unsigned Representations

3. Signed Representations

4. Building adders/subtracter

5. Homework

2 R. Dick Introduction to Computer Engineering – EECS 203

Page 3: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Other number/encoding systems

Binary-coded decimal

Wastes fractional bit for alignment

ASCII: 7-bit characters

ParityBest to see a chart0x61 = 97 = ‘a’0x47 = 71 = ‘G’

3 R. Dick Introduction to Computer Engineering – EECS 203

Page 4: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Other number/encoding systems

Unicode: 16-bit

Similar to ASCII

International

Allows about 216 = 65, 536 characters

Enough for symbolic writing systems

4 R. Dick Introduction to Computer Engineering – EECS 203

Page 5: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Outline

1. Number systems

2. Unsigned Representations

3. Signed Representations

4. Building adders/subtracter

5. Homework

5 R. Dick Introduction to Computer Engineering – EECS 203

Page 6: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Standard unsigned binary numbers

0000

0001

0010

0011

0100

0101

0110

01111000

1001

1010

1011

1100

1101

1110

1111

0

1

2

3

4

5

6

78

9

10 (a)

11 (b)

12 (c)

13 (d)

14 (e)

15 (f)

Given an n-bit number in which di is the ith digit, the number isn∑

i=1

2i−1di

6 R. Dick Introduction to Computer Engineering – EECS 203

Page 7: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)

1 1

1 0 0 1+ 0 0 1 1

1 1 0 0Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 8: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)

1

11 0 0 1

+ 0 0 1 1

1 1 0

0

Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 9: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)1 1

1 0 0 1+ 0 0 1 1

1 1

0 0

Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 10: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)1 1

1 0 0 1+ 0 0 1 1

1

1 0 0

Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 11: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)1 1

1 0 0 1+ 0 0 1 1

1 1 0 0

Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 12: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Unsigned addition

Consider adding 9 (1001) and 3 (0011)1 1

1 0 0 1+ 0 0 1 1

1 1 0 0Why an extra column?

7 R. Dick Introduction to Computer Engineering – EECS 203

Page 13: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Overflow

If the result of an operation can’t be represented in the availablenumber of bits, an overflow occurs

E.g., 0110 + 1011 =

1

0001

Need to detect overflow

8 R. Dick Introduction to Computer Engineering – EECS 203

Page 14: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Overflow

If the result of an operation can’t be represented in the availablenumber of bits, an overflow occurs

E.g., 0110 + 1011 = 10001

Need to detect overflow

8 R. Dick Introduction to Computer Engineering – EECS 203

Page 15: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Gray code

0000

0001

0010

0011

0100

0101

0110

01111000

1001

1010

1011

1100

1101

1110

1111

0

1

3

2

7

6

4

515 (f)

14 (e)

12 (c)

13 (d)

8

9

11 (b)

10 (a)

9 R. Dick Introduction to Computer Engineering – EECS 203

Page 16: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Useful for shaft encoding

Sequence?

10 R. Dick Introduction to Computer Engineering – EECS 203

Page 17: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Gray code

To convert from a standard binary number to a Gray codenumber XOR the number by it’s half (right-shift it)

To convert from a Gray code number to a standard binarynumber, XOR each binary digit with the parity of the higher digits

Given that a number contains n digits and each digit, di , contributes2i−1 to the number

Pkj = dj ⊕ dj+1 · · · ⊕ dk−1 ⊕ dk

di = di ⊕ Pni+1

11 R. Dick Introduction to Computer Engineering – EECS 203

Page 18: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Gray code

Converting from Gray code to standard binary is difficult

Take time approximately proportional to n

Doing standard arithmetic operations using Gray coded numbersis difficult

Generally slower than using standard binary representation

E.g., addition requires two carries

Why use Gray coded numbers?

Analog to digital conversionReduced bus switching activity

12 R. Dick Introduction to Computer Engineering – EECS 203

Page 19: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Outline

1. Number systems

2. Unsigned Representations

3. Signed Representations

4. Building adders/subtracter

5. Homework

13 R. Dick Introduction to Computer Engineering – EECS 203

Page 20: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Signed number systems

Three major schemes

Sign and magnitudeOne’s complementTwo’s complement

14 R. Dick Introduction to Computer Engineering – EECS 203

Page 21: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Number system assumptions

Four-bit machine word

16 values can be represented

Approximately half are positive

Approximately half are negative

15 R. Dick Introduction to Computer Engineering – EECS 203

Page 22: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Sign and magnitude

0000

0001

0010

0011

0100

0101

0110

01111000

1001

1010

1011

1100

1101

1110

1111

0

1

2

3

4

5

6

7

−1

−2

−4

−5

−7

−0

−3

−6

16 R. Dick Introduction to Computer Engineering – EECS 203

Page 23: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Sign and magnitude

dn represents sign

0 is positive, 1 is negative

Two representations for zero

What is the range for such numbers?

Range: [−2n−1 + 1, 2n−1 − 1]

17 R. Dick Introduction to Computer Engineering – EECS 203

Page 24: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Sign and magnitude

dn represents sign

0 is positive, 1 is negative

Two representations for zero

What is the range for such numbers?

Range: [−2n−1 + 1, 2n−1 − 1]

17 R. Dick Introduction to Computer Engineering – EECS 203

Page 25: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Sign and magnitude

How is addition done?

If both numbers have the same sign, add them like unsignednumbers and preserve sign

If numbers have differing signs, subtract smaller magnitude fromlarger magnitude and use sign of large magnitude number

18 R. Dick Introduction to Computer Engineering – EECS 203

Page 26: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Sign and magnitude

Consider 5 +−6

Note that signs differ

Use magnitude comparison to determine large magnitude: 6− 5

Subtract smaller magnitude from larger magnitude: 1

Use sign of large magnitude number: −1

19 R. Dick Introduction to Computer Engineering – EECS 203

Page 27: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Direct subtraction

Consider subtracting 5 (0101) from 6 (0110)

b

0 1 1 0− 0 1 0 1

0 0 0 1

Note that this operation is different from addition

Sign and magnitude addition is complicated

20 R. Dick Introduction to Computer Engineering – EECS 203

Page 28: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Direct subtraction

Consider subtracting 5 (0101) from 6 (0110)

b0 1 1 0

− 0 1 0 1

0 0 0

1

Note that this operation is different from addition

Sign and magnitude addition is complicated

20 R. Dick Introduction to Computer Engineering – EECS 203

Page 29: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Direct subtraction

Consider subtracting 5 (0101) from 6 (0110)

b0 1 1 0

− 0 1 0 1

0 0

0 1

Note that this operation is different from addition

Sign and magnitude addition is complicated

20 R. Dick Introduction to Computer Engineering – EECS 203

Page 30: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Direct subtraction

Consider subtracting 5 (0101) from 6 (0110)

b0 1 1 0

− 0 1 0 1

0

0 0 1

Note that this operation is different from addition

Sign and magnitude addition is complicated

20 R. Dick Introduction to Computer Engineering – EECS 203

Page 31: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Direct subtraction

Consider subtracting 5 (0101) from 6 (0110)

b0 1 1 0

− 0 1 0 1

0 0 0 1

Note that this operation is different from addition

Sign and magnitude addition is complicated

20 R. Dick Introduction to Computer Engineering – EECS 203

Page 32: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s compliment

0000

0001

0010

0011

0100

0101

0110

01111000

1001

1010

1011

1100

1101

1110

11111

2

3

4

5

6

7

−6

−5

−3

−2

−7

−4

−1

0 0

21 R. Dick Introduction to Computer Engineering – EECS 203

Page 33: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s compliment

If negative, complement all bits

Addition somewhat simplified

Do standard addition except wrap around carry back to the 0thbit

Potentially requires two additions of the whole width

Slow

22 R. Dick Introduction to Computer Engineering – EECS 203

Page 34: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1 1 1

1 0 1 0+ 0 1 1 1

0 0 01 10

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 35: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1 1 1

1 0 1 0+ 0 1 1 1

0 0 01

1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 36: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1

1

1 1

1 0 1 0+ 0 1 1 1

0 0

0

1

1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 37: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1

1 1

1 0 1 0+ 0 1 1 1

0

0 0

1

1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 38: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1

1

11 0 1 0

+ 0 1 1 1

0 0 0

1

1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 39: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1 1 11 0 1 0

+ 0 1 1 1

0 0 0

1 1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 40: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

One’s complement addition

Consider adding -5 (1010) and 7 (0111)

1 1 1 11 0 1 0

+ 0 1 1 1

0 0

0

1

1

0

23 R. Dick Introduction to Computer Engineering – EECS 203

Page 41: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement

To negate a number, invert all its bits and add 1

Like one’s complement, however, rotated by one bit

Counter-intuitive

However, has some excellent properties

24 R. Dick Introduction to Computer Engineering – EECS 203

Page 42: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement

0000

0001

0010

0011

0100

0101

0110

01111000

1001

1010

1011

1100

1101

1110

1111

0

1

2

3

4

5

6

−6

−4

−3

−1

−8

−5

7

−7

−2

25 R. Dick Introduction to Computer Engineering – EECS 203

Page 43: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement

Only one zero

Leads to more natural comparisons

One more negative than positive number

This difference is irrelevant as n increases

Substantial advantage – Addition is easy!

26 R. Dick Introduction to Computer Engineering – EECS 203

Page 44: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement addition

Consider adding -4 (1100) and 6 (0110)

1 1

1 1 0 0+ 0 1 1 0

0 0 1 0

27 R. Dick Introduction to Computer Engineering – EECS 203

Page 45: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement addition

Consider adding -4 (1100) and 6 (0110)

1 1

1 1 0 0+ 0 1 1 0

0 0 1

0

27 R. Dick Introduction to Computer Engineering – EECS 203

Page 46: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement addition

Consider adding -4 (1100) and 6 (0110)

1 1

1 1 0 0+ 0 1 1 0

0 0

1 0

27 R. Dick Introduction to Computer Engineering – EECS 203

Page 47: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement addition

Consider adding -4 (1100) and 6 (0110)

1

11 1 0 0

+ 0 1 1 0

0

0 1 0

27 R. Dick Introduction to Computer Engineering – EECS 203

Page 48: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement addition

Consider adding -4 (1100) and 6 (0110)

1 11 1 0 0

+ 0 1 1 0

0 0 1 0

27 R. Dick Introduction to Computer Engineering – EECS 203

Page 49: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement

No looped carry – Only one addition necessary

If carry-in to most-significant bit 6= carry-out to most-significantbit, overflow occurs

What does this represent?

Both operands positive and have carry-in to sign bit

Both operands negative and don’t have carry-in to sign bit

28 R. Dick Introduction to Computer Engineering – EECS 203

Page 50: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement overflow

a b cin cout

0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

29 R. Dick Introduction to Computer Engineering – EECS 203

Page 51: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Two’s complement overflow

a b cin cout

0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

29 R. Dick Introduction to Computer Engineering – EECS 203

Page 52: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Outline

1. Number systems

2. Unsigned Representations

3. Signed Representations

4. Building adders/subtracter

5. Homework

30 R. Dick Introduction to Computer Engineering – EECS 203

Page 53: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Half adder

For two’s complement, don’t need subtracterA B cout sum

0 0 0 00 1 0 11 0 0 11 1 1 0

cout = AB

sum = A⊕ B

31 R. Dick Introduction to Computer Engineering – EECS 203

Page 54: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Half adder

cout

sumB

A

32 R. Dick Introduction to Computer Engineering – EECS 203

Page 55: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Full adder

Need to deal with carry-inA B cin cout sum

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

33 R. Dick Introduction to Computer Engineering – EECS 203

Page 56: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Full adder

sum = A⊕ B ⊕ cin

cout = AB + A ci + B ci

34 R. Dick Introduction to Computer Engineering – EECS 203

Page 57: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Cascaded full-adders

sum

A B A B

cout cincincout

sum

A B

cincout

sum

sum1sum2sum3

A1A2A3 B1B2B3

0

35 R. Dick Introduction to Computer Engineering – EECS 203

Page 58: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Full adder standard implementation

AA

AAAA

BB

BB

BBCI

CI

SSCO

Six logic gates

36 R. Dick Introduction to Computer Engineering – EECS 203

Page 59: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Full adder composed of half-adders

Half

Adder

AA

BB

Half

Adder

A + B

CI

A + B + CISS SS

COCOCI (A + B)A B

SS

CO++

AB + ci(A⊕ B) = AB + B ci + A ci

37 R. Dick Introduction to Computer Engineering – EECS 203

Page 60: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Adder/subtracter

A B

sum sum sumsum

A B A B A B

0 1

Add/Subtract

A3

B3

B3

0 1

A2

B2

B2

0 1

A1

B1

B1

0 1

A0

B0

B0

Sel Sel Sel Sel

S3

S2

S1

S0

Overflow

cout cin cout cin cout cin cout cin

Consider input to cin

38 R. Dick Introduction to Computer Engineering – EECS 203

Page 61: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Ripple-carry delay analysis

The critical path (to cout) is two gate delays per stage

Consider adding two 32-bit numbers

64 gate delays

Too slow!

Consider faster alternatives

39 R. Dick Introduction to Computer Engineering – EECS 203

Page 62: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry lookahead adder

Lecture notes give detail for completeness

However, primarily important to understand that carry lookaheadcompresses many levels of a carry chain into fewer levels for speed

Will need to understand carry select adders in detail

Carry generate: G = AB

Carry propagate: P = A⊕ B

Represent sum and cout in terms of G and P

40 R. Dick Introduction to Computer Engineering – EECS 203

Page 63: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Overview: Carry lookahead adder

sum = A⊕ B ⊕ cin

= P ⊕ cin

cout = AB + A cin + B cin

= AB + cin(A + B)

= AB + cin(A⊕ B)

= G + cin P

41 R. Dick Introduction to Computer Engineering – EECS 203

Page 64: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Overview: Carry lookahead adder

Flatten carry equations

cin1 = G0 + P0 cout0

cin2 = G1 + P1 cout1 = G1 + P1G0 + P1P0 cout0

cin3 = G2 + P2 cout2 = G2 + P2G1 + P2P1G0 + P2P1P0 cout0

cin4 = G3 + P3C3 = G3 + P3G2 + P3P2G1+

P3P2P1G0 + P3P2P1P0 cout0

Each cin can be implemented in three-level logic

42 R. Dick Introduction to Computer Engineering – EECS 203

Page 65: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry lookahead building block

Pi 1 gate delay

Ci Si 2 gate delays

Bi

Ai

G i 1 gate delay

43 R. Dick Introduction to Computer Engineering – EECS 203

Page 66: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry lookahead adder

C0C0

C0

C0

P0P0

P0

P0

G0

G0

G0

G0

C1

P1

P1

P1

P1

P1

P1G1

G1

G1

C2

P2

P2

P2

P2

P2

P2

G2

G2

C3

P3

P3

P3

P3

G3

C4

44 R. Dick Introduction to Computer Engineering – EECS 203

Page 67: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry lookahead delay analysis

Assume a 4-stage adder with CLA

Propagate and generate signals available after 1 gate delays

Carry signals for slices 1 to 4 available after 3 gate delays

Sum signal for slices 1 to 4 after 4 gate delays

45 R. Dick Introduction to Computer Engineering – EECS 203

Page 68: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry lookahead

No carry chain slowing down computation of most-significant bit

Computation in parallel

More area required

Each bit has more complicated logic than the last

Therefore, limited bit width for this type of adder

Can chain multiple carry lookahead adders to do wide additions

Note that even this chain can be accelerated with lookahead

Use internal and external carry lookahead units

46 R. Dick Introduction to Computer Engineering – EECS 203

Page 69: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Cascaded carry lookahead adder

4−bit Adder

4 4

4

A [15−12] B[15−12] C12

C16

S[15−12]

P G4−bit Adder

4 4

4

A [11−8] B[11−8] C8

S[11−8]

P G4−bit Adder

4 4

4

A [7−4] B[7−4] C4

S[7−4]

P G4−bit Adder

4 4

4

A [3−0] B[3−0] C0

S[3−0]

P G

Lookahead Carry UnitC

0

P0

G0

P1

G1

P2

G2

P3

G3

C3

C2

C1

C0

P3−0 G3−0

C4

@3@2

@0

@4

@4@3@2@5

@7

@3@2@5

@8@8

@3@2

@5

@5@3

@0

C16

47 R. Dick Introduction to Computer Engineering – EECS 203

Page 70: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Delay analysis for cascaded carry lookahead

Four-stage 16-bit adder

cin for MSB available after five gate delays

sum for MSB available after eight gate delays

16-bit ripple-carry adder takes 32 gate delays

Note that not all gate delays are equivalent

Depends on wiring, driven load

However, carry lookahead is usually much faster than ripple-carry

48 R. Dick Introduction to Computer Engineering – EECS 203

Page 71: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry select adders

Trade even more hardware for faster carry propagation

Break a ripple carry adder into two chunks, low and high

Implement two high versions

high0 computes the result if the carry-out from low is 0high1 computes the result if the carry-out from low is 1

Use a MUX to select a result once the carry-out of low is known

high0’s cout is never greater than high1’s cout so special-caseMUX can be used

49 R. Dick Introduction to Computer Engineering – EECS 203

Page 72: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Carry select adder

4−Bit Adder

[3:0]

C0C

4

4−Bit Adder

[7:4]

0C8

1C8

2:1 Mspecial−case

UX

010101

4−Bit Adder

[7:4]

C8

S7

S6

S5

S4

S3

S2

S1

S0

01

C4

Adder

H

MUX MUX MUX MUX

igh

Adder

Low

50 R. Dick Introduction to Computer Engineering – EECS 203

Page 73: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Delay analysis of carry select adder

Consider 8-bit adder divided into 4-bit stages

Each 4-bit stage uses carry lookahead

The 2:1 MUX adds two gate delays

8-bit sum computed after 6 gate delays

7 gate delays for carry lookahead

16 gate delays for ripple carry

51 R. Dick Introduction to Computer Engineering – EECS 203

Page 74: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Summary

Number systems

Adders and subtracters

52 R. Dick Introduction to Computer Engineering – EECS 203

Page 75: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Outline

1. Number systems

2. Unsigned Representations

3. Signed Representations

4. Building adders/subtracter

5. Homework

53 R. Dick Introduction to Computer Engineering – EECS 203

Page 76: Introduction to Computer Engineering { EECS 203ziyang.eecs.umich.edu/eecs203/lectures/eecs203-l10.pdf · Introduction to Computer Engineering { EECS 203 ... 10 (a) 11 (b) 12 (c) 13

Number systemsUnsigned Representations

Signed RepresentationsBuilding adders/subtracter

Homework

Reading assignment

M. Morris Mano and Charles R. Kime. Logic and ComputerDesign Fundamentals. Prentice-Hall, NJ, fourth edition, 2008

Finish Sections 5.1–5.6

54 R. Dick Introduction to Computer Engineering – EECS 203