皋陶 发表于 2020-9-9 10:58:43

为什么说基于RISC-V 不适合研发高性能CPU?

很多答案都在说RISC-V非常适合做高性能CPU,但是我觉得RISCV指令集在以下几个方面上着实不那么适合做高性能计算(这也是我觉得RISCV的一些缺陷):


最重要的一个我个人认为是RISCV指令集完全不支持instruction predication。


Arm指令集可以说是在instruction predication这一技术上登峰造极的。


本质上instruction predication是将指令前加一个前缀,通过比较前缀和status register来决定指令如何执行。


这种方法使得一些比较短的if循环可以被当作静态计算型指令来执行而不是被当作跳转指令。


众所周知,静态计算型指令的开销会比跳转指令低很多很多,instruction predication也实实在在地提升了处理器在处理复杂逻辑时候的速度。


RISCV官方对这种做法的解释是:在大规模的superscalar和BPU的加持下,缺少instruction predication带来的性能降低其实可以被抹去,而且在大规模乱序核心上,predication使得设计更加复杂(事实上,Arm也有过放弃predication的想法),但是这种说法我觉得还是有些牵强,至少应该给一个可以使用predication与否的选项。


尤其是在超算领域,很多时候为了提升能效比,会用SPMD方法来执行(本质上SPMD执行就是将所有处理器的执行模块绑定到一个取指、解码模块上,所有的处理器在各自的数据上执行相同的指令,Nvidia的GPU,Alpha还有一些MIC构架都支持这种操作)。


但是SPMD的必要条件之一就是instruction predication,RISCV几乎是断绝了自己走SPMD的道路。


更不用说如果做大型的并行构架的话,一般是不会大量使用乱序核心来做data intensive的计算的,而对于顺序核心来说,instruction predication可以说百利而无一害。


当然,也有很多人说RISCV可以自己加指令,如果需要什么技术我只要往上加就好了。


这个也确实是事实,只是由于instruction predication牵扯到的构架方面的修改比较多,目前看来还没有一个非常高效的实现方法。



页: [1]
查看完整版本: 为什么说基于RISC-V 不适合研发高性能CPU?