离线
TA的每日心情 奋斗 2021-3-3 12:32
签到天数: 10 天
[LV.3]
有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 皋陶 于 2020-9-9 10:39 编辑
RISC-V 开源项目为什么选用chisel这种新的高层次建模语言,而不是SystemVerilog?
为什么用chisel而不用其他语言自然是因为人家觉得好用,能进伯克利的学生的脑子绝对不傻而且绝对比其他一流大学接地气,去看看人家孵化出多少硅谷项目(Spark,Unix/BSD)就知道了。
人家chisel没打算取代verilog或者sv之类的任何,而只是希望在这个基础之上做一个高层次的构建语言,
所以chisel叫做Hardware construction language,和HLS毛关系没有(但是你也可以在chisel的基础上构建HLS,这是另一码事)。
聊到chisel你们也别老是想到什么scala,java什么的。
chisel是基于scala的,那是因为scala是一种元语言和函数式编程语言,而且很适合做DSL,也就是领域特定语言。
这几个特点加起来让scala成为了一种很合适做这件事的语言。
那么chisel要做什么事?
请允许我举一个非常不恰当的栗子 ,我们以设计一个CPU为例吧。
你本科熬了几年图书馆,挤破了头进入国内某微电子学院做了研究生,老师进来和你说我有个很好的想法,能够有效的改进 指令效率 或者 多核性能 或者 功耗 。
老师说你做个5级流水线CPU把,还要把cache、总线、外设之类也做了(没缓存搞什么多核?)。
好吧,我承认你很聪明,不出几个月你把CPU写的差不多了,然后cache、总线、外设这些大头还远着呢。
又过了几个月你天天啃《量化研究方法》,然后终于把cache实现了。
然后你写了个GPIO,又挂了个SRAM,好吧,你终于实现了一个小的CPU了。
为了降低难度,你用了学术界最爱的MIPS体系结构,用了最土的wishbone总线。
然后你开始了撸软件了,因为用了MIPS,你的难度已然降低了很多,而且你不用考虑编译器的问题了,你又吭哧了好几个月,写了个巨土的bootloader,终于把程序加载了。
尽管后面可能还要在FPGA上跑起来,要发顶作的同学还要去申请经费流个片,这估计又要好久好久。
但到目前为止你终于可以开始评估下你的设计的好坏了。
你跑了一堆benchmark,得出了一些结果,然后你才开始把导师的idea应用到你的设计中。
然后,然后,你就硕士毕业了,放心吧,你的这个摊子,你的学弟们会接锅的。
这里尽管很多东西不那么真实,但是不得不说大学教授的很多项目,都是好几届学生慢慢做才做下来的,而且做归做,评估归评估。
做完了哪里不好还得继续改进,因为有了架构,离实现到最后变成芯片还远着呢。
更何况,评估一个设计好坏这件事本身或许难度更大。
以上的故事暴露了一个问题, 对于改进硬件架构这件事,反馈环实在太长了 。
所以扯了半天,我其实就想说一句话, 硬件设计太耗时 ,verilog写的蛋疼,需求要是变一点,那些个接口就得跟着变。
要是速度上不去了,我要是想换个架构,又要花好久。
sv或许好一些,但你真的爱她吗?
所以当Berkeley的Krste教授和他的学生们决定要去做一些研究的时候(比如下一代数据中心的CPU架构、后摩尔定律时代的CPU架构或是AI加速处理器的时候),他们当然希望反馈环足够短啊!尽早评估、快速迭代对一个研究者来说太重要了啊。
差不多在统一时间,Berkeley的Joseph Whitworth教授也正好开始了Chisel的研究和开发工作,那他们自然就要决定联合起来做些有趣的事情。
当他们决定做他们的第五代RISC CPU指令集的时候,他们需要设计一个真实的CPU来评估他们设计指令集过程中的每一个选择。
所以他们从头用Chisel写了CPU,因为chisel面向对象的一些属性,他们能用很少的时间就把设计做好并且评估,chisel只要几十秒就可以生成verilog或者C++model,然后直接扔进仿真器里去跑benchmark。
就这样他们没用多少年就做了一个全新的开源指令集RISC-V,这个指令集有多好呢?
我说你肯定不信,我引用一段最近David Ditzel采访里的话。
Dave在Sun参与过SPARC ISA的设计,后面创立了全美达(Transmeta)曾经让Intel也胆战心惊。
他最近成立了一家新的公司做RISC-V的高性能CPU。以下是采访内容:
RISC-V wasn't even on the shopping list of alternatives, but the more Esperanto's engineers looked at it, the more they realized it was more than a toy or just a teaching tool. “We assumed that RISC-V would probably lose 30% to 40% in compiler efficiency [versus Arm or MIPS or SPARC] because it’s so simple,” says Ditzel. “But our compiler guys benchmarked it, and darned if it wasn't within 1%.”
“RISC-V最开始甚至不在我们可考虑范围之内,但是我们Esperanto的工程师越深入的了解它,就越发现RISC-V不仅仅是个玩具或者教学用的工具。我们还假定说RISC-V在编译器效率上相比Arm/MIPS/SPARC会损失30%到40%左右,因为它实在是太简单了。但我们的编译器工程师对他进行了评测,发现只损失了可恨的不到1%。”Ditzel如是说
基于这几个事实我得出的推论就是,当我能够更快的评估我的硬件时,我就能更快的改进它,也就是能比别人更早的靠近不断变化中的有效边界。
其实人家berkeley的团队已经用chisel生成的代码做了好多次tape-out了,孵化出的SiFive公司做的hifive1 board在crowdsupply上卖的不错。
明年初他们做的可以跑linux的U54 4核处理器就要流片回来了。
当我们看待一件新事物的时候,千万不要用他现有的状态去预测它的未来。
你一定得想想,Chisel未来会发展成什么样,当然这就是另外一个故事了。
冷静的看待chisel的话,我认为这是就是未来或者是未来路上的一站,原因是它能提高生产力,当然也有很多其他类似的方法和途径。
谁也看不清未来是怎样的,但是你要明白,当未来到来的时候,要想领先别人,你现在就得去做些什么对自己未来有利的事情。
所以,当你和我抱怨chisel是scala写的,我不会scala的时候,看我的大白眼!
上一篇:
RISC-V火力全开!全开源PicoRio对标销量超3000万件的树莓派 下一篇:
RISC-V 在十年内能否出现具备实用价值的移动和桌面处理器?
RISCV作者优文