计算机组成原理【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操作

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ROS分布式通讯配置

4WD 必读:分布式通讯是相对于用虚拟机来连接小车上主机来说,如果是 4WD 笔记本无主 机用户,不存在分布式通讯一说。 1.4WD 用户单笔记设置一,连接底盘和雷达还有摄像头。 因为虚拟机带宽问题,无法保证摄像头正常运行。…

利用Django中的缓存系统提升Web应用性能

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在构建现代Web应用时,性能通常是至关重要的考虑因素之一。为了提高用户体验和应…

车轮上的智能:探索机器学习在汽车行业的应用前景

文章目录 引言:一、机器学习在汽车设计中的应用设计优化模拟与测试 二、智能制造与生产三、自动驾驶技术感知与决策数据融合 四、市场与模式的变革五、机器学习对于汽车行业的机遇与挑战挑战机遇 引言: 在当今数字化时代,机器学习作为人工智…

Ansys 2024安装教程(附免费安装包资源)

鼠标右击软件压缩包,选择“解压到Ansys.2024.R1”。 打开解压后的文件夹,鼠标右击“ANSYS2024R1_WINX64_DISK1”选择“装载”。 鼠标右击“setup.exe”选择“以管理员身份运行”。  点击“安装ANSYS License Manger”。 点击“OK”。 点击”I …

【记录】Python3|Selenium 下载 PDF 不预览不弹窗(2024年)

版本: Chrome 124Python 3.12Selenium 4.19.0 版本与我有差异不要紧,只要别差异太大比如 Chrome 用 57 之前的版本了,就可以看本文。 如果你从前完全没使用过、没安装过Selenium,可以参考这篇博客《【记录】Python3|Se…

在PostgreSQL中如何有效地批量导入大量数据,并确保数据加载过程中的性能和稳定性?

文章目录 解决方案1. 使用COPY命令2. 调整配置参数3. 禁用索引和约束4. 使用事务5. 并发导入 总结 在PostgreSQL中,批量导入大量数据是一个常见的需求,特别是在数据迁移、数据仓库填充或大数据分析等场景中。为了确保数据加载过程中的性能和稳定性&#…

第62天:服务攻防-框架安全CVE 复现SpringStrutsLaravelThinkPHP

目录 思维导图 常见语言开发框架: 案例一:PHP-开发框架安全-Thinkphp&Laravel Thinkphp3.2.x日志泄露 自动化脚本检测 如何getshell 手工注入 ​ThinkPHP5 5.0.23 手工注入 工具检测 laravel-cve_2021_3129 案例二:JAVAWEB-开…

docker (CentOS,ubuntu)安装及常用命令

Docker和虚拟机一样,都拥有环境隔离的能力,但它比虚拟机更加轻量级,可以使资源更大化地得到应用 Client(Docker客户端):是Docker的用户界面,可以接受用户命令(docker build&#xff…

AD设置覆铜与板子边缘间隔

1、设置板子边缘与覆铜间隔原因 在单个制板或者批量制板时,有时由于机器切割不稳定,造成切到覆铜,板子容易不稳定。为了保证机器切割不切到覆铜,我们可以设置覆铜到板子边缘的间隔。 2、设置方式 打开Design--->Rules&#…

【BUG】前端|GET _MG_0001.JPG 404 (Not Found),hexo博客搭建过程图片路径正确却找不到图片

我的问题 我查了好多资料,结果原因是图片名称开头是_则该文件会被忽略。。。我注意到网上并没有提到这个问题,遂补了一下这篇博客并且汇总了我找到的所有解决办法。 具体检查方式: hexo生成一下静态资源: hexo g会发现这张图片…

JUC面试——⭐⭐Java中的四种引用类型/Threadlocal

四种引用类型 Java 中对象的引用分为四种级别,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。 基础知识 强引用:普通使用的引用 强引用是造成 Java 内存泄漏的主要原因之一 软引用: GC内存不够时回收 适用于&…

SpringBoot学习之Kafka下载安装和启动(三十三)

一、Mac环境 1、下载Kafka:Apache Kafka 2、这里我选择的版本是kafka_2.12-3.7.0,下载最新版的Kafka二进制文件,解压到你喜欢的目录(建议目录不要带中文)。 3、启动ZooKeeper服务,Kafka需要使用ZooKeeper&…

[linux]进程控制——进程等待

一、概念 进程等待,就是通过wait/waitpid的方式,让父进程(一般)对子进程进行资源回收的等待过程。 二、原因 (1) 当一个进程在退出的时候,如果不回收,就会变成僵尸状态&#xff0…

【C语言】——内存函数的使用及模拟实现

【C语言】——内存函数的使用及模拟实现 前言一、 m e m c p y memcpy memcpy 函数1.1、函数功能(1)函数名理解(2)函数介绍 1.2、函数的使用1.3、函数的模拟实现 二、 m e m m o v e memmove memmove 函数2.1、函数功能2.2、函数的…

Vulnhub靶机 DC-6 打靶实战 详细渗透测试过程

Vulnhub靶机 DC-6 详细渗透流程 打靶实战 目录 Vulnhub靶机 DC-6 详细渗透流程 打靶实战一、将靶机导入到虚拟机当中二、渗透测试主机发现端口扫描信息探测web渗透目录爆破爆破后台密码反弹shell搜集有价值信息SSH远程登录提权反弹jens用户权限的shell 提权利用 一、将靶机导入…

Mac 下安装PostgreSQL经验

使用homebrew终端软件管理器去安装PostgreSQL 如果没有安装brew命令执行以下命令 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 沙果开源物联网系统 SagooIoT | SagooIoT 1.使用命令安装postgreSQL brew i…

制作一个RISC-V的操作系统十二-定时器中断

文章目录 CLINT定时器中断mtimemtimecmp机制总体框架流程时间节拍系统时钟代码 CLINT 产生软件中断和定时器中断 定时器中断 mtime 类似计数器,按照硬件对应的固定频率递增 上电后会自动复位为0,有硬件自动完成 mtimecmp 需要自己设置&#xff0…

【SpringBoot实战篇】获取用户详细信息

1 明确需求 1需要获取用户详细信息 2 接口文档 1基本信息 2请求参数 无 3 响应数据 响应数据类型:application/json 响应参数说明: 响应数据样例 3 思路分析 1用户名在请求头里获取 4 开发 4.1 控制器usercontroller GetMapping("/userInfo")p…

Vue3——组件基础

组件基础 1. 组件定义与使用 1.1 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>组件基础&l…

iZotope RX 10 音频修复和增强工具 mac/win

iZotope RX 10 for Mac是一款出色的音频修复和增强工具&#xff0c;凭借其卓越的音频处理技术&#xff0c;能够轻松应对各种音频问题。 无论是背景噪音、回声还是失真&#xff0c;RX 10都能精准去除&#xff0c;还原清晰纯净的音频。同时&#xff0c;它还提供了丰富的增强工具&…