5 位中国本科生,以前所未有的方式迎来毕业季。他们带着一颗自研芯片,从中国科学院大学(下称国科大)毕业。
图左起金越、王华强、王凯帆、张林隽、张紫飞
7 月 25 日,中国科学院大学公布首期 “一生一芯” 计划成果,由国科大 2016 级计算机学院本科生王华强、金越、王凯帆、张林隽和张紫飞等 5 位同学,主导完成一款名为 “果壳(NutShell)” 的 64 位 RISC-V 处理器 SoC 芯片设计并实现流片,该芯片已可以运行在 Linux 操作系统、以及学生自己编写的国科大教学操作系统 UCAS-Core 中。
图 “果壳”芯片(来源:国科大)
据悉,“果壳”于 2019 年 12 月 19 日完成设计,并基于中芯国际 110nm 工艺完成投片。2020 年 4 月 23 日,“果壳”返回后,经过调试、测试和验证后,首次实现顺利运行。
图 “果壳” 芯片返回样片
2020 年 6 月 2 日,王华强同学代表 “一生一芯” 团队,向国科大毕业答辩委员会演示 “果壳” 的功能,5 位同学最终交出一份超预期的本科毕业设计 “答卷”,这标志着首期“一生一芯” 计划取得成功。
图 “果壳” 芯片展示
参与该项目的 5 位同学,相关课程成绩多数在 90 分以上。其中,王华强还是 “龙芯杯” 全国大学生计算机系统能力培养大赛的一等奖得主。
“一生一芯”计划负责人、国科大计算机学院教授、中科院计算所先进计算机系统研究中心主任包云岗告诉 DeepTech,“一生一芯”计划萌芽于 2018 年乌镇世界互联网大会。在本次大会上,为推动建立世界共享的开源芯片生态,中国开放指令生态(RISC-V)联盟成立。
担任该联盟秘书长的包云岗,开始思考该如何构建开源芯片生态。由于中国处理器芯片设计人才严重紧缺,他意识到教学是开源芯片生态最好的应用场景之一。
2019 年 8 月 27 日,“开学日”的前几天,国科大正式启动”一生一芯”计划。该计划得到国科大李树深校长、王艳芬常务副校长等校领导及本科部的高度重视,该校累计召集 5 个以上部门,来协调支持该计划。
图包云岗展示“果壳”
包云岗表示,上述同学毕业后,都将在中科院计算所读研,并参与一个更有挑战性的项目,他们将在未来参与一款高性能乱序多发射 RISC-V 处理器核的设计。
图部分同学的学士学位论文
7 月 27 日凌晨,包云岗在回顾“果壳”的文章中写道,这支队伍平均年龄只有 23.1 岁,但他们表现出来的战斗力却是惊人的——不到三周就从 0 到 1 完成了乱序处理器主流水线的设计、实现、并通过了 CoreMark 测试。等到他们 30 岁时,就能成长为处理器芯片和计算机系统设计领域的“老兵”。
像开发 App 一样做芯片
据了解,本次芯片起名叫 “果壳”,是因为它的发音与“国科” 相同。
包云岗告诉 DeepTech,“果壳”的最高工作频率是 350MHz,CoreMark 测试跑分为 1.49/MHz。虽然和商业处理器相比仍有一定差距,但 “果壳” 已经是功能较为完整的 RISC-V 处理器。
本次流片的处理器,使用 Chisel 语言作为编程语言。目前很少有国内高校,在本科教学中引入 Chisel,正因为使用 Chisel 语言,学生才能在短期内实现出功能完整度较高的处理器。
西南交通大学信息学院电子工程系副系主任邸志雄博士,就此评论称:“使用 Chisel 语言做芯片,非常值得其他高校在相关课程教学中借鉴和深思。”
不过,严格意义上来说,“果壳”是一款教学芯片,而非产品芯片。后者需要实现功能、稳定性、功耗等多个目标,其开发和验证更复杂、周期也更长。
而教学芯片只需完成功能目标,对稳定性和成本等基本不做要求。邸志雄也认为,“一生一芯”的定位是服务于本科教学,因此不能将评价科研成果的 “创新”“前沿”“领先” 等词汇,套用于“果壳”芯片。
参与芯片研发的唯一一位女生张林隽同学也表示:“先完成,后完美。一定要勇敢地试错,我们只要迈出第一步,接下来其实都是顺其自然的。”
图 5 位同学展示“果壳”(来源:国科大)
正因为是教学芯片,所以校方也充分兼顾到成本。据包云岗介绍,首期芯片流片成本每位学生约为 5 万元。此外,他们也正在研究新技术架构,成本更低之后,推广起来也更方便。
“果壳”流片采用 110nm 工艺流片。以常用的 0.18μm 工艺为例,采用 MPW(多项目晶圆)的方式来流片,最小面积 5*5 平方毫米,流片加封装的费用大致在 25 万元左右。而教学流片的芯片,一般功能都不复杂、面积也很小,25 平方毫米足以容纳 10 颗左右的芯片。
并且,流片也是培养集成电路设计人才的最好方式。邸志雄分析称,学生在流片中除掌握必要技能外,还需综合考虑性能、成本、功耗之间的指标权衡,而这能进一步加深学生对知识的融会贯通。
更重要的是,流片过程非常严谨,无论多么细心都不过分。故此也可以看到,学生们做的电路设计、技术文档撰写都非常规范。
目前,“果壳”的设计投稿,也已经被 RISC-V 全球论坛接收。王华强同学将代表团队,于近期向全球业界介绍该芯片,届时 “果壳” 将首次在国际舞台上亮相。
图 “果壳”芯片设计投稿被被 RISC-V 全球论坛收录
本次 RISC-V 全球论坛的报告,均来自世界各地的业界资深专家,其中包括图灵奖得主大卫 · 帕特森(David Patterson)教授。因此,等待 “果壳” 的将是更大的舞台。
此外,“果壳”的设计源代码已经在 GitHub 开源:https://github.com/OSCPU/NutShell
为什么开源设计源代码?
说到做芯片,学生的第一反应就是——难,他们本能地想绕开这根硬骨头。怎样降低芯片开发的门槛,包云岗找到的方法,是开源。
近年来一直研究 RISC-V 的包云岗发现,RISC-V 与芯片敏捷开发语言 Chisel,能使开发效率数量级提升。RISC-V 还可以自由地用于任何目的,允许任何人设计、制造和销售 RISC-V 芯片和软件。
2019 年 5 月,华为被美国商务部列入 “实体名单”,相关人才危机必须尽快找到出路。于是,包云岗迅速将模糊的想法细化,并在“一生一芯” 计划落地实施。
图 “果壳”芯片开发历程
可能有人认为,中国芯片技术正在努力攀登,在此情况下设计源代码不是应该保护起来吗?
对此包云岗解释称,从整个技术生态角度考虑,降低芯片设计门槛具有重要意义。而开源是降低芯片设计门槛的有效手段之一。
其原因在于,芯片设计过程与软件开发有很多相似之处。自 20 世纪 80 年代以来,Verilog/VHDL 这两项硬件描述语言与综合器技术,逐渐趋于成熟,用编程语言编写代码,成为芯片设计的重要过程。
因此,借鉴开源软件的成功理念,将处理器芯片的设计代码开源,有望大幅降低芯片开发的门槛,不仅开发成本可从从几千万甚至上亿元、降低至几百万甚至几十万元, 整个芯片及硬件开发周期,也将从从几年、降低至几个月。
包云岗认为,“开源就是公开源代码”的片面观念需要转变。事实上,处理器开源并不仅仅是将源码公开,而是一种对处理器设计方法的变革,这需要大量基础研究。
如果中国能主导开源芯片生态的构建,将有助于提升中国在半导体芯片领域的人才储备、供应链安全、技术自主能力与国际竞争力。
降低芯片设计门槛,可大幅提高人才培养效率
当前,中国前端芯片架构设计人才缺口大,但人才培养却没有跟上,国内甚至出现芯片公司互挖墙脚的尴尬现象。
包云岗曾在一篇文章中表示,中国芯片 “卡脖子” 问题的根源,在于优秀人才储备严重不足。
他曾参与统计芯片架构研究优秀人才(以计算机体系结构顶级会议 ISCA 论文第一作者作为采样样本)的毕业去向。结果显示,2008 年到 2017 年十年间 85% 的芯片优秀人才选择在美国就业,仅有 4% 在中国就业。主要原因正是因为当前芯片设计门槛过高,导致国内高校无法开展芯片相关教学与研究。
图 ISCA2008~2017 年论文一作情况
事实上,美国也曾经历过上述人才危机。1982 年,全美上千所大学中只有不到 100 位教授和学生从事半导体相关研究 。
为应对人才危机,美国国防部高级研究计划局于 1981 年启动 MOSIS 项目(Metal Oxide Semiconductor Implementation Service),并为大学提供流片服务,通过 MPW 模式大幅降低芯片设计门槛。
30 余年来,MOSIS 为大学和研究机构制备出 60000 多款芯片,培养了数万名学生。因此,降低芯片设计门槛,可大幅提高人才培养效率。
而 “一生一芯” 计划,正是为了加快芯片人才的培养规模与培养速度。据包云岗介绍,该计划的课程设计理念,在全球范围内属于先进行列。
参与“果壳”研发的王凯帆也表示:“这个项目和之前的课程实验最大的不同在于没有实验手册,没有先导者给你一步步铺好路,而是要自己去探索。”
全球其他高校有没有类似课程
包云岗介绍称,2017 年春,加州大学伯克利分校开设一门新课 EE194/290C :28nm SoC for IoT。其目标是要设计一款 SoC 芯片。这门课以流片为目标,由 9 位本科生与 1 位研究生参加,一学期后完成了流片,但该校未能证明芯片是否可以正常工作。
“一生一芯”与上述课程的不同之处,在于本科生直接设计一款 64 位 RISC-V 处理器,并且能运行 Linux 操作系统。而加州大学伯克利分校 EE194/290C 这门课只是根据已有的 RISC-V 核和其他 IP 核进行 SoC 集成。
一直关注该课程计划的邸志雄,认为 “一生一芯” 有三大亮点:
在深度方面,“果壳”不仅完成了处理器设计、操作系统移植、芯片设计和物理实现的集成电路纵向设计流程,还集成了计算机体系结构领域中的多门知识。相比传统教学中几门相互独立的课程,“一生一芯”能让学生更系统更深入地掌握知识。并且,每个阶段的知识体系都较为完整,比如“果壳”采用多级流水线设计,并包含完整的缓存、总线和外设等。单从处理器体系结构设计的本科教学来讲,已经是很完整的作品。
在广度方面,“一生一芯”是计算机体系结构、与数字集成电路设计的良好结合,除学习计算机知识,学生还需掌握集成电路设计专业的知识,如 EDA 工具使用、数字芯片前端设计与后端实现等。
在教学方面,课程与实验设计尽显开源情怀。“一生一芯”支持学生使用开源处理器和开源 EDA 工具,作品也在 GitHub 开源。在当前大环境下,鼓励和引导学生使用开源 EDA 工具,也是一种 “家国情怀” 的体现。
图 “一生一芯” logo
“一生一芯”,是包云岗起的名字,寓意是希望每个学生都能带着自己设计的芯片毕业。他说:“不管是否真的可以实现,至少听起来是一个美好的理想,而且还有一点烂漫。”
在中国芯片攀登的过程中,这样的命名也可以激励更多人才投身芯片研发。即用尽一生,做好芯片。
-End-
参考:
http://wap.sciencenet.cn/blog-414166-1203989.html?mobile=1
https://www.zhihu.com/question/409298856/answer/1363569013
https://article.xuexi.cn/articles/index.html?part_id=14745402656927210005&art_id=14745402656927210005&item_id=14745402656927210005