第三章 主板芯片组与总线:南北桥架构演变,PCIe、SATA、USB总线协议与带宽计算
各位同学,今天我们来聊聊主板上的“交通枢纽”——芯片组和总线。说实话,这玩意儿在十年前还是个大热门,现在虽然集成度高了,但理解它的演变史,能帮你把整个PC架构串起来。
3.1 南北桥架构:从分治到统一
老玩家应该都记得“北桥”和“南桥”这两个词。我刚开始做硬件那会儿,主板上两大块芯片特别显眼。北桥靠近CPU,负责高速设备——内存、显卡、还有早期的PCIe。南桥则管着慢速设备——硬盘、USB、网卡、音频等等。
为什么会这样分?说白了,是当年CPU的引脚不够用,带宽也跟不上。北桥直接连CPU,走的是“高速通道”;南桥通过北桥间接连CPU,走的是“低速通道”。
关键点:北桥负责“快”,南桥负责“多”。北桥管的是延迟敏感的设备,南桥管的是兼容性强的设备。
我记得在2008年做一台游戏主机时,北桥散热片烫得能煎鸡蛋。那时候超频玩家都喜欢给北桥加个小风扇,不然内存频率一拉高,北桥先罢工。
后来呢?Intel从Nehalem架构开始,把内存控制器和PCIe控制器直接集成进了CPU。北桥的功能被CPU“吃掉”了。剩下的南桥改名叫PCH(Platform Controller Hub),直接通过DMI总线连CPU。AMD那边也类似,叫FCH(Fusion Controller Hub)。
嗯,这里要注意:现在的“芯片组”其实就剩南桥了。北桥已经“死”了,但它的灵魂——高速总线——还在。
3.2 PCIe总线:串行时代的王者
PCIe(PCI Express)是现在最核心的总线。它取代了老旧的PCI和AGP。为什么?因为它是串行的,而且可以“多条车道并行”。
你想想看,老PCI是32位并行总线,频率33MHz,带宽才133MB/s。AGP虽然快一点,但也是并行,而且只能插显卡。PCIe不一样,它用“lane”(通道)的概念。一条lane是两对差分信号线,一对发一对收。x1就是一条lane,x16就是十六条lane。
我个人习惯把PCIe比作高速公路。lane就是车道。车道越多,能同时跑的车就越多。但车速(频率)也在提升。
| PCIe版本 | 单lane带宽(单向) | x16带宽(单向) | 编码方式 |
|---|---|---|---|
| PCIe 1.0 | 250 MB/s | 4 GB/s | 8b/10b |
| PCIe 2.0 | 500 MB/s | 8 GB/s | 8b/10b |
| PCIe 3.0 | 约1 GB/s | 约16 GB/s | 128b/130b |
| PCIe 4.0 | 约2 GB/s | 约32 GB/s | 128b/130b |
| PCIe 5.0 | 约4 GB/s | 约64 GB/s | 128b/130b |
注意看编码方式。PCIe 1.0和2.0用8b/10b编码,也就是每传10个bit,只有8个是有效数据,效率80%。到了3.0,改成128b/130b,效率高达98.5%。所以虽然3.0的频率只比2.0翻了一倍,但有效带宽提升更多。
避坑指南:我曾经遇到过一块主板,插了PCIe 4.0的显卡,但跑在3.0模式。查了半天,发现是CPU的PCIe控制器和PCH之间的DMI总线带宽不够。记住,显卡直连CPU的PCIe通道才是最快的,走PCH的PCIe插槽会绕路,延迟和带宽都受影响。
3.3 SATA总线:硬盘的老伙计
SATA(Serial ATA)是硬盘和光驱的标配接口。它也是串行总线,取代了老旧的PATA(并行ATA)。
SATA的版本很简单:
- SATA 1.0:1.5 Gbps,实际带宽约150 MB/s
- SATA 2.0:3 Gbps,实际带宽约300 MB/s
- SATA 3.0:6 Gbps,实际带宽约600 MB/s
注意,这里的Gbps是线速率,包含编码开销。SATA用的是8b/10b编码,所以有效带宽要打八折。比如SATA 3.0,6 Gbps ÷ 10 × 8 = 4.8 Gbps,换算成字节就是600 MB/s。
为什么SATA这么多年没怎么进步?因为机械硬盘的读写速度卡在200 MB/s左右,SATA 3.0的600 MB/s完全够用。但SSD出现后,SATA就成了瓶颈。现在的NVMe SSD直接走PCIe,速度轻松上3500 MB/s,SATA根本没法比。
注意:有些主板上的M.2接口,既支持SATA协议也支持NVMe协议。买SSD之前一定要看清楚主板支持哪种。我曾经有个朋友买了NVMe的SSD,插在只支持SATA的M.2插槽上,结果只能当SATA盘用,速度砍半。
3.4 USB总线:万能的外设接口
USB(Universal Serial Bus)可能是大家最熟悉的总线了。它也是串行,但和PCIe、SATA不同,USB是“主从”架构——主机(Host)控制一切,设备(Device)只能响应。
USB的版本演进:
| USB版本 | 理论带宽 | 实际带宽(估算) | 备注 |
|---|---|---|---|
| USB 1.1 | 12 Mbps | 约1 MB/s | 全速(Full Speed) |
| USB 2.0 | 480 Mbps | 约35 MB/s | 高速(High Speed) |
| USB 3.0 | 5 Gbps | 约400 MB/s | 超速(SuperSpeed) |
| USB 3.1 Gen2 | 10 Gbps | 约800 MB/s | 超速+(SuperSpeed+) |
| USB 3.2 Gen2x2 | 20 Gbps | 约1.6 GB/s | 双通道 |
| USB4 | 40 Gbps | 约3.2 GB/s | 基于Thunderbolt 3 |
USB 3.0之后,命名变得很混乱。我个人习惯看“Gen”和“x”后缀。Gen1是5Gbps,Gen2是10Gbps,Gen2x2是20Gbps(用两条lane)。USB4则直接用了Thunderbolt 3的协议,最高40Gbps。
为什么会这样?因为USB想统一所有外设接口。一个Type-C接口,既能传数据,又能充电,还能输出视频。但这也带来了兼容性问题。我建议买设备时,别只看“USB 3.2”这个标签,要看具体速率。
带宽计算小技巧:所有串行总线的实际带宽,都要考虑编码开销。PCIe 3.0以上用128b/130b,效率高;SATA和USB 3.0以下用8b/10b,效率80%。另外,USB是半双工(早期)或全双工(3.0以后),PCIe和SATA都是全双工。全双工意味着收发可以同时进行,带宽翻倍。
3.5 总线带宽计算实战
我们来算一个实际场景。假设你有一块PCIe 4.0 x4的NVMe SSD,理论带宽是多少?
PCIe 4.0单lane单向约2 GB/s,x4就是8 GB/s。双向就是16 GB/s。但实际跑分软件测出来,顺序读取一般在7000 MB/s左右。为什么达不到8 GB/s?
嗯,这里有几个原因:
- 协议开销:NVMe协议本身有命令队列、元数据等开销。
- CPU到SSD之间的路径延迟。
- SSD主控的极限。
所以,理论带宽是天花板,实际能跑到70%-80%就算不错了。
再算一个USB 3.0的。理论5 Gbps,8b/10b编码后有效4 Gbps,即500 MB/s。但实际拷贝大文件,能到350 MB/s就很好。因为USB还有协议帧、握手、纠错等开销。
我的经验:做系统设计时,总线带宽要留余量。比如你算出来需要3 GB/s的带宽,别选刚好3 GB/s的接口,至少要选5 GB/s的。因为实际负载不是线性的,峰值可能远超平均值。我曾经在一个视频采集项目中,因为没算USB的帧同步开销,导致丢帧。后来换成PCIe采集卡,问题才解决。
3.6 总结与建议
芯片组从南北桥到单芯片PCH,总线从并行到串行,核心逻辑没变——高速设备靠近CPU,低速设备走南桥。
选主板时,我建议你关注三点:
- CPU直连的PCIe通道数:决定了你能插多少块显卡或NVMe SSD。
- PCH的DMI总线版本:DMI 3.0相当于PCIe 3.0 x4,带宽约4 GB/s。如果PCH上挂了很多高速设备(多个NVMe、USB 3.2),DMI可能成为瓶颈。
- USB接口的版本和控制器:有些主板用第三方USB控制器,性能和兼容性不如原生的。
好了,这一章的内容就到这里。下一章我们聊聊内存——从DDR4到DDR5,时序和频率到底怎么选。