微处理器指令集架构(Instruction Set Architecture,ISA)是沟通软硬件运算之间的桥梁,是处理器的灵魂。包括复杂指令集运算(Complex Instruction Set Computing,CISC)、精简指令集运算(Reduced Instruction Set Computing,RISC)、显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC)、超长指令字指令集运算(Very Long Instruction Word,VLIW)四类。
由于 ARM(RISC 架构)和 Intel(CISC 架构)两大巨头的垄断地位、专利限制、高昂专利费,令行业用户越来越不堪重负;两大主流架构无论在技术上、知识产权上还是流程上都愈发臃肿、复杂和缓慢,也在一定程度上限制甚至阻碍了技术的进步和行业的发展。
主流的微处理器指令集架构 RISC 和 CISC 的对比
6 月底 arm 建立了 riscv-basics.com 的网站,以“设计系统芯片之前需要考虑的五件事”为主题从从成本、生态系统、碎片化风险、安全性和设计保证方面攻击 RISC-V 攻击。不过 RISC-V 在 7 月 9 日也建立了 arm-basics.com 的网站对 arm 进行反击。次日,也就是 7 月 10 日,arm 关闭了攻击网站,并发表声明:“我们最初建立网页的目的是列出围绕 RISC-V 商业化产品需要考虑的关键因素,旨在为激烈的行业辩论提供信息。遗憾的是,结果与我们的初衷不同,这个页面与 arm 的协作文化不一致,所以我们已经将其删除。事实上,我们的许多员工也表示不喜欢这个网页。立即删除这个网页的是因为我们绝不希望给人一种攻击开源的印象,因为我们也是许多不同领域开源社区的支持者。”
arm 与 RISC-V 的事件只是两个精简指令集竞争的一个缩影。顾名思义,RISC-V 是 RISC 的第五个版本。RISC-V 何以会引得 arm 如此紧张呢?
David Patterson 教授和 RISC 指令集
David Andrew Patterson(1947 年 11 月 16 日出生)是美国计算机先驱和学者,是美国科学院、工程院、艺术与科学学院三院院士。自 1976 年以来一直担任加州大学伯克利分校计算机科学教授,并在 2016 年退休后加入谷歌。他目前还是 RISC-V 基金会的董事会副主席。
Patterson 以其对 RISC 处理器设计的开创性贡献而闻名,创造了 RISC 这一术语,并领导了 Berkeley RISC 项目。截至 2018 年,全球有 99%的新芯片使用 RISC 架构。他还与 Randy Katz 一起领导 RAID 存储研究。
Patterson 教授因在 RISC 领域的杰出成就,获得 2017 年度图灵奖(图灵奖是计算机领域的全球最高奖项,被誉为计算机界的诺贝尔奖)。
我们还是了解一下 RISC 指令集的情况。RISC 的发展可以追溯到 1980 年代。David Patterson 教授是 RISC 指令集的发明人。1980 年,他和学生 David Ditzel 在“The case for the reducedinstruction set computer”论文中创造了 RISC 一词。
1981 年,在 David Patterson 的带领下,加州大学伯克利分校的一个研究团队起草了 RISC-1,这就是今天 RISC 架构的基础。RISC-1 原型芯片有 44500 个晶体管,拥有 31 条指令。包含 78 个 32 位寄存器,分为 6 个窗口,每个窗口包含 14 个寄存器,另外还有 18 个全局变量,寄存器占用大部分面积,控制和指令只占用芯片面积的 6%,而同时代的芯片设计里要占用约 50%的面积。
随后在 1983 年发布了 RISC-II 原型芯片,包含 138 个寄存器,分为 8 个窗口,每个窗口有 16 个寄存器,另外还有 10 个全局变量,但是只有 39000 个晶体管。接着在 1984 年和 1988 年发布了 RISC-III 和 RISC-IV。
而 RISC 的设计理念也催生了一系列新架构,包含了许多我们耳熟能详的名字,如学术上认为比较成功的 DEC Alpha、被写入经典教科书的 MIPS、绕过指令级并行度障碍,追求线程级并行的 SUN SPARC、服务器的王者 IBM Power、以及现在统治嵌入式市场的 arm。
RISC-V 的冲击
2010 年,Patterson 教授的研究团队准备启动一个新项目,需要设计 CPU,因而要选择一种指令集。他们调研了包括 arm、MIPS、SPARC、X86 等多个指令集,发现它们不仅设计越来越复杂,而且还存在知识产权问题。
由于 ARM、MIPS、SPARC、X86 等处理器架构的复杂性和相关知识产权的限制,Patterson 教授决定和团队一起发明一种全新的指令集架构,可以被任何学术机构或商业组织自由使用。
于是临时组建一个四人小组,从零开始设计一套全新的指令,四人小组包括 David Patterson、Krste Asanovic 两位教授与 Andrew Waterman、Yunsup Lee 两个博士生集!
这个项目的目标是新指令集能满足从微控制器到超级计算机等各种尺寸的处理器,能支持从 FPGA 到 ASIC 到未来器件等各种实现,能高效地实现各种微结构,能支持大量的定制与加速功能,能和现有软件栈与编程语言很好的适配,最重要的一点就是要稳定——不会改变,不会消失。
四人小组用了 3 个月时间完成了 RISC-V 指令集的初始设计开发,之后于 2011 年 5 月第一次公开标准。2014 年,RISC-V 的第一批标准定型。其间,随着标准的发布和改进,进行了多次流片验证。
RISC-V(第五代精简指令集)是 David Patterson 教授基于其 30 多年在精简指令集 RISC 领域的深入积累,在 2010 年到 2014 年期间带领团队研发出的最新一代 CPU 芯片设计指令集。RISC-V 是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V 是在指令集不断发展和成熟的基础上建立的全新指令。RISC-V 指令集完全开源、设计简单、易于移植 Linix 系统,采用模块化设计,拥有完整工具链。
RISC-V 虽然不是第一个开源的的指令集(ISA),但它很重要,因为这是第一个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于 RISC-V 指令集架构可以设计服务器 CPU,家用电器 CPU,工控 CPU 和传感器 CPU。
作为一个开源的指令集架构,RISC-V 让用户有机会避免 Intel x86 知识产权体系的锁定和 ARM 高昂的芯片特许使用费,这使得全球芯片行业的企业都对 RISC-V 报以极大的关注和兴趣。
Patterson 教授和团队于 2015 年成立了 RISC-V 基金会以推动 RISC-V 架构的运用和发展。
基金会吸引了全世界 150 多家企业和科研机构的加入,包括 Google、IBM、三星、高通、西部数据、英伟达、微软、惠普等国际巨头,也包括中天微、中兴微、华为、阿里、中科院计算所、高云等下多家中国单会员,形成了 RISC-V 生态圈。
目前已经获得了众多业界巨头的支持,例如英伟达表示在配合 GPU 使用的底层微控制器中使用 RISC-V 设计;西部数据宣布未来几年将用 RISC-V 芯片取代其目前使用的全部处理器芯片;美高森美发布全球第一个支持 RISC-V 开放指令集体系架构;特斯拉近期已加入 RISC-V 基金会,准备在新款芯片中使用 RISC-V 架构。
业界人士表示,众多巨头宣布采用 RISC-V,得益于 RISC-V 的五大优势:
1、极简。RISC-V 凭借技术上的后发优势,拥有精简的篇幅长度,比起冗长、指令繁多、互不兼容的传统商业架构,优势十分明显。
2、干净。RISC-V 清晰区分了用户和特权指令子集,避免了对特殊微架构和特殊工艺的要求,因此具有普适性,可显著降低成本。
3、模块化。RISC-V 的指令分为核心基础指令集和标准可扩展指令子集。基础指令集很小,但是可以根据用户需求去加载扩展集,后者确保了指令能够应用于不同场景。
4、可扩展。充分考虑了芯片设计的可扩展性和专用性需求,具有变长指令编码,并预留了大量的可用编码空间,使得未来指令扩展方便可行。
5、稳定。经过若干年的迭代,基准指令和一些标准可扩展指令已经确定,新功能的实现只需增加扩展子集,而无需发布整个指令集的新版本。
由于 RISC-V 使用 BSD License 开源协议,指令集彻底开放,给予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代码开发商业软件发布和销售。这样吸引了一批创业公司的进入。RISC-V 最初的开发者之一 Krste Asanovic 教授创办 SiFive 推出全球首款基于开源指令集 RISC-V 架构的商用 SoC Freedom E310-G000 和开发板 HiFive1;Patterson 的弟子谭章熹创立 OURS,基于 RISC-V 架构开发物联网处理器和神经网络加速系统级芯片;法国 Greenwave 正使用 RISC-V 架构为低功耗设备开发人工智能芯片;Esperanto 也瞄准人工智能应用,希望能集成 4000 个 RISC-V 处理器,展开并行计算。
据业界人士表示,由于 ARM 高昂的芯片特许使用费,正在逐渐把谷歌(Google)、高通(Qualcomm)、三星(Samsung)等众多高科技公司推到了同一条战线上。巨头们正在试图开发新的开源芯片设计,为智能驾驶、AI 等新兴技术提供一种成本更低的芯片。
RISC-V 带给中国 CPU 和芯片行业发展的历史性机遇
面对汹涌而至的 RISC-V,有业界人士表示,RISC-V 技术过去若干年的出现和发展,为中国芯片行业的发展提供了历史性机遇。中国过去数十年在芯片发展领域遭遇到了知识产权受限、生态体系缺失、研发成本高昂、市场需求复杂等诸多挑战,使得发展成效总是不尽人意、难以突破。RISC-V 技术的出现,为突破上述四个方面的难关,提供了坚实的技术基础和绝佳的发展时机。
第一,开源开放突破知识产权壁垒。RISC-V 的开源特性将有助于中国突破长期以来处理器芯片领域的知识产权限制。在过去几十年时间里,中国一直努力在芯片领域、尤其是复杂处理器芯片领域巨额投入、谋求突破,然而收效甚微。
究其原因,首先就是国外诸如 Intel、ARM 等巨头经过几十年的技术发展,建立了极为严苛的知识产权保护体系。我中国如果使用现有的 x86 或 ARM 技术,就无法绕过其知识产权限制。从 Intel 手上根本不可能获得 x86 授权。ARM 虽然给出授权的公司多一些,但授权费也异常昂贵,且谈判流程极其复杂冗长,亟待发展的小微初创企业根本无法承受。
其次,Intel、ARM 这些巨头公司也不可能对中国企事业单位授权其最核心的芯片设计技术和知识产权,而是以此控制中国技术发展、阻碍中国科研体系进步。而 RISC-V 采用了最为灵活的 BSD 开源协议,将 RISC-V 彻底开放,BSD 开源协议极其适合中国国情,与中国秉持的开放共享、互利共赢的发展理念完美贴合,使中国相关行业能够从根本上规避国际传统芯片巨头树立的知识产权壁垒、高昂的特许使用费乃至政治因素带来的风险,更能有助于相关行业产业化的蓬勃发展。
第二,流片验证确保体系完整。RISC-V 指令集已经经过了全球范围内多次流片验证,确保了芯片从设计、样片到量产全体系的完整有效。
众所周知,芯片研制除了指令集作为核心技术之一,还需要一个庞大而复杂的生态,涉及上下游软硬件的诸多环节。指令集除了具备卓越的技术特点,还需要能够制定统一的标准规范,由生态系统中的企业一致遵守;更需要足够开放包容、面向足够广的市场,令生态中的参与者能通过对接丰富的客户资源获得经济效益。
中国在历史上也曾尝试研发完全自主的指令集,然而未能成功实现。究其原因,除了科研实力尚不成熟,更主要的原因就是局限于一国之中的指令集,无法吸引上下游企业的协同参与,无法推动整个生态的积极发展,从而失去了生存的根基。
而 RISC-V 指令集在过去几年的发展中,已经经历了上百次不同商业公司和研发机构的流片验证,已经证明生态具备完整支持的能力。此外,RISC-V 基金会中 Google、三星、高通等等国际大型公司的参与,也使其生态体系不断成熟壮大。采用 RISC-V 技术,将使得中国能够专注于处理器技术的发展,而无需担忧生态体系的完整有效。
第三,精简指令降低研发成本。RISC-V 极为精简的技术优势能够大大降低芯片研发周期和研发成本。
x86 与 ARM 架构的发展过程伴随了现代处理器架构技术过去几十年的不断发展成熟。作为商业企业,为了能够保持架构的向后兼容性,架构不得不保留许多过时的定义,导致其指令数目多,指令冗余严重,文档数量庞大,x86 和 ARM 的架构文档都有上千页。所以在这些架构上开发新的操作系统或者直接开发应用,技术门槛很高,研发过程复杂,往往需要经过反复验证修改才能成型,极大增加了研发周期和成本。
相比之下,RISC-V 架构作为 2014 年才定型的最新标准技术,完全没有历史包袱,而是能够从过往各种指令集的发展演变历史中汲取了大量经验教训,借助计算机体系结构经过多年的发展已经成为比较成熟技术的优势,从轻上路。RISC-V 基础指令集则只有 40 多条,加上其他的模块化扩展指令总共几十条指令。 RISC-V 的规范文档仅有 145 页,而“特权架构文档”的篇幅也仅为 91 页。
这意味着使用 RISC-V 架构进行芯片设计的工程师们能更容易上手、更快进行开发验证,大为缩短芯片的研发周期、降低成本。在中国,各个行业和领域都对芯片有着大量的需求,唯有成本更低、迭代更快的 RISC-V 技术才能满足这些需求、支撑中国芯片产业的快速发展。
第四,扩展模块满足不同应用场景需求。由于 RISC-V 具有与众不同的模块化架构,能够灵活搭配,可以满足各类应用场景对处理器芯片的不同要求。
RISC-V 架构相比其他成熟的商业架构的一个最大不同,在于它是一个模块化的架构。其不同模块能以非常灵活多变的方式组织在一起,从而可以通过一套统一的架构满足各种不同的应用。
这种模块化特性是传统的 x86 与 ARM 架构不具备的。例如,ARM 的架构分为 A、R 和 M 三个系列,分别针对于应用操作系统(Application)、实时(Real-Time)和嵌入式(Embedded)三个领域,彼此之间并不兼容。在出现交叉领域的复杂应用时,这样的不兼容性会增加开发工作量,并降低芯片和系统的性能。
相比之下,模块化的 RISC-V 架构能够使得用户根据具体场景需求灵活选择不同的模块组合,既可以实现低功耗小面积的数据采集功能,又能够实现高性能运算量大的应用操作系统场景,更能保证不同场景共同部分的相互兼容。
这意味着,针对中国目前庞大复杂的不同芯片应用需求,在物联网、云计算、人工智能、大数据、辅助及自动驾驶等诸多定制化的工业、民用等领域,RISC-V 都能够提供灵活高效并且相互兼容的解决方案。
第五,定义安全自主可控芯片。因 RISC-V 的扩充弹性优势,中国有机会定义自已的安全和其他扩充指令集。
中国在最近一二十年随着半导体产业的成长,特别是各类 CPU 项目的开展,积累了具有 CPU 设计和实现能力的人材。如可顺势推动 RISC-V 这个快速成长的开放指令集和这些人才有机相结合,可将原有大量的人材和经验积累投注到产业上落地,产生良性循环,加速中国半导体产业发展。
RISC-V 在中国的现状和未来发展探讨
中国 RISC-V 的现状
目前,RISC-V 在中国的工业界和学术界已经引起了不少关注。在 RISC-V 基金会中,中国台湾晶心科技是创始会成员,中天微和中兴微是铂金会员,华为、阿里巴巴、芯原微电子是白金会员,联发科、上海谨嵘科技、西安优矽科技、广东高云、君正、比特大陆则是银牌会员。除此之外,更有一批初创公司在关注和使用 RISC-V。国内的 RISC-V 的爱好者也已经在推动国内社区建设表明中国初步踏进了 RISC-V 生态圈。
同时还有更多的科研机构也开始涉足 RISC-V 的研究工作。如中科院计算所还有王元陶研究员与张磊副研究员团队在基于 RISC-V 研制智能 IoT 芯片;中科院计算所包云冈团队发布了一种新的标签化体系结构并采用 RISC-V 开发了 FPGA 原型系统(即标签化 RISC-V);一些航天航空院所也开始启动基于 RISC-V 处理器的预研项目[1]。
同时,我们也要看到,国内关注 RISC-V 社区的爱好者在不断增加,但是中国国内目前只是应用学习 RISC-V 的阶段,缺乏 RISC-V 开源社区中的技术贡献者;对 RISC-V 前沿技术进行深入研究的学术机构不多,更缺乏对 RISC-V 实现产学研贯通的全局把控。
关于未来发展的探讨
上海市经济信息委近日发布了《上海市经济信息化委关于开展 2018 年度第二批上海市软件和集成电路产业发展专项资金(集成电路和电子信息制造领域)项目申报工作的通知》,其中项目指南中包含基于 RISC-V 指令集架构的处理器芯片方向:支持基于 RISC-V 指令集架构、32 位及以上的处理器芯片的研发及产业化,内核需拥有自主知识产权[2]。
这是国内首个支持 RISC-V 的相关政策。也许大家从中看出一点端倪。
首先要对接政府政策和资源。通过和中央及地方政府保持汇报沟通,引导 RISC-V 技术在国内的发展契合我国半导体芯片战略发展方向,协助平台上的产学研各方了解和对接相应政策导向和扶持资源。
第二要对接有芯片需求的各行业用户企业。将下游企业需求在平台上及时发布,促进产业链的形成发展。
第三要对接国内外高校和科研机构。推进 RISC-V 的基础和理论研究以及在前沿研究领域的应用,支撑有关科研体系的建立和发展,推动科研成果的产业化,支持掌握 RISC-V 架构的学术和工程人才的培育。
第四要对接使用 RISC-V 进行芯片研发和制造的企业。支持 RISC-V 架构运用企业研发工作的体系化开展,引导生态系统中其他仿真、验证、封测、操作系统、应用软件、数据采集和处理等技术企业的孵化发展,加强企业间交流合作和技术共享。
第五要对接 RISC-V 国际基金会。建立 RISC-V 中国基金会,和 RISC-V 基金会建立联系、促进交流,不断将国际最新科研技术成果介绍到国内,更将中国的研究、产业成果在允许的范围内有序恰当的回馈国际开源社区,有效促进 RISC-V 技术体系在全球范围内的进一步发展。
第六要对接半导体芯片产业资本。引入有实力、有资源、有信誉的各方资本,协助其与处在不同发展阶段、有不同融资需求的相关企业进行对接交流、促成双方投融资合作。
必须通过构建中国微处理器架构产业化平台,推动 RISC-V 技术在国内的系统性和规模性发展、形成有机的 RISC-V 芯片生态体系,推动各相关产业全方位共同发展、全链条深度互动,实现各方的互利互惠、合作共赢。
中国微处理器架构发展思考
鉴于 RISC-V 的开放性,全世界范围内越来越多国家的政府项目开始选择 RISC-V,除了美国 DARPA,印度、以色列选择 RISC-V 作为国家级处理器指令集。而中国拥有着巨大的芯片需求,政府一直希望能把国产芯片产业做大做强。包云岗研究员表示,各方都在努力,但思路不同,导致目前“军阀割据”的状态,整个产业一盘散沙,严重分散基础软件开发力量。中科院计算所包云岗研究员表示,有必要考虑推行指令集国家标准[1]。
对于选择何种指令集,包云岗研究员表示,基于 RISC-V 或者重新设计一套指令集均可行,并非唯一的答案。
对于前者,RISC-V 生态系统已经初步建成,我们需要在生态系统中做出更多的贡献,树立起威信才能争取到更多话语权。
另一方面,重新设计也并非不可行,因为开放指令集 RISC-V 给我们两个启发:
一是指令集与芯片具体设计实现可以分离。这就形成了第一个可行性条件,国内各家芯片商可以采用统一的、免费的开放指令集,但各个厂商可以有各自的内部模块实现,并可以申请专利予以保护。这样既可以构建同一个软件生态系统,又保持了芯片企业之间的独立性。
二是如果各方目标一致,推行一套全新的指令集并没有那么困难。2012 年国内各方都认为“从零开始设计一套全新的指令集是一项让人望而却步的工作”,但 RISC-V 却是从一个为期 3 个月的项目开始成长起来的,这给了我们很大启发,关键还是各方目标需要达成一致。然后配以 RISC-V 采取的组合措施,结合国家政策,相信也可以建立起一套基于全新指令集的生态系统。
微处理器指令集事关整个信息产业的基础。希望政府能下定决心,推行指令集国家标准,不管是选用 RISC-V,还是自行开发一套新指令集。
[1]包云岗:关于 RISC-V 成为印度国家指令集的一些看法
[2]《上海市经济信息化委关于开展 2018 年度第二批上海市软件和集成电路产业发展专项资金(集成电路和电子信息制造领域)项目申报工作的通知》