不可挑选调度器队列之后的寄存器重命名制造技术

技术编号:33724019 阅读:9 留言:0更新日期:2022-06-08 21:17
一种浮点单元包括不可挑选调度器队列(NSQ),所述NSQ在加载存储单元检索将由加载操作加载的操作数的加载数据的同时提供所述加载操作。所述浮点单元还包括重命名器,所述重命名器响应于从所述NSQ接收所述加载操作而重命名由所述加载操作使用的架构寄存器并将物理寄存器编号分配到所述加载操作。所述浮点单元还包括一组可挑选调度器队列,所述一组可挑选调度器队列从所述重命名器接收所述加载操作并在执行之前存储所述加载操作。物理寄存器文件在所述浮点单元中实现,并且空闲列表用于存储所述物理寄存器文件中的可供用于分配的条目的物理寄存器编号。条目的物理寄存器编号。条目的物理寄存器编号。

【技术实现步骤摘要】
【国外来华专利技术】不可挑选调度器队列之后的寄存器重命名

技术介绍

[0001]处理系统通常包括用于补充诸如中央处理单元(CPU)的主处理器的功能的协处理器,诸如浮点单元(FPU)。例如,FPU执行数学运算,诸如加法、减法、乘法、除法、其他浮点指令,包括超越运算、逐位运算等。FPU接收用于执行的指令,对指令进行解码,并且为指令中所包括的运算执行任何必要的地址转换。FPU还通过将一个或多个物理寄存器编号分配到与运算相关联的一个或多个架构寄存器来执行寄存器重命名。物理寄存器编号指示存储操作数或运算的结果的物理寄存器文件中的条目。FPU还包括调度器,所述调度器用于调度已被分配物理寄存器文件中的条目的操作。在一些情况下,FPU调度器是分布式调度器,其采用至少两个级别的调度器队列:(1)第一级别具有不可挑选调度器队列;以及(2)第二级别具有两个或更多个可挑选调度器队列。可挑选调度器队列存储针对多个执行管道的对应子集的指令操作。不可挑选调度器队列用于在来自指令流水线前端的指令操作被分配到可挑选调度器队列之前临时缓冲所述指令操作。
附图说明
[0002]通过参考附图,更好地理解本公开,并且其众多特征和优点对本领域技术人员来说变得显而易见。在不同附图中使用相同附图标记指示类似或相同项。
[0003]图1是根据一些实施方案的在不可挑选调度器队列(NSQ)中缓冲指令或操作之后执行寄存器重命名的处理系统的框图。
[0004]图2是根据一些实施方案的实现用于队列和执行管道平衡的多模式分布式调度器的处理器的框图。
[0005]图3是根据一些实施方案的包括在重命名之前实现NSQ以缓冲操作的FPU的处理器的框图。
[0006]图4是根据一些实施方案的从空闲列表或物理寄存器编号缓冲区选择性地分配物理寄存器编号的方法的流程图。
具体实施方式
[0007]在浮点单元(FPU)分配物理寄存器文件中的条目以保存用于在FPU上执行的指令的加载操作的加载数据的同时,将加载操作提供给加载存储单元。最初,常规FPU在于不可挑选调度器队列中缓冲加载操作之前对加载操作执行重命名。直到加载存储单元返回将由加载操作加载的加载数据,才从不可挑选调度器队列调度加载操作(到可挑选调度器队列中的一个)。从存储器或高速缓存检索加载数据通常需要若干周期,并且加载操作保留在不可挑选调度器队列中达至少此时间间隔。然而,如上文所讨论,在将加载操作添加到不可挑选调度器队列之前,将物理寄存器编号分配到加载操作。因此,加载操作在至少加载存储单元返回用于加载操作的加载数据所需的时间间隔内消耗来自空闲列表的物理寄存器编号,这有效地减小可用于FPU中的其他操作的空闲列表的大小(例如,空闲物理寄存器编号的数量)。
[0008]图1至图4公开通过在重命名指令中的操作所使用的架构寄存器并将物理寄存器编号分配到操作之前将指令存储在不可挑选调度器队列中来提高FPU的性能的架构的实施方案。响应于重命名与诸如加载操作的操作相关联的架构寄存器,将操作添加到存储针对多个执行管道的对应子集的操作的一组可挑选调度器队列中的一个。不可挑选调度器队列在加载存储单元检索将由加载操作加载的操作数的加载数据的同时缓冲加载操作。FPU还包括加载映射器,所述加载映射器响应于由加载存储单元返回加载数据而将物理寄存器编号分配到加载操作。在一些实施方案中,物理寄存器编号是从保存由空闲列表提供的可用物理寄存器编号的子集的物理寄存器编号(PRN)缓冲区分配的。分配到加载操作的物理寄存器编号在对应的映射结构中被映射到引退(retire)标识符。如果加载操作在加载存储单元返回加载数据之前从不可挑选调度器队列弹出,则将物理寄存器编号从空闲列表分配到加载操作。如果加载存储单元在加载操作从不可挑选调度器队列弹出之前返回加载数据,则将物理寄存器编号从PRN缓冲区分配到加载操作。在任一种情况下,物理寄存器编号到引退标识符的映射存储在映射结构中,以防止将另一个物理寄存器编号分配到同一加载操作。FPU中空闲列表的有效大小因此增加,并且FPU的性能提高,因为直到加载操作从不可挑选调度器队列弹出或加载存储单元返回加载数据,才将物理寄存器编号从空闲列表分配到加载操作,以先到者为准。
[0009]图1是根据一些实施方案的在不可挑选调度器队列中缓冲指令或操作之后执行寄存器重命名的处理系统100的框图。处理系统100包括或可访问存储器105(例如,系统存储器)或使用诸如动态随机存取存储器(DRAM)的非暂时性计算机可读介质实现的其他存储部件。然而,存储器105的一些实施方案使用包括静态随机存取存储器(SRAM)、非易失性RAM等的其他类型的存储器来实现。处理系统100还包括总线110,以支持在处理系统100中实现的实体(诸如存储器105)之间的通信。处理系统100的一些实施方案包括为清楚起见未在图1中示出的其他总线、桥、开关、路由器等。
[0010]处理系统100包括中央处理单元(CPU)115。CPU 115的一些实施方案包括同时或并行执行指令的多个处理元件(为清楚起见未在图1中示出)。处理元件被称为处理器核心、计算单元或使用其他术语。CPU 115连接到总线110,并且通过总线110与存储器105通信。CPU 115执行存储在存储器105中的指令,诸如程序代码120,并且CPU 115将信息(诸如所执行指令的结果)存储在存储器105中。CPU 115还能够通过发出绘制调用来发起图形处理。
[0011]输入/输出(I/O)引擎125处置与显示器130以及处理系统100的其他元件(诸如键盘、鼠标、打印机、外部磁盘等)相关联的输入或输出操作。I/O引擎125耦接到总线110,使得I/O引擎125与存储器105、CPU 115或连接到总线110的其他实体通信。在所示的实施方案中,I/O引擎125读取存储在外部存储部件135上的信息,所述外部存储部件使用非暂时性计算机可读介质(诸如光盘(CD)、数字视盘(DVD)等)来实现。I/O引擎125还将诸如由CPU 115处理的结果的信息写入到外部存储部件135。
[0012]处理系统100包括渲染图像以用于在显示器130上呈现的图形处理单元(GPU)140。例如,GPU 140渲染对象以产生提供给显示器130的像素值,所述显示器使用像素值来显示表示所渲染对象的图像。GPU 140的一些实施方案用于通用计算并且对有序的元素组执行归约(reduction)和扫描操作,以及其他操作。在所示的实施方案中,GPU 140通过总线110与存储器105(和连接到总线110的其他实体)通信。然而,GPU 140的一些实施方案通过直接
连接或经由其他总线、桥、开关、路由器等与存储器105通信。GPU 140执行存储在存储器105中的指令,并且GPU 140将信息(诸如所执行指令的结果)存储在存储器105中。例如,存储器105存储表示将由GPU 140执行的程序代码的指令的副本145。
[0013]浮点单元(FPU)150补充CPU 115和GPU 140的功能。FPU 150执行数学运算,诸如加法、减法、乘法、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种设备,其包括:不可挑选调度器队列(NSQ),所述NSQ被配置来在加载存储单元检索将由加载操作加载的操作数的加载数据的同时缓冲所述加载操作;重命名器,所述重命名器被配置来响应于从所述NSQ接收所述加载操作而重命名由所述加载操作使用的架构寄存器并将物理寄存器编号分配到所述加载操作;以及一组可挑选调度器队列,所述一组可挑选调度器队列被配置来从所述重命名器接收所述加载操作并在执行之前存储所述加载操作。2.如权利要求1所述的设备,其还包括:物理寄存器文件;以及存储部件,所述存储部件被配置来存储空闲列表,所述空闲列表指示所述物理寄存器文件中的可供用于分配的条目的物理寄存器编号。3.如权利要求2所述的设备,其中物理寄存器编号响应于所述加载操作在所述加载存储单元返回所述加载数据之前从所述NSQ弹出而从所述空闲列表分配到所述加载操作。4.如权利要求2所述的设备,其还包括:物理寄存器编号缓冲区,所述物理寄存器编号缓冲区被配置来存储所述物理寄存器文件中的可供用于分配的所述条目的所述物理寄存器编号的子集。5.如权利要求4所述的设备,其中物理寄存器编号响应于所述加载存储单元在所述加载操作从所述NSQ弹出之前返回所述加载数据而从所述物理寄存器编号缓冲区分配到所述加载操作。6.如权利要求4所述的设备,其还包括:加载映射器,所述加载映射器响应于由所述加载存储单元返回所述加载数据而将物理寄存器编号分配到加载操作。7.如权利要求6所述的设备,其还包括:映射结构,所述映射结构将引退标识符映射到分配到所述加载操作的物理寄存器编号,以防止将另一个物理寄存器编号分配到同一加载操作。8.如权利要求1所述的设备,其中:所述一组可挑选调度器队列被配置来存储针对多个执行管道的操作;并且所述组中的每个可挑选调度器队列存储针对所述多个执行管道的不同子集的操作。9.一种方法,其包括:在加载存储单元检索将由加载操作加载的操作数的加载数据的同时,在不可挑选调度器队列(NSQ)中执行所述加载操作;响应于在重命名器处从所述NSQ接收所述加载操作,重命名由所述加载操作使用的架构寄存器并将物理寄存器编号分配到所述加载操作;以及将所述加载操作从所述重命名器提供到一组可挑选调度器队列中的一个,所述一组可挑选调度器队列被配置来在执行之前存储所述加载操作。10.如权利要求9所述的方法,其还包括:将物理寄存器文件中的可供用于分配的条目的物理寄存器编号存储在空闲列表中。11.如权利要求10所述的方法,其还包括:响应于所述加载操作在所述加载存储单元返回所述加载数据之前从所述NSQ弹出,将
物理寄存器编号从所述空闲列表分配到所述加载操作。12.如权利要求10所述的方法,其还包括:将所述物理寄存器文件中的可供用于分配的所述条目的所述物理寄存器编号的子集存储在物理寄存器编号缓冲区中。13.如权利...

【专利技术属性】
技术研发人员:阿伦
申请(专利权)人:ATI科技无限责任公司
类型:发明
国别省市:

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

1