我学习MIPS,如果指令不是移位指令,我看到指令的5位始终为0。这似乎是浪费资源,必须这样做才能强化规则的简单性,即所有的实例都具有相同的长度?为什么移位指令不能长5位,其余指令使用这些位来处理更多溢出?
答案 0 :(得分:4)
当MIPS处理器在80年代问世时,它是第一个所谓的RISC处理器,这是一个革命性的概念。当时的大多数处理器(8080系列,8086系列,Z80,6502,6800)都针对有效的指令编码,具有可变长度的指令(例如,它们可以采用1,2,3或4个字节)。这提供了良好的代码密度,但是,指令和执行的解码是一个状态机,状态的数量取决于确切的指令。
为了更快地执行,MIPS处理器进行了革命性的改变:
前两点是代码密度低的原因。 MIPS特意使程序占用的ROM / RAM空间比它们应该多得多,以便更有效地执行它们。
最后,ARM做了一些可以考虑的事情,并且#34;最好的两个" :可以在THUMB(更高的代码密度,更低的性能)和ARM(更高的性能,更低的代码密度,但仍然比MIPS更好)之间切换,具体取决于每个例程的特定需求。这可能就是为什么ARM如此受欢迎且无处不在。