第六章:总线系统¶
6.1 总线的概念和结构形态¶
6.1.1 总线的基本概念¶
该节内容主要介绍了总线的基本概念,包括总线的定义、层次结构、特性、标准化以及总线带宽的计算,具体内容如下:
- 总线的定义:总线是构成计算机系统的互联机构,是在模块与模块之间或设备与设备之间传送信息、相互通信的一组公用信号线。借助总线连接,计算机各系统功能部件之间可实现地址、数据和控制信息的交换,使系统中的模块具有可互换性和可组合性,配置灵活且系统结构清晰。但总线采用分时共享方式工作,在高速系统中可能成为通信速度提高的瓶颈。
- 总线的层次结构:
- 内部总线(片内总线):连接处理器内部各寄存器及运算部件。
- 系统总线(内总线、板级总线、底板总线):用于处理器与计算机系统的存储器、通道等高速功能部件的连接。
- I/O总线(通信总线、设备总线、外总线):实现主机与I/O设备之间的连接。
- 局部总线:在复杂计算机系统(如台式计算机)中,可在系统总线与处理器之间增加,中央处理器私有的存储器和一些高速外设可通过它直接与处理器交互信息。
- 总线的特性:
- 物理特性:指总线的物理连接方式,包括总线的根数,插头、插座的形状,引脚线的排列方式等。
- 功能特性:描述总线中每一根线的功能。如地址总线宽度决定了总线能直接访问存储器的地址空间范围;数据总线宽度决定了访问一次存储器或外设时能交换数据的位数;控制总线包含CPU发出的控制命令、请求信号、仲裁信号等多种信号 。
- 电气特性:定义每一根线上信号的传递方向及有效电平范围。例如地址总线是输出线且高电平有效,数据总线是双向传送且高电平有效,控制总线中各条线单向,电平有效性有高有低。
- 时间特性:定义每根线在什么时间有效,规定总线上各信号有效的时序关系,确保CPU正确使用总线。
- 总线的标准化:不同厂家生产的相同功能部件能互换使用,是因为遵守了相同的系统总线要求。例如微型计算机系统中,从ISA总线发展到EISA总线,再到VESA总线,最后到PCI总线,其位宽和带宽不断提升 。总线带宽是衡量总线性能的重要指标,它定义为总线本身所能达到的最高传输速率,实际带宽会受总线布线长度、驱动器/接收器性能、连接模块数等因素影响。通过公式Dr = D×f(其中Dr表示总线带宽,D表示一个总线周期传送的数据量,f表示总线时钟频率)可计算总线带宽,如例6.1中,(1)某总线在一个总线周期并行传送4字节数据,总线时钟频率为33MHz时,总线带宽为132MB/s;(2)一个总线周期并行传送64位(8B)数据,总线时钟频率升为66MHz时,总线带宽为528MB/s。
6.1.2 总线的连接方式¶
该部分内容主要介绍了总线的连接方式,包括单总线结构和多总线结构,具体内容如下:
- 总线连接方式的必要性:由于外围设备种类繁多且速度各异,不能直接连接在CPU上,通常使用适配器(接口)来实现高速CPU与低速外设之间工作速度的匹配和同步,以及完成数据传送和控制。大多数总线构成方式相似,但数据线、地址线宽度和控制线数量及功能存在差异,总线的排列布置和连接方式对计算机系统性能十分重要。
- 单总线结构:
- 定义与特点:在许多单处理器计算机中,使用单一系统总线连接CPU、主存和I/O设备的结构称为单总线结构。这种结构要求连接的逻辑部件能高速运行,迅速获取和放弃总线控制权,否则会产生较大时间延迟。
- 工作过程:在取指令时,CPU将程序计数器PC中的地址与控制信息送至总线,该地址会同时传至主存和所有外围设备,对应地址的设备执行数据传送操作。在单总线系统中,对输入/输出设备的操作和主存操作方式相同,CPU根据指令地址字段确定是与主存还是外围设备进行数据传送,数据传送方向由指令操作码决定。此外,某些外围设备也可指定地址,占有总线后与主存进行直接存储器传送 。
- 扩展性:单总线结构容易扩展成多CPU系统。
- 多总线结构:单总线系统中所有设备挂在同一总线且只能分时工作,限制了信息传送效率和吞吐量。多总线系统结构应运而生,在这种结构中,CPU、存储器控制器和PCI - E桥等通过接口与高速前端总线(FSB)相连,总线桥扩展出不同层次的总线连接高速、中速和低速设备。多总线结构确保不同速度的设备能同时工作,提高了总线的效率和吞吐量,且处理器结构变化不影响高速总线。
6.1.3 总线的内部结构¶
该节内容主要介绍了总线的内部结构,包括早期总线和当代总线的内部结构,以及各自的特点,具体内容如下:
- 早期总线的内部结构:早期总线是处理器芯片引脚的延伸,是处理器与I/O设备适配器的通道,由50 - 100条信号线组成,按功能分为地址线(单向,传送主存与设备的地址)、数据线(双向,传送数据)和控制线(单向,指明数据传送方向、中断控制和定时控制等) 。不过,早期总线结构存在不足:
- 主控者单一:CPU是总线上唯一的主控者,虽增加DMA控制器支持DMA传送,但仍无法满足多CPU环境的需求。
- 通用性差:总线信号是CPU引脚信号的延伸,与CPU紧密相关,通用性欠佳。
- 当代总线的内部结构:当代流行的总线是标准总线,追求与结构、CPU、技术无关的开发标准,以满足多CPU的主控者环境需求。在当代总线结构中,CPU和其私有cache作为一个模块与总线相连,系统中可存在多个这样的处理器模块,由总线控制器负责多个总线请求者之间的协调与仲裁。整个总线分为四部分:
- 数据传送总线:由地址线、数据线、控制线组成,与早期简单总线结构相似,但信号条数较多,为减少引脚数量,64位数据的低32位数据线常和地址线采用多路复用方式。
- 仲裁总线:包含总线请求线和总线授权线,用于协调总线使用请求。
- 中断和同步总线:用于处理带优先级的中断操作,有中断请求线和中断认可线。
- 公用线:包括时钟信号线、电源线、地线、系统复位线以及加电或断电的时序信号线等。
6.2 总线接口¶
6.2.1 信息传送方式¶
该节主要介绍了计算机系统中信息在总线上的传送方式,包括串行传送和并行传送,具体内容如下:
- 信息传送方式概述:计算机系统中,传输信息一般采用串行传送或并行传送两种方式,出于速度和效率考虑,系统总线上通常采用并行传送方式。数字计算机用二进制数表示信息,可通过电位高低或脉冲有无来呈现,电位高或有脉冲表示“1”,反之表示“0”。
- 串行传送:
- 传送原理:串行传送仅用一条传输线,以脉冲形式按顺序逐位传送表示数码的所有二进制位,一般低位在前,高位在后。例如传送8比特数据就需要8个位时间。
- 时序格式:当连续出现多个“0”时,为确定“0”的个数,需采用指定位时间的时序格式,位时间由同步脉冲体现 。
- 数据变换:在发送部件,数据需进行并 - 串变换(拆卸);在接收部件,则要进行串 - 并变换(装配)。
- 优点:串行传送的主要优点是仅需一条传输线,成本低廉,适合长距离传输。
- 并行传送:并行传送是对每个数据位都单独使用一条传输线,信息的所有二进制位同时进行传送。比如传送8位二进制数据(1字节)就需要8条线,如使用32条单独的地址线,可从CPU的地址寄存器同时传送32位地址信息给主存。并行传送一般采用电位传送,相比串行传送,理论上速度快很多 。
6.2.2 总线接口的基本概念¶
该节主要介绍了总线接口的基本概念,包括其定义、功能、分类等内容,具体如下:
- 总线接口的定义:I/O功能模块即I/O接口,也叫适配器,是CPU、主存和外围设备通过系统总线连接的标准化逻辑部件,在相连的两个部件间起“转换器”作用,实现信息传送。外围设备自带设备控制器,通过I/O接口与CPU进行信息交互,由于设备多样且速度不同,接口逻辑需标准化。
- 总线接口的功能:
- 控制:依据指令信息控制外围设备动作,如启动、关闭设备。
- 缓冲:作为缓冲器,弥补设备与计算机系统其他部件间的速度差异。
- 状态:监视外围设备工作状态并保存“准备就绪”“忙”“错误”等状态信息,供CPU分析。
- 转换:完成数据转换,如并 - 串或串 - 并转换,确保数据正确传送。
- 整理:可执行特殊功能,如修改字计数器或当前内存地址寄存器。
- 程序中断:当外围设备向CPU请求动作时,接口模块向CPU发送中断请求信号,如设备操作完成或出现错误时。
- 总线接口的分类:一个I/O接口模块有与系统总线的接口(CPU与I/O接口模块数据交换为并行方式)和与外设的接口(与外设的数据交换可能是并行或串行方式)。根据与外设数据交换方式,I/O接口模块分为串行数据接口和并行数据接口两大类。
- 波特率的计算示例:以串行方式传送字符为例,介绍波特率的概念及计算方法。如数据传送速率为120字符/秒,每个字符格式含10比特位(起始位、停止位、8个数据位),则波特率为10位×120/秒 = 1200波特,每个比特位占用时间为波特率的倒数,即1/1200 = 0.833(ms)。
6.3 总线仲裁¶
该节主要介绍了总线仲裁的相关内容,包括总线仲裁的原因、仲裁策略以及仲裁方式,具体如下:
- 总线仲裁的原因:连接在总线上的功能模块有主方(如CPU模块,可启动总线周期 )和从方(如存储器模块,只能响应主方请求 )之分。除CPU模块外,I/O模块也能提出总线请求。为解决多个主设备同时竞争总线控制权的问题,需要总线仲裁部件来选择其中一个主设备作为总线的下一次主方。
- 仲裁策略:一般采用优先级或公平策略对多个主设备的总线请求进行仲裁。例如在多处理器系统中,对各CPU模块的总线请求采用公平原则处理,对I/O模块的总线请求采用优先级策略。被授权的主方在当前总线业务结束后,接管总线控制权开始新的信息传送,主方控制总线的时间称为总线占用期。
- 仲裁方式:按照总线仲裁电路的位置不同,仲裁方式分为两类:
- 集中式仲裁:仲裁电路集中在一处,常见的有链式查询方式、计数器定时查询方式和独立请求方式等。这些方式各有特点,例如链式查询方式简单,但优先级固定;计数器定时查询方式优先级可变化;独立请求方式响应速度快,但硬件复杂 。
- 分布式仲裁:仲裁电路分布在各个主设备中,每个主设备都有自己的仲裁逻辑,通过竞争来获得总线控制权。这种方式不需要中央仲裁器,可靠性较高,但控制逻辑相对复杂 。
6.3.1 集中式仲裁¶
该节主要介绍了集中式仲裁的概念、三种常见方式(链式查询方式、计数器定时查询方式、独立请求方式)及其特点,还提到总线仲裁器在单处理器系统总线中的情况,具体如下:
- 集中式仲裁的概念:集中式仲裁是总线仲裁的一种方式,在这种方式下,每个功能模块都有两条线连接到总线控制器,分别是总线请求信号线BR(功能模块向仲裁器发送请求的线路)和总线授权信号线BG(仲裁器向功能模块送出授权的线路 )。
- 集中式仲裁的方式:
- 链式查询方式:为减少总线授权线数量采用菊花链查询,总线授权信号BG串行地从一个I/O接口传送到下一个I/O接口。若到达的接口无请求则继续传递,有请求则该接口获得总线控制权。离总线仲裁器最近的设备优先级最高,越远越低。优点是用很少几根线就能按优先次序实现总线仲裁,且容易扩充设备;缺点是对询问链的电路故障敏感,优先级固定可能导致优先级低的设备长期无法使用总线。
- 计数器定时查询方式:总线上设备通过BR线发出请求,总线仲裁器在BS线为“0”时让计数器开始计数,计数值通过地址线发向各设备。设备地址判别电路判断计数值与自身地址是否一致,一致则该设备置“1”BS线获得总线使用权并中止计数查询。计数可从“0”或中止点开始,前者优先级顺序固定,后者各设备使用总线优先级相等,还可用程序设置计数器初值改变优先次序,这种灵活性是以增加线数为代价的。
- 独立请求方式:每个共享总线的设备都有一对总线请求线BRi和总线授权线BGi。设备请求时发出信号,总线仲裁器中的排队电路根据优先次序决定响应哪个设备的请求并给予授权。优点是响应时间快,对优先次序的控制灵活,可预先固定、通过程序改变或屏蔽某个请求,当代总线标准普遍采用这种方式。
- 总线仲裁器:在单处理器系统总线中,总线仲裁器又称为总线控制器,一般是CPU的一个单独功能模块 。
6.3.2 分布式仲裁¶
该节内容主要介绍了分布式仲裁的概念、逻辑结构及工作要点,具体如下:
- 分布式仲裁的概念:分布式仲裁是一种总线仲裁方式,它不需要集中的总线仲裁器,每个潜在的主方功能模块都有自己的仲裁号和仲裁器。当主方功能模块有总线请求时,会把自身唯一的仲裁号发送到共享的仲裁总线上,各仲裁器将总线上的仲裁号与自己的进行比较。若总线上的号大,该模块的总线请求不予响应,且撤销自身仲裁号,最终获胜者的仲裁号会保留在仲裁总线上,这种仲裁方式基于优先级仲裁策略。
- 分布式仲裁的逻辑结构与工作要点:
- “线或”逻辑实现:参与竞争的各主设备(如8个)将设备竞争号CN取反后打到仲裁总线AB上,实现“线或”逻辑。AB线低电平表示至少有一个主设备的CNi为1,高电平表示所有主设备的CNi为0 。
- 竞争号逐位比较:竞争时CN与AB逐位从最高位(b7)至最低位(b0)以一维菊花链方式比较,只有上一位竞争得胜者Wi + 1位为1时才继续比较。当CNi = 1,或CNi = 0且ABi为高电平时,Wi位为1。若Wi = 0,则竞争号后面的低位不能送上AB线。
- 竞争号撤除机制:竞争不到的设备会自动撤除其竞争号,在竞争期间,各设备在其内部的CN线上保留竞争号,不会破坏AB线上的信息。
- 竞争过程与时间:由于各设备速度不同,比较过程会自动反复进行,直至得出稳定结果。竞争期的时间要足够长,以确保最慢的设备也能参与竞争。
6.4 总线的定时和数据传送模式¶
6.4.1 总线的定时¶
该节主要介绍了总线定时的概念以及数据传送过程中采用的四种定时协定,具体内容如下:
- 总线定时的概念:总线定时是指事件出现在总线上的时序关系。总线的一次信息传送过程大致分为请求总线、总线仲裁、寻址、信息传送、状态返回(或错误报告)五个阶段。为同步主方、从方操作,需要制订定时协定。
- 同步总线定时协定:
- 工作原理:在同步定时协议中,事件出现在总线上的时刻由总线时钟信号确定,一次I/O传送称为时钟周期或总线周期。例如在总线读周期,CPU在第1个时钟周期将存储器地址放到地址线上,第2个时钟周期发出读命令,存储器经一个时钟周期延迟后将数据和认可信息放到总线上被CPU读取;总线写周期时,CPU在第2个时钟周期开始将数据放到数据线上,之后发出写命令,存储器在第3个时钟周期存入数据。
- 特点及适用场景:同步定时具有较高的传输频率,适用于总线长度较短、各功能模块存取时间比较接近的情况。因为同步方式按最慢的模块设计公共时钟,当各功能模块存取时间相差很大时,会降低总线效率。
- 异步总线定时协定:
- 工作原理:异步定时协议中,后一事件出现在总线上的时刻取决于前一事件的出现时刻,基于应答式或互锁机制,不需要统一的公共时钟信号,总线周期长度可变 。如系统总线读周期,CPU发送地址信号和读状态信号,之后发出读命令,存储器模块进行地址译码并将数据放到数据线上,数据稳定后使确认线有效通知CPU,CPU读取数据后撤销读状态信号,进而存储器撤销数据和确认信号,最后确认信号撤销使CPU撤销地址信息;写周期时,CPU将数据放到数据线上,启动状态线和地址线,存储器接受写命令写入数据并使确认线有效,然后CPU撤销写命令,存储器撤销确认信号。
- 特点及适用场景:异步定时的优点是总线周期长度可变,允许快速和慢速的功能模块都能连接到同一总线上,但会增加总线的复杂性和成本。
- 半同步总线定时协定:
- 工作原理:半同步总线在同步总线定时协定基础上改动,整体采用同步操作方式,总线周期是时钟周期的整数倍,增加一根联络信号线(如READY或nWAIT)来决定是否增加时钟周期。基本的总线传输周期由T1到T4四个时钟周期构成,若某个设备来不及在四个时钟周期内完成总线操作,可使READY信号无效(或nWAIT信号有效)以增加时钟周期数,总线控制逻辑在T3前沿检测READY引脚状态。
- 特点及适用场景:半同步总线协定在同步总线协定的基础上增加的成本较少,但适应能力大大提升,现代许多同步总线都已扩展为半同步总线。
- 周期分裂式总线定时协定:
- 工作原理:针对同步总线读操作中存储器准备数据时总线资源被浪费的问题,周期分裂式总线定时协定将每个读周期分为三步,分解成两个分离的传输子周期。第一个子周期主方发送地址和命令后与总线断开,第二个子周期被读出设备申请总线使用权后发送数据;写周期只需第一个子周期即可完成。
- 特点及适用场景:在这种协定中,读数据的双方都是总线主方,它以硬件复杂度的提高换取总线性能的提升,适用于对总线性能要求非常高的系统。
6.4.2 总线数据传送模式¶
该节主要介绍了当代总线标准支持的四类数据传送模式,具体内容如下:
- 读、写操作:读操作是从方到主方的数据传送,写操作是主方到从方的数据传送。通常主方先在一个总线周期发出命令和从方地址,延时后开始数据传送总线周期。为提高总线利用率,主方完成寻址后可让出总线控制权,之后重新竞争总线完成数据传送。
- 块传送操作:只需给出块的起始地址,就能按固定块长度依次读出或写入数据。对于CPU(主方) - 存储器(从方)的块传送,常称为突发(猝发)式传送,块长一般是数据线宽度(存储器字长)的4倍。例如64位数据线的总线,一次猝发式传送可达256位,在超标量流水中很有用。
- 写后读、读修改写操作:这是两种组合操作,只给出一次地址(表示同一地址),可以进行先写后读操作(用于校验目的)或先读后写操作(用于多道程序系统中对共享存储资源的保护) 。和猝发式操作一样,主方在整个操作完成前都掌管总线。
- 广播、广集操作:一般数据传送在一个主方和一个从方之间进行,但有的总线允许特殊操作。广播是一个主方对多个从方进行写操作;广集则与广播相反,它将选定的多个从方数据在总线上完成AND或OR操作,用于检测多个中断源。
6.5 PCI 总线和 PCIe 总线¶
6.5.1 主板总线的多总线结构¶
该节主要介绍了PC机和服务器主板总线的多总线结构,包含HOST总线、PCI总线、LEGACY总线以及桥的相关内容,具体如下:
- 多总线结构中的总线类型:
- HOST总线:也叫CPU总线、系统总线等,是连接北桥芯片与CPU的信息通路,为64位数据线和32位地址线的同步总线,支持4GB存储寻址空间 。总线上连接着L2级cache、主存与cache控制器芯片,CPU拥有其控制权,但必要时可放弃。
- PCI总线:用于连接各种高速PCI设备,是与处理器无关的高速外围和层间总线。采用同步时序协议和集中式仲裁策略,具备自动配置能力。PCI设备无DMA概念,支持无限猝发式传送,传统DMA设备移植到该总线上可采用主设备工作方式。系统中可有多条PCI总线,通过HOST桥或PCI/PCI桥与其他总线相连,扩充负载能力。
- LEGACY总线:包含ISA、EISA、MCA等性能较低的传统总线,用于连接中、低速I/O设备,充分利用市场上丰富的适配器卡。
- 桥在多总线结构中的作用:在PCI总线体系结构中有三种桥,HOST桥还是PCI总线控制器,含有中央仲裁器。桥连接两条总线,实现彼此间的通信,还能进行总线地址空间的映射,让系统中任意总线主设备看到相同地址表。其结构可简单(仅含信号缓冲和电平转换逻辑),也可复杂(具备规程转换、数据缓存、装拆数据等功能 )。
- PCI总线结构的优势:以桥连接的PCI总线结构,扩充性和兼容性良好,允许多条总线并行工作,且与处理器无关,只要有相应的HOST桥芯片(组),不同类型的CPU都能与PCI总线相连。PCI总线基本传输机制是猝发式传送,桥可实现总线间的猝发式传送,还能进行延迟写和预读操作,使存取按CPU需求出现在总线上。
6.5.2 PCI 总线信号¶
该节主要介绍了PCI总线信号的相关内容,包括PCI总线的基本特性、必备信号的功能、总线周期的组成与控制,以及可选类信号线和工作电压,具体如下:
- PCI总线基本特性:PCI标准2.0版采用32 - 64位数据线和32位地址线,这些数据线和地址线分时复用。使用同步时序协议,总线时钟为33.3MHz的方波信号,总线事件在时钟信号下跳沿出现,采样在时钟信号上跳沿进行。采用集中式仲裁方式,每个PCI主设备通过REQ#(总线请求)和GNT#(总线授权)两条信号线与中央仲裁器相连,信号名称后的“#”表示低电平有效。
- PCI总线必备信号功能:
- 时钟与复位信号:CLK为总线时钟线,提供同步时序基准;RST#为复位信号线,可强制所有PCI寄存器、排序器和信号到初始态。
- 数据与地址信号:AD[31—0]是地址和数据复用线;C/BE#[3—0]是总线命令和字节有效复用线,在地址期发送4位总线命令,数据期指示各字节有效与否;PAR为奇偶校验位线,对AD[31—0]和C/BE[3—0]#实施偶校验。
- 控制信号:FRAME#为帧信号,由当前主方驱动,指示总线业务开始,持续到目标方对最后一次数据传送就绪;IRDY#为主方就绪信号,表明写时数据已在AD线上,读时主方准备好接收数据;TRDY#为目标方就绪信号,表明写时目标方准备好接收数据,读时有效数据已在AD线上;STOP#为停止信号,目标方用它要求主方中止当前总线业务;LOCK#为锁定信号,指示总线业务的不可分割性;DEVSEL#为设备选择信号,目标设备被选中时驱动此信号,也可作为输入线表明总线上某个设备被选中;IDSEL#为初始化设备选择信号,读写配置空间时用作芯片选择(此时不需地址译码)。
- 仲裁信号:REQ#为总线请求信号,由潜在主方送往中央仲裁器;GNT#为总线授权信号,由中央仲裁器送往主设备,使其成为下一总线主方。
- 错误报告信号:PERR#为奇偶错报告信号;SERR#为系统错误报告信号,包括地址奇偶错和其他非奇偶错的系统严重错误 。
- 总线周期:总线周期由一个地址期和一个或多个数据期组成。总线周期类型由C/BE#线上的总线命令给出,长度由周期类型和FRAME#、IRDY#、TRDY#、STOP#等信号控制。启动总线周期的主设备在地址期送出总线命令和目标设备地址,目标设备以DEVSEL#信号响应。
- 可选类信号线与工作电压:除必备信号外,还有16种可选类信号线,除一组用于扩充到64位传送外,其他三组分别用于cache一致性支持、中断请求、测试与边界扫描,其中中断请求信号线允许多个设备共享。2.0版定义了5V和3.3V两种信号环境,更新版本均使用3.3V工作电压。
6.5.3 PCI 总线周期类型¶
该节主要介绍了PCI总线周期类型的相关内容,包括发起方式、周期类型的确定方式,以及各种周期类型的特点和功能,具体如下:
- PCI总线周期的发起与类型确定:PCI总线周期由当前被授权的主设备发起,支持主设备和从设备之间点到点的对等访问以及某些主设备的广播读写。周期类型由主设备在C/BE#[3—0]线上送出的4位总线命令代码指明,目标设备译码确认后,双方协调完成指定的总线周期操作,4位代码组合理论上可指定16种总线命令,实际给出12种。
- 主要的PCI总线周期类型:
- 存储器读/写总线周期:以猝发式传送为基本机制,一次猝发式传送总线周期一般由一个地址期和一个或几个数据周期组成。其读/写操作的实现方式取决于PCI总线上的存储器控制器是否支持存储器/cache之间的PCI传输协议。若支持,通常通过cache进行;否则,以数据块非缓存方式传输。
- 存储器写和使无效周期:与存储器写周期不同,该周期不仅保证一个完整的cache行被写入,还会在总线上广播“无效”信息,使其他cache中的同一行地址变为无效。
- 特殊周期:用于主设备将信息(如状态信息)广播到多个目标方,是特殊的写操作。该操作不需要目标方以DEVSEL#信号响应,但各目标方必须立即使用此信息,且无权中止写操作过程。
- 配置读/写周期:这体现了PCI的自动配置能力。PCI有存储器、I/O、配置空间三个相互独立的物理地址空间,所有PCI设备都必须提供配置空间,多功能设备要为每个实现功能提供一个配置空间。配置空间包含256个内部寄存器,用于保存系统初始化期间的配置参数。CPU通过HOST桥的两个32位专用寄存器(配置地址、配置数据)来访问PCI设备的配置空间,HOST桥根据CPU提供的值生成PCI总线的配置读/写周期,完成配置数据的读写操作。
- 双地址周期:用于主方指示正在使用64位地址。
- 存储器读命令的分类说明:存储器读命令分为存储器读、存储器读行、存储器多重读三种类型,在有cache能力和无cache能力的存储器中的猝发长度有所不同,具体如下:
- 存储器读:在有cache能力的存储器中,猝发式读取cache行的一半或更少;在无cache能力的存储器中,猝发式读取1 - 2个存储字。
- 存储器读行:有cache能力时,猝发长度为0.5 - 3个cache行;无cache能力时,猝发长度为3 - 12个存储字 。
- 存储器多重读:有cache能力时,猝发长度大于3个cache行;无cache能力时,猝发长度大于12个存储字。
6.5.4 PCI 总线周期操作¶
该节以数据传送类总线周期为例,说明了PCI总线周期的操作过程,其特点如下:
- 同步时序协议:PCI总线采用同步时序协议,总线时钟周期以上跳沿开始,信号电平转换在时钟信号的下跳沿时刻,对信号的采样在时钟信号的上跳沿时刻。
- 总线周期启动:总线周期由被授权的主方启动,主方通过使帧FRAME#信号变为有效来指示一个总线周期的开始。
- 周期组成:一个总线周期由一个地址期和一个或多个数据期组成。在地址期,主方除了在AD线上给出目标地址外,还会在C/BE#线上给出总线命令,以此指明总线周期类型。
- 时钟周期:地址期固定为一个总线时钟周期,在无等待状态时,一个数据期也是一个时钟周期。一次数据传送需要挂钩信号IRDY#和TRDY#都有效才能完成,若任一信号无效(在时钟上跳沿被对方采样到),则会加入等待状态。
- 周期长度:总线周期长度由主方确定。在整个总线周期期间,FRAME#持续有效,但在最后一个数据期开始前撤除。当FRAME#无效后,IRDY#也变为无效时,表明一个总线周期结束。这体现了PCI的数据传送以猝发式传送为基本机制,且PCI具有无限制的猝发能力,猝发长度由主方确定 。
- 主方启动要求目标方确认:主方启动总线周期时,在FRAME#变为有效且目标地址送上AD线后,目标方需在延迟一个时钟周期后,以DEVSEL#信号有效予以响应,否则主设备将中止总线周期。
- 主方结束不要求目标方确认:主方结束总线周期时,不要求目标方确认。当目标方采样到FRAME#信号变为无效时,就知道下一数据传送是最后一个数据期。若目标方传输速度跟不上主方,可用TRDY#无效通知主方加入等待状态时钟周期;若目标方出现故障不能传输,则以STOP#信号有效通知主方中止总线周期。
6.5.5 PCI 总线仲裁¶
该节主要介绍了PCI总线仲裁的相关内容,包括仲裁方式、仲裁器的工作机制、隐藏式仲裁以及对被授权主设备的要求,具体如下:
- 仲裁方式:PCI总线采用集中式仲裁方式,每个PCI主设备都通过独立的REQ#(总线请求)和GNT#(总线授权)两条信号线与中央仲裁器相连。中央仲裁器依据特定算法对各主设备的申请进行仲裁,以决定总线使用权的归属,但PCI标准未明确规定具体仲裁算法 。
- 仲裁器工作机制:中央仲裁器不仅会对每个设备的REQ#信号线进行采样,还会对公共的FRAME#和IRDY#信号线进行采样,以此来明确当前总线的使用状态,判断总线是处于空闲状态还是处于有效的总线周期 。
- 隐藏式仲裁:PCI总线支持隐藏式仲裁,这种仲裁方式允许在主设备A占用总线期间,中央仲裁器根据指定算法裁决下一次总线的主方为设备B时,使GNT# - A无效而使GNT# - B有效。设备A在数据传送完成后应立即释放FRAME#和IRDY#信号线,之后由设备B掌管总线并开始新的总线周期。隐藏式仲裁可在总线空闲期或当前总线周期内进行裁决,无需单独的仲裁总线周期,从而提高了总线利用率。为确保信号线驱动切换时不产生冲突,中央仲裁器使GNT# - A无效与GNT# - B有效之间至少会有1个时钟周期的延迟,这一延迟时间段被称为交换期。
- 对被授权主设备的要求:被授权的主设备在提出申请并获得授权后,应在FRAME#、IRDY#线已释放的情况下,尽快启动新的总线周期操作。若从FRAME#、IRDY#信号变为无效开始,在16个时钟周期内信号仍未变为有效,中央仲裁器会将该被授权主设备认定为“死设备”,不仅会收回授权,且后续也不会再向该设备授权 。
6.5.6 PCIe 总线¶
该节主要介绍了PCIe总线的相关内容,包括其出现的背景、特点、体系结构、拓扑结构以及支持的高级特征,具体如下:
- PCIe总线出现的背景:随着计算机系统对传输性能要求的不断提升,早期的PCI总线难以满足高速显卡等高性能传输模块的需求,在此背景下,第三代的PCIe总线逐渐取代了PCI总线。PCIe总线全称为PCI-Express,是基于PCI总线技术发展起来的总线标准,在软件和应用上兼容PCI总线 。
- PCIe总线的特点:
- 高速差分传输:与PCI总线单端信号对地传输不同,PCIe总线采用差分信号传送数据,即一个信号由D+和D–两根信号线传输,接收端通过比较差值判断逻辑值。这种方式抗干扰能力强,能使用更高总线频率。同时,PCIe总线引入嵌入时钟技术,将时钟信息嵌入数据信号,接收端可从中恢复时钟。
- 串行传输:虽然理论上并行传输速率更高,但随着信号传输速度提高,并行总线存在定时偏差和相互干扰等问题,限制了传输速率。而PCIe总线采用串行传输方式,每个方向只有一个差分信号,且时钟信息嵌入数据信号中,避免了定时偏移,在某些情况下传输速度反而更高。
- 全双工端到端连接:PCIe链路采用端到端的数据传送方式,每一通道只能连接两个设备,设备间通过双向链路连接,每个传输通道独享带宽。其物理链路的一个通道由两组差分信号组成,支持全双工通信,允许同时进行数据发送和接收。
- 基于多通道的数据传递方式:一个PCIe链路可由多条通道组成,目前支持×1、×2、×4、×8、×12、×16和×32等不同宽度。不同的PCIe总线规范定义的总线频率和链路编码方式不同,如PCIe 1.0规范中,×1单通道单向传输带宽可达250MB/s ,多通道设计增加了灵活性,可根据设备需求分配通道。
- 基于数据包的传输:PCIe总线所有数据都以数据包为单位传输。其完整体系结构由应用层、事务层、数据链路层和物理层组成。
- PCIe总线的拓扑结构:PCIe总线上包含四类实体,分别是:
- 根复合体:是PCIe的根控制器,用于连接处理器/内存子系统与PCIe交换结构,可能包含多个PCIe端口,可连接多个交换器 。
- 交换器:用于扩展PCIe总线,可连接多个PCIe设备 。
- PCIe桥:负责PCIe与其他总线的转换,可扩展出传统的PCI总线或PCI-X总线。
- 端点:基于PCIe总线的设备,如PCIe接口网卡等,处于拓扑结构最末端,一般作为总线操作的发起者或终结者,老旧端点是原本用于PCI-X总线后改为PCIe接口的设备。
- PCIe总线支持的高级特征:PCIe总线还支持电源管理、服务质量(QoS)、热插拔支持、数据完整性、错误处理机制等高级特征。
6.6 鲲鹏处理器的总线与互联¶
该节主要介绍了鲲鹏920处理器片上系统在总线与互联方面的特点,即采用CoWoS封装技术实现多晶片合封,以及该技术带来的优势和其架构在互联方面的特性,具体如下:
- 封装技术:鲲鹏920处理器片上系统采用CoWoS封装技术,这种技术能够实现多晶片合封。
- 技术优势:
- 提升生产效益:该技术可提升器件生产制造的良率,这意味着在生产过程中,能减少不良产品的产生,提高生产效率。同时,有效控制每个晶片的面积,有助于降低整体成本,在保证性能的前提下,实现更经济的生产。
- 增强架构灵活性:具有“乐高架构”的组合方式,就像乐高积木一样,可以根据不同的需求进行灵活组合,满足多样化的应用场景。
- 互联特性:鲲鹏处理器通过多层次的片内和片间互联机制实现各个部分的互联互通,这种架构的可伸缩性极强,能够根据实际需求进行扩展或收缩,适应不同规模和复杂程度的系统要求。
6.6.1 鲲鹏 920 系统的部件互联¶
该节主要介绍了鲲鹏920系统的部件互联情况,包括互联的层次架构、按功能划分的互联网络组成部分及其各自功能,具体如下:
- 互联的层次架构:在鲲鹏920处理器片上系统内,互联网络连接处理器、内存储系统和设备。一个超级集群内的各个子系统通过环总线互联互通,多个超级集群之间由SLLC提供互联专用通道,多片片上系统之间通过Hydra接口实现互联。
- 互联网络的组成及功能:
- 片上网络:负责芯片内部互联,将系统内的各个内核集群、cache、DDR控制器及I/O集群内部的各种设备互联,由环总线、SLLC、调度器和分发器等模块组成,在链路层实现片上各部件之间的通信 。
- 环总线:是片上系统内部连接各个设备并提供交互访问控制的总线模块,通过多个交叉站节点互联,确保数据通路无传输错误,系统上电后无需配置即可工作。
- SLLC:负责连接多个超级集群的环总线通路,将一个超级集群的环总线数据按约定路由传输至另一个超级集群的环总线。由于超级集群内部数据交互流量大,其最高带宽一般小于环总线,且需对数据分组打包并压缩后传输。
- 调度器:负责将I/O集群内部多个功能相关设备的访问请求有序传递至系统组件,对访问请求进行调度、汇聚流量,经系统存储管理单元接入环总线交叉站节点,还可调整设备下发命令的服务质量和限制设备流量。
- 分发器:与调度器功能相对应,将从环总线收到的访问请求分发至正确设备处理,还可通过内部数据缓冲器平滑高速访问和低速设备之间的速率差异。
- Hydra接口:是支持片间扩展的华为私有高性能接口,采用高速SERDES通道实现片间互联,支持多片鲲鹏处理器片上系统在单一电路板上集成,实现多芯片间的数据一致性高效互联互通。
- 映射与译码组件:由分布在互联系统各个节点上的地址译码器组成,负责根据访问的属性和地址识别传输目的地,并产生正确的目标标识用于片上网络的路由判断,以保证访问请求传输至正确目的地。
6.6.2 鲲鹏多芯片系统¶
该节主要介绍了鲲鹏多芯片系统的组合灵活性,并以4P服务器处理器多芯片系统为例进行说明,具体内容如下:
- 组合灵活性:鲲鹏多芯片处理器的组合方式丰富多样,能依据实际需求灵活配置。这种灵活性使得该系统可以适应不同的应用场景和工作要求,满足多样化的使用需求。
- 4P服务器处理器多芯片系统实例:以由4个处理器片上系统组成的标准4P服务器处理器多芯片系统为例,每个单片系统都由两个超级内核集群SCCL和一个超级I/O集群SICL构成。这些组件相互协作,共同完成系统的各项功能。四个单片系统之间通过×8 Hydra片间cache一致性接口进行互联,这一接口为片间通信提供了高速通道,其片间通信带宽能够达到240Gbit/s,如此高的带宽保证了数据在多个单片系统之间高效、快速地传输,有助于提升整个多芯片系统的性能。