我们都知道,在MIPS指令级架构中,采用的都是定长指令,即就是每一个指令都是32位,分为R型(6, 5, 5, 5, 5, 6),I型(6, 5, 5,16),J型(6, 26), 在这所有指令中,是lw(存指令)运行时间最长,对于这个原因,从宏观上来理解,就是我们在内存中采用32个32位的通用寄存器来存和指令有关的东西,比如说是一个数组的话,我们只会在这个通用寄存器中将此数组的首地址存下来,要访问这个数组的其他部分的时候,利用sw指令,将首地址加上一个偏移量(offset)的方法得到一个地址(应该在外存储器),然后将此地址中的值暂时拿回到内存中的某个寄存器中,(这就是sw指令所完成的功能),也正是因为这样,造成sw指令是所有指令中运行时间最长的,因为从外存储器向内存储器读入数据到寄存器中相对于从寄存器读入是很慢的。下面贴一张时间做个参考
这里多说一下sw指令是不需要在指令运行期间访问外存的,我个人的理解就是sw指令是需要访问外存的,因为他要把数组中的数据存到外存中,但这对于我们指令的运行来说是不耽误整个指令的运行时间的。
MIPS中lw指令运行时间最长
最新推荐文章于 2023-11-24 21:17:52 发布