王道计算机组成原理课代表 - 考研计算机 第七章 输入输出系统 究极精华总结笔记

news2025/1/16 17:48:28

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 计算机组成 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!!
关于对 “输入输出系统” 章节知识点总结的十分全面,涵括了《计算机组成原理》课程里的全部要点本人来来回回过了三遍视频),其中还陆陆续续补充了许多内容,所以读者可以相信本篇博客对于考研计算机组成原理 “输入输出系统” 章节知识点的正确性与全面性;但如果还有自主命题的学校,还需额外读者自行再观看对应学校的自主命题材料

食用说明书:
第一遍学习王道课程时,我的笔记只有标题和截图,后来复习发现看只看图片,并不能很快的了解截图中要重点表达的知识点。
在第二遍复习中,我给每一张截图中 标记了重点,以及 每张图片上方总结了该图片 对应的知识点 以及自己的 思考
最后第三遍,查漏补缺。
所以 ,我把目录放在博客的前面,就是希望读者可以结合目录结构去更好的学习知识点,之后冲刺复习阶段脑海里可以浮现出该知识结构,做到对每一个知识点熟稔于心!
请读者放心!目录展示的知识点结构是十分合理的,可以放心使用该结构去记忆学习!
注意(⊙o⊙)!,每张图片上面的文字,都是该图对应的知识点总结,方便读者更快理解图片内容。


《计算机组成原理》第7章 输入输出系统

【考纲内容】 王道 P302 ~ 338

(一) I/O 接口(I/O控制器)

​ 网课耗时:0.5 h

  • I/O接口的功能 和 基本结构;
  • I/O端口及其编址;

(二) I/O方式

​ 网课耗时:2 h

  • 程序查询方式;
  • 程序中断方式:中断的基本概念、中断响应过程、中断处理过程、多重中断和中断屏蔽的概念;
  • DMA方式:DMA控制器的组成,DMA传送过程;

【复习提示】

I / O 方式 是本章的重点和难点,每年不仅会以 选择题 的形式考查基本概念和原理,而且可能会以 综合题 的形式考查;

  • 各种I/O方式效率的相关计算;
  • 中断方式的各种原理、特点、处理过程、中断屏蔽;
  • DMA方式的特点、传输过程、与中断方式的区别;

(注意,本章节带 * 的内容,大纲已删除,仅供参考学习)

7.1 I/O系统基本概念 *

​ 本节实际就是对 I/O 系统 的简易科普,重点内容会在后续展开介绍;

在这里插入图片描述

在这里插入图片描述

7.1.1 I/O 系统

在这里插入图片描述

在这里插入图片描述

​ ==I / O 接口:==负责协调 主机 与 外部设备 之间的数据传输;

在这里插入图片描述

在这里插入图片描述


7.1.2 I/O 控制方式

​ 在 I / O 系统中,经常进行大量的数据传输,传输过程有各种不同的 I / O 控制方式,基本的控制方式有以下四种:

​ ① 程序查询方式

​ ② 程序中断方式

在这里插入图片描述

在这里插入图片描述

③ DMA控制方式

​ DMA接口 也是一种 I/O接口,只不过DMA接口负责高速外设;

在这里插入图片描述

在这里插入图片描述

④ 通道控制方式

在这里插入图片描述

在这里插入图片描述

小结
在这里插入图片描述


7.1.3 I/O 外部设备

在这里插入图片描述

在这里插入图片描述

1. 输入设备

在这里插入图片描述

2. 输出设备

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述

7.2 I/O接口

本节内容对标 《操作系统》5.1.2 I/O 控制器,两个之间配合学习;

在这里插入图片描述

在这里插入图片描述

7.2.1 I/O 接口的功能

王道里的 I/O 接口功能:

  • 进行地址译码和设备选择;
  • 实现主机和外设的通信联络控制;
  • 实现数据缓冲;
  • 信号格式的转换;
  • 传送控制命令和状态信息;

在这里插入图片描述


7.2.2 I/O 接口的类型

在这里插入图片描述


7.2.3 I/O 接口的基本结构

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


7.2.4 I/O 端口及其编制

​ I/O 接口 = 若干个 I/O 端口 + 控制逻辑;

在这里插入图片描述

​ I/O端口的编址方式分为两种:

  • 统一编址;
  • 独立编址;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


章节小结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7.3 I/O方式 ⭐

本节内容对标 《操作系统》5.1.3 I/O 控制方式,两个之间配合学习;

I / O 系统 实现主机与 I / O 设备 之间的数据传送,可以采用不同的 I / O 控制方式

在这里插入图片描述

​ 三种 I/O 方式 的CPU过程;

在这里插入图片描述

7.3.1 程序查询方式

在这里插入图片描述

程序查询方式 中信息交换的控制完全由 CPU 执行程序实现;

在这里插入图片描述

​ 关于 程序查询方式 的例题

​ 结论:对于快速I/O设备,使用 程序查询方式 会占用大量的CPU查询时间;

在这里插入图片描述

小结

定时查询、独占查询

在这里插入图片描述


7.3.2 中断系统

在这里插入图片描述

1. 中断的基本概念

​ 中断的主要功能 (了解即可) :

  • ① 实现 CPU 与 I/O 设备的并行工作;
  • ② 处理硬件故障和软件错误;
  • ③ 实现人机交互,用户干预机器需要用到中断系统;
  • ④ 实现多道程序、分时操作,多道程序的切换需借助于中断系统;
  • ⑤ 实时处理需要借助中断系统来实现快速响应;
  • ⑥ 实现应用程序和操作系统(管态程序)的切换,称为“软中断”;
  • ⑦ 多处理器系统中各处理器之间的信息交流和任务切换;

​ 当CPU 检测到中断信号后,由 硬件 自动保存被中断程序的断点 (即程序计数器PC).

​ 之后,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址
​ (各中断向量统一存放在 中断向量表 中,该表由操作系统初始化)。

​ 接下来开始执行中断服务程序,保存PSW、保存中断屏蔽字、保存各通用寄存器的值,并提供与中断信号 ==对应的中断服务,==中断服务程序属于操作系统内核。

在这里插入图片描述

​ 程序中断方式的思想:CPU执行程序无需一致等待 I/O设备,代I/O设备完成之后发送中断请求通知CPU;

在这里插入图片描述

非屏蔽中断 + 屏蔽中断

在这里插入图片描述

2. 中断请求标记

​ CPU设置 中断请求标记 来判断是哪个设备发来的中断信号 - 中断请求标记标记触发器INTR

.

CPU响应中断必须满足条件:

  • ① 中断源有中断请求;
  • ② CPU允许中断及开中断(异常和不可屏蔽中断不受此限制);
  • ③ 一条指令执行完毕(异常不受此限制),且没有更紧迫的任务;

在这里插入图片描述

3. 中断判优

​ 中断判优:当有多个中断信号同时到来,该选择先处理哪个 ?

  • 硬件排队器 实现硬件判优,确保当前优先级最高的中断的信号为1;
  • 查询程序 实现软件判优,按优先级递减顺序查询中断;

在这里插入图片描述

​ 中断优先级的设置原则

在这里插入图片描述

4. 中断系统的工作流程

中断隐指令 并不是一条指令,而是CPU遇到中断信息,进行的一系列动作;

【问题一】PC的值如何保存 ?

【问题二】保存完PC的值之后,如何找到对应中断处理程序的入口地址 ?

在这里插入图片描述

中断隐指令 的主要任务:

  • 关中断
  • 保持断点
  • 引出中断服务程序

如何确定中断信号对应的中断服务程序的起始地址:

  • 软件查询法
  • 硬件向量法(重点)

在这里插入图片描述

硬件向量法

​ 首先,可以给 中断请求 编号,例如下图中的 12H、13H、14H

​ 12H 中的 无条件转移指令JMP 200 ,指明 12H 所对应的中断服务程序;

​ 把 指向中断服务程序的地址信息 称为 中断向量

​ 实际过程:由 硬件 产生 向量地址 ,再由 向量地址 找到 入口地址

​ 中断向量是函数的指令,向量地址是函数指针的指针;

在这里插入图片描述

中断服务程序 的主要任务;

  • 保护现场
  • 中断服务
  • 恢复现场
  • 中断返回

在这里插入图片描述

小结

在这里插入图片描述


7.3.3 多重中断

在这里插入图片描述

1. 多重中断的概念

在这里插入图片描述

【问题一】为什么在多重中断中,要把开 中断指令 放在保护现场之后呢 ?

​ 答:保护现场必须完全进行完,才可以开中断,不然主程序的信息可能会被新中断影响,导致未完全保存;(恢复现场同理)

【问题二】中断屏蔽字

​ 答:中断屏蔽字,用来屏蔽优先级较低中断。

在这里插入图片描述

2. 中断屏蔽技术

在这里插入图片描述

在这里插入图片描述

​ 关于 中断屏蔽技术 的例题

在这里插入图片描述

小结

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


7.3.4 程序中断方式

在这里插入图片描述

​ 关于 程序中断方式 的例题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结

在这里插入图片描述


7.3.5 DMA方式

在这里插入图片描述

1. DMA控制器

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

2. DMA传送过程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. DMA传送方式

在这里插入图片描述

在这里插入图片描述

DMA 方式 v.s 中断方式

在这里插入图片描述

小结

在这里插入图片描述

7.4 常见问题和易混淆知识点

1. 中断响应优先级和中断处理优先级分别指什么 ?

​ 中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为“0”,对新中断开放),若是,则中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止的中断继续处理。

2. 向量中断、中断向量、向量地址三个概念是什么关系 ?

​ 中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量;

​ 所有中断的中断服务程序入口地址构成一-个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表。
​ 向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号;

​ 向量中断:指一种识别中断源的技术或方式;

​ 识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址;

3. 程序中断和调用子程序有何区别 ?

​ 两者的根本区别主要表现在服务时间和服务对象上不一样;

​ 1) 调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。而中断过程发生的时间一般是随机的,CPU 在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的;

​ 2)子程序完全为主程序服务,两者属于主从关系。主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系;

​ 3)主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路;而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程;

​ 4)子程序嵌套可实现若千级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大;

​ 从宏观上看,虽然程序中断方式克服了程序查询方式中的CPU“踏步”现象,实现了CPU与IO 并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断服务程序时,仍需暂停原程序的正常运行,尤其是当高速IO设备或辅助存储器频繁地、成批地与主存交换信息时,需要不断打断CPU 执行现行程序,而执行中断服务程序;

1) IO设备有哪些编址方式 ? 各有何特点 ?

​ 统一编址和独立编址;

​ 统一编址是在主存地址中划出一定的范围作为IO地址,以便通过访存指令即可实现对IO的访问,但主存的容量相应减少;

​ 独立编址是指IO地址和主存是分开的,IO地址不占主存空间,但访存需专门的IO指令;

2) CPU响应中断应具备哪些条件 ?

​ 在CPU内部设置的中断屏蔽触发器必须是开放的;

​ 外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号;

​ 外设(接口)中断允许触发器必须为“1",这样才能把外设中断请求送至CPU;

​ 具备上述三个条件时,CPU在现行指令结束的最后一个状态周期响应中断;

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

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

相关文章

阿里云(CentOS)中MySQL8忘记密码的解决方法

阿里云(CentOS)中MySQL8忘记密码的解决方法 方法 在 skip-grant-tables 模式下启动 MySQL,该模式下启动 MySQL 时不启动授权表功能,可以直接免密码登录 实现 编辑 /etc/my.cnf 文件 vim /etc/my.cnf在 [mysqld] 区域末尾添加配置,设置免密…

数组之双指针题

文章目录一、最长连续不重复子序列1.题目介绍2.思路3.二、长度最小的子数组1.题目介绍2.思路3.代码三、数组元素的目标和1.题目介绍2.思路3.代码总结其实在之前我写过不少双指针得题解,刷题专练之数组移除元素 刷题专练之翻转题练习这两篇文章的题解基本就是双指针法…

Protobuf简介

Protobuf简介 1. Protocol Buffers1.1. 什么是Protocol Buffers?1.2. 选择你最喜欢的语言1.3. 如何开始2. Protocol Buffer Basics: C++2.1. 问题领域2.2. 在哪里找到示例代码2.3. 定义协议格式(Defining Your Protocol Format)1. Protocol Buffers Protocol Buffers(协议缓冲…

SpringBoot项目的快速创建方式(包含第一个程序的运行)

目录 一、IDEA所用的版本以及插件 二、操作步骤 一、IDEA所用的版本以及插件 idea的版本: idea2022版本下载安装配置与卸载详细步骤(包含运行第一个java程序教程)_idea2022下载_云边的快乐猫的博客-CSDN博客 如果英文看不懂就点击&#x1…

性能优化(1)-请求响应优化

一、请求和响应优化 目的:更快的内容到达时间。 1.减少DNS查找:每次主机名的解析都需要一次网络往返,从而增加了请求的延迟时间,同时还会阻塞后续的请求。 重用 TCP 连接:尽可能的使用持久连接,以消除因 TCP 握手和慢启动导致的延迟。 3.减…

C++修炼之练气期第五层——引用

目录 1.引用的概念 2.引用的性质 3.常量引用 4.使用场景 1.作参数 2.作返回值 5.传值与传引用的效率比较 6.值和引用作为返回值的性能比较 7.引用与指针 指针与引用的不同点 要说C语言中哪个知识点最难学难懂,大部分人可能和我一样的答案——指针。C既然…

第十四届蓝桥杯模拟赛第三期(Python)

写在前面 包含本次模拟赛的10道题题解能过样例,应该可以AC若有错误,欢迎评论区指出本次题目除了最后两题有些难度,其余题目较为简单,我只将代码和结果给出,如果不能理解欢迎私信我,我会解答滴。start 2022…

Spring面试专题

讲师:邓澎波 Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 1.1 Spring的发展历程 先介绍Spring是怎么来的,发展中有哪些核心的节点,当前的最新版本是什么等 通过上图可以比较清晰的看到Spring的各个时间版本…

阿赵的MaxScript学习笔记分享九《可编辑多面体的操作》

大家好,我是阿赵。这是MaxScript学习笔记分享的第九篇,可编辑多面体的操作。不知不觉写了这么多篇了,应该还有几篇就写完了。自己给自己加一下油。 在3DsMax里面如果需要建模,一般使用到的塌陷方式有3种,可编辑的网格、…

P6专题:P6 EPPM和PPM基本概念

目录 引言 Oracles Primavera P6 Enterprise Project Portfolio Management(P6 EPPM) Oracles Primavera P6 Professional Project Management 引言 Oracle Primavera系列软件专注于项目密集型企业,其整个项目生命周期内所有项目的组合管…

一些Linux内核内存性能调优笔记!

前言 在工作生活中,我们时常会遇到一些性能问题:比如手机用久了,在滑动窗口或点击 APP 时会出现页面反应慢、卡顿等情况;比如运行在某台服务器上进程的某些性能指标(影响用户体验的 PCT99 指标等)不达预期…

JavaEE学习笔记-SpringBoot快速上手、部分注解解释

SpringBoot快速上手 一、快速创建SpringBoot应用1.1利用IDEA提供的Spring Initializr创建Spring Boot应用1.2Spring Boot生成的项目结构介绍1.3初步测试后端是否OK(建立一个controll类)二、热部署2.1 添加依赖2.2 Setting处项目自动化设置2.3 具体项目设置2.4 待选步骤三、注…

渗透five86-3

本机kali ip为:192.168.56.104,靶机ip用nmap -sP或者arp-scan -l去查看靶机ip为192.168.56.121输入nmap -sS -sV -T5 -A 192.168.56.121 #进行靶机端口信息收集发现仅有80端口,同时发现了robots.txt文件,打开web端发现是Drupal 7的框架,之前的…

【蓝桥杯集训12】DFS(3 / 5)

目录 842. 排列数字 - DFS按位置枚举 843. n-皇后问题 - DFS按行枚举 165. 小猫爬山 - DFS枚举小猫 1209. 带分数 - DFS 3502. 不同路径数 - 842. 排列数字 - DFS按位置枚举 活动 - AcWing 题目: 给你一个整数n 要求将1~n的所有排列情况列出 比如&#xff1a…

stm32hal库硬件IIC使用OLED(SSD1306)

其实OLED算是非常常用的一个小模块了,之前用的一直用的是软件模拟的IIC,总的来说感觉还是都是有点"答辩",经常莫名其妙的就点不亮的,用了cubemx之后硬件iic配置就非常方便了,还是想用硬件iic,一方…

C++ 常用命令行开发工具(Linux)

文章目录1、简介2、gcc / g2.1 system(执行shell 命令)2.2 popen(建立管道I/O)2.3 vforkexec(新建子进程)3、clang3.1 下载和安装clang3.2 clang和gcc比较3.2.1 gcc3.2.2 clang3.2.3 LLVM4、make4.1 例子14…

DNS作用及工作原理

文章目录1. DNS作用2 DNS 三个组成部分:2.1 客户端2.2Local DNS2.3 权威域 DNS 服务器3 工作过程1. DNS作用 DNS 分为 Client 和 Server,Client 扮演发问的角色,也就是问 Server 一个 Domain Name,而 Server 必须要回答此 Domain…

MySQL实战解析底层---深入浅出索引

目录 前言 索引的常见模型 InnoDB 的索引模型 索引维护 后言 覆盖索引 最左前缀原则 索引下推 前言 一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样一本500 页的书,如果你想快速找到其中的某一个知识点&…

CentOS安装RStudio-Server的方法

R语言是生信分析、数据挖掘最常用最好用的软件之一,得到了广大生信工程师、数据分析师的厚爱。Rstudio 是 R 的集成开发环境,使得R语言的用户体验更强。一般个人电脑(PC, Personal Computer)使用单机版的 Rstudio 即可&#xff0c…

I.MX6ULL_Linux_系统篇(22) kernel移植

原厂 Linux 内核编译 NXP 提供的 Linux 源码肯定是可以在自己的 I.MX6ULL EVK 开发板上运行下去的,所以我们肯定是以 I.MX6ULL EVK 开发板为参考,然后将 Linux 内核移植到 I.MX6U-ALPHA 开发板上的。 配置编译 Linux 内核 和uboot一样,在编…