MIPS特有的指令

2016-12-09  本文已影响0人  rustydaar

MIPS已经经历了五代指令集,演进过程通常是在增加其他架构中有的特性。 下面是MIPS的特有的一些指令,其中的几个还可以在原始指令集中找到。

不对齐数据传输指令

MIPS有特别的指令用于内存的不对齐的字访问。大多数的应用程序都不会用到这些指令,只有在16位小型机的应用程序,以及快速memcpy和strcpy时,才可能用到。
当你想要不按字对齐的方式访问字的时候,大多数的RISC都会发生trap,通常的解决方法是使用字节访问指令分别访问4个字节,然后将得到的4个字节移位拼接起来。
MIPS的加载和存储指令(LWL,LWR,SWL,SWR)组合可以只用两条指令来解决非对齐访问:LWL加载寄存器的左半边,LWR加载寄存器的右半边;SWL和SWR则是对应的存储指令。图31演示了这个过程。还有处理64位数据版本的指令。

图31 MIPS不对齐访问指令。假设操作是处于大端模式。示例1中,第一次用LWL加载了3个字节,分别是101,102和103到R2寄存器中,留下了寄存器的最低有效字节。接下来的LWR只加载了104到R2的最低有效字节中,并且没有对R2中的其他3个字节造成影响。示例2中,首先加载了203到R4的最高有效字节,然后再用LWR加载了204,205和206到R4的其他3个字节中。

其余指令

下面是MIPS64体系结构的另外一些特有特点的指令:

MIPS架构中没有明确规定浮点和整数能不能并行执行,并且,MIPS的浮点实现可以通过检查是否会发生算术中断来支持并行执行。不过,通常异常检测会强制串行执行整数和浮点的操作。

上一篇 下一篇

猜你喜欢

热点阅读