Cosa fa il processore quando copio elementi da un disco USB a un altro?


21

Tutti i dati che copio li attraversano o esiste un altro modo più diretto?


Il processore è attivo e in controllo con USB, ma non con firewire (poiché quella scheda ha il suo CPU)
Tobylane

Risposte:


31

Uno complicato! I dati non passano davvero attraverso la CPU in sé.

I dati e gli 1 e gli 0 critici passano attraverso il chipset o chip e memoria I / O dedicati, tuttavia, quando si copiano i file, il comando per eseguire la copia viene eseguito dal processore.

Immagina di avere un oggetto davanti a te (i dati), le tue braccia (Chipset / chip I / O) e il tuo cervello (la CPU). In realtà non usi il cervello per muovere l'oggetto, il cervello esegue il "comando" sulle braccia per muovere l'oggetto.


1
Bella metafora, @Wil.
Shinrai,

4
@Shinrai - anche se non regge se sono psichici! Mi piacerebbe spostare l'oggetto con il mio cervello!
William Hilsum,

DMA o qualcosa non ha bypassato la CPU?
o0 '.

2
DMA aiuta dando alla CPU un interruptogni volta che un comando IO a un block device, come una chiavetta USB, è stato completato . La CPU continua quindi a eseguire la copia. In effetti, ciò che la CPU sta facendo è eseguire il ioctlcodice del kernel che si interfaccia con i driver del dispositivo su cui copiare chunks(il nome effettivo) DMA. La CPU gestisce anche asynchronous IOe sync IOleggermente diversa da una prospettiva di esecuzione del codice del kernel.
Henrik

1
Non lo faccio per il rappresentante, adoro questo sito e aiutare le persone! Non penso davvero che sia meglio come due frasi, ma spero che sia meglio ora .... se non ti piace, penso che ci sia una novità per i membri inferiori, prova a modificarlo tu stesso!
William Hilsum,

5

La CPU deve eseguire il programma che legge il file di origine e quindi scrive il file di destinazione.

I dati letti verranno (di solito) letti nella memoria principale in blocchi, ma in realtà non passano attraverso la CPU.


4

Su un mainframe con canali intelligenti, la CPU direbbe semplicemente ai canali di fare la copia. Molto efficiente e consente backup rapidi di grandi dimensioni con un piccolo sovraccarico della CPU.

Sfortunatamente, non abbiamo canali intelligenti, quindi la CPU finisce in un ciclo simile a:

per ogni file (dev1); fare
   CreateFile (DEV2);
   copyfilecontent (dev1, dev2);
fine;

Il sovraccarico della CPU non è così elevato a meno che non ci siano molti piccoli file, in particolare molti file nella stessa directory. L'operazione di creazione del file di solito ha il sovraccarico maggiore. La copia da disco a disco considera ogni disco come un file preesistente.


Cosa sono i canali intelligenti? Potresti mostrare uno snippet di pseudo-codice per questo?
Henrik

I canali intelligenti sono dispositivi hardware che gestiscono I / O su mainframe. Mi aspetto che siano microcomputer a funzionalità limitata a sé stanti. Non ho idea di come sia il loro codice. Sono stati molto importanti quando i mainframe hanno gestito centinaia di utenti online con 8 MB di memoria. Credo che i computer Commodore avevano una seconda CPU nei loro sistemi di dischi. Potrebbero aver avuto funzionalità simili.
BillThor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.