O que o processador faz quando copio coisas de um disco USB para outro?

21

Todos os dados que eu copio passam por ele ou existe outra maneira mais direta?

Felix Dombek
fonte
O processador é activo e no controle com USB, mas não com FireWire (como cartão que tem a sua própria CPU)
tobylane

Respostas:

31

Complicado! Os dados realmente não passam pela CPU em si.

Os dados e os 1 e 0 críticos passam pelo chipset ou chips de E / S e memória dedicados; no entanto, quando você está copiando arquivos, o comando para fazer a cópia é executado pelo processador.

Imagine ter um objeto à sua frente (os dados), seus braços (chipset / chip de E / S) e seu cérebro (a CPU). Na verdade, você não usa seu cérebro para mover o objeto; seu cérebro executa o "comando" para seus braços para mover o objeto.

William Hilsum
fonte
1
Boa metáfora, @Wil.
Shinrai
4
@Shinrai - embora, não se levante se forem psíquicos! Eu adoraria mover o objeto com o meu cérebro!
William Hilsum 04/02
O DMA ou algo não passou pela CPU?
o0 '.
2
O DMA ajuda fornecendo à CPU interruptsempre que um comando de E / S para a block device, como um pendrive, for concluído . A CPU continua executando a cópia. De fato, o que a CPU está fazendo é executar o ioctlcódigo do kernel que faz interface com os drivers de dispositivo para copiar chunks(o nome real) DMA. A CPU também cabos asynchronous IOe sync IOum pouco diferente a partir de um kernel de código de execução de-perspectiva.
Henrik
1
Eu não faço isso para o representante, adoro este site e ajude as pessoas! Eu realmente não acho que seja melhor como duas frases, mas espero que seja melhor agora .... se você não gostar, acho que há algo novo para os membros inferiores, tente editá-lo!
William Hilsum 04/02
5

A CPU precisa executar o programa que lê o arquivo de origem e depois grava o arquivo de destino.

Os dados lidos (geralmente) serão lidos na memória principal em pedaços, mas na verdade não passam pela CPU.

ChrisF
fonte
4

Em um mainframe com canais inteligentes, a CPU apenas informava aos canais para fazer a cópia. Muito eficiente e permite backups grandes e rápidos com pouca sobrecarga da CPU.

Infelizmente, como não temos canais inteligentes, a CPU acaba em um loop semelhante a:

para cada arquivo (dev1); Faz
   arquivo de criação (dev2);
   copyfilecontent (dev1, dev2);
fim;

A sobrecarga da CPU não é tão alta, a menos que haja muitos arquivos pequenos, especialmente muitos arquivos no mesmo diretório. A operação de criação de arquivo geralmente possui a maior sobrecarga. A cópia de disco para disco apenas trata cada disco como um arquivo pré-existente.

BillThor
fonte
O que são canais inteligentes? Você poderia mostrar um trecho de pseudo-código para isso?
Henrik
Canais inteligentes são dispositivos de hardware que manipulam E / S em mainframes. Espero que eles sejam microcomputadores de funcionalidade limitada. Não faço ideia de como é o código deles. Eles eram muito importantes quando os mainframes lidavam com centenas de usuários on-line em 8 MB de memória. Acredito que os computadores Commodore costumavam ter uma segunda CPU em seus sistemas de disco. Eles podem ter tido funcionalidade semelhante.
BillThor