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 核开源,这意味着什么?的更多相关文章

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

    龙芯将两款 CPU 核开源,这意味着什么? https://www.oschina.net/news/78316/loongson-open-source-two-cpu-core 文章挺不错的 也讲 ...

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

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

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

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

  4. 龙芯(mips64)电脑安装NodeJS

    背景 龙芯是国产的cpu,采用是mips架构,就类似大家熟知的x86.arm. 最近在一台龙芯电脑(系统是中兴新支点,Linux)上调试前端应用(electron),于是就需要安装NodeJS. 但是 ...

  5. 龙芯电脑上Electron应用开发

    背景 最近在一台龙芯电脑(系统是中兴新支点,Linux)上开发electron应用. PS:龙芯是国产的cpu,采用是mips架构,类似x86.arm. 安装NodeJS 安装步骤请查看:https: ...

  6. Asp.Net终于可以在龙芯服务器上运行啦:Jexus成功完成对国产系列CPU的适配

    为了确保我国信息化建设“安全可靠”,使用国产关键系统.关键应用.关键软硬件替代国外信息技术产品,已经在党政部门.国营企事业单位得到了进一步落实.过去运行于 Windows 服务器的 Web 应用程序, ...

  7. CPU的架构:x86、arm、mips、龙芯等

    在公司经常听其他工程师讲x86,arm平台啥的,作为一个算法工程师,我听过却不知道这是啥!!!(汗颜) 现在偷偷学起: x86,arm,mips等这些都是CPU的架构,不管是手机电脑还是一些嵌入式的设 ...

  8. 实测两款 GitHub 开源抢票插件,所有坑都帮你踩过了

    如果你对自己手速和市面上的各种 “加速包” 都没什么信心的话,不妨试试用程序员的手段抢票? 况且,[12306 官方宣布屏蔽了一大批付费抢票软件],这也意味着你即使给这些软件付了会员费,也依旧抢不到票 ...

  9. 龙芯团队完成CoreCLR MIPS64移植,在github开源

    国产龙芯的软件生态之中.NET不会缺席,毕竟 C# 与 .NetCore/Mono 也是全球几大主流的编程语言和运行平台之一,最近一段时间听到太多的鼓吹政务领域不支持.NET, 大家都明白这是某些人为 ...

随机推荐

  1. SQLite数据库的加密【转】

    1.创建空的SQLite数据库. //数据库名的后缀你可以直接指定,甚至没有后缀都可以 //方法一:创建一个空sqlite数据库,用IO的方式 FileStream fs = File.Create( ...

  2. Python标准库 urllib2 的使用

    1.Proxy 的设置 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy. 如果想在程序中明确控制 Proxy,而不受环境变量的影响,可以使用下面的方式 impo ...

  3. Java 图形编程 一:入门

    package second; import java.awt.Color; import java.awt.Frame; import java.awt.event.WindowAdapter; i ...

  4. ios6 处理内存警告

    iPhone下每个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息.收到此消息后,app必须正确处理,否则可能出错或者出现内存泄露 ...

  5. matlab实现插值法sin函数

    插值法实现sin函数: %calculate and print the sine function %input: x %output: sin(x) similar function y = si ...

  6. Spring4新特性简述

    Spring是一个java世界中极其流行 的开源框架.Spring的初衷是降低企业级开发的复杂性,并试图通过POJO对象实现之前EJB这类重型框架才能实现的功能.Spring不仅仅对服务 端开发有用, ...

  7. res/drawable目录下图片的Uri

    http://liuyun025.iteye.com/blog/1280838 有时候,我们要用到res/drawable目录下的图片Uri,而这个Uri该如何生存呢?下面就是这Uri的生成方法: U ...

  8. MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能

    MYSQL-实现ORACLE- row_number() over(partition by ) 分组排序功能 由于MYSQL没有提供类似ORACLE中OVER()这样丰富的分析函数. 所以在MYSQ ...

  9. spoj 274

    离散化   枚举行  扫描横坐标 #include <iostream> #include <cstdio> #include <cstring> #include ...

  10. Unity3d 接入 移动MM支付SDK(2.3) 全攻略

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/26842177 先将例程运行起来 下载例程(csdn积分不够上传不了,只能用百度网盘 ...