Beruflich Dokumente
Kultur Dokumente
(GSyC)
El procesador
Introduccin
Objetivos
!
qPrincipios y tcnicas utilizadas en la
implementacin de un procesador!
q Ruta de datos!
q Ruta de control!
GSyC - El procesador
GSyC - El procesador
- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC
MI[PC]
[RS]
ext(Inmediato)
Si es Store: [RD]
[RS]+ext(Inmediato)
Load:
MD[[RS]+ext(Inmediato)]
Store:
MD[[RS]+ext(Inmediato)] [RD]
[RD] MD[[RS]+ext(Inmediato)]
GSyC - El procesador
PC PC+4
- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC
MI[PC]
[RS]
[RS] OP ext(Inmediato)
- Se escribe el resultado de la
operacin en el registro RD
PC PC+4
ext(Inmediato)
GSyC - El procesador
- Bsqueda en la MI de la instruccin
apuntada por PC
- Actualizacin del PC
MI[PC]
- Decodificacin de la instruccin
- Lectura de los registros RS y RD
- Extensin de signo para inmediato
[RS]
[RD]
ext(Inmediato)
[PC] + ext(Inmediato)
PC PC+4
cond ([RS],[RD])
Si con = TRUE
PC [PC] + ext(Inmediato)
M
W
GSyC - El procesador
- Bsqueda en la MI de la instruccin
apuntada por PC
- Actualizacin del PC
- Decodificacin de la instruccin
- Lectura del registro RS
MI[PC]
PC PC+4
[RS]
PC [RS]
M
W
GSyC - El procesador
- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC
MI[PC]
- Decodificacin
- Lectura de los registros RS y RD
[RS]
[RD]
[RS] OP [RT]
- Se escribe el resultado de la
operacin en el registro RD
PC PC+4
GSyC - El procesador
- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC
- Decodificacin
- Lectura del registros RS
- Extensin de signo para Offset
MI[PC]
PC PC+4
[RS]
ext(Offset)
[PC] + ext(Offset)
PC [PC] + ext(Offset)
M
W
GSyC - El procesador
Diseo
de un procesador
!
q Dos grandes mdulos dentro del procesador!
q Ruta de datos combinacional!
q Unidad de control secuencial combinacional!
q Sistema combinacional!
q Sus salidas son funcin exclusiva del valor de sus entradas
en un momento dado, sin que intervengan estados
anteriores de las entradas o de las salidas!
q Sistema secuencial!
q Los valores de las salidas, en un momento dado, no
dependen exclusivamente de los valores de las entradas en
dicho momento, sino tambin dependen del estado anterior o
estado interno!
q Gobernados por una seal de reloj!!
GSyC - El procesador
Procesador
secuencial
!
q Hasta que no termina de ejecutar una instruccin no
comienza a ejecutar la siguiente!
q Segn el mtodo de temporizacin escogido: !!
q Procesador monociclo!
q Procesador multiciclo!
q Procesador monociclo!
q Cada instruccin se completa en un nico ciclo de reloj!
q CPI = 1!
q La duracin del ciclo de reloj viene fijada por la instruccin
que ms tarde en ejecutarse!
q Procesador multiciclo!
q Cada instruccin puede tardar ms de un ciclo en ejecutarse!
q CPI > 1!
q La duracin del ciclo de reloj es menor que para monociclo!
q Se establece que la duracin de un ciclo = duracin de la
etapa ms larga!
GSyC - El procesador
10
Pseudocdigo
Opcode
Funct
LW
LW RT,inmediato(RS)
100011
101011
SW
SW RT,inmediato(RS)
ADD
ADD RD,RS,RT
000000
100000
SUB
SUB RD,RS,RT
000000
100010
AND
AND RD,RS,RT
000000
100100
OR
OR RD,RS,RT
000000
100101
SLT
SLT RD,RS,RT
000000
101010
BEQ
BEQ RS,RT,destino
000100
GSyC - El procesador
11
Funcionamiento
y diseo de la ruta de datos
!
y la unidad de control
!
1. Anlisis del repertorio de instrucciones a ejecutar!
2. Establecer la metodologa de temporizacin!
3. Seleccionar los mdulos necesarios para operar
sobre y almacenar datos, y que formarn la ruta de
datos teniendo en cuenta el repertorio de
instrucciones y la metodologa de temporizacin!
4. Ensamblar la ruta de datos conectando los mdulos
escogidos e identificando los puntos de control!
5. Determinar los valores de los puntos de control
para cada instruccin del repertorio!
6. Disear la unidad de control!
7. Optimizar el diseo obtenido: segmentacin!
GSyC - El procesador
12
1. introduccin
Importancia del diseo del procesador
El rendimiento
di i t de
d un computador
t d est
t d
determinado
t
i d por ell titiempo que lla CPU ttarda
d
en ejecutar programas:
estructura de computadores
1. introduccin
Metodologa para el diseo de un procesador
Paso 1: Analizar el repertorio de instrucciones para obtener los requisitos de la ruta de datos
La ruta de datos debe incluir tantos elementos de almacenamiento como registros sean
visibles por el programador. Adems puede tener otros elementos de almacenamiento
transparentes.
La ruta de datos debe incluir tantos tipos de elementos operativos como tipos de
operaciones de clculo se indiquen en el repertorio de instrucciones
El significado de cada instruccin vendr dado por un conjunto de transferencias entre
registros. La ruta de datos debe ser capaz de soportar dichas transferencias.
Paso 2: Establecer la metodologa de temporizacin
Monociclo (CPI = 1): todas las transferencias de entre registros implicadas en una
instruccin se realizan en un nico ciclo de reloj.
Multiciclo (CPI > 1): las transferencias entre registros implicadas en una instruccin se
reparten entre varios ciclos de reloj.
Paso 3: Seleccionar el conjunto de mdulos (de almacenamiento, operativos e interconexin)
que forman la ruta de datos
Paso 4: Ensamblar la ruta de datos de modo que se cumplan los requisitos impuestos por el
repertorio, localizando los puntos de control
Paso 5: Determinar los valores de los puntos de control analizando las transferencias entre
registros
g
incluidas en cada instruccin.
Paso 6: Disear la lgica de control.
estructura de computadores
1. introduccin
Arquitectura MIPS: formato de la instruccin mquina de la
Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidas
en 3 formatos
f
de instruccin
diferentes:
f
31
Tipo R:
aritmtico-lgicas
Tipo I:
con memoria
salto
lt condicional
di i
l
Tipo J:
salto incondicional
26
21
16
op
6 bits
31
26
op
6 bits
31
26
op
6 bits
rs
5 bits
21
rs
5 bits
rt
5 bits
16
rt
5 bits
11
rd
5 bits
6
shamt
5 bits
0
funct
6 bits
0
inmediato
16 bits
0
direccin
26 bits
estructura de computadores
1. introduccin
Arquitectura MIPS: subconjunto del repertorio de instrucciones
Instrucciones con referencia a memoria (formato tipo I):
lw rt, inmed(rs)
sw rt, inmed(rs)
rd rs + rt, PC PC + 4
rd rs - rt , PC PC + 4
rd rs and rt , PC PC + 4
rd rs or rt , PC PC + 4
( si ( rs < rt ) entonces ( rd 1 )
en otro caso ( rd 0 ) ), PC PC+4
Clk
Setup
Hold
Setup
Hold
D t C
Dont
Care
.
.
.
.
.
.
estructura de computadores
.
.
.
.
.
.
32
32
PC
P
32
+
32
estructura de computadores
3
32
16
Zero
32
ALU
32
ALUctr
32
E
Extensin
de signo
PCWrite
32
<< 2
Memoria de instrucciones
Memoria de datos
32 registros
i
d
de datos:
d
visibles
i ibl por ell programador.
d
Contador de programa
2 Sumadores: para sumar 4 al PC, y para sumar al PC el valor inmediato de salto.
ALU: capaz de realizar suma
suma, resta
resta, and
and, or
or, comparacin de mayora e indicacin de que el
resultado es cero (para realizar la comparacin de igualdad mediante resta)
Extensor de signo: para adaptar el operando inmediato de 16 bits al tamao de palabra.
Desplazador a la izquierda: para implementar la multiplicacin por 4.
32
32
ALUctr
000
001
010
110
111
funcin
A and B
A or B
A+B
AB
1 si (A<B),
sino 0
busA
RA
busA
RB
RB
RW
B
Banco
de
rregistros
Registro 32
Registro 31
MUX
Registro 0
Registro 1
....
RW
Decodificado
or
5 a 32
RegWr
RA
0
1
C
Registro 0
D
C
Registro 1
31
32
busB
MUX
busB
busW
Registro 30
RegWr
D
C
Registro 31
BusW
us
Mecanismo de lectura
estructura de computadores
Mecanismo de escritura
10
estructura de computadores
MemWrite
ADDR
DR
DW
Memoria
de datos
ADDR
Memoria
de instrucciones
Se supondr dividida en dos para poder hacer dos accesos a memoria en el mismo ciclo:
Memoria de instrucciones
Memoria de datos
I t
Integrada
d d
dentro
t d
de lla CPU
CPU.
Direccionable por bytes, pero capaz de aceptar/ofrecer 4 bytes por acceso
1 entrada de direccin
1 salida de datos de 32 bits
1 entrada de datos de 32 bits (slo en la de datos)
1 entrada de control para seleccionar el tipo de operacin (lectura/escritura), slo en la de datos
Se supondr que se comporta temporalmente como el banco de registros (sncronamente) y que
tienen un tiempo de acceso menor que el tiempo de ciclo
DR
11
Actualizar
A
t li
ell contador
t d de
d programa para que apunte
t a la
l siguiente
i i t iinstruccin
t
i ((sumando
d
4 por ser una memoria direccionable por bytes y una arquitectura con tamao de palabra
de 32 bits
estructura de computadores
ADDR
Me
emoria de
insttrucciones
PC
DR
instruccin
12
RegWrite
ALUCtr
rt
RB
rd
RW
busW
estructura de computadores
busA
ALU
RA
Banco de
registros
instruccin
3
rs
busB
13
Valor antiguo
Clk-to-Q
Valor nuevo
Valor antiguo
ALUCtr
Valor antiguo
RegWrite
Valor antiguo
busA, B
busW
Valor antiguo
Retardo de la ALU
Valor nuevo
Valor antiguo
RegWrite
3
RA
rt
RB
rd
RW
busW
estructura de computadores
busA
ALU
rs
Banco de
registros
cronograma de una
operacin arimticoarimtico-lgica
instruccin
ALUCtr
busB
aqu se escribe
el registro
14
RegDst
ALUCtr
MemWrite
ALUSrc
RA
busW
ADDR
16
inmed
estructura de computadores
Exten
nsin
de signo
DW
Memoria
a de
datos
s
busB
ALU
MU
UX
rd
RW
MUX
X
RB
0
anco de
Ba
re
egistros
rt
MemtoReg
busA
32
MemRead
DR
MUX
rs
15
RegDst
ALUCtr
MemWrite
ALUSrc
RA
busW
ADDR
16
inmed
estructura de computadores
Exten
nsin
de s
signo
DW
Memoria
a de
datos
s
busB
ALU
MU
UX
rd
RW
MUX
X
RB
0
anco de
Ba
re
egistros
rt
MemtoReg
busA
32
MemRead
DR
MUX
X
rs
16
sii ( BR(
BR(rs)) = BR(
BR(rt)
t) ) entonces
t
( PC PC + 4
4SignExp(
Si E ( iinmed
d))
Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instruccin:
Comparar la igualdad de sus contenidos y en funcin del resultado:
No hacer nada o
S
Sumar
all contador
t d d
dell programa un desplazamiento
d
l
i t de
d 32 bit
bits obtenido
bt id a partir
ti de
d la
l
extensin del campo de operando inmediato (inmed) de la instruccin
<<2
MUX
X
PCSrc
RegDst
RegWrite
ALUCtr
ALUSrc
Zero
rd
inmed
estructura de computadores
RW
busW
busB
16
32
ALU
DR
busA
MUX
RB
Extensin
de signo
rt
Banco d
de
registros
s
RA
MUX
ADDR
Memoria de
instruccio
ones
PC
rs
17
<<2
M
MUX
PCSrc
R D t
RegDst
R W it
RegWrite
ALUCtr
MemWrite
ALUSrc
Zero
RA
Instruccin [15-0]
ADDR
16
DW
32
estructura de computadores
MemRead
DR
MUX
busW
ALU
busB
Memoria de
datos
Instruccin [15-11]
RW
MUX
busA
Extensin
de signo
RB
DR
MemtoReg
Banco d
de
registros
s
Instruccin [20-16]
MUX
ADDR
Memoria de
ones
instruccio
PC
Instruccin [25-21]
18
<<2
M
MUX
PCSrc=0
R D t 0
RegDst=0
R W it 1
RegWrite=1
ALUCtr=010
MemWrite=0
ALUSrc=1
Zero
RA
Instruccin [15-0]
ADDR
16
DR
DW
32
MemRead=1
MUX
busW
ALU
busB
Memoria de
datos
Instruccin [15-11]
RW
MUX
busA
Extensin
de signo
RB
DR
MemtoReg=1
Banco d
de
registros
s
Instruccin [20-16]
MUX
ADDR
Memoria de
ones
instruccio
PC
Instruccin [25-21]
19
<<2
M
MUX
PCSrc=0
R D t
RegDst
R W it 0
RegWrite=0
ALUCtr=010
MemWrite=1
ALUSrc=1
Zero
RA
Instruccin [15-0]
ADDR
16
DR
DW
32
MemRead=0
estructura de computadores
MUX
busW
ALU
busB
Memoria de
datos
Instruccin [15-11]
RW
MUX
busA
Extensin
de signo
RB
DR
MemtoReg
Banco d
de
registros
s
Instruccin [20-16]
MUX
ADDR
Memoria de
ones
instruccio
PC
Instruccin [25-21]
20
<<2
M
MUX
PCSrc=0
R D t 1
RegDst=1
R W it 1
RegWrite=1
ALUCtr=000
MemWrite=0
ALUSrc=0
Zero
RA
Instruccin [15-0]
ADDR
16
DR
DW
32
MemRead=0
Instruccin aritmticoaritmtico-lgicas
rd rs and rt, PC PC + 4
RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0
estructura de computadores
MUX
busW
ALU
busB
Memoria de
datos
Instruccin [15-11]
RW
MUX
busA
Extensin
de signo
RB
DR
MemtoReg=0
Banco d
de
registros
s
Instruccin [20-16]
MUX
ADDR
Memoria de
ones
instruccio
PC
Instruccin [25-21]
21
<<2
M
MUX
PCSrc=Zero
R D t
RegDst
R W it 0
RegWrite=0
ALUCtr=110
MemWrite=0
ALUSrc=0
Zero
RA
Instruccin [15-0]
ADDR
16
DR
MUX
busW
ALU
busB
Memoria de
datos
Instruccin [15-11]
RW
MUX
busA
Extensin
de signo
RB
DR
MemtoReg
Banco d
de
registros
s
Instruccin [20-16]
MUX
ADDR
Memoria de
ones
instruccio
PC
Instruccin [25-21]
DW
32
MemRead=0
estructura de computadores
22
Instruccin aritmticoaritmtico-lgicas
rd rs and rt,, PC PC + 4
RegDest 1, RegWrite 1, ALUsrc 0, ALUctr 000, PCSrc 0, MemWrite 0, MemRead 0, MemtoReg 0
estructura de computadores
23
ALUop
2
Branch
PCSrc
Contro
ol
princip
pal
Con
ntrol de
ALU
U (local)
ALUctr
funct
op
Zero
estructura de computadores
24
RegDst
Branch
MemRead
MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite
Zero
Instruccin [15
[15-0]
0]
busW
estructura de computadores
ADDR
16
Instruccin [5-0]
busB
DW
32
DR
MUX
Instruccin [15-11]
RW
ALU
A
MUX
DR
busA
Control
de ALU
RB
Extensiin
de signo
Instruccin [20-16]
Ban
nco de
regiistros
RA
MUX
X
ADDR
moria de
Mem
instru
ucciones
PC
Instruccin [25-21]
Memoria d
de
datos
Instruccin [31-26]
Control
principal
<<2
MU
UX
25
funct
ALUop ALUctr
00
010
00
010
01
110
11
010
11
110
11
000
11
001
11
111
XXXXXX
100000 (add)
100010 (sub)
000000 (tipo-R) 100100 (and)
100101 (or)
101010 (slt)
RegWrite
R
MemRead
M
MemWrite
M
Brach
B
ALUop
A
MemtoReg
M
ALUSrc
A
RegDst
R
100011 (lw)
0 1 1
101011 (sw)
X 1 X
000100 (beq)
X 0 X
000000 (ti
(tipo-R)
R) 1 0 0
ALUop1
ALUctr2
f3
f2
ALUctr
ALUctr1
funct
f1
ALUctr0
f0
op5
op4
op3
op2
op1
op0
Control principal
op
ALUop0
ALUop
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
00
00
01
11
10
tipo-R
Iw
sw
beq
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUop1
estructura de computadores
ALUop0
Procesador monociclo
Ruta
de datos del nanoMIPS monociclo!
!
q Contador de programa: PC!
q Memorias separadas de instrucciones y de datos: nunca se
accede al mismo recurso ms de una vez si la implementacin es
monociclo!
q Un nico banco de 32 registros: instrucciones tipo R, acceso
simultneo a dos registros!
q 4 entradas: 1 entrada de datos de 32 bits y 3 entradas de 5 bits
para la identificacin de registros!
q 2 salidas: dos salidas de datos de 32 bits!
q Dos sumadores!
q Para sumar 4 al PC!
q Para sumar el desplazamiento relativo al PC!
13
Procesador monociclo
14
Procesador monociclo
GSyC - El procesador
15
Procesador monociclo
Puntos
de control en la ruta de datos del nanoMIPS!
!
!
Instruccin
RegDest
RegWrite
ALUSrc
ALUOp
Load
00
Store
00
Artimtico-lgicas
10
BEQ
01
Instruccin
MemRead
MemWrite
PCSrc
MemtoReg
Load
Store
Artimtico-lgicas
0/1
BEQ
GSyC - El procesador
(segn
evaluacin de la
condicin de
salto)
16
Procesador monociclo
Ejemplo!
!
q Clculo de la frecuencia mxima de funcionamiento de un
procesador nanoMIPS monociclo!
q Datos:!
q Lectura de la memoria de instrucciones: 0,3 ns!
q Lectura de la memoria de datos: 0,35 ns!
q Escritura en la memoria de datos: 0,5 ns!
q Lectura y escritura en el banco de registros: 0,05 ns!
q Operacin aritmtico-lgica en la ALU: 0,25 ns!
q Suma para preparar el siguiente PC: 0,1 ns!
q Suma del PC y el desplazamiento del salto: 0,1 ns!
17
Procesador monociclo
q Decodificacin multinivel!
1. La U.C global decodifica la instruccin leyendo su
opcode!
2. Si se trata de una instruccin de tipo R, el control local
de la ALU realiza una segunda decodificacin leyendo
el campo Funct!
GSyC - El procesador
18
Procesador monociclo
GSyC - El procesador
19
Procesador monociclo
20
Procesador monociclo
!
qEntradas ALUOp, Funct!
qSalida Genera la seal ALUControl!
qSe puede implementar con cualquiera de
las metodologas de diseo tpicas de
circuitos combinacionales!
GSyC - El procesador
21
Procesador multiciclo
Procesador multiciclo!
!
qLos diseos monociclo no son eficientes,
por lo que no se emplean en la actualidad!
q Adaptacin del ciclo de reloj para ejecutar la
instruccin ms larga Impensable para
instrucciones de coma flotante, cuya duracin
es mucho mayor!
q Es casi imposible optimizar la ruta de datos!
q La mayor parte del tiempo los recursos del
procesador estn desaprovechados!
GSyC - El procesador
22
Procesador multiciclo
!
qSe utiliza una divisin del trabajo en
etapas tpica de los procesadores con
repertorio RISC!
qCada etapa est relacionada con el
hardware de la ruta de datos que se utiliza!
qCada etapa debe completarse en 1 ciclo de
reloj!
qSe reduce el periodo del procesador!
23
Procesador multiciclo
GSyC - El procesador
24
Procesador multiciclo
GSyC - El procesador
25
Procesador multiciclo
26
Procesador multiciclo
Ejemplo!
!
q Comparacin de una versin monociclo del nanoMIPS con
una versin multiciclo!
q Datos:!
q Lectura de la memoria: 0,3 ns!
q Escritura en la memoria: 0,45 ns!
q Lectura y escritura en el banco de registros: 0,05 ns!
q Operacin aritmtico-lgica en la ALU: 0,25 ns!
q Suma para preparar el siguiente PC: 0,1 ns!
27
Procesador multiciclo
!
qLos puntos de control no se pueden dar
como una tabla de verdad, ya que no se
mantienen constantes a lo largo de toda la
ejecucin!
qLos valores de las seales se van
modificando en los diferentes ciclos de reloj
y dependen de la etapa en la que se
encuentra la instruccin!
qSeales a generar: IorD, MemRead,
MemWrite, MemToReg, RegDst, RegWrite,
ALUSrcA, ALUSrcB, ALUOp, PCSrc,
PCWrite, PCWriteCond e IRWrite!
GSyC - El procesador
28
Procesador multiciclo
GSyC - El procesador
29
Procesador multiciclo
!
qUnidad de control global!
qCircuito secuencial!
qEntrada opcode!
qSe puede disear como mquina de
estados o mediante microprograma!
GSyC - El procesador
30
Procesador multiciclo
!
qTambin llamada cableada!
q8 estados que se ejecutan en un mximo de
cinco ciclos!
qLos ciclos F y D se ejecutan para todas las
instrucciones por igual!
qCada tipo de instruccin evoluciona por
unos estados diferentes!
qProblemas cuando se modifica una nica
instruccin, hay que redisear toda la
unidad de control!
GSyC - El procesador
31
Procesador multiciclo
GSyC - El procesador
32
Procesador multiciclo
Unidades
de control microprogramada!
!
q Memoria ROM que almacena vectores con el valor de las
seales de control que se deben generar en cada momento!
q Ejecutar una instruccin es equivalente a leer palabras de
esta memoria en un orden determinado!
q Cada palabra es una microinstruccin!
q El conjunto de micorinstrucciones que permiten ejecutar una
instruccin es un microprograma!
q Ventajas !
q Ms flexible!
q Ocupa menos rea!
q Desventaja!
q Ms lenta que la cableada!
33
Procesador multiciclo
GSyC - El procesador
34
Procesador multiciclo
q Codificacin vertical!
q Para evitar que sean demasiado largas, las
microinstrucciones se codifican!
q Se necesita un paso previo de decodificacin!
q 6 campos, cada uno codifica un grupo de seales de
control relacionadas entre s: control de la ALU, seleccin
de operandos 1 y 2, control del banco de registros y
control del PC!
q A estos campos se les aade la etiqueta de la
microistruccin y la informacin de secuencia!
q En el caso de nanoMIPS se emplea secuenciamiento
explcito!
GSyC - El procesador
35
Procesador multiciclo
Unidades
de control microprogramada!
!
!
!
!
!
!
!
!
!
!
Cmo cargar el PC del microprograma?!
q Opcin 0 siguiente instruccin!
q Opcin 1 traduce el opcode de la instruccin mquina a una
direccin de microprograma para instrucciones ALU, BEQ o acceso
a memoria!
q Opcin 2 traduce el opcode de la instruccin mquina a una
direccin de microprograma para instrucciones load o store!
q Opcin 3 permite ir a la microinstruccin 0!
GSyC - El procesador
36
Procesador multiciclo
!
qHoy da la microprogramacin ha
desaparecido casi por completo!
qExisten herramientas avanzadas para
disear complejas unidades de control con
millones de transistores. Estas
herramientas garantizan la ausencia de
errores de diseo!
qLas unidades de control cableadas tienen
un rendimiento significativamente mayor
que cualquier unidad microprogramada,
resultando ms competitivas!
GSyC - El procesador
37
Tratamiento de excepciones!
!
q Hasta ahora nos hemos centrado en un
funcionamiento correcto del procesador en todo
momento!
q El tratamiento de excepciones consiste en
transferir el control a otro programa qu:!
q Salve el estado del procesador cuando se produzca la
excepcin!
q Corrija la causa de la excepcin!
q Restaure el estado del procesador!
q Repita la ejecucin de la instruccin causante de la
excepcin para poder continuar con la ejecucin por el
punto en el que se encontraba!
38
Excepcin Vs Interrupcin!
!
q Excepcin: evento no planificado que interrumpe
la ejecucin de un programa!
q Interrupcin: una excepcin que proviene de fuera
del microprocesador!
Tipo de evento
Origen?
Terminologa MIPS
Peticin de E/S
Externo
Interrupcin
Interno
Excepcin
Desbordamiento aritmtico
Interno
Excepcin
Instruccin no definida
Interno
Excepcin
Ambos
Excepcin o interrupcin
GSyC - El procesador
39
Tipos de excepciones!
!
qInterrupciones de E/S !
qLlamadas al Sistema Operativo!
qPuntos de ruptura!
qCdigos de operacin invlidos!
qOverflow o desbordamiento en la ALU!
qFallos de pgina!
qAccesos a memoria no alineados!
qViolacin de zonas protegidas de memoria!
qFallos de hardware!
qFallos de alimentacin!
GSyC - El procesador
40
!
qRegistro Exception: almacena el cdigo
del tipo de excepcin para que la RTE
pueda leerlo!
qContador de programa de excepcin, EPC:
almacena PC - 4!
qRestador para realizar PC -4!
qSe debe cargar en el PC la direccin de
memoria donde comienza la RTE!
GSyC - El procesador
41
Seales de control !
!
qALU_overflow e Ilegal_opcode!
qException: para escribir el cdigo de las
excepciones en el registro Exception!
qExceptionWrite y EPCWrite: para controlar
la escritura en los dos nuevos registros!
qPCWrite: para controlar la carga del PC!
GSyC - El procesador
42
!
qSlo hay que aadir las nuevas seales al
circuito combinacional!
GSyC - El procesador
43
!
qModificar la mquina de estados con la
que se disea la unidad de control!
qAadir nuevos microprogramas a la
unidad de control microprogramada!
qNuevas bifurcaciones hacia estos estados en
las tablas de transferencia !
qNuevas microinstrucciones que activen las
nuevas seales de control en la memoria de
microprograma!
GSyC - El procesador
44
GSyC - El procesador
45