考研408--组成原理--day15--I/O方式

(以下内容全部出自上述课程)

目录

  • 程序查询方式
    • [1. 程序查询方式-模拟过程](#1. 程序查询方式-模拟过程)
    • [2. 程序查询方式流程图](#2. 程序查询方式流程图)
    • [3. 例题](#3. 例题)
    • [4. 小结](#4. 小结)
  • 中断的作用和原理
    • [1. 基本概念](#1. 基本概念)
    • [2. 分类(了解)](#2. 分类(了解))
    • [3. 中断请求标记](#3. 中断请求标记)
    • [4. 中断判优](#4. 中断判优)
      • [4.1 实现](#4.1 实现)
      • [4.2 优先级](#4.2 优先级)
    • [5. 中断处理过程](#5. 中断处理过程)
      • [5.1 中断隐指令](#5.1 中断隐指令)
      • [5.2 硬件向量法](#5.2 硬件向量法)
      • [5.3 中断服务程序](#5.3 中断服务程序)
    • [6. 小结](#6. 小结)
  • 多重中断
    • [1. 多重中断](#1. 多重中断)
    • [2. 单重中断与多重中断](#2. 单重中断与多重中断)
    • [3. 中断屏蔽技术](#3. 中断屏蔽技术)
    • [4. 拓展](#4. 拓展)
  • 程序中断方式
  • DMA方式
    • [1. DMA控制器](#1. DMA控制器)
    • [2. DMA传送过程](#2. DMA传送过程)
    • [3. 特点](#3. 特点)
    • [4. DMA传送方式](#4. DMA传送方式)
    • [5. 小结](#5. 小结)

程序查询方式


1. 程序查询方式-模拟过程

模拟:打印3个字符:A、B、C

先读状态:

地址线:发送 状态寄存器地址(如 0x379)

控制线:发出 读信号(RD)

数据线:从打印机接收状态字(如"空闲"或"忙碌")


若打印机空闲,则写数据:

地址线:发送 数据寄存器地址(如 0x378)

控制线:发出 写信号(WR)

数据线:向打印机发送要打印的字符(如 R1 中的 'A')

打印机收到数据后开始打印

并更新自身状态为"忙碌 "。

2. 程序查询方式流程图

3. 例题


4. 小结

中断的作用和原理

1. 基本概念

中断就好比你在全神贯注听课, 你的同桌有更重要的事情不得不打断你。

2. 分类(了解)

  • 开中断:就是打开中断这个功能,可以中断
  • 关中断:就是关闭中断这个功能,不可以中断
  • 原子操作 :类似于你上厕所,不准任何人来打断你。

3. 中断请求标记

谁有请求谁就变成1.

4. 中断判优

4.1 实现

硬件实现 :就是与或非排线,通过逻辑运算实现这个功能。
软件实现 :就是写代码,用各种判断语句实现这个功能。

4.2 优先级

5. 中断处理过程

5.1 中断隐指令

  • 关中断:就是打开勿扰模式,谁来烦自己都不听。
  • 保存断点:就是你在打游戏,你妈妈叫你吃饭,你就得先给游戏存档,吃完饭回来再玩。
  • 引出中断服务程序 :就是你打游戏被门铃打断了,你就知道自己需要先去开门(处理突发事件)。

5.2 硬件向量法

当外设发生中断时,由硬件自动产生一个中断类型号(中断向量),CPU 根据这个编号查表,快速找到对应中断服务程序的入口地址,并跳转执行。

  • 软件查询法:你每隔一会儿问一遍:"小王,你在吗?"、"小李,你在吗?"...... 逐个排查谁报信。
  • 硬件向量法 :每个士兵都有自己的"编号",只要他喊"报告!我是 13 号!"你就知道他是谁,立刻调出他的任务清单,派他去执行。

5.3 中断服务程序

例子-打游戏被门铃叫去开门

  • 保护现场:存档
  • 中断服务:去开门
  • 恢复现场:调入存档
  • 中断返回 :玩到哪里还是哪里

6. 小结

多重中断

1. 多重中断

就好比:你打游戏的时候被妈妈叫去吃饭,然后在吃饭的时候又被门铃叫过去开门。

2. 单重中断与多重中断

3. 中断屏蔽技术

例子-家中:

设备 警报内容 优先级
1. 烟雾报警器 "着火啦!" ⭐⭐⭐⭐⭐(最高)
2. 门铃 "有人敲门!" ⭐⭐⭐⭐
3. 水龙头漏水 "水溢出啦!" ⭐⭐⭐
4. 闹钟 "该起床了!" ⭐⭐

现在,每个设备都有一个 "开关按钮" ------ 这就是 屏蔽触发器。

  • 当你想忽略某个设备时,就把它的开关按下去(即"屏蔽");
  • 当你想让它正常工作时,就打开开关(即"允许申请")。

这些开关组合在一起,形成一个 "屏蔽字寄存器",就像家里的"安全控制面板"。

中断源 屏蔽字(A B C D) 解释
A 1110 屏蔽 B、C;允许 D 打断(因 D 更高)
B 1111 全部屏蔽,防止它打断别人
C 0110 屏蔽 B;允许 A、D 打断
D 1110 屏蔽 A、B、C;允许自身运行

4. 拓展


程序中断方式



DMA方式

1. DMA控制器

DMA 控制器通过接管总线控制权,实现外设与主存之间的高速、直接数据传输,极大减轻了 CPU 的负担。

类比-搬家:

  • 传统方式(中断/程序查询):你自己一趟趟搬,累死;
  • DMA 方式:请个专业搬运工(DMA),你只告诉它"从哪搬到哪",然后去干别的事,等他搬完告诉你就行。
阶段 步骤 说明
传送前 1. 接受外设的 DMA 请求 → 发出总线请求 外设准备好数据,向 DMA 提出传输请求
2. CPU 响应 → 发出总线响应信号 → 放弃总线控制权 CPU 让出总线,进入"DMA 操作周期"
传送时 3. 确定主存地址、长度 → 自动修改地址和计数 DMA 控制器自动管理内存地址和剩余字数
4. 规定数据方向 → 执行读/写操作 实现主存 ↔ 外设之间的高速数据传输
传送后 5. 向 CPU 报告完成 通知 CPU 数据已传完,CPU 恢复控制
组件 功能
主存地址计数器(AR) 记录当前要访问的主存地址(简称 AR),每传送一个字自动加1。
传送长度计数器(WC) 记录需传送的数据块长度(简称 WC),每传一个字减1;当计数为0时,表示传输完成。
数据缓冲寄存器 暂存每次传送的一个数据字(如一个字节或字),作为外设与主存之间的"中转站"。
设备选择逻辑 选择当前要通信的外设(I/O 设备)。
控制/状态逻辑 协调 DMA 请求、响应、同步等控制信号,管理整个传输流程。
DMA请求触发器 当 I/O 设备准备好数据后,发出一个控制信号,使该触发器置位,向 CPU 提出总线请求(HRQ)。

2. DMA传送过程

3. 特点

4. DMA传送方式

你正在 用笔记本电脑打游戏 (代表 CPU 在执行程序),

同时 外接了一个高速移动硬盘在拷贝电影 (代表外设通过 DMA 传输数据到内存)。

现在的问题是:你的电脑只有一个"读写通道"(就像主存总线),打游戏需要频繁读取游戏资源,拷贝电影也需要大量读写硬盘和内存。两者都想用这个通道,怎么办?

  • 停止CPU访问主存→"暂停游戏,专心拷贝"
  • DMA 与 CPU 交替访存 → "轮流使用,一人一秒"
  • **周期挪用(Cycle Stealing)**→ "趁你不注意,偷偷拷一点"

5. 小结

相关推荐
计算机毕设指导62 天前
基于微信小程序的考研资源共享系统【源码文末联系】
java·spring boot·后端·考研·微信小程序·小程序·maven
小当家.1054 天前
操作系统期末考试基础知识点速成:高频考点与题集精要
考研·操作系统·计算机基础·速成·大学·期末考试
羊小猪~~4 天前
数据库学习笔记(十九)--C/C++调用MYSQL接口
数据库·笔记·后端·sql·学习·mysql·考研
D_FW5 天前
数据结构第一章:绪论
数据结构·考研
拾贰_C5 天前
【无标题】
运维·服务器·数据库·pytorch·python·考研·学习方法
tobias.b6 天前
408真题解析-2009-1-数据结构-队列-进出规则-应用
数据结构·考研·408真题
千谦阙听6 天前
回看2025,续写2026
linux·学习·考研
图先6 天前
第十八讲多元函数积分学(五)——第二型曲面积分
考研
想七想八不如114087 天前
考研京区11408经验贴
考研