05-31 10:38
x86变长指令集特性决定了,x86的指令解码器需要处理可变长度指令(8bits到120bits)和复杂前缀,这导致很难直接拓宽解码器宽度来提高性能。arm能搞这么宽,是因为每条指令固定32bits长度,甚至很极端地放弃了thumb拓展指令集(16bits),所以解码器设计起来很容易上6-wide、10-wide。RISC-V也是32bits固定长度,也有16bits拓展指令集C,去年在邮件列表被高通的人批评,他们用设计arm芯片的经验告诉RISC-V的人建议去掉C拓展指令集。但最后委员会拍板,直接结束这件事的讨论,保留了C。