基本情報技術者

【基本情報技術者試験】DMA(ダイレクトメモリアクセス)

2021年12月23日

本日のテーマはDMAについてです。
聞いたことがない言葉ですね。

問題

主記憶に記憶されたプログラムを,CPUが順に読み出しながら実行する方式はどれか。

ア:DMA制御方式  イ:アドレス指定方式

ウ:仮想記憶方式  エ:プログラム格納方式

基本情報技術者平成26年春期 午前問9

問題

DMAの説明として,適切なものはどれか。

  • ア:CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式である。
  • イ:主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式である。
  • ウ:専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式である。
  • エ:複数の命令の実行ステージを部分的にオーバラップさせて同時に処理し,全体としての処理時間を短くする方式である。

応用情報技術者平成25年秋期 午前問12

基本情報技術者試験や応用情報技術者試験で出題される「DMA」、聞きなれない言葉のため難しく感じる問題ですが、「DMA」の動きを理解してしまえば、そこまで難しい問題ではありません。

本記事では「DMA」について分かりやすく図解で解説しています。

本記事で学べること

  • プログラム制御方式について理解する
  • DMAについて理解する
  • 情報処理試験の過去問の解き方を学ぶ

プログラム制御方式

プログラム制御方式(または直接制御方式)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUが直接制御する方式のことです。

コンピュータは様々な機器とデータのやり取りをします。プログラム制御方式では、この様々な機器とのデータのやり取りをCPUが直接制御します。

プログラム制御方式のイメージ例

例えば、上記図のようにハードディスクから読み込んだデータを主記憶装置に書き込む必要がある場合、プログラム制御方式ではCPUが直接ハードディスクからデータを読み込み、CPUのレジスタを経由して主記憶装置に書き込みます。

スポンサーリンク

このようにプログラム制御方式では、周辺機器と主記憶装置間のデータ転送をCPUが直接制御します。そのため、CPUへの負担が大きく処理効率はよくありません。(低速な入出力処理を待っている間、CPUは他の処理ができない)

このプログラム制御方式の課題を解消したのがDMA(Direct Memory Access:ダイレクトメモリアクセス)という制御方式です。

コンピュータは処理するプログラムを主記憶装置に格納しておき、そのプログラムをCPUが順に読み出しながら実行します。

この方式のことを「プログラム格納方式(プログラム内蔵方式)」といいます。

DMA(ダイレクトメモリアクセス)

DMA(Direct Memory Access)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUを介さず直接行う方式のことです。(Direct Memory Access(ダイレクトメモリアクセス)の名前の通り、CPUを介さずにメモリに直接アクセスする)

DMAでは、周辺機器と主記憶装置間のデータ転送をDMAコントローラが制御します。

DMAのイメージ例

例えば、上記図のようにハードディスクから読み込んだデータを主記憶装置に書き込む必要がある場合、DMAではCPUから命令を受けたDMAコントローラがハードディスクからデータを読み込み、そのまま主記憶装置に書き込みます。そして、書き込みが終わったら割り込みを発生させてCPUに通知します。

このようにDMAでは、周辺機器と主記憶装置間のデータ転送をCPUの命令を受けたDMAコントローラが制御します。その結果 CPUの負担は減り、CPUはCPUにしかできない作業に専念することができます。

情報処理試験 過去問の解説

基本情報技術者平成26年春期 午前問9

問題

主記憶に記憶されたプログラムを,CPUが順に読み出しながら実行する方式はどれか。

ア:DMA制御方式  イ:アドレス指定方式

ウ:仮想記憶方式  エ:プログラム格納方式

基本情報技術者平成26年春期 午前問9

解答のア~エと設問の内容が一致するものはどれか順番に確認していきます。

ア:DMA制御方式

DMA制御方式は、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUを介さず直接行う方式です。

設問の内容とは一致しないので不正解。

イ:アドレス指定方式

アドレス指定方式はCPUが命令を実行するとき、対象となるデータの在りかを指定する方式です。

設問の内容とは一致しないので不正解。

スポンサーリンク

ウ:仮想記憶方式

仮想記憶方式は、プログラムが必要とするメモリサイズが主記憶装置のサイズを上回った場合、ハードディスクなどの補助記憶装置を仮想アドレス空間として使用することで、主記憶装置のサイズよりも大きなプログラムを実行可能にする方式です。

設問の内容とは一致しないので不正解。

エ:プログラム格納方式

プログラム格納方式は処理するプログラムを主記憶装置に格納し、CPUがそれを順に読み出しながら実行する方式です。

設問の内容と一致するので正解

応用情報技術者平成25年秋期 午前問12

問題

DMAの説明として,適切なものはどれか。

  • ア:CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式である。
  • イ:主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式である。
  • ウ:専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式である。
  • エ:複数の命令の実行ステージを部分的にオーバラップさせて同時に処理し,全体としての処理時間を短くする方式である。

応用情報技術者平成25年秋期 午前問12

DMAの説明として適切なものはどれか解答のア~エを順番に確認していきます。

解答ア

ア:CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式である。

プログラム制御方式(直接制御方式)の説明です。周辺機器と主記憶装置間のデータ転送をCPUが制御するのはプログラム制御方式です。DMAの説明ではないので不正解。

解答イ

イ:主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式である。

メモリマップドI/Oの説明です。DMAの説明ではないので不正解。

解答ウ

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

DMAの説明なので正解。CPUを介さずに専用の制御回路(DMAコントローラ)が周辺機器と主記憶装置間のデータ転送を行う方式はDMAです。

解答エ

エ:複数の命令の実行ステージを部分的にオーバラップさせて同時に処理し,全体としての処理時間を短くする方式である。

パイプライン制御の説明です。DMAの説明ではないので不正解。

helpful