什么是输入输出
输入输出系统是计算机系统中的主机与外部进行通信的系统。它由外围设备和输入输出控制系统两部分组成,是计算机系统的重要组成部分。外围设备包括输入设备、输出设备和磁盘存储器、磁带存储器、光盘存储器等。从某种意义上也可以把磁盘、磁带和光盘等设备看成一种输入输出设备,所以输入输出设备与外围设备这两个名词经常是通用的。在计算机系统中,通常把处理机和主存储器之外的部分称为输入输出系统,输入输出系统的特点是异步性、实时性和设备无关性。
输入/输出接口与端口
外围设备的种类繁多,有机械式和电动式,也有电子式和其他形式。其输入信号,可以是数字式的电压,也可以是模拟式的电压和电流。从信息传输速率来讲,相差也很悬殊。例如,当用手动的键盘输入时,每个字符输入的间隔可达数秒钟。又如,磁盘输入的情况下,在找到磁道以后,磁盘能以大于30000B/s的速率输入数据。在计算机系统中,为了保证高速的主机和不同速度的外设之间的高效和可靠的交互,CPU必须通过I/O接口与外设连接。因此,CPU的输入/输出操作实际上分为两个传输阶段:10接口与外设间的数据传送,以及CPU与I/0接口之间的数据传送如图8.1所示。显然,这两个阶段是相互关联的。
CPU与外设的连接示意图
输入/输出操作的一般过程
由于接口与CPU的速度大致相当,仅从CPU读写接口内寄存器的角度看,CPU读写端口的方式与CPU读写内存单元是相似的。但是,内存单元的功能是存储数据,而端口的功能则是辅助CPU与外设交互,故端口中的数据并不是静态的,而是动态变化的。CPU写入控制口的信息要由接口内的逻辑电路转换成相关控制信号发送给外设,外设的状态信息则由接口的逻辑电路转换成状态字存入状态口供CPU读取。CPU写入输出数据口的信息要由外设取走。外设发送给CPU的数据则通过输入数据口缓冲。外设状态信息可能是时刻变化的,给外设的控制命令也往往会不断改变,CPU与外设交互数据一般情况下也是成批连续进行的。因此,对端口的连续访问必须确保信息的有效性。
如果是输入过程,一般需要以下三个步骤:
(1)CPU把一个地址 值放在地址总线上,选择某一输入设备;
(2)CPU等候输入设备的数据成为有效;
(3)CPU从数据总线读入数据,并放在一个相应的寄存器中
如果是输出过程,一般需要以下三个步骤:
(1)CPU把一个地址值放在地址总线上,选择一个输出设备;
(2)CPU把数据放在数据总线上;
(3)输出设备认为数据有效,从而把数据取走。