硬件设备发生冲突的基本原理
玩电脑的朋友很多都有过这样的经历: 当你在电脑加上某个新的板卡后, 常会导
致整个电脑使用不正常。于是往往抱怨所买板卡的质量不好, 其实此类问题也许
并不与新卡的质量有关, 而是因为它和电脑上其它设备之间产生了设备冲突。
一个计算机设备要能正常工作, 必须要通过一定的系统资源与主机进行通
信。但当新的板卡装入计算机后, 往往会与已有的计算机设备发生资源冲突, 而
不能正常工作。最常见的也是最容易出现的资源冲突就是IRQ、DMA 和I/O 冲
突。首先, 让我们了解一下IRQ、DMA 和I/O 的概念。
1、IRQ( Interrupt ReQuest)
意为中断请求, 每一个设备都有一个IRQ, 用以向CPU 发送服务请求, 称
为中断。一般来说, 计算机有16 个中断线与各种需要用中断方式工作的不同外
设相连( 每个中断线有一个标号也就是中断号) , 当一条中断线被激活后, CPU
就会立即停下当前的工作, 装载一定的中断处理子程序( 中断服务程序) , 这个
程序执行完成以后, 系统回到刚才的断点, 继续原来的工作。如果两个设备拥有
一个中断号计算机系统中的某些部分就会停止工作, 甚至会导致整个计算机系统崩溃。一般来说, 在我们常用的个人PC 机中, 中断号的分配是这样的:
IRQ 0系统时钟( 系统保留) IRQ 1 键盘( 系统保留)
IRQ 2系统的第二个中断请求控制器( IRQ8- 15)
IRQ 3 串行口2( 可用) IRQ 4 串行口1( 可用)
IRQ 5 并行口2( 可用) ( 一般用来设置声卡)
IRQ 6 软盘( 系统保留) IRQ 7并行口1( 一般用作打印机)
IRQ 8 实时时钟( 系统保留) IRQ 9 可用 IRQ 10 可用
IRQ 11常用于显示卡 IRQ12 PS/2 mouse( 可用) IRQ13 数学协处理器
IRQ14 IDE1 控制器通道 IRQ15 IDE2 控制器通道( 可用)
此外还有NMI 非正常中断( 不可屏蔽中断) , 如校验错。
2、DMA( Direct Memory Address)
直接存取通道。主机与外设之间的数据传送, 一共有两条途径: 一是用CPU
来管理的数据的传送; 二是用专门的芯片完成数据的传送。所谓DMA, 就是不
经CPU, 外设同内存之间相互传送数据的通道, 在这种方式下, 外设利用DMA
通道直接将数据写入存储器或将数据从存储器中读出, 而不用CPU 参与, 系统
的速度会大大增加。在PC 机内部, DMA 通道的分配如下:
DMA0 可用 DMA1 ECP 打印口( 如果设置的话) DMA2 软盘控制
器
DMA3 8 位数据传送 DMA4 级联DMA 控制器 DMA5 可用
DMA6 可用 DMA7 可用
3、I/O( INPUT/OUTPUT)
输入/输出端口, 计算机外设与主机( CPU 和内存) 进行通信时, 是通过接
口来进行的, 这个接口就叫做端口。每个端口赋与一个端口号称为地址。每一个
端口都包含一组寄存器( 数据寄存器、命令寄存器和状态寄存器) 。每一个想和
CP U 通信的外设都有不同的I/O 地址, 在PC 机内部一共有1024 个地址。
从Win95 开始计算机的所有IRQ 号、DMA通道和I/O 端口等系统资源均被
操作系统接管, 并由其根据情况进行智能的分配, 这就是我们常说的即插即用。
然而这种即插即用是有条件的: 要求有即插即用的BIOS、即插即用的设备和即
插即用的操作系统, 三者缺一不可, 否则可能会引发设备冲突。在实际安装时,
由于存在非即插即用设备和即插即用设备混合安装等情况, 而且即插即用设备品
种规格越来越多, 新设备层出不穷, 而WINDOWS 95/98 并非一个很完善的即插
即用操作系统, 常常不能正确检测和处理有关设备的资源情况, 特别是在安装设
备较多的情况下, 由于各种板卡的中断、DMA 通道、I/O 地址大部分都有自己
的缺省值, 如果碰巧两个板卡使用了同样的资源, 操作系统又无法正常处理, 就
会引起冲突。这就是设备发生冲突的重要原因之一。
此外有些板卡由于设计上有特殊之处( 比如耗电过大) , 或者选料不严、制
作工艺不精甚至固件代码编写不完善等问题, 也可能与另外的板卡难以“和平”
玩电脑的朋友很多都有过这样的经历: 当你在电脑加上某个新的板卡后, 常会导
致整个电脑使用不正常。于是往往抱怨所买板卡的质量不好, 其实此类问题也许
并不与新卡的质量有关, 而是因为它和电脑上其它设备之间产生了设备冲突。
一个计算机设备要能正常工作, 必须要通过一定的系统资源与主机进行通
信。但当新的板卡装入计算机后, 往往会与已有的计算机设备发生资源冲突, 而
不能正常工作。最常见的也是最容易出现的资源冲突就是IRQ、DMA 和I/O 冲
突。首先, 让我们了解一下IRQ、DMA 和I/O 的概念。
1、IRQ( Interrupt ReQuest)
意为中断请求, 每一个设备都有一个IRQ, 用以向CPU 发送服务请求, 称
为中断。一般来说, 计算机有16 个中断线与各种需要用中断方式工作的不同外
设相连( 每个中断线有一个标号也就是中断号) , 当一条中断线被激活后, CPU
就会立即停下当前的工作, 装载一定的中断处理子程序( 中断服务程序) , 这个
程序执行完成以后, 系统回到刚才的断点, 继续原来的工作。如果两个设备拥有
一个中断号计算机系统中的某些部分就会停止工作, 甚至会导致整个计算机系统崩溃。一般来说, 在我们常用的个人PC 机中, 中断号的分配是这样的:
IRQ 0系统时钟( 系统保留) IRQ 1 键盘( 系统保留)
IRQ 2系统的第二个中断请求控制器( IRQ8- 15)
IRQ 3 串行口2( 可用) IRQ 4 串行口1( 可用)
IRQ 5 并行口2( 可用) ( 一般用来设置声卡)
IRQ 6 软盘( 系统保留) IRQ 7并行口1( 一般用作打印机)
IRQ 8 实时时钟( 系统保留) IRQ 9 可用 IRQ 10 可用
IRQ 11常用于显示卡 IRQ12 PS/2 mouse( 可用) IRQ13 数学协处理器
IRQ14 IDE1 控制器通道 IRQ15 IDE2 控制器通道( 可用)
此外还有NMI 非正常中断( 不可屏蔽中断) , 如校验错。
2、DMA( Direct Memory Address)
直接存取通道。主机与外设之间的数据传送, 一共有两条途径: 一是用CPU
来管理的数据的传送; 二是用专门的芯片完成数据的传送。所谓DMA, 就是不
经CPU, 外设同内存之间相互传送数据的通道, 在这种方式下, 外设利用DMA
通道直接将数据写入存储器或将数据从存储器中读出, 而不用CPU 参与, 系统
的速度会大大增加。在PC 机内部, DMA 通道的分配如下:
DMA0 可用 DMA1 ECP 打印口( 如果设置的话) DMA2 软盘控制
器
DMA3 8 位数据传送 DMA4 级联DMA 控制器 DMA5 可用
DMA6 可用 DMA7 可用
3、I/O( INPUT/OUTPUT)
输入/输出端口, 计算机外设与主机( CPU 和内存) 进行通信时, 是通过接
口来进行的, 这个接口就叫做端口。每个端口赋与一个端口号称为地址。每一个
端口都包含一组寄存器( 数据寄存器、命令寄存器和状态寄存器) 。每一个想和
CP U 通信的外设都有不同的I/O 地址, 在PC 机内部一共有1024 个地址。
从Win95 开始计算机的所有IRQ 号、DMA通道和I/O 端口等系统资源均被
操作系统接管, 并由其根据情况进行智能的分配, 这就是我们常说的即插即用。
然而这种即插即用是有条件的: 要求有即插即用的BIOS、即插即用的设备和即
插即用的操作系统, 三者缺一不可, 否则可能会引发设备冲突。在实际安装时,
由于存在非即插即用设备和即插即用设备混合安装等情况, 而且即插即用设备品
种规格越来越多, 新设备层出不穷, 而WINDOWS 95/98 并非一个很完善的即插
即用操作系统, 常常不能正确检测和处理有关设备的资源情况, 特别是在安装设
备较多的情况下, 由于各种板卡的中断、DMA 通道、I/O 地址大部分都有自己
的缺省值, 如果碰巧两个板卡使用了同样的资源, 操作系统又无法正常处理, 就
会引起冲突。这就是设备发生冲突的重要原因之一。
此外有些板卡由于设计上有特殊之处( 比如耗电过大) , 或者选料不严、制
作工艺不精甚至固件代码编写不完善等问题, 也可能与另外的板卡难以“和平”
评论
查看更多