团队处理器系列(0x03):木心开发环境-概念设计
本篇文章介绍《木心开发环境-概念设计》的相关内容。
前言
首先要跟各位喜欢计算机体系结构并且持续关注木心处理器项目的朋友们说声抱歉,由于3月份我参加了芯来科技举办的RISV-C在线培训课程,所以有一个半月的时间完全没有做木心这个项目。之后又赶上第一届RISC-V中国峰会在上海召开,我们作为业余处理器爱好者团队非常幸运的得到了主办方提供的线下演讲机会,为了准备好这次会议,我们前前后后也搭进去不少时间。当然,最重要的原因是还是自己懒,总想着把项目代码完成后再编写文档,所以拖到现在有大半年之久文档还是一字没动……
上一篇文章里提到的木心处理器,按照原有计划来看,其整体开发进度明显处于滞后状态,这一方面是由于我们的很多业余时间被工作或其他优先级更高的事项所占用,另一方面则在于5月份左右我们对项目的发展方向做出了重大调整,由我的队友 @maksyuki 来负责处理器核的设计和验证工作,而我则转向去主攻一个全新的领域——处理器开发环境,这些新增加的工作量使得原有的计划被完全打乱,所以我们决定将项目第一阶段的最终完成期限修改为年底之前,这里我们向大家保证届时木心处理器项目一定能够以实物的形式展示在大家面前!
接下来我会主要介绍一下木心处理器开发环境的概念设计,以下大部分内容摘自我之前在第一届RISC-V中国峰会后所写的总结,不对的地方欢迎大家批评指正。
概述
本次峰会我们的演讲内容主要关注的是面向教育领域的处理器软件集成开发环境,其实最早我在创立木心处理器项目的时候只是想做一个可以让初学者快速上手的软核处理器,但是后来我们在开发的过程中发现只有软核还是远远不够的,对于一个没有什么知识积累的初学者来说,一款简单易用的软件集成开发环境或者说是一种全新的处理器开发模式才是最重要的,在意识到这个问题之后,我和队友决定暂时先把软核部分放一放,把精力全部转向IDE的开发当中,我们当时想的是如果未来它能够被顺利地实现出来的话,那到时我们就可以用这套自己设计的工具集来编写木心软核处理器,无论是开发效率还是代码质量相较之前都会有巨大的提升。
概念
背景
随着近几年RISC-V在教育领域的快速发展,很多与其相关的书籍资料、在线课程和开源项目开始进入爱好者的视野中。与此同时,得益于RISC-V指令集架构免费和开源的先天优势,嵌入式学习与开发的成本正变得越来越低,于是这便会吸引更多的爱好者参与到RISC-V软件应用生态的建设中来。比如我在今年3月参加了芯来科技举办的嵌入式在线课程,只用了几个周末的时间就实现了一个自巡线机器人,能做到开发速度如此之快主要是因为芯来的开发板价格相对来说比较便宜,而且其在线文档和开发工具也做得很完善,这就为初学者快速入门创造了一个绝佳的机会(具体内容可以查看这篇文章)。
此外,国科大的“一生一芯”项目让学生能够带着自己设计的处理器毕业,这有力地证明了RISC-V指令集在处理器教育领域的巨大潜力,然而一些处理器开发工具的学习曲线较高,对初学者不是很友好,再加上软件平台缺少开源的IP核管理工具、可视化调试工具以及对多种HDL语言支持等功能,使得初学者在面对新的开发工具时往往手足无措。
现状
我们正处于互联网发展的鼎盛时期,而支撑这些海量服务背后的Web技术也早已十分成熟,比如各种美观且实用的可视化交互界面、基于Electron框架的跨平台程序运行技术以及丰富的前后端组件开发库等,这些都为构建下一代处理器IDE提供了一种全新的思路——即将当下的Web技术应用到传统处理器集成开发环境设计的流程中。
当然,我们并不是第一个有这种想法的开发者,下图右侧所展示的几个开源项目就是国外大神们基于Web技术所打造的IDE,其中terosHDL在软件功能多样性方面做得最为出色,目前已经能够支持诸如Verilog/VHDL语法补全、模块代码间任意跳转、模块静态图表分析等功能,而Logic2则基于Vue.js前端库实现了一个代码在线编辑与分析器,用户只需在浏览器中对代码进行编辑,系统就能实时地将该模块的图表结构显示在右侧窗口中,有助于用户加深对代码的理解。
但是就像任何事物在某个特定条件下均存在天花板一样,基于传统Web技术实现的软件平台也存在着不可忽视的性能瓶颈问题,具体表现如下图左下角内容所示,当我们通过JS来分析一个大小仅为374KB的VCD文件时,浏览器消耗了高达2GB左右的系统内存,而且图表的渲染和处理速度也相应会变慢,后来我们分析出现该问题的主要原因是这些IDE在处理大量数据时并没有采用并行加速技术。因此,我们团队决定扬长避短,要做一款用户界面更加现代化且性能也不输给传统单机软件的处理器IDE。
技术
如下图所示,我们木心IDE在系统架构上主要分为两大部分,分别为开源工具链和IDE平台,其中开源工具链又包含有TreeLang、TreeIP、TreeWave和TreeDebug等核心模块,它们可以为IDE平台中的后端处理引擎TreeCore提供双向数据支持。此外IDE平台中还包含有前端GUI模块,使得用户能够通过图表控件直观地查看或操作当前工程内部相关模块的数据,从而有效地加速处理器学习与开发流程。
未来
开源
其他
我们是谁
我们是一个由两个人组成的业余开发团队,虽然成员人数非常少,但是我们关系非同一般,如果大家仔细观察演讲稿标题就会发现我们两个人的名字非常接近,没错就是你们猜想的那样——我们是双胞胎,所以经常会有一些爱好者在加微信交流时分不清我们俩(确实有些难度),这里我就简单介绍一下,我叫缪宇飏(昵称为myyerrol),毕业于西北工业大学计算机学院计算机科学与技术专业本科,而我弟叫缪宇驰(昵称为maksyuki),目前是西北工业大学航天学院精确制导与控制研究所在读研究生,其他具体信息我就不展开了。
然后我再介绍一下我们团队,我们团队的中文名叫微动(英文名为MicroDynamics),创立于2016年暑假,早期主要从事微型机器人的研发工作。说心里话,我们当时的目标是希望自己做的微型机器人的运动性能可以接近波士顿动力的水平,但是经过几年的开发,我们发现机器人领域的确是一个不折不扣的多学科交叉融合的产物,想要让机器人达到更高的性能,不仅软件算法要重构,硬件也要同步进行升级,而作为硬件核心的处理器自然就是我们关注的重点,再加上近几年RISC-V在中国不断地发展壮大,为了紧跟时代潮流,于是我们决定将团队的研发方向暂时由机器人转变为处理器,希望未来有一天我们自己的机器人可以用上自己设计的高性价比处理器。
名称由来
估计很多人都想知道为什么我们的开源处理器项目要命名为木心,其实这个名字的由来我之前在文章里就曾经提到过,这里我就直接引用那篇文章里的相关内容:
处理器作为硬件的中枢神经,其重要性自然不言而喻,如果把整个信息产业比喻成一棵树木的话,那我认为处理器就是这棵树的精神核心(简称木心,没错本项目的命名便是由此而来的),只有一棵树的木心足够稳定和强大,那它才能不断成长为根系错综复杂、枝叶繁盛茂密的参天大树,从而有力量抵抗外部各种恶劣环境而长久屹立不倒,处理器亦是如此。
总结
作为本次RISC-V中国峰会的演讲嘉宾,我们除了给大家简单讲了讲木心处理器项目的构想与成果之外,也在台下听了很多学术界和工业界大佬们的精彩演讲,说心里话听完这些演讲后我最大的感受就是RISC-V在中国的发展速度实在是太惊人了,这不仅体现在各大商业公司或学术机构所发布的相关产品或开源项目的数量上面,还在于RISC-V的受众群体正变得越来越多元化。本次峰会上已经开始有一些在校大学生、独立开发者以及开源社区精英从幕后走到前台,讲述他们为RISC-V生态建设所做出的贡献,中国有句谚语叫做:众人拾柴火焰高,一个新兴领域各行各业参与的人多了,生态自然就会做起来。
最近我们即将迎来互联网成立52周年纪念日,想当初它诞生于美国国防部高级研究计划局的ARPANET项目,但是却让中国成为全世界因其技术发展而收益最多的国家之一,我认为除了时代发展的必然之外,另一个最重要的因素就是我们将互联网技术与本国的实际需求紧密结合在了一起,从而使很多能够提高人们生活便利水平的技术落地(电商物流、在线直播、移动支付等)。RISC-V也是一样的,它发源于美国加州大学伯克利分校,却在中国创新的土壤中不断成长和分化,如果按照互联网技术的发展历程来看,可以预计在不久的将来,RISC-V有很大的机会能够成为实现处理器自主可控最强有力的助推器。
文章作者: myyerrol
最后更新:
原始链接: https://myyerrol.xyz/zh-cn/2021/09/05/team_cpu_3_treecore_ide_design/
版权说明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 4.0许可协议 。获得许可后,要求转载时注明文章出处和网站链接,谢谢!