Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoLuigi Pieri Modificato 10 anni fa
1
Macchina a stati finiti DMAC 1.I/O dalla memoria al disco in modalità Burst 2.I/O dalla memoria al disco in modalità Burst Stealing 3.I/O dal disco alla memoria in modalità Burst 4.I/O dal disco alla memoria in modalità Burst Stealing NOP START=1 ? NOP Periferica Pronta? DMAC SI NO SI NO START SELECT I/O I/O WR Programmazione del DMAC sono comandi dati a livello software Dal PD 32 Il DMAC controlla che la periferica non sia già impegnata con altre operazioni di I/O
2
Macchina a stati finiti DMAC I/O FF=1 ? DMAC B-ST = 1? SINO SI NO LSCO del DMAC legge il valore del Flip Flop SR I/O: -Se è 0 è uninterazione da disco verso la memoria -Se è 1 è uninterazione dalla memoria al disco LSCO legge il valore del Flip Flop SR Burst Bus – St: -Se è 0 si tratta di un uso del Bus di tipo Burst -Se è 1 si tratta di un uso del Bus di tipo Burst Stealing *si tratta di controlli implementati a livello Firmware ( 1 )( 2 ) ( 3 )( 4 )
3
Macchina a stati finiti DMAC (1) Trasferimento da disco a memoria di tipo Burst 1 di 2 Dato Pronto=1 DMAC SI NO Dato Letto=1 Nop MBG = 1 SI NO MBR = 0 Bcar = 1 Bout = 1 MWR = 1 Mbi = 1, i=1..4 SI Lo SCO del DMAC invia allo SCO della periferica il segnale Dato Letto Subito dopo lo SCO del DMAC si mette in ascolto del segnale Dato Pronto, il quale verrà posto ad uno dalla periferica quando sarà pronto il dato da lei generato. Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata Si attende che il PD32 abbia messo le sue uscite in alta impedenza, Il tutto avviene quando il segnale Memory Bus Grent, ascoltato dal DMAC, è posto ad uno dal PD32 Questa serie di segnali di controllo generati dal SCO del DMAC servono per scaricare i 30 bit dal CAR e i 32 del registo di out della periferica nella memoria. Settare i quattro segnali Mbi, i=1,..,4 significa ipotizzare di scrivere simultaneamente 4 Byte allineati in memoria
4
Macchina a stati finiti DMAC (1) Trasferimento da disco a memoria di tipo Burst 2 di 2 WC = 0 DMAC SI NO Inc = 1 Dec = 1 Dato Pronto=1 NO Nop Dato Letto = 1 SI Rstart = 1 MBR = 1 Sint = 1 Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire Chiedo alla periferica di generare ln-esimo dato Lo SCO del DMAC si mette di nuovo in ascolto del segnale Dato Pronto, il quale verrà posto ad uno dalla periferica quando sarà pronto il nuovo dato da lei generato. Se il trasferimento è completato il DMAC rilascia il bus, il Processore si risveglia e continua il suo lavoro… Resetta il Flip Flop SR START Avvisa il PD32 di aver finito generando un Interrupt
5
Macchina a stati finiti DMAC (2) Trasferimento da disco a memoria di tipo Burst Stealing 1 di 2 Dato Pronto=1 DMAC SI NO Dato Letto=1 Nop MBG = 1 SI NO MBR = 0 Bcar = 1 Bout = 1 MWR = 1 Mbi = 1, i=1..4 NO Lo SCO del DMAC invia allo SCO della periferica il segnale Dato Letto Subito dopo lo SCO del DMAC si mette in ascolto del segnale Dato Pronto, il quale verrà posto ad uno dalla periferica quando sarà pronto il dato da lei generato. Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata Si attende che il PD32 abbia messo le sue uscite in alta impedenza, Il tutto avviene quando il segnale Memory Bus Grent, ascoltato dal DMAC, è posto ad uno dal PD32 Questa serie di segnali di controllo generati dal SCO del DMAC servono per scaricare i 30 bit dal CAR e i 32 del registo di out della periferica nella memoria. Settare i quattro segnali Mbi, i=1,..,4 significa ipotizzare di scrivere simultaneamente 4 Byte allineati in memoria
6
Macchina a stati finiti DMAC (2) Trasferimento da disco a memoria di tipo Burst Stealing 2 di 2 WC = 0 DMAC Inc = 1 Dec = 1 NO SI Rstart = 1 Sint = 1 MBR = 1 Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Un trasferimento è completato il DMAC rilascia il bus, il Processore si risveglia e continua il suo lavoro… Resetta il Flip Flop SR START Avvisa il PD32 di aver finito generando un Interrupt Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire
7
Macchina a stati finiti DMAC (3) Trasferimento da memoria a disco di tipo Burst 1 di 2 MBG = 1 DMAC SI NO MBR = 0 MRD = 1 Bcar = 1 Mbi = 1, i=1..4 Ereg = 1 SI Enr = 1 Bmdr = 1 Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata Si attende che il PD32 abbia messo le sue uscite in alta impedenza, Il tutto avviene quando il segnale Memory Bus Grent, ascoltato dal DMAC, è posto ad uno dal PD32 Questa serie di segnali di controllo generati dal SCO del DMAC servono per selezionare i dati indirizzati dal CAR e depositarli Nel REGin della periferica Settare i quattro segnali Mbi, i=1,..,4 significa ipotizziamo di scrivere simultaneamente 4 Byte allineati in memoria Trasferimento del dato dallMDR al registro interno della periferica
8
Macchina a stati finiti DMAC (3) Trasferimento da memoria a disco di tipo Burst 2 di 2 WC = 0 DMAC SI NO Inc = 1 Dec = 1 Next Dato =1 NO Nop Dato Scritto=1 SI Rstart = 1 MBR = 1 Sint = 1 Dato Scritto=1 Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire Il DMAC avverte la periferica che il dato è stato scritto nel REGIN Lo SCO del DMAC si mette in ascolto del segnale Next Dato, il quale verrà posto ad uno dalla periferica quando sarà pronta a ricevere un nuovo dato. Il DMAC avverte la periferica che il dato è stato scritto nel REGIN DMAC rilascia il bus, il Processore si risveglia e continua il lavoro… Resetta il Flip Flop SR START Avvisa il PD32 di aver finito generando un Interrupt
9
Macchina a stati finiti DMAC (4) Trasferimento da memoria a disco di tipo Burst Stealing 1 di 2 MBG = 1 DMAC SI NO MBR = 0 MRD = 1 Bcar = 1 Mbi = 1, i=1..4 Ereg = 1 SI MBR = 1 Dato Scritto=1 Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata Si attende che il PD32 abbia messo le sue uscite in alta impedenza, Il tutto avviene quando il segnale Memory Bus Grent, ascoltato dal DMAC, è posto ad uno dal PD32 Trasferimento del dato dallMDR al registro interno della periferica Enr = 1 Bmdr = 1 Un trasferimento è completato il DMAC rilascia il bus, il Processore si risveglia e continua il suo lavoro… Il DMAC avverte la periferica che il dato è stato scritto nel REGIN Questa serie di segnali di controllo generati dal SCO del DMAC servono per selezionare i dati indirizzati dal CAR e depositarli Nel REGin della periferica Settare i quattro segnali Mbi, i=1,..,4 significa ipotizzare di scrivere simultaneamente 4 Byte allineati in memoria
10
Macchina a stati finiti DMAC (4) Trasferimento da memoria a disco di tipo Burst Stealing 2 di 2 WC = 0 DMAC SI NO Inc = 1 Dec = 1 Next Dato =1 NO Nop SI Rstart = 1 Sint = 1 Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire Lo SCO del DMAC si mette in ascolto del segnale Next Dato, il quale verrà posto ad uno dalla periferica quando sarà pronta a ricevere un nuovo dato, poi il DMAC andrà a chiedere di nuovo il Bus al Processore Resetta il Flip Flop SR START Avvisa il PD32 di aver finito generando un Interrupt
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.