我们知道, CPU在计算机系统中, 除了能够执行指令,进行运算以外,还应该能够对外部设备进行控制,接收它们的输入,向它们进行输出。也就是说, CPU除了有运算能力外, 还要有I/O(Input/Output, 输入/输出) 能力。比如, 我们按下键盘上的一个键, CPU最终要能够处理这个键。在使用文本编辑器时, 按下a键后, 我们可以看到屏幕上出现“a”, 是CPU将从键盘上输入的键所对应的字符送到显示器上的。
要及时处理外设的输入, 显然需要解决两个问题:①外设的输入随时可能发生, CPU 如何得知?②CPU从何处得到外设的输入?
这一章中,我们以键盘输入为例,讨论这两个问题。
接口芯片和端口
PC系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器, CPU将这些寄存器当作端口来访问。
外设的输入不直接送入内存和CPU, 而是送入相关的接口芯片的端口中; CPU向外设的输出也不是直接送入外设, 而是先送入端口中, 再由相关的芯片送到外设。CPU还可以向外设输出控制命令,而这些控制命令也是先送到相关芯片的端口中,然后再由相关的芯片根据命令对外设实施控制。
可见, CPU通过端口和外部设备进行联系。
外中断信息
现在,我们知道了外设的输入被