如何评价tensilica(现被cadence收购)?
以面向应用为主的定制化CPU,可以在其基础指令集上扩展指令,微架构可以变来变去,工具链也是机器自动生成。一种(一类)应用设计一种CPU这种设计理念代表了未来的方向吗?
被浏览
64,599
7 个回答
泽卫
RISC-V业者,网络系统研究,唐长安城市史爱好者
用自己之前的一篇书评文章来回答这个问题?
一直以来总觉得这本书应该叫“以专用处理器为核心的SoC设计",感觉书里并不是讲“复杂的SoC设计”,虽然表面上英文书名直译过来是这意思,可能作者觉得他这种SoC设计理念相对复杂吧,还是先谈谈跟这本书的渊源吧。
现在回想起来,5年前还在上研究生,当时也不知道是什么原因,从图书馆借了这本书,放在手边翻着看。也许是因为作者Chris Rowen在上海的演讲,他特别提到tensilica的设计哲学和FPGA的异同,这让当时过度崇拜FPGA的我产生了强烈的好奇心,可惜当时对专用指令集处理器设计的理解太浅薄,根本看不明白书里面在讲什么。
书倒是经常翻,知道了一些名词,虽说受到了tensilica
这种SoC设计哲学的冲击,但实际上没有什么真正有价值的体会。以为是醍醐灌顶,后来才明白只是感觉说法新颖而已。不过,经此一役,对这本书/这家公司/这个作者有一种莫名的向往。毕业后,也还是从单位借了这本书,说不上来为什么,总是觉得书中自有“颜如玉”。直到开始接触专用处理器设计的项目,才有那么一丝丝豁然开朗的感觉。
要说还得从那本经典的《计算机体系架构:量化分析方法
》说起,此书可以说是计算机界的奇书,没有之一,三十年来出了四版。两位作者都是大仙,一个是斯坦福大学校长,另一个是是RISC的发明人,看这本书,让我第一次清楚的感受到处理器设计的门槛之高,涉及技术领域之广,这还不算,按照我的理解:处理器设计工程师要不断地做选择题,连环迭代式选择题,一旦有一处选择错误,就会导致整个设计垮掉。作为一名工程师,有时候最怕的是井底之蛙,反而清楚了山有多高,总是会慢慢接近山顶的。
再来看看《复杂SoC设计》中提到的专用指令集处理器设计,专用指令集处理器也叫ASIP,典型的有GPU和NP,前一个是针对图形处理的,后一个是针对网络处理的。这个概念本身很好理解,针对某一类应用设计一套指令集,相对应的是一种处理器体系结构。但是要想真正从某一类应用出发设计出一个处理器,那困难大了去了,你先的抽象出一般共性的指令集,然后选择合适的体系结构,根据指令集去调整优化这个结构,最后指令集和体系结构逐步收敛。期间还要考虑一整套处理器工具链的设计和实现。要想了解这里面的东东,可以阅读《Processor Design SoC Computing for ASICs and FPGAs
》这本书,相对具体的例子是《Embedde DSP Processor Design
》这本书,介绍怎样去设计一种专用DSP。
如果你能顺畅的阅读这两本书,还能被那本奇书吓到,这时再来读《复杂SoC设计》,此时相信你会理解大部分的内容,当然也会再次仰天慨叹chris rowen博士的牛逼之处,这老小子还是有先见之明。说白了,他准备把专用指令集处理器设计的门槛给降一降,把设计周期给减一减(从奇书里面你能体会到设计处理器乃最复杂之事)。他巧妙的选择了一个处理器原型/指令集(Xtensa,据说也是来自MIPS),你可以针对你的目标应用,对这个处理器原型进行修修补补,尤其是他们提供了一个强大的软件工具,你只需要用一种高级语言描述你的处理器,就会自动产生处理器相关的工具链和最终的RTL代码/网表。整个过程比重新开始一个新指令集/体系结构要容易的多。
这里面蕴含着一种设计哲学:要想从用户需求侧设计一种复杂的系统,相对简单的思路是选择一种熟悉的、通用的系统原型,进行修修补补,迭代收敛完成最终的设计。
再回到这本书,前三章chris rowen
在谈自己对SoC设计的一些看法,第四章讲了复杂SoC设计的挑战,其实主要是多核处理器设计时,处理器之间通信软硬件设计思路和实现。第五六章分别从软硬件视角讲tensilica的专用处理器设计,第七章又开始讲自己对处理器和多核设计的内容,同时介绍了他们用来描述处理器的高级语言。第八章对未来的SoC设计进行了展望,特别提出他采用了克里斯滕森教授的破坏性创新理论来分析他们的处理器设计哲学。说实话,这老小子我也甚是佩服,因为《复杂SoC设计》,在三年前我看了吴潜龙先生翻译的《创新者的窘境
》一书,看了这书我忍不住又要仰天慨叹了。也向吴先生致敬,破坏性创新理论后面两本书的中译本都略逊于吴的版本,看了先生的后记,就知道译者之艰难。
此书的一句话评价: 不是一本简单的设计流程的书,体现了一种SoC设计哲学,其实要交给你一种处理器设计流程。
最后附上梁文道的一段话,我觉得阅读技术类书籍也是同样的道理:
一个人,他看不懂任何更深入的学术著作,他只看于丹
的书,只看易中天的书,这既不是一种错误,更不是不道德,这很可能只是一种不幸。读书读得越多,越发现真正要读懂我们心目中所谓的经典名著,你可能要有一点运气。比如你要生长在一个不错的家庭,有挺好的家庭教育,小学、中学都受到不错的教育,而且前提是你有受教育的机会。你慢慢走过这样一条幸运的轨迹,透过教育的养成培养出一种阅读的能力,这种能力帮助你读到很多人没办法读进去的书。 (强烈建议有兴趣的同学对照中文版看英文版,原因你懂得!)
发布于 2014-07-27 15:48
Wei S
明月直入,无心可猜。
这种理论代表了过去,而不是未来。
有个数据,大约2003年,网络电信专用设备硬件和软件的投资比80:20的样子,而2008年基本就已经逆转成20:80的样子。
添加指令,是牺牲软件的兼容性来增加硬件性能。
因此当软硬件投资比例发生逆转的时候,过去的一些好技术,就不再有市场。这解释了intel干倒了一堆高性能的CPU,也解释了ARM的崛起,也解释了Tesillica不能独立运营,只能被收购。
发布于 2016-04-17 12:00
其实我是老莫
本硕博都是通信与信息系统专业毕业,但在微电子学院搞计算机系统结构研究的大学老师。
专用指令集处理器嘛……个人觉得真是没前途。
如果真要加速什么的,直接用个硬件加速器嘛。以前考虑专用指令集处理器,还是有“可编程性”的考虑。说白了是一种“晶体管短缺时代”的做法。现在嘛,依靠FPGA咯。
发布于 2016-04-17 12:33
朱元
手捧明月摘星辰,珠圆玉润我辈人.等闲阅得华章句,{字数限制}
现在腾讯云上面都已经可以fpga交易了,估计fpga很快就有通用的框架出现。估计比一般的turn key更方便。
发布于 2017-03-05 22:33
知乎用户NEZfWQ
我觉得tensilica只是瞄准了一块市场需求,而这块市场需求在近期的未来越来越大
从技术方面说,tensilica的cpu定位并不高端,大概就是ARM cortex M3这类通用廉价cpu好一些的水平,比M7可能略次一些。但他们在定制方面确实做的非常好,area/power/speed 偏好可以自由切换。和ARM的选择比起来,这一点实在是太爽了,没有用到的功能直接统统砍掉,还可以根据speed需求customize面积,从低端到高端几乎是无缝对接,非常节约面积。另外tensilica直接打包所有的总线连接选择,比如AHB/APB/AXI,对各种debug通用协议支持也很好,对于小公司着实是节约不少精力。
从市场角度来说,我觉得tensilica未来主要在两个点比较受欢迎。
一个是IoT(internet of things)芯片,这类芯片廉价数量大,对性能要求不高,只要能有基本功能就行,谁都可以做。tensilica这种打包从前端支持到后端turn key的方式对小公司太友好了。
另外一个方面是现在的大型SoC中(比如video芯片,baseband芯片),除了主cpu外,可能需要一个resource manager/controller这样可以用软件控制各种模式/功能的角色。这类SoC销量都很大,不少大公司都在用。
编辑于 2016-05-13 10:05
xavier
用过,以前还有点用,后来越来越多功能从core上拿出去,最后就一鸡肋。
发布于 2019-01-21 13:54
馒头君
初来乍到
tensilica本来就不是瞄准的通用处理器市场,而是瞄准了音视频等逻辑简单但是数据量大的环节做出的soc。tensilica发展的方向是:不被普通消费者感觉到,但是无处不在的存在。
处于通用处理器和fpga的中间:
通用性能/功能: 通用soc> tensilica > fpga
定制领域性能(如处理音频的性能):fpgg > tensilica > 通用soc
灵活性:fpgg > tensilica > 通用soc
完成同等功能所需要的开发周期:fpgg > tensilica > 通用soc
半定制环境开发成本(物料及开发成本):fpgg/通用soc > tensilica
综上所述:tensilica旨在降低专用功能上的开发成本,在资本市场上,只要能降低成本就有发展空间。他注定不会成为未来的顶梁柱,而是未来庞大机器的螺丝钉。
-----------------------------吐槽的分割线-------------------------------
用了下tensilica的用于开发XTensa的Xplorer,对于一个做通用soc驱动的我来说是真难用。
创建个模拟的configration都抓烂了头皮,搞了两天硬是没编出个hello world
编辑于 2017-10-20 17:49