Estratto del documento

Operazione tra numeri decimali

La corrispondente operazione tra numeri decimali si riconosce subito dal fatto che n codifica il valore 2−1.28, e il risultato della somma è la codifica del valore. Dunque, n non può che corrispondere al valore 1−29. −29 −1. L'operazione corrispondente tra numeri decimali quindi è: + 28 =−15 −183.

Convertire il numero in IEEE 754

Convertire il numero 2 + 2 in codifica floating point IEEE 754 a 32 bit. −15 −3 −R: (3 pt) Il numero in questione sopra può essere subito riscritto come 2 (1 + 2 ) = 1.001 E 15.2−La codifica richiesta avrà dunque bit di segno nullo, esponente uguale a 127 15 = 112 = e01110000 2 infine mantissa uguale a. Sistemando sui 32 bit previsti dallo standard IEEE 754 e convertendo alla base esadecimale: 0|0 1 1 1 0 0 0 0|0 0 1 0 0 0 0 0 ...3 | 8 | 1 | 0 | 0 ...da cui la codifica richiesta: 0x38100000.

Legge di Moore

La legge di Moore afferma che il numero di transistor nell’unità di memoria quadruplica ogni tre anni. Quanto tempo è passato tra la produzione di due chip se la densità di transistor tra quello meno recente e quello più recente è aumentata di un fattore 32? R: (3 pt) Se la densità tra il chip meno recente e quello più recente è aumentata di un fattore 32 = 4·4·2, considerato che la legge di Moore afferma equivalentemente che il numero di transistor nell’unità di memoria raddoppia ogni anno e mezzo allora il fattore in questione è verificato allorquando sono trascorsi 3 + 3 + 1.5 = 7.5 anni.

Semplificazione di espressioni booleane

Semplificazione ed espressioni

Si semplifichi l’espressione booleana per realizzare il circuito booleano rappresentato dall’espressione prima della semplificazione e quanti sono necessari per rappresentare con un circuito booleano l’espressione ottenuta dopo la semplificazione. R: (3 pt) Adoperando la regola di De Morgan si ha A BC D = A + BC + D = A + BC + D, in cui entrambe le espressioni hanno bisogno di 7 transistor per essere realizzate da un circuito booleano: quella prima della semplificazione abbisogna di 2 porte NOT, una NAND binaria e una NAND ternaria; quella dopo la semplificazione abbisogna di una porta AND binaria e una porta OR ternaria.

Verifica con mappa di Karnaugh

[INF] Si verifichi la semplificazione prodotta all’esercizio 5 mediante una mappa di Karnaugh. R: (3 pt)

AD 00 01 11 10
BC 00 0 1 1 1
01 0 1 1 1
11 1 1 1 1
10 0 1 1 1

che ammette due coperture di “uni” di dimensione 4 x 2, da cui i termini A e D, e una copertura di dimensione 1 x 4 da cui il termine BC.

Realizzazione del circuito

Realizzare l’espressione all’esercizio 5 ottenuta dopo la semplificazione adoperando una porta AND e un multiplexer a tre ingressi di controllo, disegnando il circuito corrispondente senza mostrare come è costruito nei particolari il relativo multiplexer. R: (3 pt) 5V 1110000V A B C D

Circuito sequenziale

[INF] Disegnare il circuito sequenziale che, ricevendo in ingresso un segnale A rappresentativo di una sequenza binaria contenente valori 0 e 1, riconosce ogni istanza della sottosequenza 01001001 nel momento in cui essa è presente nella sequenza in ingresso. Il circuito restituisce in uscita un segnale E che vale 0 se la sottosequenza in quel momento non è stata riconosciuta oppure 1 se viceversa è stata riconosciuta. Suggerimento: evitare se possibile di passare attraverso la progettazione di una macchina a stati finiti, adoperando invece un metodo che conduce direttamente al circuito. R: (3 pt) Il circuito può essere immediatamente disegnato adoperando un buffer di flip-flop che realizza una coda di bit: E A D Q D Q D Q D Q D Q D Q D Q

Codice binario per il controllo degli errori

Un codice binario per il controllo degli errori codifica ogni bit con la sua ripetizione quadrupla. Quindi, per esempio, la sequenza di tre bit viene codificata come 101 111100001111. Il ricevitore è programmato per correggere l'errore ogni volta che nella codifica ricevuta esiste informazione sufficiente per prendere una decisione sulla decodifica. Quante sono le codifiche possibili che possono essere ricevute ogni volta che un bit viene inviato? Qual è la regola di correzione che ha senso programmare? In quante codifiche l’errore può essere correttamente rimosso? In quante codifiche l’errore è viceversa rimosso producendo tuttavia una ricezione scorretta? R: (3 pt) Per ogni bit trasmesso possono essere ricevute 24 = 16 codifiche diverse. Se il ricevitore ragionevolmente decide di decodificare ogni quadrupla ricevuta con il valore che ricorre più frequentemente, allora esistono 4 codifiche in cui l’errore viene rimosso correttamente (quelle in cui un bit è stato corrotto durante la trasmissione) e 4 codifiche che sono corrette in modo errato (quelle in cui tre bit sono stati corrotti durante la trasmissione).

Sostituzione del bus parallelo

Si vuole sostituire un bus parallelo a 4 linee, ciascuna con una banda passante di 200 Mb/s, con un bus seriale che raggruppa in un unico pacchetto i 4 bit che prima erano inviati ciascuno separatamente sulla rispettiva linea. Lo stesso pacchetto ha bisogno di un preambolo di 4 bit, necessari a garantire la sincronizzazione nel canale seriale. Quale dev'essere il periodo di clock del bus seriale? R: (3 pt) Se ogni linea nel bus parallelo ha una banda passante di 200 Mb/s, quel bus ha una banda passante complessiva di 4·200 = 800 Mb/s. Il bus seriale aggiunge 4 bit a ogni pacchetto di 4 bit, e quindi deve possedere una banda passante complessiva di 1600 Mb/s per mantenere il flusso d’informazioni. Il ricevitore deve quindi leggere i bit sincronizzandosi con essi a una frequenza di clock f = 1600 MHz = 1.6×109 Hz. Conseguentemente, il periodo di clock risulterà uguale a T = 1/f = 1/1.6×109= 0.625×10-9 s, cioè 0.625 ns.

Scelta del preambolo

Con riferimento all’esercizio precedente, si dica quale tra i tre preamboli proposti qui di seguito converrà scegliere all’atto di sostituire il bus parallelo con quello seriale: 1100, 1010 o infine 1111. Perché? R: (3 pt) Il ruolo del preambolo è quello di garantire la sincronizzazione. Dunque, conviene sceglierlo in modo che assicuri la massima variabilità dei valori assunti dai suoi bit. La sequenza 1010 è la più efficace allo scopo. Seguono nell’ordine la sequenza 1100 e infine la 1111, la quale è sostanzialmente inutile ai fini della sincronizzazione.

Campo argomento per l'istruzione macchina

Quanti bit occorre almeno dedicare al campo argomento di un’istruzione macchina di logical shift left (lsl) appartenente a un’architettura di 32 bit? Si spieghi perché. R: (3 pt) Dovendo l’operazione di arithmetic shift right ragionevolmente traslare il contenuto di un registro almeno fino a 32 posizioni verso destra, occorre un campo di almeno 5 bit all’interno del quale specificare l’entità della traslazione.

Sistema di memoria virtuale segmentata

In un sistema di memoria virtuale segmentata, la memoria fisica di 4 MB è occupata da segmenti tutti uguali a 128 kB i quali sfortunatamente sono collocati nel modo più inefficiente all’interno della memoria fisica. Quanti segmenti sono presenti in memoria principale? Mostrare i calcoli che conducono al risultato. R: Poiché 128 kB corrispondono a 217 byte, la collocazione meno efficiente corrisponde ad avere spazi liberi in memoria principale di 217−1 byte tra segmenti successivi. Il conteggio dei segmenti a questo punto può essere fatto pensando di avere riempito la memoria con segmenti equivalenti di 217 + 217−1 byte. Poiché la memoria fisica ha un’estensione di 4×220 = 222 byte, il loro numero è uguale a 222 / (217 + 217−1) = 218 / 217 = 2 = 16.

Programma in assembly per ARM

[INF] Scrivere un programma in assembly per ARM a 32 bit il quale, avendo accesso a un array di interi presente nella memoria di lunghezza parimenti specificata in memoria, lo sostituisce con un nuovo array di elementi ciascuno dei quali è uguale al complemento a uno del corrispondente elemento presente nell’array di partenza. Per esempio, se prima dell’esecuzione del programma l’array conteneva gli interi 0x00000E0F, 0x0000FFF1, dopo l’esecuzione lo stesso array conterrà gli elementi 0xFFFFF1F0, 0xFFFF000E. È gradita la presenza di commenti al codice prodotto.

.data
n: .word 2
array: .word 0x00000E0F, 0x0000FFF1
.text
main: ldr r0, =array @ array head position in r0
ldr r1, =n
ldr r1, [r1] @ array length in r1
loop: @ iterate on elements
subs r1, r1, #1 @ if r1<0 ...
blt exit @ ...then exit
ldr r2, [r0] @ load element into r2
mvn r2, r2 @ negate (i.e. cmpl’t to one) element
str r2, [r0], #4 @ store element in r2, point to next
b loop @ iterate on next element
exit: swi 0x11 @ exit
.end

Conversione alla base 32

Convertire il numero 111111111.1 alla base 32. Si specifichino solo i simboli necessari a rappresentare il risultato nella nuova base, senza viceversa definire l’intero alfabeto delle cifre in base 32. R: (3 pt) Trattandosi di basi che sono una potenza di due, è sufficiente raggruppare gruppi di 5 cifre binarie per riscrivere il numero nella base 32: 11111 . 11111 .= F Z.Z32 Si noti che la lettera Z è stata scelta arbitrariamente per definire la cifra più grande nella base 32. Altre definizioni non occorrono per la specifica soluzione.

Codifica in complemento a 2

Si scriva la codifica in complemento a 2 a 8 bit del numero n più piccolo che, sommato algebricamente a n = 1111111112, manda l’aritmetica del calcolatore in overflow. R: (3 pt) Il numero n deve avere lo stesso segno di n e far produrre un risultato di segno opposto: 111111111 + 10000000 = 01111111. Infatti, riportando l’operazione alla base 10: n + n = 128 = −1 2 che, appunto, non è rappresentabile in complemento a due a 8 bit. Poiché ogni altro numero n negativo non avrebbe mandato l’aritmetica del calcolatore in overflow, esso è anche il più piccolo.

Anteprima
Vedrai una selezione di 3 pagine su 7
Prove svolte Architettura dei calcolatori Pag. 1 Prove svolte Architettura dei calcolatori Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Prove svolte Architettura dei calcolatori Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher danciogancio di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Udine o del prof Fontana Federico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community