1.55k likes | 1.67k Views
第 7 章 总线及总线互连结构. ● 部件之间的两种互连方式: 各部件之间通过单独的连线互连,称为 分散连接方式 。 各个部件连接到一组公共信息传输线上,称为 总线连接方式 。. ● 总线结构的两个主要优点是 灵活 和 成本低 。 灵活性体现在新部件可以很容易地加到总线上,且部件可以在使用相同总线的计算机系统之间互换。 一组单独的连线可被多个部件共享,所以总线的性价比高。 现代计算机普遍使用的是总线互连结构。. ● 总线的主要缺点是它可能产生 通信瓶颈 。. ● 本章着重介绍总线的基本概念、总线设计中的几个因素、总线标准及其现代计算机的总线互连结构。.
E N D
第7章 总线及总线互连结构 ●部件之间的两种互连方式: 各部件之间通过单独的连线互连,称为分散连接方式。 各个部件连接到一组公共信息传输线上,称为总线连接方式。 ●总线结构的两个主要优点是灵活和成本低。 灵活性体现在新部件可以很容易地加到总线上,且部件可以在使用相同总线的计算机系统之间互换。 一组单独的连线可被多个部件共享,所以总线的性价比高。 现代计算机普遍使用的是总线互连结构。 ●总线的主要缺点是它可能产生通信瓶颈。 ●本章着重介绍总线的基本概念、总线设计中的几个因素、总线标准及其现代计算机的总线互连结构。
第7章 总线及总线互连结构 ●部件之间的两种互连方式: 各部件之间通过单独的连线互连,称为分散连接方式。 各个部件连接到一组公共信息传输线上,称为总线连接方式。 ●总线结构的两个主要优点是灵活和成本低。 灵活性体现在新部件可以很容易地加到总线上,且部件可以在使用相同总线的计算机系统之间互换。 一组单独的连线可被多个部件共享,所以总线的性价比高。 现代计算机普遍使用的是总线互连结构。 ●总线的主要缺点是它可能产生通信瓶颈。 ●本章着重介绍总线的基本概念、总线设计中的几个因素、总线标准及其现代计算机的总线互连结构。
7.1 总线的基本概念 ■计算机内部进行信息交换,必须在部件之间构筑通信线路,通常把连接各部件的通路的集合称为互连结构。 ■互连结构从分散结构发展到总线结构。 ■总线是连接两个或多个功能部件的一组共享的信息传输线,它的主要特征就是多个部件共享传输介质;一个部件发出的信号可以被连接到总线上的其他所有部件所接收。
7.1.1 总线的特性和分类 ◆总线的特性 (1)物理特性: ▲总线的物理特性是指总线在机械物理连接上的特性。包括:连线类型、数量、接插件的几何尺寸和形状以及引脚线的排列等。 ▲从连线的类型来看,总线可分为电缆式、主板式和底板式。 ▲连线的数量来看,总线一般分为串行总线和并行总线。在并行传输总线中,按数据线的宽度分8位、16位、32位、64位总线等。
▲一般串行总线用于长距离的数据传送,并行总线用于短距离的高速数据传送。▲一般串行总线用于长距离的数据传送,并行总线用于短距离的高速数据传送。 (2) 电气特性: ▲总线的电气特性是指总线的每一条信号线的信号传递方向、信号的有效电平范围。 △ CPU发出的信号为输出信号,送入CPU的信号为输入信号。 △总线的电平表示方式有两种:单端方式和差分方式。 在单端电平方式中,用一条信号线和一条公共接地线来传递信号;采用正逻辑。 差分电平方式采用一条信号线和一个参考电压比较来互补传输信号,一般采用负逻辑。
(3) 功能特性: ▲ 总线功能特性是指总线中每根传输线的功能。如地址线用来传输地址信息,数据线用来传输数据信息,控制线用来发出控制信息,不同的控制线其功能不同。 (4) 时间特性: ▲ 总线时间特性是指总线中任一根传输线在什么时间内有效,以及每根线产生的信号之间的时序关系。用信号时序图来说明。
◆ 根据所连接部件的不同,总线通常被分成三种类型: (1) 内部总线: ▲ 指芯片内部连接各元件的总线。如CPU芯片内部,在各个寄存器、ALU、指令部件等各元件之间也有总线相连。 (2) 系统总线: ▲指连接CPU、存储器和各种I/O模块等主要部件的总线。有主板式和底板式总线。 主板式总线是一种板级总线,主要连接主机系统印刷电路板中的CPU和主存等部件,也被称为处理器-主存总线。
底板式总线通常用于连接系统中的各个功能模块,实现系统中的各个电路板的连接。典型的有PCI总线、Multibus总线、VME总线等。底板式总线通常用于连接系统中的各个功能模块,实现系统中的各个电路板的连接。典型的有PCI总线、Multibus总线、VME总线等。 (3) 通信总线: ▲这类总线用于主机和I/O设备之间或计算机系统之间的通信。 ▲由于这类连接涉及到许多方面,包括:距离远近、速度快慢、工作方式等,差异很大,所以通信总线的种类很多。
7.1.2 系统总线的组成 ◆系统总线通常由一组控制线、一组数据线和一组地址线构成;也有数据线和地址线复用。 ◇ 数据线用来承载在源部件和目的部件之间传输的信息,这个信息可能是数据、命令、或地址(数据线和地址线复用时)。如写磁盘。 ◇ 地址线用来给出源数据或目的数据所在的主存单元或I/O端口的地址。 ◇ 控制线用来控制对数据线和地址线的访问和使用;控制线用来传输定时信号和命令信息。
◇ 典型的控制信号包括: 时钟(Clock):用于总线同步。 复位(Reset):初始化所有设备。 总线请求(Bus Request):表明发出该请求信号的设备要使用总线。 总线允许(Bus Grant):表明接收到该允许信号的设备可以使用总线。 中断请求(Interrupt Request):表明某个中断正在请求。 中断回答(Interrupt Acknowledge):表明某个中断请求已被接受。
存储器读(Memory Read):从指定的主存单元中读数据到数据总线上。 存储器写(Memory Write):将数据总线上的数据写到指定的主存单元中。 I/O读(I/O Read):从指定的I/O端口中读数据到数据总线上。 I/O写(I/O Write):将数据总线上的数据写到指定的I/O端口中。 传输确认(Transfer ACK):表示数据已被接收或已被送到总线上。
7.1.3 总线的数据传输方式 ◆ 计算机总线中,数据传输有两种基本方式: 串行传输、并行传输。 1.串行传输 ▲串行总线的数据在数据线上按位进行传输,只需要一根数据线,线路成本低,适合于远距离的数据传输。 ▲在计算机中普遍使用串行通信总线连接慢速设备,象键盘、鼠标和终端设备等。近年来出现一些中高速的串行总线,可连接各种类型的外设,可传送多媒体信息,如P1394串行总线。
▲串行传输中的数据转换 发送部件中并行数据到串行数据的转换,称为拆卸; 接收部件中串行数据转换成并行数据,称为装配。 ▲串行传输中的数据传输速率 在信息传输通道中,携带数据信息的信号单元叫码元; 每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。反映了每秒钟传输数据的位数。 每秒钟通过信道传输的信息量称为位传输速率,简称比特率。反映了在传输介质上每秒钟传输的所有信息位数。 波特率、比特率的单位都是位/秒(bps);比特率可以大于或等于波特率
▲串行传输方式有同步传输方式和异步传输方式两种。▲串行传输方式有同步传输方式和异步传输方式两种。 在异步传输方式中,每个字符要用一位起始位和若干停止位作为字符传输的开始和结束标志,需占用一定的时间。 同步传输方式要求有时钟来实现发送端和接收端的同步,传输速度较快;但接口的硬件较复杂。 数据块传输时,只在数据块的开始和结尾处用一个或若干个同步字符作标志。这种传输方式称为同步串行传输方式。
2.并行传输 ▲并行总线的数据在数据线上同时有多位一起传送,每一位要有一根数据线。并行传输比串行传输速度要快得多,但需要更多的传输线。 ▲并行传输中的数据传输速率 衡量并行总线速度的指标是最大数据传输率,即单位时间内在总线上传输的最大信息量。一般用每秒多少兆字节(MB/s)来表示。 总线的工作频率为66MHz,总线宽度为32位,则它的最大数据传输率为:66 × 32/8 = 264MB/s;这里1M=106 。 ▲将并行方式和串行方式结合起来进行数据传输。
7.2 总线设计的要素 总线设计时要考虑的基本要素包括: 1)信号线类型:专用信号线 / 复用信号线 2)仲裁方法:集中式裁决 / 分布式裁决 3)定时方式:同步通信 / 异步通信 4)事务类型:总线所支持的各种数据传输类型和其他总线操作类型 5)总线带宽:单位时间内在总线上传输的有效数据
7.2.1 信号线类型 ◆ 专用信号线就是指这种信号线专门用来传送 某一种信息。 采用数据和地址专用线,主存单元地址和数据可以同时送到总线上。 ◆ 复用信号线就是指一种信号线在不同的时间传输不同的信息。 信号线的分时复用,可以使用较少的线传输更多的信息,从而节省了空间和成本。 挂接的每个部件的电路变得更复杂了;还潜在地降低了性能。
7.2.2 总线裁决 ◆ 总线上连接的各个部件,根据其对总线有无控制能力被分为主控设备和从设备两种。 总线主控设备控制对总线的访问,它能够发起并控制所有总线请求。 从设备只能响应主控设备发来的总线命令。 ◆ 系统可以只有一个总线主控设备,所有总线操作都必须由处理器控制。
◆ 另一种选择是采用多个总线主控设备,每个主控设备都能启动数据传送。 必须提供一种机制用来决定在某个时刻哪个设备具有总线使用权。 ◆ 决定哪个总线主控设备将在下次得到总线使用权的过程称为总线裁决。 两类总线裁决方式:集中式和分布式
集中式裁决方式是将控制逻辑做在一个专门的总线控制器或总线裁决器中,将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决。集中式裁决方式是将控制逻辑做在一个专门的总线控制器或总线裁决器中,将所有的总线请求集中起来,利用一个特定的裁决算法进行裁决。 分布式的裁决方式,没有专门的总线控制器,其控制逻辑分散在各个部件或设备中。 裁决方案: 一是“等级性”,即:每个主控设备有一个总线优先级,具有最高优先级的设备应该先被服务; 二是“公平性”,即:任何设备,即使是具有最低优先权的设备也不能永远得不到总线使用权。
1.集中裁决方式(3种) (1) 菊花链查询方式 ▲ 优先级由主控设备在总线上的位置来决定, 要求拥有总线使用权的高优先级设备简单地拦截总线允许信号,不让其更低级的设备收到该信号。 图7.1 菊花链查询方式
▲ 菊花链总线的优点是简单,只需很少几根线就能按一定优先次序实现总线裁决,而且易扩充设备。 ▲ 缺点是不能保证公正性,也即一个低优先级请求可能永远得不到允许; 对电路故障较敏感,一个设备的故障会影响到后面设备的操作; 菊花链的使用也限制了总线速度。 (2) 计数器定时查询方式 ▲ 此方案比菊花链查询方式多了一组设备线,少了一根总线允许线BG。(图7.2) ▲ 总线请求的设备号与计数值一致时,该设备便获得总线使用权,此时终止计数查询,同时该设备建立总线忙BS信号。
▲ 设备的优先级通过设置不同的计数初始值来改变 计数总是从0开始,此时设备的优先次序是固定的; 计数的初值总是上次得到控制权设备的设备号,那么所有设备的优先级是相等的,是循环优先级方式。 ▲ 计数器定时查询方式具有灵活的优先级, 它对电路故障也不如菊花链查询那样敏感。 这种方式增加了一组设备线,每个设备要对 设备线的信号进行译码处理,因而控制也变复杂了。
(3) 独立请求方式 ▲ 这种方案使用一个中心裁决器从请求总线的一组设备中选择一个。(图7.3) ▲ 每个设备都有一对总线请求线BRi和总线允许 线BGi00 ▲ 总线控制器可以给各个请求线以固定的优先级,也可以设置可编程的优先级。 裁决算法由硬件来实现,可采用固定的并行判优算法、平等的循环菊花链算法、动态优先级算法(如:最近最少用算法、先来先服务算法)等。
▲ 这种方法的优缺点: 响应速度快,若是可编程的总线控制器,优先级设置灵活。 控制逻辑很复杂,控制线数量多。 若n表示允许挂接的最大设备数,三种裁决方式所需裁决线分别为:2根、log2n根、2n根。 图7.3 独立请求方式
BR0 BR1 BR2 BR3 设备 0 设备 1 设备 2 设备 3 2.分布式裁决方式(3种) (1) 自举分布式裁决 ▲ 使用多个请求线,不需要中心裁决器,每个设备独立地决定自己是否是最高优先级请求者。(图7.4) ▲ BR0为总线忙信号线,BRi为设备i的总线请求线。 图7.4 自举分布式裁决
▲ 一般优先级是固定的 总线裁决期间每个设备将有关请求线上的信号合成后取回分析,根据这些请求信号确定自己能否拥有总线控制权。 每个设备通过取回的合成信息能够检测出其他设备是否发出了总线请求。 ▲ 这种方案需要较多的连线用于请求信号,所以,许多总线用数据线DB作为总线请求线。 NuBus是在MacintoshII 中的底板式总线,就采用该方案;SCSI总线也采用该方案。
(2) 冲突检测分布式裁决 ▲ 这种方案中,每个设备独立地请求总线,多个同时使用总线的设备会产生冲突,这时冲突被检测到,按照某种策略在冲突的各方选择一个设备。 ▲ 当冲突发生时,两个设备都会停止传输,延迟一个随机时间后再重新使用总线。 ▲ 这种方案一般用在网络通信总线上。 (3) 并行竞争分布式裁决 ▲ 需要使用总线的主控设备把自己的仲裁号发送到仲裁线上,每个设备根据并行竞争算法决定在一定时间以后占用总线还是撤销仲裁号。
仲裁线 总线 AB6 AB0 AB7 设备 厎 比 得胜 较 cn0 cn7 cn6 仲裁号 图7.5 并行竞争分布式裁决 ▲ 图7.5是总线中有8根仲裁线AB0~AB7例子
2 裁决号 1 裁决号 裁决线逻辑 裁决线电平 cn cn AB AB 0 0 0 高 高 高 0 0 0 高 高 高 0 0 0 高 高 高 0 0 0 高 高 高 0 1 1 低 高 低 1 0 0 高 高 高 0 1 1 低 高 低 1 0 0 高 高 高 ▲ 两个设备同时要求使用总线,仲裁号分别是00000101和00001010;最终留在仲裁线上的号为00001010。 表7.1 并行竞争裁决逻辑举例分析结果
▲ 并行竞争方式与自举分布式裁决算法比较,它可以用很少的裁决线挂接大量的设备。 例如,假定是8位仲裁号,自举分布式裁决只能表示8个优先级; 这种方式可以表示256个优先级,仲裁号为255的设备优先级最高,而0最低。 Futurebus+总线标准使用这种裁决方案。 ▲ 选择不同裁决方案的因素包括: 总线在I/O设备的数量和总线长度的可扩充性方面如何? 总线裁决应该多快? 需要什么程度的公正性等。
7.2.3 定时方式 ◆ 一个取得了总线控制权的设备如何控制总线进行总线操作呢?即如何来定义总线事务中的每一步何时开始、何时结束呢?这就是总线通信的定时问题。 ◆总线通信的定时方式有四种: 同步协议 异步协议 半同步协议 分离事务协议
1.同步协议方式 ▲ 如果一个总线是同步的,它的控制线中就有一个时钟信号线,挂接在总线上的所有设备都从这个公共的时钟线上获得定时信号。 一定频率的时钟信号线定义了等间隔的时间段,这个固定时间段为一个时钟周期,也称一个总线周期。 该时钟信号有一个固定的通信协议。 ▲ 图7.6表示一个处理器-主存总线,执行存储器读操作。
▲ 这种类型的协议能够很容易地用一个有限状态机实现,是预先确定的,只涉及到非常少的逻辑,所以这种总线非常快,并且接口逻辑很少。 ▲ 同步总线有两个缺点: 第一,在总线上的每个设备必须以同样的时钟速率进行工作; 第二,由于时钟偏移问题,同步总线如果要快的话就不能很长。 ▲ 处理器-主存总线一般都是同步的,因为通信的设备靠得很近,而且数量又少。
2. 异步协议方式 ▲ 异步总线是非时钟定时,一个异步总线能够连接带宽范围很大的各种设备。总线能够加长而不用担心时钟偏移或同步问题。 ▲ 为了协调在发送和接收者之间的数据传送,一个异步总线必须使用一种握手协议。 握手协议由一系列步骤组成,在每一步中,只有当双方都同意时,发送者或接收者才会进入到下一步; 协议是通过一组附加的控制线来实现的。 ▲ 考虑一个设备请求从存储器中读一个字。 △假定存在以下三个控制线。
(1) ReadReq (读请求):用于指示一个读请求,假定在送出该信号时,地址同时被放到地址 线上; (2) Ready(数据就绪):用于指示数据字已在数据 线上准备好。 在一个存储器读事务中,该信号将由存储器驱动有效,因为是存储器提供数据; 在一个I/O读事务中,该信号将由I/O设备驱动有效,因为是I/O设备提供数据。 (3) Ack(回答):用于回答另一方送过来的ReadReq或Ready信号。 △ 图7.7给出异步通信协议示意图;主设备从存储器中读一个字。
存储器接收到ReadReq信号后,就从地址线上读取地址信息,然后送出Ack信号,表示它已接受了读请求和地址信息。存储器接收到ReadReq信号后,就从地址线上读取地址信息,然后送出Ack信号,表示它已接受了读请求和地址信息。 • 主设备收到Ack信号后,就释放ReadReq信号和地址线。 • 存储器发现ReadReq信号被释放后,就跟着也降下Ack信号。 • ④ 当存储器完成数据的读出后,就将数据放到数据线上,并送出数据就绪信号Ready 。
⑤主设备接收到存储器送出的Ready信号后,就从数据线上开始读,并送出回答信号Ack,告诉存储器数据已经被读。⑤主设备接收到存储器送出的Ready信号后,就从数据线上开始读,并送出回答信号Ack,告诉存储器数据已经被读。 • 存储器接收到Ack信号后,就得知数据已被成功地读取。此时它就降下Ready信号,并释放数据线。 • ⑦ 主设备发现Ready线降下后,也就跟着降下回答信号Ack。 • 又一次握手过程完成。在这个过程中完成了一次数据信息的交换
Ready Ready Ready Ack Ack Ack (c) 全互锁方式 (b) 半互锁方式 (a) 非互锁方式 ▲ 根据握手信号的相互作用方式,异步通信有非互锁、半互锁和全互锁三种可能的方式。(图7.8) 图7.8 异步通信的三种互锁方式
时钟周期 总线传输周期 时钟 就绪 主 设 读命令 备 地址 数据 从 设 备 回答 3. 半同步协议方式 ▲ 所有事件都由时钟定时,而信息的交换由就绪和应答等信号控制的通信方式称为半同步通信方式。 图7.9 半同步通信协议
▲ 就绪和应答等信号都在时钟的上升沿有效,这样信号的有效时间仅限制在时钟到达的时刻,而不受其他时间的信号干扰。 ▲ 半同步通信同时具有同步和异步通信的优点,既保持了“所有信号都由时钟定时”的同步总线的特点,又有“不同速度的设备共存”的异步总线的特点。
4. 分离事务协议方式 ▲ 有多个总线主控设备在总线上存在时,增加有效总线带宽的另一个方法就是在总线事务执行过程中,如果不需要使用总线时立即释放总线,在其他设备获得总线进行数据传输的同时,原来释放总线的事务在做数据准备等非总线数据传输的操作。这种类型的协议被称为分离事务协议(Split transaction protocol)。 基本思想是将一个传输操作事务过程分成两个子过程
▲ 分离通信方式的优点: 通过在不传送数据期间释放总线,使得其他申请者能使用总线,实现一个总线为多个主从设备间进行交叉并行式的信息传送。这样可改进整个系统的总有效带宽。 从设备准备数据的过程相当复杂需要重叠多个事务时,效果更明显。 这种方式控制相当复杂,一般在大型计算机系统和高档微机系统中使用,普通微机系统中很少使用。 ▲ 分离通信方式的不足: 事务的分离使得完成一个事务的时间可能会增加 请求者的身份必须被传送并被从设备保存
5. 同步和异步的性能比较 ▲ 同步总线通常比异步总线要快。因为异步 通信需要进行握手,增加了开销。 ▲ 举例:比较同步和异步总线的最大带宽。 假定同步总线的时钟周期为50ns,每次总线传输花1个时钟周期,异步总线每次握手需要40ns,两种总线的数据都是32位宽,存储器的存储周期为200ns。要求求出从该存储器中读出一个字时两种总线的带宽。 同步总线具有50ns的总线周期,其所需的步骤和时间为: (1)发送地址和读命令到存储器:50ns (2)存储器读数据:200ns (3)传送数据到设备:50ns 总时间为300ns。最大总线带宽为4B/300ns,即:13.3MB/s。
异步总线所需的步骤和时间为:(图7.7) 第①步为40ns; 第②、③、④步为Max(3×40ns,200ns)=200ns; 第⑤、⑥、⑦步为3 × 40ns=120ns。 总时间为360ns。故产生的最大带宽为4B/360ns=11.1MB/s。 同步总线仅比异步快大约20%。 ▲ 尽管同步总线可能更快一点,但是在同步和异步之间进行选择时,要考虑的不仅是数据带宽,而且要考虑I/O系统的能力。 包括可以连到总线上的设备的个数与总线的物理距离; 异步总线能更好地适应技术的改变,并能支持更大范围内的 响应速度; 尽管异步总线增加了开销,但I/O总线大都采用异步通信。
▲ “分离事务”协议方式,可按如下步骤进行: (1) 总线主控设备向存储器发出信号,送出地址和请求类型。 (2) 当存储器回答完请求后,主控设备释放所有控制线。 (3) 存储器访问开始,总线被释放为空闲以便在存储器访问期间其他总线主控设备能使用总线。 (4) 存储器向主控设备发出信号表示数据已经可用。 (5) 主控设备通过总线接收数据,并向存储器指示它已获取数据,所以存储系统可以从总线上撤消信息。