计组_输入输出系统

embedded/2024/10/18 6:20:15/

2024.08.05:计算机组成原理输入输出学习笔记

第25节 输入输出系统

  • 5.1 IO基本职能
  • 5.2 IO接口的通用结构
  • 5.3 IO数据传送控制方式
    • 5.3.1 程序直接控制(程序查询控制)
      • (1)独占查询
      • (2)定时查询
    • 5.3.2 中断控制(程序中断IO方式)
      • (1)中断响应步骤
      • (2)中断响应的条件
    • 5.3.3 DMA控制
      • (1)三种DMA方式
      • (2)DMA操作步骤
      • (3)DMA与存储系统
      • (4)DMA以虚拟地址还是以物理地址工作?
      • (5)DMA&Cache


  • 输入输出系统控制着计算机和外设之间的交流,计算机(主机)与外设之间交流走的这条路叫做(IO接口),它是一个硬件设备,用来连接外设和主机
  • IO接口就是外设和主机之间进行数据交流的媒介

5.1 IO基本职能

主机侧的称为内部接口:通过IO总线和内存、CPU相连
外设侧的通常称为外部IO接口:通过IO接口电缆(USB线、网线)连接到外设上

在这里插入图片描述

  1. 数据缓冲:主存和CPU寄存器的存取速度非常快,外设速度较低,所以在IO接口中引入数据缓冲寄存器,匹配主机、外设的工作速度
  2. 错误或状态检测:在IO接口中提供状态寄存器保存各种状态信息
  3. 控制和定时:提供控制、定时逻辑,以接受系统总线来的控制命令和定时信号
  4. 数据格式转换:提供数据格式转换部件,使通过外部接口得到的数据转换为内部接口需要的格式或者反着转换

5.2 IO接口的通用结构

在这里插入图片描述


IO接口在主机侧通过IO总线与内存、CPU相连

  • 通过数据线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送 在这里插入图片描述

同时接口和设备的状态信息被记录在状态寄存器中
状态信息就是供CPU去检查一下外设是否准备号去传数据

  • 通过数据线将(状态信息)送到CPU,以供查用

CPU对外设的(控制命令)也通过数据线传送,一般将其送到IO接口的控制寄存器
控制命令走数据线,一般将这些控制命令送到IO接口里面的控制寄存器

  • 因为(状态寄存器)和(控制寄存器)传送方向相反,CPU对他们的访问时间一般都是错开的,所以有的IO接口将它们合二为一
    在这里插入图片描述

地址线用于给出要访问的IO接口中寄存器的地址,它和(读/写控制信号)一起被送到IO接口中的控制逻辑部件中


5.3 IO数据传送控制方式

从刚才我们分析IO接口它的结构的过程中,我们发现如果想要实现外设和CPU之间的数据传输的话,你需要去协调CPU与外设它们彼此之间应该如何配合,那么输入输出系统里面会有三种去控制数据传输的方式

5.3.1 程序直接控制(程序查询控制)

通过程序来定时或持续查询接口方式

  • 优点:简单易控制,外围接口控制逻辑少
  • 缺点:CPU需要从外设接口读取状态,并在外设未就绪时一直处于忙等待(独占查询),由于CPU速度比外设快得多,CPU在等待外设完成任务过程中浪费了很多时间

在这里插入图片描述

(1)独占查询

一旦设备被启动,CPU就一直持续查询接口状态,CPU花费全部时间用于IO操作,此时外设和CPU完全串行工作


(2)定时查询

CPU周期性地查询接口状态,每次总是等到条件满足才进行一个数据的传送,传送完成后返回到用户程序。定时查询的时间间隔与数据传输速率有关


5.3.2 中断控制(程序中断IO方式)

让CPU完全释放出来!

基本思想:外设和CPU并行工作,外设向CPU发出中断请求,在可以响应中断的条件下,CPU再暂时中止正在执行的程序,转去执行中断服务程序为外设服务

在这里插入图片描述
在这里插入图片描述


(1)中断响应步骤

中断响应步骤学习笔记

  1. 关中断
  2. 保存断点
  3. 引出中断服务程序

(2)中断响应的条件

中断响应条件学习笔记

  • CPU要处于开中断的状态
  • 至少要有一个未被屏蔽的中断请求
  • 当前指令刚执行完

5.3.3 DMA控制

DMA是可以跨国CPU直接和内存进行交互的
DMA即直接存储器存取,让外设和内存直接去进行一个数据交换,不需要去通过CPU

通常把专门用来控制总线进行DMA传送的接口硬件称为DMA控制器

DMA传送时,CPU让出总线控制权,由DMA控制器控制总线,通过“挪用”一个主存周期完成和主存之间的一次数据交换,或独占若干个主存周期完成一批数据的交换
在这里插入图片描述
主要用于磁盘等高速设备数据传送:这类设备大多采用成批数据交换方式

采用“请求-响应”方式:中断IO方式请求的是处理器的时间,DMA方式请求的是总线控制权


(1)三种DMA方式

由于DMA控制器和CPU共享主存,所以可能出现二者争用主存的现象,通过这三种方法来让他们协调使用内存

CPU停止法

  • DMA传输的时候,由DMA控制器发一个停止信号给CPU,使得CPU脱离总线,停止访问主存,直到DMA传送一块数据结束

周期挪用法

  • DMA传输时,CPU让出一个总线事物周期,由DMA控制器挪用一个主存周期来访问主存,传送完一个数据后立即释放总线,是一种单字传输方式

交替分时访问法

  • 每个存储周期分成两个时间片,一个给CPU,另一个给DMA控制器,这样在每个存储周期内,CPU和控制器都可以访问存储器

(2)DMA操作步骤

在这里插入图片描述
在这里插入图片描述


(3)DMA与存储系统

没有DMA控制器的,所有对存储器的访问都来自CPU,通过MMU中的地址转换和cache访问来进行存储器存取
在这里插入图片描述
有了DMA后,系统中就有了另一个访问存储器的路径,它不通过地址转换机制和cache层次。这样,在虚拟存储器和cache系统中就会产生一些问题。这些问题的解决通常要结合硬件和软件两方面的技术支持
在这里插入图片描述


(4)DMA以虚拟地址还是以物理地址工作?

  • 如果使用虚拟地址,在DMA接口中就必须将虚实地址转换
    在这里插入图片描述

  • 如果使用物理地址,每次DMA传送就不能跨页
    在这里插入图片描述


(5)DMA&Cache

具有DMA的cache系统也会产生问题。DMA控制器直接向存储器发出访存请求而不通过cache,DMA看到的主存单元值和CPU看到的cache中的副本可能不同
在这里插入图片描述



http://www.ppmy.cn/embedded/126949.html

相关文章

Spring Boot知识管理系统:敏捷开发实践

3系统分析 3.1可行性分析 通过对本知识管理系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本知识管理系统采用JAVA作为开发语言,Spring Boot框…

使用SIFT算法实现可缩放比例的图像匹配:Python与OpenCV

使用SIFT算法实现强大的图像匹配:Python与OpenCV实战指南 在计算机视觉领域,图像匹配是一个常见而重要的任务。无论是在图像拼接、对象识别还是视觉跟踪中,我们都需要可靠的方法来找出一个图像在另一个图像中的位置。今天,我们将探讨一种强大的技术 —— SIFT(尺度…

Android 中获取当前 CPU 频率和占用率

最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下: 目前没有标准的 API 来获取 CPU 的使用频率,只能通过读取指定 CPU 文件获取当前 CPU 频率,在某些机器或者特定版本中…

如何通过 Nginx 只允许 www 域名访问并禁止裸域名访问

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

代码随想录打卡Day57

今天真的好累,开完组会刷今天的题刷了一天。还有助教的事情没做完,还有一些其他的破事全都对在一堆了。今天的前两道题自己AC的,后面两道题看题解写的,最后一道题的思路就算想出来了,实现起来也不简单。。。。处在红温…

Spring Boot 项目中 Redis 与数据库性能对比实战:从缓存配置到时间分析,详解最佳实践

一、前言: 在现代应用中,随着数据量的增大和访问频率的提高,如何提高数据存取的性能变得尤为重要。缓存技术作为一种常见的优化手段,被广泛应用于减少数据库访问压力、提升系统响应速度。Redis 作为一种高效的内存缓存数据库&…

索引面试题总结

索引就是一种有序的数据结构 索引是帮助存储引擎快速获取数据的一种数据结构。 索引结构 按数据结构分: Btree索引,Hash索引,Full-text索引,Full-text 我们平常所说的索引,如果没有特别指明,都是指 B 树结构组织的索引。 创建…

Python的pandas库基本操作(数据分析)

一、安装,导入 1、安装 使用包管理器安装: pip3 install pandas 2、导入 import pandas as pd as是为了方便引用起的别名 二、DateFrame 在Pandas库中,DataFrame 是一种非常重要的数据结构,它提供了一种灵活的方式来存储和操作结构化数据。DataFrame 类似于Excel中…