龙芯下一代处理器微结构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. cmd 监控网络状况

    提示:如果提示curl不是内部命令,请自行百度 windows 安装curl @echo off color 1f title 正在监控 echo 正在监控http://ioscheck.duapp. ...

  2. 2.1 View与ViewGroup的概念

    http://www.runoob.com/w3cnote/android-tutorial-view-viewgroup-intro.html UI Overview 在Android APP中,所 ...

  3. Qt 编程指南 7 添加背景

    . #include "QT_Text1.h" #include <QtWidgets/QApplication> #include <QBitmap> i ...

  4. 为什么说Redis是单线程的以及Redis为什么这么快!(转)

    文章转自https://blog.csdn.net/chenyao1994/article/details/79491337 一.前言 近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到 ...

  5. java 实现serialVersionUID

    文章转自  https://www.cnblogs.com/duanxz/p/3511695.html 作用 serialVersionUID适用于Java的序列化机制.简单来说,Java的序列化机制 ...

  6. 手把手教你Chrome浏览器安装Postman(含下载云盘链接)(转)

    文章转自http://www.ljwit.com/archives/php/278.html 说明: Postman不多介绍,是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件.本文主要 ...

  7. Java内存区域划分、内存分配原理(转)

    文章引用自 http://blog.csdn.net/OyangYujun/article/details/41173747 运行时数据区域 Java虚拟机在执行Java的过程中会把管理的内存划分为若 ...

  8. OnlineJudgeFE之前端二次开发

    之前我们在这篇文章青岛大学开源OJ平台搭建 讲了关于它的安装和部署. 今天我们讨论如何对其进行二次开发.首先谈谈前端的二次开发. 如果想要对青岛大学的OJ项目进行二次开发,目前我觉得要满足这么几个要求 ...

  9. 【Codeforces Round 1137】Codeforces #545 (Div. 1)

    Codeforces Round 1137 这场比赛做了\(A\).\(B\),排名\(376\). 主要是\(A\)题做的时间又长又交了两次\(wa4\)的. 这两次错误的提交是因为我第一开始想的求 ...

  10. 动手动脑(lesson 6)

    一.继承条件下的构造方法调用 运行结果: 二. 答:构造函数的主要作用是初始化环境,子类是继承的父类,也就是说父类中有的子类全都有,而子类中有的父类不一定有,因此子类运行会调用父类构造函数,而父类不可 ...