描述了一种用于促进在计算装置的动态线程安全操作的机制。如本文所描述的实施例的一种方法包含:检测在计算装置要执行的操作,并将该操作分割成多个子操作,其中多个操作经由线程安全操作执行。该方法可进一步包含:向多线程环境中的多个处理线程指配多个子操作,并将从多个线程中获得的多个线程值聚合成最终值。
Dynamic thread safe operation for promoting variable bit length transactions on a computing device
A mechanism for facilitating dynamic thread safe operation in a computing device is described. A method, as described in this article, includes the following steps: detecting an operation to be performed by a computing device and dividing the operation into a plurality of sub operations. The method may further include assigning a plurality of sub operations to a plurality of processing threads in a multithreaded environment, and combining a plurality of thread values obtained from a plurality of threads into a final value.
【技术实现步骤摘要】
【国外来华专利技术】优先权要求此申请要求由KrzysztofLaskowski在2014年8月15日提交的美国临时专利申请No.62/037,851(代理人档案No.P70769Z)的优先权和利益,其内容通过引用结合于本文中。版权通告此专利文档的公开部分含有受到版权保护的资料。版权拥有人不反对任何人复制该专利文档或专利公开,因为它出现在专利和商标局专利文件或记录中,但否则无论如何都保留所有版权权利。
本文描述的实施例一般涉及计算机。更具体地说,实施例涉及一种用于促进用于计算装置上可变位长事务的动态线程安全操作的机制。
技术介绍
常规中央处理单元(CPU)和图形处理单元(GPU)装置被严格约束,因为它们不能够支持比具体位长更高的原子操作。此类约束例如可严格限制计算装置处的图形体验,并导致系统资源浪费和低效性能,诸如在功率、时间、代码处理、存储器和/或等方面。附图说明实施例在附图的图形中作为示例而非限制图示了,附图中相似的附图标记指的是类似的元素。图1是根据实施例的数据处理系统的框图。图2是具有一个或更多个处理器核的处理器、集成存储器控制器和集成图形处理器的实施例的框图。图3是可以是分立图形处理单元或者可以是与多个处理核集成的图形处理器的图形处理器的一个实施例的框图。图4是图形处理器的图形处理引擎的实施例的框图。图5是图形处理器的另一实施例的框图。图6图示了包含在图形处理引擎的一个实施例中采用的处理元素阵列的线程执行逻辑。图7是图示根据实施例的图形处理器执行单元指令格式的框图。图8是包含图形流水线、媒体流水线、显示器引擎、线程执行逻辑和渲染输出流水线的图形处理器的另一实施例的框图。图9A是图示根据实施例的图形处理器命令格式的框图,并且图9B是图示根据实施例的图形处理器命令序列的框图。图10图示了根据实施例的数据处理系统的示范图形软件架构。图11图示了根据一个实施例的采用动态线程安全操作机制的计算装置。图12图示了根据一个实施例的动态线程安全操作机制。图13图示了根据一个实施例的用于促进线程安全操作的事务序列。图14A图示了根据一个实施例的用于促进线程安全操作的方法。图14B图示了根据一个实施例的用于促进线程安全操作的方法。具体实施方式在如下描述中,阐述了众多特定细节。然而,如本文所描述的实施例可在没有这些特定细节的情况下实行。在其它实例中,众所周知的电路、结构和技术尚未详细显示,以免模糊了对此描述的理解。实施例提供在计算装置处在多线程环境中使用任何可用的和/或默认的位长支持来实现的线程安全操作。例如,在多线程环境中可使用默认的和/或可用的32位整数加操作,采用64位线程安全整数加操作。预见的是,实施例不限于具体位长(诸如32位)、操作大小(诸如64位)等,并且类似地,实施例可适用于任何数量和任何类型的CPU、GPU、通用GPU(GPGPU)等、语言、平台、标准和协议,诸如开放计算语言(OpenCL™)、开放图形库(OpenGL™)、DirectX™计算着色器、计算着色器等。例如,甚至现代GPGPU可仅支持32位原子操作,同时具有在可变的较高位长上操作的需要,诸如,其中许多现代GPU装置都可具有支持64位变量的容量,但它们缺乏用于支持高于32位变量的变量的原子操作的能力。例如,并且在一个实施例中,在此类情况下,可为了更好的结果和更高的效率,开发GPGPU的64位容量,不必违反计算装置的较低限制,诸如32位限制,如将随后在此文档中进一步描述的。概览——图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是具有一个或多个处理器核102A-N、集本文档来自技高网...
【技术保护点】
一种促进在计算装置的动态线程安全操作的设备,包括:检测和接收逻辑,用以检测在计算装置要执行的操作;评估和划分逻辑,用以将所述操作分割成多个子操作,其中所述多个子操作经由线程安全操作执行;线程指配和处理逻辑,用以向多线程环境中的多个处理线程指配所述多个子操作;以及线程值聚合逻辑,用以将从所述多个线程获得的多个线程值聚合成最终值。
【技术特征摘要】
【国外来华专利技术】2014.08.15 US 62/037,8511.一种促进在计算装置的动态线程安全操作的设备,包括:检测和接收逻辑,用以检测在计算装置要执行的操作;评估和划分逻辑,用以将所述操作分割成多个子操作,其中所述多个子操作经由线程安全操作执行;线程指配和处理逻辑,用以向多线程环境中的多个处理线程指配所述多个子操作;以及线程值聚合逻辑,用以将从所述多个线程获得的多个线程值聚合成最终值。2.如权利要求1所述的设备,其中所述线程指配和处理逻辑进一步在与所述多线程环境的多个执行单元关联的所述多个线程同时且并行执行所述多个子操作。3.如权利要求1或2所述的设备,其中所述线程值聚合逻辑进一步从所述多个线程获得与所述多个子操作关联的所述多个线程值,其中每个线程值包含与在对应线程执行的子操作关联的线程结果。4.如权利要求1所述的设备,其中所述最终值包括包含与在所述多个线程执行的所述多个子操作关联的所述多个线程值的聚合的聚合的结果。5.如权利要求1所述的设备,其中所述评估和划分逻辑进一步在将所述操作分割成所述多个子操作之前评估所述操作,其中所述评估基于包含预先定义的阈值的预定判据执行。6.如权利要求1或5所述的设备,其中所述评估和划分逻辑进一步基于所述预先定义的阈值确定与所述操作关联的资源的潜在消耗,其中所述预先定义的阈值表示资源消耗的可接受级别。7.如权利要求6所述的设备,其中如果与所述操作关联的资源的所述潜在消耗低于或等于所述可接受级别,则所述操作经由原子操作执行。8.如权利要求7所述的设备,其中如果与所述操作关联的资源的所述潜在消耗高于所述可接受级别,则所述操作经由所述线程安全操作执行,其中所述操作包括加操作。9.一种用于促进在计算装置的动态线程安全操作的方法,包括:检测在计算装置要执行的操作;将所述...
【专利技术属性】
技术研发人员:K·拉斯科夫斯基,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。