Casi Todoslosexamenesenunsolofichero

45
13 EPC Cause 0 1

description

arqui

Transcript of Casi Todoslosexamenesenunsolofichero

Page 1: Casi Todoslosexamenesenunsolofichero

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

Page 2: Casi Todoslosexamenesenunsolofichero

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

Page 3: Casi Todoslosexamenesenunsolofichero

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

Page 4: Casi Todoslosexamenesenunsolofichero

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

Page 5: Casi Todoslosexamenesenunsolofichero

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

Page 6: Casi Todoslosexamenesenunsolofichero

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

Page 7: Casi Todoslosexamenesenunsolofichero

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

Page 8: Casi Todoslosexamenesenunsolofichero

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

Page 9: Casi Todoslosexamenesenunsolofichero

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

Page 10: Casi Todoslosexamenesenunsolofichero

Figura 1: Camino de datos con excepciones2

Page 11: Casi Todoslosexamenesenunsolofichero

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

Page 12: Casi Todoslosexamenesenunsolofichero

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

Page 13: Casi Todoslosexamenesenunsolofichero

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

Page 14: Casi Todoslosexamenesenunsolofichero

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

Page 15: Casi Todoslosexamenesenunsolofichero

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

Page 16: Casi Todoslosexamenesenunsolofichero

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

Page 17: Casi Todoslosexamenesenunsolofichero

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

Page 18: Casi Todoslosexamenesenunsolofichero

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

Page 19: Casi Todoslosexamenesenunsolofichero

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

Page 20: Casi Todoslosexamenesenunsolofichero

(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

Page 21: Casi Todoslosexamenesenunsolofichero

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

Page 22: Casi Todoslosexamenesenunsolofichero

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

Page 23: Casi Todoslosexamenesenunsolofichero

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

Page 24: Casi Todoslosexamenesenunsolofichero

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

Page 25: Casi Todoslosexamenesenunsolofichero

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

Page 26: Casi Todoslosexamenesenunsolofichero

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

Page 27: Casi Todoslosexamenesenunsolofichero

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

Page 28: Casi Todoslosexamenesenunsolofichero

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

Page 29: Casi Todoslosexamenesenunsolofichero

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

Page 30: Casi Todoslosexamenesenunsolofichero

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

Page 31: Casi Todoslosexamenesenunsolofichero

Figura 2: Contenido del segmento de datos

Figura 3: Lenguaje maquina de un procedimiento

2

Page 32: Casi Todoslosexamenesenunsolofichero

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

Page 33: Casi Todoslosexamenesenunsolofichero

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

Page 34: Casi Todoslosexamenesenunsolofichero

Figura 1: Camino de datos multiciclo.

3

Page 35: Casi Todoslosexamenesenunsolofichero

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

4

Page 36: Casi Todoslosexamenesenunsolofichero

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

Page 37: Casi Todoslosexamenesenunsolofichero

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

Page 38: Casi Todoslosexamenesenunsolofichero

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

Page 39: Casi Todoslosexamenesenunsolofichero

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

Page 40: Casi Todoslosexamenesenunsolofichero

Figura 1: Camino de datos multiciclo.

3

Page 41: Casi Todoslosexamenesenunsolofichero

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

4

Page 42: Casi Todoslosexamenesenunsolofichero

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

Page 43: Casi Todoslosexamenesenunsolofichero

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

Page 44: Casi Todoslosexamenesenunsolofichero

Figura 1: Camino de datos para el problema 5.

3

Page 45: Casi Todoslosexamenesenunsolofichero

Figura 2: Especificacion del control para el problema 5.

4