本帖最后由 吾要单片机 于 2017-5-20 10:24 编辑
本《酷能指令集》是一种全新的计算机指令集,它是基于本人的3项专利技术设计而成的,其具有新颖、高效、高代码密度的优点,目前基于本《酷能指令集》的CPU设计已经完成,仿真结果表明达到了专利所描述的效果,非常满意。在介绍本指令集之前,首先介绍与之相关的专利技术。(先介绍已经公开的2项)
第一项专利技术:专利号:201310153746.1,专利名:《一种在计算机数据处理指令中附加跳转功能的方法及CPU模块》
这项专利的主要思想是:在计算机数据处理指令(包含数据转送指令,以下同)中增加设置执行的条件码、反条件码和跳转矢量,从而使得数据处理指令不再是单一的数据处理,而且具备跳转能力,其好处是提高程序的密度和执行效率。具体内容参见专利的说明书。
通过上述技术方法实施后数据处理指令具有跳转功能了,在此我称之为具有跳转功能的数据处理指令。这些具有跳转功能的数据处理指令的汇编格式如下所示:
操作码<条件码> [操作数1] , [操作数2], [操作数3] ,[E][JMP 跳转标号]
其中E是反条件码,跳转矢量是相对PC的跳转矢量。
注意观察该汇编指令格式,我们发现比现在传统的数据处理指令指令多出了“[E][JMP 跳转标号]”字段,这个字段就是用于描述跳转功能。其中E是反条件码助记符,JMP是立即跳转助记符。如果E被隐去,则表示同条件跳转,即附加的跳转条件和操作码后缀的条件码相同;如果E被显现,则表示反条件跳转,即附加的跳转条件和操作码后缀的条件码相反。
汇编指令格式:操作符<cond> 操作数1,操作数2,..,[E][JMP #v]
其中: cond------条件码,其意思是:如果满足条件码的要求,则执行操作符定义的操作;如果没有条件码,其意思是:无条件执行操作符定义的操作。
E—-------反条件码,意思是否则(Else)。
JMP #v---意思是立即跳转#v条指令。
例如: SUB<cond> Rd, Rn, Rj, [E][JMP #v_6]
需要特别指出的是:有些数据处理指令是无条件执行,没有条件码、反条件码、跳转矢量。
实际应用举例如下:
SUBEQ R3, R1, R2, EJMP lab_1; //如果相等,则执行R3=R1-R2;否则立即跳到lab_1处。属于反条件跳转。这种情况下它顶得3条MIPS指令。
SUBEQ R3, R1, R2, JMP lab_1; //如果相等,则执行R3=R1-R2,并且立即跳到lab_1处。属于同条件跳转。这种情况下它顶得3条MIPS指令。
SUB R3, R1, R2; //无条件执行R3=R1-R2。没有跳转功能,属于反条件跳转。这种情况下它只顶得1条MIPS指令。
SUB R3, R1, R2, JMP lab_1; // 无条件执行R3=R1-R2,并且立即跳到lab_1处。属于同条件跳转。这种情况下它顶得2条MIPS指令。
SUBRE R3, R1, R2, JMP lab_1; //无条件执行RC=RC-1的操作,如果Z==1&&RC>0,则执行R3=R1-R2,并且立即跳到lab_1处。属于同条件跳转。这种情况下有最高效率,它顶得5条MIPS指令!
从上面可以看出:在数据处理指令(含数据转送指令)中附加执行条件码、反条件码和跳转矢量后,可以使得数据处理指令不但有条件执行,而且具有跳转功能。这种指令的效率显然高于现在主流的RISC指令,不过由于附加的跳转矢量位数有限(32位指令集是6位,16位指令集是7位),所以跳转的范围都比较小,属于短跳转。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
特别说明:本CPU是哈佛结构,即指令总线和数据总线分开,指令总线和数据总线都是32位.
一周热门 更多>