跳转至

第七章总线

考纲要求:

  1. 总线的基本概念
  2. 总线的组成及性能指标
  3. 总线事务和定时

7.1 总线概述

计算机的所有功能都是通过CPU执行指令实现的,而在执行指令的过程中,CPU、存储器和 IO 模块之间要不断地进行数据交换,所以,计算机所有功能的实现过程实际上是各种信息在计算机各部件间的交换过程。而在早期,各部件之间的信息交换通过专门的连线来进行,这种分散连接方式使得部件间数据交换的情况非常复杂,在同一时间,每个部件都只能和一个部件交换信息。随着计算机的不断发展,IO设备的种类和数量也不断增加,这种连接方式不但效率低下而且变得难以扩展,所以出现了总线方式。

1731487277063-17e6fc56-666b-44f5-bf56-5333505b3e85.png

总线是实现多个部件之间数据交换的一组共享的信息传输线,它具有分时和共享两个特点。

  • 分时是指当多个设备挂接到总线上时,同一时刻只能有一个设备向总线发送信息,其他设备必须等待其他时间。
  • 共享是指总线上挂接的多个设备可以在不同的时间向总线发送信息,并且能够同时从总线上接收相同的信息。

7.2总线分类

画板

按功能层次划分

片内总线

片内总线是指芯片内部各组成部分之间的连接线,如CPU芯片内部寄存器之间、寄存器与运算器(ALU)之间的数据通路连接及控制器与执行部件之间的控制信号连接均属于片内总线。

这根白色的内总线即片内总线

系统总线

  • 计算机系统内各功能部件(CPU、主存、IO接口(或各种IO模块))之间相互连接的总线。按系统总线传输信息内容的不同,又可分为3类:数据总线、地址总线和控制总线。(通常我们所说的总线是指这类总线)

1731489096190-ecb27cea-472b-43a7-93bb-4c190ee7a7c3.png

1. <strong>数据总线</strong>:用来在各功能部件之间传输数据信息,这里的数据包括:
    * 程序运行时CPU和主存之间交换的<strong>数据或指令</strong>;
    * CPU从IO接口获取的<strong>状态信息,中断类型号等信息</strong>;
    * CPU向IO接口发出的<strong>控制命令</strong>;
    * <strong>地址信息</strong>(此时地址线和数据线复用)等

(2011年真题)在系统总线的数据线上,不可能传输的是( )。

A. 指令 B. 操作数 C. 握手(应答)信号 D. 中断类型号

解析

握手(应答)信号属于通信联络控制信号,用于异步总线定时方式,应在通信总线上传输。C错误。

中断类型号用以指出中断向量的地址,CPU响应中断请求后,从数据总线上读取中断类型号,查找中断向量表,找到相应的中断处理程序入口。D正确。本题考查的内容在袁春风PPT有所提示,如图:题图

本题选C。

数据总线是双向传输总线,其位宽与计算机字长、存储字长有关。数据总线的条数称为数据总线宽度,它是衡量计算机系统性能的一个重要指标。

  • MDR位数与总线数据线宽度相等,与存储字长不一定相等;
  • 存储字长:一个存储单元的位数,也就是CPU向内存某个地址取数据时一次性取走的数据量。
2. <strong>地址总线</strong>:地址总线主要用于给出数据总线上的源数据或目的数据在<strong>主存单元或 IO 端口中的地址</strong>,是<strong>单向传输</strong>总线。

Info

  • 地址线的位数决定了CPU可直接寻址的内存空间大小,如地址线为32根,则其最大寻址空间为 \(2^{32}=4G\)字节。
  • 地址线位数=MAR位数
提问:dma 传输时,DMA 控制器也能发送主存地址信息,为什么说地址总线是单向而不是双向的呢?

可以把CPU与内存/I/O设备的关系看作是指挥官与士兵的关系。

  • CPU 是总线上的主设备,是发出命令的指挥官。
  • 内存和I/O接口 是总线上的从设备,是接收命令并执行的士兵。

地址的本质是一个命令,它告诉所有从设备:“我现在要操作的是这个门牌号(地址)的单元,你们都听好了!”

  • CPU读操作:CPU(指挥官)通过地址总线喊出要读取的门牌号,然后通过控制总线下达“读”的命令。内存(士兵)听到后,找到对应门牌号的数据,通过数据总线把数据送回给CPU。
  • CPU写操作:CPU(指挥官)通过地址总线喊出要写入的门牌号,同时把要写入的数据放到数据总线上,再通过控制总线下达“写”的命令。内存(士兵)听到后,接收地址和数据,完成写入。

在这两个基本操作中,地址信息永远是从CPU单向流向内存或I/O设备的。内存或I/O设备只需要“听”地址,而不需要“说”地址。因此,地址总线是单向的。


你可能会想:“DMA控制器也能访问内存,它也能把地址送到总线上啊!” 这一点完全正确,但这并不能说明地址总线是双向的。

这涉及到总线主控权 的概念,系统总线就像一条单行道,平时,只有CPU这辆车可以在这条路上行驶(发出地址),当DMA控制器需要传输数据时,它会向CPU申请“路权”(通过HRQ信号),CPU批准后,会暂时把路让出来(通过HLDA信号)。这时,DMA控制器就暂时成为了新的总线主设备,它也可以在这条单行道上行驶(发出地址)。

关键点在于: 无论是CPU在开车,还是DMA控制器在开车,这条路(地址总线)的方向始终没变,都是从当前的总线主设备(Master)流向从设备(Slave)。

所以,不是地址总线变成了双向,而是可以控制地址总线的设备(总线主控者)发生了改变。

3. <strong>控制总线</strong>:控制总线<strong>用于传输控制命令和时序信号</strong>,可用于总线控制权的协商、发送设备控制命令及应答信号,还可用于控制地址总线和数据总线的使用。<strong>控制总线的传送方向由具体控制信号决定,既有 CPU送往功能部件的读写控制信号,也有功能部件发送给 CPU的状态信号、请求信号等。 它对某一根信号线来说是单向传输的,而对整体来说又是双向传输的</strong>。控制总线的位数要根据系统的实际需要而定。
常见的控制信号如下
  • 存储器读:将主存指定单元的数据读取到数据总线。
  • 存储器写:将数据总线上的数据写入地址总线指定的主存单元。
  • I/O 读:将地址总线指定的 I/O 端口的数据读取到数据总线。
  • I/O 写:将数据总线上的数据写入地址总线指定的 I/O 端口。
  • 传输应答:表示数据已被接收或已传输到总线上。
  • 总线请求:表示某部件需要获得总线控制权。
  • 总线许可:表示申请总线控制权的部件已获得了控制权。
  • 总线正忙:表示当前总线正在使用。
  • 中断请求:表示某部件产生了中断请求。
  • 中断响应:表示中断请求已被接收。
  • 时钟信号:用于同步各种操作。
  • 复位信号:用于初始化各模块。

I/O总线

主要用于连接中低速的 I/O 设备,通过 I/O 接口与系统总线相连接,目的是将低速设备与高速总线分离,以提升总线的系统性能,常见的有SATA、PCI总线。或者说用于各种外设控制器(即 I/O 接口,如显卡、网卡等)与主机相连,通常是标准总线,如PCI总线、AGP 总线、PCIExpress 总线等

通信总线(外部总线)

计算机系统之间或计算机系统与其他系统(如远程通信设备、测试设备)之间传送信息的总线(常见的有USB总线),通信总线也称外部总线。相对外部总线,系统总线和 IO 总线也可以称为内部总线。

按数据传送方式分类

按照总线内部数据线数量和数据传送方式的不同,总线可以分为串行总线和并行总线

串行总线

串行总线只含有一条双向数据线或两条单向数据线,传输数据时可以实现逐位按序分时传送。

串行传输数据的优点在于对数据线传输特性要求不高,数据线较长的情况下仍可有效传送数据,所以串行总线更适合远距离通信。大多数的通信总线属于串行总线。

并行总线

并行总线含有多条双向数据线,传输数据时可以实现多位同时传送。

优点:数据传输效率高。

缺点:各条数据线特性很难完全一致,当数据线较长的情况下,数据各位有可能无法同时到达接收端,并且相邻的数据线之间还会相互干扰,从而造成传输错误,所以并行总线适合近距离通信。大多数的系统总线属于并行总线。

Info

提示:

  • 对于串行总线和并行总线的传输速度比较,很多人可能会很自然的认为并行总线的传输速度更快,因为它可以同时传送多位。但实际上,由于并行接口有多条并行且紧密的导线,当时钟频率提高到一定程度时,并行导线相互之间会产生严重的干扰,从而导致其传输速度不一定比串行总线快。
  • 对于串行传输的总线,提高时钟速度比并行传输总线容易得多,且几乎没有线间串扰。因而串行传输总线的速度可以比并行传输总线快得多。

按时序控制方式分类

按照总线上时序控制方式的不同,总线可以分为同步总线和异步总线

同步总线

同步总线指总线上连接的各部件或设备通过统一的时钟,在规定的时钟节拍内进行规定的总线操作,从而完成部件或设备之间的数据传输。

异步总线

异步总线指总线上连接的各部件或设备没有统一的时钟,而是依靠各自内部的定时操作,通过信号握手的方式来进行规定的总线操作,从而完成部件或设备之间的数据传输。

提示:半同步总线既可以采用同步方式进行通信,也可以采用异步方式进行通信。由于在异步总线中引入了时钟信号,这类总线的就绪信号和应答信号在时钟的上升沿或下降沿有效,所以不会受到其他时间的信号干扰。

7.3 总线结构

单总线结构

1731517852877-dcec60b6-19ed-4572-8b2b-5ec85d7f247b.png

单总线结构将 CPU、主存、I/O设备(通过I/O 接口)都挂在一组总线上,允许 I/O 设备之间、I/O 设备与主存之间直接交换信息,而无须经过中间设备的干预。

【注意】

  1. 单总线并不是指只有一根信号线,系统总线按传送信息的不同可细分为地址总线、数据总线和控制总线。
  2. 由于单总线结构中,主存与IO设备共用一组地址线,因此主存和IO设备是统一编址的,CPU采用访问主存的方式去访问外设(这是竟成书上的说法,该说法应该有误,可见下一条来自谭志虎教材的说法)
  3. 除CPU外,DRAM(即主存)和所有IO设备都必须进行编址,以便CPU可以通过地址和命令直接访问。编址方式既可以采用统一编址方式,也可以采用独立编址方式,如 BIOS ROM 就与内存 DRAM 进行统一编址,而I/O 设备既可以统一编址,也可以独立编址,如果采用独立编址方式则需要通过专用的输入输出指令进行访问,Intel x86 指令集就采用这种方式。
  4. CPU 通常具有总线仲裁器的功能,注意DMA 控制器出现后,CPU不再是唯一的主设备,DMA 控制器也可以作为主设备申请系统总线使用权。协调设备与主存进行DMA传输,这种方式又称为第三方 DMA。
  • 优点:总线结构简单,易于扩充外设。
  • 缺点:由于所有部件都共享这组总线,为了防止冲突,同一时刻最多只能有一个部件向总线传输信息,这使得系统的工作效率降低。因此,这类总线一般适用于小型计算机或微型计算机。

双总线结构(不重要)1731519656679-41b5aa3c-9fe9-4f8f-ad66-58eeabc84924.png

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

优点:将低速 I/O设备从原单总线上分离出来,实现了存储器总线和 IO总线分离。

缺点:需要增加通道等硬件设备。

注意:双总线系统中,设有专门的IO指令

其他双总线结构
  1. 以主存为中心

题图

  1. 桥接器架构

题图

三总线结构(不重要)

不用看王道那个有dma总线的三总线结构

有些教科书上还介绍了主存总线、DMA 总线、IO 总线组成的三总线结构,多见于专用的CPU 结构。而个人计算机中并没有专门的DMA总线这种结构,设备与主存之间的DMA传输都是通过系统总线进行完成的。

1731520601225-be004320-a9f6-4547-b3f6-212f954e6ce2.png

  • 高速与低速传输活动分离
    • 将I/O设备与主存之间的通信与处理器的活动分离
    • 高速设备靠近CPU,慢速设备远离CPU
  • 不同层次总线之间采用 桥接方式 连接和缓冲

这种结构进一步将不同速率的传输活动进行细分,将最快的CPU、DRAM放在系统总线上将显卡、磁盘、网卡等高速设备连接在PCI总线上,而将传统的慢速设备连接在ISA 总线上使计算机系统性能进一步提升。

多总线结构(重要)

随着计算机技术不断发展,CPU性能不断提升,高速外部设备(如高速网络、高速视频图形设备等)也不断涌现,总线的结构也在不断变化,逐渐向高性能方向发展,其总体发展趋势包括以下几种。

  1. 采用分层次的多总线结构,不同层次总线之间采用桥接方式 连接和缓冲。
  2. 将 IO 设备与主存之间的通信与处理器的活动分离开来。
  3. 高速设备靠近CPU,慢速设备远离CPU。
  4. 桥接芯片高度集成,形成了经典的南北桥架构。南桥芯片就是IO控制芯片。

(2017)下列关于多总线结构的叙述中,错误的是( )。

A. 靠近CPU的总线速度较快

B. 存储器总线可支持突发传送方式

C. 总线之间须通过桥接器相连

D. PCI-Express×16采用并行传输方式

解答:

多总线结构用速率高的总线连接高速设备用速率低的总线连接低速设备。一般来说,CPU 是计算机的核心,是计算机中速度最快的设备之一。A正确。

突发传送方式把多个数据单元作为一个独立传输处理,从而最大化设备的吞吐量。现实中一般用支待突发传送方式的总线提高存储器的读写效率。B正确。

各总线通过桥接器相连,后者起流量交换作用。C正确。

PCI-Express (Peripheral Component Interconnect Express) 是一种高速串行总线标准,广泛用于计算机系统中连接各种外部设备和扩展卡。PCI-Express总线的设计旨在提供高带宽和低延迟的数据传输,适用于多种应用领域,包括图形显示卡、网络适配器、存储控制器、声卡和其他I/O设备。D错误。

PCI-Express×16 (PCIe×16) 是PCI-Express总线规范中的一个插槽类型,用于连接高性能显卡、图形加速器和其他需要更大带宽的扩展卡。PCIe×16插槽提供了16个差分信号对,用于数据传输,每个差分信号对包括一个发送和一个接收信号。这种插槽设计可以支持更高的数据传输速率和带宽需求,以满足现代图形处理等高性能计算需求。

本题选D。

如图,北桥芯片和南桥芯片这两块超大规模集成电路芯片组成一个“芯片组”,是计算机中各个组成部分相互连接和通信的枢纽。主板上所有的存储器控制功能和 I/O控制功能几乎都集成在该芯片组内,它既实现了总线的功能,又提供了各种 I/O接口及相关的控制功能。

  • 北桥是一个主存控制器集线器(Memory Controller Hub,MCH)芯片,本质上是一个DMA(Direct Memory Access)控制器,因此,可通过 MCH 芯片直接访问主存和显卡中的显存。
  • 南桥是一个I/O控制器集线器(I/O Controller Hub,ICH)芯片,其中可以集成 USB 控制器、磁盘控制器、以太网控制器等各种外设控制器,也可以通过南桥芯片引出若干主板扩展槽,用以接插一些 I/O 控制卡。

1731521852439-943c2bc8-691a-4106-8bfd-94d164622cf3.png

如图所示,CPU 与主存之间由处理器总线(也称为前端总线)和存储器总线相连,各类 I/O 设备通过相应的设备控制器(例如 USB 控制器、显示适配卡、磁盘控制器)连接到I/O 总线上,而I/O 总线通过芯片组与主存和 CPU 连接。

传统上,总线分为处理器-存储器总线和I/O总线。处理器-存储器总线比较短,通常是高速总线,有的系统将处理器总线和存储器总线分开,中间通过北桥芯片(桥接器)连接,CPU 芯片通过CPU插座插在处理器总线上,内存条通过内存条插槽插在存储器总线上。

处理器总线

早期的 Intel 微处理器的处理器总线称为前端总线,它是主板上最快的总线,主要用作处理器与北桥芯片进行信息交换。

处理器总线的传输速率单位实际上是 MT/s,通常所说的总线传输速率单位 MHz 是习惯上的称呼,实质是时钟频率单位。早期的CPU总线每个时钟传送一次数据,因此时钟频率与数据传输速率一致。但是,从 Pentium Pro 开始,在每个总线时钟周期内传4次数据,也就是说,总线的数据传输速率等于总线时钟频率的4倍,若时钟频率为333MHz,则数据传输速率为 1333MT/S。

Intel 公司推出 Core i7 时,北桥芯片的功能被集成到了 CPU 芯片内,CPU 通过存储器总线(即内存条插槽)直接和内存条相连,而在 CPU 芯片内部的核与核之间、CPU 芯片与其他 CPU 芯片之间,以及 CPU 芯片与 IOH(Input/Output Hub)芯片之间,则通过 QPI(Quick Path Interconnect)总线相连。

1731570190304-f5f58208-4fb7-4f64-a3ed-7e1dfc3d84e9.png

QPI总线是一种基于包传输的串行高速点对点连接协议,采用差分信号与专门的时钟信号进行传输。QPI总线有 20条数据线,发送方(TX)和接收方(RX)有各自的时钟信号,每个时钟周期传输两次。一个 QPI数据包包含 80位,需要两个时钟周期或4次传输才能完成整个数据包的传送。在每次传输的 20 位数据中,有 16 位是有效数据,其余4位用于循环冗余校验,以提高系统的可靠性。

由于 QPI是双向的,在发送的同时也可以接收另一端传输来的数据,这样,每个 QPI总线的带宽计算公式如下:

Info

\(每秒传输次数×每次传输的有效数据×2\)

QPI总线的速度单位通常为 GT/s,若 QPI的时钟频率为 2.4GHz,则速度为 4.8GT/s,表示每秒钟传输 4.8G 次数据,并称该 QPI频率为 4.8GT/s。因此,QPI频率为 4.8GT/s 的总带宽为 4.8GT/s×2B×2=19.2GB/s。QPI频率为 6.4GT/s的总带宽为 6.4GT/s×2B×2=25.6GB/s。(袁书的该示例是20年真题原题)

(2020)QPI总线是一种点对点全I同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输20位信息(16位数据+4位校验位),每个QPI数据包有80位信息,分2个时钟周期传送,每个时钟周期传递2次。因此,QPI总线带宽为:每秒传送次数×2B×2。若QPI时钟频率为2.4GHz,则总线带宽为( )。

A. 4.8GB/s B. 9.6GB/s C. 19.2GB/s D. 38.4GB/s

解答:

因为QPI时钟频率为2.4GHz,每个时钟周期传送2次,所以每秒传送次数=时钟频率x2=2.4GHz×2=4.8G/s。QPI总线带宽=每秒传送次数×2B×2=4.8G/s×2B×2=19.2GB/s。题中已给出总线带宽公式,降低了难度。公式中的“×2B”是因为每次传输16位数据,“×2”是因为采用点对点全双工总线,两个方向可同时传输信息。

本题选C

存储器总线

1731571215084-5293ded0-3026-4f3c-90af-494b4db4586d.png1731571215168-082f57b1-0fe7-43cf-976a-06243d7bd550.png

如上图所示,内存条插槽就是存储器总线,内存条中的信息通过内存条的引脚,再通过插槽内的引线连接到主板上,通过主板上的导线连接到北桥芯片或CPU芯片。现在的计算机中可以有多条存储器总线同时进行数据传输,支持两条总线同时进行传输的内存条插槽为双通道内存插槽,还有三通道、四通道内存插槽,其总线的传输带宽可以分别提高到单通道的两倍、三倍和四倍。例如,如上左图所示的内存条插槽支持双通道内存条,相同颜色的插槽可以并行传输,因此,对于这种内存条插槽情况,如果只有两个内存条,则应该插在两个颜色相同的内存条插槽上,其传输带宽可以增大一倍。

1731571266933-6c3ba4a2-58f0-4ad6-b162-0b8dfa2bfb22.png

(2019)假定一台计算机采用3通道存储器总线,配套的内存条型号为DDR3-1333,即内存条所接插的存储器总线的工作频率为1333MHz,总线宽度为64位,则存储器总线的总带宽大约是( )。

A. 10.66GBps B. 32GBps C. 64GBps D. 96GBps

解答:

计算机采用3通道存储器总线,存储器总线的工作频率为1333MHz,即1秒内传送1333M次数据,总线宽度为64位,即单条总线工作一次可传输8字节,因此存储器总线的总带宽为3×8B×1333MHz=31992MB/s≈32GB/s。

本题选B。

I/O总线

I/O 总线用于为系统中的各种 I/O设备提供输入输出通路,在物理上通常是主板上的一些 I/O扩展槽。

1731573294293-6528232b-34ec-4ed0-8e7b-5d032fbb937e.png

【重点介绍PCI Express】(17真题考察)

  • 与前两代 I/O总线采用并行传输的同步总线不同,PCI-Express 总线采用串行传输方式。
  • 两个 PCI-Express 设备之间以一个链路(link)相连,每个链路可包含多条通路(lane),可能的通路数为 1、2、4、8、16 或 32,PCIExpress×n表示具有n个通路的 PCI-Express 链路。
  • 每条通路由发送和接收数据线构成,在发送和接收两个方向上都各有两条差分信号线,可同时发送和接收数据。在发送和接收过程中,每个数据字节实际上被转换成了 10 位信息被传输,以保证所有位都含有信号电平的跳变。
  • PCIe是一种串行总线,采用双向连接的方式,可同时收发,是一种双单工连接。

1731574371961-d2f9fcbd-5bce-4dcf-9c50-7fd6e3d546fb.png

  • PCI-Express 1.0规范支持通路中每个方向的发送或接受速率为 2.5Gb/s。因此,PCIExpress 1.0 总线的总带宽计算公式(单位为 GB/s)为:\(2.5Gb/s×2×通路数/10\)
  • 根据上述公式可知,在 PCI-Express 1.0 规范下,PCIExpressx1 的总带宽为 2.5Gb/s * 2 * 1 / 10 =0.5GB/s,PCI-Expressx2的总带宽为 1GB/s,PCI-Expressx16 的总带宽为 8GB/s。

1731574677560-673749d4-6139-4026-98fb-c937b3ab7730.png

7.4 总线的性能指标

  1. 总线宽度:它是指数据总线的根数,用位(bit)表示,如8位、16 位、32 位等。在并行传输总线中数据总线宽度直接决定了可并发传输的位数。
  2. 总线时钟频率:它是总线时钟周期的倒数,同步传输总线中传输双方拥有完全同步的时钟信号,时钟频率越快,传输速率越快:早期总线的时钟频率和 CPU 是同频的,后来 CPU发展太快,总线时钟开始独立于 CPU 时钟。
  3. 总线传输周期:指一次总线操作完成所需要的时间,包括总线申请阶段、寻址阶段、传输阶段和结束阶段4个阶段的时间,简称总线周期;通常包括多个总线时钟周期,总线的时钟频率越高,总线周期就越短:另外如果采用地址复用技术,则会增加总线周期。通常一个总线周期只能传输一个总线宽度的数据。
  • 总线传输周期: 在总线上完成一次总线事务所用的时间。通常由若干个总线时钟周期组成,简称为总线周期。
  1. 单时钟传输次数:指一个总线时钟周期内传输数据的次数,通常该值为1;DDR技术在时钟上、下跳沿分别传输一次数据,该值为2;QDR技术下其值为4(总线内部时钟为两个相位相差 90°的时钟)。目前该值最高的是AGPx8总线,单时钟可以传输8次。总线的实际工作频率=总线时钟频率x单时钟传输次数。
  2. 总线带宽:指在总线上的最大数据传输速率,通常不考虑总线传输周期中总线申请和寻址等阶段的开销,单位是\(MB/s(MBps)\)或\(GB/s\)(\(1MB=10^6字节,1GB=10^9字节\));注意通信领域和磁存储领域并没有使用1024作为基本单位。

总线带宽计算公式如下:同步总线带宽=(总线宽度/8)x总线时钟频率*单时钟传输次数

  1. 总线负载能力:指总线上连接的设备数量。

(2018)下列选项中,可提高同步总线数据传输率的是( )。

Ⅰ. 增加总线宽度 Ⅱ. 提高总线工作频率

Ⅲ. 支持突发传输 Ⅳ. 采用地址/数据线复用

A. 仅Ⅰ、Ⅱ B. 仅Ⅰ、Ⅱ、Ⅲ

C. 仅Ⅲ、Ⅳ D. Ⅰ、Ⅱ、Ⅲ和Ⅳ

解答:

总线数据传输率也称总线带宽,为总线上每秒钟传输的字节数。

总线数据传输率=总线工作频率×总线宽度/8,I和II正确。

采用突发传输方式,在一个总线周期内传输存储地址连续的多个数据字,提高了传输效率,进而提高了总线数据提高传输率。III正确。

采用地址/数据线复用只是减少了线的数量,节省了成本,并不能提高总线数据提高传输率。Ⅳ错误。

综上,仅Ⅰ、Ⅱ、Ⅲ正确。

本题选B。

总线复用技术

总线的信号线分为专用和复用两种。专用信号线只用于传输一种信号,系统总线的3种总线就是专用总线。而复用总线是指一组传输线具有多种用途,用于分时传送不同类型的信息。常见的有:

  • 地址总线和数据总线复用,即地址总线和数据总线共用一组物理线缆,某一时刻该总线传输地址信号,另一时刻传输数据信号。总线复用技术可以减少引脚数目,PCI总线就是典型的复用总线。
  • 同一功能的线缆也可以复用,例如 DRAM 芯片的行列地址线就是复用的,在不同的时钟周期分别传送行、列地址,大大减少了芯片的引脚数。
  • 串行总线也可以看作一个非常极端的总线复用,所有的信息都是通过同一根线缆或两根线缆(差分模式)进行传递的。

总线复用的优缺点

  • 优点:可以提高总线的利用率,减少引脚数目和布线空间,降低成本;
  • 缺点是控制模块复杂,另外分时传送机制还会引起总线性能下降。

【相关真题】

(2009)假设某系统总线在一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10 MHz,则总线带宽是( )。

A. 10MB/s B. 20MB/s C. 40MB/s D. 80MB/s

解答:

一个总线周期中并行传输4字节信息,一个总线周期占用2个时钟周期,即一个时钟周期传输2字节信息,总线时钟频率为10 MHz即每秒有10M个时钟周期。总线带宽为 2×10MB/s=20MB/s 。

本题选B。

(2014)某同步总线采用数据线和地址线复用方式,其中地址/数据线有32根,总线时钟频率为66MHz,每个时钟周期传送两次数据(上升沿和下降沿各传送一次数据),该总线的最大数据传输率(总线带宽)是( )。

A. 132MB/s B. 264MB/s C. 528MB/s D. 1056MB/s

解答:

数据线有32根,也就是一次可以传送32bit/8=4B的数据,66MHz意味着每秒有66M个时钟周期,而每个时钟周期传送两次数据,总线的最大数据传输率4B×66MHz×2=528MB/s。

本题选C。

7.5 总线事务

总线事务是指从请求总线到完成总线使用的操作序列,通常是指总线上一对设备之间完成一次信息交换的过程。我们将发出事务请求且能获得总线控制权的设备称为主设备,做出响应的设备称为从设备。

【注意】一条总线上可以同时挂接多对主从设备,但在某一个总线传输周期内,只能有一个主设备获得总线控制权,且该主设备仅能与一个从设备进行通信。

总线事务是在一个总线周期内发生的一系列活动,总线周期可以分为总线请求、总线仲裁、设备寻址、数据传输和总线释放这五个阶段。

  1. 总线请求。当CPU或DMA等主设备需要使用总线时,发出总线传输申请。
  2. 总线仲裁。当有多个主设备同时发出总线请求时,由总线仲裁机构决定哪个申请者获得下一个传输周期的总线控制权。
  3. 设备寻址。主设备获得了总线控制权后,将要访问的从设备地址及相关命令发送到总线上,启动参与本次数据传输的从设备。
  4. 数据传输。主设备与从设备进行数据交换,数据在两设备之间进行单向或双向传送。

提示:在该阶段中,主设备和从设备之间通常只能传输一个字长的数据,

  1. 总线释放。主设备不再占用系统总线,其在总线上的相关信息均被撤除,总线控制权被释放。

Info

总线事务(袁书定义):通常把在总线上一对主从设备之间的一次信息交换过程称为一个总线事务。总线事务类型由其操作性质来定义。例如,存储器读事务是指将数据从主存取出到处理器,存储器写事务是指将数据写到主存。

典型的总线事务类型有 存储器读、存储器写、I/O读、I/O写、中断响应等。

eg:

存储器读事务示例

主从设备
  • 可以拥有总线控制权并主动进行总线传输控制的设备称为主设备,而被主设备寻址访问的设备称为从设备。
  • 主设备既可以发送数据给从设备,也可以接收从设备的数据,在总线传输的过程中,主设备是主动的,能主动发起总线传输;而从设备只能被动响应。
  • 同一时刻只允许有一个活动主设备控制总线,如果主设备采用广播方式发送数据,则可以有多个从设备存在。

题图

题图


总线突发(猝发)传送方式(成组传送事务)

2014年考察定义

指在数据传输中一次性传送在地址上连续的一批数据。该方式只需获得这批数据的首地址,就可以在传输阶段传送地址连续的多个单元的数据。在这批数据的传输过程中,总线将一直被占用,直到这批数据全部传送完毕,总线才会被释放。由于总线突发传送方式在多个总线周期内只需要传送一次首地址与控制信息,所以其传输速度要比普通传送方式更快。

  • 非突发传送方式在每个传送周期内都先传送地址,再传送数据,主、从设备之间通常每次只能传输一个字长的数据。
  • 在突发传送事务中,每个总线周期仍只传送一个计算机字长的信息,但不释放总线,直到一组信息全部传送完毕再释放总线。

1731589465929-172b058f-3e10-40c4-b2a2-469076ae1b80.png

(2012)某同步总线的时钟频率为100MHz,宽度为32位,地址/数据线复用,每传输一个地址或数据占用一个时钟周期。若该总线支持突发(猝发)传输方式,则一次“主存写”总线事务传输128位数据所需要的时间至少是( )。

A. 20ns B. 40ns C. 50ns D. 80ns

解答:

本题考察突发(猝发)传输,指在同一行中相邻的存储单元连续进行数据传输的方式,只要指定起始地址和突发长度,控制器就会依次自动对后面相同数量的存储单元进行读/写操作,而不需要控制器连续提供列地址。

总线的时钟频率为100MHz,得时钟周期为10ns,总线宽度为32位。因为每传输一个地址或数据占用一个时钟周期,所以传输起始地址需要10ns,每个时钟周期可传输32位数据,传输128位数据需要128/32×10ns=40ns,总共需要10ns+40ns=50ns。

本题选C

(2023)某存储器总线宽度为 64 位,总线时钟频率为 1GHZ,在总线上传输一个数据或地址需要一个的时钟周期,不支持突发传送方式,若通过该总线连接 CPU 和主存,主存每次准备一个 64 位数据需要 6ns,主存块大小为 32B,则读取一个主存块需要的时间为( )。

A. 8ns B. 11ns C. 26ns D. 32ns

解答:

每次传输包含传输地址、准备数据、传输数据三个阶段,总线时钟频率为 1GHZ,时钟周期为1ns,在总线上传输一个数据或地址需要一个的时钟周期,每次传输地址需要1ns,传输数据需要1ns,主存每次准备一个64位数据需要6ns,所以每次传输需要8ns。

由于总线不支持突发传送方式,所以每次只能传输一个总线宽度,总线宽度为64位,主存块大小为32B,所以需要传输32B/64bit=4次。读取一个主存块需要的时间为4×8ns=32ns。

本题选D。

总线分离事务通信链接

又叫总线事务分离、分离事务协议、拆分总线事务,其实这个知识点放在异步定时方式那会更好

读操作是由从设备到主设备的数据传送,而写操作是由主设备到从设备的数据传送。一般情况下,主设备先以一个总线时钟周期发出命令和从设备地址,经过一定的延迟再开始数据传送。为了提高总线利用率,减少延时损失,在分离事务通信中将总线传输过程分为两个阶段:

  1. 第一个阶段主设备完成寻址阶段任务后让出总线控制权供其他主设备使用;
  2. 从设备准备好数据后重新申请总线,完成第二个阶段的数据传送任务。

袁书上对这种方式的定义:将一个事务过程分成两个子过程,

  • 在第一个子过程中,主控设备A在获得总线使用权后,将请求的事务类型(总线命令)、地址以及其他有关信息(如标识主控设备身份的编号等)发送到总线上,从设备B记录下这些信息。主控设备发完这些信息后便立即释放总线,这样其他设备便可使用总线;
  • 在第二个子过程中,从设备B收到主控设备 A发来的信息后,就按照其请求的命令进行相应的操作,当准备好主控设备所需的数据后,从设备B便请求使用总线,一旦获得使用权,则从设备B就将主控设备A的编号及所需的数据等送到总线上,这样主控设备 A便可接收数据。

优点:通过在不传送数据期间释放总线,使得其他申请者能使用总线

缺点:这种方式的控制相当复杂,开销也大,并且事务响应时间也会变长

具体例子:

1731592608228-7231d0d0-894e-41ca-97d3-0da9c297cbd3.png

未采用事务分离:

CPU获取总线控制权后,作为主设备,将地址从其内部的MAR给到主存。在主存准备好数据前,CPU一直占据着总线控制权数据准备好后,主存向CPU申请总线控制权,在获得总线控制权后将数据传输出去。

采用事务分离:

CPU获取总线控制权后,作为主设备,将地址从其内部的MAR给到主存,并释放总线控制权。主存数据准备好后,主存向总线控制器申请总线控制权,在获得总线控制权后将数据传输出去。

(2016)下列关于总线设计的叙述中,错误的是( )。

A. 并行总线传输比串行总线传输速度快

B. 采用信号线复用技术可减少信号线数量

C. 采用突发传输方式可提高总线数据传输率

D. 采用分离事务通信方式可提高总线利用率

解答:

并行总线传输通常比串行总线传输速度快,但这不是绝对的。在实际时钟频率比较低的情况下,并行总线因为可以同时传输若干比特,速率确实比串行总线快。但是,随着技术的发展,时钟频率越来越高,并行导线之间的相互干扰越来越严重,当时钟频率提高到一定程度时,传输的数据已经无法恢复。而串行总线因为导线少,线间干扰容易控制,反而可以通过不断提高时钟频率来提高传输速率。A错误。

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

突发(猝发)传输是在一个总线周期中,可以传输多个存储地址连续的数据,即一次传输一个地址和一批地址连续的数据。C正确。

分离事务通信即总线复用的一种,相比单一的传输线路可以提高总线的利用率。D正确。

本题选A。

7.6 总线定时

画板

主设备获得总线使用权后,就可以开始使用总线与从设备传送信息,实现具体的总线事务。而具体总线事务的每一个步骤、总线上的每一个信号、何时开始、何时结束就是总线的定时问题

常见总线通信定时方式有同步方式、异步方式、半同步方式和分离事务通信方式4种。

7.6.1 同步定时

同步定时方式是指进行信息交换的两部件或设备均通过统一的时钟进行同步,即它们都必须使用同一个时钟,在规定的时钟节拍内进行规定的总线操作。传统的总线大多是同步总线,它采用公共的时钟信号进行定时。挂接在总线上的所有设备都 从时钟线上获得定时信号。

同步总线的传输协议非常简单,只要在规定的第几个时钟周期内完成特定的操作即可。 例如,对于处理器通过总线访问存储器的操作来说,可以规定以下“存储器读操作”协议: 主控设备(即处理器)在第一个时钟周期发送地址和存储器读命令(可利用控制线表明请求的类型为“存储器读”)。 从设备(即存储器)总是在第 5 个时钟周期将数据放到总线上作为响应,处理器也在第 5 个时钟周期从数据线上取数据

1731598153422-1b0fdc8f-c7f3-42cf-935f-f864da100d05.png

存储器同步写流程也基本相同,主设备将地址、状态、数据、命令全部准备好,等待若干固定节拍后假定存储器已经完成写操作,撤除所有地址、数据、命令信息即可,如图所示,图中写入操作的总线传输周期长度是固定的。

1731598441503-71917313-fe96-4b36-a8ca-d3dfd257f0bc.png

Info

优点:主从设备协调简单,传输速率高。

缺点:

- 总线定时以最慢设备所花时间为标准,所以同步总线<strong>适合于存取时间相差不大的多个功能部件之间的通信</strong>
- 由于时钟偏移问题,导致<strong>同步总线不能过长</strong>,否则将会降低总线传输效率。(因为同步总线通常采用并行传输方式,即总线的数据线条数为 8 位、16 位、32 位或 64 位等, 同时并行传输的这些数据位信号的定时必须相同,因此,实现更快传送速度、更长传输线的总线时,会导致传送到另一端时的波形发生变形,从而导致所有位中最快和最慢的位信号之间 的时间偏差较大)
- 此外同步定时中主、从设备都是默认对方正常工作的,<strong>可靠性不高</strong>

【适用场合:适用于总线长度短、设备速度相近且传输可靠性高的应用场合,如直接与CPU相连的系统总线。

7.6.2 异步定时

由于同步总线的上述问题,现在越来越多的总线采用异步串行方式进行传输。因为串行总线 每次在一根信号线上传送数据位,传输速率可以比并行总线高得多,而且,因为每个位各自 传输,因而传输时延的细微变化不会影响其他数据位的传送。通过多个数据通道的组合,可 以实现比传统并行总线高得多的数据传输带宽。

异步总线方式是指在没有统一的时钟限制下,只依靠各部件或设备内部的定时操作,以信号握手的方式进行规定的总线操作,即通过请求信号和确认信号来协调发送方和接收方的动作。进行信息交换的双方不需要由公共的时钟来规定请求和应答的时间,所以总线周期的长度不再相同。而且有效规避了同步定时中的时钟偏移问题,总线传输距离更长。

异步总线方式的优点在于总线周期灵活可变,主从设备不需要强制同步,可以支持速度不同的两个设备挂接到同一总线上。缺点在于逻辑更复杂;

根据请求和回答信号的撤销是否互锁,异步定时方式又可分为不互锁、半互锁和全互锁三种方式。

一个帮助于理解三种异步定时方式的例子

假设小明想约小莉吃饭。

  1. 场景一(类比全互锁方式):小明刚认识小莉,第一次约她吃饭。小明给小莉发了一条微信消息:“明天去吃饭吧”。然后等待小莉回复,过了一会儿小莉回复:“可以啊”。然后也等待小明回复。当小明收到回复后,他认为约定成功,然后回复小莉:“那明天见”。当小莉收到回复后,她也认为约定成功。该场景中,小明和小莉都必须等到对方回复之后才会认为约定成功,由于双方需要等待对方的回复,所以约定过程比较缓慢。
  2. 场景二(类比半互锁方式):小明和小莉逐渐熟悉,第二次约她吃饭。小明给小莉发了一条微信消息:“明天去吃饭吧”。然后等待小莉回复,过了一会儿小莉回复:“可以啊”。但由于熟悉,小莉此时认为约定已成功,不再等待小明回复。当小明收到回复后,他也认为约定成功。该场景中,小明需要等待小莉回复才会认为约定成功,而小莉在给小明发送过回复信息后就会认为约定成功,由于小莉不再需要等待小明回复,所以约定过程有所加快。
  3. 场景三(类比不互锁方式):小明和小莉成为了好友,第三次约她吃饭。小明给小莉发了一条微信消息:“明天去吃饭吧”。由于是好友,小明直接默认约定成功,小莉在收到邀约信息后,也直接认为约定成功。该场景中,在小明不等待小莉回复和小莉没有回复的情况下双方都认为约定成功,由于双方都不需要等待对方的回复,所以约定过程变得很快。在这三个场景中,小明相当于主设备,小莉相当于从设备,而小明和小莉互发消息约定的过程相当于主从设备通过请求信号和回答信号进行信号握手的过程。

1731599754936-abe2aa44-9639-4166-ab9d-2bb5cb9bdb18.png

  1. 不互锁方式

主从设备双方不存在互锁,即主设备发出的请求信号和从设备发出的回答信号都可以自动撤销,不必等待对方的信号。因此,不互锁方式是三种方式中速度最快的。如图(a)所示。

  1. 半互锁方式

主设备一方存在互锁关系,即主设备发出的请求信号必须等接收到从设备的回答信号之后才能撤销,但从设备的回答信号不受限制,仍然可以自动撤销。如图(b)所示。

  1. 全互锁方式

主设备和从设备双方都存在互锁关系。即不仅主设备发出的请求信号必须等接收到从设备的回答信号之后才能撤销,同样,从设备发出的回答信号也必须等发送方的请求信号撤销之后才能撤销。如图(c)所示。

7.6.3 半同步定时方式

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

例如,某个半同步总线总是从某个时钟开始,在每个时钟到来时,采样 Wait 信号,若无效,则说明数据未准备好,下个时钟到来时,再采样 Wait 信号,直到检测到有效,再去数据线上取数据。半同步定时适用于系统工作速度不高,但又包含了由许多速度差异较大的各类设备组成的简单系统。

Info

半同步定时同时具有同步和异步定时的优势,既保留了同步定时所有信号都由公共时钟定时的特点,又保留了异步通信允许不同速率的设备协同工作的特点,可以有效解决异步传输中的噪声敏感问题。

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

7.6.4 分离事务通信方式

前面已有介绍

  1. (2015)下列有关总线定时的叙述中,错误的是( )。

A. 异步通信方式中,全互锁协议最慢

B. 异步通信方式中,非互锁协议的可靠性最差

C. 同步通信方式中,同步时钟信号可由各设备提供

D. 半同步通信方式中,握手信号的采样由同步时钟控制

解答:

在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的“握手”信号来实现定时控制。主模块提出交换信息的“请求”信号,经接口传送到从模块。从模块接到主模块的请求后,通过接口向主模块发出“回答”信号。

优点:总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间可靠地进行信息交换,自动适应时间的配合。

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

根据“请求”和“回答”信号的撤销是否互锁,分为以下3种类型。不互锁方式速度最快,可靠性最差,全互锁方式最可靠,速度最慢。

A表述正确,B表述正确,

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

C表述错误。

半同步通信是一种介于异步和同步通信之间的通信方式。它在数据的传输过程中使用同步时钟信号,但在握手信号的采样上仍然依赖于同步时钟。在半同步通信中,数据和同步时钟信号是同时传输的,而握手信号则根据同步时钟的边沿来采样。具体来说,握手信号的状态通常在同步时钟信号的上升沿或下降沿采样,以确保正确的信号同步和数据传输。

D表述正确。

本题选C。

  1. (2021):下列关于总线的叙述中,错误的是( )。

A. 总线是在两个或多个部件之间进行数据交换的传输介质

B. 同步总线由时钟信号定时,时钟频率不一定等于工作频率

C. 异步总线由握手信号定时,一次握手过程完成一位数据交换

D. 突发(Burst)传送总线事务可以在总线上连续传送多个数据

解答:

总线是计算机系统中用于传输数据和控制信号的物理通道。它连接了各种计算机部件,如处理器、内存、输入输出设备等,允许它们之间进行数据的交换和通信。A正确。

同步总线使用时钟信号来同步数据传输。数据的传输和操作都在特定的时钟周期内进行,时钟信号的频率可以是系统的工作频率或其倍数。时钟信号的作用是保持各个部件之间的数据传输步调一致。B正确。

异步总线使用起始信号和停止信号来表示数据传输的开始和结束,而不是一次握手过程完成一位数据交换。数据传输的速率可以根据具体实现而有所不同。C错误。

在突发传送中,一次请求可以触发多个数据传输,提高了数据传输效率。突发传送是常见的总线操作方式,特别在高速和高带宽的系统中被广泛使用。D正确。

本题选C。

补充大题

  1. 假设一个 32位的处理器连接了一个 32位宽的处理器总线,总线的时钟频率为400MHz,支持多种总线事务类型。其中,最短的总线事务类型是存储器读事务,需要4个时钟周期完成,第1个时钟周期送地址和读命令,第4个时钟周期取数;最长的总线事务类型是突发传送8次数据,需要11个时钟周期完成,第1个时钟周期送地址和读命令,第4个时钟周期开始连续传送8个数据,每个时钟周期传送一次。请回答下列问题:
  2. (1)该总线是同步总线还是异步总线?为什么?
  3. (2)该总线的最大数据传输率为多少?
  4. (3)若处理器一直持续发起最短总线事务类型,则此时总线的数据传输率是多少?
  5. (4)若处理器一直持续发起最长总线事务类型,则此时总线的数据传输率是多少?
  6. (5)若将处理器总线的总线宽度扩展为64位,则该总线的最大数据传输率提高到多少?
  7. (6)若将处理器总线的总线时钟频率提高到800MHz,则该总线的最大数据传输率提高到多少?
  8. (7)加信总线宽度和加信总线时钟频率相比,哪种更好?
解析

题图

  1. 某32位计算机,CPU主频为800MHz,Cache命中时CPI为4,Cache块大小为32B;主存采用8位交叉存储方式,每个存储体的存储字长为32位、存储周期为40ns;存储器总线宽度为32位,总线时钟频率为200Mhz,支持突发传送总线事务。每次读突发传送总线事务的流程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送32B,传送地址或32位数据均需要一个总线时钟周期。请回 答下列问题:
  2. 1) CPU和总线的时钟周期各为多少?总线的带宽是多少?
  3. 2) Cache缺失时,需要用几个读突发传送总线事务完成一个主存块的读取?
  4. 3) 存储器完成一次读突发传送所需要的时间是多少?
  5. 4)若程序BP执行过程中总共执行了100条指令,平均每条指令需要1.2次访存,Cache缺失率为5%, 不考虑cache替换的开销,则BP的CPU执行时间是多少?
解析

1):CPU时钟周期:公式,总线时钟周期:公式

总线带宽:公式

2)由于cache块长度=一次读突发传送总线事务传送数据量,所以一个读突发传送总线事务即可;

3)我们来对读突发传送的流程进行详细解析:

1 送首地址和命令 CPU通过地址线将读内存首地址送至主存,通过控制线将读主存命令送至主存。

2 存储器准备数据和传送数据 -- 单个存储体视角

准备数据:一个存储周期,单个存储体准备好数据将数据送至总线数据线

传送数据:一个总线周期,准备好的数据通过数据线传送至CPU

3 通过突发传送的性质得出一个读突发传送总线事务的时间

现代内存为了可以快速传输一段相连的数据,采用突发传送的策略。突发传送的前提是多模块存储体按照交叉编址的方式进行编址。

突发传送的过程:

1.CPU给出需要传输数据的第0号字节的地址

2.从0号字节所在的存储体开始,依次启动,直到 8 个存储体全部启动。

3.随着存储体依次准备结束,每个存储体依次通过总线把数据给到CPU

题图

所以为85ns

4)执行时间 = (Cache命中时的执行时间 + Cache缺失时的执行时间) = (CPI*指令数*单个时钟周期长度) +(读突发传送总线事务时间 * cache缺失次数)=公式