1 / 10

Macchina a stati finiti DMAC

Macchina a stati finiti DMAC. I/O dalla memoria al disco in modalità Burst I/O dalla memoria al disco in modalità Burst Stealing I/O dal disco alla memoria in modalità Burst I/O dal disco alla memoria in modalità Burst Stealing. I/O WR. DMAC. NOP. SELECT I/O. Programmazione del DMAC

conor
Download Presentation

Macchina a stati finiti DMAC

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. Macchina a stati finiti DMAC • I/O dalla memoria al disco in modalità Burst • I/O dalla memoria al disco in modalità Burst Stealing • I/O dal disco alla memoria in modalità Burst • I/O dal disco alla memoria in modalità Burst Stealing I/O WR DMAC NOP SELECT I/O Programmazione del DMAC sono comandi dati a livello software Dal PD 32 START=1 ? NO START SI NOP Il DMAC controlla che la periferica non sia già impegnata con altre operazioni di I/O Periferica Pronta? NO SI

  2. Macchina a stati finiti DMAC DMAC • L’SCO del DMAC legge il valore del Flip Flop SR I/O: • Se è 0 è un’interazione da disco verso la memoria • Se è 1 è un’interazione dalla memoria al disco I/O FF=1 ? SI NO • L’SCO 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 B-ST = 1? B-ST = 1? NO NO SI SI *si tratta di controlli implementati a livello Firmware ( 4 ) ( 3 ) ( 2 ) ( 1 )

  3. Macchina a stati finiti DMAC(1) Trasferimento da disco a memoria di tipo Burst 1 di 2 DMAC Lo SCO del DMAC invia allo SCO della periferica il segnale “Dato Letto” Dato Letto=1 Nop 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. Dato Pronto=1 NO SI Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata MBR = 0 MBG = 1 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 NO SI Bcar = 1 Bout = 1 MWR = 1 Mbi = 1 , i=1..4 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 SI

  4. Macchina a stati finiti DMAC(1) Trasferimento da disco a memoria di tipo Burst 2 di 2 DMAC Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Inc = 1 Dec = 1 WC = 0 Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire NO Chiedo alla periferica di generare l’n-esimo dato SI Dato Letto = 1 Nop 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. Dato Pronto=1 NO SI Se il trasferimento è completato il DMAC rilascia il bus, il Processore si risveglia e continua il suo lavoro… MBR = 1 Resetta il Flip Flop SR “START” Rstart = 1 Avvisa il PD32 di aver finito generando un Interrupt Sint = 1

  5. Macchina a stati finiti DMAC(2) Trasferimento da disco a memoria di tipo Burst Stealing 1 di 2 DMAC Lo SCO del DMAC invia allo SCO della periferica il segnale “Dato Letto” Dato Letto=1 NO Nop 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. Dato Pronto=1 NO SI Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata MBR = 0 MBG = 1 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 NO SI Bcar = 1 Bout = 1 MWR = 1 Mbi = 1 , i=1..4 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 DMAC Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Inc = 1 Dec = 1 Un trasferimento è completato il DMAC rilascia il bus , il Processore si risveglia e continua il suo lavoro… MBR = 1 WC = 0 Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire NO SI Rstart = 1 Resetta il Flip Flop SR “START” Sint = 1 Avvisa il PD32 di aver finito generando un Interrupt

  7. Macchina a stati finiti DMAC(3) Trasferimento da memoria a disco di tipo Burst 1 di 2 DMAC Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata MBR = 0 NO MBG = 1 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 SI MRD = 1 Bcar = 1 Mbi = 1 , i=1..4 Ereg = 1 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 Enr = 1 Bmdr = 1 Trasferimento del dato dall’MDR al registro interno della periferica SI

  8. Macchina a stati finiti DMAC(3) Trasferimento da memoria a disco di tipo Burst 2 di 2 DMAC Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Inc = 1 Dec = 1 WC = 0 Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire NO SI Il DMAC avverte la periferica che il dato è stato scritto nel REGIN Dato Scritto=1 Nop 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. Next Dato =1 NO SI Il DMAC avverte la periferica che il dato è stato scritto nel REGIN Dato Scritto=1 DMAC rilascia il bus, il Processore si risveglia e continua il lavoro… MBR = 1 Resetta il Flip Flop SR “START” Rstart = 1 Sint = 1 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 DMAC Viene richiesto il bus al Processore, da parte del DMAC, attraverso Il Memory Bus Request, funzionante in logica negata MBR = 0 MBG = 1 NO 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 SI MRD = 1 Bcar = 1 Mbi = 1 , i=1..4 Ereg = 1 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 SI Trasferimento del dato dall’MDR 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… MBR = 1 Dato Scritto=1 Il DMAC avverte la periferica che il dato è stato scritto nel REGIN

  10. Macchina a stati finiti DMAC(4) Trasferimento da memoria a disco di tipo Burst Stealing 2 di 2 DMAC Una volta effettuato il trasferimento viene incrementato di 4 il registro CAR e decrementato di 4 il registro WC Inc = 1 Dec = 1 WC = 0 Si verifica se il World Counter è divenuto 0: Se si il lavoro del DMAC è finito Se no ci sono ancora dati da trasferire NO SI Nop 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 Next Dato =1 NO SI Resetta il Flip Flop SR “START” Rstart = 1 Sint = 1 Avvisa il PD32 di aver finito generando un Interrupt

More Related