Esercizi sui BUS



Esercizio 1

Esercizio 2
Supponiamo di voler realizzare un arbitro per un'arbitraggio centralizzato utilizzando la macchina microprogrammabile Mic1 del testo.
La topologia di connessione dell'arbitro agli utilizzatori del bus si suppone essere ''a stella''.
Supponiamo che le 4 linee di richiesta di uso del Bus dei 4 master connessi al Bus siano connesse ai bit meno significativi del registro PC e che le linee di grant siano connesse ai bit meno significativi del registro OPC. Scrivere un microprogramma che che realizzi il processo di arbitraggio utilizzando una politica di assegnamento del bus che garantisca sempre, prima o poi, l'utilizzo del bus a qualunque dispositivo ne abbia fatto richiesta, evitando cosi' il verificarsi di situazioni dette di starvation (ovvero morte per fame).

  • Possibile soluzione. (by L.F. Martino)




    Esercizio 3
    Nella seguente connessione a Daisy Chaining per un arbitraggio decentralizzato del bus












    Si supponga che quando un dispositivo vuole usare il Bus, inviera' un segnale sulla linea request
    Quando l'arbitro vede un segnale sulla linea di request invia un segnale sulla linea di Grant
    Quando un dispositivo vede un segnale sulla linea di grant, ma lui non ha fatto richiesta di uso del bus, lascia propagare il segnale di grant al dispositivo successivo, altrimenti blocca la propagazione e inizia ad utilizzare il Bus.

    Descrivere una sequenza di eventi che provoca uno stallo del sistema o un utilizzo non corretto del Bus.
    Fornire una soluzione al problema.


  • Soluzione.





    Esercizio 4

    Fare gli esercizi 25, 26, 27, 29, 33, 42 del Capitolo 3 del Tanenbaum.
  • Soluzione 25. (By L. Santangelo)

  • Soluzione 26. (By R. Ferraro)

  • Soluzione 26. (By S. Fede)

  • Soluzione 42. (By Massimiliano Salfi)



    Esercizio 5

    Abbiamo tre devices che utilizzano il BUS. Vogliamo realizzare un arbitraggio centralizzato del bus con topologia a stella. Realizzare l'arbitro come rete sequenziale. Quale priorita' dare ai devices nel caso di richieste contemporanee di uso del bus puo' venire deciso dall'implementatore dell'arbitro.
  • Soluzione (parziale).
    (By Massimiliano Salfi)
  • Soluzione .
    (By Salvo D'Antona)


    Esercizio 6

    Cos'e' un bus asincrono?
    Descrivere quello che succede durante una transazione, per esempio una richiesta di lettura in memoria da parte della CPU, su un Bus asincrono. Possibilmente mostrare il grafico temporale che mostra l'evoluzione dei segnali sulle linee ADDRESS, MREQ, RD, MSYN, DATA, SSYN. (Giusto per completezza, ricordiamo che nell'esempio del testo le linee MREQ, RD, MSYN e SSYN sono asserite basse).
  • Soluzione .



    Esercizio 7

    Ci sono delle controindicazioni o dei vantaggi a realizzare un bus che funziona in pipeline (come il memory bus del Pentium II) e che sia asincrono?

    Esercizio 8

    Considerando la presenza della linea IDSEL del bus PCI, il configuration space dei devices connessi al bus e' gestito con politica memory-mapped I/O ?

    Esercizio 9

  • Visto che il PCI bus e' sincrono, perche' si e' voluto inserire segnali come DEVSEL# e TRDY# ?
  • Ci sono delle discrepanze tra quello che si dice nel sottoparagrafo "PCI Bus Signals" riguardo a IRDY# e la transazione descritta in figura 3-53 ?

    Esercizio 10


    Esercizio 11

    (a) Cosa si intende per multiplexed bus?

    (b) A cosa serve la linea WAIT in un bus sincrono? Perche' deve esser presente anche nei bus asincroni?
  • Soluzione .



    Esercizio 11

    Descrivere in modo sufficientemente dettagliato il funzionamento di un generico bus sincrono, eventualmente mostrando il diagramma della temporizzazione di una transazione di lettura.


    Esercizio 11

    A cosa serve la linea WAIT in un bus sincrono? Cosa la rimpiazza nei bus asincroni?

    Esercizio 12

    Descrivere lo schema di arbitraggio centralizzato "daisy chaining" (collegamento a festone) per i bus.


    Esercizio 13
    Si prenda in considerazione il diagramma di Fig. 3-38 (3.37 per la IV edizione del testo) e lo si commenti, descrivendo in modo sufficientemente dettagliato cosa accade.

    Esercizio 14
    Si prenda in considerazione il diagramma di Fig 3-39 (3.38 per la IV edizione del testo) e lo si commenti, descrivendo in modo sufficientemente dettagliato il significato delle varie parti del diagramma e della transazione che esso rappresenta.

    Esercizio 15
    Descrivere nel modo piu' dettagliato possibile quello che avviene su un bus sincrono durante una operazione di lettura, in particolare considerando l'esempio del testo, in cui le linee di controllo sono MREQ, RD e WAIT.

    Esercizio 16
    Si consideri la Figura 3.38 (3.37 per la IV edizione del testo).
    In quale istante la CPU inizia a leggere i dati forniti dalla Memoria?
    In quale istante li avrebbe letti se non fosse stata asserita la linea WAIT?
    Cosa indica il valore TAD? E TDS?

    Esercizio 17
    Elencare vantaggi e svantaggi dell'utilizzo di bus sincroni e asincroni.
    Esercizio 18
    Si supponga che il BUS che collega l'hardware Mic-1 alla RAM che realizza le memorie dati di Mic-1 abbia 32 linee relative all'indirizzamento. Si supponga inoltre che tali linee siano collegate sia a MAR che a PC. Questo implica, ovviamente che su tali linee del BUS non possano essere presenti contemporaneamente sia i segnali provenienti da MAR che quelli provenienti da PC.
    Descrivere un modo di collegare MAR e PC alle linee indirizzo del BUS e l'eventuale circuiteria necessaria al corretto funzionamento di tale collegamento, che dipendera' ovviamente anche dai segnali RD, WR e FETCH.

  • Possibile soluzione .

    Esercizio 19
    Si consideri l'arbitraggio centralizzato del bus con schema daisy chaining (Fig.3-40(a) del testo).
    Si supponga che ogni dispositivo che puo' prendere possesso del bus abbia una linea di output chiamata reqM con cui fa richiesta del bus, e una linea di input chiamata grantM con cui riceve il permesso di utilizzare il bus. Tali linee sono collegate ad un chip contenente l'hardware Mic-1 che, programmato adeguatamente, puo' eseguire le azioni richieste dal tipo arbitraggio daisy chaining. In particolare, la linea reqM viene collegata al bit TOS[31] di Mic-1, mentre la linea grantM al bit LV[0] di Mic-1. Inoltre, la linea di Bus-grant (concessione del bus) della Fig.3-40(a) in input (che chiamiamo grantIN) viene collegata a OPC[0], la linea di Bus-grant in output (che chiamiamo grantOUT) viene collegata a SP[0], mentre la linea Bus-Request (richiesta del bus) viene collegata a PC[0].
    Riassumendo, gli elementi coinvolti e le connessioni sono:
    ----------
    |Arbitro | . . . .  ---------------------------------------------- . . . .
    |        |                                 ^ Bus-request
    |        | . . . . --Bus-grant---          |       --------------- . . . . 
    ----------	                 |         |       | 
    	  	        	 |grantIN  |       |grantOUT
                                   -------------------------
    		               |                       |
    	         	       |      MIC-1            |
    			       -------------------------
    			             ^            |
                                    reqM |            | grantM
    			             |           \/
    			          --------------------
    			          |                  |
    			          |  Dispositivo-n   | 
    			          |                  |
    				  --------------------
    				  






    grantIN ---> OPC[0]
    reqM ---> TOS[0]
    grantOUT < --- SP[0]
    grantM < --- LV[0]
    Bus-request < --- PC[0]
    Programmare il chip Mic-1 (scrivere cioe' un programma Mic-1) in modo da permettere a tale chip di gestire, per conto del dipositivo ad esso collegato, la richiesta del bus.
    Commentare il codice.

  • Possibile soluzione .


    Esercizio 19
    Si consideri la figura 3.38(a) del testo, rappresentante il diagramma temporale degli eventi in un bus sincrono durante un ciclo di lettura di una parola di memoria.
    Cosa rappresenta l'intervallo TAD? Perche' nel testo si indica che tale intervallo non ha un limite minimo (potrebbe anche essere 0), ma non puo' superare 4 nsec come limite massimo?

    Esercizio 20
    Disegnare il diagramma di temporizzazione di un bus asincrono relativo alla lettura di una parola di memoria. Nel bus sono presenti un insieme di linee ADDRESS, un insieme di linee DATA e i segnali MREQ, RD, MSYN, SSYN. Tutti i segnali sono asseriti alti. Descrivere brevemente gli eventi rappresentati nel diagramma.

    Esercizio 21
    Cosa si intende per arbitraggio decentralizzato del Bus? Descrivere un tipo di arbitraggio decentralizzato del Bus.

    Esercizio 22
    Supponiamo di voler realizzare un arbitro, per un'arbitraggio centralizzato ''a stella'' (tipo il bus PCI), utilizzando la macchina microprogrammabile Mic-2 del testo.
    Supponiamo che le 8 linee di richiesta di uso del Bus degli 8 master connessi al Bus siano collegate ai bit piu' significativi del registro PC e che le linee di grant siano collegate ai bit piu' significativi del registro OPC. Scrivere un microprogramma che realizzi il processo di arbitraggio.
    Quali vantaggi si potrebbero ottenere utilizzando Mic-1 anziche' Mic-2?

  • Possibile soluzione .


    Esercizio 23
    A cosa serve la linea di WAIT in in bus sincrono? Si potrebbe pensare di avere un sistema che utilizzi un bus sincrono senza linea di wait? Giustificare. Quali conseguenze comporterebbe una tale scelta?

    Esercizio 24
    Abbiamo un bus di sistema con 8 linee per la parte Address.
    Tra i vary chip collegati a bus c'e' una RAM con 2^7 celle di memoria
    Vogliamo che le celle di tale RAM siano mappate nelle posizioni dispari dello spazio di indirizzamento in cui la CPU puo' leggere o scrivere.
    Descrivere l'interfacciamento tra le linee Address del bus ed il segnale CS della RAM (che supponiamo essere asserito basso).
    Descrivere inoltre la connessione tra le linee address del bus e le linee address della RAM.
  • Possibile soluzione .


    Esercizio 25
    Descrivere, con il massimo livello di dettaglio possibile, un protocollo di arbitraggio decentralizzato del Bus.