1 / 39

Input/Output

Input/Output. SOMMARIO. Organizzazione di sistema Trasferimento dati; Gestione I/O. Organizzazione di sistema. Tipi di bus. ABUS, Address Bus : insieme di linee su cui la CPU scrive l’indirizzo del dispositivo a cui intende accedere

mura
Download Presentation

Input/Output

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Input/Output Luca Orrù

  2. SOMMARIO • Organizzazione di sistema • Trasferimento dati; • Gestione I/O. Luca Orrù

  3. Organizzazione di sistema Luca Orrù

  4. Tipi di bus • ABUS, Address Bus : insieme di linee su cui la CPU scrive l’indirizzo del dispositivo a cui intende accedere • DBUS, Data Bus : insieme di linee su cui viene scritto il dato che deve essere trasferito • CBUS, Control Bus : insieme di linee che controllano la comunicazione tra la CPU ed i dispositivi periferici. Luca Orrù

  5. Comunicazione • Quando la CPU intende comunicare con un dispositivo: • invia sull’ABUS l’indirizzo del dispositivo a cui si intende accedere • attiva i segnali opportuni sul CBUS • legge/scrive dal/sul DBUS i dati trasferiti. Luca Orrù

  6. Comunicazione (cont) • L’instruction set contiene generalmente istruzioni per trasferimento dati tra CPU e: • Memoria : MOV AC, [0x25] • Dispositivi di Input/Output : OUT [0x25] • Il CBUS è composto da: • linee di controllo per la Memoria • linee di controllo per l’Input/Output Luca Orrù

  7. Comunicazione (cont) Luca Orrù

  8. Ciclo di lettura da memoria Luca Orrù

  9. Ciclo di lettura da Input/Output Luca Orrù

  10. Spazio d’indirizzamento • Una CPU con n linee di indirizzo è in grado di indirizzare 2n locazioni differenti: spazio di indirizzamento • Lo spazio di indirizzamento può essere: • separato tra Memoria e I/O : I/O non memory mapped o isolated I/O • condiviso tra Memoria e I/O : I/O memory mapped. Luca Orrù

  11. I/O non Memory Mapped Luca Orrù

  12. I/O non memorymapped Luca Orrù • Gli spazi d’indirizzamento per la memoria e per le porte di I/O sono separati, e sono attivati alternativamente da appositi segnali (ad esempio IO/M) • Si aggiunge un bit agli n bit dell’indirizzamento • Per accedere all’I/O si devono utilizzare apposite istruzioni ( IN e OUT) dove si specifica l’indirizzo del periferico • OUT 070h, AL • IN AL, 070h

  13. I/O Memory Mapped Luca Orrù

  14. I/O Memory Mapped (cont) • La CPU usa l’istruzione MOV: • per trasferimenti con la Memoria; • per trasferimenti col l’I/O; • È necessario avere un circuito che riconosca l’indirizzo e abiliti Memoria o I/O. Luca Orrù

  15. I/O Memory Mapped (cont) Luca Orrù

  16. Trasferimento dati • La CPU deve trasferire N=10 word; mov AC, #0x8E ; sorgente loop: ldr AC ; DR<=AC; AR<=DR; DR<=M[AR] out 0x2B ; {0x2B}<=DR add AC, 0x01 ; AC<=AC+1 cmp AC, 0xA2 ; AC==0xA2 ? jne loop ; vai a loop se AC!=0xA2 Luca Orrù

  17. Osservazione • Problema: • Si deve effettuare in modo ripetitivo la stessa operazione; • Il tempo speso per il fetch cycle è sprecato; • Soluzione: • adottare un circuito specializzato per trasferire dati: DMA Luca Orrù

  18. Circuiteria DMA Luca Orrù

  19. DMA: funzionamento • Inizializzazione: • La CPU carica nei registri IOAR e DC l’indirizzo dell’area di memoria ed il numero di parole da trasferire • La CPU informa inoltre il DMA controller della direzione del trasferimento (da memoria a periferica o viceversa ) Luca Orrù

  20. DMA : funzionamento (cont) • Esecuzione del trasferimento: • il DMA Controller riceve una richiesta di trasferimento da parte di una periferica • Il DMA Controller invia un segnale di DMA Req alla CPU. • Quando la CPU giunge ad un punto di rilevamento del segnale di DMA Req, rilascia il bus e attiva il segnale di DMA Ack. • Il DMA Controller inizia il trasferimento. • Dopo il trasferimento di ciascuna parola, IOAR e DC vengono aggiornati (IOAR++, DC--). Luca Orrù

  21. DMA funzionamento (cont) • Il DMA Controller può sospendere temporaneamente il trasferimento disattivando DMA Request; • la CPU disattiva DMA Acknowledge, e riprende il controllo del bus • Quando DC giunge a zero, il trasferimento termina. • Il DMA Controller segnala il termine del trasferimento alla CPU (invia un Interrupt allaCPU) Luca Orrù

  22. DMA • Modalità di trasferimento possibili • Burst transfer • Cycle stealing • Transparent DMA Luca Orrù

  23. Burst mode • Il DMA acquisisce il controllo del bus • Il DMA rilascia il bus solo quando ha terminato il trasferimento • Vantaggio: • Il trasferimento avviene alla massima velocità possibile • Svantaggio: • La CPU non può accedere al bus durante il trasferimento. Luca Orrù

  24. Cycle stealing • Il dati sono trasferiti in piccoli blocchi • Il DMA controller diventa padrone del bus per brevi istanti di tempo • Vantaggio: • la CPU non è bloccata per lunghi istanti di tempo • Svantaggi: • il trasferimento richiede più tempo. Luca Orrù

  25. Transparent DMA • Il DMA rileva quando la CPU non usa il bus • I trasferimenti hanno luogo solo quando la CPU non sta usando il bus • Vantaggi: • il DMA non rallenta mai la CPU • Svantaggi: • è in media il metodo più lento. Luca Orrù

  26. Gestione I/O • Un dispositivo può richiamare l’attenzione della CPU in due modi: • Polling • Interrupt Luca Orrù

  27. Polling • La CPU interroga periodicamente i dispositivi • Se il dispositivo interrogato ha richiesto servizio viene servito • Vantaggio • semplice da realizzare • Svantaggio: • un dispositivo deve attendere il suo turno prima di essere servito: elevata latenza Luca Orrù

  28. Interrupt • La CPU non interroga i dispositivi di I/O • Quando un dispositivo ha necessità di essere servito attiva la richiesta di interrupt • Al termine dell’esecuzione della istruzione corrente, la CPU riconosce la richiesta di interrupt e la serve • „Il servizio dell’interrupt avviene iniziando ad eseguire la procedura di servizio dell’interrupt: Interrupt Service Routine. Luca Orrù

  29. Identificazione del dispositivo • Più dispositivi possono richiedere un interrupt • „Per riconoscere il richiedente è possibile utilizzare: • Linee di interrupt multiple • Polling • Interrupt vettorizzato Luca Orrù

  30. Linee multiple • La CPU possiede diversi piedini per le richieste di Interrupt • Ogni periferica è collegata ad un diverso piedino„ • È una soluzione impraticabile, poiché il numero di periferiche è quasi sempre superiore a quello dei piedini disponibili Luca Orrù

  31. Polling • Esiste un solo piedino per le richieste di Interrupt • „Quando la CPU percepisce la richiesta, inizia a scandire le parole di stato di tutte le periferiche per individuare quella che ha fatto la richiesta. Luca Orrù

  32. Interrupt vettorizzato • Esiste un solo piedino per le richieste di Interrupt„ • Un apposito circuito, Interrupt Controller, riceve le richieste di interrupt, IRQ • Quando la CPU è pronta a servire la richiesta di interrupt proveniente dall’ Interrupt Controller( INTREQ), invia un segnale di INTACK • L’Interrupt Controller pone sul bus un codice di identificazione del dispositivo che ha richiesto l’ Interrupt„ • La CPU usa il codice per determinare l’indirizzo della procedura di servizio, usandolo come indice per un vettore degli indirizzi delle procedure di servizio (Interrupt VectorTable) Luca Orrù

  33. Architettura Luca Orrù

  34. Interrupt vector table • È una tabella esistente nella memoria principale (spesso a partire dall’indirizzo 00000) • Contiene, per ogni codice di Interrupt, l’indirizzo della relativa Interrupt Service Routine. Luca Orrù

  35. Priorità • Nei sistemi complessi a ciascun dispositivo di I/O è associata una priorità • A fronte di richieste simultanee viene eseguita la Interrupt Service Routine dell’I/O con priorità maggiore. Luca Orrù

  36. Priorità (cont) Luca Orrù Se si usa il meccanismo delle linee di interrupt multiple, è la CPU che riconosce l’I/O con priorità più alta Nel caso del polling, la CPU serve prima il dispositivo che compare prima nella sequenza con cui i dispositivi vengono interrogati Nel caso dell’interrupt vettorizzato, si usa il meccanismo del Daisy Chaining

  37. Daisy Chaining Luca Orrù Ciascun I/O possiede una circuiteria che riceve il segnale di INTACK e che può propagarlo in uscita Quando questo viene attivato, se il dispositivo ha fatto richiesta di interrupt mette sul bus il suo codice identificativo Se non ha fatto richiesta, attiva il segnale di INTACK in uscita

  38. Daisy Chaining Luca Orrù

  39. Architettura estesa della CPU Luca Orrù

More Related