首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
【计算机组成】输入输出系统
时间:
2020-05-31 15:46:40
阅读:
93
评论:
0
收藏:
0
[点我收藏+]
标签:
开始
分离
ima
状态
默认
进一步
异步
存在
程序
输入输出系统概述
组成:
外设、接口、总线、管理软件
基本功能
完成计算机内外的信息传递
保证 CPU 正确选择输出设备
利用缓冲等,实现主机与外设的速度匹配
特点:
异步性、实时性、设备无关性
输入过程:
CPU 把地址值放入总线 --> CPU 等候设备数据有效 --> CPU 从总线读入数据存入寄存器
输出过程:
CPU 把地址值放入总线 --> CPU 把数据值放入总线 --> 设备等数据有效取走数据
IO 系统性能:
存储 IO、通信 IO
连接特性:
哪些设备可以和 IO 相连
IO 系统容量:
IO 系统可以容纳的设备数
响应时间:
从用户输入命令到得到结果所花的时间(s)
吞吐率:
单位时间完成的 IO 操作次数(用 IOP 表示)
输入输出方式
无条件 IO 方式:
执行 IO 指令时,CPU 默认外设已经准备就绪,外设很难满足这一点
程序控制 IO 方式:
执行 IO 指令时,先获取设备状态(设备状态寄存器),决定下一步操作(程序决定)
数据要经过 CPU,CPU 还要浪费大量时间查询设备状态
中断 IO 方式:
外设主动通知 CPU 接收或输出数据,有实时性
DMA 方式:
由硬件执行 IO,外设准备好后通知 DMA,DMA 接管总线,完成数据交换
既有中断的优点,又降低了服务的开销
通道和 IO 处理机方式:
外设种类很多速度差别很大,将外设管理工作从 CPU 总分离出来
通道本身就是个简单的 CPU,执行 IO 指令的处理机
IO 处理机是通道的进一步发展,更像一个 CPU 了
中断请求与响应
概念:
CPU 由内部外部事件引起 CPU 中断正在运行的程序,具有随机性(符合输入输出系统特性)
作用:
主机与外设并行;故障处理;实时处理
类型:
内部中断
(软件、异常)
外部中断
(可屏蔽中断 INTR、不可屏蔽中断 NMI)
基本功能:
中断信号的保持与清除:
通过寄存器存起来,处理完清零
中断优先级:
硬件响应优先序、软件服务优先序(中断服务程序开头,设置自己的中断屏蔽位)
中断源识别:
系统分配给每个中断源的代号(中断号),中断号获取可以用硬件或软件方式
中断处理:
响应:
每执行完一条指令,就会判断是否有中断请求
处理:
保存断点(返回地址)、执行中断程序、返回断点
中断控制:
中断触发方式:
指外设以什么逻辑信号去申请中断(边沿触发、电平触发)
中断排队方式:
按优先级、循环轮流排队
中断嵌套:
中断正在执行的中断程序,不可屏蔽中断不能嵌套
中断屏蔽:
处理器内部有个触发器,“1”时才会响应外部中断
DMA方式
原理:
数据传送不经过 CPU,由 DMA 控制器实现内存和外设、外设和外设之间的直接快速传递
系统构成:
DMA 作为主设备之一
DMA 与 IO 接口集成
DMA 提供专门 IO 总线
DMA 的两种工作状态:
被动态(未获得总线控制权,受 CPU 控制)、主动态(获得总线控制权)
传输步骤:
申请:
一个设备接口试图通过总线向另一个设备发送数据,先向 CPU 发送 DMA 信号
响应:
CPU 收到 DMA 信号,当前总线周期结束后,按 DMA 信号优先级响应相应的 DMA 控制器
数据传送:
DMA 收到 CPU 响应,获得总线控制权,开始直接数据传送
传送结束:
设备向 CPU 发送 DMA 结束信号,交换总线控制权
DMA 操作类型:
数据传送:
源地址数据传到目的地址
数据校验:
不传输,只校验某数据块内部的每个字节
数据检索:
不传输,只在制定内存区域内查找某个关键字或某几个数据位是否存在
DMA 操作方式:
单字节传输模式:
每次 DMA 操作传送一个字节
块传输模式:
每次传送多个字节,有个当前字节计数器,+1 +1 +1
请求传输模式:
DMA 控制器询问外设,当外设请求信号无效时,暂停传输(不释放总线);再次有效再继续传输
级联传输模式:
多个 DMA 级联,分布式
DMA 传输模式:
停止 CPU 访问内存:
传输速率高的设备传输时有优势
周期挪用:
DMA 挪用一个或几个内存周期。若此时 CPU 不需要访存则不冲突,若冲突则 DMA 优先
DMA 与 CPU 交替访存:
直接交替访存,不需要浪费时间
【计算机组成】输入输出系统
标签:
开始
分离
ima
状态
默认
进一步
异步
存在
程序
原文地址:https://www.cnblogs.com/blknemo/p/12811139.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!