从Intel做了个RISC-V处理器谈起( 二 )
2.“软”之殇——软核处理器一直不尴不尬的原因
软核处理器虽然出现比较久 , 但其一直处于不尴不尬的地位 。究其原因无非性能、生态两部分的因素 。
首先说性能 , 软核处理器是依靠FPGA内部资源构造的 , 以查找表、嵌入式乘法器、可编程互连线注定无法构造出高性能的处理器 。如果对于处理器微架构本身不加以优化 , 即使在“高端”FPGA中也只能跑到不足100Mhz的时钟频率 。在进行了深度优化以后 , 这个频率大概能到150Mhz-200Mhz , 而在添加了外设以后再进行整体的布局布线 , 时钟频率很可能又掉下去了 。
其实跑到100Mhz出头这样一个频率确实相当的尴尬 。如果当MCU用呢 , 这个频率应该是够了 。但问题是我换一块小容量点的FPGA然后再把节约出来的钱额外买一个便宜的MCU不行吗?如果是把软核处理器真的当“处理器”看 , 这点性能又真的有点“不够看”的 。当年笔者在参加Altera金牌讲师培训的时候就这个问题和Altera的AE深入讨论过 , AE给的答复是“不要为了用软核而去用软核” , 这实际上还是没有真正回答问题 。
面对性能不足的情况 , Altera采取的办法是不断去加强和优化 , 但是FPGA本身的结构决定了再怎么优化其性能上限也是有限的 。而让软核“多核化”更是有点“缘木求鱼”的意思 。而Xilinx仿佛要更加“硬派”一些 , 对于性能不足的情况Xilinx给的办法就是“上硬核” 。只是Xilinx早期一直受通信行业影响太深 , 使用的硬核是在通信行业很流行但在别的行业比较“非主流”的PowerPC 。而直到Xilinx“想通了”开始集成Arm处理器以后 , 整个处理器+FPGA软硬件融合的市场才被引爆 。
和性能不足相对 , 生态太差是导致软核处理器一直不火的另外一个推手 。其实但凡涉及到处理器必谈生态 。因为处理器不是普通的数字逻辑电路 , 没有整个软件工具链为核心的生态环境支撑 , 处理器是搞不起来的 。无论是Nios II还是MicroBlaze , 其本质都是在“自建生态” 。那也必然是要面临生态竞争的问题 。随着Arm在嵌入式领域的一家独大 , 类似MIPS这样的专业处理器公司都被竞争下去了 , 更何况两大FPGA公司这样的兼职玩家 。
生态不行就意味着使用的人少 , 意味着提出的问题找不到人讨论 , 意味着没有很多现成的案例可以参考、学习、移植 。这反过来又导致用的人更少 。虽然软核属于“深度嵌入”应用 , 一般是程序开发者直面硬件进行编程 , 软件栈的深度浅 。但这样一样要遇到以上问题 。这就是在很多情况下 , 如果有的选择开发者宁愿在FPGA外面外挂一个小封装的单片机来完成软核的功能 , 也尽量少去碰软核 。因为使用软核来进行开发的经历实在是让人感觉太难受了 。
3.路在何方——Intel开发RISC-V指令集软核处理器的原因浅析
其实在两年前我就写过一篇讨论RISC-V目前适合的市场的文章:
其中提出“用户不可见处理器”市场是RISC-V必然会占领 , 而且Arm没有什么优势的市场 。其中也举例说明了NVIDIA要用基于RISC-V的处理器替代的原来自有指令的Falcon 。其实FPGA中的软核是非常符合“用户不可见处理器”这个场景的 。软核本身就是FPGA中替代复杂状态机而存在的 , 运行预先设定好的软件 , 一般情况下不需要用户对其编程 。因此做RISC-V指令集的软核处理器从市场层面是可行的 。
从技术层面说 , RISC-V指令集采用了结构化的指令集定义方式 。其特点是非常方便的实现指令的裁剪核扩展 。而FPGA恰恰就是一个非常适合于指令集裁剪/扩展的领域 。由于FPGA的可编程特性 , 使用足够的资源就可以搭建出实现任意指令的软核处理器 。而FPGA针对不同应用的定制性很强 , 对于指令的需求其实不是那么的大而全 。针对特定的应用 , 定制合适的指令 , 最终以最小的额外开销实现了辅助功能 。这才是软核处理器真正正确的用途 。Nios II系列原本是有很好的指令定制的机制的 , 但在过去一直没有发挥出应有的效果 。而这一次Nios V的发布有望结合RISC-V指令集特有的技术优势在这一点上实现突破 。
- 凌云诺新手随从选什么好(凌云诺新手随从最优选择指南)
- 英雄联盟莉莉娅做了哪些改动(英雄联盟莉莉娅改动部分解析)
- 思特沃克发布最新《科技棱镜》:人工智能支持技术日益成为主流,更需要从道德角度考虑其影响
- intel11代酷睿放弃sgx软件保护扩展指令支持
- 从省电角度考虑去楼下扔垃圾的2分钟开着的空调应该(蚂蚁庄园6月13日答案最新汇总)
- 日本电动汽车制造商从中找到商机,中国电动汽车制造商更便宜
- intelnuc11essential入门款发布
- 从玩具终于变工具?真正可用的智能眼镜来了
- intel新旗舰i9-12900hk跑分成绩
- intelarc显卡增加20个不同设备id
