割込み処理とDMA

I/O効率化の中核技術である割込みとDMAを学びます。

CPUがI/O装置と効率的にやり取りする仕組み「割込み」と「DMA」。性能評価の重要概念です。

日野 こむぎ(普段) 日野 こむぎ

CPUが文字を表示してる間って、プログラムは止まっちゃってるの?

藤森 さやか 先生(笑顔) 藤森 さやか 先生

昔はそうだったのよ。
でも今は割込みという仕組みで効率化されているの。

青木 澪(普段) 青木 澪

割込みは大きく2種類ありますね。
外部割込み (I/O・タイマ等) と内部割込み (ゼロ除算・無効命令等) で、優先度をつけて処理するんです。

桃井 すみれ(普段) 桃井 すみれ

DMAって何ですかぁ〜?

青木 澪(普段) 青木 澪

DMA (Direct Memory Access) は、CPUを介さずにデバイスとメモリ間でデータを転送する仕組みですよ。
CPUは別の処理ができるので、全体のスループットが上がるんです。

藤森 さやか 先生(普段) 藤森 さやか 先生

割込み駆動とDMAの違いを整理しましょうか。
割込み駆動はCPUが実際にデータを移動するの (1バイトごとに割込み)。
DMAは専用コントローラがブロック単位で転送して、転送完了時に割込みでCPUに通知するのよ。

青木 澪(普段) 青木 澪

補足すると、チャネル制御方式はさらに発展形で、I/O専用プロセッサ (チャネル) がI/Oを完全に管理するんです。
メインフレームで採用された方式ですね。

確認クイズ

CPUを経由せずに、I/Oデバイスと主記憶の間で直接データ転送する方式はどれか。

  1. ポーリング
  2. 割込み駆動
  3. DMA
  4. チャネル制御
こたえを見る

正解: 3. DMA

DMA (Direct Memory Access) は専用コントローラがCPUを介さず直接データ転送する方式。CPUは並行して別の処理ができるためスループットが上がります。

🔖 この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。