+ All Categories
Home > Documents > 1 Dividers Lecture 10. Required Reading Chapter 13, Basic Division Schemes 13.1, Shift/Subtract...

1 Dividers Lecture 10. Required Reading Chapter 13, Basic Division Schemes 13.1, Shift/Subtract...

Date post: 03-Jan-2016
Category:
Upload: felicia-kelley
View: 214 times
Download: 0 times
Share this document with a friend
37
1 Dividers Lecture 10
Transcript

1

Dividers

Lecture 10

Required Reading

Chapter 13, Basic Division Schemes13.1, Shift/Subtract Division Algorithms13.3, Restoring Hardware Dividers13.4, Non-Restoring and Signed Division

Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design

Notation and

Basic Equations

4

Notation

z Dividend z2k-1z2k-2 . . . z2 z1 z0

d Divisor dk-1dk-2 . . . d1 d0

q Quotient qk-1qk-2 . . . q1 q0

s Remainder sk-1sk-2 . . . s1 s0

(s = z - dq)

5

Basic Equations of Division

z = d q + s

sign(s) = sign(z)

| s | < | d |

z > 00 s < | d |

z < 0- | d | < s 0

6

Unsigned Integer Division Overflow

z = zH 2k + zL < d 2k

Condition for no overflow (i.e. q fits in k bits):

z = q d + s < (2k-1) d + d = d 2k

zH < d

• Must check overflow because obviously the quotient q can also be 2k bits. • For example, if the divisor d is 1, then the quotient q is the

dividend z, which is 2k bits

7

Sequential Integer DivisionBasic Equations

s(0) = z

s(j) = 2 s(j-1) - qk-j (2k d) for j=1..k

s(k) = 2k s

8

Sequential Integer DivisionJustification

s(1) = 2 z - qk-1 (2k d)s(2) = 2(2 z - qk-1 (2k d)) - qk-2 (2k d)s(3) = 2(2(2 z - qk-1 (2k d)) - qk-2 (2k d)) - qk-3 (2k d)

. . . . . .

s(k) = 2(. . . 2(2(2 z - qk-1 (2k d)) - qk-2 (2k d)) - qk-3 (2k d) . . . - q0 (2k d) = = 2k z - (2k d) (qk-1 2k-1 + qk-2 2k-2 + qk-3 2k-3 + … + q020) = = 2k z - (2k d) q = 2k (z - d q) = 2k s

9

Fig. 13.2 Examples of sequential division with integer and fractional operands.

Fractional Division

11

Unsigned Fractional Division

zfrac Dividend .z-1z-2 . . . z-(2k-1)z-2k

dfrac Divisor .d-1d-2 . . . d-(k-1) d-k

qfrac Quotient .q-1q-2 . . . q-(k-1) q-k

sfrac Remainder .000…0s-(k+1) . . . s-(2k-1) s-2kk bits

12

Integer vs. Fractional Division

For Integers:

z = q d + s 2-2k

z 2-2k = (q 2-k) (d 2-k) + s (2-2k)

zfrac = qfrac dfrac + sfrac

For Fractions:

wherezfrac = z 2-2k

dfrac = d 2-k

qfrac = q 2-k

sfrac = s 2-2k

13

Unsigned Fractional Division Overflow

Condition for no overflow:

zfrac < dfrac

14

Sequential Fractional DivisionBasic Equations

s(0) = zfrac

s(j) = 2 s(j-1) - q-j dfrac for j=1..k

2k · sfrac = s(k)

sfrac = 2-k · s(k)

15

Sequential Fractional DivisionJustification

s(1) = 2 zfrac - q-1 dfrac

s(2) = 2(2 zfrac - q-1 dfrac) - q-2 dfrac

s(3) = 2(2(2 zfrac - q-1 dfrac) - q-2 dfrac) - q-3 dfrac

. . . . . .

s(k) = 2(. . . 2(2(2 zfrac - q-1 dfrac) - q-2 dfrac) - q-3 dfrac . . . - q-k dfrac = = 2k zfrac - dfrac (q-1 2k-1 + q-2 2k-2 + q-3 2k-3 + … + q-k20) = = 2k zfrac - dfrac 2k (q-1 2-1 + q-2 2-2 + q-3 2-3 + … + q-k2-k) = = 2k zfrac - (2k dfrac) qfrac = 2k (zfrac - dfrac qfrac) = 2k sfrac

Restoring Unsigned Integer Division

17

Restoring Unsigned Integer Division

s(0) = z

for j = 1 to k

if 2 s(j-1) - 2k d > 0 qk-j = 1 s(j) = 2 s(j-1) - 2k d else qk-j = 0 s(j) = 2 s(j-1)

18

Fig. 13.6 Example of restoring unsigned division.

19

Fig. 13.5 Shift/subtract sequential restoring divider.

Signed Integer Division

21

Signed Integer Division

z d

| z | | d | sign(z) sign(d)

| q | | s |

sign(s) = sign(z)

sign(q) =+

-

Unsigneddivision

sign(z) = sign(d)

sign(z) sign(d)

q s

22

Examples of division with signed operands

z = 5 d = 3 q = 1 s = 2

z = 5 d = –3 q = –1 s = 2

z = –5 d = 3 q = –1 s = –2

z = –5 d = –3 q = 1 s = –2

Magnitudes of q and s are unaffected by input signsSigns of q and s are derivable from signs of z and d

Examples of Signed Integer Division

Fast Review ofFast Dividers

24

Classification of Dividers

Sequential

Radix-2 High-radix

RestoringNon-restoring

• regular• SRT• regular using carry save adders• SRT using carry save adders

ArrayDividers

Dividersby Convergence

25

ArrayDividers

26

Fig. 15.7 Restoring array divider composed of controlledsubtractor cells.

27

SequentialDividers

with Carry-Save Adders

28

Fig. 14.8 Block diagram of a radix-2 divider with partialremainder in stored-carry form.

29

Pentium bug (1)October 1994

Thomas Nicely, Lynchburg Collage, Virginiafinds an error in his computer calculations, and tracesit back to the Pentium processor

Tim Coe, Vitesse Semiconductorpresents an example with the worst-case error

c = 4 195 835/3 145 727

Pentium = 1.333 739 06...Correct result = 1.333 820 44...

November 7, 1994

Late 1994

First press announcement, Electronic Engineering Times

30

Pentium bug (2)

Intel admits “subtle flaw”

Intel’s white paper about the bug and its possible consequences

Intel - average spreadsheet user affected once in 27,000 yearsIBM - average spreadsheet user affected once every 24 days

Replacements based on customer needs

Announcement of no-question-asked replacements

November 30, 1994

December 20, 1994

31

Pentium bug (3)

Error traced back to the look-up table used bythe radix-4 SRT division algorithm

2048 cells, 1066 non-zero values {-2, -1, 1, 2}

5 non-zero values not downloaded correctly to the lookup table due to an error in the C script

32

33

Multiply/DivideUnit

34

The control unit proceeds through necessary steps for multiplication or division (including using the appropriate shift direction)

Fig. 15.9 Sequential radix-2 multiply/divide unit.

Multiplier x or quotient q

Mux

Adder out c

0 1

Partial product p or partial remainder s

Multiplicand a or divisor d

Shift control

Shift

Enable

in c

q k–j

MSB of 2s (j–1)

k

k

k

j x

MSB of p (j+1)

Divisor sign

Multiply/ divide control

Select

Mul Div

The slight speed penalty owing to a more complex control unit is insignificant

Multiply-Divide Unit

DIGITAL SYSTEMS DESIGN

Concentration advisors: Kris Gaj

1. ECE 545 Digital System Design with VHDL (Fall semesters)– K. Gaj, project, FPGA design with VHDL, Aldec/Synplicity/Xilinx/Altera

2. ECE 645 Computer Arithmetic (Spring semesters)– K. Gaj, project, FPGA design with VHDL or Verilog,

Aldec/Synplicity/Xilinx/Altera

3. ECE 586 Digital Integrated Circuits (Spring semesters) – D. Ioannou

4. ECE 681 VLSI Design for ASICs (Fall semesters)– TBD, project/lab, front-end and back-end ASIC design with Synopsys tools

5. ECE 682 VLSI Test Concepts (Spring semesters)– T. Storey, homework

Follow-up courses

Computer ArithmeticECE 645

ECE 746Advanced Applied

Cryptography(Spring 2013)

ECE 646Cryptography and

Computer Network Security(Fall 2012)

ECE 899Cryptographic Engineering(Spring 2012/Spring 2014)

Cryptography and Computer Network Security

Advanced Applied Cryptography

• AES• Stream ciphers• Elliptic curve cryptosystems• Random number generators• Smart cards• Attacks against implementations (timing, power, fault analysis)• Efficient and secure implementations of cryptography• Security in various kinds of networks (IPSec, wireless)• Zero-knowledge identification schemes

• Historical ciphers• Classical encryption (DES, Triple DES, RC5, IDEA)• Modes of operation of block ciphers• Public key encryption (RSA)• Hash functions and MACs • Digital signatures• Public key certificates• PGP• Secure Internet Protocols• Cryptographic standards

Modular integer arithmetic Operations in the Galois Fields GF(2n)


Recommended