32位指令扩展的方法

文档序号:6423517阅读:786来源:国知局
专利名称:32位指令扩展的方法
技术领域
本发明涉及一种微处理器内部的数据处理方法,具体涉及一种32位指令扩展的方法,属于微处理器技术领域。
背景技术
CCore ( China Core,即国芯)第一代指令集是固定字长16位指令集。16位指令集具有代码密度高,节省存储空间,运行功耗低的优点。但16位指令集也有其先天的劣势, 主要有扩展性差,对于复杂运算指令数目过多,在高带宽的系统中性能低下。指令集是微处理器架构的基础,可以说指令的强弱极大影响着微处理器的性能和效率。指令集可分为复杂指令集(CISC)和精简指令集(RISC)。CISC体系代表性的指令集有Intel的80x86和Motorola的68K等。RISC体系代表性的指令集有ARM和PowerPC 等。RISC架构相对于CISC架构具有以下特点指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成。这些特点有利于指令译码的简化,以及流水线/超标量设计。20世纪90年代摩托罗拉开发的MCore指令集完全遵循了精简指令集的设计思想,采用固定的16位指令编码技术,绝大部分指令在一个周期内完成。CCore第一代指令集与摩托罗拉MCore指令集完全兼容。基于CCore第一代指令集的C300系列CPU已经在移动存储和通信,数字电视/机顶盒,打印机,安全芯片,汽车电子等嵌入式领域得到了广泛应用。但是当今的嵌入式系统开发面对的挑战越来越复杂,必须在代码性能和系统成本之间进行平衡。原16位CCore指令集虽然具有功耗和成本的优势,但已经无法满足当今复杂嵌入式系统对性能的要求。这是由于16位指令集相对于32位指令集来讲,由于字长的限制,扩展性差,无法集成高效率的指令。指令由操作码和操作数组成,操作码用来区分不同的指令。操作数用来传递操作需要的参数。原CCoreie位指令集代码空间余地很小,无法再扩展效率更高的复杂指令。假设要实现下面一条MAC指令,语法为MAC <Rd>, <Rm>, <Rs>, <Rn>,基本操作为 Rd=Rm*Rs+Rn。当中有4个基本的操作数Rd,Rm, Rs, Rn各为4个比特,可表示16个通用寄存器。而CCoreie位指令集固定长度为16比特,很显然无法集成类似MAC的指令。

发明内容
本发明所要解决的技术问题是应对现代复杂嵌入式应用的需求,提供一种方法, 可以将CCore指令集扩展为16位/32位混合指令集,支持CCore指令集中集成DSP等较复杂指令,扩展CCore指令集的应用范围。为解决上述技术问题,本发明提供一种32位指令扩展的方法,其特征在于,包括以下步骤
1)32位指令缓存当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位,所述缓存不满的情况为缓存为空或者只有16位bit未参与解码时;
2)指令解码前的判断设定缓存中指令的前η位为保留字段,4S η ^ 16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);
3)进行16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5)进行指令发射或执行;
4)进行32位指令解码,解码结束后跳转到步骤5)的指令发射或执行;
5)进行指令发射或执行。前述的32位指令扩展的方法,其特征在于在所述步骤2)中,保留字段为指令前 4位,预设定值为4’b0101。本发明将原指令集中保留的字段0101XXXX_XXXXXXXX扩展为APP指令,APP指令和下一条16位指令组合成一条32位指令,从而满足复杂指令对代码空间的要求,同时又不与原16位指令冲突。在100%兼容原CCoreie位指令集的基础上,将CCore指令集扩展成 16位/32位混合指令集的方法,从而满足应用对于成本和性能的综合要求。


图1为本发明的一种实施例的流程图。
具体实施例方式本发明的实现可以由状态机表示。步骤1表示32位指令缓存,当缓存不满时会自动向内存读取指令。当前16位用做指令解码时,后16位自动移动到前16位,内存中读取的16位指令自动填充后16位。步骤2是指令解码前的预判,如指令前4位为4’b0101,则跳转到步骤4,否则,跳转到步骤3。步骤3是16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5-指令发射或执行。步骤4是32位指令解码,同样,解码结束后跳转到指令发射或执行。本发明利用CCore原16位指令集保留字段16,b0101XXXXXXXXXXXX扩展CCore指令集,利用指令开头4Bit作为保留字段区别16位指令和32位指令,采用保留字段扩展16 位指令集,避免了于原16位指令的冲突,又实现了 32位指令集的扩展。以上显示和描述了本发明的基本原理、主要特征,和本方面的优点。本行业的技术人员应该有所知晓,本发明不受上述实施的限制,上述实施列和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都要落入要去保护的本发明范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
权利要求
1.一种32位指令扩展的方法,其特征在于,包括以下步骤1)32位指令缓存当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位,所述缓存不满的情况为缓存为空或者只有16位bit未参与解码时;2)指令解码前的判断设定缓存中指令的前η位为保留字段,4S η ^ 16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);3)进行16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5)进行指令发射或执行;4)进行32位指令解码,解码结束后跳转到步骤5)的指令发射或执行;5)进行指令发射或执行。
2.根据权利要求1所述的32位指令扩展的方法,其特征在于在所述步骤2)中,保留字段为指令前4位,预设定值为4’ bOlOl。
全文摘要
本发明提供一种32位指令扩展的方法,包括以下步骤1)32位指令缓存:当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位;2)指令解码前的判断:设定缓存中指令的前n位为保留字段,4≦n≦16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);3)进行16位指令解码,解码完成后,跳转到步骤5)进行指令发射或执行;4)进行32位指令解码,解码结束后跳转到步骤5);5)进行指令发射或执行。本发明可将CCore指令集扩展成16位/32位混合指令集。
文档编号G06F9/318GK102156629SQ20111011383
公开日2011年8月17日 申请日期2011年5月4日 优先权日2011年5月4日
发明者竺际隆, 肖佐楠, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1