计组学习第四章输入输出系统

第四章输入输出系统

一、概述

1.1 I/O系统发展

1.早期阶段

  • I/O与主机之间连接采用:分散连接。

  • CPU和I/O设备串行工作:程序查询方式。

2.接口模块和DMA阶段

  • I/O与主机之间连接采用:总线连接。
  • CPU和I/O设备并行工作:中断方式、DMA方式

3.后续为具有通道结构的阶段、具有I/O处理机阶段。

1.2输入输出系统的组成

  • I/O软件:包括驱动程序、用户程序等。通常采用指令和通道指令实现CPU与I/O设备的信息交换。
  • I/O硬件:包括外部设备、设备控制器和接口等。通过设备控制器来控制I/O设备的具体动作,且通过I/O接口与主机相连。

二、I/O设备与主机信息传送的控制方式

2.1程序查询方式

image-20230823165414203

  • 信息交换的控制完全由CPU执行程序实现。
  • 程序查询方式由CPU向I/O发出读指令后,CPU不断查询I/O设备状态,直到外部设备就绪。
  • 在I/O准备的时候,CPU会出现“ 踏步等待 ”。CPU和I/O串行工作。

2.2程序中断方式

这种方式将I/O工作分为两个部分:①自身准备②与主机交换信息。

image-20230823170731811

  • CPU访问I/O设备过程:

①CPU在启动I/O设备后,不检查I/O设备状态,若I/O设备处于准备时,继续执行自身程序

②当I/O设备准备就绪时,向CPU发出中断请求。

③CPU接收到中断请求,暂停现行程序,I/O与主机交换信息。

  • CPU不会出现“ 踏步等待 ”,CPU和I/O部分的并行工作。
  • 一般来说,中断响应优先级如下:

①不可屏蔽中断>内部异常>可屏蔽中断

②内部异常中,硬件鼓掌>软件中断

③DMA中断请求>I/O设备传送的中断请求

④I/O传送类中,高速设备>低速设备;输入设备>输出设备;实时设备>普通设备。

  • 中断过程:

①关中断:在CPU响应中断后,首先保护程序的断点和现场信息,在保护过程中CPU不能响应更高级中断的请求。

②保存断点:为了中断服务完成后能够正确返回到原来的程序,必须保存原程序的断点到特定的栈或寄存器中。

③中断事件处理。

④恢复现场和屏蔽字

⑤中断返回。

2.3直接存储器访问(DMA方式)

  • DMA方式完全由硬件进行成组信息传送的控制方式。
  • DMA方式中:主存与I/O设备之间有一条数据通路,主存与I/O设备交换信息时,不需要调用中断服务程序。
  • 如果出现DMA和CPU同时访问主存时,CPU总是将总线占用权让给DMA,通常把DMA这种占有称窃取或挪用。
  • 窃取的时间一般为一个存储周期,所以把DMA占用的存取周期称为窃取周期或挪用周期。

三、I/O接口

3.1 I/O接口主要功能

①进行地址译码和设备选择。CPU送来选择外设的地址码后,接口需要进行译码产生设备选择信息,使主机能和指定的外设交换信息。

②实现数据缓冲达到数据匹配。CPU和外设间速度往往不匹配。

③实现主机和外设的通信联络控制

④实现信号格式的转换

⑤传送控制命令

⑥反映设备的状态

3.2接口的基本组成

image-20230823173824075

四、程序中断方式

4.1中断

计算机在执行程序过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行转向对这些异常情况或特殊请求的处理,处理结束后返回现行程序的间断处,继续执行原程序,这就是“ 中断 ”。

例如下图:原程序执行过程中,在K流程遇到需要中断过程,中断服务程序执行完毕,继续在K+1流程继续执行原程序。

image-20230823214413726

4.2 I/O中断响应过程

  • 中断源:能够引发CPU发生中断的因素称中断源。

【例】以CPU与打印机部分并行工作为例

image-20230823214916426

4.3 I/O中断服务程序的流程

1.中断服务流程

(1)保护现场(执行完中断后需要返回的原程序):

​ ①程序断点的保护:由中断隐指令完成(硬件自动执行的一系列操作)。

​ ②寄存器内容的保护:由中断服务程序完成。

(2)中断服务:对不同的I/O设备具有不同内容的设备服务。

(3)恢复现场:将原程序中断时的“现场”恢复到原来的寄存器中。

(4)中断返回:返回到原程序的断点处,以便继续执行原程序。

2.单重中断和多重中断

(1)单重中断:在中断服务程序过程中,不允许其他中断进行中断。

(2)多重中断:在中断服务程序过程中,允许级别更高的中断源进行中断当前的中断服务程序。

注:关键在于中断服务程序执行过程中开中断的时间点不同。

image-20230823220229594

五、直接存储器访问(DMA方式)

5.1 DMA和程序中断的差异

  • 中断接口需要通过CPU才能与主存进行数据传送
  • DMA方式通过一条“直接数据通路”直接与主存进行数据传送

image-20230823220840028

5.2 DMA与主存交换数据

(1)停止CPU访问主存

当外设要求传送一批数据时,由DMA接口向CPU发送一个停止信号,要求CPU放弃地址线、数据线和有关控制线的线权。

即DMA工作时,CPU不执行程序。

(2)周期挪用(周期窃取)

①当CPU没有访问主存时,DMA直接与主存交换数据,不发生冲突。

②CPU正在访问主存时,等待CPU存取周期结束才将总线占有权让出。

③CPU和DMA同时请求访存时,发生了访问冲突,此时CPU将总线控制权让给DMA。

(3)DMA和CPU交替访问

将CPU工作周期分为C1和C2两个周期,C1专供DMA访存,C2专供CPU访存。

这种方法不需要建立和归还总线的使用权。

5.3 DMA的传送过程

DMA传送过程为:预处理→数据传送→后处理

①预处理:通过几条输入输出指令预置如下信息:

  • 通知DMA控制逻辑传送方向
  • 设备地址→DMA的DAR
  • 主存地址→DMA的AR
  • 传送字数→DMA的WC

(2)数据传送:DMA占用总线后,由DMA控制器实现数据传送

(3)后处理:DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理。

5.4 DMA与程序中断比较

中断方式DMA方式
数据传送由中断服务程序需要CPU直接由硬件不需要CPU
响应时间指令执行结束存取周期结束
处理异常可以不行
中断请求传送数据后处理
优先级

计算机组成原理——刘宏伟
参考文献:计算机组成原理第2版—唐朔飞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值