PROVA SCRITTA FIDUCIARIA DEL CORSO DI CALCOLATORI ELETTRONICI - UniCa
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
PROVA SCRITTA FIDUCIARIA DEL CORSO DI CALCOLATORI ELETTRONICI PRIMA PARTE – Tempo a disposizione 30 minuti CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA ED INFORMATICA CORSO DI LAUREA IN INGEGNERIA BIOMEDICA 15 Giugno 2020 NOME: COGNOME: MATRICOLA: CORSO DI LAUREA: Codice d’onore Durante le prove d'esame online l’allievo si impegna a: ● non avvalersi di alcun ausilio esterno, cartaceo o elettronico, se non espressamente autorizzato dal docente all’inizio della prova d’esame; ● non avvalersi dell’aiuto di altre persone; ● non contattare o tentare di contattare in alcun modo altri allievi; ● non copiare o osservare le prove di altri allievi; ● nel corso della prova orale di un altro allievo e durante lo svolgimento della prova scritta “fiduciaria”, tenere il proprio microfono spento, salvo diversa richiesta del docente; ● restare connesso per il tempo strettamente necessario allo svolgimento della prova scritta “fiduciaria” e al termine della prova, consegnare il proprio elaborato scritto secondo le modalità previste dal docente. Con la consegna della presente prova scritta fiduciaria l’allievo si impegna ad accettare il presente codice d’onore. La violazione degli impegni di cui sopra o delle eventuali altre disposizioni indicate dal docente comporta, in ogni caso, l'annullamento della prova. ***Quando consegnate la prova d’esame, rinominate il file in questo modo, lasciando l’estensione originale: MATRICOLA_COGNOME_NOME (per esempio 123456_TURING_ALAN.rtf)*** ***Motivare adeguatamente tutte le risposte*** ESERCIZIO 1 (8 punti) Si disegni la tabella delle transizioni, o in alternativa il grafo degli stati, di una rete logica in grado di riconoscere in una sequenza di bit in ingresso la stringa 0101 ponendo a “1” l’uscita solo quando si abbia il riconoscimento di tale stringa. Soluzione: ESERCIZIO 2 (7 punti) I trasferimenti di parole a/dalla memoria di un calcolatore sono codificati utilizzando il codice di Hamming. Sia data la stringa 11011110 da codificare, con bit meno significativo corrispondente all’ultimo 0 a destra. Si rappresenti la stringa codificata. Prova scritta fiduciaria di Calcolatori Elettronici – 15 Giugno 2020
Soluzione: Dev’essere rispettata la condizione: 2K ³ N + K +1 (1), dove K è il numero di bit di controllo inseriti. Essendo N = 8, si evince dalla (1) che K = 4. Nella codifica di Hamming, la sequenza codificata è la seguente: c0 c1 b0 c2 b1 b2 b3 c3 b4 b5 b6 b7 0 1 0 0 1 1 1 1 1 0 1 1 Dove c0…c3 sono i quattro bit costituenti il vettore di controllo, e b0…b7 gli otto bit trasmessi. I bit di controllo rispetto alla sequenza b0…b7 sono: c0 = 0 c1 = 1 c2 = 0 c3 = 1 ESERCIZIO 3 (6 punti) Scrivere un frammento di codice Assembly che calcola la seguente sommatoria e la memorizza in una parola di memoria di indirizzo x: ! ! "#$ Si supponga che n sia memorizzato nel registro $5. Soluzione: move $7, $0 addi $8, $0, 1 while: beq $8, $5, exit add $7, $7, $8 addi $8, $8, 1 j while exit: sw $8, x($0) Prova scritta fiduciaria di Calcolatori Elettronici – 15 Giugno 2020
PROVA SCRITTA FIDUCIARIA DEL CORSO DI CALCOLATORI ELETTRONICI SECONDA PARTE – Tempo a disposizione 30 minuti CORSO DI LAUREA IN INGEGNERIA ELETTRICA, ELETTRONICA ED INFORMATICA CORSO DI LAUREA IN INGEGNERIA BIOMEDICA 15 Giugno 2020 NOME: COGNOME: MATRICOLA: CORSO DI LAUREA: Codice d’onore Durante le prove d'esame online l’allievo si impegna a: ● non avvalersi di alcun ausilio esterno, cartaceo o elettronico, se non espressamente autorizzato dal docente all’inizio della prova d’esame; ● non avvalersi dell’aiuto di altre persone; ● non contattare o tentare di contattare in alcun modo altri allievi; ● non copiare o osservare le prove di altri allievi; ● nel corso della prova orale di un altro allievo e durante lo svolgimento della prova scritta “fiduciaria”, tenere il proprio microfono spento, salvo diversa richiesta del docente; ● restare connesso per il tempo strettamente necessario allo svolgimento della prova scritta “fiduciaria” e al termine della prova, consegnare il proprio elaborato scritto secondo le modalità previste dal docente. Con la consegna della presente prova scritta fiduciaria l’allievo si impegna ad accettare il presente codice d’onore. La violazione degli impegni di cui sopra o delle eventuali altre disposizioni indicate dal docente comporta, in ogni caso, l'annullamento della prova. ***Quando consegnate la prova d’esame, rinominate il file in questo modo, lasciando l’estensione originale: MATRICOLA_COGNOME_NOME (per esempio 123456_TURING_ALAN.rtf)*** ***Motivare adeguatamente tutte le risposte*** ESERCIZIO 1 (6 punti) E’ dato un vettore v di valori binari di indirizzo iniziale salvato nel registro $4 e dimensione N salvata nel registro $5. Scrivere una funzione Assembly shift che, ricevuto un terzo parametro m nel registro $6, effettui lo scorrimento degli ultimi N-m elementi del vettore dalla coda alla testa, assegnando le ultime m posizioni a 0; corrispondentemente, le m posizioni in testa andranno perse. Per esempio dato il seguente vettore (N=32): v 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 Dopo la funzione shift con m=1: v 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 1 1 0 0 Possibile codice C: void shift(int*v, int N, int m) { int i; for(i=m, j=0; i
Soluzione: shift: addi $29, $29, -16 sw $8, 0($29) sw $9, 4($29) sw $10, 8($29) sw $11, 12($29) move $8, $6 muli $9, $6, 4 for: beq $8, $5, exit muli $10, $8, 4 add $10, $10, $4 lw $11, 0($10) sub $10, $10, $9 sw $11, 0($10) addi $8, $8, 1 j for exit: add $10, $10, $9 muli $11, $5, 4 add $11, $11, $4 for2: beq $10, $11, exit2 sw $0, 0($10) addi $10, $10, 4 j for2 exit2: lw $8, 0($29) lw $9, 4($29) lw $10, 8($29) lw $11, 12($29) addi $29, $29, 16 jr $31 ESERCIZIO 2 (3 punti) Progettare un flip flop JK a partire da un flip flop D. Disegnare il circuito logico finale indicando la funzione di transizione dello stato, il numero di stati, la funzione di uscita. Soluzione: Lo schema logico per sintetizzare un flip flop JK a partire da un flip flop D è il seguente: J RETE DI D FLIP Q RETE DI Z TRANSIZIONE FLOP USCITA DELLO D K STATO FLIP FLOP JK L’uscita di un flip flop JK corrisponde ai valori dello stato (due), per cui si ha Z=Q. Rimane da definire solo la funzione di transizione dello stato, che si ottiene dalla tabella di transizione di un flip flop JK e dalla tabella di eccitazione del flip flop D: Prova scritta fiduciaria di Calcolatori Elettronici – 15 Giugno 2020
J K Q Q’ D 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 Sintetizzando con le mappe di Karnaugh: JK Q 00 01 11 10 0 1 1 1 1 1 D = J Q + KQ ESERCIZIO 3 (3 punti) Si consideri una CPU con architettura a zero indirizzi con set istruzioni: PUSH X (pushßM[X]), POP X (M[X]ßpop), ADD (pushßpop+pop), DIV (pushßpop1/pop2). Scrivere la sequenza d’istruzioni necessaria per implementare l’espressione algebrica: Z = A + B/C. Soluzione: A partire dalla semantica fornita nel testo, una possibile sequenza è: Istruzione Semantica PUSH C PushßM[C] PUSH B PushßM[B] DIV PushßM[B]/M[C] PUSH A PushßM[A] ADD PushßM[A] + M[B]/M[C] POP Z M[Z]ßpop Prova scritta fiduciaria di Calcolatori Elettronici – 15 Giugno 2020
Puoi anche leggere