2024王道考研计算机组成原理——输入输出系统

news2024/11/26 8:50:24

7.1.1 输入输出系统和几种IO控制方式

输入设备:把数据从主机外部输入主机内部

输出设备:把数据从主机内部输出到主机外部

现在的IO接口(芯片)通常被集成在南桥芯片的内部

 

DMA接口其实也是IO接口(芯片)的一种,磁盘准备的数据先一个字一个字地送入DMA的寄存器,然后再送到主存当中,主存总线和DMA总线当然会冲突,这也需要仲裁,当然CPU需要的数据80%都在cache当中可以找到,所以主存大部分时间都是可以判给DMA总线!!!

IO总线当然包括了:地址总线、数据总线、控制总线

通道其实就相当于是一个弱鸡版的CPU,它也可以取指执行,但是它只能识别很小的一部分和IO相关的操作指令(了解即可)

 7.1.2 显存

了解即可:

独立显卡有自己专门的一块存储芯片

集成显卡是在内存当中单独划出来一块区域作为显存

7.2.1 I/O接口

主机与IO设备交互通过的就是IO接口

控制外设输入的示例:

7.3.1 程序查询方式

打印是时候,打印机是忙状态(busy),CPU轮询in来检查端口是否空闲,打印完a之后就会把状态从busy设置为ready

当打印任务全部完成之后,CPU就会给io接口发送一个停机的命令

打印3个字符abc的过程:

7.3.2 中断的原理和作用 

中断处理的过程:

中断请求(INT) -> 中断响应(INTA) -> 中断处理(中断隐指令(硬件)+中断服务程序(软件))

中断请求:中断控制芯片8259告诉CPU有外部中断产生了

中断响应:CPU检查自己的IF位,如果IF=1就通知8259我准备好了,可以把中断类型码发过来了

中断处理:8259把中断类型码送给CPU(比如放到eax当中),然后CPU通过执行中断隐指令的引出中断服务程序(比如eax -> PC),就可以到对应位置继续取指顺序执行了

CPU在指令周期的末尾会例行检查中断(检查CPU的INT端口有没有信号) 

根据IF位可以判断当前CPU有没有关中断,如果IF位为1,就从中断寄存器当中取数据,IF为0就不取,相当于不会响应中断

关中断的目的是为了实现原子操作,是通过硬件实现的

 

中断请求寄存器是在中断控制器8259当中的 

关机之前会进行一系列的紧急处理,之后才会被关闭

现在的计算机一般使用硬件实现中断判优,这样比较快速

中断判优的优先级问题: 

中断处理过程:

中断隐指令指的是一些列的指令,这一系列指令都是由CPU自动完成的,只要检测到中断请求,CPU就会自动执行这一系列的指令(是通过硬件电路自动实现的)

中断隐指令:关中断、保存断点(PC)、获取中断向量

所有中断源的中断隐指令都是一模一样的!!!

引出中断服务程序:先通过中断类型号指明要去主存为12H的位置取指令并执行(在操作系统的内核空间,常驻内存),执行JMP 200,CPU就会从200的地址处去继续取指执行了!

二级指针,你一级变化,二级不变,不用改动,这样可以方便拓展中断服务程序

中断服务程序的执行过程:

7.3.3 多重中断

执行中断期间也可以响应新的(一般是优先级更高的)中断请求

肯定得在保护完现场/恢复完现场之后才能开中断啊!

至于中断隐指令和中断返回都是通过硬件电路实现的,直接一气呵成好吧

中断屏蔽技术:

中断屏蔽字1111:都给屏蔽喽(这个中断源的优先级很高)

中断屏蔽字存储在屏蔽字寄存器当中,这样可以动态地调整各个中断源的优先级,从而为实现多重中断提供了技术支撑

每个中断源都有一个中断屏蔽字,在这个中断源被响应的时候,就可以把它的屏蔽字写到中断屏蔽字寄存器当中了,以此来决定在他进行中断处理的过程中会对哪些其他中断源进行响应!!!

也就是说,当CPU在处理当前中断的过程中,有其他IO端口发出中断请求,但是这个信号不会被立即送到CPU的INT当中,而是由中断控制器8259根据中断屏蔽字和判优逻辑电路来决定要不要给CPU发送一个INT信号(8259决定了中断信号会不会被送出去给CPU)

一个小练习题😄:

实际CPU当中的中断系统: 

中断类型号是通过数据寄存器传给CPU的

中断请求寄存器IR1,IR2...IR7连接的就是IO接口;优先级电路会根据当前中断源的中断屏蔽寄存器等信息决定选择哪一个中断;中断服务寄存器(前面PPT当中用于产生中断向量的)

不管是哪个IO端口(IRx)产生了电信号,中断请求寄存器IRR都会给控制逻辑的INT发一个信号,然后传给CPU的INTR引脚,如果IF=1的话,CPU允许中断,就会通过INTA引脚发给控制逻辑,告诉他我收到了,你可以把中断类型号发给我了,然后控制逻辑控制8259通过和CPU数据寄存器相连的线把中断向量发给CPU

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1146935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS2022将编码方式设置为UTF-8的一种方法

一、首先在VS2022的菜单栏中找到Tools/Customize。 二、在弹出的对话框中选择Commands标签,Menu bar中选择File,点击Add Command按钮。 三、在弹出的Add Command对话框中选择左侧Categories栏中选择File,在Commands栏中选择Advanced Save Opt…

吴恩达《机器学习》2-5->2-7:梯度下降算法与理解

一、梯度下降算法 梯度下降算法的目标是通过反复迭代来更新模型参数,以便最小化代价函数。代价函数通常用于衡量模型的性能,我们希望找到使代价函数最小的参数值。这个过程通常分为以下几个步骤: 初始化参数: 随机或设定初始参数…

帆软report JS实现填报控件只能填写一次

效果 方法: 代码: if(this.getValue()!"")//判断这个控件框是否有值,这里是不为空{this.setEnable(false)}//不为空,则不能再修改else{this.setEnable(true)}//为空,可以编辑

vue2【Options 选项API、mixin混入】,vue3【Composition 合成API、hooks】

目录 逻辑组合/复用机制 mixin混入状态复用【官方不推荐使用】 生命周期合并 同名覆盖 难溯源 hooks钩子【只能在setup生命周期中用】 ref ()、reactive()useState computed()useMemo 自定义: useXxx 示例 Vue2 :Options API选项类型&#x…

代码审计-锐捷NBR路由器 EWEB网管系统 远程命令执行

那天下着很大的雨,母亲从城里走回来的时候,浑身就是一个泥人,那一刻我就知道我没有别的选择了 出现漏洞的文件在 /guest_auth/guestIsUp.php 审查源码我们发现通过命令拼接的方式构造命令执行 构造payload: /guest_auth/guestI…

基于闪电搜索算法的无人机航迹规划-附代码

基于闪电搜索算法的无人机航迹规划 文章目录 基于闪电搜索算法的无人机航迹规划1.闪电搜索搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用闪电搜索算法来优化无人机航迹规划。 …

基于入侵杂草算法的无人机航迹规划-附代码

基于入侵杂草算法的无人机航迹规划 文章目录 基于入侵杂草算法的无人机航迹规划1.入侵杂草搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用入侵杂草算法来优化无人机航迹规划。 …

windows8080端口占用

查看端口占用 netstat -ano | findstr “8080”查看占用进程 tasklist | findstr “4664”关闭占用进程 taskkill /f /t /im httpd.exe

关于git推送代码到github远程仓库中文乱码问题,visual studio保存文件默认编码格式问题

中文乱码问题本质上的原因是:二者的编码格式不同。当你用GB2313格式保存一个文件,用utf-8的格式打开,它必然就显示乱码。 据我所知,github上面是utf-8,而visual studio默认保存为GB2312,把代码推送到gith…

ChineseChess.2023.10.29.02

中国象棋残局模拟器 中国象棋残局模拟器ChineseChess.2023.10.29.02_桌游棋牌热门视频

Mac docker+vscode

mac 使用docker vs code 通过vscode 可以使用docker容器的环境。 可以在容器安装gdb, 直接调试代码。 创建容易时候可以指定目录和容易目录可以共享文件。

音画欣赏|《诗和远方》

《诗和远方》 8050cm 陈可之2020年绘 面朝大海,春暖花开 [海子] 从明天起,做一个幸福的人 喂马、劈柴,周游世界 从明天起,关心粮食和蔬菜 我有一所房子,面朝大海,春暖花开 从明天起,和每一…

超市便利店小程序商城该是怎样的

超市便利店的数量非常多,在人流聚集处和小区周边,线下店主要以周边客户为主,一般来说不会缺生意,但也不会有大的增长,线上电商冲击下,尤其是中大型超市或连锁,需要商家线上发展获得生意。 而除…

基于群居蜘蛛算法的无人机航迹规划

基于群居蜘蛛算法的无人机航迹规划 文章目录 基于群居蜘蛛算法的无人机航迹规划1.群居蜘蛛搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用群居蜘蛛算法来优化无人机航迹规划。 …

拉扎维模拟CMOS集成电路设计西交张鸿老师课程P6~9视频学习记录

目录 p6 p7 CG放大器 输入阻抗的计算方法; 输出阻抗的计算​编辑​编辑 p8p9 为什么需要差动放大器 噪声 什么是差分信号 基础差动放大器 利用叠加法求解增益; 共模响应 CMRR 带其他类似负载的差动对 ------------------------------------…

Nacos的安装和实操

前言 最近在学SpringCloud,写下遇到的问题方便自己方便他人,主要描述Nacos的安装与会遇到的一些问题+代码实操 文章目录 前言Nacos基本介绍Nacos基本使用Nacos的安装部署Nacos配置MySQL数据源管理界面鉴权设置 简单的操作Demo Nacos基本介绍…

window11 更改 vscode 插件目录,释放C盘内存

由于经常使用vscode开发会安装一些代码提示插件,然后C盘内容会逐渐缩小,最终排查定位到vscode。这个吃内存不眨眼的家伙。 建议:不要把插件目录和vscode安装目录放在同一个位置,不然这样vscode更新后,插件也会消失。 v…

【Docker 内核详解】cgroups 资源限制(二):组织结构与基本规则、子系统简介

cgroups 资源限制(二):组织结构与基本规则、子系统简介 1.组织结构与基本规则2.子系统简介 1.组织结构与基本规则 在之前的博客已经介绍过,传统的 Unix 任务管理,实际上是先启动 init 任务作为根节点,再由…

java项目之宠物医院信息管理系统(ssm框架)

项目简介 宠物医院信息管理系统实现了以下功能: 管理员:个人中心、用户管理、医生管理、医学知识管理、科室信息管理、医生信息管理、预约挂号管理、医嘱信息管理、药品信息管理、订单信息管理、留言板管理、系统管理。用户:个人中心、预约…

MC红石粉、红石火把、中继器学习笔记

红石粉 按右键可以改变它的形态红石线的强度会从15递减至0。红石线可以往上爬一格,但是不能爬2格以上的。 红石线在非实体方块只能往上爬而不能往下爬 做一个可控制的轨道运输 玩生存的我一直想做一个可控制的铁轨,遇到的一个问题就是,矿…