系列文章目录
第一章 计算系统概论
第二章 运算方法和运算器
第三章 多层次的存储器
第四章 指令系统
第五章 中央处理器
第六章 总线系统
第七章 外围设备
第八章 输入输出系统
前言
【 第六章 总线系统 】
6.1 总线的概念和结构形态
6.1.1 总线的基本概念
- 数字计算机是由若干系统功能部件构成的,这些系统功能部件在一起工作才能形成一个完整的计算机系统。
- 总线定义:计算机的若干功能部件之间不可能采用全互联形式,因此就需要有公共的信息通道,即总线。
- 总线是构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通路。借助于总线连接,计算机在各系统功能部件之间实现地址、数据和控制信息的交换,并在争用资源的基础上进行工作。
- 总线可分为以下几类:
- 内部总线:CPU内部连接各寄存器及运算器部件之间的总线。
- 系统总线:外部总线。CPU和计算机系统中其他高速功能部件相互连接的总线。
- I/O总线:中低速I/O设备相互连接的总线。
1、总线的特性
- 总线的特性可分为:物理特性、功能特性、电气特性、时间特性。
- 物理特性:总线的物理连接方式(根数、插头、插座形状,引脚排列方式)
- 功能特性:每根线的功能
- 电气特性:每根线上信号的传递方向及有效电平范围。
- 时间特性:规定了每根总线在什么时间有效。
2、总线的标准化
- 相同的指令系统,相同的功能,不同厂家生产的各功能部件在实现方法上几乎没有相同的,但各厂家生产的相同功能部件却可以互换使用
- 为了使不同厂家生产的相同功能部件可以互换使用,就需要进行系统总线的标准化工作。目前已经出现了很多总线标准,如PCI、ISA等
- 采用标准总线的优点:
- 简化系统设计
- 简化系统结构,提高系统可靠性
- 便于系统的扩充和更新
- 总线带宽:总线本身所能达到的最高传输速率。
- 一次操作可以传输的数据位数
- 如S100为8位,ISA为16位,EISA为32位,PCI-2可达64位。
- 总线宽度不会超过微处理器外部数据总线的宽度。
- 单位MB/s
6.1.2 总线的连接方式
- 适配器(接口):实现高速CPU与低速外设之间工作速度上的匹配和同步,并完成计算机和外设之间的所有数据传送和控制。
- 速度匹配和同步
- 电平转换
- 串并转换
- 单机系统中总线结构的两种基本类型:
- 单总线:使用一条单一的系统总线来连接CPU、内存和I/O设备。
- 多总线:在CPU、主存、I/O之间互联采用多条总线。
单总线:
- 单总线结构特点:
- 在单总线结构中,要求连接到总线上的逻辑部件必须高速运行,以便在某些设备需要使用总线时,能迅速获得总线控制权;而当不再使用总线时,能迅速放弃总线控制权。否则,由于一条总线由多种功能部件共用,可能导致很大的时间延迟。
多总线:
- 高速的CPU总线:CPU和cache之间采用
- 系统总线:主存连在其上。
- 高速总线上可以连接高速LAN(100Mb/s局域网)、视频接口、图形接口、SCSI接口(支持本地磁盘驱动器和其他外设)、Firewire接口(支持大容量I/O设备)。高速总线通过扩充总线接口与扩充总线相连,扩充总线上可以连接串行方式工作的I/O设备。
- 通过桥CPU总线、系统总线和高速总线彼此相连。桥实质上是一种具有缓冲、转换、控制功能的逻辑电路。
- 多总线结构体现了高速、中速、低速设备连接到不同的总线上同时进行工作,以提高总线的效率和吞吐量,而且处理器结构的变化不影响高速总线。
6.1.3 总线的内部结构
- 早期总线的内部结构如图所示,它实际上是处理器芯片引脚的延伸,是处理器与I/O设备适配器的通道。
- 这种简单的总线一般也由50~100条线组成,这些线按其功能可分为三类:地址线、数据线 和 控制线。
- 早期总线结构的不足之处在于:
- CPU是总线上惟一的主控者。即使后来增加了具有简单仲裁逻辑的DMA控制器以支持DMA传送,但仍不能满足多CPU环境的要求。
- 总线信号是CPU引脚信号的延伸,故总线结构紧密与CPU相关,通用性较差。
6.1.4 当代流行的总线内部结构
- 当代流行的总线内部结构
- 数据传送总线:由地址线、数据线、控制线组成。
- 其结构与简单总线相似,但一般是32条地址线,32或64条数据线。
- 为了减少布线,64位数据的低32位数据线常常和地址线采用多路复用方式。
- 仲裁总线:包括总线请求线和总线授权线。
- 中断和同步总线:用于处理带优先级的中断操作,包括中断请求线和中断认可线。
- 公用线:包括时钟信号线、电源线、地线、系统复位线以及加电或断电的时序信号线等。
6.1.5总线结构实例
- 大多数计算机采用了分层次的多总线结构。
- 右图它是一个三层次的多总线结构即有CPU总线、PCI总线和ISA总线。
6.2 总线接口
6.2.1 信息传送方式
- 计算机系统中,传输信息基本有三种方式:
- 串行传送
- 并行传送
- 分时传送
- 出于速度和效率上的考虑,系统总线上传送的信息必须采用并行传送方式。分时传送即总线的分时复用。
- 串行传送
- 使用一条传输线,采用脉冲传送。
- 主要优点是只需要一条传输线,这一点对长距离传输显得特别重要,不管传送的数据量有多少,只需要一条传输线,成本比较低廉。
- 缺点就是速度慢。
- 并行传送
- 每一数据位需要一条传输线,一般采用电位传送。
- 分时传送
- 总线复用或是共享总线的部件分时使用总线
6.2.2 总线接口的基本概念
- 接口是CPU和主存、外设之间通过总线进行连接的逻辑部件。
- 接口的典型功能:控制、缓冲、状态、转换、整理、程序中断。
- 一个适配器的两个接口:一个同系统总线相连,采用并行方式,另外一个同设备相连,可能采用并行方式或是串行方式。 (p198)
6.3 总线的仲裁
- 连接到总线上的功能模块有主动和被动两种形态,其中主方可以启动一个总线周期,而从方只能响应主方请求。
- 每次总线操作,只能有一个主方,但是可以有多个从方。
- 为了解决多个功能模块争用总线的问题,必须设置总线仲裁部件。
- 总线占用期:主方持续控制总线的时间。
- 按照总线仲裁电路的位置不同,仲裁方式分为集中式和分布式两种。
6.3.1 集中式仲裁
- 集中式仲裁有三种:链式查询方式、计数器定时查询方式、独立请求方式
- 链式查询方式:
- 离中央仲裁器最近的设备具有最高优先权,离总线控制器越远,优先权越低。
- 优点:
- 只用很少几根线就能按一定优先次序实现总线控制,
- 并且这种链式结构很容易扩充设备。
- 缺点:是对询问链的电路故障很敏感,优先级固定。
- 计数器定时查询方式:
- 总线上的任一设备要求使用总线时,通过BR线发出总线请求。
- 中央仲裁器接到请求信号以后,在BS线为“0”的情况下让计数器开始计数,计数值通过一组地址线发向各设备。
- 每个设备接口都有一个设备地址判别电路,当地址线上的计数值与请求总线的设备地址相一致时,该设备 置“1”BS线,获得了总线使用权,此时中止计数查询。
- 每次计数可以从“0”开始,也可以从中止点开发始。
- 如果从“0”开始,各设备的优先次序与链式查询法相同,优先级的顺序是固定的。
- 如果从中止点开始,则每个设备使用总线的优级相等。计数器的初值也可用程序来设置,
- 这可以方便地改变优先次序,但这种灵活性是以增加线数为代价的。
- 可方便的改变优先级。
- 独立请求方式:
- 在独立请求方式中,每一个共享总线的设备均有一对总线请求线BRi和总线授权线BGi。
- 当设备要求使用总线时,便发出该设备的请求信号。总线仲裁器中有一个排队电路,它根据一定的优先次序决定首先响应哪个设备的请求,给设备以授权信号BGi。
- 独立请求方式的优点是响应时间快,即确定优先响应的设备所花费的时间少,用不着一个设备接一个设备地查询。
- 其次,对优先次序的控制相当灵活。它可以预先固定,例如BR0优先级最高,BR1次之…BRn最低;也可以通过程序来改变优先次序;还可以用屏蔽(禁止)某个请求的办法,不响应来自无效设备的请求。
- 因此当代总线标准普遍采用独立请求方式。
- 优点:
- 是响应时间快,即确定优先响应的设备所花费的时间少。
- 对优先次序的控制也是相当灵活的。
6.3.2 分布式仲裁
- 分布式仲裁:
- 不需要中央仲裁器,而是多个仲裁器竞争使用总线。
- 当它们有总线请求时,把它们唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上得到的号与自己的号进行比较。
- 如果仲裁总线上的号大,则它的总线请求不予响应,并撤消它的仲裁号。
- 最后,获胜者的仲裁号保留在仲裁总线上。
- 显然,分布式仲裁是以优先级仲裁策略为基础。
- 分布式仲裁示意图:
- (1)所有参与本次竞争的各主设备将设备竞争号CN取反后打到仲裁总线AB上,以实现“线或”逻辑。AB线低电平时表示至少有一个主设备的CNi为1,AB线高电平时表示所有主设备的CNi为0。
- (2)竞争时CN与AB逐位比较,从最高位(b7)至最低位(b0)以一维菊花链方式进行,只有上一位竞争得胜者Wi+1位为1。当CNi=1,或CNi=0且ABi为高电平时,才使Wi位为1。若Wi=0时,将一直向下传递,使其竞争号后面的低位不能送上AB线。
- (3)竞争不到的设备自动撤除其竞争号。在竞争期间,由于W位输入的作用,各设备在其内部的CN线上保留其竞争号并不破坏AB线上的信息。
- (4)由于参加竞争的各设备速度不一致,这个比较过程反复(自动)进行,才有最后稳定的结果。竞争期的时间要足够,保证最慢的设备也能参与竞争。
6.4总线的定时和数据传送模式
6.4.1 总线的定时
- 总线的信息传送过程:请求总线、总线仲裁、寻址、信息传送、状态返回。
- 定时:事件出现在总线上的时序关系。
- 同步定时:
- 异步定时:
- 同步定时:
6.4.2 总线数据传输模式
- 读、写操作:
- 读操作是由从方到主方的数据传送;写操作是由主方到从方的数据传送。
- 一般,主方先以一个总线周期发出命令和从方地址,经过一定的延时再开始数据传送总线周期。
- 为了提高总线利用率,减少延时损失,主方完成寻址总线周期后可让出总线控制权,以使其他主方完成更紧迫的操作。
- 然后再重新竞争总线,完成数据传送总线周期。
- 块传送操作:
- 只需给出块的起始地址,然后对固定块长度的数据一个接一个地读出或写入。
- 对于CPU(主方)存储器(从方)而言的块传送,常称为猝发式传送,其块长一般固定为数据线宽度(存储器字长)的4倍。
- 例如一个64位数据线的总线,一次猝发式传送可达256位。这在超标量流水中十分有用。
- 写后读、读修改写操作:
- 这是两种组合操作。只给出地址一次(表示同一地址),或进行先写后读操作,或进行先读后写操作。
- 前者用于校验目的,后者用于多道程序系统中对共享存储资源的保护。
- 这两种操作和猝发式操作一样,主方掌管总线直到整个操作完成。
- 广播、广集操作:
- 一般而言,数据传送只在一个主方和一个从方之间进行。
- 但有的总线允许一个主方对多个从方进行写操作,这种操作称为广播。
- 与广播相反的操作称为广集,它将选定的多个从方数据在总线上完成AND或OR操作,用以检测多个中断源。
- 演示过程:
6.5 HOST总线和PCI总线
6.5.1 多总线结构
- 如图,典型的多总线结构框图。实际上,这也是高档PC机和服务器的主板总线框图。
- HOST总线:该总线有CPU总线、系统总线、主存总线、前端总线等多种名称,各自反映了总线功能的一个方面。这里称“宿主”总线,也许更全面,因为HOST总线不仅连接主存,还可以连接多个CPU。
- HOST总线:连接“北桥”芯片与CPU之间的信息通路,它是一个64位数据线和32位地址线的同步总线。32位的地址线可支持处理器4GB的存储寻址空间。总线上还接有L2级cache,主存与cache控制器芯片。后者用来管理CPU对主存和cache的存取操作。CPU拥有HOST总线的控制权,但在必要情况下可放弃总线控制权。
- PCI总线:连接各种高速的PCI设备。PCI是一个与处理器无关的高速外围总线,又是至关重要的层间总线。它采用同步时序协议和集中式仲裁策略,并具有自动配置能力。PCI设备可以是主设备,也可以是从设备,或兼而有之。在PCI设备中不存在DMA(直接存储器传送)的概念,这是因为PCI总线支持无限的猝发式传送。这样,传统总线上用DMA方式工作的设备移植到PCI总线上时,采用主设备工作方式即可。系统中允许有多条PCI总线,它们可以使用HOST桥与HOST总线相连,也可使用PCI/PCI桥与已和HOST总线相连的PCI总线相连,从而得以扩充PCI总线负载能力。
- LAGACY总线:可以是ISA,EISA,MCA等这类性能较低的传统总线,以便充分利用市场上丰富的适配器卡,支持中、低速I/O设备。
- 在PCI总线体系结构中有三种桥。其中HOST桥又是PCI总线控制器,含有中央仲裁器。桥起着重要的作用,它连接两条总线,使彼此间相互通信。桥又是一个总线转换部件,可以把一条总线的地址空间映射到另一条总线的地址空间上,从而使系统中任意一个总线主设备都能看到同样的一份地址表。
- 桥本身的结构可以十分简单,如只有信号缓冲能力和信号电平转换逻辑,也可以相当复杂,如有规程转换、数据快存、装拆数据等。
6.5.2 PCI总线信号
- PCI总线的基本传输机制是猝发式传送,利用桥可以实现总线间的猝发式传送。写操作时,桥把上层总线的写周期先缓存起来,以后的时间再在下层总线上生成写周期,即延迟写。读操作时,桥可早于上层总线,直接在下层总线上进行预读。无论延迟写和预读,桥的作用可使所有的存取都按CPU的需要出现在总线上。
6.5.3 总线周期类型
- PCI总线周期由当前被授权的主设备发起。PCI支持任何主设备和从设备之间点到点的对等访问,也支持某些主设备的广播读写。
- 存储器读/写总线周期
- 存储器写和使无效周期
- 特殊周期
- 配置读/写周期
6.5.4 总线周期操作
- PCI总线周期的操作过程有如下特点:
- 采用同步时序协议。总线时钟周期以上跳沿开始,半个周期高电平,半个周期低电平。总线上所有事件,即信号电平转换出现在时钟信号的下跳沿时刻,而对信号的采样出现在时钟信号的上跳沿时刻。
- 总线周期由被授权的主方启动,以帧FRAME#信号变为有效来指示一个总线周期的开始。
- 一个总线周期由一个地址期和一个或多个数据期组成。在地址期内除给出目标地址外,还在C/BE#线上给出总线命令以指明总线周期类型。
- 地址期为一个总线时钟周期,一个数据期在没有等待状态下也是一个时钟周期。一次数据传送是在挂钩信号IRDY#和TRDY#都有效情况下完成,任一信号无效(在时钟上跳沿被对方采样到),都将加入等待状态。
- 总线周期长度由主方确定。在总线周期期间FRAME#持续有效,但在最后一个数据期开始前撤除。即以FRAME#无效后,IRDY#也变为无效的时刻表明一个总线周期结束。由此可见,PCI的数据传送以猝发式传送为基本机制,单一数据传送反而成为猝发式传送的一个特例。并且PCI具有无限制的猝发能力,猝发长度由主方确定,没有对猝发长度加以固定限制。
- 主方启动一个总线周期时要求目标方确认。即在FRAME#变为有效和目标地址送上AD线后,目标方在延迟一个时钟周期后必须以DEVSEL#信号有效予以响应。否则,主设备中止总线周期。
- 主方结束一个总线周期时不要求目标方确认。目标方采样到FRAME#信号已变为无效时,即知道下一数据传送是最后一个数据期。目标方传输速度跟不上主方速度,可用TRDY#无效通知主方加入等待状态时钟周期。当目标方出现故障不能进行传输时,以STOP#信号有效通知主方中止总线周期。
6.5.5 总线仲裁
- PCI总线采用集中式仲裁方式,每个PCI主设备都有独立的REQ#(总线请求)和GNT#(总线授权)两条信号线与中央仲裁器相连。由中央仲裁器根据一定的算法对各主设备的申请进行仲裁,决定把总线使用权授予谁。但PCI标准并没有规定仲裁算法。
6.6 InfiniBand标准
【 第六章 总结 】
- 总线是构成计算机系统的互联机构,是多个系统功能部件之间进行数据传送的公共通道,并在争用资源的基础上进行工作。
- 总线有物理特性、功能特性、电气特性、机械特性,因此必须标准化。
- 微型计算机系统的标准总线从ISA总线(16位,带宽8MB/s)发展到EISA总线(32位,带宽33.3MB/s)和VESA总线(32位,带宽132MB/s),又进一步发展到PCI总线(64位,带宽264MB/s)。
- 衡量总线性能的重要指标是总线带宽,它定义为总线本身所能达到的最高传输速率。
- 当代流行的标准总线追求与结构、CPU、技术无关的开发标准。其总线内部结构包含:
- ①数据传送总线(由地址线、数据线、控制线组成);
- ②仲裁总线;
- ③中断和同步总线;
- ④公用线(电源、地线、时钟、复位等信号线)。
- 计算机系统中,根据应用条件和硬件资源不同,信息的传输方式可采用:
- ①并行传送;
- ②串行传送;
- ③ 复用传送。
- 各种外围设备必须通过I/O接口与总线相连。I/O接口是指CPU、主存、外围设备之间通过总线进行连接的逻辑部件。接口部件在它动态联结的两个功能部件间起着缓冲器和转换器的作用,以便实现彼此之间的信息传送。
- 总线仲裁是总线系统的核心问题之一。为了解决多个主设备同时竞争总线控制权的问题,必须具有总线仲裁部件。它通过采用优先级策略或公平策略,选择其中一个主设备作为总线的下一次主方,接管总线控制权。按照总线仲裁电路的位置不同:
- 集中式仲裁:仲裁方式必有一个中央仲裁器,它受理所有功能模块的总线请求,按优先原则或公平原则。
- 分布式仲裁。分布式仲裁不需要中央仲裁器,每个功能模块都有自己的仲裁号和仲裁器。
- 总线定时是总线系统的又一核心问题之一。为了同步主方、从方的操作,必须制订定时协议,通常采用同步定时与异步定时两种方式
- 在同步定时协议中,事件出现在总线上的时刻由总线时钟信号来确定,总线周期的长度是固定的。
- 在异步定时协议中,后一事件出现在总线上的时刻取决于前一事件的出现,即建立在应答式或互锁机制基础上,不需要统一的公共时钟信号。
- 在异步定时中,总线周期的长度是可变的。当代的总线标准大都能支持以下数据传送模式:①读/写操作;②块传送操作;③写后读、读修改写操作;④广播、广集操作。
- PCI总线是当前实用的总线,是一个高带宽且与处理器无关的标准总线,又是重要的层次总线。它采用同步定时协议和集中式仲裁策略,并具有自动配置能力。PCI适合于低成本的小系统,因此在微型机系统中得到了广泛的应用。
- InfiniBand标准,瞄准了高端服务器市场的最新I/O规范,它是一种基于开关的体系结构,可连接多达64000个服务器、存储系统、网络设备,能替代当前服务器中的PCI总线,数据传输率高达30GB/s。因此适合于高成本的较大规模计算机系统。