计算机组成原理:I/O

计算机组成:I/O

  • I/O概述
    • I/O系统构成
    • I/O接口
    • I/O端口
      • 两种编址区分
  • I/O数据传送控制方式
    • 程序查询方式
      • 独占查询
    • 中断控制方式
      • 硬件判优法(向量中断法)
      • 多重中断嵌套
    • DMA控制方式
      • 三种DMA方式
      • DMA操作步骤
  • 内部异常和中断
    • 异常和中断的关系

I/O概述

在这里插入图片描述

I/O系统构成

在这里插入图片描述
一个最基础I/O系统的构成:CPU、I/O接口、硬件(鼠标)。

最主要学习:一个硬件、两个模型,硬件就是指I/O接口,两个模型,一个是中断模型:外设与CPU;另一个是DMA模型:外设与内存(磁盘与主存)。

上面的图里,一个I/O接口对应了不同的外设,这种结构也是可能有的,外设是同样的外设,例如:好多个打印机。但是408考的应该是一个外设对应一个I/O接口。

I/O接口

在这里插入图片描述例如打印机和I/O接口,打印机肯定有自己的时钟,并不是受到CPU控制的,所以为异步方式。

  1. I/O接口组成
    在这里插入图片描述
    例子:计算机与打印机相连,计算机发送一个“开始打印”的命令给打印机,这条指令实际上是由一串二进制代码构成的,通过数据线传入到状态/控制寄存器中。随即I/O接口进行译码,将译码以后的控制信号发送给外设控制逻辑。
    地址译码和I/O控制: 用于对要访问的I/O寄存器号进行译码,对于控制字译码生成控制信号。
    控制线: 传输读/写的命令;并且CPU和外设是异步方式,控制线上还会传输握手信号、寄存器清0等。

问题:控制线是可以双向传输的么?答案:是的,CPU给它发命令,它给CPU发中断信号。

  1. 举个栗子
    在这里插入图片描述
  • 问题1:地址线上传送的是打印机的编址?
    非也,408内基本上是一个外设对应一个I/O接口,那么CPU选择外设是通过传送不同的I/O接口中的端口地址来“间接选择”的。
  • 命令字就是控制指令,不是指我们IR中的指令吧?
    不是捏,但是有点儿像思密达。

详解“状态字”: 类似PSW内的状态信息,包含的内容有:是否已经开机啊,是否有纸张啊,是否有墨水啊。

I/O端口

I/O接口又名“设备控制器”,I/O端口就是I/O接口中的寄存器,例如:数据缓冲寄存器、控制/状态寄存器。CPU编址是对I/O接口中的寄存器进行编址。
在这里插入图片描述

  1. 统一编址
    在这里插入图片描述
    在这里插入图片描述
  2. 独立编址
    在这里插入图片描述
    独立编址下,就不能用load/store指令进行访问外设,而必须用专门的输入/输出指令访问I/O端

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

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

相关文章

ssti模板注入学习

ssti模板注入原理 ssti模板注入是一种基于服务器的模板引擎的特性和漏洞产生的一种漏洞,通过将而已代码注入模板中实现的服务器的攻击 模板引擎 为什么要有模板引擎 在web开发中,为了使用户界面与业务数据(内容)分离而产生的&…

NVMe简介2

共分2部分,这里是第2部分。 NVMe数据结构 NVMe协议中规定每个提交命令的大小为64字节,完成命令大小为16字节,NVMe命令分为Admin和IO两类,NVMe的数据块组织方式有PRP和SGL两种。提交命令的格式如图5所示。 图5 提交命令数据格 N…

高压启动电路--学习记录

常见反激的启动电路 优点:电路设计简单,价格便宜 缺点:损坏大,输入宽范围的时候,为了保证低压能正常启动,启动电阻阻值需要选小,那么高压时损耗会非常大,设计的不好很容易在高压时损…

VS打印printf、cout或者Qt的qDebug等传出的打印信息

在vs中打印printf、cout或者Qt的qDebug等常见的打印信息有时也是必要的,简单的叙述一下过程: 1、在vs中打开你的解决方案。 2、鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。 3、在配置…

苍穹外卖--新增菜品

1.需求分析和设计 产品原型 业务规则: 菜品名称必须是唯一的 菜品必须属于某个分类下,不能单独存在 新增菜品时可以根据情况选择菜品的口味 每个菜品必须对应一张图片 接口设计: 根据类型查询分类(已完成) 文件上传 新增菜品 根据类型…

如何高效集成MySQL数据到金蝶云星空

MySQL数据集成到金蝶云星空:SC采购入库-深圳天一-OK案例分享 在企业信息化建设中,数据的高效流转和准确对接是实现业务流程自动化的关键。本文将聚焦于一个具体的系统对接集成案例——“SC采购入库-深圳天一-OK”,详细探讨如何通过轻易云数据…

【springcloud学习(dalston.sr1)】使用Feign实现接口调用(八)

该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一) (一)Feign的理解 前面文章【springcloud学习(dalston.sr1)】服务消费者通过restTemplat…

SpringbBoot nginx代理获取用户真实IP

为了演示多级代理场景,我们分配了以下服务器资源: 10.1.9.98:充当客户端10.0.3.137:一级代理10.0.4.105:二级代理10.0.4.129:三级代理10.0.4.120:服务器端 各级代理配置 以下是各级代理的基本配…

实验九视图索引

设计性实验 1. 创建视图V_A包括学号,姓名,性别,课程号,课程名、成绩; 一个语句把学号103 课程号3-105 的姓名改为陆君茹1,性别为女 ,然后查看学生表的信息变化,再把上述数据改为原…

typeof运算符和深拷贝

typeof运算符 识别所有值类型识别函数判断是否是引用类型(不可再细分) //判断所有值类型 let a; typeof a //undefined const strabc; typeof str //string const n100; typeof n //number const …

NAT/代理服务器/内网穿透

目录 一 NAT技术 二 内网穿透/内网打洞 三 代理服务器 一 NAT技术 跨网络传输的时候,私网不能直接访问公网,就引入了NAT能讲私网转换为公网进行访问,主要解决IPv4(2^32)地址不足的问题。 1. NAT原理 当某个内网想访问公网,就必…

Git的安装和配置(idea中配置Git)

一、Git的下载和安装 前提条件:IntelliJ IDEA 版本是2023.3 ,那么配置 Git 时推荐使用 Git 2.40.x 或更高版本 下载地址:CNPM Binaries Mirror 操作:打开链接 → 滚动到页面底部 → 选择2.40.x或更高版本的 .exe 文件&#xf…

【教程】Docker更换存储位置

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 背景说明 更换教程 1. 停止 Docker 服务 2. 创建新的存储目录 3. 编辑 Docker 配置文件 4. 迁移已有数据到新位置 5. 启动 Docker 服务 6…

PostgreSQL 配置设置函数

PostgreSQL 配置设置函数 PostgreSQL 提供了一组配置设置函数(Configuration Settings Functions),用于查询和修改数据库服务器的运行时配置参数。这些函数为数据库管理员提供了动态管理数据库配置的能力,无需重启数据库服务。 …

sql server 2019 将单用户状态修改为多用户状态

记录两种将单用户状态修改为多用户状态,我曾经成功过的方法,供参考 第一种方法 USE master; GO -- 终止所有活动连接 DECLARE kill_connections NVARCHAR(MAX) ; SELECT kill_connections KILL CAST(session_id AS NVARCHAR(10)) ; FROM sys.dm_ex…

主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少?

📘题干回顾: 主机A向主机B发送一个长度为L字节的文件,假设TCP的MSS为1460字节,则在TCP的序号不重复使用的前提下,L的最大值是多少? 这个问题关键在于“TCP序号不重复使用”。 ✅ 正确答案是:D.…

一次因校时服务器异常引起的性能差异分析

一次因校时服务器异常引起的性能差异分析 一.背景知识1. **TSC 频率**:硬件级高精度计时2. **gettimeofday**:用户态时间接口3. **adjtimex**:系统时钟的软件校准4. **`clock_adjtime(CLOCK_REALTIME, {modes=ADJ_TICK})`**: 用于修改系统时钟中断间隔(`tick` 值)。5. 关系…

acwing 4275. Dijkstra序列

题目背景 输入 输出 完整代码 #include<bits/stdc.h> using namespace std; int n,m,k,a[1010],dist[1010],g[1010][1010],st[1010];int dij(int u){memset(st,0,sizeof st);memset(dist,0x3f,sizeof dist);dist[u]0;for(int i0;i<n;i){int ta[i];for(int j1;j<n;…

[思维模式-37]:什么是事?什么是物?什么事物?如何通过数学的方法阐述事物?

一、基本概念 1、事&#xff08;Event) “事”通常指的是人类在社会生活中的各种活动、行为、事件或情况&#xff0c;具有动态性和过程性&#xff0c;强调的是一种变化、发展或相互作用的流程。 特点 动态性&#xff1a;“事”往往涉及一系列的动作、变化和发展过程。例如&a…

Linux常用命令40——alias设置命令别名

在使用Linux或macOS日常开发中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;alias命令来自英文单词alias&#xff0c;中文译为“别名”&#xff0c;其功能是设置命令别名信息。我们可以使用alias将一些较长的命令进行简写&#xff0c;往往几十个字符的命令会变…