ciao a tutti! oggi ho fatto l'esame di Architetture degli elaboratori e delle reti I, e ho solo sbagliato un esercizio di cui vorrei chiedervi la correzione dal momento che domani ho l'orale e si basa sulle cose sbagliate nell'esame:
testo:
Considerare una nuova istruzione swap $R0, $R1, $R2 che consiste nello scambiare il contenuto della cella di memoria il cui indirizzo è nel registro R0 con quello della cella di memoria il cui indirizzo è R1 utilizzando R2 come registro di appoggio. Spiegare quali sono i passi che l'unità di controllo deve svolgere per implementare swap $R0, $R1. l'architettura è la MIPS.
io pensavo una cosa di questo tipo: Abilita bit uscita R0, abilita bit entrata MAR.
Legge il contenuto del MAR dalla memoria centrale e lo salva nel MDR. Scrive il contenuto di R2 nel MAR.
Scrive il dato contenuto nel MDR all'indirizzo di memoria contenuto nel MAR nella memoria centrale.
(metto così sostanzialmente R0 in R2).
Abilita ora il bit di uscita di R1 e abilita il bit di entrata del MAR. Legge il contenuto del MAR dalla memoria centrale e lo salva nel MDR. Scrive il contenuto di R0 nel MAR. Scrive il dato contenuto nel MDR all'indirizzo di memoria contenuto nel MAR nella memoria centrale. (metto così R1 in R0). Scrive R0 in R1.
secondo voi può andare o ho sbagliato qualcosa??
Architettura Computer - commentare istruzione
Moderatori:
Paolino,
fairyvilje
2 messaggi
• Pagina 1 di 1
0
voti
Va bene spostare R2 in R0, ma dopo aver scritto (il contenuto della cella di memoria il cui indirizzo è contenuto in) R1 in R0 (o meglio nella cella di memoria il cui indirizzo è contenuto in R0), hai scritto che metti R0 in R1, ma così cambi solo l'ìndirizzo puntato dai registri, invece tu devi scambiare il contenuto della cella di memoria, quindi devi leggere (il contenuto della cella di memoria il cui indirizzo è contenuto in) R2 e scriverlo in R1 (o meglio nella cella di memoria il cui indirizzo è contenuto in R1).
Comunque io avrei interpretato diversamente il testo: tu hai usato come registro di appoggio per lo swap la cella di memoria puntata da R2, ma io avrei capito dal testo che dovevo usare il registro R2 stesso come registro di appoggio.. sei sicuro che la tua interpretazione sia quella giusta?
Nel mio caso avresti dovuto leggere dalla memoria il dato il cui indirizzo è in R0, parcheggiarlo direttamente in R2 da MDR, poi leggere il contenuto della cella di memoria contenuto in R1, e dall'MDR scriverlo direttamente all'indirizzo puntato da R0 (portando R0 nel MAR). A questo punto prelevi il dato da R2 per portarlo nell'MDR e effettuare una scrittura all'indirizzo puntato da R1;
quindi:
MAR <- R0
MDR <- M[MAR]
R2 <- MDR
MAR <- R1
MDR <- M[MAR]
MAR <- R0
M[MAR] <- MDR
MAR <- R1
MDR <- R2
M[MAR] <- MDR
E il gioco e fattoo!!
Comunque io avrei interpretato diversamente il testo: tu hai usato come registro di appoggio per lo swap la cella di memoria puntata da R2, ma io avrei capito dal testo che dovevo usare il registro R2 stesso come registro di appoggio.. sei sicuro che la tua interpretazione sia quella giusta?
Nel mio caso avresti dovuto leggere dalla memoria il dato il cui indirizzo è in R0, parcheggiarlo direttamente in R2 da MDR, poi leggere il contenuto della cella di memoria contenuto in R1, e dall'MDR scriverlo direttamente all'indirizzo puntato da R0 (portando R0 nel MAR). A questo punto prelevi il dato da R2 per portarlo nell'MDR e effettuare una scrittura all'indirizzo puntato da R1;
quindi:
MAR <- R0
MDR <- M[MAR]
R2 <- MDR
MAR <- R1
MDR <- M[MAR]
MAR <- R0
M[MAR] <- MDR
MAR <- R1
MDR <- R2
M[MAR] <- MDR
E il gioco e fattoo!!
-

andrea2453
0 2 - Messaggi: 6
- Iscritto il: 23 feb 2010, 14:01
2 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 12 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)