龙师傅好想让人人都学会设计CPU

guee评科技 2024-04-09 18:29:23

学习是“学”和“习”的结合,“学”是听读、思考、理解,“习”是实践、探索、创新。

由于美国的科技封锁,在计算机技术方面,我国的学生和科研人员在很长的历史阶段,都只能学到基础理论,而无法获得高层次的技术资料。仅靠基础理论是无法研制出现代计算机的,就像中学教材上就讲解了火箭原理,但按照原理制造出的实物只能算是模型,距离实用还差十万八千里。

我国翻译过一些计算机体系结构(计算机原理和结构)教材,但那些教材都涉及不到核心技术,知识结构也比较陈旧。何况大多数老师对CPU设计也没有深刻体会,就很难做到深入浅出地讲解。再加上CPU设计属于“屠龙之技”,于是连续几十年,我国计算机类教学的主要内容是计算机应用技术,而非计算机的设计和制造。即使一些学生和科研人员对计算机核心部件有浓厚兴趣,也只能“学”得云遮雾罩,而不能“习”出拨云见日。

在电子管和晶体管计算机的时代,我们的做法是自己走完从原理到产品的征途,再把研究过程中的体会和成果整理成教材。然后开设专门的培训班,由科研一线的科学家担任老师,再让通过培训的学生加入新型计算机的研制团队,帮助他们成长为新一代的中坚力量。

在微型处理器时代,我们一度失去了这样的知识传承体系。巧妇难为无米之炊,在我国拥有自主研制出高性能CPU的能力之前,学校中能把基础结构理解通透的学生就已是凤毛麟角。要改变这种没处学,无法习的状况,就必须重新建立起从教学到实践一条龙的培养体系,不但要有能真正讲清楚计算机体系结构的教材,还要让老师和学生都有机会亲自参与到CPU设计中来。

要实现这个目标,只靠学校和科研机构是不够的。今时不同往日,对于CPU设计,现在技术积累最深厚、实践经验最丰富、实习机会最充分的都是CPU行业中的头部企业。必须以一流的CPU企业为依托,才能建立起完善的CPU设计人才培养体系。

综述

国内现在有6家主要的CPU设计单位,其中最热衷于传播CPU设计技术、培养CPU设计人才的莫过于龙芯CPU的研发团队。龙芯CPU起源于中科院计算技术研究所,他们本来就承担着培养人才的责任,在龙芯CPU开始市场化运作,组建了龙芯中科技术股份有限公司之后,培养人才的传统更加被发扬光大。

龙芯公司的很多专家在高校承担着教学任务,不但能与学生分享只有通过实践才能感悟到的心得体会,还能带领学生参与实际的芯片设计。因为CPU包含了最繁多的功能,所以只要学会了设计CPU,自然就能设计大多数类型的芯片。二十多年来,龙芯团队源源不断地教导学生,培养工程师乃至专家,向芯片行业输送了大量的优秀人才。

然而一家之力毕竟有限,即便从龙芯获益的学生和工程师盈千累万,但对国内芯片行业庞大的人才缺口仍然是杯水车薪。为了迅速增加芯片人才的基数,并帮助有志于芯片设计的学生能更好地成长,龙芯于2016年开启了与众多高校联合培养芯片人才的模式。通过编写深入浅出的教材、设计CPU实验教具、开源成熟的CPU核心、举办CPU设计比赛等方式,建立起了一套完善的培养、激励、选拔的机制。

2022年,龙芯又启动了更加完善的“百芯计划”。百芯计划不再仅限于教学,而是让学生真正进行芯片产品设计,涵盖了从芯片设计到流片验证,以及芯片应用系统开发和商业化的全部环节。龙芯为百芯计划开源了两款CPU核,并提供一系列的外围IP核,学生可以直接使用,也可以自行设计。龙芯还为学生们准备了全套的开发和验证工具,并提供全程的技术指导。

百芯计划的主要内容是:计划在5至10年内,在全国范围选择百所高校,以校企合作的模式,共建百个“芯片联合实验室”。联合实验室将基于龙芯高校计划免费提供的IP,可联合第三方共同研发实用型的自主芯片,并形成产业化应用。通过百芯计划,将百个实验室联网形成基于龙芯自主芯片IP的生态圈,打造兼具自主创新、科研创新、服务地方经济和人才培养功能的产学研合作平台。

龙芯公司还是国家设立的博士后科研工作站之一,定位于进一步为国家自主创新“卡脖子”行业培养紧缺人才,培养敢于迎接挑战、有志于从事应用、基础研究的核心人才。龙芯博士后科研工作站设立在龙芯实验室,这个实验室目前主要有二进制翻译、异构计算、性能分析、安全机制、内存计算等五个研究方向,都是计算机领域底层核心的课题。

整个人才培养体系的建立和完善,以及对校企合作模式的探索,受益的是整个半导体行业。对于龙芯来说,即便弱水三千,它也只取一瓢。

龙芯竭尽所能地培养芯片人才,主要是源自于责任、使命、信念等脱离了低级趣味的追求,也是传承自老一辈计算机专家的无私奉献精神。龙芯的掌门人胡伟武是夏培肃的学生,夏培肃是中国自主计算机事业的开创者。她编写了中国第一本计算机体系结构教材,开办了中国第一个计算机体系结构培训班,研制了中国第一台完全自主的电子计算机。夏培肃是中国计算机事业的奠基人之一,胡伟武深受老师的影响,也执着于中国自主计算机事业的发展。

胡伟武研制了中国第一枚通用微处理器,编写了中国第一本基于自主架构的计算机体系结构教材,他主导研制的龙芯系列CPU代表着中国通用处理器的最高水平,龙芯公司也成为了我国计算机教育体系中不可或缺的骨干力量。

计算机教材

龙芯的技术专家以及合作者,编写了一系列的教材,专业的主讲CPU原理和设计、操作系统原理和设计等,大众化的主要是计算机软件开发和使用,以及用于中小学信息课的计算机入门教材。确切地说,国内6家主要的CPU企业中,只有龙芯编写了与CPU设计相关的专业书籍。大概是因为龙芯的CPU技术是从零开始自主积累,所以龙芯有权传播自己的任何CPU知识,不会遭到任何限制。

讲解计算机原理、体系结构、CPU设计的有:《计算机体系结构基础》(本科教材,已有3次改版)《计算机体系结构》(研究生教材,已有2次改版)《CPU设计实战》(通过实例讲解CPU设计)《CPU通识课》(讲解CPU常识)

这一系列教材,浓缩了龙芯的CPU专家二十多年的技术积累和实践经验,涵盖了从常识到理论再到实践的学习流程。以往国内也出版了一些此类书籍,但大多不是一线的CPU设计专家编写,很难从设计师的角度讲清楚各种算法和结构对CPU性能、功能、安全性的实际影响,更无法提点实际设计过程中的要点和难点。而龙芯的专家们编写的这几本书,读起来就不会有隔靴搔痒之感。

讲解龙芯嵌入式平台软硬件开发的有:《龙芯嵌入式系统软硬件平台设计》《龙芯嵌入式系统原理与应用开发》《嵌入式Linux系统设计与应用——基于国产龙芯SoC》《用“芯”探核——龙芯派开发实战》

讲解桌面操作系统原理和设计以及应用软件开发的有:《用“芯”探核——基于龙芯的Linux内核探索解析》《用“芯”探核——教你构建龙芯平台Linux系统》《汇编语言编程基础——基于LoongArch》《龙芯应用开发标准教程》

讲解龙芯计算机应用的有:《龙芯服务器管理与运维实战》《龙芯电脑使用解析》《龙芯电脑使用解析——UOS版》《龙芯WPS Office使用解析》

其它类型及中小学计算机入门教材有:《龙芯自主可信计算及应用》《小学信息技术(龙芯版)》《初中信息技术(龙芯版)》《中小学信息技术(人工智能教辅)》

在线课程

龙芯公司以及合作者们都热衷于传播知识,但分身乏术,幸而网络提供了便捷的知识传播渠道。

在网络视频平台上,其它公司官方发布的视频基本上都是宣传产品,龙芯中科则与众不同,很大部分是专业的技术内容,是成体系的专业课程。除了龙芯官方发布的课程内容,还有很多的高校教授和业界专家也喜欢分享专业的知识。

例如下面这些系列课程,每一门课程都和高校正式授课一样分为若干个节点,循序渐进,无比详尽:

《“龙架构”计算机核心课程——计算机体系结构基础》(龙芯中科胡伟武老师)《“龙架构”计算机核心课程——深入理解操作系统》(南开大学宫晓利老师)《“龙架构”计算机核心课程——编译系统设计与实现》(中科大李诚、徐伟老师)《龙芯自主指令系统架构LoongArch单周期处理器设计》(龙芯中科汪文祥)《智龙微课》(南工孙冬梅老师)《龙架构(LoongArch):一个新指令集的设计实践》(中科院计算所张福新老师)《龙芯中科“计算机系统结构专题”研讨会》(龙芯中科)《龙芯平台应用开发课程》(网络安全尖锋训练营)《龙芯公开课》(鸽工芯事)《信创培训-龙芯中科系列-应用开发与迁移技术》(尚大教育)《“中国软件杯”龙芯赛题辅导会》(阿图教育)《龙芯Java开发系列》(编程到老)

很多专家的课程,正常来说只有特定高校的特定专业,或者他们带的研究生有机会学习,但他们都怀着教书育人的热忱,愉快地向所有人分享宝贵的专业知识。

除了课时较长的、系列化的专业课程,其它的单独讲解某些知识点、技术方案、使用技巧的网络视频就不胜枚举了。

总之,在国内六家主要的CPU企业中,龙芯中科是传播CPU、操作系统、编译器等核心技术最积极的企业。网络上与龙芯CPU相关的技术分享和讨论,在国产CPU中也是最热烈的。

CPU实验装备

对于CPU设计,只通过书本和老师的讲解来学习还是颇有难度的,因而龙芯设计了一系列的教学用具帮助学生更快理解CPU的工作过程。例如下图所示的各款CPU设计与体系结构教学实验系统,从单片机到多路CPU互联系统应有尽有。

以往,国内高校教学计算机体系结构的课程时,大多是引用国外大学及研究机构的虚拟机及其相应模拟或仿真器用于实验,硬件实验平台几乎是一片空白。国内外以前也有一些称之为CPU实验箱的产品,但基本上只是用于实验外部接口,而不会深入到CPU的内部结构。少数涉及到CPU结构的,也仅限于最简单的单周期处理器,相当于CPU模型。而龙芯的产品则能让学生进行更深入的探索,配合相关的教材和实验指导书能够满足不同层次的教学需求。

除了给大学生准备的教材和实验设备,龙芯也给小学生准备了机器人套件。孩子们既可以学习简单的程序编写,也能够初步了解信号与控制。以及接触到机器视觉、人工智能等前沿的知识。

开源指令集、CPU核心、开发平台

2016年,龙芯中科向高校和学术界开源了两款产品级的CPU核心。2022年龙芯发起了百芯计划,再次开源了两款升级版的CPU核心,分别是OpenLA500和OpenLA1000。这两款CPU核心都源自龙芯产品级的成熟设计,并允许学校联合其它企业用于产品研发。除了两款CPU核,龙芯还提供了其它各种IP核,可以用这些IP核整合出商业级的产品。

百芯计划配套的资源如下:

OpenLA500 处理器核:单发射、5 级流水、TLB、Cache、AXI I/F,可读 VerilogHDL代码;OpenLA1000 处理器核:双发射、7 级流水、TLB、Cache、AXI I/F,可读 VerilogHDL代码;其它 SoC IP:AMBA 总线互联、SDRAM Ctrl、SDIO Ctrl、MAC Ctrl、SPI Ctrl、I2C Ctrl、UART Ctrl、PWM、GPIO;软件资源:GCC 工具链,QEMU 模拟器,指令集功能测试程序集,裸机执行环境、U-boot、Linux kernel,处理器核功能仿真验证环境,SoC 参考设计的软件仿真和 FPGA综合实现环境等。

让学生学会整合SoC只是教学目标之一,更高层次的目标是让学生掌握从零开始设计CPU的能力。因此龙芯还开源了LoongArch32 Reduced指令集,并开放了被称为chiplab的硬件开发平台。

LoongArch32 Reduced是LoongArch指令集的32位精简版本,规模与RISC-V指令集相当,适合用于嵌入式CPU以及教学和实验。而chiplab则是一整套的芯片设计和验证工具,还包括了一个教学风格的单发射五级流水CPU参考设计。

chiplab还包含了基于境内工艺的物理设计环境及参考流程,面向180nm、130nm、110nm的工艺节点,提供了开源的EDA工具包。

百芯计划在启动一年多之后就诞生了第一项芯片成果,河海大学于2023年8月19日发布了“河海智慧水利1号芯”BX100E-HHU。这颗芯片完全基于国产自主指令集LoongArch,使用 0.18um工艺制造,集成了丰富的外设接口及片上模块,包括 SDRAM接口、UART接口、PWM接口、HPI接口、SPI接口、SDIO接口、I2C接口、MAC接口、专用GPIO接口等。BX100E-HHU提供了足够的计算能力和多应用的连接能力,计划应用于水利、交通及能源等重点行业的嵌入式、物联网以及智能控制等领域的实际工作中。

CPU设计比赛及教学实践

2010年,教育部高等学校计算机类专业教学指导委员会启动了“高等院校计算机类专业系统能力培养研究项目”。2017年,全国高等学校计算机教育研究会、中国互联网发展基金会、系统能力培养研究项目示范高校决定每年举办一次“全国大学生计算机系统能力大赛(National Student Computer System Capability Challenge)”,这项赛事简称为NSCSCC。

计算机系统能力主要包括CPU、操作系统、编译器三大板块,NSCSCC也分为这三个赛道。其中CPU赛道也叫“龙芯杯”,不但要设计硬件系统,为了验证和调试硬件,还必须完成软件系统的移植。

硬件系统:CPU 微结构设计与性能调优、外设控制器与片上互联结构设计;软件系统:固件适配移植、操作系统适配移植。

因为操作系统和编译器赛道的比赛内容与CPU赛道的基础要求发生了重叠,所以CPU赛道最有挑战性,也因此“龙芯杯”经常被作为整个NSCSCC的代称。

龙芯杯的参赛人员全都来自全国高校,参赛人数逐年增长,例如2023年第七届“龙芯杯”就有103支队伍参加团队赛,以及418人参加个人赛。龙芯杯参赛人员设计的CPU不要求流片,主要是通过FPGA进行功能验证,以降低比赛成本。“龙芯杯”赛事体系日益成熟,越来越多有能力有想法的高校学子参与到比赛中,实现“以赛促学,以赛促教”,推动我国计算机领域创新人才培养体系改革,并为我国高端芯片及核心系统的技术突破与产业化培养后备人才。

除了“龙芯杯”,中科院的“一生一芯”计划也同样是为培养芯片人才而进行的探索。一生一芯计划不是比赛,而是以流片为目标的教学实践,大致是培训班的模式。该计划最初是在中国科学院大学实施,现在已经有国内外众多高校的近千名学生参加培训。

结语

知识的来源除了学习就是探索,通过学习快速掌握现有的知识,才能用节省下的时间去探索未知的领域。而探索也必须以已经存在的知识为基础,因此知识的传承和扩散是人类社会进步的前提。

有人说我国对现代科技的贡献太少,却没有想过因为知识被封锁,所以我国很多科研人员一生都只能重复别人已经研究过的课题。因为耗费了大量的时间去追赶差距,因为西方国家剥夺了他们为整个人类社会的科学进步贡献智慧的权力,因为我们必须先覆盖别人已经探索的领域,才能在继续扩大的知识版图上留下中国人的标记。

高性能CPU技术从未被放松过封锁,每当我们获得进步的时候,西方国家就会抛出略高一线的技术来打击我们自主进取的积极性,做出只要我们安于现状就能源源不断地获得技术支持的假象。然而自主创新的目的不是为了得到施舍,那是舍本逐末。依靠嗟来之食不可能达成我们的目标,我们的目标是CPU技术达到世界一流。

CPU生产是对经济和工业水平的全面考验,而CPU设计则更主要依赖人的因素。我们的CPU生产能力很难追平以美国为首的联合体,但是CPU设计能力已经非常接近世界最高水平。我们要保持进步趋势,并在未来实现超越,就必须在广度和深度两个方面同时加强人才培养,建立起完善的培养和选拔机制。

龙芯中科是一家脱离了低级趣味的CPU企业,不但自己的CPU设计能力跻身一流,而且分享知识的慷慨也是首屈一指。国内没有任何其它的CPU企业如此热衷于人才培养,经龙芯体系培养的芯片人才累千盈万,对我国芯片行业的发展功勋卓著。

学高为师、身正为范。以师道而论,龙芯当得起古往今来对老师的任何称赞。

0 阅读:1

guee评科技

简介:感谢大家的关注