有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 小飞飞 于 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研讨会的程序委员会名单
|