如何理解“I/O指令是CPU系统指令的一部分”?

I/O指令作用过程(以 I/O端口独立编址方式为例):
CPU识别出当前指令是I/O指令,向I/O总线发送相应控制信号和地址信息。

之前迷惑的点:默认以为I/O指令是作用于I/O接口的,进而产生疑问,I/O接口中有解析指令的地方吗?

看了上面那句话恍然大悟:要么说“I/O指令是CPU系统指令的一部分”呢,因为是CPU将I/O指令取指、分析的,然后是CPU要给I/O接口发控制信号,进而才能控制I/O接口工作。因此下面这道题也就好理解了:I/O指令会被CPU取到并翻译成控制信号,该控制信号也只是控制I/O接口的,进而这个讨论的只是“CPU–>I/O接口–>外设”的前半段,当然数据传送也就发生在CPU里的通用寄存器和I/O端口之间了。

请添加图片描述

而“I/O接口中的I/O控制逻辑对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器”,此处的命令字并非I/O指令。袁书中对于I/O指令的介绍如下:

“在底层I/O软件中,可以将控制命令送到控制寄存器来启动外设工作;可以读取状态寄存器来了解外设和设备控制器的状态;可以通过直接访问数据缓冲寄存器来进行数据的输入和输出。当然,这些对数据缓冲寄存器、控制/状态寄存器的访问操作是通过相应的指令来完成的,通常把这类指令称为I/O指令。因为这些I/O指令只能在操作系统内核的底层I/O软件中使用,因而它们是一种特权指令。”

“CPU执行I/O指令时,会产生I/O读或I/O写总线事务,CPU通过I/O读或I/O写总线事务访问I/O端口”

“I/O接口需要提供控制和定时逻辑,以接收从I/O总线传来的控制命令(命令字)和定时信号。CPU根据程序中的I/O请求,选择相应的设备进行通信,要求一些内部资源(如主存或寄存器、总线等)参与到I/O过程中,这样I/O接口就必须提供定时和控制功能,以协调内部资源与外设之间动作的先后关系,控制数据通信过程”

唐书中相关内容如下:

“CPU启动I/O设备工作,要向I/O设备发各种控制信号,通过接口可传送控制命令”

综上可得出,I/O指令是CPU执行的,CPU执行I/O指令后会产生对I/O接口的控制命令,因而I/O接口中的I/O控制逻辑翻译的其实只是后面这个控制命令。

关于I/O接口的数据线和控制线到底谁传什么的问题:

在这里插入图片描述
上图中,下面的三个(地址线、命令线、状态线)主要是完成对传送过程的控制。而传送的内容主要是由上面的数据线完成的。

在系统总线的介绍中,数据线是用来传送数据信息(指令或操作数)的,有可能是CPU和主存之间交换的数据或从主存取出的指令,也可能是CPU向I/O模块发出的控制命令或从I/O模块收集到的状态信息;
控制线是用来控制对数据线和地址线的访问和使用的,用来传输定时信号和命令信息。如传送时钟、复位、总线操作控制、总线请求和回答信号等。

在I/O接口的介绍中,数据线是在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送的,同时数据线也可将保存在状态寄存器中的I/O接口与设备状态信息发送到CPU。CPU对外设的控制命令也是通过数据线传送的,一般将其送到I/O接口的控制寄存器,状态寄存器和控制寄存器在传送方向上相反,且CPU对他们的访问在时间上错开,因此有的I/O接口中将他们合二为一。
而控制线是传送读写控制信号的,还有一些仲裁信号和握手信号等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值