龙芯将两款 CPU 核开源,这意味着什么?
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核开源,一方面是为了配合国家计算机专业课程的教育改革,另一方面也是为了培养一批能给龙芯做基础软硬件开发的新鲜血液,并借此丰富龙芯的软件生态和产业链。不过,最后究竟能取得怎样的效果,还有待时间的检验。
http://www.oschina.net/news/78316/loongson-open-source-two-cpu-core
龙芯将两款 CPU 核开源,这意味着什么?的更多相关文章
- 【转帖】龙芯将两款 CPU 核开源,这意味着什么?
龙芯将两款 CPU 核开源,这意味着什么? https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core 文章挺不错的 也讲 ...
- [转帖]你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下)
你不曾见过的国产CPU:可能是最全的龙芯系列芯片家谱(下) https://www.ijiwei.com/html/news/newsdetail?source=pc&news_id=7177 ...
- [转帖]龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖
龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖 http://www.eetop.cn/cpu_soc/6946247.html 2019.10 的新闻 出后量 30万 我们贡献了 ...
- 龙芯(mips64)电脑安装NodeJS
背景 龙芯是国产的cpu,采用是mips架构,就类似大家熟知的x86.arm. 最近在一台龙芯电脑(系统是中兴新支点,Linux)上调试前端应用(electron),于是就需要安装NodeJS. 但是 ...
- 龙芯电脑上Electron应用开发
背景 最近在一台龙芯电脑(系统是中兴新支点,Linux)上开发electron应用. PS:龙芯是国产的cpu,采用是mips架构,类似x86.arm. 安装NodeJS 安装步骤请查看:https: ...
- Asp.Net终于可以在龙芯服务器上运行啦:Jexus成功完成对国产系列CPU的适配
为了确保我国信息化建设“安全可靠”,使用国产关键系统.关键应用.关键软硬件替代国外信息技术产品,已经在党政部门.国营企事业单位得到了进一步落实.过去运行于 Windows 服务器的 Web 应用程序, ...
- CPU的架构:x86、arm、mips、龙芯等
在公司经常听其他工程师讲x86,arm平台啥的,作为一个算法工程师,我听过却不知道这是啥!!!(汗颜) 现在偷偷学起: x86,arm,mips等这些都是CPU的架构,不管是手机电脑还是一些嵌入式的设 ...
- 实测两款 GitHub 开源抢票插件,所有坑都帮你踩过了
如果你对自己手速和市面上的各种 “加速包” 都没什么信心的话,不妨试试用程序员的手段抢票? 况且,[12306 官方宣布屏蔽了一大批付费抢票软件],这也意味着你即使给这些软件付了会员费,也依旧抢不到票 ...
- 龙芯团队完成CoreCLR MIPS64移植,在github开源
国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为 ...
随机推荐
- laravel--为什么属性在模型中没有定义,却取出来了值,这些属性哪里来的
看laravel模型中的这段代码, public function getLimitUsersAttribute() { return $this->user_limit - $this-> ...
- MySQL 5.6.26源码安装
5.6.26源码安装包:http://pan.baidu.com/s/1kUl44WRcmake安装包链接:http://pan.baidu.com/s/1c0LuwJA 操作系统版本:CentOS ...
- 从零开始学ios开发(十四):Navigation Controllers and Table Views(上)
这一篇我们将学习一个新的控件Navigation Controller,很多时候Navigation Controller是和Table View紧密结合在一起的,因此在学习Navigation Co ...
- vs2013中头文件中大小写的切换的快捷键
1.选中内容 2.ctrl+shift+u 例如: #include "LayerStart.h" -> #include "LAYERSTART.H&q ...
- GDAL编译(转)
一.简单的编译 1.使用VisualStudio IDE编译 首先进入GDAL的源代码目录,可以看到有几个sln为后缀的文件名,比如makegdal10.sln,makegdal80.sln,make ...
- Regex.Match 方法
Regex.Match 方法 在输入字符串中搜索正则表达式的匹配项,并将精确结果作为单个 Match 对象返回. 重载列表 (1) 在指定的输入字符串中搜索 Regex 构造函数中指定的正则 ...
- android 中使用回调方法(适用于自定义view传值到activity、adapter传值到activity)
如图所示: 每当listview中有选中的操作时都需要发消息给activity,用来实时改变真实需要支付的剩余金额. 代码暂不公开啦!公司项目!
- Django 学习笔记之二 基本命令
1.新建一个 django project 在Django安装路径下找到django-admin.py文件,我的路径是在C:\Python27\Lib\site-packages\Django-1.1 ...
- html+css学习笔记 3[浮动]
inline-block/float(浮动) 回顾:inline-block 特性: 1.块在一排显示 2.内联支持宽高 3.默认内容撑开宽度 4.标签之间的换行间隙被解析(问题) 5.ie ...
- 【转载】Hadoop历史服务器详解
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:过往记忆(http://www.iteblog.com/) 原文地址: ...