mips16的实现方式:
16位模式的mips cpu有2种,一种是lsi提出的mips16指令集;
一种是mips自己提出的,叫mips16e。
mips16e在调用函数时,通过save和restore来进行栈处理的,
硬件实现上有点复杂。mips16则没有这2条指令,栈处理和32
位模式类似。
我做的mips 16位模式应该是兼容mips16e的,主要是gcc编出
来的16位模式是mips16的,我只能跟着它走了。
具体实现上,我采用了2次译码来实现16位模式,即先把16位
指令译成32位指令,然后再借用本来就存在的32位译码器来
操作。这样做有个问题,可能对timing有点影响,但是.13也
能跑到200Mhz,应该能满足通常的应用了,比51强的不止
一点点,那就够了。据说,只是据说,mips自己的mips16e
的16位模式是同32位模式一起并行译码的,也吧知道是不是真的。 |