指令紧密耦合存储器和指令缓存访问预测制造技术

技术编号:29600919 阅读:9 留言:0更新日期:2021-08-06 20:05
本文公开的是用于指令紧密耦合存储器(iTIM)和指令缓存(iCache)访问预测的系统和方法。处理器可以使用预测器来基于位置状态和程序计数器值启用对iTIM或iCache以及特定路径(存储器结构)的访问。预测器可以确定是停留在启用的存储器结构中,移动到并启用不同的存储器结构,还是移动到并启用两个存储器结构。停留和移动预测可以基于是否由于顺序指令处理、分支或跳转指令处理、分支解析和缓存缺失处理而发生存储器结构越界。程序计数器和位置状态指示符可以使用反馈并且在每个指令获取周期被更新以确定需要为下一指令获取启用哪个(哪些)存储器结构。

【技术实现步骤摘要】
【国外来华专利技术】指令紧密耦合存储器和指令缓存访问预测相关申请的交叉引用本申请要求于2019年8月28日提交的美国专利申请No.16/553,839的优先权,该美国专利申请要求于2018年12月28日提交的美国临时专利申请No.62/785,947的优先权,上述申请的全部公开内容在此通过引用并入本文。
本公开涉及指令紧密耦合存储器和指令缓存之间的访问预测以获取指令。
技术介绍
处理器与片外存储器系统或主存储器之间的指令获取时间通常比处理器执行时间慢得多。因此,处理器采用指令缓存和指令紧密耦合存储器来提高系统性能。这两种类型的存储器都通过减少片外存储器访问来改善延迟并降低功耗。然而,通过必须为每个指令获取搜索指令缓存和指令紧密耦合存储器两者,处理器使用大量功率。此外,这可能会增加延迟并降低系统性能。附图说明当结合附图阅读时,从以下详细描述可以最好地理解本公开。需要强调的是,按照惯例,附图的各种特征并非按比例绘制。相反,为了清楚起见,各种特征的尺寸被任意扩大或缩小。图1是根据本公开的实施例的包括用于启用指令缓存(iCache)或指令紧密耦合存储器(iTIM)中的一个的访问预测逻辑的处理器的示例的框图。图2是根据本公开的实施例的处理器的示例核流水线的图。图3是根据本公开的实施例的示例流程和预测器的图。图4是根据本公开的实施例的用于如图3所示的iTIM和iCache之间的访问预测的示例技术的图。图5是根据本公开的实施例的示例流程和预测器的图。图6是根据本公开的实施例的示例流程和分支预测器的图。图7是根据本公开的实施例的用于如图5所示的iTIM和iCache之间的访问预测的示例技术的图。具体实施方式这里公开了用于指令紧密耦合存储器(iTIM)和指令缓存(iCache)访问预测的系统和方法。这里描述的实施方式可用于消除或减轻在获取指令时访问iTIM和iCache两者的需要。处理器可以在获取指令时采用iTIM和N路径组关联iCache来提高系统性能。为了最小化指令获取延迟,在知道iTIM或N路径组关联iCache是否包含所需指令之前,可以并行访问iTIM和iCache的N个路径。可以通过在指令获取期间采用位置状态反馈来降低功耗。与访问iTIM和iCache的N个路径两者相反,反馈的使用可以使处理器能够通过访问iTIM或iCache(和特定路径)中的一个来实现更高的性能和/或更低的功耗。处理器可以使用访问预测逻辑或预测器来发送启用信号以基于位置状态和程序计数器值访问iTIM或iCache和特定路径。访问预测逻辑可以确定是停留在启用的存储器结构中、移动到并启用不同的存储器结构还是移动到并启用两个存储器结构。停留和移动预测可以基于是否由于顺序指令处理、分支或跳转指令处理、分支解析和缓存缺失处理而发生存储器结构越界,其中,存储器结构是iTIM或iCache和特定路径中的一个。程序计数器和位置状态指示符可以使用反馈并且在每个指令获取周期被更新,以确定需要为下一指令获取启用哪个(哪些)存储器结构。在以下详细描述、所附权利要求和附图中公开了本公开的这些和其他方面。如这里所用,术语“处理器”指示一个或多个处理器,例如一个或多个专用处理器、一个或多个数字信号处理器、一个或多个微处理器、一个或多个控制器、一个或多个微控制器、一个或多个应用处理器、一个或多个中央处理单元(CPU)、一个或多个图形处理单元(GPU)、一个或多个数字信号处理器(DSP)、一个或多个专用集成电路(ASIC)、一个或多个专用标准产品、一个或多个现场可编程门阵列、任何其他类型或组合的集成电路、一个或多个状态机或其任何组合。术语“电路”是指被构造为实现一个或多个功能的电子部件(例如,晶体管、电阻器、电容器和/或电感器)的布置。例如,电路可以包括互连以形成共同实现逻辑功能的逻辑门的一个或多个晶体管。如这里所用,术语“确定”和“识别”或其任何变形包括选择、确定、计算、查找、接收、确定、建立、获得或否则以任何方式使用这里所示和描述的一种或多种设备和方法无论怎样识别或确定如这里所用,术语“示例”、“实施例”、“实施方式”、“方面”、“特征”或“元素”指示用作示例、实例或例示。除非明确指出,任何示例、实施例、实施方式、方面、特征或元素独立于每个其他示例、实施例、实施方式、方面、特征或元素,并且可以与任何其他示例、实施例、实施方式、方面、特征或元素结合使用。如这里所用,术语“或”旨在表示包含性的“或”而非排他性的“或”。也就是说,除非另有说明,或从上下文中清楚,“X包括A或B”旨在指示任何自然包括性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,则在上述任何一种情况下都满足“X包括A或B”。此外,除非另有说明或从上下文明确指向单数形式,否则本申请和所附权利要求中使用的冠词“一个”和“一”通常应被解释为表示“一个或多个”。此外,为了说明的简化,尽管这里的附图和描述可包括步骤或阶段的序列或系列,但这里公开的方法的元素可以以各种顺序或同时发生。此外,这里公开的方法的元素可以与这里未明确呈现和描述的其他元素一起出现。此外,实现根据本公开的方法可能不需要这里描述的方法的所有元素。尽管这里以特定组合描述了方面、特征和元素,但是每个方面、特征或元素可以独立被使用或以与其他方面、特征和元素的各种组合或不使用其他方面、特征和元素而被使用。应当理解,实施例的附图和描述已经被简化以图示为了清楚理解相关的元素,同时为了清楚的目的消除了在典型处理器中发现的许多其他元素。本领域普通技术人员可以认识到,在实现本公开时期望和/或需要其他元素和/或步骤。然而,由于此类元素和步骤不利于更好地理解本公开,因此这里不提供此类元素和步骤的讨论。图1是具有核1005的处理器1000的示例的框图,其包括根据本公开的实施例的、用于访问指令缓存(iCache)1015或指令紧密耦合存储器(iTIM)1020中的一个(可以适当地被称为存储器结构或多个存储器结构)的访问预测逻辑或访问预测器1010。在一种实施方式中,iTIM1020可以是核1005的一部分。例如,处理器1000可以是计算设备、微处理器、微控制器或IP核。处理器1000可以实现为集成电路。处理器1000可以包括一个或多个核,每个核可以包括多个iTIM和iCache。在一种实施方式中,iTIM1020可以是核1005的一部分。在不脱离本公开、权利要求或附图的范围的情况下,可以适当地实现或修改这里描述的访问预测逻辑1010以说明核、iTIM和iCache的不同组合。处理器1000可以被配置为解码和执行指令集架构(ISA)(例如,RISC-V指令集)的指令。处理器1000可以实现流水线架构。在一种实施方式中,iTIM1020可以是具有定义的大小并被配置为具有存储器地址范围的低延迟、专用RAM。在一种实施方式中,iCache1015可以是具有固定缓存线长度的N路径组关联缓存,并且每个缓存路径具有定义的大小。iCache本文档来自技高网...

【技术保护点】
1.一种处理器,包括:/n指令紧密耦合存储器(iTIM);/n具有N个路径的指令缓存(iCache),其中,N为至少一;以及/n访问预测逻辑,所述访问预测逻辑被配置为:/n预测要从所述iTIM或所述iCache和特定路径中的哪一个获取指令;/n基于位置状态和程序计数器值启用所预测的iTIM或iCache和特定路径;以及,/n反馈所述位置状态和所述程序计数器值以预测用于下一指令的下一位置状态,/n其中,所述处理器被配置为经由所启用的iTIM或iCache以及所述特定路径来获取所述指令。/n

【技术特征摘要】
【国外来华专利技术】20181228 US 62/785,947;20190828 US 16/553,8391.一种处理器,包括:
指令紧密耦合存储器(iTIM);
具有N个路径的指令缓存(iCache),其中,N为至少一;以及
访问预测逻辑,所述访问预测逻辑被配置为:
预测要从所述iTIM或所述iCache和特定路径中的哪一个获取指令;
基于位置状态和程序计数器值启用所预测的iTIM或iCache和特定路径;以及,
反馈所述位置状态和所述程序计数器值以预测用于下一指令的下一位置状态,
其中,所述处理器被配置为经由所启用的iTIM或iCache以及所述特定路径来获取所述指令。


2.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
基于至少所述程序计数器值将所述位置状态设置为所述iTIM或所述iCache和所述特定中的至少一个。


3.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
当下一程序计数器值在所启用的iTIM或iCache和特定路径的地址范围内时,针对所述下一指令将所述位置状态设置为当前启用的iTIM或iCache和特定路径。


4.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
当下一程序计数器跨越由当前启用的iTIM或iCache和特定路径的地址范围限定的边界时,针对所述下一指令将所述位置状态设置为适当的iTIM或iCache和特定路径。


5.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
当下一程序计数器跨越由当前启用的iTIM或iCache和特定路径的地址范围限定的边界时,针对所述下一指令将所述位置状态设置为适当的iTIM和iCache以及所有N个路径。


6.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
在缓存路径缺失的情况下,针对所述下一指令将所述位置状态设置为所述iCache和不同的路径。


7.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
在缓存缺失的情况下,针对所述下一指令将所述位置状态设置为所述iTIM和所述iCache以及所有N个路径。


8.根据权利要求1所述的处理器,所述访问预测逻辑还被配置为:
在分支预测错误的情况下针对所述下一指令,将所述位置状态设置为所述iCache以及所有N个路径或所述iTIM和所述iCache以及所有N个路径两者。


9.根据权利要求1所述的处理器,其中,所述访问预测逻辑基于至少分支解析处理、分支预测处理、顺序指令逻辑处理、缓存命中/缺失处理、先前程序计数器值和先前位置状态来预测所述位置状态。


10.一种用于在存储器结构之间进行预测的方法,所述方法包括:
提供位置状态;
提供程序计数器值;
预测要从指令紧密耦合存储器(iTIM)或具有N个路径的特...

【专利技术属性】
技术研发人员:克尔斯特·阿萨诺维奇安德鲁·沃特曼
申请(专利权)人:斯法夫股份有限公司
类型:发明
国别省市:美国;US

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

1