私は現在、コンピューターの仕組み、具体的には CPU、RAM、ハードディスク ドライブが同時にどのように動作するかについて読んでいます。
私が読んだところによると、CPU は制御ユニットと呼ばれるものを使用して RAM からデータを取得します。そして、そのデータを処理します。
しかし、RAM へのアクセスはハード ドライブへのアクセスよりも高速であるため、CPU が RAM からデータを取得する前に、データをハード ドライブから RAM にロードする必要があります。
私の質問は、CPU はハード ドライブから直接データを取得できるかどうかです。
ハードディスクドライブはどのようにしてデータを転送したり、RAM にデータをロードするのでしょうか? CPU が制御ユニットを使用して RAM にデータを転送するのと同じように?
I/O ディスクについて少し読んだことがあります。I/O ディスクはこれに関係があるのでしょうか?
答え1
CPU はハードドライブから直接データを取得できますか?
いいえ。CPU (または、より正確には、CPU 上で実行されているソフトウェア) は、ハードディスクからREAD DMA
RAM 内の指定された場所への転送を開始し (たとえば、SATA コマンドを発行することによって)、転送が完了すると後で (非同期的に) 信号が送信されます。
WikipediaによるとDMA、ダイレクト メモリ アクセス (DMA) は、特定のハードウェア サブシステムが中央処理装置 (CPU) から独立してメイン システム メモリにアクセスできるようにするコンピュータ システムの機能です。
大量のデータを保存する目的で、CPU はキャッシュとシステム RAM を使用します。ハードディスクなどの周辺機器に直接アクセスすることはありません。
ハードディスクドライブはどのようにしてデータを転送したり、RAM にデータをロードしたりするのでしょうか?
前述のように、ハードディスクに特定のセクターまたはセクターの範囲をハードディスクからRAMに転送する要求を発行することで、最近ではほぼ常にDMAが使用されます。現代のストレージデバイスはインド対処しますが、それは主に実装の詳細です。
DMA を使用すると、転送の実行中に CPU が他のタスクを自由に処理できるため、システム全体のパフォーマンスと応答性が大幅に向上します。
このすべてにおいて、CPU は RAM から送られたコードのみを実行します。