自学教程 学编程从这里开始

总线系统

本课目标

理解总线的作用与分类;掌握总线的组成、总线仲裁、定时方式;分清系统总线三类信号线;了解总线性能指标,明白计算机各部件如何通过总线完成数据交互。

6.1 总线概述

总线 Bus:一组共享的传输线路,用来连接计算机内多个硬件模块,实现部件之间指令、数据、控制信号的传递。
没有总线,CPU、内存、外设之间需要大量独立连接线,硬件结构会极其复杂。总线采用共享线路设计,简化硬件布线。

注意:同一时刻,一条总线上只能有一组信号进行传输,多个设备不能同时发送数据,所以需要总线仲裁机制。

6.2 总线分类

按连接范围划分:

  1. 片内总线 On-chip Bus:芯片内部总线,CPU寄存器、ALU之间的连线,集成在处理器芯片内部。
  2. 系统总线 System Bus:计算机主板上,连接CPU、主存、I/O接口的总线,本课重点。
  3. 通信总线 Communication Bus:主机与外部设备之间,如USB、SATA、PCIe,用于设备之间远距离数据传输。

系统总线再细分为3组信号线:

  • 地址总线 Address Bus:单向传输,CPU向外发送地址,指定访问的存储单元或I/O端口;位数决定寻址空间大小。
  • 数据总线 Data Bus:双向传输,用来传递指令与数据;总线宽度决定单次可以传输的数据位数。
  • 控制总线 Control Bus:双向,传递读写、中断、就绪等控制与状态信号,协调部件动作。

6.3 总线仲裁 Bus Arbitration

多个设备都想占用总线发送数据时,需要仲裁机制决定总线使用权,避免信号冲突。分为两大类:

  1. 集中式仲裁 Centralized Arbitration

    仲裁控制器集中在一处,常见:链式查询、计数器定时查询、独立请求方式。
    • 链式查询:设备串行排队,离仲裁器近的设备优先级更高;电路简单,优先级固定。
    • 计数器定时查询:仲裁器计数轮询设备,优先级可灵活调整。
    • 独立请求:每个设备单独发送请求信号,响应速度最快,但硬件线路多。
  2. 分布式仲裁 Distributed Arbitration

    没有中央仲裁器,每个设备自带仲裁逻辑,设备之间自主竞争总线使用权,多用于高速总线PCIe。

6.4 总线定时(同步/异步通信)

总线定时,用来规定发送方与接收方什么时候发送、什么时候采样数据,保证通信双方时序匹配。

  1. 同步定时 Synchronous Timing

    统一时钟信号,所有部件按照同一个时钟节拍工作。传输速度稳定;缺点:必须按最慢设备速度设计,高速设备会被拖累。
  2. 异步定时 Asynchronous Timing

    不使用统一时钟,依靠**握手信号(请求Request、应答Acknowledge)**交互。设备自行协商传输速度,适配不同速率硬件;缺点:控制逻辑复杂,有额外握手开销。

6.5 总线性能指标

  • 总线宽度 Bus Width:数据总线的位数,一次能并行传输多少bit;
  • 总线时钟频率 Bus Frequency:总线工作节拍;
  • 总线带宽 Bus Bandwidth:单位时间总线最大传输数据量;

    公式:总线带宽 = 总线宽度 × 总线频率
  • 传输时延:数据从发出到接收完成的时间。

总线带宽是理论上限,实际传输会受仲裁、握手开销影响,达不到理论最大值。

6.6 常见总线标准

  • PCI:传统并行系统总线;
  • PCIe:高速串行总线,现在主流,使用差分信号,多通道,支持热插拔;
  • USB:通用外设通信总线;
  • SATA:硬盘存储总线。

本课小结

总线是硬件之间共享通信通道,分为片内总线、系统总线、通信总线。系统总线包含地址、数据、控制三类信号线。总线仲裁用来解决多设备竞争总线;总线定时分为同步与异步。总线带宽由总线宽度和频率共同决定。

思考练习

  1. 系统总线分为哪三类,各自传输方向与作用是什么?
  2. 简述集中式仲裁三种方式的特点。
  3. 同步定时和异步定时的区别,异步的握手是什么含义?
  4. 总线带宽怎么计算?
标签:

0 条笔记