Esempi di domande per l'esame di Calcolatori Elettronici I (C.L. Ing. Informatica) A/A 2002/2003 Prof. Bruno Ciciani 1. Sistemi numerici e codici a.. Convertire il numero decimale 712 in binario (far vedere la procedura usata e da dove nasce). a.. Convertire il numero binario 1100110011 in decimale (far vedere la procedura usata e da dove nasce). a.. Convertire il numero decimale 0,12 in binario (far vedere la procedura usata e da dove nasce). a.. Convertire il numero decimale -10 in binario con 5 bit rappresentato in complemento alla base, dopodiché rappresentarlo sempre in complemento alla base con 12 bit. a.. Data una rappresentazione in complemento a due con 16 bit quanti numeri interi positivi si possono rappresentare? E quanti negativi? a.. Dati 10 bit per rappresentare la mantissa e 8 per l'esponente (considerando anche il segno sia della mantissa che dell'esponente) qual'è il numero massimo e minimo decimale rappresentabile. a.. Dati 8 bit per rappresentare la mantissa e 10 per l'esponente (considerando anche il segno della mantissa e dell'esponente) qual è l' errore massimo che si commette nel rappresentare i numeri reali? a.. Effettuare l'addizione tra 01111 e 100000000001. a.. Effettuare la sottrazione tra il numero decimale 22 e il numero decimale 33 rappresentati prima in binario con segno e poi rappresentati in binario complementati alla base. a.. Dare la definizione di codici ridondanti e irridondanti, dopodiché portare degli esempi di codifica di quattro elementi con un codice irridondante ed uno ridondante. a.. Definire la distanza di Hamming e dire che distanza c'è tra le codifiche 00110011 e 00011100. a.. Descrivere che cosa è il codice di parità e aggiungere un bit di parità alle configurazioni 0011 e 1100. a.. Cosa sono i codici a rivelazione e correzione di errore? Dare un esempio di una codifica di dieci elementi in grado di rivelare e correggere un errore. a.. Codificare con il codice di Hamming ( in grado di correggere un errore) la seguente sequenza di bit: 0110 2. Algebra di commutazione a.. Descrivere che cosa è l'Algebra di Boole. a.. Data una rappresentazione delle cifre decimali (0...9) in BCD scrivere la tabella di verità della funzione di commutazione che è vera quando la cifra è compresa tra 4 e 6. a.. Data la tabella di verità precedente rappresentare la funzione come somma logica di mintermini. a.. Data la funzione precedente rappresentarla con l'espressione minima. a.. Che cosa è l'espressione minima di una funzione? Dare un esempio di almeno due espressioni non minime e di quella minima di una funzione di commutazione a tre variabili definita a piacere dallo studente. a.. Date le 16 configurazioni di 4 variabili di commutazione si scriva una funzione di commutazione che è significativa solo per 8 configurazione di ingresso (a scelta dello studente), dopodiché scrivere l'espressione minima che la rappresenta. a.. Che cosa è l'OR esclusivo? Qual'è la sua tabella di verità e quali sono le sue proprietà? a.. Il buffer three (tri) state è un operatore logico? Indicare un esempio del suo uso. a.. Perché gli operatoti NAND e NOR vengono detti universali? a.. Far vedere come usando solo operatori NAND è possibile generare l' algebra di commutazione. 3. Elementi di reti combinatorie a.. Sintetizzare una rete combinatoria minima di una funzione a 5 variabili a scelta dello studente. a.. Data la funzione di commutazione a 5 variabili di commutazione che è vera quando la configurazione di ingresso presenta il numero di bit pari ad 1 compreso tra 2 e 3, sintetizzarla con una ROM. a.. Sintetizzare la rete combinatoria standard: multiplatore a 8 ingressi. a.. Sintetizzare la rete combinatoria standard: decodificatore BCD-decimale. a.. Sintetizzare la rete combinatoria standard: addizionatore di due operandi a 4 bit. a.. Sintetizzare la rete combinatoria standard: comparatore di due operandi a 2 bit. a.. Utilizzando un circuito comparatore di operandi a un bit si progetti un comparatore con operandi a quattro bit. a.. Utilizzando un circuito addizionatore con operandi a 2 bit si progetti un addizionatore con operandi ad otto bit. 4. Elementi di reti sequenziali a.. Rappresentare la macchina di Mealy riconoscitrice della sequenza "ciao". a.. Rappresentare la macchina di Moore riconoscitrice della sequenza "addio". a.. Far vedere una possibile architettura di una memoria RAM. a.. Far vedere l'architettura di massima di una rete sequenziale Level Level Clocked (LLC). § Realizzare un contatore modulo 4 con due simboli di ingresso: uno per incrementare ed uno per decrementare. a.. Sintetizzare la rete rete sequenziale Level Level Clocked (LLC) riconoscitrice della sequenza "accca" ipotizzando che l'alfabeto di ingresso sia costituito solo dai caratteri: "a, b, c, d" e che l'uscita sia costituita solo da "stringa riconosciuta, stringa non riconosciuta". E' sufficiente descrivere le equazioni di eccitazioni di un solo flip-flop, per semplicità utilizzare flip-flop di tipo D. a.. Descrivere quali sono le funzionalità del SCO (sottosistema di controllo) e del SCA (sottosistema di calcolo) di un sistema digitale complesso. a.. Data una catena aperta di quattro reti LLC, di cui la prima e la terza implementanti una macchina di Mealy e la seconda e la quarta una macchina di Morre, determinare il periodo minimo del clock di sistema. a.. Data una catena chiusa di tre reti LLC, di cui la prima implementante una macchina di Moore e le altre una di Mealy, determinare il periodo minimo del clock di sistema. a.. Dati tre circuiti combinatori, di cui il primo ha un tempo di calcolo di 5 nsec., il secondo 10 nsec. e il terzo di 5 nsec., proporre una architettura pipeline con clock di sistema pari a 10 nsec. ed un'altra con un clock di sistema pari a 5 nsec. a.. Dati 8 registri disegnare una possibile architettura per il trasferimento del contenuto dei registri utilizzando un bus, due bus e tre bus. a.. Che cosa è un bus? Dopodiché dare un esempio di bus a 16 bit in cui sono connessi 4 registri (sia in ingresso che in uscita). a.. Descrivere una possibile architettura di un SCO microprogrammato implementante una macchina di Moore in cui pur essendoci n variabili di condizione ne viene usata una sola alla volta per determinare lo stato successivo. a.. Descrivere una possibile architettura di un SCO microprogrammato implementante una macchina di Moore in cui sono presenti diversi microprogrammi ed ogni microprogramma è identificato da un "codice". a.. Progettare un SCA costituito da quattro registri connessi da un bus, dopodiché proporre un'architettura di un SCO microprogrammato e scrivere un microprogramma per il trasferimento del contenuto di un registro in un altro. L'identificativo del registro sorgente e destinazione è memorizzato in un registro apposito di quattro bit. a.. Progettare un SCA costituito da sedici registri visibili (lato utente) e da un ALU connessi da un bus, dopodiché proporre un'architettura di un SCO microprogrammato e scrivere un microprogramma per il trasferimento in un registro dell'uscita dell'ALU (in grado di effettuare quattro operazioni) dopo che ha manipolato il contenuto di due registri. L'identificativo dell' operazione da effettuare, i registri sorgente e il registro destinazione sono memorizzati in un registro apposito (REG_OP) di dieci bit. Il SCO inizia il microprogramma a fronte della presenza di un segnale di START (generato dall'utente, che deve aver già inizializzato il registro REG_OP) e alla fine genera un segnale di END (che verrà utilizzato dall'utente). 5. Organizzazione dei calcolatori elettronici convenzionali (con riferimento al PD32) a.. Descrivere la macchina di Von Neumann. a.. Dato il processore didattico PD32 descrivere i metodi analizzati di indirizzamento alla memoria. a.. Disegnare l'architettura del processore didattico PD32 e descrivere le funzionalità di ogni singolo registro. a.. Dato il processore didattico, descrivere la parte della macchina sequenziale del SCO atta all'esecuzione di una istruzione di spostamento dati tra registri senza considerare la fase di fetch. a.. Dato il processore didattico, descrivere la parte della macchina sequenziale del SCO atta all'esecuzione di una istruzione di addizione del contenuto di due registri interni senza considerare la fase di fetch. a.. Dato il processore didattico, descrivere la parte della macchina sequenziale del SCO atta all'esecuzione di una istruzione di salto incondizionato senza considerare la fase di fetch. a.. Dato il processore didattico, descrivere la parte della macchina sequenziale del SCO atta all'esecuzione di una istruzione di salto condizionato senza considerare la fase di fetch. a.. Descrivere la differenza tra linguaggio assemblativo e linguaggio macchina. a.. Descrivere le temporizzazioni di una memoria RAM di tipo statico. a.. Data la temporizzazione dell'accesso alla memoria RAM descritta in aula descrivere la macchina sequenziale del SCO del PD32 relativa alla fase di fetch. a.. Descrivere con l'ausilio di un disegno la sequenza delle operazioni eseguita dal PD32 per l'esecuzione dell'istruzione MOVB R1, R2 a.. Descrivere con l'ausilio di un disegno la sequenza delle operazioni eseguita dal PD32 per l'esecuzione dell'istruzione MOVB (R1)+, R2 a.. Descrivere con l'ausilio di un disegno la sequenza delle operazioni eseguita dal PD32 per l'esecuzione dell'istruzione MOVL -(R1), R2 a.. Descrivere con l'ausilio di un disegno la sequenza delle operazioni eseguita dal PD32 per l'esecuzione dell'istruzione ADDB R1, (R2) a.. Descrivere con l'ausilio di un disegno la sequenza delle operazioni eseguita dal PD32 per l'esecuzione dell'istruzione ADDW 30h, R2 6. Esercizi programmazione assembler del PD32 a.. Dato un vettore di dati costituito da 100 byte, che codificano numeri interi positivi, cercare il massimo e la posizione relativa. a.. Dato un vettore di dati costituito da 16 byte, che codificano numeri interi positivi, calcolare il valore medio (ricordarsi che la divisione per numeri pari a 2**i può essere fatto tramite shift di "i" posizioni). a.. Realizzare un programma che realizzi la moltiplicazione tra due operandi di 8 bit utilizzando istruzioni di addizione e shift. a.. Realizzare un programma che realizzi la divisione tra due operandi, in cui il dividendo è di 16 bit e il divisore di 8 bit. a.. Dato un vettore costituito da un numero pari di word, realizzare un programma che inverti il vettore senza usare altra memoria di lavoro come buffer di appoggio. a.. Dato un vettore di 16 longword, che codificano numeri interi positivi, cercare il valore minimo, il massimo e il valore medio (fare attenzione all' eventuale overflow). a.. Data una sequenza non decrescente di 64 interi (memorizzati in un vettore di 64 word), identificare il valore medio, la mediana (nel caso di sequenze di lunghezza pari è uguale alla media dei due numeri centrali) e la moda (valore che si presenta con maggiore frequenza nella sequenza). a.. Dato un vettore di 16 word, rappresentante un'istogramma a 16 intervalli (i.e.: il valore dell'i-esimo elemento rappresenta la frequenza assoluta dell'i-esimo intervallo), ricavare il relativo vettore delle probabilità (i.e.: nell'elemento i-esimo vi è memorizzata la frequenza relativa).