IO系统(计算机组成原理)

news2024/9/30 7:27:38

IO系统这一章主要讲的就是IO的四种控制方式,首先对这四种方式进行一个简单介绍,下面再对着四种方式分别进行介绍。

程序查询方式:由cpu通过程序不断查询IO设备是否已经做好准备,从而控制IO设备于主机进行信息交换
程序中断方式:只在IO设备准备就绪并想cpu发出中断请求时才予以响应
DMA方式:主存和IO设备之间有一条直接数据通路,当主存和IO设备交换信息时,无需调用中断服务程序
通道方式:在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行IO命令时,只需启动有关通道,通道将执行通道程序,从而完成IO操作

IO接口

IO接口时主机和外设之间的交接界面,通过接口实现主机和外设之间的信息交换

IO接口的功能

1、进行地址译码和设备选择
2、实现主机和外设的通信联络控制
3、实现数据缓冲
4、信号格式的转换
5、传送控制命令和状态信息

IO接口的基本结构

IO接口是由若干端口加上控制逻辑组成的,(端口是指可读可写的寄存器)

IO接口的编址

1、统一编制:和内存单元一起进行编址,好处是可以用访问内存的指令访问接口,不需要专门的IO指令,缺点是减少的内存的可用空间并且速度比较慢
1.png
2、独立编址:IO的地址空间和主存的地址空间独立,需要设置单独的IO指令
2.png

程序查询方式

主要结构:
主要包括三大部分:设备选择器、数据缓冲器、设备状态标志
3.png
工作流程:
4.png
优缺点:
5.png
6.png

程序中断方式

中断是程序在执行过程中被内部或者外部打断,转而去执行一段事先已经安排好的中断服务程序,当中断服务程序执行完接着返回断点继续执行该程序的过程
7.png
8.png
中断处理方式
1.png
中断响应的时间是每条指令结束后
如何关中断:
cpu内部设置由中断屏蔽触发器可以置零或置1,只有在中断触发屏蔽器标志为0时才可以开关中断
中断向量:中断服务程序入口地址

DMA

在内存和IO设备间高速交换批量数据而设置的,完全由硬件执行,DMA完全从cpu接管总线的控制权,数据交换不再经过cpu而是直接通过总线在内存和IO设备之间进行
2.png
DMA的优点
3.png
DMA能进行的操作
4.png
DMA的响应:
1、外设向DMA发出请求
2、DMA向cpu发出总线请求
3、cpu在总线周期结束后处理DMA发来的请求,并将总线的控制权移交DMA
4、DMA向外设发出准备好的信号
5.png
在上面的处理方式中其实还有一个问题就是cpu放弃总线的控制权之后,IO和cpu并行工作,当cpu再次需要访存时,这时可能就发生冲突,这就需要解决这个问题
6.png
停止cpu访问内存方法
7.png
9.png
周期挪用
10.png
11.png
12.png
交替访内
13.png
8.png
DMA方式的流程图
14.png

通道方式

15.png

多一点细心,多一点耐心!

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

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

相关文章

python自动化测试面试题,25K入职字节测试岗

问: http 和 https的区别   答: https需要申请ssl证书,https是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议http和https使用的是不同的链接方式,用的端口也不一样,前…

《深入理解计算机系统》读书笔记1

1.1信息就是位上下文 只由ASCLL字符构成的文件称为文本文件,所有其他文件都称为二进制文件。 系统中的所有的信息都由一串比特表示。区分不同数据对象的唯一方法是读到这些数据对象时的上下文。 1.2程序被其他程序翻译成不同的格式 预编译,编译&#xf…

【C++】类的访问权限

欢迎来到博主 Apeiron 的博客,祝您旅程愉快 !时止则止,时行则行。动静不失其时,其道光明。 目录 1、缘起 2、示例代码 3、总结 1、缘起 在 C 中,类在设计时,可以把 属性 和 行为 放在不同的权限下加以…

智警杯赛前学习1.1---excel基本操作

修改默认设置 步骤一:打开“Excel选项”窗口,打开“文件”菜单,选择“选项”标签 步骤二:在“Excel选项”窗口中,选择“常规与保存”标签,在“常规与保存”标签中,可以修改录入数据时的默认字体…

【群智能算法改进】一种改进的沙丘猫群优化算法 改进沙丘猫群算法 改进SCSO[1]【Matlab代码#34】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始沙丘猫群优化算法2. 改进沙丘猫群算法2.1 Logistic混沌映射种群初始化2.2 透镜成像折射反向学习策略2.3 动态因子2.4 黄金正弦策略 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xf…

国际标准 ISO 11898 解读

从 1993 第一个版 CAN 国际标准(ISO 11898:1993 和 ISO 11519-2)发布至今,ISO 11898 逐渐被分割整合成了相互独立的 6 个部分。分别以 Part 1 ~ Part 6 来标识。在旧版本(2003年之前)中 ISO 11898 是通信速度为 5kbps…

二维笛卡尔坐标系下的角的概念

文章目录 参考环境笛卡尔坐标系二维笛卡尔坐标系三维笛卡尔坐标系 任意角角的静态定义角的动态定义二维笛卡尔坐标系下角的概念方向正角、负角及零角 象限角象限象限角 终边相同角圆心角终边相同角 参考 项目描述搜索引擎Google 、Bing百度百科首页韩庆波正负角佟大大还是ETT【…

前端学习---Vue(6)路由

一、前端路由的概念和原理 Hash地址与组件的对应关系。 Hash:url中#之后的都是Hash地址 location.hash 1.1 前端路由的工作方式 ① 用户点击了页面上的路由链接 ② 导致了 URL 地址栏中的 Hash 值发生了变化 ③ 前端路由监听了到 Hash 地址的变化 ④ 前端路由把当前 Hash…

doris分区、join

动态分区和临时分区 动态分区 旨在对表级别的分区实现生命周期管理(TTL),减少用户的使用负担。 目前实现了动态添加分区及动态删除分区的功能。只支持 Range 分区。原理 在某些使用场景下,用户会将表按照天进行分区划分,每天定时执行例行任…

tidyverse中filter行筛选时缺失值存在的一个坑

大家好,我是邓飞,好久没有更新博客了,是因为好久没有进步了。 之前我认为鲁迅说的对,他在《野草》中写道:“当我沉默着的时候,我觉得充实;我将开口,同时感到空虚”。现在确切的情况…

msvcr90.dll丢失的解决方法

在使用计算机的过程中,我们时常会遇到一些问题,比如应用程序无法正常启动,提示msvcr90.dll文件丢失,这个问题困扰了许多计算机用户。那么,怎么才能解决这个问题呢? 首先,让我们先了解一下msvcr…

c语言编程练习题:7-65 字符串替换

#include <stdio.h>int main() {char c;while (scanf("%c", &c) 1 && c ! \n) {if (c > A && c < Z) {c Z - (c - A);}printf("%c", c);}return 0; }代码来自&#xff1a;https://yunjinqi.top/article/190

Spring:spring-web中DeferredResult执行过程分析

对于HTTP请求的处理&#xff0c;有时处理请求的时间较长&#xff0c;可能会采用异步处理方式来处理。一般常用的异步处理方式是采用DeferredResult&#xff0c;本文会简单分析一下spring-web的整个处理过程。 首先&#xff0c;提供一个简单的DeferredResult例子&#xff1a; R…

C++map和set

目录&#xff1a; 什么是关联式容器&#xff1f;键值对树形结构的关联式容器 set的概念multiset的使用pair和make_pair map的概念用“[]”实现统计水果的次数 multimap的使用 什么是关联式容器&#xff1f; 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比…

Centos7 Failed to start login service 问题

最近发现Centos7有个问题&#xff0c;用普通用户登录的时候&#xff0c;打开命令窗口无法进行操作一直卡在那里&#xff0c;但切换到root用户后命令输入又正常。因为我需要从 window 上的 SecureCRT 去连接 Centos7&#xff0c;每次都需要用户登录&#xff0c;然后把防火墙关闭…

TLD7002学习笔记(一)-芯片介绍

文章目录 1. 前言2. TLD7002-16ES简介3. TLD7002-16ES基本功能介绍3.1 引脚和功能框图3.2 状态机3.2.1 正常工作时状态机3.2.2 OTP烧录或者仿真时的状态机 3.3 GPIN0和GPIN1引脚3.4 器件地址3.5 电流配置3.6 PWM配置3.7 并行输出&热降额&热过载保护 TLD7002-16ES诊断功…

高完整性系统:INTRODUCING ADA

目录 1. ADA的历史 2. ADA的特点 2.1 Strong, Static Typing 强语言、强静态类型语言 2.1.1 ADA is Strong, Static Typing 2.1.2 C is Weak, Static Typing 2.2 Module System 2.3 Portable 2.3.1 ADA 2.3.2 C 2.3.3 Cost of Runtime Checking 2.4 Readability …

Java jvm调优

系列文章目录 文章目录 系列文章目录前言JVM 基础面试题11. JDK&#xff0c;JRE以及JVM的关系2. 我们的编译器到底干了什么事&#xff1f;3. 类加载机制是什么&#xff1f;3.1 装载(Load)3.2 链接(Link)验证(Verify)准备(Prepare)解析(Resolve) 3.3 初始化(Initialize) 4. 类加…

chatgpt赋能python:Python三次幂与其应用

Python三次幂与其应用 Python是一种高级编程语言&#xff0c;因其简单易用的语法和广泛应用而备受欢迎。在该语言中&#xff0c;三次幂是其中一个常用操作之一。本文将介绍Python三次幂的概念及其应用&#xff0c;为您带来有价值的参考。 什么是Python三次幂&#xff1f; Py…

KubeSphere 社区双周报 | 杭州 Meetup 报名中 | 2023.05.12-05.25

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2023.05.12-2023.…