总线

总线的概念

计算机部件的连接方式:分散连接->总线连接

总线:连接多个功能部件的一组公共的信号传输线。通过总线,计算机在各部件之间实现地址、数据和控制信息的交换

  • 连接多个部件的信息传输线,多个部件共享的传输介质
  • 为了避免冲突,在一个时刻只允许有一个部件向总线发送信息,其他多个部件可以同接收

总线实际上是由许多传输线组成,每条线可传输一位二进制码,一串二进制码在一段时间内注意传输。要传输多位宽信息则需要用若干条传输线同时传输

特征

机械特性:机械连接方式,如几何尺寸、引脚数量、插头标准

电气特性:信号传输方向、有效电平、电平逻辑(正逻辑、负逻辑)等

功能特性:信号功能定义

时间特性:信号之间的时序关系

设计要素/性能指标

总线的设计要素:

类型:专用/复用;地址总线和数据总线是否复用

仲裁方式:集中式/分布式

时序:同步/异步方式;总线上的数据与时钟同步工作的总线为同步总线,与时钟异步的为总线为异步总线

总线宽度:位宽

标准传输速率:每秒传输的最大字节数

信号线数:所有信号线的总数

总线的分类

片内总线:芯片内连接各元件的总线,如CPU内各寄存器、寄存器与ALU之间传递信息的公共通道

系统总线:CPU、主存、IO部件之间传递信息的公共通道。一般分为数据总线、地址总线和控制总线三部分

  • 数据总线:传递数据
  • 地址总线:传递存储器地址和IO地址
  • 控制总线:
    • 数据传输控制信号:存储器读写控制信号、IO读写控制信号、应答信号
    • 总线请求和交换信号:总线请求、总线允许、终端请求与响应信号等
    • 其他控制信号:时钟、复位、电源线

通信总线:用于计算机系统之间或计算机系统与其他系统之间的通信

总线的通信过程

总线的一次信息传送过程,需要以下五个阶段:

  1. 请求总线:由需要使用总线的部件或设别提出总线使用请求
  2. 总线仲裁:仲裁器决定下一传输周期的总线使用权是否授予该部件或设备
  3. 寻址 : 获得总线使用权的部件或设备,发出地址和有关命令
  4. 信息传送:进行数据传输
  5. 状态返回:该部件或设备有关信息从总线上撤除,让出总线使用权

通信的仲裁/控制方式

由于总线在一时刻只能有唯一的信息发送者,所以要对谁能发送信息进行决策,即总线同行的仲裁

总线仲裁的策略:优先级或公平

分布式的孔氏方式:总线仲裁逻辑分散在与总线连接的各部件上

集中式的控制方式: 总线仲裁逻辑集中在一处(如在 CPU 中)

  • 链式查询控制方式:总线控制器/仲裁其收到总线申请BR,总线同意信号逐级往下传。如果遇到某个接口提出申请,则允许该接口的申请,BG停止往下传递,同时建立总线忙信号BG

    • 优点:所需要的线少、易扩充

    • 缺点:优先级固定:离总线控制器近的优先级搞、故障敏感

      image-20231223130318666

  • 计数器定时查询方式:总线控制器收到BR后,计数器开始计数,若某个总线申请的设备地址(设备地址是简单化后的)和计数器一致,则获得总线使用权,建立BS

    • 优点:优先级灵活

    • 缺点:线多

      image-20231223130330702

  • 独立请求方式:每个设备有独立的请求信号和总线同意信号,总线控制器根据设备的优先级觉得将总线的使用权给哪个设备

    • 优点:响应快、优先级灵活、请求可屏蔽

    • 缺点:线多.

      image-20231223130545830

  • 自举分布式仲裁方式:不需要集中的总线仲裁器,每个设别的优先级固定,根据优先级使用总线。即每个设备判断当先总线的是否忙和有申请情况下的优先级,只有总线空闲且自身优先级最高,才获得总线使用权

    image-20231223130751271

通信控制方式

为协调通信双方,需要进行通信控制,常见的有同步通信控制和异步通信控制两种

同步通信控制

数据传输在一个统一的时钟信号的控制下进行

image-20231223162251294

异步通信控制

不需要统一的公共时钟信号,也因而没有固定的时钟周期

采用应答方式完成数据传输:你知道我知道了吗,你知道我知道你知道了吗。理论上多少次握手都不够:你知不知道我知道你知道了我知道你知道…

有全锁、半互锁和不互锁三种方式

image-20231223162417642

IO

基本概念

外部设备的种类是无穷的,而计算机的资源是有限的,因而设计了IO接口:外部设备并不直接挂接在系统总线上,而是通过IO接口为桥实现与系统总线的连接

  • 各种外设使用不同的操作方法,由 CPU 来直接控制不同的外设不切实际
  • 外设的数据传送速度比存储器和处理器的速度慢得多,使用高速的系统总线与慢速的外设直接连接,不切实际
  • 外设经常使用与处理器不同的数据格式和字长度

IO的功能

IO接口的功能有:

  • 识别IO地址,即地址译码
  • 实现主机与IO设备的数据交换、控制命令的传递、状态检测与传递
  • 提供缓冲、暂存、驱动能力
  • 进行数据格式、类型方面的转换:串并行转换,电平转换等
  • 支持一定的IO方式:程序查询、程序中断、 DMA 等
  • IO 控制与定时

IO接口的分类

按传送数据格式:串行接口,并行接口

  • 串行接口:适合速度低、传输距离长的环境
  • 并行接口:适合速度高、传输距离短的环境

按IO方式:程序查询接口、中断接口、DMA 接口、通道控制接口

按时序控制方式:同步接口、异步接口

  • 同步接口:数据传送由一个统一的时钟信号同步控制
  • 异步接口:数据传送采用异步应答方式控制

IO操作的过程

  1. CPU 查询IO接口状态,以 检查其连接设备的状态
  2. IO 接口回送设备 状态给 CPU
  3. 如果设备状态显示设备 可用,并准备好,CPU 向IO接口发出命令,请求传送
  4. IO 接口获得来自外设的数据(字或字节)
  5. 数据从IO接口传送至 CPU

IO地址译码

IO地址:实际上是IO接口电路中寄存器的位置

编址方式:独立编址方式和统一编址方式

  • 独立编址方式: 存储器地址与IO地址分开,CPU 具有专用的IO指令,系统总线中具有区别存储器读写和 IO操作的控制信号,并以此区别地址总线上的地址是存储器地址还是IO地址
  • 统一编址方式: 存储器地址与IO地址统一考虑,地址空间的一部分是存储器,另一部分是IO。支持存储器操作的指令都可用于IO操作。访问IO部分的地址时需要特殊操作,需要桥进行对应

通过IO即实现桥的功能,当进行读IO操作/访问IO对应的地址时,进行IO的读写操作,由IO统一管理与外部的数据交换

进行IO操作的方式

主要有程序查询、中断、DMA三种方式进行IO数据传送

程序查询IO的方式

IO与主机信息交换的控制方式主要有4种:程序查询方式、程序中断方式、直接内存访问(DMA)和通道方式

IO接口设置响应的状态寄存器以表示外部设备的工作状态,CPU不断读取状态寄存器以查询外部设备的状态。在外部设备就绪时,CPU通过IO接口中的数据寄存器与外设完成数据交换

  • IO操作由 CPU 直接完成,通过执行IO指令完成
  • 外设速度慢,CPU 速度快,在外设准备过程中,CPU 处在不断的查询之中,极大地浪费了 CPU 的性能
  • 外设与 CPU 完全串行工作,CPU 效率低

中断与中断IO方式

中断的概念无需赘述,其核心是出现高优先级任务时停下当前的任务去执行高优先级任务

中断向量:中断服务子程序的入口地址

中断向量表:保存所有中断向量的内存区域,一般固定

中断请求

中断请求触发器INTR:为每一个中断源配置一个中断请求触发器,中断源可以通过设置中断请求触发器来提出中断申请

中断请求标记寄存器:各中断源的请求触发器组成

image-20231223165414870

当前指令执行完后,才会响应中断

image-20231223165532630

中断IO的特点

将IO外部请求视作一种中断,处理IO外部信息的过程就是一种响应中断的过程。

在外设准备阶段,CPU可以执行其他程序,仅在外设准备就绪后,CPU才中断正在执行的程序,处理IO事务。 在此阶段,可以认为CPU 与外设的工作是并行的

多次中断

在响应中断的过程中,如果有更高级的中断,则需要停下当下的中断响应程序,执行更高级中断的中断相应程序

DMA:不经过CPU的响应

程序IO与中断IO的不足:

  • I/O 传送速度受处理器测试和给设备提供服务的速度的限制
  • 处理器直接负责管理IO,对于每一次IO传送,处理器必须执行一些指令

DMA(Direct Memory Access):CPU 对总线的控制被临时禁止。DMA 控制器接管总线控制权,控制数据直接在存储器与外设之间高速交换。CPU不再介入具体的IO操作,由 DMA 控制器来负责提供存储器地址信号、读写控制信号等。

  • CPU 与IO设备在更大的程度上并行工作,效率更高
  • DMA 方式适合高速批量的数据传输,如视频显示刷新、磁盘存储系统的读写,存储器到存储器的传输等
image-20231223170900690

DMA的响应过程

有了DMA后,相关的响应操作给DMA进行处理,CPU 仅在开始 DMA 操作之前和完成 DMA 操作之后参与I/O 处理,在 DMA 过程中,CPU 可以运行原来的程序

CPU 的工作:初始化 DMA 控制器

  • 设置数据传送方向:是请求读还是请求写(对存储器而言)
  • 设置IO接口地址: DMA 操作所涉及的IO接口的地址
  • 设置存储器起始地址:读或写存储器的起始单元地址
  • 设置传送的数据数量:传送数据的字数
  • 有关中断方式的设置: DMA 结束后通过中断方式请求 CPU 处理

DMA 请求:当接口做好数据传输的准备,通过有关逻辑向 CPU 发出 DMA 请求信号

DMA 响应:CPU 接到 DMA 请求,在当前总线周期操作结束后,暂停 CPU对系统总线的控制和使用,发出 DMA 响应信号,并交出系统总线的控制权

DMA 操作:DMA 控制器接到 DMA 应答信号后,通过控制逻辑向系统总线发送存储器地址信号、存储器读写控制信号、I/O 接口读写控制信号等,完成一次数据传送。这些操作完全由硬件控制。一般仅需要一个总线周期,所以这种方式称为周期窃用( cycle stealing) 方式。所有数据传送结束后,通过中断方式告知 CPU 进行善后处理

DMA的工作方式

对于速度不同的外设,DMA也有不同的工作方式

周期窃取方式(单字传送方式):每次 DMA 请求得到响应后, DMA 控制器窃取一个总线周期完成一次数据传送,然后释放总线。

一般适应存储器速度远高于IO设备速度的情况。

停止 CPU 访问内存(成组传送方式):一次 DMA 请求得到响应后, DMA 控制器完全占用总线,进行多次 DMA 传送,直到所有数据传送完毕才释放总线,这段时间完全停止 CPU 访问内存。

适应高速外设与存储器交换数据的情况。

DMA的结构

Counter:长度计数器,保存传送数据的字数

Data Reg:数据寄存器

Address Reg:地址寄存器,向地址总线提供存储器地址。

DMA控制逻辑

DMA状态逻辑

中断控制逻辑

image-20231223170824279

DMA和中断响应IO的区别

响应时机:中断是在一条指令结束后响应;而DMA可在指令周期内的任一存取周期结束时响应

现场保护:中断要中断现行程序,需保护现场;而DMA不中断现行程序,无须保护现场

适应场合:中断适于处理紧急或异常事件;而DMA适于传送大批数据

传送方式:中断需要靠程序传送数据;而DMA靠硬件传送

IO通道

通道是一种专业控制器,具有自己的指令系统(基本上都是IO指令)。通道执行通道程序来实现和管理IO,CPU 基本上不需要管理IO,CPU 的效率得到更大的提高。

通道程序由 OS 根据IO任务的需求自动生成,存放在存储器中,通道程序由 OS 管理,用户程序执行和访问通道程序。

通道分类

选择通道

通道可以连接多台高速设备,但一次只能为其中一台设备服务,与一台设备的成组数据传送结束后,才能选择另一台设备。一旦选择了一个外设,即使该外设没有准备好,也只能等待。

通道数据传输率=一台设备的数据传输率。

image-20231223171253938

字节多路通道

通道连接多台慢速外设,通道可以同时为多台设备服务。不仅允许多个设备同时操作,且允许他们同时进行传输型任务。以字节为单位交叉传送各外设的数据。

通道的数据传输率=各外设的数据传输率之和

image-20231223171422028

数组多路通道

通道可以连接多台高速外设,通道可以同时为多台设备服务;以成组交叉的方式传送数据。允许多个设备同时工作,但只允许一个设备进行传输型操作,其他设备进行控制型操作。

通道数据传输率=各设备数据传输率之和

image-20231223171543678