RISC-V:他们本应知道得更多
RISC-V: They should have known better
作者直言RISC-V无法同时满足高端服务器与低成本微控制器的需求。在微控制器领域,RISC-V的中断延迟和代码密度远不如Cortex-M0,甚至需要非标准扩展才能勉强追平。而在高性能计算中,其变长指令编码阻碍了并行解码效率,且缺乏高效的数组寻址模式。尽管RISC-V可能占据廉价市场,但这并非因其架构优越,而是对手门槛太低。作者认为,RISC-V的设计缺陷导致厂商不得不发明私有扩展,反而加剧了生态碎片化。
RISC-V 最终将占据廉价的一次性微控制器市场,但这并非因为其指令集架构设计,而是尽管存在设计缺陷。
- wren6991
RISC-V 还算不错。它满足了我作为业余 CPU 设计师对 ISA 的两个要求:
1. 主版本 LLVM 和 GCC 都支持。
2. 我可以实现它,而不用担心律师给我发律师函。
其他问题,我都可以后期修复。各种扩展中散布着足够多的好点子,让我能拼凑出一个相当完善、精心挑选的嵌入式 ISA,拥有有竞争力的性能和代码密度,且实现起来很简单。
我认为 Dmitry 的观点大体切中要害,不过我还是要照例提个法定异议:凡是包含 RISC-V J 格式位域图的 rant,都应该附带一个类似的 Arm T32 BL 编码图。
- Neywiny
我想我懂了。我试用过 microblaze-v 有一段时间了。看看他们的中断处理程序吧。https://github.com/Xilinx/embeddedsw/blob/master/lib/bsp/sta...。如果在编译时启用了 FPU,每次中断就要执行超过 128 次内存操作。这简直疯了,尤其是还没有 NVIC、没有级联机制之类的东西。我的延迟高得离谱,最大中断频率也惨不忍睹。最后我不得不做大量工作(软件和硬件方案),让它运作起来更像 arm-m,但 arm-m 根本不需要做这些工作。NVIC 就是 NVIC,而且 NVIC 很好用。
- bjornnn
RISC-V 的意义和吸引力,以及中国目前大力投资它的原因,与它内部运作的技术细节关系不大,关键在于它是一个不受知识产权法束缚的开放标准。即使它在技术上不是最好的通用处理器架构,它也树立了一个重要的先例,证明了开发一种开放的公共架构是可行的,世界可以利用它来构建计算设备,而无需被收取许可费的多国公司勒索,也无需受制于实施关税和制裁的地缘政治超级大国。
- Retr0id
我最近写了一个 RV64IMA 模拟器。我只是需要一个能启动 Linux 的虚拟 CPU 核心,而 RV64IMA 看起来是实现这一目标最简单的方法——而且我想这大体上是事实。
但后来我想兼容现成的工具链和二进制文件,发现自己需要将 ISA 配置文件扩展到 RV64GC。这不算太大的工作量,但涉及引入一个软浮点库。这让我成功启动了 Alpine Linux。
然后我想启动 Ubuntu,这就需要 RVA23,相比之下这要困难得多,涉及向量指令集等诸多内容。到了这一步,我想我当初直接模拟 aarch64 会更好。
- kev009
这基本上就是 MIPS 的翻版。
结论很诚实,你当然可以强行把任何 ISA 塞进任何角色里。我以前因为这一点非常讨厌 x86,但现在年纪大了,我反而开始尊重这种“游戏”了。
- eek2121
刚开始读,不过我想补充一点:很多人对 RISC-V 期望过高,几乎所有人都希望它“在各方面、各维度上击败其他所有架构,同时还要保持开放”。
现实是?目前“可用”的最快 RISC-V CPU 在速度、功耗或芯片面积上,都无法与最好的芯片相提并论。“可用”显然指的是已经公开发售并能独立进行基准测试的芯片。
我认为这没关系,但我同时也觉得 RISC-V 的相关人士并没有帮上什么忙,目前的标准化尝试似乎只是在制造更大的问题。
话虽如此,RISC-V 在特定细分领域似乎表现不错。
- gblargg
只是指出一点,即使指令长达 100000000000000 位,仅预留一位用于 16 位编码,也会浪费 50% 的指令空间。
- monocasa
> 第二类是用于大型计算的真正桌面机和 SBC,它们进行交互式计算、浏览、游戏和其他此类“桌面工作”。我不指望 RISC-V 在这个市场的顶端成为重要玩家。简而言之,正如上面指出的,该架构并非为此设计。此外,这个市场有足够的利润空间来负担从 ARM 授权一个设计得更好的 aarch64 核心,并获得来自更大软件库的适当支持。在你拿起扩音器高呼“开放性”之前,请注意 RISC-V 规范的开放性在这里完全无关紧要,因为开放规范不会凭空为你免费变出一个设计良好的乱序核心。如果有人设计出一个好的乱序核心,他们也不会免费赠送。开放规范并不意味着每个实现都是免费的。
我基本上不同意这一点。不是因为这不是现状(这绝对是现状),而是因为我们正处于一个拐点,摩尔定律已被证明是一条 S 曲线,而且我们显然已经进入了曲线的上半部分。由此,每个核心的门数量也将开始固化,这意味着最初推出一个开放核心设计所需的较长延迟也将开始变得合理。