Intel CPU的微架构

一张表格让你了解Intel的CPU微架构历史。

Codename Year Transistors Example Model
Icelake 2018??? 10nm ???
Cannonlake 2017??? 10nm ???
Coffee Lake 2017 14nm i3-8100
i5-8400
i7-8700
Kaby Lake 2016 14nm i3-7101
i5-7400
i7-7700
Xeon E3-1220 v6
Skylake 2015 14nm i3-6100
i5-6400
i7-6700
Xeon E3-1220 v5
Broadwell 2014 14nm i3-5005
i5-5200
i7-5500
Xeon E5-2603 v4
Haswell 2013 22nm i3-4130
i5-4670
i7-4770
Xeon E7-4809 v3
Ivy Bridge 2012 22nm i3-3210
i5-3330
i7-3770
Xeon E5-2403 v2
Sandy Bridge 2011 32nm i3-2100
i5-2300
i7-2600
Xeon E5-2403
Westmere 2010 32nm i3-530
i5-650
i7-970
Xeon E5620
Nehalem 2008 45nm i5-750
i7-860
Xeon E5506
Core 2006 65nm-45nm Core 2 Duo
Core 2 Quad
Xeon E53xx
NetBurst 2000 180nm-65nm Pentium 4
Xeon
Pentium M 2003 90nm Pentium M
Core Duo
Core Solo
P6 1995 350nm-130nm Pentium Pro
Pentium II
Pentium III

Notes:

  • Pentium M其实是P6的移动平台版本。

  • 首款支持x86_64指令集的CPU由AMD在2000年左右推出。而Intel在2004年才有类似产品(Xeon,CPU代号Nocona, 使用NetBurst微架构),在移动平台则于2006年支持(代号Merom,Core 2)。

  • 流水线长度并不是越长越好。NetBurst有20级pipeline,后期甚至提高到31级。主频虽然提上去了(2004年的Prescott主频可以达到4.0G,相比较而言,2015年Skylake架构下的高端型号i7-6700K也不过4.0G主频),但是指令延迟也增加了,整体而言CPU的性能却下降了。因此后面的Core微架构直接把pipeline降到了12级。

  • L1 cache的大小在Nehalem(2008年推出)之后的CPU架构上是64KB每核心,L2 cache是256KB每核心,L3 cache在2MB以上,可能是所有核心共享。如果不加cache,使用CPU+DRAM的结构,CPU访问内存的延迟在80个时钟周期左右。如果加上cache,L1的延迟4个周期左右,L2的延迟15个周期左右,L3的延迟50个周期左右,此时由于添加cache的缘故,CPU访问内存的延迟提高到120个时钟周期左右。如果CPU需要的内容,90%在L1 Cache里有,6%在L2 Cache里有,3%在L3 Cache里有,1%要去找DRAM拿。那么整个存储体系的等效延迟就是:7.2个时钟周期。参考知乎

  • HyperThread(HT,超线程)TODO

  • SuperScalar(超标量)TODO

  • 主频,倍频 TODO