中国CPU还在“群雄割据” ,印度已确定了国家指令集

时间:2017-12-21 作者:观察者网
https://www.eet-china.com/news/201712210610.html
 
中国国产芯片集齐了SW64、LoongISA/MIPS、X86、Power、ARM,加上之前一些单位的一些产品和学术研究,中国的CPU的指令集还要加上IA-64、Sparc、RISC-V,这对中国CPU的发展非常不利。相比之下,印度确立国家级指令集的做法,更有利于一个国家CPU的长远发展。

近年来,随着龙芯、申威自主CPU在性能和应用上不断取得突破,原本对中国高度技术封锁的欧美科技公司纷纷到中国寻找代理人,Intel、AMD、IBM、ARM、高通相继在中国成立合资公司,或寻找技术合作伙伴。与此同时,中国国产芯片集齐了SW64、LoongISA/MIPS、X86、Power、ARM,加上之前一些单位的一些产品和学术研究,中国的CPU的指令集还要加上IA-64、Sparc、RISC-V,这对中国CPU的发展非常不利。相比之下,印度确立国家级指令集的做法,更有利于一个国家CPU的长远发展。

  印度将RISC-V确立为国家指令集

  虽然印度在很多方面与中国相距甚远,在“中国能,我也能”的思维方式下闹了不少笑话,但印度的一些做法也值得我们学习和借鉴。

  在2011年,印度开始实施处理器战略计划,在全国范围资助2-3个研制处理器的项目。印度理工学院马德拉斯分校(Indian Institute of Technology,Madras)的G. S. Madhusudan与V. Kamakoti教授在该计划支持下启动了SHAKTI处理器项目,目标是研制与IBM PowerPC兼容的处理器。为了获得合法授权,SHAKTI项目组与IBM开展了合作谈判,但始终未能达成一致。值得一提的是,在2014年,中国某公司却获得了IBM Power8的授权,之后,该公司还闹出欠薪事件,最后由当地政府做了接盘侠。

  在加州大学伯克利分校推出了RISC-V指令集之后,SHAKTI项目组在2013年毅然放弃PowerPC,全面拥抱RISC-V。并将项目目标调整为研制6款基于RISC-V指令集的开源处理器核,涵盖了32位的单核微控制器、64核64位高性能处理器和安全处理器等多个应用领域。

  David Patterson教授带领研制的五代RISC处理器

  这里介绍下RISC-V,RISC-V指令集使用BSD License开源协议,是一个彻底开放的指令集。也就是说,全世界任何公司、大学、研究机构与个人都可以开发兼容RISC-V指令集的处理器,都可以融入到基于RISC-V构建的软硬件生态系统,而不需要为指令集付一分钱。相比之下,ARM的指令集授权费用则非常昂贵,一些ARM阵营IC设计公司每年就要支付数千万乃至上亿美元的成本。

  在调整项目计划之后,SHAKTI项目又获得印度政府9000万美元的经费支持。在2016年,先进计算发展中心获得印度电子信息技术部4500万美元的资助,目标研制一款基于RISC-V指令集的2GHz四核处理器。此外,印度政府支持的一款神经形态加速器项目也将RISC-V作为计算主核心。

  在过去数年中,印度政府资助的处理器相关项目都开始向RISC-V靠拢,RISC-V成为了印度的事实国家指令集。

  中国CPU指令集处于群雄割据状态

  目前,中国CPU发展可以分为两条路线。

  一条是自主路线,以龙芯与申威为代表,申威自定义了SW64指令集,龙芯基于MIPS扩展出来的LoonISA,自主设计CPU的内核,以及内存控制器等IP,并且一直在坚持创建自己的生态系统。

  另一条是技术引进路线,购买国外CPU的IP授权,并借助现有的生态系统开拓市场。比如华为和展讯从ARM公司购买IP做集成,依附于AA体系的生态系统;华芯通购买高通的授权开发芯片,依附于AA体系的生态系统;澜起购买Intel的内核外加一个安全模块做安全芯片,依附于Wintel体系;宏芯购买了IBM Power8的授权开发CPU,寄希望于IBM主导的Open power......

  可以说,中国已经集齐了全球大部分有一定影响力或曾经有一定影响力的指令集,像ARM、MIPS、PowerPC、SPARC、RISC-V、X86等指令集都可以在中国找到。因而有网友调侃:如果再将已经消逝的PA-RISC、Alpha、IA-64等指令集找回来,就可以召唤神龙了。

  虽然指令集繁多看似百花齐放,但实际上却存在很多问题。

  一是严重分散了研发力量,导致编译、操作系统等基础软件开发者与爱好者由于精力有限而无法兼顾所有指令集的优化,延缓自主生态的建设。

  二是严重影响到计算机专业的本科教学,目前的课程体系并没有制定相关标准,于是很多学校开设的不同课程会让学生使用不同的指令集开展实验,导致学生忙于了解各种指令集汇编语言而疏于了解指令集本身的设计精髓、指令集与处理器/编译/OS之间的联系。

  事实上,最理想的状态是国内多家CPU公司以统一指令集设计芯片,大家都围绕这个指令集建设软件生态。这样一来,在硬件上哪家的产品好就用谁的,在软件上也能众人拾柴火焰高,加速生态建设。

  其实,国家也想统一指令集。在2012年,工信部曾经试图制定CPU指令集国家标准。然而,更换指令集就意味着过去十多年围绕该指令集所建设的软件生态全部归零,在2012年才力图统一指令集已然太晚了。像印度那样,在没有过去技术积累作为包袱的情况下,才是通过行政力量统一指令集的最佳时机。

  中国统一指令集只能依靠商业力量

  既然印度可以将RISC-V确立为国家指令集,那么,中国是否可以效法呢?

  笔者认为,可行性非常低。主要是因为国内IC设计公司和单位不太可能抛弃现有的技术积累,去更换指令集。

  举例来说,龙芯和申威不可能放弃现有的技术成果,毕竟龙芯和申威已经围绕SW64和LoongISA初步构筑了一个生态体系。

  华为和展讯也不可能抛弃有丰富软件生态的ARM转向前景不明的RISC-V。毕竟离开了ARM,华为和展讯不仅要面临无CPU内核可用的窘境,还要遭遇没有软件生态的困局,其手机和芯片产品将成为工业废品。

  另外,国内学术界基于RISC-V开展的前沿研究依然偏少,国内目前几乎没有在RISC-V开源社区中的贡献者,大部分还是以应用RISC-V为主,从而无法在社区与生态发展中拥有足够的话语权。

  标签化RISC-V团队与伯克利的Patterson教授和Asanovic教授

  第7届RISC-V研讨会的程序委员会名单

  因此,效法印度将RISC-V确立为国家指令集的做法并不适合中国。

  就目前来说,通过政府行政力量统一CPU指令集的可能性几乎为零。想要把指令集统一起来,就只能依靠商业力量。类似于美国上世纪90年代X86、Alpha、MIPS、SPARC、Power在几番大战之后,由X86一统江山。中国如果要统一CPU指令集,也要经历这个过程。

  ARM最有可能成为中国事实上的国家级指令集

  从情感上,我们当然是希望SW64或LoongISA能够成为中国的国家级指令集。

  不过,从实践上看,ARM成为事实上的中国国家指令集的可能性更高。

  首先,ARM在国内的合作伙伴多达上百家,这些企业会为ARM开发大量应用,并在物联网时代到来之后占据大量市场。

  其次,国内部分ARM阵营IC设计公司由非常深厚的政商关系,非常善于宣传营销。能将买IP做集成轻易包装成拥有全部知识产权,进而带上“自主可控”的标签。

  比如某公司在核高基的支持下,开发了一款宣称自主可控的32核A57芯片,根据核高基总师魏少军教授的报告,这款芯片将进入特殊市场。又比如某些公司买ARM的IP为基础开发了SSD主控芯片,却宣称“自主可控”、“安全可靠”并荣获各种殊荣,而采用龙芯、申威CPU的SSD主控芯片,却鲜有人知晓。由于ARM由日本控股,主要研发中心在美国,国内一些公司将ARM打扮成“自主可控”的做法无疑是向中国的信息安全体系中埋入特洛伊木马。

  最后,国内真正具备自主开发高性能CPU技术的团队非常少,而且由于技术具有迭代演进的特点——每一代新内核,相对应前一代内核的代码替换量最多不会超过20%。而一代内核的研发一般要2-3年。在这种情况下,与其从零开始自主研发,远不如玩买IP做集成或在ARM原始设计上略做修改+营销包装游戏来钱快。

  至于高度依赖国外技术,只要足够多的水军就能洗白,而且还能包装成国产骄傲,而代价就是国产处理器继PC之后,再一次跟在洋人身后吃土,在处理器领域再出现一个联想。

  在自主研发风险大、成本高、周期长,“短、平、快”能够实现短期获利的情况下,众多商业公司都会选择ARM。像印度选择的RISC-V,在中国市场上,只会在一些小众领域有一席之地,比如把RISC-V内核集成在FPGA里。

[转帖]2017年新闻: 中国CPU还在“群雄割据” ,印度已确定了国家指令集的更多相关文章

  1. 《2017年Q2中国城市研究报告

    根据百度慧眼团队发布的<2017年Q2中国城市研究报告>,2017年第二季度人口吸引力排名前五的城市与第一季度相同,深圳继续保持第一的领先位置.

  2. 2017年P4中国峰会北京站 会议小结

    2017 P4 中国峰会 北京 本次会议依然侧重介绍P4,并highlight P4的benifit,大致分为以下几类: 1.学术界 - 未来网络的发展,为何提出P4技术? 未来网络和实体经济.其他学 ...

  3. 【转帖】处理器史话 | 服务器CPU市场的战役, AMD、Intel和ARM的厮杀

    处理器史话 | 服务器CPU市场的战役, AMD.Intel和ARM的厮杀 https://www.eefocus.com/mcu-dsp/377300   说完了个性鲜明的消费类电子,接下来聊一聊通 ...

  4. [转帖]Marvell兵败中国4G 创始人去职未来几何

    Marvell兵败中国4G 创始人去职未来几何 (2016-04-12 09:08:30) 2016年的帖子. http://blog.sina.com.cn/s/blog_1542ef86c0102 ...

  5. 【转帖】2011-2018年中国IPv6地址数量及国际出口带宽数走势情况[图]

    2011-2018年中国IPv6地址数量及国际出口带宽数走势情况[图] http://www.chyxx.com/industry/201910/791801.html 三亿多ipv4的地址. 接近9 ...

  6. 【转帖】2019年中国5G行业细分市场发展现状和市场前景分析 通信基站数量快速增长

    2019年中国5G行业细分市场发展现状和市场前景分析 通信基站数量快速增长 中国有 600多万个基站 平均每200个人 一个基站.. 一个基站十万块钱的话 相当于 每个人 需要分摊 500块钱. ht ...

  7. 【转帖】虚拟化Pod性能比裸机还要好,原因竟然是这样!

    虚拟化Pod性能比裸机还要好,原因竟然是这样! http://www.itpub.net/2020/02/27/5340/ 其实感觉 linux也可以做到 NUMA的节点优化 其实 直接在 ESXi上 ...

  8. [转帖]Intel 上一代 可扩展CPU的简单报价

    8.1万元人间毒物!Intel 28核铂金版Xeon 8180零售上市 http://news.mydrivers.com/1/541/541670.htm 猜你想看:英特尔 CPU处理器 Xeon ...

  9. X86架构CPU常识(主频,外频,FSB,cpu位和字长,倍频系数,缓存,CPU扩展指令集,CPU内核和I/O工作电压,制造工艺,指令集,超流水线与超标量)

    1.主频 主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度. CPU的主频=外频×倍频系数.很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差. ...

随机推荐

  1. python基础--几个特性

    1.helloword程序的解释 #!/usr/bin/python3 print("Hello, World!") 关于脚本第一行的 #!/usr/bin/python 的解释, ...

  2. .Net笔试考题

    .NET试题 1.列举ASP.NET页面之间传递值的几种方式 2.请写出 override 与重载的区别 3.请编程实现一个冒泡排序算法 4.什么是装箱和拆箱 5.ADO.net中常用的对象有哪些?分 ...

  3. MCMC & 贝叶斯

    用MCMC做参数估计

  4. Link-Cut Tree(LCT) 教程

    目录 前置知识 介绍 Access FindRoot MakeRoot Split Link Cut 关于Splay中操作的一点说明: 模板 前置知识 请先对树链剖分和Splay有所了解.LCT基于树 ...

  5. BZOJ 2669 Luogu P3160 [CQOI2012]局部极小值 (容斥原理、DP)

    题目链接 (bzoj) https://www.lydsy.com/JudgeOnline/problem.php?id=2669 (luogu) https://www.luogu.org/prob ...

  6. kotlin 冷知识 *号 展开数组

    Kotlin笔记-冷门知识点星号(*) 2019年05月10日 11:37:00 weixin_33724059 阅读数 6   可变参数展开操作符 在数组对象前加*号可以将数组展开,方便传值,比如: ...

  7. 01.二维数组中的查找 (Java)

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  8. Arch linux(UEFI+GPT)安装及后续优化教程

    Arch Linux安装过程中需要从远程存储库获取软件包,电脑需要有效的互联网连接. 1.联网 查看是否有网 ping www.baidu.com 同步时间 timedatectl set-ntp t ...

  9. LeetCode 19. 删除链表的倒数第N个节点(Remove Nth Node From End Of List)

    题目描述 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后, ...

  10. 一、基础篇--1.1Java基础-MVC设计思想

    MVC简介: MVC(Model View Controller) 是模型(model)-视图(view)-控制器(controller)的缩写.一种软件设计典范,用一种业务逻辑.数据.界面显示分离的 ...