用于功率节约的寄存器重命名制造技术

技术编号:37620335 阅读:10 留言:0更新日期:2023-05-18 12:11
公开了用于寄存器重命名的系统和方法。例如,描述了集成电路,该集成电路包括第一集群,第一集群包括第一组物理寄存器和第一执行资源电路,其中,用于第一执行资源电路的操作的输入是第一数据类型;第二集群,其包括第二组物理寄存器和第二执行资源电路,其中,用于第二执行资源电路的操作的输入是不同于第一数据类型的第二数据类型;以及寄存器重命名电路,其被配置为:确定将被存储在第一逻辑寄存器中的第一指令的结果的数据类型预测;并且,基于数据类型预测匹配第一数据类型,将第一逻辑寄存器重命名以被存储在第一组物理寄存器的物理寄存器中。的物理寄存器中。的物理寄存器中。

【技术实现步骤摘要】
【国外来华专利技术】用于功率节约的寄存器重命名


[0001]本公开涉及用于功率节约的寄存器重命名。

技术介绍

[0002]现代处理器经常使用物理寄存器重命名的乱序执行。先前的系统已经使用物理寄存器重命名通过针对每个产生的结果分配新的目的地寄存器来去除写后写和读后写的危险。
[0003]在一些处理器中(例如,摩托罗拉88000和RISC

V Zfinx选项),架构寄存器能够在不同时间保存不同类型的数据。例如,单个寄存器能够保存整型值或浮点值。在一些传统的处理器中,其中指令集架构允许将多种数据类型保存在同一架构寄存器中,统一的物理寄存器文件已经用于保存不同的数据类型,并且路由到处理不同数据类型的各种功能单元。
[0004]用于矩阵计算的二维结构(例如,脉动阵列)非常有效,因为操作数位于阵列中并且只需要少量移动来处理数据。然而,这些用于矩阵计算的二维结构是硬连线的并且通常用于固定功能机器。因为操作数是分布式的,所以它非常专业,并且编写微码来做正确的事情。在通用中央处理器(CPU)的不同上下文中,这些优势会丢失,并且对于访问寄存器与访问高速缓存与访问内存存在非常不同的定时。
附图说明
[0005]当结合附图阅读时,从以下详细描述中可以最好地理解本公开。需要强调的是,根据惯例,附图的各种特征不是按比例绘制的。相反,为清楚起见,任意扩大或缩小了各种特征的尺寸。
[0006]图1是针对使用基于数据类型预测的寄存器重命名来执行指令的系统的示例的框图。
[0007]图2是针对使用基于数据类型预测寄存器重命名和能够用于从错误预测中恢复的集群之间的替代数据路径来执行指令的系统的示例的框图。
[0008]图3是基于数据类型预测的寄存器重命名的过程的示例的流程图。
[0009]图4是针对通过插入微操作以将数据移动到正确的集群而从数据类型错误预测中恢复的过程的示例的流程图。
[0010]图5是针对通过使用集群之间的替代数据路径从数据类型错误预测中恢复的过程的示例的流程图。
[0011]图6是针对执行来自使用寄存器重命名的指令集的指令的系统的示例的框图。
[0012]图7是针对执行来自使用寄存器重命名的指令集的指令的系统的示例的框图。
具体实施方式
[0013]概述
[0014]本文公开了用于功率节约的寄存器重命名的实施方式。
[0015]在第一方面,本说明书中描述的主题能够体现在用于执行指令的集成电路中,该集成电路包括:第一集群,其包括第一组物理寄存器和第一执行资源电路,第一执行资源电路被配置为执行将第一组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于第一执行资源电路的操作的输入是第一数据类型;第二集群,其包括第二组物理寄存器和第二执行资源电路,第二执行资源电路被配置为执行将第二组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于第二执行资源电路的操作的输入是不同于第一数据类型的第二数据类型;以及寄存器重命名电路,其被配置为:确定将存储在第一逻辑寄存器中的第一指令的结果的数据类型预测;以及,基于数据类型预测匹配第一数据类型,将第一逻辑寄存器重命名以被存储在第一组物理寄存器的物理寄存器中。
[0016]在第二方面,本说明书中描述的主题能够体现在方法中,该方法包括:确定将存储在第一逻辑寄存器中的第一指令的结果的数据类型预测;以及,基于数据类型预测匹配第一数据类型,重命名第一逻辑寄存器以被存储在从多个集群中选择的第一集群的物理寄存器中,其中,多个集群包括:第一集群,其包括第一组物理寄存器和第一执行资源电路,第一执行资源电路被配置为执行将第一组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于第一执行资源电路的操作的输入是第一数据类型;以及,第二集群,其包括第二组物理寄存器和第二执行资源电路,第二执行资源电路被配置为执行将第二组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于第二执行资源电路的操作的输入是不同于第一数据类型的第二数据类型。
[0017]在第三方面,本说明书中描述的主题能够体现在用于执行指令的集成电路中,该集成电路包括执行资源电路,其被配置为对存储在物理寄存器中的操作数执行指令;一组物理寄存器,其包括位于执行资源电路附近的第一物理寄存器子集和位于比第一物理寄存器子集中的寄存器更远离执行资源电路的第二物理寄存器子集;以及,寄存器重命名电路,其被配置为:检测存储在指令解码缓冲器中的指令序列,指令序列包括对具有真实依赖性的第一逻辑寄存器的多个顺序引用;以及,基于对指令序列的检测,将第一逻辑寄存器重命名以被存储在第一物理寄存器子集的物理寄存器中,并且将指令序列中引用的另一个逻辑寄存器重命名以被存储在第二物理寄存器子集中的物理寄存器。
[0018]在以下详细描述、所附权利要求和附图中公开了本公开的这些和其他方面。
[0019]能够使用专门的物理结构来改进不同数据类型的存储和处理。例如,一个这样的结构是包括使用本地数据路径紧密耦合的物理寄存器文件和功能单元的组合的集群。这种方法的一个好处是能够针对目前存在于每个架构寄存器中的动态数据类型优化每个寄存器文件中数据值的表示。第二好处可能是涉及相同数据类型的计算序列被本地化到同一个集群,从而提高能量效率并且减少电路延迟。
[0020]本文描述的一些实施方式可以提供在优化的集群中提供不同数据类型的单独本地化处理的好处,即使当指令集架构要求从一组统一的架构寄存器保存和处理所有数据类型时也是如此。例如,具有统一架构寄存器文件的标量处理器能够提供两个集群,一个用于整型并且一个用于浮点型据类型。此处描述的方法动态地将值分配给集群并且基于数据类型在适当的集群中执行计算。
[0021]例如,一些实施方式基于指令操作码来确定在哪个集群中执行指令。如果空间可用,则在该集群中分配目的地并且更新映射表(否则停止解码)。检查映射表以查看源是否
在正确的集群中。如果是这样,向集群派送指令。如果源位于错误的集群中(例如,加载到整型寄存器文件中,但现在作为浮点型被处理),则插入附加的微操作以将数据从一个集群移动到另一个集群,可能作为转换的一部分重新格式化数据。
[0022]当目标格式从操作码中不清楚时(例如,从存储器加载),能够进行预测。例如,一些预测选项包括:1)与同一架构寄存器的最后类型相同。观察发现,在许多代码中,尤其是循环中,相同的架构寄存器用于重复保存相同的类型。如果软件了解此预测策略,则软件能够提高此方案的性能。2)在指令缓冲器中先行进位,以观察后面的操作码是否指示使用这个源。3)随机地生成数据类型预测。4)基于程序计数器(PC)加指令编码。在编码足以确定结果类型的情况下,忽略程序计数器,否则使用程序计数器的某些部分以索引到预测表中。例如,同一架构寄存器可以在同一个循环中使用两次以保存不同类型的数据
[0023][0024]5)以上的组合可以用于确定将存储在目的地寄存器中的指令的结果的数据类型预测。
[0025本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于执行指令的集成电路,包括:第一集群,所述第一集群包括第一组物理寄存器和第一执行资源电路,所述第一执行资源电路被配置为执行将所述第一组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于所述第一执行资源电路的操作的所述输入是第一数据类型;第二集群,所述第二集群包括第二组物理寄存器和第二执行资源电路,所述第二执行资源电路被配置为执行将所述第二组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于所述第二执行资源电路的操作的所述输入是不同于所述第一数据类型的第二数据类型;以及寄存器重命名电路,所述寄存器重命名电路被配置为:确定将被存储在第一逻辑寄存器中的第一指令的结果的数据类型预测;以及基于所述数据类型预测匹配所述第一数据类型,将所述第一逻辑寄存器重命名以被存储在所述第一组物理寄存器的物理寄存器中。2.根据权利要求1所述的集成电路,其中,所述第一指令是非类型化传输指令。3.根据权利要求1所述的集成电路,其中,所述第一指令是加载指令。4.根据权利要求1至3中任一项所述的集成电路,其中,所述数据类型预测是基于所述第一指令的操作码来确定的。5.根据权利要求1至4中任一项所述的集成电路,其中,基于将访问所述第一指令的所述结果的排队指令的操作码来确定所述数据类型预测,其中,所述排队指令存储在指令缓冲器中。6.根据权利要求5所述的集成电路,其中,所述指令缓冲器是所述集成电路的解码缓冲器。7.根据权利要求5所述的集成电路,其中,所述指令缓冲器是所述集成电路的指令高速缓存的高速缓存行。8.根据权利要求1至7中任一项所述的集成电路,其中,所述数据类型预测是基于当前存储在所述第一逻辑寄存器中的数据的当前数据类型来确定的。9.根据权利要求1至8中任一项所述的集成电路,其中,所述数据类型预测是基于程序计数器的值来确定的。10.根据权利要求1至9中任一项所述的集成电路,其中,所述寄存器重命名电路被配置为:检测错误预测,其中,将在所述第一指令之后执行的第二指令将作为所述第二数据类型的输入访问所述第一逻辑寄存器;以及响应于所述错误预测,在所述第二指令之前发出微操作,其中,所述微操作将存储在所述第一组物理寄存器的物理寄存器中的所述第一逻辑寄存器的值复制到所述第二组物理寄存器的物理寄存器。11.根据权利要求1至9中任一项所述的集成电路,包括从所述第一组物理寄存器的物理寄存器到所述第二执行资源电路的替代数据路径,并且其中,所述寄存器重命名电路被配置为:检测错误预测,其中,将在所述第一指令之后执行的第二指令将作为所述第二数据类型的输入访问所述第一逻辑寄存器;以及
响应于所述错误预测,使所述第二执行资源电路使用所述替代数据路径访问所述第一逻辑寄存器的值。12.根据权利要求1至11中任一项所述的集成电路,其中,所述第一逻辑寄存器是具有至少两个元素的向量,并且所述第一组物理寄存器的所述物理寄存器存储所述向量。13.根据权利要求1至11中任一项所述的集成电路,其中,所述第一逻辑寄存器是具有多行和多列元素的矩阵,并且所述第一组物理寄存器的所述物理寄存器存储所述矩阵。14.根据权利要求1至13中任一项所述的集成电路,其中,所述第一数据类型是浮点型并且所述第二数据类型是整型。15.根据权利要求1至13中任一项所述的集成电路,其中,所述第一数据类型是整型并且所述第二数据类型是浮点型。16.根据权利要求1至13中任一项所述的集成电路,其中,所述第一数据类型是布尔型并且所述第一组物理寄存器的寄存器是单个位大小。17.根据权利要求16所述的集成电路,其中,所述第一执行资源电路被配置为执行分支指令。18.根据权利要求1至13中任一项所述的集成电路,其中,所述第一数据类型是标量并且所述第二数据类型是半角标量。19.根据权利要求1至13中任一项所述的集成电路,其中,所述第一数据类型是打包SIMD并且所述第二数据类型是非打包SIMD。20.一种用于执行指令的方法,包括:确定将存储在第一逻辑寄存器中的第一指令的结果的数据类型预测;以及基于所述数据类型预测匹配第一数据类型,重命名所述第一逻辑寄存器以被存储在从多个集群中选择的第一集群的物理寄存器中,其中,所述多个集群包括:第一集群,所述第一集群包括第一组物理寄存器和第一执行资源电路,所述第一执行资源电路被配置为执行将所述第一组物理寄存器的一个或多个寄存器的内容作为输入的操作,其中,用于所述第一执行资源电路的操作的所述输入是所述第一数据类型;...

【专利技术属性】
技术研发人员:克尔斯特
申请(专利权)人:斯法夫股份有限公司
类型:发明
国别省市:

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

1