CSC2201 - Class Notes
CSC2201 - Class Notes
NUMBER FORMATS
Integer Formats
Human beings are trained to understand decimal system.
e.g. 5437 = 5000 + 400 + 30 + 7 = (5 * 103) + (4 * 102) + (3 * 101) + (7 * 100)
In Binary
11011 = (1 * 24) + (1 * 23) + (0 * 22) + (1 * 21)+ (1 * 20) = 16 + 8 + 0 + 2 + 1 = 2710
Hexadecimal
It has 15 digits 0 – 15
Decimal Hexadecimal Binary Octal
0 0 0000 0
1 1 0001 1
2 2 0010 2
3 3 0011 3
4 4 0100 4
5 5 0101 5
6 6 0110 6
7 7 0111 7
8 8 1000 10
9 9 1001 11
10 A 1010 12
11 B 1011 13
12 C 1100 14
13 D 1101 15
14 E 1110 16
15 F 1111 17
16 10 10000 20
411 / 16 = 25 rem 11 B
25/16 = 1 rem 9 9 => 41110 = 19B16
Octal System
Each octal digit can be represented by a unique combination of three
bits.
e.g. to convert 1100110112 to base 8 first covert to decimal then perform
successive divisions of 8 on the decimal number.
1100110112 = 41110
411/8 = 51 rem 3
51/8 = 6 rem 3 => 1100110112 = 41110 = 6338
13 = 1101 1 0 1 1
.6875 * 2 = 1.375
.375 * 2 = 0.75
.75 * 2 = 1.5
.5 * 2 = 1.0
=> 13.6875 = 1101.1011
Similarly 150.312510 = 10010110.01012
Similarly
5.1458 = 101 001 100 101 = 0101 0011 0010 1000 = 5.32816
Just like in Base 10 the decimal point can be moved by multiplying
by the appropriate power of the base.
e.g. 101.11 = 1011 * 2-2 = 0.1011 * 23
Binary Arithmetic
110101 101101 10110 11111101 / 1011
+ 10010 -100110 * 1011
1000111 111
BA41 BA41
+ 14AF -14AF
CEF0 A592
We usually estimate high powers when the groups are large where n
may be 24, 32, 64 etc.
210 = 1024 = 103
e.g. 236 = 26.230 = 26(210)3 = 26(103)3 = 64 * 109
If the result of any operation does not fit into the number of bits reserved
for it an overflow is said to occur.
All the 4 arithmetic operations can cause an overflow.
360 + 720 – 300 = 360 + (720 – 300) and (360 + 720) – 300
SIGNED INTEGERS
Normally a negative number is written by writing its magnitude and then
placing a negative sign to the left of the magnitude of the number.
A computer element can take only a 0 or 1; so a minus sign must
be represented by a 0 or a 1.
If a number is to be stored in n bits, the magnitude is placed in the
n – 1 right most bits and the MSB represents the sign.
A negative number is represented by a 1 and a positive number by
a 0.
Such a format is called the Sign Magnitude Format.
In this format there is a difference between – 0 and + 0 but they both
have the same magnitude.
To add two sign magnitude numbers, we follow the usual addition rules.
If the sign differs we subtract the smaller number from the larger
number and give the result the sign of the larger number.
If the signs are the same we add them and we give the result the
same sign.
+5 + -7 = 10000111 -5 + -7 = 10000101
- 00000101 - 10000111
10000010 (-2) 10001100 (-12)
COMPLEMENTS
They are used to simplify subtraction & logical operations.
Consider numbers –1000 to 999 and let X be any number in that range.
The 4 digit 10’s complement of X is defined as 10 4 – X
If X = 0572, the 4 digit 10’s complement of X is 10000 – 0572 = 9428
(i) A 9 in the most significant Digit indicates that the sum is negative.
If the magnitude is wanted the 10’s complement of the sum is taken.
i.e. 104 – 9832 = 0162
(ii) N.B. The most significant digit is reserved to represent the sign
leaving 3 digits for the magnitude.
2’s Complement
The d digit 2’s complement of a d bit binary integer N is equal to
2d – N where the subtraction is done in binary.
=> The eight bit 2’s complement of an 8 bit binary number 000000101
is 100000000 – 00000101 = 11111011
N.B. Note the difference between the sign magnitude representation and
the 2’s complement representation.
also helps to reduce leading and trailing zeros. It is written in the form
Fraction * baseexponent
e.g in base 10 0.000000357 = 0.357 * 10-6 , 625000000 = 0.625 * 109
The fraction part is sometimes called the significand and the exponent
the characteristic.
A floating point format is designated by:
(i) The base
(ii) The number of bits reserved for the exponent
(iii) The number of bits reserved for the fraction
(iv) The method for storing the sign and magnitude of
the exponent
(v) The method for storing the sign and magnitude of
the fraction.
(vi) The order in which the two signs and the two
magnitudes are to occur.
The combination of the above factors for a given computer depends
upon the designer.
i. The resolution (number of bits reserved for the magnitude of the fraction) that
the system must be able to accommodate and
ii. The largest and smallest non-zero magnitude that the system must
be able to handle.
If base 2 is assumed the largest number that can be stored using a
N
floating point format is approximately 2 2-1 where N = number of bits
reserved for the exponent.
Steps in Arithmetic
1. Pre-normalisation if the operands are not normalized.
2. Alignment
3. Post normalization of the result.
Examples
(1) 826013AC Alignment 826013AC
+8040AB04 82102AC1
82703E6D
Examples
(1) 40700000 (2) 40C00000 No Alignment
+C0580000 + C0800000
40180000 3EC00000 40C00000 40000000
Hardware designed for BCD is more complex than that for binary
formats. E.g. 16 bits are used to write 8159 in BCD while only 13
bits (1111111011111) would be required in binary.
Numbers in text data formats must be converted from text form to binary
form. Conversion is usually done by converting text input data to BCD,
converting BCD to binary, do calculations then convert the result to BCD,
then BCD to text output.
To convert a BCD number to binary, multiply consecutively by 10 =
10102
e.g. 82510 = 1000 0010 0101
((1000 * 1010) + 0010)1010 +0101 = 1100111001.
The reverse conversion is done by successive divisions by 10 (1010 2)
then using the 4 bit remainder as the BCD digit, e.g. Using the above
example:
1100111001/1010 = 1010010 rem 0101; 1010010/1010 = 1000 rem 0010
1000 0010 0101
Because only 10 of the 16 bit combinations are needed to represent the
decimal digits, any 2 of the remaining combinations can be used to
represent positive and negative signs.
The four bit combinations representing the sign can appear either to the
left or to the right of the combinations.
The signs often used are 1100 for positive and 1101 for negative.
e.g. –34 = 0011 0100 1101; +159 = 0001 0101 1001 1100
ALPHANUMERIC CODES
It is the assignment of bit combinations to the letters of the alphabet,
decimal digits 0 – 9, punctuation marks and several special characters.
The two most prominent Alphanumeric Codes are:
14
EXPRESSION EVALUATION
When writing an algebraic expression we use parenthesis to
indicate the order in which the elementary operations are to be
performed.
If the ordering is specified by using parenthesis the expression is
said to be in an infix notation because the operators are placed
between their operands.
The postfix or reverse Polish Notation places operators after the
operands.
e.g.: A/(B + C) = ABC+/
(A + B) * [C * (D + E) + F] = AB+CDE+*F+*
ASCII CODE
ASCII HEX Control ASCII HEX Control ASCII HEX Control
Char Code Character Char Code Character Char Code Character
NUL 00 Null + 2B V 56
SOH 01 Start heading , 2C W 57
STX 02 Start text - 2D X 58
ETX 03 End text . 2E Y 59
EOT 04 End transmission / 2F Z 5A
ENQ 05 Inquiry 0 30 [ 5B
ACK 06 Acknowledgment 1 31 \ 5C
BEL 07 Bell 2 32 ] 5D
BS 08 Backspace 3 33 ^ 5E
HT 09 Horizontal tab 4 34 _ 5F
LF 0A Line feed 5 35 ‘ 60
VT 0B Vertical tab 6 36 a 61
FF 0C Form feed 7 37 b 62
CR 0D Carriage return 8 38 c 63
SO 0E Shift out 9 39 d 64
SI 0F Shift in : 3A e 65
DLE 10 Data link escape ; 3B f 66
DC1 11 Device control 1 < 3C g 67
DC21 12 Device control 2 = 3D h 68
DC3 13 Device control 3 > 3E i 69
DC4 14 Device control 4 ? 3F j 6A
NAK 15 Neg. acknowledge @ 40 k 6B
SYN 16 Synchronous/Idle A 41 l 6C
ETB 17 End trans. Block B 42 m 6D
CAN 18 Cancel data C 43 n 6E
EM 19 End of medium D 44 o 6F
SUB 1A Start special seq. E 45 p 70
ESC 1B Escape F 46 q 71
FS 1C File separator G 47 r 72
GS 1D Group Separator H 48 s 73
RS 1E Record separator I 49 t 74
US 1F Unit separator J 4A u 75
SP 20 Space K 4B v 76
! 21 L 4C w 77
“ 22 M 4D x 78
# 23 N 4E y 79
$ 24 0 4F z 7A
% 25 P 50 { 7B
& 26 Q 51 | 7C
‘ 27 R 52 } 7D
( 28 S 53 ~ 7E
) 29 T 54 DEL 7F Delete rubout
* 2A U 55
16
LOGIC CIRCUITS
Digital computers are based upon electronic components
whose inputs and outputs are at anyone point in one of two
possible states; the states are mostly voltage levels;
One voltage level can be denoted by a 1 and another by a 0.
If the higher voltage is associated with 1, the circuit is said to
be based upon positive logic. If the lower voltage is associated
with a 1, the circuit is said to be based on negative logic.
A variable that can take on two states e.g. (0, 1, True, false;
on/off) is called a logical variable.
A circuit whose inputs and outputs are described by logical
variables is called a logical network.
INPUTS OUTPUTS
Logical Network
Logic Gates
A combinatorial circuit with only one output is called a logic gate. They
accept logical values at their inputs and they produce corresponding
logical values at their outputs.
A table listing all the outputs for the various inputs is called a
truth table (derived from the True/ False logic in mathematics.)
All combinatorial circuits can be constructed from the
elementary logic gates.
17
1 0
Input Output
A B AB
0 0 0
0 1 0
1 0 0
1 1 1
The output is 1 if all the inputs are 1’s
.
3. The OR Gate:
A
A OR B
A+B
B
Input Output
A B A + B
0 0 0
0 1 1
1 0 1
1 1 1
A NAND B
A __
B AB
Input Output
__
A B AB
0 0 1
0 1 1
1 0 1
1 1 0
A A OR B
B _____
A+B
Input Output
____
A B A+B
0 0 1
0 1 0
1 0 0
1 1 0
The output is 1 if all the inputs are 0’s.
Input Output
A B A + B
0 0 0
0 1 1
1 0 1
1 1 0
The output is 0 if all the inputs are the same.
Input Output
19
_____
A B A +B
0 0 1
0 1 0
1 0 0
1 1 1
The output is 1 if all the inputs are the same.
C _
AC + BC
Two logic circuits are said to be equivalent if they have exactly the same
input /output relationship.
One way to prove equivalence is to compare the truth table outputs of the
two circuits.
A
_
(A + B) C
C
_ _ _ _ _
A B C B AC BC AC + BC A+B (A + B)C
0 0 0 1 0 0 0 1 0
0 0 1 1 0 1 1 1 1
0 1 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0
1 0 0 1 0 0 0 1 0
1 0 1 1 1 1 1 1 1
1 1 0 0 0 0 0 1 0
1 1 1 0 1 0 1 1 1
To try Circuits for AB(C+D) and (ABC + ABD) and their Truth Tables.
X = AB + ACD + ACEF + ACEG
A A B C D E F G
20
B
C
D
E
F
G
X
(Causes minimum delay)
BOOLEAN ALGEBRA
It is a mathematical structure that consists of a set containing only a 0
and 1, the unary operator (complementation) and the binary operation of
addition and multiplication. Subtraction and Division are not defined in
Boolean algebra. This branch of mathematics was developed by George
Boole in 1847.
Some of the equivalencies mostly frequently used in reducing Boolean Expressions
A = A
AA = A
A+A = A
A.0 = 0
A+0 = A
A.1 = A
A+1 = 1
_
A.A = 0
_
A+A = 1
AB = BA
A+B = B+A
(AB)C = A(BC)
A + (B + C) = (A + B) + C
A(B + C) = AB + AC
21
(B + C)A = BA + CA
____ _ _
A+B = AB
___ _ _
AB = A+B
_
AB + AB = A
A + AB = A
_
(A + B)B = AB
_
(A + B) (A + B) = A
(A + B) (A + C) = A + BC
A(A + B)= A
_
AB + B = A+B
_ _
AB + AB = A + B
__
AB(A + B) = A + B
e.g.
__
ABC + BC + AB
__
C(AB + B) + AB
_
C(A + B) + AB (third equivalence from the bottom)
_
AC + BC + AB
_ _
AC + (A + A)BC + AB
_ _
AC + ABC + ABC + AB
_
AC(1 + B) + AB(C + 1)
_
AC + AB
_ _ _
ABC + ABC + ABC + ABC
_ _ _
ABC + ABC + ABC + ABC + ABC + ABC
_ _ _
(A + A)BC + (B + B)AC + (C + C)AB
BC + AC + AB
Example
Suppose that a three input network is needed that will output a 1 if the majority of the
inputs are 1’s otherwise the output is zero.
A B C X
0 0 0 0 X0
0 0 1 0 X1
0 1 0 0 X2
0 1 1 1 X3
1 0 0 0 X4
1 0 1 1 X5
1 1 0 1 X6
1 1 1 1 X7
_ _ _
X3 = ABC; X5 = ABC; X6 = ABC; X7 = ABC
X = X3 + X5 + X6 + X7
_ _ _
=> ABC + ABC + ABC + ABC
BC
AC BC + AC + AB
AB
A Karnaugh map is a truth table for a single output consisting of arrays of squares
where each square corresponds to a row of a truth table.
The symbols at the top represent the variables associated with the
columns and the symbols on the left represent the variables associated
with the rows.
The value of each output for each input is put in the corresponding
square.
For each 1 in the Karnaugh map there is a corresponding miniterm in the
output’s Sum of product expression and each 0 represents a maxiterm in
the Product of Sums expression.
Two inputs Three inputs Four inputs
A AB AB
0 1 00 01 11 10 00 01 11 10
0 0 2 0 0 2 6 4 00 0 4 12 8
B C 01 1 5 13 9
1 1 3 1 1 3 7 5 CD
11 3 7 15 11
10 2 6 14 10
Example 1
A B C X Using Boolean simplification:
0 0 0 0 _ _
0 0 1 0 ABC +ABC + ABC
0 1 0 0 _ _
0 1 1 1 ABC +ABC + ABC + ABC
1 0 0 0
1 0 1 0 = AB + BC AB
1 1 0 1 00 01 11 10
1 1 1 1 0 0 0 1 0
C 1 0 1 1 0
Example 2
A B C X Using Boolean simplification:
0 0 0 0 _ _ _
0 0 1 0 ABC +ABC + ABC + ABC
0 1 0 0 _ _ _
0 1 1 1 ABC +ABC + ABC + ABC + ABC + ABC
1 0 0 0
1 0 1 1 = BC + AC + AB
1 1 0 1
1 1 1 1
AB
00 01 11 10
0 0 0 1 0
C
1 0 1 1 1
Example 3
F(A,B,C) = (0,1,2,3,7) AB
_ 00 01 11 10
A 0 1 1 0 0 _
C A + BC
BC 1 1 1 1 0
AB AB
00 01 11 10 00 01 11 10
0 1 0 1 1 _ 0 1 0 0 1
C AC C
1 1 0 0 1 1 0 1 0 0
_ _ _ __
B + AC ABC + BC
AB AB
00 01 11 10 00 01 11 10
00 0 1 1 1 00
1 0 0 1
01 0 1 0 1 01
CD CD 1 0 0 0
11 0 0 0 1 11
1 0 0 1
10 0 0 0 1 10
1 0 0 1
_ _ __ _ __ _ _ _
ABC + ACD + AB AB + BC + BD
These outputs are represented by X’s in the Karnaugh Map and they
may or may not be included in the prime implicants.
They are called Don’t Care Cases denoted by the function d(A,B,C) =
(….)
AB
00 01 11 10
00 X
01 1
CD _
11 1 AB + AC
10 X 1 1
___ _ _
It is important to include the miniterm ABCD in C but not ABCD
Example
A network is needed that will output a 1 if the binary A 3A2A1A0 is greater
than 0 and less than 4.
Assume also the inputs are controlled by a rotary switch such that only
one input can be a 1 at any given time except when the switch position
will also allow all inputs to be 1.
A3 A2 A1 A0 X A3A2
0 0 0 0 0 00 01 11 10
0 0 0 1 1 00 0 0 X X
0 0 1 0 1
0 0 1 1 X 01 1 X X X
0 1 0 0 0 A1A0
0 1 0 1 X 11 X X 0 X
0 1 1 0 X
0 1 1 1 X 10 1 X X X
1 0 0 0 0
1 0 0 1 X
1 0 1 0 X _ _
1 0 1 1 X = A1A0 + A0A3
1 1 0 0 X
1 1 0 1 X
1 1 1 0 X
1 1 1 1 0
BINARY ADDER
A circuit for adding 2 1 bit quantities is called a half adder.
27
A A B S C A B
+ B 0 0 0 0
Carry sum 0 1 1 0
1 0 1 0
1 1 0 1
A B C = AB
_ _
S = AB + AB = A + B
C
HA C S
S
Full Adder
For a 2 bit addition, addition of a higher order bit takes into account a
possible carry from the low order sum.
The adder that includes a carry input from a lower order sum is called a
Full Adder.
A B A B
FA
CO Ci
S
A B Ci S Co
0 0 0 0 0
0 0 1 1 0 Ci
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
_ _ _
Co = ABC +ABC + ABC + ABC
_ _ _
= C( AB +AB) + AB(C +C)
= C( A + B) + AB
Co S
__ _ _ __ _ _ _ __
S= ABC + ABC + ABC + ABC = A(BC + BC) + A(BC + BC)
_ ______
= A(B + C) + A(B + C) = A+ B + C
To build an adder of more bits, you just duplicate the full adders the
required number of times.
28
Such a circuit is called a Ripple Carry Adder. The carry out bit is used
as a carry in into its left neighbour. The carry into the right most bit is set
to 0.
A 4 to 1 multiplexer
29
It selects only one of the 4 inputs. It has 2 control lines to choose one of
the 4 possible inputs.
A B C D
P
X
In general for an n to 1 multiplexer, the inequality 2 K >= n must be
satisfied where k = number of control lines.
A Demultiplexer
It has 1 set of data inputs and two or more sets of outputs and a set of
control inputs whose purpose is to select the set of outputs to transmit.
The other outputs are 0.
Inputs P A X Y
0 0 0 0 _
Control 0 1 1 0 X = PA
DMUX(n) 1 0 0 0
1 1 0 1 Y = PA
outputs A
X Y
A comparator
30
A B
A1 A0 B1 B0 Xo :
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1
0 1 0 1 0
0 1 1 0 0
0 1 1 1 0
1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
Decoder
31
Circuit whose outputs are miniterms of the inputs. Exactly only one
output is a 1 at any given time.
If n is the number of inputs and m the number of outputs then 2n >= m
e.g. if the binary number on the input lines is k then output line k will be 1
and all the others will be 0’s.
A1 A2 A3 X0 X1 X2 X3 X4 X5 X6 X7
0 0 0 1 0 0 0 0 0 0 0
0 0 1 0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0 0
0 1 1 0 0 0 1 0 0 0 0
1 0 0 0 0 0 0 1 0 0 0
1 0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 0 1 0
1 1 1 0 0 0 0 0 0 0 1
A3
A2
A1
X0 X1 X2 X3 X4 X5 X6 X7
The Encoder
The opposite of a decoder. Only one input can be a 1 (activated) at a
time. Its number in binary is presented as the output.
It has 2n inputs and n outputs.
A0 A1 A2 A3 X1 X2
1 0 0 0 0 0
0 1 0 0 0 1
0 0 1 0 1 0
0 0 1 1 1 1
Inputs
A1 A2 A3 A4 A5 X1 X2 X3
1 0 0 0 0 0 0 1
0 1 0 0 0 0 1 0
0 0 1 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 0 0 1 1 0 1
X3 = A1 + A3 + A5 X2 = A2 + A3 X1 = A4 + A5
A1
32
A2
A3
A4
A5
X3 X2 X1
Code Converters
They are electronic circuits whose purpose is to convert data from one
format to another.
Data in a computer system may take on several different forms as it
changes from one format to another.
e.g. the decimal input from a keyboard calculator must be converted into
BCD using an encoder.
The CPU’s output is in BCD and the decoder translates the BCD to a
special 7 segment display code by a decoder.
7 8 9
Encoder CPU Decoder
4 5 6
1 2 3
0
Decimal
Keyboard Display
9
23 22 21 20
8 9 A
B
8 A
7 DECIMAL
D TO
7
6 BCD DECODER
6 B
5
5
4 4 C
3 3
2
2 D
1
1
0
0
a
0 A b a
c b
1 B d c
DECODER e d DISPLAY
1 C f e
g f
1 D g
f b
g
e c
d
A B C D a b c d e f g
0 0 0 0 1 1 1 1 1 1 0
0 0 0 1 0 1 1 0 0 0 0
0 0 1 0 1 1 0 1 1 0 1
0 0 1 1 1 1 1 1 0 0 1
0 1 0 0 0 1 1 0 0 1 1
0 1 0 1 1 0 1 1 0 1 1
0 1 1 0 0 0 1 1 1 1 1
0 1 1 1 1 1 1 0 0 0 0
1 0 0 0 1 1 1 1 1 1 1
1 0 0 1 1 1 1 0 0 1 1
ROM
Read Only Memory. The circuit is equivalent to a decoder that outputs all
possible miniterms of the inputs followed by an encoder.
The output combinations are permanently embedded in its circuitry and
the inputs serve to select one of these combinations. Each output is
obtained by disconnecting the OR inputs from the AND gates whose
miniterms are not to be included in the output.
Because a ROM must produce all the possible miniterms its decoder
portion is fixed by n. Its encoder portion however depends on both the
outputs and the way in which all the outputs of a decoder are used to
generate the final ROM outputs.
A1 DECODER ENCODER
A2 2n X1
miniterms Xn
An
A
These connections
B are always made
__ _ _
AB AB AB AB
These are
Selectively made
X Y Z
When a ROM is used as memory the inputs are the memory’s address
and the outputs are the contents of the address.
35
e.g. a three AND gate PLA implementation of the ROM in the previous
example.
A
X Y Z
An Even Parity bit is set if an odd number of 1’s occurs in the data bits;
otherwise it is cleared. Therefore, the total number of 1’s is even.
An Odd Parity bit is set if an even number of 1’s in the data bits occurs;
otherwise it is cleared. Therefore, the total number of 1’s is odd.
Assume that even parity is to be used and consider the situation of two
networks where the output from each network is 1 if there is an odd
number of input 1’s.
Inputs Network 1
Inputs
Network2
Output = 1 if and only if the total number of
inputs 1’s is odd.
Parity bit
Data Bits
Error Detection
1 if there is an error
0 if there is no error
Parity Bit
Data Bits
Increasing Time
Period
Astable multivibrators
The cannot maintain a fixed state but the keep on switching back and
forth between its states.
Monostable multivibrators
They can take on two states but are stable in only one of them. They can
only temporarily stay in the unstable state.
Bistable
They are stable in either of the 2 states and can therefore maintain either
state indefinetely.
39
Flip Flops
They are bistable devices i.e. they are 2 state devices in nature. They
assume one of the 2 possible states and they will maintain that current
state until an external excitation causes it to change state.
They are devices used in sequential networks.
The most common flip-flops are the R-S, J-K, T, and the D flip flop.
C
_
Q
R
_
R S Q+ Q+
S FF Q Q 0 0 Q- Q-
C _ _ 0 1 1 0
R Q Q 1 0 0 1
1 1 - -
clock becomes 1. When the clock is high (i.e. = 1) the output follows the
changes in the inputs.
R and S = 0 => no changes in outputs.If S is pulsed, Q will be set
_
(becomes 1) regardless of its previous state and Q will be cleared. =>
_
(becomes 0). If R is pulsed, Q is cleared (or reset) and Q will become 1.
S
Q
_
Q
If the clock input is constant, the outputs will follow the changes in the
inputs at all times.
All clocked flip flops that react to their inputs anytime C = 1 are called
latches.
The R-S flip-flop is called a latch because it uses the clock inputs to
determine whether or not the inputs will be recognised.
If a flip-flop changes only at the very beginning (or the very end) of a
clock pulse it is called an edge triggered flipflop. They change state
only when there is a 0 to 1 transition at C (+ve edge triggered) or a 1 to 0
transition at C (-ve edge triggered)
41
J Q
S
C C _
R Q
K
_
J K Q+ Q+
J FF Q _
C _ 0 0 Q- Q-
K Q 0 1 0 1
1 0 1 0
_
1 1 Q- Q-
The J-K flip –flop is constructed from an edge triggered R-S flip-flop
otherwise the C=J=K=1 state would be unstable.
A modification of the J-K flipflop is the master-slave J-K flip-flop. The
master responds to the +ve level of the clock ; the slave responds to the
–ve level of the clock.
By properly adjusting the trigger levels on the master and slave the slave
can be disconnected from the master while the master is being set and
the master can be disconnected from the inputs while the slave is being
reset.
42
J
S S
C C C
R R
K
It has 2 inputs, a clock input and an input labelled D such that the Q
output is equal to the D input whenever the clock input is set to 1;
otherwise it is not affected by the D input.
D S
Q D FF
C
C _
R Q C
_
D Q+ Q+
0 0 1
1 1 0
Latch Q
D FF
Preset
J
C
C Clear
K
Clear
REGISTERS
A number of flipflops placed in parallel to form several bits of storage.
Each flip flop is capable of storing 1 bit of information. Registers are
used anywhere in the computer where it is necessary to store a number
of bits.
e.g. a 4 bit register constructed from four D flipflops
D3 D2 D1 D0
D Q D Q D Q D Q
_ _ _ _
C Q C Q C Q C Q
Load
Read
Q3 Q2 Q1 Q0
Shift registers
Frequently it is necessary to shift the bits in a register either to the left or
to the right. A register that is capable of performing this function is called
a shift register.
Shifting bits is necessary because some registers must be able to re-
arrange their contents. e.g. if the flip flops in an 8 bit register contain
0 1 1 0 0 1 0 1 and a 1 bit left shift operation is performed, the
new contents of the register will be 1 1 0 0 1 0 1 0.
After a 1 bit right shift the new contents would be 0 0 1 1 0 0 1 0
For the left shift the left most bit is lost and 0 is inserted on the right.
If the left most bit is brought around and put in the right bit during a left
shift, or the right most bit is put in the left bit during a right shift the
operation is called a rotation.
The content of the accumulator is rotated left one position through the
carry flag. The low order bit is set equal to the carry flag and the carry
flag is set to the value shifted out of the high order bit position.
0 0 0 1 0 1 1 1
E.G
Consider initially A = 01101001 and the carry flag (c) = 1
RLC 11010010 RRC 10110100
RAL 11010011 RAR 10110100
Serial input is one for which the input arrives 1 bit at a time, and each
time a bit arrives, the register is shifted by 1 to accommodate the new
bit.
A parallel input is one for which the inputs are all loaded at the same
time.
Serial and parallel outputs are similarly defined.
Shift registers are used in
Interfaces for changing the form of data that are to be transmitted
or are being received.
Processing elements (microprocessors) for performing packing,
unpacking, bit searching and arithmentic operations.
Data Transmission
Shift registers are used most importantly in converting different types of
data communications.
Most computers include 2 types of binary data transmission.
If n bits are to be transmitted they could be sent simultaneously over n
signal paths. This is called parallel data transmission.
Alternatively they could be sent one after the other over 1 signal path.
This is called Serial Data transmission.
In parallel transmission, the number of lines employed is greater than the
number of bits. The extra lines are the control lines that are used by the
transmitting device to signal to the receiving device when data is ready
to be read and the receiving device to signal to the transmitting device
that the data has been read.
The passing back and forth of signals on the control lines during
transmission is called handshaking.
48
Sometimes one of the control lines transmits clock pulses and the timing
of all the other signals is controlled by these pulses. Data transmission in
this case is said to be synchronous.
A transmission that is not controlled by a common clock signal is said to
be asynchoronous.
In serial transmission data is sent over a single line in sequential fashion.
For each character the transmitter and receiver divide the period of time
used to transmit data into sub intervals. One subinterval is a bit.
Control lines may again be used for handshaking or synchronisation.
Serial transmission is often made over a single pair of lines and the
beginning and end of transmission are marked by special bits called a
start bit, a stop bit and parity bits.
A character transmitted in the asynchronous serial mode consists of the
following 4 parts:
1 A start bit
2 Five to 8 data bits
3 An optional even / odd parity bit
4 1 or 2 stop bits.
A timing diagram to transmit an ASCII character E = 45 with 1 start bit and 1 stop bit
1 0 1 0 0 0 1 0
Start bit Data bits Stop bit
At the end of each character the signal always goes to a logical 1 for the
stop bit. It remains 1 until the start of the next character which begins
with a start bit at logical 0.
The logical 1 and logical 0 are respectively knows as the mark and
space.
49
Disadvantages
More wires (or communication channels) are needed.
D0 D1 D2 D3
Serial D Q D Q D Q D Q
Input
_ _ _ _
Clock C Q C Q C Q C Q
clear clear clear clear
Reset
D0 D1 Parallel Input D2 D3
Reset
Binary Counters
They are circuits used to count and store the number of pulses arriving
at its input.
Counters are found in almost all equipment containing digital logic.
They count the number of occurrences of an event and they are useful
for generating timing signals to control the sequence of operations in
digital computers.
A counter that follows the binary number sequence is called a binary
counter. An n bit binary counter is a register of n flip flops and associated
gates that follows a sequence of states according to the binary count of
n bits from 0 to 2n – 1
e.g. a 4 bit counter capable of counting from 0000 through 1111.
FF FF FF FF
Q Q Q Q
Enable Input T _ T _ T _ T _
Q Q Q Q
clear clear clear clear
Reset
D Q D Q Q D
_ _ _
Clock C Q C Q Q C
clear clear clear
Reset
FA
Carry in
Carry out
S
52
Because carries and borrows must be saved until the next bit arrives,
these circuits must have memories. They must be sequential.
A serial adder is a FA with D flip flops in three input lines.
The carry out output is fed back into the carry in flipflop so that it will
provide the carry in for the next bit.
The flipflops must be reset to 0 and the lower order bits must be
received first.
Driver
Optional
IEEE standard tristate
Output symbol
53
A tristate driver has two inputs, a data input and a control input. When
the control input is 1, the output is the same as the input (or the
complement of the input if the driver is also the inverter); when the
control input is 0 the input is disconnected from the output (the high
impedence state).
The fourth problem can be solved by using a wire-ORed gate (open gate
collector) whose output can be directly tied to the outputs of other wire-
ORed gates without damaging any gate.The state at the common point
is 1 if all the gate outputs would normally be 1; otherwise it is a zero. A
resisitor called a pull up resisitor is placed between the common output
and the state 1 voltage.
1
Pull up resistor
A
A+B
B
If the current state is S2 and the input is 01, then the new state will be
S0.
10,11 00,01,11,10
S0 00,01 S1
001 010 01
00 S4
01,00 11 10 00 111
11 01
01
00 S2 S3 10
55
011 100
Information in the state table and output tables can be combined into a
state diagram where circles represent the states and outputs and the
arrows represent the transition between states.
Example:
The state table, output table and state diagram of a network consisting
of only one J-K flip flop
State table
JK Output Table
00 01 11 10 X
S0 S0 S0 S1 S1 S0 0
S1 S1 S0 S0 S1 S1 1
S0 corresponds to Q = 0 S1 to Q = 1
00,10
00,01 10,11
S0 S1
0 1
01,11
Delays
No electronic circuits react instataneously whether they are
combinatorial or not. The length of the delay depends upon the
resistances and capacitances built within the circuits.
Sometimes delays are undesirable, other times they are desirable such
that if natural delays are not enough special circuits called delay
devices are included in a design to create the required delay.
For a delay device the output is the same as the input except that the
output occurs at a later time.
Amount of delay is referred to as the delay time.
The amount of time it takes for a logic gate’s or flipflop’s output to reflect
its inputs is called its switching time and the propagation delay is the
time it takes electromagnetic signals to travel through the circuit and
links.
If 2n inverters are used to build a delay device then the delay time = 2n *
switching time of the inverter.
(Read Timing considerations and output devices)
Disadvantages:
1. Because of the small size of the IC’s transistors, the amount of
power that an IC can output may be small.
2. Because of the small surface area, special means may be
needed to dissipate the heat generated by the IC.
The microprocessor
At the centre of all operations is the MPU (Microprocessor Unit). In a
microcomputer the CPU is the microprocessor. Its purpose is to
Decode the instructions and use them to control the
activities within the system
It also performs the arithmetic( + , -, /, *) and logical
(>,>=,<,<=, =, =!) computations.
Memory
Stores both data and instructions that are currently being
used. Memory is broken down into modules where each module
contains several thousand locations.
Each location is associated with an identifier called a
memory address.
N.B. Both programs and data although they can be stored on mass
storage devices they must be transferred to memory first.
System Bus.
A set of conductors that connect the CPU to its memory and I/O devices.
The bus conductors are normally separated into 3 groups:
1. The Data Lines: for transmitting information
2. Address Lines: Indicate where information is to come from or
where it is to be placed.
3. Control Lines: To regulate the activities on the bus.
Interface
Circuitry needed to connect the bus to a device. It matches the electrical
characteristics of the device to those of the bus.
The Memory interfaces are incorporated within the memory’s control
activity. consist of logic
Needed to decode the address of the memory location being
accessed.
Buffer data onto/off the bus.
Contain circuitry to perform memory reads or write.
Processing Processing
Element Element
System Bus
THE CPU
Factors that must be considered when learning about any CPU are
1. Microprocessor Architecture:The arrangement of registers in the
CPU, number of bits in the address and data buses etc.
2. Instruction Set: Listing of operations the microprocessor can
perform:
Transfering data
Arithmetic and logical operations
Data testing
Branching instructions
I/O operations
3. Control Signals: Outputs that direct other IC’s e.g. ROMS and I/O
ports when to operate.
4. Pin Functions: gives details about special inputs and outputs of the
microprocessor.
5. Minimal System: how other devices are connected to the
microprocessor.
A typical CPU consists of the control unit which contains the following
registers:
1. The Program Counter (PC) :It holds the address of the main
memory location from which the next instruction is to be fetched.
2. Instruction Register (IR) Receives the instruction when it is brought
from memory and holds it while it gets decoded and executed.
64
Instruction Register
Stack pointer
Arithmetic
registers
Bus
Control
Unit Arithmetic/Logic Unit
T Branch F
Instruction?
T Execute the
Conditional Instruction
Branch?
Examine
PSW
F
T Condition F
Met?
Set PC to Branch
Address
Control Memory
66
Working Registers
They are Arithmetic registers or accumulators and address registers.
(i) Arithmetic Registers: They temporarily hold the operands and the
result of the arithmetic operations.
Accessing a register is faster than accessing memory. If several
operations are tobe performed it is better to have the operands in
registers than in memory and return only the result to memory. The
more arithmetic registers a CPU has the faster it can execute
computations.
(ii) Address Registers: for addressing data and instructions in main
memory.
If a register can be used for both arithmetic operations and addressing it
is then called a general purpose register.
Arithmetic/Logic Unit
It performs arithmetic and logical operations on the contents of the
working registers, the PC, memory locations etc.. It also sets and clears
the appropriate flags.
MEMORY
A byte: a group of 8 bits
A nibble: a group of 4 bits
A word: a group of 2,3, or 4 bytes depending on the computer and its
system bus structure.
67
Byte Ordering
Bytes in a word can be numbered from left to right or from right to left.
Big Endian: numbering from left to right.
Little Endian: numbering from right to left: This is the numbering adopted
by Intel.
Classifications of memory
68
I/O INTERFACES
All data transfers except that within the CPU itself is done over one or
more buses. All I/O devices and main memory must somehow be
connected to these buses. If there is more than one bus one bus is for
memory and the other is for the other peripherals.
If there is only one bus (Single bus architecture) the same bus is used
for both memory and I/O transfers. Most micro computers have single
buses.
Memory and peripherals are connected to these buses through
interfaces and controllers.
A controller is circuitry needed to initiate commands given to a device
and to sense the status of the device.
An interface is circuitry needed to connect the peripheral and its control
circuitry to the bus.
The interface must perform some combination of the following functions.
70
Data transfers between I/O or mass storage devices and the CPU or
memory is categorised according to the amount of data transferred.
1. Byte/Word Transfer: one byte or word is mobed by one
command. e.g. a terminal.
2. Block Transfer: A whole block of information is moved by a
single command e.g. Direct memory Access transfers which are
between memory and the peripheral.
SYSTEM BUS
Data Lines: transfer information. When communicating with memory the
information is data or instructions. With I/O or mass storage devices
information may be data, device status or commands.
71
The number of data lines determine the number of bits that can be
transferred simultaneously; they have a direct bearing on speed.
The number of data lines are used to classify a microcomputer as 8 bit,
16 bit or 32 bit.
Control Lines: control signals must be passed back and forth among the
CPU, the memory modules and the device interfaces. This information
includes:
(i) Request for Bus Usage:made by the DMA controller.
(ii) Grant for Bus usage: Given by the CPU according to the pre-
determined priority scheme.
(iii) Interrupt signals: External events require attention of the CPU.
(iv) Timing Signals: coordinating data and address transfers on the
bus.
72
EXAMPLES OF CPU’S
The Intel 8085
S Z AC P C
Accumulator (8 bits)
B (8 bits) C (8 bits)
D (8 bits) E (8 bits)
H (8 bits) L (8 bits)
General Purpose Registers
ALU
The address and data share the same bus lines and they must take
turns to use them. (They are time multiplexed). The address must
be sent first and then data is sent or received.
3. Reset Out: Indicates that the CPU is being reset. It can be used to
reset other components in the system.
4. SOD Serial Output Data Provide capability to output 1 bit at a
time.
5. SID: Serial Input Data: Provide capability to input 1 bit at a time.
6. TRAP: Causes a non-maskable interrupt. Input remains high until
sampled.
7– 9 RST7.5, RST6.5, RSR 5.5: Restart Interrupt Requests. They are
maskable interrupts.
10 INTR: Interrupt Request: A maskable interrupt which when
recognized causes the 8085 to execute an instruction provided by the
interrupting device.
11 INTA: Interrupt Acknowledge: Indicates that the INTRA has been
accepted. It can be used by an interrupting device to place an
instruction on the bus.
12 – 19 AD0 – AD7 Address Data bus. Shared by the address and data.
20. Vss – Ground
21 – 28 A8 – A15 Address bus.
30 ALE Address Latch Enable: Indicates that A8 – A15 and AD7 – AD0
represents a valid address.
31 WR Write Memory or I/O write command
32 RD Read Memory or I/O read
29, 33, 34: S0, S1, IO/M: Output Control signals. They notify peripherals
the type of machine cycle that the CPU is performing.
IO/M S1 S0 Status
0 0 1 Memory Write
0 1 0 Memory Read
0 1 1 Opcode Fetch
1 0 1 I/O Write
75
1 1 0 I/O Read
1 1 1 Interrupt Acknowledge
* 0 0 Halt
* * * Hold/Reset
35 Ready: Acknowledgement from memory or I/O
device that input data is available on the bus or output data has
been accepted.
36. RESET IN: Reset :
Resets the CPU to its initial state.
It is generated automatically when the system is turned on.
It clears the program counter to 0000H
All maskable interrupts are disabled.
37. CLK : Clock Out: It provides clock signals for all other system
components.
39.HOLD: Hold Request from the DMA Controller. It notifies the CPU
that another device wants to use the bus.
38. HLDA Hold Acknowledge: Indicates that the HOLD request
has been accepted.
The CPU relinquishes control of the buses.
40. Vcc Power supply. +5 V
T1 T2 T3 T4 T1 T2 T3 T1 T2 T3 T1 T2 T3
Op code fetch Read Program Read program Write in
Memory memory memory
In each case one of the states is used by memory. If the memory cycle
time is more than the clock cycle time memory then needs more than
one state to perform its function and a wait state is thereby introduced
to enable the memory to complete its operation.
E.g. If a clock period is 300ns and the memory access time is 700ns the
CPU will need 5 states to get 1 byte of information from memory i.e. the
usual three states plus two wait states and the total required would be
1500ns.
The LXI instruction requires three memory accesses and the number of
states required is 10. If the clock cycle time is 300ns and the memory
77
Summary of the 8085 instruction set execution times . Two possible times (e.g. 7/10)
indicates time depends on condition flag settings. First figure corresponds to no branch.
IN port 1 1 0 1 1 0 1 1
Port
An 8 bit byte is read from the input device at the specified port (up to 256
input ports can be addressed) into the accumulator.
OUT port 1 1 0 1 0 0 1 1
Port
The contents of the accumulator are sent to the output device at the
specified port. (Up to 256 input ports can be addressed).
Some microprocessors e.g. the Motorola MC 6809 do not have these
special instructions. They do not have separate I/O and memory spaces;
part of the memory space is reserved for the I/O addresses and memory
reference instructions are also used for I/O data transfer. This scheme is
referred to as memory mapped I/O.
Programmed I/O
An interface generally contains a number of registers that participate in
I/O transfers.
Typically a single I/O transfer will involve 4 registers; i.e. a status
register, 2 buffer registers and a control register.
81
The status register contains the current status of the I/O device and of
the data being transferred.
Input Error Bit
0 = error did not occur Data IN ready bit
1 = error occurred 0 = empty
1 = Full
Status Register
Data out ready bit
0 = Full
1 = empty
3 2 1 0
Control Register
In some cases there may be two status registers; one for input and one
for output.
An input or receiver buffer register receives the data from the device and
temporarily holds it until the computer is ready to accept it and an output
or transmitter buffer register receives the data from the processor and
holds it until the I/O device is ready to accept it.
If the device is not ready the program performs a loop that checks
the status repeatedly.
Before the next data transfer, the program moves data from the
accumulator to memory, increments the data byte counter, adjusts the
buffer pointer so that it points to the next memory location.
The status register contains 2 bits that indicate the status of the buffer
registers.
When data is put in the input buffer registers, bit 1 is set to 1; when data
is taken out of the buffer, bit 1 is cleared to 0.
For output, bit 0 is cleared to 0 or set to 1 when data is input or taken
from the data out buffer respectively.
No
No
Is Ready Bit Set
YES
End of
NO character
string
YES
Process data
83
The status register may contain bits that indicate whether or not errors
(e.g. parity errors) have occurred during a transfer between the interface
and the I/O device.
The error bit is set to 1 if the error occurred and it is 0 if no error
occurred.
INTERRUPT I/O
There are three types of interrupts:
1. External: These are due to signals that originate from outside the
processing unit.
2. Internal: Caused by events internal to the CPU.
3. Software Interrupts: Initiated by special instructions.
Consider a typical computer that can execute two instructions that read
the status register and check the flag in 1µs. Assume that the input-
output device can transfer information at a maximum rate of 10
characters per second. This is equivalent to 1 character every
100,000µs. Two instructions are executed when the computer checks
the flag bit and decides not to transfer information. This means that at
the maximum rate the computer will check the flag 50,000 times
between each transfer.
When a microprocessor is waiting it could be doing something useful like
processing data already in memory.
The microprocessor can be timeshared between independent routines
i.e. a background routine for computation and a foreground routine for
data transfer.
This overlapping of computation and control of I/O devices can be
accomplished via interrupt facilities.
Data ready
Causes an Return to where
Interrupt an interrupt occurred
1 1 N N N 1 1 1
The instructions to examine and modify the RST mask flags are the RIM
(Read Interrupt mask) and SIM (Set interrupt mask).
88
Input from serial Pending RST Interrupt masks for RST 5.5, 6.5
Input pin. Interrupt requests. and 7.5. 1 indicates interrupt is
1 is pending, 0 blocked, 0 interrupt is allowed.
No request
Interrupt Enable flag
1 implies interrupt facility
is enabled and 0 indicates
disabled.
It selectively sets the masks for the RST interrupt requests according to
the contents of the accumulator.
89
To change the RST 5.5 – RST 7.5 mask bits, bit 3 must be 1.
E.g. to disable RST 5.5 and RST 7.5 requests and to enable RST 6.5
the following code could be used.
MVI A, 0D
SIM
EI
Polling
Several devices may share one interrupt vector. The 8085 has only 12
interrupt vectors, 8 for INTR requests, 3 for RST requests and 1 for the
TRAP request. The device that generates an interrupt must be identified
before it can be serviced because several devices can generate the
same interrupt. This process is called Polling.
It is done by checking the Interrupt Request Register to find which bit
has been set to 1 or by checking the interrupt bit in each of the device’s
status register.
An Interrupt Request Register has interrupt request lines from several
devices connected to it.
If a device requests for an interrupt, the device’s corresponding bit in the
Interrupt Request Register is set to 1.
90
By transferring data directly between memory and the device the transfer
rate can be increased.
Because the microprocessor is bypassed, this transfer is called DMA or
Direct Memory Access.
DMA is achieved when an interface or logic associated with the interface
is able to take control of the system bus and make the data transfer
directly to or from memory.
When a DMA transfer is initiated, a DMA module controls the actual
transfer of data between memory and an external device without
intervention of the microprocessor.
The logic that controls the system bus during DMA transfer is called a
DMA controller.
The CPU normally has control of the bus but the DMA controller can
gain control by sending a bus request to the CPU.
After receiving the bus request and completing the current bus transfer,
the CPU turns supervision of the bus over to the DMA controller by
sending a bus grant to the controller.
After the grant the controller supervises the direct transfer of data
between memory and the interface.
The act of taking control of the bus and performing a DMA transfer is
called Cycle Stealing.
Sometimes both the control and status registers are combined into
1.
Memory
I/O or mass
Bus Interface storage element
Control
Logic
System Bus
DMA DMA
Bus Request ack. Req.
Bus Grant
DMA Controller
Transfer Complete
Status
Buffer Pointer
Control
DO
Input / Output
Interrupt on Completion
One of the bits in the control register is the DO bit. It is set at the very
end of the initialization stage and when it is set the transfer state begins.
If the Interrupt on Completion bit is not set a program must test the
Transfer Complete Status bit to determine if the entire block transfer is
complete.
As with programmed I/O the program could enter into a loop to test the
transfer complete bit over and over until it is set.
The completion stage consists of executing the completion routine which
does error checking.
The error bits in the status register of a block transfer indicate errors in
the whole block. Parity bits could indicate only one parity error.
In addition to or in place of having a parity bit associated with each byte,
some information is generated at the end of the block to indicate error
94
Delimiting Flags
The header contains identifying and descriptive information (e.g. length
of the block) that may be used by the completion routine.
A termination character and delimiting flags mark the beginning and
end of the block.
CPU
Memory Bus
Peripheral Devices
Memory PD PD PD PD
Memory
IOP
I/O Bus
95
IOP’s are assigned a task of communicating directly with all the I/O
devices. Each IOP takes care of input and output tasks and it relieves
the CPU from tasks involved in I/O transfers. A processor that
communicates with remote terminals over telephone and other
communication media in a serial fashion is called a Data
communication processor (DCP).
I/O Processing
The IOP is designed to handle details of I/O processing. It can fetch and
execute its own instructions. Apart from facilitating I/O transfers it can
also execute other tasks like arithmetic, logic, branching and code
translation. The CPU initiates the I/O program and from there the IOP
operates independently of the CPU.
Data is gathered in the IOP at the device rate while the CPU is executing
other functions. After the data is assembled into a memory word, it is
transferred from the IOP directly into memory by stealing one memory
cycle from the CPU. Output is similarly performed.
Apart from initiating the data transfer the CPU also tests the I/O status
conditions needed for making decisions on various I/O activities. The
IOP asks for CPU attention by means of an interrupt. It also responds to
CPU requests by placing a status word in a prescribed memory location
to be examined later by the CPU. When an I/O operation is required the
CPU informs the IOP where to find the I/O program and then leaves the
transfer details to the IOP.
96
CPU-IOP Communication
Send instruction
to test IOP path
Transfer status word
to memory location
Continue
The CPU sends an instruction to test the IOP path. The IOP inserts a
status word in memory for the CPU to check. The bits of the status word
indicate the condition of the IOP and the I/O device. The CPU refers to
the status word in memory to decide what to do next. If it is OK the CPU
sends the instruction to start I/O transfer. The memory address received
with this instruction tells the IOP where to find its program.
The CPU now can continue with another program while the IOP is busy
with the I/O program.
When the IOP is through with the transfer it sends an interrupt request to
the CPU. The CPU issues an instruction to read the status from the IOP.
The IOP sends it status word into a specified memory location. The CPU
97