<<< Previous Arithmetic Logic Shift Unit - ALSU, Radix Conversion, Fixed Point Numbers Next >>>

________________________________________________________
Lecture No. 34
Vincent P. Heuring & Harry F. Jordan
Chapter 6
Computer Systems Design and Architecture
6.1, 6.2
Summary
·
Introduction to ALSU
·
·
Fixed Point Numbers
·
Representation of Numbers
·
Multiplication and Division using Shift Operation
·
Introduction to ALSU 29
ALSU is a combinational circuit so inside an ALSU, we have AND, OR, NOT and other
different gates combined together in different ways to perform addition, subtraction, and,
or, not, etc. Up till now, we consider ALSU as a "black box" which takes two operands, a
and b, at the input and has c at the output. Control signals whose values depend upon the
opcode of an instruction were associated with this black box.
In order to understand the operation of the ALSU, we need to understand the basis of the
representation of the numbers. For example, a designer needs to specify how many bits
are required for the source operands and how many will be needed for the destination
operand after an operation to avoid overflow and truncation.
Now we will consider the conversion of numbers from a representation in one base to
another. As human works with base 10 and computers with base 2, this radix conversion
operation is important to discuss here. We will use base c notion for decimal
representation and base b for any other base. The following figure shows the algorithm of
converting from base b to base c:
29
In our discussion we have used ALU and ALSU for the same thing. We use ALSU when the shift aspect
also needs to be emphasized.
Page 327
________________________________________________________
Example 1
Convert the hexadecimal number B316 to base 10.
Solution
According to the above algorithm,
X=0
X= x+B (=11) =11
X=16*11+3= 179
Hence B316=17910
The following figure shows the algorithm of converting from base c to base b:
Page 328
________________________________________________________
Example 2
Convert 39010 to base 16.
Solution
According to the above algorithm
390/16 =24( rem=6), x0=6
24/16= 1(rem=8), x1=8, x2=1
Thus 39010=18616
Fixed Point Numbers
Suppose we have a number with a radix point. For example, in 16.12, there are two digits
on the left side and two digits on the right of the decimal point. In this case, the radix
point is a decimal point because we suppose that given number is a decimal number.
If we have an integer, then this decimal point will be on the right most position i.e.
1612.0 and if it is in fraction then decimal will be at the left most position i.e. 0.1612
There are situations when we shift the position of the radix point. Shifting of the radix
point towards left or right is called scaling and we could have multiplication with a base
or division by a base respectively.
The following figure shows the algorithm of converting a base b fraction to base c:
Example 3
Convert (.4cd) 16 to Base 10.
Solution
F=0
F=(0+13)/16=0.8125
Page 329
________________________________________________________
F=(0.8125+12)/16=0.80078125
F=(0.80078125+4)/16=(0.3000488) 10
The following figure shows the algorithm of converting fraction from base c to base b:
Example 4
Convert 0.2410 to base 2.
Solution
0.24*2=0.48, f-1=0
0.48*2=0.96, f-2=0
0.96*2=1.92, f-3=1
0.92*2=1.84, f-4=1
0.84*2=1.68, f-5=1,...
Thus 0.2410 =(0.00111) 2
Representation of Numbers
There are four possibilities to represent integers.
1.
Sign magnitude form
2.
3.
4.
Biased representation
Sign magnitude form
·  This is the simplest form for representing a signed number
·  A symbol representing the sign of the number is appended to the left of the
number
Page 330
________________________________________________________
·
This representation complicates the arithmetic operations
·  This is the most common representation.
·  Given an m-digit base b number x, the radix complement of x is
xc = ( bm­ x) mod bm
·  This representation makes the arithmetic operations much easier.
·  The diminished radix complement of an m-digit number x is
xc'=bm -1- x
·  This complement is easier to compute than the radix complement.
·  The two complement operations are interconvertible, as
xc= ( xc'+1)mod bm
Table 6.1 of the text book shows the complement representation of negative numbers for
Table 6.2 of the text book shows the base 2 complement representation for 8-bit 2's and
1's complement numbers.
Example 5
The following table shows the decimal values in 2's complement, 1's complement, sign
magnitude, 16's complement and in unsigned form:
Multiplication and Division using Shift Operation
Page 331
________________________________________________________
Shift left and shift right are two important operations used for various purposes. One
typical example could be multiplication or division by base b. The following examples
explain multiplication and division by using shift operation.
Example 6
·  6x4
001102 x 410 =110002=2410
Overflow would occur if we will use 4 bits instead of 5 bits here.
·  60/16
01111002/1610=00000112=310
The fractional portion of the result is lost.
Example 7
·  -6x4
-6 = (11010)  2
-6x4 = (01000)  2=8 which is wrong!
using less no. of bits might change sign
So, -6 = (111010)  2
-6x4 = (101000)  2 = -24
Example 8
Multiplication and division of negative numbers
Solution
-24x2
-24= (101000)  2
-24x2= (010100)2 = 20
-24x2= (110100)2 = -12
Changing the size of the number,
24= 011000 (n=6) to 00011000 (n=8)
-24= 101000 (n=6) to 11101000 (n=8)
The following diagram shows the digit
wise procedure for adding m-digit base
b numbers, x and y:
Example 9
Unsigned addition in base 2 and
base16.
Solution
Page 332
________________________________________________________
A B 4 2 16
100011 2
+ 3 1 C 1 16
+ 011011 2
carry 0 1 0 0
carry 000110
sum  D D 0 3 16
sum  111110 2
The following diagram shows the logic
circuit for 1-bit half adder. It takes two
1-bit inputs x and y and as a result, we
get a 1-bit sum and a 1-bit carry. This
circuit is called a half adder because it
does not take care of input carry. In
order to take into account the effect of
the input carry, a 1-bit full adder is
used which is also shown in the figure.
We can add two m-bit numbers by
using a circuit which is made by