操作系统——I/O控制器

发布时间:2024年01月09日

操作系统之I/O控制器


一、I/O控制器的认识

IO设备的机械部件主要用来执行具体的IO操作。

如我们看得见摸得着的鼠标和键盘的按键,显示器的LED屏,移动硬盘的磁臂,磁盘盘面。

IO设备的电子部件通常是一块出入主板扩充槽的印刷电路板,cpu无法直接控制IO设备的机械部件,因此电子部件充当CPU的机械部件的中介,用于实现CPU对机械部件的控制。
这个电子部件就是I/O控制器(设备控制器)。CPU控制设备控制器,设备控制器控制机械部件。

友情提示:不同产品的的I/O控制器是不同的,及时完成同种功能的产品的控制器也是不同的,就像不同厂商的打印机。既然如此,CPU就无法去以同一种命令方式去控制I/O设备,因此,各种厂商会提供各自产品相应的驱动软件,由驱动软件作为CPU和I/O控制器中介,进行翻译工作,这样CPU及时用同一种命令方式就可控制不同类型的I/O设备。另外一个I/O控制器可能会控制多个机械部件

二、I/O控制器的功能

  1. 接收和识别CPU发出的命令

如果CPU发来读写命令,I/O控制器中会有相应的的控制寄存器来存放命令的参数。

  1. 向CPU报告设备的状态

I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态。如1表示空闲,0表示忙碌。

  1. 数据交换(数据寄存器)

I/O控制器中会设置相应的数据寄存器。输出时,数据寄存器会暂存CPU发来的数据,之后由I/O控制器传给机械设备,输入时,数据寄存器暂存数据,之后有CPU取走。

  1. 地址识别

为了区分I/O控制器中的各个寄存器,也需要给各个寄存器设置一个特定的“地址”,I/O控制器通过CPU提供的地址来判断CPU要读写的是哪个寄存器(前面友情提示中提到,一个I/O控制器可能对应多个机械部件,因此I/O控制器中可能有多个数据寄存器,状态寄存器和控制寄存器,因此需要一个特定的区域去记录各个寄存器的地址)。

三、IO控制器组成

  1. CPU域控制器之间的接口:实现控制器与CPU之间的通信。
  2. I/O 逻辑:负责识别和接收CPU各种指令,冰箱设备发出指令。
  3. 设备域控制器之间的接口:实现控制器与设备之间的通信。

在这里插入图片描述
注意 :一个I/O控制器可能会对应多个设备

四、I/O控制器中寄存器的编址方式

前面提到I/O控制器有地址识别的功能,因此,寄存器首先要有自己的地址才能让I/O控制器找到自己。

1.内存映射编址

I/O控制器中的寄存器与内存统一编址,理解为控制器内存和操作系统内存合为一套,在操作系统的基础上递增;这样就可以使用对内存进行操作的指令来对控制进行操作

2. 寄存器独立编址

控制器中的寄存器独立编址,这样的话,就相当于出现两套内存,需要设置专门的指令来操作指定的控制器。

在这里插入图片描述

脑图

在这里插入图片描述


大多数人,即使是在这个相对自由的国家,仅仅由于无知和失误,是生活中疲于应对各种自找的烦恼和多余的劳逸,乃至没有余力的去采摘那些美好的人生果实。他们的手指太过劳累,变得非常笨拙,而且抖个不停,所以五彩采摘果实. ——《瓦尔登湖》

文章来源:https://blog.csdn.net/qq_41199502/article/details/135477930
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。