
Corsi di Laurea
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.
Accetto l'uso dei cookie
Sto provando a fare BLTZAL per caso l'hai gia vista???
Sto provando a fare BLTZAL per caso l'hai gia vista???
No, non l'ho vista; BLTZAL sta per "branch less than zero..." ... AL sta per...
and link... Praticamente fa se il contenuto del registro è minore di zero salta a label e metti in ra il contenuto di pc+4... E' di tipo I... Sono arrivato fin qui
Enrì stavo facendo la macchina a stati finiti della MFLO e della MFHI...
Si tratta di 2 istruzioni di tipo R giusto? Dunque l'unità di controllo non sa da se di che operazione si tratta dunque non può nemmeno passare i registri LO e HI all'Alu...
Ho un'idea bizzarra... non è che questi 2 registrisi trovano nell'Alu ??? Altrimenti come facciamo ?
Raga io non capisco cosa sta succedendo e perkè il mio post esce così, se mi aiutate please poso dire anke io la mia sulla MFLO
TNX
Non mi esprimo su questa cosa perchè già ho ripetuto un paio di volte come la penso!Non si è ben capito però se dobbiamo ragionare su s0 in particolare o se il Prof. voleva intendere un registro a caso per fare un esempio. Beh, penso che se volesse intendere che l'istruzione agisce su s0 in particolare bisogna aggiungere un segnale alla CU che invia alla alu proprio s0, altrimenti no prob.
Non puoi usare lo stesso segnale PcWriteCond sia per la bgtz ché per gli altri salti condizionati, altrimenti in un qualsiasi salto condizionato salti ogni volta che l'ALU fa una sottrazione che ti fa uscire MSB=1 (e questo non deve accadere)... se non mi sbaglio anche questo l'ho detto in un altro post...Per la macchina a stati finiti invece non c'è niente da modificare, perchè segue i passi di una tipica istruzione branch.
Veramente nella mia soluzione non è l'ALU a vedere LO, ma essa vede un registro C nel quale è stato inserito il contenuto di LO (il contenuto di LO viene inserito in questo registro C indipendentemente da se si tratti di una mflo, è l'ALU che legge tale registro solo se è una mflo!)In particolare ricevendo quella stringa dal campo funct il controllo alu indica alla alu di prendere direttamente lo ( ma a quanto pare nessuno sa da dove
) e quindi somma o non somma, il contenuto di lo finsice in aluOut.
Non c'è bisogno di aggiungere segnali perchè l'ALU viene indirizzata alla lettura del registro C direttamente dal campo funct, che ricordo essere identificativo esclusivamente di tale istruzione! Quindi l'unica modifica è l'aggiunta del registro C...Le modifiche del datapath sono l'inserimento di un nuovo segnale per la alu che invia appositamente lo. Nella macchina a stati finiti non si dovrà modificare niente perchè si comporta come un'istruzione R.
Tante!Quante ca**ate ho detto?
Raga sono un po' in ritardo, però direi, per quanto riguarda la mflo:
Il campo funct risulta essere identificativo per la funzione(come già detto),per cui una volta fatta la decode il controllo passa all'unità di controllo ALU,Tale unità deve abiitare un segnale ,da essa uscente, che chiameremo (dollaro)LoRead tale segnale abilita la lettura di (dollaro)LO che finisce direttamente in gola all'ALU senza la necessità di un registro aggiuntivo c, come proposto su...La ALU anche se poi in realtà nn ci interessa potrebbbe fare una somma a tre operandi 0 più 0 più (dollaro)lo o anke a due o anke non sommare per nulla(è inutile ai fini dell'ex entrare in qst dettagli che non ci riguardano).Il riultato della computazione dell'ALU cosìsarà posto in ALUout...In tal modo,passando il controllo al Controllo Alu, la macchina a stati finiti non va affatto modificata e non ci dobbiamo preoccupare delle altre istr di tipo-R...Aspetto vostre conferme...a me sembra che fili liscio.....
0 utenti, 0 ospiti, 0 utenti anonimi