« Forum anonimo (sperimentale)

bus arbiter o priorità a richiesta (DMA)

1 reply
Last
buonasera, volevo chiedere qualche spiegazione in merito alla questione del bus arbiter. Non capisco se il bus arbiter determina chi fra cpu e dma controller sarà bus master, se invece il dmac deve chiedere mediante interrupt request/successiva interrupt aknowledge da parte della cpu di diventare bus master, se accadono entrambe le cose, se sono due soluzioni adottate in due architetture diverse (nel caso, quale adotta mips?) o se la seconda ipotesi è errata. Grazie e buona serata.
1 reply
  1. Re: bus arbiter o priorità a richiesta (DMA)

    Buona la prima.

    La questione non si può svolgere, per i tempi in gioco, a livello di interruzione: il meccanismo dell'interruzione implica l'eseguire istruzioni e l'eseguire istruzioni implica almeno l'accesso in memoria per il fetch. Con la tecnica DMA la periferica (il DMAC cui è connessa) accedono direttamente alla memoria quindi i tempi in gioco per l'arbitraggio sono quelli degli accessi alla memoria., i periodi del ciclo di clock del bus. Si tratta di hardware, magari sofisticato, ma hardware; l'esecuzione di istruzioni è immensamente più lento.

    Abbiamo invece parlato del meccanismo dell'interruzione per rendere percepibile, al livello della logica del software in esecuzione in CPU, il termine del trasferimento, un evento che altrimenti non sarebbe proprio percepibile. Non siamo però entrati nel dettaglio di quale software sia quello in esecuzione in CPU, pur nominando al volo le stringhe "sistema operativo", "processo in attesa dei dati", "buffer di sistema", etc. etc.