Sunteți pe pagina 1din 45

Examen de Teora

Fundamentos de Computadores de Ingeniera Informtica


Facultad de Informtica. Universidad de Las Palmas de GC
15 de diciembre de 2005
1. (2 puntos) Ha aparecido en el mercado una nueva versin de un procesador
en la que la nica mejora con respecto a la versin anterior es una unidad de
coma otante mejorada que permite reducir el tiempo de las instrucciones
de coma otante a tres cuartas partes del tiempo que consuman antes.
Suponga que en los programas que constituyen la carga de trabajo habitual
del procesador las instrucciones de coma otante consumen un promedio
del 13 % del tiempo del procesador antiguo:

a ) (0.75 puntos) Cul es la mxima ganancia de velocidad que puede


esperarse en los programas si se sustituye el procesador de la versin
antigua por el nuevo?
b ) (1.25 puntos) Cul debera ser el porcentaje de tiempo de clculo con
datos en coma otante (en la versin antigua del procesador) en sus
programas para esperar una ganancia mxima de 4?
2. (3 puntos) El tratamiento de las excepciones del procesador MIPS bsico
consiste en la escritura de la direccin de la instruccin causante de la excepcin en el registro EP C , la escritura en el registro Cause de la causa
de la excepcin (0 para instruccin desconocida y 1 para desbordamiento aritmtico) y la ruptura del secuenciamiento de las instrucciones a la
direccin 0x0C000000.
Las guras 1 y 2 son la ruta de datos y la especicacin del control para
el procesador MIPS bsico.
Realiza las modicaciones de la ruta de datos y especica el control mediante una tabla de verdad para incluir el tratamiento de las excepciones
tal y como ha sido denido anteriormente.
3. (2.0 puntos) Las guras 3 y 4 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 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.

Figura 1: Ruta de datos monociclo

PC

Instruction
memory

Read
address

Instruction
[310]

Add

Instruction [15 0]

Instruction [15 11]

Instruction [20 16]

Instruction [25 21]

Instruction [31 26]

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

Figura 2: Control monociclo

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

Implementacin con PLA


Inputs

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

Figura 4: Especicacin del control con excepciones


IntCause = 0
CauseWrite
ALUSrcA = 0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11

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

Figura 5: Campos y codicacin de los valores de las microinstrucciones

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

Control ALU SRC1

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

Address select logic

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)

Figura 7: Secuenciador del microprograma

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

Cuadro 1: Frecuencia simplicada de usos de las instrucciones para el programa gcc

3. (2.5 puntos) Las guras 3 y 4 especican el control microprogramado de la


implementacin multiciclo del procesador MIPS bsico estudiado. Realiza
las modicaciones necesarias del microprograma para que sea vlido para
la ruta de datos de la gura 1.
1

Figura 1: Camino de 2datos con excepciones

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

Figura 2: Especicacin del control con excepciones


IntCause = 0
CauseWrite
ALUSrcA = 0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11

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

Figura 3: Campos y codicacin de los valores de las microinstrucciones

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

Control ALU SRC1

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:

b31 . . . b26 b25 . . . b21 b20 . . . b16 b15 . . . b11 b10 . . . b6


b5 . . . b 0
0...0
rs
rt
rd
0...0 0 0 1 0 1 0
a ) (1.5 puntos) Aada los caminos de datos y las seales de control necesarias al camino de datos multiciclo de la gura 1 para la ejecucin
de esta instruccin.
b ) (1.5 puntos) Indique las modicaciones necesarias de la mquina de
estados nitos de la gura 2 para la inclusin de la instruccin M OV Z .
2. (1.5 puntos) Una ventaja de incluir la instruccin MOVZ en el repertorio
de instrucciones consiste en la posibilidad de sustituir cada pieza de cdigo
con la siguiente estructura:

bne rs, nocopiar


add rd, rt, r0
nocopiar: . . .
por el cdigo:

movz rd, rs, rt


Ten en cuenta que cuando hacemos esta sustitucin disminuye el nmero
de instrucciones del programa y tambin el nmero de ciclos de ejecucin
(de 3 ciclos del beq ms 4 ciclos del add pasamos a 4 ciclos del movz ).
Considerando que esta mejora es aplicable slo al 2 por ciento del total
de las instrucciones de salto y bifurcacin, calcula la mxima mejora de
rendimiento introducida al incluir esta instruccin en el repertorio de instrucciones para el programa gcc que tiene la distribucin de instrucciones
del cuadro 1.
1

Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones

Frecuencia ( %)
41
24
14
21

Cuadro 1: Frecuencia simplicada 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 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

Figura 2: Especicacin del control con excepciones


IntCause = 0
CauseWrite
ALUSrcA = 0
ALUSrcB = 01
ALUOp = 01
EPCWrite
PCWrite
PCSource = 11

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

Figura 3: Campos y codicacin de los valores de las microinstrucciones

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

Control ALU SRC1

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

Address select logic

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)

Figura 5: Secuenciador del microprograma

Examen de Fundamentos de Computadores de II


Facultad de Informatica. Universidad de Las Palmas de GC
7 de septiembre de 2004
1. (0.75 puntos) El formato de instruccion de un procesador tiene 6 bits para
el codigo de operacion y 10 para la direccion del operando. Suponiendo que
una instruccion de bifurcacion con direccionamiento relativo al contador
de programa, almacenada en la posicion 530 (en decimal), origina un salto
a la posicion 620 (en decimal), y si ademas el codigo de operacion de la
instruccion de salto es 110011, justifica una posible codificacion binaria de
dicha instruccion.
2. (1.25 puntos) En un procesador con instrucciones de 0 direcciones (procesador con pila), que expresion matematica calcula la secuencia de instrucciones?
P USH M[C]
P USH M[D]
ADD
P USH M[C]
P USH M[D]
ADD
MULT
P OP M[A]
3. Suponga que hubiera una instruccion MIPS llamada bcp, que copiara un
bloque de palabras de una direccion a otra. Suponga que esta instruccion
requiera que la direccion del principio del bloque fuente sea el registro t1,
la direccion destino este en el registro t2, y el numero de palabras a copiar
este en t3 (que es 0). Ademas suponga que los valores de estos registros,
as como el registro t4 puedan destruirse al ejecutar esta instruccion (para
que los registros puedan usarse como temporales).
(2 puntos)Escriba un programa en lenguaje en ensamblador MIPS sustitutivo de la instruccion bcp para realizar la copia del bloque. Cuantas
instrucciones se ejecutaran para copiar un bloque de 100 palabras?
Utilizando el CPI de las instrucciones en la realizacion multiciclo,
cuantos ciclos se necesitan para copiar n palabras?

(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

Figura 1: Camino de datos

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

Figura 2: Especificacion del control

Jump
completion

9
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01

(O

(Op = 'L W')

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

Figura 3: Campos y codificacion de los valores de las microinstrucciones

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

Control ALU SRC1

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

En esta implementacion tanto la instruccion de bifurcacion jump como la


de salto condicional beq tardan 3 ciclos en ser ejecutadas por el procesador. Nuestro objetivo como disenadores de este procesador es considerar la
implementacion de estas dos instrucciones en dos ciclos.
a) (1.5 puntos) Anada los caminos de datos y las senales de control necesarias al camino de datos multiciclo de la figura 1 para que ambas
instrucciones sean ejecutadas por el procesador en 2 ciclos.
b) (1.5 puntos) Indique las modificaciones necesarias a la maquina de
estados finitos de la figura 2 para que ambas intrucciones sean ejecutadas por el procesador en 2 ciclos. Especifica claramente la maquina
de estados finitos modificada.
4. (3 puntos) En nuestra compana ademas de la version cableada del procesador basico MIPS R3000, tenemos tambien una version que implementa
el control mediante la tecnica de microprogramacion. Las figuras 3 y 4 resumen la especificacion del control mediante la tecnica de microprogramacion.
a) (2 puntos) Realiza las modificaciones necesarias sobre las figuras 3 y
4 para que ahora el control microprogramado funcione para el camino
de datos modificado para que las instrucciones de bifurcacion y salto
funcionen en 2 ciclos. En el caso que algun cambio sea necesario,
especifica los nuevos valores de las tablas de Dispatch.
b) (1 punto) Codifica en binario o en hexadecimal las microinstrucciones
que hayas modificado o anadido.
5. (1.5 puntos) Cabe esperar que las modificaciones del procesador MIPS R3000
para que realice los saltos y las bifurcaciones en tan solo 2 ciclos disminuya la frecuencia de reloj del procesador. Por este motivo, antes de seguir
adelante con nuestro procesador modificado, estamos interesados en saber:
a) (1 punto) Cual es la frecuencia mnima (en relacion con la frecuencia
actual factual a partir de la cual deja de ser interesante el cambio que
proponemos?
b) (0.5 puntos) Cual es la frecuencia mnima necesaria para una frecuencia original de 100MHz?
2

Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones

Frecuencia ( %)
41
24
14
21

Cuadro 1: Frecuencia simplificada de usos de las instrucciones para el programa


gcc
Para realizar el calculo de esta frecuencia mnima, al menos de manera aproximada, disponemos de los datos de la mezcla de instrucciones del programa gcc en la tabla 1.

PC

Figura 1: Camino de datos

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

Figura 2: Especificacion del control

Jump
completion

9
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCSource = 01

(O

(Op = 'L W')

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

Figura 3: Campos y codificacion de los valores de las microinstrucciones

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

Control ALU SRC1

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

cod-op. campo funcion


0x2B
0
0x21
0
0x18
0
0x2A
0x01
0
8

Cuadro 1: Tabla de codigos de operacion

Figura 1: Contenido de los registros

Figura 2: Contenido del segmento de datos

Figura 3: Lenguaje maquina de un procedimiento

Examen Fundamentos de Computadores de la Ingeniera


Informatica
Facultad de Informatica. Universidad de Las Palmas de Gran
Canaria
12 de diciembre de 2003
1. (2.5 puntos) Para un computador de longitud de palabra de 36 bits, disena
(razonablemente) los formatos de las instrucciones para que permitan construir un repertorio de instrucciones con:
7 instrucciones con dos direcciones de 15 bits y una de 3 bits.
500 instrucciones con una direccion de 15 bits y una de 3 bits
50 instrucciones con 0 direcciones.
2. (2.5 puntos) Se esta interesado en 2 realizaciones de una maquina, una con
una circuitera especial de punto flotante y otra sin ella. Considerese un
programa P , con la siguiente mezcla de operaciones:
multiplicacion en punto flotante
suma en punto flotante
division en punto flotante
instrucciones de enteros

10 %
15 %
5%
70 %

La maquina MPF (maquina con punto flotante) tiene circuitera de punto


flotante y puede por lo tanto realizar operaciones de punto flotante directamente. Se requiere el siguiente numero de ciclos de reloj para cada tipo de
instruccion:
multiplicacion en punto flotante
6
suma en punto flotante
4
division en punto flotante
20
instrucciones de enteros
2
La maquina MSPF (maquina sin punto flotante) no tiene circuitera de punto
flotante y por lo tanto debe emular las operaciones de punto flotante usando
instrucciones de enteros. Las instrucciones de enteros necesitan todas dos
ciclos de reloj. El numero de INSTRUCCIONES de enteros necesarias para
realizar cada operacion de punto flotante es el siguiente:
1

multiplicacion en punto flotante 30


suma en punto flotante
20
division en punto flotante
50
Ambas maquinas tienen una frecuencia de reloj de 100MHz.
a) Calcula la tasa de MIPS (millones de instrucciones por segundo) para
ambas maquinas.
b) Si la maquina MPF necesita 300 millones de instrucciones para un programa, cuantas instrucciones de enteros requerira la maquina MSPF
para el mismo programa?
c) Cual es el tiempo de ejecucion para dicho programa de 300 millones
de instrucciones en la maquina MPF y MSPF?
3. (2.5 puntos) Escribe un programa en ensamblador MIPS que inicialice un
vector de palabras con la constante 0. Asume que la direccion de comienzo
del vector esta en el registro a0 y el tamano del vector de palabras esta en el
registro a1.
4. (2.5 puntos) Se quiere anadir la instruccion jm (jump memory, salto a memoria) al camino de datos multiciclo. Su formato de instruccion es igual
al de lw excepto que el campo rt no se utiliza porque el dato cargado de
memoria se coloca en el P C en vez de hacerlo en registro destino.
a) Anada los caminos de datos y las senales de control necesarias al camino de datos multiciclo.
b) Indica las modificaciones necesarias a la maquina de estados finitos.
Especifica claramente cuantos ciclos necesita la nueva instruccion para ejecutarse en su camino de datos y la maquina de estados finitos
modificada.

Figura 1: Camino de datos multiciclo.

Figura 2: Especificacion del control para la ruta de datos multiciclo.

Convocatoria extraordinaria de septiembre (septiembre 2003). Examen de


FCI. Duracion 2 horas.
1. (1 punto) Utilizando reiteradamente las leyes de Morgan, obtener una
expresion en forma de suma de productos para las siguientes funciones:
a) F = (x + y)(x
y + z)
xy + xz) (
x + yz)
b) G = (
2. (1 punto) Obtener una expresion como suma de minterms y otra como
producto de maxterms para la siguiente funcion:
f (x, y, z) = x
y + xz + y
z
3. (1 punto) Dada la siguiente funcion como suma de minterms, pasarla a
producto de maxterms. Minimizar la expresion resultante de la funcion
empleando maxterms.
P
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 dos
metodos estudiados.
0
1
2
3
A B,1 A,1 E,0 D,0
B F,1 C,0 E,1 A,1
C I,1 B,0 F,1 I,1
D F,1 B,0 I,1 A,1
E H,0 A,1 I,1 F,0
F B,0 A,1 I,1 F,0
G B,1 A,1 F,0 I,0
H E,1 C,0 F,1 A,1
I B,0 A,1 G,1 I,0
1

6. (2.5 puntos) Dise


na con biestables tipo D un sistema secuencial sncrono
con dos entradas, E y C, y dos salidas, Z y S. Si durante tres pulsos de
reloj se mantiene C=1, entonces Z = E y S = 1; si durante tres pulsos
de reloj se mantiene C = 0, entonces Z = E y S = 1; en cualquier otro
caso ha de ser Z = 0 y S = 0.

Examen Fundamentos de Computadores de la Ingeniera Informatica


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

donde M es una direccion de memoria de 16 bits y X e Y son direcciones de 16


bits o numeros de registros de 4 bits.
La maquina de 0 direcciones usa una pila, la de 1 direccion usa un acumulador y
la de dos direcciones tiene 16 registros e instrucciones en las que cada operando
puede estar en un registro o en memoria. Suponiendo codigos de operacion de
8 bits y longitudes de instruccion que son multiplos de 4 bits. Cuantos bits
necesita cada computadora para representar el programa que calcula el valor de
X?
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 debe
decidir si se fabrica el diseno actual tal y como esta o se utiliza tiempo adicional
para mejorarlo. Se discute el problema con el grupo de ingeniera de circuitos y
se llega a las siguientes opciones:
Dejar el diseno tal y como esta. A esta maquina base se le da el nombre
de Mbase. Tiene una frecuencia de reloj de 500MHz y se han tomado las
siguientes medidas usando un simulador:
Tipo de instruccion CPI Frecuencia
A
2
40 %
B
3
25 %
C
3
25 %
D
5
10 %
Optimizar la circuitera. El grupo de ingeniera de circuitos indica que puede mejorar el diseno del procesador para dar una frecuencia de 600MHz.
A esta maquina se le da el nombre Mopt. Se han tomado las siguientes
medidas usando un simulador para Mopt:

Tipo de instruccion
A
B
C
D

CPI
2
3
3
4

Frecuencia
40 %
25 %
25 %
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 procedimiento strcpy copia la cadena y en la cadena x


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

Figura 1: Camino de datos multiciclo.

Figura 2: Especificacion del control para la ruta de datos multiciclo.

Examen Fundamentos de Computadores de la Ingeniera Informatica


Facultad de Informatica. Universidad de Las Palmas de Gran Canaria
14 de julio de 2003
P1
1.75

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:

add $8, $15, $16


bne $8, $0, no-es-cero
...
sub $9, $12, $13

Tipo
Tipo-R
Load
Store
Saltos y bifurcaciones

Frecuencia ( %)
41
24
14
21

Cuadro 1: Frecuencia simplificada de usos de las instrucciones para el programa gcc


4. 1.75 puntos. Sus amigos de la C 3 (Creative Computer Corporation) han determinado que
el camino crtico que establece la longitud del ciclo de reloj del camino de datos multiciclo es el acceso a memoria para la carga o almacenamiento de datos (no para la busqueda
de instrucciones) Esto ha dado lugar a su mas reciente realizacion de la MIPS 30000 para
ejecutar con una frecuencia de 500MHz en vez del objetivo de alcanzar los 750MHz. De
todas formas, Beatriz e Ibrahin, de C 3 , tienen una solucion. Si todos los ciclos que acceden
a memoria para datos se dividen en dos ciclos, entonces la maquina puede funcionar con la
frecuencia de reloj final. Utilizando la combinacion de instrucciones del gcc mostrada en la
tabla 1, determine cuanto mas rapida sera la maquina con accesos a memoria de dos ciclos
respecto a la maquina de 500MHz con acceso a memoria en un solo ciclo. Suponga que
todos los saltos necesitan el mismo numero de ciclos y que las instrucciones del repertorio y
las aritmeticas inmediatas se realizan como de tipo R.
5. 3.0 puntos. Se quiere anadir la la instruccion aritmetica de 4 operandos add3, la cual
suma 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 datos
multiciclo de la figura 1, e indique las modificaciones necesarias a la maquina de estados
finitos de la figura 2. Especifique claramente cuantos ciclos necesita la nueva instruccion
para ejecutarse en su camino de datos y la maquina de estados finitos modificada. Suponga
que la arquitectura del repertorio de instrucciones esta modificada con un nuevo formato
de instruccion similar al formato R, excepto que los bits 0-4 se utilizan para especificar el
registro adicional (se seguira utilizando los rs, rt y rd) y, por supuesto, se utiliza un nuevo
codigo de operacion. Su solucion no debera depender de anadir nuevos puertos de lectura al
banco de registro, ni debera utilizar una nueva ALU.

Figura 1: Camino de datos para el problema 5.

Figura 2: Especificacion del control para el problema 5


.

S-ar putea să vă placă și