当前位置:首页 > 新宝GG新闻 > 正文

中国科学院大学「一生一芯」计划对国产芯片有何帮助

简介中国科学院大学「一生一芯」计划对国产芯片有何帮助 啤酒2018年11月8日,乌镇世界互联网大会,经过九个月的筹备工作,中国发展...

中国科学院大学「一生一芯」计划对国产芯片有何帮助

啤酒

2018年11月8日,乌镇世界互联网大会,经过九个月的筹备工作,中国发展指挥生态(RISC-V)联盟正式成立。晚上在乌镇的一家餐馆庆祝时,坐在我旁边的一位老师问了一个问题:“你将来打算做什么?”事实上,这也是我在2018年经常问自己的一个问题。我有一个非常粗略的想法——学生是否能参与开源芯片的生态建设——这将经常出现。听完老师的问题后,这个想法再次浮现在我的脑海中,然后我介绍了如何在餐桌上整理我的想法时,将教学与开源芯片结合起来。这应该是“一生只有一个核心”计划的最初萌芽。


当时,我没有想到“我生命中的一个核心”这个名字,但我已经大致形成了一个目标,那就是本科生也可以制造处理器芯片,这样本科生就可以用自己设计的处理器芯片毕业了。然而,联盟建立后,这一想法并没有得到实质性的推广。


2019年5月16日,华为被美国列为实体,震惊全国。各行各业都想知道他们能为华为做些什么,我们也在考虑这个问题。然而,我们正在做开源芯片,华为暂时不使用它们;我们使用开放式RISC-V指令集,而华为的主要芯片基于ARM。我们似乎无法帮助华为解决这一迫切需求。不过,在与华为专家交谈后,他们表示,华为基本能够应对短期需求,他们更需要的是中长期的先进技术,而他们最需要的是处理器芯片设计人才。由于华为的许多芯片架构设计团队都位于美国的硅谷,由于美国的出口管制,虽然华为是全资子公司,但其技术不能进口到华为总部。因此,华为的芯片设计人才在美国不能再发挥作用,但他们不能在中国招聘。这是华为的毒刺。

预计华为在中国找不到处理器芯片设计人才。2017年,我安排我组的学生对2008年至2017年在建筑高层会议上发表的ISCA论文的第一作者进行统计。最后,统计数据显示,这些优秀人才中有85%选择在美国工作,只有4%在中国工作,这是一个巨大的差距。这与国内许多大学缺乏对处理器芯片设计的教学和研究密切相关。

事实上,美国也经历了类似的人才危机。1982年,来自美国数千所大学的不到100名教授和学生从事半导体相关研究。为了应对人才危机,美国国防部高级研究计划局(DARPA)于1981年启动了MOSIS项目,为大学提供电影制作服务,并通过MPW模式大大降低了芯片设计的门槛。在过去的30年里,MOSIS已经向大学和研究机构分发了60,000多个芯片,并培训了成千上万的学生。

因此,降低芯片设计的门槛,让学生自己设计芯片,可以大大提高人才培养的效率。这与我以前的想法和目标完全一致。我们不能再拖延了,我们应该加快人才培养计划。

正式发布

我主动给这个计划起了个名字:“我生命中的一个核心”。初衷是希望有一天每个学生都能用自己设计的芯片毕业。不管未来能否实现,这听起来至少是一个美丽的理想和一点浪漫。后来,当许多人听到这个名字时,他们的第一印象是“一辈子做一个芯片”。也有女孩有更浪漫的理解:“一生只爱一个人”。无论如何,似乎每个人都不讨厌这个名字。

然后,我联系了几个国立科技大学的本科生,问他们是否愿意作为老鼠参加“一个生命中的一个核心”项目。出人意料的是,这些准00岁的老人(出生于98/99年)都表示愿意挑战并成为老鼠。

6月20日,我在开源芯片工作组向大家宣布:启动“一个生命中的一个内核”计划!这不是产品级芯片的开发,而是一种教学实践。不久,唐丹先生给出了未来芯片的内部代码“COOSCA”,即计算机组织/操作系统/计算机体系结构三个课程的缩写。

随后开始组建教学团队,教学团队也随着项目的进展而扩大:唐丹老师和刘彤工程师负责SoC架构设计指导,余子豪老师负责处理器核心设计(实际上,子豪是博士生,但因为他在国内计算机系统教学领域很有名气,我们也半开玩笑地称他为老师),张可老师负责与国家科技大学的项目协调和对接。与常、共同指导现场可编程门阵列仿真,解必伟、李毅支持后端物理设计,深圳大学蔡晔参与帮助设计电路板。此外,江德俊和王三是国家科技大学的本科操作系统教师,对操作系统给予支持。两位博士生王和徐怡南也扮演了助教的角色来帮助回答问题。我更像一个啦啦队员,为每个人打鸡血。

教学团队开始采取行动。大家讨论制定了总体规划,确定了技术路线,选择了基础平台,搭建了开发环境,选择了电影制作流程和班车...参加首届“一个生活中的一个核心”项目的学生最终确定,共有五名学生,即金悦、王华强、王范凯、张琳娟和张子非。这五名学生已经通过了计算技术学院的夏令营面试,他们都被计算技术学院录取为研究生。其中,的导师为研究员,王华强的导师为姜德俊副研究员,王为孙宁辉院士,张琳娟、张子非的导师为我。但在下一次,他们将组成一个团队,挑战用自己设计的处理器芯片毕业的任务。

8月20日,当唐丹先生和解必伟先生最终实现了SMIC 110纳米工艺的流道时,“一个生命中的一个核心”计划一切就绪。

8月27日,第一批参加“一个生活中的一个核心”项目的五名学生在我的办公室与教学团队举行了一次简单但意义重大的动员会议。“一个生活中的一个核心”项目正式启动!

项目分工

四个月的高强度开发

在打开弓之前没有回头路。唐丹先生确定最合适的班车是12月17日,离动员大会还有不到4个月的时间。通过这种方式,芯片可以在4月份进行封装,然后返回进行测试。如果一切顺利,我们可以在5月底或6月初赶上国家科技大学的毕业答辩,然后在答辩现场展示芯片。然而,如果你错过了这辆车,你将不得不再等两个月才能赶上下一辆车,这意味着芯片不可能在毕业答辩期间返回。“一生只有一个核心”的团队需要与时间赛跑。

在确定总体计划时,我们有两个决定:

首先,凿子用于开发。之前,我们实验室对凿子和Verilog的开发效率和质量进行了对比实验,证明凿子的开发速度比Verilog快几倍,开发质量也不比Verilog差。相关结果发表在“芯片敏捷开发实践:标记的RISC-V”论文中。

其次,改进是基于余子豪为NTU开发的一款教学RISC-V处理器内核,这主要是因为余子豪在开发该处理器的过程中构建了丰富的工具,包括NEMU软件模拟器、指令差分测试框架等。,这有助于加快发展。教学处理器的功能仍然很基本。为了运行Linux并支持流,需要添加许多新功能,包括指令扩展,如RV64IM/RVC/RVA、时钟中断、硬件填充的TLB、M/S/U特权级别、缺页异常、缓存预取、软件随机存取存储器控制器、外围输入/输出设备...这是一种贴近实战的开发模式——在实际的产品研发和科研工作中。培养学生“理解-消化-创新”的能力是十分必要的。

接下来,将有四个月的密集开发。但是,一些关键模块的工作原理还没有在课堂上介绍。学生需要做一些探索性的尝试,有时甚至需要重新发明以前的设计。他们会因此而感到焦虑或沮丧,这也是对他们心理的一个巨大考验。教学团队不仅需要给予技术指导,还需要正确引导学生的心态,告诉他们不确定性是探索过程中的客观规律,然后引导他们总结探索失败的经验,并深入分析当前方案不可行的原因,从而加深他们对问题的理解,使他们正确认识探索失败的意义。

尽管这项任务极具挑战性,但仍在不断取得进展。每当我们有一个小小的里程碑时,我们都会把那一刻记录下来,因为我们认为有一天它可能会有用。后来,这些时刻被真正地利用了,也就是说,宣传视频中的时间线。在这个过程中,国家科技大学的各方都给予了极大的支持,从学校领导到本科系和计算机学院的各级领导都非常关心和重视;在中国科学院计算技术研究所,研究所所长孙宁辉院士、主管教学的副所长陈锡林、教育系的林莉老师给予了全面的保证和支持。这也给了“一个生命中的一个核心”团队一种使命感,激发了每个人的战斗精神。

12月19日,COOSCA 1.0芯片的布局被冻结。当唐丹老师告诉我们地图已经正式提交时,大家就像是在交高考试卷一样,终于松了一口气,但一颗心又挂了。

疫情中的检验验证

等待芯片返回是一种期待和担心的感觉。这种感觉被突然的流行病进一步放大了。1月23日武汉关闭后,疫情继续发展,我们越来越担心正在发布的COOSCA芯片能否按时回来,赶上毕业答辩。出人意料的是,芯片基本上按照预期时间返回。在此,我们要向SMIC和包装检测企业的员工表示深深的敬意!

然而,疫情仍然对测试工作产生影响,因为学生不能回学校,也不能在现场调试和测试。俞子豪、蔡晔、刘彤上前协助调试和测试。事实上,测试和验证工作也非常具有挑战性,因为问题可能出现在每一个层面,从底层的印刷电路板布局、内存粒子到中间处理器的设计,再到上层的操作系统和应用软件。即使是一个小问题也会导致芯片无法正常工作。

经过大约一个月的调试和测试,最终证明芯片一切正常,可以启动Linux操作系统。然而,芯片的输入输出模块存在缺陷,影响了SD卡的读写。测试验证也充满了戏剧性。开始时,调试比较保守,芯片降低到50MHz,但是系统中存在很多问题。后来,芯片频率从50兆赫跳到200兆赫。结果,许多问题消失了,Linux可以稳定运行。频率进一步提高到350兆赫,启动Linux有问题,但实时线程可以稳定运行。该频率与后端模拟基本一致。同时也证明了凿子开发和Verilog开发对后端物理设计没有太大的影响。

毕业答辩演示

2020年6月2日是国立科技大学本科毕业设计答辩日。五名学生介绍了他们基于COOSCA处理器核心的进一步优化工作:

王华强:基于RISC-V的乱序多传输处理器设计

张子非:基于RISC-V的矢量处理器设计

张:开源处理器分支预测器的设计与性能优化

金悦:基于敏捷开发语言的开源处理器无阻塞缓存的设计与实现

王:RISC-V平台下的二进制翻译与优化

其中,王在毕业设计中使用了COOSCA核心,这是他们自己设计的核心首次应用到科研中。

王华强代表“一个生命中的一个核心”团队展示了COOSCA芯片的功能。他进一步将这种内核改进为无序多重发射,并在现场可编程门阵列上进行了测试。结果表明,该岩心的气相色谱峰面积比该岩心的气相色谱峰面积增加了一倍。他的毕业设计还获得了国家科技大学优秀毕业设计。

五名本科生已经实现了用他们自己设计的处理器芯片毕业的目标!

之后,王将学生在国家科技大学操作系统课程中编写的UCAS-Core移植到COOSCA core上,实现了用自己的中央处理器运行自己编写的操作系统的小目标。

第六,“果壳”公开亮相

CRVA联盟将于7月18日举办RISC-V年中技术研讨会,“一个生命中的一个核心”团队决定让王华强提交一份设计报告,正式向社区介绍COOSCA核心的设计。在提交之前,每个人都认为COOSCA是一个内部代码名称,现在它将被公开,所以它应该有一个更正式的名称。经过讨论,学生们决定把它的名字改成“坚果壳”,这是与国立科技大学的“国家科学”谐音。可以看出,他们对HKUST确实有些深厚的感情。

五位同学开始为“壳牌”的首次亮相做大量的准备工作:王整理了代码和相应的文档并在Github上打开源代码,王华强整理了一份介绍“壳牌”设计的PPT报告。7月18日,王华强出现在第二次技术研讨会上,介绍了壳体的设计细节和开发过程中的一些经验。

7月22日,王华强接到RISC-V全球论坛收到“果壳”的通知。9月3日,王华强将代表团队向全球业界介绍“果壳”的设计,这也是“果壳”首次在国际舞台上亮相。纵观此次RISC-V全球论坛的议程,这些报告来自世界各地的资深行业专家,包括图灵奖获得者大卫·帕特森教授。国立科技大学的本科生很少去RISC-V全球论坛介绍他们设计的处理器内核。作为教学团队的成员,我们也有一颗自豪的心。

收获和经验

在我们的调查中,我们发现最接近“一个生命中的一个核心”计划目标的是加州大学伯克利分校已经开始了一门新课程,EE 194/290C“面向物联网的28纳米SOC”,其目标是设计一个SoC芯片并集成各种ip模块,包括伯克利开发的RISC-V火箭处理器核心。这门课程是针对电影制作的。2017年春季,9名本科生和1名研究生参加了该课程。一个学期后,电影制作完成,但没有提供任何信息来证明芯片可以正常工作。

伯克利EE194/290C基于现有的RISC-V内核和其他用于SoC集成的IP内核。然而,《终身一核》(Lifetime One Core)与EE194/290C课程的不同之处在于,本科生应该直接设计一个64位RISC-V处理器,然后在这个核心的基础上,学生需要进一步集成和验证一系列外设的IPs,最终形成一个能够运行Linux操作系统的SoC芯片,这是极具挑战性的。

一年前,我们不知道这个目标是否可行。但是现在,我们已经探索了环路并清理了道路,这被证明是可行的。这个摸索过程积累了很多经验,也充满了教训。作为老鼠,五个学生参加了第一个“一个生命中的一个核心”项目,他们成长了很多。他们不仅掌握了项目中处理器芯片设计所需的专业知识,还培养了优秀人才的优秀心理素质。让我们看看他们的感受:

现在,这五名学生正在参与一个更具挑战性的项目,开发一个高性能无序多启动RISC-V处理器核心设计。

一年前,他们在制作“果壳”时遇到一些困难,现在他们是这个新团队的骨干,与其他博士生和工程师一起克服困难。三个40多岁的中年人,蔡晔、唐丹和我,被从队伍中除名。这支队伍的平均年龄只有23.1岁,但他们的战斗力是惊人的——在不到三周的时间里,他们从头开始完成了无序处理器主装配线的设计和实施,并通过了CoreMark测试。到30岁时,他们可以说是处理器芯片和计算机系统设计领域的“老手”。那时,他们将进入自己的工作岗位,也许是在工业中研究和开发产品,也许是在学术界做科学研究。

我相信他们的创造力会在那时得到更大的发挥和展示。我期待着这些年轻人的未来。

从教学团队的角度来看,除了前期需要做好总体规划和环境平台的充分准备外,在开发过程中有四个方面的指导尤为重要(以下是俞子豪老师的总结):

项目规划和分工。在开发的初始阶段,学生可能无法完全掌握芯片中每个模块之间的关系。这时,老师需要仔细划分学生的工作,这样学生就可以通过一些初始任务了解芯片的全貌。随着项目的进展,在学生对芯片的理解逐渐清晰后,教师进行的分工可以向粗略的方向转变,可以向学生提出明确的任务目标,学生可以尝试提出自己的解决方案。

引导学生理解项目的每个细节。芯片是一个复杂的系统,所以学生需要了解芯片每个模块的行为以及芯片上运行的程序的每个细节。然而,学生往往不能从一开始就改变课程设计的模式,认为他们只需要知道与自己任务相关的模块,而不主动去了解其他模块和软件级的行为。这导致他们在遇到问题时无法想出解决办法。这时,教师需要引导学生主动了解芯片甚至软件行为的每一个细节。当遇到困难时,这些理解会成为解决问题的线索,沿着线索追踪问题的过程会进一步加深学生对这些理解的理解,从而形成良性循环。

指导学生利用课堂上学到的知识解决发展中遇到的实际问题。在芯片开发过程中,可能会有各种各样的困难,一些看似硬件的设计问题,最终可能是由软件配置错误造成的。要解决这些困难,学生需要从全局的角度来分析问题,并与课堂上学到的知识建立联系,从而找出解决问题的可能性。教师需要引导学生根据观察到的现象展开思维,并主动思考他们可能学到了什么知识。如果学生面临一些困难的问题,他们也需要老师提出一些建议。

引导学生在探索过程中正确理解不确定性。在全功能芯片中,一些关键模块的原理在课堂上没有详细介绍。学生需要一个探索的过程来正确实施这些模块。这意味着学生不能一步一步地完成课程工作,而是会经历设计方案的调整,甚至是重新发明整个方案。这很容易导致学生感到焦虑或沮丧。因此,教师需要正确引导学生的心态,告诉他们不确定性是探索过程中的客观规律,然后引导学生总结探索失败的经验,并深入分析当前方案不可行的原因,从而加深他们对问题的理解,使学生正确认识探索失败的意义。

最新文章