Stored Programs A look at how programs are executed CMSC 104, Lecture 06

advertisement
Stored Programs
A look at how
programs are executed
CMSC 104, Lecture 06
1
The Central Processing Unit
The CPU is the computer’s mechanism
for performing operations on data and
coordinating the sequence of these
operations.
 The CPU consists of two main parts

o The Arithmetic Logic Unit - contains
circuitry that performs operations
o The Control Unit - contains circuitry that
coordinates the machine’s activities
CMSC 104, Lecture 06
2
Registers

Since the CPU is a separate device
from main memory, it needs to have
special memory cells to use as a
temporary storage place to hold the
data it will be working with. These
memory cells within the CPU are called
registers.
CMSC 104, Lecture 06
3
Control Unit & ALU jobs


The control unit is responsible for placing
the data that’s needed in the registers,
telling the ALU which registers are being
used, and to turn on the correct circuitry in
the ALU for the desired operation.
The ALU uses the data in the indicated
registers to do the operation and places
the result in the indicated register.
CMSC 104, Lecture 06
4
CPU - Main Memory Diagram
Registers
Arithmetic
Logic
Unit
Control
Unit
Central Processing Unit
Bus
Main Memory
The number of registers varies from machine to machine
The number is a multiple of 2, typically 16 or 32.
CMSC 104, Lecture 06
5
Machine Instructions : Example 1
Add Two Numbers Stored in Memory
1) Get one value and put it in a register.
2) Get the other value and put it in a
register.
3) Activate the addition circuitry with
the registers used in steps 1 and 2
as inputs and another register
designated to hold the result.
4) Store the result in memory.
5) Stop.
CMSC 104, Lecture 06
6
Machine Instructions Example 2
Division
1)
2)
3)
4)
LOAD a register with a value in memory
LOAD another register with another value in memory
If this second value is zero, jump to step 6.
Divide the contents of the first register by the contents
of the second register and put the result in the
accumulator
5) STORE the contents of the accumulator in memory
6) Stop.
CMSC 104, Lecture 06
7
3 Categories of Machine Instructions


Data Transfer - Instructions that move data
around (#s 1, 3, & 4 in example 1).
o Data isn’t really moved, which implies that
the original location is left vacant.
o Data is actually copied from one place to
another. The original is undisturbed.
Arithmetic/Logic - Instructions that tell the
control unit to request an activity within the ALU
(Arithmetic operations or Logical operations)
CMSC 104, Lecture 06
8
3 Categories of Machine Instructions (con’t)

Control - Instructions that direct the
execution of a program rather than
manipulate data.
o Conditional Branch (Step 3 in example 2) branch to a different step if a certain
condition is true.
o Unconditional branches or jumps Example : Jump to step 25.
CMSC 104, Lecture 06
9
The Stored Program



The idea that a program can be stored in
main memory is generally credited to John
Von Neumann.
In fact, modern computers are said to have
Von Neumann architecture.
Many programs can be stored in memory.
To execute the program we want its first
instruction is fetched from memory.
CMSC 104, Lecture 06
10
The Stored Program (con’t)
Remember that whether the program is
written in a high-level language, like C,
or in assembly language, it is
transformed into machine language
before the computer can use it.
 Machine language is comprised of a
series of individual instructions that are
coded into 1’s and 0’s.

CMSC 104, Lecture 06
11
Machine Language Instructions

Each machine language instruction is made
up of two parts
o The opcode - a bit pattern (of 1’s and 0’s) that is
a code for an operation, like LOAD, ADD, JUMP
or STORE
o The operands - bit patterns that provide more
information about the instruction.
•Example: If the opcode was for LOAD, the the
operands would have to say what memory
location was to be read and the register to place
the value in.
CMSC 104, Lecture 06
12
Program Execution


A computer follows a program stored in its
memory by getting the instructions from
memory and putting a copy of them in the
control unit as they are needed.
There are two special purpose registers
used for program execution:
o Instruction register
o Program counter
CMSC 104, Lecture 06
13
Instruction Register
& Program Counter
The Instruction Register (IR) contains
the instruction that is currently being
executed.
 The Program Counter (PC) contains the
address of the next instruction in
memory.

CMSC 104, Lecture 06
14
Program Execution


The control unit performs its job by
continually repeating what is called the
machine cycle
The machine cycle consists of 3 steps:
o Fetch - gets the next instruction from memory
o Decode - decodes the bit pattern in the
instruction register
o Execute - performs the action requested by the
instruction in the instruction register
CMSC 104, Lecture 06
15
Program vs Data



Many programs can be stored in the
computer’s memory
We can start a program running by putting its
starting address in the program counter.
Both data and programs are stored in
memory, and remembering that they are both
just a collection of 1’s and 0’s, if the address
of data is put into the program counter, the
machine will attempt to execute data. The
likelihood is that it won’t get very far.
CMSC 104, Lecture 06
16
Other ALU Operations
Arithmetic Instructions (already
mentioned)
 Logic Instructions

o AND, OR and EXCLUSIVE OR are the
logic instructions.
o They all take two operands and produce
one result.
CMSC 104, Lecture 06
17
Logical Operations



For all logical operations, we consider a 1 to
be true and a 0 to be false.
Truth tables can be constructed for each of
the logical operations and the contents of
these truth tables can be considered the
definitions of the operations.
With logical operations, unlike addition, each
column’s result is independent of the results
of its neighboring columns.
CMSC 104, Lecture 06
18
Truth Tables


A truth table is a table of values for an
operation. To construct a truth table for an
operation, put all possible values of one
variable across the top of the table and all
possible values of a second variable down
the left side of the table.
The upper left corner of the table is divided in
two and should give the names of the
variables being used.
CMSC 104, Lecture 06
19
Truth Table for AND
A
CMSC 104, Lecture 06
B
0
1
0
0
0
1
0
1
20
AND
We can see from the truth table for AND
that the only way we can get a result of
true is if both operands are true.
 So A AND B is true if and only if A is
true and B is also true.

CMSC 104, Lecture 06
21
Truth Table for OR
A
CMSC 104, Lecture 06
B
0
1
0
0
1
1
1
1
22
OR
We can see from the truth table for OR
that the only way we can get a result of
false is if both operands are false.
 So A OR B is true, if A is true and B is
also true, or if only A is true, or if only B
is true. So either A or B needs to be
true or both can be true.

CMSC 104, Lecture 06
23
Download