向io设备发出中断请求_IO系统及接口

本文介绍了I/O系统的组成,包括I/O软件和硬件,并详细讲解了I/O接口的功能,如数据缓冲、状态监测、控制和定时。还讨论了I/O指令与通道指令在信息交换中的作用,以及I/O接口的工作过程,包括发命令、读状态和读/写数据。此外,文章阐述了状态寄存器和控制寄存器公用的原因,并分析了IO总线的功能。最后,对比了统一编址和独立编址两种对端口的编址方式及其优缺点。
摘要由CSDN通过智能技术生成

I/O系统基本组成

一般来说,I/O系统由I/O软件和I/O硬件两部分构成。

1、I/O硬件:包括外部设备、I/O接口、I/O总线等。

2、I/O软件:包括驱动程序、用户程序、管理程序、升级补丁等。

通常采用I/O指令和通道指令实现主机对I/O设备的信息交换。

(1)I/O指令

是CPU指令的一部分。包括操作码、命令码和设备码三个字段。

注:I/O指令与普通指令格式不同,操作码指明了CPU要对I/O接口做什么,命令码指明了I/O接口要对设备做什么。

IO指令是用来实现CPU与IO端口之间的数据传输。

(2)通道指令

通道能识别的指令,通道程序提前编制好放在主存中。在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理。

程序员进行系统调用访问设备使用的是逻辑地址!!

I/O接口(I/O控制器)的功能

I/O接口:又称I/O控制器、设备控制器,负责协调主机与外部设备之间的数据传输。

I/O控制器就是一块芯片,常被集成在主板上。

  • 数据缓冲:通过数据缓冲寄存器DBR达到主机和外设工作速度的匹配。

  • 监测错误和状态信息:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用。

  • 控制和定时:接收从控制总线发来的控制信号、时钟信号

  • 数据格式转换:串行和并行等格式的转换

  • 与主机和设备通信:实现“主机--I/O接口--I/O设备”之间的通信。

I/O接口的基本结构及工作过程

4ee3f3be4811e974e79b3419997c4948.png

①发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)

②读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息。

设备完成工作后,就将状态反馈给状态寄存器,CPU就可以通过状态寄存器得知设备工作已经完成(轮询方式),或I/O控制器通过控制线向CPU发出一次中断请求。

③读/写数据:CPU通过数据总线,向数据缓冲器写入数据或从数据缓冲寄存器读取数据,然后在I/O控制逻辑的操控下,将数据输出到对应设备中。

为何状态寄存器和控制寄存器公用?

当IO控制器从控制寄存器中取出CPU发来的命令字后,控制寄存器就处于空闲状态,没有必要让命令字一直存放在控制寄存器中

而IO控制逻辑启动设备工作后,要实时将设备的状态信息反馈给CPU,这时就可以重复利用控制寄存器,将其作为状态寄存器存放设备的状态信息

控制寄存器和状态寄存器在使用时间上是错开的,因此可以将二者合并,只用一个寄存器来完成两个功能

通常将IO控制器中的各种寄存器称为IO端口。

IO总线的功能

  • 数据总线:读写数据、状态字、控制字(命令字)、中断类信号。

    注:中断类型信号是由于设备的状态不同,比如工作完成或出现故障,对应不同的中断类型

    数据缓冲寄存器、状态/控制寄存器都是通过数据总线连接的,所以数据总线可以传送控制字!!

  • 地址总线:指明IO端口。

    由于IO接口内部会有多个端口,CPU会通过地址线来指明往哪个端口写数据。

  • 控制总线:读写IO端口的信号、发送中断请求信号。

如果确定要操作的设备?

方法一:通过地址线来指明具体的设备编号,但这样设备编号和寄存器编号就要分两次传输。

方法二:给每个设备都配备一套寄存器。

对端口的编址

04bcf1d0246b3b212b2003a3f7956d51.png

统一编址

又称存储器映射方式,指把IO端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的IO指令,用统一的访存指令就 可以访问IO端口。

优点:不需要专门的IO指令,CPU访问IO控制器更灵活方便。端口的编址空间也较大。

缺点:端口占用存储器地址,使内存容量变小,执行速度慢。

PS:RSIC常用统一编址

注:统一编址时要求IO地址固定在地址的某部分,不论地址高端还是低端。

独立编址

又称IO映射方式,IO端口的地址空间是独立的,需要设置专门的IO指令来访问IO端口。

优点:IO指令与存储器指令有明显区别,编程清晰,便于理解。

缺点:IO指令较少,一般只能对端口进行传送操作,需要CPU提供额外的IO控制信号,增加了控制的复杂性。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值