当前位置: 首页 > 专利查询>ARM有限公司专利>正文

数据处理系统技术方案

技术编号:17573082 阅读:57 留言:0更新日期:2018-03-28 20:37
图形处理器的可编程执行单元(42)包括可操作为执行指令(51)的功能单元(50)。功能单元(50)的输出可以被写到寄存器文件(46)以及借助于反馈电路(52)直接返馈作为对该功能单元的输入这两者。对应地,要由功能单元(50)执行的指令可以选择来自之前指令的执行的所反馈的输出(52)或来自寄存器(46)的输入。一组指令(53)中的各指令之间的寄存器访问描述符(54)指定值将在功能单元将在执行指令时读取的寄存器端口上可用的寄存器、以及指令执行的结果将被写到的寄存器地址。可编程执行单元(42)执行要原子地执行的指令组(53)。

【技术实现步骤摘要】
【国外来华专利技术】数据处理系统这里所描述的技术涉及数据处理器,诸如图形处理器,其包括一个或更多个可编程执行单元。图形处理通常以流水线方式进行,一个或更多个流水线级对数据进行操作以生成最终渲染输出,例如,所显示的帧。许多图形处理流水线现在包括一个或更多个所谓的“着色”级,通常称为“着色器”。例如,图形处理流水线可以包括几何着色器、顶点着色器和片段(像素)着色器中的一种或更多种,并且通常是全部。这些着色器是对输入数据值执行着色器程序以生成期望的输出数据的集合(例如,在片段着色器的情况下,适当着色并渲染的片段数据)以由图形流水线的剩余部分进行处理和/或用于输出的处理级。图形“着色器”由此通过针对要生成的输出中的各工作项,诸如渲染目标,例如帧(关于这一点“工作项”通常是顶点或采样位置(例如,在片段着色器的情况下),但工作项还可以为计算机着色器工作项,其中,使用图形处理流水线来执行计算着色操作(例如,根据OpenCL或DirectCompute))运行小程序来进行图形处理。在图形着色器操作中,各工作项将借助执行线程来处理,执行线程将针对所考虑的工作项执行所考虑的着色器程序。现代图形处理单元(图形处理器)因此通常包括一个或更多个可编程执行单元,其可以执行着色器程序以执行图形处理操作。要由可编程执行单元执行的给定着色器程序将包括指令序列,并且可编程执行单元将针对执行着色器程序所针对的各执行线程(和工作项)适当地执行序列中的指令。申请人相信在数据处理系统的可编程执行单元中(诸如图形处理系统的图形处理单元的可编程执行单元中)还存在针对程序(诸如着色器程序)的执行的改进排布的范围。附图说明现在将仅以示例的方式并参照附图来描述这里所描述技术的若干实施方式,附图中:图1示出了示例性计算机图形处理系统;图2示意性示出了可以以这里所描述的技术的方式操作的图形处理流水线;图3示意性示出了图形处理单元;图4示意性示出了图3的图形处理单元的可编程执行单元的第一实施方式;图5示意性示出了图3的图形处理单元的可编程执行单元的第二实施方式;以及图6示意性示出了用于着色器程序的定时图。类似的附图标记在附图中适当的情况下用于类似的部件。具体实施方式这里所描述技术的第一实施方式包括用于数据处理单元的可编程执行单元,可编程执行单元包括:处理电路,该处理电路可操作为,当可编程执行单元执行包括要由可编程执行单元执行的指令序列的程序时:原子地执行程序的指令序列的一组指令中的指令;和该可编程执行单元还包括:电路,该电路被配置为直接传递通过执行被原子地执行的一组指令中的指令生成的结果,以在执行被原子地执行的一组指令中的另一指令时使用。这里所描述技术的第二实施方式包括一种操作数据处理单元的可编程执行单元的方法,该可编程执行单元执行程序指令,这些程序指令执行数据处理操作,方法包括以下步骤:可编程执行单元当针对执行线程执行程序时候进行以下处理,其中所述程序包括当执行程序时要由可编程执行单元执行的指令序列:原子地执行程序的指令序列的至少一组指令;以及直接传递通过执行被原子地执行的一组指令中的指令而生成的结果,以由被原子地执行的一组指令中的另一指令使用。这里所描述技术涉及在诸如图形处理单元(图形处理器,GPU)的数据处理单元的可编程执行单元中的程序的执行。在这里所描述技术中,可以由可编程执行单元(和由可编程执行单元)原子地执行程序的多组指令(即,使得一组指令的执行一旦开始,则该执行以严格的定时延续到完成,并不且无法在中间中断)。(如果原子地进行操作序列,则该操作序列被进行为使得对每个观察者,看起来似乎该系列或者根本未被执行或者整个被执行,即,该序列被作为一个不可分割单元执行,因此名称是“原子的”。)原子地执行一组指令具有以下效果:在该组指令的执行区间不需要做指令调度决策。这帮助减少可能花费在指令调度上的功率和资源。由此,要执行的程序内的各组指令可以且在实施方式中是被当作用于指令调度目的的一个单元,从而降低指令调度开销。此外,在这里所描述的技术中,可以直接传递通过被原子地执行的一组指令中的一个指令生成的结果,以由被原子地执行的一组指令中的另一指令使用。这是可以的,因为该组指令被原子地执行,因此可以有效地保证使用这样提供的结果的指令将准备执行并在结果被时使用该结果(这样然后不需要能够以结果将在将来的不能确定的时间内和时可用的这种方式存储结果)。这然后避免对例如将这些结果写到数据处理单元的(主)寄存器文件的需要,从而进一步减少在执行程序时资源使用并节省功率。这里所描述的技术可以在具有一个或更多个可编程执行单元的任意合适且期望的数据处理系统中实施。由此,该技术例如可以用于CPU(中央处理单元)的执行单元中(如果期望)。如以上所讨论的,相信这里所描述的技术将在图形处理系统中具有具体应用。由此,实施方式中的数据处理系统包括图形处理系统,并且实施方式中的数据处理单元包括图形处理单元(GPU)。对应地,实施方式中的可编程执行单元作为执行图形着色器程序以执行图形处理操作的可编程图形着色级(着色器)操作。程序应(并且在实施方式中确实)产生一些有用的输出数据,例如,用于(随后)图形处理操作中的图形处理输出数据,诸如顶点数据(的阵列)、片段数据(的阵列)等。由此,在实施方式中,可编程执行单元执行程序,以生成图形处理输出数据(的阵列)。所生成的输出数据例如可以由图形处理流水线进一步处理(在实施方式中为用于显示)和/或提供给显示器以显示。由此,在实施方式中,进一步处理所生成的输出数据,例如以显示。在实施方式中,所生成的输出数据用于提供图像以显示,例如该输出数据被提供给显示器以显示。在数据处理单元中可以存在一个或多个可编程执行单元。在存在多个可编程执行单元的情况下,那么各可编程执行单元在实施方式中可以这里所描述技术的方式来操作,并且被配置为以这里所描述的技术的方式来操作。该(并且各)可编程执行单元可以包括诸如可编程处理电路的任意合适且期望的可编程硬件元件。在存在多个可编程执行单元的情况下,各可编程执行单元可以作为单独的电路元件提供给数据处理单元的其他可编程执行单元,或者可编程执行单元可以共享它们的可编程处理电路中的一些或全部。在实施方式中,可编程执行单元(和各可编程执行单元)包括执行程序指令的一个或更多个功能单元。在一个实施方式中,所述执行单元(且在实施方式中为各执行单元)具有单个功能单元(由此将在任意给定的时钟周期中执行一个指令)。在其他实施方式中,可编程执行单元包括多个功能单元,诸如且在实施方式中包括两个功能单元。在这种情况下,执行单元可以在给定时钟周期中执行多个指令(其中一个指令由执行单元的各功能单元来执行)。执行单元可以执行要由数据处理单元执行的任意期望和合适的程序。由此,在图形处理单元的情况下,执行单元可以执行诸如顶点着色器、片段着色器或计算着色器(例如,根据OpenCL)的任意合适且期望的着色器程序。对应地,可编程执行单元在实施方式中可作为图形处理流水线的任意期望着色器级操作,并且图形处理流水线可以作为诸如顶点着色器、片段着色器或计算着色器(通过将其适当编程为充当期望的可编程执行级)操作。可编程执行单元将接收要执行的执行线程,并且执行针对这些线程的适当程序,以生成期望的输出。这里所描述的本文档来自技高网...
数据处理系统

【技术保护点】
一种用于数据处理单元的可编程执行单元,所述可编程执行单元包括:处理电路,该处理电路能够操作为当所述可编程执行单元执行包括要由所述可编程执行单元执行的指令序列的程序时:原子地执行所述程序的所述指令序列的一组指令中的指令;并且所述可编程执行单元还包括:电路,该电路被配置为直接传递通过执行被原子地执行的一组指令中的指令而生成的结果,以在执行被原子地执行的所述一组指令中的另一指令时使用。

【技术特征摘要】
【国外来华专利技术】2015.07.31 GB 1513609.61.一种用于数据处理单元的可编程执行单元,所述可编程执行单元包括:处理电路,该处理电路能够操作为当所述可编程执行单元执行包括要由所述可编程执行单元执行的指令序列的程序时:原子地执行所述程序的所述指令序列的一组指令中的指令;并且所述可编程执行单元还包括:电路,该电路被配置为直接传递通过执行被原子地执行的一组指令中的指令而生成的结果,以在执行被原子地执行的所述一组指令中的另一指令时使用。2.根据权利要求1所述的可编程执行单元,其中,所述可编程执行单元作为可编程图形着色级操作,该可编程图形着色级执行图形着色器程序以进行图形处理操作。3.根据权利要求1或2所述的可编程执行单元,其中,所述处理电路能够操作为当所述可编程执行单元执行包括要由所述可编程执行单元执行的指令序列的程序时:原子地执行所述程序的所述指令序列的一组指令中的指令,所述可编程执行单元包括:一个或更多个功能单元,各功能单元在执行周期中执行一个指令。4.根据前述权利要求中任一项所述的可编程执行单元,其中,所述电路被配置为直接传递通过执行被原子地执行的一组指令中的指令而生成的结果,以在执行被原子地执行的所述一组指令中的另一指令时使用,该可编程执行单元包括:反馈电路,该反馈电路能够操作为反馈来自一个指令的所述执行的输出,以用作在当另一指令被执行时对所述执行单元的输入。5.根据前述权利要求中任一项所述的可编程执行单元,所述可编程执行单元还包括电路,该电路能够操作为允许指令选择从所述执行单元的输出反馈的之前指令的输出作为执行该指令时的输入。6.根据前述权利要求中任一项所述的可编程执行单元,其中,所述可编程执行单元被配置为使得执行指令的所述结果能够被写到寄存器中以存储。7.根据前述权利要求中任一项所述的可编程执行单元,所述可编程执行单元还包括电路,该电路能够操作为允许指令被执行以选择在所述可编程执行单元的寄存器文件中的寄存器中或所述可编程执行单元能够访问的寄存器文件中的寄存器中存储的数据,作为执行该指令时的输入。8.根据前述权利要求中任一项所述的可编程执行单元,其中:所述可编程执行单元连接到寄存器文件的寄存器端口,以允许所述可编程执行单元接收在寄存器中存储的数据作为输入;并且该可编程执行单元还包括:选择电路,该选择电路能够操作为选择寄存器端口以用作执行指令时的输入源。9.根据前述权利要求中任一项所述的可编程执行单元,其中,要执行的指令使用地址编码来指示这些指令的仅能够对局部地址空间寻址的输入,所述局部地址空间对输入源的有限集合寻址。10.一种数据处理系统,该数据处理系统包括:执行流水线,所述执行流水线包括可编程执行单元,所述可编程执行单元执行程序指令以进行数据处理操作;和处理电路,该处理电路被配置为:向所述执行流水线的所述可编程执行单元发布要由所述可编程执行单元执行的程序,该程序包括当执行所述程序时要由所述可编程执行单元执行的指令序列;并且其中,所述执行流水线包括处理电路,该处理电路被配置为:向所述可编程执行单元发布一个或更多个执行线程以执行,所述程序要针对所述执行线程来执行;并且所述执行流水线的所述可编程执行单元包括:处理电路,该处理电路能够操作为当所述可编程执行单元执行包括要由所述可编程执行单元执行的指令序列的程序时:原子地执行所述程序的所述指令序列的一组指令中的指令;和电路,该电路被配置为直接传递通过执行被原子地执行的一组指令中的指令而生成的结果,以在执行被原子地执...

【专利技术属性】
技术研发人员:J·尼斯塔德
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1