casi todoslosexamenesenunsolofichero
DESCRIPTION
arquiTRANSCRIPT
Examen de TeoríaFundamentos de Computadores de Ingeniería InformáticaFacultad de Informática. Universidad de Las Palmas de GC
15 de diciembre de 2005
1. (2 puntos) Ha aparecido en el mercado una nueva versión de un procesadoren la que la única mejora con respecto a la versión anterior es una unidad decoma �otante mejorada que permite reducir el tiempo de las instruccionesde coma �otante a tres cuartas partes del tiempo que consumían antes.Suponga que en los programas que constituyen la carga de trabajo habitualdel procesador las instrucciones de coma �otante consumen un promediodel 13% del tiempo del procesador antiguo:
a) (0.75 puntos) ¾Cuál es la máxima ganancia de velocidad que puedeesperarse en los programas si se sustituye el procesador de la versiónantigua por el nuevo?
b) (1.25 puntos) ¾Cuál debería ser el porcentaje de tiempo de cálculo condatos en coma �otante (en la versión antigua del procesador) en susprogramas para esperar una ganancia máxima de 4?
2. (3 puntos) El tratamiento de las excepciones del procesador MIPS básicoconsiste en la escritura de la dirección de la instrucción causante de la ex-cepción en el registro EPC, la escritura en el registro Cause de la causade la excepción (0 para instrucción desconocida y 1 para desbordamien-to aritmético) y la ruptura del secuenciamiento de las instrucciones a ladirección 0x0C000000.Las �guras 1 y 2 son la ruta de datos y la especi�cación del control parael procesador MIPS básico.Realiza las modi�caciones de la ruta de datos y especi�ca el control me-diante una tabla de verdad para incluir el tratamiento de las excepcionestal y como ha sido de�nido anteriormente.
3. (2.0 puntos) Las �guras 3 y 4 representan la ruta de datos y la especi�cacióndel control para la implementación multiciclo del procesador MIPS básico
1
con la inclusión del hardware y control necesarios para tratar las excepcio-nes por instrucción desconocida y desbordamiento aritmético. Además, las�guras 5 y 6 especi�can el control microprogramado de la implementaciónmulticiclo del procesador MIPS básico. Realiza las modi�caciones necesa-rias del microprograma y del secuenciador del microprograma de la �gura7 para que incluya el tratamiento de excepción por desbordamiento arit-mético. Es necesario especi�car el contenido de las ROM de "dispatch"quehayan sido modi�cadas. El tratamiento de la excepción por instruccióndesconocida no es necesario incluirlo.
4. (0.5 puntos) Cambia el valor de los bits 3, 7, 9, 21, 29 (sin modi�car el restode los bits) de la posición de memoria etiquetada palabra y de contenido0xFF0F1235 almacenada en memoria a partir de la dirección 0x10000004.
5. (2.5 puntos) Diseña un programa en ensamblador que dado un vector deenteros V obtenga cuántos elementos de este vector están dentro del rangodeterminado por dos variables rango1 y rango2 (ambos inclusives). El pro-grama deberá inicializar los elementos del vector en memoria, una variableque almacenará el número de elementos que tiene ese vector y dos variablesdonde se almacenarán los rangos. También deberá reservar espacio para lavariable resultante.
2
PC
Inst
ruct
ion
mem
ory
Rea
dad
dres
s
Inst
ruct
ion
[31–
0]
Inst
ruct
ion
[20
16]
Inst
ruct
ion
[25
21]
Add
Inst
ruct
ion
[50]
Mem
toRe
gA
LUO
pM
emW
rite
Reg
Writ
e
Mem
Rea
dB
ranc
hR
egDs
t
ALU
Src
Inst
ruct
ion
[31
26]
4
1632
Inst
ruct
ion
[15
0]
0
0M u x0 1Co
ntro
l
Add
ALU
resu
lt
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Read
data
1
Read
data
2
Read
regi
ster
1
Read
regi
ster
2
Sign
exte
nd
M u x 1
ALU
resu
lt
Zero
PCSr
c
Dat
am
emor
yW
rite
data
Rea
dda
taM u x1
Inst
ruct
ion
[15
11]
ALU
cont
rol
Shift
left
2
ALU
Addr
ess
PC
Inst
ruct
ion
mem
ory
Rea
dad
dres
s
Inst
ruct
ion
[31–
0]
Inst
ruct
ion
[20
16]
Inst
ruct
ion
[25
21]
Add
Inst
ruct
ion
[50]
Mem
toRe
gA
LUO
pM
emW
rite
Reg
Writ
e
Mem
Rea
dB
ranc
PC
Inst
ruct
ion
mem
ory
Rea
dad
dres
s
Inst
ruct
ion
[31–
0]
Inst
ruct
ion
[20
16]
Inst
ruct
ion
[25
21]
Add
Inst
ruct
ion
[50]
Mem
toRe
gA
LUO
pM
emW
rite
Reg
Writ
e
Mem
Rea
dB
ranc
hR
egDs
t
ALU
Src
Inst
ruct
ion
[31
26]
4
1632
Inst
ruct
ion
[15
0]
0
0M u x0 1Co
ntro
l
Add
ALU
resu
lt
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Read
data
1
Read
data
2
Read
regi
ster
1
Re
hR
egDs
t
ALU
Src
Inst
ruct
ion
[31
26]
4
1632
Inst
ruct
ion
[15
0]
0
0M u x0 1Co
ntro
l
Add
ALU
resu
lt
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Read
data
1
Read
data
2
Read
regi
ster
1
Read
regi
ster
2
Sign
exte
nd
M u x 1
ALU
resu
lt
Zero
PCSr
c
Dat
am
emor
yW
rite
data
Rea
dda
taM u x1
Inst
ruct
ion
[15
11]
ALU
cont
rol
Shift
left
2
ALU
Addr
ess
Figura 1: Ruta de datos monociclo
3
Op5
-0 -
>(b
its 3
1-26
)00
000
00 D
10 0
011
35D
10 1
011
43D
00 0
100
4 DR
-For
mat
lwsw
beq
Reg
Dst
10
xx
AL
US
rc0
11
0M
emT
oR
eg0
1x
xR
egW
rite
11
00
Mem
Rea
d0
10
0M
emW
rite
00
10
Bra
nch
00
01
AL
UO
p1
10
00
AL
UO
p0
00
01
R-fo
rmat
Iwsw
beq
Op0
Op1
Op2
Op3
Op4
Op5
Inpu
ts
Out
puts
Reg
Dst
ALU
Src
Mem
toR
eg
Reg
Writ
e
Mem
Rea
d
Mem
Writ
e
Bra
nch
ALU
Op1
ALU
OpO
Imp
lem
enta
ción
con
PLA
R-fo
rmat
Iwsw
beq
Op0
Op1
Op2
Op3
Op4
Op5
Inpu
ts
Out
puts
Reg
Dst
ALU
Src
Mem
toR
eg
Reg
Writ
e
Mem
Rea
d
Mem
Writ
e
Bra
nch
ALU
Op1
ALU
OpO
R-fo
rmat
Iwsw
beq
Op0
Op1
Op2
Op3
Op4
Op5
Inpu
ts
Out
puts
Reg
Dst
ALU
R-fo
rmat
Iwsw
beq
Op0
Op1
Op2
Op3
Op4
Op5
Inpu
ts
Out
puts
Reg
Dst
ALU
Src
Mem
toR
eg
Reg
Writ
e
Mem
Rea
d
Mem
Writ
e
Bra
nch
ALU
Op1
ALU
OpO
Imp
lem
enta
ción
con
PLA
Figura 2: Control monociclo
4
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Out
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26] ]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Out
Figura 3: Camino de datos con excepciones5
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op=
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
A
'BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
Figura 4: Especi�cación del control con excepciones
6
C o n tro l A L U
A L U o p 1 A L U O p 0O p e ra c ió n
0 0 S u m a
0 1 R e s ta
1 0 F u n c . c o d e
S R C 2
A LU S rB 1 A LU S rcB 0O perac ión
0 0 B
0 1 4
1 0 E xtend
1 1 E xtS hft
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
S R C 1
A d d rS rc AO p e ra c ió n
0 P C
1 A
Figura 5: Campos y codi�cación de los valores de las microinstrucciones
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
Figura 6: Microprograma
7
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
Figura 7: Secuenciador del microprograma
8
Examen de TeoríaFundamentos de Computadores de Ingeniería InformáticaFacultad de Informática. Universidad de Las Palmas de GC
7 de septiembre de 2005
1. (3.0 puntos) La �gura 1 representa una ruta de datos alternativa para laimplementación multiciclo del procesador MIPS básico estudiado. En estaimplementación, los registros temporales A y B han sido eliminados conla intención de realizar en un único ciclo un acceso de lectura al banco deregistro y una operación ALU.La �gura 2 es la especi�cación del control multiciclo para el procesadorMIPS básico estudiado y es incluida aquí por si fuera de ayuda.Escribe la especi�cación completa de la nueva unidad de control para estanueva ruta de datos que incluya el control para las instruciones load, store,aritméticas y jump. El control para la instrucción beq no es necesariohacerlo.
2. (1.5 puntos) Considera que una ventaja de la nueva implementación delprocesador es la reducción de los ciclos por instrucción en una unidadpara todas las instrucciones, mientras que una desventaja es el aumentodel tiempo de ciclo. A partir de la mezcla de instrucciones de la tabla1, ¾Cuál es el máximo incremento de frecuencia permitido para la nuevaimplementación respecto a la implementación original (en tanto por ciento)para que la propuesta no haga más lento la ejecución del programa gcc?
Tipo Frecuencia (%)Tipo-R 41Load 24Store 14Saltos y bifurcaciones 21
Cuadro 1: Frecuencia simpli�cada de usos de las instrucciones para el programa gcc
3. (2.5 puntos) Las �guras 3 y 4 especi�can el control microprogramado de laimplementación multiciclo del procesador MIPS básico estudiado. Realizalas modi�caciones necesarias del microprograma para que sea válido parala ruta de datos de la �gura 1.
1
Figura 1: Camino de datos con excepciones2
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op=
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
A
'BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
Figura 2: Especi�cación del control con excepciones
3
C o n tro l A L U
A L U o p 1 A L U O p 0O p e ra c ió n
0 0 S u m a
0 1 R e s ta
1 0 F u n c . c o d e
S R C 2
A LU S rB 1 A LU S rcB 0O perac ión
0 0 B
0 1 4
1 0 E xtend
1 1 E xtS hft
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
S R C 1
A d d rS rc AO p e ra c ió n
0 P C
1 A
Figura 3: Campos y codi�cación de los valores de las microinstrucciones
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
Figura 4: Microprograma
4
Examen de TeoríaFundamentos de Computadores de Ingeniería InformáticaFacultad de Informática. Universidad de Las Palmas de GC
13 de julio de 2005
1. (3 puntos) La instrucción Move Conditional on Zero MOVZ rd, rs, rt esuna instrucción tipo R del repertorio de instrucciones del procesador MIPSque mueve condicionalmente el registro rs al registro rd cuando el registrort es igual 0. El formato de la instrucción es el siguiente:b31 . . . b26 b25 . . . b21 b20 . . . b16 b15 . . . b11 b10 . . . b6 b5 . . . b0
0 . . . 0 rs rt rd 0 . . . 0 0 0 1 0 1 0
a) (1.5 puntos) Añada los caminos de datos y las señales de control ne-cesarias al camino de datos multiciclo de la �gura 1 para la ejecuciónde esta instrucción.
b) (1.5 puntos) Indique las modi�caciones necesarias de la máquina deestados �nitos de la �gura 2 para la inclusión de la instrucción MOV Z.
2. (1.5 puntos) Una ventaja de incluir la instrucción MOVZ en el repertoriode instrucciones consiste en la posibilidad de sustituir cada pieza de códigocon la siguiente estructura:
bne rs, nocopiaradd rd, rt, r0
nocopiar: . . .por el código:
movz rd, rs, rtTen en cuenta que cuando hacemos esta sustitución disminuye el númerode instrucciones del programa y también el número de ciclos de ejecución(de 3 ciclos del beq más 4 ciclos del add pasamos a 4 ciclos del movz ).Considerando que esta mejora es aplicable sólo al 2 por ciento del totalde las instrucciones de salto y bifurcación, calcula la máxima mejora derendimiento introducida al incluir esta instrucción en el repertorio de ins-trucciones para el programa gcc que tiene la distribución de instruccionesdel cuadro 1.
1
Tipo Frecuencia (%)Tipo-R 41Load 24Store 14Saltos y bifurcaciones 21
Cuadro 1: Frecuencia simpli�cada de usos de las instrucciones para el programa gcc
3. (2.5 puntos) Las �guras 1 y 2 representan la ruta de datos y la especi�-cación del control para la implementación multiciclo del procesador MIPSbásico con la inclusión del hardware y control necesarios para tratar las ex-cepciones por instrucción desconocida. Además, las �guras 3 y 4 especi�canel control microprogramado de la implementación multiciclo del procesa-dor MIPS básico. Realiza las modi�caciones necesarias del microprogramay del secuenciador del microprograma de la �gura 5 para que incluya eltratamiento de excepción por instrucción desconocida. Es necesario especi-�car el contenido de las ROM de "dispatch"que hayan sido modi�cadas. Eltratamiento de la excepción por desbordamiento aritmético no es necesarioincluirlo.
2
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Out
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0
Shift
left
2
Mem
ory
Mem
Dat
a
Writ
eda
ta
M u x0 1
Inst
ruct
ion
[15–
11]
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sign
exte
nd
3216
Inst
ruct
ion
[25–
21]
Inst
ruct
ion
[20–
16]
Inst
ruct
ion
[15–
0]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26] ]
Inst
ruct
ion
regi
ster
ALU
cont
rol
ALU
resu
ltA
LUZ
ero
Mem
ory
data
regi
ster
A B
IorD
Mem
Re
ad
Mem
Wri
te
Mem
toR
eg
PC
Writ
eC
ond
PC
Writ
e
IRW
rite
Con
trol
Out
puts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0]
2628
Sh
iftle
ft2
PC
[31
-28]
1
Addr
ess
EPC
CO
0000
003
Cau
se
AL
UO
p
AL
US
rcB
AL
US
rcA
Re
gDst
PC
So
urce
Re
gWri
te
EP
CW
rite
IntC
ause
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Ca
useW
rite
10
1M u x
0 32
M u x0 1
M u x0 1
PC
M u x0 1
Reg
iste
rsW
rite
regi
ster
Writ
eda
ta
Re
adda
ta1
Re
adda
ta2
Rea
dre
gist
er1
Rea
dre
gist
er2
ALU
Out
Figura 1: Camino de datos con excepciones3
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=01
PC
Writ
eCon
dP
CS
ourc
e=
01
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=10
Reg
Dst
=1
Reg
Writ
eM
emto
Reg
=0
Mem
Writ
eIo
rD=
1M
emR
ead
IorD
=1
ALU
Src
A=
1A
LUS
rcB
=00
ALU
Op
=00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
00
Reg
Writ
eM
emto
Reg
=1
Reg
Dst
=0
ALU
Src
A=
0A
LUS
rcB
=11
ALU
Op
=00
Mem
Rea
dA
LUS
rcA
=0
IorD
=0
IRW
rite
ALU
Src
B=
01A
LUO
p=
00P
CW
rite
PC
Sou
rce
=00
Inst
ruct
ion
fetc
hIn
stru
ctio
nde
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op=
code
/R
egis
ter
fetc
h
Jum
pco
mpl
etio
nB
ranc
hco
mpl
etio
nE
xecu
tion
Mem
ory
addr
ess
com
puta
tion
Mem
ory
acce
ssM
emor
yac
cess
R-t
ype
com
plet
ion
Writ
e-ba
ckst
ep(Op
='L
W')
or(O
p=
'SW
')(O
p=
R-ty
pe)
(Op='BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
A
'BEQ')
(Op='J')
(Op = 'S
W')
(Op='LW')
4
01 9
86
2
711
105
3
Sta
rt
(Op = other)
Ove
rflow
Ove
rflo
w
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=0
Cau
seW
rite
ALU
Src
A=
0A
LUS
rcB
=01
ALU
Op
=01
EP
CW
rite
PC
Writ
eP
CS
ourc
e=
11
IntC
ause
=1
Cau
seW
rite
PC
Writ
eP
CS
ourc
e=
10
Figura 2: Especi�cación del control con excepciones
4
C o n tro l A L U
A L U o p 1 A L U O p 0O p e ra c ió n
0 0 S u m a
0 1 R e s ta
1 0 F u n c . c o d e
S R C 2
A LU S rB 1 A LU S rcB 0O perac ión
0 0 B
0 1 4
1 0 E xtend
1 1 E xtS hft
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
R e g is te r C o n tro l
R e g W rite R e g D s t M e m T o R e gO p e r .
1 1 0 W rite A L U
1 0 1 W rite M D R
M e m o ria
IR W rite M e m R e a d M e m W rite Io rDO p e r.
1 1 0 0 R e ad P C
0 1 0 1 R e ad A L U
0 0 1 1 W rite A L U
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fe tch
0 1 D ispatch1
1 0 D ispatch2
S R C 1
A d d rS rc AO p e ra c ió n
0 P C
1 A
Figura 3: Campos y codi�cación de los valores de las microinstrucciones
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
Figura 4: Microprograma
5
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
State
Op
Adder
1
PLA or ROM
Mux3 2 1 0
Dispatch ROM 1Dispatch ROM 2
0
AddrCtl
Address select logic
Instruction registeropcode field
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq .
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Dispatch ROM1Op [5:0] Nombre Valor
000000 R-Format R-Format1 (6)000010 jmp JUMP1 (9)000100 beq BEQ1 (8)100011 lw MEM1 (2)101011 sw MEM1 (2)
Dispatch ROM2Op [5:0] Nombre Valor
100011 lw LW2 (3)101011 sw SW2 (5)
Figura 5: Secuenciador del microprograma
6
Examen de Fundamentos de Computadores de IIFacultad de Informatica. Universidad de Las Palmas de GC
7 de septiembre de 2004
1. (0.75 puntos) El formato de instruccion de un procesadortiene6 bits parael codigo de operacion y10 para la direccion del operando. Suponiendo queuna instruccion de bifurcacion con direccionamiento relativo al contadorde programa, almacenada en la posicion530 (en decimal), origina un saltoa la posicion620 (en decimal), y si ademas el codigo de operacion de lainstruccion de salto es110011, justifica una posible codificacion binaria dedicha instruccion.
2. (1.25 puntos) En un procesador con instrucciones de0 direcciones (proce-sador con pila), ¿que expresion matematica calcula la secuencia de instruc-ciones?PUSH M [C]PUSH M [D]ADD
PUSH M [C]PUSH M [D]ADD
MULT
POP M [A]
3. Suponga que hubiera una instruccion MIPS llamadabcp, que copiara unbloque de palabras de una direccion a otra. Suponga que estainstruccionrequiera que la direccion del principio del bloque fuente sea el registrot1,la direccion destino este en el registrot2, y el numero de palabras a copiareste ent3 (que es≥ 0). Ademas suponga que los valores de estos registros,ası como el registrot4 puedan destruirse al ejecutar esta instruccion (paraque los registros puedan usarse como temporales).
(2 puntos)Escriba un programa en lenguaje en ensamblador MIPS sus-titutivo de la instruccionbcp para realizar la copia del bloque. ¿Cuantasinstrucciones se ejecutaran para copiar un bloque de100 palabras?Utilizando el CPI de las instrucciones en la realizacion multiciclo,¿cuantos ciclos se necesitan para copiarn palabras?
1
(2 puntos) Disene una estrategia para incluir la instruccionbcp al cami-no de datos de la figura 1 y a la especificacion del control de lafigura2. Probablemente se necesitara hacer algunos cambios en elcamino dedatos para realizar la instruccion eficientemente. De unadescripcionde los cambios propuestos y de como funciona el secuenciamiento dela instruccion.
(2 puntos) Modifique el formato original de las microinstruccionesMIPS (figura 3) y el microprograma inical (figura 4) para que incluyala instruccionbcp. Describa detalladamente como se extiende el mi-crocodigo para soportar estructuras de control mas complejas (comoun bucle) con microcodigo. ¿Ha cambiado el soporte para la instruc-cion bcp el tamano del codigo? Ademas de la instruccionbcp, ¿algunaotra instruccion se vera afectada por el cambio en el formato de ins-trucciones?
(2 puntos) Estime la mejora del rendimiento que se puede conseguiral realizar la instruccion en circuiterıa (respecto de lasolucion porprograma del apartado anterior) y explique de donde procede el incre-mento del rendimiento.
2
Shiftleft 2
PCMux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Instruction[15– 11]
Mux
0
1
Mux
0
1
4
Instruction[15– 0]
Signextend
3216
Instruction[25– 21]
Instruction[20– 16]
Instruction[15– 0]
Instructionregister
ALUcontrol
ALUresult
ALUZero
Memorydata
register
A
B
IorD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op[5– 0]
Instruction[31-26]
Instruction [5– 0]
Mux
0
2
Jumpaddress [31-0]Instruction [25– 0] 26 28
Shiftleft 2
PC [31-28]
1
1 Mux
0
3
2
Mux
0
1ALUOut
Memory
MemData
Writedata
Address
Shiftleft 2
PCMux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Instruction[15– 11]
Mux
0
1
Mux
0
1
4
Instruction[15– 0]
Signe
Shiftleft 2
PCMux
0
1
RegistersWriteregister
Writedata
Readdata 1
Readdata 2
Readregister 1
Readregister 2
Instruction[15– 11]
Mux
0
1
Mux
0
1
4
Instruction[15– 0]
Signextend
3216
Instruction[25– 21]
Instruction[20– 16]
Instruction[15– 0]
Instructionregister
ALUcontrol
ALUresult
ALUZero
Memorydata
register
A
B
Io
xtend
3216
Instruction[25– 21]
Instruction[20– 16]
Instruction[15– 0]
Instructionregister
ALUcontrol
ALUresult
ALUZero
Memorydata
register
A
B
IorD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op[5– 0]
Instruction[31-26]
Instruction [5– 0]
Mux
0
2
Jumpaddress [31-0]Instructi
rD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op[5– 0]
Instruction[31-26]
Instruction [5– 0]
Mux
0
2
Jumpaddress [31-0]Instruction [25– 0] 26 28
Shiftleft 2
PC [31-28]
1
1 Mux
0
3
2
Mux
0
1ALUOut
Memory
MemData
Writedata
Address
Fig
ura
1:C
amin
od
ed
atos
3
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchInstruction decode/
register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
='B
EQ')
(Op
='J
')
(Op
='SW
')
(Op
='L
W')
4
01
9862
753
Start
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1AL PCWrite
PCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchIn
USrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchInstruction decode/
register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R
struction decode/register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
='B
EQ')
(Op
='J
')
(Op
='SW
')
(Op
='L
W')
4
01
9862
753
Start
Figura 2: Especificacion del control
4
C o n tro l A L U
A L U o p 1 A L U O p 0O p e ra c ió n
0 0 S u m a
0 1 R e s ta
1 0 F u n c . co d e
SR C 2
ALU S rB 1 A LU SrcB0O perac ión
0 0 B
0 1 4
1 0 E xtend
1 1 E xtS hft
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq.
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq.
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
S R C 1
A d d rS rc AO p e ra c ió n
0 P C
1 A
Figura 3: Campos y codificacion de los valores de las microinstrucciones
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
Figura 4: Microprograma
5
Examen de TeorıaFundamentos de Computadores de Ingenierıa Informatica
Facultad de Informatica. Universidad de Las Palmas de GC14 de julio de 2004
1. (0.5 puntos) Disena el formato de las instrucciones de un maquina de registro-memoria que tiene las siguientes caracterısticas:
El repertorio de instrucciones contiene en total32 instrucciones, de lascuales16 son instrucciones del tipo:
• op Ry, (Rx); esto esRy ← Ry op M [Rx]
Otras8 instrucciones son del tipo:
• op Ry, Rx; esto esRy ← Ry op Rx
Y las otras8 restantes estan todavıa por especificar.
Solo admite para acceder a la memoria el modo de direccionamientoindirecto por registro.
Tiene un banco de8 registros.
En el formato de la instruccion se especifican3 campos: el primero,para el codigo de operacion; el segundo, para especificar el registroque es el segundo operando fuente o que contiene la direccion de me-moria del segundo operando fuente; y el tercero, para especificar elprimer registro fuente que es ademas siempre registro destino en lasinstrucciones especificadas.
2. (2.0 puntos) Para el repertorio de instrucciones del problema anterior:
(1.5 puntos) Disena una ruta de datos monociclo que soporte la ejecu-cion de las instrucciones especificadas. Explica claramente el nombrey la funcionalidad de cada una de las senales de control en el camino yel funcionamiento de cada uno de los bloques funcionales que utilices.
(0.5 puntos) Especifica la unidad de control para esa ruta de datosmediante una tabla de verdad o metodo equivalente.
3. (3 puntos) Las figuras 1 y 2 muestran la estructura y la especificacion delcontrol de la implementacion basica multiciclo del procesador MIPS R3000.
1
En esta implementacion tanto la instruccion de bifurcacion jump como lade salto condicionalbeq tardan3 ciclos en ser ejecutadas por el procesa-dor. Nuestro objetivo como disenadores de este procesador es considerar laimplementacion de estas dos instrucciones en dos ciclos.
a) (1.5 puntos) Anada los caminos de datos y las senales de control ne-cesarias al camino de datos multiciclo de la figura 1 para que ambasinstrucciones sean ejecutadas por el procesador en2 ciclos.
b) (1.5 puntos) Indique las modificaciones necesarias a la maquina deestados finitos de la figura 2 para que ambas intrucciones sean ejecu-tadas por el procesador en2 ciclos. Especifica claramente la maquinade estados finitos modificada.
4. (3 puntos) En nuestra companıa ademas de la version cableada del proce-sador basico MIPS R3000, tenemos tambien una version que implementael control mediante la tecnica de microprogramacion. Las figuras 3 y 4 re-sumen la especificacion del control mediante la tecnica de microprograma-cion.
a) (2 puntos) Realiza las modificaciones necesarias sobre las figuras 3 y4 para que ahora el control microprogramado funcione para el caminode datos modificado para que las instrucciones debifurcacion y saltofuncionen en2 ciclos. En el caso que algun cambio sea necesario,especifica los nuevos valores de las tablas deDispatch.
b) (1 punto) Codifica en binario o en hexadecimal las microinstruccionesque hayas modificado o anadido.
5. (1.5 puntos) Cabe esperar que las modificaciones del procesador MIPS R3000para que realice lossaltosy lasbifurcacionesen tan solo 2 ciclos disminu-ya la frecuencia de reloj del procesador. Por este motivo, antes de seguiradelante con nuestro procesador modificado, estamos interesados en saber:
a) (1 punto) ¿Cual es la frecuencia mınima (en relacion con la frecuenciaactualfactual a partir de la cual deja de ser interesante el cambio queproponemos?
b) (0.5 puntos) ¿Cual es la frecuencia mınima necesaria para una frecuen-cia original de 100MHz?
2
Tipo Frecuencia ( %)Tipo-R 41Load 24Store 14Saltos y bifurcaciones 21
Cuadro 1: Frecuencia simplificada de usos de las instrucciones para el programagcc
Para realizar el calculo de esta frecuencia mınima, al menos de manera apro-ximada, disponemos de los datos de la mezcla de instrucciones del progra-magccen la tabla 1.
3
Shi
ftle
ft2
PC
M u x0 1
Reg
iste
rsW
rite
reg
iste
r
Writ
ed
ata
Rea
dda
ta1
Rea
dda
ta2
Re
ad
reg
iste
r1
Re
ad
reg
iste
r2
Inst
ruct
ion
[15–
11]
M u x0 1
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sig
nex
ten
d
32
16
Inst
ruct
ion
[25
–21
]
Inst
ruct
ion
[20
–16
]
Inst
ruct
ion
[15
–0]
Inst
ruct
ion
reg
iste
r
ALU
con
tro
l
ALU
resu
ltA
LUZ
ero
Mem
ory
da
tare
gis
ter
A B
IorD
Me
mR
ea
d
Me
mW
rite
Me
mto
Reg
PC
Writ
eCo
nd
PC
Writ
e
IRW
rite
ALU
Op
AL
US
rcB
AL
US
rcA
Reg
Dst
PC
So
urce
Re
gW
rite
Co
ntro
l
Ou
tpu
ts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0
]2
628
Sh
iftle
ft2
PC
[31
-28
]
1
1M u x
0 32
M u x0 1A
LUO
ut
Mem
ory
Mem
Dat
a
Wri
teda
ta
Ad
dres
s
Shi
ftle
ft2
PC
M u x0 1
Reg
iste
rsW
rite
reg
iste
r
Writ
ed
ata
Rea
dda
ta1
Rea
dda
ta2
Re
ad
reg
iste
r1
Re
ad
reg
iste
r2
Inst
ruct
ion
[15–
11]
M u x0 1
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sig
ne
Shi
ftle
ft2
PC
M u x0 1
Reg
iste
rsW
rite
reg
iste
r
Writ
ed
ata
Rea
dda
ta1
Rea
dda
ta2
Re
ad
reg
iste
r1
Re
ad
reg
iste
r2
Inst
ruct
ion
[15–
11]
M u x0 1
M u x0 1
4
Inst
ruct
ion
[15–
0]
Sig
nex
ten
d
32
16
Inst
ruct
ion
[25
–21
]
Inst
ruct
ion
[20
–16
]
Inst
ruct
ion
[15
–0]
Inst
ruct
ion
reg
iste
r
ALU
con
tro
l
ALU
resu
ltA
LUZ
ero
Mem
ory
da
tare
gis
ter
A B
Io
xten
d
32
16
Inst
ruct
ion
[25
–21
]
Inst
ruct
ion
[20
–16
]
Inst
ruct
ion
[15
–0]
Inst
ruct
ion
reg
iste
r
ALU
con
tro
l
ALU
resu
ltA
LUZ
ero
Mem
ory
da
tare
gis
ter
A B
IorD
Me
mR
ea
d
Me
mW
rite
Me
mto
Reg
PC
Writ
eCo
nd
PC
Writ
e
IRW
rite
ALU
Op
AL
US
rcB
AL
US
rcA
Reg
Dst
PC
So
urce
Re
gW
rite
Co
ntro
l
Ou
tpu
ts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
cti
rD
Me
mR
ea
d
Me
mW
rite
Me
mto
Reg
PC
Writ
eCo
nd
PC
Writ
e
IRW
rite
ALU
Op
AL
US
rcB
AL
US
rcA
Reg
Dst
PC
So
urce
Re
gW
rite
Co
ntro
l
Ou
tpu
ts
Op
[5–
0]
Inst
ruct
ion
[31-
26]
Inst
ruct
ion
[5–
0]
M u x
0 2
Jum
pad
dre
ss[3
1-0
]In
stru
ctio
n[2
5–0
]2
628
Sh
iftle
ft2
PC
[31
-28
]
1
1M u x
0 32
M u x0 1A
LUO
ut
Mem
ory
Mem
Dat
a
Wri
teda
ta
Ad
dres
s
Figura 1: Camino de datos
4
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchInstruction decode/
register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
='B
EQ')
(Op
='J
')
(Op
='SW
')
(Op
='L
W')
4
01
9862
753
Start
PCWritePCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1AL PCWrite
PCSource = 10
ALUSrcA = 1ALUSrcB = 00ALUOp = 01PCWriteCond
PCSource = 01
ALUSrcA =1ALUSrcB = 00
ALUOp= 10
RegDst = 1RegWrite
MemtoReg = 0
MemWriteIorD = 1
MemReadIorD = 1
ALUSrcA = 1ALUSrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchIn
USrcB = 10ALUOp = 00
RegDst=0RegWrite
MemtoReg= 1
ALUSrcA = 0ALUSrcB = 11ALUOp = 00
MemReadALUSrcA = 0
IorD = 0IRWrite
ALUSrcB = 01ALUOp = 00
PCWritePCSource = 00
Instruction fetchInstruction decode/
register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R
struction decode/register fetch
Jumpcompletion
BranchcompletionExecution
Memory addresscomputation
Memoryaccess
Memoryaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
='B
EQ')
(Op
='J
')
(Op
='SW
')
(Op
='L
W')
4
01
9862
753
Start
Figura 2: Especificacion del control
5
C o n tro l A L U
A L U o p 1 A L U O p 0O p e ra c ió n
0 0 S u m a
0 1 R e s ta
1 0 F u n c . co d e
SR C 2
ALU S rB 1 A LU SrcB0O perac ión
0 0 B
0 1 4
1 0 E xtend
1 1 E xtS hft
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq.
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
Control PCWrite
PCSrc1 PcSrc0 PCwrite PCWrtCondOper.
0 0 1 0 ALU
0 1 0 1 ALUOut-Cond
1 0 1 0 Jump address
S ec
A ddrC tl1 A ddrC tl0O perac ión
1 1 S eq.
0 0 Fetch
0 1 D ispatch1
1 0 D ispatch2
S R C 1
A d d rS rc AO p e ra c ió n
0 P C
1 A
Figura 3: Campos y codificacion de los valores de las microinstrucciones
Estado Etiqueta ControlALU
SRC1 SRC2 ControlRegistros
Memoria ControlPCWrite
Secuenc.
0 Fetch Add PC 4 Read PC ALU Seq.1 Add PC Extshft Read Dispatch 12 Mem1 Add A Extend Dispatch 23 LW2 Read ALU Seq4 Write MDR Fetch5 SW2 Write ALU Fetch6 Rformat1 Func
CodA B Seq
7 Write ALU Fetch8 BEQ1 Subt A B ALUOut-
condFetch
9 JUMP1 JumpAddress
Fetch
Control ALU SRC1 SRC2 ControlRegistro Memoria Control PCWrite Sec.
Alu
op1
Alu
op0
Alu
Src
A
ALU
Src
B1
ALU
Src
B0
Reg
Writ
e
Reg
Dst
Mem
ToR
eg
IRW
rite
Mem
Rea
d
IorD
Mem
Writ
e
PC
Sou
rce1
PC
Sou
rce0
PC
Writ
e
PC
Writ
eCon
d
Add
rCtl1
Add
rCtl0
Figura 4: Microprograma
6
Examen de PracticasFundamentos de Computadores de Ingenierıa Informatica
Facultad de Informatica. Universidad de Las Palmas de GC14 de julio de 2004
Las figuras 1, 2 y 3, muestran parte del estado en un instante determinado de una maquinaMIPS R2000. La figura 1 muestra el valor de los registros, la figura 2 indica el contenido de lamemoria y la figura 3 corresponde al segmento de texto.
1. (5 puntos) Escribe el codigo en ensamblador de la secuencia de instrucciones ejecutadas des-de el estado actual hasta que el registro contador de programaPC toma el valor 0x0040009C.Utiliza si lo consideras conveniente la tabla de codigos de operacion 1
2. (2.5 puntos) ¿Cual es el contenido de los registros despues de que el registroPC tome elvalor 0x0040009C?
3. (2.5 puntos) ¿Cual es el contenido de la memoria despues de que el registroPC tome elvalor 0x0040009C?
nemonico cod-op. nemonico cod-op. campo funcionlw rt, rs, inmediato 0x23 sw rt, rs, inmediato 0x2Bori rt, rs, inmediato 0x0D addu rd, rs, rt 0 0x21addiu rt, rs, inmediato 0x09 mult rt, rs 0 0x18slti rt, rs, inmediato 0x0A slt rd, rs, rt 0 0x2Abne rs, rt, inmdiato 0x05 bgez rs, inmediato 0x01
jr rs 0 8
Cuadro 1: Tabla de codigos de operacion
Figura 1: Contenido de los registros
1
Figura 2: Contenido del segmento de datos
Figura 3: Lenguaje maquina de un procedimiento
2
Examen Fundamentos de Computadores de la IngenierıaInformatica
Facultad de Informatica. Universidad de Las Palmas de GranCanaria
12 de diciembre de 2003
1. (2.5 puntos) Para un computador de longitud de palabra de36 bits, disena(razonablemente) los formatos de las instrucciones para que permitan cons-truir un repertorio de instrucciones con:
7 instrucciones con dos direcciones de15 bits y una de3 bits.
500 instrucciones con una direccion de15 bits y una de3 bits
50 instrucciones con0 direcciones.
2. (2.5 puntos) Se esta interesado en2 realizaciones de una maquina, una conuna circuiterıa especial de punto flotante y otra sin ella. Considerese unprogramaP , con la siguiente mezcla de operaciones:
multiplicacion en punto flotante 10 %suma en punto flotante 15 %division en punto flotante 5 %instrucciones de enteros 70 %
La maquina MPF (maquina con punto flotante) tiene circuiterıa de puntoflotante y puede por lo tanto realizar operaciones de punto flotante directa-mente. Se requiere el siguiente numero de ciclos de reloj para cada tipo deinstruccion:
multiplicacion en punto flotante 6suma en punto flotante 4division en punto flotante 20instrucciones de enteros 2
La maquina MSPF (maquina sin punto flotante) no tiene circuiterıa de puntoflotante y por lo tanto debe emular las operaciones de punto flotante usandoinstrucciones de enteros. Las instrucciones de enteros necesitan todas dosciclos de reloj. El numero de INSTRUCCIONES de enteros necesarias pararealizar cada operacion de punto flotante es el siguiente:
1
multiplicacion en punto flotante 30suma en punto flotante 20division en punto flotante 50
Ambas maquinas tienen una frecuencia de reloj de100MHz.
a) Calcula la tasa de MIPS (millones de instrucciones por segundo) paraambas maquinas.
b) Si la maquina MPF necesita300 millones de instrucciones para un pro-grama, ¿cuantas instrucciones de enteros requerira la maquina MSPFpara el mismo programa?
c) ¿Cual es el tiempo de ejecucion para dicho programa de300 millonesde instrucciones en la maquina MPF y MSPF?
3. (2.5 puntos) Escribe un programa en ensamblador MIPS que inicialice unvector de palabras con la constante0. Asume que la direccion de comienzodel vector esta en el registroa0 y el tamano del vector de palabras esta en elregistroa1.
4. (2.5 puntos) Se quiere anadir la instruccion jm (jump memory, salto a me-moria) al camino de datos multiciclo. Su formato de instruccion es igualal de lw excepto que el camport no se utiliza porque el dato cargado dememoria se coloca en elPC en vez de hacerlo en registro destino.
a) Anada los caminos de datos y las senales de control necesarias al ca-mino de datos multiciclo.
b) Indica las modificaciones necesarias a la maquina de estados finitos.Especifica claramente cuantos ciclos necesita la nueva instruccion pa-ra ejecutarse en su camino de datos y la maquina de estados finitosmodificada.
2
Figura 1: Camino de datos multiciclo.
3
Figura 2: Especificacion del control para la ruta de datos multiciclo.
4
Convocatoria extraordinaria de septiembre (septiembre 2003). Examen deFCI. Duracion 2 horas.
1. (1 punto) Utilizando reiteradamente las leyes de Morgan, obtener unaexpresion en forma de suma de productos para las siguientes funciones:
a) F = (x + y)(xy + z)
b) G = (xy + xz) (x + yz)
2. (1 punto) Obtener una expresion como suma de minterms y otra comoproducto de maxterms para la siguiente funcion:
f(x, y, z) = xy + xz + yz
3. (1 punto) Dada la siguiente funcion como suma de minterms, pasarla aproducto de maxterms. Minimizar la expresion resultante de la funcionempleando maxterms.
f(x, y, z, w) =∑
m(0, 2, 3, 4, 5, 6, 11)
4. (2 puntos) Obtener el resultado de las siguientes operaciones binarias:
a) 110101 + 1001001
b) 1110010110− 101011001
c) 0,01001× 101,1001
d) 1011,001/0,1101
5. (2.5 puntos) Minimizar la tabla de estado utilizando uno de los dosmetodos estudiados.
0 1 2 3A B,1 A,1 E,0 D,0B F,1 C,0 E,1 A,1C I,1 B,0 F,1 I,1D F,1 B,0 I,1 A,1E H,0 A,1 I,1 F,0F B,0 A,1 I,1 F,0G B,1 A,1 F,0 I,0H E,1 C,0 F,1 A,1I B,0 A,1 G,1 I,0
1
6. (2.5 puntos) Disena con biestables tipo D un sistema secuencial sıncronocon dos entradas, E y C, y dos salidas, Z y S. Si durante tres pulsos dereloj se mantiene C=1, entonces Z = E y S = 1; si durante tres pulsosde reloj se mantiene C = 0, entonces Z = E y S = 1; en cualquier otrocaso ha de ser Z = 0 y S = 0.
2
Examen Fundamentos de Computadores de la Ingenierıa InformaticaFacultad de Informatica. Universidad de Las Palmas de Gran Canaria
Septiembre de 2003
1. (2.5 puntos) Comparar las maquinas de 0, 1 y 2 direcciones, escribiendo progra-mas para calcular la expresion:
X = (A + B · C)/(D − E · F −G ·H)
Para cada una de los tres tipos de maquinas el repertorio de instrucciones dispo-nibles es el siguiente:
0 direcciones 1 direcciones 2 direccionesPUSH M LOAD M MOVE X, YPOP M STORE M SUM X, YSUM SUM M RES X, YSUB SUB M MUL X, YMUL MUL M DIV X, YDIV DIV M
donde M es una direccion de memoria de 16 bits y X e Y son direcciones de 16bits o numeros de registros de 4 bits.
La maquina de 0 direcciones usa una pila, la de 1 direccion usa un acumulador yla de dos direcciones tiene 16 registros e instrucciones en las que cada operandopuede estar en un registro o en memoria. Suponiendo codigos de operacion de8 bits y longitudes de instruccion que son multiplos de 4 bits. ¿Cuantos bitsnecesita cada computadora para representar el programa que calcula el valor deX?
2. (2.0 puntos) Asuma la personalidad del disenador jefe de un nuevo procesador.El diseno del procesador y el compilador estan completados, y ahora se debedecidir si se fabrica el diseno actual tal y como esta o se utiliza tiempo adicionalpara mejorarlo. Se discute el problema con el grupo de ingenierıa de circuitos yse llega a las siguientes opciones:
Dejar el diseno tal y como esta. A esta maquina base se le da el nombrede Mbase. Tiene una frecuencia de reloj de 500MHz y se han tomado lassiguientes medidas usando un simulador:
Tipo de instruccion CPI FrecuenciaA 2 40 %B 3 25 %C 3 25 %D 5 10 %
Optimizar la circuiterıa. El grupo de ingenierıa de circuitos indica que pue-de mejorar el diseno del procesador para dar una frecuencia de 600MHz.A esta maquina se le da el nombre Mopt. Se han tomado las siguientesmedidas usando un simulador para Mopt:
1
Tipo de instruccion CPI FrecuenciaA 2 40 %B 3 25 %C 3 25 %D 4 10 %
a) ¿Cual es el CPI para cada maquina? (0.5 puntos)
b) ¿Cuales son las tasas de MIPS originales para Mbase y Mopt? (0.5 puntos)
c) ¿Cuanto mas rapida es Mopt que Mbase? (1.0 puntos)
3. (1.5 puntos) El procedimientostrcpy copia la cadenay en la cadenaxusando la convencion de C de terminacion con byte nulo:
void strcpy( char x[ ] , char y[ ] )
{
int i;
i = 0;
while ( ( x[ i] =y[ i] ) ! =0) /* copia y comprueba el byte */
i = i+1;
}
4. (1.5 puntos) Se quiere anadir la instruccion jm (jump memory o salto a memo-ria) al camino de datos multiciclo. El formato de la nueva instruccion es igualal de la instruccion lw excepto que el camport no se utiliza porque el da-to cardado de memoria se coloca en el PC en lugar de escribirlo en el registrodestino. Anada los caminos de datos y las senales de control necesarias al cami-no de datos multiciclo de la figura 1, e indique las modificaciones necesarias ala maquina de estados finitos de la figura 2. Intente encontrar una solucion queminimice el numero de ciclos de reloj requeridos para la nueva instruccion. es-pecifique claramente cuantos ciclos necesita la nueva instruccion para ejecutarseen el camino de datos con la maquina de estados finitos modificados.
5. (2.5 puntos) Anada los caminos de datos y las senales de control necesarias alcamino de datos multiciclo de la figura 1 y las modificaciones del diagrama deestados de la figura 2 para gestionar las excepciones debidas a instrucciones nodefinidas o desbordamientos aritmeticos. Explica tambien como el procesadortrata una excepcion.
2
Figura 1: Camino de datos multiciclo.
3
Figura 2: Especificacion del control para la ruta de datos multiciclo.
4
Examen Fundamentos de Computadores de la Ingenierıa InformaticaFacultad de Informatica. Universidad de Las Palmas de Gran Canaria
14 de julio de 2003
P1 P2 P3 P4 P51.75 2.5 1 1.75 3
1. 1.75 puntos. Un computador tiene palabras de24 bits. Los operandos se pueden direccionarde las formas siguientes:
Registro (R): se requieren4 bits.
Memoria (M): se requieren4 bits para el registro base y9 para el desplazamiento
Inmediato (I):9 bits.
a) Disenar los formatos de instrucciones necesarios para tener un repertorio con2 instruc-ciones de M-I,63 instrucciones de M-R,15 instrucciones de R-I y64 instrucciones deR-R.
b) ¿Variaran los formatos disenados en el apartado anterior si en las especificaciones delmismo repertorio de instrucciones nos piden14 instrucciones de R-I en vez de15?
2. 2.5 puntos. Considere el siguiente fragmento de codigo C:
for ( i=0; i<=1000; i=i+1) { a[ i] = b[ i] + c}
Suponga quea y b son vectores de palabras y la direccion base dea esta en el registro$a0 y la de b en $a1 . El registro $t0 se asocia con la variablei y $s0 con lavariable c . Escriba el codigo MIPS. ¿Cuantas instrucciones se ejecutan a lo largo de estecodigo? ¿Cuantas referencias de datos a memoria se produciran durante la ejecucion?
3. 1.0 punto. El codigo siguiente trata de implementar un salto condicional a la direccion no-es-cero, cuyo valor es 0xABCD1234. Sin embargo, dicho salto no funciona de la forma queesta implementado. Explique por que e indique de que manera habrıa que codificarlo paraque funcione.
0x00000004 add $8, $15, $160x00000008 bne $8, $0, no-es-cero
...no-es-cero: sub $9, $12, $13
1
Tipo Frecuencia ( %)Tipo-R 41Load 24Store 14Saltos y bifurcaciones 21
Cuadro 1: Frecuencia simplificada de usos de las instrucciones para el programa gcc
4. 1.75 puntos. Sus amigos de laC3 (Creative Computer Corporation) han determinado queel camino crıtico que establece la longitud del ciclo de reloj del camino de datos multici-clo es el acceso a memoria para la carga o almacenamiento de datos (no para la busquedade instrucciones) Esto ha dado lugar a su mas reciente realizacion de la MIPS 30000 paraejecutar con una frecuencia de 500MHz en vez del objetivo de alcanzar los 750MHz. Detodas formas, Beatriz e Ibrahin, deC3, tienen una solucion. Si todos los ciclos que accedena memoria para datos se dividen en dos ciclos, entonces la maquina puede funcionar con lafrecuencia de reloj final. Utilizando la combinacion de instrucciones del gcc mostrada en latabla 1, determine cuanto mas rapida sera la maquina con accesos a memoria de dos ciclosrespecto a la maquina de 500MHz con acceso a memoria en un solo ciclo. Suponga quetodos los saltos necesitan el mismo numero de ciclos y que las instrucciones del repertorio ylas aritmeticas inmediatas se realizan como de tipo R.
5. 3.0 puntos. Se quiere anadir la la instruccion aritmetica de4 operandosadd3, la cualsuma tres numeros en vez de dos:
add3 $t5, $t6, $t7, $t8 # $t5 = $t6 + $t7 + $t8
Anada los caminos de datos y las senales de control necesarias al camino de datosmulticiclo de la figura 1, e indique las modificaciones necesarias a la maquina de estadosfinitos de la figura 2. Especifique claramente cuantos ciclos necesita la nueva instruccionpara ejecutarse en su camino de datos y la maquina de estados finitos modificada. Supongaque la arquitectura del repertorio de instrucciones esta modificada con un nuevo formatode instruccion similar al formato R, excepto que los bits 0-4 se utilizan para especificar elregistro adicional (se seguira utilizando los rs, rt y rd) y, por supuesto, se utiliza un nuevocodigo de operacion. Su solucion no deberıa depender de anadir nuevos puertos de lectura albanco de registro, ni deberıa utilizar una nueva ALU.
2
Figura 1: Camino de datos para el problema 5.
3
Figura 2: Especificacion del control para el problema 5.
4