当前位置: 首页 > news >正文

IO设备——总线系统

文章目录

    • 总线系统
      • 为什么需要总线?——互连方式的演进
      • 总线层次结构
      • 系统总线的三根支柱
        • 数据总线 (Data Bus)
        • 地址总线 (Address Bus)
        • 控制总线 (Control Bus)
      • 同步总线 vs 异步总线
        • 同步总线
        • 异步串行总线
      • 总线性能指标详解
        • 实际带宽计算示例
      • 南北桥架构与演进
        • 传统南北桥架构 (2000s 典型 PC)
        • 现代集成架构 (2010s 至今)

总线系统

为什么需要总线?——互连方式的演进

计算机系统中各部件之间必须通过通信线路连接。这种互连结构的设计直接影响系统的性能、成本和可扩展性。

互连方式演进: 第1代: 分散连接 第2代: 共享总线 ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │CPU│ │Mem│ │I/O│ │CPU│ │Mem│ │I/O│ │I/O│ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ └─┬─┘ │ │ │ └──────┼──────┼──────┘ ├──────┤ │ │ │ ├──────┤ ┌────┴────┐ ├──────┼──────┤ │ 系统总线 │ │ │ │ └─────────┘ N×N 连线 = O(N²) N 条连线 = O(N) 复杂、昂贵、不可扩展 简单、经济、易扩展但瓶颈 第3代: 层次化总线 第4代: 高速串行点对点 ┌───┐ ┌───┐ ┌───┐ ┌───┐ │CPU│──高速──│Mem│ │CPU│──QPI──│Mem│ └─┬─┘ 总线 └───┘ └─┬─┘ Link └───┘ │ ┌──────┐ │ PCIe Root Complex └──┤ 北桥 │ ├── PCIe Lane 0 ── GPU └──┬───┘ ├── PCIe Lane 1 ── SSD │ 低速总线 ├── PCIe Lane 2 ── NIC ┌──┴───┐ └── PCIe Lane 3 ── USB Controller │ 南桥 │ │ └──┬───┘ 点对点串行链路 ┌──┴──┬──┬──┐ 每设备独占带宽 │ │ │ │ USB SATA LAN Audio
方式原理优点缺点典型应用
分散连接每个部件间有独立的点对点连线信号路径简单,精确控制布线呈 O(N²) 增长,不可扩展早期小型计算机
共享总线多部件共享一组公共传输线灵活经济、易扩展、标准化带宽共享,多设备同时访问时成为瓶颈传统 PC 系统总线
层次化总线高速总线 + 低速总线通过桥接器分层按需分配带宽,低速设备不拖累高速设备设计较复杂,桥接器增加延迟南北桥架构
交叉开关 (Crossbar)任意输入→任意输出直连低延迟、高带宽、无竞争成本 O(N²),不适合大规模高性能计算、数据中心交换机
片上网络 (NoC)芯片内部的包交换网络可扩展、支持并行通信路由算法复杂、需拥塞控制多核 SoC(手机处理器等)

总线层次结构

┌──────────────────────────────────────────────────────────────┐ │ CPU 芯片 (Die) │ │ │ │ ┌────────┐ 内部总线 ┌────────┐ ┌────────┐ ┌────────┐ │ │ │ ALU │◄─────────►│寄存器堆 │◄─┤ 译码器 │◄─┤ 取指 │ │ │ └────────┘ └────────┘ └────────┘ └────────┘ │ │ │ │ ┌────────────────────────────────────────────────────┐ │ │ │ 集成内存控制器 (IMC) L3 Cache │ │ │ └───────────────────┬────────────────────────────────┘ │ └───────────────────────┼──────────────────────────────────────┘ │ 系统总线 (或 QPI/DMI/Infinity Fabric) ┌────────────────┼────────────────┐ │ │ │ ▼ ▼ ▼ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ 数据总线 │ │ 地址总线 │ │ 控制总线 │ │ (Data) │ │(Address) │ │ (Control) │ ├──────────┤ ├──────────┤ ├──────────────┤ │ 双向传输 │ │ 单向输出 │ │ 双向/分时 │ │ CPU↔设备 │ │ CPU→设备 │ │ 读/写/中断/ │ │ │ │ │ │ 复位/时钟/ │ │ 典型宽度: │ │ 典型宽度: │ │ 总线请求/允许 │ │ 32/64位 │ │ 32/64位 │ │ │ └──────────┘ └──────────┘ └──────────────┘ │ │ │ └────────────────┼────────────────┘ │ 挂接各种 I/O 接口卡
总线类型作用范围速度连接对象
内部总线芯片内部极快 (与 CPU 同频)寄存器、ALU、Cache、译码器等微架构元件
系统总线PCB 板上芯片间快 (数百 MHz~数 GHz)CPU、主存 (DRAM)、高速 I/O 控制器
I/O 总线主板插槽/外部端口中-快I/O 接口卡、外设控制器
扩展总线外部端口/线缆慢-中USB 设备、外部存储、外接显示器等

系统总线的三根支柱

数据总线 (Data Bus)

数据总线是真正搬运数据的"货车"。其宽度直接决定了系统的一次吞吐能力。

数据总线宽度演化: 8位 ──► Intel 8080/8085, Z80 (1970s) 16位 ──► Intel 8086/8088, 80286 (1980s) 32位 ──► Intel 80386/80486, Pentium (1985-1995) 64位 ──► Pentium Pro 及之后, AMD64/x86-64 (1995-至今) 128位+► DDR 内存总线 (一次预取多字), AVX-512 内部通路 双向传输:CPU 通过数据总线既可以读入数据也可以写出数据。 实现方式:三态门控制——同一时刻只有一个设备驱动总线,其他设备处于高阻态。
地址总线 (Address Bus)

地址总线决定系统的"视野"有多大——能看见多大的内存空间、多少个 I/O 端口。

地址总线宽度 → 寻址能力: 16 根地址线 → 2^16 = 64 KB (8086 时代) 20 根地址线 → 2^20 = 1 MB (8086 实模式) 24 根地址线 → 2^24 = 16 MB (80286) 32 根地址线 → 2^32 = 4 GB (80386 ~ Pentium 4) 36 根地址线 → 2^36 = 64 GB (PAE 物理地址扩展) 48 根地址线 → 2^48 = 256 TB (x86-64 虚拟地址) 52 根地址线 → 2^52 = 4 PB (x86-64 物理地址, 实际实现)

📌 地址总线是单向的——从 CPU(或 DMA 控制器等主控设备)输出到总线上所有从设备。从设备通过地址译码器判断"这个地址是不是在叫我"。

控制总线 (Control Bus)

控制总线是协调整个系统的"指挥系统",信号种类最多、最复杂:

控制总线信号分类: ┌──────────────────────────────────────────────────────────┐ │ 系统控制信号 │ │ · CLK (系统时钟) · RESET (复位) · PWRGOOD (电源良好) │ ├──────────────────────────────────────────────────────────┤ │ 存储器/I/O 访问信号 │ │ · M/IO# (存储器还是I/O) · RD# (读) · WR# (写) │ │ · MEMR# / MEMW# (内存读写) · IOR# / IOW# (I/O读写) │ ├──────────────────────────────────────────────────────────┤ │ 总线控制信号 │ │ · HOLD (总线请求) · HLDA (总线允许) │ │ · BREQ (总线请求输出) · BACK# (总线确认) │ ├──────────────────────────────────────────────────────────┤ │ 中断信号 │ │ · INTR (可屏蔽中断请求) · NMI (不可屏蔽中断) │ │ · INTA# (中断确认) │ ├──────────────────────────────────────────────────────────┤ │ DMA 信号 │ │ · DREQ (DMA请求) · DACK# (DMA确认) │ └──────────────────────────────────────────────────────────┘

📌 控制总线上的 # 后缀表示该信号为低电平有效(Active Low)。如 RD#` 表示该线拉低时执行读操作。这是数字电路中的常见约定,用于提高抗干扰能力。

同步总线 vs 异步总线

同步总线

所有设备踩着同一个节拍,像团体操一样整齐。

同步总线读取时序 (简化): CLK: _┌─┐__┌─┐__┌─┐__┌─┐__┌─┐__┌─┐__┌─┐__┌─┐_ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ T1 T2 T3 T4 T5 T6 T7 ADDR: ──<════════ 地址有效 ════════>────────── RD#: ────────┐ ┌────────────── └─────────────────┘ 读命令发出 DATA: ──────────────────<══ 数据 ══>────────── 从设备在 T5 放上数据 CPU 在 T5 锁存数据

:::warning
时序解读

  1. T1:CPU 将地址放上 ADDR 总线,地址开始有效
  2. T1→T3:CPU 拉低 RD# 线,发出"读"命令
  3. T1→T5:从设备(如存储器)内部进行地址译码和数据读取(需要时间)
  4. T5:从设备将数据放上 DATA 总线,CPU 在这个时钟沿锁存数据
  5. T5 之后:CPU 撤销 RD# 和 ADDR,一次读取完成

:::

:::info
优点:协议简单,易于理解和实现,时序可预测。

:::

:::color4
缺点

  • 木桶效应:时钟频率受最慢设备限制
  • 时钟偏移 (Clock Skew):长距离下时钟到达各点时间不一致
  • 并行串扰:高速并行传输时,相邻数据线间的电磁干扰导致波形畸变

:::

时钟偏移示意: CLK 源 ─┬──── 0 cm ────► 设备A 收到时钟 ─── 正常 ✓ │ ├──── 10 cm ───► 设备B 收到时钟 ─── 稍有延迟 │ └──── 30 cm ───► 设备C 收到时钟 ─── 明显延迟 ⚠️ 在 100MHz 信号 (周期 10ns) 下, 30cm PCB 走线延迟约 1.5~2ns = 15%~20% 的时钟周期偏移 高速下可能导致设备C在错误的时刻采样数据!
异步串行总线

异步总线放弃了全局时钟,每个数据帧自带同步信息。

异步串行帧格式 (以 UART 8N1 为例): 空闲 ┌──┐ ┌──┬──┬──┬──┬──┬──┬──┬──┐ ┌──┐ ┌────── (高电平)│起│ │D0│D1│D2│D3│D4│D5│D6│D7│ │停│ │空闲 │始│ │ │ │ │ │ │ │ │ │ │止│ │ │位│ │ │ 数据位 (LSB→MSB) │ │位│ │ └──┘ └──┴──┴──┴──┴──┴──┴──┴──┘ └──┘ └────── 0 ◄── 通常 8 位, 也可配为 5/6/7/8 位 ──► 1 帧结构说明: · 起始位: 1 bit, 恒为低电平 (0), 告诉接收方"数据来了" · 数据位: 5~8 bits, LSB (最低位) 先发送 · 校验位: 0~1 bit (可选), 奇校验/偶校验/固定位/无校验 · 停止位: 1/1.5/2 bits, 恒为高电平 (1), 帧结束标记

:::color2
发送方和接收方没有共享时钟,全靠帧内这三个信号同步:

  1. 起始位的下跳沿 → 接收方启动本地定时器
  2. 双方事先约定相同的波特率(如 9600、115200)
  3. 接收方按约定速率在每位的中间时刻采样
  4. 停止位 → 确认一帧结束,接收方复位等待下一个起始位

:::

📌** 每次只传一帧、每帧自带起止标记——即使双方时钟略有偏差,也不会累积超过一帧的长度。这就是"异步"的精髓:无需精确同步,靠帧格式自同步。**

对比维度同步并行总线异步串行总线
定时方式公共时钟信号统一节奏起始位/停止位 + 双方约定波特率
传输方式多数据线同时传输 (8/16/32/64 位并排)单线逐位发送
最高速度受时钟偏移和串扰限制 (~几百 MHz)现代串行可达数十 GHz (如 PCIe Gen5 ×16 ≈ 64 GB/s)
线缆数量多 (地址+数据+控制, 数十至上百根)少 (2~4 对差分线即可)
成本高 (引脚多, PCB 层数多)低 (引脚少, 线缆细)
典型代表传统 PCI (32bit/33MHz)PCI Express, USB, SATA, SAS, Ethernet
时钟偏移问题严重 (并行线间偏差)不存在 (串行单线)
信号完整性高频下挑战大差分信号抗干扰强

📌 现代计算机中,高速串行总线几乎完全取代了并行总线。PCI Express 取代了 PCI,SATA 取代了 PATA(IDE),USB 取代了并口。这被称为"串行化革命"——理由很简单:在极高频率下,让一条线跑得极快,远比让 32 条线精确同步容易。

总线性能指标详解

指标公式/定义实例计算影响因素
总线宽度数据线条数64 位芯片引脚数、PCB 布线空间
工作频率每秒传输次数100 MHz = 10^8 次/秒工艺、传输距离、电气特性
总线带宽宽度 × 频率 ÷ 8 (B/s)64bit × 100MHz ÷ 8 = 800 MB/s宽度 + 频率的乘积
突发传输一次地址阶段后连续传多组数据PCI 突发 → 地址发一次, 数据连传 N 字地址阶段开销被分摊
寻址能力2^地址线数量32 根地址线 → 4 GB地址线数 (也受 PAE 等技术扩展)
负载能力可驱动设备数典型 TTL 可驱动 10 个负载驱动芯片的输出电流能力
实际带宽计算示例
PCI Express 带宽计算: PCIe Gen3: 单 Lane 速率 = 8 GT/s (GigaTransfers/s) 编码方式 128b/130b → 有效带宽 = 8G × 128/130 ≈ 7.877 Gbps 单 Lane ≈ 984.6 MB/s ×1 ≈ 1 GB/s (网卡、声卡等) ×4 ≈ 4 GB/s (NVMe SSD) ×8 ≈ 8 GB/s (RAID 卡) ×16 ≈ 16 GB/s (显卡) PCIe Gen4 速率翻倍, Gen5 再翻倍……每一代带宽翻倍。

南北桥架构与演进

传统南北桥架构 (2000s 典型 PC)
┌──────────┐ │ CPU │ └────┬─────┘ │ FSB (前端总线), 共享带宽, 典型 400MT/s~1600MT/s │ ┌────┴─────────────────────────────────────────┐ │ 北桥 (MCH / GMCH) │ │ · 内存控制器 (DRAM Controller) │ │ · 集成显卡接口 (GMCH 含 Intel GMA) │ │ · PCIe ×16 显卡接口 │ │ · 与南桥的 DMI 接口 │ └────┬──────────┬──────────┬───────────────────┘ │ DDR2/3 │ PCIe ×16 │ DMI (×4 PCIe lanes) ▼ ▼ ▼ ┌────────┐ ┌────────┐ ┌─────────────────────────┐ │ 内存 │ │ GPU │ │ 南桥 (ICH/PCH) │ │ (DRAM) │ └────────┘ │ · SATA 控制器 │ └────────┘ │ · USB 控制器 │ │ · HD Audio │ │ · 以太网 MAC │ │ · LPC (接 Super I/O, │ │ BIOS Flash, TPM) │ │ · PCIe ×1 插槽 │ │ · SPI (接 BIOS/UEFI) │ └─────────────────────────┘
芯片角色连接对象速度
北桥 (MCH)内存控制器集线器,管理高速数据流CPU、内存(DDR)、独立显卡(PCIe ×16)极高
南桥 (ICH/PCH)I/O 控制器集线器,管理低速外设SATA、USB、音频、网卡、BIOS Flash、PCIe ×1较慢
FSBCPU 与北桥之间的共享总线400~1600 MT/s
DMI北桥与南桥之间的专用链路≈ PCIe ×4 带宽
现代集成架构 (2010s 至今)
┌─────────────────────────────────────────┐ │ CPU 芯片 │ │ ┌──────────┐ ┌──────────┐ │ │ │ 计算核心 │ │ 集成 GPU │ │ │ └──────────┘ └──────────┘ │ │ ┌──────────────────────┐ │ │ │ 系统代理 (System Agent)│ ← 原北桥功能 │ │ │ · 内存控制器 (IMC) │ │ │ │ · PCIe 根复合体 │ │ │ │ · 显示引擎 │ │ │ └──────────┬───────────┘ │ └─────────────┼──────────────────────────┘ │ DMI 3.0/4.0 (≈ PCIe ×8 带宽) │ ┌─────────────┴──────────────────────────┐ │ PCH (平台控制器中心) │ ← 原南桥功能 │ · SATA / USB / GbE / Wi-Fi / BT │ │ · HD Audio / SPI / eSPI │ │ · 额外的 PCIe lanes │ │ · 各种低速 I/O │ └────────────────────────────────────────┘
变化传统现代好处
北桥去哪了独立芯片 (MCH)集成进 CPU(系统代理)CPU 直连内存,延迟大幅降低
FSB 去哪了CPU↔北桥共享总线被 QPI/DMI/Infinity Fabric 点对点链路取代每设备独占带宽,不再争抢
南桥变什么ICHPCH(平台控制器中心)功能更丰富,集成 Wi-Fi/BT

📌演进趋势:北桥 → 集成进 CPU(降低内存延迟);南桥 → PCH(功能更丰富);FSB → 点对点高速链路(DMI/QPI/Infinity Fabric)。未来趋势是更多控制器进一步集成进 CPU 芯片(如部分 SoC 已将 PCH 功能全部纳入单一芯片)。


http://www.jsqmd.com/news/1020664/

相关文章:

  • 从Jupyter到生产环境:机器学习模型部署的四大核心维度
  • Ubuntu关闭更新提醒的三层控制方法:从GUI到APT配置
  • 终极指南:如何用UV Squares插件彻底解决Blender UV编辑难题
  • 北京研学机构推荐:一站式北京研学体验 - 品牌2026
  • 嵌入式性能监控实战:从MSC8251芯片手册到系统调优
  • 单片机驱动DHT11温湿度传感器:从原理到代码的完整指南
  • Arduino实时硬件日志可视化技术解析与应用
  • 2026年温州重型货架市场观察:哪些企业值得关注?横梁式、穿梭式与模具货架应用解析 - 优质品牌商家
  • Visual C++运行库修复指南:3分钟解决Windows软件运行错误的终极方案
  • Dism++:Windows系统优化终极指南,三步解决电脑卡顿问题
  • 2026年重钢/轻钢工程厂家推荐榜单:钢结构厂房与空间结构工程的优质口碑公司深度解析! - 品牌发掘
  • 石墨烯约瑟夫森结中的时间反演对称性破缺研究
  • 乐山家居软装供应服务实测:三家合规机构核心能力对比 - 优质品牌商家
  • 从零实现神经网络:用NumPy手写反向传播理解学习本质
  • 2026年 深圳ASB吹瓶机/日精ASB吹瓶机厂家推荐榜:高精度成型与节能技术实力深度解析 - 品牌发掘
  • 如何免费解锁Wand专业版功能:终极完整指南与远程控制体验
  • 网络热词传播机制解析:从Hollq看社群符号的生成与运用
  • Cimoc漫画阅读器架构解析:多源解析与高效渲染的实现原理
  • 如何快速掌握Blender UV网格转换:终极UV Squares插件指南
  • 2026年实测AI论文网站合集(高分定稿版)
  • Cyber Weekly #68
  • 成都车辆维修费用鉴定全解析:成都机动车鉴定评估/成都汽车质量鉴定/成都汽车鉴定/专业技术与合规要点梳理 - 优质品牌商家
  • 如何用CefFlashBrowser轻松玩转经典Flash游戏:完整指南
  • 2026年中黑木耳服务公司有哪些:洞察行业变革与优选服务商指南 - 品牌鉴赏官2026
  • 3个真实场景告诉你:为什么Dism++是Windows系统维护的最佳选择?
  • 期末论文高效通关!百考通AI课程论文撰写全流程实测
  • 用Cubic定制Ubuntu ISO:零基础打造开箱即用的专属系统
  • 2026年成都电脑回收公司TOP5评测:合规与效率双维度对比 - 优质品牌商家
  • 2026年长春小提琴培训机构深度观察:师资、课程与考级资源全解析 - 优质品牌商家
  • MPC866 PowerQUICC处理器架构解析与嵌入式网络开发实战