Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduction
ALU
Control Unit
Computer Organization
Input
Clock
R1
R2
R3
R4
R5
R6
R7
Load
(7 lines)
SELA
3x8
decoder
MUX
MUX
A bus
SELD
OPR
} SELB
B bus
ALU
Output
Computer Organization
Control
3
SELA
3
SELB
3
SELD
5
OPR
SELA
Input
R1
R2
R3
R4
R5
R6
R7
SELB
Input
R1
R2
R3
R4
R5
R6
R7
SELD
None
R1
R2
R3
R4
R5
R6
R7
Computer Architectures Lab
Control
ALU CONTROL
Encoding of ALU operations
OPR
Select
00000
00001
00010
00101
00110
01000
01010
01100
01110
10000
11000
Operation
Transfer A
Increment A
ADD A + B
Subtract A - B
Decrement A
AND A and B
OR A and B
XOR A and B
Complement A
Shift right A
Shift left A
Symbol
TSFA
INCA
ADD
SUB
DECA
AND
OR
XOR
COMA
SHRA
SHLA
Computer Organization
Microoperation
SELA SELB
SELD
OPR
R1 R2 - R3
R4 R4 R5
R6 R6 + 1
R7 R1
Output R2
Output Input
R4 shl R4
R5 0
R2
R4
R6
R1
R2
Input
R4
R5
R1
R4
R6
R7
None
None
R4
R5
SUB
OR
INCA
TSFA
TSFA
TSFA
SHLA
XOR
R3
R5
R5
Control Word
010 011
100 101
110 000
001 000
010 000
000 000
100 000
101 101
001 00101
100 01010
110 00001
111 00000
000 00000
000 00000
100 11000
101 01100
Stack Organization
Register Stack
63
Flags
FULL
Address
EMPTY
Stack pointer
SP
C
B
A
4
3
2
1
0
DR
PUSH
SP SP + 1
M[SP] DR
If (SP = 0) then (FULL 1)
EMPTY 0
Computer Organization
POP
DR M[SP]
SP SP - 1
If (SP = 0) then (EMPTY 1)
FULL 0
Computer Architectures Lab
Stack Organization
PC
Program
(instructions)
AR
Data
(operands)
SP
3000
stack
3997
3998
3999
4000
4001
DR
- PUSH: SP SP - 1
M[SP] DR
- POP:
DR M[SP]
SP SP + 1
- Most computers do not provide hardware to check
stack overflow (full stack) or underflow(empty stack)
Computer Organization
Stack Organization
4
3
12
5
12
Computer Organization
34*56*+
6
5
12
30
12
42
Instruction Format
INSTRUCTION FORMAT
Instruction Fields
OP-code field - specifies the operation to be performed
Address field - designates memory address(es) or a processor register(s)
Mode field
- specifies the way the operand or the
effective address is determined
The number of address fields in the instruction format
depends on the internal organization of CPU
- The three most common CPU organizations:
Single accumulator organization:
ADD
X
/* AC AC + M[X] */
General register organization:
ADD
R1, R2, R3
/* R1 R2 + R3 */
ADD R1, R2
/* R1 R1 + R2 */
MOV R1, R2
/* R1 R2 */
ADD R1, X
/* R1 R1 + M[X] */
Stack organization:
PUSH X
/* TOS M[X] */
ADD
Computer Organization
10
Instruction Format
*/
*/
*/
Computer Organization
R1, A
R1, B
R2, C
R2, D
R1, R2
X, R1
/* R1 M[A]
/* R1 R1 + M[A]
/* R2 M[C]
/* R2 R2 + M[D]
/* R1 R1 * R2
/* M[X] R1
*/
*/
*/
*/
*/
*/
11
Instruction Format
A
B
C
D
X
/*
/*
/*
/*
/*
/*
/*
/*
TOS A
*/
TOS B
*/
TOS (A + B)
*/
TOS C
*/
TOS D
*/
TOS (C + D)
*/
TOS (C + D) * (A + B) */
M[X] TOS
*/
12
Addressing Modes
ADDRESSING MODES
Addressing Modes
* Specifies a rule for interpreting or modifying the
address field of the instruction (before the operand
is actually referenced)
* Variety of addressing modes
- to give programming flexibility to the user
- to use the bits in the address field of the
instruction efficiently
Computer Organization
13
Addressing Modes
14
Addressing Modes
15
Addressing Modes
16
Addressing Modes
ADDRESSING MODES
- EXAMPLES Address
PC = 200
200
201
202
Memory
Load to AC Mode
Address = 500
Next instruction
R1 = 400
XR = 100
399
400
450
700
500
800
600
900
702
325
800
300
AC
Addressing
Effective
Mode
Address
Direct address
500
Immediate operand Indirect address
800
Relative address
702
Indexed address
600
Register
Register indirect
400
Autoincrement
400
Autodecrement
399
Computer Organization
/* AC (500)
/* AC 500
/* AC ((500))
/* AC (PC+500)
/* AC (RX+500)
/* AC R1
/* AC (R1)
/* AC (R1)+
/* AC -(R)
*/
*/
*/
*/
*/
*/
*/
*/
*/
Content
of AC
800
500
300
325
900
400
700
700
450
17
Mnemonic
LD
ST
MOV
XCH
IN
OUT
PUSH
POP
Register Transfer
AC M[ADR]
AC M[M[ADR]]
AC M[PC + ADR]
AC NBR
AC M[ADR + XR]
AC R1
AC M[R1]
AC M[R1], R1 R1 + 1
R1 R1 - 1, AC M[R1]
Computer Architectures Lab
18
Mnemonic
INC
DEC
ADD
SUB
MUL
DIV
ADDC
SUBB
NEG
Shift Instructions
Name
Logical shift right
Logical shift left
Arithmetic shift right
Arithmetic shift left
Rotate right
Rotate left
Rotate right thru carry
Rotate left thru carry
Mnemonic
SHR
SHL
SHRA
SHLA
ROR
ROL
RORC
ROLC
19
Program Control
PC
Mnemonic
BR
JMP
SKP
CALL
RTN
CMP
TST
B
c7
c8
V Z S C
8-bit ALU
F7 - F0
F7
8
Check for
zero output
F
Computer Organization
20
Program Control
Branch if zero
Branch if not zero
Branch if carry
Branch if no carry
Branch if plus
Branch if minus
Branch if overflow
Branch if no overflow
Tested condition
Z=1
Z=0
C=1
C=0
S=0
S=1
V=1
V=0
Computer Organization
21
Program Control
Call subroutine
Jump to subroutine
Branch to subroutine
Branch and save return address
Computer Organization
CALL
SP SP - 1
M[SP] PC
PC EA
RTN
PC M[SP]
SP SP + 1
Computer Architectures Lab
22
Program Control
PROGRAM INTERRUPT
Types of Interrupts
External interrupts
External Interrupts initiated from the outside of CPU and Memory
- I/O Device -> Data transfer request or Data transfer complete
- Timing Device -> Timeout
- Power Failure
- Operator
Internal interrupts (traps)
Internal Interrupts are caused by the currently running program
- Register, Stack Overflow
- Divide by zero
- OP-code Violation
- Protection Violation
Software Interrupts
Both External and Internal Interrupts are initiated by the computer HW.
Software Interrupts are initiated by the executing an instruction.
- Supervisor Call -> Switching from a user mode to the supervisor mode
-> Allows to execute a certain class of operations
which are not allowed in the user mode
Computer Organization
23
Program Control
INTERRUPT PROCEDURE
Interrupt Procedure and Subroutine Call
- The interrupt is usually initiated by an internal or
an external signal rather than from the execution of
an instruction (except for the software interrupt)
- The address of the interrupt service program is
determined by the hardware rather than from the
address field of an instruction
- An interrupt procedure usually stores all the
information necessary to define the state of CPU
rather than storing only the PC.
The state of the CPU is determined from;
Content of the PC
Content of all processor registers
Content of status bits
Many ways of saving the CPU state
depending on the CPU architectures
Computer Organization
24
RIS
C
Historical Background
IBM System/360, 1964
- The real beginning of modern computer architecture
- Distinction between Architecture and Implementation
- Architecture: The abstract structure of a computer
seen by an assembly-language programmer
High-Level
Language
Compiler
Instruction
Set
Architecture
-program
Hardware
Implementation
25
RISC
- IN 70s -
Computer Organization
26
RISC
Data: 32-bit
Register-to-register
8
Load
Load
Add
Store
16
rB
rC
rA
rA
B
C
rC
A
rB
Load
Add
Store
16
B
C
A
16
16
16
Add
27
RISC
DEC
VAX-11/780
Intel
Xerox
Dorado
iAPX-432
Year
1973
1978
1978
1982
# of instrs.
208
303
270
222
420 Kb
480 Kb
136 Kb
420 Kb
16-48
16-456
8-24
6-321
Technology
ECL MSI
TTL MSI
ECL MSI
NMOS VLSI
Execution model
reg-mem
mem-mem
reg-reg
reg-mem
mem-mem
reg-reg
stack
stack
mem-mem
Cache size
64 Kb
64 Kb
64 Kb
64 Kb
28
RISC
29
RISC
PHYLOSOPHY OF RISC
Reduce the semantic gap between
machine instruction and microinstruction
1-Cycle instruction
Most of the instructions complete their execution
in 1 CPU clock cycle - like a microoperation
* Functions of the instruction (contrast to CISC)
- Very simple functions
- Very simple instruction format
- Similar to microinstructions
=> No need for microprogrammed control
* Register-Register Instructions
- Avoid memory reference instructions except
Load and Store instructions
- Most of the operands can be found in the
registers instead of main memory
=> Shorter instructions
=> Uniform instruction cycle
=> Requirement of large number of registers
* Employ instruction pipeline
Computer Organization
30
RISC
ARCHITECTURAL METRIC
A B + C
B A + C
D D - B
Register-to-register (Reuse of Operands)
8
Load
Load
Add
Store
Add
Store
Load
Sub
Store
16
rB
B
C
rC
rA rB rC
rA
A
rB rA rC
rB
B
rD
D
rD rD rB
rD
D
I = 228b
D = 192b
M = 420b
Add
Add
Sub
Memory-to-memory
rA
rB
rD
rB
rA
rD
rC
rC
rB
I = 60b
D = 0b
M = 60b
16
16
16
Add
Add
Sub
B
A
B
C
C
D
A
B
D
Computer Organization
I = 168b
D = 288b
M = 456b
Computer Architectures Lab
31
RISC
CHARACTERISTICS OF RISC
Common RISC Characteristics
- Operations are register-to-register, with only LOAD and
STORE accessing memory
- The operations and addressing modes are reduced
Instruction formats are simple and do not cross
word boundaries
- RISC branches avoid pipeline penalties - delayed branch.
Characteristics of Initial RISC Machines
Year
Number of
instructions
Control memory
size
Instruction
size (bits)
Technology
Execution model
Computer Organization
IBM 801
1980
RISC I
1982
MIPS
1983
120
39
55
32
NMOS VLSI
reg-reg
32
NMOS VLSI
reg-reg
32
ECL MSI
reg-reg
32
RISC
A B+C
A A+ 1
DD-B
OP
RISC 1
VAX
DEST
rA
rB
register
operand
rC
ADD
rA
rA
immediate
operand
SUB
rD
rD
register
operand
rB
ADD
(3 operands)
register
operand
INC
(1 operands)
register
operand
SUB
(2 operands)
register
operand
register
operand
C ...
... C
1 operand
in memory
2 operands
in memory
... D
Computer Organization
register
operand
3 operands
in memory
A
D
D
I
N
C
SOUR2
ADD
register
operand
432
SOUR1
A
D
D
I
N
C
D ...
SUB
33
RISC
Pascal
45
5
15
29
6
C
38
3
12
43
3
1
MachineInstruction
Weighted
Pascal
C
13
13
42
32
31
33
11
21
3
Memory
Reference
Weighted
Pascal
C
14
15
33
26
44
45
7
13
2
34
RISC
35
RISC
CALL-RETURN BEHAVIOR
Computer Organization
36
RISC
Computer Organization
37
RISC
R25
R64
R63
R16
R15
R31
R58
R57
R10
R26
Proc D
R25
Local to D
Common to C and D
Local to C
R48
R47
R16
R15
R31
R42
R41
R10
R26
Proc C
R25
Common to B and C
Local to B
R32
R16
R31
R15
R31
R26
R10
R26
R25
Proc B
R25
Local to A
R16
R15
R10
R9
R16
R31
R15
Common
R26 to D and A
R10
R9
Common to all
procedures
R0
Computer Organization
Common to A and B
Common to A and D
Proc A
R0
Global
registers
38
RISC
BERKELEY RISC I
- 32-bit integrated circuit CPU
- 32-bit address, 8-, 16-, 32-bit data
- 32-bit instruction format
- total 31 instructions
- three addressing modes:
register; immediate; PC relative addressing
- 138 registers
10 global registers
8 windows of 32 registers each
Berkeley RISC I Instruction Formats
Regsiter mode: (S2 specifies a register)
31
24 23
19 18
14 13 12
Opcode
Rd
Rs
5 4
Not used
8
Rd
PC relative mode
31
24 23
Opcode
COND
Computer Organization
Rs
S2
13
19 18
5
S2
5
Opcode
Y
19
39
RISC
Operands
Register Transfer
Computer Organization
Rs + S2
Rs + S2 + carry
Rs - S2
Rs - S2 - carry
S2 - Rs
S2 - Rs - carry
Rs S2
Rs S2
Rs S2
Rs shifted by S2
Rs shifted by S2
Rs shifted by S2
Rd M[Rs + S2]
Rd M[Rs + S2]
Rd M[Rs + S2]
Rd M[Rs + S2]
Rd M[Rs + S2]
Rd Y
M[Rs + S2] Rd
M[Rs + S2] Rd
M[Rs + S2] Rd
Rd PSW
PSW Rd
Description
Integer add
Add with carry
Integer subtract
Subtract with carry
Subtract reverse
Subtract with carry
AND
OR
Exclusive-OR
Shift-left
Shift-right logical
Shift-right arithmetic
Load long
Load short unsigned
Load short signed
Load byte unsigned
Load byte signed
Load immediate high
Store long
Store short
Store byte
Load status word
Set status word
Opcode
Operands
40
Register Transfer
Description
Computer Organization
41
RISC
CHARACTERISTICS OF RISC
RISC Characteristics
- Relatively few instructions
- Relatively few addressing modes
- Memory access limited to load and store instructions
- All operations done within the registers of the CPU
- Fixed-length, easily decoded instruction format
- Single-cycle instruction format
- Hardwired rather than microprogrammed control
Advantages of RISC
- VLSI Realization
- Computing Speed
- Design Costs and Reliability
- High Level Language Support
Computer Organization
42
RISC
ADVANTAGES OF RISC
VLSI Realization
Control area is considerably reduced
Example:
RISC I: 6%
RISC II: 10%
MC68020: 68%
general CISCs: ~50%
43
RISC
ADVANTAGES OF RISC
Design Costs and Reliability
- Shorter time to design
--> reduction in the overall design cost and
reduces the problem that the end product will
be obsolete by the time the design is completed
- Simpler, smaller control unit
--> higher reliability
- Simple instruction format (of fixed length)
--> ease of virtual memory management
High Level Language Support
- A single choice of instruction
--> shorter, simpler compiler
- A large number of CPU registers
--> more efficient code
- Register window
--> Direct support of HLL
- Reduced burden on compiler writer
Computer Organization