Che cosa significa "controllo del bus dati"?

2

Questo video menziona quanto segue:

Che cosa significa che al controller DMA è concesso il controllo del bus dati , significa che la CPU non può utilizzare il bus per accedere alla memoria e ai dispositivi IO finché il controller DMA non riaggiusta il < em> controllo bus dati nella CPU?

    
posta Christopher 05.10.2017 - 02:34
fonte

1 risposta

8

Sì. Il controller DMA diventa proprietario del bus per la durata del trasferimento.

Detto questo, mi sento obbligato a sottolineare che, almeno su macchine basate su PC, i controller DMA sono ormai quasi completamente obsoleti da un po 'di tempo.

Su una macchina ragionevolmente moderna, il controller DMA è usato solo per I / O da / per floppy disk (e solo "direttamente" floppy disk - un floppy che si connette via USB non fa t count).

C'era anche un breve periodo in cui i controller DMA erano usati per i trasferimenti del disco rigido, ma era molto tempo fa (PC-XT) e sono diventati obsoleti solo leggermente più recentemente (PC / AT).

Inoltre, i controller DMA in un PC dipendono dalle caratteristiche specifiche del bus ISA originale. Per eseguire un trasferimento DMA, il controller DMA ha detto al bus che stava facendo entrambi una scrittura in memoria e una lettura I / O (o viceversa) contemporaneamente. Questo ha letto i dati sul bus e ha scritto i dati in memoria (o, ancora, vice versa) in un singolo ciclo di bus.

Tuttavia, il bus PCI (e PCIe) non ha linee separate per essere in grado di affermare simultaneamente che sta facendo una lettura I / O e una scrittura in memoria. In un dato ciclo di bus, può eseguire solo uno di questi tipi di transazioni.

Quindi, quando è entrato in uso il bus PCI, DMA è passato da obsoleto a decisamente ... beh, non riesco a pensare a un termine migliore, ma è diventata una prospettiva ancora peggiore. I computer moderni includono una buona quantità di salti mortali per consentire ai controller DMA di funzionare ancora, nel caso in cui decidessi di utilizzare un dischetto non USB, ma la realtà è che oggigiorno la maggior parte delle macchine viene probabilmente acquistata, usata e gettata via , senza mai (neanche una volta) in realtà usando i controller DMA.

Su una macchina ragionevolmente moderna, l'analogo più simile di DMA che viene effettivamente usato abbastanza da notare sono i controller di masterizzazione bus. Un controller di masterizzazione bus funziona vagamente in modo simile a un controller DMA. La differenza è che invece di avere un controller DMA per tutte le periferiche, ogni periferica ha il proprio controller specializzato che può ottenere il controllo del bus, eseguire un trasferimento (ad es. Direttamente dalla / dalla memoria principale della macchina) e quindi rinunciare al suo controllo del bus. Questo ha un certo numero di ovvi vantaggi, tra i quali primeggia che funziona effettivamente con PCI e PCIe. Suppongo che dovrei aggiungere: con l'avvento del PCIe, anche questo non è nemmeno più preciso. PCI era un bus, ma PCIe no. Invece, usa un fabric switch, quindi (tra le altre cose) se A vuole parlare con B, e C vuole parlare con D, quelle transazioni possono accadere simultaneamente, mentre su un bus solo una transazione sarebbe stata consentita in un momento .

In ogni caso, DMA è quasi interamente un artefatto storico. Se vuoi saperne di più sui processi simili a DMA rilevanti per un computer corrente, probabilmente vorresti studiare il mastering del bus.

    
risposta data 05.10.2017 - 03:19
fonte

Leggi altre domande sui tag