\)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 , \ ~ ·+