本文共 4328 字,大约阅读时间需要 14 分钟。
10月21日,教育部计算机类教学指导委员会、中国计算机学会教育专委会将2016 CNCC期间在山西太原举办“面向计算机系统能力培养的龙芯CPU高校开源计划”活动,在活动中,龙芯中科宣布将GS132和GS232两款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核开源就能建起软件生态的想法显然是不切合实际的,要对生态建设起到积极作用,一方面需要长时间的持续投入,另一方面也需要企业、高校联合协同,密切配合。