« Forum anonimo (sperimentale)

domanda sui bit usati per I/O

3 replies
Last

Dopo aver cercato su varie fonti tutti i bit usati per i vari trasferimenti I/O, ho provato a scriverli, e volevo sapere se me ne sono dimenticato qualcuno o se sono questi tutti i bit utilizzati:

  • BIT I/O CONTROLLO DA PROGRAMMA = BIT READY, che indica se la periferica è pronta per il trasferimento, e il BIT ERROR, che indica se si è verificato un errore.
  • BIT I/O CON INTERRUPT = BIT READY, che indica se la periferica è pronta per il trasferimento, INTERRUPT REQUEST, che serve alla periferica per richiamare l’attenzione della CPU, INTERRUPT ACKNOWLEDGE, che indica che la CPU si è accorta della richiesta di interrupt e che svolgerà i vari passaggi per la corretta esecuzione del trasferimento.
  • BIT DMA = BIT START, inviato dalla CPU e serve per far iniziare il trasferimento. Un altro segnale usato è quello di INTERRUPT, dato che, senza di esso, la CPU non si potrebbe accorgere del termine del trasferimento.

In questo riassunto ho messo anche i vari tipi di interrupt e volevo sapere da se posso essere considerati bit usati dalle varie tecniche.

3 replies
  1. Re: domanda sui bit usati per I/O

    Innanzitutto vorrei chiarire che la sua domanda riguarda bit prensenti nel registro di stato della periferica. In generale, ci sono anche altri bit presenti in altri luogi dell'elaboratore, che sono usati per la gestione dell'I/O.

    • controllo di programma: non so cosa sia questo "bit error" di cui lei e diversi suoi colleghi parlate nelle risposte aperte. Non posso escludere che ci sia qualche periferica (magari di comunicazione) dotata di un bit "error", ma non si tratta di una questione oggetto di esame, essendo eventualmente molto specifica di una qualche periferica e non un aspetto generale del trasferimento a controllo di programma.
    • interruzione di programma: non mi è chiaro se vi sia chiaro lo scopo del bit ready (ad esempio ad identificare la periferica). interrupt request è un filo del bus controllo, non un bit del registro di stato, anche se sul piano logico lo interrupt request coincide con l'andare a logicamente attivo del bit ready. interrupt acknowledge è un "dettaglio" che non abbiamo trattato a lezione, dove, nel modello semplificato didattico esposto, ipotizziamo semplicemente che al momento dello spostamento del dato, come accade anche a controllo di programma, lo spostamento stesso porta a logicamente inattivo il bit di ready.
    • accesso diretto alla memoria: di nuovo, interrupt request è un filo del bus controllo, non un bit del registro di stato della periferica.
    1 reply
  2. Re: domanda sui bit usati per I/O
    Non ho capito se è giusto dire che il bit ready serve per queste cose:

    1- indica se la periferica è pronta per il trasferimento

    2- blocca la periferica in caso non sia pronta

    3- serve ad identificare la periferica

    E' importante specificare anche altro riguardo al bit ready?

    1 reply
  3. Re: domanda sui bit usati per I/O

    A me sembra corretto dire che "indica se la periferica è pronta per il trasferimento".

    Se dice "serve per identificare la periferica" in modo privo di contesto la cosa non torna. Se dice che ci sono più periferiche su una linea di interruzione ed il gestore va a controllare una per una quale sia pronta, allora la frase prende un senso.

    Invece, a me, sempre presa così priva di contesto, la frase "blocca la periferica in caso non sia pronta" non torna. Magari c'è una condizione in cui questa frase è corretta, ma in questo modo, avulsa dal contesto, non mi sembra corretto dire che "il bit ready" "blocca la periferica".