处理器子程序高速缓冲存储器制造技术

技术编号:12196765 阅读:94 留言:0更新日期:2015-10-14 04:10
本发明专利技术涉及处理器子程序高速缓冲存储器。一种处理器包括执行单元和子程序高速缓冲存储器(102)。执行单元被配置为执行指令。子程序高速缓冲存储器(102)被配置为提供子程序的指令到执行单元用于执行。子程序高速缓冲存储器(102)包括子程序指令存储器(202)、子程序地址寄存器(210)和子程序高速缓冲存储器控制逻辑(204)。子程序控制逻辑(204)被配置为执行以下操作:识别提供给执行单元的子程序调用指令;通过评估指示至少部分子程序是否被存储在子程序指令存储器(202)中的子程序有效性指示器(212),确定子程序调用指令调用的子程序的指令是否被存储在子程序指令存储器(202)中;以及基于指示至少部分子程序被存储在子程序指令存储器(202)中的子程序有效性指示器(212),提供子程序的指令到执行单元。

【技术实现步骤摘要】
【专利说明】
技术介绍
在计算机技术中,子程序(还称为过程、函数、例程、方法等)是执行具体任务的较大程序内的一组指令,并且相对独立于剩余程序代码。子程序作为是较大程序中的一个步骤的计算机子程序而工作。子程序经常被实施以便它能够在程序执行期间多次开启(“调用”)和/或从若干地方(包括从其他子程序)开启(“调用”),并且接着在子程序执行完成后转移回到(返回)调用程序的下一个指令。在子程序由计算机或处理器执行不止一次时,子程序的指令可能从指令存储器中被读取多次。重复访问存储器以取回子程序指令增加了能耗。此外,当从所述指令存储器取回调用/返回目的地指令时,子程序调用和返回指令的执行可能引起处理器管线(pipeline)停滞(stall)。停滞循环降低了处理器的性能。因此,尽管包含子程序能够有效地减小程序的大小并改善程序结构,但是子程序的执行能够不利地影响处理器的性能。
技术实现思路
本文公开了用于加速子程序执行并减少系统能源使用的处理器和子程序高速缓冲存储器(CACHE)。在一个实施例中,处理器包括执行单元和子程序高速缓冲存储器。执行单元被配置为执行指令。子程序高速缓冲存储器被配置为提供子程序的指令到执行单元用于执行。子程序高速缓冲存储器包括子程序指令存储器、子程序地址寄存器和子程序高速缓冲存储器控制逻辑。子程序高速缓冲存储器控制逻辑被配置为:识别提供给执行单元的子程序调用指令;通过评估指示至少部分子程序是否被存储在子程序指令存储器中的子程序有效性指示器,确定子程序调用指令调用的子程序的指令是否被存储在子程序指令存储器中;以及基于子程序有效性指示器指示至少部分子程序被存储在子程序指令存储器中,提供子程序的指令到执行单元。在另一个实施例中,一种方法包括处理器解码子程序调用指令,该指令指定包含子程序的起始地址的处理器的寄存器。该方法还包括处理器评估子程序有效性指示器,该指示器指示:至少部分子程序是否被存储在处理器的子程序指令存储器中,以及子程序的起始地址是否被存储在处理器的寄存器中。该方法进一步包括:基于确定子程序有效性指示器指示子程序被存储在子程序指令存储器中的评估,将子程序指令存储器中的子程序的指令提供给处理器的执行单元。在进一步的实施例中,子程序高速缓冲存储器包括子程序指令存储器、子程序地址寄存器、子程序有效性指示器和子程序高速缓冲存储器控制逻辑。子程序指令存储器用于存储子程序的指令。子程序地址寄存器用于存储子程序的地址。子程序有效性指示器用于存储指示如下操作的值:至少部分子程序是否被存储在子程序指令存储器中;以及子程序的地址是否被存储在子程序地址寄存器中。子程序高速缓冲存储器控制逻辑被配置为:识别提供给处理器的执行单元的子程序调用指令;通过评估存储在子程序有效性指示器中的值,确定子程序调用指令调用的子程序的指令是否被存储在子程序指令存储器中;以及基于存储在子程序有效性指示器中的值,提供子程序的指令到执行单元。【附图说明】对于本专利技术的示例性实施例的详细描述,现在参考附图,其中:图1示出了根据各种实施例的处理器的框图;图2示出了根据各种实施例的子程序高速缓冲存储器的框图;图3示出了根据各种实施例的包括子程序调用的程序段;以及图4示出了根据各种实施例的用于子程序高速缓冲和执行的方法的流程图。符号和术语指代具体系统组件的特定术语在整个【具体实施方式】和权利要求书中使用。本领域技术人员将理解的是,公司可以通过不同的名字指代组件。本文件不意在区分名字不同的组件而是区分功能不同的组件。在下面的讨论和权利要求书中,术语“包括”和“包含”是开放式形式,并且因此应当解释为意味着“包括,但不限于…”。此外,术语“耦合”意味着间接或直接的电连接。因此,如果第一设备耦合至第二设备,该连接可以是通过直接电连接或是通过经由其他设备和连接的间接电连接。表述“基于”旨在指“至少部分基于”。因此,如果X基于Y,则X可以基于Y和任意数量的额外因素。【具体实施方式】下面的讨论涉及本专利技术的各种实施例。尽管一个或更多个这些实施例可能是优选的,但是公开的实施例不应当解释为或以其他方式使用为限制本专利技术(包括权利要求)的范围。此外,本领域技术人员将理解如下说明具有广泛的应用,并且任何实施例的讨论仅意味着该实施例的示例,不意在暗示本专利技术(包括权利要求)的范围被限制成该实施例。常规的处理器通常包括通用内部或外部指令高速缓冲存储器。相对于缺乏高速缓冲的处理器,这种高速缓冲存储器的使用能够减少存储器的能耗并且提高处理器性能(通过减少停滞循环的次数)。常规的高速缓冲存储器包括用于指令和地址的存储器,以及比较取回地址和存储地址的地址比较逻辑。取决于高速缓冲存储器架构(例如,高速缓冲存储器支持的相关联的组的数量),存储地址的数量和地址比较器的数量不同。在子程序调用的情况下,常规的高速缓冲存储器通常需要多个单独的相关联的高速缓冲存储器方式(相关联的高速缓冲存储器组)以便支持多个子程序,这要求每个相关联的高速缓冲存储器方式的地址存储器和比较器。一些常规的高速缓冲存储器包括相对大量的地址存储器位置和地址比较器。这些高速缓冲存储器能够提供高的高速缓冲命中率(即,大量的子程序能够被高速缓冲存储),但是实施存储器和比较器导致高的高速缓冲存储器门数和高的高速缓冲存储器能耗。其他常规的高速缓冲存储器实施方式包括少量的地址存储器位置和地址比较器,导致更低的高速缓冲存储器命中率、更低的高速缓冲存储器门数和更低的高速缓冲存储器能耗。因此,常规的高速缓冲存储器呈现了改善高速缓冲存储器命中率和减少高速缓冲存储器电路和能耗之间的折中。本专利技术的实施例包括:相对于常规的高速缓冲存储器架构,提供了高的子程序调用高速缓冲存储器命中率并且减少电路和能耗的子程序高速缓冲存储器。本文公开的子程序高速缓冲存储器采用基于寄存器的子程序调用和寄存器索引值比较或标记(flag)复用而不是地址比较逻辑,用于识别高速缓冲存储的子程序。因此,在与常规的高速缓冲存储器比较时,本文公开的子程序高速缓冲存储器提供了高速缓冲存储器功耗和门数的大量减少,而没有降低高速缓冲存储器的性能。图1示出了根据各种实施例的处理器100的框图。处理器100可以是通用微处理器、数字信号处理器、微控制器或其他执行从指令存储器110检索的指令的计算设备。处理器100包括取回单元104、解码单元106、执行单元108和子程序高速缓冲存储器102。取回单元104从指令存储器110检索指令用于由处理器100执行。指令存储器110是诸如随机存取存储器(易失性或非易失性)之类的存储有待被执行的指令的存储设备。指令存储器110可以是处理器100的内部组件或可替代地可以是处理器100的外部组件。取回单元104提供检索的指令至解码单元106。解码单元106检查从取回单元104检索的指令当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种处理器,其包含:执行单元,其被配置为执行指令;以及子程序高速缓冲存储器,其被配置为提供子程序的指令到所述执行单元用于执行,所述子程序高速缓冲存储器包含:子程序指令存储器;子程序地址寄存器;以及子程序高速缓冲存储器控制逻辑,其被配置为执行以下操作:识别提供给所述执行单元的子程序调用指令;通过评估指示至少部分所述子程序是否被存储在所述子程序指令存储器中的子程序有效性指示器,确定所述子程序调用指令调用的子程序的指令是否被存储在所述子程序指令存储器中;以及基于所述子程序有效性指示器指示至少部分所述子程序被存储在所述子程序指令存储器中,提供所述子程序的所述指令到所述执行单元。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:C·温克
申请(专利权)人:德克萨斯仪器德国股份有限公司
类型:发明
国别省市:德国;DE

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1