首页 理论教育 软件领域的I/O硬件-操作系统原理

软件领域的I/O硬件-操作系统原理

时间:2023-10-17 理论教育 版权反馈
【摘要】:软件领域的端口一般是指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。该适配器通常有处理器、微码及一定的私有主存以便能处理SCSI协议信息。处理器向控制器发送命令和数据以完成I/O传输的机理在于,控制器拥有一个或多个用于存放数据和控制信号的寄存器,处理器通过读或写这些寄存器的位组合与控制器通信。处理器执行I/O请求是通过标准数据传输指令来完成对设备控制器的读写。

软件领域的I/O硬件-操作系统原理

计算机系统使用的设备种类繁多,使用方法各异,存在着令人难以置信的差异。但只需通过如下几个概念就可以理解设备如何与计算机相连、如何用软件控制硬件设备的工作。这几个概念是端口、总线和控制器。

1.端口

计算机端口(port)是设备与计算机通信的一个连接点,其中硬件领域的端口又称接口,如USB端口、串行端口等。软件领域的端口一般是指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O缓冲区。

2.总线

如果一个或多个设备使用一组共同的线,这种连接称为总线(bus)。总线是一组线和一组严格定义的可以描述在线上传输信息的协议。在总线上连接有多个设备(或称为部件),多个信号源中的任一信号源的信号可以通过总线传送到多个信号接收部件中的任一个接收部件。总线在计算机体系结构中使用很广。图8-1给出了一个典型的PC总线结构。图8-1中显示的PCI总线(最为常见的PC系统总线)用以连接处理机——主存子系统与快速设备,扩展总线用于连接串行、并行端口和相对较慢的设备(如键盘)。图8-1中还有一个SCSI总线,该总线将四块硬盘一起连到SCSI控制器上。

图8-1 一个典型的PC总线结构

3.控制器(www.xing528.com)

控制器(controller)是用于操作端口、总线或设备的一组电子器件串口控制器是简单的设备控制器。它是计算机上的一块芯片或部分芯片,用以控制串口线上的信号。而SCSI总线控制器就比较复杂,由于SCSI协议比较复杂,SCSI总线控制器常常实现为与计算机相连接的独立线路板或主机适配器。该适配器通常有处理器、微码及一定的私有主存以便能处理SCSI协议信息。

处理器向控制器发送命令和数据以完成I/O传输的机理在于,控制器拥有一个或多个用于存放数据和控制信号的寄存器,处理器通过读或写这些寄存器的位组合与控制器通信。这种通信的一种方式是通过使用特殊I/O指令来传递向某I/O端口传输一个字节或字的控制意图,I/O指令触发总线线路来选择合适的设备,并将信息传入该设备控制寄存器(或从设备控制寄存器传出);另一种通信方式是主存映射I/O,这时,设备控制寄存器映射到处理器的地址空间。处理器执行I/O请求是通过标准数据传输指令来完成对设备控制器的读写。现代计算机系统使用的设备控制器通常有四种寄存器,它们分别是状态、控制、数据输入、数据输出寄存器,简介如下。

①状态寄存器。状态寄存器包含一些主机可以读取的位信息。这些位信息指示各种状态,如当前任务是否完成,数据寄存器中是否有数据可以读取,是否出现设备故障等。

②控制寄存器。主机通过控制寄存器向设备发送命令或改变设备状态。例如,串口控制器中的一位选择全工通信或单工通信,另一位控制是否进行奇偶校验,第三位设置字长为7位或8位,其他位选择串口通信所支持的速度。

③数据输入寄存器。数据输入寄存器用于存放数据以被主机读取。

④数据输出寄存器。主机向数据输出寄存器写入数据以便发送。

数据寄存器通常为1~4个字节。有的控制器有FIFO芯片,可以保留多个输入或输出数据以扩展控制器的能力,FIFO芯片还可以保留少量的突发数据直到设备或主机来接收数据。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈