计算机组成原理【CO】Ch7 I/O大题

2024-04-21 12:44

本文主要是介绍计算机组成原理【CO】Ch7 I/O大题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

I/O大题解题方法

I/O接口

各种I/O方式的特点

 I/O端口编址

程序查询方式

中断控制方式 

DMA控制方式

程序中断的工作流程

程序中断的工作流程

DMA方式和中断方式的区别

 

 


I/O大题解题方法

CPU

  • 程序查询
  • 中断
  • DMA

I/O接口的类型

  • 按字传输:每次传输一个字
    • 程序查询
    • 中断
  • 按块传输:每次传输一整块
    • DMA

设备

  • 霸道总裁型:
    • IO设备按自己的节奏往IO缓冲区冲入数据
    • 如果CPU不及时取走数据,就可能会导致数据的丢失
  • 乖乖听话型:
    • IO设备会根据CPU的指挥,往IO缓冲区冲入数据
    • CPU从缓冲区中取走一个字的数据后,会指挥IO设备输入下一个字的数据,不会有数据丢失的问题

传输总线

  • 并行:多位一起传
  • 串行:
    • 一位一传
    • 可能会有附加的校验位、起始位、结束位

CPU每次介入的动作

  • 程序查询方式
    • 每次检查IO接口的数据是否准备完毕
    • 一次程序查询的时间开销:需要执行多少指令?需要多少个时钟周期?
    • CPU的介入频率
      • 取决于查询程序上CPU的时间频率
  • 中断控制方式
    • 中断响应(隐指令)
      • 时间开销
      • 通常以时钟数作为条件
    • 中断服务程序
      • 时钟数
      • 指令总数、结合CPI
    • CPU介入的频率
      • 取决于IO接口发来中断的频率
  • DMA控制方式
    • 预处理
      • 让DMA接口输入一块数据
    • 后处理
      • 一整块数据传输完成后DMA接口给CPU中断,CPU处理中断
    • CPU介入的频率
      • 每传一块介入一次

数据丢失问题

  • 程序查询方式
    • 当IO接口缓冲区大小有限时,每一次数据冲入后,CPU都需要及时把数据取走,防止丢失
    • 若CPU每次查询的时间开销太久,跟不上数据冲入的速度,则数据可能丢失
  • 中断控制方式
    • 判断是否会数据丢失:中断处理的时间总共花了多少?是否大于IO接口冲入一次数据的时间?
    • 若中断处理的时间太久,可能导致IO接口数据被覆盖
  • DMA控制方式
    • 不会数据丢失,DMA接口的总线使用优先级高

I/O接口

I/O接口【也叫I/O控制器】

I/O接口的功能

  • 地址译码、设备选择:通过CPU中来的外设的地址码,找到指定的设备
  • 主机和外设的通信联络控制:时序配合,协调不同工作速度的外设和主机之间交换信息
  • 数据缓冲:CPU与外设之间的速度不匹配,设置数据缓冲寄存器,避免丢失数据
  • 信号格式的转换:电平转换、串/并转换、数/模转换
  • 控制命令、状态信息
    • CPU要启动外设时,通过I/O接口重点命令寄存器向外设发出启动命令
    • 外设准备就绪后,将“准备好”的转台信息送回I/O接口中的状态寄存器,并反馈给CPU

I/O接口的基本结构

  • 端口(Port):接口电路中可以进行读写的寄存器
  • 接口(Interface):若干端口加上相应的控制逻辑
  • I/O指令:对数据缓冲寄存器、状态/控制寄存器的进行访问操作的指令
    • 只能在OS内核的底层I/O软件中使用
    • I/O指令实现的数据传送通常发生在通用寄存器和I/O端口之间
    • 是一种特权指令
  • 数据线:【双向传输】
    • 命令字、状态字、中断类型号
    • 外设将状态信息传中到CPU
    • CPU对外设的控制命令
    • 发往CPU的中断类型号
    • 【因为是从外部设备传输到CPU,故只能从数据线传输】
  • 地址线:【单向传输】
    • 要访问的I/O接口中的寄存器的地址
  • 控制线:【单向传输】
    • 仲裁信号
    • 握手信号
  • I/O总线:
    • 控制线、地址线:单向传输,从CPU传送给IO接口
    • 数据线:双向传输,命令字、状态字、中断类型号均是IO接口发往CPU

I/O接口的类型

按数据传输方式分

📢接口要完成数据格式的转换

📢这里的数据传送方式是指外设和接口一侧的传送方式

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

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

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

按功能选择的灵活性分

  • 可编程接口
  • 不可编程接口

 

常见的I/O接口:打印机适配器、网络控制器、可编程中断控制器

各种I/O方式的特点

程序查询

完全采用软件的方式实现。

中断方式

通过中断服务程序实现数据传送,但中断处理需要相关硬件的实现。

DMA方式

完全采用硬件控制数据交换的过程。

通道

采用软硬件结合的方法,通过执行通道程序(由通道指令组成)控制数据交换的过程。

 I/O端口编址

 

统一编址(存储器映射方式)

独立编址(I/O映射方式)

定义

  • 把I/O端口当做存储器的单元进行地址分配
  • CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口
  • I/O端口的地址空间与主存地址空间无法从地址码的形式上区分
  • 需要设置专门的I/O指令来访存I/O端口

特点

  • 依靠地址码的不同区分存储单元和I/O设备
  • 通过专门的I/O指令来区分存储单元和I/O设备

优点

  • 不需要专门的I/O指令
  • 可以使CPU访问I/O的操作更灵活、更方便
  • 还可以使端口有较大的编址空间
  • 输入/输出指令与存储器指令有明显区别
  • 程序编制清晰,便于理解

缺点

  • 端口占用存储器地址,使内存容量变小
  • I/O设备进行数据输入/输出操作时,执行速度较慢
  • 输入/输出指令少,一般只能对端口进行传送操作
  • 尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号增
    加了控制的复杂性

程序查询方式

  • 程序查询方式
    • 每次检查IO接口的数据是否准备完毕
    • 一次程序查询的时间开销:需要执行多少指令?需要多少个时钟周期?
    • CPU的介入频率
      • 取决于查询程序上CPU的时间频率

中断控制方式 

  • 中断控制方式
    • 中断响应(隐指令)
      • 时间开销
      • 通常以时钟数作为条件
    • 中断服务程序
      • 时钟数
      • 指令总数、结合CPI
    • CPU介入的频率
      • 取决于IO接口发来中断的频率

DMA控制方式

  • DMA控制方式
    • 预处理
      • 让DMA接口输入一块数据
      • 数据传输前由DMA控制器请求总线的使用权
    • 数据传输:
      • DMA控制器直接控制总线完成
    • 后处理
      • 一整块数据传输完成后DMA接口给CPU传递中断信号,CPU处理中断
    • CPU介入的频率
      • 每传一介入一次
  • DMA请求 VS DMA中断:
    • 缓冲区充满请求一次
    • 一整块传输完中断一次

程序中断的工作流程

程序中断的工作流程

  • 中断请求
  • 中断响应判优
    • ⚠️中断的响应判优是硬件排队器实现的,是固定
    • 中断的处理优先级可以通过中断屏蔽技术动态调整
  • CPU响应中断的条件
  • 中断响应的过程:

DMA方式和中断方式的区别

DMA

中断方式

DMA方式靠硬件传送

中断方式靠程序【软件】传送

请求的是总线的使用权

请求的是CPU处理时间

DMA方式除了预处理和后处理,其他时候不占用CPU资源

中断方式是程序的切换,需要保护和恢复现场

对DMA请求的响应可以发生在每个机器周期结束时在取指周期、间址周期、执行周期后都可以【一个总线事务后】

对中断请求的响应只能发生在每条指令执行完毕时

即指令的执行周期后

DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送

中断传送过程需要CPU的干预

DMA方式仅局限于传送数据块的I/O操作

中断方式具有对异常事件的处理能力

这篇关于计算机组成原理【CO】Ch7 I/O大题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/923111

相关文章

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

hdu4407(容斥原理)

题意:给一串数字1,2,......n,两个操作:1、修改第k个数字,2、查询区间[l,r]中与n互质的数之和。 解题思路:咱一看,像线段树,但是如果用线段树做,那么每个区间一定要记录所有的素因子,这样会超内存。然后我就做不来了。后来看了题解,原来是用容斥原理来做的。还记得这道题目吗?求区间[1,r]中与p互质的数的个数,如果不会的话就先去做那题吧。现在这题是求区间[l,r]中与n互质的数的和

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

hdu4407容斥原理

题意: 有一个元素为 1~n 的数列{An},有2种操作(1000次): 1、求某段区间 [a,b] 中与 p 互质的数的和。 2、将数列中某个位置元素的值改变。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu

hdu4059容斥原理

求1-n中与n互质的数的4次方之和 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWrit