广州fc吧 关注:4,876,419贴子:77,223,938

15年了!中国自主CPU龙芯如何跟老外竞争

取消只看楼主收藏回复



IP属地:浙江来自Android客户端1楼2015-09-25 18:04回复
    也许是龙芯名称中的“龙”字,承载着太多国人的希望,自诞生之初就处于社会舆论的风口浪尖。有人说龙芯是骗经费的项目,也有人说龙芯的科研人员是为理想而奋斗的志士,还有人说龙芯的科研人员“太天真”,是土八路斗美械师,自寻死路。龙芯究竟怎么样?无数篇横看成岭侧成峰的报道给龙芯包裹上了层层迷雾。那么今天,就让我们一起揭开迷雾下的真相,洞察志士的艰辛与心血。


    IP属地:浙江来自Android客户端3楼2015-09-25 18:05
    回复
      2、龙芯是国家的“亲儿子”?
      龙芯的“龙”字会给国人一种错觉,认为龙芯是国家的“亲儿子”,是用举国体制输送资金和人才打造的国产芯片。但实际上,龙芯成立之初仅仅是中科院计算机所里的一个芯片研发课题组,国家对龙芯的扶持也非常有限。
      在人才方面,在课题组成立时候才10来个人, 2006年才发展到100余人,2014年才400人,可以说龙芯团队的骨干人才都是自己培养的,不少设计师都是胡伟武亲自带出来的博士生。与之形成鲜明对比的是兆芯和宏芯的亲儿子待遇——2013年4月成立的兆芯,到2015年已有员工已扩充至1000人;而在2014年成立的宏芯,国家则直接从计算机所抽调人才,停薪留职去支援宏芯。
      在资金方面,自2001年成立以来,从国家863计划、核高基专项中累计获得项目经费5亿人民币。龙芯中科公司成立后,获得北京市政府2亿人民币的股权投资。也就是说龙芯成立至今共从国家获得资金7亿元。平均下来,每年获得国家补助为几千万元。对比紫光、兆芯和宏芯获得的补助可谓少得可怜——
      2014年紫光获得国家集成电路大基金400亿元人民币;宏芯成立时获6亿注册资本,从2014年至今,获得补助不少于20亿元人民币;兆芯成立时上海市政府出资12亿元,从2013年成立至今,获得补助不少于70亿元人民币。
      另外,芯片研发对资金需求极大,国家对龙芯的补助无异于杯水车薪。举个列子,俄罗斯贝尔加电子的Baikal-T1处理器研发成本折算为人民币是1.85亿元,该芯片是购买MIPS Warrior P5600微结构集成双核CPU,主频1.2G,用于路由器、打印机、复印机等产品。如果贝尔加电子自主研发微结构的话,成本会更高。
      换言之,贝尔加电子研发一枚路由器芯片的研发成本(而且还不是自己研发微结构)相当于国家对龙芯的总投入的四分之一。若以国外巨头作参照,则差距更大,2014年Intel研发经费超过100亿美元,员工达10万余人。


      IP属地:浙江来自Android客户端7楼2015-09-25 18:06
      回复
        3、龙芯经营现状
        自2010年龙芯市场化运营以后,龙芯选择了走主动挖掘民用市场、提升造血能力的道路,将过去的向国家要经费转变为从市场赚收入,没有再向国家要过一分钱。2014年,龙芯在纯商业行为的收入占总收入的比重从0上升到1/3,国家安全市场的比重占2/3,实现了自主经营、自负盈亏、收支平衡。


        IP属地:浙江来自Android客户端8楼2015-09-25 18:07
        回复
          5、指令集
          指令集就是一个编码集合。它是用一些代码表达读、写等操作,命令计算机做各种运算的一套命令标准。指令集可分为复杂指令CISC、精简指令RISC、超长指令集VLIW。CISC指令集的每个指令可执行若干低阶操作。诸如从内存读取、储存、和计算操作,全部集于单一指令之中,指令数目多而复杂,指令编码格式混乱,导致编码器复杂,流水线设计较为困难,指令不定长也带来指令对齐方面的额外挑战,因此付出了性能的代价。CISC指令集经典代表:X86。
          RISC指令集对指令数目和寻址方式都做了精简,固定指令长度,统一指令编码格式,加速常用指令,流水线设计更容易,因此效率也更高。有一段时间,因为RISC的高效率,Intel在发展CISC产品线的同时,也不得不研发了RISC处理器。RISC指令集典型代表:Alpha、Mips。
          CISC和RISC与在竞争的过程中相互学习、取长补短,CISC指令集在解码阶段上实现向RISC类指令的转化,将后端流水线转换成类RISC的形式。而随着技术发展,RISC指令集也达到数百条甚至上千条(loongISA有1907条),在指令集上殊途同归了。
          超长指令集(VLIW)使用非常长的指令组合,把许多条指令连在一起,以能并行执行。因为和CISC和RISC软件生态不兼容的原因已经很罕见了,Intel的安腾,英伟达的丹佛都是其代表。
          龙芯选择兼容Mips,一方面是因为课题组当时只有10余名成员,人力财力精力有限。另一方面,龙芯自己定义一套指令集技术上没有难度,但是无法兼容现有的计算机体系。
          举例来说,你既可以用“+”、“-”、“*”、“/”来定义加、减、乘、除和也可以用 “-”、“+”、“/”、“*”来定义加、减、乘、除,既可以用大写汉字来“壹”来表示1,也可以用“一”来表示1。


          IP属地:浙江来自Android客户端10楼2015-09-25 18:08
          回复
            1+1=2,这种表述方式全世界都看得懂。但是壹+壹=贰,就只有中国人才看得懂了。而你若将“-”定义为加,那么壹-壹=贰,就只有你自己看得懂了——因为你无法让全世界的人跟着你的指挥棒走,让全世界人民在日常数学运算中用“-”来表示加,无法让全世界学校的教科书中用“-”来表示加,无法让已经被证明的数学公式和定理中用“-”来表示加。
            因此,重新定义指令集技术上难度近乎于零,美国也一度禁止将单独的指令集申请为专利,只有当指令集与实现方法相结合的时候才被允许申请专利。研发兼容Mips指令集的CPU,就如同我们在数学上放弃了传统的汉字而使用阿拉伯数字去证明数学定理,Mips指令集和阿拉伯数字只是知识的载体而非知识本身,真正具有价值的是指令集的实现方法和被证明的数学定理。
            ARM于2012年购买了498条Mips指令专利,但这并不会对ARM的自主知识产权造成影响。同理,龙芯使用兼容Mips指令并不会对自主知识产权构成影响。而真正对龙芯自主可控路线产生影响的是指令集的发展权——是否有资格自主扩展指令,是否能让软件生态跟着你的指挥棒走。


            IP属地:浙江来自Android客户端11楼2015-09-25 18:09
            回复
              6、龙芯的指令集
              龙芯走兼容MIPS指令集发展路线,在2008年金融危机后,以比较低的价格购买了MIPS指令的永久授权,在十几年的发展中对指令集进行了相当大的扩展,逐渐发展出了自己的指令集loongISA。
              loongISA指令集共1907条指令。源自mips:
              216条mips基础指令,获得永久授权。
              311条DSP指令,获得永久授权。
              自主指令:
              mips基础指令扩展——148条loongEXT,
              虚拟机扩展——5条loongVM指令,
              二进制翻译扩展——213条loongBT,
              向量指令扩展——1014条loongSIMD
              龙芯在MIPS的指令系统的创新方面已经远远超过了MIPS公司,之所以购买Mips指令永久授权主要是减少市场化过程中的麻烦。举例来说,Transmeta公司曾经市场前景良好,但Intel起诉它,打了两年官司。虽然最终Intel输了,但两年过程中没有人敢跟Transmeta做生意, Transmeta被官司拖垮了。
              MIPS公司破产后,所拥有的技术专利分的比较散。虽然MIPS被英国Imagination公司收购,但Imagination的主营业务是GPU,在CPU设计方面技术底蕴不足,它既没有能力,也没有意志扛起MIPS阵营的大旗,指令集扩展和微结构研发都不如龙芯。
              而龙芯只要保持现有的发展势头,使应用软件跟着龙芯走,构建并壮大自己的产业联盟,那么龙芯对Mips的扩展就是行之有效的,而且有机会夺取Mips阵营的主导权。


              IP属地:浙江来自Android客户端12楼2015-09-25 18:10
              回复
                7、编译器
                程序员在编程的时候写的是编程语言,但是计算机运行的时候是机器语言,编译器就是将程序员的编程语言翻译成机器语言的工具,而编译器的好坏也非常影响一款计算机的整机性能,比如SUN就曾经依靠对编译器的优化使CPU的spec跑分提升了50%,大幅提升了整机性能和用户体验。
                国际上使用最为广泛的编译器是GCC,该编译器对X86、ARM、MIPS、Alpha等指令集的CPU优化各不相同,对市场占有率高的X86和ARM优化得较好,版本也比较新(GCC部分代码就是Intel提供的),但对龙芯、申威的优化比较差,版本也比较老旧。
                因此,龙芯自主研发了LCC以提高编译器的效率,虽然LCC诞生的时间还很短,对自家CPU的优化能力无法与Intel公司的ICC编译器相比较,以GS464E的spec2000跑分为例,使用LCC比使用GCC4.8整数提升7%,浮点提升36.8%。毕竟万丈高楼平地起,期待龙芯能不断提升LCC编译效率。


                IP属地:浙江来自Android客户端13楼2015-09-25 18:10
                回复
                  8、微结构和主频
                  CPU性能(单核)=主频*IPC(这个公式必须是同指令集才能成立,不同指令集不可比较)。主频就是CPU工作的时钟频率,同一款CPU在一个时钟周期内完成的指令数量是固定的,因此主频越高,完成一个时钟周期所消耗的时间越短,CPU的运行速度就越快。
                  IPC是单位时间内调用的指令集数量,微结构设计得越好,单位时间内能调用的指令集数量越多,CPU的性能就越好。微结构好坏取决于前端设计水平,主频的高低一方面受微结构流水线级数的影响,但更多的是取决于后端的设计水平。再往细的方面说,前端设计主要指芯片的执行结构、数字逻辑层设计、执行状态仿真等方面,后端设计主要指物理层电路的具体优化,包括单元布局、时序优化等方面。
                  微结构研发不仅技术门槛高,而且费时费钱,一个微结构从研发到产品一般需要3年,而所需资金更是难以计数。龙芯自2001年以来,共研发GS132、GS232、GS264、GS464、GS464V、GS464E共6个微结构,以龙芯及其有限的人力和财力,实现了以平均2.33年更新一个微结构的发展速度,相较于国家非常有限的扶持,龙芯拿出了远远超过投入的产出。
                  龙芯在2015年8月发布的GS464E微结构测试参数非常亮眼。根据中电集团的测试报告,GS464E的SPEC2000使用GCC4.8编译器跑分为:整数768/G、浮点1153/G,使用LCC编译器跑分为:整数828/G、浮点1578/G,微结构的效率在整数性能方面基本追平了AMD目前最好的微结构,在浮点性能方面接近Intel在2013年发布的Ivy,分支预测和访存带宽更是能直接与Ivy比肩(Intel公司2013年的Ivy和2015年的Skylake差距很小)。
                  现在,龙芯和国外巨头在微结构方面的差距已经比较小了,差距主要在主频方面和制程工艺方面。在主频方面,2015年发布的龙芯3A2000的主频只有1G,而代码已冻结,即将流片的龙芯3A3000的也只有1.6-1.8G的主频。相比之下,Intel的CPU主频大多在3G以上,部分CPU主频接近4G;在制程工艺方面,受限于中芯国际的代工水平,龙芯能使用的最好的制程为28nm,而市面上出售的Intel芯片制程大多为22nm,Intel最新的产品普遍采用14nm制程工艺。


                  IP属地:浙江来自Android客户端15楼2015-09-25 18:10
                  回复
                    中电十四所用GS464V微结构研发了华睿2号(DSP),华睿2号能将雷达信号处理算法提炼成FFT、FIR、相关、矩阵求逆等17种基本计算构件,较好地解决了雷达系统大带宽、高吞吐的应用需求。龙芯3A2000和龙芯3B2000的微结构是GS464E,龙芯3A2000有台式机和笔记本产品,龙芯3B2000将被用于服务器。


                    IP属地:浙江来自Android客户端17楼2015-09-25 18:11
                    回复
                      10、BIOS、操作系统和软件生态
                      在BIOS方面,龙芯联合中电科技集团开发的全中文龙芯安全bios----昆仑固件。昆仑固件支持龙芯、飞腾、申威等国产芯片。在操作系统方面,龙芯在2015年8月发布基于linux的社区版操作系统loongnix。此外,龙芯还支持国产中标麒麟操作系统以及Reworks嵌入式操作系统。在软件方面,龙芯支持金山WPS文字处理,JAVA和Flash,火狐浏览器和Chrome浏览器,达梦、金仓、神州通用数据库,东方通、金蝶、中创中间件,中软政务处理系统等,主要针对有信息安全要求的党、政、军、国企、事业单位办公电脑和服务器市场。在软件中有很多核心代码,针对X86和ARM的芯片都是用汇编优化过的,而针对其它结构是用C语言写的普通功能性代码,有着很大的优化提升空间。
                      例如某单位的指挥系统刚移植到龙芯CPU时,开机就需要50分钟,但经过两个月的磨合优化,开机时间降低到了30秒。又如有一个数据库,刚开始启动需要10分钟,后来降到10秒。因此,龙芯目前软件生态的重点是对编译器、C库、JAVA、数据库、中间件进行优化,以及对一些专业应用,比如军用的GIS应用加速、网络安全的协议栈等。
                      对于普通消费者常用的软件,因龙芯电脑的市场占有率过于渺小,加上龙芯人力、物力、财力都非常有限,在这方面实在是心有余而力不足,这也是民用PC市场基本看不到龙芯电脑的主要原因。


                      IP属地:浙江来自Android客户端20楼2015-09-25 18:12
                      回复
                        12、Tick—Tock发展战略
                        龙芯将设计团队一分为二,一个团队负责前端设计,任务是提升微结构,一个团队负责后端设计,任务是提升主频。龙芯2015年发布的3A2000是Tock,是微结构的提高,明年发布的3A3000是Tick,提升主频和制程工艺。两只设计团队交替进行,犹如钟表“滴答滴答”(Tick—Tock原意是钟表声“滴答”)。采用Tick—Tock发展战略,不仅降低了科研人员的工作强度,还使产品更新频率也从原来的2.3年一次更新缩短到18个月一次更新,提升了产品研发的效率。


                        IP属地:浙江来自Android客户端22楼2015-09-25 18:13
                        回复
                          14、龙芯的性能
                          根据中电集团的测试报告:GS464E的SPEC2000使用GCC4.8编译器跑分为:整数768/G、浮点1153/G,使用LCC编译器跑分为:整数828/G、浮点1578/G,用Intel的芯片对标的话,以即将流片,也是龙芯目前性能最强的3A3000为例。它的整数性能相当于Q8200,浮点性能相接近主频降到1.6-1.8G的3代I5。
                          事实上,单纯比较CPU的性能对我们普通消费者而言意义不大。因为影响用户使用体验的是整机性能,CPU性能仅仅是整机性能的一方面。CPU、编译器、操作系统与CPU的磨合,应用软件针对CPU的优化都会对整机性能和用户体验产生很大的影响,而后者才是龙芯目前的短板。因此,龙芯把越来越多的资源向软件倾斜。


                          IP属地:浙江来自Android客户端25楼2015-09-25 18:14
                          回复
                            15、龙芯的定位
                            龙芯课题组成立之初是着眼于解决国防和信息安全领域无芯可用的困境。所有工作都是围绕着国防和信息安全需要开展,开发嵌入式芯片也是为了从民用市场中赚钱,有了稳定的资金来源后更好的支持用于国防和信息安全领域的高性能芯片研发。
                            对于目前的龙芯来说,PC和服务器产品在整机性能上和国外产品的差距依然很大。对于在家用PC市场和国外产品竞争,龙芯电脑在整机性能、价格、软件生态方面处于绝对劣势。以龙芯及其产业联盟的实力要在商业上打败微软和Intel构建的体系确实是痴人说梦。
                            未来5年内,龙芯在PC市场的目标仅仅是在硬件性能稳步提升的同时,通过不断加强编译器的优化、软件和硬件的磨合,使龙芯电脑和服务器的整机性能和软件生态能够满足党政机关的办公需求。至于国内家用PC市场,只有等龙芯的软件生态足够丰富、产业联盟足够强大之后,龙芯的产品才会有竞争力。


                            IP属地:浙江来自Android客户端26楼2015-09-25 18:14
                            回复
                              16、关于自主可控
                              自主,顾名思义,是自主知识产权,不需要给国外缴纳专利费,可以自由选择发展方向和技术路线。
                              以龙芯为例,龙芯可以自由扩展指令集,比如龙芯扩展了1014条向量指令,使龙芯微结构的浮点性能大幅提升,以至于都能客串DSP;
                              从国外购买指令集授权的话,不仅要支付一笔授权费,而且授权到期要再购买一次,外商每一次更新指令集还要再购买一次。另外,还会受到很多限制,比如不具备发展权,不能扩展指令集,只能按照国外巨头的划定路线图走,跟在身后亦步亦趋。
                              可控,指的是芯片安全可控。无论是自主指令集还是购买国外指令集,只要是独立自主设计微结构,就不存在安全问题。
                              但如果是购买国外微结构授权或者仿制国外CPU则存在安全隐患。因为买到的微结构若不是开源的,对于国内厂商来说就是一个黑箱;即使是开源的,光指令系统里的源码至少一两千万行,在完全吃透技术以前,根本没法保证里面没有安全隐患;仿制国外CPU很容易陷入知其然,不知其所以然的情况,无法识别CPU里的到底有没有后门电路。


                              IP属地:浙江来自Android客户端29楼2015-09-25 18:31
                              回复