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

本文涉及的产品
数据传输服务 DTS,数据迁移 small 3个月
推荐场景:
MySQL数据库上云
数据传输服务 DTS,数据同步 small 3个月
推荐场景:
数据库上云
数据传输服务 DTS,数据同步 1个月
简介: 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





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
4月前
|
存储
【期末计算机组成原理速成】第四章:输入输出系统
【期末计算机组成原理速成】第四章:输入输出系统
127 0
计算机组成原理(微课版) -- 第三章 -- 运算方法与运算器
计算机组成原理(微课版) -- 第三章 -- 运算方法与运算器
|
11月前
|
存储
【计算机组成原理】计算机的性能指标、数据的表示和运算、BCD码和余3码
计算机组成原理(二) 计算机的性能指标: 存储器的性能指标:
149 0
|
1月前
|
缓存 安全 固态存储
计算机提高计算机运行速度
【8月更文挑战第4天】
41 1
|
4月前
|
存储 网络协议 固态存储
计算机的数据输入输出
计算机的数据输入输出
43 1
|
9月前
|
编解码 缓存 芯片
计算机功能扩展卡
计算机功能扩展卡是安装在主板扩展槽中的一些附加功能卡,可以使计算机的应用领域更广阔。这些功能扩展卡主要有声卡、视频采集卡、SATA扩展卡、USB扩展卡等。
104 1
|
4月前
|
存储
计算机组成原理学习笔记(待更新)
计算机组成原理学习笔记(待更新)
75 0
|
9月前
|
前端开发 JavaScript
HTML+CSS+JS实现计算机功能(一)
HTML+CSS+JS实现计算机功能
|
9月前
|
JavaScript
HTML+CSS+JS实现计算机功能(二)
HTML+CSS+JS实现计算机功能
|
大数据
32位计算机与64位计算机的区别
32位计算机与64位计算机的区别
266 0