【计算机组成原理】七、输入/输出系统:2.I/O接口、I/O控制方式

news2024/9/20 22:54:24

I/O接口、I/O控制方式

2. I/O接口

文章目录

  • I/O接口、I/O控制方式
    • 2. I/O接口
      • 2.1 I/O接口的作用
      • 2.2 结构
      • 2.3 工作原理
      • 2.4 I/O端口
      • 2.5 分类
    • 3. I/O控制方式
      • 3.1程序查询方式
      • 3.2程序中断方式
        • 3.2.1中断系统
        • 3.2.2工作流程
        • 3.2.3多重中断与==中断屏蔽技术==
        • 3.2.4程序中断方式
      • 3.3DMA控制方式
        • 3.3.1工作流程
        • 3.3.2传送方式
      • DMA方式vs中断方式
      • 3.4通道控制方式

详见:操作系统 - 5.输入输出(I/O)管理 - 2. I/O 控制器

I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输。

2.1 I/O接口的作用

数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配;

错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用;

控制和定时:接收从控制总线发来的控制信号、时钟信号;

数据格式转换:串-并、并-串等格式转换;

与主机和设备通信:实现主机一I/o接口一I/o设备之间的通信。

2.2 结构

在这里插入图片描述

主机测:内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连。

设备测:外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。

在这里插入图片描述

2.3 工作原理

在这里插入图片描述

  • 如何确定要操作的设备?

每个设备对应一组寄存器,操作不同的寄存器就是在操作不同的设备。

2.4 I/O端口

I/O端口是指接口电路中可以被CPU直接访问的寄存器

  • 接口interface

    • 端口port
      • 数据端口、数据寄存器:读写
      • 控制端口、控制寄存器:只能写
      • 状态端口、状态寄存器:只能读
    • 控制逻辑
  • 如何访问I/O端?

2种方式:统一编制、独立编址。

  1. 统一编制

把l/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式。靠不同的地址码区分内存和l/O设备,I/O地址要求相对固定在地址的某部分。

优点

  1. 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高;
  2. 端口有较大的编址空间;
  3. 读写控制逻辑电路简单。

缺点:端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢)。

  1. 独立编址

I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。靠不同的指令区分内存和I/O设备。

优点:使用专用I/O指令,程序编制清晰I/O端口地址位数少,地址译码速度快I/O端口的地址不占用主存地址空间。

缺点:

  1. I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差;
  2. 需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性。

有个图找不到了

2.5 分类

按数据传送方式可分为

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

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

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

  1. 程序查询接口
  2. 中断接口
  3. DMA接口

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

  1. 可编程接口
  2. 不可编程接口

3. I/O控制方式

详见:操作系统 - 5.输入输出(I/O)管理 - 3. I/O 控制方式

在这里插入图片描述

CPU如何控制键盘I/O的完成?

3.1程序查询方式

程序查询方式:CPU不断轮询检查l/O控制器中的“状态寄存器”,检测到状态为“已完成”之后,再从“数据寄存器”取出输入数据。

这个阶段CPU需要一直检查,进行忙等,CPU与I/O串行工作,而无法去做其他的事情,效率很低。

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

分类:

  1. 独占查询:CPU 100%的时间都在查询l/O状态,完全串行。
  2. 定时查询:在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态。查询的间隔内CPU可以执行其他程序。

在这里插入图片描述

程序查询流程图:

在这里插入图片描述

列题

在这里插入图片描述

3.2程序中断方式

3.2.1中断系统

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。

中断分类:

在这里插入图片描述

3.2.2工作流程

工作流程:

  1. 中断请求

    • 中断源向CPU发送中断请求信号。

    • 中断请求标记触发器INTR

      对于外中断:CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。

  2. 中断响应

    • 响应中断的条件:
      1. 中断源有中断请求;
      2. CPU允许中断即开中断。(“关中断”则不响应中断);
      3. 一条指令执行完毕,且没有更紧迫的任务。
    • 中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源
      • 中断判优既可以用硬件实现,也可用软件实现:
        • 硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;
        • 软件实现是通过查询程序实现的。
      • 中断判优-优先级:
        1. 硬件故障中断属于最高级,其次是软件中断;
        2. 非屏蔽中断优于可屏蔽中断;
        3. DMA请求优于I/O设备传送的中断请求;
        4. 高速设备优于低速设备;
        5. 输入设备优于输出设备;
        6. 实时设备优于普通设备。
  3. 中断处理

    • 中断隐指令
      1. 关中断:原子操作,需要关中断;
      2. 保存断点:保存原程序的PC值
      3. 引出中断服务程序:PC指向中断服务程序的第一条指令。
    • 中断服务程序
      1. 保护现场:保存通用寄存器状态寄存器的内容,以便返回原程序后可以恢复CPU环境;
      2. 中断服务(设备服务、中断要做的主体);
      3. 恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器。

中断处理流程图:

在这里插入图片描述

在关中断、开中断这中间的一段原子操作不能再进入新的中断。所以只允许一个中断服务程序的就是单重中断

3.2.3多重中断与中断屏蔽技术

单重中断:执行中断服务程序时不响应新的中断请求。

多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求。

在这里插入图片描述

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件:

  1. 在中断服务程序中提前设置开中断指令;
  2. 优先级别高的中断源有权中断优先级别低的中断源。

每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字

中断屏蔽字设置的规律:

  1. 一般用**'1’表示屏蔽(高优先级)**,'0’表示正常申请;
  2. 每个中断源对应一个屏蔽字(在处理该中断
    源的中断服务程序时,屏蔽寄存器中的内容
    为该中断源对应的屏蔽字);
  3. 屏蔽字中’1’越多,优先级越高。每个屏蔽
    字中至少有一个’1’(至少要能屏蔽自身的中断)。

例题:

在这里插入图片描述

3.2.4程序中断方式

程序中断方式:等待键盘I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据。

在这里插入图片描述

详细:

在这里插入图片描述

  • PC值:中断隐指令自动保存(硬件完成);
  • 通用寄存器、中断屏蔽字:操作系统保存;
  • 块表(TLB)和Cache:硬件机构保存。

例题:

在这里插入图片描述

3.3DMA控制方式

而对于快速I/O设备,如“磁盘”,每准备好一个字就给CPU发送一次中断请求,会导致CPU需要花大量的时间来处理中断服务程序,CPU利用率严重下降。


DMA接口,即DMA控制器,也是一种特殊的I/O接(I/O控制器)。

DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU同DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。

(三总线方式)

DMA控制器自动控制磁盘与主存的数据读写(每传送1个字);每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求

在这里插入图片描述

3.3.1工作流程

(单总线方式)

在这里插入图片描述

DMA详细传送过程:

在这里插入图片描述

3.3.2传送方式

用于解DMA和CPU的访存冲突

在这里插入图片描述

DMA方式vs中断方式

在这里插入图片描述

3.4通道控制方式

有的商用中型机、大型机可能会接上超多的I/O设备,如果都让CPU来管理,那么CPU就太累了…

通道:可以理解为是“弱鸡版的CPU”。通道是一种特殊的处理器,可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一。

在这里插入图片描述

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

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

相关文章

Excel技巧(二)

函数 SUMIFS函数 用于计算其满足多个条件的全部参数的总量 语法:SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) COUNTIFS函数 计算多个区域中满足给定条件的单元格的个数 语法:countifs(criteria_range1,crit…

【Python报错已解决】`ModuleNotFoundError: No module named ‘graphviz‘`

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言: 在开发过程中,你是否遇到过尝试导入graphviz模块时遇到了ModuleNotFoundError: No module named …

突发:Runway删库跑路,备受瞩目的Stable Diffusion v1.5不见了!

Runway AI, Inc.创立于2018年,总部位于美国纽约州New York,Runway 是一家应用人工智能研究公司。Runway在谷歌领投的D轮融资中募集到约一亿美元。Runway不仅是投资界的新星,其产品Runway ML参与制作的《瞬息全宇宙》更是斩获了奥斯卡最佳女主…

Mysql基础练习题 1084.销售分析 (力扣)

编写解决方案,报告 2019年春季 才售出的产品。即 仅 在 2019-01-01 (含)至 2019-03-31 (含)之间出售的商品 题目链接: https://leetcode.cn/problems/sales-analysis-iii/description/ 建表插入数据&…

【超音速 专利 CN116109587A】一种复杂环境下密封钉焊缝质量检测方法

申请号CN202310066309.X公开号(公开)CN116109587A申请日2023.01.12申请人(公开)超音速人工智能科技股份有限公司(833753)发明人(公开)张俊峰(总); 陈炯标 原文摘要 本发明公开了一种复杂环境下密封钉焊缝…

Javascript常见面试手写题

Javascript常见面试手写题 欢迎Star ⭐️ github 通过自动化脚本,每次push会自动跑单测 100%单测通过,每一个方法都使用jest单元测试进行了验证 后续会持续更新 单测报告 每次push自动生成测试报告 覆盖率单测概览 函数 题目描述1.防抖2.节流5.深浅拷贝6.发…

计算机毕业设计选题推荐-客栈管理系统-酒店预订-民宿管理系统-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Unity编辑器扩展之Scene视图扩展

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity编辑器扩展之Scene视图扩展 TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取! …

农产品智慧物流系统论文

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差&#x…

【比较】数据字节串/字串比较指令 (CMPSB/CMPSW),数据字节串/字串检索指令(SCASB/SCASW)的区别

🌟 嗨,我是命运之光! 🌍 2024,每日百字,记录时光,感谢有你一路同行。 🚀 携手启航,探索未知,激发潜能,每一步都意义非凡。 数据字节串/字串比较…

【卡码网C++基础课 14.链表的基础操作2】

目录 题目描述与分析代码编写 题目描述与分析 题目描述: 请编写一个程序,实现以下操作: 构建一个单向链表,链表中包含一组整数数据,输出链表中的第 m 个元素(m 从 1 开始计数)。 要求&#xf…

python-数组距离

题目描述 已知元素从小到大排列的两个数组 x[] 和 y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。输入格式: 输入共 3 行。 第一行为两个整数 m,n,分别代表数组 f[],g[] 的长度。 第二行有 m …

32力扣 最长有效括号

dp方法&#xff1a; class Solution { public:int longestValidParentheses(string s) {int ns.size();vector<int> dp(n,0);if(n0 || n1) return 0;if(s[0]( && s[1])){dp[1]2;}for(int i2;i<n;i){if(s[i])){if(s[i-1](){dp[i]dp[i-2]2;}else if(s[i-1])){i…

ESXi 失败 – “scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入

在导入vm虚拟机到exsi时导入后报错了 解决方法&#xff1a; 连接到exsi 进入到数据存储虚拟机所在的文件夹后 然后输入以下命令 vmkfstools -i oldfile.vmdk newfile.vmdk -d thin 转换完成后会显示Clone 100% done。 以下为具体详细的步骤 需要用VMware的工具”vmkfstoo…

《机器学习》周志华-CH5(神经网络)

5.1神经元模型 机器学习中谈论神经网络指“神经网络学习”。 神经网络基本成分是神经元(neuron)和模型 1943年&#xff0c;McCulloch and Pitts:M-P神经元模型 5.2感知机与多层网络 感知机(Perceptron)由两层神经元组成&#xff0c;又称“阈值逻辑单元(threshold logic unit)”…

Spring Cloud Alibaba 快速学习之 Gateway

1 引言 Gateway顾名思义就是“网关”的意思&#xff0c;旨在为微服务提供统一的访问入口&#xff0c;然后转发到各个微服务&#xff0c;通常可以在网关中统一做安全认证、监控、限流等等功能&#xff0c;避免每个微服务都重复实现这些功能。 2 代码 本章演示的项目基于Sprin…

如何使用MabatisPlus

一. 引入相关的Maven依赖 例如下面我所引用的依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.1</version></dependency>二.将写好的mapper继承BaseMap…

ref 和 reactive 区别

前言 ref 和 reactive是Vue 3中响应式编程的核心。在Vue中&#xff0c;响应式编程是一种使数据与UI保持同步的方式。当数据变化时&#xff0c;UI会自动更新&#xff0c;反之亦然。这种机制大大简化了前端开发&#xff0c;使我们能够专注于数据和用户界面的交互&#xff0c;而不…

【Spring】Spring Boot入门(1)

本系列共涉及4个框架&#xff1a;Sping,SpringBoot,Spring MVC,Mybatis。 博客涉及框架的重要知识点&#xff0c;根据序号学习即可。 目录 1、什么是Spring 1.1 什么是Spring 1.2 Spring与Spring Boot&#xff08;Spring 脚手架&#xff09;的关系 2、了解Maven 2.1 什…

好用的宠物浮毛清理神器,希喂、IAM、范罗士宠物空气净化器大揭秘

最近宠物空气净化器在养宠家庭中的讨论度一直很高&#xff0c;产品主打可以吸附宠物浮毛和异味的功能。养了三只小猫的我对此也很感兴趣&#xff0c;准备入手一台试试。可我没有想到宠物空气净化器的品牌有这么多&#xff0c;功课都做了好久。看了好几天&#xff0c;最后在希喂…