Что делает процессор, когда я копирую данные с одного USB-диска на другой?

21

Все ли данные, которые я копирую, проходят через это или есть другой, более прямой путь?

Феликс Домбек
источник
Процессор активен и управляется через USB, но не через firewire (так как у этой карты есть собственный процессор)
tobylane

Ответы:

31

Хитрый! Данные на самом деле не проходят через процессор как таковой.

Данные и критические 1 и 0 проходят через набор микросхем или выделенные микросхемы ввода-вывода и память, однако при копировании файлов команда, выполняющая копирование, запускается процессором.

Представьте себе объект перед вами (данные), ваши руки (чипсет / чип ввода / вывода) и ваш мозг (процессор). Вы на самом деле не используете свой мозг для перемещения объекта, ваш мозг запускает «команду» на руки, чтобы переместить объект.

Уильям Хилсум
источник
1
Хорошая метафора, @Wil.
Shinrai
4
@Shinrai - хотя, это не выдерживает, если они экстрасенс! Я хотел бы переместить объект с моим мозгом!
Уильям Хилсум
Разве DMA или что-то не обходили процессор?
о0 '.
2
DMA помогает, давая ЦП interruptвсякий раз, когда команда ввода-вывода block device, такая как USB-накопитель, завершена . Затем процессор продолжает выполнять копирование. Фактически, то, что делает процессор, - это запуск ioctlкода ядра, который взаимодействует с драйверами устройств для копирования chunks(действительного имени) DMA. Процессор также обрабатывает asynchronous IOи sync IOнемного отличается от перспективы исполнения кода ядра.
Хенрик
1
Я делаю это не для представителя, просто люблю этот сайт и помогаю людям! Я не думаю, что это лучше, как два предложения, но, надеюсь, теперь это лучше ... если вам это не нравится, я думаю, что есть что-то новое для более низких членов, попробуйте отредактировать это самостоятельно!
Уильям Хилсум
5

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

Прочитанные данные будут (обычно) считываться в основную память порциями, но на самом деле не проходят через процессор.

ChrisF
источник
4

На мэйнфрейме с интеллектуальными каналами процессор просто скажет каналам сделать копию. Очень эффективный и позволяет быстро создавать большие резервные копии с минимальными нагрузками на процессор.

К сожалению, у нас нет интеллектуальных каналов, поэтому ЦП оказывается в цикле, похожем на:

для каждого файла (dev1); делать
   CreateFile (DEV2);
   copyfilecontent (dev1, dev2);
конец;

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

BillThor
источник
Что такое интеллектуальные каналы? Не могли бы вы показать для этого фрагмент псевдокода?
Хенрик
Интеллектуальные каналы - это аппаратные устройства, которые обрабатывают ввод / вывод на мэйнфреймах. Я ожидаю, что они являются ограниченными по функциональности микрокомпьютерами сами по себе. Понятия не имею, как выглядит их код. Они были очень важны, когда мэйнфреймы обрабатывали сотни онлайн-пользователей в 8 МБ памяти. Я считаю, что компьютеры Commodore имели второй процессор в своих дисковых системах. Они могли иметь схожую функциональность.
BillThor