计算机组成原理 - 总线、输入/输出系统

news2024/11/27 18:36:43

总线

考纲内容

  • 总线的基本概念
  • 总线的组成及性能指标
  • 总线事务和定时

本章大多以选择题的形式出现,特别是总线的特点、猝发传输方式、性能指标、定时方式及常见的总线标准等

思考以下问题:

1、引入总线结构有什么好处?
2、引入总线结构会导致什么问题?如何解决?

总线概述

早期计算机的各部件之间是通过单独的连线互连的,这种方式称为**分散连接**
随着I/O设备的种类和数量越来越多,为了更好地解决I/O设备和主机之间连接的灵活性,计算机的结构从分散连接发展为**总线连接**

总线基本概念

  • 总线的定义

总线是**一组能为多个部件分时和共享的公共信息传送线路**
**分时和共享**是总线的两个特点

分时是指**同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发送信息
共享是指
总线上可以挂接多个部件,各个部件之间互相交换的信息都可通过这组线路分时共享,多个部件可同时从总线上接收相同的信息**

  • 总线设备

总线上所连接的设备,按其对总线有无控制功能可分为**主设备和从设备**两种

主设备:指**发出总线请求且获得总线控制权的设备**
从设备:指**被主设备访问的设备,它只能响应从主设备发来的各种总线命令**

  • 总线特性

总线特性是指机械特性(尺寸、形状)、电气特性(传输方向和有效的电平范围)、功能特性(每根传输线的功能)和时间特性(信号和时的关系)

总线的分类

  • 按功能层次分类

1> 片内总线芯片内部的总线,用于CPU芯片内部各寄存器之间及寄存器与ALU的连接

2> 系统总线计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线
按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线

  1. 数据总线用来**在各部件之间传输数据、指令和中断类型号等,它是双向传输总线,数据总线的位数反映一次能传送的数据的位数**
  2. 地址总线用来**指出数据总线上源数据或目的数据所在的主存单元或I/O端口的地址,它是单向传输总线,地址总线的位数反映最大的寻址空间**
  3. 控制总线用来**传输各种命令、反馈和定时信号**,典型的控制信号包括时钟、复位、总线请求/允许、中断请求/回答、存储器读/写、I/O读、I/O写、传输确认等
注意区分数据通路和数据总线:
各个功能部件通过数据总线连接形成的数据传输路径称为数据通路
数据通路表示的是数据流经的路径,而数据总线是数据传输的媒介

3> I/O总线。主要用于**连接中低速的I/O设备,通过I/O接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能**,常见的有USB、PCI总线

4> 通信总线计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线,通信总线也称外部总线

  • 按时序控制方式分类

1> 同步总线。总线上连接的部件或设备**通过统一的时钟进行同步,在规定的时钟节拍内进行规定的总线操作,来完成部件或设备之间的信息传输**

2> 异步总线。总线上连接的部件或设备**没有统一的时钟,而以信号握手的方式来协调各部件或设备之间的信息传输,总线操作时序不是固定的**

  • 按数据传输方式分类

1> 串行总线只有一条双向传输或两条单向传输的数据线,数据按比特位串行顺序传输,其效率低于并行总线
串行传输对数据线的要求不太高,因此**适合长距离通信**

2> 并行总线有多条双向传输的数据线,可以实现多比特位的同时传输,其**效率比串行总线更高**
缺点:各条数据线的传输特点可能存在一些差异,比如有的信息位可能会延迟,并且数据线之间相互干扰还会造成传输错误,因此**并行总线适合近距离通信**

注:

并行总线并不一定总比串行总线快,它们适合不同的场景
并行总线由于是多个数据位同时传输,需要考虑数据的协同性,以及线路之间的相互干扰,导致工作频率无法持续提高
而串行总线可通过不断提高工作频率来提高传输速度,使其速度最终超越并行总线的速度

系统总线的结构

  • 单总线结构

单总线结构**将CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上允许I/O设备之间、I/O设备与主存之间直接交换信息**

image-20240730212454605

CPU与主存、CPU与外设之间都可以通过总线直接进行信息交换,而无须经过中间设备的干预

需要注意的是,单总线并不是指只有一根信号线,系统总线按传送信息的不同可细分为地址总线、数据总线和控制总线

优点:结构简单,成本低,易于接入新的设备
缺点:带宽低、负载重,多个部件只能争用唯一的总线,且不支持并发传送操作

  • 双总线结构

双总线结构有两条总线:一条是主存总线用于在CPU、主存和通道之间传送数据;另一条是I/O总线用于在多个外部设备与通道之间传送数据

image-20240730212645302

优点:将低速I/O设备从原单总线上分离出来,实现了存储器总线和I/O总线分离
缺点:需要增加通道等硬件设备

  • 三总线结构

三总线结构是在计算机系统各部件之间采用3条各自独立的总线来构成信息通路,这三条总线分别为**主存总线、I/O总线和直接内存访问(DMA)总线**

image-20240730212755192

主存总线用于**在CPU和内存之间传送地址、数据和控制信息**
I/O总线用于**在CPU和各类外设之间通信**
DMA总线用于**在内存和高速外设之间直接传送数据**

优点:提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量
缺点:任意时刻只能使用一种总线,系统工作效率较低

总线的性能指标

  • 总线时钟周期。即**机器的时钟周期**。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制
  • 总线时钟频率。即**机器的时钟频率,它为时钟周期的倒数**
  • 总线传输周期。指**一次总线操作所需的时间**,包括申请阶段、寻址阶段、传输阶段和结束阶段。总线传输周期通常由若干总线时钟周期构成
  • 总线工作频率。总线上各种操作的频率,为**总线周期的倒数。实际上指1秒内传送几次数据**
    若**总线周期 = N个时钟周期,则总线的工作频率 = 时钟频率 / N**
    若一个时钟周期可以传送K次数据,则总线工作频率是总线时钟频率的K倍
  • 总线宽度。总线宽度也称总线位宽,是**总线上能够同时传输的数据位数,通常指数据总线的根数**,如32根称为32位总线
  • 总线带宽单位时间内总线上最多可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用**字节/秒(B/s)**表示
    总线带宽 = 总线工作频率 x (总线宽度 / 8)
  • 总线复用。总线复用是指**一种信号线在不同的时间传输不同的信息**
    如,有些总线没有单独的地址线,地址信息通过数据线来传送,这种情况称为地址/数据线复用
    因此**可以使用较少的线传输更多的信息,从而节省空间和成本**
  • 信号线数。地址总线、数据总线和控制总线3种总线数的总和称为信号线数

其中,总线**最主要的性能指标为总线宽度、总线工作颜率、总线带宽**
总线带宽是指总线的最大数据传输速率,它是衡量总线性能的重要指标
三者的关系:总线带宽 = 总线宽度 x 总线工作频率
例如,总线工作频率为22MHz,总线宽度为16位,则总线带宽 = 22MHz x (16 / 8) = 44MB/s


提醒:

1、不同信号在同一条信号线上分时传输的方式称为总线复用方式
2、总线中,数据总线是双向传输的,数据信息既可由CPU传送至内存或外设,有可由内存、外设传送至CPU
3、地址总线是单向传输的,地址信息只能由CPU发送至内存或外设
4、控制信息和状态信息是单向传输的,它们的传输方向正好相反,控制信息通过控制总线由CPU发送指内存或外设,而状态信息通过状态总线由内存或外设发送至CPU
5、每秒传送次数 = 时钟频率 x 每个时钟周期传递几次

总线事务和定时

总线事务

从请求总线到完成总线使用的操作序列称为总线事务,它是一个总线周期中发生的一系列活动
典型的总线事务包括**请求操作、仲裁操作、地址传输、数据传输和总线释放**

  1. 请求阶段主设备(CPU或DMA)发出总线传输请求,并且**获得总线控制权**
  2. 仲裁阶段。总线仲裁结构**决定将下一个传输周期的总线使用权授予某个申请者**
  3. 寻址阶段主设备通过总线给出要访问的从设备地址及有关命令启动从模块
  4. 传输阶段主模块和从模块进行数据交换,可单向或双向进行数据传送
  5. 释放阶段。主模块的有关信息均**从系统总线上撤除让出总线使用权**

总线上的数据传送方式分为**非突发方式和突发方式**两种

非突发传送方式在**每个传送周期内都先传送地址,再传送数据,主、从设备之间通常每次只能传输一个字长的数据**
突发(猝发)传送方式能够**进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,但是不释放总线,直到一组数据全部传送完毕后,再释放总线**

总线定时

总线定时是指**总线再双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,其实质是一种协议或规则,主要有同步、异步、半同步和分离式**四种定时方式

  • 同步定时方式

指**系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。时钟产生相等的时间间隔每个间隔构成一个总线周期**
在一个总线周期中,发送方和接收方可以进行一次数据传送

因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线中传送周期中,一个总线的传送周期结束,下一个总线的传送周期开始

优点:传送速度快、具有较高的传输速率;总线控制逻辑简单
缺点:主从设备属于强制性同步;不能及时进行数据通信的有效性检验,可靠性较差

同步通信**适用于通信方式是发送方时钟直接控制接收方时钟使双方完全同步的一种逐位传输的通信方式**
使用同步串行通信时,由于收发双方的时钟严格一致,因此**仅在数据块的头尾处添加了开始和结束标记传输效率较高**,但实现的硬件设备也更复杂

  • 异步定时方式

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全**依靠传送双方相互制约的握手信号来实现定时控制**

通常,主设备提出交换信息的请求信号,经结构传送到从设备从设备接到主设备的请求后,通过接口向主设备发出回答信号

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合
缺点:比同步控制方式稍复杂一些,速度比同步定时方式

根据“请求”和“回答”信号的撤销是否互锁,异步定时方式又分为以下3种类型:

  1. 不互锁方式
    主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是**经过一段时间便撤销“请求”信号**
    从设备接到“请求”信号后,发出“回答”信号,并经过一段时间后自动撤销“回答”信号
    双方不存在互锁关系
  2. 半互锁方式
    主设备发出“请求”信号后,必须在接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系
    从设备接到“请求”信号后,发出“回答”信号,不必等待获知主设备的“请求”信号已经撤销,经过一段时间后自动撤销“回答”信号
    不存在互锁关系
  3. 全互锁方式
    主设备发出“请求”信号后,必须在从设备“回答”后才撤销“请求”信号
    从设备发出“回答”信号后,必须在获知主设备“请求”信号已撤销后,再撤销其“回答”信号
    双方存在互锁关系

image-20240731212614144

使用异步串行通信时,由于收发双方时钟不严格一致,因此**每个字符都要用开始位和停止位作为字符开始和结束的标志,从而保证数据传输的准确性**

异步串行通信的第一位是开始位,表示字符传送的开始
当通信线上没有数据传送时处于逻辑“1”状态,当发送方要发送一个字符时,首先发出一个逻辑“0”信号,即开始位

接收方检测到这个逻辑低电平后,就开始准备接收数据位
在字符传送过程中,数据位从最低位开始,一位一位地传输。当字符发送完后,就可以发送奇偶校验位(可选),以用于有限的差错检测
在奇偶位或数据位之后发送的是停止位,表示一个字符数据的结束
  • 半同步定时方式

半同步定时方式保留了同步定时的特点,如**所有地址、命令、数据信号的发出时间都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别**
同时,又像异步定时那样,允许不同速度的设备和谐地工作。为此增设一条Wait响应信号线

例如,某个半同步总线总是从某个时钟开始,在每个时钟到来时,采样Wait信号
若无效,则说明数据未准备好,下个时钟到来时,再采样Wait信号,直到检测到有效,再去数据线上取数据

半同步定时**适用于系统工作速度不高,但又包含了由许多速度差异较大的各类设备组成的简单系统**

优点:控制方式比异步定时简单,各模块在系统时钟的控制下同步工作,可靠性较高
缺点:系统时钟频率不能要求太高,所以从整体上来看,系统工作的速度不是很高


以上三种定时方式都**从主设备发出地址和读/写命令开始,直到数据传输结束,在整个传输周期中,总线的使用权完全由主设备及由其选中的从设备占据**。实际上,从设备在准备数据的阶段,总线纯属空闲等待


  • 分离式定时方式

分离式定时方式**将总线事务分解为请求和应两个子过程**

在第一个子过程中,主设备A获得总线使用权后,将命令、地址等信息发到总线上,经总线传输后由从设备B接收
此过程占用总线的时间很短,主设备一旦发送完,立即释放总线,以便其他设备使用

在第二个子过程中,设备B收到设备A发来的有关命令后,将设备A所需的数据准备好后,便由设备B申请总线使用权
一旦获准,设备B便将相应的数据送到总线上,由设备A接收

上述**两个子过程都只有单方向的信息流每个设备都变为主设备**

优点:在不传送数据时释放总线,使总线可接受其他设备的请求,不存在空闲等待时间
缺点:控制复杂,开销也大


提醒:

1、异步总线中,传送操作时有双方按需求分配时间的
2、多总线结构用速率高的总线连接高速设备,用低速率的总线连接低速设备
3、突发传送方式把多个数据单元作为一个独立传输处理,从而最大化设备的吞吐量
4、各总线通过桥接器相连,后者起流量交换作用
5、PCI-E总线都采用chuan'xin

本章小结

引入总线结构有什么好处?

引入总线结构主要有以下优点:
1、简化了系统结构,便于系统设计制造
2、大大减少了连线数目,便于布线,减小体积,提高系统的可靠性
3、便于接口设计,所有与总线连接的设备均采用类似的接口
4、便于系统的扩充、更新与灵活配置,易于实现系统的模块化
5、便于设备的软件设计,所有接口的软件对不同的接口地址进行操作
6、便于故障诊断和维修,同时也能降低成本

引入总线会导致什么问题?如何解决?

引入总线后,总线上的各个设备分时共享同一总线,当总线上多个设备同时请求使用总线时就会导致冲突
为解决多个设备同时竞争总线控制权的问题,应当采用总线仲裁部件,以某种方式选择一个主设备获得总线控制权,只有获得了总线控制权的设备才能开始数据传送

一个总线在某一时刻可以有多对主从设备进行通信吗?

在某个总线周期内,总线上只有一个主设备控制总线,选择一个从设备与之进行通信(即一对一的关系),或对所有设备进行广播通信(即一对多的关系)
所以一个总线在某一时刻不能有多对主从设备进行通信,否则会发生数据冲突

输入/输出系统

考纲内容

  • I/O接口(I/O控制器)
    I/O接口的功能和基本结构;I/O端口及其编址
  • I/O方式
    程序查询方式
    程序中断方式:中断的基本概念;中断响应过程;中断处理过程;多重中断和中断屏蔽的概念
    DMA方式:DMA控制器的组成;DMA传送过程

I/O方式是这章的重点和难点,不仅会以选择题的形式考查基本概念和原理,而且可能会以综合题的形式考查
特别是各种I/O方式效率的相关计算,中断方式的各种原理、特点、处理过程、中断屏蔽、DMA方式的特点、传输过程、与中断方式的区别等

思考以下问题:

I/O设备有哪些编址方式?有何特点?
CPU响应中断应具备哪些条件?

I/O系统基本概念(大纲已删)

由于大纲已删,这里粗略过一下

输入/输出系统

输入/输出是以主机为中心而言的,将信息从外部设备传送到主机称为输入,反之称为输出
输入/输出系统解决的主要问题是对各种形式的信息进行输入和输出的控制

I/O系统中的几个基本概念如下:

  1. 外部设备。包括输入/输出设备及通过输入/输出接口才能访问的外存储设备
  2. 接口。在各个外设与主机之间传输数据时进行各种协调工作的逻辑部件。协调包括传输过程中速度的匹配、电平和格式转换等
  3. 输入设备。用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备
  4. 输出设备。用于将计算机系统中的信息输出到计算机外部进行显示、交换等的部件。显示器和打印机是最基本的输出设备
  5. 外存设备。指除计算机内存及CPU缓存等外的存储器,如硬磁盘、光盘等

一般来说,I/O系统由**I/O软件和I/O硬件**两部分构成:

  1. I/O软件。包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现CPU与I/O 设备的信息交换
  2. I/O硬件。包括外部设备、设备控制器和接口、I/O总线等。通过设备控制器来控制I/O设备的具体动作;通过I/O接口与主机(总线)相连

I/O 控制方式

在输入/输出系统中,经常需要进行大量的数据传输,而传输过程中有各种不同的I/O 控制方式,基本的控制方式主要有以下四种:

  1. 程序查询方式。由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息
  2. 程序中断方式。只在I/O设备准备就绪并向CPU发出中断请求时才予以响应
  3. DMA方式。主存和I/O设备之间有一条直接数据通路,当主存和I/O设备交换信息时,无须调用中断服务程序
  4. 通道方式。在系统中设有通道控制部件,每个通道都挂接若干外设,主机在执行I/O命令时,只需启动有关通道,通道将执行通道程序,从而完成I/O操作

其中,方式1和方式2主要用于数据传输速率较低的外部设备;方式3和方式4主要用于数据传输速率较高的设备

外部设备

最基本的外部设备主要有键盘、鼠标、显示器、打印机、磁盘存储器和光盘存储器等

  • 输入设备
    键盘、鼠标
  • 输出设备
    显示器、打印机
  • 外部存储器(辅存)
    磁表面存储器、固态硬盘(SSD)、光盘存储器

注意:

对于显示器有考过一种像素的题型
告诉 axb 像素的分辨率,像素颜色为 c ,求没单元字长为多少,总容量为多少
字长即 log2(c) 多少位即多长,单位为bit
总容量即 (axb) x log2(c) / 8,单位为B(字节)

I/O接口

I/O接口(也称I/O控制器)是**主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换**
外设种类繁多,且具有不同的工作特性,它们在工作方式、数据格式和工作速度等方面有着很大的差异,接口正是为了解决这些差异而设置的

I/O接口的功能

I/O接口的主要功能如下:

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

I/O 接口的基本结构

image-20240801213537948

如上所示是一个I/O接口的通用结构,I/O接口在主机侧通过I/O总线与内存、CPU相连

数据缓冲寄存器用来**暂存与CPU或内存之间传送的数据信息**
状态寄存器用来**记录接口和设备的状态信息**
控制寄存器用来**保存CPU对外设的控制信息**

状态寄存器和控制寄存器在传送方向上是相反的,在访问时间上也是错开的

数据线传送的是读/写数据、状态信息、控制信息和中断类型号
地址线传送的是要访问I/O接口中的寄存器的地址
控制线传送的是读/写控制信号,以确认是读寄存器还是写寄存器,此外控制线还会传送中断请求和响应信号、仲裁信号和握手信号

I/O接口中的**I/O控制逻辑还要能对控制寄存器中的命令字进行译码,并将译码得到的控制信号通过外设界面控制逻辑送到外设,同时将数据缓冲寄存器的数据发送到外设或从外设接收数据到数据缓冲寄存器。另外,它还要具有收集外设状态到状态寄存器的功能**

对数据缓冲寄存器、状态/控制寄存器的访问操作是通过相应的指令来完成的,通常称这类指令为I/O指令I/O指令只能在操作系统内核的底层I/O软件中使用,它们是一种特权指令

I/O 接口的类型

  • 按数据传送方式(外设和接口一侧),可分为**并行接口(一字节或一个字的所有位同时传送)和串行接口**(一位一位地有序传送),接口要完成数据格式的转换
  • 按主机访问I/O设备的控制方式,可分为**程序查询接口、中断接口和DMA接口等**
  • 按功能选择的灵活性,可分为**可编程接口(通过编程改变接口功能)和不可编程接口**

I/O端口及其编址

I/O端口是指**I/O接口电路中可被CPU直接访问的寄存器,主要有数据端口、状态端口和控制端口**
通常,CPU能够**对数据端口中的数据进行读/写操作对状态端口中的外设状态只能进行读操作对控制端口中的各种控制命令只能进行写操作**

注:端口和接口是两个不同的概念,端口是指接口电路中可以进行读/写的寄存器

I/O端口要想能够被CPU访问,就必须要对各个端口进行编址,每个端口对应一个端口地址

对I/O端口的编址方式有与存储器**独立编址统一编址**两种:

  • 独立编址

独立编址也称I/O映射方式,是指**对所有的I/O端口单独进行编址**

I/O端口的地址空间与主存地址空间是两个独立的地址空间,它们的**范围可以重叠,相同地址可能属于不同的地址空间。因此需设置专门的I/O指令来表明访问的是I/O地址空间**,I/O指令的地址码给出I/O端口号

优点:I/O端口数比主存单元数少得多,只需少量地址线,使得I/O端口译码简单,寻址速度更快。使用专用I/O指令,可使得程序更加清晰,便于理解和检查
缺点:I/O指令少,只提供简单的传输操作,所以程序设计的灵活性较差。此外,CPU需要提供存储器读/写、I/O设备读/写两组控制信号,增大了控制的复杂性

  • 统一编址

统一编址也称存储器映射方式,是指**把主存地址空间分出一部分给I/O端口进行编址I/O端口和主存单元在同一地址空间的不同分段中**
根据地址范围就能区分访问的是I/O端口还是主存单元,因此**无须设置专门的I/O指令,用统一的访存指令就可访问I/O端口**

优点:不需要专门的I/O指令,使得CPU访问I/O的操作更加灵活和方便,还使端口有较大的编址空间。I/O访问的保护机制可由虚拟存储管理系统来实现,无须专门设置
缺点:端口地址占用了部分主存地址空间,使主存可用容量变小。由于在识别I/O端口时全部地址线都需要参加译码,使得**译码电路变得更复杂,降低了译码速度**


提醒:

1、在统一编址的情况下,没有专门的I/O指令,因此用访存指令来实现I/O操作,区分存储单元和I/O设备是靠它们各自不同的地址码
2、在独立编址方式下,CPU需要设置专门的输入/输出指令访问端口
3、统一编址方式把I/O端口当作存储器的单元进行地址分配,CPU不需要设置专门的I/O指令(即输入/输出类指令),用统一的访存指令就可以访问I/O指令
4、磁盘驱动器向盘片磁道记录数据时采用串行方式写入
5、CPU和主存通过I/O总线和I/O接口连接,T/O接口通过通信总线和外设相连

I/O方式

输入/输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式,各种方式在代价、性能、解决问题的着重点方面各不相同
常用的I/O方式有**程序查询、程序中断和DMA**等,其中前两种方式更依赖于CPU中程序指令的执行

程序查询方式

信息交换的控制直接由CPU执行程序实现。程序查询方式结构中设置一个**数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)**
主机进行I/O操作时,先读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传送还是等待

程序查询方式的工作流程:

image-20240802212414148

  1. CPU执行初始化程序,并预置传送参数
  2. 向I/O接口发出命令字,启动I/O设备
  3. 从外设接口读取其状态信息
  4. CPU周期或持续的查询设备状态,直到外设准备就绪
  5. 传送一次数据
  6. 修改地址和计数器参数
  7. 判断传送是否结束,若未结束转第3步,直到计数器为0

根据上述流程4中查询方式的不同,程序查询方式可分为如下两类:

  • 独占查询
    一旦设备被启动,CPU就一直持续查询接口状态,CPU花费100%的时间用于I/O操作,此时**外设和CPU完全串行工作**
  • 定时查询
    CPU周期性地查询接口状态,每次总是**等到条件满足才进行一个数据的传送,传送完成后返回到用户程序**
    定时查询的**时间间隔与设备的数据传输速率有关**

注:由于端口大小有限,必须在外设传输完端口大小的数据时访问端口,以防止数据未被及时读取而丢失

优点:设计简单、硬件量少
缺点:CPU要花费很多时间来查询和等待,且在一段时间内只能和一台外设交换信息,CPU与设备串行工作,效率很低

程序中断方式

程序中断的基本概念

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

中断技术的主要功能有:

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

程序中断方式的思想:

1> CPU在程序中安排好在某个时机启动某台外设,然后CPU继续执行当前的程序,不需要像査询方式那样一直等待外设准备就绪
2> 一旦外设完成数据传送的准备工作,就主动向CPU发出中断请求
3> 在可以响应中断的条件下,CPU 暂时中止正在执行的程序,转去执行中断服务程序为外设服务,在中断服务程序中完成一次主机与外设之间的数据传送
4> 传送完成后,CPU返回原来的程序。此时,外设和CPU又开始并行工作

image-20240802214126653

注:若准备数据的时间小于中断响应和中断处理的时间,则数据被刷新,造成丢失

程序中断的工作流程
  • 中断请求

中断源是**请求CPU中断的设备或事件,一台计算机允许有多个中断源。每个中断源向CPU发出中断请求的时间是随机的**

为记录中断事件并区分不同的中断源,中断系统需对**每个中断源设置中断请求标记触发器**,当其状态为“1”时,表示该中断源有请求
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断中

通过**INTR线发出的是可屏蔽中断,通过NMI线发出的是不可屏蔽中断**
可屏蔽中断的优先级最低,在关中断模式下不被响应
不可屏蔽中断用于处理紧急和重要的事件。如时钟中断、电源掉电等,其**优先级最高**
其次是内部异常,即使在关中断模式下也被响应

  • 中断响应判优

中断响应优先级是指**CPU响应中断请求的先后顺序**

由于许多中断源提出中断请求的时间都是随机的,因此**当多个中断源同时提出请求时,需通过中断判优逻辑来确定响应哪个中断源的 请求,中断响应的判优通常是通过硬件排队器(或中断查询程序)实现的**

一般来说
1、不可屏蔽中断 > 内部异常 > 可屏蔽中断
2、在内部异常中:硬件故障 > 软件中断
3、DMA中断请求 > I/O设备的中断请求
4、在I/O传送类中断请求中:高速设备 > 低速设备;输入设备 > 输出设备;实时设备 > 普通设备

注:中断优先级包括响应优先级和处理优先级,响应优先级由硬件线路或查询程序的查询顺序决定,不可动态改变。处理优先级可利用中断屏蔽技术,以实现多重中断

  • CPU响应中断的条件

CPU在满足一定的条件下响应中断源发出的中断请求,并经过一些特定的操作,转去执行中断服务程序。CPU响应中断必须满足以下3个条件:

  1. 中断源有中断请求
  2. CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)
  3. 一条指令执行完毕(异常不受此限制),且没有更紧迫的任务

注:I/O设备的就绪时间是随机的,而CPU在统一的时刻即每条指令执行结束时,采样中断请求信号(开中断的情况下),以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻这里说的中断仅指I/O中断,异常不属于此类情况

  • 中断响应过程

CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是**由硬件直接实现的,称为中断隐指令
中断隐指令并不是指令系统中的一条真正的指令,只是一种虚拟的说法,
本质上是硬件的一系列自动操作**

它所完成的操作如下:

  1. 关中断。CPU响应中断后,首先要保护程序的断点和现场信息,在保护断点和现场的过程中,CPU不能响应更高级中断源的中断请求
    否则,若断点或现场保存不完整,在中断服务程序结束后,就不能正确地恢复并继续执行现行程序

  2. 保存断点为保证在中断服务程序执行完后能正确地返回到原来的程序,必须**将原程序的断点(指令无法直接读取的PC和PSW的内容)保存在或特定寄存器中**(x86机器保存PC和PSW到内存栈中;MIPS机器没有PSW,只保存PC到特定寄存器中)

    注意异常和中断的差异:
    异常指令通常并没有执行成功,异常处理后要重新执行,所以其断点通常是当前指令的地址
    中断的断点则是下一条指令的地址
    
  3. 引出中断服务程序识别中断源,将对应的服务程序入口地址送入程序计数器PC
    有两种方法识别中断源:硬件向量法软件查询法

  • 中断向量

中断识别分为**向量中断非向量中断**两种。非向量中断即软件查询法,第5章已介绍

每个中断源都有一个唯一的类型号
每个中断类型号都对应一个中断服务程序
每个中断服务程序都有一个入口地址,即中断向量
而**CPU则必须要找到入口地址**

把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表

CPU响应中断后,通过识别中断源获得中断类型号,然后据此计算出对应中断向量的地址
再根据该地址从中断向量表中取出中断服务程序的入口地址,并送入程序计数器PC,以转去执行中断服务程序

这种方法被称为中断向量法,采用中断向量法的中断被称为向量中断

注:中断请求和响应信号是在I/O总线的控制线上传送的。CPU响应某一中断后,就从数据线上获取该中断源的中断类型号,并据此计算对应中断向量在中断向量表中的位置

  • 中断处理过程

图下所示为一个可嵌套中断的典型处理流程:

image-20240802221547776

中断处理流程如下:

  1. 关中断

  2. 保存断点

  3. 中断服务程序寻址

  4. 保存现场和屏蔽字。进入中断服务程序后首先要保存现场和中断屏蔽字,现场信息是指用户可见的工作寄存器的内容,它存放程序执行到断点处的现行值

    注意:
    现场和断点,这两类信息都不能被中断服务程序破坏
    由于现场信息用指令可直接访问,因此通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现
    而断点信息由CPU在中断响应时自动保存到栈或指定的寄存器中,即由硬件实现
    
  5. 开中断。允许更高级中断请求得到响应,以实现中断嵌套

  6. 执行中断服务程序。这是中断请求的目的

  7. 关中断。保证在恢复现场和屏蔽字时不被中断

  8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态

  9. 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序

其中,1 ~ 3由中断隐指令(硬件自动)完成4 ~ 9由中断服务程序完成

  • 多重中断和中断屏蔽技术

在CPU执行中断服务程序的过程中:

若又**出现了新的优先级更高的中断请求,而CPU对新的中断请求不予响应,则称这种中断为单重中断**
若CPU**暂停现行的中断服务程序,转去处理新的中断请求,则称这种中断为多重中断**,也称中断嵌套

image-20240803165201237

CPU 要具备多重中断的功能,必须满足下列条件:

  1. 在中断服务程序中提前设置开中断指令
  2. 优先级别高的中断源有权中断优先级别低的中断源

中断处理优先级是指**多重中断的实际优先级处理次序,可以利用中断屏蔽技术动态调整,从而可以灵活地调整中断服务程序的优先级,使中断处理更加灵活**
若**不使用中断屏蔽技术,则处理优先级和响应优先级相同**

每个中断源都有一个屏蔽触发器(MASK),1表示屏蔽该中断源的请求,0表示可以正常请求,所有屏蔽触发器组合在一起便构成一个**屏蔽字寄存器**,屏蔽字寄存器的内容称为屏蔽字

从宏观上看,虽然程序中断方式克服了程序查询方式中CPU的等待现象,提高了CPU的利用率
从微观操作分析,CPU在处理中断时,仍需暂停原程序的运行,尤其是当高速设备频繁成批地与主存交换信息时,需要不断打断CPU执行现行程序而去执行中断服务程序

DMA方式

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

由于数据传送不经过CPU,因此**不需要保护、恢复CPU现场等烦琐操作**
这种方式**适用于磁盘、显卡、声卡、网卡等高速设备大批量数据的传送,它的硬件开销比较大**

在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理

DMA方式的特点

主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此**不必中断现行程序,I/O与主机并行工作,程序和传送并行工作**

DMA方式具有下列特点:

  1. 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问
  2. 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现
  3. 主存中要开辟专用缓冲区,以及时提供和接收外设的数据
  4. DMA传送速度快,CPU和外设并行工作,提高了系统效率
  5. DMA在**传送开始前要通过程序进行预处理结束后要通过中断方式进行后处理**
DMA控制器的组成

在DMA方式中,**对数据传送过程进行控制的硬件**称为DMA控制器(DMA接口)
当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出DMA传送请求,CPU响应之后将让出系统总线,由DMA控制器接管总线进行数据传送

其主要功能如下:

  1. 接受外设发出的DMA请求,并向CPU发出总线请求
  2. CPU响应并发出总线响应信号,DMA接管总线控制权,进入DMA操作周期
  3. 确定传送数据的主存起始地址及长度,并自动修改主存地址计数和传送长度计数
  4. 规定数据在主存和外设间的传送方向,发出读/写等控制信号,执行数据传送操作
  5. 向CPU报告DMA操作结束

如上为一个简单的DMA控制器

  • 主存地址计数器存放要交换数据的主存地址
    在传送前,其保存的是传送数据的主存起始地址
    每传送一个字,地址寄存器的内容就加1,直至该批数据传送完毕
  • 传送长度计数器记录传送数据的总长度
    在传送前,其记录的是该批数据的总字数
    每传送一个字,计数器就减1,直至计数器为0,表示该批数据传送完毕
  • 数据缓冲寄存器暂存每次传送的数据
    通常,DMA接口与主存之间的传送单位为字,而 DMA与设备之间的传送单位可能为字节或位
  • DMA请求触发器每当I/O设备准备好数据后,发出一个控制信号,使DMA请求触发器置位
  • “控制/状态”逻辑用于指定传送方向,修改传送参数,并对DMA请求信号、CPU响应信号进行协调和同步
  • 中断机构当一批数据传送完毕后触发中断机构,向CPU提出中断请求

在DMA传送过程中,DMA控制器接管系统总线;而**当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作**
由此可见,DMA控制器必须具有控制系统总线的能力

DMA的传送方式

主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA与CPU通常采用以下3种方式使用主存:

  • 停止CPU访存

当I/O设备**有DMA请求时,由DMA接口向CPU发送一个停止信号,使CPU放弃总线控制权,停止访问主存,直到DMA传送一块数据结束**

image-20240805200706370

数据传送结束后,DMA接口通知CPU可以使用主存,并**把总线控制权交回给CPU**

优点:控制简单,适用于数据传输速率很高的I/O设备实现成组数据的传送
缺点:DMA在访问主存时,CPU基本上处于不工作状态

  • 周期挪用

由于**I/O访存的优先级高于CPU访存(I/O 不立即访存就可能丢失数据),因此由I/O设备挪用一个存取周期,传送完一个数据字后立即释放总线**

image-20240805200916151

它是一种**单字传送方式**。当I/O设备有DMA请求时,会遇到3种情况:

  1. 此时**CPU不在访存,因此I/O的访存请求与CPU未发生冲突**
  2. CPU正在访存,此时**必须待存取周期结束后,CPU再将总线占有权让出**
  3. I/O和CPU同时请求访存,出现**访存冲突,此时CPU要暂时放弃总线占有权**

优点:既实现了I/O传送,又较好地发挥了主存与CPU的效率
缺点:每挪用一个主存周期,DMA 接口都要申请、建立和归还总线控制权

  • DMA与CPU交替访存

将CPU的工作周期分成两个时间片,一个给CPU访存,另一个给DMA访存,这样**在每个CPU周期内,CPU和DMA就都可以轮流访存**

image-20240805201311665

这种方式**适用于CPU的工作周期比主存存取周期长的情况**

例如:

若CPU的工作周期是1.2μs,主存的存取周期小于0.6μs,则可将一个CPU周期分为C1和C2两个周期,其中 C1专供DMA访存,C2专供CPU访存
这种方式不需要申请、建立和归还总线使用权,总线使用权是通过C1和C2分时控制的

优点:不需要总线控制权的申请、建立和归还过程,具有很高的传送速率
缺点:相应的硬件逻辑变得更复杂

注:在DMA方式中,只有预处理和后处理需要CPU处理,数据传送全程由DMA控制

  • DMA的传送过程

DMA的数据传送流程分为**预处理、数据传送和后处理**3个阶段

image-20240805201653834

  1. 预处理
    由CPU完成一些必要的准备工作
    1> 首先,初始化DMA控制器中的有关寄存器、设置传送方向、测试并启动设备等
    2> 然后,
    CPU继续执行原程序,直到I/O设备准备好发送的数据
    (输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发出总线请求(这两个过程也可统称DMA请求),用以传输数据
  2. 数据传送
    DMA以数据块为基本传送单位。DMA占用总线后的**数据输入/输出操作都是通过循环来实现的,这一循环也是由DMA控制器实现的,即数据传送阶段完全由DMA(硬件)控制**
  3. 后处理
    DMA控制器**向CPU发送中断请求CPU执行中断服务程序做DMA结束处理**,包括校验数据(出错则转诊断程序)等后处理工作

在DMA方式下,整个数据块的传送过程都不需要CPU参与CPU只在最初的DMA控制器初始化和最后的DMA结束处理时才介入,因此**CPU用于I/O的开销非常小**

  • DMA方式和中断方式的区别

DMA方式和中断方式的重要区别如下:

  1. 中断方式是**程序的切换需要保护和恢复现场**
    DMA方式**不中断现行程序无需保护现场**,除了预处理和后处理,其他时候不占用任何CPU资源
  2. 对中断请求的**响应只能发生在每条指令执行结束时(执行周期后)
    对DMA请求的
    响应可以发生在任意一个机器周期结束时**(取指、间址、执行周期后均可)
  3. 中断传送过程**需要CPU的干预**
    DMA传送过程**不需要CPU的干预**,因此数据传输速率非常高,适合于高速外设的成组数据传送
  4. DMA请求的优先级高于中断请求
  5. 中断方式**具有处理异常事件的能力**
    DMA方式**仅局限于大批数据的传送**
  6. 从数据传送来看,中断方式靠程序传送DMA方式靠硬件传送

提醒:

1、中断服务程序是处理器处理的紧急事件,可理解为一种服务,是事先编好的某些特定的程序,一般属于操作系统的模块,以供调用执行
2、中断向量地址形成部件,即由硬件产生,并且不同的中断源对应不同的中断服务,因此可以较快速地识别中断源
3、中断向量是中断服务程序的入口地址,中断向量地址是内存中存放中断向量的地址,即中断服务程序入口地址的地址
4、中断向量地址是中断向量表的地址,因为中断向量表保存着中断服务程序的入口地址,即中断向量地址是中断服务程序入口地址的地址
5、重叠处理中断的现象称为中断嵌套
6、Cache完全由硬件实现,不会涉及中断层面
7、虚拟存储器失效,如缺页等,会发出缺页中断,属于内中断
8、浮点数运算下溢,直接当作机器零处理,不会引发中断;浮点数上溢,表示超过了浮点数的表示范围,属于内中断
9、程序中断过程是由硬件(称中断隐指令)和中断服务程序共同完成的
10、每条指令结束时,CPU统一扫描各个中断源,检查有无中断请求
11、CPU会在每个存储周期(总线周期)结束后检查是否有DMA请求
12、中断服务程序的最后指令通常时中断返回指令,与无条件转移的指令不同的是,它不仅要修改PC值,而且要将CPU中的所有寄存器都恢复到中断前状态
13、只有DMA接口的设备才能产生DMA请求
14、用户程序需要输入/输出时,需要调用操作系统提供的接口(请求操作系统服务),此时会使得访管中断,但它本身不会引起中断请求
15、允许中断触发器设置0表示关中断,在中断响应周期由硬件自动完成,即由中断隐指令完成
虽然关中断指令也能实现关中断的功能,但在中断响应周期,关中断是由中断隐指令完成的
在恢复线程和屏蔽字的时候,也需要关中断的操作,此时是由关中断指令来完成的
16、中断优先级包括响应优先级和处理优先级,中断屏蔽标志改变的是处理优先级
中断响应优先级是由中断查询程序判优电路决定的,它反映的是多个中断同时请求时哪个先被响应,即中断服务程序开始执行的顺序
中断处理优先级在多重中断系统中,决定了本中断是否能打断正在执行的中断服务程序,决定了多个中断服务程序执行完的次序
17、在程序查询方式中,CPU与外设串行工作,传送与主程序串行工作
在中断方式中,CPU与外设并行工作,当数据准备好时仍需中断主程序以执行数据传送,因此与主程序仍是串行的
在DMA方式中,CPU与外设、传送与主程序都是并行的
18、程序中断方式在数据传输时,首先要发出中断请求,此时CPU中断正在进行的操作,转而进行数据传输,直到数据传送结束,CPU才返回中断前执行的操作
DMA方式只是在后处理阶段需要用到中断方式请求CPU做结束处理,但在整个数据传送过程,并不需要中断请求
19、DMA方式和程序中断方式都有中断请求,但目的不同
程序中断方式的中断请求是为了进行数据传送;而DMA方式的中断请求是在DMA传送结束后请求CPU做DMA结束处理
20、CPU对DMA的响应可在指令执行过程中的任何两个存取周期之间
21、每个机器周期结束后,CPU就可以响应DMA控制器控制,但也需要CPU参与控制,只是CPU干预比较少,只需在数据传输开始和结束时干预,从而提高了CPU的效率
22、每个机器周期结束后,CPU就可以响应DMA请求。DMA在与主存交互数据时通过周期窃取方式,窃取的时存取周期
23、只有DMA方式时靠硬件电路实现的,三种基本的程序控制方式(直接程序传送、程序中断、通道控制)都需要程序的干预
24、中断发生时,程序计数器内容的保护和更新是由硬件自动完成的,即由中断隐指令完成
25、DMA方式的数据传送不经过CPU,但需要经过DMA控制器中断数据缓冲寄存器
输入时,数据由外设先送往DMA的数据缓冲寄存器,在通过数据总线送到主存
输出时,数据由主存通过数据总线送到DMA的数据换从寄存器,然后送到外设
26、传送信息所在的通用寄存器编号不包含在初始化信息中,因为数据不是通过CPU中的通用寄存器来传输的,而是直接通过DMA控制器进行数据传输的
27、在单级中断系统中,不允许中断嵌套,中断处理过程为:关中断、保存断点、识别中断源、保存现场、中断时间处理、恢复现场、开中断、中断返回。其中前三步由硬件完成,后续由中断服务程序完成
28、中断响应优先级是由硬件线路(或查询程序)决定的,不便改动,而中断处理优先级可以利用屏蔽字技术来动态调整
29、在程序中断I/O方式中,CPU和打印机直接交换,打印字符直接传输到打印机的I/O端口,不会设计主存地址,而CPU和打印机都通过I/O端口中的状态口和控制口来实现交互
30、CPU只有在处于中断允许状态时,才能响应外部设备的中断请求
31、每类设备都配置一个设备驱动程序,设备驱动程序向上层用户程序提供一组标准接口,负责实现对设备发出各种具体操作指令,用户程序不能直接和DMA打交道
32、不可屏蔽中断即使在关中断情况下也被响应。任何时刻只要发生了不可屏蔽中断,都要中止现行程序的执行,转到不可屏蔽中断处理程序执行,即不可屏蔽中断优先级最高
33、中断服务在内核态下执行,这样才能实现多重中断(中断嵌套)
34、若外设准备被数据的时间教育中断处理时间,则可能导致数据丢失
35、外设通过中断控制器向CPU发中断请求信号,CPU响应中断请求后开始执行中断服务程序,中断服务程序执行结束后COU自行返回,无需外设发中断结束信号

本章小结

I/O设备有哪些编址方式?各有何特点?

统一编址和独立编址

统一编址是在主存地址中划出一定的范围作为I/O地址,以便通过访存指令即可实现对I/O的访问,但主存的容量相应减少
独立编址是指I/O地址和主存是分开的,I/O地址不占主存空间,但访存需专门的I/O指令

CPU响应中断应具备哪些条件?

1、在CPU内部设置的中断屏蔽触发器必须是开放的
2、外设有中断请求时,中断请求触发器必须处于“1”状态,保持中断请求信号
3、外设(接口)中断允许触发器必须为“1”,这样才能把外设中断请求送至CPU
具备上述三个条件时,CPU在现行指令结束的最后一个状态周期响应中断

在开中断情况下,CPU检测到中断就一定会立即响应吗?

在开中断情况下,CPU总在每条指令执行结束时采样中断信号,此时若检测到中断请求信号则会立即响应
即便是多重中断,CPU正在处理某个中断的过程中,由于中断屏蔽字的存在,CPU检测不到处理优先级更低的中断请求信号,因此若检测到中断请求信号,则说明新中断源的处理优先级更高,同样也会立即响应

向量中断、中断向量、向量地址三个概念是什么关系?

中断向量:每个中断源都有对应的处理程序,这个处理程序称为中断服务程序,其入口地址称为中断向量。所有中断的中断服务程序入口地址构成一个表,称为中断向量表;也有的机器把中断服务程序入口的跳转指令构成一张表,称为中断向量跳转表
向量地址:中断向量表或中断向量跳转表中每个表项所在的内存地址或表项的索引值,称为向量地址或中断类型号
向量中断:指一种识别中断源的技术或方式,识别中断源的目的是找到中断源对应的中断服务程序的入口地址的地址,即获得向量地址

程序中断和调用子程序有何区别?

两者的根本区别主要表现在服务时间和服务对象上不一样

1、调用子程序过程发生的时间是已知的和固定的,即在主程序中的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的
而中断过程发生的时间一般是随机的,CPU在执行某个主程序时收到中断源提出的中断申请,就发生中断过程,而中断申请一般由硬件电路产生,申请提出时间是随机的
也可以说,调用子程序是程序设计者事先安排的,而执行中断服务程序是由系统工作环境随机决定的

2、子程序完全为主程序服务,两者属于主从关系
主程序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行
而中断服务程序与主程序二者一般是无关的,不存在谁为谁服务的问题,两者是平行关系

3、主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路
而中断处理系统是一个软/硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程

4、子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆大小限制
而中断嵌套级数主要由中断优先级来决定,一般优先级数不会很大

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985327.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公司官网为何建议用OV SSL证书?如何申请?

随着网络安全威胁的日益增多,保护用户数据安全变得尤为重要。其中SSL(Secure Sockets Layer)证书成为了保障网站安全的关键技术之一。而在众多SSL证书中,OV(Organization Validation)SSL证书因其独特的优势…

JVM(九)深入解析Java字节码技术与执行模型

这篇文章深入探讨了Java字节码技术,包括字节码的简介、获取字节码清单的方法、解读字节码清单、查看class文件中的常量池信息、查看方法信息、线程栈与字节码执行模型、方法体中的字节码解读、对象初始化指令、栈内存操作指令、局部变量表、流程控制指令、算术运算指…

读取压缩文件

读取压缩文件 1、背景 D盘下面有一个zipTest1.zip压缩文件 1.1 zipTest里面的内容 1.2 zipTest中有三个文件夹dir1、dir2、dir3 1.3 每一个文件夹下都有一个.txt文件 2、要求 读取D盘下面zipTest1.zip压缩文件里的内容到D盘下面zipTest2 3、实现 public static void main…

Go语言使用cobra开发第一个命令行程序

源码下载 本教程源码下载地址:https://github.com/zhangdapeng520/zdpgo_cobra_examples 案例说明 实现一个简单的命令行程序,能够将输入的单词转换为大写。 使用演示 执行命令: go run .\main.go word -u -s hello输出结果&#xff1a…

XXE靶机教学

arp-scan -l主机发现 arp-scan -l 端口扫描 nmap -p- 192.168.48.139 服务探测 nmap -p80,5355 -sT -sC -sV 192.168.48.139 目录扫描 dirsearch -u http://192.168.48.139 访问robots.txt 发现两个可访问路径 burp抓包 测试是否存在xxe漏洞 <?xml version "1.…

超声波清洗机性价比高的型号有哪些?四款值得关注的高性能超声波清洗机推荐

如果你发现眼镜变得非常脏&#xff0c;甚至出现青铜色的污渍&#xff0c;那说明是时候清洁眼镜了&#xff01;很多人往往不在意这些细节&#xff0c;结果眼镜越戴越模糊&#xff0c;实际上这主要是因为镜片上的油污、手指皮肤的残留以及生活中的灰尘积累。如果不及时清洁&#…

【实现100个unity特效之15】最简单的方法使用shader graphs实现2d树叶草的随风摇摆效果

文章目录 前言新建shader graphs新建材质效果完结 前言 本文只是实现一个简单版本的2d树叶草随风摇摆的效果&#xff0c;如果你想要实现更加复杂的效果&#xff0c;包括2d互动草&#xff0c;你可以参考我之前的文章&#xff1a; 【推荐100个unity插件之24】实现2d交互式草树叶…

瑞熙贝通智慧库房物料管理系统v3.0

一、系统介绍 智慧库房物料软件是库房全流程管理中的管理方式&#xff0c;为强化库房在各个环节管理&#xff0c;提高库房物料管理的效率&#xff0c;针对库房物料管理中存在的问题&#xff0c;瑞熙贝通在库房物料管理工作等方面不断创新&#xff0c;在制度建设、管理流程设计…

2024,Java开发在中国市场还有发展前景吗?

随着2024年的到来&#xff0c;Java作为一种经典而强大的编程语言&#xff0c;依然在中国的软件开发市场中扮演着重要角色。然而&#xff0c;许多人对Java的未来发展前景持有不同的看法。让我们来探讨一下当前情况和未来的走向。 Java程序员真的过剩了吗&#xff1f; 2023年, 各…

深度学习 —— 个人学习笔记14(ResNet、DenseNet)

声明 本文章为个人学习使用&#xff0c;版面观感若有不适请谅解&#xff0c;文中知识仅代表个人观点&#xff0c;若出现错误&#xff0c;欢迎各位批评指正。 二十八、残差网络&#xff08; ResNet &#xff09; import torch import torchvision import time from torch impo…

01:PID

前言 位式控制算法 位式控制算法是一种通过比较设定值&#xff08;SV&#xff09;和当前值&#xff08;PV&#xff09;来控制目标的方法。当PV小于SV时&#xff0c;输出高电平&#xff0c;执行部件工作&#xff1b;当PV大于或等于SV时&#xff0c;输出低电平&#xff0c;执行部…

Android 中compileSdk、minSdk、targetSdk 是干什么用的?

作为多年 Android 开发的老司机&#xff0c; compileSdk 、minSdk、targetSdk 都是经常见到&#xff0c;但其具体含义是什么&#xff1f;它们都是在什么场景下去使用的。回想起来还真不太能说得清楚。 背景 要想说清楚它们是干什么的&#xff0c;那就不得不说一下主角 Android …

每组中随机选一行

Excel的A列是分组&#xff0c;B列是明细。 AB1GroupName2AJohn3AJoe4AAnn5ASusan6AJames7AMary8AL .orraine9BJoseph10BSinead11BMichelle12BBreege13BTom14BFrancis15BConan16BCait17BRonan18BDeirdre19BAoife20BSile21BSarah22CLisa23CMicky24CPat25DMiles26DOlivia27DAvril…

骑行合并 轨迹合并

https://gpxt.beer5214.com/ 利用GPX轨迹合并工具提升长途骑行与徒步体验 对于长途骑行或长途徒步旅行的爱好者来说&#xff0c;记录和管理GPS轨迹是一项重要的活动。无论是为了后续分析自己的路线、分享经历还是为下一次冒险做准备&#xff0c;确保所有轨迹数据的完整性和连贯…

Spark轨迹大数据处理_scalaSpark代码实多点对多点的GIS点(经纬度点)的方位角计算

计算逻辑 1、我这个代码是基于一个简化方位角模型&#xff0c;忽略了地球的曲率&#xff0c;适用于距离相对较短的距离。因为业务相关&#xff0c;这个方位角两个点的距离计算不会超过1000km。 2、我这个方位角的计算逻辑&#xff1a;是从一个地点指向另一个地点的方向&#xf…

中小学创客室培养学生全面发展

随着时代的发展,教育也在飞速发展&#xff0c;教育决定着一个国家的未来&#xff0c;一个家庭的未来&#xff0c;一个人的未来&#xff0c;我国近年来大力鼓励科学教育&#xff0c;支持科学创新。因此&#xff0c;学校应该重视对学生的科学教育&#xff0c;尤其是处于思想启蒙阶…

使用Python编写文件重复检查器

在日常工作中&#xff0c;我们经常需要处理大量文件&#xff0c;但有时候会遇到文件重复的情况。为了有效管理文件并避免重复占用存储空间&#xff0c;我们可以编写一个简单的Python程序来检查文件夹中是否存在重复文件。 C:\pythoncode\new\getmd5offile.py 介绍 本文将介绍…

CSP 2019 第三题:纪念品

CSP 2019 第三题&#xff1a;纪念品 题目链接 题目&#xff1a; 题意&#xff1a; 数据给出能预测的天数&#xff0c;纪念品种类&#xff0c;持有金币。每天对金币进行买卖&#xff0c;求买卖后的金币最大值&#xff08;如何赚得更多&#xff09; 知识点考&#xff1a; 动态规划…

从零到一:使用低代码平台搭建设备保养管理系统,提升运维效率

设备作为企业生产线上不可或缺的“动脉”&#xff0c;其稳定、高效的运行状态直接关乎到产品的质量与交付速度。然而&#xff0c;设备在长期高负荷运作下&#xff0c;难免会出现磨损、故障等问题&#xff0c;这不仅会影响生产进度&#xff0c;还可能带来额外的维修成本与安全风…

微信小程序--实现地图定位---获取经纬度

(1) (2) (3) html: <view class"titleTwo" style"border: none;"><view class"fontSize30 invoiceTile">企业地址</view><view class"invoiceRight" bind:tap"tapChooseAddress" data-maptype"…