资讯动态

【计算机组成原理】总线概述

发布时间:2026/9/12 1:32:34 来源:尧图企业网站定制
计算机组成原理之总线总线的基本概念总线上信息的传输总线的基本结构总线的分类总线特性及性能指标总线特性总线的性能指标总线标准总线结构总线结构实例总线控制总线判优控制总线仲裁链式查询方式计数器定时查询方式独立请求方式总线通信控制总线传输周期总线通信方式同步通信异步通信半同步通信分离式通信总线的基本概念在冯诺依结构的计算机中计算机包含运算器、控制器、存储器、输入设备和输出设备五大部分。即使是把运算器和控制器做在同一颗芯片上做成 CPU把输入设备和输出设备统一为 IO 设置计算机的基本组成还是包括三大部分。现在计算机的结构比这个基本结构复杂的多计算机可能会包含多个 CPUIO 设备也更加丰富。只要把这些部件连接在一起才能组成一个完整的计算机硬件系统能够协调的进行工作。那么如何将这些组件连接在一起呢最直接的方法就是分散连接需要通信的两个部件直接连接起来。可以想象如果一台机器有几百个部件需要两两连接并且两两连接的部件之间有很多的线那么合计起来会有非常多通信线路。把这些线都做在 PCB 上难度很大成本也很高。而且设备之间进行连接的结构需要占用大量的空间。还有一个问题是系统很难扩展。例如新增加一个 IO 设备该设备需要和计算机的 N 个部件连接那么就会有 N 束线并且每束线都有若干条。这样以来实现难度是非常大。为了解决分散连接带来的各种问题引入了总线。总线Bus是连接各个部件的信息传输线是各个部件共享的传输介质。共用的所以英文名叫 Bus 十分的形象。在常规的连接方式中任意两个需要通信的单元之间都需要连线。如果向系统中增加一个新的单元必须要在这个新单元和它所连接的每一个单元之间增加一条新的连线。这样就会导致计算机内部的连线变得很复杂计算机就会变得庞大和臃肿。因此总线的概念逐渐发展起来。总线是计算机系统中的 公共信息传输线路 “ , 该线路能被多个部件 “分时” “共享”。总线结构的问题在于每次只有唯一一个设备能够和其他设备通信因此只有一条信息通路。计算机的各个部件都连接到总线如果两个设备同时请求使用总线它们不得不去竞争总线的控制权。术语仲裁用来描述这种两个或多个设备竞争同一资源这里就是总线的过程。总线上信息的传输总线上信息的传输有两种方式串行和并行。串行总线是指数据在单条 1 位宽的传输线上一位一位地按顺序分时传送。例如USB 就是串行总线。优点只需要一条传输线成本低廉广泛应用于长距离传输应用于计算机内部时可以节省布线空间。缺点在数据发送和接受的时候要进行拆卸和装配要考虑串行-并行转换问题。并行总线是指数据在多条并行的 1 位宽传输线上同时由源传送到目的地。例如CPU 和 主存之间的总线就是并行总线。优点总线的逻辑时序比较简单电路实现起来比较容易。缺点信号线数量多占用更多的布线空间远距离传输成本高由于工作频率较高时并行的信号线之间会产生严重干扰对每条线等长的要求也越高所以无法持续提升工作频率。总线的基本结构单总线结构最简单的总线实现方式就是将计算机的所有硬件都连接到同一条线上这总线就是计算机的系统总线。单总线的问题是任何一个时刻只能有一对组件进行通信。如果某个时刻IO 设备和主存之间通过总线进行数据传输那么 CPU 和主存之间就不能进行数据传输CPU 正在执行的程序就要停止这会严重影响 CPU 的执行效率。另外如果设备很多总线会很长主存和远端设备之间的数据传输时间就会比较长。为了解决单总线的各种问题一个很自然的思路就是在计算机系统中引入多条总线让数据尽可能的能够并行的传输。面向 CPU 的双总线结构面向 CPU 的双总线以 CPU 为核心延展出两条总线IO 总线和M 总线。IO 总线连接多个 IO 设别M 总线连接 CPU 和主存。CPU 在执行程序的时候指令和数据都来自于主存CPU 和主存之间的信息交换是十分繁忙的所以引入了 M 总线专门用于 CPU 和 主存之间的数据传输。但是这样的总线结构也有一个问题主存和 IO 设备之间没有直接的数据通路只能以 CPU 为媒介进行信息传输。所以一旦发生外部设备和主存之间的信息传输CPU 的计算或执行程序的任务还是会被打断。我们还需要对总线结构做进一步的改善。以存储器为中心的双总线结构以主存为中心发出两条总线系统总线和存储总线。基于这种结构CPU、主存、IO 设备两两之间的数据交换可以互不影响。但是面向现代技术系统总线和存储总线通常不能同时工作因为主存一般只有一个访问端口。虽然有双端口的主存但是双端口的 Memory 向两个端口传送数据的时候还是分时进行的课程是2014现在 2026 年可以了嘛老师的愿望实现了么。总线的分类要讲分类首先就要有分类标准。按照总线所处的位置计算机中的总线可以分为片内总线、系统总线和通信总线。片内总线如果总线在芯片的内部完成芯片内部不同组件之间的连接称之为片内总线。系统总线有了片内总线自然会想到芯片和芯片之间的连接。如果总线在芯片的外部完成计算机各个部件例如 CPU 芯片和存储芯片之间的连接称之为系统总线。为什么不叫片外总线或片间总线呢因为这种命名覆盖的范围太大了。根据总线上传输的信号的不同系统总线又可以分为三类数据总线传输数据信号通常是双向的总线宽度和机器字长CPU 一次能处理数据的位数与 CPU 中的寄存器位数有关、存储字长有关。通常情况下数据总线的宽度小于等于机器字长或存储字长。例如64位计算机的数据总线的宽度可以是 8 位。地址总线传输地址信号通常是单向的由 CPU 等设备发出。地址总线的宽度和存储地址和存储单元数量有关、IO 地址有关。控制总线向计算机硬件系统的不同部件传输控制信号或者是各部件将自己的状态信号向外传输告诉 CPU 等。通信总线片内总线和系统总线都是计算机内部的数据传输通信总线则是用于计算机和计算机之间或者是计算机系统与其他系统例如控制仪表、移动通信等之间的通信。通信总线包含串行通信总线和并行通信总线两大类。总线特性及性能指标在具体的物理实现上总线是位于主板上计算机内部的 PCB 板。总线上会留出接口计算机的其他部件连接到这些接口上比如 CPU 插板、内存插板、IO 插板等。为了实现计算机部件和总线之间通过插板这种方式进行连接总线就需要有一些特性。总线特性总线有如下特性极限特性机械特性用来保证计算机部件和总线之间的有效连接包括尺寸、形状、管脚数以及排列顺序等。电气特性电气特性主要包括传输方向和有效的电平范围。功能特性功能特性指的是每根线上传输的信号到底是什么信号包括地址、数据、控制和状态反馈信号。时间特性信号之间的时序关系时序逻辑电路。总线的性能指标总线宽度总线可以同时传输的数据位数其实就是数据线的根数。标准传输率标准传输率指的是总线每秒传输的最大字节数MBps。时钟同步/异步总线上数据的传输时同步的还是不同步的。这没有用异步这个词是因为不同步在这里会包含很多种类型后续会介绍。总线复用主要是指地址线和数据线共用总线主要目的减少芯片的管脚数管脚数量对芯片面积的影响很大。信号线数地址线、数据线和控制线的线数的总和。总线控制方式总线的控制方式有突发、自动、仲裁、逻辑、计数等。其他指标负载能力总线上可以挂载的 IO 设备的数量。总线标准现代的计算机系统时很复杂的计算机的生产、设计和制造也越来越专业化。例如某些企业专门生产 CPU、某些企业专门生产某种类型的 IO 设备。不同企业生产的东西集成在一起构成了计算机的硬件系统。想要完成这个集成大家在设计和生产计算机硬件的各个部件的时候需要有一个约定。大家都遵守这个约定的时候不同的计算机部件才可以连接起来从而构成一个能够协调运行的计算机系统。那么关于总线的约定就是总线标准。总线标准给出了一个标准界面或者说接口只要是按照这个标准生产的部件最后就可以集成在一起。总线的标准也是在不断的发展从简单低速的总线不断的向高速、可拓展性更强的方向发展。几种不同的总线标准如下ISA工业标准体系结构Industry Standard Architecture总线的宽度是 16频率是 8Mhz即也就是说ISA 总线每秒可以传输 8M 次每次传输 16bit即带宽是 16MB/s。1B 8bitEISA 是对 ISA 的扩展兼容 ISA。VESA总线是由视频电子标准协会于 1992 年推出的旨在满足视频显示的高数据传输需求。 VESA 总线属于 CPU 总线的扩展设计通过将外设直接连接至 CPU 局部总线实现同步运行解决了ISA总线传输速率低导致的系统效率问题。PCI 是 Peripheral Component Interconnect外设部件互连标准的缩写它是个人电脑中使用最为广泛的接口几乎所有的主板产品上都带有这种插槽。PCI 总线是一种同步的独立于处理器的总线在 CPU 的供应商和原来的系统总线之间插入的一级总线把 CPU 和外围设备分开用户可以任意添加设备。USB 是通用串行总线Universal Serial Bus的缩写它是一种行业标准的串行总线和输入输出接口技术规范。其核心特点包括支持热插拔与即插即用允许用户在设备运行时安全地连接或断开外设无需重启系统。此外USB接口在传输数据的同时还能为连接的设备提供电力这一核心功能使其被广泛应用于个人电脑、移动设备、摄影器材、数字电视及游戏机等各类信息通讯产品中。总线结构前面已经介绍过了几种总线结构随着计算机技术的发展总线也发展出很多其他结构。双总线结构还有一种双总线结构是由主存总线和 IO 总线构成主存总线和 IO 总线之间通过通道进行连接从而实现 IO 设备和 CPU、主存之间的通信。通道是一种结构简单、功能特殊的处理器专门用于输入输出操作。它有自己的控制器和指令系统能够执行一些简单的指令和通道程序。需要注意的是通道程序通常是由操作系统编写的而不是人工编写的。三总线结构还可以在增加一条 DMADirect Memory Access总线构成三总线系统。外部设备通过 DMA 可以直接访问主存通常是一些高速设备。低速设备和主存之间的信息交换通常还是使用 IO 总线和主存总线。另外一种三总线结构如下图所示CPU 的发展速度是很快的但是存储器的发展速度比较缓慢所以内存的速度成为计算机性能的瓶颈。为了解决这个问题现在计算机在设计的时候在 CPU 和主存之间增加了一个小容量的高速存储器 Cache对主存的数据进行缓存。CPU 运行的时候主要是从 Cache 中获取需要的指令和数据。局部总线就是用于连接 CPU 和 Cache局部的 IO 控制器是用于连接一些高速的局部设备。系统总线通过拓展总线借口连接一条拓展总线各种类型的外部设备都可以连接到扩展总线这种方式解决了外部设备拓展的问题。但是这种总线结构中不同速度的多种设别连接到了拓展总线这会影响到外部设备的工作速度四总线结构用来解决这个问题。四总线结构四总线结构包含系统总线、局部总线、高速总线和拓展总线。这种总线结构将高速设别和低速设备分开数据传输的效率更高。总线结构实例传统微型机总线结构VL-BUS局部总线结构PCI 总线结构多层 PCI 总线结构如果 PCI 总线上连接的设备过多总线的驱动能力不够可以通过 PCI 桥对总线进行扩展。总线控制总线上连接了多个设备设备之间要进行通信那么就必须要解决两个问题总线判优控制总线仲裁总线在同一时刻只能由一对设备使用那么多个设备同时向总线发出占用请求时到底哪个设备来使用总线呢总线通信控制设备占用总线之后是要通信的如何完成通信过程保证通信过程的正确性总线判优控制总线仲裁根据是否能提出总线占用请求把总线上的设备分为两类主设备模块对总线有控制权可以提出总线占用申请。并且在占用总线之后可以控制和另外一台设备进行通信。从设备模块不能对总线进行控制也是不能提出总线占用申请只能响应从主设备发来的总线命令。计算机系统中有一些设备既可以当作主设备也可以当作从设备。有些总线只能有一个主设备有些总线则可以有多个主设备。总线的判优控制可以分为两种方法集中式把总线的判优逻辑放在一个设备上比如 CPU包含链式查询、计数器定时查询和独立请求三种方式。分布式判优逻辑放在各个设备上链式查询方式结构最简单的链式查询方式的电路结构如下基本结构总线控制部件是集中在一起的这是集中式总线判优控制的特征数据总线用于信息交换过程之间的数据传输主设备占据总线之后通过地址总线找到要通信的从设备BRBus Request所有的设备同时通过 BR 线发送总线控制请求BSBus Busy如果某一个设别占用了总线的控制权通过 BS 线高速总线控制部件或其他设别。BGBus Grant总线授权链式查询的特点就体现在 BG 线上。仲裁过程所有的设备都是通过 BR 向总线控制设备提出占用请求当控制设备受到请求并且认为可以使用总线的时候就会通过 BG 串行查询每个设备找到是谁发出的请求然后将总线控制权交给它。在上图所示的实例中是 IO 接口 1 和 IO 接口 n 发出请求总线控制部件在通过 BG 串行查询的时候会先碰到 IO 接口 1那么 IO 接口 1 就会获得总线控制权。然后接口 1 会通过 BS 总线设置总线忙。特点在链式查询方式中各个设备占用总线的优先级和 BG 的查询顺序直接相关。也就是说优先级是通过 BG 线的连接方式来事先确定的。如果一个 IO 设备的优先级比较低排的比较靠后那么很有可能它提出的总线控制请求一直不会得到应答。优缺点链式查询方式对电路故障十分敏感尤其是 BG 线。如果某个 IO 接口出现故障导致 BG 线上的信号无法向下传递那么后面的设备就永远不会获得总线控制权。它的优点是结构简单总线仲裁通过三条线就可以实现而且易于增加设备直接顺着向后连接就可以。因为结构简单链式查询电路的可靠性设计很容易实现比如使用两根 BG 线避免一条线故障导致电路无法工作。因为要一直串行查询所以它的速度很慢一般用于微型计算机或者是结构简单的嵌入式电路。计数器定时查询方式电路结构仲裁过程总线控制部件内部有一个计数器初始值一般是 0可以是其他值。当总线控制部件接受到总线控制请求并且总线可以使用的时候计数器启动。计数器的值通过设备地址这条线向外传输当计数器的值为 0 时它会对第一个设备即 IO 接口0进行查询看它是否发出总线控制请求。如果第一个设备没有发出请求计数器自动加1查询下一个设备以此类推。它的优点是优先级的确定十分灵活改变计数器的初始值比如通过软件设置初始值就可以改变优先级独立请求方式独立请求方式对应的电路结构如下图所示链式查询和计数器定时查询这两种方式在查找时哪个设备发出总线占用请求的时候都是按顺序进行的速度都比较慢。独立请求改变按顺序查询的这种方式每个设备都有其各自的 BR 和 BG 线优先级的确定在总线控制部件内部实现更加灵活多变。当多个设备同时通过各自的 BR 发出总线控制请求的时候总线控制部件内部的排队器在根据优先级选择其中一个作出应答。应答信息通过 BG 给到设备告诉它可以使用总线。独立请求这种方式虽然速度更快但是使用的互连线比较多。总线通信控制总线仲裁解决了由哪一个主设备占用总线使用总线的问题。那么主设备占用总线或者总线使用权之后就要和从设备进行信息交换。总线的通信控制就是为了解决主设备和从设备之间进行协调通信的问题。总线传输周期主设备和从设备之间完成一次完整的、可靠的通信需要的时间称为总线传输周期。主设备和从设备之间的通信包括如下四个阶段申请分配阶段主设备申请总线仲裁决定主设备获得总线使用权。寻址阶段主设备向从设备给出地址和命令找到需要进行通信的从设备。传数阶段如果从设备做好接受数据的准备总设备和从设备就进行数据交换。结束阶段主设备和从设备撤销相关信息。总线通信方式总线的通信有四种方式同步通信由一个统一的、定宽定距的时标控制数据传送每一个操作、每一个数据的传输都是由这个时标控制在固定的时间进行信息传输。假设 CPU 采用同步通信的方式从某一个外部设备进行数据输入。从 CPU 的视角看数据传输过程的时序图如下。同步通信的特点是在固定的时间要完成固定的操作同步数据输入的总线传输周期由四个时钟周期构成具体过程如下T1 的时钟上升沿主设备CPU 必须要给出地址信号T2 的时钟上升沿CPU 必须要给出读命令告诉从设备它要读取数据。T3 的上升沿到达之前从设备必须通过数据总线给出数据信号CPU 读取到数据T4 的上升沿数据信号和控制信号可以撤销T4 结束的时候地址信号也可以撤销。同步数据输出的过程与此类似假设 CPU 要将数据输出到某个设备时序图如下T1 的时候给出地址和数据T2 的时候给出写命令T3 的时候完成写操作T4 撤销。同步通信的时候主设备和从设备之间是强制同步的对于多个速度不同的设备必须选择速度最慢的时钟作为信号传输的时钟。即使是有些设备的工作速度很快也要按照慢时钟进行数据传输。所以同步通信通常用于总线长度短且各设备的存取时间比较一致的情形。同步通信要求总线长度较短根本原因在于信号传播延迟与时钟同步机制之间的冲突。延迟差异若总线过长时钟信号从源端到达接收端需要时间同时数据信号从发送端到接收端也需要时间。当两者路径长度不同常见于多设备总线或总线过长时时钟边沿与数据到达接收端的时间差可能超出接收端的建立/保持时间窗口导致数据采样错误。Clock Skew由于导线长度不同同一时钟沿到达总线上不同设备的时间存在差异。总线越长偏移越严重时序就越难收敛无法数据重传同步通信依靠固定的时钟节拍传输数据没有像异步通信那样的应答ACK/NACK或重传机制。一旦因传输延迟导致采样错误系统无法恢复错误。因此必须通过缩短总线长度来保证信号在一个时钟周期内稳定到达。物理限制为了提高吞吐量同步通信常使用较高频率。时钟周期短时允许的信号传播总延迟发送端输出延迟 线延迟 接收端建立时间必须小于时钟周期。例如若时钟频率为50MHz周期20ns而信号在PCB上的传播速度约为56 ns/m则总线长度最多只能12米否则无法满足时序。异步通信异步通信没有统一的时标它通过请求信号和应答信号之间的握手通信采用应答的方式完成设备之间的通信。主设备发出请求从设备给出应答信号然后再进行数据传输。异步通信的数据传输的过程有三种具体的实现方式不互锁方式主设备不管是否接到应答信号一段时间之后都会撤销请求信号从设备也不管主设备是否接收到应答信号一段时间后也撤销应答信号这种方式通信的可靠性是存在问题的。半互锁方式主设备的请求信号会持续保持直到接收到从设备的应答信号而从设备在发出应答信号之后不管主设备是否接收到应答信号一段时间就撤销应答信号这种方式可能会造成请求信号一直保持高电平。全互锁方式主设备的请求信号会持续保持直到接收到从设备的应答信号主设备撤销请求信号之后从设备才会撤销应答信号。这种方式可以完成可靠的数据传输。半同步通信同步和异步相结合主要是为了解决不同速度的设备之间的通信。同步指的是发送方使用系统时钟发信号接收方使用系统时钟进行判断和识别。异步指的是允许不同速度的设备之间能够协调工作为了调整主从设备之间的速度差异增加了一条等待响应信号由从设备给出。以输入数据比如某个设备到 CPU的为例假设总线通信周期为 4T通信过程如下正常情况下T3 的上升沿到来之前从设备是要将数据放到数据总线上的。如果主模块和从模块的速度不一致比如 CPU 的速度比存储器快T3 到来的时候从设备无法提供数据那么从设备就要发出等待信号主设备会检测 WAIT 的值。如果 WAIT 的值为 0主设备就会插入一个 Tw等待数据的到来。下一个时钟周期到来的时候主设备还会检测 WAIT 信号直到 WAIT 变为高电平然后进入 T3。该过程的时序图如下分离式通信前面的三种总线通信方式的共同特点是数据的传输都要经过三个阶段① 主模块发出地址和命令② 从模块准备数据③ 从模块向主模块发送数据。在这个过程中只有 1 和 3 占用总线2 是不占用总线总线处于空闲状态。总线上连接了很多的模块是系统的瓶颈。总线在数据传输过程中有空闲时间是对总线资源的浪费那么有没有办法可以解决这个问题呢答案是分离式通信。分离式通信可以充分发掘总线在每个瞬间的潜力它将总线的传输周期可以分为两个子周期子周期 1主设备发出地址和命令占用总线使用完成之后主设备放弃总线的使用权。子周期 2从设备准备好数据之后发出申请占用总线将各种信息送至总线。这个时候从设备其实变成了主设备因为它发出了总线占用请求。在这个过程中从设备准备数据的时间总线是没有被占用的。分离式通信的特点如下各模块都有权申请占用总线从模块可以变成主模块采用同步通信方式不需要等对方应答‘各模块准别数据时不占用总线’总线被占用时无空闲总线的带宽被充分利用。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价