Que fait le processeur lorsque je copie des éléments d'un disque USB vers un autre?

21

Est-ce que toutes les données que je copie passent par là ou y a-t-il un autre moyen plus direct?

Felix Dombek
la source
Le processeur est actif et sous contrôle avec USB, mais pas avec firewire (car cette carte a son propre processeur)
tobylane

Réponses:

31

Tricky one! Les données ne passent pas vraiment par le CPU en soi.

Les données et les 1 et 0 critiques passent par le chipset, ou les puces d'E / S dédiées et la mémoire, cependant, lorsque vous copiez des fichiers, la commande pour effectuer la copie est exécutée par le processeur.

Imaginez avoir un objet devant vous (les données), vos bras (chipset / puce d'E / S) et votre cerveau (le CPU). Vous n'utilisez pas réellement votre cerveau pour déplacer l'objet, votre cerveau exécute la "commande" à vos bras pour déplacer l'objet.

William Hilsum
la source
1
Belle métaphore, @Wil.
Shinrai
4
@Shinrai - bien que cela ne résiste pas s'ils sont psychiques! J'adorerais déplacer l'objet avec mon cerveau!
William Hilsum
Le DMA ou quelque chose n'a-t-il pas contourné le CPU?
o0 '.
2
DMA aide en donnant au CPU une interruptfois qu'une commande d'E / S sur block device, telle qu'une clé USB, est terminée . La CPU continue ensuite d'exécuter la copie. En fait, ce que fait le CPU, c'est d'exécuter du ioctlcode noyau qui s'interface avec les pilotes de périphérique pour copier chunks(le nom réel) DMA. Le CPU gère également asynchronous IOet sync IOlégèrement différent d'une perspective d'exécution du code du noyau.
Henrik
1
Je ne le fais pas pour le représentant, j'adore ce site et aider les gens! Je ne pense pas vraiment que ce soit mieux en deux phrases, mais j'espère que c'est mieux maintenant .... si vous ne l'aimez pas, je pense qu'il y a une nouvelle chose pour les membres inférieurs, essayez de l'éditer vous-même!
William Hilsum
5

La CPU doit exécuter le programme qui lit le fichier source puis écrit le fichier de destination.

Les données lues seront (généralement) lues dans la mémoire principale par blocs, mais ne passent pas réellement par le CPU.

ChrisF
la source
4

Sur un ordinateur central avec des canaux intelligents, le processeur indiquerait simplement aux canaux de faire la copie. Très efficace et permet des sauvegardes rapides et volumineuses avec peu de temps processeur.

Malheureusement, nous n'avons pas de canaux intelligents, donc le processeur se retrouve dans une boucle similaire à:

pour chaque fichier (dev1); faire
   createfile (dev2);
   copyfilecontent (dev1, dev2);
fin;

Le temps système n'est pas si élevé sauf s'il y a beaucoup de petits fichiers, en particulier beaucoup de fichiers dans le même répertoire. L'opération de création de fichier présente généralement la surcharge la plus élevée. La copie de disque à disque traite simplement chaque disque comme un fichier préexistant.

BillThor
la source
Que sont les canaux intelligents? Pourriez-vous montrer un extrait de pseudo-code pour cela?
Henrik
Les canaux intelligents sont des périphériques matériels qui gèrent les E / S sur les mainframes. Je m'attends à ce que ce soient des micro-ordinateurs à fonctionnalité limitée à part entière. Aucune idée de ce à quoi ressemble leur code. Ils étaient très importants lorsque les mainframes traitaient des centaines d'utilisateurs en ligne dans 8 Mo de mémoire. Je crois que les ordinateurs Commodore avaient un deuxième processeur dans leurs systèmes de disques. Ils peuvent avoir eu des fonctionnalités similaires.
BillThor