过去几十年计算机科学领域一直有个趋势:对开发者这个角色来说,实现相同功能的技术难度是在逐年降低的。写代码的难度肯定不会无端降低,那必然是有人在“负重前行”了...
要么是整个软件到硬件的架构添加了某些中间层,实现开发者所在层级的上移;要么是更多现成的高质量框架和库在涌现,写代码顺手用一下就能获得理想结果。以这种方式发展的细分领域还是比较多的,比如说AI开发,比如说芯片设计...
前一阵我们参观Intel博物馆,就看到70年代以前,芯片制造所用光掩膜是手工刻的——当年连CAD都没有。这应该算是电路真正的底层物理设计了,完全没有抽象层,甚至芯片设计本身都不是电子、数字的。
最近芯易荟软件研发副总裁张卫航,在IIC Shanghai主题演讲时提到个有趣的趋势,EDA数字设计“输入层次一直在提高”。下面这张图总结了70年代至今,随集成电路的发展,设计手段、EDA技术创新变迁,本质上就是抽象层不断上移,或者越来越抽象的过程。最早需要做手工版图的设计输入,到原理图,及编写HDL......
“设计层次提升到RTL这一层大家用Verilog和System Verilog,现在很不幸地停在了这个层次。”张卫航说。其实我们并不能简单基于抽象层提升,以及有更多库可用,得出开发难度降低的结论——相反,这种输入层次提高的内在原因,是摩尔定律发展、设计难度指数级倍增的副产品。现在的芯片设计要是靠手工版图,那是完全不可想象的。
但问题就在于,如今芯片设计的难度也并没有因为“EDA技术无突破性进展”而降低。“RTL输入层次和系统复杂度之间形成了冲突。所以业界急需更高层次,比如说C语言层次去直接进行架构设计的工具。”
去年我们报道过一款,当时芯易荟宣传这款工具是“全自动交付”DSA处理器核心,“点一个按钮”就能一键生成包括RTL在内的硬件,以及包括编译器在内的软件。
其时我们就觉得挺不可思议的。今年这款名为FARMStudio的工具又有了新的升级,芯易荟也凭借FARMStudio获得中国IC设计成就奖“年度创新EDA公司”。我们为此特别采访了张卫航和芯易荟市场总监徐明,期望进一步理解这款让设计输入层次上移的EDA工具,对于DSA处理器设计而言究竟意味着什么。
“一键生成”的内在逻辑
张卫航在演讲中提到,FARMStudio“初始的设计层次,应该由用户的算法和应用分析开始”,“所以软硬件架构师都可以用我们的工具”。DSA这一概念本来就是顺应现在应用导向的芯片设计大趋势的。
“把算法、核心能力,与硬件关联起来,才能让创新得到更有效的发挥。”张卫航在接受采访说,“硬件是算法发挥的载体。我们认为未来突破性的创新必须是软硬件结合的。软件算法做得再好,被硬件耽误了就很可惜。”
在这个大前提下,用户需要给到FARMStudio工具的输入包括基础核、超级指令、预置架构模板。对于“基础核”,FARMStudio“已经把RISC-V基础指令集做了完整实现”,用户只需要根据需要选择对应的RISC-V基础指令集,“初始迭代时,如果你不想设计自己的定制指令,直接勾选就可以生成CPU。”强调灵活性,基于RISC-V既是FARMStudio的特色,也是FARMStudio这种工具选择的必然。
而“超级指令”在我们看来应该算是三个输入中,最有趣的部分。“软硬件架构师对应用做分析以后,针对算法热点、重复使用大规模的C语言函数,设计好C的指令,输入到我们的工具里。”张卫航说,”如果大家用过我们的工具,会发现这是个神奇的过程。你写个函数,它就出现在了CPU里面。”
有关用户的定制指令是如何藉由FARMStudio嵌入到最终处理器核的,下面这张图给出了简单的示例。图中的两个C函数用于描述指令集功能。“FARMStudio里面有个硬件编译器,可以将定制指令集直接部署到流水线里面,并进行功能优化、资源共享等操作”,“这部分很难,我们把它隐藏到了工具中。”
最后还有个“预置架构模板”,“包括DSP, CV, NPU等常用指令,以模板的形式内置在工具里。用户在取得这些模板以后,可以基于这些官方模板做进一步的迭代开发。”有关这部分的模板,徐明透露说目前基于“与一些客户的合作,也在考虑其他应用、其他IP”,“接下来,我们也会顺应市场的需求,发布其他的IP。”
得到这三项输入以后,就能进行所谓的“一键生成”了。硬件部分除了生成RTL,还包括综合脚本、测试套件、FPGA开发测试环境、RTL的验证环境;软件部分囊括了编译器、调试器、仿真器、profiler等构成。“我们还在里面内嵌了开源的RTOS——根据设计输入配置出来的RTOS;SDK也在里面,包括数学库也是内嵌的。”
此前我们一直都非常好奇这个“生成”流程里涵盖了多少关键技术点。虽然我们无法剖开看个中细节,不过采访中还是听到了一些要领的。比如说软件方面的,“我们会找特定行业软件TOP合作伙伴,也已经签了一些合作协议;借此也是期望了解特定行业、应用大概有哪些算法、功能需求,以便我们能提前准备,”徐明说,“包括工具、IP层面的,也是我们数学库、软件包实现的基础。”
所以“一键生成”的背后,理论上应该也是有IP、软件等关键组成部分的相关合作,虽然我们暂时不清楚这类合作大概在何种层面。无论如何,芯易荟非常有信心,这样一整套输出就可以直接交给客户的更下游去做基于芯片的应用开发了。
除了去年我们提到FARMStudio降低了芯片设计的门槛,这样一套输入输出流程,带来更重要的价值在于快速的架构设计迭代——或者用流行的话来说叫硬件的“敏捷开发”。“基于应用里面的函数来定制指令,改变了设计迭代过程。”“在你不知道要做哪些指令定制,指令集设计都还没有规划好的时候,就可以先做尝试了。基于给出的PPA结果,来做调整。”
加上“分钟级”生成处理器,及后续的验证过程,设计流程的单次迭代周期也就大幅缩短了。芯易荟给的数据是,相比传统设计流程,节省100倍以上的时间,总成本10倍以上缩减。“更重要的是,对架构开发人员而言,可以基于更多应用、更多的corner case做验证。”张卫航补充说。
2.0的三个关键提升
以上这些主要是FARMStudio在发布之初就给出的特性。芯易荟的目标是每半年就对FARMStudio进行一次升级,所以今年随即发布了FARMStudio V2.0。张卫航在采访中说,2.0版本主要涵盖3个组成部分的升级,分别是:
FTOS多层次开发及验证平台——这在前文FARMStudio输入输出图中的最下方其实已经给出;云虚拟FPGA——用以支撑用户的最后一步验证过程;异构多核心设计验证平台——针对一些复杂负载需要跑在不同架构的多核心上,增加的支持。
这三个主要更新都还是值得细究的。其中的FTOS全称为FARM Testing Operation System,芯易荟把它叫做”多层次开发及验证平台”。在FTOS这个平台中,“应用面对的其实是6大平台”。
图中的Pure C也就是原生的App/算法;FARM C是前文提到,在“超级指令”这一输入部分,用C语言表示的指令集;ISS指令集仿真器相当于虚拟CPU;到ISS LD,“此时已经非常接近流水线的运行过程,是周期精确级的仿真器”;RTL和FPGA就无需多言了。
“生成完以后,我们就可以直接将其编译成DUT,等待APP_Loader做仿真。”“此后一个很重要的事情是做各平台之间的cross check,保证每个平台的输出、至少功能保持一致。”这里的“各平台”应该是指前面提到的几个平台,做算法、FARM C、RTL、FPGA等不同“层次”的相互验证。
“今年我们把多层次平台做了归一化,测试系统化”,“不再需要每个层次去配置,每个层次去对比”。这项特性也就成为了FTOS的一部分。基于这些解释,其实“多层次开发及验证平台”这个名称,也就显得很明了了。
芯易荟软件研发副总裁 张卫航
有关第二点更新,云虚拟FPGA——其实这在EDA厂商侧给出的服务支持中并不算少见。张卫航说不同客户所需的FPGA“形态都不大一样”,芯易荟响应客户需求,开发了云平台FTOS FPGA Server,“不需要用户准备本地FPGA,功能和本地FPGA一模一样”。
不过芯易荟的FPGA云有个杀手锏,或者说解决了云FPGA痛点的特有功能:除了对FARMStudio自身的多层次验证做出支持,还提供所谓的“VFHL(云虚拟FPGA硬件层)”——云上FPGA对于本地用户而言,毕竟是个看不见、摸不到的东西,“无法进行二次配置”,无法在物理上插拔SD卡、摄像头之类的外设。
所以芯易荟开发了VFHL,“用户调用比如文件系统、音视频流的时候,通过虚拟硬件层就能直接将读写请求转到本地”,“根据本地配置和授权,读取相应目录下的文件,或者转发到本地camera之类的外设,再传回云。”
FARMStudio V2.0的第三个主要更新在于“异构多核心设计验证”。对于现在的很多应用来说,高效运转的过程是将不同负载放到不同的异构核去跑。芯易荟的做法是增加“可以从指令层次,直接调用的、核间互联的直连模块”DIO。“不仅支持比如有一定宽度、带FIFO的数据流通道;同时也提供核与核之间直接的信号传递、数据传递”。
另外“异构多核心设计验证平台”新特性也提供多核配置描述方案支持,“用FARM C描述单核以外,可以再覆盖一层配置层,描述需要哪些核、几个核,怎么连接在一起、怎么用bus,内存层次如何”;“用户将描述文件交给工具,就能”“把每个核调动起来,自动做连接”,“用户就可以将应用程序直接分配到每个核”;最终“直接生成异构多核RTL、ISS,还可以直接部署到FPGA里面,从而支持多层次验证”。
上面这张图给出了两个案例,其一是多制式视频实时编码,“利用DIO,建立灵活、多变的架构”——这个设计似乎也是作为芯易荟面向用户的IP包可交付的,据说打造软硬件前后只花了1-2个月的时间;右边的案例,也基于“不同的核有不同的功能映射”,“借助这样的环路完成多核平台设计。我们在几周内就把这个设计做好了,我们的客户非常惊讶。”
这可能是时代趋势的写照
比较有趣的,现在芯易荟面向客户提供的IP产品也都是FARMStudio生成的,如徐明提到的DSP32系列IP产品。“这是我们第一个官方IP系列”,“DSP32Base是基础版;32F着重浮点性能;32AI主要针对AI的8bit运算”。“这些IP都是以FARMStudio为基础开发的,都不是我们手写的。”
相应的在FARMStudio之外,芯易荟也有了更多的衍生工具,包括IPStudio, COREStudio。IPStudio是重配置如前述IP产品的工具——我们理解这是相较FARMStudio更加off-the-shelf的工具;而COREStudio则面向最终客户,将其芯片核开放给更下游客户时“提供编译器、profiling等”,以便“做应用层软件的开发”。
核心产品在持续迭代,产品种类也在增加。这是一家初创企业前期发展的常规景象。不过在我们看来,FARMStudio这类工具从出生开始,就浓缩了当前芯片设计的大趋势。
在谈市场扩展的问题时,徐明提到芯易荟正积极开展培训课程、大学合作之类的项目,期望通过“接触更多的人来获得反馈,提升工具易用性”;也在和更多价值链上的角色做互动,包括IP供应商、foundry厂等。这些也都算是常规。
不过最让我们印象深刻的,还是徐明提到不仅要“让客户接受我们”,还要“让客户的客户接受我们”——这是在我们看来能够反映FARMStudio作为时代趋势产物的典型写照。
不仅是因为从业务逻辑上“帮助客户去赢得他们的客户”,还在于我们这两年一直在说当代芯片设计的趋势是应用导向、系统级企业参与的——这其实是当代半导体时代多因素混杂所致的必然,此前我们也不止一次地撰文提过。而且这些几乎完美契合了FARMStudio的工作方式。
比如“有些企业期望软硬件、系统模组打包出售,这类软件公司本身没有庞大的IT团队。”徐明说,“这种客户很适合我们,我们的工具能够帮助他们快速迭代他们的想法。不需要太多的前端投入,比如我们为客户提供异构多核子系统设计、集成、原型交互的服务。他们会意识到我们工具的优势。这是我们目前非常关注的目标客户。”这种接合在我们看来基本就是种必然。
在对谈最终,我们多少也提及了当前正火的生成式AI。张卫航是这么说的:“我们内部其实也做过这方面的尝试。我之前尝试借助GPT 3.5的API,把我们FARM C的reference manual丢给模型做fine-tune,它还真的能产生一些半对不对的FARM C,我自己还是感觉很惊艳的。”
“AI生成RTL还不现实“,“其实我觉得层次跨越太大的情况下,就不适合用生成式AI。”因为RTL不仅复杂,而且小错误就能导致大问题。“但我们的工具提供了另外一种可能。我们的工具不产生RTL:用AI产生C的正确率,比产生RTL的正确率高了几个量级,验证复杂度也减少很多。”张卫航表示,“所以基于生成式AI,用自然语言生成C,我认为这会是很不错的一个应用方向。那用我们的工具是正好。”
这是个很有趣的思路。“这是顺应生成式AI时代的工具。我相信再过几年,等FARMStudio进一步走向成熟,它在生成式AI的整个流程里会占据非常重要的位置。”虽然我们不清楚这种更具前瞻向的解读是否可靠,但回到文首设计输入层次提高的问题,这可能就是一种趋势。