|
Prove d'esame assegnate nel
1997
|
||
|
1
|
23/2/95
|
|
|
2
|
28/1/97
|
|
|
3
|
25/2/97
|
|
|
4
|
10/5/97
|
|
|
5
|
11/6/97
|
|
|
6
|
10/7/97
|
|
|
7
|
5/9/97
|
|
|
8
|
10/10/97
|
|
|
9
|
13/12/97
|
Progetto di un banco di memoria per il Pentium
Prova Scritta del 23 Febbraio 1995 (L-Z)
1) Si progetti un banco di memoria per il processore PENTIUM con le seguenti caratteristiche:
Si richiede:
(Punti 21)
2) Si esegua uno dei due esercizi seguenti:
- Esercizio 2.1)
- Esercizio 2.2)
Si descriva la dinamica della pipeline del DLX nell'esecuzione del seguente codice (Punti 5)
| ADD | R3,R0,R0 | |
| BEQZ | R3, ALFA | |
| BETA: | ADD | R5,R6,R6 |
| ALFA: | SUB | R9,R10,R11 |
| SUB | R12,R13,R14 |
Si disegni la pipeline utilizzata indicando in particolare i blocchi interessati alla gestione dell'istruzione di branch e si valuti la massima frequenza di funzionamento della pipeline (Punti 7).
Interfacciamento del DLX con l'Interrupt Controller 8259
Si riprogetti la pipeline a 5 stadi del DLX in modo da realizzare
la gestione delle interruzioni generate da un 8259. A tal fine il DLX dispone
dei seguenti segnali di comunicazione con l'8259: INT, INTA# e D[0:7].
La nuova pipeline del DLX dovrà gestire:
Progetto di interfaccia generica configurabile
Prova scritta del 25 febbraio 1997 (L-Z)
Si vuol dotare un sistema a microprocessore basato su Pentium a 66Mhz, con clock a 50Mhz di un flessibile meccanismo di indirizzamento dei dispositivi periferici cosi' concepito:
Per realizzare questo meccanismo di indirizzamento e' necessario associare a ogni periferica alcuni registri di configurazione; ad essi e' possibile accedere (in lettura ed in scrittura) attraverso due indirizzi di I/O, CONF_ADD equ 0CF8H e CONF_DATA equ 0CFCH. CONF_ADD contiene l'identificatore della periferica e del relativo registro di configurazione (2 byte), mentre CONF_DATA contiene il dato di 4 byte (numero di stati wait o numero di byte occupati o indirizzo in mem o indirizzo in I/O ).
A titolo di esempio e per maggiore chiarezza si riporta di seguito il codice per la programmazione del parametro PARAM_ID della periferica PERIF_ID:
| mov | dx, 0CF8H | ; indirizzo a cui inviare l'identificatore dell'agente da configurare | |
| mov | al, PERIF_ID | ||
| mov | ah, PARAM_ID | ||
| out | dx, ax | ; seleziona il registro da programmare | |
| mov | eax, DATO_DI_CONFIG | ||
| mov | dx,0CFCH | ; indirizzo a cui inviare i dati di configurazione | |
| out | dx, eax | ; output del dato di configurazione di 4 byte |
Si esegua il progetto del sistema nell'ipotesi di gestire 3 82C55 mediante il meccanismo suindicato. Si evidenzino in particolare:
(punti 27)
Si supponga che i tre 82C55 vengano mappati in memoria agli stessi indirizzi lineari in modo da poter essere utilizzati da tre task A, B e C che condividono il codice (ogni task dispone di un 82C55 privato). Si indichi il contenuto di tutte le strutture dati di sistema (TSS, IDT, PT, PD, etc.) che consentono di ottenere il funzionamento desiderato (punti 6)
Progetto di un meccanismo di accesso esclusivo a una risorsa condivisa
Prova scritta del 10 maggio 1997 (L-Z)
N sistemi a microprocessore si (0 < i < n) dotati ciascuno di interrupt controller accedono in modo mutuamente esclusivo a una risorsa condivisa (es. un canale radio gestito a divisione di tempo). L'accesso alla risorsa da parte di un sistema si avviene quando sono contemporaneamente verificate le seguenti due condizioni:
Condizione 2: il sistema si e' autorizzato ad accedere alla risorsa condivisa; in assenza di richieste l'autorizzazione viene continuamente e circolarmente trasferita dal sistema si al sistema s(i+1) mod n alla frequenza di 200 KHz. L'autorizzazione viene invece trattenuta presso il sistema si durante tutto il periodo di servizio della richiesta (accesso alla risorsa condivisa).
Fa parte della risorsa condivisa un display di una cifra a sette segmenti gestito come segue: il display, inizialmente spento, visualizza l'indice i del sistema si che per ultimo ha completato il servizio di una richiesta (dunque ogni sistema si al termine della routine di servizio accederà al display...).
Si supponga che n sia uguale a 3 e che i sistemi si siano realizzati con Pentium con clock a 50 MHz, bus non in pipeline, funzionamento in protected mode, un solo task per CPU, impaginazione disabilitata.
Si chiede:
Calcolo delle prestazioni di un sistema con memoria cache e memoria virtuale
Prova scritta dell'11 giugno 1997 (L-Z)
In un sistema basato su Pentium un vettore ALFA di 16 Double Words è memorizzato allinizio di un segmento dati allocato allindirizzo lineare 8020 0000 H e allindirizzo fisico 1 0000 H; si scriva la routine assembler che calcola la somma degli elementi del vettore e si supponga di allocarla allindirizzo lineare 9000 0000H (indirizzo fisico 2 4000H) (punti 3)
Si supponga di mettere in esecuzione la routine partendo dalla situazione di cache e TLB invalidi.
Gestione a interrupt di risorse, alcune delle quali condivise con altri sistemi
Due sistemi a microprocessore, s0 ed s1 , dotati ciascuno di interrupt controller accedono in modo mutuamente esclusivo a una risorsa condivisa. L'accesso alla risorsa da parte di un sistema si avviene quando sono contemporaneamente verificate le seguenti due condizioni:
Condizione 2: il sistema si e' autorizzato ad accedere alla risorsa condivisa; in assenza di richieste l'autorizzazione viene continuamente e circolarmente trasferita dal sistema si al sistema s(i+1) mod 2 alla frequenza di 100 KHz. L'autorizzazione viene invece trattenuta presso il sistema si durante tutto il periodo di servizio di una richiesta (accesso alla risorsa condivisa).
Si supponga che i sistemi si siano realizzati con Pentium con clock a 50 MHz, bus non in pipeline, funzionamento in protected mode, un solo task per CPU, impaginazione disabilitata.
Riconoscimento di una sequenza di caratteri programmabile
Prova scritta del 10 luglio 1997 (L-Z)
Un sistema con DMA e 8086 gestisce una periferica di ingresso da 8 bit ad elevate prestazioni in grado di generare dati a frequenza fino a 100 kHz. La disponibilità di un dato è segnalata da un impulso attivo basso della durata di 500 ns (STROBE). Il numero di byte da trasferire in memoria è costante e pari a 60 K (indirizzo iniziale 10000H); il primo dato da trasferire in memoria è quello che segue una sequenza programmabile di 3 byte. Si progetti lhardware del sistema e si indichino le parole di programmazione del DMA avendo cura di fare le seguenti ipotesi sulla periferica di ingresso:
(punti 24)
Si ipotizzi che il sistema disponga di una cache di primo livello con stato MESI e con linee di 16 byte. Si supponga che il DMA possa eseguire transazioni di lettura e scrittura tutte di dimensione costante pari a 20 linee con indirizzo iniziale allineato alla linea.
(punti 9)
Progetto di un router basato su trasferimenti fly-by in DMA
Prova scritta del 5 settembre 1997 (L-Z)
Un sistema con DMA e 8086 dispone di quattro 8255, di cui 3 sono configurati in modo 0 output, mentre uno e configurato in modo 1 input (solo porta A). Il sistema funziona da router secondo la seguente modalità: l8255 in input riceve con continuità pacchetti di due byte, di cui il primo (detto indirizzo di destinazione) individua la porta di output a cui è destinato il secondo. Le porte di uscita sono numerate da 0 a 8 e la corrispondenza fra lindirizzo (cioe il primo byte del pacchetto) e la porta selezionata deve essere programmabile, ad esclusione degli indirizzi FD, FE ed FF che prevedono invece sempre la selezione simultanea rispettivamente delle tre terne di porte (0,3,6), (1,4,7), (2,5,8). Si suggerisce di utilizzare una RAM per memorizzare la corrispondenza tra indirizzo e porta selezionata (tabella di routing). Tutti i trasferimenti devono essere effettuati in DMA (fly-by).
Si esegua il progetto dellhardware, si indichino le parole di controllo del DMAC e si indichi come viene programmata la tabella di routing, in particolare agli indirizzi FD, FE, FF. (punti 27)
Si disegni la forwarding unit che, nella pipeline del DLX, consente specificamente di minimizzare gli stalli dovuti ad alea di dato nelle situazioni in cui una istruzione di store segue una load. (punti 4)
In tali situazioni (Store che segue una Load) si distinguano i casi di alea di dato possibili e si indichi il numero di stalli associato a ciascuno di essi. (punti 2)
Progetto di un router basato su Pentium e DMA con periferiche interfacciate a banchi diversi del bus dati
Prova scritta del 10 ottobre 1997
Un sistema basato sul processore PENTIUM a 66 MHz con clock a 50 MHz dispone di 512 KB di EPROM e 256 KB di RAM con tempi di accesso rispettivamente di 100 ns e 80 ns. Tutta la memoria e' definita "non cacheable", ne' si vogliono sfruttare cicli di bus in pipeline.
Il sistema dispone di un DMA controller 8237, di due 8255 e di un 8274. Gli 8255 hanno le porte A in modo 1 in input e le porte B in modo 0 output. L'8274 ha entrambi i canali programmati in modo asincrono 8 bit, 19200 bauds, no parity, 1 stop bit. I dispositivi periferici sono tutti interfacciati direttamente al bus locale del Pentium, ciascuno su un byte diverso.
Il sistema deve funzionare nel seguente modo:
(Punti 33)
Progetto di un server basato su trasferimenti fly-by in DMA (CPU 8086)
Prova scritta del 13 dicembre 1997 (L-Z)
Un sistema basato su microprocessore 8086 a 10 MHz, DMAC e controllore di linee seriali 8274 funziona da "servitore di richieste" secondo la seguente descrizione a parole:
La soluzione deve includere le memorie in quantità sufficiente per il corretto funzionamento del sistema (si utilizzino RAM da 128 K e 80 nsec di tacc, ed EPROM o FLASH da 64 K e 100 nsec di tacc. La linea seriale deve funzionare a 19.200 baud. (punti 26)
Quesito aggiuntivo: si studi un meccanismo che consenta di rimuovere l'ipotesi di alternanza tra richiesta e servizio; il meccanismo deve solamente gestire l'eccezione di "ricevimento di nuova richiesta prima del completamento del servizio della richiesta precedente"; non e' necessario mettere in coda richieste che non possono essere servite immediatamente.
Secondo esercizio:
Un sistema basato su un processore con bus dati da 64 bit, linee cache di 32 byte e clock a 50 MHz rinfresca continuamente una RAM da 1 Mbyte. Si suppone che un ciclo di scrittura/lettura singolo richieda 100 nsec e che un ciclo di scrittura/lettura burst richieda 280 nsec.; si suppone inoltre che il micro esegua l'operazione di rinfresco con istruzioni di scrittura di un solo byte alla volta (es: mov [ebx][edi], al). Nell'ipotesi di riservare a questa attivita' di refresh il 50% della banda del bus, si calcoli qual e' il numero max. di operazioni di refresh al sec., nei seguenti casi:
(punti 7)