Documente Academic
Documente Profesional
Documente Cultură
con la inclusin del hardware y control necesarios para tratar las excepciones por instruccin desconocida y desbordamiento aritmtico. Adems, las
guras 5 y 6 especican el control microprogramado de la implementacin
multiciclo del procesador MIPS bsico. Realiza las modicaciones necesarias del microprograma y del secuenciador del microprograma de la gura
7 para que incluya el tratamiento de excepcin por desbordamiento aritmtico. Es necesario especicar el contenido de las ROM de "dispatch"que
hayan sido modicadas. El tratamiento de la excepcin por instruccin
desconocida no es necesario incluirlo.
4. (0.5 puntos) Cambia el valor de los bits 3, 7, 9, 21, 29 (sin modicar el resto
de los bits) de la posicin de memoria etiquetada palabra y de contenido
0xFF0F1235 almacenada en memoria a partir de la direccin 0x10000004.
5. (2.5 puntos) Disea un programa en ensamblador que dado un vector de
enteros V obtenga cuntos elementos de este vector estn dentro del rango
determinado por dos variables rango1 y rango2 (ambos inclusives). El programa deber inicializar los elementos del vector en memoria, una variable
que almacenar el nmero de elementos que tiene ese vector y dos variables
donde se almacenarn los rangos. Tambin deber reservar espacio para la
variable resultante.
PC
Instruction
memory
Read
address
Instruction
[310]
Add
Instruction [15 0]
0
M
u
x
1
16
Instruction [5 0]
Write
data
Sign
extend
Read
data 1
Read
Re
register 2
Registers Read
Write
data 2
register
Read
register 1
RegDst
Branch
Branch
MemRead
MemtoReg
Control ALUOp
MemWrite
ALUSrc
RegWrite
32
ALU
control
0
M
u
x
1
Shift
left 2
Zero
ALU ALU
result
ALU
Add result
Write
data
Address
Read
data
Data
memory
PCSrc
M
u
x
1
M
u
x
0
RegDst
ALUSrc
MemToReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOp0
Op5-0 ->
(bits 31-26)
00 0000
0D
R-Format
1
0
0
1
0
0
0
1
0
10 0011
35D
lw
0
1
1
1
1
0
0
0
0
10 1011
43D
sw
x
1
x
0
0
1
0
0
0
00 0100
4D
beq
x
0
x
0
0
0
1
0
1
R-format
Op0
Op3
Op2
Op1
Op4
Op5
Iw
sw
beq
ALUOpO
ALUOp1
Branch
MemWrite
MemRead
RegWrite
MemtoReg
ALU
ALUSrc
RegDst
Outputs
5
Figura 3: Camino de datos con excepciones
PC
0
M
u
x
1
Write
data
MemData
Memory
Address
Instruction
[15 0]
0]
Instruction
[20 16]
Instruction
[25 21]
Instruction
[31-26]
Memory
data
register
Instruction
[15 0]
Instruction
register
Op
[5 0]
Control
Outputs
0
M
u
x
1
0
M
Instruction u
x
[15 11]
1
Instruction [25 0]
IRWrite
MemtoReg
MemWrite
MemRead
PCWrite
IorD
PCWriteCond
Sign
extend
32
Instruction [5 0]
16
Write
data
Read
Read
register 2 data 1
Registers
Write
Read
register data 2
Read
register 1
RegDst
RegWrite
ALUSrcA
ALUSrcB
CauseWrite
IntCause
EPCWrite
PCSource
ALUOp
Shift
left 2
0
1M
u
2x
3
0
M
u
x
1
28
Zero
ALU ALU
result
PC [31-28]
Shift
left 2
ALU
control
26
ALU
ALUOut
CO 00 00 00
Jump
address [31-0]
u
x
0
M
u
x
1
Cause
EPC
1M
6
5
RegWrite
MemtoReg = 1
RegDst = 0
Overflow
R-type completion
RegDst = 1
RegWrite
MemtoReg = 0
Overflow
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 10
')
'SW
Execution
=
(Op
Memory
access
MemWrite
IorD = 1
Write-back step
MemRead
IorD = 1
=
(Op
') o r
'LW
11
)
ype
R-t
=
(Op
Branch
completion
8
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01
9
PCWrite
PCSource = 10
10
Jump
completion
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
Instruction decode/
decode/
Register fetch
1
IntCause = 1
CauseWrite
A
ALUSrcA
=0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11
(O
p
MemRead
ALUSrcA = 0
IorD = 0
IRWrite
ALUSrcB = 01
ALUOp = 00
PCWrite
PCSource = 00
Instruction fetch
'B
EQ
')
=
(Op = 'J')
Start
')
W
'S
p
(O
=
Memory
access
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 00
Memory address
computation
2
(Op = 'LW')
)
er
oth
=
p
(O
C o n tr o l A L U
SRC1
O p e r a c i n
ALUO p0
Sum a
PC
R e s ta
F unc. code
R e g is t e r C o n t r o l
R e g W r ite
R egD st
M em ToR eg
SRC2
O p e r a c i n
A d d rS rc A
ALUop1
O p e ra c i n
A L U S rB 1
A L U S rc B 0
E x te n d
E x tS h ft
M e m o ria
O p e r.
O p e r.
IR W rite
M em Read
M e m W rite
Io rD
W r ite A L U
R ead PC
W r ite M D R
R ead ALU
W rite A L U
Sec
Control PCWrite
PCSrc1
PcSrc0
PCwrite
PCWrtCond
Oper.
A d d rC tl0
Seq.
F e tc h
D is p a tc h 1
D is p a tc h 2
ALU
ALUOut-Cond
Jump address
O p e ra c i n
A d d rC tl1
Estado
0
1
2
3
4
5
6
Etiqueta
Fetch
Mem1
LW2
Control SRC1
ALU
Add
PC
Add
PC
Add
A
Control
Registros
4
Extshft Read
Extend
Memoria
Read PC
Read ALU
Write MDR
Write ALU
SW2
Rformat1 Func
Cod
Subt
BEQ1
JUMP1
ALUOutcond
Jump
Address
Figura 6: Microprograma
7
AddrCtl0
Control
Secuenc.
PCWrite
ALU
Seq.
Dispatch 1
Dispatch 2
Seq
Fetch
Fetch
Seq
Write ALU
7
8
Sec.
AddrCtl1
PCWriteCond
PCWrite
PCSource0
PCSource1
Control PCWrite
MemWrite
IorD
MemRead
Memoria
IRWrite
MemToReg
RegWrite
ALUSrcB0
ALUSrcB1
SRC2
RegDst
Control
Registro
SRC2
AluSrcA
Aluop0
Aluop1
Fetch
Fetch
Fetch
Sec
O p e ra c i n
A d d rC tl1
A d d rC tl0
Seq.
F e tc h
D is p a tc h 1
D is p a tc h 2
PLA or ROM
1
State
Adder
Mux
2 1
A ddrCtl
0
0
Dispatch ROM 1
Dispatch ROM 2
Dispatch ROM2
Op [5:0]
Nombre
Valor
100011
lw
LW2 (3)
101011
sw
SW2 (5)
Op
Op [5:0]
000000
000010
000100
100011
101011
Instruction register
opcode field
Dispatch ROM1
Nombre
Valor
R-Format R-Format1 (6)
jmp
JUMP1 (9)
beq
BEQ1 (8)
lw
MEM1 (2)
sw
MEM1 (2)
Examen de Teora
Fundamentos de Computadores de Ingeniera Informtica
Facultad de Informtica. 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 la
implementacin multiciclo del procesador MIPS bsico estudiado. En esta
implementacin, los registros temporales A y B han sido eliminados con
la intencin de realizar en un nico ciclo un acceso de lectura al banco de
registro y una operacin ALU.
La gura 2 es la especicacin del control multiciclo para el procesador
MIPS bsico estudiado y es incluida aqu por si fuera de ayuda.
Escribe la especicacin completa de la nueva unidad de control para esta
nueva ruta de datos que incluya el control para las instruciones load, store,
aritmticas y jump. El control para la instruccin beq no es necesario
hacerlo.
2. (1.5 puntos) Considera que una ventaja de la nueva implementacin del
procesador es la reduccin de los ciclos por instruccin en una unidad
para todas las instrucciones, mientras que una desventaja es el aumento
del tiempo de ciclo. A partir de la mezcla de instrucciones de la tabla
1, Cul es el mximo incremento de frecuencia permitido para la nueva
implementacin respecto a la implementacin original (en tanto por ciento)
para que la propuesta no haga ms lento la ejecucin del programa gcc?
Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones
Frecuencia ( %)
41
24
14
21
3
5
RegWrite
MemtoReg = 1
RegDst = 0
Overflow
R-type completion
RegDst = 1
RegWrite
MemtoReg = 0
Overflow
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 10
')
'SW
Execution
=
(Op
Memory
access
MemWrite
IorD = 1
Write-back step
MemRead
IorD = 1
=
(Op
') o r
'LW
11
)
ype
R-t
=
(Op
Branch
completion
8
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01
9
PCWrite
PCSource = 10
10
Jump
completion
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
Instruction decode/
decode/
Register fetch
1
IntCause = 1
CauseWrite
A
ALUSrcA
=0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11
(O
p
MemRead
ALUSrcA = 0
IorD = 0
IRWrite
ALUSrcB = 01
ALUOp = 00
PCWrite
PCSource = 00
Instruction fetch
'B
EQ
')
=
(Op = 'J')
Start
')
W
'S
p
(O
=
Memory
access
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 00
Memory address
computation
2
(Op = 'LW')
)
er
oth
=
p
(O
C o n tr o l A L U
SRC1
O p e r a c i n
ALUO p0
Sum a
PC
R e s ta
F unc. code
R e g is t e r C o n t r o l
R e g W r ite
R egD st
M em ToR eg
SRC2
O p e r a c i n
A d d rS rc A
ALUop1
O p e ra c i n
A L U S rB 1
A L U S rc B 0
E x te n d
E x tS h ft
M e m o ria
O p e r.
O p e r.
IR W rite
M em Read
M e m W rite
Io rD
W r ite A L U
R ead PC
W r ite M D R
R ead ALU
W rite A L U
Sec
Control PCWrite
PCSrc1
PcSrc0
PCwrite
PCWrtCond
Oper.
A d d rC tl0
Seq.
F e tc h
D is p a tc h 1
D is p a tc h 2
ALU
ALUOut-Cond
Jump address
O p e ra c i n
A d d rC tl1
Estado
0
1
2
3
4
5
6
Etiqueta
Fetch
Mem1
LW2
Control SRC1
ALU
Add
PC
Add
PC
Add
A
Control
Registros
4
Extshft Read
Extend
Memoria
Read PC
Read ALU
Write MDR
Write ALU
SW2
Rformat1 Func
Cod
Subt
BEQ1
JUMP1
ALUOutcond
Jump
Address
Figura 4: Microprograma
4
AddrCtl0
Control
Secuenc.
PCWrite
ALU
Seq.
Dispatch 1
Dispatch 2
Seq
Fetch
Fetch
Seq
Write ALU
7
8
Sec.
AddrCtl1
PCWriteCond
PCWrite
PCSource0
PCSource1
Control PCWrite
MemWrite
IorD
MemRead
Memoria
IRWrite
MemToReg
RegWrite
ALUSrcB0
ALUSrcB1
SRC2
RegDst
Control
Registro
SRC2
AluSrcA
Aluop0
Aluop1
Fetch
Fetch
Fetch
Examen de Teora
Fundamentos de Computadores de Ingeniera Informtica
Facultad de Informtica. Universidad de Las Palmas de GC
13 de julio de 2005
1. (3 puntos) La instruccin Move Conditional on Zero MOVZ rd, rs, rt es
una instruccin tipo R del repertorio de instrucciones del procesador MIPS
que mueve condicionalmente el registro rs al registro rd cuando el registro
rt es igual 0. El formato de la instruccin es el siguiente:
Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones
Frecuencia ( %)
41
24
14
21
3. (2.5 puntos) Las guras 1 y 2 representan la ruta de datos y la especicacin del control para la implementacin multiciclo del procesador MIPS
bsico con la inclusin del hardware y control necesarios para tratar las excepciones por instruccin desconocida. Adems, las guras 3 y 4 especican
el control microprogramado de la implementacin multiciclo del procesador MIPS bsico. Realiza las modicaciones necesarias del microprograma
y del secuenciador del microprograma de la gura 5 para que incluya el
tratamiento de excepcin por instruccin desconocida. Es necesario especicar el contenido de las ROM de "dispatch"que hayan sido modicadas. El
tratamiento de la excepcin por desbordamiento aritmtico no es necesario
incluirlo.
3
Figura 1: Camino de datos con excepciones
PC
0
M
u
x
1
Write
data
MemData
Memory
Address
Instruction
[15 0]
0]
Instruction
[20 16]
Instruction
[25 21]
Instruction
[31-26]
Memory
data
register
Instruction
[15 0]
Instruction
register
Op
[5 0]
Control
Outputs
0
M
u
x
1
0
M
Instruction u
x
[15 11]
1
Instruction [25 0]
IRWrite
MemtoReg
MemWrite
MemRead
PCWrite
IorD
PCWriteCond
Sign
extend
32
Instruction [5 0]
16
Write
data
Read
Read
register 2 data 1
Registers
Write
Read
register data 2
Read
register 1
RegDst
RegWrite
ALUSrcA
ALUSrcB
CauseWrite
IntCause
EPCWrite
PCSource
ALUOp
Shift
left 2
0
1M
u
2x
3
0
M
u
x
1
28
Zero
ALU ALU
result
PC [31-28]
Shift
left 2
ALU
control
26
ALU
ALUOut
CO 00 00 00
Jump
address [31-0]
u
x
0
M
u
x
1
Cause
EPC
1M
4
5
RegWrite
MemtoReg = 1
RegDst = 0
Overflow
R-type completion
RegDst = 1
RegWrite
MemtoReg = 0
Overflow
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 10
')
'SW
Execution
=
(Op
Memory
access
MemWrite
IorD = 1
Write-back step
MemRead
IorD = 1
=
(Op
') o r
'LW
11
)
ype
R-t
=
(Op
Branch
completion
8
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01
9
PCWrite
PCSource = 10
10
Jump
completion
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
Instruction decode/
decode/
Register fetch
1
IntCause = 1
CauseWrite
A
ALUSrcA
=0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11
(O
p
MemRead
ALUSrcA = 0
IorD = 0
IRWrite
ALUSrcB = 01
ALUOp = 00
PCWrite
PCSource = 00
Instruction fetch
'B
EQ
')
=
(Op = 'J')
Start
')
W
'S
p
(O
=
Memory
access
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 00
Memory address
computation
2
(Op = 'LW')
)
er
oth
=
p
(O
C o n tr o l A L U
SRC1
O p e r a c i n
ALUO p0
Sum a
PC
R e s ta
F unc. code
R e g is t e r C o n t r o l
R e g W r ite
R egD st
M em ToR eg
SRC2
O p e r a c i n
A d d rS rc A
ALUop1
O p e ra c i n
A L U S rB 1
A L U S rc B 0
E x te n d
E x tS h ft
M e m o ria
O p e r.
O p e r.
IR W rite
M em Read
M e m W rite
Io rD
W r ite A L U
R ead PC
W r ite M D R
R ead ALU
W rite A L U
Sec
Control PCWrite
PCSrc1
PcSrc0
PCwrite
PCWrtCond
Oper.
A d d rC tl0
Seq.
F e tc h
D is p a tc h 1
D is p a tc h 2
ALU
ALUOut-Cond
Jump address
O p e ra c i n
A d d rC tl1
Estado
0
1
2
3
4
5
6
Etiqueta
Fetch
Mem1
LW2
Control SRC1
ALU
Add
PC
Add
PC
Add
A
Control
Registros
4
Extshft Read
Extend
Memoria
Read PC
Read ALU
Write MDR
Write ALU
SW2
Rformat1 Func
Cod
Subt
BEQ1
JUMP1
ALUOutcond
Jump
Address
Figura 4: Microprograma
5
AddrCtl0
Control
Secuenc.
PCWrite
ALU
Seq.
Dispatch 1
Dispatch 2
Seq
Fetch
Fetch
Seq
Write ALU
7
8
Sec.
AddrCtl1
PCWriteCond
PCWrite
PCSource0
PCSource1
Control PCWrite
MemWrite
IorD
MemRead
Memoria
IRWrite
MemToReg
RegWrite
ALUSrcB0
ALUSrcB1
SRC2
RegDst
Control
Registro
SRC2
AluSrcA
Aluop0
Aluop1
Fetch
Fetch
Fetch
Sec
O p e ra c i n
A d d rC tl1
A d d rC tl0
Seq.
F e tc h
D is p a tc h 1
D is p a tc h 2
PLA or ROM
1
State
Adder
Mux
2 1
A ddrCtl
0
0
Dispatch ROM 1
Dispatch ROM 2
Dispatch ROM2
Op [5:0]
Nombre
Valor
100011
lw
LW2 (3)
101011
sw
SW2 (5)
Op
Op [5:0]
000000
000010
000100
100011
101011
Instruction register
opcode field
Dispatch ROM1
Nombre
Valor
R-Format R-Format1 (6)
jmp
JUMP1 (9)
beq
BEQ1 (8)
lw
MEM1 (2)
sw
MEM1 (2)
(2 puntos) Disene una estrategia para incluir la instruccion bcp al camino de datos de la figura 1 y a la especificacion del control de la figura
2. Probablemente se necesitara hacer algunos cambios en el camino de
datos para realizar la instruccion eficientemente. De una descripcion
de los cambios propuestos y de como funciona el secuenciamiento de
la instruccion.
(2 puntos) Modifique el formato original de las microinstrucciones
MIPS (figura 3) y el microprograma inical (figura 4) para que incluya
la instruccion bcp. Describa detalladamente como se extiende el microcodigo para soportar estructuras de control mas complejas (como
un bucle) con microcodigo. Ha cambiado el soporte para la instruccion bcp el tamano del codigo? Ademas de la instruccion bcp, alguna
otra instruccion se vera afectada por el cambio en el formato de instrucciones?
(2 puntos) Estime la mejora del rendimiento que se puede conseguir
al realizar la instruccion en circuitera (respecto de la solucion por
programa del apartado anterior) y explique de donde procede el incremento del rendimiento.
PCWriteCond
PCSource
PCWrite
IorD
IorD
Outputs
ALUSrcB
MemRead
MemWrite
Control
ALUSrcA
RegWrite
MemtoReg
IRWrite
ALUO p
Op
[5 0]
RegDst
0
PC
26
Instructi [25 0]
Instruction
0
M
u
x
1
Shift
left 2
Instruction
[31-26]
Address
Memory
MemData
Write
data
Instruction
[25 21]
Read
register 1
Instruction
[20 16]
Read
Read
register 2 data 1
Registers
Write
Read
register data 2
Instruction
[15 0]
Instruction
register
Instruction
[15 0]
Memory
data
register
0
M
Instruction u
x
[15 11]
1
0
M
u
x
1
16
Sign
extend
e
xtend
0
4
Write
data
32
Instruction [5 0]
Shift
left 2
Zero
ALU ALU
result
1 M
u
2 x
3
ALU
control
1 u
x
2
PC [31-28]
0
M
u
x
1
28
Jump
address [31-0]
ALUOut
struction decode/
Instruction
In
register fetch
Instruction fetch
( Op
W
= 'L
( Op
') or
)
pe
R-t y
=
( Op
Branch
completion
W')
= 'S
Execution
6
ALUSrcA = 1
USrcB = 10
ALUSrcB
AL
ALUOp = 00
8
ALUSrcA =1
ALUSrcB = 00
ALUOp= 10
p
=
'S
')
W
Memory
access
Memory
access
5
MemRead
IorD = 1
R-type completion
7
MemWrite
IorD = 1
RegDst = 1
RegWrite
MemtoReg = 0
Write-back step
4
RegDst =0
RegWrite
MemtoReg = 1
Jump
completion
9
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01
(O
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
(Op = 'J')
Memory address
computation
='
BE
Q'
)
Start
MemRead
ALUSrcA = 0
IorD = 0
IRWrite
ALUSrcB = 01
ALUOp = 00
PCWrite
PCSource = 00
(O
p
PCWrite
PCSource = 10
C o n tr o l A L U
SRC1
O p e r a c i n
SRC2
O p e r a c i n
A d d rS rc A
ALU op1
ALUO p0
Sum a
PC
R e s ta
Func. code
A L U S rcB 0
E xte n d
E xtS h ft
Sec
Control PCWrite
PCSrc1
PcSrc0
PCwrite
PCWrtCond
Oper.
ALUOut-Cond
Jump address
O p e ra c i n
A d d rC tl1
A d d rC tl0
Seq.
F e tc h
D isp a tc h 1
D isp a tc h 2
ALU
O p e ra c i n
A L U S rB 1
Estado
0
1
2
3
4
5
6
Etiqueta
Fetch
Mem1
LW2
Control SRC1
ALU
Add
PC
Add
PC
Add
A
Control
Registros
4
Extshft Read
Extend
Memoria
Read PC
Read ALU
Write MDR
Write ALU
SW2
Rformat1 Func
Cod
Subt
BEQ1
JUMP1
ALUOutcond
Jump
Address
Figura 4: Microprograma
AddrCtl0
Control
Secuenc.
PCWrite
ALU
Seq.
Dispatch 1
Dispatch 2
Seq
Fetch
Fetch
Seq
Write ALU
7
8
Sec.
AddrCtl1
PCWriteCond
PCWrite
PCSource0
PCSource1
Control PCWrite
MemWrite
IorD
MemRead
Memoria
IRWrite
MemToReg
RegWrite
ALUSrcB0
ALUSrcB1
SRC2
RegDst
Control
Registro
SRC2
AluSrcA
Aluop0
Aluop1
Fetch
Fetch
Fetch
Examen de Teora
Fundamentos de Computadores de Ingeniera Informatica
Facultad de Informatica. Universidad de Las Palmas de GC
14 de julio de 2004
1. (0.5 puntos) Disena el formato de las instrucciones de un maquina de registromemoria que tiene las siguientes caractersticas:
El repertorio de instrucciones contiene en total 32 instrucciones, de las
cuales 16 son instrucciones del tipo:
op Ry , (Rx ); esto es Ry Ry op M [Rx ]
Otras 8 instrucciones son del tipo:
op Ry , Rx ; esto es Ry Ry op Rx
Y las otras 8 restantes estan todava por especificar.
Solo admite para acceder a la memoria el modo de direccionamiento
indirecto por registro.
Tiene un banco de 8 registros.
En el formato de la instruccion se especifican 3 campos: el primero,
para el codigo de operacion; el segundo, para especificar el registro
que es el segundo operando fuente o que contiene la direccion de memoria del segundo operando fuente; y el tercero, para especificar el
primer registro fuente que es ademas siempre registro destino en las
instrucciones 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 ejecucion de las instrucciones especificadas. Explica claramente el nombre
y la funcionalidad de cada una de las senales de control en el camino y
el funcionamiento de cada uno de los bloques funcionales que utilices.
(0.5 puntos) Especifica la unidad de control para esa ruta de datos
mediante una tabla de verdad o metodo equivalente.
3. (3 puntos) Las figuras 1 y 2 muestran la estructura y la especificacion del
control de la implementacion basica multiciclo del procesador MIPS R3000.
1
Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones
Frecuencia ( %)
41
24
14
21
PC
0
M
u
x
1
Write
data
MemData
Memory
Address
Instruction
[15 0]
Instruction
[20 16]
Instruction
[25 21]
Instruction
[31-26]
Memory
data
register
Instruction
[15 0]
Instruction
register
Op
[5 0]
Control
Outputs
0
M
u
x
1
0
M
Instruction u
x
[15 11]
1
Instructi [25 0]
Instruction
IRWrite
MemtoReg
MemWrite
MemRead
IorD
IorD
PCWrite
PCWriteCond
Sign
extend
e
xtend
32
Instruction [5 0]
16
Write
data
Read
Read
register 2 data 1
Registers
Write
Read
register data 2
Read
register 1
RegDst
RegWrite
ALUSrcA
ALUSrcB
ALUO p
PCSource
Shift
left 2
1 M
u
2 x
3
0
M
u
x
1
28
Zero
ALU ALU
result
PC [31-28]
Shift
left 2
ALU
control
26
ALUOut
Jump
address [31-0]
1 u
Instruction
In
struction decode/
register fetch
Instruction fetch
( Op
W
= 'L
(O
') or
p=
)
pe
R-t y
=
( Op
Branch
completion
')
'SW
Execution
6
ALUSrcA = 1
ALUSrcB = 10
ALUSrcB
ALUOp = 00
8
ALUSrcA =1
ALUSrcB = 00
ALUOp= 10
p
=
'S
')
W
Memory
access
Memory
access
5
MemRead
IorD = 1
R-type completion
7
MemWrite
IorD = 1
RegDst = 1
RegWrite
MemtoReg = 0
Write-back step
4
RegDst =0
RegWrite
MemtoReg = 1
Jump
completion
9
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01
(O
ALUSrcA = 0
ALUSrcB = 11
ALUOp = 00
(Op = 'J')
Memory address
computation
='
BE
Q'
)
Start
MemRead
ALUSrcA = 0
IorD = 0
IRWrite
ALUSrcB = 01
ALUOp = 00
PCWrite
PCSource = 00
(O
p
PCWrite
PCSource = 10
C o n tr o l A L U
SRC1
O p e r a c i n
ALUO p0
Sum a
PC
R e s ta
Func. code
PcSrc0
PCwrite
Oper.
PCWrtCond
ALU
ALUOut-Cond
Jump address
O p e ra c i n
A L U S rB 1
A L U S rcB 0
E xte n d
E xtS h ft
Sec
Control PCWrite
PCSrc1
SRC2
O p e r a c i n
A d d rS rc A
ALU op1
O p e ra c i n
A d d rC tl1
A d d rC tl0
Seq.
F e tc h
D isp a tc h 1
D isp a tc h 2
Estado
0
1
2
3
4
5
6
Etiqueta
Fetch
Mem1
LW2
Control SRC1
ALU
Add
PC
Add
PC
Add
A
Control
Registros
4
Extshft Read
Extend
Memoria
Read PC
Read ALU
Write MDR
Write ALU
SW2
Rformat1 Func
Cod
Subt
BEQ1
JUMP1
ALUOutcond
Jump
Address
Figura 4: Microprograma
AddrCtl0
Control
Secuenc.
PCWrite
ALU
Seq.
Dispatch 1
Dispatch 2
Seq
Fetch
Fetch
Seq
Write ALU
7
8
Sec.
AddrCtl1
PCWriteCond
PCWrite
PCSource0
PCSource1
Control PCWrite
MemWrite
IorD
MemRead
Memoria
IRWrite
MemToReg
RegWrite
ALUSrcB0
ALUSrcB1
SRC2
RegDst
Control
Registro
SRC2
AluSrcA
Aluop0
Aluop1
Fetch
Fetch
Fetch
Examen de Practicas
Fundamentos de Computadores de Ingeniera Informatica
Facultad de Informatica. Universidad de Las Palmas de GC
14 de julio de 2004
Las figuras 1, 2 y 3, muestran parte del estado en un instante determinado de una maquina
MIPS R2000. La figura 1 muestra el valor de los registros, la figura 2 indica el contenido de la
memoria y la figura 3 corresponde al segmento de texto.
1. (5 puntos) Escribe el codigo en ensamblador de la secuencia de instrucciones ejecutadas desde el estado actual hasta que el registro contador de programa P C 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 registro P C tome el
valor 0x0040009C?
3. (2.5 puntos) Cual es el contenido de la memoria despues de que el registro P C tome el
valor 0x0040009C?
nemonico
lw rt, rs, inmediato
ori rt, rs, inmediato
addiu rt, rs, inmediato
slti rt, rs, inmediato
bne rs, rt, inmdiato
cod-op.
0x23
0x0D
0x09
0x0A
0x05
nemonico
sw rt, rs, inmediato
addu rd, rs, rt
mult rt, rs
slt rd, rs, rt
bgez rs, inmediato
jr rs
10 %
15 %
5%
70 %
(2.5 puntos) Comparar las maquinas de 0, 1 y 2 direcciones, escribiendo programas 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 disponibles es el siguiente:
0 direcciones
PUSH M
POP M
SUM
SUB
MUL
DIV
1 direcciones
LOAD M
STORE M
SUM M
SUB M
MUL M
DIV M
2 direcciones
MOVE X, Y
SUM X, Y
RES X, Y
MUL X, Y
DIV X, Y
Tipo de instruccion
A
B
C
D
CPI
2
3
3
4
Frecuencia
40 %
25 %
25 %
10 %
4.
(1.5 puntos) Se quiere anadir la instruccion jm (jump memory o salto a memoria) al camino de datos multiciclo. El formato de la nueva instruccion es igual
al de la instruccion lw excepto que el campo rt no se utiliza porque el dato cardado de memoria se coloca en el PC en lugar de escribirlo en el registro
destino. Anada los caminos de datos y las senales de control necesarias al camino de datos multiciclo de la figura 1, e indique las modificaciones necesarias a
la maquina de estados finitos de la figura 2. Intente encontrar una solucion que
minimice el numero de ciclos de reloj requeridos para la nueva instruccion. especifique claramente cuantos ciclos necesita la nueva instruccion para ejecutarse
en 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 al
camino de datos multiciclo de la figura 1 y las modificaciones del diagrama de
estados de la figura 2 para gestionar las excepciones debidas a instrucciones no
definidas o desbordamientos aritmeticos. Explica tambien como el procesador
trata una excepcion.
P2
2.5
P3
1
P4
1.75
P5
3
1. 1.75 puntos. Un computador tiene palabras de 24 bits. Los operandos se pueden direccionar
de las formas siguientes:
Registro (R): se requieren 4 bits.
Memoria (M): se requieren 4 bits para el registro base y 9 para el desplazamiento
Inmediato (I): 9 bits.
a) Disenar los formatos de instrucciones necesarios para tener un repertorio con 2 instrucciones de M-I, 63 instrucciones de M-R, 15 instrucciones de R-I y 64 instrucciones de
R-R.
b) Variaran los formatos disenados en el apartado anterior si en las especificaciones del
mismo repertorio de instrucciones nos piden 14 instrucciones de R-I en vez de 15?
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 que a y b son vectores de palabras y la direccion base de a esta en el registro
$a0 y la de b en $a1 . El registro $t0 se asocia con la variable i y $s0 con la
variable c . Escriba el codigo MIPS. Cuantas instrucciones se ejecutan a lo largo de este
codigo? 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 noes-cero, cuyo valor es 0xABCD1234. Sin embargo, dicho salto no funciona de la forma que
esta implementado. Explique por que e indique de que manera habra que codificarlo para
que funcione.
0x00000004
0x00000008
no-es-cero:
Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones
Frecuencia ( %)
41
24
14
21