x86笔记

1 从 IBM PC XT 架构开始…

一开始PC的设计中,CPU/RAM/IO都是被一条总线(BUS)连接起来, 所有的部件都必须在同步的模式下面工作,由CPU来决定的其他设备工作在什么频率(Frequency)上。

x86-1

这样就带来一个”互锁” (locked to each other )效应, 即大家都被限定在一个被所有设备所能承受的通用时钟频率(Clock Frequency)上面,系统的整体性能不高。


2 总线的第一次切分

1987年,康柏(Compaq)公司想到一个办法,将系统总线与I/O总线切分开来, 可以使得2个不同的总线工作在不同的时钟频率上面。CPU和内存仍旧工作在自己的公用总线上(the System Bus), 独立于所有的I/O设备,可以使得高速的CPU/RAM组件摆脱低速I/O设备的束缚。

x86-1

这里的Bridge,就是我们现在所说的南桥(South Bridge)芯片的前身, 而且此处可以看到Bridge实际起到了一个降频的作用(让我联想到了AMD K8 CPU的分频机制,这个稍后会在跟大家做详细说明)。


3 CPU倍频的出现

从80486开始,CPU的发展迅猛,频率大幅攀升,内存开始变得跟不上CPU的发展步伐了! Intel 于是决定在80486中引入倍频(Clock Doubler)的概念!内存依旧工作在系统总线上, 与系统总线保持同样的工作频率,而CPU实际的内部工作频率(就是我们常说的CPU主频)是:

CPU 主频 = 外频(系统总线频率/System Bus Frequency)* 倍频 (Clock doubler) CPU 主频 = 33 MHz * 2 = 66 MHz

x86-1

用Intel P4 2.8C为例子则是:200 MHz * 14 = 2800 MHz = 2.8 GHz


4 北桥芯片/前端总线的出现

从前面几点可以看到,PC结构变化的趋势是把速率慢的设备与速率快的设备用切割总线的方式,进行隔离。而这发展到后来,就终于演变出来了北桥(North Bridge)芯片!内存与北桥间的总线称为内存总线,把CPU与北桥间连接的这段总线成为前端总线(Front Side Bus,FSB),也就是系统总线(System Bus)!

得益于Intel的QDR (Quad Data Rate)技术,Pentium 4的CPU可以在每个时钟周期传输4次数据,所以当FSB的工作频率在200 MHz的时候,FSB的等效频率为200MHz * 4 = 800 MHz !

注:常说的FSB 800,实际是FSB的等效频率,并不是FSB实际的工作频率!


Links

  1. https://blog.csdn.net/xport/article/details/1387928