由于一个8237A有4个通道,最多可以连接4个I/O设备,因此需要安排通道优先级,以解决有多个通道同时申请DMA传输请求的冲突。8237A有两种管理优先级的方式。在固定优先级方式中,优先级是静态的,不能变化。而在循环优先级的管理方式中,优先级是随着DMA传输的发生而变化的,最近被服务过的通道优先级将变为最低。例如,某次传输前,通道的优先级为:通道1优先级最高,通道2次之,通道3再次之,最低优先级的是通道0,记为1-2-3-0。那么,在通道3进行一次传输后,优先级的次序变成0-1-2-3,即通道3的优先级变为最低。此时,如果通道0没有DMA请求,而通道2有DMA请求,则在完成通道2的DMA传输后,优先级次序就变为3-0-1-2。这种循环优先级的管理方式可以防止某个通道单独占有总线。 |