Macchina a stati finiti dmac c una sola periferica bidirezionale disco
This presentation is the property of its rightful owner.
Sponsored Links
1 / 10

Macchina a stati finiti DMAC (c’è una sola periferica bidirezionale: DISCO) PowerPoint PPT Presentation


  • 59 Views
  • Uploaded on
  • Presentation posted in: General

Macchina a stati finiti DMAC (c’è una sola periferica bidirezionale: DISCO). I/O dalla memoria al disco in modalità Burst I/O dalla memoria al disco in modalità Bus Stealing I/O dal disco alla memoria in modalità Burst I/O dal disco alla memoria in modalità Bus Stealing. I/O WR. DMAC. NOP.

Download Presentation

Macchina a stati finiti DMAC (c’è una sola periferica bidirezionale: DISCO)

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Macchina a stati finiti dmac c una sola periferica bidirezionale disco

Macchina a stati finiti DMAC (c’è una sola periferica bidirezionale: DISCO)

  • I/O dalla memoria al disco in modalità Burst

  • I/O dalla memoria al disco in modalità Bus Stealing

  • I/O dal disco alla memoria in modalità Burst

  • I/O dal disco alla memoria in modalità Bus 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


Macchina a stati finiti dmac

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 )


Macchina a stati finiti dmac 1 trasferimento da disco a memoria di tipo burst 1 di 2

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


Macchina a stati finiti dmac 1 trasferimento da disco a memoria di tipo burst 2 di 2

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


Macchina a stati finiti dmac 2 trasferimento da disco a memoria di tipo burst stealing 1 di 2

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


Macchina a stati finiti dmac 2 trasferimento da disco a memoria di tipo burst stealing 2 di 2

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


Macchina a stati finiti dmac 3 trasferimento da memoria a disco di tipo burst 1 di 2

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


Macchina a stati finiti dmac 3 trasferimento da memoria a disco di tipo burst 2 di 2

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


Macchina a stati finiti dmac 4 trasferimento da memoria a disco di tipo burst stealing 1 di 2

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


Macchina a stati finiti dmac 4 trasferimento da memoria a disco di tipo burst stealing 2 di 2

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


  • Login