计算机组成原理——输入输出系统(课程笔记)

说明

  1. 博客作为笔记备份,不定时更新
  2. 参考内容为《计算机组成原理(第3版)》唐朔飞 高等教育出版社;王道考研《计算机组成原理考研复习指导2023》
  3. 文中的例题摘自王道考研《计算机组成原理考研复习指导2023》,大多是我个人认为较为典型的题目以及错题的部分整理

输入/输出系统

1. I/O接口

1.1 概述

  • I/O接口(I/O控制器)是主机和外设之间的交接界面,通过接口可实现主机和外设之间的信息交换
  • I/O接口通常指主机和I/O设备之间设置的一个硬件电路及其相应的软件控制
  • I/O接口主要是为了解决主机和外设之间的信息形式和工作速度等的差异问题

1.2 I/O接口的功能

进行地址译码和设备选择
  • CPU送来选择外设的地址码后,接口对地址进行译码,产生设备选择信息,使主机能和指定外设交换信息
实现主机和外设的通信联络控制
  • 解决主机和外设时序配合问题,协调不同工作速度的外设和主机之间交换信息,以保证整个计算机系统能统一、协调的工作
实现数据缓冲
  • CPU和外设的速度往往不匹配,为消除速度差异,接口必须设置数据缓冲寄存器,暂存数据,以免因为速度不一致而丢失数据
信号格式的转换
  • 外设与主机两者的电平、数据格式都可能存在差异,接口应提供计算机与外设的信号格式的转换功能,如电平转换,并/串或者串/并转换,模/数或数/模转换等
传送控制命令和状态信息
  • CPU要启动某一外设时,通过接口中的命令寄存器向外设发出启动命令。外设准备好时,就将“准备就绪”的状态信息送回接口中的状态寄存器,并反馈给CPU。外设向CPU提出中断请求时,CPU也应有相应的响应信号反馈给外设

1.3 I/O接口的基本组成

根据I/O接口应实现的功能,其基本组成应如下
在这里插入图片描述
在这里插入图片描述

  • 注:资料书上CPU和I/O接口间的地址线和控制线是双向的。其中地址线可以是一组或两组的单向线(一组用于主机向I/O设备发送设备码,另一组用于I/O设备向主机回送设备码),也可用一组双向的总线;
  • 对数据缓冲寄存器、状态/控制寄存器(设备状态标记)的访问操作是通过I/O指令完成的,I/O指令只能在操作系统内核的底层I/O软件中使用,是一种特权指令

1.4 I/O接口类型

  • 按数据传送方式分为并行接口和串行接口。因为接口和主机之间是按字节或字并行传送,因此对串行接口而言,其内部还必须设置串-并转换装置
  • 按主机访问I/O设备的控制方式可分为程序查询接口、中断接口和DMA接口等
  • 按功能选择的灵活性分为可编程接口和不可编程接口

1.5 I/O端口及其编址

I/O端口
  • I/O端口是指接口电路中可被CPU直接访问寄存器,主要有数据端口、状态端口和控制端口
  • 若干端口加上相应的控制逻辑电路组成接口
  • 通常CPU能对数据端口执行读写操作,但对状态端口只能执行读操作,对控制端口只能执行写操作
I/O端口编址
  • I/O端口要想能被CPU访问,就要对每个端口进行编号,每个端口对应一个端口地址
  • 统一编址(又称为存储器映射方式)
    • 把I/O端口当做存储器的单元进行地址分配,CPU不需要设置专门的I/O指令,用统一的访存指令就能访问I/O端口
    • 优点:无需设置专门的输入/输出指令,可使CPU访问I/O的操作更灵活方便,还可以使端口有较大的编址空间
    • 缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入/输出操作,执行速度慢
  • 独立编址(又称I/O映射方式)
    • I/O端口的地址空间和主存地址空间是两个独立的地址空间,需要设置专门的I/O指令来访问I/O端口
    • 优点:输入/输出指令与存储器指令有明显区别,程序编制清晰,便于理解
    • 缺点:输入/输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制的复杂性

1.6 例题

I/O指令
  1. P 291 P_{291} P291)下列关于I/O指令的说法中,错误的是()
    A. I/O指令是CPU系统指令的一部分
    B. I/O指令是机器指令的一类
    C. I/O指令反映CPU和I/O设备交换信息的特点
    D. I/O指令的格式和通用指令的格式相同
    解答:I/O指令是机器指令的一类(课本 P 157 P_{157} P157),是指令系统的一部分,其指令格式与其他指令既有相似之处,又有所不同。I/O指令可以和其他机器指令的字长相同,但它还应该能反映CPU与I/O设备交换信息的各种特点,如它必须反映出对多台I/O设备的选择,以及在完成信息交换过程中,对不同设备应做哪些具体操作等,因此格式和其他通用指令有所不同。选D
    错误原因:错选A
  2. 2017 2017 2017)I/O指令实现的数据传送通常发生在()
    A. I/O设备和I/O端口之间 B. 通用寄存器和I/O设备之间
    C. I/O端口和I/O端口之间 D. 通用寄存器和I/O端口之间
    解答:首先,I/O指令是CPU发送给I/O设备的,所以排除A,C。因为CPU与I/O设备工作方式、速度等不匹配,因此在I/O接口中会设置相应的寄存器(即端口),通过寄存器实现数据的传送。选D
通道指令
  1. P 291 P_{291} P291)以下关于通道程序的叙述中,正确的是()
    A. 通道程序存放在主存中 B. 通道程序存放在通道中
    C. 通道程序是由CPU执行的 D. 通道程序可以在任何环境下执行I/O操作
    解答:通道程序存放在主存而非通道中,由通道从主存中取出并执行,通道程序由通道执行,且只能在具有通道的I/O系统中执行。选A
    错误原因:错选C
    关于通道 ()[通道、通道指令、通道程序 - AzureZK - 博客园 (cnblogs.com)]
  • 通道是一个具有特殊功能的寄存器,它有自己的指令和程序,专门负责数据输入输出的传输控制(CPU将传输控制的功能下放给通道)。通道受CPU的I/O指令启动、停止或改变其工作状态
  • 通道的基本功能为按I/O指令要求启动I/O设备,执行通道指令,组织I/O设备和主存进行数据传输,向CPU报告中断等
    关于通道指令(课本 P 158 P_{158} P158:
  • 通道指令是对具有通道的I/O系统专门设置的指令,一般用以指明参与传送的数据组在主存中的首地址:指令需传送的字节数或所传送数据的末地址;指明所选设备的设备码及完成某种操作的命令码
  • 通道指令又称为通道控制字,是通道用于执行I/O操作的指令,可由管理程序存放在主存的任何位置由通道从主存中取出并执行
  • 通道指令是通道自身的指令,用来执行I/O操作,如读、写、磁盘走带及磁盘找道等。在具有通道结构的计算机中,I/O指令不实现I/O数据传送,主要完成启停I/O设备,查询通道和I/O设备的状态及控制通道所做的其他操作。具有通道指令的计算机,一旦CPU执行了启动I/O设备的指令,就由通道来代替CPU对I/O设备的管理
I/O编址
  1. P 295 P_{295} P295)在统一编址的方式下,区分存储单元和I/O设备是靠()
    A. 不同的地址码 B. 不同的地址线 C. 不同的控制线 D. 不同的数据线
    解答:在统一编址的情况下,没有专门的I/O指令,因此用访存指令来实现I/O操作,区分存储单元和I/O设备是靠它们各自不同的地址码。选A
    错误原因:错选C
I/O接口
  1. 2021 2021 2021)下列选项中不属于I/O接口的是()
    A. 磁盘驱动器 B. 打印机适配器 C. 网络控制器 D. 可编程中断控制器
    解答:I/O接口即I/O控制器,其功能是接收主机发送的I/O控制信号,并实现主机和外部设备之间的信息交换。磁盘驱动器是由磁头、磁盘和读写电路等组成的,也就是磁盘本身,因此A不是I/O接口
    错误原因:错选D

2. I/O方式

2.1 程序查询方式

  • 信息交换的控制完全由CPU执行程序实现,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)
  • 主机进行I/O操作时,先发出询问信号,读取设备的状态并根据设备状态决定下一步是进行数据传送还是等待
  • 工作流程
    1. CPU执行初始化程序,并预设传送参数
    2. 向I/O接口发出命令字,启动I/O设备
    3. 从外设接口读取其状态信息
    4. CPU不断查询I/O设备状态,直到外设准备就绪
    5. 传送一次数据
    6. 修改地址和计数器参数
    7. 判断传送是否结束,若未结束转第3步,直到计数器为0
  • CPU一旦启动I/O,就必须停止现行程序的运行,并在现行查询中插入一段程序
  • 存在CPU“踏步”现象,CPU与I/O串行工作
  • 这种方式的接口设计简单,设备量少,但是CPU在信息传送过程中要花费很多时间来查询和等待,且在一段时间内只能和一台外设交换信息,效率大大降低

2.2 程序中断方式

基本概念
  • 程序中断方式的基本思想
    • CPU在程序中安排好某个时机启动某台外设,CPU继续执行当前程序,无需一直等待外设就绪
    • 一旦外设完成数据传送的准备工作,就主动向CPU发出请求。
    • 在可以响应中断的情况下,CPU暂时中止当前的程序,转去执行中断服务程序
    • 在中断服务程序中完成一次主机和外设之间的数据传送,传送完成后CPU返回原来的程序
程序中断的工作流程
  • 中断请求、中断判优、中断响应、中断服务、中断返回

  • 中断请求

    • 每个中断源都设置有一个中断请求触发器INTR,当其状态为1表示中断源有请求
    • 通过INTR线发出的是可屏蔽中断,通过NMI线发出的是不可屏蔽中断
    • 可屏蔽中断优先级最低,在关中断模式下不会被相应;不可屏蔽中断在关中断模式下也会被响应
  • 中断响应判优

    • 中断响应的判优通常是通过硬件排队器实现的
    • 中断优先级包括响应优先级处理优先级。响应优先级在硬件线路上是固定的,不便改动;处理优先级可利用中断屏蔽技术动态调整
  • CPU响应中断的条件

    • 中断源有中断请求
    • CPU允许中断即开中断(异常和不可屏蔽中断不受此限制)
    • 一条指令执行完毕(异常不受此限制),且没有更紧迫的任务
    • CPU响应中断的时间是在每条指令执行阶段的结束时刻
  • 中断响应的过程 ^5ee712

    • 中断隐指令
      • 其操作由硬件直接实现,不是指令系统中的一条真正的指令,实质上是硬件的一列自动操作
      • 具体完成的操作
        • 保护程序断点
          • 将当前PC的内容(程序断点)保存到堆栈或存储器的指定单元中
        • 寻找中断服务程序的入口地址
          • 硬件向量法:在中断周期内,将向量地址送至PC,使CPU执行下一条无条件转移指令,转至中断服务程序的入口地址
          • 软件查询法:将软件查询入口地址的程序首地址送至PC,CPU执行中断识别程序,找到入口地址
        • 关中断
          • CPU进入中断周期说明CPU响应了某一中断源的请求,此时要关中断以禁止CPU再次响应新的中断请求
          • 中断标记触发器INT为1时,置EINT为0,即关中断
      • 关中断。CPU响应中断后,首先要保护程序的断点和现场信息,在保护的过程中CPU不能响应更高级中断源的中断请求
      • 保存断点。为保证中断服务程序执行完后能正确返回到原来的程序,必须将原程序的断点(指令无法直接读取PC和PSW的内容)保存在栈或特定寄存器中
      • 引出中断服务程序。识别中断源(硬件向量法/软件查询法),将对应的服务程序入口地址送入PC
  • 中断向量

    • 中断向量就是中断服务程序的入口地址(注:硬件电路产生向量地址,再由向量地址找到入口地址)
    • 中断向量表是存储全部中断向量的一块存储区
      • 在这里插入图片描述
  • 中断处理过程

    1. 关中断
    2. 保存断点
    3. 中断服务程序寻址
    4. 保存现场和屏蔽字
      • 现场信息是指用户可见的工作寄存器内容,它存放程序执行到断点处的现行值
      • 现场和断点都不能被中断服务程序破坏。现场信息能用指令直接访问,通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现;断点信息由CPU在中断响应时自动保存到栈或指定的寄存器中,即硬件实现
    5. 开中断。允许更高级中断请求得到响应,实现中断嵌套
    6. 执行中断服务程序
    7. 关中断。保证在恢复现场和屏蔽字的时候不被中断
    8. 恢复现场和屏蔽字
    9. 开中断、中断返回
多重中断和中断屏蔽技术
  • CPU要具备多重中断的功能,必须满足:
    • 在中断服务程序中提前设置开中断指令
    • 优先级高的中断源有权中断优先级低的中断源
  • 中断屏蔽
    • 每个中断源都有一个屏蔽触发器MASK,为1表示屏蔽该中断源的请求,为0表示可以正常申请

2.3 DMA方式

概述
  • DMA方式是一种完全由硬件进行成组信息传送的控制方式,具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作
  • 在DMA方式下,信息传送不经过CPU,降低了CPU在传送数据时的开销,也就不需要保护、恢复CPU现场![[总线#^eb7ff1]]
  • 适用于高速设备大批量数据的传送场合,硬件开销比较大
  • 在DMA方式下,中断的作用仅限于故障和正常传送结束时的处理
DMA方式的特点
  • 使主存和CPU的固定联系脱钩,主存既可以被CPU访问,又可以被外设访问
  • 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
  • 主存中要开辟专用缓冲区,及时供给和接收外设的数据
  • DMA传送速度快,CPU和外设并行工作,提高了系统效率
  • DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理
DMA控制器
  • DMA控制器(DMA接口)对数据传送过程进行控制,当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送

  • DMA控制器功能

    • 接受外设发出的DMA请求,并向CPU发出总线请求
    • CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期
    • 确定传送数据的主存单元的地址及长度,并自动修改主存地址计数和传送长度计数
    • 规定数据在主存和外设之间的传送方向,发出读写等控制信号,执行数据传送操作
    • 向CPU报告DMA操作结束
      在这里插入图片描述
  • 各个部件及其功能

    • 主存地址寄存器:存放要交换的数据的主存地址
    • 传送长度计数器:记录传送数据的长度,计数溢出时数据就传输完毕自动发中断请求信号
    • 数据缓冲寄存器:暂存每次传送的数据
    • DMA请求触发器:每当I/O设备准备好数据后,给出一个控制信号,使DMA请求触发器置位
    • 控制/状态逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号、CPU响应信号进行协调和同步
    • 中断机构:当一个数据块传送完毕后触发中断机构,向CPU发出中断请求
  • 注:在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线、控制总线,CPU的主存控制信号被禁用

DMA的传送方式
  • 停止CPU访存
    • 当I/O设备有DMA请求时,由DMA控制器向CPU发送一个停止信号,使CPU脱离总线,停止访问主存,直到DMA传送一块数据结束
    • 数据传送结束后,DMA控制器通知CPU可以使用主存,将总线控制权交还给CPU
    • 优点:控制简单,适用于数据传输率很高的I/O设备实现成组数据的传送
    • 缺点:DMA接口在访问主存时,CPU基本上处于不工作状态或保持原状态,
  • 周期挪用(周期窃取)
    • 当I/O设备有DMA请求时,有以下三种情况:
      • CPU不访存,因此I/O的访存请求与CPU不发生冲突
      • CPU正在访存,此时必须等存取周期结束后,CPU再让出总线占用权
      • I/O设备和CPU同时发出访存请求,出现访存冲突,此时CPU要暂时放弃总线占用权。I/O访存优先级高于CPU访存,因为I/O不立即访存就可能丢失数据,此时由I/O设备挪用一个或几个存取周期,传送完一个数据后立即释放总线,是一种单字传送方式
    • 优点:与CPU暂停访存方式相比,这种方式既实现了I/O传送,又较好地发挥了主存和CPU的效率,是一种广泛采用的方法
    • :I/O设备每挪用一个主存周期都要申请总线控制权、建立总线控制权和归还总线控制权。因此周期挪用方法较适用于I/O设备的读写周期大于主存周期的情况
  • DMA与CPU交替访存
    • 这种方式适用于CPU的工作周期比主存存取周期长的情况
    • 比如可将CPU周期分为 C 1 C_1 C1 C 2 C_2 C2两个周期, C 1 C_1 C1供DMA访存, C 2 C_2 C2供CPU访存
    • 这种方式不需要总线使用权的申请、建立和归还过程,总线使用权是通过 C 1 C_1 C1 C 2 C_2 C2分时控制
DMA的传送过程
  • 预处理阶段
    • CPU完成一些准备工作
      • 主存起始地址 → A R \rightarrow AR AR
      • I/O设备地址 → D A R \rightarrow DAR DAR
      • 传送数据的个数 → W C \rightarrow WC WC
      • 启动I/O设备
  • 数据传送阶段
    • DMA的数据传送可以以单字节(或字)为基本单位,也可以以数据块为基本单位
    • 对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的,这一循环也是由DMA控制器实现的,即数据的传送阶段完全由DMA(硬件)控制
  • 后处理阶段
    • DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验数据、测试传送过程中是否出错、决定是否继续使用DMA传送其他数据等
DMA方式和中断方式的区别
比较内容中断方式DMA方式
对CPU的占用是程序的切换,需要保护和恢复现场除了预处理和后处理,其他时候不占用任何CPU资源
响应时间每条指令执行完毕时(即指令的执行周期后)响应可以发生在每个机器周期结束时(即在取指周期、间址周期、执行周期后均可),只要CPU不占用总线就能被响应
传送过程是否需CPU干预
优先级中断请求优先级低于DMA请求DMA请求优先级高于中断请求
异常处理能力中断方式有对异常事件的处理能力DMA方式仅局限于传送数据块的I/O操作
传送方式靠程序传送靠硬件传送

2.4 例题

中断屏蔽标志作用
  1. P 306 P_{306} P306)设置中断屏蔽标志可以改变()
    A. 多个中断源的中断请求优先级
    B. CPU对多个中断请求响应的优先次序
    C. 多个中断服务程序开始执行的顺序
    D. 多个中断服务程序执行完的次序
    解答:中断屏蔽标志的作用之一是实现中断升级,即改变中断处理的次序(注意不是中断响应次序,中断响应次序由硬件排队电路决定),因此它可以改变多个中断服务程序执行完的次序。选D
    错误原因:错选A
中断、DMA、串/并行
  1. P 306 20 P_{306}20 P30620)在各种I/O方式中,中断方式的特点是(),DMA方式的特点是()
    A. CPU与外设串行工作,传送与主程序串行工作
    B. CPU与外设并行工作,传送与主程序串行工作
    C. CPU与外设串行工作,传送与主程序并行工作
    D. CPU与外设并行工作,传送与主程序并行工作
    解答:选B,D。在程序查询方式中,CPU与外设串行工作,传送与主程序串行工作;中断方式中,CPU与外设并行工作,当数据准备好时仍需中断主程序以执行数据传送,因此传送和主程序串行工作;DMA方式中,CPU与外设、传送与主程序都是并行工作的
响应DMA请求时间
  1. P 307 24 P_{307}24 P30724)CPU响应DMA请求的条件是当前()执行完
    A. 机器周期 B. 总线周期 C. 机器周期和总线周期 D. 指令周期
    解答:每个机器周期结束后,CPU就可以响应DMA请求(只要CPU不占用总线)。选A
    错误原因:错选C,一个总线周期可由多个机器周期组成,混淆了总线周期和机器周期和概念
  2. 2013 2013 2013)下列关于中断I/O方式和DMA方式的比较的叙述中,错误的是()
    A. 中断I/O方式请求的是CPU处理时间,DMA方式请求的是总线使用权
    B. 中断响应发生在一条指令执行结束后,DMA响应发生在一个总线事务完成后
    C. 中断I/O方式下数据传送通过软件完成,DMA方式下数据传送由硬件完成
    D. 中断I/O方式适用于所有外部设备,DMA方式仅适用于快速外部设备
    解答:选D
    错误原因:错选B,注意总线事务的定义
    总线事务
  • 从请求总线到完成总线使用的操作序列称为总线事务,典型的总线事务包括:
    • 请求阶段:主设备(CPU或DMA)发出总线传输请求,并获得总线控制权
    • 仲裁阶段:总线仲裁机构决定将下一个传输周期的总线使用权授予某个申请者
    • 寻址阶段:主设备通过总线给出要访问的从设备的地址及有关命令,启动从模块
    • 传输阶段:主从模块交换数据,单向或双向,一般只能传输一个字长的数据
    • 释放阶段:主模块的有关信息均从系统总线上撤出,让出总线使用权

只有当CPU不占用总线时,也就是总线事务完成后,响应DMA请求

CPU响应中断
  1. 2021 2021 2021)下列关于多重中断系统中CPU响应中断的叙述,错误的是()
    A. 仅在用户态(执行用户程序)下,CPU才能检测和响应中断
    B. CPU只有在检测到中断请求信号后,才会进入中断响应周期
    C. 进入中断响应周期时,CPU一定处于中断允许(开中断)状态
    D. 若CPU检测到中断请求信号,则一定存在未被屏蔽的中断源请求信号
    解答:中断服务程序在内核态下执行,若只能在用户态下检测和响应中断,则显然无法实现多重中断,所以A错误。
    错误原因:错选C,做题的时候在A,C之间纠结,因为觉得对于不可屏蔽中断来说,不必处于开中断状态也能响应。但是,这道题说的是多重中断系统,对于多重中断系统,中断服务程序中提前开中断,以响应其他中断源的请求。注意审题!
综合题
  1. 2012 2012 2012)假定某计算机的CPU主频为80MHz,CPI 为4,平均每条指令访存1.5次,主存与Cache之间交换的块大小为16B, Cache 的命中率为99%,存储器总线宽带为32位。回答下列问题。
    (1)该计算机的MIPS数是多少?平均每秒Cache 缺失的次数是多少?在不考虑DMA传送的情况下,主存带宽至少达到多少才能满足CPU的访存要求?
    (2)假定在Cache缺失的情况下访问主存时,存在0.0005%的缺页率,则CPU平均每秒产生多少次缺页异常?若页面大小为4KB, 每次缺页都需要访问磁盘,访问磁盘时DMA传送采用周期挪用方式,磁盘I/O接口的数据缓冲寄存器为32位,则磁盘I/O接口平均每秒发出的DMA请求次数至少是多少?
    (3)CPU和DMA控制器同时要求使用存储器总线时,哪个优先级更高?为什么?
    (4)为了提高性能, 主存采用4体低位交叉存储模式,工作时每1/4个存储周期启动一个体。若每个体的存储周期为50ns,则该主存能提供的最大带宽是多少?
    解答:本题涉及多个考点:计算机的性能指标、存储器的性能指标、DMA的性能分析、DMA方式的特点、多体交叉存储器的性能分析
    (1) M I P S = f C P I × 1 0 − 6 = 20 \displaystyle MIPS=\cfrac{f}{CPI}\times 10^{-6}=20 MIPS=CPIf×106=20
    平均每条指令访存1.5次,因此每秒Cache的缺失次数为 80 M 4 × 1.5 × ( 1 − 99 % ) = 300 K \displaystyle \cfrac{80M}{4}\times 1.5\times(1-99\%)=300K 480M×1.5×(199%)=300K次;
    当Cache缺失时,CPU访问主存,主存与Cache之间以块为传送单位,此时主存的带宽为 16 B × 300 k / s = 4.8 M B / s 16B\times 300k/s=4.8MB/s 16B×300k/s=4.8MB/s,在不考虑DMA传送的情况下,主存带宽至少为 4.8 M B / s 4.8MB/s 4.8MB/s才能满足CPU访存要求
    (2)题中假定在Cache缺失的情况下访问主存,平均每秒产生缺页中断 300000 × 0.0005 % = 1.5 300000\times 0.0005\%=1.5 300000×0.0005%=1.5次;
    因为存储器总线宽度为32位,所以每传送32位数据,磁盘控制器发出一次DMA请求,因此平均每秒磁盘DMA请求次数至少为 1.5 × 4 K B / 4 B = 1536 1.5\times 4KB/4B=1536 1.5×4KB/4B=1536
    (3)CPU和DMA控制器同时要求使用存储器总线时,DMA请求的优先级更高,因为DMA请求得不到及时响应,I/O传输数据可能会丢失
    (4)4体低位交叉存模式能提供的最大带宽为 4 × 4 B / 50 n s = 320 M B / s 4\times4B/50ns=320MB/s 4×4B/50ns=320MB/s

  2. 2016 2016 2016)假定CPU主频为50MHz,CPI为4。设备D采用异步串行通信方式向主机传送7位ASCII码字符,通信规程中有1位奇校验位和1 位停止位,从D接收启动命令到字符送入I/O端口需要0.5ms。回答下列问题,要求说明理由。
    (2)设备D采用中断方式进行输入/输出,示意图如下所示:
    在这里插入图片描述

    I/O端口每收到一个字符申请一次中断, 中断响应需10 个时钟周期,中断服务程序共有20条指令,其中第15条指令启动D工作。若CPU需从D读取1000个字符,则完成这一-任务所需时间大约是多少个时钟周期? CPU用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段CPU进行了哪些操作?
    解答:(2)一个字符传送时间包括:①设备D将字符送到I/O端口的时间;②中断响应时间;③中断服务程序的前15条指令的执行时间。
    时钟周期 T = 1 50 M H z = 20 n s T=\cfrac{1}{50MHz}=20ns T=50MHz1=20ns,设备D将字符送到I/O端口的时间为 0.5 m s 20 n s = 250000 \cfrac{0.5ms}{20ns}=250000 20ns0.5ms=250000个时钟周期;一个字符传送所需时钟周期数约为 250000 + 10 + 15 × 4 = 25070 250000+10+15\times 4=25070 250000+10+15×4=25070;完成1000个字符的传送所需时钟周期数为 1000 × 25070 = 25070000 1000\times 25070=25070000 1000×25070=25070000
    CPU用于该任务的时间约为 1000 × ( 10 + 20 × 4 ) = 90000 1000\times(10+20\times 4)=90000 1000×(10+20×4)=90000个时钟周期。
    在中断响应阶段,CPU主要执行的操作:关中断、保护程序断点和现场信息、识别中断源
    错误原因:前15条指令,直接按所有的20条指令算的

  3. P 311 10 P_{311}10 P31110)一个DMA接口可采用周期窃取方式把字符传送到存储器,它支持的最大批量为400B。若存取周期为0.2μs,每处理一次中断需5μs, 现有的字符设备的传输率为9600b/s。假设宇符之间的传输是无间隙的,试问DMA方式每秒因数据传输占用处理器多少时间?若完全采用中断方式,又需占处理器多少时间(忽略预处理所需时间) ?
    解答:字符设备的传输速率为9600b/s,每秒可以传输 9600 / 8 = 1200 B 9600/8=1200B 9600/8=1200B,即1200个字符(本题中字节、字符不加以区分)
    (1)若采用DMA方式,传输1200个字符共需1200个存取周期,考虑到每传输400个字符需要中断处理一次,因此DMA方式每秒因数据传输占用处理器的时间为 0.2 μ s × 1200 + 5 μ s × ( 1200 / 400 ) = 255 μ s 0.2\mu s \times 1200+5\mu s\times(1200/400)=255\mu s 0.2μs×1200+5μs×(1200/400)=255μs
    (2)若采用中断方式,每秒因数据传输占用处理器的时间为 5 μ s × 1200 = 6000 μ s 5\mu s \times 1200=6000\mu s 5μs×1200=6000μs
    错误原因:对周期窃取方式理解不到位,每传输一个字符就要窃取一个存取周期,做题时理解为传输400个字符窃取一个存取周期;同样的,中断方式下,每传输一个字符就要进行一次中断。被400B迷惑了😪

  4. P 311 11 P_{311}11 P31111)假设磁盘传输数据以32位的字为单位,传输速率为1MB/s,CPU的时钟频率为50MHz。回答以下问题:
    (3)采用DMA的方式,假定DMA的启动需要1000个时钟周期,DMA完成时后处理需要500个时钟周期。若平均传输的数据长度为4KB (此处K=1000),试问硬盘工作时CPU将用多少时间比率进行输入/输出操作?忽略DMA申请总线的影响。
    解答:采用DMA方式时,输入/输出不需要CPU干预,CPU所花时间仅为启动时间和后处理时间,即传输一次数据CPU所花时间为 1000 + 500 1000+500 1000+500个时钟周期,即 30 μ s 30\mu s 30μs。DMA的平均传输长度为4KB,传输一次平均所花时间为 4 K B 1 M B / s = 4 m s = 4000 μ s \cfrac{4KB}{1MB/s}=4ms=4000\mu s 1MB/s4KB=4ms=4000μs
    总耗时 = 启动时间 + 传输时间 + 后处理时间 = 4000 μ s + 30 μ s = 4030 μ s 总耗时=启动时间+传输时间+后处理时间=4000\mu s+30\mu s=4030\mu s 总耗时=启动时间+传输时间+后处理时间=4000μs+30μs=4030μs
    因此,CPU为DMA传输数据所花时间的比率为 30 μ s 4030 μ s × 100 % = 0.74 % \cfrac{30\mu s}{4030\mu s}\times 100\%=0.74\% 4030μs30μs×100%=0.74%
    错误原因:见习题本

3. 小结

常见问题及易混淆知识点

中断响应优先级 VS 中断处理优先级
  • 中断响应优先级由硬件排队器或中断查询程序的查询顺序决定,不可动态改变
  • 中断处理优先级可由中断屏蔽字改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位为0,则对新的中断开放),若是,则中止正在处理的中断,转到新的中断去处理,处理完后再回到刚刚被中止的中断继续处理
向量中断 VS 中断向量 VS 向量地址
  • 向量中断:一种识别中断源的技术或方式
  • 中断向量:中断服务程序的入口地址
  • 向量地址:中断向量的地址
程序中断和调用子程序的区别
  • 二者的根本区别在于服务时间服务对象不一样
    • 调用子程序过程发生的时间是已知和固定的。中断过程的发生时间一般是随机的。也可以说,调用子程序是程序设计者事先安排的,而执行中断是由系统工作环境随机决定的
    • 子程序完全为主程序服务,二者属于主从关系。中断服务程序与主程序二者一般是无关的,不存在谁为谁服务,二者是平等关系
    • 主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路。中断处理系统是一个软硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程
    • 子程序嵌套可以有若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制。中断嵌套的级数主要由中断优先级决定,一般优先级数不会太大

更新文档

更新日期更新内容
2022/6/24补充了例题
2022/7/15增加中断向量地址表的图示
2022/7/19增加2.4综合题和3.小结
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值