web-dev-qa-db-ja.com

CPU、RAM、およびハードディスクドライブを理解する

私は現在、コンピューターがどのように機能するか、具体的にはCPU、RAM、ハードディスクドライブが同時にどのように機能するかについて読んでいます。

私が読んだことによると、CPUはRAMからデータを取得するためにいわゆるコントロールユニットを使用しています。そして、データを処理します。

ただし、CPUがRAMからデータを取得する前に、データをハードドライブからRAMにロードする必要があります。これは、RAMへのアクセスがハードへのアクセスよりも高速であるためです)ドライブ。

私の質問は:CPUはハードドライブから直接データを取得できますか?

ハードディスクドライブはどのようにデータを転送またはRAMにロードしますか? CPUがRAMコントロールユニットを使用しているのと同じように?

I/Oディスクについて少し読みました。 I/Oディスクはこれと関係がありますか?

5
harianja

CPUはハードドライブから直接データを取得できますか?

いいえ。CPU(より正確には、CPUで実行されているソフトウェア)は、ハードディスクからの転送を開始します(たとえば、SATA READ DMAコマンド)をRAM内の指定された場所に送信し、後で転送が完了すると(非同期に)通知されます。

ウィキペディアが説明しているように [〜#〜] dma [〜#〜]ダイレクトメモリアクセス(DMA)は、特定のハードウェアサブシステムがアクセスできるようにするコンピューター化されたシステムの機能です中央処理装置(CPU)から独立したメインシステムメモリ。

大量のデータを保存するために、CPUはそのキャッシュとシステムRAMと連携します。ハードディスクなどの周辺機器には直接アクセスしません。

ハードディスクドライブはどのようにデータを転送したり、データをRAMにロードしたりしますか?

上記のように、特定のセクターまたはセクターの範囲をハードディスクからRAMに転送するようにハードディスクに要求を発行することにより、最近では事実上常にDMAを使用しています。最近のストレージデバイスは [〜#〜] lba [〜#〜] アドレス指定を使用しますが、これは主に実装の詳細です。

DMAを使用することで、転送の実行中にCPUが他のタスクを自由に処理できるようになり、システム全体のパフォーマンスと応答性が劇的に向上します。

このすべてにおいて、CPUはRAMから供給されたコードのみを実行します。

7
a CVn