计算机组成原理 I/O方式

news2024/11/28 10:44:31

I/O 方式

I/O方式分类:

  1. 程序查询方式。由 CPU通过程序不断查询 /O 设备是否已做好准备,从而控制0 设备与主机交换信息
  2. 程序中断方式。只在 I/0 设备准备就绪并向 CPU发出中断请求时才予以响应。
  3. DMA方式。主存和 I/O 设备之间有一条直接数据通路,当主存和 /0 设备交换信息时 无须调用中断服务程序。
  4. 通道方式。在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行0 命令时,只需启动有关
    通道,通道将执行通道程序,从而完成 I/O 操作。
    其中,方式 1)和方式 2)主要用于数据传输率较低的外部设备,方式 3)和方式 4)主要用于数据传输率较高的设备。

程序查询方式

  1. CPU执行初始化程序,并预置传送参数。
  2. 向I/O接口发出命令字,启动I/O设备。
  3. 从外设接口读取其状态信息
  4. CPU 不断查询I/O设备状态,直到外设准备就绪
  5. 传送一次数据
  6. 修改地址和计数器参数
  7. 判断传送是否结束,若未结束转第3步,直到计数器为0

在这里插入图片描述

程序中断方式

中断
中断:由于系统中某些突发事件或异常情况的发生,而强迫CPU暂停(或中断)正在执行的程序转去执行相应的服务,当中断服务结束之后再回到原来被中断的地方继续执行原来的程序。
中断源:发出中断请求的来源。
中断源可以分为两大类:内部中断和外部中断。
中断的原理
在中断传送方式下,外部设备具有申请CPU服务的主动权。当输入设备将数据准备好或者输出设备准备好接收数据时,便可以向CPU发中断请求,使CPU暂时信下当前正在执行的程序而和外部设备完成一次数据传输。等输入/输出操作完成以后,CPU继续执行原来的程序。

中断的功能

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

程序中断方式
CPU在程序中安排好于某个时刻启动某台外设,然后CPU继续执行原来的程序,不需要像查询方式那样一直等待外设准备就绪。一旦外设完成数据传送的准备工作,就主动向CPU 发出中断请求,请求CPU为自己服务。在可以响应中断的条件下,CPU暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送,传送完成后,CPU返回原来的程序。
在这里插入图片描述

程序中断方式工作流程

(1) 中断请求
(2) 中断判优
(3) CPU响应中断的条件
(4) 中断隐指令
(5) 中断向量
(6) 中断处理过程

中断请求
当外部设备处于就绪状态,即输入设备将数据准备好或者输出设备准备好接收数据时,便通过相应的硬件电路向CPU发送一个中断请求信号,请求为之服务
中断判优
一个计算机系统包含多个中断源。由于中断产生的随机性,使得有可能在某一时刻有多个中断源向CPU发出中断请求,但是CPU在任意时刻只能响应并处理一个中断。
中断优先级判定的方法一般有两种:软件判优和硬件判优
软件判优: 指通过软件来安排各中断源的优先级别,但是也要借助于简单的硬件电路实现
硬件判优: 指利用专门的硬件电路或中断控制器来安排冬中断源的优先级。

CPU响应中断的条件
中断源有中断请求
CPU允许中断及开中断
一条指令执行完些,且没有更紧迫的任务
中断隐指令

  1. 关中断。在中断服务程序中,为了保护中断现场 (即CPU主要寄存器中的内容)期间不被新的中断所打断
    必须关中断,从而保证被中断的程序在中断服务程序执行完毕后能接着正确地执行。
  2. 保存断点。为保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点[即程序计数器(PC) 的内容] 保存起来
  3. 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址并传送给程序计数器 (PC)。

中断向量
中断向量:不同的设备有不同的中断服务程序,每个中断服务程序都有一个入口地址,CPU 必须找到这个入口地址
中断服务程序入口地址表: 把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
注意:中断向量是中断服务程序的入口地址,中断向量地址是指中断服务程序的入口地址的地址

中断处理过程

  1. 关中断。处理器响应中断后,首先要保护程序的现场状态,在保护现场的过程中,CPU不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序
  2. 保存断点。为保证中断服务程序执行完些后,能正确返回到原来的程序必须将原来的程序的断点保存起来。断点可以压入堆栈,也可以存入主存的特定单元中。
  3. 引出中断服务程序。引出中断服务程序的实质是,取出中断服务程序的入口地址送入程序计数器(PC)。通常有两种方法寻址中断服务程序的入口地址:硬件向量法和软件查询法
  4. 保存现场和屏蔽字。进入中断服务程序后首先要保存现场,现场信息一般是指程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容
  5. 开中断。允许更高级中断请求得到响应,实现中断嵌套
  6. 执行中断服务程序。这是中断请求的目的。
  7. 关中断。保证在恢复现场和屏蔽字时不被中断
  8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态
  9. 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
    在这里插入图片描述

多重中断
在这里插入图片描述

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

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

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

程序中断方式VS程序查询方式
在这里插入图片描述

DMA方式

DMA传送方式的特点

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

DMA控制器的组成
在这里插入图片描述

  • 主存地址计数器:存放要交换数据的主存地址
  • 传送长度计数器:记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号
  • 数据缓冲寄存器:暂存每次传送的数据
  • DMA请求触发器:每当I/0设备准备好数据后,给出一个控制信号,使DMA请求触发器置位
  • “控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数并对 DMA请求信号和CPU响应信号进行协调和同步
  • 中断机构:当一个数据块传送完些后触发中断机构,向CPU提出中断请求

DMA的传送方式

  1. 停止CPU访问主存。
  2. DMA与CPU交替访存。CPU与DMA控制器交替访问内存。不需要总线使用权的申请、建立和归还过程,
  3. 周期挪用(或周期窃取)。当O接口没有DMA请求时,CPU按程序要求访问内存,一旦P接口有DMA请求,则
    I/O接口挪用一个或几个周期。

DMA传送过程

  1. 预处理
  2. 数据传送
  3. 后处理

在这里插入图片描述

通道方式

外部设备

外部设备
外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置
输入设备:用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备
输出设备:用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基
本的输出设备。
外存设备:是指除计算机内存及CPU缓存等以外的存储器。硬磁盘、光盘等是最基本的外存设备

I/O接口

I/O接口的结构

在这里插入图片描述

I/O接口的功能

  1. 实现主机和外设的通信联络控制。解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间
    交换信息,以保证整个计算机系统能统一、协调地工作。
  2. 进行地址译码和设备选择。CPU 送来选择外设的地址码后,接口必须对地址进行译码以产生设备选择信
    息,使主机能和指定外设交换信息。
  3. 实现数据缓冲。CPU 与外设之间的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器
    用于数据的暂存,以避免因速度不一致而丢失数据。
  4. 信号格式的转换。外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信
    号格式的转换功能,如电平转换、并/串或串/并转换、模/数或数/模转换等传送控制命令和状态信息。
  5. CPU 要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令外,设准备就绪时,则将"准备好“状态信息送回接口中的状态寄存器,并反馈给 CPU。外设向 CPU提出中新请求时,CPU也应有相应的响应信号反馈给外设

I/O接口的分类

按数据传送方式可分为:

  1. 并行接口 : 一个字节或一个字所有位同时传送。
  2. 串行接口:一位一位地传送。
    注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行送的。接口要完成数据格式转换。

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

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

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

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

I/O端口编址方式

I/O 端口要想能够被 CPU访问,就必须要对各个端口进行编号,每个端口对应一一个端口地址。而对 I/O
端口的编址方式有与存储器统一编址和独立编址两种。

  1. 统一编址: 又称存储器映射方式,是指把 I/O 端口当作存储器的单元进行地址分配,这种方式 CPU不需要设置专门的 I/O指令,用统一的访存指令就可以访问 I/O 端口。
    优点:不需要专门的输入/输出指令,可使 CPU访问 I/O 的操作更灵活、更方便,还可使端口有较大的编址
    空间。
    缺点:端口 占用存储器地址,使内存容量变小,而且利用存储器编址的 I/O 设备进行数据输入/输出操作
    执行速度较慢。
  2. 独立编址: 又称 I/O 映射方式,I/O 端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的 I/O指今来访问 I/O 端口。
    优点: 输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解。
    缺点: 输入/输出指令少,一般只能对端口进行传送操作,尤其需要 CPU提供存储器读/写、I/0 设备读/写
    两组控制信号,增加了控制的复杂性

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

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

相关文章

什么是IT安全(Information Technology Security)?它的价值如何体现

文章目录 一、IT安全名词解释二、IT安全面临的威胁三、IT安全的类型3.1 网络安全3.2 系统安全3.3 应用安全3.4 数据安全3.5 用户安全3.6 物理安全3.7 安全管理 四、IT 安全和信息安全 ( InfoSec )之间有什么区别?IT安全信息安全(InfoSec) 五、…

湖南大学-计算机网路-2023期末考试【部分原题回忆】

前言 计算机网络第一门考,而且没考好,回忆起来的原题不多。 这门学科学的最认真,复习的最久,考的最差。 教材使用这本书: 简答题(6*530分) MTU和MSS分别是什么,联系是什么&#x…

内外网文件交换系统实用技巧揭秘:安全、效率、便捷一个不少

内外网文件交换系统是一种专门设计用于在企业内部网络(内网)与外部网络(外网)之间安全传输文件的技术解决方案。在企业环境中,出于安全考虑,内部网络通常与外部网络隔离,以防止未经授权的访问和…

Nacos 学习之系列文章

系列文章目录 目录 系列文章目录 文章目录 前言 一、Nacos是什么? 二、Nacos的主要功能 服务发现和服务健康监测 动态配置服务 动态 DNS 服务 三、Nacos 地图 四、Nacos 生态图 总结 前言 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Naco…

MATLAB根据数据拟合曲线

MATLAB根据数据拟合曲线 MATLAB根据数据拟合曲线视频观看 MATLAB根据数据拟合曲线 x1[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,6…

测试分类篇

小王学习录 测试分类按测试对象划分1. 界面测试2. 可靠性测试3. 容错性测试4. 文档测试5. 兼容性测试6. 易用性测试7. 安装卸载测试8. 安全测试9. 性能测试10. 内存泄露测试 按是否查看代码划分1. 黑盒测试2. 白盒测试3. 灰盒测试 按开发阶段分1. 单元测试2. 集成测试3. 系统测…

02. Eureka、Nacos注册中心及负载均衡原理

01小节中订单服务远程调用用户服务案例实现了跨服务请求,在微服务中一个服务可能是集群部署的,也就是一个服务有多个实例,但是我们在调用服务时需要指定具体的服务实例才能调用该服务,在集群模式下,服务地址应该写哪个…

【leetcode】力扣热门之回文链表【简单难度】

题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 用例 输入:head [1,2,2,1] 输出:true 输入:head [1,2] 输出:f…

深度学习:解决CNN的困境——胶囊网络

从2017年底到2018年初,整个人工智能学术研究领域谈论最多的应该就是被誉为深度学习之父Geoffrey E. Hinton 发表的论文 Dynamic Routing Between Capsules,其中介绍了全新的深度学习模型——胶囊网络(Capsule Network) 1. 普通CNN的困境 虽…

【JaveWeb教程】(8)Web前端基础:Vue组件库Element之Table表格组件和Pagination分页组件 详细示例介绍

目录 1 Table表格组件1.1 组件演示1.2 组件属性详解 2 Pagination分页2.1 组件演示2.2 组件属性详解2.3 组件事件详解 接下来我们来学习一下ElementUI的常用组件,对于组件的学习比较简单,我们只需要参考官方提供的代码,然后复制粘贴即可。本节…

二叉搜索树|不同、验证、转换等

二叉搜索树|不同、验证、转换等 文章目录 二叉搜索树|不同、验证、转换等[96 不同的二叉搜索树](https://leetcode.cn/problems/unique-binary-search-trees/description/)[98 验证二叉搜索树](https://leetcode.cn/problems/validate-binary-search-tree/description/)[538 把…

基于机器视觉的车牌检测-车牌图像倾斜矫正位

Radon变换 Radon变换常用于车牌图像倾斜矫正,主要包括水平倾斜和垂直倾斜矫正。Radon变换定义:下图显示了在指定的旋转角度的单一投影。间距为1个像素的平行光穿过图像,则radon变换计算穿过图像光线的线积分。 Radon变换的本质是将原来的XY平…

全志V853 NPU开发之Demo使用说明

上一章节中配置 NPU 扩展包后可以在 menuconfig 里看到两个 Demo 测试应用程序。这里我们来介绍一下怎么使用这两个 Demo。 YOLOV3 在 NPU Package 中我们提供了一个较为完整的 YOLOV3 Demo 作为测试,程序源码位于: openwrt/package/npu/yolov3/src这个…

Spark基础内容

Spark基本介绍 Spark是什么 定义 Apache Spark是用于大规模数据(large-scala data)处理的统一(unified)分析引擎. Spark与MapReduce对比 mapreduce架构图如下: MapReduce的主要缺点: 1- MapReduce是基于进程进行数据处理,进程相对线程来说&#x…

【数据结构—排序—交换排序】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、排序的概念及其运用 1、排序的概念 2、排序运用 3、 常见的排序算法 二、交换排序 1、冒泡排序 1.1算法讲解 1.2冒泡排序的实现: 1.2.1头文件的…

6.云原生之jenkins集成SonarQube

文章目录 搭建 SonarQube配置SonarQube创建sonar-token生成令牌查看jenkins暴露的NodePort端口创建Webhook 服务器将 SonarQube 配置添加到 ks-installer Jenkins集成SonarQube将 SonarQube 服务器添加至 Jenkinsjenkins配置SonarQubejenkins中配置SonarQube创建Jenkins凭证将 …

LDD学习笔记 -- Linux字符设备驱动

LDD学习笔记 -- Linux字符设备驱动 虚拟文件系统 VFS设备号相关Kernel APIs动态申请设备号动态创建设备文件内核空间和用户空间的数据交换系统调用方法readwritelseek 写一个伪字符设备驱动在主机上测试pcd(HOST)在目标板上测试pcd(TARGET) 字符驱动程序用于与Linux内核中的设备…

Docker使用扩展

日升时奋斗,日落时自省 目录 1、容器 1.1、容器的生命周期 1.1.1、容器OOM 1.1.2、容器异常退出 1.1.3、容器暂停 1.2、容器命令 1.2.1、创建容器 1.2.2、启动容器 1.2.3、容器日志 1.2.4、容器交互 1.2.5、容器停止 1.2.6、扩展 1.3、综合演示 2、存…

FPGA高端项目:纯verilog的 25G-UDP 高速协议栈,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案本协议栈的 1G-UDP版本本协议栈的 10G-UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设计架构框图网络调试助手…

《Learning eBPF》读书笔记

文章目录 章节内容简介第1章 什么是ebpf,为什么它很重要?第2章 ebpf版hello world第3章 ebpf程序剖析ebpf虚拟机一个xdp的hello word例子c语言程序编译为ebpf字节码加载bpf程序到内核检查加载的程序运行时编译机器码附加到事件分离程序卸载程序 第4章 bp…