Co robi procesor, gdy kopiuję rzeczy z jednego dysku USB na inny?

21

Czy przechodzą przez nie wszystkie kopiowane dane, czy istnieje inny, bardziej bezpośredni sposób?

Felix Dombek
źródło
Procesor jest aktywny i kontroluje za pomocą USB, ale nie za pomocą firewire (ponieważ ta karta ma własną jednostkę
centralną

Odpowiedzi:

31

Podstępny! Dane tak naprawdę nie przechodzą przez procesor.

Dane oraz krytyczne jedynki i jedynki przechodzą przez mikroukład lub dedykowane układy I / O i pamięć, jednak podczas kopiowania plików procesor uruchamia polecenie wykonania kopii.

Wyobraź sobie, że masz przed sobą przedmiot (dane), twoje ramiona (chipset / układ we / wy) i mózg (procesor). W rzeczywistości nie używasz mózgu do poruszania obiektem, mózg uruchamia „rozkaz” na twoich ramionach, aby poruszać przedmiotem.

William Hilsum
źródło
1
Ładna metafora, @Wil.
Shinrai
4
@Shinrai - chociaż nie wstaje, jeśli są medium! Bardzo chciałbym poruszyć obiekt moim mózgiem!
William Hilsum,
Czy DMA lub coś nie ominęło procesora?
o0 ”.
2
DMA pomaga, podając procesorowi za interruptkażdym razem, gdy polecenie IO dla block device, na przykład pamięci USB, zostanie zakończone . Następnie procesor kontynuuje kopiowanie. W rzeczywistości procesor wykonuje ioctlkod jądra, który współpracuje ze sterownikami urządzeń, aby skopiować chunks(rzeczywistą nazwę) DMA. Procesor obsługuje także asynchronous IOi sync IOnieco różni się od perspektywy wykonywania kodu jądra.
Henrik
1
Nie robię tego dla przedstawiciela, po prostu uwielbiam tę stronę i pomagam ludziom! Nie sądzę, żeby było to lepsze jak dwa zdania, ale mam nadzieję, że teraz jest lepiej ... jeśli ci się nie podoba, myślę, że jest coś nowego dla niższych członków, spróbuj edytować go sam!
William Hilsum
5

Procesor musi uruchomić program, który czyta plik źródłowy, a następnie zapisuje plik docelowy.

Dane, które są odczytywane (zwykle) będą wczytywane do głównej pamięci fragmentami, ale tak naprawdę nie przechodzą przez procesor.

ChrisF
źródło
4

Na komputerze mainframe z inteligentnymi kanałami procesor po prostu kazałby kanałom wykonać kopię. Bardzo wydajny i pozwala na szybkie tworzenie dużych kopii zapasowych przy niewielkim obciążeniu procesora.

Niestety nie mamy inteligentnych kanałów, więc procesor kończy się w pętli podobnej do:

dla każdego pliku (dev1); robić
   createfile (dev2);
   copyfilecontent (dev1, dev2);
koniec;

Obciążenie procesora nie jest tak wysokie, chyba że w tym samym katalogu znajduje się wiele małych plików, zwłaszcza wiele plików. Operacja tworzenia pliku zwykle ma najwyższy narzut. Kopiowanie z dysku na dysk traktuj każdy dysk jako wcześniej istniejący plik.

BillThor
źródło
Co to są inteligentne kanały? Czy możesz w tym celu pokazać fragment pseudo-kodu?
Henrik
Kanały inteligentne to urządzenia sprzętowe, które obsługują operacje we / wy na komputerach mainframe. Oczekuję, że same mikrokomputery mają ograniczoną funkcjonalność. Nie mam pojęcia, jak wygląda ich kod. Były one bardzo ważne, gdy komputery mainframe obsłużyły 100 użytkowników online w 8 MB pamięci. Uważam, że komputery Commodore miały w swoich dyskach drugi procesor. Mogą mieć podobną funkcjonalność.
BillThor