Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Come viene eseguita l'istruzione sll

G
GiovanniQuadraroli (1230 points)
10 28 38
in Programmazione in Assembly by (1.2k points)
closed by
Salve volevo sapere se qualcuno sa come viene elaborata l'istruzione sll. Sll è un'istruzione di tipo r dove la parte func e la parte rs sono 0. Come viene eseguita l'istruzione e quale valore avrà l'ALU OP?
766 views
closed with the note: answered

1 Answer

andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
AluOp = func (istruzione R)

AluSrc = 1 (il campo func sta nella parte immediata e serve alla ALU)
G
GiovanniQuadraroli (1230 points)
10 28 38
by (1.2k points)
Sul libro ho visto che il campo func nello shift è zero quindi l'alu che operazione esegue per calcolare il valore atteso?
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
func=0 è proprio il codice che indica che la istruzione di tipo R è una sll, la AluCU lo userà per indicare alla ALU cosa fare, quindi AluOp=func come per ogni istruzione R
per passare lo shamt alla ALU la cosa più semplice è fornirlo tramite il secondo argomento, quindi mettendo AluSrc=1
il registro destinazione (per tutte le R) è nel campo rd quindi per fornirlo al blocco registri ci vuole RegDst=1
G
GiovanniQuadraroli (1230 points)
10 28 38
by (1.2k points)
Va bene grazie mille per la risposta
L
LucaStravato (1360 points)
10 31 38
by (1.4k points)
Prof mi scusi, lei dice " il campo func sta nella parte immediata e serve alla ALU " perciò ci dice di mettere ALUSrc =1
Ma sbaglio a pensare che il campo func serve all ALUCU che ha come segnali di controllo ALUOP0/1 e poi "dice all ALU cosa fare"? Per passare il campo shamt all ALU, per me, sembra una forzatura dire che serve ALUSrc = 1, cosi non gli passeremo i bit [15-0] dell istruzione estesi di segno compreso il campo func[5-0]?questo lo dico basandomi sulla nostra implementazione ad un ciclo di clock di MIPS vista fino ad ora ( che penso sarà quella chiesta/usata nella prova di domani ) nella quale l'istruzione sll  non è supportata.
o
orlandoalessio1998 (7730 points)
7 24 36
by (7.7k points)
Mi è venuto per lappunto lo stesso dubbio di Luca,
Dando come segnale ALUsrc = 1 non riuscirei a dare contemporaneamente anche RT all' ALU dato che nella nostra implementazione o diamo la parte immediata o l'rt
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Sì, con AluSrc=1 diamo tutto il campo immediato che contiene Shamt (va da sè che la ALU potrebbe avere al suo interno un selettore di solo quei bit).
Oppure possiamo passare alla ALU come secondo argomento solo i bit di Shamt ed aggiungere un MUX ... modificando un pochetto il circuito.
o
orlandoalessio1998 (7730 points)
7 24 36
by (7.7k points)
Più che altro mi chiedevo (dando per scontato che l'istruzione SLL sia formata da Rd, RT, shamt  come scritto sul pdf e sul references sheet ) Come potesse l'alu prendere sia l'immediate che l'rt , considerando che abbiamo un mux all'entrata di quest'ultima