Beruflich Dokumente
Kultur Dokumente
Arquitectura de Computadores
Clases 7-10
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)
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:
Arquitectura de Computadores
Repaso
Captulo 4 : Unidad de Procesamiento Central (CPU)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
AC
IX
IXE
IR
IRE
16 11 5 11
11
0 1
Mux3
A
Mux4
B
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
45
Subrutina de Multiplicacin
46
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
48
Inicio subrutina
Datos y resultado
Instrucciones
Salida de subrutina
49
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
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
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
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
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
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
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
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
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
59
60
61
62
10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100
63
10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100
64
10111100000 10111011111 10111011110 10111100001 10111101010 10111011111 10111011101 10111011111 10111011110 xxxxxxxxxxx 10111101110 xxxxxxxxxxx 10111011110 10111011101 xxxxxxxxxxx 10111011101 10111100100
65
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
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
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
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
Detalles de la implementacin
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.
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
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
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
77
Arquitectura de Computadores
78
Arquitectura de Computadores
Resumen
Captulo 4 : Unidad de Procesamiento Central (CPU)
Resumen