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

用于SIMD执行引擎的非结构化控制流的方法和设备技术

技术编号:15199608 阅读:66 留言:0更新日期:2017-04-21 23:23
用于SIMD非结构化分支的设备和方法。例如,处理器的一个实施例包括:执行单元,具有多个通道(用以执行指令);以及分支单元,用于处理非结构化控制流指令,并且保持每个通道的每通道计数值,分支单元将非结构化控制流指令的指令指针标签存储在存储器中,并且使用标签地址来识别指令指针标签,分支单元还至少基于每通道计数值来启用和禁用通道。

Method and apparatus for unstructured control flow of SIMD execution engine

Apparatus and method for unstructured branches of SIMD. For example, one embodiment comprising processor: the execution unit has a plurality of channels (to execute instructions); and a branch unit for processing unstructured control flow instructions, and keep each channel of each channel count, the branch unit will unstructured control flow to make the instruction pointer tag stored in the memory. To identify and tag tag using the instruction pointer address, the branch unit at least based on each channel count to enable and disable the channel.

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及计算机处理器领域。更具体来说,本专利技术涉及用于执行单指令多数据(SIMD)非结构化分支的设备和方法。
技术介绍
管理单指令多数据(SIMD)程序中的控制流是复杂问题。按传统,图形处理单元(GPU)使用标量代码和程序例程来控制每个SIMD通道的指令指针(IP)地址。这在性能和功率使用方面均是低效的。在一些架构上通过为每个通道保持唯一IP地址来管理控制流。例如,当遇到控制流指令时,每个通道的IP采用基于指令的判定掩码(mask)的特定IP来更新。对于每个和每一个指令,将执行IP与通道的IP进行比较,以确定是否在当前IP对特定指令启用该通道。另外,当前在硬件中不支持SIMD程序的非结构化控制流。现代编译器产生非结构化SIMD程序代码,其按传统由编译器转换回结构化程序代码,以及一些优化因转换回结构化流而丢失。附图说明从以下结合附图的详细描述中能够得到本专利技术更好的理解,在附图中:图1是带有处理器(具有一个或多个处理器核)和图形处理器的计算机系统的实施例的框图。图2是具有一个或多个处理器核的处理器、集成存储器控制器和集成图形处理器的一个实施例的框图;图3是可作为分立图形处理单元或者可以是与多个处理核相集成的图形处理器的图形处理器的一个实施例的框图;图4是图形处理器的图形处理引擎的实施例的框图;图5是图形处理器的另一个实施例的框图;图6是包括处理元件阵列的线程执行逻辑的框图;图7示出按照实施例的图形处理器执行单元指令格式;图8是包括图形流水线、媒体流水线、显示引擎、线程执行逻辑和渲染输出流水线的图形处理器的另一个实施例的框图;图9A是示出按照实施例的图形处理器命令格式的框图;图9B是示出按照实施例的图形处理器命令序列的框图;图10示出按照实施例的数据处理系统的示范图形软件架构;图11示出用于执行SIMD分支操作的系统架构的一个实施例;图12示出按照本专利技术的一个实施例的分支单元;图13示出按照本专利技术的一个实施例的用于处理分叉(diverging)_控制流指令的方法;图14示出按照本专利技术的一个实施例的用于处理聚合(converging)控制流指令的方法;图15示出具有非结构化控制流逻辑的分支单元的一个实施例;图16示出分支单元的一个实施例的附加细节;图17示出按照本专利技术的一个实施例的用于处理非结构化分叉控制流指令的方法;以及图18示出按照本专利技术的一个实施例的用于处理非结构化聚合控制流指令的方法。具体实施方式为了说明的目的,以下描述中阐述大量具体细节,以便提供对以下所描述的本专利技术的实施例的透彻理解。然而对本领域的技术人员将显而易见的是,在没有这些具体细节的一部分的情况下可实践本专利技术的实施例。在其它实例中,众所周知的结构和装置通过框图形式示出,以避免模糊本专利技术的实施例的基本原理。示范图形处理器架构和数据类型概览——图1-3图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(其可包含用于促进其它指令集仿真的指令)。处理器核107还可包含其它处理装置,诸如数字信号处理器(DSP)。在一个实施例中,处理器102包含高速缓冲存储器104。取决于架构,处理器102可具有单个内部高速缓存或多级内部高速缓存。在一个实施例中,高速缓冲存储器在处理器102的各种组分之间共享。在一个实施例中,处理器102还使用外部高速缓存(例如3级(L3)高速缓存或末级高速缓存(LLC))(未示出),其可使用已知高速缓存一致性技术在处理器核107之间共享。寄存器文件106附加地被包含在处理器102中,其可包含用于存储不同类型数据的不同类型寄存器(例如整数寄存器、浮点寄存器、状况(status)寄存器和指令指针寄存器)。一些寄存器可以是通用寄存器,而其它寄存器可以是对处理器102的设计特定的。处理器102耦合到处理器总线110,以在处理器102与系统100中的其它组分之间传送数据信号。系统100使用示范“集线器”系统架构,包含存储器控制器集线器116和输入输出(I/O)控制器集线器130。存储器控制器集线器116促进存储器装置与系统100的其它组分之间的通信,同时I/O控制器集线器(ICH)130提供了经由本地I/O总线到I/O装置的连接。存储器装置120可以是动态随机存取存储器(DRAM)装置、静态随机存取存储器(SRAM)装置、闪存装置或具有充当过程存储器的适合性能的某一其它存储器装置。存储器120可存储当处理器102执行过程时供使用的数据122和指令121。存储器控制器集线器116还与可选的外部图形处理器112耦合,其可与处理器102中的一个或多个图形处理器108通信以执行图形和媒体操作。ICH130使外围设备能够经由高速I/O总线连接到存储器120和处理器102。I/O外围设备包含音频控制器146、固件接口128、无线收发器126(例如Wi-Fi、蓝牙)、数据存储装置124(例如硬盘驱动器、闪存等)以及用于将传统(例如个人系统2(PS/2))装置耦合到系统的传统I/O控制器。一个或多个通用串行总线(USB)控制器142连接输入装置,诸如键盘和鼠标144组合。网络控制器134还可耦合到ICH130。在一个实施例中,高性能网络控制器(未示出)耦合到处理器总线110。图2是具有一个或多个处理器核202A-N、集成存储器控制器214和集成图形处理器208的处理器200的实施例的框图。处理器200可包含附加核(多达且包含由虚线框表示的附加核202N)。核202A-N中的每个核都包含一个或多个内部高速缓存单元204A-N。在一个实施例中,每个核还可以使用一个或多个共享高速缓存单元206。内部高速缓存单元204A-N和共享高速缓存单元206表示处理器200内的高速缓冲存储器层级。高速缓冲存储器层级可包含每个核内的至少一级指令和数据高速缓存和一级或多级共享中级高速缓存,诸如2级(L2)、3级(L3)、4级(L4)或其它级高速缓存,其中在外部存储本文档来自技高网...
用于SIMD执行引擎的非结构化控制流的方法和设备

【技术保护点】
一种处理器,包括:执行单元,具有多个通道以执行指令;以及分支单元,用于处理非结构化控制流指令,并且保持每个通道的每通道计数值,所述分支单元将所述非结构化控制流指令的指令指针标签存储在存储器中,并且使用标签地址来识别所述指令指针标签,所述分支单元还至少基于所述每通道计数值来启用和禁用所述通道。

【技术特征摘要】
【国外来华专利技术】2014.09.26 US 14/4985051.一种处理器,包括:执行单元,具有多个通道以执行指令;以及分支单元,用于处理非结构化控制流指令,并且保持每个通道的每通道计数值,所述分支单元将所述非结构化控制流指令的指令指针标签存储在存储器中,并且使用标签地址来识别所述指令指针标签,所述分支单元还至少基于所述每通道计数值来启用和禁用所述通道。2.如权利要求1所述的处理器,其中,所述分支单元要生成通道启用掩码,以指示是否启用所述通道的每个,所述每通道掩码基于与每个通道关联的多个每通道计数器的每个中存储的值来生成,所述每通道计数器存储每个通道的所述每通道计数值,其中在检测到特定通道没有特定条件时,所述每通道计数器要采用识别所述指令指针标签其中之一的标签地址来更新。3.如权利要求2所述的处理器,其中,所述通道掩码包括每通道单个位,其中第一二进制值指示启用所述通道,以及第二二进制值指示禁用所述通道。4.如权利要求3所述的处理器,其中,响应为每个通道所保持的所述每通道计数值而更新所述通道掩码位。5.如权利要求4所述的处理器,其中,每通道计数值0指示启用所述通道,并且其中任何其它每通道计数值指示禁用所述通道。6.如权利要求5所述的处理器,其中,所述存储器包括分类链接列表存储器结构,所述指令指针标签存储在所述存储器中。7.如权利要求1所述的处理器,其中,每个非结构化控制流指令包括判定掩码,所述分支单元解释所述判定掩码,以确定每个通道是否采取所述非结构化控制流指令的条件。8.如权利要求7所述的处理器,其中,如果所述判定掩码对所有通道是均匀的,则不更新所述每通道计数值,但是更新所述执行指令指针。9.如权利要求7所述的处理器,其中,如果所述判定掩码对所有通道不是均匀的,以及如果在所述存储器中没有找到当前标签地址,则将所述当前指令指针标签插入所述存储器中。10.如权利要求1所述的处理器,其中,所述非结构化控制流指令包括分叉指令和聚合指令。11.如权利要求10所述的处理器,还包括:分类链接列表存储器结构,用来存储聚合指令和/或分叉指令的指令指针。12.如权利要求11所述的处理器,其中,所述非结构化控制流指令包括GOTO和JOIN指令。13.一种方法,包括:至少使用当前指令指针来生成与当前非结构化控制流指令关联的标签地址;确定非结构化控制流指令的指令判定掩...

【专利技术属性】
技术研发人员:S麦于兰DM斯塔基
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1