当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于基于软件提示和硬件线程切换来降低寄存器区块冲突的系统和方法技术方案

技术编号:21999789 阅读:37 留言:0更新日期:2019-08-31 05:17
公开了用于基于软件提示和硬件线程切换来降低寄存器区块冲突的系统和方法。公开了用于基于软件提示和硬件线程切换来降低寄存器区块冲突的机制。在一些实施例中,用于线程切换的装置包括图形处理单元(GPU),该GPU包括多个寄存器区块以存储操作数,这些操作数被指派以至少部分地避免寄存器区块冲突。解码电路检查将要由第一线程执行的第一指令的线程切换字段。GPU执行线程切换机制,以使得第二指令在第一指令的线程切换字段被设置时将由第二线程执行。

System and Method for Reducing Register Block Conflict Based on Software Tips and Hardware Thread Switching

【技术实现步骤摘要】
用于基于软件提示和硬件线程切换来降低寄存器区块冲突的系统和方法
实施例总体上涉及数据处理,并且更具体地涉及经由通用图形处理单元的数据处理。
技术介绍
当前的并行图形数据处理包括被开发为用于对图形数据执行特定操作的系统和方法,这些特定操作诸如例如,线性插值、曲面细分、光栅化、纹理映射、深度测试等。传统上,图形处理器使用固定功能计算单元来处理图形数据;然而,最近,部分图形处理器已经变得可编程,使得此类处理器能够支持用于处理顶点和片段数据的更多种操作。为了进一步提高性能,图形处理器典型地实现诸如流水线操作之类的处理技术,这些处理技术尝试贯穿图形流水线的不同部分并行地处理尽可能多的图形数据。具有单指令多线程(SIMT)架构的并行图形处理器被设计成使图形流水线中的并行处理量最大化。在SIMT架构中,多组并行线程尝试尽可能经常地一起同步执行程序指令,以提高处理效率。可以在ShaneCook的CUDA编程(CUDAProgramming)第三章,第37-51页(2013)中找到对SIMT架构的软件和硬件的总体概述。为了提供GPU中大型且快速的寄存器堆(RF),通常通过将寄存器分组为可以并行访问的不同区块从而使用多区块结构来实现高吞吐量。然而,寄存器区块冲突可能导致流水线停止,并且这可能对于具有非平衡寄存器区块使用的应用具有显著的性能影响。附图说明为了以能够详细理解本实施例的以上记载特征的方式,可通过参考实施例来对以上简要概括的实施例进行更具体的描述,这些实施例中的一些在所附附图中被图示。然而,应当注意,所附附图仅图示出典型实施例,并因此不应被认为是对其范围的限制。图1是根据实施例的处理系统100的框图;图2是处理器200的实施例的框图,该处理器200具有一个或多个处理器核202A-202N、集成存储器控制器214以及集成图形处理器208;图3是图形处理器300的框图,该图形处理器300可以是分立的图形处理单元,或可以是与多个处理核集成的图形处理器;图4是根据一些实施例的图形处理器的图形处理引擎410的框图;图5是根据本文中所描述的一些实施例的图形处理器核500的硬件逻辑的框图;图6A-图6B图示出根据本文中所描述的实施例的包括在图形处理器核中所采用的处理元件阵列的线程执行电路600;图7是图示出根据一些实施例的图形处理器指令格式700的框图;图8是图形处理器800的另一实施例的框图;图9A是图示出根据一些实施例的图形处理器命令格式900的框图;图9B是图示出根据实施例的图形处理器命令序列910的框图;图10图示出根据一些实施例的数据处理系统1000的示例性图形软件架构;图11A是图示出根据实施例的可用于制造集成电路以执行操作的IP核开发系统1100的框图;图11B图示出根据本文中所描述的一些实施例的集成电路封装组件1170的横截面侧视图;图12-图14图示出根据本文中所描述的各实施例的可使用一个或多个IP核制造的示例性集成电路和相关联的图形处理器;图15图示出根据实施例的多区块的寄存器堆;图16A-图16B图示出根据实施例的用于可能区块冲突时的线程切换的方法;图17A-图17B示出了根据实施例的硬件线程切换如何降低区块冲突的示例;图18示出了根据实施例的EU(执行单元)的示例性架构并且每个GPU处理器可具有多个EU。具体实施方式在实施例中,公开了用于基于软件提示和硬件线程切换来降低寄存器区块冲突的机制。由于利用编译器生成的提示,本设计以最小硬件改变降低了寄存器区块冲突,同时还避免了由区块冲突导致的流水线停止。在一些实施例中,用于线程切换的装置包括图形处理单元(GPU),该GPU包括多个寄存器区块以存储操作数,这些操作数被指派给寄存器区块来至少部分地避免寄存器区块冲突。解码电路检查将要由第一线程执行的当前指令的线程切换字段。GPU执行强制线程切换机制,以使得下一指令在当前指令的线程切换字段被设置时将由第二线程来执行。在下列描述中,阐述了众多特定细节来提供更全面的理解。然而,将对本领域技术人员显而易见的是,可在没有这些特定细节中的一个或多个细节的情况下实施本文中所描述的实施例。在其他实例中,未描述公知的特征以避免使本实施例的细节变得模糊。系统概述系统概述图1是根据实施例的处理系统100的框图。在各实施例中,系统100包括一个或多个处理器102以及一个或多个图形处理器108,并且可以是单处理器台式系统、多处理器工作站系统或具有大量处理器102或处理器核107的服务器系统。在一个实施例中,系统100是被并入用于在移动设备、手持式设备或嵌入式设备内使用的芯片上系统(SoC)集成电路内的处理平台。在一个实施例中,系统100可以包括基于服务器的游戏平台、游戏控制台,或被并入基于服务器的游戏平台、游戏控制台内,该游戏控制台包括游戏与媒体控制台、移动游戏控制台、手持式游戏控制台、或在线游戏控制台。在一些实施例中,系统100是移动电话、智能电话、平板计算设备或移动互联网设备。处理系统100还可以包括可穿戴设备、与可穿戴设备耦合、或者集成在可穿戴设备中,该可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备、或虚拟现实设备。在一些实施例中,处理系统100是电视或机顶盒设备,该电视或机顶盒设备具有一个或多个处理器102以及由一个或多个图形处理器108生成的图形界面。在一些实施例中,一个或多个处理器102各自包括用于处理指令的一个或多个处理器核107,这些指令在被执行时执行系统和用户软件的操作。在一些实施例中,一个或多个处理器核107中的每个处理器核被配置成用于处理特定的指令集109。在一些实施例中,指令集109可促进复杂指令集计算(CISC)、精简指令集计算(RISC)、或经由超长指令字(VLIW)的计算。多个处理器核107可各自处理不同的指令集109,该指令集109可包括用于促进对其他指令集进行仿真的指令。处理器核107还可包括其他处理设备,诸如,数字信号处理器(DSP)。在一些实施例中,处理器102包括高速缓存存储器104。取决于架构,处理器102可以具有单个内部高速缓存或多个层级的内部高速缓存。在一些实施例中,在处理器102的各部件之间共享高速缓存存储器。在一些实施例中,处理器102还使用外部高速缓存(例如,第3级(L3)高速缓存或末级高速缓存(LLC))(未示出),可使用已知的高速缓存一致性技术在处理器核107之间共享外部高速缓存。另外,寄存器堆106被包括在处理器102中,该处理器102可包括用于存储不同类型的数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器、以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可特定于处理器102的设计。在一些实施例中,一个或多个处理器102与一个或多个接口总线110耦合,以在处理器102与系统100中的其他部件之间传输诸如地址、数据、或控制信号之类的通信信号。在一个实施例中,接口总线110可以是处理器总线,诸如,直接媒体接口(DMI)总线的版本。然而,处理器总线不限于DMI总线,并且可包括一个或多个外围部件互连总线(例如,PCI、PCI快速)、存储器总线或其他类型的接口总线。在一个实施例中,(多个)处理器102包括集成存储器控制器116和平台本文档来自技高网...

【技术保护点】
1.一种用于促进线程切换的执行的装置,所述装置包括:图形处理单元GPU,所述GPU包括:多个寄存器区块,用于存储操作数,所述操作数被指派以至少部分地避免寄存器区块冲突;以及解码电路,用于检查要利用第一线程来执行的第一指令的线程切换字段。

【技术特征摘要】
2018.02.23 US 15/903,5491.一种用于促进线程切换的执行的装置,所述装置包括:图形处理单元GPU,所述GPU包括:多个寄存器区块,用于存储操作数,所述操作数被指派以至少部分地避免寄存器区块冲突;以及解码电路,用于检查要利用第一线程来执行的第一指令的线程切换字段。2.如权利要求1所述的装置,其特征在于,所述线程切换字段包括所述第一指令的线程切换位。3.如权利要求2所述的装置,其特征在于,进一步包括:线程调度器,用于执行第一线程切换机制,以使得第二指令在所述第一指令的所述线程切换位被设置时利用第二线程来执行。4.如权利要求3所述的装置,其特征在于,所述第一线程切换机制由于所述第一指令的第一操作数与不同的指令的第二操作数之间的寄存器区块冲突而使得第二指令利用第二线程来执行。5.如权利要求4所述的装置,其特征在于,所述第一操作数和所述第二操作数被指派给同一寄存器区块和所述寄存器区块的同一读取端口。6.如权利要求2所述的装置,其特征在于,当所述第一指令的所述线程切换位未被设置时,所述线程调度器用于执行第二线程切换机制。7.一种图形处理单元GPU,包括:寄存器堆阵列,具有多个寄存器区块以存储操作数,所述操作数被指派以至少部分地避免寄存器区块冲突;以及用于检查要利用第一线程来执行的第一指令的线程切换字段的电路。8.如权利要求7所述的图形处理单元,其特征在于,所述线程切换字段包括所述第一指令的线程切换位。9.如权利要求8所述的图形处理单元,其特征在于,进一步包括:线程调度器,用于执行第一线程切换机制,以使得第二指令在所述第一指令的所述线程切换位被设置时利用第二线程来执行。10.如权利要求9所述的图形处理单元,其特征在于,所述第一线程切换机制由于所述第一指令的第一操作数与不同的指令的第二操作数之间的寄存器区块冲突而使得...

【专利技术属性】
技术研发人员:程步奇WY·陈路奎元C·古拉姆S·马余兰
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1