Sie sind auf Seite 1von 79

Universidad Peruana Los Andes Facultad de Ingeniera Ingeniera de Sistemas y Computacin

Arquitectura de Computadores
Clases 7-10

Diseo de una CPU Bsica

Ing. Reymer M. Ricaldi Arauzo

Objetivos
Captulo 4 : Unidad de Procesamiento Central (CPU)

Objetivos

Entender en detalle la arquitectura, diseo y funcionamiento de una CPU bsica, a nivel de: Hardware Set de instrucciones Ciclo de ejecucin Programacin en lenguaje assembler Limitaciones Ser capaz de modificar y ampliar las capacidades de esta CPU a nivel de: Hardware Set de instrucciones
2 Arquitectura de Computadores

ndice
Captulo 4 : Unidad de Procesamiento Central (CPU)

4.1 Partes de la CPU. 4.2 Ciclo de la Instruccin. 4.3 Conjunto de Instrucciones y tipos de funcionalidad. 4.4 Diseo de una CPU bsica. 4.5 CISC/RISC. 4.6 Modos de direccionamiento. 4.7 Instrucciones en lenguaje de mquina. 4.8 Subrutinas y Manejo de Stack. 4.9 Interrupciones de software y hadware.
3 Arquitectura de Computadores

Repaso
Captulo 4 : Unidad de Procesamiento Central (CPU)

Ejecutar Operaciones y Algoritmos

Requisitos:

Procesar instruccin Leer datos Almacenar Temporalmente los datos ALU FPU Almacenar Resultados

Arquitectura de Computadores

Repaso
Captulo 4 : Unidad de Procesamiento Central (CPU)

Control de Flujo

Requisitos:

Instruction Pointer Mecanismos de Salto

Arquitectura de Computadores

Repaso
Captulo 4 : Unidad de Procesamiento Central (CPU)

Controlar Circuitos Internos

Requisitos:

Buses internos Seales de control ALU (funcin) Mux Registros (Load,etc) Contador (Inc, Load,etc)

Arquitectura de Computadores

Repaso
Captulo 4 : Unidad de Procesamiento Central (CPU)

Set de Instrucciones

Instrucciones de transferencias de datos Instrucciones aritmticas Instrucciones lgicas Control de flujo Entrada / Salida

Ciclo de la Instruccin

Arquitectura de Computadores

Partes de la CPU
Captulo 4 : Unidad de Procesamiento Central (CPU)

CPU Bsica

Arquitectura de Computadores

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset
S50

S10

Base

Mux0
0
11

Mux1
0
11
11

S51

RAM
D in D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

S30, S31

Mux3
A

Mux4
B

S40, S41

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode


Q1

16

C, N, Z, OV

ALU
S0, S1, S2

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

10

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Contador
(incrementa con flanco de bajada)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

11

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Registros
(almacenan con flanco de bajada)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

12

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Mux0

Mux1
0
11
11

RAM
D in D out
WE

Multiplexores
AC
16 11
ACE

0
11

16

16

IX
IXE

IR
IRE

16 11 5 11

11

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

13

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

ALU
(Add, Sub, And, Or, Xor, Shift Right, Shift Left)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

14

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Condition Codes Mux0


(Carry, Negative, Zero, Overflow)
D in

Mux1
0
11
11

0
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

15

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Sumador
(en complemento de 2)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

16

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

RAM
(2048 x 16 bits)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

17

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset
S50

S10

EPROM

Base

Mux0
0
11

Mux1
0
11
11

S51

(1024 x 17 bits)
D in

RAM
D out WE 16 16 11 16

AC
ACE 16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
S30, S31

Mux4
B

S40, S41

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU
S0, S1, S2

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

18

CPU Bsica: Control & Decode

Arquitectura de Computadores
19

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Clock
(director de orquesta)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

20

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Bus de Datos
(16 bits)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

21

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Bus de Direcciones
(11 bits)
D in

Mux0
0
11

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

22

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Instruccin
(Opcode: 5 bits)
D in D out 16

Mux0
0
11

Mux1
0
11
11

RAM
WE

16 16 11
ACE

AC
16 11 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

23

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

Y cmo funciona todo esto?


16 16 11
ACE

AC

IX

IXE

IR
IRE

16 11 5 11

11

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

24

11

PC
11 11

LDPC, INCPC

Adder
Offset Base

Mux2
11 Address

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

25

Toda instruccin incluye un

11

PC
11 11

LDPC,

INCPC

Adder
Offset Base

FETCH
IR = M[pc] PC = PC+1

Mux2
11 Address

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE
0

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

26

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

LDA
A = M[a]

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

27

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

LDAI
A = M[a+x]

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

28

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

LDX
X = M[a]

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

29

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

STA
M[a] = A

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

30

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

STAI
M[a+x] = A

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

31

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

STX
M[a] = X

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

32

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

LIT
A=a

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

33

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

LIX
X=a

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

34

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

ADD, SUB, AND, OR, XOR


A = A {op} M[a]

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

35

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

ADDI, SUBI, ANDI, ORI, XORI


A = A {op} M[a+x]

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

36

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

SRA, SLA
A = A >> 1 (A = A/2) A = A << 1 (A = Ax2)

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

37

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

BRA
PC = a

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

38

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

BEQ, BNE, BLT, BGE, BLE, BGT, BCS, BOV


PC = a (condicional)

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

39

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

JSR
X = PC PC = a

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

40

Flujo de instruccin:
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset Base

RFS
PC = X

Mux0
0
11 D in

Mux1
0
11
11

RAM
D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

Mux3
A

Mux4
B

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode

16

C, N, Z, OV

ALU

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

41

Arquitectura general
11 11

11

PC
Mux2
11 Address

LDPC, INCPC

Adder
Offset
S50

S10

Base

Mux0
0
11

Mux1
0
11
11

S51

RAM
D in D out
WE

16

16 16 11
ACE

AC
16 11 5 11 11

IX
IXE

IR
IRE

0 1

S30, S31

Mux3
A

Mux4
B

S40, S41

a: direccin A: acumulador X: reg. ndice Condition Code CC: Z, N, C, OV

Control & Decode


Q1

16

C, N, Z, OV

ALU
S0, S1, S2

CC
CCE

Clock

S0, S1, D2, S10, S30, S31, S40, S41, S50, S51 CCE, LDPC, INCPC, ACE, IXE, IRE, WE

42

Formato de Instrucciones
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

43

Set de Instrucciones
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

44

Control & Decode


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

45

Diseo de una CPU Bsica


Captulo 4 : Unidad de Procesamiento Central (CPU)

Ejemplo de uso de la CPU:

Subrutina de Multiplicacin

46

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

47

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

48

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

Inicio subrutina

Datos y resultado

Instrucciones

Salida de subrutina

49

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

50

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

51

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

52

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

53

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

54

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

55

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

56

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

57

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

58

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
As s embler label ins tr param B R A s tart mult1 mult2 res ult zero one s tart L D A zero S T A res ult label1 L D A mult2 AND one B E Q label2 L D A res ult AD D mult1 S T A res ult label2 L D A mult2 SRA B NE label3 R TS label3 S T A mult2 L D A mult1 S LA S T A mult1 B R A label1

59

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
P rograma en memoria addres s label ins tr param param addres s 1500 BR A s tart 1506 1501 mult1 mult1 1502 mult2 mult2 1503 res ult res ult 1504 zero zero 1505 one one 1506 s tart L DA zero 1504 1507 S TA res ult 1503 1508 label1 L D A mult2 1502 1509 AND one 1505 1510 B E Q label2 1514 1511 L DA res ult 1503 1512 AD D mult1 1501 1513 S TA res ult 1503 1514 label2 L D A mult2 1502 1515 SRA 1516 B NE label3 1518 1517 R TS 1518 label3 S T A mult2 1502 1519 L DA mult1 1501 1520 S LA 1521 S TA mult1 1501 1522 B R A label1 1508

60

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
P rograma en memoria addres s label ins tr param param addres s 1500 BR A s tart 1506 1501 mult1 mult1 1502 mult2 mult2 1503 res ult res ult 1504 zero zero 1505 one one 1506 s tart L DA zero 1504 1507 S TA res ult 1503 1508 label1 L D A mult2 1502 1509 AND one 1505 1510 B E Q label2 1514 1511 L DA res ult 1503 1512 AD D mult1 1501 1513 S TA res ult 1503 1514 label2 L D A mult2 1502 1515 SRA 1516 B NE label3 1518 1517 R TS 1518 label3 S T A mult2 1502 1519 L DA mult1 1501 1520 S LA 1521 S TA mult1 1501 1522 B R A label1 1508

Direccin real en RAM

61

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
P rograma en memoria addres s label ins tr param param addres s 1500 BR A s tart 1506 1501 mult1 mult1 1502 mult2 mult2 1503 res ult res ult 1504 zero zero 1505 one one 1506 s tart L DA zero 1504 1507 S TA res ult 1503 1508 label1 L D A mult2 1502 1509 AND one 1505 1510 B E Q label2 1514 1511 L DA res ult 1503 1512 AD D mult1 1501 1513 S TA res ult 1503 1514 label2 L D A mult2 1502 1515 SRA 1516 B NE label3 1518 1517 R TS 1518 label3 S T A mult2 1502 1519 L DA mult1 1501 1520 S LA 1521 S TA mult1 1501 1522 B R A label1 1508

Direccin real en RAM

62

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
bin_addres s 10111011100 10111011101 10111011110 10111011111 10111100000 10111100001 10111100010 10111100011 10111100100 10111100101 10111100110 10111100111 10111101000 10111101001 10111101010 10111101011 10111101100 10111101101 10111101110 10111101111 10111110000 10111110001 10111110010 P rograma en addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 memoria (direcciones en binario) ins tr param param addres s BR A s tart 1506 mult1 mult2 res ult zero one L DA zero 1504 S TA res ult 1503 L DA mult2 1502 AND one 1505 B E Q label2 1514 L DA res ult 1503 AD D mult1 1501 S TA res ult 1503 L DA mult2 1502 SRA B NE label3 1518 R TS S TA mult2 1502 L DA mult1 1501 S LA S TA mult1 1501 B R A label1 1508 param_bin_add 10111100010

10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100

63

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
bin_addres s 10111011100 10111011101 10111011110 10111011111 10111100000 10111100001 10111100010 10111100011 10111100100 10111100101 10111100110 10111100111 10111101000 10111101001 10111101010 10111101011 10111101100 10111101101 10111101110 10111101111 10111110000 10111110001 10111110010 P rograma en addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 memoria (direcciones en binario) ins tr param param addres s BR A s tart 1506 mult1 mult2 res ult zero one L DA zero 1504 S TA res ult 1503 L DA mult2 1502 AND one 1505 B E Q label2 1514 L DA res ult 1503 AD D mult1 1501 S TA res ult 1503 L DA mult2 1502 SRA B NE label3 1518 R TS S TA mult2 1502 L DA mult1 1501 S LA S TA mult1 1501 B R A label1 1508 param_bin_add 10111100010

10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100

64

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
bin_addres s 10111011100 10111011101 10111011110 10111011111 10111100000 10111100001 10111100010 10111100011 10111100100 10111100101 10111100110 10111100111 10111101000 10111101001 10111101010 10111101011 10111101100 10111101101 10111101110 10111101111 10111110000 10111110001 10111110010 P rograma en addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 memoria (direcciones en binario) ins tr param param addres s BR A s tart 1506 mult1 mult2 res ult zero one L DA zero 1504 S TA res ult 1503 L DA mult2 1502 AND one 1505 B E Q label2 1514 L DA res ult 1503 AD D mult1 1501 S TA res ult 1503 L DA mult2 1502 SRA B NE label3 1518 R TS S TA mult2 1502 L DA mult1 1501 S LA S TA mult1 1501 B R A label1 1508 param_bin_add 10111100010

10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100

65

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 P rograma en memoria (con ins truction code) ins tr param param addres s ins tr_code param_bin_add BR A s tart 1506 10010 10111100010 mult1 mult2 res ult zero one L DA zero 1504 00000 10111100000 S TA res ult 1503 01101 10111011111 L DA mult2 1502 00000 10111011110 AND one 1505 00111 10111100001 B E Q label2 1514 10011 10111101010 L DA res ult 1503 00000 10111011111 AD D mult1 1501 00011 10111011101 S TA res ult 1503 01101 10111011111 L DA mult2 1502 00000 10111011110 SRA 11110 xxxxxxxxxxx B NE label3 1518 10100 10111101110 R TS 11100 xxxxxxxxxxx S TA mult2 1502 01101 10111011110 L DA mult1 1501 00000 10111011101 S LA 11101 xxxxxxxxxxx S TA mult1 1501 01101 10111011101 B R A label1 1508 10010 10111100100 66

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 P rograma en memoria (con ins truction completa) ins tr param param addres s ins truccin binaria BR A s tart 1506 1001 0101 1110 0010 mult1 mult2 res ult zero one L DA zero 1504 0000 0101 1110 0000 S TA res ult 1503 0110 1101 1101 1111 L DA mult2 1502 0000 0101 1101 1110 AND one 1505 0011 1101 1110 0001 B E Q label2 1514 1001 1101 1110 1010 L DA res ult 1503 0000 0101 1101 1111 AD D mult1 1501 0001 1101 1101 1101 S TA res ult 1503 0110 1101 1101 1111 L DA mult2 1502 0000 0101 1101 1110 SRA 1111 0xxx xxxx xxxx B NE label3 1518 1010 0101 1110 1110 R TS 1110 0xxx xxxx xxxx S TA mult2 1502 0110 1101 1101 1110 L DA mult1 1501 0000 0101 1101 1101 S LA 1110 1xxx xxxx xxxx S TA mult1 1501 0110 1101 1101 1101 B R A label1 1508 1001 0101 1110 0100 hexa 95E 3 h

0000 0001 05E 0 6D D F 05D E 3D E 1 9D E A 05D F 1D D D 6D D F 05D E F 000 A5E E E 000 6D D E 05D D E 800 6D D D 67 4 95E

h h h h h h h h h h h h h h h h h h h

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
addres s label 1500 1501 mult1 1502 mult2 1503 res ult 1504 zero 1505 one 1506 s tart 1507 1508 label1 1509 1510 1511 1512 1513 1514 label2 1515 1516 1517 1518 label3 1519 1520 1521 1522 P rograma en memoria (con ins truction completa) ins tr param param addres s ins truccin binaria BR A s tart 1506 1001 0101 1110 0010 mult1 mult2 res ult zero one L DA zero 1504 0000 0101 1110 0000 S TA res ult 1503 0110 1101 1101 1111 L DA mult2 1502 0000 0101 1101 1110 AND one 1505 0011 1101 1110 0001 B E Q label2 1514 1001 1101 1110 1010 L DA res ult 1503 0000 0101 1101 1111 AD D mult1 1501 0001 1101 1101 1101 S TA res ult 1503 0110 1101 1101 1111 L DA mult2 1502 0000 0101 1101 1110 SRA 1111 0xxx xxxx xxxx B NE label3 1518 1010 0101 1110 1110 R TS 1110 0xxx xxxx xxxx S TA mult2 1502 0110 1101 1101 1110 L DA mult1 1501 0000 0101 1101 1101 S LA 1110 1xxx xxxx xxxx S TA mult1 1501 0110 1101 1101 1101 B R A label1 1508 1001 0101 1110 0100 hexa 95E 3 h

Cdigo en lenguaje de mquina

0000 0001 05E 0 6D D F 05D E 3D E 1 9D E A 05D F 1D D D 6D D F 05D E F 000 A5E E E 000 6D D E 05D D E 800 6D D D 68 4 95E

h h h h h h h h h h h h h h h h h h h

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
P rograma addres s 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 en memoria (con ins truction completa) ins truccin binaria hexa 1001 0101 1110 0010 95E 3 h

0000 0110 0000 0011 1001 0000 0001 0110 0000 1111 1010 1110 0110 0000 1110 0110 1001

0101 1101 0101 1101 1101 0101 1101 1101 0101 0xxx 0101 0xxx 1101 0101 1xxx 1101 0101

1110 1101 1101 1110 1110 1101 1101 1101 1101 xxxx 1110 xxxx 1101 1101 xxxx 1101 1110

0000 1111 1110 0001 1010 1111 1101 1111 1110 xxxx 1110 xxxx 1110 1101 xxxx 1101 0100

0000 0001 05E 0 6D D F 05D E 3D E 1 9D E A 05D F 1D D D 6D D F 05D E F 000 A5E E E 000 6D D E 05D D E 800 6D D D 95E 4

h h h h h h h h h h h h h h h h h h h

Programa en RAM

69

Uso de CPU: Multiplicacin


Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica
byte multiplicacion (byte mult1, byte mult2) { byte result = 0; while(true) { if(mult2 & 0001h != 0) result += mult1; mult2 >>= 1; if(mult2 == 0) return result; mult1 <<= 1; } }

Programa en C

Programa en RAM

P rograma addres s 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522

en memoria (con ins truction completa) ins truccin binaria hexa 1001 0101 1110 0010 95E 3 h

0000 0110 0000 0011 1001 0000 0001 0110 0000 1111 1010 1110 0110 0000 1110 0110 1001

0101 1101 0101 1101 1101 0101 1101 1101 0101 0xxx 0101 0xxx 1101 0101 1xxx 1101 0101

1110 1101 1101 1110 1110 1101 1101 1101 1101 xxxx 1110 xxxx 1101 1101 xxxx 1101 1110

0000 1111 1110 0001 1010 1111 1101 1111 1110 xxxx 1110 xxxx 1110 1101 xxxx 1101 0100

0000 0001 05E 0 6D D F 05D E 3D E 1 9D E A 05D F 1D D D 6D D F 05D E F 000 A5E E E 000 6D D E 05D D E 800 6D D D 95E70 4

h h h h h h h h h h h h h h h h h h h

Diseo de una CPU Bsica


Captulo 4 : Unidad de Procesamiento Central (CPU)

Detalles de la implementacin

En subrutina no puedo utilizar IX


No puedo invocar una subrutina dentro de una subrutina

71

Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

En subrutina no puedo utilizar IX No puedo invocar una subrutina dentro de una subrutina Solucin Stack Pointer Contador que partiera en 7FFh y decreciera con cada JSR y aumentara con cada RFS.

As, el PC lo guardo en memoria en vez de en IX


Mux2 necesitara dos entradas para poder seleccionar el SP Aumentaran en tres bits las palabras del Control & Decode uno para el Mux2 y otros dos para el Stack Pointer (seal de aumento y de decremento).

72

Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

LDXI no est implementado (trivial) Branching indexado no est implementado (trivial) Una Alu con ms funciones simplemente requiere de ms seales de control (ej: rotate, parity, etc)
73 Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

Para aumentar la memoria:


Ampliar el bus de direcciones en N bits El bus de datos tendra que ser de 16+N bits (5 de instruccin + (11+N) de direccionamiento) La RAM tendra que ser de (2048*2N) x (16+N). El Control & Decode no variara Todos los Mux y demases tendran que ser para 11+N bits.

74

Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

Esta arquitectura no permite efectuar operaciones directamente entre registros (los dos estn en un mismo Mux)
Pese a esto se podra guardar el contenido de un registro en otro (instruccin no implementada)

75

Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

IX es de 11 bits dado que es para direccionamiento

Sin embargo, perfectamente podra ser de 16 bits y cumplir ambas funciones, direccionar y apoyar para clculos y datos.

LIT y LIX solo pueden cargar palabras de 11 bits (problema slo para AC)

76

Arquitectura de Computadores

Detalles de la Implementacin
Captulo 4 : Unidad de Procesamiento Central (CPU) Diseo de una CPU Bsica

Se pueden agregar registros modificando el Control & Decode


Aumentar nmero de salidas Aumentar nmero de instrucciones

77

Arquitectura de Computadores

Diseo de una CPU Bsica


Captulo 4 : Unidad de Procesamiento Central (CPU)

Mejoras para esta CPU


I/O (Input/Output)? Interrupciones ? Manejo de Stack?

78

Arquitectura de Computadores

Resumen
Captulo 4 : Unidad de Procesamiento Central (CPU)

Resumen

Diseo de la CPU Bsica


Arquitectura Hardware Set de instrucciones Ciclo de ejecucin Limitaciones del diseo

Programacin en lenguaje assembler


Uso de instrucciones Asociacin del cdigo en memoria Cdigo en lenguaje de mquina (representacin binaria) Programa en RAM
79 Arquitectura de Computadores

Das könnte Ihnen auch gefallen