エンベデッドシステムスペシャリスト 2010年 午前2 問03
問題文
DMAの説明として、適切なものはどれか。
選択肢
ア:CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式である。
イ:主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式である。
ウ:専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式である。(正解)
エ:複数の命令の実行ステージを部分的にオーバラップさせて同時に処理し、全体としての処理時間を短くする方式である。
🔒 解説は解答すると表示されます
DMA転送方式【午前2解説】
正解の理由
DMA(Direct Memory Access)は、CPUを介さずに、専用の制御回路が入出力装置と主記憶の間でデータを転送する方式です。したがって、専用の制御回路がデータ転送を行うと説明するウが適切です。
CPUは転送の開始時に、転送元・転送先やデータ量などをDMAコントローラに設定します。転送中はDMAコントローラが処理を進め、完了後にCPUへ通知します。CPUがデータを1バイトずつ運ぶ必要がないため、CPUの負荷を軽減できます。
解法ステップ
- DMAの正式名称「Direct Memory Access(直接メモリアクセス)」を思い出します。
- 「CPUがデータ転送を行う」のではなく、「専用の制御回路が入出力装置と主記憶の間で転送する」方式だと確認します。
- この説明に合うウを選びます。
選択肢別の誤答解説
- ア:CPUが磁気ディスクと主記憶の間のデータを受け渡す方式です。CPUが転送処理を担う説明であり、DMAの特徴とは異なります。
- イ:入出力装置のレジスタを、主記憶とは別の入出力専用アドレス空間に割り当てる方式です。これは入出力アドレス空間の方式に関する説明で、DMAそのものではありません。
- ウ:専用の制御回路が入出力装置と主記憶などの間でデータを転送する方式です。DMAの説明として適切です。
- エ:複数の命令の実行段階を重ねて処理する方式です。これはパイプライン処理の説明です。
よくある誤解
- DMAではCPUがまったく関与しない:CPUは転送条件の設定や完了通知の受け取りなどを行います。転送中のデータの受け渡しを専用回路が担う、という意味です。
- DMAはディスク専用の方式である:ディスクに限らず、入出力装置と主記憶の間でデータを転送する際に利用できます。
- 「アドレス空間」や「命令の同時処理」の説明もDMAに関係する:これらはそれぞれ入出力アドレス空間やパイプライン処理に関する説明で、DMAとは区別します。
補足コラム
DMAを使わず、CPUが入出力装置の状態を確認しながらデータを転送する方式では、転送のたびにCPUの処理時間が必要になります。DMAでは、CPUが転送条件を設定した後、専用の制御回路が転送を進めます。そのため、大量のデータを転送するときにCPUの負荷を抑えられます。
FAQ
DMAでは、転送中もCPUは別の処理をできますか?
原則として、CPUは転送処理そのものを専用回路に任せ、別の処理を進められます。ただし、DMAによるメモリアクセスとCPUによるメモリアクセスが競合すると、CPUの処理が一時的に待たされる場合があります。
原則として、CPUは転送処理そのものを専用回路に任せ、別の処理を進められます。ただし、DMAによるメモリアクセスとCPUによるメモリアクセスが競合すると、CPUの処理が一時的に待たされる場合があります。
DMA転送が終わったことは、どのようにCPUへ伝わりますか?
一般には、DMAコントローラが転送完了後に割込みを発生させ、CPUへ知らせます。
一般には、DMAコントローラが転送完了後に割込みを発生させ、CPUへ知らせます。
関連キーワード: DMA、DMAコントローラ、主記憶、入出力装置、割込み、パイプライン処理

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

