Domande di esame e soluzioni
Quanta banda passante garantisce il bus?
R: (3 pt) Poiché il segnale assume almeno 4 livelli distinti, esso a ogni slot temporale trasmette un’informazione equivalente a 2 bit. In più, il segnale commuta con un periodo di clock uguale a 1 ms, dunque con frequenza uguale a 1 kHz. Consequentemente la banda passante del bus è almeno uguale a 2 kbit/s.
Architettura a 32 bit e memoria
R: (3 pt) Dall’equivalenza 4 Mbyte = 222 byte si evince che la memoria può contenere 222/4 = 220 word, in quanto l’architettura in questione è a 32 bit. Quindi, 20 bit sono sufficienti a indirizzare ciascun word in memoria. Infine, è necessario 1 bit per specificare se il salto relativo avviene in avanti o all’indietro. In conclusione, 20 + 1 = 21 bit sono sufficienti per specificare l’argomento dell’istruzione di salto relativo nell’architettura in questione.
Memoria virtuale e page table
R: Dal numero di righe (32768 = 215) di cui si compone la page table si deduce il numero di pagine virtuali e, quindi, la dimensione di ogni pagina: 232/215 = 217 byte, poiché ogni indirizzo è appunto lungo 32 bit. Poiché siamo nell’ipotesi di un riempimento ottimale, a questo punto il numero di pagine che riescono a trovare posto nella memoria principale si ottiene dividendo la capacità della memoria principale (1 MB = 220 byte) per la dimensione di una pagina: 220/217 = 23 = 8 pagine.
Programma in assembly per ARM
R: (9 pt) Scrivere un programma in assembly per ARM il quale calcola le prime n+1 potenze intere di 2, cioè 20, 21, ..., 2n, e contestualmente le salva a partire da quella di valore più grande in un array di dimensione 10. Il programma funzionerà regolarmente tanto nel caso n < 10 in cui l’array resta parzialmente vuoto, quanto nel caso n > 10 in cui lo stesso array non può contenere tutte le potenze calcolate, limitandosi dunque alle 10 potenze più grandi. Non ci si preoccupi di gestire la situazione n > 31 in cui la potenza di 2 corrispondente non può essere rappresentata come un numero intero dall’architettura in questione. È gradita la presenza di commenti al codice prodotto.
Operazione 123456789A + 253
R: (3 pt) Eseguire l’operazione in base 10 dopo avere effettuato le necessarie conversioni, per poi riconvertire il risultato nella base di partenza, è sicuramente più dispendioso in termini di tempo che non sommare direttamente nella base 11 su cui è sufficiente “contare fino a undici”: 0,1,2,3,4,5,6,7,8,9,A,10,11,...
123456789A
+ 253
------------
1234568042
Si notino i riporti generati dalle operazioni fatte su ogni colonna.
Rappresentazione del valore zero in eccesso 180 a 8 bit
R: (3 pt) Per definizione di notazione eccesso N, in cui il valore zero corrisponde appunto al numero binario N, nel nostro caso dobbiamo rappresentare 180 binario su 8 bit: 180|2---+-90|0 45|0 22|1 11|0 5|1 2|1 1|0 0|1 Dunque, il valore zero in notazione eccesso 180 a 8 bit è rappresentato come 10110100.
Codifica IEEE 754 a 32 bit
R: (3 pt) Poiché 1.3 = 1.010012, il numero è già nella forma esponenziale binaria desiderata: 1.01001E0. La codifica richiesta avrà dunque bit di segno non asserito, esponente uguale a 127+0 = 127 = 011111112 e infine mantissa uguale a 01001. Sistemando sui 32 bit previsti dallo standard IEEE 754 e convertendo alla base esadecimale, considerando anche la periodicità: 0 | 01111111 | 01001...3 | F | A | 6 | 6 | ...da cui la codifica richiesta: 0x3FA66666.
Legge di Moore e linee di indirizzo
R: (3 pt) Dopo sei anni la capacità, a parità di dimensioni, è aumentata di 42 = 16 = 24 volte. Nell’ipotesi che il numero di linee dato resti invariato nel tempo, allora è il numero di locazioni che è aumentato dello stesso fattore. Occorrono quindi 4 linee in più per indirizzare tutte le locazioni, con il risultato che il numero di piedini dedicati alle linee indirizzo passa da 23 a 23 + 4 = 27.
Tabella di verità e transistor
R: (3 pt) Il circuito in figura realizza la forma normale standard della seguente tabella di verità:
ABC | E
000 | 1
001 | 0
010 | 0
011 | 0
100 | 0
101 | 0
110 | 0
111 | 1
Contenendo 2 porte ternarie AND (4 transistor ciascuna), una porta binaria OR (3 transistor) e 3 porte NOT (un transistor ciascuna), il circuito in totale contiene 14 transistor.
Espressione booleana e minimizzazione
R: (3 pt) Dalle righe in tabella di verità associate a uscite uguali a zero si ottiene immediatamente
E = (A + B + C)(A + B + C)(A + B + C)(A + B + C)(A + B + C)(A + B + C).
A questo punto, osservando che le sei parentesi formano tre coppie in cui ciascuna contiene una variabile e la sua negata mentre il resto del contenuto tra parentesi è identico, adoperando la semplificazione suggerita rispettivamente sulle parentesi 1 e 5 per eliminare A, 4 e 6 per eliminare B, 2 e 3 per eliminare C, si ottiene E = (B + C)(A + C)(A + B).
Analogamente, adoperando la stessa semplificazione rispettivamente sulle parentesi 2 e 6 per eliminare A, 1 e 3 per eliminare B, 4 e 5 per eliminare C, si ottiene
E = (B + C)(A + C)(A + B).
Di qui in poi, qualunque eventuale ulteriore passaggio era accettabile in dipendenza dal tipo di minimizzazione scelta per la soluzione.
Minimizzazioni con mappa di Karnaugh
R: (3 pt) La tabella di verità originale è generata dall’espressione booleana in forma normale standard E = A + B + C. Questo permette di generare minimizzazioni multiple della forma normale standard dualizzata. Le coperture in una mappa di Karnaugh evidenziano queste minimizzazioni. Per esempio, una delle minimizzazioni possibili è E = (B + C)(A + C)(A + B). Ciò è possibile perché l’uscita resta identica se ogni variabile d’ingresso è sostituita dalla sua negazione.
Macchina a stati finiti
R: (3 pt) È sufficiente accodare due flip-flop e comporre le rispettive uscite secondo l’espressione data. Una soluzione è fornita dal seguente circuito sequenziale, in cui si sfrutta la rete combinatoria già fornita all’esercizio 5:
E = A + B + C.
Dalla rete combinatoria si ottiene l’uscita desiderata, mentre i flip-flop tengono traccia degli stati precedenti.
Codice binario di Hamming a 7 bit
R: È necessario definire la tabella di verità che determina i valori dei bit di controllo X, Y, Z per la sequenza binaria di ingresso ABCD. Il codice di Hamming garantisce la correzione di un singolo errore, quindi è essenziale definire correttamente i bit di controllo per ogni possibile combinazione di ingresso.
-
Prove svolte di Architettura degli elaboratori
-
Prove svolte Architettura degli elaboratori
-
Prove svolte Architettura
-
Prove svolte Architettura dei calcolatori