私は、コンピュータ内のすべてのデータがプロセッサを通過する必要があるのか、それともデータが通過するバイパス経路(DMAなど)があるのかと疑問に思いました
入出力(I / O)は、ほとんどの場合、周辺機器とメモリの間です。周辺機器から周辺機器への転送は、特殊なハードウェアを必要とし、エラー検出/回復をより困難にするため、非常に珍しいものです。見る ドライブ間のファイル転送がRAMを使用する理由
入出力は、プログラム入出力(PIO)と呼ばれるCPUによって実行することができ、あるいはデバイスドライバ(SW)は、転送タスクをDMAコントローラまたはバスマスタ(たとえばSCSIホストアダプタ)に委任することができる。見る https://stackoverflow.com/questions/25318145/dma-vs-interrupt-driven-i-o/38165400#38165400
- ファイルのダウンロード中:ファイルをダウンロードするとき、ネットワークアダプタが受信したデータは直接(RAM経由で)HDDに送られるのですか、それともプロセッサで処理される必要がありますか?
ネットワークアダプタによって受信されたイーサネットフレームは通常、(NICによって)メインメモリに格納されます。いくつかの洗練されたイーサネットコントローラは専用のFIFOメモリを持っています。いずれの場合も、ネットワークドライバ(SW)はプロトコルスタック(SW)による処理のために各受信フレームを動的バッファにコピーしなければならない。
ダウンロードを実行するアプリケーションプログラムは、プロトコルスタックがプロトコルフレームを検証して除去した後に(別のメモリバッファ内の)データを読み取る。そのプログラムは、ファイルシステムのファイルにデータを書き込むことによってダウンロードの後半を実行できます。
低レベルのファイルシステム操作の説明については、 同じ量のデータを多数の別々のファイルに分散すると、コピーに時間がかかるのはなぜですか?
低レベルのディスク操作については、を参照してください。 ディスクの読み取りまたは書き込みが行われると、データはどこに移動しますか
- ファイルを開くとき:たとえば、オーディオファイルを開いているとします。それでは、オーディオファイルはプロセッサによって処理される必要がありますか、それともそのデータはオーディオデバイスに直接中継されますか?
オーディオファイルは、オーディオデバイス用のメモリに読み込む必要があります。転送を実行するソフトウェアは通常、このデータを「処理」する必要はありません。
- ゲームをしている間:グラフィックプロセッサは直接RAM(またはHDD)にアクセスしますか。中央処理装置(CPU)からの指示
GPUはDMAコントローラと同じようにメインメモリにアクセスできますが、メモリの調停ではCPUよりも優先順位が低くなります。
GPUは、HDDまたはフレームバッファ以外の周辺機器へのアクセスまたは制御能力を持たないであろう。
GPUがそのレジスタまたはメモリブロックを介してそのコマンドを取得するかどうかは、実装特有であろう。
使い方に気をつけて 「CPUは…」 。
実行している命令は特定のタスクであるため、CPUは「何かをする」だけです。これらの命令はプログラムの一部です。
そのプログラムとそのタスクを特定することは、単に 「CPUは…」 。