

問題
主記憶に記憶されたプログラムを,CPUが順に読み出しながら実行する方式はどれか。
ア:DMA制御方式 イ:アドレス指定方式
ウ:仮想記憶方式 エ:プログラム格納方式
基本情報技術者平成26年春期 午前問9
問題
DMAの説明として,適切なものはどれか。
- ア:CPUが磁気ディスクと主記憶とのデータの受渡しを行う転送方式である。
- イ:主記憶の入出力専用アドレス空間に入出力装置のレジスタを割り当てる方式である。
- ウ:専用の制御回路が入出力装置や主記憶などの間のデータ転送を行う方式である。
- エ:複数の命令の実行ステージを部分的にオーバラップさせて同時に処理し,全体としての処理時間を短くする方式である。
応用情報技術者平成25年秋期 午前問12
基本情報技術者試験や応用情報技術者試験で出題される「DMA」、聞きなれない言葉のため難しく感じる問題ですが、「DMA」の動きを理解してしまえば、そこまで難しい問題ではありません。
本記事では「DMA」について分かりやすく図解で解説しています。
本記事で学べること
- プログラム制御方式について理解する
- DMAについて理解する
- 情報処理試験の過去問の解き方を学ぶ
目次
プログラム制御方式
プログラム制御方式(または直接制御方式)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUが直接制御する方式のことです。
コンピュータは様々な機器とデータのやり取りをします。プログラム制御方式では、この様々な機器とのデータのやり取りをCPUが直接制御します。

例えば、上記図のようにハードディスクから読み込んだデータを主記憶装置に書き込む必要がある場合、プログラム制御方式ではCPUが直接ハードディスクからデータを読み込み、CPUのレジスタを経由して主記憶装置に書き込みます。
スポンサーリンク
このようにプログラム制御方式では、周辺機器と主記憶装置間のデータ転送をCPUが直接制御します。そのため、CPUへの負担が大きく処理効率はよくありません。(低速な入出力処理を待っている間、CPUは他の処理ができない)
このプログラム制御方式の課題を解消したのがDMA(Direct Memory Access:ダイレクトメモリアクセス)という制御方式です。

この方式のことを「プログラム格納方式(プログラム内蔵方式)」といいます。
DMA(ダイレクトメモリアクセス)
DMA(Direct Memory Access)とは、入出力装置から主記憶装置(メインメモリ)へのデータ転送をCPUを介さず直接行う方式のことです。(Direct Memory Access(ダイレクトメモリアクセス)の名前の通り、CPUを介さずにメモリに直接アクセスする)
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の説明ではないので不正解。
関連記事
基本情報技術者試験おすすめの参考書・問題集
いちばんやさしい 基本情報技術者 | 『基本情報技術者試験』試験に、短期間で一発合格するための試験対策本。ITの知識がまったくない、未経験者やでもスラスラと学習を進められるよう、丁寧に解説。 |
かやのき先生の基本情報技術者教室 | 基本情報技術者をめざす方のためのやさしいオールインワンタイプの参考書&問題集。イラストや豊富な図解・例え話を駆使して理解しやすく・記憶に残りやすいように説明。 |
基本情報技術者 パーフェクトラーニング過去問題集 | 科目A・Bともに万全の対策ができる、定番の過去問題集!科目A・科目Bの両方について万全の対策ができる。 |
キタミ式イラストIT塾 基本情報技術者 | すべての解説をイラストベースで行っているため,とてもわかりやすい解説本。いちばん最初に読む基本情報技術者試験関連の書籍を探している人におすすめ! |
出るとこだけ!基本情報技術者[科目B] | 基本情報技術者【科目B】対策の定番書!前提知識+解き方+試験問題を掲載。効率よく学習できる。 |
基本情報技術者 合格教本 | 出題範囲を体系的にきちんと理解しながら学習したい人におすすめ!基本情報技術者試験の定番テキストの改訂版。 |
基本情報技術者 超効率の教科書+よく出る問題集 | 動画でスムーズに学習スタート、テキストでしっかり理解度を深める!よく出る問題を反復学習することで、合格に直結するチカラが身に付く! |