La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Input/Output Elementi periferici: Testiera Monitor Stampanti

Presentazioni simili


Presentazione sul tema: "Input/Output Elementi periferici: Testiera Monitor Stampanti"— Transcript della presentazione:

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

2 Input/Output Colloquio tra unità centrale e periferiche:
Controllo da programma Interrupt DMA Canale di I/O

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 parte meccanica della periferica interfaccia parte meccanica_bus circuito di selezione bus

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 3 6 3 C.O. n. periferica comando 110: operazione di I/O

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

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

7 Controllo da programma
esempio: flag: pronto per il prossimo carattere flag: carattere disponibile carattere ricevuto carattere da visualizzare buffer di tastiera buffer di monitor Il flag è posto a 1 dal trasmettitore ed azzerato dal ricevente

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.

9 Interrupt Soluzione: Attivare il dispositivo di I/O chiedendogli di comunicare la fine del suo lavoro: Interrupt ( oppure Interruzione di programma )

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

11 Interrupt Esempio di funzionamento delle interruzioni:
Emissione a video di una stringa di caratteri Tutti 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)

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)

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 Ogni indirizzo è costituito da 4 byte. es: vettore di interrupt = 3 indirizzo primo byte del PC relativo 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 0000 0001 0002 0003 0004 0005 VettInt * 4 NOTA: in e 80386, i vettori di interrupt individuano PC disposti su 8 byte in un punto qualunque della memoria (è usato il registro segmento extra)

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)

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 strategie a) Senza interruzione degli interrupt; b) Con interruzione (a priorità) degli interrupt.

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

17 proviene l'interruzione
Interrupt Esempio di routine per la gestione dell'I/O disattiva l'interrupt IOFF inizio Salvataggio dello stato della macchina ricerca periferica gestione di P1 gestione di P2 Riconoscimento della periferica da cui proviene l'interruzione gestione di Pn fine Operazioni di I/O riattiva l'interrupt ION PC Salto indiretto alla cella contenente il PC del programma utente PC

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).

19 Interrupt Le routine di interrupt sono trasparenti ( lo stato della macchina viene riportato a quello che precede l'interrupt). RS 232 (6) tempo Disco (4) Stampa (2) utente stampa RS 232 disco stampa utente stampa stampa stack utente utente utente utente

20 Interrupt 8088/8086, e hanno due pin per le interruzioni (prevedono solo 2 livelli di priorità): INTR: interrupt mascherabile NMI: interrupt non mascherabile NMI Usato per segnalare catastrofi imminenti quali ERRORE DI PARITA' DELLA MEMORIA INTR Usato per i dispositivi di I/O

21 Interrupt In generale, due tipi di gestori delle priorità:
A priorità cablata. es: encoder priority A priorità programmata. P1 da programma P2 P3

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.

23 Interrupt connessione tra CPU e 8259A IR0 orologio INTR IR1 tastiera
controllore di interruzioni D0-D7 CS A0 WR RD INTA INTR IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 orologio tastiera disco stampa

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.

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!!!!!!!!

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).

27 DMA L'operazione di DMA è comandata dalla CPU ed è controllata da un controllore DMA che, programmato dalla CPU accede direttamente al bus trasferendo dati dal dispositivo di I/O alla memoria (o viceversa) e avverte la CPU, mediante interrupt, la fine dell'operazione.

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/O o 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!

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

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.

31 Bus PC IBM

32 Bus PC IBM Bus PC IBM 62 linee
Clock a 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.

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.

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)

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 dispositivo indirizzo di memoria contatore di byte direzione 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

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.

37 Bus PC/AT IBM E' il bus PC IBM ampliato di 36 linee (estensione di indirizzi, dati, interrupt, DMA)

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.

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è

40 CANALE Trasferimento tra canale e calcolatore esclusivamente in DMA
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).

41 indirizzo programma di canale
I/O buffer Programma di canale istruzione inizio I/O indirizzo programma di canale passo 2: PC per il canale passo 3: il canale esegue il programma e trasferisce i dati nella memoria centrale passo 1

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.

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

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

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.

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

47 Trasferimento Dati Parallelo 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

48 Trasferimento Dati Parallelo Asincrono
Per la gestione del bus si usano delle tecniche di arbitraggio: un solo master che seleziona il ricevente. Trasmittente Ricevente BUS READY ACCEPT

49 Trasferimento Dati Parallelo Asincrono
HALF-INTERLOCKED: Possibile errore: Il trasmittente perde il segnale di ACCEPT a) 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

50 Trasferimento Dati Parallelo Asincrono
FULLY-INTERLOCKED: READY ACCEPT

51 Trasferimento Dati Parallelo Sincrono
La velocità di trasferimento deve adeguarsi alla unità più lenta. Trasmittente Ricevente BUS CLOCK

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. 8 bit porta A CS PIO 8255 A A0-A1 WR 8 bit porta B RD RESET 8 bit porta C D0:D7

53 Trasferimento Dati Seriale
UART scheda di I/O CPU mem modem RS 232 C Terminale modem

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 d tempo

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 inizializzazione I due tipi di interfaccia altro non sono che sofisticati convertitori PARALLELO-SERIALE (e viceversa) Sincrona p i s t d tempo

56 Trasferimento Dati Seriale
Trasmissione asincrona: problema: come può il ricevitore riconoscere il primo bit del carattere? Formato del dato trasmesso: tempo 1 bit di stop bit di start 1 e 1/2 bit di stop 2 bit di stop esempio: dato=110100, bit parità pari, 2 bit di stop start 1 1 1 1 stop1 stop2

57 Trasferimento Dati Seriale
formato del dato trasmesso: Un bit di start (0): la linea è mantenuta normalmente a 1 Dato: 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, , bit per secondo (bps o baud)

58 Trasferimento Dati Seriale
ipotetico registro di programmazione di una unità di trasmissione seriale asincrona: dimensione dato trasmesso: bit bit velocità di trasmissione parità: 00 parità pari 01 nessuna parità 10 nessuna parità 11 parità dispari bit di stop 00 uno 01 uno e mezzo 10 due

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.

60 Trasferimento Dati Seriale
esempio: linea parità pari start 1 1 stop stop ricevitore 1 1

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 1 1: identificato da una transizione da 1 a 0 1 1 1

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.

63 Trasferimento Dati Seriale
INTERFACCIA RS 232-C Lo 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

64 Trasferimento Dati Seriale
a) caratteristiche elettriche 1 logico: +3 V - +12V logico: -3 V - -12V b) caratteristiche funzionali 25 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

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 CA CB AB 1 25

66 Trasferimento Dati Seriale
Collegamento diretto tra due calcolatori AA AA BA BA BB BB AB AB Protocollo usato: XON/XOFF

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/XOFF Non 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.


Scaricare ppt "Input/Output Elementi periferici: Testiera Monitor Stampanti"

Presentazioni simili


Annunci Google