La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller."— Transcript della presentazione:

1 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

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

3 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 meccanica della periferica bus

4 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. perifericacomando : operazione di I/O

5 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 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 7 Controllo da programma esempio: carattere ricevutocarattere da visualizzare flag: carattere disponibile flag: pronto per il prossimo carattere buffer di tastierabuffer di monitor Il flag è posto a 1 dal trasmettitore ed azzerato dal ricevente

8 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 9 Interrupt Soluzione: Attivare il dispositivo di I/O chiedendogli di comunicare la fine del suo lavoro: Interrupt ( oppure Interruzione di programma )

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

18 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 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) utentestampaRS 232discostampautente tempo utente stampa stack

20 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 21 Interrupt In generale, due tipi di gestori delle priorità: A priorità cablata. es: encoder priority A priorità programmata. P1 P2 P3 da programma

22 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 23 Interrupt connessione tra CPU e 8259A CPU 8259 A controllore di interruzioni D0-D7 CS A0 WR RD INTA INTR IR 0 IR 1 IR 2 IR 3 IR 4 IR 5 IR 6 IR 7 orologio tastiera disco stampa

24 24 Interrupt Quando uno (o più degli) IR q è 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 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 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 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 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 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 CPUDMAMemoriaUARTRS 232 terminale

30 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 31 Bus PC IBM

32 32 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 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 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 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 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 37 Bus PC/AT IBM E' il bus PC IBM ampliato di 36 linee ( estensione di indirizzi, dati, interrupt, DMA )

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

41 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 trasferisce i dati nella memoria centrale

42 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 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 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 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 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 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 48 Trasferimento Dati Parallelo Asincrono Per la gestione del bus si usano delle tecniche di arbitraggio: un solo master che seleziona il ricevente. TrasmittenteRicevente BUS READY ACCEPT

49 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 50 Trasferimento Dati Parallelo Asincrono FULLY-INTERLOCKED: READY ACCEPT

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

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

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

54 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 pistd tempo

55 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) pistd tempo Sincrona

56 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 stop 1 e 1/2 bit di stop 2 bit di stop tempo start stop1stop2 esempio: dato=110100, bit parità pari, 2 bit di stop

57 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, 57600, bit per secondo (bps o baud)

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

59 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 60 Trasferimento Dati Seriale esempio: linea ricevitore start stop parità pari 11000

61 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

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

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

67 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 "1 Input/Output Elementi periferici: Testiera Monitor Stampanti Memorie di massa........... CPU memoria controller video controller tastiera controller."

Presentazioni simili


Annunci Google