0% found this document useful (0 votes)
21 views

micro operations

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

micro operations

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Microoperations

• Microoperations are classified into four


categories:
– Register transfer microoperations (data moves
from register to register)
– Arithmetic microoperations (perform arithmetic
on data in registers)
– Logic microoperations (perform bit
manipulation on data in registers)
– Shift microoperations (perform shift on data in
registers)

Arithmetic Microoperations
• Unlike register transfer microoperations,
arithmetic microoperations change the information
content.
• The basic arithmetic microoperations are:
– addition
– subtraction
– increment
– decrement
– shift
Arithmetic Microoperations (continued)

• The RTL statement:


R3 ← R1 + R2
indicates an add microoperation. We can similarly
specify the other arithmetic microoperations.
• Multiplication and division are not considered
microoperations.
– Multiplication is implemented by a sequence of adds
and shifts.
– Division is implemented by a sequence of substracts
and shifts.

Arithmetic Microoperations

Symbolic Description
Designation
R3 ← R1 + R2 Contents of R1 plus R2 transferred to R3
R3 ← R1 – R2 Contents of R1 minus R2 transferred to R3
R2 ← R2 Complement contents of R2 (1’s comp.)
R2 ← R2 + 1 2’s complment contens of R2 (negate)
R3 ← R1+R2 + 1 R1 plus 2’s comp. of R2
R1 ← R1 + 1 Increment content of R1 by 1
R1 ← R1 - 1 Decrement content of R1 by 1
Binary Adder
• We implement a binary adder with registers to
hold the data and a digital circuit to perform the
addition (called a binary adder).
• The binary adders is constructed using full adders
connected in cascade so that the carry produced by
one full adder becomes an input for the next.
• Adding two n-bit numbers requires n full adders.
• The n data bits for A and B might come from R1
and R2 respectively

4-Bit Binary Adder

B3 A3 B2 A2 B1 A1 B0 A0

C3 C2 C1
FA FA FA FA C0

S3 S2 S1 S0
C4
Adder-Subtracter
• Subtracting A – B is most easily done by adding
B’ to A and then adding 1.
• This makes it convenient to combine both addition
and subtraction into one circuit, called an adder-
subtracter.
• M is the mode indicator
– M = 0 indicates addition (B is left alone and C0 is 0)
– M = 1 indicates subtraction (B is complement and C0 is
1).

4-Bit Adder-Subtractor
B3 A3 B2 A2 B1 A1 B0 A0

C3 C2 C1
FA FA FA FA C0

S3 S2 S1 S0
C4
Binary Incrementer
• The binary incrementer adds 1 to the
contents of a register, e.g., a register storing
0101 would have 0110 in it after being
incremented.
• There are times when we want incrementing
done independent of a register. We can
accomplish this with a series of cascading
half-adders.

4-Bit Binary Incrementer


A3 A2 A1 A0 1

x y x y x y x y

HA HA HA HA

C S C S C S C S

C4 S3 S2 S1 S0
Arithmetic Circuit
• We can implement 7 arithmetic micro-
operations (add, add with carry, subtract,
subtract with borrow, increment, decrement
and transfer) with one circuit.
• We provide a series of cascading full adders
with Ai and the output of a 4x1 multiplexer.
– The multiplexers’ inputs are two selects, Bi, Bi’,
logical 0 and logical 1.
– Which of these four values we provide
(together with the carry) determines which
microoperation is performed.

Arithmetic Circuit Function Table


Select Input Output
S1 S0 Cin Y D = A + Y + Cin Microoperation
0 0 0 B D =A+ B Add
0 0 1 B D =A+ B+ 1 Add with Carry
0 1 0 B D =A+ B Subtract with Borrow
0 1 1 B D =A+ B+ 1 subtract
1 0 0 0 D =A Transfer A
1 0 1 0 D =A+ 1 Increment A
1 1 0 1 D =A– 1 Decrement A
1 1 1 1 D =A Transfer A
cin 4-Bit Arithmetic Circuit
S1
S0
A0 X0 C0
S1
S0 FA D0
B0 0
4x1
Y0 C1
1 MUX
2
3
A1 X1 C1

S1 FA D1
S0
4x1 Y1 C2
B1 0
1 MUX
2
3
X2 C2
A2
FA D2
S1
S0 Y2 C3
B2 0
4x1
1 MUX
2 X3 C3
3
A3 FA D3
S1
S0 Y3 C4
B3 0
4x1
1 MUX cout
0 2
3

The Microoperations of the Arithmetic


Circuit
• When S1S0 = 00, the MUX provides B. The result
is Add (for Cin = 0) or Add With Carry (for Cin =
1).
• When S1S0 = 01, the MUX provides B’. The result
is Subtract with Borrow (for Cin = 0) or Subtract
(for Cin = 1).
• When S1S0 = 10, the MUX provides 0. The result
is Transfer (for Cin = 0) or Increment (for Cin =
1).
• When S1S0 = 11, the MUX provides 1. The result
is Decrement (for Cin = 0) or Transfer (for Cin =
1).
Logic Microoperations
• Logic microoperations are binary operations
performed on corresponding bits of two bit strings.
• Example: P: R1 ← R1 ⊕ R2
1010 Content of R1
1100 Content of R2
0110 Content of R1 after P = 1
• Special Symbols used for logic operations:
∧ - AND ∨ - OR ⊕ - XOR
This avoids confusing AND with multiplication,
OR with addition, etc.

Truth Tables for 16 2-Variable Function

x y F0 F1 F2 F3 F4 F5 F6 F7

0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 1 1 1 1

1 0 0 0 1 1 0 0 1 1

1 1 0 1 0 1 0 1 0 1
Truth Tables for 16 2-Variable Function (continued)

x y F8 F9 F10 F11 F12 F13 F14 F15

0 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 1 1 1 1

1 0 0 0 1 1 0 0 1 1

1 1 0 1 0 1 0 1 0 1

Sixteen Logic Microoperations

Boolean Function Microoperation Name

F0 = 0 F←0 Clear
F1 = xy F←A∧ B AND
F2 = xy’ F ←A ∧ B
F3 = x F ←A Transfer A
F4 = x’y F ←A ∧ B
F5 = y F ←B Transfer B
F6 = x ⊕ y F ←A ⊕ B Exclusive-OR
F7 = x + y F←A ∨ B OR
Sixteen Logic Microoperations (continued)

Boolean Function Microoperation Name

F8 = (x + y)’ F←A∨ B NOR


F9 = (x ⊕ y)’ F←A⊕B Exclusive-NOR
F10 = y’ F←B Complement B
F11 = x + y’ F←A∨ B
F12 = x’ F←A Complement A
F13 = x’ + y F←A∨ B
F14 = (xy)’ F←A∧ B NAND
F15 = 1 F ← all 1’s Set to all 1’s

One Stage of Logic Circuit

S1 S0 Output Operation
S1
S0
0 0 E =A^ B AND
Ai 4x1
0 MUX
Bi 0 1 E =A∨ B OR
1
1 0 E =A⊕ B XOR
2

1 1 E = A’ Complement
3
Logic Applications
• Logic Operations allow us to manipulate
individual bits in ways that we could not do
otherwise.
• These applications include:
– selective set
– selective complement
– select clear
– mask
– insert
– clear

Selective-Set

• Selective-set sets to 1 the bits in register A


where there is a corresponding 1 in register
B:
1010 Content of A before
1100 Content of B (logic operand)
1110 Content of A after
• This is done using the logical-OR operation.
Selective Complement

• Selective-complement complements the bits


in register A where there is a corresponding
1 in register B:
1010 Content of A before
1100 Content of B (logic operand)
0110 Content of A after
• This is done using the exclusive-OR
operation.

Selective Clear

• Selective-clear clears to 0 the bits in register


A where there is a corresponding 1 in
register B:
1010 Content of A before
1100 Content of B (logic operand)
0010 Content of A after
• This is done using the logical-AND
operation and B’.
Mask

• Mask clears to 0 the bits in register A where


there is a corresponding 0 in register B:
1010 Content of A before
1100 Content of B (logic operand)
1000 Content of A after
• This is done using the logical-AND
operation and B.

Insert

• Insert inserts a new value into a set of bits in register A.


• First we mask out the upper four bits (in our 8-bit value):
0110 1010 Content of A before
0000 1111 Content of B (logic operand)
0000 1010 Content of A after
• In the second step, we insert the new values:
0000 1010 Content of A before
1001 0000 Content of B (logic operand)
1001 1010 Content of A after
• The masking is done using an AND and the insertion is
done with an OR.
Clear

• Clear compares A and B and produces all 0s


if the numbers are equal. the bits in
register A where there is a corresponding 0
in register B:
1010 Content of A before
1010 Content of B (logic operand)
0000 A ←A ⊕ B
If A& B are both 1 or both 0, this produces 0.This
is done using the logical-AND operation and B.

Shift Microoperations
• Shift microoperations are used for serial transfer
of data and are used in conjunction with arithmetic
and logic operations.
• The register contents can be shifted to the left or to
the right.
• There are three types of shift operations:
– Logical shifts transfers 0 through the serial input, with
all the bits involved in the shifting.
– Arithmetic shifts multiplies (or divides) a signed
number by 2.
– Circular shifts circulates the bits of the register around
the two ends with no loss of information.
Shift Microoperations
Symbolic Designation Description
R ← shl R Shift-left register R
R ← shr R Shift-right register R
R ← cil R Circular shift-left register R

R ← cir R Circular shift-right register R

R ← ashl R Arithmetic Shift-left register R

R ← ashr R Arithmetic Shift-right register R

Arithmetic Shift Right

Rn-1 Rn-1 R1 R0

Sign
bit
4-Bit Combinational Circuit Shifter
Select
0 shift right
1 shift left
S
Serial input 0 MUX H0
IR 1

S
A0
0 MUX H1
1

A1
S
0 MUX H2
1
A2

S
A3
0 MUX H3
Serial input 1
IL

Arithmetic Logic Shift Unit


• Instead of having individual registers
performing the various microoperations,
computers use an Arithmetic Logic Unit
which combine these functions.
S3
One Stage of Arithmetic Logic Shift Unit
S2
Ci
S1

S0 Di
One stage
of Arithmetic
Circuit Select

0 4x1 Fi
Ci+1 1 MUX
2
3

One stage
of Logic Ei
Circuit
Bi
Ai

Ai-1 shr
Ai+1 shl

Function Table for Arithmetic Logic Shift Unit

Operation Select
S3 S2 S1 S0 Cin Operation Function
0 0 0 0 0 F =A Transfer A
0 0 0 0 1 F=A+ 1 Increment A
0 0 0 1 0 F=A+ B Addition
0 0 0 1 1 F=A+ B+ 1 Add with Carry
0 0 1 0 0 F=A+ B Subtract with Borrow
0 0 1 0 1 F=A+ B+ 1 Subtraction
0 0 1 1 0 F=A–1 Decrement A
0 0 1 1 1 F=A Transfer A
Function Table for Arithmetic Logic Shift Unit

Operation Select
S3 S2 S1 S0 Cin Operation Function
0 1 0 0 x F=A∧B AND

0 1 0 1 x F=A∨ B OR

0 1 1 0 x F=A⊕ B XOR

0 1 1 1 x F=A Complement A
1 0 x x x F = shr A Shift-Right A into F
1 1 x x x F = shl A Shift-Left A into F

You might also like