Computer Arithmetic Algorithms - WSUdaehyun/teaching/2017_EE466/...Arithmetic Shift Operations β’ Derivation of the extension of the oneβs complement ππ= ππ ππβ1β¦0
Post on 24-Mar-2021
7 Views
Preview:
Transcript
Computer Arithmetic Algorithms
Prof. Dae Hyun Kim School of Electrical Engineering and Computer Science
Washington State University
Number Representations
2
Information
β’ Textbook β Israel Koren, βComputer Arithmetic Algorithms,β Prentice Hall, 1993.
3
Outline
β’ Binary number system
β’ Radix conversion
β’ Negative numbers β Signed-magnitude β Oneβs complement β Twoβs complement
β’ Addition and subtraction
β’ Arithmetic shift operations (sign extension)
4
The Binary Number System
β’ A binary number of length ππ (π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0)
β π₯π₯ππ: bit (β {0,1})
β’ An ππ-digit binary number
ππ = π₯π₯ππβ12ππβ1 + π₯π₯ππβ22ππβ2 + β―+ π₯π₯121 + π₯π₯020 = οΏ½π₯π₯ππ2ππππβ1
ππ=0
β π₯π₯ππ β {0,1}
β’ Example β 10112 = 1 β 23 + 0 β 22 + 1 β 21 + 1 β 20 = 11
radix
5
The Binary Number System
β’ Radix-10 numbers: decimal numbers β (101)10= 101
β’ Radix-2 numbers: binary numbers
β (101)2= 5
β’ Range of representable numbers [ππππππππ,ππππππππ]
β Example: The range of 4-bit unsigned binary numbers: [0, 15]
β’ Overflow β An arithmetic operation resulting in a number larger than ππππππππ or
smaller than ππππππππ
6
The Binary Number System
β’ The conventional number systems β Nonredundant
β’ Every number has a unique representation. β Weighted
β’ ππ = β π₯π₯πππ€π€ππππβ1ππ=0
β’ π€π€ππ: weight β Positional
β’ π€π€ππ depends only on the position of the digit π₯π₯ππ. β’ π€π€ππ = ππππ β’ 0 β€ π₯π₯ππ β€ ππ β 1
β Otherwise (if π₯π₯ππ β₯ ππ), the system becomes redundant.
X D
π₯π₯ππ
π₯π₯ππ ππππ
redundant
7
The Binary Number System
β’ A mixed number (fixed-point representation) (π₯π₯ππβ1 π₯π₯ππβ2 β¦ π₯π₯1 π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)ππ
= (π₯π₯ππβ1ππππβ1 + π₯π₯ππβ2ππππβ2 + β―+ π₯π₯1ππ1 + π₯π₯0ππ0) + (π₯π₯β1ππβ1 + β―+ π₯π₯βππππβππ)
= οΏ½ π₯π₯ππππππππβ1
ππ=βππ
β’ ππβππ: indicates the position of the radix point.
β’ ulp: unit in the last position
β π’π’π’π’π’π’ = ππβππ
integral part fractional part
8
Radix Conversion
β’ Given β ππ = πππΌπΌ + πππΉπΉ = β π₯π₯ππππππππβ1
ππ=0 + β π₯π₯ππππππβ1ππ=βππ
β’ πππΌπΌ: integral part β’ πππΉπΉ: fractional part
β πππ·π·: destination number system
β’ Integral part πππΌπΌ = π₯π₯0 + πππ·π·(π₯π₯1 + πππ·π·(π₯π₯2 + β―+ πππ·π·(π₯π₯ππβ2 + πππ·π·π₯π₯ππβ1)))
0 β€ π₯π₯ππ < πππ·π· β π₯π₯0 = πππΌπΌ ππππππ πππ·π· β ππ0 = π₯π₯1 + πππ·π· π₯π₯2 + πππ·π· π₯π₯3 + β― β π₯π₯1 = ππ0 ππππππ πππ·π· β ...
9
Radix Conversion
β’ Fractional part πππΉπΉ = πππ·π·β1(π₯π₯β1 + πππ·π·β1(π₯π₯β2 + β―+ πππ·π·β1(π₯π₯β ππβ1 + πππ·π·β1π₯π₯βππ)))
0 β€ π₯π₯ππ < πππ·π·
β π₯π₯β1: the integral part of πππΉπΉπππ·π· β ππβ1 = πππ·π·β1(π₯π₯β2 + β―+ πππ·π·β1(π₯π₯β ππβ1 + πππ·π·β1π₯π₯βππ)) β π₯π₯β2: the integral part of ππβ1πππ·π· β ...
β’ Example
β 46.37510 = 101110.0112
10
Negative Numbers: Signed-Magnitude
β’ Representation (π₯π₯π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0)
β’ Positive numbers: 0xxxxx β 0xxxxx2
β’ Negative numbers: (r-1)xxxxx β 1xxxxx2
β’ Range of positive numbers for (π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)
β [0, ππππβ1 β π’π’π’π’π’π’] β’ Range of negative numbers for (π π π₯π₯ππβ2π₯π₯ππβ3 β¦ π₯π₯1π₯π₯0 . π₯π₯β1π₯π₯β2 β¦ π₯π₯βππ)
β [β(ππππβ1 β π’π’π’π’π’π’), 0]
sign magnitude
11
Negative Numbers: Signed-Magnitude
β’ Problems β Two zeros
β’ 0000...0 β’ 1000...0
β Difficulties in subtraction β’ If X>Y, X-Y is ok. β’ However, Y-X is -(X-Y), so we should compute X-Y, then set the MSB to 1.
12
Negative Numbers: Complement
β’ Represent βY by R β Y. β’ Then, β(βY) = R β (R β Y) = Y. β’ If X>Y>0, Y β X = Y + (R β X) = R β (X β Y) = X β Y.
β’ Two requirements
β When X>Y>0, X β Y = X + (R β Y) = R + (X β Y) should be X β Y. β Computation of R β Y should be simple.
β’ Notation
π₯π₯πποΏ½ = ππ β 1 β π₯π₯ππ πποΏ½ = (π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯0, π₯π₯β1, β¦ , π₯π₯βππ) ππ + πποΏ½ = ( ππ β 1 , ππ β 1 , β¦ , (ππ β 1))
ππ + πποΏ½ + π’π’π’π’π’π’ = ππππ
13
Negative Numbers: Complement
β’ Oneβs complement (Diminished-radix complement) β π π = ππππ β π’π’π’π’π’π’ β βππ = π π β ππ = πποΏ½ β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π β ππ β ππ = β(ππ β ππ) β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π + ππ β ππ = ππππ + ππ β ππ β π’π’π’π’π’π’ =
ππ β ππ β π’π’π’π’π’π’ β’ This requires a correction step (add ulp).
β When X>0, Y>0, βππ β ππ = π π β ππ + π π β ππ = π π + π π β ππ + ππ = ππππ + π π βππ + ππ = π π β ππ + ππ = β(ππ + ππ)
β’ Twoβs complement (Radix complement)
β π π = ππππ β βππ = π π β ππ = πποΏ½ + π’π’π’π’π’π’ β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π β ππ β ππ = β(ππ β ππ) β When X>Y>0, ππ β ππ = ππ + π π β ππ = π π + ππ β ππ = ππππ + ππ β ππ = ππ β ππ β When X>0, Y>0, βππ β ππ = π π β ππ + π π β ππ = π π + π π β ππ + ππ = ππππ + π π β
ππ + ππ = π π β ππ + ππ = β(ππ + ππ)
14
Twoβs Complement Representation
β’ One zero β 000...0
β’ A negative number that does not have a positive equivalent β 100...0
β’ Range β [β2ππβ1, 2ππβ1 β π’π’π’π’π’π’]
β’ ππ = βπ₯π₯ππβ1 β 2ππβ1 + β π₯π₯ππ2ππππβ2
ππ=0 Proof) If π₯π₯ππβ1 = 0 (positive), ππ = β π₯π₯ππ2ππππβ2
ππ=0 = βπ₯π₯ππβ1 β 2ππβ1 + β π₯π₯ππ2ππππβ2ππ=0 .
If π₯π₯ππβ1 = 1 (negative), ππ = β πποΏ½ + π’π’π’π’π’π’ = β[β π₯π₯πποΏ½2ππππβ1ππ=0 + 1]
= β β 1 β π₯π₯ππ 2ππππβ1ππ=0 + 1 = β 2ππ β 1 β β π₯π₯ππ2ππππβ1
ππ=0 + 1 = β2ππ + β π₯π₯ππ2ππππβ1
ππ=0 = β2ππβ1 + β π₯π₯ππ2ππππβ2ππ=0
15
Oneβs Complement Representation
β’ Two zeros β 000...0 β 111...1
β’ Range
β [β 2ππβ1 β π’π’π’π’π’π’ , 2ππβ1 β π’π’π’π’π’π’ ]
β’ ππ = βπ₯π₯ππβ1 2ππβ1 β π’π’π’π’π’π’ + β π₯π₯ππ2ππππβ2ππ=0
Proof) If π₯π₯ππβ1 = 0 (positive), ππ = β π₯π₯ππ2ππππβ2ππ=0 = βπ₯π₯ππβ1 β (2ππβ1 β π’π’π’π’π’π’) +
β π₯π₯ππ2ππππβ2ππ=0 .
If π₯π₯ππβ1 = 1 (negative), ππ = βπποΏ½ = ββ π₯π₯πποΏ½2ππππβ1ππ=0 = ββ 1 β π₯π₯ππ 2ππππβ1
ππ=0 = β 2ππ β 1 β β π₯π₯ππ2ππππβ1
ππ=0 = β2ππ + 1 + β π₯π₯ππ2ππππβ1ππ=0
= β2ππβ1 + 1 + β π₯π₯ππ2ππππβ2ππ=0 = βπ₯π₯ππβ1 β (2ππβ1 β π’π’π’π’π’π’) + β π₯π₯ππ2ππππβ2
ππ=0
16
Addition and Subtraction
β’ Signed-magnitude
β As shown above, addition and subtraction of signed-magnitude numbers need corrections.
overflow
0 1 0 1 1 (11) + 0 0 1 1 0 (6) = 1 0 0 0 1 (-1)
0 1 0 1 1 (11) + 0 0 0 1 0 (2) = 0 1 1 0 1 (13)
1 0 0 1 1 (-3) + 1 0 1 0 1 (-5) =1 0 1 0 0 0 (+8)
overflow
1 1 0 0 0 (-8) + 1 1 0 0 1 (-9) =1 1 0 0 0 1 (-1)
overflow
0 1 1 0 1 (13) + 1 1 0 0 0 (-8) = 1 0 0 1 0 1 (5)
1 1 1 0 1 (-13) + 0 1 0 0 0 (8) = 1 0 0 1 0 1 (+5)
17
Addition and Subtraction
β’ Twoβs complement
0 1 0 1 1 (11) + 0 0 1 1 0 (6) = 1 0 0 0 1 (-15)
0 1 0 1 1 (11) + 0 0 0 1 0 (2) = 0 1 1 0 1 (13)
1 1 1 0 1 (-3) + 1 1 0 1 1 (-5) =1 1 1 0 0 0 (-8)
1 1 0 0 0 (-8) + 1 0 1 1 1 (-9) =1 0 1 1 1 1 (-17)
overflow indicator
overflow indicator
0 1 1 0 1 (13) + 1 1 0 0 0 (-8) = 1 0 0 1 0 1 (5)
1 0 0 1 1 (-13) + 0 1 0 0 0 (8) = 1 1 0 1 1 (-5)
18
Arithmetic Shift Operations
β’ For given {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
β’ Signed-magnitude π₯π₯ππβ1, 0, 0, β¦ , 0, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , 0, 0, β¦
β’ Twoβs complement
π₯π₯ππβ1, π₯π₯ππβ1, β¦ , π₯π₯ππβ1, π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , 0, 0, β¦
β’ Oneβs complement π₯π₯ππβ1, π₯π₯ππβ1, β¦ , π₯π₯ππβ1, π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 , π₯π₯ππβ1, π₯π₯ππβ1, β¦
Supplementary Materials
20
Arithmetic Shift Operations
β’ Derivation of the extension of the twoβs complement ππ = ππππβ1β¦0 = {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
If X>0, it is the same as the signed-magnitude case. If X<0 (if X β -2n),
ππ = ππππβ1β¦0 = π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 βππ = {ππππβ1β¦0 + π’π’π’π’π’π’0}
(βππ)ext= 00 β¦ 0 ππππβ1β¦0 + π’π’π’π’π’π’0 00 β¦ 0 = 00 β¦ 0 πΎπΎ 00 β¦ 0 β βππ ext = 00 β¦ 0 πΎπΎ 00 β¦ 0 + π’π’π’π’π’π’βππ = 11 β¦ 1 πΎπΎοΏ½ 11 β¦ 1 + π’π’π’π’π’π’βππ
= 11 β¦ 1 πΎπΎοΏ½ + π’π’π’π’π’π’0 00 β¦ 0 = 11 β¦ 1 2ππ β πΎπΎ 00 β¦ 0 = 11 β¦ 1 2ππ β ππππβ1β¦0 + π’π’π’π’π’π’0 00 β¦ 0 = 11 β¦ 1 ππππβ1β¦0 00 β¦ 0
β΄ ππext = π₯π₯ππβ1 β¦ π₯π₯ππβ1 π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 00 β¦ 0
If X=2n, we can directly prove it.
21
Arithmetic Shift Operations
β’ Derivation of the extension of the oneβs complement ππ = ππππβ1β¦0 = {π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0}
If X>0, it is the same as the signed-magnitude case. If X<0,
ππ = ππππβ1β¦0 = π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 βππ = {ππππβ1β¦0}
(βππ)ext= 00 β¦ 0 ππππβ1β¦0 00 β¦ 0 β βππ ext = 00 β¦ 0 ππππβ1β¦0 00 β¦ 0 = 11 β¦ 1 ππππβ1β¦0 11 β¦ 1
β΄ ππext = π₯π₯ππβ1 β¦ π₯π₯ππβ1 π₯π₯ππβ1, π₯π₯ππβ2, β¦ , π₯π₯1, π₯π₯0 π₯π₯ππβ1 β¦ π₯π₯ππβ1
top related