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