[发明专利]跳转指令的处理方法及微控制器有效
申请号: | 201010123204.6 | 申请日: | 2010-03-10 |
公开(公告)号: | CN102193776A | 公开(公告)日: | 2011-09-21 |
发明(设计)人: | 史卫东;潘松;沃良珉;谷志坤 | 申请(专利权)人: | 上海海尔集成电路有限公司 |
主分类号: | G06F9/32 | 分类号: | G06F9/32 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 200030 上海市中*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跳转 指令 处理 方法 控制器 | ||
技术领域
本发明涉及计算机领域,尤其涉及一种跳转指令的处理方法及微控制器。
背景技术
目前,微控制器的应用程序并不完全是顺序执行的,还包含了程序的跳转。对于精简指令集计算机(Reduced Instruction Set Computer:以下简称:RISC)指令集而言,每条指令的宽度都是相同的。每条指令的宽度决定了跳转指令对程序空间的寻址能力。换言之,在微控制器中,当程序存储空间小于跳转指令的寻址空间时,一条跳转指令可以使程序转移到程序存储空间的任一地址;而当程序存储空间大于跳转指令的寻址空间时,一条跳转指令则只能使程序在有限的程序存储空间进行转移,即并不能覆盖整个程序存储空间。
如图1所示,现有技术的微控制器包括两个指令寄存器111和112、高位地址寄存器12以及程序计数器13。例如:该微控制器中,程序存储空间为8K,即该微控制器的程序计数器13的位宽为13位。一个跳转指令的地址信息为10位。通过在微控制器中设置了高位地址寄存器12,在执行跳转指令之前,先将跳转的目标地址的高3位地址信息写入高位地址寄存器12。在执行跳转指令时,对写入指令寄存器111中的跳转指令进行译码,以将指令寄存器111中的目标地址的低10位地址信息和高位地址寄存器12中的目标地址的高3位地址信息写入程序计数器13中。再根据程序计数器13中的13位目标地址将程序存储空间中该13位目标地址对应的指令写入指令寄存器112中,从而解决了当程序空间大于跳转指令的寻址空间时,跳转指令寻址能力不足的问题,进而通过一条跳转指令和高位地址寄存器中的高位地址信息,可以使程序转移到程序存储空间的任一地址。另外,在对指令寄存器111中的跳转指令进行译码时,写入指令寄存器112中的下一条指令将不能在下一个周期中运行,而是根据跳转指令的执行结果,即根据程序计数器13中的13位目标地址信息将程序存储空间中该13位目标地址信息对应的指令写入指令寄存器112中。
现有技术中至少存在如下问题:当程序空间大于跳转指令的寻址能力时,完成一次跳转指令操作需要三个机器周期,即将目标地址的高3位地址信息写入高位地址寄存器为一个机器周期;对指令寄存器中的跳转指令进行译码,以将指令寄存器中的低位地址信息和高位地址寄存器中的高位地址信息写入程序计数器为一个机器周期;根据程序计数器的由高位地址信息和低位地址信息组成的目标地址,将程序存储空间该目标地址对应的指令写入指令寄存器为一个机器周期,从而影响了微控制器的性能。
发明内容
本发明提供一种跳转指令的处理方法以及微控制器,从而有效的提高了微控制器对跳转指令在程序空间的寻址能力,并提高了微控制器的执行效率。
本发明提供一种跳转指令的处理方法,包括:
程序存储器存储跳转指令,若所述跳转指令为双字节跳转指令时,所述双字节跳转指令包括第一指令字和第二指令字,所述第一指令字包括第一操作码和第一地址,所述第二指令字包括第二操作码和第二地址;
控制器在当前周期开始运行将所述第一指令字写入第一指令寄存器时,将所述第二指令字写入第二指令寄存器;
所述控制器在确定所述第一指令字的第一操作码为双字节跳转指令操作码时,将所述第一地址和第二地址写入程序计数器;
所述控制器在下一周期根据所述程序计数器中的由所述第一地址和第二地址构成的第一目标地址,将所述程序存储器中的当前所述跳转指令跳转到所述第一目标地址对应的第一指令;并将所述第一指令写入所述第二指令寄存器。
本发明实施例提供一种微控制器,包括控制器、程序计数器、程序存储器、第一指令寄存器和第二指令寄存器,其中:
所述程序存储器,用于存储跳转指令,若所述跳转指令为双字节跳转指令时,所述双字节跳转指令包括第一指令字和第二指令字,所述第一指令字包括第一操作码和第一地址,所述第二指令字包括第二操作码和第二地址;
所述控制器,用于在当前周期开始运行将所述第一指令字写入所述第一指令寄存器时,将第二指令字写入第二指令寄存器;且在确定所述第一指令字的第一操作码为双字节跳转指令操作码时,将所述第一地址和第二地址写入程序计数器;在下一周期根据所述程序计数器中的由所述第一地址和第二地址构成的第一目标地址,将所述程序存储器中的当前所述跳转指令跳转到所述第一目标地址对应的第一指令;并将所述第一指令写入所述第二指令寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海海尔集成电路有限公司,未经上海海尔集成电路有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010123204.6/2.html,转载请声明来源钻瓜专利网。