ファイルのダウンロード/処理中のコンピューター内部のデータ経路は何ですか


0

私は、コンピュータ内のすべてのデータがプロセッサを通過する必要があるのか​​、それともバイパスルートがあるのか​​(不思議に思った) DMA データが通過する)

次のような場合を考えてください。

  1. ファイルをダウンロード中 :ファイルをダウンロードするとき、ネットワークアダプタが受信したデータは直接(RAM経由で)HDDに送られるのですか、それともプロセッサで処理される必要がありますか?
  2. ファイルを開くとき たとえば、オーディオファイルを開いているとします。それでは、オーディオファイルはプロセッサによって処理される必要がありますか、それともそのデータはオーディオデバイスに直接中継されますか?
  3. ゲームをしながら :グラフィックプロセッサが直接RAM(またはHDD)にアクセスするか、データを取得する必要がある中央処理装置(CPU)からの指示

上記のアクションを実行したときにルートデータにかかる時間を知りたい

回答:


1

私は、コンピュータ内のすべてのデータがプロセッサを通過する必要があるのか​​、それともデータが通過するバイパス経路(DMAなど)があるのか​​と疑問に思いました

入出力(I / O)は、ほとんどの場合、周辺機器とメモリの間です。周辺機器から周辺機器への転送は、特殊なハードウェアを必要とし、エラー検出/回復をより困難にするため、非常に珍しいものです。見る ドライブ間のファイル転送がRAMを使用する理由

入出力は、プログラム入出力(PIO)と呼ばれるCPUによって実行することができ、あるいはデバイスドライバ(SW)は、転送タスクをDMAコントローラまたはバスマスタ(たとえばSCSIホストアダプタ)に委任することができる。見る https://stackoverflow.com/questions/25318145/dma-vs-interrupt-driven-i-o/38165400#38165400

  1. ファイルのダウンロード中:ファイルをダウンロードするとき、ネットワークアダプタが受信したデータは直接(RAM経由で)HDDに送られるのですか、それともプロセッサで処理される必要がありますか?

ネットワークアダプタによって受信されたイーサネットフレームは通常、(NICによって)メインメモリに格納されます。いくつかの洗練されたイーサネットコントローラは専用のFIFOメモリを持っています。いずれの場合も、ネットワークドライバ(SW)はプロトコルスタック(SW)による処理のために各受信フレームを動的バッファにコピーしなければならない。

ダウンロードを実行するアプリケーションプログラムは、プロトコルスタックがプロトコルフレームを検証して除去した後に(別のメモリバッファ内の)データを読み取る。そのプログラムは、ファイルシステムのファイルにデータを書き込むことによってダウンロードの後半を実行できます。
低レベルのファイルシステム操作の説明については、 同じ量のデータを多数の別々のファイルに分散すると、コピーに時間がかかるのはなぜですか?
低レベルのディスク操作については、を参照してください。 ディスクの読み取りまたは書き込みが行われると、データはどこに移動しますか

  1. ファイルを開くとき:たとえば、オーディオファイルを開いているとします。それでは、オーディオファイルはプロセッサによって処理される必要がありますか、それともそのデータはオーディオデバイスに直接中継されますか?

オーディオファイルは、オーディオデバイス用のメモリに読み込む必要があります。転送を実行するソフトウェアは通常、このデータを「処理」する必要はありません。

  1. ゲームをしている間:グラフィックプロセッサは直接RAM(またはHDD)にアクセスしますか。中央処理装置(CPU)からの指示

GPUはDMAコントローラと同じようにメインメモリにアクセスできますが、メモリの調停ではCPUよりも優先順位が低くなります。
GPUは、HDDまたはフレームバッファ以外の周辺機器へのアクセスまたは制御能力を持たないであろう。
GPUがそのレジスタまたはメモリブロックを介してそのコマンドを取得するかどうかは、実装特有であろう。


使い方に気をつけて 「CPUは…」
実行している命令は特定のタスクであるため、CPUは「何かをする」だけです。これらの命令はプログラムの一部です。
そのプログラムとそのタスクを特定することは、単に 「CPUは…」


1

ケース1と2の場合、データはCPUを経由します。次の点に注意してください。クレーンがクレーンを経由しないと、クレーンはクレーンをトラックの上または外に移動できません。 CPUが何かを書くために、それは途中でデータを最初に読むでしょう。

ケース3は少し異なります。この場合、GPUはジョブ自体と同じようにそれを読み取ることができますが、データがGPUが到達可能な場所に存在することを保証するという役割をCPUが果たした後に限ります。テクスチャメモリに。 GPUは直接ディスクにアクセスしません。


そうですか?確実にファイルをダウンロードする場合はネットワークポートに行きます - > (おそらくネットワークチップキャッシュ) - > CPUキャッシュ - > RAM - > hdキャッシュ - > hd。
cjb110

すべてのデータはCPUを通過しますか。 HDDキャッシュ?それとも頻繁なもの?
Deepak Chaudhary
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.