Esercizi su I/O, Interrupt ed Altri Argomenti


N.B. Gli esercizi vuoti sono stati eliminati perche' relativi a vecchi programmi di anni accademici precedenti.

Esercizio 1

Quali, tra dischi IDE e SCSI, sono i piu' veloci (con piu' alto transfer rate)?



Esercizio 2
Architetture RISC e architetture CISC: fornirne una breve descrizione. Il sistema studiato a lezione (quello con l'hw Mic-1) e' RISC o CISC? E se usassimo Mic-2? Il principio di progetto "Solo operazioni di LOAD e STORE devono far riferimento alla memoria" e' un principio di progetto per macchine CISC o RISC? Giustificare la risposta.



Esercizio 3
Descrivere la rappresentazione (a lunghezza fissa) in complemento a due dei numeri interi.
Fornire una procedura per ottenere, data la rappresentazione in complemento a due di un numero, quella del suo opposto.
Dimostrare formalmente la correttezza di tale procedura.

Esercizio 4
(Anni Precedenti)





Esercizio 5


Esercizio 6



Esercizio 7


Esercizio 8



Esercizio 10

(a) Avete cinque righe a disposizione (scritte normali e non una di piu') per dirmi qualcosa sul codice UNICODE.
(b) Perche' nei CD-ROM la densita' dei bit nei settori esterni e' minore che in quelli interni?
  • Soluzione.


    Esercizio 11

    Fornire brevemente le differenze tra architetture CICS e RISC. Esercizio 12

    Dare una definizione di linguaggio numerico.
    Dare una definizione di linguaggio simbolico.
  • Soluzione.


    Esercizio 13



    Esercizio 14
    Esercizio 16
    Cosa si intende con Memory Mapped I/O?
    Brevemente, come viene settato il bit CS (Chip Select) dei vari chip presenti su un bus se viene utilizzato l'approccio Memory Mapped I/O?
    Soluzione
    Esercizio 17
    Nelprogramma del corso e' presente un esempio di I/O gestito ad interruzioni per la macchina del livello ISA del Tanenbaum. In tale esempio il controllo della presenza di interruzioni e' realizzato dall'interprete microprogrammato estendendo il microinterprete del Tanenbaum con le seguenti microistruzioni
    int1 if opc[15] goto main1; 
    
    int2 if (not(opc[0]) and not(opc[1]) ... and not(opc[7])) goto main1;
    
    int3 SP=MAR=SP+1; 
    
    int4 MDR=PC; wr; 
    
    int5 SP=MAR=SP+1;
    
    int6 MDR=OPC; wr; 
    
    int7 MAR=OxFF; rd; 
    
    int8 OPC[15]=1; 
    
    int9 PC=MDR; fetch; 
    
    int10 
    
  • Descrivere cosa fanno (e perche') tali microistruzioni. Non tutte le microistruzioni sono miscroistruzioni Mic-1. Quali non lo sono? perche' sono state aggiunte?
  • Modificare il precedente microcodice affiche' il gestore delle interruzioni venga eseguito ad interruzioni abilitate.
  • Dire brevemente e informalmente come si potrebbe far si che il gestore gestisca le interruzioni supponendo che esistano delle priorita' tra i vari devices.
  • Perche' il gestore delle interruzioni deve necessariamente essere realizzato con un segmento di codice IJVM e non in Mic-1?
  • E' possibile poter far si che il controllo della presenza di interruzioni sia realizzato in hardware? Se si, descrivere informalmente un modo possibile di farlo, se no, giustificare la risposta negativa.

  • Soluzione.


    Esercizio 18
    (a) Elencare alcuni aspetti che differenziano le architetture CISC da quelle RISC.
    (b) Nel Tanenbaum e' evidenziata la frase
    Hardware e Software sono logicamente equivalenti
    Cosa intende l'autore con tale frase?
    Esercizio 19
    Qual e' il tempo medio di accesso al contenuto di locazioni di memoria in presenza di memoria cache?
    Si supponga che c sia il tempo di accesso alla cache, h sia l'hit ratio (percentuale di successo) ed m sia il tempo di accesso alla memoria principale.
    Esercizio 20
    Cos'e' un RAID? Cos'e' un RAID di livello 0? Quali i vantaggi di tale organizzazione, quali gli svantaggi?
    Esercizio 21
    Esercizio 22

    Dire brevemente che cosa si intende per Input/Output gestito ad interruzioni (interrupt driven I/O).
    Nel programma del corso e' descritto un semplice modo di introdurre I/O gestito ad interruzioni nell'architettura Mic-1. In tale descrizione si dice che per programmare in IJVM il gestore delle interruzioni e' necessario estendere l'insieme di istruzioni IJVM con l'istruzione RETI.
    Cosa fa RETI? Perche' non e' sufficiente l'istruzione RETURN?

    Esercizio 23

    Esercizio 24

    Esercizio 25

    Spiegare cosa differenzia in generale un'istruzione di ritorno da sottoprogramma (tipo IRETURN) da una istruzione tipo RETI (return from interrupt).

    Esercizio 26

    Presentare brevemente quella che vien chiamata "legge di Moore".
    Esercizio 27
    Elencare alcuni modi per implementare operazioni di Input/Output.
    Nel corso si e' fatto un esempio dettagliato di una particolare implementazione. Supponiamo che ad un dato istante si abbia la seguente situazione all' interno del controller della tastiera:
         IP            RDY
    CSR  0000000000000001       BR 0110111000000000
    
    Che cosa e' probabile che sia successo negli istanti precedenti? Cosa accadra' probabilmente negli istanti successivi?

    Esercizio 28
    Architetture RISC, architetture CISC. Discuterne brevemente. Vantaggi, svantaggi.

    Esercizio 29
    In presenza di memorie cache, la scrittura di una parola di memoria deve essere gestita con tecniche opportune. Perche', quali problemi comporta?
    Descrivere brevemente tali tecniche.

    Esercizio 30
    Un chip PIO (Parallel Input/Output) puo' essere selezionato (e i suoi registri possono venire scritti o letti) in due modi differenti. Uno di questi utilizza l'approccio Memory Mapped I/O. Dire in cosa consiste tale approccio. Dire anche in cosa consiste l'altro modo.


    Esercizio 31
    Ci sono tre schemi differenti per realizzare l'Input/Output nei personal computers. Dire quali sono e, brevemente, in cosa consistono.

    Esercizio 32

    Descrivere come estendere l'architettura Mic-1 per poter gestire operazioni di I/O con interruzioni e Memory-mapped I/O, avendo come periferiche una tastiera ed una stampante (praticamente come e' descritto nelle note del corso "Esempio (con simulatore) di realizzazione di Input/Outpur con interruzioni").

    Esercizio 33
    Nella realizzazione di cui allesercizio 32 e' necessario modificare il microprogramma Mic-1 che realizza l'interprete IJVM, aggiungendo all'inizio di esso il seguente segmento di codice
    int1 if opc[0] goto main1;
    int2 if (not(opc[15]) and not(opc[14]) ... and not(opc[8])) goto main1;
    int3 SP=MAR=SP+1;
    int4 MDR=PC; wr;
    int5 SP=MAR=SP+1;
    int6 MDR=OPC; wr;
    int7 MAR=OxFF; rd;
    int8 OPC[0]=1;
    int9 PC=MDR; fetch;
    int10
    
    Perche' occorre far cio'?
    Commentare le microistruzioni descrivendo cosa realizzano.

    Esercizio 34
    Discutere brevemente del concetto di "priorita'" nel contesto della gestione dell'I/O con interruzioni.

    Esercizio 35
    (a) Ci sono tre schemi differenti per realizzare l'Input/Output nei personal computers. Dire quali sono e, brevemente, in cosa consistono.
    (b) Descrivere come estendere l'architettura Mic-1 per poter gestire operazioni di I/O con interruzioni e Memory-mapped I/O, avendo come periferiche una tastiera ed una stampante (praticamente come e' descritto nelle note del corso "Esempio (con simulatore) di realizzazione di Input/Outpur con interruzioni").

    Esercizio 35
    Si consideri la realizzazione di I/O con interruzioni ottenuta estendendo l'architettura Mic-1 come descritto dal materiale del corso.
    Descrivere il contenuto dei registri CSR e BR del controller della tastiera nel momento immediatamente precedente all'esecuzione del driver della tastiera dopo che, avendo premuto un tasto, l'interruzione generata e' stata accolta. Giustificare perche' il contenuto di CSR e BR e' cosi'.

    Esercizio 36
    Discutere la differenza tra interruzioni e trap.

    Esercizio 37
    Supponiamo che la ALU di Mic-1, produca, oltre ai segnali N e Z, anche un segnale O, che indica quando l'operazione eseguita dalla ALU produce un overflow.
    E' possibile fare in modo che il segnale di overflow faccia scattare una trap (che dovra' venire gestita opportunamente da un programma gestore di trap, trap handler) utilizzando lo stesso meccanismo descritto nel corso ed utilizzato per rilevare e gestire interruzioni con l'architettura Mic-1?
    Giustificare la risposta, sia che essa sia negativa o positiva.
  • Soluzione.


    Esercizio 38

    Nell'esempio di estensione della macchina Mic-1 con interruzioni, si dice che il gestore delle interruzioni restituisce il controllo al programma interrotto tramite l'esecuzione di un'istruzione apposita, RETI (RETurn from Interrupt). Perche' cio' non viene fatto invece mediante l'istruzione IRETURN?

    Esercizio 39

    Nel materiale del corso e' descritto un esempio di realizzazione di Trap per IJVM a livello Mic-1.
    In particolare, per quanto riguarda l'istruzione POP, viene proposto il seguente codice Mic-1:
    pop1  MAR=LV; rd         
    pop2                     
    pop3  H=MDR+1             
    pop4  Z=SP-H; if (Z) goto Trap1; else goto pop5  
    pop5  MAR=SP=SP-1;rd     
    pop6
    pop7  TOS=MDR; goto Main1
    Trap1  MAR=SP=SP+1
    Trap2  MDR=PC;wr      
    Trap3  PC=1<<8; fetch; goto Main1   
    
    Giustificare tale implementazione. E commentare il codice fornito.

    Esercizio 40

    Descrivere brevemente le soluzioni proposte nel materiale del corso per realizzare la gestione di Trap per IJVM relativamente all'uso scorretto dello Stack degli operandi.

    Esercizio 41

    I codici ASCII e UNICODE. Discuterne.

    Esercizio 42

    Durante il corso e' stato descritto un esempio di realizzazione di Trap per IJVM relativa all'evento "Operazione su Stak impossibile: Stack vuoto". Descrivere brevemente come realizzare una Trap per IJVM relativa all'evento "Inserimento su Stack impossibile: Memoria non disponibile".
  • Possibile Soluzione.


    Esercizio 43

    Nell'esempio di I/O gestito con interruzioni presente nel programma del corso, la rilevazione della presenza di un segnale di interruzione e' eseguita da un segmento di codice Mic-1.
    E' possibile estendere l'Hw Mic-1 in modo che la rilevazione della presenza di segnali di interruzione sia effettuata via Hw? Giustificare una eventuale risposta negativa o fornire uno schema di realizzazione.
  • Soluzione.


    Esercizio 44

    Discutere dello schema di I/O con DMA.


    Esercizio 45

    Discutere dei sistemi di ordinamento dei byte big endian e little endian: definizione, confronto ed eventuali problematiche.


    Esercizio 46

    La rappresentazione dei numeri reali in virgola mobile (floating point) e lo standard IEEE 754: discuterne.


    Esercizio 47

    Cosa si intende per I/O mappato in memoria (Memory mapped I/O)? Come si realizza?


    Esercizio 48

    Le tecniche di predizione dei salti: cosa sono, a cosa servono. Descrivere brevemente almeno due tecniche di predizione dei salti.


    Esercizio 49

    Cosa si intende per Architettura di Von Neumann?
    Cos'e' un Macchina di Turing?


    Esercizio 50

    Qual e' la funzione di un tipico PIO chip?
    Descrivere i due modi in cui un PIO chip puo' venire selezionato. Fornire un esempio semplice ma dettagliato di utilizzo di uno di tali modi.


    Esercizio 51

    Cosa si intende per "gerarchia di memoria" (memory hierarchy)? Discuterne.