67
1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa ........... CPU memoria controller video controller tastiera controller disk monitor floppy disk hard disk tastiera

1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

Embed Size (px)

Citation preview

Page 1: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

1

Input/Output

• Elementi periferici:TestieraMonitorStampantiMemorie di massa...........

CPU memoria controllervideo

controllertastiera

controllerdisk

monitor

floppy diskhard disk

tastiera

Page 2: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

2

Input/Output

• Colloquio tra unità centrale e periferiche:

Controllo da programma

Interrupt

DMA

Canale di I/O

Page 3: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

3

Controllo da programma

• E' da programma che si decide quando interrogare la periferica per un colloquio es: lettura di un tasto premuto

• E' usato nei processori di bassa fascia e in vecchi sistemi

circuito di selezione

interfaccia parte meccanica_bus

parte meccanicadella periferica

bus

Page 4: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

4

Controllo da programma

• Ogni periferica è individuata da un unico indirizzo (I/O a mappa di memoria)

Esistono istruzioni dedicate all' I/O:es: PDP 8

C.O. n. periferica comando3 6 3

110: operazione di I/O

Page 5: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

5

Controllo da programma

• Funzionamento:Nel programma vengono inserite delle istruzioni il cui C.O. è una operazione di I/O. Con queste ultime vengono specificate: La periferica L'operazione da svolgere sulla periferica

Page 6: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

6

Controllo da programma

• Operazioni principali svolte:a) test su flag

la periferica possiede un flag che rappresenta la sua disponibilità ad operare.Fino a che la periferica non è disponibile si resta in attesa:

Test su flag

b) lettura (scrittura) con reset (set) del flag si legge un dato e si attiva il flag per segnalare alla periferica che

che l'operazione è stata svolta. La periferica si attiva nuovamente. Quando un nuovo dato è pronto la periferica disattiva il flag.

test sul flag

Page 7: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

7

Controllo da programma

• esempio:

carattere ricevuto carattere da visualizzare

flag: carattere disponibile flag: pronto per il prossimo carattere

buffer di tastiera buffer di monitor

Il flag è posto a 1 dal trasmettitore ed azzerato dal ricevente

Page 8: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

8

Controllo da programma

• Svantaggio:

La CPU spende la maggior parte del tempo in un ciclo di attesa.Questo è negativo se la CPU ha del lavoro da svolgere.

Page 9: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

9

Interrupt

• Soluzione:

Attivare il dispositivo di I/O chiedendogli di comunicare la fine del suo lavoro:

Interrupt ( oppure Interruzione di programma )

Page 10: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

10

Interrupt

• L'interrupt è un cambiamento nel flusso di controllo non provocato dall'esecuzione del programma.

• Due tipi di cambiamenti nel flusso: TRAP

Interruzioni SINCRONE con il programma overflow o underflow durante una operazione aritmetica. codici operativi non definiti tentativo di azionare un dispositivo di I/O inesistente ...........

INTERRUPT Interruzioni ASINCRONE con il programma

Page 11: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

11

Interrupt

• Esempio di funzionamento delle interruzioni:Emissione a video di una stringa di caratteriTutti i caratteri sono raccolti in una zona di

memoria individuata da 2 variabili globali: puntatore al primo carattere numero di caratteri (variabile contatore)

Richiesta del terminale da parte della CPU. Quando il terminale è pronto la CPU, che è rimasta in attesa, manda il primo carattere.

L'operazione di I/O è iniziata. La CPU torna ad eseguire il programma utente.

(segue)

Page 12: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

12

Interrupt

Visualizzato il primo carattere, il controller video lancia un interrupt:

Azioni HARDWARE: Il controller attiva la linea di interrupt Non appena possibile la CPU attiva il segnale di

acknowledge (la CPU ha accettato l'interruzione) Ricevuto il segnale di acknowledge, il dispositivo di I/O

identifica se stesso mediante il vettore di interrupt (identificatore del dispositivo o del gruppo di dispositivi)

La CPU salva in un registro il vettore di interrupt La CPU salva nello stack il PC e il registro di STATO

(segue)

Page 13: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

13

Interrupt

Viene caricato in PC l'indirizzo relativo alla routine di I/O. L'indirizzo è individuato attraverso il vettore di interrupt.

Es: 8088: la tabella degli indirizzi delle routine di interrupt inizia all'indirizzo assoluto 0000. Ogni indirizzo è costituito da 4 byte.

es: vettore di interrupt = 3indirizzo primo byte del PCrelativo alla sua routine di gestione = 3 * 4 = 12

PC0 primo byte

PC0 secondo byte

PC0 terzo byte

PC0 quarto byte

PC1 primo byte

PC1 secondo byte

PC1 terzo byte

PC1 quarto byte

routine di servizio

dell'interrupt

. . . . . . .

000000010002000300040005.........

VettInt * 4

NOTA:in 80286 e 80386, i vettori di interruptindividuano PC disposti su 8 bytein un punto qualunque della memoria(è usato il registro segmento extra)

Page 14: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

14

Interrupt

Azioni SOFTWARE (routine di I/O): Salvataggio dei registri di lavoro nello stack (o in una

tabella di sistema); Ricerca del dispositivo che ha richiesto l'interrupt

all'interno del gruppo individuato dal vettore di interrupt (solitamente più dispositivi condividono lo stesso vettore di interrupt);

Si aggiornano le variabili globali Puntatore, Contatore; Ripristino dello stato; Esegue l'istruzione IRET (ritorno da interrupt) che

ripristina i valori dei registri PC e STATO.

(fine esempio)

Page 15: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

15

Interrupt

• Il ripristino dello stato della CPU rende le interruzioni TRASPARENTI cioè, la CPU continua a lavorare come se non ci fosse stata nessuna interruzione.

• Per multi_interruzioni due strategiea) Senza interruzione degli interrupt;b) Con interruzione (a priorità) degli interrupt.

Page 16: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

16

Interrupt

a) La routine di gestione dell'interruzione

svolge, come prima operazione, la

disabilitazione del segnale di interruzione e

come ultima operazione la riabilitazione.

Interrupt strettamente sequenziali

Page 17: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

17

Interrupt

• Esempio di routine per la gestione dell'I/OIOFF

Salvataggio dellostato della macchina

Riconoscimento dellaperiferica da cui

proviene l'interruzione

Operazioni di I/O

IONSalto indiretto alla

cella contenente il PCdel programma utente

disattiva l'interrupt

riattiva l'interrupt

inizioricerca periferica

gestione di P1gestione di P2

.........gestione di Pn

fine

PC

...........

...........

PC

Page 18: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

18

Interrupt

b) La disabilitazione degli interrupt può andar bene se non vengono trattati dispositi critici. Es: Nella trasmissione seriale a 9600 bps i caratteri arrivano ogni 1042 sec, pronto o non pronto che sia il calcolatore!!

Viene associata una priorità ai dispositivi di I/O:Una routine a priorità n è interrotta solo

da interrupt a priorità k > n. Gli altri sono ignorati (MASCHERATI).

Page 19: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

19

Interrupt

Le routine di interrupt sono trasparenti ( lo stato della macchina viene riportato a quello che precede l'interrupt).

Disco (4)

RS 232 (6)

Stampa (2)

utente stampa RS 232 disco stampa utente

tempo

utente utente utente utente

stampa stampa

stack

Page 20: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

20

Interrupt

• 8088/8086, 80286 e 80386 hanno due pin per le interruzioni (prevedono solo 2 livelli di priorità):INTR: interrupt mascherabileNMI: interrupt non mascherabile

• NMI Usato per segnalare catastrofi imminenti quali

ERRORE DI PARITA' DELLA MEMORIA

• INTR Usato per i dispositivi di I/O

Page 21: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

21

Interrupt

• In generale, due tipi di gestori delle priorità:A priorità cablata. es: encoder priority

A priorità programmata.

P1P2P3

da programma

Page 22: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

22

Interrupt

• Tra INTR e le periferiche viene interposto un dispositivo aggiuntivo che ha come compito quello di inibire le interruzioni di dispositivi a più bassa priorità rispetto a quello corrente:

controllore di interrupt 8259A (Intel)

Quando una routine di gestione è conclusa, viene trasmesso all'8259A un segnale che permette a un interrupt di minore priorità di verificarsi.

Page 23: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

23

Interrupt

• connessione tra CPU e 8259A

CPU

8259 Acontrollore

diinterruzioni

D0-D7

CS

A0

WR

RD

INTA

INTRIR0

IR1

IR2

IR3

IR4

IR5

IR6

IR7

orologio

tastiera

disco

stampa

Page 24: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

24

Interrupt

• Quando uno (o più degli) IRq è attivato, l'8259A attiva INTR.Alla fine della istruzione corrente, la CPU attiva INTA (INTerrupt Acknowledge).L' 8259A spedisce alla CPU il vettore di interrupt (D0 - D7) identificando il dispositivo che ha lanciato l'interrupt.Il vettore di interrupt è usato dalla CPU come indice in una tabella di indirizzi che individuano l'indirizzo della procedura da eseguire.

• RD, WR, A0, CS sono usati per svolgere diverse operazioni. Es: per comunicare all'8259A che il corrente interrupt è stato soddisfatto, oppure per mascherare un gruppo di interruzioni.

Page 25: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

25

Interrupt

• Problema:Il trasferimento di grosse quantità di dati è oneroso dato che è richiesto un interrupt per ogni carattere trasmesso e l'elaborazione associata ad una interruzione è costosa. per ogni dato trasmesso:

interruzione del programma in corso esecuzione della routine di servizio ripristino dello stato per il proseguimento del

programma.

..................................ci vuole TEMPO!!!!!!!!

Page 26: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

26

DMA

• Si supponga di voler leggere un blocco di dati da disco.......dopo il primo dato il tempo di accesso è praticamente nullo. La periferica è troppo veloce per poter essere gestita a interrupt.....

• Il DMA (Accesso Diretto alla Memoria) consiste in un trasferimento diretto dal dispositivo di I/O alla memoria (o viceversa).

Page 27: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

27

DMA

• L'operazione di DMA è comandata dalla CPU ed è controllata da un controllore DMA che,programmato dalla CPUaccede direttamente al bus trasferendo dati dal

dispositivo di I/O alla memoria (o viceversa) eavverte la CPU, mediante interrupt, la fine

dell'operazione.

Page 28: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

28

DMA

• Il controllore di DMA possiede almeno 4 registri programmabili software dalla CPU

indirizzo di partenza del blocco dati (da mettere o prelevare dalla memoria)

contatore delle parole da trasferire

Identificatore del dispositivo di I/Oo l'indirizzo dello spazio di I/O da usare

indica se l'operazione è di scrittura o lettura

NOTA: Il DMA è un ritorno al controllo da programma fatto, non dalla CPU bensì da un dispositivo dedicato!

Page 29: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

29

DMA

• Anche se la CPU ha meno lavoro da svolgere, il sistema di comunicazione non è perfetto:Durante un trasferimento in DMA di dati da un

dispositivo particolarmente veloce, saranno necessari molti cicli di bus sia per

accessi alla memoria che accessi al dispositivo di I/O

CPU DMA Memoria UART RS 232 terminale

Page 30: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

30

DMA

• La CPU ha priorità minore nella gestione del bus poiché spesso, i dispositivi di I/O non tollerano ritardi ......la CPU deve aspettare.

Il DMA è comunque più vantaggioso delle interruzioni. E' il metodo normalmente usato per la gestione dell'I/O su tutti i Personal Computer e Mini Computer.

Page 31: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

31

Bus PC IBM

Page 32: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

32

Bus PC IBM

• Bus PC IBM 62 lineeClock a 14.31818 MHz da cui è ricavato il clock

4.77 MHz per l'8088 (max frequenza dell'8088 è 5 MHz)

Per demultiplexare le linee dati da quelle indirizzo si usano dei latch:

74LS373 (per gli indirizzi: i segnali di indirizzo sono prodotti per primi in un ciclo di bus)

74LS245 (latch bidirezionale)

NOTA: Poichè la CPU è MOS sono necessari dei buffer TTL per pilotare il bus.

Page 33: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

33

Bus PC IBM

AEN:(Address ENable) usato per estromettere la CPU dal bus

ALE: (Address Latch Enable) Attivo quando è la CPU a pilotare li bus indirizzi e quando gli indirizzi sono validi.

MEMR, MEMW: Lettura e scrittura a memoria. Quando sono attivi individuano non solo l'operazione ma anche che l'indirizzo si riferisce alla memoria.

IOR, IOW: Lettura e scrittura su un dispositivo di I/O. Quando sono attivi individuano, oltre alla operazione, anche lo spazio di indirizzamento di I/O.

Page 34: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

34

Bus PC IBM

MEMR, MEMW, IOR e IOW sono generati decodificando i segnali S0_S2 mediante il decoder 8288 Intel

IOCHCHK:(I/O CHannel CHecK) Attivo quando è presente un segnale di errore di parità della memoria. Genera un interrupt non mascherabile.

IOCHRDY: (I/O CHannel ReaDY) E' usato dalle memorie lente per introdurre cicli di attesa.

IRQ2-IRQ7: Interruzioni

IRQ0: usato per i timer (non usa il bus)

IRQ1: usato per la tastiera (non usa il bus)

Page 35: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

35

Bus PC IBM

• DMA:Gestito dall' 8237A. E' una piccola CPU con un

programma cablato.La CPU ordina un trasferimento caricando nell'8237A:Il numero del dispositivoindirizzo di memoriacontatore di bytedirezione di trasferimento

Quando il dispositivo di I/O ha raggiunto il primo dei byte da trasferire, il suo controller attiva uno dei DRQx (Device ReQuest) in ingresso al 8237A . . . . .

Page 36: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

36

Bus PC IBM

Ricevuto il DRQx, l'8237A richiede il bus e lo prepara al trasferimento attivando uno dei DACKx (Device ACKnowledge). Quest'ultimo segnala al controllore di scrivere o leggere il dato.Durante questa fase il controller è master.

Nota:L'8237A usa alcuni latch per generare l'indirizzo (per

indirizzare la memoria)La linea DRQ0 è usata per il refresh di memorie dinamiche.

Il segnale T/C è attivato quando il contatore è a ZERO avvisando così il controller che l'operazione è conclusa e deve lanciare l'interrupt.

Page 37: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

37

Bus PC/AT IBM

• E' il bus PC IBM ampliato di 36 linee (estensione di indirizzi, dati, interrupt, DMA)

Page 38: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

38

CANALE

• Su mainframe, le operazioni di I/O sono così frequenti che potrebbero saturare il bus. Si aggiungono dei processori di I/O dedicati detti CANALI.

• I Canali sono veri e propri processori che posseggono un linguaggio specializzato rivolto alle operazioni di I/O e svolgono programmi sofisticati.

Page 39: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

39

CANALE

• I canali hanno struttura simile ad un processore (PC, Unità di Controllo, Registro Istruzione ........) ma, non sono dotati di memoria propria non sono in grado di attivarsi autonomamente

• Il canale ha essenzialmente lo scopo di eseguire in modo autonomo tutte le operazioni di I/O ripetitive in modo da impegnare al minimo il calcolatore durante la fase di trasferimento dati cioè.........

Page 40: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

40

CANALE

Controllo integrità dei dati Controllo checksum, parità,.......

Conversione dati Es: da ASCII a Integer (su 16 bit)

• Trasferimento tra canale e calcolatore esclusivamente in DMA

• I mainframe IBM posseggono uno o più canali di due tipi:Canale Selettore: gestisce una sola unità di I/O veloce

(dischi)Canale Multiplexer: gestisce più di una unità di I/O

lento (es: terminali).

Page 41: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

41

CANALE

I/O buffer

Programma di

canale

istruzione inizio I/O

indirizzo programma di canale

passo 1

passo 2: PC per il canale

passo 3: il canale esegue il programma e trasferiscei dati nella memoria centrale

Page 42: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

42

Sistemi di Comunicazione

• Un sistema di comunicazione permette di realizzare un trasferimento di informazioni tra diverse unità.I chip di I/O: comunicazione con il mondo

esterno

• Le unità che comunicano sono da considerarsi ASINCRONE tra loro.

Page 43: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

43

Sistemi di Comunicazione

• Problemi da risolvere:Tecnologici : caratteristiche fisiche dei canali usati per la

trasmissione.Arbitraggio : assegnare l'utilizzazione di un sistema di

comunicazione a un particolare modulo tra quelli che ne fanno richiesta.

Trasferimento: trasferire dati tra un modulo e l'altro superando la difficoltà costituita dal fatto che i due moduli sono asincroni tra loro

Page 44: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

44

Problemi Tecnologici

• Mezzo trasmissivo e sue caratteristiche(consideriamo solo conduttori elettrici)Velocità di propagazione

Un segnale elettrico (anche ottico) ha velocità pari a circa la metà della velocità della luca nel vuoto.

dalla velocità di propagazione e dalla lunghezza del conduttore dipende il ritardo di propagazione

Velocità di trasmissione: numero di bit trasmessi. Si misura in bps.

La velocità di trasmissione dipende dalla larghezza di banda del canale trasmissivo che, a sua volta, dipende dalle caratteristiche elettriche e magnetiche del mezzo trasmissivo

Attenuazione: perdita di energia del segnale RIPETITORI

Page 45: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

45

Mezzi Trasmissivi

• Mezzi trasmissivi più diffusi:Doppino telefonico (velocità massima 10Mbps)

è formato da due cavi elettrici intrecciati

Flat cables usato per trasmissioni parallele. Sono costituiti da molti conduttori

immersi in materiale isolante.Usato per distanze di pochi metri.

problemi : interferenza (disturbi esterni)Crosstalk (interferenza reciproca tra

segnali)

Coassiali e fibre ottiche si stanno affermando per la trasmissione a grandi distanze poiché

hanno bande passanti elevate (di gran lunga superiori al doppino telefonico). Le fibre ottiche sono pressoché immuni da interferenze.

problema: costo elevato.

Page 46: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

46

Trasferimento Dati

• Il trasferimento dati su brevi distanze può essere parallelo.Sincrono

Esiste una linea dedicata al segnale globale di sincronismo: CLOCK GLOBALE

Asincrono La sincronizzazione si basa su opportune regole e

linee di sincronizzazione

Page 47: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

47

Trasferimento DatiParallelo Asincrono

• Il problema è:Assicurarsi che il ricevente abbia effettivamente

ricevuto il dato prima che il trasmittente lo tolga dal bus

e che il ricevente non lo legga due volte !

• Si usa il metodo interlocking:Tenere alti i segnali fino a che non si riceve una

risposta da parte dell'altro modulo. Due segnali: READY: Segnala al ricevente la presenza dal dato ACCEPT: Segnala la trasmittente che il dato è stato

ricevuto

Page 48: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

48

Trasferimento DatiParallelo Asincrono

• Per la gestione del bus si usano delle tecniche di arbitraggio:

un solo master che seleziona il ricevente.

Trasmittente Ricevente

BUS

READY

ACCEPT

Page 49: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

49

Trasferimento DatiParallelo Asincrono

• HALF-INTERLOCKED:Possibile errore:

Il trasmittente perde il segnale di ACCEPTa) Il trasmittente rimane bloccato in attesa di un

segnale di ACCEPT che non arriverà mai.

b) Il ricevente vede READY alto e campiona gli lo stesso dato una seconda volta!!!

READY

ACCEPT

Page 50: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

50

Trasferimento DatiParallelo Asincrono

• FULLY-INTERLOCKED:

READY

ACCEPT

Page 51: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

51

Trasferimento DatiParallelo Sincrono

• La velocità di trasferimento deve adeguarsi alla unità più lenta.

Trasmittente Ricevente

BUS

CLOCK

Page 52: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

52

Trasferimento Dati Parallelo

PIO (Parallel Input/Output) 8255A Intel• E' un dispositivo programmabile con 24 linee di

I/O. Nel modo più semplice può essere programmato per avere 3 porte indipendenti di I/O da 8 bit ciascuna. La CPU può leggere o scrivere su na qualunque delle 3 porte (bit di selezione A0-A1, solitamente i più significativi del bus indirizzi)

L'8255A prevede dei pin per il trasferimento asincrono.

PIO8255 A

CSA0-A1

WRRD

RESETD0:D7

8 bit

8 bit

8 bit

porta A

porta B

porta C

Page 53: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

53

Trasferimento Dati Seriale

CPU mem

scheda di I/O

UART

modem

RS 232 C

modemTerminale

Page 54: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

54

Trasferimento Dati Seriale

Elementi di comunicazione:• UART (Universal Asynchronous Receiver Transmitter)

L'intervallo di tempo tra due caratteri non è fissato sebbene l'intervallo di tempo tra due bit che formano il carattere lo siano

es: battitura da tastiera: la distanza tra due caratteri non è uniforme

p i s t dtempo

Page 55: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

55

Trasferimento Dati Seriale

• USART (U Synchronous ART)

E' una unità predisposta per funzionare con modi di trasmissione seriale sia sincrona che asincrona.

• Sia le UART che le USART sono programmabili cioè richiedono una fase di inizializzazioneI due tipi di interfaccia altro non sono che sofisticati

convertitori PARALLELO-SERIALE (e viceversa)

p i s t d tempo

Sincrona

Page 56: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

56

Trasferimento Dati Seriale

• Trasmissione asincrona:problema: come può il ricevitore riconoscere il primo bit

del carattere?

Formato del dato trasmesso:

. . . .

bit di start 1 bit di stop1 e 1/2 bit di stop

2 bit di stop

tempo

start 1 1 0 1 0 0 1 stop1 stop2

esempio: dato=110100, bit parità pari, 2 bit di stop

Page 57: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

57

Trasferimento Dati Seriale

formato del dato trasmesso:Un bit di start (0): la linea è mantenuta

normalmente a 1Dato: formato dal codice del carattere seguito

eventualmente dal bit di parità.Uno, uno e mezzo, due bit di stop (1):

separazione minima tra due dati. Due bit di stop migliorano l'affidabilità della trasmissione.

• velocità di trasmissione:110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400,

57600, 115200 bit per secondo (bps o baud)

Page 58: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

58

Trasferimento Dati Seriale

• ipotetico registro di programmazione di una unità di trasmissione seriale asincrona:

dimensione dato trasmesso:0 8 bit1 9 bit

parità:00 parità pari01 nessuna parità10 nessuna parità11 parità dispari

bit di stop00 uno01 uno e mezzo10 due

velocità di trasmissione

Page 59: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

59

Trasferimento Dati Seriale

• ricezione:Sia il ricevitore che il trasmettitore devono

essere configurati nello stesso modo......Il ricevitore campiona la linea ad una frequenza molto superiore a quella di trasmissione. Riconosciuto il bit di start (fronte di discesa) posiziona il campionamento a metà dei successivi bit; in questo modo la ricezione è insensibile ad eventuali piccole variazioni tra la frequenza di lavoro del trasmettitore e quella del ricevitore.

Page 60: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

60

Trasferimento Dati Seriale

• esempio:

linea

ricevitore

start 1 1 0 0 0 stop stop

parità pari

1 1 0 0 0

Page 61: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

61

Trasferimento Dati Seriale

• Trasmissione sincrona:E' molto complessa ed utilizza, in generale, un codice

autosincronizzante oppure protocolli che permettono la sincronizzazione a inizio trasmissione.Nella trasmissione sincrona la necessità di un bit di inizio e fine viene eliminata.

codice auto-sincronizzante Manchester

0: identificato da una transizione da 0 a 11: identificato da una transizione da 1 a 0

0 0 0 01 1 1

Page 62: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

62

Trasferimento Dati Seriale

• Trasmissione di dati tra due modem:SIMPLEX

la linea permette la trasmissione solo in una direzione

HALF-DUPLEX Una linea di questo tipo permette la trasmissione in

entrambe le direzioni ma a ogni istante la direzione è unica.

FULL-DUPLEX E' equivalente ad una coppia di linee simplex:

trasmissione simultanea in entrambe le direzioni.

Page 63: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

63

Trasferimento Dati Seriale

INTERFACCIA RS 232-CLo standard RS 232-C definisce tutti gli aspetti

relativi alla realizzazione fisica, cioè gli aspetti che permettono di connettere materialmente due dispositivi e che permettono loro di scambiare dati.

4 caratteristiche devono essere definite in uno standard di comunicazione fisica:

a) caratteristiche elettriche dei segnali

b) caratteristiche funzionali (dati, controllo, sincronizzazione)

c) caratteristiche meccaniche

d) protocollo di comunicazione

Page 64: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

64

Trasferimento Dati Seriale

a) caratteristiche elettriche1 logico: +3 V - +12V 0 logico: -3 V - -12V

b) caratteristiche funzionali25 pin:

2 linee di terra (uno di segnale, l'altro di macchina) 2 linee di trasferimento dati: una per direzione controllo modem 5 non usate

linee di terra: AA: terra di protezione AB: terra di segnale (di riferimento)

linee di trasferimento dati: BA: Trasmissione BB: Ricezione

Page 65: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

65

Trasferimento Dati Seriale

Linee controllo modem: CA: Request to Send. Comunica l'intenzione di trasmettere

un dato. Viene tenuta a 1 durante la trasmissione CB: Clear to Send. Comunica la trasmittente che può

iniziare la trasmissione dati. CE: Ring Indicator. Comunica il segnale di chiamata

AA BA BB AB

1

25

CA CB

Page 66: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

66

Trasferimento Dati Seriale

Collegamento diretto tra due calcolatori

AA

AB

BB

BA

AA

AB

BB

BA

Protocollo usato: XON/XOFF

Page 67: 1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller

67

Trasferimento Dati Seriale

• Protocollo di comunicazione (elementare)a) Protocollo RST/CTS (Request To Send/ Clear To Send)

La trasmissione viene richiesta ed effetuata solo quando il ricevente l'accetta (usa CA e CB della RS 232-C)

b) Protocollo XON/XOFFNon sono usate le linee RST e CTS. Vengono usati due caratteri speciali, XON e XOFF. Il ricevente blocca la trasmissione spedendo un XOFF e la riattiva con un XON.