0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【基本情報】DMAとは何かを整理する

0
Posted at

DMAとは

DMA は Direct Memory Access の略です。

日本語では「直接メモリアクセス」と呼ばれます。

通常、入出力装置と主記憶装置の間でデータを転送するとき、CPU がその処理に関わります。

例えば、磁気ディスクから主記憶へデータを移す場合、CPU が一つ一つデータの受け渡しを行うと、CPU はデータ転送の作業に時間を取られてしまいます。

そこで使われるのが DMA です。

DMA では、CPU が最初に転送の指示を出し、その後の実際のデータ転送は専用の制御回路が行います。

つまり、CPU が毎回データを運ぶのではなく、専用の制御回路が入出力装置と主記憶装置の間のデータ転送を担当します。

試験での覚え方

DMA の説明として重要なキーワードは次の三つです。

専用の制御回路
入出力装置
主記憶装置との間のデータ転送

このような表現が出てきたら、DMA の説明である可能性が高いです。

逆に、

CPU がデータの受渡しを行う

という説明は DMA ではありません。

DMA は、CPU が直接データ転送を行う方式ではなく、専用の制御回路が CPU の代わりにデータ転送を行う方式だからです。

選択肢の考え方

今回の問題では、次のような選択肢がありました。

CPU が磁気ディスクと主記憶のデータ受渡しを行う方式
主記憶のアドレス空間に入出力装置のレジスタを割り当てる方式
専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式
複数の命令の実行ステージを重ねて処理する方式

この中で DMA に該当するのは、

専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式

です。

理由は、DMA の本質が「CPU ではなく、専用の制御回路がデータ転送を行うこと」だからです。

他の選択肢について
CPU がデータを受け渡す方式

これは DMA ではありません。

DMA では、CPU がデータ転送を直接担当するのではなく、専用の制御回路が担当します。

入出力装置のレジスタをアドレス空間に割り当てる方式

これは、入出力装置をどのようにアドレスで扱うかという話です。

DMA の中心は「誰がデータ転送を行うか」です。

そのため、この説明は DMA とは異なります。

命令の実行ステージを重ねる方式

これはパイプライン処理の説明です。

複数の命令の処理段階を少しずつ重ねることで、全体の処理時間を短くする方式です。

DMA とは別の概念です。

まとめ

DMA は次のように覚えるとよいと思いました。

DMA = CPU の負担を減らすために、
専用の制御回路が入出力装置と主記憶装置の間で
データ転送を行う方式

試験では、次のキーワードに注目します。

専用の制御回路
入出力装置
主記憶
データ転送

逆に、

CPU がデータの受渡しを行う

という説明は DMA ではないので注意します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?