解決策
ブロック移動操作が発生すると、従来のDMAコントローラは物理メモリの連続した(セグメント化されていない)ブロックを必要とします。ほとんどのシステムでは、セグメント化されていないメモリをオペレーティングシステムから戻すことは困難です。
MITEおよびNI-STC DMAコントローラは、セグメント化されたメモリを取得し、このメモリに対して「スキャッタギャザ」DMAを使用して移動操作を実行できます。この方法では、DMAコントローラは、すべてのメモリセグメントの開始アドレスを記憶します。移動動作が開始された後、DMAコントローラは、メモリの前のセグメントが完了した後に次のセグメントの開始アドレスを自動的に入力します。この方法を使用すると、オペレーティングシステムからの連続したメモリブロックは必要ありません。これは、DMAが非決定論的なオペレーティングシステムにとって理想的であることを意味します。
DMAの詳細とNI製品でのDMAの使用方法については、以下のリンクを参照してください。