如果只有一个内存接口,则将有硬件在请求之间进行仲裁。通常,处理器会比I / O拥有更高的优先级,而不会出现I / O匮乏的情况,但是即使I / O始终具有优先级,处理器也会有一些访问内存的机会,因为I / O倾向于具有较低的带宽需求并且是间歇性的。
此外,通常有不止一个内存接口。更高性能的处理器通常具有缓存(如果DMA不统一,则甚至不必监听缓存;即使进行监听,由于缓存和主内存之间的带宽差异或(当DMA传输到L3时,开销通常也将很小) L3缓存和L1缓存之间),提供一个单独的接口来访问内存。微控制器通常会从单独的基于闪存的存储器访问指令,从而允许在DMA到片上存储器的过程中进行取回操作,并且通常将存储器与独立接口紧密耦合(允许进行多次数据访问以避免DMA冲突)。
即使使用单个内存接口,峰值带宽通常也将高于通常使用的带宽。(对于指令提取,即使是一个较小的缓冲区,具有比从内存中读取的平均装载要宽的缓冲区,也将允许在另一个代理使用内存接口时利用缓冲区不分支的趋势从缓冲区中读取指令。)
还要注意,因为处理器访问数据,所以如果只有一个内存接口,则必须存在一种在数据访问和指令访问之间进行仲裁的机制。
如果处理器(具有单个内存接口)被迫实施从I / O设备缓冲区到主内存的复制,则它还必须获取指令以执行复制。这可能意味着即使在具有内存存储操作的ISA中,每个字也传输两个内存访问(如果不提供后增量内存寻址,则负载存储ISA可能需要三个或三个以上的内存访问);这是对I / O访问的补充,在旧系统中,I / O访问可能与主内存共享同一接口。DMA引擎不访问内存中的指令,因此避免了这种开销。