第一个寄存器是RISC-RISC中的硬件零.它在许多情况下使用,例如调用零到另一个寄存器,跳转而不是存储地址等。然而,当目标寄存器为零时,有许多不改变硬件的可能性,而且我们不需要那些可能的指令,因为它们不用于任何端口。我觉得这是在浪费其他功能指令的部分。,我在这个问题上遗漏了什么?为什么会这样呢?据我所知,中的位元很昂贵,因此ISA开发人员试图使它们尽可能简单和压缩,以涵盖许多不同的功能。然而,它使我感到相反,因为许多指令使用的目的地与第一个寄存器是硬连接为零。
我不知道它们是否是为将来的使用预留的,或者第一寄存器(x0)是否可以不用硬布线零。
发布于 2022-11-28 16:46:57
最初的设计师关心的一个问题是:一个小型嵌入式系统的硬件成本会降低多少?有一些无用的指令,比如添加x0、x0、x0,甚至添加x0、a0、A1?,或者对那些其他无用的编码做一些有用的事情?答案是前者,这是关于怎样减少硬件的问题的答案。
另一个问题是:让最常见的(也是有用的)指令尽可能快地执行。解码和添加x0,或者添加x0、a0、a1,以便做一些不同的事情(从无操作)可以减慢有用的添加指令如下:虽然其中的一些解码可以并行进行(通过添加硬件),但最终,解码添加x0、a0、a1和解码正常的add a0、a0、a1这两条路径必须合并,并且通常发生在互斥中。引入的多个互斥变量越多,周期就越长,这样做会减缓整个处理器的运行速度。
RISC V的设计者通过将目标寄存器字段保持在R-和I型指令的固定位置,从解码阶段删除了一个mux,而不是MIPS。
https://stackoverflow.com/questions/74601336
复制相似问题