slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Basic Dividers PowerPoint Presentation
Download Presentation
Basic Dividers

Loading in 2 Seconds...

play fullscreen
1 / 54

Basic Dividers - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

Lecture 10. Basic Dividers. Required Reading. Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design. Chapter 13, Basic Division Schemes 13.1, Shift/Subtract Division Algorithms 13.3, Restoring Hardware Dividers 13.4, Non-Restoring and Signed Division.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Basic Dividers' - harley


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Lecture 10

Basic Dividers

slide2

Required Reading

Behrooz Parhami,

Computer Arithmetic: Algorithms and Hardware Design

Chapter 13, Basic Division Schemes

13.1, Shift/Subtract Division Algorithms

13.3, Restoring Hardware Dividers

13.4, Non-Restoring and Signed Division

slide4

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)

slide5

Basic Equations of Division

z = d q + s

| s | < | d |

sign(s) = sign(z)

z > 0

0  s < | d |

z < 0

- | d | < s  0

slide6

Unsigned Integer Division Overflow

  • 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

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

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

z = zH 2k + zL < d 2k

zH < d

slide7

Sequential Integer Division

Basic Equations

s(0) = z

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

s(k) = 2k s

slide8

Sequential Integer Division

Justification

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

slide11

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-2k

k bits

slide12

Integer vs. Fractional Division

For Integers:

z = q d + s

 2-2k

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

For Fractions:

zfrac = qfrac dfrac + sfrac

where

zfrac = z 2-2k

dfrac = d 2-k

qfrac = q 2-k

sfrac = s 2-2k

slide13

Unsigned Fractional Division Overflow

Condition for no overflow:

zfrac < dfrac

slide14

Sequential Fractional Division

Basic 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)

slide15

Sequential Fractional Division

Justification

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

slide17

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)

slide21

Non-Restoring Unsigned Integer Division

s(1) = 2 z - 2k d

for j = 2 to k

if s(j-1) 0

qk-(j-1) = 1

s(j) = 2 s(j-1) - 2k d

else

qk-(j-1) = 0

s(j) = 2 s(j-1) + 2k d

end for

if s(k) 0

q0 = 1

else

q0 = 0

Correction step

slide22

Non-Restoring Unsigned Integer Division

Correction step

s = 2-k · s(k)

z = q d + s

z, q, d ≥ 0 s<0

z = (q-1) d + (s+d)

z = q’ d + s’

slide25

Non-Restoring Unsigned Integer Division

Justification

s(j-1) ≥ 0

2 s(j-1) - 2k d < 0

2 (2 s(j-1) )- 2k d ≥ 0

Restoring division

Non-Restoring division

s(j) = 2 s(j-1)

s(j+1) = 2 s(j) - 2k d =

= 4 s(j-1) - 2k d

s(j) = 2 s(j-1) - 2k d

s(j+1) = 2 s(j) + 2k d =

= 2 (2 s(j-1) - 2k d)+ 2k d =

= 4 s(j-1) - 2k d

slide27

Signed Integer Division

z

d

| z |

| d |

sign(z)

sign(d)

Unsigned

division

sign(s) = sign(z)

sign(z) = sign(d)

+

| q |

| s |

sign(q) =

-

sign(z)  sign(d)

q

s

slide28

Examples of Signed Integer Division

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 signs

Signs of q and s are derivable from signs of z and d

slide30

Non-Restoring Signed Integer Division

s(0) = z

for j = 1 to k

if sign(s(j-1)) == sign(d)

qk-j = 1

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

else

qk-j = -1

s(j) = 2 s(j-1) + 2k d = 2 s(j-1) - qk-j (2k d)

q = BSD_2’s_comp_conversion(q)

Correction_step

slide31

Non-Restoring Signed Integer Division

Correction step

s = 2-k · s(k)

z = q d + s

sign(s) = sign(z)

z = (q-1) d + (s+d)

z = q’ d + s’

z = (q+1) d + (s-d)

z = q” d + s”

fig 13 9 example of nonrestoring signed division

========================

z 0 0 1 0 0 0 0 1

24d 1 1 0 0 1

–24d 0 0 1 1 1

========================

s(0) 0 0 0 1 0 0 0 0 1

2s(0) 0 0 1 0 0 0 0 1 sign(s(0))  sign(d),

+24d 1 1 0 0 1 so set q3 = -1 and add

––––––––––––––––––––––––

s(1) 1 1 1 0 1 0 0 1

2s(1) 1 1 0 1 0 0 1 sign(s(1)) = sign(d),

+(–24d)0 0 1 1 1 so set q2 = 1 and subtract

––––––––––––––––––––––––

s(2) 0 0 0 0 1 0 1

2s(2) 0 0 0 1 0 1 sign(s(2))  sign(d),

+24d 1 1 0 0 1 so set q1 = -1 and add

––––––––––––––––––––––––

s(3) 1 1 0 1 1 1

2s(3) 1 0 1 1 1 sign(s(3)) = sign(d),

+(–24d)0 0 1 1 1 so set q0 = 1 and subtract

––––––––––––––––––––––––

s(4) 1 1 1 1 0 sign(s(4))  sign(z),

+(–24d)0 0 1 1 1 so perform corrective subtraction

––––––––––––––––––––––––

s(4) 0 0 1 0 1

s 0 1 0 1

q-1 1-1 1 ========================

Fig. 13.9 Example of nonrestoring signed division.

p = 0 1 0 1 Shift, compl MSB

1 1 0 1 1 Add 1 to correct

1 1 0 0 Check: 33/(-7) = -4

slide33

BSD  2’s Complement Conversion

q = (qk-1 qk-2 . . . q1 q0)BSD =

= (pk-1 pk-2 . . . p1 p0 1)2’s complement

where

Example:

qBSD

1 -1 1 1

qi

pi

p

-1

0

1 0 1 1

1

1

q2’scomp

0 0 1 1 1 = 0 1 1 1

no overflow if pk-2 = pk-1 (qk-1 qk-2)

slide34

Fast Review of

Fast Dividers

slide35

Classification of Dividers

Array

Dividers

Dividers

by Convergence

Sequential

Radix-2

High-radix

  • Restoring
  • Non-restoring
    • regular
    • SRT
    • regular using carry save adders
    • SRT using carry save adders
slide36

Array

Dividers

fig 15 8 nonrestoring array divider built of controlled add subtract cells
Fig. 15.8 Nonrestoring array divider built of controlledadd/subtract cells.
slide39

Sequential

Dividers

with

Carry-Save Adders

fig 14 8 block diagram of a radix 2 divider with partial remainder in stored carry form
Fig. 14.8 Block diagram of a radix-2 divider with partialremainder in stored-carry form.
radix r divider
Radix r Divider

Process to derive the details:

Radix r

Digit set [–, ] for q–j

Number of bits of p (v and u) and d to be inspected

Quotient digit selection unit (table or logic)

Multiple generation/selection scheme

Conversion of redundant q to 2’s complement

Fig. 14.15 Block diagram of radix-r divider with partial remainder in stored-carry form.

slide42

Pentium bug (1)

October 1994

Thomas Nicely, Lynchburg Collage, Virginia

finds an error in his computer calculations, and traces

it back to the Pentium processor

November 7, 1994

First press announcement, Electronic Engineering Times

Late 1994

Tim Coe, Vitesse Semiconductor

presents 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...

slide43

Pentium bug (2)

Intel admits “subtle flaw”

November 30, 1994

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

Intel - average spreadsheet user affected once in 27,000 years

IBM - average spreadsheet user affected once every 24 days

Replacements based on customer needs

December 20, 1994

Announcement of no-question-asked replacements

slide44

Pentium bug (3)

Error traced back to the look-up table used by

the 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

multiply divide unit
Multiply-Divide Unit

The control unit proceeds through necessary steps for multiplication or division

(including using the appropriate shift direction)

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

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

learn to deal with approximations
Learn to deal with approximations
  • In digital arithmetic one has to come to grips with approximation and questions like:
    • When is approximation good enough
    • What margin of error is acceptable
  • Be aware of the applications you are designing the arithmetic circuit or program for
  • Analyze the implications of your approximation
slide49

Calculators

u =

= 1.000 677 131

v = 21/1024 = 1.000 677 131

10 times

y = (((v2)2)…)2 = 1.999 999 983

x = (((u2)2)…)2 = 1.999 999 963

10 times

10 times

x’ = u1024 = 1.999 999 973

y’ = v1024 = 1.999 999 994

Hidden digits in the internal representation of numbers

Different algorithms give slightly different results

Very good accuracy

slide50

DIGITAL SYSTEMS DESIGN

  • Concentration advisors:Kris Gaj
  • 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)– N. Klimavicz, project/lab, front-end and back-end ASIC design with Synopsys tools
  • 5. ECE 682 VLSI Test Concepts (Spring semesters)– T. Storey, homework
slide51

Follow-up courses

Computer Arithmetic

ECE 645

ECE 646

Cryptography and

Computer Network Security

(Fall 2011)

ECE 746

Advanced Applied

Cryptography

(Spring 2012 or 2013)

ECE 899

Cryptographic Engineering

(Spring 2012)

slide52

Cryptography and Computer

Network Security

Advanced Applied

Cryptography

Operations in the Galois Fields GF(2n)

Modular integer arithmetic

  • 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)
  • Public key encryption
  • (RSA)
  • Hash functions and MACs
  • Digital signatures
  • Public key certificates
  • PGP
  • Secure Internet Protocols
  • Cryptographic standards
selected topics
Selected Topics
  • True Random Number Generators
  • Fast Finite Field Multiplication
  • Elliptic and Hyperelliptic Curve Cryptography
  • Instruction Set Extensions for Cryptographic Applications
  • FPGA and ASIC Implementations of AES
  • Secure and Efficient Implementation of Symmetric Encryption
  • Block Cipher Modes of Operation in Hardware
  • Basics of Side-Channel Analysis
  • Improved Techniques for Side-Channel Analysis
  • Electromagnetic Attacks and Countermeasures
  • Microarchitectural Attacks and Countermeasures (cache attacks)