単一のメモリインターフェイスがある場合、要求間で調停するハードウェアがあります。通常、プロセッサはI / Oを枯渇させることなくI / Oよりも優先されますが、I / Oが常に優先順位を持っている場合でも、I / Oは帯域幅の要求が低く、断続的になる傾向があるため、プロセッサはメモリにアクセスする機会があります。
さらに、通常、メモリには複数のインターフェイスがあります。通常、高性能プロセッサにはキャッシュがあります(DMAがコヒーレントでない場合、キャッシュをスヌーピングする必要さえありません。スヌーピングを行っても、キャッシュとメインメモリの帯域幅の違いにより、または(DMAがL3キャッシュ)L3キャッシュとL1キャッシュの間)、メモリにアクセスするための個別のインターフェースを提供します。マイクロコントローラーは、多くの場合、別のフラッシュベースのメモリから命令にアクセスし、DMAの実行中にオンチップメモリへのフェッチを続行できます。また、多くの場合、独立したインターフェイスでメモリを密結合します(DMAの競合を避けるために多くのデータアクセスを許可します)。
メモリインターフェイスが1つでも、ピーク帯域幅は通常、通常使用される帯域幅よりも高くなります。(命令フェッチの場合、メモリからの平均フェッチロードよりも幅の広い小さなバッファでさえ、別のエージェントがメモリインターフェイスを使用しているときにバッファから命令フェッチを行うことができ、分岐しないコードの傾向を利用します。)
また、プロセッサはデータにアクセスするため、単一のメモリインターフェイスがある場合は、データアクセスと命令アクセスの間に調停のメカニズムが必要であることに注意してください。
プロセッサ(単一のメモリインターフェイス)がI / Oデバイスバッファからメインメモリへのコピーの実装を強制された場合、コピーを実行するために命令をフェッチする必要があります。これは、メモリ間メモリ操作を使用するISAでも、1ワードあたり2回のメモリアクセスが転送されることを意味します(ポストインクリメントメモリアドレス指定が提供されない場合、ロードストアISAは3回以上のメモリアクセスを必要とします)。これは、古いシステムではメインメモリと同じインターフェイスを共有する可能性のあるI / Oアクセスに追加されます。DMAエンジンはメモリ内の命令にアクセスしないため、このオーバーヘッドを回避します。