408计算机组成原理学习笔记——输入/输出系统(I/O)

本文涉及的产品
数据传输服务 DTS,同步至DuckDB 3个月
简介: 408计算机组成原理学习笔记——输入/输出系统(I/O)

1.I/O接口

I/O接口负责协调主机和外部设备之间的数据传输

1.1.I/O接口的作用

f412a31992524929b9e5baae7f1e4cb7.png23deb0573ce84c7d8c6e93a44db5ef0e.png

1.2.I/O接口的工作原理aee1ddeefd7b4f6c945ad28f925aab76.png

1.3.I/O端口的统一编址/独立编址9f47454cf915405e815b82cf4e4820e2.png

I/O端口是CPU可以直接访问的寄存器

1.独立编址:通过I/O指令访问(IN——读入CPU、OU——写入I/O端口)I/O端口

2.统一编址(存储器映射):通过地址码访问I/O端口

image.png

2.I/O方式image.png

2.1.程序查询方式

image.png

1.将打印命令写入状态/控制寄存器:CPU通过地址线选择状态/控制寄存器(Rn+1),控制线发出写命令,数据线写入表示打印的指令

2.启动打印机,修改状态/控制寄存器为Ready:I/O控制逻辑根据状态/控制寄存器中的打印指令通过控制线(设备侧)控制打印机启动,打印机启动后,通过状态线反馈给I/O接口;I/O控制逻辑收到后,将状态/控制寄存器的内容修改为Ready

3.CPU通过数据线轮询检查(不断检查)状态/控制寄存器中的内容是否为Ready(使用IN命令)

4.将打印数据写入数据缓冲寄存器:CPU通过地址线选择状态/控制寄存器(Rn),控制线发出写命令,数据线写入打印数据

5.将打印数据输入到打印机中,开始打印:I/O控制逻辑通过数据线(设备侧)将数据缓冲寄存器中的内容输入到打印机中,同时对打印机发出控制信号,在打印过程中打印机处于忙碌状态,结束打印后,通过状态线给I/O控制逻辑发送打印完成的信号,I/O控制逻辑收到信号后,再次将状态/控制寄存器的内容修改为Ready

6.重复3-5,就能不断地进行打印c6c646206ddb4a1bbddebfc2461c6a97.pngimage.png

2.2.程序中断方式

2.2.1.中断的基本概念

image.png

1.关中断状态不响应中断信号(关中断,即不允许中断,它的作用是实现原子操作)(PSW状态寄存器记录是否处于关中断状态,Inter Flag,IF = 1,开中断;IF = 0,关中断)

2.产生中断请求信号的部件称为中断源

3.CPU在指令周期的末尾(中断周期)都会检查是否有中断请求信号需要处理

4.中断请求标记:用于判断是哪个设备发出中断请求信号

image.png

5.中断判优:硬件(与非门实现排队器)/软件(按照优先级依次判断)

image.pngimage.png

2.2.2.中断隐指令

保存PC,并通过修改PC将CPU指令执行流转向对应的中断服务程序(不同的中断请求需要使用不同的中断服务程序进行处理)

dd4634a66bd14fb9a1eae06672c09b29.png

1.关中断:防止中断执行期间被打断

2.保存断点保存PC在执行中断前的内容到堆栈区,使其在中断执行后能返回原程序

3.引出中断服务程序:通过硬件向量/软件查询的方式将PC修改为中断服务程序的首地址

①硬件向量法:为每个中断请求信号编号,每个编号对应一个对应的保存无条件转移指令(JMP)的地址,该无条件转移指令指向特定中断服务程序的首地址(中断向量)

②判断是哪个部件发出中断请求信号→中断请求信号对应的向量地址→向量地址对应的中断服务程序的首地址

③向量地址(中断类型号):指向中断向量的指针(指针的指针)

中断向量:指向中断服务程序的首地址的指针(指针)

image.png

2.2.3.中断服务程序

①保护现场:保存通用寄存器和状态寄存器的内容

②中断服务(主体内容):每个中断服务程序需要完成的中断服务不同

③恢复现场:将①中保存的数据恢复到相应的寄存器中

④中断返回、开中断:将PC的内容修改为K + 1(原程序的下一条指令,即断点处)

image.png

2.2.4.中断处理过程

单重中断:中断处理期间前关中断,结束后开中断

407e097b54fe42e8a31d093290ac6e44.png

2.2.5.多重中断4319fe2fad6b4e488963afa46314193c.png

1.保护现场和恢复现场需要关中断:防止现场保存和恢复被新的中断打断

2.屏蔽字:即中断屏蔽字

①作用是屏蔽某些中断(忽视低优先级中断,防止频繁被打断)

②需要能屏蔽自身的中断(自己不能中断自己)

③“1”越多说明该中断优先级越高(可以打断其他中断)

image.png

2.2.6.程序中断方式的工作过程image.png

2.3.DMA方式

I/O与主机并行工作,程序和传送并行工作

2.3.1.DMA方式流程

1.外设发出的DMA请求:告诉DMA当前的块传输完毕

DMA向CPU发出总线请求:申请总线使用权,将数据寄存器中的内容传输给主存

2.DMA操作周期:将数据寄存器的内容通过系统总线传输给主存的过程

3.数据流方向由CPU决定,DMA发出

4.通过中断方式向CPU报告DMA操作结束2bdb46fc893141689a2c63f8ee1c876e.png


2.3.2.DMA控制器(DMAC)

1.控制/状态逻辑:控制每一步进行什么操作/是否对总线进行申请/是否将数据传输到总线上等等

2.DMA请求触发器:当I/O设备把数据传输给数据缓冲寄存器后,将会给DMA触发器一个控制信号,告诉DMA数据已经传输完成;控制/状态逻辑检测到后,进行下一步操作,并重置触发器

3.主存地址计数器:存放主存的读写地址(自动+1)

4.传送长度寄存器:记录数据总长度、已经传输的长度(自动+1)

5.数据缓存寄存器:暂时存放数据

6.中断机构:告诉CPU数据传输完毕,向CPU发出中断请求

7.DMA传输过程中独占总线,CPU使用总线需要等待其结束


image.png

2.3.3.DMA传送过程

DMA请求和DMA中断请求的区别:

DMA请求表示DMA将要和主存进行一个字的传输

DMA中断请求表示DMA和主存已经完成一整块的传输

image.png

image.png

2.3.4.DMA使用主存的方式

image.png

2.3.5.DMA方式的特点image.png

2.4.中断和DMA的对比

16f477993b914e4dab6bb3cdda4b9ff1.png





相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
JavaScript 关系型数据库 测试技术
接口文档管理神器RAP2安装和部署
一 RAP2 RAP2是在RAP1基础上重做的新项目,它包含两个组件(对应两个Github Repository)。 rap2-delos: 后端数据API服务器,基于Koa + MySQLlink rap2-dolores: 前端静态资源,基于React link 什么是RAP? rap是一款API 文档管理工具,在 RAP 中,可以定义接口的 URL、请求 & 响应细节格式等等。
14330 0
|
6月前
|
人工智能 自然语言处理 搜索推荐
构建AI智能体:四十六、Codebuddy MCP 实践:用高德地图搭建旅游攻略系统
本文提出了一种基于MCP协议与高德地图API的智能旅游攻略系统,旨在解决传统旅游信息碎片化、时效性差等问题。系统通过整合多源数据,实现动态路线规划、个性化推荐等功能,支持自然语言交互和多模态展示。技术层面,MCP协议作为核心枢纽,标准化了工具调用和错误处理;高德地图API则提供地理智能、时空分析等能力。系统可生成包含景点、美食、住宿等信息的完整攻略,并支持临时发布共享。实践表明,该系统能有效降低用户规划成本,为旅游行业数字化转型提供参考。
741 13
|
存储 缓存 算法
带你理清CPU,cache和存储器之间的逻辑运作
带你理清CPU,cache和存储器之间的逻辑运作
4287 3
|
存储 固态存储 数据库
|
项目管理
软件设计师软考题目解析20之英语题
软件设计师软考中英语题目的解析和答题技巧,帮助考生攻克英语部分的题目。
413 0
软件设计师软考题目解析20之英语题
|
弹性计算 小程序
阿里云服务器4核16G配置租赁价格表,多种ECS实例规格可选
阿里云提供多种4核16G服务器实例,如ECS经济型e、高主频hfg8i、通用型g7/u1/g8i/g8ae等。ECS经济型e实例ecs.e-c1m4.xlarge每月低至70元,适用于游戏、Web、小程序后端等场景
712 1
|
JavaScript 前端开发 算法
游戏物理系统 - 介绍一下Box2D或其他物理引擎在JS小游戏中的使用。
Box2D, a popular 2D physics engine, simulates rigid body dynamics, collision detection, and constraints for JavaScript games via WebAssembly. It offers realistic physics, efficient collision handling, and customizable APIs.
411 4
|
Linux 数据安全/隐私保护
Linux命令(22)之chage
Linux命令(22)之chage
693 2
|
存储 大数据 数据挖掘
读透《阿里巴巴数据中台实践》,其到底有什么高明之处?
最近阿里巴巴分享了《阿里巴巴数据中台实践》这个PPT(自行搜索原始文章),对于数据中台的始作俑者,还是要怀着巨大的敬意去学习的,因此仔细的研读了,希望能发现一些不一样的东西。 读这些专业的PPT,实际是非常耗时的,你需要把这些PPT外表的光鲜扒光,死抠上面的每一个字去理解底下隐藏的含义,然后跟你的已有知识体系去对比,看看是否有助于完善自己的认知,对于自己不理解的,还需要经常去检索相关的文档。
13737 58