2024.08.05:计算机组成原理输入输出学习笔记
第25节 输入输出系统
- 5.1 IO基本职能
- 5.2 IO接口的通用结构
- 5.3 IO数据传送控制方式
- 5.3.1 程序直接控制(程序查询控制)
- (1)独占查询
- (2)定时查询
- 5.3.2 中断控制(程序中断IO方式)
- (1)中断响应步骤
- (2)中断响应的条件
- 5.3.3 DMA控制
- (1)三种DMA方式
- (2)DMA操作步骤
- (3)DMA与存储系统
- (4)DMA以虚拟地址还是以物理地址工作?
- (5)DMA&Cache
- 输入输出系统控制着计算机和外设之间的交流,计算机(主机)与外设之间交流走的这条路叫做(IO接口),它是一个硬件设备,用来连接外设和主机
- IO接口就是外设和主机之间进行数据交流的媒介
5.1 IO基本职能
主机侧的称为内部接口:通过IO总线和内存、CPU相连
外设侧的通常称为外部IO接口:通过IO接口电缆(USB线、网线)连接到外设上
- 数据缓冲:主存和CPU寄存器的存取速度非常快,外设速度较低,所以在IO接口中引入数据缓冲寄存器,匹配主机、外设的工作速度
- 错误或状态检测:在IO接口中提供状态寄存器保存各种状态信息
- 控制和定时:提供控制、定时逻辑,以接受系统总线来的控制命令和定时信号
- 数据格式转换:提供数据格式转换部件,使通过外部接口得到的数据转换为内部接口需要的格式或者反着转换
5.2 IO接口的通用结构
IO接口在主机侧通过IO总线与内存、CPU相连
- 通过数据线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送
同时接口和设备的状态信息被记录在状态寄存器中
状态信息就是供CPU去检查一下外设是否准备号去传数据
- 通过数据线将(状态信息)送到CPU,以供查用
CPU对外设的(控制命令)也通过数据线传送,一般将其送到IO接口的控制寄存器
控制命令走数据线,一般将这些控制命令送到IO接口里面的控制寄存器
- 因为(状态寄存器)和(控制寄存器)传送方向相反,CPU对他们的访问时间一般都是错开的,所以有的IO接口将它们合二为一
地址线用于给出要访问的IO接口中寄存器的地址,它和(读/写控制信号)一起被送到IO接口中的控制逻辑部件中
5.3 IO数据传送控制方式
从刚才我们分析IO接口它的结构的过程中,我们发现如果想要实现外设和CPU之间的数据传输的话,你需要去协调CPU与外设它们彼此之间应该如何配合,那么输入输出系统里面会有三种去控制数据传输的方式
5.3.1 程序直接控制(程序查询控制)
通过程序来定时或持续查询接口方式
- 优点:简单易控制,外围接口控制逻辑少
- 缺点:CPU需要从外设接口读取状态,并在外设未就绪时一直处于忙等待(独占查询),由于CPU速度比外设快得多,CPU在等待外设完成任务过程中浪费了很多时间
(1)独占查询
一旦设备被启动,CPU就一直持续查询接口状态,CPU花费全部时间用于IO操作,此时外设和CPU完全串行工作
(2)定时查询
CPU周期性地查询接口状态,每次总是等到条件满足才进行一个数据的传送,传送完成后返回到用户程序。定时查询的时间间隔与数据传输速率有关
5.3.2 中断控制(程序中断IO方式)
让CPU完全释放出来!
基本思想:外设和CPU并行工作,外设向CPU发出中断请求,在可以响应中断的条件下,CPU再暂时中止正在执行的程序,转去执行中断服务程序为外设服务
(1)中断响应步骤
中断响应步骤学习笔记
- 关中断
- 保存断点
- 引出中断服务程序
(2)中断响应的条件
中断响应条件学习笔记
- CPU要处于开中断的状态
- 至少要有一个未被屏蔽的中断请求
- 当前指令刚执行完
5.3.3 DMA控制
DMA是可以跨国CPU直接和内存进行交互的
DMA即直接存储器存取,让外设和内存直接去进行一个数据交换,不需要去通过CPU
通常把专门用来控制总线进行DMA传送的接口硬件称为DMA控制器
DMA传送时,CPU让出总线控制权,由DMA控制器控制总线,通过“挪用”一个主存周期完成和主存之间的一次数据交换,或独占若干个主存周期完成一批数据的交换
主要用于磁盘等高速设备数据传送:这类设备大多采用成批数据交换方式
采用“请求-响应”方式:中断IO方式请求的是处理器的时间,DMA方式请求的是总线控制权
(1)三种DMA方式
由于DMA控制器和CPU共享主存,所以可能出现二者争用主存的现象,通过这三种方法来让他们协调使用内存
CPU停止法
- DMA传输的时候,由DMA控制器发一个停止信号给CPU,使得CPU脱离总线,停止访问主存,直到DMA传送一块数据结束
周期挪用法
- DMA传输时,CPU让出一个总线事物周期,由DMA控制器挪用一个主存周期来访问主存,传送完一个数据后立即释放总线,是一种单字传输方式
交替分时访问法
- 每个存储周期分成两个时间片,一个给CPU,另一个给DMA控制器,这样在每个存储周期内,CPU和控制器都可以访问存储器
(2)DMA操作步骤
(3)DMA与存储系统
没有DMA控制器的,所有对存储器的访问都来自CPU,通过MMU中的地址转换和cache访问来进行存储器存取
有了DMA后,系统中就有了另一个访问存储器的路径,它不通过地址转换机制和cache层次。这样,在虚拟存储器和cache系统中就会产生一些问题。这些问题的解决通常要结合硬件和软件两方面的技术支持
(4)DMA以虚拟地址还是以物理地址工作?
-
如果使用虚拟地址,在DMA接口中就必须将虚实地址转换
-
如果使用物理地址,每次DMA传送就不能跨页
(5)DMA&Cache
具有DMA的cache系统也会产生问题。DMA控制器直接向存储器发出访存请求而不通过cache,DMA看到的主存单元值和CPU看到的cache中的副本可能不同