Boo*_*ean 15 hardware processor dma
我读到如果DMA可用,那么处理器可以将磁盘块的长读或写请求路由到DMA并专注于其他工作.但是,在此传输过程中,DMA到内存数据/控制通道正忙.处理器在此期间还能做些什么?
Jer*_*fin 28
首先,DMA(本身)几乎完全过时了.如最初定义的那样,DMA控制器依赖于以下事实:总线具有单独的线路以进行存储器读/写以及I/O读/写.DMA控制器利用了该通过断言二者在同一时间存储器中读出和I/O写(或反之亦然).然后,DMA控制器在总线上生成连续的地址,并且每个总线周期从存储器读取数据并将数据写入输出端口(反之亦然).
但是,PCI总线没有用于存储器读/写和I/O读/写的单独行.相反,它为任何给定的事务编码一个(并且只有一个)命令.PCI通常不进行DMA,而是进行总线主控传输.这意味着I/O设备本身不是在I/O设备和内存之间传输内存的DMA控制器,而是直接向内存或从内存传输数据.
至于CPU当时可以做什么,一切都取决于.回到DMA常见时,答案通常"不多" - 例如,在早期版本的Windows下,读取或写入软盘(确实使用DMA控制器)几乎锁定了系统的持续时间.
然而,如今,存储器通常具有比I/O总线大得多的带宽,因此即使在外围设备正在读取或写入存储器时,通常仍有相当大的带宽供CPU使用.此外,现代CPU通常具有公平的大缓存,因此它通常可以在不使用主存储器的情况下执行某些指令.