한 USB 디스크에서 다른 USB 디스크로 작업을 복사 할 때 프로세서의 기능은 무엇입니까?


21

복사 한 모든 데이터가 통과합니까 아니면 더 직접적인 방법이 있습니까?


프로세서는 활성 상태이며 USB로 제어되지만 파이어 와이어는 아닙니다 (카드에 자체 CPU가 있음)
tobylane

답변:


31

까다로운 하나! 데이터는 실제로 CPU 자체를 거치지 않습니다.

데이터와 중요 1과 0은 칩셋 또는 전용 I / O 칩과 메모리를 거치지 만 파일을 복사 할 때는 복사 명령이 프로세서에 의해 실행됩니다.

당신 (데이터), 팔 (칩셋 / I / O 칩), 뇌 (CPU) 앞에 물체가 있다고 상상해보십시오. 당신은 실제로 뇌를 사용하여 물체를 움직이지 않으며, 뇌는 "명령"을 팔로 움직여 물체를 움직입니다.


1
좋은 은유, @Wil.
Shinrai

4
@ Shinrai-비록 그들이 심령이라면 그것은 일어나지 않습니다! 나는 뇌로 물건을 옮기고 싶다!
윌리엄 힐섬

DMA 또는 무언가가 CPU를 우회하지 않았습니까?
o0 '.

2
DMA 는 USB 스틱과 같은 interruptIO 명령 block device완료 될 때마다 CPU에 CPU를 제공하여 도움을줍니다 . 그런 다음 CPU는 복사를 계속 실행합니다. 실제로 CPU가하는 일은 커널 ioctl드라이버를 실행하는 커널 코드를 실행 하여 장치 드라이버와 인터페이스하여 chunks(실제 이름) 을 복사 하는 것 DMA입니다. CPU는 또한 커널 코드 실행 관점 asynchronous IO과 처리 하고 sync IO약간 다릅니다.
Henrik

1
나는 담당자를 위해 그것을하지 않고,이 사이트를 좋아하고 사람들을 돕는 것입니다! 나는 그것이 두 문장으로 더 낫다고 생각하지 않지만 지금은 더 나아지기를 바랍니다 .... 당신이 그것을 좋아하지 않는다면, 나는 낮은 멤버를위한 새로운 것이 있다고 생각합니다. 직접 편집하십시오!
William Hilsum 2012

5

CPU는 소스 파일을 읽은 다음 대상 파일을 쓰는 프로그램을 실행해야합니다.

읽은 데이터는 (주로) 청크 단위로 주 메모리로 읽히지 만 실제로 CPU를 통하지는 않습니다.


4

지능형 채널이있는 메인 프레임에서 CPU는 채널에 복사를 수행하도록 지시합니다. 매우 효율적이며 CPU 오버 헤드가 거의없는 빠른 대용량 백업이 가능합니다.

불행히도, 인텔리전트 채널이 없으므로 CPU는 다음과 비슷한 루프로 끝납니다.

각 파일마다 (dev1); 해야 할 것
   createfile (dev2);
   copyfilecontent (dev1, dev2);
종료;

동일한 디렉토리에 많은 작은 파일, 특히 많은 파일이 없으면 CPU 오버 헤드는 그리 크지 않습니다. 파일 작성 조작은 일반적으로 가장 높은 오버 헤드를 갖습니다. 디스크 대 디스크 복사는 각 디스크를 기존 파일로 취급합니다.


지능형 채널이란 무엇입니까? 그에 대한 의사 코드 스 니펫을 보여 주시겠습니까?
Henrik

인텔리전트 채널은 메인 프레임에서 I / O를 처리하는 하드웨어 장치입니다. 나는 그들 자신의 기능이 제한적인 마이크로 컴퓨터라고 생각한다. 그들의 코드가 어떻게 생겼는지 모르겠다. 메인 프레임이 8MB의 메모리에서 100 명의 온라인 사용자를 처리 할 때 매우 중요했습니다. Commodore 컴퓨터는 디스크 시스템에 두 번째 CPU를 가지고 있다고 생각합니다. 그것들은 비슷한 기능을 가지고 있었을 것입니다.
BillThor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.