Patt Patel CH 04
Patt Patel CH 04
Patt Patel CH 04
IN P U T O U TP U T
K e yb o a rd M o n ito r
M ouse P R O C E S S IN G U N IT P rin te r
Scanner LED
D is k ALU TEM P D is k
C O N T R O L U N IT
PC IR
4-3
Memory
2k x m array of stored bits
Address
• unique (k-bit) identifier of location 0000
0001
Contents 0010
0011 00101101
• m-bit value stored in location 0100
0101
0110
•
Basic Operations: •
•
1101 10100010
LOAD 1110
• read a value from a memory location 1111
STORE
• write a value to a memory location
4-4
Interface to Memory
How does processing unit get data to/from memory?
MAR: Memory Address Register
M EM ORY
MDR: Memory Data Register
M AR M DR
To LOAD a location (A):
1. Write the address (A) into the MAR.
2. Send a “read” signal to the memory.
3. Read the data from MDR.
To STORE a value (X) to a location (A):
1. Write the data (X) to the MDR.
2. Write the address (A) into the MAR.
3. Send a “write” signal to the memory.
4-5
Processing Unit
Functional Units
• ALU = Arithmetic and Logic Unit
• could have many functional units.
some of them special-purpose P R O C E S S IN G U N IT
(multiply, square root, …)
• LC-3 performs ADD, AND, NOT ALU TEM P
Registers
• Small, temporary storage
• Operands and results of functional units
• LC-3 has eight registers (R0, …, R7), each 16 bits wide
Word Size
• number of bits normally processed by ALU in one instruction
• also width of registers
• LC-3 is 16 bits
4-6
Input and Output
Devices for getting data into and out of computer
memory
IN P U T O UTPU T
K e yb o a rd M o n ito r
Each device has its own interface, M ouse
Scanner
P rin te r
LED
usually a set of registers like the D is k D is k
C O N T R O L U N IT
PC IR
Decode instruction
Evaluate address
Execute operation
Store result
4-9
Instruction
The instruction is the fundamental unit of work.
Specifies two things:
• opcode: operation to be performed
• operands: data/locations to be used for operation
4-11
Example: LC-3 LDR Instruction
Load instruction -- reads data from memory
Base + offset mode:
• add offset to base register -- result is memory address
• load from memory address into destination register
4-13
Instruction Processing: DECODE
First identify the opcode.
• In LC-3, this is always the first four bits of instruction. F
• A 4-to-16 decoder asserts a control line corresponding
to the desired opcode. D
4-14
Instruction Processing: EVALUATE ADDRESS
For instructions that require memory access,
compute address used for access. F
Examples: D
• add offset to base register (as in LDR)
• add offset to PC EA
• add offset to zero
OP
EX
4-15
Instruction Processing: FETCH OPERANDS
Obtain source operands needed to
perform operation. F
Examples: D
• load data from memory (LDR)
• read data from register file (ADD) EA
OP
EX
4-16
Instruction Processing: EXECUTE
Perform the operation,
using the source operands. F
Examples: D
• send operands to ALU and assert ADD signal
• do nothing (e.g., for loads and stores) EA
OP
EX
4-17
Instruction Processing: STORE RESULT
Write results to destination.
(register or memory) F
Examples: D
• result of ADD is placed in destination register
• result of memory load is placed in destination register EA
• for store instruction, data is stored to memory
write address to MAR, data to MDR OP
assert WRITE signal to memory
EX
4-18
Changing the Sequence of Instructions
In the FETCH phase,
we increment the Program Counter by 1.
4-19
Example: LC-3 JMP Instruction
Set the PC to the value contained in a register. This
becomes the address of the next instruction to fetch.
4-20
Instruction Processing Summary
Instructions look just like data -- it’s all interpretation.
4-21
Control Unit State Diagram
The control unit is a state machine. Here is part of a
simplified state diagram for the LC-3:
4-23