1

У меня довольно простой вопрос. По сути, я относительно уверен, что запись на флэш-накопитель - это скорость записи, а чтение данных на нем - это скорость чтения. Однако при передаче данных с одного диска на другой (будь то SSD или HDD), предполагая, что скорость записи целевого диска бесконечна, будет ли скорость передачи равной скорости чтения исходного диска? Другими словами, скорость передачи данных с диска - это скорость чтения?

3 ответа3

3

если вы скопируете файл с флэш-накопителя на что-то с бесконечной скоростью записи (posix /dev/null/ , windows \\.\nul), то да, вы увидите только влияние скорости чтения, приложений и издержек операционной системы.

2

У меня довольно простой вопрос

Но ответ не прост.

скорость, с которой данные передаются с диска, это скорость чтения?

Передача данных с устройства читает.
Направление ввода / вывода всегда с точки зрения процессора.

Передача данных будет происходить в два этапа.
Первая фаза - от носителя (например, дисковода или флэш-памяти NAND) до встроенного контроллера устройства (например, контроллера диска или флэш-контроллера NAND, NFC).
Второй этап - от контроллера устройства до хост-компьютера через мост SATA или USB-SATA (т. Е. SATA через USB).
Между этими фазами блок данных проверяется с использованием ECC и, возможно, корректируется.

Эти две фазы должны происходить последовательно для каждого блока / сектора данных.
Эти передачи не могут выполняться одновременно, поэтому можно добавить время для выполнения каждой фазы, чтобы получить общее время для передачи данных (и игнорировать время для отправки запроса на чтение и доступа к данным).
Скорость считывания данных производителем устройства может или не может разделять эти две фазы, и может давать или не давать разъяснения.
В общем, я подозреваю, что типичные скорости чтения для флэш-накопителей NAND относятся только к первой фазе, так как обычно это будет более быстрое значение, которое может впечатлить потенциального клиента.

Однако при передаче данных с одного диска на другой (будь то SSD или HDD),

Вау, передача с одного привода на другого водителя - это почти всегда две передачи. Существует чтение с исходного диска в память, а затем из памяти запись на целевой диск.
Степень параллелизма или перекрытия, которые используют операции чтения и записи, определяется сложностью (например, двойной буферизацией) программ копирования и аппаратными ограничениями (например, конфликт шины). В лучшем случае передача может выполняться примерно вдвое быстрее, чем в худшем (без параллелизма), но без анализа или специальных знаний вы не знали бы, как интерпретировать время передачи.

Вы не можете обойти память, если у вас нет мастера шины, который может выполнять передачу с устройства на устройство.
Поскольку передача с устройства на устройство действительно включает две передачи с неопределенной степенью параллелизма, вы получите неточные "скорости" чтения и записи отдельных устройств.
В операционных системах * nix операции записи, использующие /dev/zero, и операции чтения, использующие /dev/null, обеспечивают приблизительное общее число скоростей передачи.

1

Первым узким местом будет либо ограничение носителя (SATA/USB/FireWire), либо, как вы уже сказали, скорость чтения исходного диска.

Копирование файлов с одного диска на другой не использует очень высокую скорость чтения и записи ОЗУ, поскольку в буфере обмена хранится только информация о расположении файлов, а не сами файлы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .