13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口

文章目录

      • 1 I/O接口
        • 1.1 接口定义
        • 1.2 I/O接口的功能(以单总线为例)
        • 1.3 I/O接口的基本结构
        • 1.4 接口与端口
        • 1.5 I/O端口及其编址
        • 1.6 I/O接口的类型
        • 1.7 I/O接口小结
      • 2 I/O方式
        • 2.1 I/O方式1-程序查询方式
          • 2.1.1 程序查询方式流程图
          • 2.1.2 程序查询方式接口
          • 2.1.3 程序查询方式-例题
        • 2.2 I/O方式2-程序中断方式
          • 2.2.1 程序中断方式
          • 2.2.2 程序中断方式-例题
          • 2.2.3 程序中断方式小结
        • 2.3 I/O方式3-DMA方式
          • 2.3.1 DMA控制器
          • 2.3.2 DMA控制器结构
          • 2.3.3 DMA传送过程
          • 2.3.4 DMA传送方式
          • 2.3.5 DMA方式的特点
          • 2.3.6 DMA方式与中断方式比较
          • 2.3.7 例题:CPU占用情况
          • 2.3.8 DMA方式小结

1 I/O接口

1.1 接口定义

接口可以看作是两个部件之间的交接部分。
在这里插入图片描述

1.2 I/O接口的功能(以单总线为例)

在这里插入图片描述
I/O接口(l/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。

接口的功能(要解决的问题)

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

接口的功能(具体操作)

  1. 设备选址
  2. 传送命令
  3. 传送数据
  4. 反映I/O设备的工作状态

1.3 I/O接口的基本结构

在这里插入图片描述

内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连。数据的传输方式只能是并行传输。
外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。

CPU同外设之间的信息传送实质是对接口中的某些寄存器(即端口)进行读或写
在这里插入图片描述

1.4 接口与端口

I/O端口是指接口电路中可以被CPU直接访问的寄存器
在这里插入图片描述

如何访问I/O端口?

I/O端口要想能够被CPU访问,必须要有端口地址,每一个端口都对应着一个端口地址。

1.5 I/O端口及其编址

  1. 统一编址
    在这里插入图片描述
    把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式

CPU靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。

如系统总线中地址线共10根,则可以访问的存储单元个数为210=1024个,假设要给10个l/O端口编址:

(1)0–9表示I/O地址,10–1023为主存单元地址
(2)0–1013表示主存单元地址,1014–1023为I/O地址
(3)10–19表示I/O地址,0–9、20–1023为主存单元地址

I/O编址连续,不可间断

优点:不需要专门的输入/输出指令,可使CPU访问l/O的操作更灵活、更方便,还可使端口有较大的编址空间。
缺点:端口占用了存储器地址,使内存容量变小,而且,利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢。

  1. 独立编址
    在这里插入图片描述
    I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。

CPU靠不同的指令区分内存和I/O设备。

优点:输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。
缺点:输入/输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制的复杂性。

1.6 I/O接口的类型

按数据传送方式可分为

并行接口:一个字节或一个字所有位同时传送。
串行接口:一位一位地传送。

:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行传送的。接口要完成数据格式转换。

按主机访问I/O设备的控制方式可分为

程序查询接口
中断接口
DMA接口

按功能选择的灵活性可分为

可编程接口
不可编程接口

1.7 I/O接口小结

在这里插入图片描述

2 I/O方式

在这里插入图片描述

2.1 I/O方式1-程序查询方式

2.1.1 程序查询方式流程图

在这里插入图片描述

优点:接口设计简单、设备量少。
缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。

2.1.2 程序查询方式接口

在这里插入图片描述
程序查询方式数据传送是发生在CPU寄存器和I/O接口的数据缓冲寄存器之间,交换的单位是一个

2.1.3 程序查询方式-例题

在程序查询方式的输入/输出系统中,假设不考虑处理时间,每一个查询操作需要100个时钟周期,CPU的时钟频率为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32位字长为单位传输数据,即每32位被CPU查询一次,传输率为2×220B/s。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论?

时间的角度:

一个时钟周期为 1 / 50MHz = 20ns
一个查询操作耗时 100×20ns = 2000ns
(1)鼠标

每秒查询鼠标耗时 30×2000ns = 60000ns
查询鼠标所花费的时间比率 = 60000ns / 1s = 0.006%
对鼠标的查询基本不影响CPU的性能

(2)硬盘

每32位需要查询一次,每秒传送 2×220B
每秒需要查询(2×220B)/ 32 = 219
查询硬盘耗时 219×2000ns = 512×1024×2000ns = 1.05×109ns(近似值)
查询硬盘所花费的时间比率=(1.05×109ns)/ 1s = 105%

得出的结论:CPU将全部时间都用于对硬盘的查询也不能满足磁盘传输的要求

频率的角度:

CPU的时钟频率为50MHz,即每秒50×105个时钟周期
(1)鼠标

每秒查询鼠标占用的时钟周期数 30×100 = 3000
查询鼠标所花费的时间比率= 3000 /(50×105)= 0.006%
对鼠标的查询基本不影响CPU的性能

(2)硬盘
每秒需要查询(2×220B)/ 32=219
每秒查询硬盘占用的时钟周期数 219×100 = 5.24×107(近似值)
查询硬盘所花费的时间比率=(5.24×107)/(50×106)=105%

得出的结论:CPU将全部时间都用于对硬盘的查询也不能满足磁盘传输的要求

2.2 I/O方式2-程序中断方式

程序中断的作用如下:

  1. 实现CPU与I/O设备的并行工作。
  2. 处理硬件故障和软件错误。
  3. 实现人机交互,用户干预机器需要用到中断系统。
  4. 实现多道程序、分时操作,多道程序的切换需借助于中断系统。
  5. 实时处理需要借助中断系统来实现快速响应。
  6. 实现应用程序和操作系统(管态程序)的切换,称为“软中断”。
  7. 多处理器系统中各处理器之间的信息交流和任务切换。
2.2.1 程序中断方式

在这里插入图片描述

2.2.2 程序中断方式-例题

假定CPU主频为50MHz,CPI为4。设备D采用异步串行通信方式向主机传送7位ASClI 字符,通信规程中有1位奇校验位和1位停止位,从D接收启动命令到字符送入l/0端口需要0.5ms。请回答下列问题,要求说明理由。
(1)每传送一个字符,在异步串行通信线上共需传输多少位?在设备D持续工作过程中,每秒钟最多可向l/O端口送入多少个字符?

至少包含1位起始位和1位停止位,停止位可能有多位。
在这里插入图片描述

每传送一个字符需要传送1位起始位、7位数据位、1位校验位、1位停止位,共需传送10位。
每0.5ms可送入1个字符
每秒可送入1s / 0.5ms = 2000个字符

(2)设备D采用中断方式进行输入/输出,示意图如下:
在这里插入图片描述
I/O端口每收到一个字符申请一次中断,中断响应需10个时钟周期,中断服务程序共有20条指令,其中第15条指令启动D工作。若CPU需从D读取1000个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段CPU进行了哪些操作?

在这里插入图片描述

  • 主频50MHz,时钟周期为1 / 50MHz = 20ns
    0.5ms对应时钟周期数为0.5ms / 20ns = 25000(统一单位ms→时钟周期)
    传送1个字符需要的时钟周期数为 25000+10+15×4 = 25070(CPI=4,对应的含义是每条指令执行的时钟周期是4,CPI即每条指令执行的时钟周期数)
  • 传送1000个字符需要的时钟周期数为 25070×1000 = 25070000
    CPU用于该任务的时间大约为 1000×(10+20×4)= 9×104个时钟周期
  • 中断响应阶段就是中断隐指令:
  1. 关中断
  2. 保存断点(PC)
  3. 引出中断服务程序
2.2.3 程序中断方式小结

在这里插入图片描述

2.3 I/O方式3-DMA方式

2.3.1 DMA控制器

在这里插入图片描述
每准备好一个数据都要中断CPU,由CPU运行中断服务程序来完成一次传送
磁盘机、磁带机等高速设备需要大批量的数据传送→CPU大量时间用于中断服务由硬件实现控制大批量的数据传送→DMA控制器

在DMA方式中,当I/O设备需要进行数据传送时,通过DMA控制器(DMA接口)向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送。其主要功能有:

  1. 接受外设发出的DMA请求,并向CPU发出总线请求。
  2. CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
  3. 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
  4. 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
  5. 向CPU报告DMA操作的结束。

1 2 是传送前DMA控制器提供的功能;3 4 是传送时DMA控制器提供的功能;5 是传送后DMA控制器提供的功能

2.3.2 DMA控制器结构

在这里插入图片描述

:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。

2.3.3 DMA传送过程

在这里插入图片描述

数据传送过程:
在这里插入图片描述

上面两个图合并:

在这里插入图片描述

2.3.4 DMA传送方式

主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当l/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。

  1. 停止CPU访问主存

在这里插入图片描述

控制简单
CPU处于不工作状态或保持状态
未充分发挥CPU对主存的利用率

  1. DMA与CPU交替访存

在这里插入图片描述

不需要总线使用权的申请、建立和归还过程
硬件逻辑更为复杂

  1. 周期挪用(周期窃取)

在这里插入图片描述
DMA访问主存有三种可能:

CPU此时不访存(不冲突)
CPU正在访存(存取周期结束让出总线)
CPU与DMA同时请求访存(l/O访存优先)

2.3.5 DMA方式的特点

主存和DMA接口之间有一条直接数据通路。
由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,l/O与主机并行工作,程序和传送并行工作。

在这里插入图片描述
DMA方式具有下列特点:

  1. 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
  2. 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
  3. 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
  4. DMA传送速度快,CPU和外设并行工作,提高了系统效率。
  5. DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
2.3.6 DMA方式与中断方式比较

在这里插入图片描述

2.3.7 例题:CPU占用情况

某计算机的CPU主频为500MHz,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。
(1)在中断方式下,CPU用于该外设1/0的时间占整个CPU时间的百分比是多少?

在这里插入图片描述
中断方式下占用CPU是中断服务程序和中断隐指令阶段

每传送一次数据,占用CPU的时间为(18+2)×5 = 100个时钟周期
外设准备32位的数据需要的时间为 32bit ÷ 0.5MB/s = 8×10-6s
每秒可准备的数据个数为 1s ÷ 8×10-6 = 125000个
即每秒需中断的次数为125000次
每秒传送次数=外设数据传输率 / 传输单位
则1s内用于处理中断的时钟周期数(开销)为 125000×100 = 12.5M个
故CPU用于外设I/O 的时间占整个CPU时间的百分比为 12.5M ÷ 500M = 2.5%

(2)当该外设的数据传输率达到5MB/s时,改用DMA方式传送数据。假定每次DMA传送块大小为5000B,且DMA预处理和后处理的总开销为500个时钟周期,则CPU用于该外设l/0的时间占整个CPU时间的百分比是多少?
(假设DMA与CPU之间没有访存冲突)

当外设数据传输率提高到5MB/s时改用DMA方式传送,每次DMA传送一个数据块,大小为5000B,则1s内需产生的DMA次数为 5MB÷5000B = 1000次
CPU用于DMA处理的总开销为 1000×500 = 0.5M
一个时钟周期CPU用于外设I/O的时间占整个CPU时间的百分比为 0.5M / 500M = 0.1%
采用中断方式时,若外设速度达到5MB/s,则故CPU用于外设I/O的时间占整个CPU时间的百分比25%

2.3.8 DMA方式小结

在这里插入图片描述

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

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

相关文章

参与全球人工智能创新链竞争

来源:社科院工业经济研究所作者:郭朝先,中国社会科学院工业经济研究所研究员、产业组织研究室主任、中国社会科学院大学教授、博士生导师、中国可持续发展研究会理事;方澳,中国社会科学院大学经济学院。本文首发《经济…

4 计算机组成原理第三章 存储系统 高速缓冲存储器 虚拟存储器

文章目录1 局部性原理性能分析2 Cache工作原理(简易版)3 地址映射4 替换算法4.1 替换算法(十进制)举例4.2 Cache工作原理(加强版)4.2.1写策略-命中4.2.2 写策略-未命中4.3 替换算法(二进制&…

CICC城市大脑专委会获批成立,欢迎参加专委会共同探索和研究

CICC 城市大脑专委会中国指挥与控制学会(CICC)是经国家民政部正式注册的我国指挥与控制科学技术领域的国家一级学会,是全国性科技社会组织;是中国科学技术协会的正式团体会员,接受中国科学技术协会的直接领导&#xff…

讲座文稿 | 人工智能与因果推理

来源:本文为中国人民大学明德讲坛第23期暨服务器艺术人工智能哲学第11期讲座文稿。主持人:朱锐 嘉宾:邱德钧、秦曾昌、Vincent Luizzi、袁园 主办:中国人民大学哲学与认知科学跨学科交叉平台、服务器艺术 协办:神经现…

顺序栈的介绍及实现

1 栈 从数据结构角度来讲,栈也是线性表,其操作是线性表操作的子集,属操作受限的线性表。 但从数据类型的角度看,它们是和线性表大不相同的重要抽象数据类型。 ◆ 栈是只准在一端进行插入和删除操作的线性表,该端称为栈…

内排序算法一览

文章目录1 插入排序2 希尔(shell)排序3 冒泡排序4 快速排序5 选择排序6 堆排序7 归并排序8 内排序代码一览运行结果常用排序算法时间复杂度和空间复杂度一览表排序:将一组杂乱无章的数据按一定的规律顺次排列起来,可以看作是线性表的一种操作…

Nature:神经元在大脑中的起点并不一定是它们的终点

来源:生物通虽然人体有30亿个DNA碱基和超过30万亿细胞,格里森和他的同事们发现只有几百DNA突变可能出现在头几个细胞分裂后的受精胚胎或在大脑的早期发展。通过在死者的大脑中跟踪这些突变,他们第一次能够重建人类大脑的发育。胎儿大脑的发育…

扎克伯格Meta元宇宙被质疑:年均烧百亿美元,货要等十年

来源:新智元公司内部业务混乱、公司外部观感酷似曾经的雅虎,这些与扎克伯格的元宇宙发力结合在一起,让Meta的新老员工都怨声载道。不少Meta的员工,现在都在抱怨老板的元宇宙项目顾头不顾腚、在公司内部徒增业务困扰但并无法带来收…

链栈的介绍与实现

文章目录1 链栈定义2 链栈基本操作3 链栈代码实现1 链栈定义 链栈:采用链式存储的栈称为链栈 在一个链栈中,栈底就是链表的最后一个结点,而栈顶总是链表的第一个结点。因此,新入栈的元素即为链表新的第一个结点,只要…

栈与递归

文章目录1 递归的概念2 递归算法3 递归数据结构4 递归实现5 递归与循环差别1 递归的概念 递归是指在定义自身的同时又出现了对自身的调用。如果一个函数在其定义体内直接调用自己,则称直接递归函数;如果一个函数经过一系列的中间调用语句,通过…

马斯克与推特达成收购协议 专家警告称这一步迈得过大

来源:网易智能4月26日消息,当地时间周一,在特斯拉首席执行官埃隆马斯克(Elon Musk)敲定将以440亿美元的价格收购个人社交媒体平台推特后,特斯拉股价盘中一度下跌超2%,最终收于每股998.02美元&am…

循环队列的介绍与实现

文章目录1 循环队列定义2 循环队列基本操作3 循环队列代码实现4 补充1 循环队列定义 循环队列:即顺序存储的队列,是为了避免“假溢出”而利用%运算符将队列首尾相接连成一个环状的队列,称为循环队列。 引入循环队列克服顺序队列中存在的“假…

5年内开炸第一颗小行星,改变其轨道!中国计划建立小行星预警监测系统

来源:大数据文摘不知道多少科幻片中,小行星成为了人类灭绝的罪魁祸首。在超高的速度加持下,直径只有十几公里的小行星撞击地球,都有可能造成人类毁灭。为了提前预警这样的事件发生,人类做出了不少努力。美国航天局NASA…

算术逻辑单元设计

文章目录1 基本逻辑符号1.1 ALU1.2 逻辑符号1.3 复合逻辑2 加法器设计2.1 一位加法器2.2 进位产生原理2.2 多位二进制位加法器1 基本逻辑符号 1.1 ALU ALU功能: 算术运算:加、减、乘、除等 逻辑运算:与、或、非、异或等 辅助功能&#xff1a…

数字孪生城市框架与全球实践洞察(2022)

来源 : 世界经济论坛编辑 :蒲蒲全球数字孪生市场蓬勃发展。据预测,到2030年,数字孪生技术的应用将为城市规划、建设、运营节省成本达到2800亿美元。市场规模方面,2020年全球数字孪生市场规模为31亿美元,预计…

2 计算机组成原理第二章 数据的表示和运算 定点数运算 浮点数运算

文章目录1 进制转换2 定点数表示及其运算2.1 定点数表示2.1.1 真值→补码2.1.2 补码→真值2.1.3 [XT]补 →[-XT]补2.1.4 真值、原码、反码、补码转换关系图形总结2.2.4 移码2.2 定点数运算2.2.1 移位运算2.2.2 定点数加减运算2.2.3 溢出判断判溢出方法一判溢出方法二判溢出方法…

Gartner:AI和自动化将是新一代SASE的关键能力

来源:安全内参近年来,安全访问服务边缘(SASE)技术快速发展,得到了较广泛的行业应用。SASE架构通常包括了SD-WAN、FWaaS、安全Web网关、云访问安全代理(CASB)和零信任网络访问(ZTNA&a…

MIPS指令与MIPS汇编语言

文章目录1 MIPS简介2 MIPS指令系统的特点3 MIPS寄存器4 MIPS指令格式4.1 R-Type型指令4.2 l-Type型指令4.3 J-Type型指令4.4 三类指令小结5 MIPS例题6 MIPS过程调用6.1 过程调用和栈6.2 MIPS中栈的实现6.3 栈帧的概念6.4 MIPS中的过程调用(假定P调用Q)6.…

DeepMind爆发史:决定AI高峰的“游戏玩家”|深度学习崛起十年

来源:OneFlow社区翻译:刘晓祯、沈佳丽、胡燕君、许晨阳、周亚坤很少有人会否认,过去十年,AI领域最耀眼的明星组织当属DeepMind,没有之一。那个震动世界的高光时刻发生在2016年3月的一天,AI选手AlphaGo击败了…

链队的介绍与实现

文章目录1 链队定义2 链队基本操作3 代码实现1 链队定义 队列的链式存储结构简称为链队列,它是限制仅在表头删除和表尾插入的单链表。显然仅有单链表的头指针不便于在表尾做插入操作,为此再增加一个尾指针,指向链表上的最后一个结点。 type…