Sie sind auf Seite 1von 69

Departamento de Sistemas Telemticos y Computacin

(GSyC)

El procesador

Katia Leal Algara


katia@gsyc.es
http://gsyc.escet.urjc.es/~katia/

Introduccin

Objetivos

!
qPrincipios y tcnicas utilizadas en la
implementacin de un procesador!
q Ruta de datos!
q Ruta de control!

qNos centraremos en el estudio de una


arquitectura MIPS simplificada, el
nanoMIPS!

GSyC - El procesador

Mecanismo completo de ejecucin de una instruccin

Ejecucin de una instruccin !


q Fetch (F): buscar en memoria la instruccin
apuntada por el PC. Actualizacin del PC!
q Decode (D): decodificacin de la instruccin,
separar los diferentes campos. Si es necesario, se
leen 1 o 2 operandos de los registros!
q Execution (X): ejecucin de la operacin indicada
en el opcode!
q Memory Access (M): si es necesario, acceder a
memoria para leer o escribir!
q Writeback (W): si es necesario, se vuelca un
resultado a un registro!

GSyC - El procesador

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo I: Load/Store!


!

- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC

MI[PC]

- Decodificacin y lectura de registros


- Extensin de signo para inmediato

[RS]
ext(Inmediato)
Si es Store: [RD]

- Suma en la ALU del registro base +


el desplazamiento

[RS]+ext(Inmediato)

- Acceso a la direccin de memoria


calculada en la etapa anterior

Load:
MD[[RS]+ext(Inmediato)]
Store:
MD[[RS]+ext(Inmediato)] [RD]

- En caso se Load, se escribe el


contenido de memoria en el registro
RD

[RD] MD[[RS]+ext(Inmediato)]

GSyC - El procesador

PC PC+4

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo I: Aritmtico-Lgicas !


!
F

- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC

MI[PC]

- Decodificacin y lectura del registro


RS
- Extensin de signo para inmediato

[RS]

- La ALU realiza la operacin que


indique el opcode

[RS] OP ext(Inmediato)

- Se escribe el resultado de la
operacin en el registro RD

[RD] [RS] OP ext(Inmediato)

PC PC+4

ext(Inmediato)

GSyC - El procesador

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo I: Saltos condicionales !


!

- 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)

- Clculo de la direccin de salto: PC


+ Inmediato
- Evaluacin condicin de salto en RS
y RD
- Si evaluacin positiva, se carga el PC
con la direccin de salto

PC PC+4

cond ([RS],[RD])
Si con = TRUE
PC [PC] + ext(Inmediato)

M
W

GSyC - El procesador

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo I: Saltos incondicionales !


!

- Bsqueda en la MI de la instruccin
apuntada por PC
- Actualizacin del PC

- Decodificacin de la instruccin
- Lectura del registro RS

- Se carga el PC con el valor del


registro RS

MI[PC]
PC PC+4
[RS]
PC [RS]

M
W

GSyC - El procesador

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo R: Aritmtico-Lgicas !


!

- 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]

- La ALU realiza la operacin indicada


por la combinacin del opcode y del
campo Function

[RS] OP [RT]

- Se escribe el resultado de la
operacin en el registro RD

[RD] [RS] OP [RT]

PC PC+4

GSyC - El procesador

Ejemplo: ejecucin de las instrucciones del repertorio del MIPS32

Instrucciones tipo J: Saltos incondicionales !


con
direccionamiento relativo al PC !
!
F

- Bsqueda en la MI de la instruccin
apuntada por PC.
- Actualizacin del PC

- Decodificacin
- Lectura del registros RS
- Extensin de signo para Offset

- Se suma al PC el Offset para obtener


la direccin del salto
- Se carga el PC con el valor obtenido
para la direccin de salto

MI[PC]
PC PC+4
[RS]
ext(Offset)
[PC] + ext(Offset)
PC [PC] + ext(Offset)

M
W

GSyC - El procesador

Diseo de procesadores secuenciales

Diseo
de un procesador
!
q Dos grandes mdulos dentro del procesador!
q Ruta de datos combinacional!
q Unidad de control secuencial combinacional!

q Un procesador es un circuito digital!


q Parte combinacional + Parte secuencial!
q Una parte opera sobre valores y la otra contiene estado!
q ALU Vs Memoria, registros!

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

Diseo de procesadores secuenciales

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

Diseo de procesadores secuenciales

Caso de estudio: nanoMIPS


!
q Repertorio de instrucciones!

q Acceso a memoria: LW, SW (tipo I)!


q Operaciones aritmtico-lgicas: ADD, SUB, AND, OR,
SLT (tipo R)!
q Control de flujo: BEQ (tipo I)!
Instruccin

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

Diseo de procesadores secuenciales

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:

(tiempo de CPU) = (instrucciones por programa) CPI (tiempo de ciclo)


El diseo del procesador determina:
El tiempo de ciclo de reloj
Nmero de ciclos de reloj promedio por instruccin

Comnmente estos dos factores tienen una relacin inversa:


Procesador monociclo
1 ciclo por instruccin
Tiempo de ciclo largo
Procesador multiciclo
Varios ciclos por instruccin
Tiempo de ciclo corto

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

El significado de los campos es:


op:
p identificador de instruccin
rs, rt, rd: identificadores de los registros fuentes y destino
shamt: cantidad a desplazar (en operaciones de desplazamiento)
funct: selecciona la operacin aritmtica a realizar
inmediato: operando inmediato o desplazamiento en direccionamiento a registro
registro-base
base
direccin: direccin destino del salto

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)

rt Memoria( rs + SignExt( inmed ) ) , PC PC + 4


Memoria( rs + SignExt( inmed ) ) rt , PC PC + 4

Instrucciones aritmtico-lgicas con operandos en registros (formato tipo R)


add rd, rs, rt
sub rd, rs, rt
and rd, rs, rt
or rd
rd, rs
rs, rt
slt rd, rs, rt

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

Instrucciones de salto condicional (formato tipo I)


beq rs, rt, inmed

si ( rs = rt ) entonces ( PC PC + 4 + 4SignExp( inmed ) )


en otro caso PC PC + 4

1. El ciclo de instruccin comienza buscando la instruccin en memoria (fetch)


instruccin Memoria( PC )

2. En funcin del tipo de instruccin se realiza una de las anteriores operaciones


2
3. Se vuelve a comenzar
estructura de computadores

2. diseo de la ruta de datos ((monociclo))


Temporizacin monociclo
Ejecucin tpica (de una instruccin)
Todos los registros se cargan simultneamente (de modo selectivo)
Todos los valores se propagan a travs de las redes combinacionales hasta estabilizarse
en las entradas de los registros
Se repite indefinidamente el proceso
Todos los elementos de almacenamiento estn sincronizados al mismo flanco de reloj:
Tiempo de ciclo = Hold + Camino con retardo mximo + Setup + Clock Skew

Clk
Setup

Hold

Setup

Hold

D t C
Dont
Care

.
.
.

.
.
.

estructura de computadores

.
.
.

.
.
.

2. diseo de la ruta de datos ((monociclo))


Componentes de la ruta de datos
Para implementar
p
el subconjunto
j
del repertorio
p
del MIPS en una implementacin
p
monociclo se requieren (el tamao de palabra es de 32 bits):

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

2. diseo de la ruta de datos ((monociclo))


Componentes de la ruta de datos (cont.)
Los 32 registros se almacenan en un banco de registros. Dado que en las
instrucciones de tipo R, se requiere un acceso simultneo a 3 registros:
2 salidas de datos de 32 bits
1 entradas de datos de 32 bits
3 entradas
t d d
de 5 bit
bits para lla id
identificacin
tifi
i d
de llos registros
i t
1 entrada de control para habilitar la escritura sobre uno de los registros
1 puerto de reloj (slo determinante durante las operaciones de escritura, las de lectura
son combinacionales))

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

2. diseo de la ruta de datos ((monociclo))


Componentes de la ruta de datos (cont.)
La memoria tendr un comportamiento idealizado.

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

2. diseo de la ruta de datos ((monociclo))


Ensamblaje de la ruta de datos
La bsqueda de instrucciones implica:
Leer la instruccin ubicada en la direccin de la memoria de instrucciones indicada por
el contador de programa:

La ejecucin secuencial de programas implica:

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

2. diseo de la ruta de datos ((monociclo))


Ensamblaje de la ruta de datos (cont.)
Las instrucciones aritmtico lgicas (tipo-R) implican:
BR(rd) BR(rs) funct BR(rt)
Leer dos registros cuyos identificadores se ubican en los campos rs y rt de la instruccin:
Operar sobre ellos segn el contenido del campo de cdigo de operacin aritmtica (funct)
de la instruccin
Almacenar el resultado en otro registro cuyo identificador se localiza en el campo rd de la
instruccin

RegWrite
ALUCtr

rt

RB

rd

RW
busW

estructura de computadores

busA

ALU

RA

Banco de
registros

instruccin

3
rs

busB

13

2. diseo de la ruta de datos ((monociclo))


Clk
PC

Valor antiguo

Clk-to-Q
Valor nuevo

Rs, Rt, Rd,


Op Func
Op,

Valor antiguo

ALUCtr

Valor antiguo

RegWrite

Valor antiguo

busA, B
busW

Tiempo de acceso a memoria de instrucciones


Valor Nuevo
Retardo de la lgica de control
Valor nuevo
Valor nuevo
Tiempo de acceso al banco de registros
Valor nuevo

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

2. diseo de la ruta de datos ((monociclo))


Ensamblaje de la ruta de datos (cont.)
La instruccin de carga (lw) implica:
BR(rt) Memoria( BR(rs) + SignExt( inmed ) )
Calcular la direccin efectiva de memoria:
Leyendo el registro base cuyo identificador se ubica en el campo rs de la instruccin
Obteniendo un desplazamiento de 32 bits a partir de la extensin del campo de
operando inmediato (inmed) de la instruccin
Sumando base y desplazamiento.
Leer dato ubicado en la memoria de datos cuya direccin es la anteriormente calculada
Almacenar el dato ledo de memoria en el registro cuyo identificador se especifica en el
campo rt de la instruccin
RegWrite

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

2. diseo de la ruta de datos ((monociclo))


Ensamblaje de la ruta de datos (cont.)
La instruccin de almacenaje (sw) implica:
Memoria( BR(rs) + SignExt( inmed ) ) BR(rt)
Leer el dato almacenado en el registro cuyo identificador se especifica en el campo rt de la
instruccin
Calcular la direccin efectiva de memoria:
Leyendo el registro base cuyo identificador se ubica en el campo rs de la instruccin
Obteniendo un desplazamiento de 32 bits a partir de la extensin del campo de
operando inmediato (inmed) de la instruccin
Sumando base y desplazamiento.
Almacenar el dato ledo en la memoria de datos en la direccin anteriormente calculada
RegWrite

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

2. diseo de la ruta de datos ((monociclo))


Ensamblaje de la ruta de datos (cont.)
La instruccin de salto condicional (beq) implica

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. diseo de la ruta de datos ((monociclo))

<<2

M
MUX

PCSrc
R D t
RegDst

R W it
RegWrite
ALUCtr
MemWrite
ALUSrc

Zero

RA

Instruccin [15-0]

Ruta de datos monociclo

ADDR

16

DW
32

La ejecucin monociclo ha obligado a:


No usar ms de una vez por instruccin cada recurso. Duplicarlo si es necesario
Memoria de instrucciones y datos separadas
Aadir multiplexores cuando un valor pueda provenir de varias fuentes

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. diseo de la ruta de datos ((monociclo))

<<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]

Ruta de datos monociclo


Instruccin
de carga (lw)
( )

ADDR

16

DR

DW
32

MemRead=1

rt Memoria( rs + SignExt( inmed ) ), PC PC + 4


RegDest 0, RegWrite 1, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 0,
MemRead 1,
1 MemtoReg 1
estructura de computadores

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. diseo de la ruta de datos ((monociclo))

<<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

Ruta de datos monociclo


Instruccin de almacenaje (sw)
Memoria(( rs + SignExt(
g
( inmed ) ) rt,, PC PC + 4
RegDest X, RegWrite 0, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 1, MemRead 0, MemtoReg X

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. diseo de la ruta de datos ((monociclo))

<<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]

Ruta de datos monociclo

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. diseo de la ruta de datos ((monociclo))

<<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]

Ruta de datos monociclo

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

Instruccin de salto condicional (beq)


si ( rs = rt ) entonces ( PC PC + 4 + 4SignExp( inmed ) ) en otro caso PC PC + 4
RegDest X, RegWrite 0, ALUsrc 0, ALUctr 110, PCSrc Zero, MemWrite 0, MemRead 0, MemtoReg X

estructura de computadores

22

3. diseo del controlador ((monociclo))


Determinacin de los valores de los puntos de control
La tarea del controlador es:
Seleccionar las operaciones a realizar por los mdulos multifuncin (ALU, read/write, ...)
Controlar el flujo de datos, controlando la entrada de seleccin de los multiplexores y la seal de
carga de los registros
Instruccin de carga (lw)
rt Memoria( rs + SignExt( inmed ) ), PC PC + 4
RegDest 0,
0 RegWrite 1,
1 ALUsrc 1,
1 ALUctr 010,
010 PCSrc 0,
0 MemWrite 0,
0 MemRead 1,
1 MemtoReg 1

Instruccin de almacenaje (sw)


Memoria( rs + SignExt( inmed ) ) rt, PC PC + 4
RegDest X, RegWrite 0, ALUsrc 1, ALUctr 010, PCSrc 0, MemWrite 1, MemRead 0, MemtoReg X

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

Instruccin de salto condicional (beq)


si ( rs = rt ) entonces ( PC PC + 4 + 4SignExp( inmed ) ) en otro caso PC PC + 4
RegDest X, RegWrite 0, ALUsrc 0, ALUctr 110, PCSrc Zero, MemWrite 0, MemRead 0, MemtoReg X

estructura de computadores

23

3. diseo del controlador ((monociclo))


Control global vs. Control local
Todas las operaciones aritmticas comparten el mismo cdigo de operacin y durante su ejecucin todas
l seales
las
l generales
l d
de lla ruta
t d
de d
dato
t son iiguales.
l
P
Por ello,
ll utilizaremos:
tili
Un control principal para decodificar el campo de cdigo de operacin (op) y configurar
globalmente la ruta de datos
Un control local a la ALU que decodifique el campo de operacin aritmtica (funct) y seleccione la
operacin
i que debe
d b realizar
li
lla ALU
Adicionalmente en operaciones no aritmticas (lw, sw y beq) el control principal puede ordenar
alguna operacin a la ALU para calcular las EA o realizar comparaciones.
Utilizaremos la seal intermedia ALUop cuyo valor ser:
00 en operaciones con acceso a memoria
01 en operaciones de salto
11 en operaciones aritmticas
para controlar q
qu direccin debe cargar
g el PC se utilizar una seal intermedia Branch
Del mismo modo p
(activada durante la instruccin beq) a la que se har la y-lgica con la seal Zero que genera la ALU.

ALUop
2
Branch

PCSrc

Contro
ol
princip
pal

Con
ntrol de
ALU
U (local)

ALUctr

funct

op

Zero

estructura de computadores

24

3. diseo del controlador ((monociclo))

RegDst
Branch
MemRead
MemtoReg
ALUOp
MemWrite
ALUSrc
RegWrite

Zero

Instruccin [15
[15-0]
0]

busW

estructura de computadores

ADDR

16

Instruccin [5-0]

Ruta de datos monociclo + controlador

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

3. diseo del controlador ((monociclo))


Control de la ALU
op
100011 (lw)
101011 (sw)
000100 (beq)

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!

q Una ALU de enteros!


q BEQ, hacer una resta y comprobar si el resultado es cero!

q Un extensor de signo para extender el signo de los datos


inmediatos!
q Un desplazador a la izquierda de 2 posiciones para recuperar los
dos ceros al final del desplazamiento!
GSyC - El procesador

13

Procesador monociclo

Ruta de datos del nanoMIPS monociclo!


!
q Elementos necesarios para acceder y almacenar
instrucciones? Memoria de instrucciones, contador
de programa, sumador!
q Elementos necesarios para implementar
operaciones de ALU tipo R? Banco de registros y
ALU!
q Componentes necesarios para implementar carga y
almacenamiento? Banco de registros, ALU, memoria
de datos, extensor de signo para datos inmediatos!
q Elementos necesarios para implementar
instrucciones de salto (branch)? ALU para evaluar la
condicin, un sumador separado para calcular la
direccin de salto, un extensor de signo y un
desplazador a la izquierda de 2 bits!
GSyC - El procesador

14

Procesador monociclo

Ruta de datos del nanoMIPS 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!

Cul ser el periodo de reloj del procesador? Cul ser su


frecuencia mxima?!
fmax = 1 / Tmin = 0,8 GHz!
GSyC - El procesador

17

Procesador monociclo

Unidades de control del nanoMIPS monociclo!


!
q Unidad de control global!
q Decodifica el campo Opcode!
q Configuracin global de la ruta de datos!

q Unidad de control local para la ALU!


q Decodifica el campo Funct !
q Genera la seal ALU Control dependiendo de la
operacin concreta a realizar!

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

Ruta de datos y Unidad de Control del nanoMIPS monociclo!

GSyC - El procesador

19

Procesador monociclo

Unidad de control global del nanoMIPS monociclo!


!
q Entrada Opcode!
q Salidas Genera los valores adecuados para las
diferentes seales de control!
q PCSrc no se genera directamente!
q Cuando la instruccin es un salto, Branch = 1!
q Branch AND resultado evaluacin condicin!

q Las seales de control permanecen activas hasta


que finaliza el ciclo. Cuando llega una nueva
subida del flanco de reloj, se vuelve a comenzar el
proceso!
q Se suele disear mediante decodificadores y
puertas OR, lo cual facilita en gran medida la
decodificacin en el repertorio !
GSyC - El procesador

20

Procesador monociclo

Unidad de control local del nanoMIPS 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

Diseo de la ruta de datos de un 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!

q El CPI medio ser mayor que 1!


qCada instruccin tarda en ejecutarse tantos
ciclos como sea necesario!
GSyC - El procesador

23

Procesador multiciclo

Utilizacin de recursos en nanoMIPS mono y multiciclo!

GSyC - El procesador

24

Procesador multiciclo

Ruta de datos del nanoMIPS multiciclo!

GSyC - El procesador

25

Procesador multiciclo

Ruta de datos del nanoMIPS multiciclo!


!
q Etapa F Registro de instruccin IR!
q Etapa D Lectura de operandos, A y B!
q Etapa X Operandos fuente ALU en A y B!
q Etapa M De memoria a MDR!
q Etapa W De ALUOut a registro!
q No son necesarios sumadores extra!
q No son necesarias dos memorias separadas!
q Un mismo recurso puede usarse en diferentes
etapas de la ejecucin de una instruccin!
q Cuntas veces se utiliza la ALU en la ejecucin
de la instruccin BEQ?!
GSyC - El procesador

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!

Cul ser el periodo de reloj del procesador? Cul ser su


frecuencia mxima?!
fmax = 1 / Tmin = 2,2 GHz!
CPI multiciclo?!
q Load: 20%!
q Store: 10%!
q Aritmtico-lgicas: 35%!
q BEQ: 35%!
GSyC
! - El procesador

27

Procesador multiciclo

Puntos de control del 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

Ruta de datos y unidad de control del nanoMIPS multiciclo!

GSyC - El procesador

29

Procesador multiciclo

Unidades de control del nanoMIPS multiciclo!

!
qUnidad de control global!

qCircuito secuencial!
qEntrada opcode!
qSe puede disear como mquina de
estados o mediante microprograma!

qUnidad de control local de la ALU!

GSyC - El procesador

30

Procesador multiciclo

Unidades de control como mquina de estados!

!
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

Unidades de control como mquina de estados!

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!

q Recuperar 3 o 4 microinstrucciones de la memoria, llevarlas


al registro de microinstruccin (IR), dejar tiempo para que se
estabilicen las seales de control generadas, etc !
GSyC - El procesador

33

Procesador multiciclo

Unidades de control microprogramada!

GSyC - El procesador

34

Procesador multiciclo

Unidades de control microprogramada!


!
q Codificacin horizontal!
q Cada microinstruccin incorpora directamente los valores
que deben tomar las seales de control!

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

Unidades de control microprogramada!

!
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 en procesadores secuenciales

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!

q A este programa se le denomina Rutina de


Tratamiento de Excepcin o RTE!
GSyC - El procesador

38

Tratamiento de excepciones en procesadores secuenciales

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

Llamada al SSOO desde un


programa de usuario

Interno

Excepcin

Desbordamiento aritmtico

Interno

Excepcin

Instruccin no definida

Interno

Excepcin

Mal funcionamiento hardware

Ambos

Excepcin o interrupcin

GSyC - El procesador

39

Tratamiento de excepciones en procesadores secuenciales

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

Tratamiento de excepciones en procesadores secuenciales

Componentes hardware necesarios!

!
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

Tratamiento de excepciones en procesadores secuenciales

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

Tratamiento de excepciones en procesadores secuenciales

Unidad de control en el nanoMIPS monociclo!

!
qSlo hay que aadir las nuevas seales al
circuito combinacional!

GSyC - El procesador

43

Tratamiento de excepciones en procesadores secuenciales

Unidad de control en el nanoMIPS multiciclo!

!
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

Tratamiento de excepciones en procesadores secuenciales

Nuevos estados nanoMIPS multiciclo!

GSyC - El procesador

45

Das könnte Ihnen auch gefallen