Subido por juan rabadan garcia

Ejercicios-Procesador-2

Anuncio
\)a\o\;.,_ Gt.>e,
l-lu~,
~u-d. A. ~\(:\~,
A¡f A.
o
~CJo..í\ ~ ~ q ( \
·
Trabajo de clase 8/11/22
Ejercicio 1
Se quiere añadir la instrucción SWIP (store with post increment) al repertorio del MIPS estudiado
en clas·e. Su nemotécnico es SWIP Rt, Rs, lmmediate y su comportamiento es el siguiente:
Mem{RF{Rs)) <- RF{Rt)
RF{Rs) <- RF{Rs) + SignExt(lmmediate)
PC <- PC + 4
El formato de esta instrucción es el siguiente:
l
6
111111
5
5
1
Rs
1
Rt
16
l 1nmediate
La instrucción copia el contenido del registro Rt en una palabra de memoria cuya dirección viene
dada por el registro Rs (antes de incrementarlo). Posteriormente, el contenido de Rs se
incrementa con el contenido del campo inmediato. Y el PC se incrementa sumando 4.
a) Modificar la ruta de datos.
b) Modificar el diagrama de estados.
c) Modificar la tabla de verdad.
s~
(\o
l~)4--~
~+s~'-'ec\ On
Zero = O
Zero = 1
8
RF( rd ) <-- ALUout
4
RF( rt) <-- MOR
10
PCWrite
loro
MemWrlte
IRWrlle
tWrite
ALUop
ALUSrcA
AWrlte
RegrSI
!
!
'
..................... '• í:
( ALUCo rol )
ReaWrlte
.............
•
i
lnstruc {25·211
RA
ADDR
E
.,
DR
t; •
·~u:
"'
RW
DW
ns true{ 15· 111
1
busA
1.1
RB
;-··/
busw
busB
MemRead
BWrite
ALUSrcB
lnstruc(lS-0]
MDRWrite
MemroReg
cu
e
c.
o
0000 (fetch)
xxxxxx
X
...............................
0001
•
••••
••
(deco)
• ••
100011(1w)
••••••••••••
0001
(deco)
0001
(deco)
ñi
¡¡;
•
••••••
101011 (sw)
X
000000 (R-type)
X
...............................
:-~s: s:ü
x
zcu
2
·¡:
:~
e CI)...
CI)
<(
O)
'E ::,
"
::>
cu
• CU
'E
s:
a.
;i
O)
0001 : 1
•
X
111
• cu
•
o o o o••
0010:
•••••
i
'E
a.
s:'5
o::>
;i
2
cu
; O . 01 • 00 (add)
o •
o O O o O o ·,
O
o o f
o o, o o O o o I
o f
1
1
cu
o
et::
o E
cu cu
cu
O
o o f
2
cu
o
;i
-o
n,
o ': o o O t
O
C)
cu
et:: . ¡¡;
o cu
O
s:
C)
..9
o •. 1 f
C)
cu
et::
et::
1 ' O•
o
2
·¡:
1 •o
o o
i
O
o O o o O o :•
o o 1
••
0101 :
...... :o . o
o o
o
...... .. ... ........... .. ....... ..0111
.... ·:
(deco)
000100(beq)
X 1001 :
..0001
. . . . ... ..... .. . .. . . . .... .. ...
0010 (ex-lw)
xxxxxx
: O O
10 00 (add)
o o
. . . . . . . . . . . . .. .. .....
.. ... . . .X.. . 0011
o
. ••. • :- .. . . . . . . . . . ! . • . . . . . . . . . . . . . . . . • . . . . . . • . ·: . . • . . • . . . . . . . . . . .
0011 (memXXXXXX
X
O 1 1 1
O
......... ,~) .......... ......... . 0100 : O O
·~~~;·~·~·;·~······
~
···~··
·~
·
········;
···;···1·
·
0100 (wb-lw)
XXXXXX
X
. ... ... . . ..... .. ..... ····· ..... •••••• :• •• : . . .. . . . . . . ¡ ••••
••
•
•••••••
1
•
•••
•
••••
••••••••
1
0101
XXXXXX
X
••
'
•••••••••••••••••••••••••
••
•
'
•••••
.•••••••• ~V.:l •.•••••••.••..••••••
. ····•:- ... ····•• .•·· ;· ..- .... ... ... ...
(ex-R)
..0111
............
.. ...XXXXXX
........ .. X..
xxxxxx , .....X.
..... .... ................
1000
(wb-R)
1001
(ex-
XXXXXX
O
1001
(exbeq)
XXXXXX
1
o
O
10 · OO(add)
0000 : O O
1000 : O O
be )
1O(funct)
00
, : ••••
•
• • • • • • • •• • • · ,
••: •
•• .•
•
o
o
···· ··:· •• .• ···· ....... ··o·•
o o
o o
o
•• • •••• , •••••• ; , •• ' ' ! ' • ••••• · ••••• • ••••• ' •••••••••• • • • • • • • • • • • • ··•• •
0000 : O ; O
I
O
O
f
O
O:,
0
O
O
O
O
I
O
f
O
O
I
¡
O
O
I
O
I
I
O
O
O
O
I
I
O
O
O
O
O
O
O
O
I
O
0000 :
.... .. .. ~~9l. .................. . ...... ; o o
.·;~1-~ .. ·,;i;: .... ·~:;; .. .. .~·
,: •••••••••
••••••••••
o o
.-~;1·~ .. ·(;¡;: .... -~~; ..... ~·
0110 : O
(ex-sw)
'
00
1010:
1
O f
O
I
O:-
f
1
O
1
0000 : O : 1
1
o I
o ·,
o O o
O O
. O
I
f
O
f
11
t
I
O O
t
t
0
I
I
O
I
O
O
O
O
O
t
o
O
•
O
O
O
I
O
o o
01 (sub)
o O
f
I
00 (add)
O
1
.. f
I
t
t
O f
!
O t
O
O
1
o
,' 1
o o.
O O ••
t
f
I
1
1
t ' 1
O
O t
t
1
o
1
·· Ejercicio 2
Se quiere modific'ar el repertorio de instrucciones del MIPS añadiendo dos nuevas instrucciones:
RSB Rd,Rs,Rt donde BR(Rd)f-BR(Rt)-BR(Rs)
LWRDR Rd, Rs,Rt,#n donde BR(Rd)f-M[BR(Rs)+BR(Rt)x2"]
Para ambas instrucciones el formato que se utiliza es el tipo R, para la instrucción LWRDR el valor
n se obtiene de campo shamt que hasta el momento no se utilizaba . Se pide:
a) Camino de datos modificado .
b) Diagrama de estados modificado
c) Tablas de verdad modificadas
3
Zero = 1
MOR <- Memoryl ALUout)
8
PCWrite
4
IRWrite
MemWrite
loro
AWrite
Regr st
AWop
AWSrcA
RegWrire
lnstruc [25-21)
RA
ADDR
RB
DR
t
ti
f if
busB
OW
MemReod
BWrite
MDRWrlte
AlUSrcB
...
OutWrite
.
$
e:
~!
:,
u
tí"'
0
..,.0
xxxxxx
X
c.
0000
(fetch)
!1/1
•
C1J
'E
C1J
. ·e
: ;:
:~
x
!!
C1J
C1J
·e 'E
¡ (!);:
Q.
!/)
::,
'Eu
!/)
::,
.t .t
o
0001
Q.
'E
$
·e:
.t
¡
"O
C1J
o
C1J
C1J
g
·············· .. ···············
0010
(ex-lw)
XXXXXX
X
··5~;; ··(~ie;,;." · · · -~~~;; · · · · · ~-
........ .~) ................... .
0100
(wb-lw)
xxxxxx
··~;;~ ··t;f/ ····-~~~;; ·····~0101
(ex-swf
XXXXXX
X
t
1 ;
o I
o
O
i.
E
o E
C1J
.o
O t
O.
o
1/1
C1J
'E
C1J
Ol
Ol
C1J
C1J
a:: a::
o
o O o o O f
O
o o o o o I o o O o
'o o
o
:I
•••••••••• ' •••• •• .••••••• • .• r ••• •••••••••••••••••••••••••• • • • • : •• •
:;:. i: :: ::ej.:: : :º::(~'.):::::
xoooo:ºº
••••••••••••• ! • • • • • • • • • • • • • • • • •
t
"'
C1J
.o
00 (add)
: 1
01
···········
·
..
·················
········•• ; ·······••t••••.J••· .• • •••..•
0001 (deco)
100011 (lw)
X 0010 :
........
,' .. ················· ·· ····••'
0001 (deco)
101011 (sw)
X 0101 :
...... : o o
.···········
....
···············
0001 (d~co) 000000 (R-type)
X 0111 :
····· ···· ....... ········· ..... . ·······
0001 (deco)
000100 (beq)
X 1001 :
Ol
C1J
'E a::C1J
• •••••••••
•••••••••
:
! •••••. '
:m
: :--;::;::;:::: :: :
•, f
•••••••.• ·: • •
.
·
10 . 1
: . . . . . . .. . . . . . . . . . . . . .
-~- ~- ·-~ ································;-~ ·······, ·······º. ·
0110 : O O
O' 1
. O' O
10 : 00 (add)
O
.. . ... .... .. .. .. .. . .. ... . ..... . ......:........ ... .. ..... . ................... ..·................. .
0111 (ex-R)
xxxxxx
X 1000 : O • O
• 1 00 • 10 (funct)
o o•
'o
.···········
············
···
....
········ ······· ··· ·· ·· t··············· · ····· ··········· .......·...... .
1000 (wb-R)
'
xxxxxx
X
.
o·
0000:0
o o
:o
• • • • • ••• • • r: ••••••••• . ••••••• ••••••••• •.••• _. • • • • • •. • • • • •• . •••.•••••••
0000 :
.
. . . . . -: o . o '
1010 :
.
••••••••••
;
o, o
00 , 01 (sub)
:
.
.
.o
;
• • • • • • • • • • • • • • • • • • • • • • • • • • • .- • • • .• • • 1 • • • •
0000 : O
S.. \...v--od..:.~
G,.__ QAQ_ci'..r
•
O
n-b-.c.,
Re::>
11
00 (add)
:
• • :·
••
••• . •••••••
o o'
, <\ \:-r ut..C...:..0-e J
:
.
<\u..~S .
Ejercicio 3
Para acelerar la ejecución de una serie de programas que utilizan continuamente multiplicaciones
simples, se ha decidido incluir la instrucción MULS Rd, Rs, Rt (Multiplicación Simplificada) en la
nueva versión del repertorio de instrucciones para la próxima revisión del microprocesador MIPS.
Para ello, los ingenieros hardware han desarrollo un nuevo módulo llamad'o AluMULS, con las
siguientes características:
El módulo AluMULS sólo es capaz de multiplicar.
El nuevo mód~lo tiene 2 entradas (Rs y Rt) de números de 32 bits y una salida de 32 bits, que
contiene el resultado de multiplicar los 16 bits menos significativos de los registros fuente.
A diferencia de la ALU, en la que el resultado de la operación tarda 1 ciclo en calcularse, en
el módulo AluMULS el resultado de la multiplicación tarda 2 ciclos en obtenerse.
En el nuevo módulo, las señales de entrada tienen que mantenerse estables durante los dos
ciclos que dura la operación para que el resultado sea correcto.
a) Diseña las modificaciones necesarias dentro de la ruta básica del microprocesador MIPS.
b) Modifica el diagrama de estados del controlador para que sea capaz de ejecutar esta
nueva instrucción, teniendo en cuenta que el OPCODE de MULS es 111000'
c) Indica los cambios específicos que necesita la tabla de verdad del controla.dar.
o
d) En caso de que queramos ejecutar la instrucción MULS R3, R2, Rl (tipo R), muestra los
valores de todos los registros modificados al final de cada fase de la ejecución, asum iendo
que el estado del procesador antes de ejecutar esta instrucción es: PC=OxCOOOOOE4,
Rl=0x00000002, R2=0x0000000A, R3=0x00000004; y que los campos SHAMT y FUNCT
son O.
j
Zero = O
Zero = 1
_ _ _..___~10
8
4
RF( rt) <-MOR
RF( rd ) +- ALUout
PCWrite
AWrite
IRWrite
MemWrite
loro
ALUSrcA
ALUop
.....i .....
ReaWrite
..-lns_tr_uc-'-(2_s-_21.;..(_...,¡__
_,¡ RA
ADDR
busA
DR
RW
busB
busW
DW
MemReod
BWrite
lnstruc(IS-0]
MDRWrJte
MemtoRea
ALUSrcB
OutWrir: "
1
.
!!ro
e
e
<11 <11
t: ..
iií
•
Q)
• ·1:
-~
x : 3: 3:
z : Q:; CLü
!! 'EQ)
·e
< re
o
3:
:e
a.
o
::>
(/)
::>
!
·e
¡
!
'O
cu
O>
Q)
o:: iiíQ) !
o
Q)
oO> O>
Q)
Q)
'2 oo:: E
Q)
Q)
Q)
:E :E ..2 :E :E n:: n::
.t .t
.t o
xxxxxx
0000 (fetch)
X 0001 : 1 • 1
o
· o 01 • 00 (add)
o 1 o, ........ .......
.... ..... ...... . ...... .. .. ....... . ···••
.•···:··· ........
' ......... .. .. , .......,.
'
0001 (deco)
X 0010 :
........
.... '., 100011
...... (lw)
..............
:, B
u
a.
o
1/1
'
Q)
'
'
,•
'
0001
(deco)
ID
101011 (sw)
X
0101 ·
o o•
· • • • · • • • • · • · · • · • • • • • • • • • • • • • • • · • • • • • .: O O 1 . 1 ,
0001 (deco) 000000 (R-type)
X 0111 :
·
.•
. . _(~~:~)- •.
0010 (ex-lw)
???~??.(~~~'- ... ~XXX.XXX
X
·o
l ..... ·•·.. ;...' ....:..... ....... _¡_ .. ; .. .: . ... . .•.. : ... '. . . .
_1_~~1.. :..•
0011 : O . O
1
10
: 1 ; O
00 (add)
O•
O
• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • · • •: • • · · · · · · · · · •• ! ' • • • • • • • • • • • • • • • · ·· · • • :• • · · , , ,: , , •• · · : •• • , • • • • • • •
0011
(mem-
XXXXXX
X
.••..••.. ":"). . • . . • . . . . . • . . . . . . . .
0100
(wb-lw)
XXXXXX
X
0100 : O • O
O
1
1
1
O
• .. • . ,: . •. ¡ .••.....•• . . . . • . . . . • • . . . . . . . • •...• ' . ... . . . . . . ' •... • .••..
0000 : O ' O
O· O
' 1
O
1
. . . .. . .. .. .. .. . .. . .. . .. .. ... . .. .. .... :• .. .... .... . . ... . . .. .. .. .. .. .. ...... ; .. . . . .. . . : . . .. . ..... .
0101 (ex-sw)
xxxxxx
X 0110 : O ' O
O 1 1O 00 (add)
• 1 · O O·
o
. . . . . . .. . . . . . . .. . . .. . . . . .. . . . . . . ..... :- .. .. ...... . ....... . ......... . ... ·... ... ... .. ......... ." .. .
,:
0110
(wbXXXXXX
X 0000 : O . O
1 • O: 1
.••...... s.~) ..• . ... • ... . .. . ..... . .... •:• .. ; . . ; ...... ¡ .. •:• ... ¡ . ..... . .. ; ... ;. .. ' .. ,: .. ' .'
0111 (ex-R)
X 1000 : O .• O
1 ¡. 00 .: 1O(funct) .! 1 ; O .· O • ;
:
xxxxxx
.• ••• ••.••••••. •• •••...•••..•••
1000 (wb-R)
XXXXXX
X
. ·~~~1· .. '¡~~.- . . ..
..... ~-
: O
.. ' .. •;• .. ,. .. .
o
·•••••·· .••. • ' ... .. ·· : •.•. .•••••• • •.•.. ••. •····· ! ·••:••· :• • · ··••. •· ..•..
0000 : O • O
.
. O O;
O; 1 . 1
':' .......... .. ........ '. ................ ' ... . ............... .
.. ••.... ?:9l... .............. .. • ...... : o o
1001
(ex-
XXXXXX
1
1010 :
1010
(wbbeq)
XXXXXX
X
0000 : O
1
00
o
01 (sub)
O•
O
...... .. !>:9~ ........ ........... . .... ,:, ..... ....... ........ ........ .......... .. ; ... .•... . . ,·, ..... .
2~
~J_\.!_~
~O_\I_
.
~,
11
00 (add)
O
O·
O
X 10 l l 10 \0 ~¿-... - 1 - ¡ - [ O o _ 1_,
1- o
1-=/ g L _ - - 1 -1--{--L¡
X \lOO¡Q
- ¡ o
-
-,-
ºº ªf-t.:-L -
oC¡--¡ \ - \ --~
1
x ~ x lex>o1'd
1
1 /
11ó0
a-)~(~
O
1
\
• ¡d[º ¡t -j~l- ~ /
l
I
l
O)( COOOOO(S~
Ó>( 000~0'2.
Q. ~-: o..x Oóóacoo A ,.,
: Ox Oodooo o l\
.Se> ' ~C+l\ Ox(Oóooc>Gt /
N ~ rl(C>,¿ ¡ax~
OQ ,
·
~1..
C)
e o \o
!
1º"'"'°º-EO'l 1º"'º~ 1o .. o º ·· ~
~I
o
o o o \
S. A.-: 0)- 00odooo A :1'~: O x OóOOO:>o 7.., v
Sn -=- ~a.. /\UJt-lo\, 5 , Oxooc.,OOd \U
~~ovt
,
o~ {~
0.x.Ooaooo~y
R3 .
be o , \
~ ·+
Descargar