近日,龙芯在《中国科学:信息科学》公布了下一代处理器微结构GS464E的设计,并公开了相关数据测试结果。笔者有幸从龙芯中科技术有限公司得到了第一手的数据资料。龙芯下一代处理器性能究竟如何,是否如文章所宣传那样神奇,还是像部分网友所吐槽的一钱不值,让我们一同来看看。
据龙芯技术人员介绍,龙芯现有的两个多核桌面处理器分别是四核心的3A-1000和八核心的3B-1500,其内核均为2006年定型的GS464微架构(GS是龙芯英文学术代号Godson的缩写,464代表采用4发射64位结构)。关于处理器的微结构,通俗点说就是一款处理器的设计图纸;有了设计图纸之后就可以进行工程实现。如今老旧的GS464核心已经不堪重任,各项性能指标与当前国际主流CPU差距越来越大,无法适应竞争激烈的芯片市场。从2011年起,龙芯公司启动了全新一代微结构——GS464E(E代表增强型)的设计工作,历时三年左右开发完成。
在GS464E结构开发之初,龙芯就把Intel的Ivybridge、IBM Power7的微结构设计作为其设计对标产品。因此在微结构设计参数上跟上述两款处理器的微结构设计参数比较接近。如下表所示。
|
Intel Ivybridge |
IBM Power7 |
龙芯GS464E |
前端 |
|||
取指宽度 |
16 字节/时钟周期 |
8 指令/时钟周期 |
8 指令/时钟周期 |
一级指令缓存 |
32KB, 8 路, 64B/行 |
32KB, 4 路, 128B/行 |
64KB, 4 路, 64B/行 |
指令TLB |
128 项, 4 路, L1 ITLB |
64 项, 2 路, L1 ITLB |
64 项, 全相联, L1 ITLB |
分支预取 |
BTB (8K-16K项) |
8K 项本地 BHT 队列, |
8K项本地 BHT 队列 |
间接目标队列 (? 项) |
16K 项全局BHT 队列, |
8K项全局BHT 队列 |
|
RAS (? 项) |
8K 项 全局 sel 队列 |
8K项 全局 sel 队列 |
|
循环检测 |
128 项间接目标队列 |
1K项间接目标队列 |
|
|
16 项 RAS |
16项 RAS |
|
|
|
循环检测 |
|
乱序执行 |
|||
Reorder缓存 |
168 项 |
120 项 |
128 项 |
发射队列 |
54-项 统一 |
48-项 标准 |
24-项 浮点; |
16-项 定点; |
|||
32-项 访存 |
|||
寄存器重命名 |
160 定点; |
80 定点,浮点; |
128 定点; |
144 浮点 |
56 CR; |
128 浮点/向量; |
|
|
40 XER, |
16 Acc; |
|
|
24 Link&Count |
32 DSPCtrl; |
|
|
|
32 FCR |
|
执行单元 |
|||
执行单元个数 |
ALU/LEA/Shift/128位 MUL/128位 Shift/256位FMUL/256位Blend + |
2 定点 + |
2 定点/转移/DSP + |
ALU/LEA/Shift/128位 ALU /128bit Shuffle/256位 FADD + |
2 浮点/向量 + |
2 浮点/向量 |
|
ALU/Shift/Branch/ |
1 转移 + |
|
|
128位 ALU/128bit Shuffle/256位 Shuffle/256位 Blend |
1 CR |
|
|
向量部件宽度 |
256位 |
128位 |
256位 |
访存执行单元 |
2 取+ 1 存 |
2 取/存 |
2 取/存 |
Load/Store队列 |
64-项 Load 队列, |
32-项 Load队列, |
64-项 取/存 队列 |
36-项 Store队列 |
32-项 Store 队列 |
||
Load/Store 宽度 |
128 位 |
256 位 load, |
256 位 |
128 位 Store |
|||
TLB |
100项全相联, L1 DTLB, |
64项全相联, L1 DTLB, |
32-项全相联, L1 DTLB,每项两页 |
512项4路, L2 TLB |
512项4路, L2 TLB |
1024项8路,L2 TLB,每项两页 |
|
一级数据缓存 |
32KB, 8 路, 64B/行 |
32KB, 8 路, 128B/行 |
64KB, 4 路, 64B/行 |
二级缓存 |
每核256KB, 8路, 64B/行 |
每核256KB, 8路, 28B/行 |
每核256KB, 16路,64B/行 |
三级缓存 |
8个核20 MB |
8个核32 MB |
4个核4 MB~8MB |
一级 Load-to-use 延迟 |
定点4时钟周期, |
定点2时钟周期, |
定点3时钟周期, |
浮点/向量5时钟周期 |
浮点/向量3 时钟周期 |
浮点/向量5 时钟周期 |
|
二级 Load-to-use 延迟 |
12 时钟周期 |
8 |
22 时钟周期 |
多层次硬件预取 |
有 |
有 |
有 |
表1 Ivybridge、Power7、GS464E微结构设计参数对照表
从上表可以看出,龙芯GS464E微结构设计参考了Intel Ivybridge,Power7等国外先进处理器的设计,各参数均比照了世界最先进的架构进行设计。我们来看龙芯公司公布的芯片正式流片之前的一些小程序的验证情况,第三列是参考Intel Ivybridge的数据。
测试程序 |
GS464 |
GS464E |
Intel IvyBridge |
Microbench-C(分支误预测率,越小越好) |
|
|
|
Cond |
3.38% |
<0.1% |
<0.1% |
ComplexCtrl |
8.13% |
0.5% |
0.06% |
Switch1 |
18.78% |
0.3% |
10.08% |
Switch2 |
18.65% |
4.0% |
14.86% |
Switch3 |
13.73% |
6.0% |
14.28% |
Recur |
33.64% |
0.3% |
0.01% |
Memcpy (MB/s) (越大越好) |
400 |
6150 |
8500 |
Stream Copy (MB/s)(越大越好) |
460 |
5500 |
6599 |
Coremark(越大越好) |
3.66 |
5.17 |
5.44 |
Linpack kernel (%)(越高越好) |
60% |
91% |
90-97% |
Whetstone (WMIPS/Hz) (越大越好) |
1.66 |
1.78 |
1.51 |
表2 GS464,GS464E,Ivybridge验证对比
从以上数据可以看出,龙芯GS464E在架构设计上比上一代GS464有了质的提升,已经远远超过了上一代的GS464。并且,绝大多数参数已经接近intel在2012年推出的ivybridge,甚至在分支误预测率和浮点程序性能上有些还超过了Ivybridge的指标。由此可见,龙芯团队的处理器结构设计能力,与世界领先的Intel的设计能力正在逐步缩小。
据悉,基于GS464E架构的龙芯3A2000/3B2000已经完成流片并于2015年4月回到龙芯公司,根据龙芯公司的说法,龙芯3A2000为单路4核的桌面版本,龙芯3B2000为支持双路8核以及四路16核的服务器版本。龙芯公司目前提供了对龙芯3A2000的部分实测数据:
龙芯3A2000/3B2000的设计版图
|
架构 |
SPEC CPU定点 |
SPEC CPU 浮点 |
龙芯3A1000(1.0G) |
GS464 |
373 |
298 |
龙芯3A2000(1.0G) |
GS464E |
762 |
1125 |
性能提升 |
|
104% |
278% |
表3 龙芯3A2000与3A1000的SPEC CPU2000测试对比
|
Copy |
Scale |
Add |
Triad |
龙芯3A1000(DDR3-600) |
709 |
694 |
890 |
875 |
龙芯3A2000(DDR3-1333) |
12306 |
12234 |
12194 |
12140 |
性能提升 |
1636% |
1663% |
1270% |
1287% |
表4 龙芯3A2000与3A1000的内存带宽测试对比
简单的科普一下,第一个表采用了SPEC CPU2000测试作为对比,SPEC CPU 2000是国际上通用的CPU性能测试程序,其数据对CPU计算性能有很大的参考性。可以看到无论是定点分值还是浮点分值,3A2000比3A1000都有了至少一倍甚至二倍以上的提高。第二个表以内存带宽测试作为对比,在实际程序运行中,光有CPU的计算能力是不够的,还要有足够的内存带宽作为支撑。从测试结果看,龙芯3A 2000的内存带宽实测性能在各方面普遍要比龙芯3A1000的内存带宽实测性能提升了十多倍。根据龙芯公司技术工程师的说法,上一代龙芯3A产品在设计上由于经验不足考虑不周全,导致内存带宽上表现太弱,是上一代3A产品的主要瓶颈。由此带来的不足使得用户体验表现较差。而现在LS2000解决了这个问题,在主频没有提升的情况下,用户体验有大跨步的提升,虽然和主流Intel产品还有差距,但是在微处理器结构这一方面,这个差距已经越来越小。
为了与目前市面上主流CPU的架构设计进行一个归一化的比较,龙芯公司给出了按照SPEC/GHz分数作为参考分值对不同主流处理器架构的性能差异进行了比较,见上图所示。从图上很容易的可以看出,GS464E架构已经接近intel和AMD的现在市场上的主流架构性能了,SPEC CPU性能与Intel core i3-550和AMD fx-8320基本相当,与Intel core i5略有差距,已经明显强于Intel Atom架构、威盛Nano处理器架构和 ARM最新的64位A57架构。并且LS3A2000尚未得到编译器充分优化,已经可以跑出这样成绩的同频效率。
结论:正如龙芯公司自己所说的那样,龙芯产品在过去几年的市场检验中发现了自己的不足,并找到了瓶颈问题,这次GS464E的发布,从数据上看比上一代GS464核的确有了大幅度的提升。虽然龙芯的主频还要比intel/AMD的芯片差2倍以上,整体性能依旧落后不少,但同频性能接近I5-2300已经证明新架构的实力的确强悍。LS3A2000只是GS464E的第一版产品,制造工艺仍旧是40nm,主频仍然是1GHz左右,个人认为其有一定的验证性质,但是性能已经较上一代3A1000处理器有了成倍的提高。在不久的将来,随着采用更高的28nm工艺的处理器推出,龙芯就该有资格尝试和Intel的商用主流CPU一较高下了。