从闪存驱动器传输数据是否算作读取速度?

从闪存驱动器传输数据是否算作读取速度?

我有一个相当简单的问题。基本上,我相对确定写入闪存驱动器是写入速度,读取闪存驱动器上的数据是读取速度。但是,当将数据从一个驱动器传输到另一个驱动器(无论是 SSD 还是 HDD)时,假设目标驱动器的写入速度是无限的,那么传输速度是否是源驱动器的读取速度?换句话说,数据传输的速度驱动器的读取速度是多少?

答案1

第一个瓶颈要么是介质(SATA/USB/FireWire)的限制,要么是如您自己提到的那样,是源驱动器的读取速度。

将文件从一个磁盘复制到另一个磁盘不会利用 RAM 的极高读写速度,因为剪贴板仅存储有关文件位置的信息,而不存储文件本身。

答案2

如果您将文件从闪存驱动器复制到具有无限写入速度的驱动器(posix /dev/null/,windows \\.\nul),那么您只会看到读取速度,应用程序和操作系统开销的影响。

答案3

我有一个相当简单的问题

但答案并不简单。

数据从驱动器传输的速度就是读取速度吗?

从设备传输数据即为读取。I
/O 方向始终是从 CPU 的角度。

数据传输将分为两个阶段。
第一阶段是从介质(例如磁盘盘片或 NAND 闪存)到设备的集成控制器(例如磁盘控制器或 NAND 闪存控制器、NFC)。
第二阶段是从设备控制器通过 SATA 或 USB-SATA 桥接器(即 SATA over USB)到主机 PC。
在这些阶段之间,使用 ECC 验证数据块,并可能进行更正。

对于每个数据块/扇区,这两个阶段必须按顺序发生。
这些传输不能同时进行,因此可以将执行每个阶段的时间相加以获得传输数据的总时间(并忽略发送读取请求和访问数据的时间)。
设备制造商的读取速率可能会或可能不会将这两个阶段分开,也可能不会提供说明。
一般来说,我怀疑 NAND 闪存驱动器的典型读取速率仅适用于第一阶段,因为这通常是可以给潜在客户留下深刻印象的更快值。

但是,当将数据从一个驱动器传输到另一个驱动器(无论是 SSD 还是 HDD)时,

哇哦,从一个驱动器到另一个驱动器的传输几乎总是需要两次传输。首先从源驱动器读取数据到内存,然后从内存写入数据到目标驱动器。
读写操作所采用的并发量或重叠量取决于复制程序的复杂程度(例如双缓冲)和硬件限制(例如总线争用)。最好的情况可能只需要最坏情况(完全没有并发)一半的时间即可完成传输,但如果没有分析或专业知识,您将无法理解传输时间。

除非您有一个可以执行设备到设备传输的总线主控,否则您无法绕过内存。
由于设备到设备的传输实际上涉及两个传输,且并发程度不明确,因此您将获得不准确的各个设备的读写“速度”。
使用 *nix 操作系统的写入操作/dev/零并使用读取操作/dev/null提供粗略的总体传输速度数字。

相关内容