天天看点

408计算机组成原理强化I/O设备

I/O设备

程序查询方式

程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)。主机进行I/O操作时,先发出询问信号,读取设备的状态并且根据设备状态决定下一步操作究竟是进行数据传送还是等待。

这种题型要注意CPU查询的速率是否能够跟上I/O设备输入的速率,如果跟不上就会导致信息丢失。

408计算机组成原理强化I/O设备

具体计算流程是先figure out设备的速率是多少,然后再用设备的速率除以缓冲区可以缓存的数据容量,计算CPU定时查询的频率。

CPU的查询频率必须>=上述计算的CPU查询频率

满足这一条件可以计算CPU定时查询的时间占比,去题目里面找查询一次的时间开销,然后根据结论算出一秒钟查询多少次。

程序中断方式

概述

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或者特殊请求,CPU暂时中止执行程序,而转去对这些异常情况或者特殊请求进行处理,处理完毕后再返回到现行程序的断点处,继续执行原程序。早期的中断处理技术是为了处理数据传送。

随着计算机的发展,中断技术不断被赋予新的功能,主要功能有:

  1. 实现CPU与I/O设备的并行工作
  2. 处理硬件故障和软件错误
  3. 实现人机交互,用户干预机器需要用到中断系统
  4. 实现多道程序、分时操作,多到程序的切换需要借助于中断系统
  5. 实时处理需要借助中断系统来实现快速响应
  6. 实现应用程序和操作系统(管态程序)的切换,称为"软中断"
  7. 多处理器系统中各处理器之间的信息交流和任务切换
408计算机组成原理强化I/O设备

流程

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

内部异常中,硬件故障>软件中断

可屏蔽中断中,DMA设备中断请求>I/O设备传送的中断请求

I/O设备传送请求中,高速设备>低速设备

中断分类

广义上的可以细分为异常(由CPU内部产生,也称为内中断)和中断(来自CPU外部的设备向CPU发出的中断请求)

异常是指CPU执行一条指令时,由CPU在其内部检测到的与正在执行的指令相关的同步事件,氛围硬故障中断(终止,例如存储器校验错、总线错误等)和程序性异常(也称为软件中断,软件中断例如:整除0、溢出、断点、单步跟踪、非法指令、栈溢出、地址越界、缺页等;要注意的是硬件中断=终止异常+外中断,也就是说:软件中断+硬件中断=异常+中断,硬故障中断=终止,例如存储器校验错、总线错误、控制器出错)。

1)故障:指引起故障的指令启动后,执行结束前被检测到的异常事件。例如“缺段”,“缺页”,“非法操作码”,“除数为零”。

2)自陷:自陷也称陷阱或陷入,它是预先安排的一种“异常”事件,例如用于程序调试“断点设置”和单步跟踪的功能就是通过陷阱机制实现的。

3)终止:如果正在执行的指令的过程中发生了使计算机无法继续执行的硬件故障,那么程序无法继续执行,只能终止,此时调出中断服务程序来重启系统。

中断处理过程

  1. 关中断:
  2. 保存断点:PC,PSW
  3. 中断服务程序寻址:对应的服务程序入口地址送入程序计数器PC,有两种方法识别中断源:<1>硬件向量法<2>软件查询法
  4. 保存现场和屏蔽字
  5. 开中断
  6. 执行中断服务程序
  7. 关中断
  8. 恢复现场和屏蔽字
  9. 开中断、中断返回:中断服务程序的最后一条通常是中断返回指令

1.~ 3.由中断隐指令完成而 4.~ 9.由中断服务程序完成

要注意的是每个终端都有唯一的中断类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,即中断向量。把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就被称为中断向量表。

CPU响应中断后,通过识别中断源获得中断类型号,然后根据此计算出对应中断向量的地址;再根据该地址从中断向量表中取出中断服务程序的入口地址,并送入程序计数器PC,转而执行中断服务程序,这种方法被称为中断向量法,采用中断向量法的中断被称为向量中断。

做题要点

速率/缓冲区大小=中断频率 与 一秒钟PU能处理多少次中断

2009年真题

408计算机组成原理强化I/O设备

读题目可以得到:中断服务处理18条指令 中断响应处理2条指令 因此总共的时间开销为20条指令=每次传输的开销

(1)

(2)

2018年真题

408计算机组成原理强化I/O设备

(1)

数据缓冲区大小=32位=4B

设备A速率=2MB/s

每秒查询 2MB/4B = 0.5M 次

<1>故CPU最多间隔1/0.5M = 2us 时间查询一次

<2>占总时间百分比=0.5M104/500MHz=4%

(2)

中断响应和中断处理的时间为400*(1/500M) = 0.8us

这是需要判断的是设备B准备32位数据需要的时间,若准备数据的时间小于中断响应和中断处理的时间,那么说明数据会被刷新,造成数据的丢失。经过计算,设备B准备32位数据所用的时间为4B/40MB = 0.1us 因此B不适合采用中断I/O方式

408计算机组成原理强化I/O设备

(3)

采用DMA方式时,只有预处理和后处理需要CPU处理,数据的传送过程由DMA控制。设备B每秒的DMA次数最多为40MB/1000B = 40000,CPU用于设备B输入/输出的时间最多为2*107个时钟周期,占CPU总时间的百分比最多为2*107 /500M = 4%

DMA方式

概述

DMA方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。DMA方式在外设与主存之间开辟一条“直接数据通路”,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式。由于数据传送不再经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。

408计算机组成原理强化I/O设备

过程

  1. 预处理:由CPU完成一些必要的准备工作。首先,CPU执行几条I/O指令,用以测试I/O设备状态,向DMA控制器的有关寄存器置初值、设置传送方向、启动该设备等
  2. 数据传送:DMA的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器(而非通过CPU执行程序)来实现的,及数据传送阶段完全由DMA(硬件)控制。值得注意的是即使是在DMA与主机以块为单位进行传输时,DMA传送数据到总线上依然是由字为单位进行传输的,正如图中表明的那样。
  3. 后处理:DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转诊断程序)及决定是否使用DMA传送其他程序等