龙芯下一代处理器微结构GS464E细节曝光

[日期:2015-05-26] 来源:Linux公社  作者:Linux [字体:  ]

http://www.linuxidc.com/Linux/2015-05/118009.htm

近日,龙芯在《中国科学:信息科学》公布了下一代处理器微结构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一较高下了。

本文永久更新链接地址http://www.linuxidc.com/Linux/2015-05/118009.htm

[转帖]龙芯下一代处理器微结构GS464E细节曝光的更多相关文章

  1. [转帖]龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上

    龙芯3A4000处理器实测:28nm工艺不变 性能仍可提升100%以上 http://news.mydrivers.com/1/663/663122.htm 龙芯是中科院下属的计算机所研发的自主产权国 ...

  2. 【转帖】龙芯3A3000处理器深度评测:和Intel、AMD差距巨大

    龙芯3A3000处理器深度评测:和Intel.AMD差距巨大 https://www.eefocus.com/mcu-dsp/424623/r0 作者非计算机科班毕业 让我汗颜. 我计算机毕业都不知道 ...

  3. [转帖]龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖

    龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖 http://www.eetop.cn/cpu_soc/6946247.html 2019.10 的新闻 出后量 30万 我们贡献了 ...

  4. [知乎]这可能是最全面的龙芯3A3000处理器评测

    这可能是最全面的龙芯3A3000处理器评测 第一千零一个人   已关注 蓬岸 Dr.Quest . https://zhuanlan.zhihu.com/p/50716952 这里面链接很全. 立党 ...

  5. ORI-621龙芯3A处理器CPCI刀片计算机

    ORI-621龙芯3A处理器CPCI刀片计算机 一.产品简介 ORI -621是一款基于龙芯3A国产CPU处理器的特种CPCI刀片计算机.该产品成功地实现了服务器NUMA架构在国产特种计算机中的应用, ...

  6. 国产龙芯3A3000处理器评测:与英特尔差距明显

    国产龙芯3A3000处理器评测:与英特尔差距明显 国产龙芯3A3000处理器评测:与英特尔差距明显 新浪财经APP缩小字体放大字体收藏微博微信分享579 新酷产品第一时间免费试玩,还有众多优质达人分享 ...

  7. [转帖]龙芯服务器部署WEB服务的体验和详细步骤

    龙芯服务器部署WEB服务的体验和详细步骤 2019年01月02日 18:40:34 weixin_40065369 阅读数 1733   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权 ...

  8. [转帖] 龙芯 中标麒麟的 源 以及K8S

    龙芯Mips64el平台上部署K8s https://ysicing.me/posts/mips64el-loongson-k8s/ YSICING May 29 2019   kubernetes ...

  9. [转帖]龙芯:Docker 配置与实践清单

    Docker 配置与实践清单 http://www.sohu.com/a/254904706_198222 文章对来官方文档及 Docker Links[1] 中链接内容进行归档整理,包含了日常工作中 ...

随机推荐

  1. java list 排序,建议收藏的排序方法

    每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code public static void main(String[] args) {    ...

  2. ORA-01031: insufficient privileges 错误解决

    OS:linux redhat5.5  32bit 数据库:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 1.问题描述:该数据库监 ...

  3. Linux系统学习之进程管理

    什么是进程? 进程表示程序的一次执行过程,它是应用程序的运行实例,是一个动态的过程.或者可以更简单地描述为:进程是操作系统当前运行的程序.当一个进程开始运行时,就要启动了这个过程.进程包括动态的执行的 ...

  4. [转]Qt中定时器使用的两种方法

    Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 其精确度一般依赖于操作系统和硬件,但一般支持20ms.下面将分别介绍两种方法来使用定时器. 方法 ...

  5. JAVA 第九周学习总结

    20175308 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 准备工作 下载MYSQL数据库管理系统 前往MYSQL官网的下载页面,选择相应平台的MYSQ ...

  6. Daily Sentence(英语每日一句)

    1.When you want to give up, remember why you started. 当你想要放弃的时候,请记住当初你为何而开始. 2.It does not do to dwe ...

  7. Lauterbach TRACE32技巧小集

    1. TRACE32中实现类container_of功能 假设现在我只知道一个全局变量成员tv2的地址,类型是tvec_base.我想知道这个全局变量的地址怎么办? struct tvec_base ...

  8. 【小程序】模拟数据支持(mockjs配置模拟服务器接口数据)

    utils目录 ①下载mockjs(地址)放置utils目录中 ②新建api.js :配置模拟数据以及后台接口,通过DEBUG=ture;  //切换数据接口 配置如下: let API_HOST = ...

  9. CF954I Yet Another String Matching Problem 并查集、FFT

    传送门 题意:给出两个由小写$a$到$f$组成的字符串$S$和$T$($|S| \geq |T|$),给出变换$c1\,c2$表示将两个字符串中所有$c1$字符变为$c2$,求$S$的每一个长度为$T ...

  10. 51NOD1522 上下序列/CF567F Mausoleum DP

    题目传送门:http://codeforces.com/problemset/problem/567/F 大致题意:你有$1$到$N$的所有正整数每个数两个,现在需要你将它排成一个序列,使得序列为单峰 ...