用于算术逻辑单元的基于软件的指令记分板制造技术

技术编号:38993203 阅读:13 留言:0更新日期:2023-10-07 10:23
一种基于软件的指令记分板(126)指示发出到算术逻辑单元(ALU)流水线(218)的紧密发出的指令(302,304,306)之间的相依性。该基于软件的指令记分板将一个或多个控制字(308)在这些相依指令之间插入到命令流(300)中,然后该命令流由该ALU流水线执行。这些控制字标识这些相依指令所相依于的指令(父指令),使得处理器硬件(104)可确保该ALU流水线在该相依指令等待来自该父指令的结果时不会停止。等待来自该父指令的结果时不会停止。等待来自该父指令的结果时不会停止。

【技术实现步骤摘要】
【国外来华专利技术】用于算术逻辑单元的基于软件的指令记分板

技术介绍

[0001]常规处理系统包括实施音频应用程序、视频应用程序和多媒体应用程序以及在一些情况下通用计算的处理单元诸如中央处理单元(CPU)和图形处理单元(GPU)。GPU的物理资源包括用于实施用户定义的可重新配置虚拟流水线的着色器引擎和固定功能硬件单元。例如,用于处理三维(3

D)图形的常规图形流水线由可编程着色器所支持的固定功能硬件块布置的序列形成。GPU上的处理通常通过由CPU处理的应用程序编程接口(API)调用(例如,绘制调用)来发起。绘制调用是由CPU生成并传输到CPU以指示CPU在帧中渲染对象(或对象的一部分)的命令。
[0002]GPU中的图形硬件通常包括算术逻辑单元(ALU),诸如标量ALU或向量ALU,该ALU实施为对应流水线并且用于执行算术运算(诸如,加法、减法、乘法、除法以及移动)以及执行各种超越函数。在一些情况下,一个流水线用于实施大多数算术函数,并且单独流水线用于实施更复杂的超越函数。用于ALU的指令保持在指令缓冲器中,直到仲裁器挑选这些指令以用于在这些流水线中的一个流水线上执行为止。指令缓冲器中的一些指令相依于其他指令,例如第一(相依)指令的源寄存器从第二指令的目的地寄存器接收输入。因此,第二指令必须在执行第一指令之前完成。
附图说明
[0003]通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员是显而易见的。在不同附图中使用相同的附图标记表示类似或相同的项目。
[0004]图1是根据一些实施方案的采用基于软件的指令记分板的处理系统的框图。
[0005]图2是根据一些实施方案的将指示指令相依性的控制字插入到命令流中的基于软件的指令记分板的框图。
[0006]图3是根据一些实施方案的插入命令流中的指示指令相依性的控制字的框图。
[0007]图4是示出根据一些实施方案的用于将指示指令相依性的控制字插入到命令流中并且基于该控制字来延迟发出相依指令的方法的流程图。
具体实施方式
[0008]ALU流水线具有对应于预先确定数量的周期的长度,诸如四周期长流水线。如果在相依指令所相依于的指令完成之前将该相依指令发送到流水线,则该相依指令可因此停止。例如,如果加法指令相依于移动指令并且ALU流水线是四个周期长,则在移动指令之后一个周期将加法指令发送到流水线的情形下,加法指令停止三个周期。常规GPU包括用以存储信息(例如,在一个或多个触发器中)的硬件指令记分板,该硬件指令记分板用于将相依指令延迟传输到ALU流水线,直到相依指令所相依于的指令完成为止。例如,在一些情况下,该指令记分板包括六个寄存器(条目)以存储指示先前发出到流水线的六个指令的处理状态的信息。每个指令将该指令的源寄存器与指令记分板中指令的目的地寄存器进行比较,以标识任何相依性。如果一个指令相依于指令记分板中这些指令中的一个或多个指令,则
监视指令记分板中的对应条目以确定何时将相依指令发送到流水线。该过程涉及用以执行寄存器的指令解码和许多比较的电路。因此,硬件指令记分板在功耗和芯片面积两者方面招致高成本。
[0009]图1至图4示出了用于ALU流水线的指令记分板,该指令记分板在软件中实施以减少由GPU中的硬件所耗用的功耗和面积。基于软件的指令记分板指示发出到ALU流水线的指令之间的相依性,其中指令之间的间隔小于流水线持续时间(称为“紧密间隔”指令)。基于软件的指令记分板将一个或多个延迟指令(称为“控制字”)在程序代码中的相依指令之间选择性地插入到命令流中,该命令流然后由GPU执行。控制字标识相依指令所相依于的指令(本文中称为“父指令”),使得GPU硬件不会将相依指令发出到ALU流水线并且致使ALU流水线停止,因为父指令尚未完成。在一些实施方案中,基于软件的指令记分板将控制字紧接在相依指令之前插入到命令流中,并且该控制字指示相依指令所相依于的前一个指令。例如,控制字指示命令流中的下一个指令相依于第N个先前向量ALU(VALU)指令。在一些实施方案中,基于软件的指令记分板实施控制字压缩技术以将标识即将到来的指令的两个或更多个相依性的两个或更多个延迟值包括在单个控制字中以便减少指令流开销。例如,单个控制字标识命令流中的下一个指令的父指令,并且还包括将在下一个指令之后发出的指令标识为相依于命令流中的另一指令的“跳过”指示符。该控制字压缩技术可应用于每控制字任何数量的相依性说明符。在一些实施方案中,控制字指示一个指令对在多于一个ALU流水线处执行的两个或更多个父指令的相依性。例如,在一些实施方案中,控制字指示对在标量ALU流水线和在向量ALU流水线两者处执行的指令,或对特殊函数单元(例如,正弦/余弦)ALU流水线和标量ALU流水线和向量ALU流水线中的一者两者的相依性。
[0010]基于软件的指令记分板基于由编译器保持的相依性图来生成控制字。相依性图标识程序内的所有相依性。然而,不是每个相依指令都需要由控制字引起的延迟。取决于ALU流水线的深度和在父指令与相依指令之间发出的独立指令的数量,可不必在父指令与相依指令之间插入额外空闲周期。在一些实施方案中,基于软件的指令记分板仅根据需要基于相依指令之间的独立指令的数量和ALU流水线的级的数量来插入控制字。例如,如果相依指令在该相依指令的父指令之后超过基于ALU流水线的长度的阈值数量的周期发出,则父指令将在相依指令发出之前完成,并且将不需要附加空闲周期来避免相依指令的停止。因此,只有相依指令在该相依指令的父指令之后阈值数量的周期内发出时,基于软件的指令记分板才将控制字插入命令流。在一些实施方案中,周期的阈值数量基于ALU流水线的级的数量。在不同的实施方案中,本文中描述的技术用于多种并行处理器(例如,向量处理器、图形处理单元(GPU)、通用GPU(GPGPU)、非标量处理器、高度并行处理器、人工智能(AI)处理器、推理引擎、机器学习处理器、其他多线程处理单元等)中的任一种处理器。
[0011]图1示出了根据一些实施方案的采用基于软件的指令记分板的处理系统100。处理系统100包括中央处理单元(CPU)102和并行处理器的示例,即加速处理设备(APD)104。在各种实施方案中,CPU 102包括一个或多个单核或多核CPU。在各种实施方案中,APD 104包括硬件和/或软件的任何协作集合,相对于诸如常规CPU、常规图形处理单元(GPU)以及它们的组合等资源,该硬件和/或软件以加速方式执行与加速图形处理任务、数据并行任务、嵌套数据并行任务相关联的功能和计算。在图1的实施方案中,处理系统100形成在组合了CPU 102和APD 104的单个硅裸片或封装上,以提供统一的编程和执行环境。该环境使APD 104能
够与CPU 102一样流畅地用于一些编程任务。在其他实施方案中,CPU 102和APD 104单独地形成并安装在相同或不同的衬底上。应当理解,处理系统100可包括比图1所示更多或更少的部件。例如,处理系统100可另外包括一个或多个输入接口、非易失性存储装置、一个或多个输出接本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种方法,包括:将控制字插入到包括用于在算术逻辑单元(ALU)流水线处执行的第一指令的命令流中,所述控制字指示所述第一指令对用于在所述ALU流水线处执行的第二指令的第一相依性,所述ALU流水线包括多个级。2.根据权利要求1所述的方法,还包括:基于所述控制字来在所述ALU流水线处延迟所述第一指令的执行。3.根据权利要求1或2所述的方法,其中插入所述控制字包括:响应于所述第一指令和所述第二指令在没有任何中间指令的情况下发出,插入所述控制字;或者响应于所述第一指令在发出所述第二指令之后小于阈值指令数量发出,插入所述控制字。4.根据权利要求3所述的方法,其中所述阈值数量基于所述ALU流水线的级数量。5.根据权利要求1至4中任一项所述的方法,其中所述控制字包括:正在其处执行所述第二指令的所述ALU的标识符;以及在发出所述第二指令与发出所述第一指令之间发出的指令数量的指示。6.根据权利要求1至5中任一项所述的方法,还包括:在所述控制字中指示至少一个第三指令对用于在所述ALU流水线处执行的至少一个第四指令的至少一个第二相依性。7.一种方法,包括:基于指示第一指令相依于第二指令的控制字来在包括多个级的算术逻辑单元(ALU)流水线处延迟所述第一指令的执行。8.根据权利要求7所述的方法,还包括:响应于所述第一指令和所述第二指令在没有任何中间指令的情况下发出并且响应于所述第一指令在发出所述第二指令之后小于阈值指令数量发出而在指令流中接收所述控制字。9.根据权利要求8所述的方法,其中所述阈值数量基于所述ALU流水线的所述级数量。10.根据权利要求...

【专利技术属性】
技术研发人员:布莱恩
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

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

1