admin管理员组

文章数量:1592063

6 总线

6.1 总线概述

6.1.1 总线的基本概念
  1. 总线的定义

    总线是一组能为多个部件分时共享的公共信息传送线路。

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

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

    • 主设备:指获得总线控制权的设备。
    • 从设备:指被主设备访问的设备,它只能响应从主设备发来的各种总线命令。
  3. 总线特性

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

6.1.2 总线的分类
  1. 片内总线

    片内总线是芯片内部的总线,它是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线。

  2. 系统总线

    系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间相互连接的总线。

    • 数据总线:用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关。
    • 地址总线:用来指出数据总线上的源数据或目的数据所在的主存单元或I/O端口的地址,它是单向传输总线,地址总线的位数与主存地址空间的大小有关。
    • 控制总线:传输的是控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信号。

    注意区分数据通路数据总线:各个功能部件通过数据总线连接形成的数据传输路径称为数据通路。

    数据通路表示的是数据流经的路径,而数据总线是承载的媒介。

  3. I/O总线

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

  4. 通信总线

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

​ 此外,按时序控制方式可将总线划分为同步总线异步总线,还可按数据传输格式将总线划分为并行总线串行总线

6.1.3 系统总线的结构
  1. 单总线结构

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

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

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

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

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

    通道:通道是具有特殊功能的处理器,能对I/O设备进行统一管理,通道程序放在主存中。

    支持突发(猝发)传送,即送出一个地址,收到多个地址连续的数据

    局部总线:连接计算机硬件系统的某一个子系统或部分部件的总线,这样可将一些高速外设,如图形卡,硬盘控制器等状系统总线上卸下而通过局部总线直接挂接

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

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

    DMA:Direct Memory Access,直接内存访问。

    • 优点:提高了I/O设备的性能,使其更快地响应命令,提高系统吞吐量。

    • 缺点:系统工作效率较低。

  4. 四总线结构

    • 桥接器:用于连接不同的总线,具有数据缓冲、转换和控制功能。

    • 靠近CPU的总线速度较快。

    • 每级总线的设计遵循总线标准。

6.1.4 常见总线标准
总线标准全称工作频率数据位数最大速度特点
ISA工业标准体系结构8MHz8/168MB/s最早出现在微型计算机
系统总线
EISA扩展的 ISA8MHz3232MB/s为配合 32 位 CPU
系统总线
兼容ISA
VESA视频电子标准协会33MHz32132MB/s多媒体PC
局部总线
AGP加速图形接口X1:266MB/s
X8:2.1GB/s
连接主存和图形存储器
局部总线
PCI外部设备互连33MHz32/64133MB/s高度集成的外围部件、扩充插板
和处理器/存储器系统互连
局部总线
显卡、声卡、网卡
即插即用
与处理器时钟频率无关
的高速外围总线
PCI-E扩展的PCI10GB/s以上最新总线接口标准
串行
USB通用串行总线1280MB/s即插即用、热插拔
设备总线
RS-232EIA推荐的总线20kb/s串行二进制交换的
数据终端设备(DTE)和
数据通信设备(DCE)之间
串行通信总线
IDE(ATA)集成设备电路100MB/sIDE接口磁盘驱动器接口类型
硬盘光驱接口
SATA串行高级技术附件600MB/s串行硬盘接口
PCMCIA个人计算机存储卡国际协会90MB/s泛应用于笔记本电脑
即插即用
便携设备接口
SCSI小型计算机系统接口640MB/s计算机和智能设备之间
(硬盘、软驱)系统级接口
智能通用接口
6.1.5 总线性能指标
  1. 总线的传输周期(总线周期)

    一次总线操作所需的时间(包括申请阶段、寻址阶段、传输阶段和结束阶段),通常由若干个总线时钟周期构成。

  2. 总线时钟周期

    即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。

  3. 总线工作频率

    总线上各种操作的频率,为总线周期的倒数。实际上指一秒内传送几次数据。

  4. 总线的时钟频率

    即机器的时钟频率,为时钟周期的倒数。实际上指一秒内有多少个时钟周期。

  5. 总线宽度

    又称为总线位宽,它是总线上同时能够传输的数据位数,通常是指数据总线的根数,如32根称为32位总线。

  6. 总线带宽

    可理解为总线的数据传输率,即单位时间内总线上可传输数据的位数,通常用每秒钟传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。

  7. 总线复用

    总线复用是指一种信号线在不同的时间传输不同的信息。可以使用较少的线传输更多的信息,从而节省了空间和成本。

  8. 信号线数

    地址总线、数据总线和控制总线3种总线数的总和称为信号线数。

6.2 总线事务和定时

6.2.1 总线事务

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

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

突发(猝发)传送方式能够进行连续成组数据的传送,其寻址阶段发送的是连续数据单元的首地址,在传输阶段传送多个连续单元的数据,每个时钟周期可以传送一个字长的信息,但是不释放总线,直到一组数据全部传送完毕后,再释放总线。

6.2.2 同步定时方式
  1. 定义

    ​ 所谓同步定时方式,是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。

    ​ 时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可以进行一次数据传送。因为采用统一的时钟,每个部件或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线的传送周期开始。

  2. 优点:传送速度快,具有较高的传输速率;总线控制逻辑简单。

  3. 缺点:主从设备属于强制性同步:不能及时进行数据通信的有效性检验,可靠性较差。

6.2.3 异步定时方式
  1. 定义:

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

​ 通常,把交换信息的两个部件或设备分为主设备和从设备,主设备提出交换信息的“请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出“回答”信号。

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

  • 不互锁方式
    • 主设备发出“请求”信号后,不必等到接到从设备的“回答”信号,而是经过一段时间便撤销“请求”信号。
    • 而从设备在接到“请求”信号后,发出“回答”信号并经过一段时间后自动撤销“回答”信号。双方不存在互锁关系,如图(a)所示。
    • 速度最快可靠性最差
  • 半互锁方式
    • 主设备发出“请求”信号后,必须在接到从设备的“回答”信号后,才撤销“请求”信号,有互锁的关系。
    • 而从设备在接到“请求”信号后,发出“回答”信号,但不必等待获知主设备的“请求”信号已经撒销,而是隔一段时间后自动撤销“回答”信号,不存在互锁关系。半互锁方式如图(b)所示。
  • 全互锁方式
    • 主设备发出“请求”信号后,必须在从设备“回答”后才撤销“请求”信号;
    • 从设备发出“回答”信号后,必须在获知主设备“请求”信号已撤销后,再撤销其“回答”信号。双方存在互锁关系,如图©所示。
    • 最可靠速度最慢
  1. 优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

  2. 缺点:比同步控制方式稍复杂一些,速度比同步定时方式慢。

7 输入/输出系统

7.1 I/O系统基本概念

7.1.1 输入/输出系统

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

  1. 基本概念

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

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

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

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

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

7.1.3 外部设备
  1. 输入设备

    • 键盘:键盘是最常用的输入设备,通过它可发出命令或输入数据
    • 鼠标:鼠标是常用的定位输入设备,它把用户的操作与计算机屏幕上的位置信息相联系。
  2. 输出设备

    • 显示器:按所用的显示器件分类,有阴极射线管(CRT)显示器、液晶显示器(LCD)、发光二极管(LED)显示器等。显示器属于用点阵方式运行的设备,有以下主要参数:

      • 屏幕大小:以对角线长度表示,常用的有12~29英寸等.

      • 分辨率:能表示的像素个数,屏幕上的每个光点就是一个像素,以宽和高的像素数的乘积表示,如800×600、1024x768和1280×1024等。

      • 灰度级:指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同,灰度级越多,图像层次越清楚、逼真,典型的有8位(256级)、16位等

      • 刷新:光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示遍,这个过程称为刷新。

      • 刷新频率:指单位时间内扫描整个屏幕内容的次数。按照人的视觉生理,刷新频率大于30Hz时才不会感到闪烁,通常显示器的刷新频率为60120Hz

      • 显示存储器(VRAM):也称刷新存储器,为了不断提高剧新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。
        V R A M 容量 = 分辨率 × 灰度级位数 V R A M 带宽 = 分辨率 × 灰度级位数 × 帧频 VRAM容量=分辨率×灰度级位数\\ VRAM带宽=分辨率×灰度级位数×帧频 VRAM容量=分辨率×灰度级位数VRAM带宽=分辨率×灰度级位数×帧频

    • 打印机:用于将计算机的处理结果打印在相关介质上。按工作方式,打印机可分为点阵打印机、针式打印机、喷墨式打印机、激光打印机等

      • 针式打印机。针式打印机擅长“多层复写打印”,实现各种票据或蜡纸等的打印。其工作原理简单,造价低廉,耗材(色带)便宜,但打印分辨率和打印速度不够高。
      • 喷墨式打印机。彩色喷墨打印机基于三基色原理,即分别喷射3种颜色的墨滴,按一定的比例混合出所要求的颜色。喷墨式打印机可实现高质量彩色打印。
      • 激光打印机。计算机输出的二进制信息,经过调制后的激光束扫描,在感光鼓上形成潜像,再经过显影、转印和定影,在纸上得到所需的字符或图像。激光打印机打印质量高、速度快、处理能力强,它是将激光技术和电子显像技术相结合的产物
  3. 外部存储器(辅存)

    • 磁表面存储器:所谓“磁表面存储",是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。
    • 固态硬盘(SSD):微小型高档笔记本电脑采用高性能Flash存储器作为硬盘来记录数据,这种“硬盘”称为固态硬盘(SSD)。固态硬盘除需要Flash存储器外,还需要其他硬件和软件的支持。
    • 光盘存储器:光盘存储器是利用光学原理读/写信息的存储装置,它采用聚焦激光束对盘式介质以非接触方式记录信息。完整的光盘存储系统由光盘片、光盘驱动器、光盘控制器等组成。

7.2 I/O接口

​ I/O接口(I/O控制器)是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换。主机和外设具有各自的工作特点,它们在信息形式和工作速度上具有很大的差异,接口正是为了解决这些差异而设置的。

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

​ 如图所示,I/O接口在主机侧通过I/O总线与内存、CPU相连。

​ 通过数据总线,在数据缓冲寄存器与内存或CPU的寄存器之间进行数据传送。同时接口和设备的状态信息被记录在状态寄存器中,通过数据线将状态信息送到CPU。CPU对外设的控制命令也通过数据线传送,一般将其送到I/O接口的控制寄存器。状态寄存器和控制寄存器在传送方向上是相反的。

  1. 内部结构

    • 数据缓冲寄存器(DBR):暂存即将输入输出的数据;主机和外设的速度匹配。
    • 状态/控制寄存器:命令字:CPU对设备发出的具体命令;状态字:设备的状态信息,供CPU检查。
    • 串-并转换机构:数据格式的转换。
    • I/O控制逻辑:根据命令字向设备发出控制信号。
    • 地址译码逻辑:将地址信号映射到指定I/O端口。
  2. 内部接口(主机侧)

    内部接口,内部接口与系统总线相连,实质上是与内存、CPU相连。

    • 数据线:读写数据、状态字、控制字、中断类型号
    • 地址线:指明I/O端口
    • 控制线:读/写I/O端口的信号、中断请求信号
  3. 外部接口(设备侧)

    外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。

  4. 工作原理

    ①发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)

    ②读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息

    ③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换

7.2.3 I/O接口的类型
  1. 按数据传送方式

    • 并行接口:一字节或一个字的所有位同时传送。
    • 串行接口:一位一位地传送。

    这里所说的数据传送方式指的是外设和接口一侧的传送方式。

  2. 按主机访问I/O设备的控制方式

    • 程序查询接口
    • 中断接口
    • DMA接口
  3. 按功能选择的灵活性

    • 可编程接口
    • 不可编程接口
7.2.4 I/O端口及其编址
  1. 接口和端口

    I/O端口是指接口电路中可以被CPU直接访问的寄在器。

    接口=端口(数据端口:读&写、控制端口:写、状态端口:读)+控制逻辑

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

  2. 端口编址方式

    • 统一编址:又称存储器映射方式,是指把I/O端口当作存储器的单元进行地址分配,这种方式CPU不需要设置专门的I/O指令,用统一的访存指令就可以访问I/O端口。

      • 优点:不需要专门的输入/输出指令,可使CPU访问I/O的操作更灵活、更方便,还可使端口有较大的编址空间。
      • 缺点:端口占用存储器地址,使内存容量变小,而且利用存储器编址的I/O设备进行数据输入/输出操作,执行速度较慢

      靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。

    • 独立编址:又称I/O映射方式,I/O端口的地址空间与主存地址空间是两个独立的地址空间,因而无法从地址码的形式上区分,需要设置专门的I/O指令来访问I/O端口。

      • 优点:输入输出指令与存储器指令有明显区别,程序编制清晰,便于理解。
      • 缺点:输入输出指令少,一般只能对端口进行传送操作,尤其需要CPU提供存储器读/写、I/O设备读写两组控制信号,增加了控制的复杂性。

      靠不同的指令区分内存和I/O设备。

7.3 I/O方式

​ 输入/输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式。常用的I/O方式有程序查询、程序中断、DMA和通道等,其中前两种方式更依赖于CPU中程序指令的执行。

7.3.1 程序查询方式

​ 信息交换的控制完全由CPU执行程序实现,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口)

  1. 查询方式:

    CPU“忙等”慢速设备完成工作,二者串行工作。CPU查询速率应比输入速率高;不然数据丢失。

    CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“已完成”之后再从数据寄存器取出输入数据。

  2. 工作流程

    • ①CPU执行初始化程序,并预置传送参数。
    • ②向I/O接口发出命令字,启动I/O设备。
    • ③从外设接口读取其状态信息。
    • ④CPU不断查询I/O设备状态,直到外设准备就绪。
    • ⑤传送一次数据。
    • ⑥修改地址和计数器参数。
    • ⑦判断传送是否结束,若未结束转第③步,直到计数器为0。

  3. 特点

    • 在这种控制方式下,CPU一旦启动I/O,就必须停止现行程序的运行,并在现行程序中插入一段程序。

      程序查询方式的主要特点是CPU有“踏步”等待现象,CPU与I/O串行工作。

    • 优点:这种方式的接口设计简单、设备量少,

    • 缺点:CPU在信息传送过程中要花费很多时间来查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低。

7.3.2 程序中断方式
  1. 程序中断的基本概念

    ​ 设备准备数据时,CPU继续工作。设备准备好之后向CPU发出中断请求,CPU在指令周期的末位检查中断并做出中断响应(执行中断处理程序)。

    中断功能

    • ①实现CPU与IO设备的并行工作。

    • ②处理硬件故障和软件错误。

    • ③实现人机交互,用户干预机器需要用到中断系统。

    • ④实现多道程序、分时操作,多道程序的切换需借助于中断系统。

    • ⑤实时处理需要借助中断系统来实现快速响应。

    • ⑥实现应用程序和操作系统(管态程序)的切换,称为“软中断"。

    • ⑦多处理器系统中各处理器之间的信息交流和任务切换。

    程序中断思想:

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

  2. 中断的分类

    • 内中断:CPU内部请求中断,与当前执行的指令有关
      • 陷入:自愿中断,如系统调用时使用的访管指令
      • 故障:如缺页
      • 异常:如整数除0
    • 外中断:CPU外部请求中断,与当前执行的指令无关。
      • 可屏蔽中断:关中断时不会被响应
      • 不可屏蔽中断:关中断时也会被响应(如:掉电)
  3. 程序中断的工作流程

    • 中断请求

      中断源向CPU发送中断请求信号。

      • 中断源:中断源是请求CPU中断的设备或事件,一台计算机允许有多个中断源。

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

      • 中断分类

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

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

        由于许多中断源提出中断请求的时间都是随机的,因此当多个中断源同时提出请求时,需通过中断判优逻辑来确定响应哪个中断源的请求。

      • 中断判优的实现:

        • 硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;
        • 软件实现是通过查询程序实现的。

      • 中断优先级设置

        • ①不可屏蔽中断>内部异常>可屏蔽中断;
        • ②内部异常中,硬件故障>软件中断;
        • ③DMA中断请求>I/O设备传送的中断请求;
        • ④在I/O传送类中断请求中,高速设备>低速设备,输入设备>输出设备,实时设备>普通设备。
    • CPU响应中断的条件

      • ①中断源有中断请求。
      • ②CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)。
      • ③一条指令执行完毕(异常不受此限制),且没有更紧迫的任务。
    • 中断响应过程

      • 中断隐指令:中断隐指令并不是指令系统中的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作。它所完成的操作如下:

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

        • 保存断点。为保证在中断服务程序执行完后能正确地返回到原来的程序,必须将原程序的断点(指令无法直接读取的PC和PSW的内容)保存在或特定寄存器中。

          注意异常和中断的差异:异常指令通常并没有执行成功,异常处理后要重新执行,所以其断点是当前指令的地址。中断的断点则是下一条指令的地址。

        • 引出中断服务程序。识别中断源,将对应的服务程序入口地址送入程序计数器PC

          有两种方法识别中断源:硬件向量法软件查询法

    • 中断向量

      中断识别分为向量中断和软件查询法两种。

      • 中断向量:每个中断都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到入口地址,即中断向量。
      • 中断向量表:把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
      • 中断向量法:由硬件产生向量地址,再由向量地址找到入口地址。
    • 中断处理过程

      中断处理流程如图所示。

      中断处理流程如下:

      • ①关中断。

      • ②保存断点。

      • ③中断服务程序寻址。

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

        注意:现场和断点,这两类信息都不能被中断服务程序破坏。现场信息因为用指令可直接访问,所以通常在中断服务程序中通过指令把它们保存到栈中,即由软件实现;而断点信息由CPU在中断响应时自动保存到栈或指定的寄存器中,即由硬件实现。

      • ⑤开中断。允许更高级中断请求得到响应,实现中断嵌套。

      • ⑥执行中断服务程序。这是中断请求的目的。

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

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

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

      其中,①~③由中断隐指令(硬件自动)完成;④~⑨由中断服务程序完成。

  4. 多重中断和中断屏蔽技术

    • 单重中断:若CPU在执行中断服务程序的过程中,又出现了新的更高优先级的中断请求,而CPU对新的中断请求不予响应,则这种中断称为单重中断,如图(a)所示。
    • 多重中断:若CPU暂停现行的中断服务程序,转去处理新的中断请求,则这种中断称为多重中断,又称中断嵌套,如图(b)所示。

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

    • ①在中断服务程序中提前设置开中断指令。
    • ②优先级别高的中断源有权中断优先级别低的中断源。

    中断屏蔽技术

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

    屏蔽字设置的规律

    • 一般用’1’表示屏蔽,0表示正常申请。
    • 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
    • 屏蔽字中1越多,优先级越高。每个屏蔽字中至少有一个’1’(至少要能屏蔽自身的中断)。

    例:中断处理优先级D>A>C>B;屏蔽字如下表所示。

7.3.3 DMA方式

​ DMA方式是一种完全由硬件进行成组信息传送的控制方式,它具有程序中断方式的优点,即在数据准备阶段,CPU与外设并行工作。

​ DMA方式在外设与内存之间开辟一条“直接数据通道”,信息传送不再经过CPU,降低了CPU在传送数据时的开销,因此称为直接存储器存取方式

​ 这种方式适用于磁盘、显卡、声卡、网卡等高速设备大批量数据的传送,它的硬件开销比较大。在DMA方式中,中断的作用仅限于故障和正常传送结束时的处理。

  1. DMA方式的特点

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

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

    CPU向DMA控制器指明要输入还是输出;要传送多少个数据;数据在主存、外设中的地址。

    • 传送前
      • 1)接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
      • 2)CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
    • 传送时
      • 3)确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
      • 4)规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
    • 传送后
      • 5)向CPU报告DMA操作的结束。
  3. DMA控制器的组成

    下图为DMA控制器结构图。

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

    在DMA传送过程中,DMA控制器将接管CPU的地址总线、数据总线和控制总线,CPU的 主存控制信号被禁止使用。而当DMA传送结束后,将恢复CPU的一切权利并开始执行其操作。

  4. DMA的传送方式

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

    • 停止CPU访存:需要数据传送时,停止CPU访存,总线控制权交给DMA控制器
    • 交替访存:将CPU周期分为DMA访存和CPU访存两个部分
    • 周期挪用(周期窃取):I/O设备需要访存时,挪用一个或几个存取周期
      • CPU此时不访存(不冲突)
      • CPU正在访存(存取周期结束让出总线)
      • CPU与DMA同时请求访存(I/O访存优先)
  5. DMA的传送过程

    • 预处理:CPU完成寄存器初值设置等准备工作

      • 首先,CPU执行几条I/O指令,用以测试I/O设备状态,初始化DMA控制器中的有关寄存器、设置传送方向、启动该设备等。
      • 然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,
      • 再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求),用以传输数据。
    • 数据传送:CPU继续执行主程序,DMA控制器完成数据传送

      • DMA的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。

      • 对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。

      • 需要指出的是,这一循环也是由DMA控制器(而非通过CPU执行程序)实现的,即数据传送阶段完全由DMA(硬件)控制。

    • 后处理:CPU执行中断服务程序做DMA结束处理

      • 包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转诊断程序)及决定是否继续使用DMA传送其他数据等。
  6. DMA方式和中断方式的区别

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

    • ①中断方式是程序的切换,需要保护和恢复现场:而DMA方式不中断现行程序,无需保护现场,除了预处理和后处理,其他时候不占用任何CPU资源。
    • ②对中断请求的响应只能发生在每条指令执行结束时(执行周期后):而对DMA请求的响应可以发生在任意一个机器周期结束时(取指、间址、执行周期后均可)。
    • ③中断传送过程需要CPU的干预;而DMA传送过程不需要CPU的干预,因此数据传输率非常高,适合于高速外设的成组数据传送。
    • ④DMA请求的优先级高于中断请求。
    • ⑤中断方式具有处理异常事件的能力,而DMA方式仅局限于大批数据的传送。
    • ⑥从数据传送来看,中断方式靠程序传送,DMA方式靠硬件传送。
    中断DMA
    数据传送程序控制
    程序的切换→保存和恢复现场
    硬件控制
    CPU只需进行预处理和后处理
    中断请求传送数据后处理
    响应指令执行周期结束后响应中断每个机器周期结束均可,总线空闲时
    即可响应DMA请求
    场景CPU控制,低速设备DMA控制器控制,高速设备
    优先级优先级低于DMA优先级高于中断
    异常处理能处理异常事件仅传送数据

本文标签: 知识点王道总线输入输出原理