当我将内容从一个 USB 磁盘复制到另一个 USB 磁盘时,处理器会做什么?

当我将内容从一个 USB 磁盘复制到另一个 USB 磁盘时,处理器会做什么?

我复制的所有数据都要经过它吗?还是还有其他更直接的方法?

答案1

有点棘手!数据本身实际上并不经过 CPU。

数据和关键的 1 和 0 会经过芯片组或专用 I/O 芯片和内存,但是,当您复制文件时,执行复制的命令会由处理器运行。

想象一下,你面前有一个物体(数据)、你的手臂(芯片组/I/O 芯片)和你的大脑(CPU)。你实际上并没有用大脑来移动物体,而是你的大脑向你的手臂发出“命令”来移动物体。

答案2

CPU 必须运行读取源文件然后写入目标文件的程序。

读取的数据(通常)会以块的形式读入主存储器,但实际上并不经过 CPU。

答案3

在具有智能通道的主机上,CPU 只需告诉通道进行复制即可。非常高效,并且能够以很少的 CPU 开销快速进行大型备份。

不幸的是,我们没有智能通道,所以 CPU 最终陷入类似如下的循环:

对于每个文件(dev1);执行
   创建文件(dev2);
   复制文件内容(dev1,dev2);
结尾;

除非有大量小文件,尤其是同一目录中有大量文件,否则 CPU 开销不会那么高。创建文件操作通常具有最高开销。磁盘到磁盘复制只是将每个磁盘视为预先存在的文件。

相关内容