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デバイスと主記憶の間で直接データ転送する方式はどれか。
- ポーリング
- 割込み駆動
- DMA
- チャネル制御
こたえを見る
正解: 3. DMA
DMA (Direct Memory Access) は専用コントローラがCPUを介さず直接データ転送する方式。CPUは並行して別の処理ができるためスループットが上がります。