龙芯将两款 CPU 核开源,这意味着什么?

https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core

文章挺不错的

也讲了 mips arm 还有 ppc64的故事

之前听说过, 这次可以在学习一下。 
 

10月21日,教育部计算机类教学指导委员会、中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和GS232两款CPU核向高校和学术界开源。那么——

  • 龙芯开源的CPU核性能如何?

  • 以往将CPU开源的公司有哪些?

  • 开源CPU核又会带来哪些影响呢?

开源的CPU核性能如何?

CPU核也叫微结构,是决定CPU性能、安全、功耗、成本的最重要因素,日常我们所说的双核、四核、八核芯片,其实是将2、4、8个CPU核的接口互联并集成到一片硅片上,像Intel的Haswell、ARM的Cortex A72、AMD的Zen、龙芯的GS464E都是CPU核。在设计CPU的过程中,80%以上的功夫都用在CPU核上,因此,如何设计一个高性能的CPU核可以说是CPU设计中的关键技术之一。

目前,除了龙芯、申威、飞腾等老牌设计单位拥有自己设计的高性能CPU核之外,国内大多数IC设计公司依旧处于购买国外的IP“攒”出一个SOC的阶段,拥有自主设计CPU核的单位屈指可数。而龙芯本次将两款CPU核向高校和学术界开源,可以使学术界以龙芯的CPU核为基础开发产品,并以龙芯的CPU核为模板学习怎样设计CPU核。

龙芯开源的CPU核为GS132和GS232。GS132为单发射32位结构,采用三级静态流水结构,性能于ARM Cortex-M0/M3/M4相当。主要用于石油、电力、钻探、智能水表和智能电表。GS232为双发射32位结构,采用五级动态流水线结构,性能于ARM9和ARM11相当,在龙芯1A、1B、1C、1E中使用,主要用于各种嵌入式产品,在智能家电、人造卫星、工控等领域都有使用,像HS3700画质芯片就购买了GS232的授权,该芯片被用于海信的智能电视

Sun曾经将T1、T2开源

1985年,Sun成功研究出了Sparc精简指令集CPU,再辅助以基于Unix开发的服务器系统,使Sun在工作站和服务器领域崭露头角,并逐渐可以对抗惠普和DEC这样的传统中式小型计算机。1992年Sun推出了市场上第一台多处理器台式机SPARCstation 10 system, 1993年Sun进入财富500强,至2001年Sun在全球拥有五万雇员,市值超过两千亿美元。

Sun以硬件起家,但成也萧何,败也萧何,对硬件的重视,使Sun忽略了软件的重要性,特别是没能对Wintel联盟拥有足够的警惕性。在90年代末,因互联网的兴起,加上Sun的工作站相对于DEC 的小型机和 IBM 的大型机具有价格优势,这导致虽然Sun的中小企业市场份额不断被Wintel蚕食,但由于其工作站可以侵占DEC 和 HP 小型机的市场,其盈利模式得以延续。但在互联网泡沫破裂后,加上Wintel联盟的倾轧,Sun服务器和工作站业务则难以为继,仅2002年上半年就营业额同比跌至3称,并从2001年的盈利9亿美元,跌至亏损5亿美元,随后Sun一蹶不振,在2009年被甲骨文以74亿美元收购。在被收购前,也许是为了放手一搏,或又是为了其他什么原因,Sun将UltraSparc T1、T2开源。

T1和T2到底如何呢?根据知乎网友“迪迦奥特曼”介绍,Sun开源了全套的RTL代码……拿着Sun开源的那套东西,做一些自定义修改,可以跑FPGA。学术圈里面已经有几个拿着OpenSPARC T1成功流片的项目,所以流片是肯定可行的…..不过T1、T2单核性能非常差,T1相当于上世纪80年代末期的水平,而T2相当于90年代早期的水平。所以千万不要指望T1和T2能有什么商业竞争力。OpenSPARC T1/T2现在最大的价值是帮助学术圈中的研究者们快速搭建一个原型系统,并且能感受一下2002~2005年时的工业级代码长什么样子。知乎网友“迪迦奥特曼”还表示,T2的源码存在BUG,至于是故意埋进去的,还是开源的时候没有处理好导致的无心之失,他就不知道了。

另外,据说国防科大在充分借鉴T1和T2的源代码后,先后开发出了飞腾1000和飞腾1500,两款芯片分别被用于天河1号和天河2号。

IBM的OpenPOWER

Power诞生于1990年,并斩获过多项世界第一——全球第一个双核CPU,全球第一款刀片服务器CPU,第一个战胜国际象棋冠军加里·卡斯帕罗夫的电脑深蓝所采用的CPU,第一个量产主频超过5G的CPU,第一个高超线程的CPU,以及第一个5000针的CPU,以及第一个封测成本比硅片成本还高的CPU,第一个单芯片量产价格突破10万美元的CPU......其应用范围曾经涵盖过小型、中型、大型主机,从高端到低端的工作站都可以看见Power的身影。

此外,Power还曾占据服务器市场三分之二的市场份额。而IBM也凭借Power巩固了自己科技巨人的地位,不仅在CPU研发上有着乱序执行的基础框架、寄存器重命名等一些列先驱性贡献,在科研上曾经一度成果斐然——在2001年,IBM获得美国专利和商标局授权专利数量高达3411项,比HP、Intel、Sun、Microsoft、Compaq、Dell、Apple、EMC、Oracle、EDS、Accenture和AOL在内的12家最大的美国IT业公司加在一起还要多。

但就在IBM和Power芯片光芒四射的同时,Intel却利用与微软结成联盟,并充分借力戴尔、康柏等整机厂,以Wintel联盟的方式在市场上大杀四方,加上IBM太过于任性,更倾向于服务土豪用户,没能细分和精耕市场,对市场和研发的综合掌握能力都不及Wintel,使Power空有一身高性能却难以抵挡Wintel联盟的侵蚀——从PC到工作站、服务器Power、Sparc等架构CPU的市场份额逐步被X86架构CPU蚕食。

与此同时,由于软件厂商若要兼容多种架构CPU的成本越来越高,造成软件厂商开始逐步放弃兼容一些架构的CPU——Power、Mips、Sparc、Alhpa等架构CPU先后被软件厂商抛弃,而原本性能最弱的X86芯片则依靠Wintel联盟和软件生态的优势笑到了最后。即便是曾经占据三分之二市场份额的服务器领域,低端服务器已然被Intel的X86芯片侵占,Power唯有在对可靠性、稳定性要求非常高,在决策上也非常保守的使用场景下,比如银行所采用的高端服务器市场寻找存在感。

正是昔日曾经辉煌的Power有着日渐被边缘化的趋势,如果IBM依然完全独占Power,其他IT公司根本不会基于Power构建基础软硬件。因此,IBM选择了联合Google、NVIDIA、TYAN、Mellanox成立了OpenPOWER联盟和OpenPOWER基金会试图力挽狂澜,旨在通过开放合作的模式,将IBM的Power硬件资产与软件堆栈,以及第三方联盟伙伴的软件堆栈深度结合,在芯片设计、系统设计与开源软件三个层面推动Power生态环境的发展与壮大。

不过,相对于Sun开源T1、T2后,大家都可以免费下载源码不同,要获得Power的源码,要付出不菲的代价,以2014年IBM向中国大陆中晟宏芯授权Power8源代码为例,为了拿到Power的全套代码和工具,据小道消息称,中方为此支付了2亿美元左右的费用。

学术界将收益于龙芯CPU开源

一直以来,我国计算机领域的教育更多的还是教学生如何“用”计算机而不是“造”计算机,这直接导致国内IT人才结构失衡,应用开发型人才充足,但底层基础系统研发人才却极度匮乏,使中国庞大的IT产业建立在国外软硬件系统平台之上。

龙芯将CPU核向高校和学术界开源,则给予在校大学生一个很好的学习实践平台——龙芯中科资助大学老师基于龙芯平台设计实验课程,使学生可以在真实的(而不是简化的)CPU上运行真实的(而不是简化的)操作系统,在龙芯实验平台上启动操作系统并进行性能分析。在流水线设计方面,让学生把GS132的三级静态流水线改造成五级静态流水线。在TLB和Cache设计方面,让学生在五级GS132处理器核上按MIPS32规范实现TLB及Cache,运行通用操作系统,进行有/无Cache的性能分析。在双发射结构设计方面,把GS132处理器核改造成双发射CPU,进行单发射和双发射性能比较。在动态流水线设计方面,在GS232基础上改写部分模块(如乘法器、保留站等)进行静态单发射、静态双发射、动态双发射的性能分析。

(龙芯教育实验平台)

此外,龙芯还研发了CPU实验平台、操作系统实验平台、并行处理实验平台等数款龙芯教学平台,通过为高校提供完整的线上、线下实验环境,助力教学改革和计算机专业学生的系统能力培养,实现“设计真实处理器,运行真实操作系统”。

总之,正如知乎网友“迪迦奥特曼”对OpenSPARC的评价:OpenSPARC T1/T2现在最大的价值是帮助学术圈中的研究者们快速搭建一个原型系统,并且能感受一下2002~2005年时的工业级代码长什么样子。龙芯将两款CPU核开源的影响和作用也大致与OpenSPARC类似。

助推软件生态建设

目前,在龙芯3A3000已经成功流片的情况下,就党政军办公市场而言,龙芯最大的问题已经不是CPU的性能不够用,而是缺乏软件生态的支持,而软件生态建设单凭龙芯自己是很难做起来的,必须依靠众人拾柴火焰高的模式,发动合作伙伴、开源社区、以及创客群体共同建立。这时候适当的将两款CPU核向高校和学术界开源,有助于让广大在学生学习如何围绕龙芯进行开发,在莘莘学子毕业后,自然能掌握围绕龙芯进行开发的相关技能,这有助于龙芯软件生态建设。

不过,将CPU核开源并不意味着一定就能把生态建立起来,以往也有一些IT公司将自己的CPU开源,比如SUN就曾经将自己的CPU开源,国防科大还下载了源代码,并以此为基础开发了飞腾1000和飞腾1500,这两款CPU还被用于天河1号和天河2号。不过即便如此,也无法挽救SPARC逐渐被边缘化的命运,其生态至今也没能建立起来。

在去年年底,ARM将Cortex-M0处理器开源,并以优惠的授权费帮助初创厂商加快芯片开发进程。另外,还有risc-v这样的开源产品,而且有越来越火的趋势——linux、gcc、llvm甚至bsd类操作系统都开始支持risc-v...... 正由于开源的CPU核并非只有龙芯,单纯希望依靠将CPU核开源就能建起软件生态的想法显然是不切合实际的,要对生态建设起到积极作用,一方面需要长时间的持续投入,另一方面也需要企业、高校联合协同,密切配合。

结语

龙芯之所以将两款CPU核开源,一方面是为了配合国家计算机专业课程的教育改革,另一方面也是为了培养一批能给龙芯做基础软硬件开发的新鲜血液,并借此丰富龙芯的软件生态和产业链。不过,最后究竟能取得怎样的效果,还有待时间的检验。

【转帖】龙芯将两款 CPU 核开源,这意味着什么?的更多相关文章

  1. 龙芯将两款 CPU 核开源,这意味着什么?

    10月21日,教育部计算机类教学指导委员会.中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和G ...

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

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

  3. [转帖]龙芯下一代处理器微结构GS464E细节曝光

    龙芯下一代处理器微结构GS464E细节曝光 [日期:2015-05-26] 来源:Linux公社  作者:Linux [字体:大 中 小] http://www.linuxidc.com/Linux/ ...

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

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

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

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

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

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

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

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

  8. [转帖]判断Linux进程在哪个CPU核运行的方法

    判断Linux进程在哪个CPU核运行的方法   原文网址:http://www.embeddedlinux.org.cn/html/xinshourumen/201601/30-5013.html 问 ...

  9. [转帖]你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下)

    你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下) https://www.ijiwei.com/html/news/newsdetail?source=pc&news_id=7177 ...

随机推荐

  1. String.getBytes()方法中的中文编码问题(转)

    String的getBytes()方法是得到一个系统默认的编码格式的字节数组getBytes("utf-8")  得到一个UTF-8格式的字节数组 把String转换成bytes, ...

  2. Codeforces 1243 D 0-1 MST

    题面 隐隐感觉N年前做过一道类似的题. 很显然我们只需要考虑,仅有0边的子图有多少个连通块,然后这个数量减去1就是答案了(这个和kruscal过程等价). 然后其实就是妥妥的暴力了...因为1边数量非 ...

  3. CF540D Bad Luck Island

    嘟嘟嘟 看到数据范围很小,就可以暴力\(O(n ^ 3)\)dp啦. 我们令\(dp[i][j][k]\)表示这三种人分别剩\(i, j, k\)个的概率.然后枚举谁挂了就行. 这里的重点在于两个人相 ...

  4. k8s/Kubernetes常用组件Helm的部署

    Helm的安装 1.Helm的基本概念 Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理.可以把Helm比作CentOS的yum工具. Helm有如下几个基 ...

  5. cdh版hbase构建Phoenix 遇到的坑

    Phoenix 构建cdh版hbase遇到的坑 1. 安装phoenix 下载:在github上下载对应版本https://github.com/apache/phoenix 解压:略 编译: 修改根 ...

  6. 手写alert弹框(一)

    采用原生的JavaScript, html代码 <meta name="viewport" content="width=device-width, initial ...

  7. flask 设置配置文件的方式

    from flask import Flask from flask import current_app """ 配置参数设置与读取 """ ...

  8. 冲刺阶段——Day6

    [今日进展] 完成登录代码 userRegister类 import java.awt.*; import java.awt.event.ActionEvent; import java.awt.ev ...

  9. 微信小程序倒计时的方法

    timeOut: function(time) { var that = this; var end = new Date(time).getTime(); var Interval = setInt ...

  10. 验证HashSet和HashMap不是线程安全

    JAVA集合类: java.util包下的HashSet和HashMap类不是线程安全的, java.util.concurrent包下的ConcurrentHashMap类是线程安全的. 写2个测试 ...