Hardware Basics

advertisement
How the CPU Works
The “Little Man Computer”
Version
1
Download the tutorial
You can download your own copy of the Little
Man Computer simulation from the University of
Hertfordshire



Start the download now
Save it to your hard drive
We will use it shortly
The link:
http://www.herts.ac.uk/lis/ltdu_temp/ltdu/projects/
mm5/#
You can access this link directly from my website
2
The Little Man Computer
3
LMC Instruction Codes
LOAD instruction – op code 1



The Little Man goes to the mailbox specified
Reads the three-digit number in the mailbox
Puts that into the Calculator
Note:


The number in the mailbox is unchanged
The number in the calculator is replaced by
the new number
4
LMC Instruction Codes
STORE instruction – op code 2


The Little Man goes to the Calculator and reads the
number there
He writes the number down on a slip of paper and
puts it into the mailbox specified in the instructions
Note:


The number in the Calculator does not change
The number in the Mailbox is replaced with the new
value
5
LMC Instruction Codes
ADD instruction – op code 3


The Little Man walks over to the mailbox
address specified in the instructions
He reads the number and adds this number to
the number already in the calculator.
Note:

The number in the mailbox is unchanged
6
LMC Instruction Codes
SUBTRACTION – op code 4

Same as the ADD instruction, except the
number is subtracted
For this model we will assume that the Little Man
handles negative numbers correctly, though we will
not deal with it here.
Note:

The number in the mailbox is left unchanged
7
LMC Instruction Codes
INPUT (or READ) – op code 5,
“address” 00 (the 00 is ignored for this
special instruction code)




The Little Man gets a slip of paper in from the
in-basket
He types this number into the calculator
Each INPUT instruction handles only 1 slip of
paper
The Little Man will ignore the address portion
of this code
8
LMC Instruction Codes
OUTPUT (or PRINT) – op code 6,
“address” 00 (the 00 is ignored for this
special instruction code)




The Little Man walks to the calculator and
writes down the number on a slip of paper
This slip is put in to the out basket
Each OUTPUT instruction places 1 piece of
paper in the out basket
The Little Man will ignore the address portion
of this code
9
LMC Instruction Codes
COFFEE BREAK (or HALT) –
op code 7


The Little Man takes a break.
He will ignore the address portion of the
instruction
10
A Simple Program
A few items


We need to store the instructions somewhere
We need a method to tell the Little Man where
to find the particular instructions that he is
supposed to perform at any given time
11
A Simple Program
Assumed Solutions


Assume that the instructions are stored in the
mailbox starting at mailbox number 00
The Little Man will perform instructions by
looking at the value in the instruction location
counter and execute the instruction found in
the mailbox whose address has that value
12
A Simple Program
Assumed Solutions

Each time the LM completes and instruction,
he will increment the Instruction Location
Counter and do the instruction specified by
the counter
13
A Simple Program
Look at a program where the USER uses
the Little Man Computer to add two
numbers.
The User will place two numbers in the in
basket
The sum of the two will appear as a result
in the out basket
14
A Simple Program
INPUT 500


The first step is to give the LM access to the
data
This instruction has the LM read the first
number from the in basket in to the calculator
15
A Simple Program
STORE 99




299
It is not possible for the LM to simply read
another number into the calculator.
It would destroy the first number
We must save the first number somewhere
Mailbox 99 is chosen so that we don’t have
any conflicts with other data or programs
Discuss this
16
A Simple Program
INPUT

The LM reads the second number into the
calculator
ADD


500
399
We do not need to save the 2nd number in the
example, but we could have.
The 1st number from mailbox 99 is added to
the 2nd number in the calculator
17
A Simple Program
OUTPUT

The LM puts the result in to the out basket
COFFEE BREAK

600
700
The program terminates
Note:


These instructions are stored sequentially starting
from mailbox 00.
This is so we could run the program again
18
A Simple Program
Code Summary
Step
00
01
02
03
04
05
99
Mailbox
code
Instruction
description
500
299
500
399
600
700
INPUT
STORE DATA
INPUT 2ND #
ADD 1ST # TO it
OUTPUT RESULT
STOP
DATA
19
Run the CPU Simulator
Now you try it.
Do the sample program included with the
simulation
Write your own program (and show me that
they work)


Write a program to add 3 numbers
Write a program that correctly calculates
x + y + z – a – b (Ex. 1 + 2 + 3 – 4 – 5 = -3)
For the bold and intelligent ones:

Write the last program only using 2 mailboxes!
21
How the CPU Works
A More Complex View
22
Overview
We saw in the “Little Man Computer” a
simplified version of how a CPU works.



Memory, the Control Unit, the Accumulator
(calculator) were all located in the same area
Decimal system used for communication of
instructions
Memory was limited to 100 “mailboxes”
23
CPU Components
3 Major Parts



Arithmetic/Logic Unit (ALU)
Control Unit (CU)
Memory
The ALU & CU are known as the Central
Processing Unit
24
Block Diagram of System
CPU
ALU
Control Unit
Program Counter
Memory
I/O
25
Direct Comparison of
LMC & CPU
Control
Unit
ALU
I/O
Interface
Memory
Program
Counter
26
CPU
ALU
Control Unit
Program Counter
I/O
Memory
Arithmetic/
Logic Unit (ALU)
The component where data is held
temporarily
Calculations occur here
It knows how to perform operations such
as ADD, SUB, LOAD, STORE, SHIFT.
It knows the commands that make up the
machine language of the CPU
It is the calculator
27
CPU
ALU
Control Unit
Program Counter
Memory
Control Unit
I/O
Interprets and controls the execution of
instructions
This control corresponds to the “fetchexecute” cycle


The fetch cycle gets the instructions
The execute cycle does the work specified in
the instruction
Note
28
CPU
ALU
Control Unit
Program Counter
Memory
Registers
I/O
“A Register is a single, permanent storage
location within the CPU used for a
PARTICULAR, defined purpose.”
“A register is used to hold a binary value
temporarily for storage, for manipulation,
and/or for simple calculations.”
Registers have special addresses
29
The End…
30
Download