基于隐式相关性和隐式旁路的微处理器指令拆分装置的制作方法

文档序号:2586063阅读:203来源:国知局
专利名称:基于隐式相关性和隐式旁路的微处理器指令拆分装置的制作方法
技术领域
本发明涉及嵌入式处理器领域,尤其是一种基于隐式相关性和隐式旁路的微处理器指令拆分装置。
背景技术
现代集成电路技术的发展嵌入式微处理器应用领域的不断深入和扩大,使得存储器成为了制约微处理器成本和功耗的重要因素。在特定硬件资源前提下,如何增强指令集功能、提高代码密度和指令执行效率,是很多处理器设计人员必须面对的问题。很多嵌入式处理器针对特定应用,通过向指令集中引入数条执行时可拆分为数条原子操作的复杂操作指令,提出了这个问题的解决方案。考虑到处理器硬件资源、功耗以及指令拆分的实现复杂度,一般处理器仅对各操作之间有良好并行性的复杂操作指令进行拆分,如从连续存储区域向通用暂存器加载数据,或者把多个通用暂存器的数据存储到存储器。拆分有前后数据相关性的复杂操作指令,既要解决拆分后原子指令之间的数据相关性,又要尽快消除这种相关性,需要较大硬件资源支持,其实现具有较大难度。这个限制了通过拆分复杂操作指令从而提高处理器代码密度增强指令集功能的能力。以一个32位微处理器来说明处理器硬件资源和指令集功能之间的关系。该处理器总共有16个通用暂存器R0-R15,有算数运算单元和存储器读写单元等执行单元,其中算数运算单元每个周期只能完成一次加、减、乘、除、移位等原子操作,存储器读写单元每周期只能完成一次存储器读或写原子操作,每个执行单元有2个暂存器读端口。在这样的硬件设计下,如果需要把暂存器Wc的数据存到以暂存器Ri和Rj数据和为地址的存储区域,则需要两条指令先用“ADD RiRj”指令把Ri和Rj数据相加,结果存到Ri中;再用store Rk Ri完成最终操作;同理,如果需要跳转到两个寄存器数据之和所指示的代码区域,也需要两条指令协作完成。

发明内容
为了克服现有的微处理器在拆分有前后数据相关性的复杂操作指令时需要消耗大量硬件资源、限制了可拆分指令的范围、限制了处理器性能的不足,本发明提供一种在拆分有前后数据相关性的复杂操作指令时有效减少占用硬件资源、扩大其可拆分指令的范围、提升处理器性能的基于隐式相关性和隐式旁路的微处理器指令拆分装置。本发明解决其技术问题所采用的技术方案是—种基于隐式相关性和隐式旁路的微处理器指令拆分装置,所述微处理器指令拆分装置包括需拆分指令检测与拆分单元,用以判断进入该微处理器指令拆分装置的已译码指令是否为需拆分指令,并将需拆分指令拆分为至少两条原子指令;已拆分指令处理单元,连接于需拆分指令拆分和检测单元输出端,用以接收来自该需拆分指令拆分单元将该需拆分指令拆分成的至少两条原子指令,对这些原子指令构造
3隐式相关性,并引入隐式旁路技术,输出已处理原子指令;其他处理单元,连接于需拆分指令检测和拆分单元的输出端和已拆分指令处理单元的输出端,用以接收被需拆分指令检测与处理单元判断为无需拆分的指令和已拆分指令处理单元最终生成的原子指令,并完成指令后续处理、执行工作。进一步,该已拆分指令处理单元最终生成的原子指令在该微处理器中按照标准指令进行处理。优选的,所述需拆分指令检测与拆分单元中,由空闲与拆分两种状态进行维护,其中,无需拆分指令进入该指令检测与拆分单元时,该指令检测与拆分单元处于空闲态,无拆分动作发生;需拆分指令进入该指令检测与拆分装置时,该指令检测与拆分单元进入拆分态,将指令拆分成若干原子指令后返回空闲态。再进一步,所述已拆分指令处理单元包括构造隐式相关性模块,用以指示和维护该需拆分指令所拆分成若干个原子指令之间相关性,该构造隐式相关性模块与该微处理器中相关性维护模块互相独立;隐式旁路模块,负责数据的旁路,用以将该需拆分指令所拆分成若干个具有数据相关性的原子指令执行结果进行旁路,该隐式旁路模块与该微处理器中显式旁路模块互相独立。更进一步,该需拆分指令拆分为至少两条已拆分原子指令,其中具有数据相关性的两条已拆分原子指令定义为第一已拆分指令和第二已拆分指令,第二已拆分指令数据相关于第一已拆分指令,隐式旁路模块对第一已拆分指令在微处理器中特定模块中的指令序号进行处理,使得第二已拆分指令旁路到第一已拆分指令数据之后,第一已拆分指令才可执行结束。本装置的技术构思为微处理器指令集是微处理器硬件和软件直接的分界面,用户通过微处理器指令通知微处理器硬件完成相关工作量,微处理器指令集是提高微处理器效率的最有效工具之一。目前微处理器广泛使用的RISC指令集,虽然能很有效地适合于采用流水线、超流水线和超标量技术的体系结构,对处理器性能提高很多。然而,由于RISC指令集每条指令实现功能有限,编程时,用户需要将工作量细分为每个RISC指令可处理的原子操作。在一些特殊应用场合,如存储器大量数据的读写、频繁跳转等,用户需要重复使用数条功能类似的指令。这些无疑都增大了编写代码工作量。因此,大多数处理器引入了一些复杂操作指令,简化指令编写,提高指令执行效率和代码密度。为了在节约硬件成本和不影响性能的前提下增加这些复杂操作指令,大多数微处理器都引入了指令拆分机制,然而这些指令拆分机制只能拆分具有较高并行性的复杂操作指令,很难处理有数据相关性的复杂操作指令。为了扩大可拆分指令的范围,本微处理器引入了一种基于隐式相关性和隐式旁路技术的微处理器指令拆分装置,微处理器中所有已译码指令都要送到该微处理器指令拆分装置的需拆分指令检测与拆分单元,需拆分指令检测与拆分单元对检测到需拆分的指令进行拆分,并将拆分好的指令送至已拆分指令处理单元,一拆分指令处理单元对这些指令构建隐式相关性和隐式旁路,最终生成数条可供该微处理器逐次单独处理的原子指令。本发明的有益效果主要表现在扩大了微处理器可拆分指令类型和范围,降低微处理器编程复杂性,有效提高代码密度,节约硬件资源。


图1为引入微处理器指令拆分装置的微处理器指令流动方向。
图2为引入微处理器指令拆分装置后微处理器指令译码信息。图3为微处理器指令拆分装置指令拆分状态机。
具体实施例方式下面结合附图对本发明作进一步描述。参照图1 图3,一种基于隐式相关性和隐式旁路的微处理器指令拆分装置,将微处理器无法一次性单独处理的已译码单条复杂操作指令拆分成数条该微处理器可逐次处理的原子指令,该微处理器指令拆分装置包括需拆分指令检测与拆分单元,用以判断进入该微处理器指令拆分装置的已译码指令是否为需拆分指令,并将需拆分指令拆分为至少两条原子指令,是该基于隐式相关性和隐式旁路技术的微处理器指令拆分装置的输入端;以及已拆分指令处理单元,连接于需拆分指令拆分和检测单元输出端,用以接收来自该需拆分指令拆分单元将该需拆分指令拆分成的至少两条原子指令,对这些原子指令构造隐式相关性,并引入隐式旁路技术,输出已处理原子指令。其他处理单元,连接于需拆分指令检测和拆分单元的输出端和已拆分指令处理单元的输出端,用以接收被需拆分指令检测与处理单元判断为无需拆分的指令和已拆分指令处理单元最终生成的原子指令,并完成指令后续处理、执行工作。参照图1所示,无需拆分的指令经过本微处理器指令拆分装置的流向如途中黑色箭头所示,需拆分指令经过该装置的流向如途中红色箭头所示。微处理器取址单元取到的指令经译码后,都要通过该装置中需拆分指令检测与拆分单元,需拆分指令检测与拆分单元通过读取指令译码信息的拆分标志位决定该指令是否需要拆分如果无需拆分,则指令被直接送到其他处理单元,完成指令执行;如果需要拆分,需拆分指令检测与拆分单元通过检测指令操作码,决定该指令需要拆分为几条什么类型的指令,根据这些指令拆分信息,需拆分指令检测与拆分单元状态机通过在空闲态和拆分态的切换完成指令拆分。拆分好的原子指令被送至已拆分指令处理单元,加入相关性信息;假设第一已拆分指令A和第二已拆分指令B是已拆分指令,第二已拆分指令B数据相关于第一已拆分指令A。则已拆分指令处理单元,在第二已拆分指令B的操作码中,加入特定隐式相关性信息, 指示第二已拆分指令B相关于第一已拆分指令A。为了加快第一已拆分指令A、B的执行速度,同时防止第一已拆分指令A过早退休导致第二已拆分指令B无法获取其数据,隐式旁路技术,提前将第一已拆分指令A的数据送给第二已拆分指令B,只有第二已拆分指令B获得数据后,才允许第一已拆分指令A退休。经过这些处理后,已拆分好的原子指令被送至其他处理单元,按照一般指令进行完成指令执行。这些原子指令全部执行结束,则表示该复杂操作指令执行结束。参照图2所示,指令译码时,在指令的译码信息中,加入了 split位,用以表征该指令是否需要拆分。拆分成的指令类型和指令数目,则由指令操作码来决定。参照图3所示,没有需拆分指令进入需拆分指令拆分单元时,该单元的状态机处
5于空闲态,表征最小的功耗开销;当需拆分指令进入需拆分指令拆分单元时,其状态机跳到拆分态,每个机器周期拆分出的原子指令个数由微处理器硬件资源决定。如果该微处理器为单发射,则每周期拆分出一条原子指令;如果为双发或者多发射,则拆分出两条或者多条原子指令。拆分结束后,状态机返回空闲态。 在上文所述的32位微处理器引入微处理器指令拆分装置后,再次分析其指令集与代码密度。此时,先在指令集中增加相应复杂操作指令storea Ri,Rj,敗,用于把暂存器 Rk的数据存到以暂存器Ri和Rj数据和为地址的存储区域。处理器执行时,该指令被拆分为“ADD RiRj”和“store Ri, Rk",ADD Ri Rj用以将Ri和Rj的值进行相加,并将结果存到 Ri中;store Ri, I k,将中的数据存储到Ri所指示的存储器地址。通过这种方式,用一条复杂操作指令实现了两条原子指令的功能,增大了代码密度;而且只需要进行一次译码, 节约了译码时间。不但降低了成本,同时也提高了指令执行效率。
权利要求
1.一种基于隐式相关性和隐式旁路的微处理器指令拆分装置,其特征在于,所述微处理器指令拆分装置包括需拆分指令检测与拆分单元,用以判断进入该微处理器指令拆分装置的已译码指令是否为需拆分指令,并将需拆分指令拆分为至少两条原子指令;已拆分指令处理单元,连接于需拆分指令拆分和检测单元输出端,用以接收来自该需拆分指令拆分单元将该需拆分指令拆分成的至少两条原子指令,对这些原子指令构造隐式相关性,并引入隐式旁路技术,输出已处理原子指令;其他处理单元,连接于需拆分指令检测和拆分单元的输出端和已拆分指令处理单元的输出端,用以接收被需拆分指令检测与处理单元判断为无需拆分的指令和已拆分指令处理单元最终生成的原子指令,并完成指令后续处理、执行工作。
2.根据权利要求1所述的基于隐式相关性和隐式旁路的微处理器指令拆分装置,其特征在于,该已拆分指令处理单元最终生成的原子指令在该微处理器中按照标准指令进行处理。
3.根据权利要求1或2所述的基于隐式相关性和隐式旁路的微处理器指令拆分装置, 其特征在于,所述需拆分指令检测与拆分单元中,由空闲与拆分两种状态进行维护,其中, 无需拆分指令进入该指令检测与拆分单元时,该指令检测与拆分单元处于空闲态,无拆分动作发生;需拆分指令进入该指令检测与拆分装置时,该指令检测与拆分单元进入拆分态, 将指令拆分成若干原子指令后返回空闲态。
4.根据权利要求1或2所述的基于隐式相关性和隐式旁路的微处理器指令拆分装置, 其特征在于,所述已拆分指令处理单元包括构造隐式相关性模块,用以指示和维护该需拆分指令所拆分成若干个原子指令之间相关性,该构造隐式相关性模块与该微处理器中相关性维护模块互相独立;隐式旁路模块,负责数据的旁路,用以将该需拆分指令所拆分成若干个具有数据相关性的原子指令执行结果进行旁路,该隐式旁路模块与该微处理器中显式旁路模块互相独立。
5.根据权利要求4所述的基于隐式相关性和隐式旁路的微处理器指令拆分装置,其特征在于,该需拆分指令拆分为至少两条已拆分原子指令,其中具有数据相关性的两条已拆分原子指令定义为第一已拆分指令和第二已拆分指令,第二已拆分指令数据相关于第一已拆分指令,隐式旁路模块对第一已拆分指令在微处理器中特定模块中的指令序号进行处理,使得第二已拆分指令旁路到第一已拆分指令数据之后,第一已拆分指令才可执行结束。
全文摘要
一种基于隐式相关性和隐式旁路的微处理器指令拆分装置,包括需拆分指令检测与拆分单元,用以判断进入该微处理器指令拆分装置的已译码指令是否为需拆分指令,并将需拆分指令拆分为至少两条原子指令;已拆分指令处理单元,用以接收来自该需拆分指令拆分单元将该需拆分指令拆分成的至少两条原子指令,对这些原子指令构造隐式相关性,输出已处理原子指令;其他处理单元,用以接收被需拆分指令检测与处理单元判断为无需拆分的指令和已拆分指令处理单元最终生成的原子指令,并完成指令后续处理、执行工作。本发明在拆分有前后数据相关性的复杂操作指令时有效减少占用硬件资源、扩大其可拆分指令的范围、提升处理器性能。
文档编号G09F9/30GK102436781SQ201110346810
公开日2012年5月2日 申请日期2011年11月4日 优先权日2011年11月4日
发明者丁永林, 李战辉, 杨军 申请人:杭州中天微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1