あるUSBディスクから別のUSBディスクにコピーするとき、プロセッサは何をしますか?


21

コピーしたすべてのデータがそれを通過するのですか、それとも別のより直接的な方法がありますか


プロセッサはアクティブで、USBで制御されていますが、Firewireでは制御されていません(そのカードには独自のCPUがあるため)
tobylane

回答:


31

トリッキーなもの!データは実際にはCPUを通過しません。

データと重要な1と0は、チップセット、または専用のI / Oチップとメモリを通過しますが、ファイルをコピーする場合、コピーを実行するコマンドはプロセッサによって実行されます。

目の前にオブジェクト(データ)、腕(チップセット/ I / Oチップ)、脳(CPU)があると想像してください。オブジェクトを動かすために実際に脳を使用するのではなく、脳はオブジェクトを動かすために腕への「コマンド」を実行します。


1
素敵な比phor、@ Wil。
-Shinrai

4
@Shinrai-でも、彼らが超能力者なら立ち上がらない!脳でオブジェクトを動かしたい!
ウィリアムヒルサム

DMAまたは何かがCPUをバイパスしませんでしたか?
o0 '。

2
DMAは、USBスティックなどinterruptへのIOコマンドblock device完了するたびにCPUに通知することで役立ちます。その後、CPUはコピーの実行を続けます。実際、CPUが実行しているのはioctlchunks(実際の名前)をコピーするためにデバイスドライバーとインターフェイスするカーネルコードを実行していることですDMA。CPUも処理し、カーネルコード実行パースペクティブasynchronous IOとはsync IO少し異なります。
ヘンリック

1
私は担当者のためにそれをしません、ただこのサイトを愛し、人々を助けます!私はそれが2つの文としては良いとは本当に思っていませんが、うまくいけば今はもっと良いです....あなたがそれを好きではないなら、私は下のメンバーのために新しいものがあると思う、自分で編集してみてください!
ウィリアムヒルサム

5

CPUは、ソースファイルを読み取り、宛先ファイルを書き込むプログラムを実行する必要があります。

読み取られたデータは(通常)チャンクでメインメモリに読み取られますが、実際にはCPUを通過しません。


4

インテリジェントチャネルを備えたメインフレームでは、CPUは単にコピーを実行するようチャネルに指示します。非常に効率的で、CPUオーバーヘッドがほとんどない高速で大規模なバックアップが可能です。

残念ながら、インテリジェントチャネルがないため、CPUは次のようなループになります。

各ファイル(dev1); 行う
   createfile(dev2);
   copyfilecontent(dev1、dev2);
終わり;

CPUオーバーヘッドは、小さなファイル、特に同じディレクトリに多くのファイルがない限り、それほど高くありません。通常、ファイル作成操作のオーバーヘッドは最も高くなります。ディスクからディスクへのコピーは、各ディスクを既存のファイルとして扱うだけです。


インテリジェントチャネルとは何ですか?そのための擬似コードスニペットを見せてもらえますか?
ヘンリック

インテリジェントチャネルは、メインフレームのI / Oを処理するハードウェアデバイスです。私は、それ自体が機能制限されたマイクロコンピューターであることを期待しています。彼らのコードがどのように見えるのか分かりません。メインフレームが8MBのメモリで数百のオンラインユーザーを処理する場合、これらは非常に重要でした。Commodoreコンピューターは、ディスクシステムに2番目のCPUを搭載していたと思います。彼らは同様の機能を持っていた可能性があります。
-BillThor
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.