龙芯下一代处理器微结构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. erc721-165学习

    ERC165: https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md 就是一种发布并能检测到一个智能合约实现了什么接口的标准 这么做 ...

  2. Linux企业运维人员最常用150个命令汇总 [转]

    近来发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! 命令 ...

  3. (转)linux下查看已安装的软件与卸载

    因为linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa ...

  4. Linux kernel Programming - Allocating Memory

    kmalloc #include <linux/slab.h> void *kmalloc(size_t size,int flags); void kfree(void *addr); ...

  5. linux中断源码分析 - 中断发生(三)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 回顾 上篇文章linux中断源码分析 - 初始化(二)已经描述了中断描述符表和中断描述符数组的初始化,由于在初始 ...

  6. keystone系列一:keystone基础

    一 什么是keystone keystone是OpenStack的身份服务,暂且可以理解为一个'与权限有关'的组件. 二 为何要有keystone Keystone项目的主要目的是为访问opensta ...

  7. Google 是如何收集我们的个人数据的

    简评:还有其他公司比 Facebook 更能收集我们的数据么?大概,可能,没准是谷歌.(文末彩蛋) 最近 Facebook 已经因为收集个人数据而站在了聚光灯前,它收集用户数据并因此获利. 但是要知道 ...

  8. 数据库sql的in操作,解决in的过多

    一个sql的拼写后,服务器会把这个sql传送到数据库服务器执行,一般不在一个物理机上.那么传送需要走网络,包丢失等网络情况就可能出现. 一般情况,一个sql的长度不会很大,但是有种这样的情况.in操作 ...

  9. 分析网络流量Capsa笔记

    Capsa是一款网络分析仪,允许您监控网络流量,解决网络问题并分析数据包.通过提供生动的图表,通过设计良好的GUI提供丰富的统计信息和实时警报,Capsa可让IT管理员实时识别,诊断和解决有线和无线网 ...

  10. tornado学习篇(第二部)

    执行字符串表示的函数,并为该函数提供全局变量 本篇的内容从题目中就可以看出来,就是为之后剖析tornado模板做准备,     #!usr/bin/env python #coding:utf-8 n ...