/proc/dmaでLinuxのDMAチャンネル情報を確認する方法|Direct Memory Accessの仕組みも解説


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, デバイス管理 > /proc/dmaでLinuxのDMAチャンネル情報を確認する方法|Direct Memory Accessの仕組みも解説
サーバーのハードウェア管理をしていると、DMAという用語に出くわすことがあります。現代のサーバーではあまり意識することがなくなりましたが、Linuxサーバー管理の基礎知識として理解しておくと役立ちます。

【この記事でわかること】

・cat /proc/dmaでシステムのDMAチャンネルの使用状況を確認できる
・DMAはCPUを介さずにメモリとデバイス間でデータ転送を行う仕組み
・現代のPCIe接続デバイスでは/proc/dmaにほぼ表示されなくなっている
・DMAチャンネルの確認はISAバス時代のレガシーハードウェア管理で必要だった

DMA(Direct Memory Access)とは

DMA(ダイレクトメモリアクセス)は、CPUを介さずにメモリとデバイス(ハードディスク・サウンドカードなど)の間でデータを直接転送する仕組みです。

CPUを経由しないことで、CPU負荷を下げながら高速なデータ転送が可能になります。DMAコントローラーが転送要求を受け付け、転送完了後にCPUに割り込みで通知する仕組みになっています。

/proc/dmaファイルとは

/proc/dma は、現在システムで使用されているDMAチャンネルの割り当て情報を表示する仮想ファイルです。morecat コマンドで内容を参照できます。

基本的な使い方

DMAチャンネル情報を表示する

[pakira@Tiger ~]$ more /proc/dma 4: cascade

上記の例では、DMAチャンネル4番が「cascade」(複数のDMAコントローラーを連結するための特殊な用途)として使用されています。

システムによっては以下のような出力になることもあります。

[root@server ~]# cat /proc/dma 1: Sound Blaster8 2: floppy 3: Sound Blaster16 4: cascade

DMAチャンネルの標準的な割り当て

ISAバス時代のDMAチャンネルの標準的な割り当ては以下のとおりです。

DMA 0:未使用(予約)
DMA 1:サウンドカードなど
DMA 2:フロッピーディスクコントローラー
DMA 3:利用可能(ECP パラレルポートなど)
DMA 4:カスケード(2つのDMAコントローラーを接続するための予約)
DMA 5~7:16ビットDMA用(ISA拡張スロット向け)

現代のシステムにおけるDMA

現代のLinuxサーバーでPCIeやUSB接続のデバイスを使用している場合、/proc/dma にはほとんど何も表示されないか「4: cascade」のみが表示されることがほとんどです。

これは、PCIeデバイスがISAのDMAチャンネルを使用しないためです。現代のデバイスは「バスマスタリング」や「DMA Remapping」などより高度な仕組みでCPUを介さずにデータ転送を行っています。

本記事のまとめ

cat /proc/dma:システムで使用中のDMAチャンネルを確認
・DMAはCPUを介さないデータ転送の仕組み(CPU負荷軽減に貢献)
・DMAチャンネル4番の「cascade」は特殊用途で常に予約されている
・現代のPCIeデバイスはISA DMAを使わないため、/proc/dma はほぼ空

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

Linuxサーバーのハードウェア管理を体系的に学びたい方へ

DMAの仕組みを含むLinuxのハードウェア基礎知識は、トラブルシュートやサーバー増設作業の現場で役立ちます。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。