印度将RISC-V确立为国家指令集,中国是否该学习?
本帖最后由 小飞飞 于 2020-7-30 23:02 编辑中国国产芯片集齐了 SW64、LoongISA/MIPS、X86、Power、ARM,加上之前一些单位的一些产品和学术研究,中国的 CPU 的指令集还要加上 IA-64、Sparc、RISC-V,这对中国 CPU 的发展非常不利。相比之下,印度确立国家级指令集的做法,更有利于一个国家 CPU 的长远发展。
近年来,随着龙芯、申威自主 CPU 在性能和应用上不断取得突破,原本对中国高度技术封锁的欧美科技公司纷纷到中国寻找代理人,Intel、AMD、IBM、ARM、高通相继在中国成立合资公司,或寻找技术合作伙伴。这其中就涉及“指令集”,它是存储在 CPU 内部,对 CPU 运算进行指导和优化的硬程序。
与此同时,中国国产芯片集齐了 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 为主,从而无法在社区与生态发展中拥有足够的话语权。
图4. 标签化RISC-V团队与伯克利的Patterson教授和Asanovic教授
第7届RISC-V研讨会的程序委员会名单
本帖最后由 小飞飞 于 2020-7-23 18:56 编辑
因此,效法印度将 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 里。
本篇完
页:
[1]