输入输出系统(IO)方式

程序查询方式

在这里插入图片描述
采用程序查询方式,CPU必须循环等待检查要传送的数据,直到完成后才传送。细分如下图
在这里插入图片描述
在这里插入图片描述
x86中的IO指令实例
IN Rd,Rs:把IO端口Rs的数据输入到CPU寄存器Rd
OUT Rd, Rs:把CPU寄存器Rs的数据输出到IO端口Rd
这里来模拟3个字符的打印。
①通过OUT将通用寄存器的控制数据发送给控制寄存器,然后通过IO控制逻辑发送给打印机,打印机将状态返回给状态控制器,比如READY。
②这里可以通过IN R 0 , R n + 1 R_0,R_{n+1} R0,Rn+1,将状态寄存器拿到 R 0 R_0 R0判断是否可以发送。
③如果的READY,那么将要打印的字符通过OUT发送给数据缓冲寄存器,再发送给打印机,这时候状态寄存器应该是的状态,等到打印机完成后,再返回READY状态给状态寄存器。得到READY后CPU又可以发送打印的字符数据。
④循环上面操作,在CPU中设置一个变量比如 i = 3 i=3 i=3,每次发送一个字符 i i i就减1,那么当 i = 0 i=0 i=0时候说明字符已经发送完成,最后通过 O U T OUT OUT发送停机命令给控制寄存器,控制寄存器的再发给打印机停机。

程序查询方式流程图

在这里插入图片描述①预置传送参数:比如说上面的打印机,要发送字符 a,b,c,还有一个变量i用来记录发送几个字符
②启动外设:比如发送命令启动打印机
③不断检查外设状态是否就绪,如果就绪就可以传送数据。如果外设是没有就绪状态,CPU就会卡在取外设状态和外设准备就绪状态的框中。
例题:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查询有定时查询独占查询,独占查询就是CPU花100%的时候去循环等待,定时查询就是这次查询没结果就可以先去做其他事,然后过段时间再回来查询。一开始给出的图就是独占查询
定时查询要在保证数据不丢失的情况下进行。

程序中断方式

在这里插入图片描述

中断的基本概念

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
在这里插入图片描述
工作流程:
1.中断请求
中断源向CPU发送中断请求信号。
2.中断响应
响应中断的条件。(要看有没有关中断)
中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。
3.中断处理
中断隐指令。(修改PC值)
中断服务程序。
在这里插入图片描述在这里插入图片描述
有些中断在关中断时候也会被响应,称为非屏蔽中断(比如关机)。

中断请求标记

如何来判断是哪个设备发来的中断信号,引入了中断请求标记寄存器。
每个中断源向CPU发出中断请求的时间是随机的。
为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR.当其状态为“1”时,表示中断源有请求。
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。
在这里插入图片描述
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取IO的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。CPU响应中断必须满足以下3个条件:
①中断源有中断请求。
②CPU允许中断即开中断。
③一条指令执行完毕,且没有更紧迫的任务。

中断判优

如上,CPU可能得到来自键盘和打印机的中断,那么就会引出哪个中断先执行的问题。
中断判优既可以用硬件实现,也可用软件实现:
硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;软件实现是通过查询程序实现的。
在这里插入图片描述
在这里插入图片描述
硬件排队器:从左到右,优先级从高到低

中断判优 优先级设置

1.硬件故障中断属于最高级,其次是软件中断;
2.非屏蔽中断优于可屏蔽中断;
3.DMA请求优于IO设备传送的中断请求
4.高速设备优于低速设备;
5.输入设备优于输出设备;
6.实时设备优于普通设备。

中断处理过程

在这里插入图片描述
当K指令快结束的时候,CPU发现中断请求信号,将PC的值指向中断服务程序1的第一条指令(原来指向的是K+1指令)。中断服务程序1结束后将K+1放入PC。
中断隐指令是CPU检测到中断信号后自动执行的一个动作,用来保存原程序的PC值,并让PC指向中断服务程序的第一条指令。

中断隐指令

中断隐指令的主要任务:
关中断。在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
保存断点。为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
引出中断服务程序。引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC) 。

硬件向量法

在这里插入图片描述
这里由硬件,产生向量地址,然后通过向量地址找到程序入口地址,如果产生的向量地址是 00010011,那么就是13H,中断入口地址就是300。
总结:
硬件产生向量地址
再由向量地址找到入口地址
这里可以也可以让向量地址直接指向例如300的入口地址,但是如果主存中的地址发生变动,例如显示器服务程序从400开始了,那么需要修改硬件电路才能完成指向,而只修改向量地址里的中断向量是修改软件部分就很方便了,所以不能让向量地址直接指向入口地址。

中断服务程序

中断服务程序的主要任务:
保护现场
保存通用寄存器和状态寄存器的内容(eg:保存ACC寄存器的值),以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。
中断服务(设备服务)
主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中( eg:中断服务的过程中有可能修改AcC寄存器的值)
恢复现场
通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢复原样)
中断返回
通过中断返回指令回到原程序断点处。

在这里插入图片描述
在中断隐指令用了关中断,在中断服务程序最后用了开中断,保证了中断服务程序的原子性。把这种称为单重中断(执行中断服务程序时不响应新的中断请求)。有些时候单重中断没有办法满足需求,所以就需要用到多重中断。

多重中断

多重中断就是,当我们在执行某一个中断服务程序的时候,中断服务程序里面还有中断。
在这里插入图片描述

单重中断与多重中断

在这里插入图片描述
在这里插入图片描述
开中断要加在保存现场的后面,因为可能考虑到保存现在没有完成的时候可能就收到了中断请求,后面恢复现场前面的关中断同理。
屏蔽字的全称 中断屏蔽器。当CPU在处理某一个中断信号的时候,应该忽视哪些中断请求,因为要考虑到中断有先后,所以要响应优先级高的。

中断屏蔽技术

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。
①在中断服务程序中提前设置开中断指令。
②优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
在这里插入图片描述
调整多重中断的优先级。
这里假设有一个键盘中断服务程序,然后他的屏蔽字是1 1 1 1。那么表示键盘不可以被其他中断了。

屏蔽字设置的规律:
1.一般用’1’表示屏蔽,‘0’表示正常申请。
2.每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
3.屏蔽字中1’越多,优先级越高。每个屏蔽字中至少有一个’1’(至少要能屏蔽自身的中断)。

例:
在这里插入图片描述
在这里插入图片描述
因为D>A>C>B,所以当A执行的时候,只有D才能申请,那么D的中断屏蔽就是0,A自己也要设置为1。其余同理。
在这里插入图片描述

这里就看中断服务程序的优先级了。

中断系统小结

在这里插入图片描述

程序中断方式

在这里插入图片描述
例:
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
这里加5也可以不加也可以,因为可以理解为15条指令后就完成了字符传送,也可以理解为20条指令才完成传送。

DMA方式

在这里插入图片描述
DMA控制器也是一种IO接口。

DMA控制器

在这里插入图片描述
这里数据缓冲器是用来存放磁盘给DMA控制器的数据。
要传的几个字,比如说要传5个,那么DMA传给主存后,5就会减1。读写完后 主存和外设的地址都需要进行变化,比如往后+1。
外设读写地址是磁盘上的地址。
主存读写地址是DMA要写入主存的位置。
CPU向DMA控制器指明要输入还是输出;要传送多少个数据;数据在主存、外设中的地址。

传送前
1)接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
2)CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
传送时
3)确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
传送后
5)向CPU报告DMA操作的结束。
在这里插入图片描述

DMA传送过程

在这里插入图片描述
这里主存起始地址 → \to AR,AR就是主存地址计数器
传送长度计数器缩写WC。
数据如果要传送,按照图中绿色部分开始:
1.设备将数据写入数据缓冲寄存器
2.向DMA触发器发出高电平信号
3.当控制逻辑检测到DMA请求,会向CPU申请总线控制权(HRQ)
4.如果CPU可以让DMA用总线的话,那么CPU会返回一个HLDA。
5.获得总线控制权后,可以通过数据线、地址线、控制线给主存发出读或者写的命令。这里是数据输入,所以是写命令。
6.把数据缓冲寄存器的内容打到数据线上,把主存的地址信息打到地址线上。这样就完成了一个字的数据传输。
7.最后就是修改参数,让地址后移动,修改地址计数器和长度计数器。
8.传送完多个字后,长度计数器会发出溢出,给中断机构。
9.中断机构检测到信号后,发出中断请求,CPU处理中断(运行中断服务程序)。
这里DMA请求DMA中断请求是不一样的,前者是传送一个字,后者是一整块的数据已经完成了。
在这里插入图片描述
由于DMA需要总线,而CPU又管理着总线,这里提出一种新的连接方式如下图:
在这里插入图片描述
这里主存和DMA用DMA总线进行交互,这里DMA想要访问主存就不需要CPU给他总线的权力了。

DMA传送方式(只有在三总线的情况下才会存在)

主存和DMA控制器之间有一条数据通路,因此主存和/O设备之间交换信息时,不通过CPU。但当/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
在这里插入图片描述
主存和DMA接口之间有一条直接数据通路。
由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作
DMA方式具有下列特点:
①它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
②在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
③主存中要开辟专用缓冲区,及时供给和接收外设的数据。
④DMA传送速度快,CPU和外设并行工作,提高了系统效率。
⑤DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

DMA方式与中断方式

在这里插入图片描述
DMA经常用于块设备,比如磁盘设备。

库卡KUKA机器人输入输出IO信号定义表.xlsx
12-03
库卡KUKA机器人输入输出IO信号定义表
IO输入输出各个模式
qq_42413161的博客
11-08 7240
以STM32的芯片为例: STM32芯片的IO有8中模式: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 四种输入模式 + 四种输出模式 1.GPIO_Mode_
GPIO的八种输入输出模式
m0_60004633的博客
04-28 1万+
GPIO的八种输入输出模式
IO口8种输入输出模式
最新发布
2302_81310828的博客
08-22 1639
上面这张图是IO输入输出的原理图,分为输入驱动部分与输出驱动部分。
程序查询方式
weixin_51711289的博客
11-07 1314
程序查询方式
STM32 通用GPIO I/O口8种输出模式
xinzhi1992的博客
06-13 4839
STM32 通用I/O口8种模式
GPIO八种IO端口输入输出模式解析
热门推荐
Leisure_ksj的博客
05-18 1万+
参考了一些网上的文章和视频,总结如下: 1. 先看下STM32的八种IO口模式 1) GPIO_Mode_AIN 模拟输入; 2) GPIO_Mode_IN_FLOATING 浮空输入; 3) GPIO_Mode_IPD 下拉输入; 4) GPIO_Mode_IPU 上拉输入; 5) GPIO_Mode_Out_OD 开漏输出; 6) GPIO_Mode_Out_PP 推挽输出; 7) GPIO_Mode_AF_OD 复用开漏输出; 8) GPIO_Mode_AF_PP 复用推挽输出。 2. 模拟
KUKA机器人如何查看输入输出IO信号?.docx
03-10
本篇将详细介绍如何在KUKA机器人控制系统中查看输入输出IO信号。 首先,打开KUKA机器人的控制系统界面。这个界面通常是在一台连接到机器人控制器的工业PC上运行的KUKA SmartControl或KUKA Sunrise系统。在主菜单栏...
IO输入输出体系.rar
07-26
无缓冲的输入、输出流每一次读写都肯引发磁盘的读写操作,占用大量资源 缓冲流(装饰器模式) 缓冲流是一种装饰器类 可实现按规定字符数、按行等方式的高效读写 缓冲区的大写可指定 也可使用默认大小 ...
51单片机IO口的输入输出方式
07-14
51单片机,也称为8051单片机,是一种经典的单片机微控制器,它的输入输出(I/O)口的使用在电子工程领域非常重要。为了充分利用51单片机的功能,我们需要了解其I/O口的工作原理和特点,以及如何正确配置和使用。 首先...
IO输入输出配置
11-08
IO输入输出配置是其基础且至关重要的功能,用于实现设备间的通信和控制。本文将深入探讨STM32 F103的IO口配置,包括输出高低电平控制和读取输入状态。 首先,我们要了解STM32的GPIO(General-Purpose Input/...
计算机组成原理-程序查询方式(流程图 演示过程 例题 定时查询 独占查询)
llovewuzhengzi的博客
01-07 1578
每次输一个字,就认为状态完成,CPU就会取走数据寄存器的内容。
linux直接控制IO叫,Linux IO控制命令生成
weixin_28686771的博客
05-15 128
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域:bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。bit29~bit16 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。bi...
stm32 IO口的八种输入输出模式
Ning71680264的博客
03-02 8685
stm32 GPIO口的八种输入输出模式的理解
stm32中io口的八种输入输出模式
m0_46171719的博客
07-13 2845
学习STM32
IO的输入和输出方式
m0_74936872的博客
03-29 556
stdin 表示标输入,也就是键盘输入准stdout表示标准输出,也就是显示屏//宏成功时返回读取的字符;若到文件末尾或出错时返回EOF(-1),getchar()等同于fgetc(stdin)getc和fgetc区别是一个是宏一个是函数注意事项:1函数返回值是int类型不是char类型,主要是为了扩展返回值的范围。2 tdin 也是FILE *的指针,是系统定义好的,指向的是标准输入(键盘输入)3 打开文件后读取,是从文件开头开始读。读完一个后读写指针会后移。读写注意文件位置!
操作系统-输入输出(I/O)原理
captain
02-29 1465
通过复合 I/O,可以将多个独立的 I/O 操作组合成一个更大的操作单元,从而减少系统调用的次数,提高系统的性能和效率。通过可编程I/O,用户可以使用编程语言(如C、Python等)对I/O设备进行配置、控制和管理,从而实现更灵活、定制化的I/O操作。专有通道I/O是一种高级的输入输出技术,它通过专门的通道(Channel)来管理和执行I/O操作,提供了更高的性能、可靠性和扩展性。软件I/O层是指计算机系统中处理输入输出操作的软件部分,包括操作系统提供的I/O管理功能和应用程序使用的I/O接口。
I/O辅助进程用户界面——控制I/O辅助进程
zoomdy's blog
03-15 1714
eCos是功能完备的开源实时操作系统,eCos提供的仿真目标机可以将eCos系统作为Linux下的进程执行,这为学习和开发eCos都提供了便捷。本文是eCos参考手册仿真目标机部分的第4节,其它章节在这里。 eCos官网:http://ecos.sourceware.org eCos中文技术网:http://www.52ecos.net eCos交流QQ群:144940146。 原文:http...
写文章

热门文章

  • IO接口概念 12326
  • 计算机网络之物理层(理论附带题目) 5775
  • 微程序控制器 4647
  • 经典进程同步问题——生产者消费者(多生产者多消费者) 4581
  • 指令流水线 3940

分类专栏

  • QT 1篇
  • 数电
  • 《深度学习》读书笔记
  • android 1篇
  • 数据结构 7篇
  • 数字图像处理 1篇
  • OpenCV 1篇
  • 音视频 5篇
  • C/C++ 5篇
  • 计算机网络 3篇
  • linux系统编程 1篇
  • 计算机体系结构(计算机组成原理) 5篇
  • linux网络编程
  • 操作系统 9篇
  • Delphi 7篇
  • linux学习 2篇

最新评论

  • 数据结构之图(理论附带题目)

    Beam_WA: 可以,最近比较忙 后续会更新更多的内容,感谢

  • 数据结构之图(理论附带题目)

    weixin_53060659: 鼓励作者大大,写的非常好👍

  • 经典进程同步问题——吸烟者问题

    圆圆的东柳君: 我感觉这个跟消息管道的概念好像

  • 指令流水线

    Beam_WA: https://ask.latexstudio.net/index.php/ask/question/3835.html 你可以看下这个帖子

  • 指令流水线

    逃逃日塔灰: 请问时空图可以用什么软件画啊

大家在看

  • 模式识别-距离和相似性度量
  • 数据库表的创建
  • C++入门Day5 ~ 6:简单变量 & 数据类型 part 1 <8000字长文带你初步理解数据类型> 2
  • 用神经网络自动玩游戏 136

最新文章

  • QT 带箭头的控件QPolygon
  • 安卓adb调试没有弹出允许调试解决方案
  • IO接口概念
2024年1篇
2023年1篇
2022年5篇
2021年8篇
2020年28篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家陕西高质量玻璃钢雕塑优势玻璃钢恐龙雕塑平台湖州玻璃钢仿铜雕塑定做玻璃钢花盆雕塑哪个好看清远商场装饰玻璃钢雕塑红色玻璃钢卡通雕塑出厂价格玻璃钢雕塑漆上色教程南头玻璃钢雕塑顺德玻璃钢雕塑九江环保玻璃钢雕塑制作大同玻璃钢雕塑价格兰州城市玻璃钢雕塑制作保定工业玻璃钢雕塑哪家专业奥体商场美陈策划方案甘肃玻璃钢雕塑定制荥经玻璃钢花盆花器上海大型商场创意商业美陈费用惠州玻璃钢抽象雕塑北京特色商场美陈生产公司玻璃钢雕塑 河北曲阳吉首玻璃钢雕塑报价玻璃钢雕塑难吗惠州发光景观玻璃钢雕塑设计浙江玻璃钢卡通雕塑橘子价钱佛山定做玻璃钢卡通雕塑商场创意商业美陈报价玻璃钢喷泉雕塑设计赣州玻璃钢雕塑多少钱厦门玻璃钢卡通雕塑定制南宁人物玻璃钢雕塑安装香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化