计算机组成原理——第七章输入输出系统(上)

news2025/1/10 0:16:40

如若来世再相见,半点朱唇尽我尝

文章目录

  • 7.1.1 输入输出系统和IO控制方式
  • 7.1.2 外部设备
  • 7.2 IO接口
  • 7.3.1 程序查询方式流程图


7.1.1 输入输出系统和IO控制方式

i/O接口是一个电子部件,会被集成与主板中,而I/O设备则是你看得见摸得着的那些设备,你的I/O设备要和你的主机进行数据的交互,控制信息的传输都需要经过i/O 接口的一个处理
请添加图片描述
I/O接口中包含数据寄存器(主机要输出往外设的数据,或者外设要输往主机的数据),控制寄存器(存储的数据能反映具体的外设要做什么动作),状态寄存器(反映了当前外设的一个状态),但是下图这种程序查询方式是不好的,因为CPU需要不断地检查状态寄存器,在此过程中CPU是一直被占用的,所以提出了程序中断方式,使用这两种方式,我们每输入或者输出一个字,就需要CPU介入一次,CPU就作为中转站作为IO设备和主存之间的中转
请添加图片描述
程序中断方式:CPU执行某个程序 中间若是需要某个I/O操作,I/O设备在这数据准备阶段,CPU是可以去做其他的事情的,不需要进行忙等,I/O操作结束之后,会向CPU发出一个中断请求,CPU在每一个指令结束的末尾都会执行一个中断检查,此时有没有中断请求的到来,若是有此时就会转向去处理这个中断请求,CPU处理完这个中断请求会去继续处理之前的那个指令,或者继续发出一个I/O指令,
请添加图片描述
DMA控制方式
下图也是我们第六章提出过的三总线的结构,其中的DMA 接口(也是一种I/O 接口)就是来管理高速的外部设备的,引入DMA之后,若是CPU向外设发出一次读写命令,指明此次要读或者要写的数据在哪,英爱转存到哪,在那个位置,发出这个指令之后,CPU就会去作其他的事情,I/O设备就去准备数据,然后将数据放在DMA控制器中。每准备好一个字的内容,DMA控制器就会发出一个DMA 请求,接下来DMA控制器会占据一个存取周期,往主存的对应位置写入一个字的数据,若是在存取周期内CPU也想访问主存,要等DMA结束,但一个存取周期一定是比这个CPU执行中断程序的时间要短
请添加图片描述
请添加图片描述
若是中型机,大型机上连接着超级多的I/O 设备,每一个I/O设备每传完一个数据之后,都会向CPU发出一个中断请求,这样效率也就不高,
通道控制方式
之前介绍的DMA方式我们只能连续的读或者写一整块的数据,传送完一整块的数据都需要CPU的介入,引入通道之后,我们对数据的存取位置应该输入到那个位置,这些都会变得灵活,只需要提前编好通道程序就可以,只有通道完成一大堆工作之后才需要CPU的介入
请添加图片描述
I/O 系统基本组成
主存中即保存通道要执行的程序,又保存CPU要执行的程序,I/o 指令是有指令码的,普通的指令是没有命令码的
请添加图片描述
本节回顾
请添加图片描述

7.1.2 外部设备

显存带宽指的是显存的写入速度,现在我们使用的计算机VRAM 一般比较大的原因是显存中除了作为当前显示侦的缓存,还会用于保存即将渲染的图像数据,对于没有独立显卡的计算机来说通常这个显存没有一个单独的存储芯片,而是分配一片内存作为显存,若是带有独立显卡的电脑,独立显卡内就有一个内存作为显存来使用
显示器
请添加图片描述
请添加图片描述
请添加图片描述
阴极射线管显示器的原理
如下有一个接口电路(也就是I/O接口)键盘输入的信息 或者主机想要显示的信息,先把这些字符的ASCII码写入到显存里面(若是汉字则将机内码)接下来在CRT的控制器的控制下,显存中的数据一个个的发送到字符发生器中,这个自行发生器不仅有控制器而且有一个ROM(用来存放每一个ASCII对应的字形码) 然后将字形信息存放于输出缓冲寄存器中,我们将ASCII转化成字形信息就需要这个字符发生器的作用
请添加图片描述

请添加图片描述

打印机
击打式打印机:发票什么的,银行,一般是蓝色的墨,因为是物理打印,所以会留下物理印记,不易仿制
请添加图片描述
按工作方式分类
请添加图片描述
本节回顾
本机主要是注意显存容量的计算,以及显存带宽的计算,
请添加图片描述

7.2 IO接口

之前我们知识说了IO接口有三个寄存器,这里我们继续给它进行细化,
王道书上说主机测(系统主线)数据的传输方式只能是并行传输的,正确是因为2000年之前都是并行,但是现在正在朝串行转化,一个IO接口时可以连接多个设备的,每一个设备所能识别的命令码是不一样的,只有厂家才能知道它们的设备能识别什么样的命令码,所以通常发出这个命令需要驱动程序的协助,CPU可以使用一种比较笨的方式,不断轮询检查的方法检查这个状态寄存器,也可以通过控制线给CPU 发送一个中断信号,当CPU 检查到一个中断请求信号之后,再来处理这个中断请求,这里将状态寄存器和控制寄存器写道一起是因为当CPU要控制一个设备的时候,CPU 要向设备发送一个命令,我们可以先把这个命令信息放到这个控制寄存器中,当IO控制逻辑取出这个控制寄存器中的信息,我们就没有必要让信息一直存放于控制寄存器中,IO控制逻辑取得设备控制之后,随时向cpu 反映一些工作的状态,因此是同一个寄存器,我们就能重复的利用,有的教材也将命令字也叫做控制字
中断类型号:工作完成和故障的中断类型类型肯定不一样,
请添加图片描述
接口与端口
由于接口内部会有多个寄存器,会有多个端口,为了确定CPU 访问的是哪一个端口,哪一个寄存器,那么我们也就需要将端口进行编号
请添加图片描述
统一编制与独立编制

请添加图片描述
请添加图片描述

请添加图片描述
IO接口的分类
请添加图片描述
本节回顾
请添加图片描述

7.3.1 程序查询方式流程图

这里的IO端口就是一个一个的寄存器
这里的预置传输参数 相当于设置一个寄存器,来表明此时有多少字符是未传的,
CPU与I/O 设备时串行工作的,IO设备在干工作的时候,CPU一直在轮询,等工作干完,再次就绪时候,CPU 才可以进行下一次工作
请添加图片描述
例题
这种程序查询方式若是对慢速的IO设备,整体的CPU性能不会有太多的影响,若是快速的IO设备就可能大量的占据CPU的查询时间
请添加图片描述
本节回顾
请添加图片描述

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

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

相关文章

O(1) 时间复杂度的抽奖算法 - The Alias Method

0 背景 在营销等场景下,有种常见的玩法,即抽奖,不论前端抽奖界面如何炫酷,底层抽奖组件具有一致性。本文不讨论奖池的抽取规则、奖池奖品配置、奖池切换、抽奖机会、奖品扣减和发放、告警和降级等,主要聚焦于抽奖算法…

Nginx之TCP/UDP反向代理

Nginx从1.9.13起开始发布ngx_stream_core_module模块不仅能支持TCP代理及负载均衡,其实也是支持UDP协议的。 1.Nginx下载 wget http://nginx.org/download/nginx-1.24.0.tar.gz 2.Nginx安装 #yum -y install proc* openssl* pcre* # tar -zxvf nginx-1.24.0.tar.gz #cd n…

【Docker学习三部曲】—— 核心篇

容器数据卷 基本概念 容器数据卷是 Docker 中用于持久化存储容器数据的一种解决方案它允许容器中的数据在容器重新创建或迁移时得以保留,而不会丢失数据卷可以看作是 Docker 主机和容器之间的一个共享目录容器可以将数据写入数据卷,而这些数据将储存在…

【Jpom】docker-compose 部署 RabbitMQ 3.11.X (包含延迟队列插件)

文章目录 前言参考目录前置准备系统版本软件版本 部署步骤1、Jpom 配置节点信息2、Dockerfile 文件3、插件上传4、修改 docker-compose.yml5、构建 Dockerfile(可选)6、执行 docker-compose 编排7、Jpom 查看 Docker8、登录 RabbitMQ9、直接执行 docker-…

OrCAD原理图检查

OrCAD原理图检查 FPGA或处理器芯片原理图封装检查OrCad元件Part Reference与Reference位号不同检查所有器件是否与CIS库元件匹配用CIS库中的元器件替换已存在器件方法1方法2 DRC检查修改页码Annotate重排位号利用Intersheet References功能进行off-page索引检查封装、厂家、型号…

[数据结构 - C语言] 顺序表

目录 1、线性表 2、顺序表 2.1 顺序表的概念 2.2 接口 3、接口实现 3.1 初始化 3.2 销毁 3.3 容量检测 3.4 打印数据 3.5 顺序表的头插 3.6 顺序表的尾插 3.7 顺序表的头删、尾删 3.8 顺序表查找 3.9 指定位置插入数据 1、线性表 线性表(linear list&…

认识HTTPS以及了解HTTPS的加密过程

目录 简单认识HTTPS: 运营商劫持: 加密的理解: HTTPS的工作过程: 对称加密: 非对称加密: 中间人攻击 证书 简单认识HTTPS: HTTPS 也是一个应用层协议。是在 HTTP 协议的基础上引…

逆向-还原代码之(*point)[4]和char *point[4] (Interl 32)

// source code #include <stdio.h> #include <string.h> #include <stdlib.h> /* * char (*point)[4] // 数组指针。 a[3][4] // 先申明二维数组,用它来指向这个二维数组 * char *point[4] // 指针数组。 a[4][5] // 一连串的指针…

客快物流大数据项目(一百一十六):远程调用 Spring Cloud Feign

文章目录 远程调用 Spring Cloud Feign 一、​​​​​​​简介

OpenGL入门之 深入三角形

一、引言 本教程使用GLEW和GLFW库。  通过本教程&#xff0c;你能轻松的、深入的理解OpenGL如何绘制一个三角形。  如果你不了解OpenGL是什么&#xff0c;可以阅读OpenGL深入理解。 二、基本函数和语句介绍 通过阅读以下的函数&#xff0c;你的大脑里能留下关于OpenGL基本函…

【每日一题Day184】LC1187使数组严格递增 | dp

使数组严格递增【LC1187】 给你两个整数数组 arr1 和 arr2&#xff0c;返回使 arr1 严格递增所需要的最小「操作」数&#xff08;可能为 0&#xff09;。 每一步「操作」中&#xff0c;你可以分别从 arr1 和 arr2 中各选出一个索引&#xff0c;分别为 i 和 j&#xff0c;0 <…

前端学习:HTML块、类、Id

目录 快 一、块元素、内联元素 二、HTML 元素 三、HTML元素 类 一、分类块级元素 二、分类行内元素 Id 一、使用 id 属性 二、 class与ID的差异 三、总结 快 一、块元素、内联元素 大多数HTML元素被定义为块级元素或内联元素。 块级元素在浏览器显示时&#xff0c;通常会…

Docker常用命令详解,有这些足够了

首先启动类 启动docker&#xff1a;systemctl start docker 停止docker&#xff1a;systemctl stop docker 重启docker&#xff1a;systemctl restart docker 查看docker状态&#xff1a;systemctl status docker 开机自启动&#xff1a;systemctl enable docker 查看docker概要…

【CocosCreator入门】CocosCreator组件 | Widget(对齐)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中的Widget组件用于UI布局和调整&#xff0c;可以通过调整Widget组件来实现UI元素的自适应和排版。 目录 一、组件介绍 二、组件属性 三、组件使用 四、脚本示例 一、组件介绍 在Coc…

Python中的统计学(二)

大数定律和中心极限定律都是概率论中重要的定理。它们之间的不同在于它们所涉及的随机变量和极限的不同。 大数定律是指随着样本容量的增大&#xff0c;样本均值越来越接近于总体均值的定律。即样本均值的极限等于总体均值&#xff0c;也就是说&#xff0c;当样本量足够大时&a…

绝了!!PDF转换没想到这么简单

PDF处理是很多小伙伴的“痛”&#xff0c;在工作学习中&#xff0c;PDF转换、PDF编辑、PDF和图片的各种问题都是需要快速解决的&#xff0c;但市面上不少付费的软件让我们很是肉痛&#xff01; 今天给大家推荐5个免费的神仙PDF转换网站&#xff0c;解决你的所以PDF问题~ 记得…

Simulink 自动代码生成电机控制:硬件开发板系统介绍

目录 前言 电源电路 MCU电路 开发板接口 关于电流采样和过流保护 驱动部分 总结 前言 在介绍开发板之前突然有感而发想多说两句&#xff0c;本人从事电控行业也是有一些年头了&#xff0c;除了刚刚毕业就接触的电机控制外&#xff0c;就是电源控制相关的&#xff0c;像三相P…

Point-to Analysis指针分析(2)

https://blog.csdn.net/qq_43391414/article/details/111046505 下面介绍一种新的指针分析的算法Steensgaard算法&#xff0c;并将其与上一篇文章介绍 Steensgaard算法 不同于Andersen算法,Steensgaard在前者的基础上&#xff0c;再次对问题进行了简化&#xff0c;从而指针分析…

远程访问及控制

目录 一、SSH远程管理 1&#xff09;SSH的简介 2&#xff09;SSH的优点 3&#xff09;常用的SSH软件的介绍 4&#xff09;SSH 的组成 5&#xff09;SSH的密钥登录 密钥登录的过程&#xff1a; 二、SSH的运用 1 &#xff09;SSH配置文件信息 2&#xff09;存放ssh服务…

JAVA 进程CPU过高排查

1. top命令看一下JAVA进程&#xff1a; 占用500%多&#xff0c;非常恐怖&#xff0c;程序卡得动不了了。 2. 使用命令top -H -p PID 此处PID就是上一步获取的进程PID&#xff0c;我的PID是13342&#xff0c;通过此命令可以查看实际占用CPU最高的的线程的ID&#xff0c;此处几位…