IT用語集 › ハードウェア › DMAディスクリプタ

DMAディスクリプタ

ハードウェア Svenska → 更新: 2026-11-04

1回の転送の転送元、転送先、長さ、次のディスクリプタの場所を記したメモリ上の小さな構造体。これでDMAコントローラは連鎖全体を自力で処理できる。

単純なDMAチャネルはレジスタ(アドレス、カウント、開始)で設定する。バッファが1つならそれで足りる。複数のバッファや、メモリ上に散らばったデータには、RAM上にディスクリプタを並べて先頭アドレスだけをコントローラに渡す。コントローラはそれを読んで転送し、次のポインタをたどって先へ進む。スキャッタギャザは実際にはこうして動く。ディスクリプタをリング状につなげば、好きな数のバッファを持つサーキュラDMAと同じ効果が得られる。

この方式を最も突き詰めたのがネットワークカードである。ディスクリプタリングの各エントリには、ドライバとハードウェアのどちらのものかを示すオーナーシップビットがある。古典的なバグはキャッシュに潜む。CPUが書いたディスクリプタがL1に残ったままで、コントローラは古いRAMを読む。ハードウェア故障のように見えるが、まずそうではない。原因はキャッシュメンテナンスだ。

← 用語集に戻る