【Computer Organization笔记25】I/O:程序直接控制,程序中断方式,直接存储访问(DMA),通道控制方式
本次笔记内容:
P49 计算机组成原理(49)
P50 计算机组成原理(50)
我的计组笔记汇总:计算机组原理成笔记
视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完
幻灯片见我的 GitHub 仓库:计算机组成原理 src/slides
本节课幻灯片:组成原理41 io.pptx
文章目录
- 教学内容安排
- 主要教学内容
- 计算机系统作用与功能
- 个人计算机的组成
- I/O 设备
- 要解决的问题
- 输入输出方式
- 程序直接控制
- 程序直接控制方式特点
- 程序中断方式
- 中断的一些概念
- 中断的完整过程
- 中断设备接口组成
- 8259A中断控制器
- 程序中断方式应用场景
- 中断控制方式特点
- 直接存储访问(DMA)
- DMA控制器组成
- DMA数据传送过程
- DMA方式的问题
- DMA方式的特点
- 通道控制方式
- 通道的功能
- 通道的类型
- 外围处理机
- 设计输入/输出系统
- 输入/输出系统
教学内容安排
- 第一讲:输入/输出系统概述和输入/输出方式
- 第二讲:总线
- 第三讲:接口电路和外部设备
- 大实验答辩
- 第四讲:课程总结
- 期末考试
主要教学内容
- 输入输出系统的作用、功能及与其他系统的关系
- 输入/输出系统组成
- 要解决的问题
- 输入/输出方式
- 程序直接控制
- 中断
- DMA
- 通道
- 外围处理机
计算机系统作用与功能
与计算机外部交换信息
的通道:
- 早期
- 穿孔机、纸带
- 中期
- 键盘、显示器、打印机、鼠标
- 现在
- 语音、图象、图形等多媒体数据(扫描仪、DC)
- 计算机网络
- 将来
- 无所不在的计算、普适计算
- 人机交互、脑机交互
个人计算机的组成
如上,主机在变小,外部设备越来越多。
I/O 设备
- 繁多的输入/输出设备
- 功能多样
- 满足各种要求
- 服务对象不同
- 人、计算机、其他设备
- 数据传输率差别很大
- 键盘、鼠标
- 显示器、网卡
- 功能多样
- 多:种类繁多
- 杂:功能繁杂
- 异:速度不一
如何管理外部设备?
要解决的问题
控制方式:
- CPU如何控制输入/输出?(输入/输出方式)
传输方式:
- 传输通道、方式、速率等(总线、接口)
数据识别和转换:
- 数/模转换、语音识别等,转换为字符、数据等计算机能识别的格式(设备)
输入输出方式
- 程序直接控制:
- CPU直接使用输入/输出指令来控制外部设备
- 程序中断:
- 外部设备请求,CPU响应,CPU与外设并行工作
- 直接存储访问(DMA):
- 专用输入/输出控制器
- 通道
- 外围处理机
程序直接控制
READSERIAL: // 读串口:将读到的数据写入v0低八位
lui t1, %hi(SerialStat)
.TESTR:
lb t0, %lo(SerialStat)(t1) // 查看串口状态
andi t0, t0, 0x0002 // 截取读状态位
bne t0, zero, .RSERIAL // 状态位非零可读进入读
nop
j .TESTR // 检测验证
nop
.RSERIAL:
lui t1, %hi(SerialData)
lb v0, %lo(SerialData)(t1) // 读出
jr ra
nop
CPU方:
- 查询接口状态(循环等待)
- 直到外设已经接收到该字符
- 读字符
外设方:
- 往接口数据缓冲中送字符
- 处理完后,置状态寄存器
- 等待下一个字符
但是此时,CPU一直在循环,什么也干不了。
程序直接控制方式特点
- 成本低
- 效率低
- 严重占用CPU资源
- 适用情况
- 早期计算机中高速设备
程序中断方式
- CPU和外部设备同时工作:
- 外部设备发起请求
- CPU暂停正在执行的程序,进行响应
- 处理完成后,继续执行原来的程序
- 提高CPU的效率
- 可以同时管理多个外部设备
中断的一些概念
- 中断源
- 外中断:I/O设备等
- 异常(内中断):处理器硬件故障、程序“出错”,Trap
- 中断触发器
- 中断状态寄存器
- 中断优先级
- 响应中断的顺序
- 禁止中断与中断屏蔽
- 中断允许触发器(EI、DI)
- 有选择封锁
中断的完整过程
- 中断请求
- 中断源设备设置中断触发器
- 每个中断源有1个中断触发器
- 同时可设置1个中断屏蔽触发器
- 中断源设备设置中断触发器
- 中断响应
- 响应条件
- 允许中断、当前指令结束、优先级
- 响应实现
- 硬件实现的中断隐指令,保存断点
- 响应条件
- 中断处理
- 保存现场信息
- 运行中断服务程序
- 中断返回
中断响应时:除了保存下一条指令PC,还需要保存程序状态的寄存器。
中断设备接口组成
- 中断请求寄存器
- 中断屏蔽寄存器
- 优先级排队线路
- 数据缓冲寄存器
- 中断控制和工作状态逻辑
- 设备选择器
- 中断向量表
8259A中断控制器
如上,在图右侧,表示可以接 8 个中断设备。
程序中断方式应用场景
- CPU与外部设备并行工作
- 硬件故障处理
- 人机交互
- 多道程序和分时操作
- 实时处理(监控)
- 应用程序和操作系统之间的联系
- 多处理机中各处理机之间联系
中断控制方式特点
- 适用情况
- 传输速度不高
- 传输量不大
- 对CPU干扰较大
直接存储访问(DMA)
- I/O设备和主存储器之间的直接数据通路,为专设的硬件,用于高速I/O设备和主存储器之间成组传送数据。
- 数据传输过程由DMA自行控制
- 主存储器需要支持成组传送
- 数据传送开始前和结束后通过程序或中断方式对 DMA进行预处理和后处理
- DMA工作方式
- 独占总线方式
- 周期窃取方式
DMA控制器组成
由中断,发现缺页:
- DBR ,需要换一页出去,方向寄存器;
- ADR 记录内存的起始地址;
- WC 描述这页有多大;
- MAR 描述哪个设备接收;
- CSR 描述状态。
DMA数据传送过程
不会很打扰 CPU 。
DMA方式的问题
虚拟地址和实地址:
- DMA采用实地址:虚拟地址连续,但实地址不连续
- 采用虚拟地址:DMA进行虚实地址转换
Cache一致性:
- 主存中的数据可能不是最新的
- 采用直接写会带来性能的降低
- DMA查询Cache,降低性能
- 直接设计硬件控制
DMA方式的特点
- 与设备一对一服务
- 多DMA控制器同时工作可能发生冲突
- 对CPU打扰适中
- 初始化
- 周期挪用
- 无法适用大量高速设备的管理(矛盾在于 DMA卡是一对一工作)
通道控制方式
- I/O通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机。
- 一对多的连接关系
- 适应不同速度、不同种类的外部设备,可并行工作
通道的功能
- 根据CPU要求选择某一指定外设与系统相连,向该外设发出操作命令,进行初始化
- 指出外设读/写信息的位置以及与外设交换信息的主存缓冲区地址
- 控制外设与主存之间的数据交换
- 指定数据传送结束时的操作内容,检查外设的状态
通道的类型
- 字节多路通道
- 简单的共享通道,分时处理,面向低、中速字符设备
- 选择通道
- 选择一台外设独占整个通道,以成组传送方式传送数据块,效率高,适合快速设备
- 数组多路通道
- 上两种方式的结合,效率高,控制复杂
外围处理机
- 通道型处理机
- 共享内存
- 外围处理机
- 通用计算机
- 独立完成输入/输出功能
- 通过通道方式与主机进行交互
设计输入/输出系统
- 性能
- 考虑吞吐量和延迟
- 适应各种不同类别的设备的性能的差异
- 从操作系统、驱动程序等各方面综合考虑
- 考虑到设备性能的提高
- 可扩展性
- 允许更多的设备接入到输入/输出系统
- 可适应性
- 设备有无
- 设备故障
输入/输出系统
- 输入/输出设备多,功能复杂,速度不一
- 多种控制方式,解决速度不一的问题,尽量少地占用CPU资源
- 操作系统管理
- 硬件直接支持
- 与不同的设备有直接的依赖关系(驱动程序)
- 尽量使设备使用统一的标准——虚拟设备
【Computer Organization笔记25】I/O:程序直接控制,程序中断方式,直接存储访问(DMA),通道控制方式相关推荐
- 【Computer Organization笔记01】计算机组成原理课程要求、计算机的层次结构、计算机的发展历史
资源Bilibili AV58129929 计算机组成原理 清华大学 刘卫东 本次笔记内容: P1 计算机组成原理(01) P2 计算机组成原理(02) 文章目录 课程信息 预热内容-课程介绍 学习目 ...
- 【Computer Organization笔记23】非易失性存储:磁表面存储设备,磁盘的访问过程,RAID技术
本次笔记内容: P45 计算机组成原理(45) P46 计算机组成原理(46) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...
- 【Computer Organization笔记15】清华计组大作业布置:奋战二十天,做台计算机!
本次笔记内容: P29 计算机组成原理(29):第25分钟起 P30 计算机组成原理(30) 我的计组笔记汇总:计算机组成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 108 ...
- 【Computer Organization笔记28】总复习
本次笔记内容: P55 计算机组成原理(55) P56 计算机组成原理(56) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...
- 【Computer Organization笔记24】光盘,FLASH MEMORY,本单元总结
本次笔记内容: P47 计算机组成原理(47) P48 计算机组成原理(48) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...
- 计算机组成原理中flashmemory,【Computer Organization笔记24】光盘,FLASH MEMORY,本单元总结...
本次笔记内容: P47 计算机组成原理(47) P48 计算机组成原理(48) 我的计组笔记汇总:计算机组原理成笔记 本节课幻灯片:无 本节课在 2019 年系列中,被替换成了"MIPS异常 ...
- 【Computer Organization笔记05】运算器基本功能,定点运算器,Am2901的组成与功能,VHDL硬件描述语言
本次笔记内容: P9 计算机组成原理(09) P10 计算机组成原理(10) 本节课对应幻灯片:组成原理15 AM2901,第1页起. 文章目录 P4 CPU示例 P5 运算器的基本功能 执行一次运算 ...
- 【Computer Organization笔记29】大作业展示
本次笔记内容: P57 计算机组成原理(57) P58 计算机组成原理(58) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...
- 【Computer Organization笔记16】大实验任务详细说明:支持指令流水的计算机系统设计与实现
本次笔记内容: P31 计算机组成原理(31) P32 计算机组成原理(32) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...
最新文章
- Python中按指定长度分割字符串并反转
- 【PC端vue ui框架学习】vue项目如何使用基于vue的UI框架iview
- 安卓JNI开发-01
- C++ - 深入理解new
- 系统安装05-Xenserver 7.0安装
- 解决css引用字体跨域问题
- 强化学习——从最简单的开始入手
- 在ubuntu16.04上安装suitecrm
- int转byte数组以及相关原理
- matlab gpa排名,GPA如何决定申请排名多少的大学?(附TOP100大学要求)
- this指向详解,思维脑图与代码的结合,让你一篇搞懂this、call、apply。系列(一)
- LeetCode通关:听说链表是门槛,这就抬脚跨门而入
- python与按键精灵哪个好_UiBot和按键精灵哪个强大,有什么区别?
- mysqlReport 详细解析
- oracle ocm认证概述
- 数字化时代-16:生意人 商人 企业家 资本家 区别
- 如何计算STM32定时器、独立看门狗和窗口看门狗
- 输出阶乘20∑n! 1!+2!+3!+…+20!阶乘定义:n! = 1 * 2 * 3 * … * n
- 期望值、方差、标准差、协方差
- 懒人体育销售系统开发总结
热门文章
- safari浏览器中的菜单栏中,显示[开发]按钮
- 【Oracle】表级别分区操作对索引(本地分区索引,全局分区索引,非分区索引)的影响
- 【Oracle】跟踪文件目录(User_Dump_Dest)生成脚本(11g/9i).txt
- 解决web网站被挂马清除方法
- 解决使用vue-awesome-swiper组件分页器pagination样式设置失效问题
- 在nodeJs的Express框架下用TypeScript编写router路由出现import关键字错误的解决方案
- 如何使用Angular JS设置bootstrap navbar活动类?
- JAVA编程思想——读书笔记 对象的容纳
- Python基础-函数,高阶函数
- 更改项目project名称,与项目名称;