低功率可编程处理器

阅读:1029发布:2020-10-05

专利汇可以提供低功率可编程处理器专利检索,专利查询,专利分析的服务。并且一种图形处理器具有一可编程 算术逻辑单元 (ALU)级,所述可编程算术逻辑单元(ALU)级能够对处理 像素 包进行标量算术操作。可采用改进动态范围的S1.8格式或一不同的数据格式格式化像素包中的操作数。可将所述图形处理器建构为可配置图形管线。在一种建构方案中,分配器耦合一图形管线的元件以允许响应于来自主机的命令而重新配置通过所述管线的像素包的处理流。可配置测试点选择器可用于监视所述图形管线的分接点的一 选定 子集,并对与分接点的所述子集的每一分接点相关联的至少一个状态的统计数字进行计数。可将像素分配为偶数像素或奇数像素,且接着使奇数和偶数像素的像素包交错以考虑ALU等待时间。在一种建构方案中,数据包触发所述图形管线的一元件以发现一识别符。,下面是低功率可编程处理器专利的具体信息内容。

1.一种图形处理器,其包含:
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅级针对将要处理的每 一像素产生复数个像素包,每一像素包包括识别将要处理的至少一个像素属性的有 效负载信息,且具有识别将要对所述像素包执行的至少一个指令的一序列的相关边 频带信息;和
一可编程算术逻辑单元(ALU)级,其用于处理所述像素包,所述ALU级包括 至少一个ALU,每一ALU经编程以具有至少一个对一具有一相应当前指令的引入 像素包执行的可能的标量算术操作的一集合;
其中对所述复数个像素包执行一序列的算术操作以执行一图形处理功能。
2.一种图形处理器,其包含:
至少一个级,其用于变换和设置将被光栅化的图元的顶点
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅级针对将要用一图形 操作进行处理的每一像素产生至少一行像素包,所述图形操作可表示为一序列的标 量算术操作;
监,其包括一用于追踪像素包的所述处理的记分板;
一数据获取级,其用于获取每一行像素包的数据;
一ALU级,其包含复数个用于处理每一所述行像素包的可编程算术逻辑单元 (ALU),每一ALU接收一输入行像素包并输出一输出行像素包,每一ALU从一 接收的行像素包中读取至少一个操作数,使用所述至少一个操作数执行一标量算术 操作,产生一结果,并执行将所述结果写入一临时值和用所述结果更新所述输出行 的一像素属性寄存器这两个操作中的至少一个操作;和
一数据写入级,其用于执行从所述复数个ALU接收的经处理像素包的像素数据 的一存储器写入;
其中对所述复数个像素包执行一序列的算术操作以执行所述图形处理功能。
3.一种图形系统,其包含:
中央处理器,其具有一图形软件
一可编程图形处理器,其从所述图形软件模块接收顶点信息并对指令编程以用于 对所述可编程图形处理器的级进行编程,所述可编程图形处理器包含:
一光栅级,其响应于来自所述图形软件模块的指令而针对将要处理的每一像素 产生复数个像素包,每一像素包包括识别将要处理的至少一个像素属性的有效负 载信息,且具有识别将要对每一所述像素包执行的至少一个指令的相关边频带信 息;和
一可编程算术逻辑单元(ALU)级,其包括复数个经配置以用于处理所述像素 包的ALU,所述图形软件模块分配每一ALU以从所接收的像素包中读取选定的 操作数,响应于一当前指令而执行一标量算术操作以产生一结果,并执行用所述 结果更新一像素属性寄存器和将所述结果存储为一临时值这两个操作中的至少一 个;
其中对所述复数个像素包执行一序列的标量算术操作以对每一所述像素执行 一图形处理功能。
4.一种嵌入式处理器,其包含:
一寄存器接口,其供一主机编程一图形核心的寄存器;
一主机接口,其供一主机与所述图形核心进行通信;
一存储器接口,其供所述图形核心读取和写入数据;
一可编程图形处理器,其安置在所述图形核心中,所述可编程图形处理器包含:
至少一个级,其用于设置和变换将被光栅化的图元的顶点;
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅单元针对将用一图 形操作进行处理的每一像素产生一至少一行像素包,所述图形操作可表示为一序 列的标量算术操作,每一像素包包括识别将要处理的至少一个像素属性的有效负 载信息,且每一行具有识别将要对所述行的每一所述像素包执行的至少一个指令 的相关信息;
一门监,其包括一用于追踪像素包的所述处理的记分板;
一数据获取级,其用于获取每一行像素包的数据;
一ALU级,其包含复数个用于处理每一所述行像素包的可编程算术逻辑单元 (ALU),每一ALU接收一输入行像素包并输出一输出行像素包,每一ALU从 一接收的行像素包中读取至少一个操作数,使用所述至少一个操作数执行一标量 算术操作,产生一结果,并执行将所述结果写入一临时值和用所述结果更新所述 输出行的一属性寄存器这两个操作中的至少一个操作;和
一数据写入级,其用于执行从所述复数个ALU接收的经处理像素包的像素数 据的一存储器写入;
其中对所述复数个像素包执行一序列的算术操作以执行所述图形处理功能。
5.一种对一像素执行一图形处理操作的方法,其包含:
对于将要对一像素执行的至少一个图形功能,识别可对像素包执行以建构所述至 少一个图形功能的一序列的标量算术操作;
针对所述像素产生复数个像素包,每一像素包包括将被作为所述序列的标量算术 操作中的操作数来处理的像素属性的一子集,所述复数个像素包具有一相关指令序 列;
在至少一个算术逻辑单元(ALU)中,从所述像素包中读取操作数;
在所述至少一个ALU中,根据执行所述序列的标量算术操作的所述指令序列执 行标量算术操作以用于建构所述至少一个图形功能。
6.一种对一像素执行一图形处理操作的方法,其包含:
对于将要对一像素执行的一图形功能,识别可对像素包执行以建构所述图形功能 的一序列的标量算术操作;
针对将要在连续时钟周期中处理的所述像素产生至少一行像素包,每一像素包包 括至少一个用于将被作为所述序列的标量算术操作中的操作数来处理的像素属性 的一子集的字段,所述至少一行具有一相关指令序列;
在复数个算术逻辑单元(ALU)的每一者中,读取分配的操作数,所述操作数中 的至少一者对应于从一行像素包中的一像素包读取的一操作数;
在每一所述ALU中,根据执行所述序列的标量算术操作的所述指令序列来对所 述分配的操作数执行一标量算术计算以用于建构所述图形功能。
7.一种执行一图形处理操作的方法,其包含:
对复数个算术逻辑单元(ALU)进行编程,以从一行像素包中读取选定的操作数, 和响应于与所述行像素包相关联的一选定的当前指令来执行一选定的标量算术操 作;
对于将要对一像素执行的至少一个图形操作,识别将要对所述像素的属性的一子 集执行的至少一个对应的标量算术操作;
针对所述像素产生一行像素包,每一像素包包括多个用于与将被作为至少一个操 作数来处理的所述像素相关联的至少一个属性的字段,所述像素包具有一指示将要 执行的一序列的标量算术操作的相关当前指令;
在所述ALU中,读取所述行像素包中的所述选定的操作数,并执行对应于所述 相关当前指令的所述选定的标量算术操作。
8.一种对一像素执行图形处理操作的方法,其包含:
对于将要对一像素执行的至少一个图形功能,识别可对像素包执行以建构所述至 少一个图形功能的标量算术操作;
针对将要处理的所述像素产生至少一行像素包,每一像素包包括至少一个用于将 被作为操作数来处理的像素属性的一子集的字段,所述至少一行具有一相关指令序 列;
在复数个算术逻辑单元(ALU)的每一者中,读取分配的操作数,所述操作数的 至少一者对应于从一行像素包中的一像素包读取的一操作数;
在每一所述ALU中,根据所述指令序列来对所述分配的操作数执行一标量算术 计算;
其中对于需要范围[0,1]中一结果的一选定的标量算术操作,以对应于具有一8位 分数成分的范围[-2,+2)中的操作数的一基于二的表示法的一S1.8格式来格式化像素 包的对应操作数,并将所述选定的标量算术操作的一结果箝位在所述范围[0,1]中; 和
对于至少一个其他标量算术操作,以一不同的数据格式格式化对应的像素包。
9.一种对一像素执行一图形处理操作的方法,其包含:
对于将要对一像素的色彩成分执行的一第一图形功能,识别一用于建构所述第一 图形功能的第一序列的标量算术操作,所述第一图形功能要求一标量算术操作具有 一被箝位在所述范围[0,1]中的结果;
对于将要对与一像素相关联的纹理执行的一第二图形功能,识别一用于建构所述 第二图形功能的第二序列的标量算术操作;
针对所述像素产生至少一行像素包,每一像素包具有长度为至少16位的一固定 位尺寸,且包括至少一个用于将被作为操作数来处理的像素属性的一子集的字段, 所述至少一行具有一相关指令序列;
对于与所述第一图形功能相关联的每一像素包,以一S1.8格式封装至少两个色彩 成分,所述S1.8格式对应于具有一8位分数成分的范围[-2,+2)中的操作数的一基于 二的表示法;
对于与所述第二图形功能相关联的每一像素包,封装一需要多于8位的单个高精 度纹理;
在复数个算术逻辑单元(ALU)的每一者中,读取分配的操作数并根据所述指令 序列对所述分配的操作数执行一标量算术计算;
其中对于所述第一图形功能,以所述S1.8格式选择色彩成分作为操作数并将一结 果箝位在所述范围[0,1]中,而对于所述第二图形功能,以一精度高于8位的格式选 择所述纹理作为一操作数。
10.一种图形处理器,其包含:
至少一个级,其用于设置和变换将被光栅化的图元的顶点;
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅单元对于将要针对每 一图形操作进行处理的每一像素产生至少一行像素包,所述图形操作可表示为一序 列的标量算术操作;
一门监,其包括一用于追踪像素包的所述处理的记分板;
一数据获取级,其用于获取每一行像素包的数据;
一ALU级,其包含复数个用于处理每一所述行像素包的可编程算术逻辑单元 (ALU),每一ALU接收一输入行像素包并输出一输出行像素包,每一ALU从一 接收行像素包中读取至少一个操作数,使用所述至少一个操作数执行一标量算术操 作,产生一结果,并执行将所述结果写入一临时值或用所述结果更新所述输出行的 一像素包这两个操作中的至少一个操作;和
一数据写入级,其用于执行从所述复数个ALU接收的经处理像素包的像素数据 的一存储器写入;
其中对所述复数个像素包执行一序列的算术操作以执行所述图形处理功能;
所述光栅级以一对应于具有一8位分数成分的一范围[-2,+2)中的操作数的一 基于二的表示法的S1.8格式来格式化用于一第一类型的标量算术操作的像素包, 且每一ALU通过将一结果箝位在所述范围[0,1]中来处理所述第一类型的标量操 作;
所述光栅级以一精度需要高于8位的格式来格式化用于一第二类型的标量算 术操作的像素包。
11.一种图形处理器,其包含:
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅级针对将要处理的每 一像素产生复数个像素包,每一像素包包括识别将要处理的至少一个像素属性的有 效负载信息,且具有识别将要对每一所述像素包执行的至少一个指令的相关边频带 信息;
一可编程算术逻辑单元(ALU)级,其用于处理所述像素包,所述ALU级包括 复数个ALU,每一ALU具有至少一个对一具有一相应当前指令命令的引入像素包 执行的可能的算术操作的一集合;
一数据获取级,其用于获取所述像素包的数据;
一数据写入级,其用于执行从所述ALU级接收的经处理像素包的像素数据的一 存储器写入;
一第一分配器,其耦合到所述ALU级、所述数据获取级和所述数据写入级的各 自输入;和
一第二分配器,其耦合到所述ALU级、所述数据获取级和所述数据写入级的各 自输出;
所述第一分配器和所述第二分配器适于响应于来自一主机的一命令而重新配置 通过所述数据获取级、所述ALU级和所述ALU写入级的像素包的一处理流。
12.一种操作一图形管线的方法,所述图形管线具有一用于产生像素包的光栅处理器、 一用于获取像素包的数据的数据获取级、一具有至少一个用于对像素包执行标量算 术操作的ALU的ALU级、一用于写入像素数据的数据写入级和耦合所述数据获取 级、所述数据写入级和所述ALU级的分配器,所述方法包含:
响应于第一命令,编程所述分配器以界定通过所述数据获取级、所述ALU级和 所述数据写入级的像素包的一第一处理流;和
响应于一第二命令,编程所述分配器以界定通过所述数据获取级、所述ALU级 和所述数据写入级的像素包的一第二流;
其中一软件主机可在复数个处理流的任一者中配置所述管线。
13.一种操作一图形管线的方法,所述图形管线具有一用于产生像素包的光栅处理器、 一用于获取像素包的数据的数据获取级、一具有至少一个用于对像素包执行标量算 术操作的ALU的ALU级、一用于写入像素数据的数据写入级和耦合所述数据获取 级、所述数据写入级和所述ALU级的分配器,所述方法包含:
从一软件主机接收一命令以重新配置从通过所述数据获取级、所述ALU级和所 述数据写入级的像素包的一第一处理流到通过所述数据获取级、所述ALU级和所 述数据写入级的像素包的一第二流的所述管线;和
调整所述分配器以重新配置从所述第一处理流到所述第二处理流的所述管线。
14.一种图形处理器,其包含:
复数个级,其用于处理像素包;
一第一分配器,其耦合到所述复数个元件的各自输入;和
一第二分配器,其耦合到所述复数个元件的各自输出;
所述第一分配器和所述第二分配器适于响应于来自一主机的一命令而重新配置 通过所述复数个元件的像素包的一处理流。
15.一种操作一图形管线的方法,所述图形管线具有一具有复数个用于处理像素包的元 件的图形管线,所述方法包含:
响应于第一命令,编程分配器以界定通过所述复数个元件的像素包的一第一处理 流;和
响应于一第二命令,编程所述分配器以界定通过所述复数个元件的像素包的一第 二流;
其中一软件主机可在复数个处理流的任一者中配置所述管线。
16.一种对一像素执行一图形处理操作的方法,其包含:
对于将要对复数个像素执行的图形功能,识别可对像素包执行以建构所述图形功 能的一序列标量算术操作;
将像素分配为偶数像素或奇数像素;
针对每一所述像素产生至少两行像素包,每一像素包包括至少一个用于将被作为 所述序列的标量算术操作中的操作数来处理的像素属性的一子集的字段,所述至少 两行具有一相关指令序列和一用于指示所述像素包是用于一奇数像素还是一偶数 像素的识别符;
使像素包行的一群组中的一偶数像素和一奇数像素的像素包的行交错,其中所述 群组中的每一行经分配以用于在连续时钟周期中进行处理;
在一ALU级中的复数个算术逻辑单元(ALU)的每一者中,接收一当前时钟周 期的一行像素包,并根据所述指令序列执行对从所述行像素包中读取的至少一个操 作数的一标量算术计算;
其中在所述ALU中交错像素包的处理。
17.一种对一可配置图形管线的元件中的一识别符执行一寄存器写入的方法,所述图形 管线具有一个以上通过所述图形管线的元件的像素包的可能的处理流,所述方法包 含:
接收一数据包,所述数据包触发所述图形管线的所述元件以发现一用于每一元件 的指示所述元件在所述处理流中的位置的识别符;和
每一元件在一配置寄存器中写入一指示在所述处理流中的一相对位置的识别符。
18.一种图形处理器,其包含:
一光栅级,其接收关于将被光栅化的图元的数据,所述光栅级针对将要处理的每 一像素产生复数个像素包,每一像素包包括识别将要处理的至少一个像素属性的有 效负载信息,且具有识别将要对每一所述像素包执行的至少一个指令的相关边频带 信息;
一可编程算术逻辑单元(ALU)级,其用于处理所述像素包,所述ALU级包括 复数个ALU,每一ALU具有至少一个对一具有一相应当前指令命令的引入像素包 执行的可能的算术操作的一集合;
一数据获取级,其用于获取所述像素包的数据;
一数据写入级,其用于执行从所述ALU级接收的经处理像素包的像素数据的一 存储器写入;
一第一分配器,其耦合到所述ALU级、所述数据获取级和所述数据写入级的各 自输入;和
一第二分配器,其耦合到所述ALU级、所述数据获取级和所述数据写入级的各 自输出;
所述第一分配器和所述第二分配器适于响应于来自一主机的一命令而重新配置 通过所述数据获取级、所述ALU级和所述ALU写入级的像素包的一处理流;
其中所述ALU级的每一ALU适于接收由一软件识别起始的一识别包,每一ALU 将所述识别包的一识别符的一当前值写入一配置寄存器,使所述识别符递增,并将 所述识别包转送到下一ALU。
19.一种图形处理器,其包含:
一图形管线,其具有与所述图形管线的元件相关联的分接点的一集合;
一可配置测试点选择器,其从一软件主机接收命令,所述可配置测试点选择器适 于监视由一软件命令选择的分接点的一子集,并对与分接点的所述子集的每一所述 分接点相关联的至少一个状态的统计数字进行计数;
其中分接点的一子集的统计数字被收集用于所述软件主机。
20.一种监视一图形处理器的方法,其包含:
接收一选择与一能够将一有效负载发送到一第二元件的第一元件相关联的两个 测试点的命令;
监视所述两个测试点;和
收集与所述第一元件和所述第二元件相关联的至少两个状态的统计数字。

说明书全文

技术领域

发明一般来说涉及可编程处理器。更特定来说,本发明是针对用于图形应用的低 功率可编程处理器。

背景技术

在多种电子游戏和其他应用中所关注的是三维图形图像的生成。常规上,用于产生 场景的三维图象的步骤中的某些步骤包括产生将要显示的物体的三维模型。形成几何图 元(例如三形),所述几何图元和深度信息一起被映射到二维投影。呈现(绘图)图元 包括对一图元的每个二维投影的插值参数,例如深度和色彩。
图形处理单元(GPU)在图形系统中常用于响应来自中央处理器的指令而产生三维 图形。现代GPU通常利用图形管线来处理数据。图1是传统管线结构的现有技术图,所 述管线结构是具有专用于执行特定功能的级的“深”管线。变换级105执行图元的几何 计算,且还可执行剪辑操作。设置/光栅级110对图元光栅化。纹理寻址级115和纹理获 取120级用于纹理映射。雾化级130建构一雾化算法(fog algorithm)。α测试级135执 行α测试。深度测试级140执行深度测试以挑选遮挡像素。α混合级145执行α混色组 合算法。存储器写入级150写入管线的输出。
图1所示的传统GPU管线结构通常经最优化以用于使用OpenGL图形语言进行快 速纹理化。深管线结构的好处在于其允许非常复杂的场景的快速高质量呈现。
人们越来越有兴趣在无线电话、个人数字助理(PDA)和其他设备中利用三维图形, 这些设备中成本和功耗是重要的设计要求。然而,传统的深管线结构要求很大的芯片面 积,从而导致超过预期的较多成本。另外,即使各个级执行相对很少的处理,深管线仍 消耗很多功率。这是因为各级中的许多级无论其是否处理像素,都会消耗大约相同量的 功率。
出于成本和功率考虑,图1所示的常规深管线结构不适合许多图形应用,例如在无 线电话和PDA上建构三维游戏。
因此,需要的是一种适于图形处理应用而且具有降低的功率和尺寸要求的处理器结 构。

发明内容

一种图形处理器包括一用于处理像素包的可编程算术逻辑单元(ALU)级。在ALU 级中对像素包执行标量算术操作以建构图形功能。
一种对一像素执行一图形处理操作的方法的一个实施例包括:识别将要对像素包执 行以建构图形功能的标量算术操作的一序列;针对所述像素产生复数个像素包,每一像 素包包括将要作为标量算术操作序列中的操作数进行处理的像素属性的一子集;在至少 一个ALU中,从所述像素包读取操作数;和根据用于执行标量算术操作序列的指令序列 来执行标量算术操作。
一种图形处理器的一个实施例包括:一可编程ALU级,其具有用于处理像素包的至 少一个ALU,每一ALU经编程以具有至少一个可能的标量算术操作的一集合,对一具 有一相应当前指令的引入像素包执行所述标量算术操作的集合,其中对像素包执行一序 列的算术操作以执行一图形处理功能。
附图说明
联系下文结合附图进行的详细描述可更完全地了解本发明,其中:
图1是三维图形的现有技术管线的图;
图2是根据本发明一个实施例的包括可编程图形处理器的集成电路的方框图
图3是根据本发明一个实施例的可编程图形处理器的方框图;
图4说明根据本发明一个实施例的示范性像素包;
图5说明根据本发明一个实施例的像素包群组的成行像素包的示范性排列;
图6是根据本发明一个实施例的单个算术逻辑单元的方框图;
图7是根据本发明一个实施例的两个算术逻辑单元的序列的方框图;
图8是根据本发明一个实施例的可配置可编程图形处理器的方框图;
图9说明根据本发明一个实施例的像素包的行的交错;
图10是说明根据本发明一个实施例的具有配置寄存器的算术逻辑单元的方框图;和
图11是说明根据本发明一个实施例的可配置测试点选择器的方框图。
在附图的所有几张图中,类似参考数字表示对应的部件。

具体实施方式

图2是本发明一个实施例的方框图。可编程图形处理器205耦合到寄存器接口210、 主机接口220和存储器接口,例如具有一图形存储器(未图示)(例如缓冲器)的用于 存储器读/写操作的直接存储器存取(DMA)引擎230。主机接口220允许可编程图形处 理器205从一主机接收用于产生图形图像的命令。举例来说,主机可将顶点数据、命令 和程序指令发送到可编程图形处理器205。存储器接口(例如DMA引擎230)允许用图 形存储器(未图示)执行读/写操作。寄存器接口210提供一接口用来与可编程图形处理 器205的寄存器建立连接。
可编程图形处理器205可建构为系统290的一部分,系统290包括执行软件应用程 序270的至少一个其他的中央处理单元260,其用作可编程图形处理器205的主机。示 范性系统290(例如)可包含一手持单元,例如手机或个人数字助理(PDA)。举例来说, 软件应用程序270可包括一用于在显示器295上产生图形图像的图形应用程序275。另 外,如下文更详细描述,在某些实施例中软件应用程序270可包括图形处理器管理软件 应用程序280,其用于执行与可编程图形处理器205相关联的管理功能,例如管线重新 配置、寄存器配置以及测试。
在一个实施例中,可编程图形处理器205、寄存器接口210、主机接口220和DMA 引擎230是形成于包括一主机的单个集成电路200上的嵌入式图形处理核心250的部分, 所述单个集成电路200例如为形成于一包括使软件270驻存在存储器中的中央处理单元 260的芯片上的集成电路200。或者,图形处理核心250可安置在第一集成电路上且CPU 260安置在第二集成电路上。
图3是更详细说明根据本发明一个实施例的可编程图形处理器205的方框图。其包 括设置级305、光栅级310、监320、数据获取级330、算术逻辑单元(ALU)级340、 数据写入级355和再循环路径360。在一个实施例中,可编程图形处理器205包括ALU 350,ALU 350经配置以执行着色器程序来建构三维图形操作,例如纹理组合、雾化、α 混合(例如色彩混合)、α测试(例如色彩测试)、Z深度测试,或其他着色算法。然而, 在以下整个讨论中将了解,可编程图形处理器205也可经配置以执行其他类型的处理操 作。
设置级305从一主机接收指令,例如运行于集成电路200上的软件应用程序。在一 个实施例中,设置级305执行坐标(X形式)几何变换、剪辑和设置的功能。设置单元 获取顶点信息(例如x、y、z、色彩和/或纹理属性)并应用用户定义的视图变换来计算 每一几何图元(下文中描述为三角形,因为图元通常建构为三角形)的屏幕空间坐标, 接着将所述坐标发送到光栅级310以描绘给定三角形。可包括顶点缓冲器308以提供由 设置级305使用的顶点数据的缓冲。在一个实施例中,设置级305设置重心系数。在一 个建构方案中,设置级305是支持32位IEEE浮点、S15.16定点和封装的.8格式的浮点 超大指令字(VLIW)机。
光栅级310从设置级205接收关于将要呈现(例如转换为像素)的三角形。在某些 实施例中,指令RAM(未图示)可(例如)包括在光栅级310中以用于编程用于光栅级 310的指令。光栅级310处理给定三角形的每一像素并确定作为呈现的部分的需要为像 素计算的参数,例如计算色彩、纹理、α测试、α混合、z深度测试和雾化参数。在一个 实施例中,光栅级310计算像素包的重心系数。在重心坐标系中,三角形中的距离是相 对于其顶点来测量的。重心系数的使用减小了所需的动态范围,其允许使用比浮点计算 需要更少功率的定点计算。
光栅级310针对将要处理的三角形的每一像素产生至少一个像素包。每一像素包包 括处理所需的像素属性(例如色彩、纹理、深度、雾化、(x,y)位置)的有效负载的字段。 另外,每一像素包具有相关的包括将对像素包执行的操作的指令序列的边频带信息。光 栅级210中的指令区域(未图示)将指令分配到像素包。
图4说明一个像素的示范性像素包430和460。在一个实施例中,光栅级210将像 素属性分割为两个或两个以上不同类型的像素包430和460,其中每一类型的像素包需 要仅一特定类型指令起作用的像素属性数据的字段。如果(例如)对于特定处理操作仅 需要对一像素的属性的子集进行操作,那么将像素数据分割为较小的工作单元减少了带 宽要求,且还减少了处理要求。
每一像素包具有相关的边频带信息410和有效负载信息420。示范性边频带信息包 括有效字段412、取消字段414、标记字段,和包括当前指令的指令字段416。示范性像 素包430包括第一组(s,t)纹理坐标422和424字段以及雾化字段426。示范性像素包460 包括色彩字段462,和第二组纹理坐标(s,t)464和466。在一个实施例中,每一像素包以 定点表示法表示有效负载信息420。一具有用于像素属性的20位像素包尺寸的像素包中 可包括的像素属性的实例包括:一个Z.16十六位Z深度值;一个16位S/T纹理坐标和4 位细节等级;一对色彩值,每一个色彩值具有8位精度;或具有五位的封装的5555 ARGB 色彩,其中每一ARGB变量中各有一位。
像素包的边频带信息可包括像素的(x,y)位置。然而,在一个实施例中,光栅级310 在其开始沿着扫描线走过一三角形的(x,y)原点产生一起始取值范围命令。起始取值范围 命令的使用允许从像素包中省略(x,y)位置。起始取值范围命令将扫描线开始处的初始(x,y) 位置通知其他实体(例如数据写入级355和数据获取级330)。可通过给定像素远离原点 的像素数目来推断沿着扫描线的其他像素的(x,y)位置。在一个实施例中,数据写入级355 和数据获取级330包括适于增加局部计数器的局部高速缓冲存储器,并基于其在取值范 围起始命令之后对遇到的像素数目的计算来更新(x,y)位置。
参看图5,在一个实施例中,对于将要处理的每一像素,光栅级310产生像素包的 至少一行510。在某些实施例中,每一行510具有界定所述行510的指令序列的共同边 频带信息410。如果像素需要多于一行510,就将若干行510组织成随每一新的时钟周期 连续处理的行的群组520。在一个实施例中,将80位像素数据分割为四个20位像素属 性寄存器值,其中所述四个像素寄存器值针对像素界定像素包的一“行”510(R0、R1、 R2和R3)。
光栅级310的迭代程序寄存器集区(未图示)具有对应的寄存器以支持像素包的行 510。在一种建构方案中,光栅级310包括一支持多达4行像素包的寄存器集区。某些类 型的像素包属性(例如纹理)可能需要高精度。相反,某些类型的像素包属性可能需要 较低精度,例如色彩。寄存器集区可经配置以支持行510中每一像素包的高精度和低精 度值。在一个实施例中,寄存器集区包括每行4个高精度和4个低精度透视校正迭代值, 加上Z深度值。这允许(例如)软件指定迭代程序的精度以用于处理特定像素包属性。 在一个实施例中,光栅级310包括一适于追踪纹理的整数部分的寄存器集区,从而作为 数据包发送允许纹理的分数位。
光栅级310可(例如)从主机接收需要将对像素执行的操作的指令。作为响应,光 栅级310产生具有相关指令序列的像素包的一个或一个以上行510,其中所述像素包行 和指令经配置以执行所需的处理操作。如下文更详细地描述,在一个实施例中,ALU级 340允许执行标量算术操作,其中操作数包括:像素包的行510中像素属性的预先选择 的子集、常数值,和对像素包的先前计算临时存储的结果。
可将多种图形操作公式化为一个或一个以上标量算术操作。另外,可将多种向量图 形操作公式化为复数个标量算术操作。因此将了解,本发明的可编程图形处理器205可 经编程以对像素执行可表示为标量算术操作的序列的任何图形操作,例如雾化操作、色 彩(α)混合、纹理组合、α测试或深度测试,例如 Open GLGraphics System:A Specification (Version 1.2)中描述的操作,其内容以引用的方式并入本文。举例来说,响应于光栅级 310检测将对像素执行的所需的图形处理功能(例如雾化操作),光栅级310可使用可编 程映射表或映射算法来确定像素包和相关指令的分配以用于执行对像素建构图形功能所 需的标量算术操作。例如可由图形处理器管理应用程序280编程所述映射。
再次返回到图3,在光栅级310穿过三角形的每一像素时,光栅级310产生用于进 一步处理的像素包,所述像素包由门监320接收。门监320执行数据流控制功能。在一 个实施例中,门监320具有相关的记分板325,其用于像素包的调度、负载平衡、资源 分配和危险避免。记分板325追踪像素的进入和退出。进入门监320的像素包设置记分 板,且在处理完成之后,在像素包排出可编程处理器205时记分板复位。作为说明性实 例,如果紧凑显示器295具有128乘32像素的区域,那么记分板325可维持针对显示器 的每一像素的表,以监视像素。
记分板325提供若干好处。举例来说,记分板325防止了三角形中的一个像素位于 正在处理且在行进路线中的另一像素上方的危险。在一个实施例中,记分板325监视空 闲状态并使用记分板信息来时钟关闭空闲单元。举例来说,如果没有有效像素,记分板 325可关闭ALU以节省功率。如下文更详细描述,记分板325追踪能够由ALU 350处理 的像素包以及具有取消位设置的像素包,使得像素包在没有有效处理的情况下流过ALU 350。在一个实施例中,如果像素包再循环,那么记分板325就在到达用于所述像素包的 下一指令的随后一轮中增加像素包的指令序列,例如,如果指令是用于第1轮上的雾化 操作,就将指令迭代到第2轮上的α混合操作。
数据获取级330获取由门监320传递的像素包的数据。这可包括(例如)通过对像 素包的每一行执行适当的色彩、深度或纹理数据读取来获取色彩、深度和纹理数据。数 据获取级330可(例如)通过请求从存储器接口的读取(例如使用DMA引擎230读取 帧缓冲器(未图示))来获取像素或纹元(texel)数据。在一个实施例中,数据获取级330 还可管理一局部高速缓冲存储器,例如纹理/雾化高速缓冲存储器332、色彩/深度高速缓 冲存储器334,和用于深度数据的Z高速缓冲存储器(未图示)。在将像素包发送到下一 级之前,将获取的数据置于对应的像素包字段上。在一个实施例中,数据获取级330包 括指令随机存取存储器(RAM),其具有用于存取像素包属性字段所需数据的指令。在某 些实施例中,数据获取级330还执行Z深度测试。在此实施例中,数据获取级330使用 一个或一个以上深度比较测试来比较像素包的Z深度值与存储的Z值。如果像素的Z深 度值指示所述像素为遮挡的,就设置取消位。
像素包的行进入算术逻辑单元(ALU)级340用于处理。ALU级340具有包括至少 一个ALU 350的一组ALU 350,例如ALU 350-0、350-1、350-2和350-3。虽然说明四个 ALU 350,但视应用在ALU级340中可使用更多或更少的ALU 350。个别ALU 350读取 用于像素包的至少一行510的当前指令,并建构任一指令来执行经编程以进行支持的标 量算术操作。指令包括在每一ALU 350中,且可(例如)存储在局部指令RAM(图3 中未图示)上。
每一ALU 350包括用于对第一操作数乘积(a*b)和第二操作数乘积(b*c)执行至 少一个算术操作的指令,其中a、b、c和d为操作数且*为乘法运算。所述操作数中的某 些或全部可对应于(例如)像素包的行510中的寄存器值属性。ALU 350还可具有作为 常数或可软件载入的一个或一个以上操作数值。在某些实施例中,ALU可支持使用由对 像素包的先前操作临时存储的结果。
在一个实施例中,每一ALU 350是可编程的。交叉开关(crossbar)(未图示)或其 他可编程选择器可包括在ALU 350中以允许响应于来自软件(例如软件应用程序270) 的指令来选择操作数和结果的目的地。举例来说,在一个实施例中,操作命令码可用于 从像素包的行510中的任一寄存器值、临时值和常数值的属性中选择每一操作数(a、b、 c、d)的来源。在此实施例中,操作命令还指示ALU 350将算术操作的结果发送到何处, 例如用结果更新像素包,将结果保存为临时值,或用结果更新像素包并将结果保存为临 时值。因此,举例来说,ALU可经编程以读取像素包中的特定属性作为操作数,并应用 当前指令所指示的标量算术操作。操作命令码还可包括对操作数求补(例如计算1-x,其 中x为读取值)、对操作数求反(例如计算-x,其中x为读取值)或对操作数或结果进行 箝位的命令。操作命令码的其他实例可包括(例如)用于选择数据格式的命令。
由ALU 350执行的算术操作的实例是对像素包中的至少一个变量的(a*b)+(c*d)形式 的标量算术操作,其中a、b、c和d是操作数且*操作为乘法运算。每一ALU 350优选还 可经编程以执行其他数学操作,例如对操作数求补和对操作数求反。另外,在某些实施 例中,每一ALU 350可计算(a*b,c*d)的最小和最大值,并执行逻辑比较(例如a*b等于、 不等于、小于、或小于等于c*d时的逻辑结果)。
在某些实施例中,每一ALU 350还可包括基于测试(例如a*b与c*d的比较)来确 定是否在取消字段414中产生一取消位的指令(例如,在a*b不等于c*d时取消,在a*b 等于c*d时取消,在a*b小于c*d时取消,或在a*b大于等于c*d时取消)。可产生取消 位的ALU操作的实例包括α测试,其中将一色彩值与一测试色彩值进行比较,例如表示 式IF(alpha>alpha reference),then kill the pixel,其中alpha为色彩值,且alpha reference 为参考色彩值。可产生取消位的ALU操作的另一实例为Z深度测试,其中将像素的Z 值与具有同一位置的先前像素的至少一个Z值进行比较,如果深度测试指示所述像素是 遮挡的,就取消所述像素。
在一个实施例中,如果像素包中设置了取消位,那么关于处理所述像素包,个别ALU 350是被停用的。在一个实施例中,时钟选通机制用于在边频带信息中检测到取消位时 停用ALU 350。因此,当针对像素包产生取消位时,在像素包传播通过ALU级340时, ALU 350不会在所述像素包上浪费功率。然而请注意,具有取消位设置的像素包仍向前 传播,从而允许其被数据写入级355和记分板325考虑。这允许所有的像素包被记分板 325考虑,即使是由取消位标记为不需要进一步ALU处理的那些像素包。在一个实施例 中,如果像素的任一行510由取消位标记,同一像素的其他行510也被取消。这可(例 如)通过在各级之间转发取消信息或通过一个或一个以上级追踪其中行510由取消位标 记的像素来完成。在某些实施例中,一旦设置了取消位,那么仅像素包的行510的边频 带信息410(包括所述取消位)传播到下一级。
ALU级340的输出到达数据写入级355。数据写入级355将经处理的像素包转换为 像素数据,并将结果写到存储器接口(例如,经由DMA引擎230)。在一个实施例中, 像素的写入值积累在写入缓冲器352中,且像素的积累的写入是成批写到存储器的。数 据写入级355可执行的功能的实例包括色彩和深度回写(writeback)和格式转换。在某 些实施例中,数据写入级355还可识别将取消的像素并设置取消位。
包括再循环路径360以将像素包再循环回到门监320。再循环路径360允许(例如) 需要使用通过ALU级340一遍或一遍以上来执行的算术操作的序列的处理。数据写入级 355指示对门监320退出的写入以用于记分板记分。
图6是示范性个别ALU 350的方框图。ALU 350具有输入总线605,其具有用于将 像素包的行510接收到对应寄存器R0、R1、R2和R3中的数据总线。在方框620中说明 一组示范性指令。在一个实施例中,ALU 350可经编程以从行510中读取四个20位寄存 器值中的任一个,并从行510中选择一组操作数。另外,ALU 350可经编程以从寄存器 (T)630中选择临时值作为操作数,例如每个ALU 350两个20位临时值,所述临时值 是由先前结果保存的,如路径640所指示。ALU 350还可选择常数值(未图示)作为操 作数,其也可由软件编程。在一个实施例中,多工器(MUX)645的第一级从像素包的 行、任何临时值630和任何常数值(未图示)中选择操作数。可包括格式转换模650 以将操作数转换为适于算术计算单元670中ALU 350计算精度的所需数据格式。ALU 350 包括用于允许在MUX 660的第二级中选择每一操作数或其补数的元件。将所得的四个操 作数输入到标量算术计算单元670,其可执行两个乘法运算和一个加法运算。可使用箝 位器680视需要将所得值箝位在所需范围(例如0到1.0)。像素包的行510通过总线690 退出。
在一个实施例中,选定的像素包属性可为一个记号1.8(S1.8)格式。S1.8格式是具 有8位分数的以2为基的数,其处于[-2到+2)的范围中。S1.8格式允许计算的较高的动 态范围。举例来说,在处理照明的计算中,S1.8格式允许增加的动态范围,从而导致改 进的实现。如果S1.8中执行的标量算术操作的结果必须在[0,1]的范围中,那么可对所述 结果进行箝位以迫使所述结果处于范围[0,1]中。作为说明性实例,可以S1.8格式执行色 彩数据的着色计算,并接着对结果进行箝位。请注意,在本发明的实施例中,不同类型 的像素包可具有以不同格式表示的数据属性。举例来说,色彩数据可在第一类型的像素 包中以S1.8格式表示,而(s,t)纹理数据可在第二类型的像素包中以高精度16位格式表示。 在某些实施例中,由最高精度像素属性的位尺寸要求来设置像素包位尺寸。举例来说, 因为纹理属性通常比色彩需要更高的精度,所以可设置像素包尺寸以表示具有高等级精 度的纹理数据,例如16位纹理数据。S1.8格式的改进动态范围允许(例如)将一个以上 色彩成分的数据有效封装为经选择以用于较高精度数据纹理数据的20位像素包尺寸,其 需要(例如)16位用于纹理数据和4位细节等级(LOD)。举例来说,因为每一S1.8色 彩成分需要10位,所以可将两个色彩成分封装为20位像素包。
图7说明示范性ALU级340,其包括配置为管线的一个以上ALU 350,其中两个或 两个以上ALU 350链接在一起。如先前描述,个别ALU 350可经编程以从像素包中读取 一个或一个以上操作数,从而产生算术操作的结果,并用所述结果更新像素包或临时寄 存器。每一ALU可经分配以在将像素包的一行传递到下一ALU之前读取操作数,产生 算术结果,并更新一个或一个以上像素包或临时值。
依照执行的处理操作、ALU等待时间和效率考虑,可以多种方式配置ALU级340 中ALU 350之间的数据流。如先前描述,本发明允许每一ALU经编程以读取像素包的 行中的选定操作数,并用结果更新选定的像素包寄存器。在一个实施例中,对于每一色 彩通道(例如红、绿、蓝和α),ALU级340包括至少一个ALU 350。这允许(例如)负 载平衡,其中ALU经配置以对像素包的行510并行操作(尽管由于管线操作而在不同的 时间点操作)以执行类似或不同的处理任务。作为可如何编程ALU 350的一个实例,第 一ALU 350-0可经编程以执行针对第一色彩成分的计算,第二ALU 350-1可经编程以执 行针对第二色彩成分的操作,第三ALU 350-2可经编程以执行针对第三色彩成分的操作, 且第四ALU 350-3可经编程以执行雾化操作。因此,在某些实施例中,对于像素包的行 510,可对每一ALU 350分配不同的处理任务。另外,如下文更详细的描述,在某些实 施例中,软件可配置ALU 350以选择ALU级340中ALU 350的数据流,包括ALU 350 的执行次序。然而,因为数据流可配置,所以将了解,在某些实施例中,沿着ALU的链 的数据流可经配置以使得一个ALU 350-0的结果更新一个或一个以上像素包寄存器,所 述结果由随后的ALU 350-1读取作为操作数。
图8是具有可重新配置管线的可编程图形处理器205的一部分的实施例的方框图, 其中通过各级的像素包的处理流可响应于软件命令来配置,例如来自图形处理器管理应 用程序280的软件命令。耦合到各级的元件的个别输入和输出的分配器890和895允许 重新配置像素包的处理流。所述级可包括(例如)数据拾取级830、数据写入级855和 个别ALU 850,尽管将了解其他类型也可使用分配器890和895来重新配置。在某些实 施例中,软件可动态重新配置通过所述级的像素包的处理流。因此优选利用同步技术来 协调在从一个配置转换为另一配置期间处在行进路线中的像素包的数据流,即,执行一 同步以使得在第一配置中希望处理的在行进路线中的像素包在配置改变为第二配置之前 完成其处理。
在一个实施例中,数据获取级830、数据写入级855和个别ALU 850具有每一者连 接到第一分配器890的个别输入,和每一者连接到第二分配器895的个别输出。每一分 配器890和895可(例如)包含开关、交叉开关、路由器或MUX电路以选择到达数据 获取级830、ALU 850和数据写入级855的引入像素包的分配流。分配器890和895确 定通过数据获取级830、数据写入级855和个别ALU 850的引入像素包810的数据路径。 信号输入892和894允许分配器890和895接收软件命令(例如来自运行于一CPU上的 软件应用程序),以重新配置数据获取级830、数据写入级855和ALU 850之间的像素包 的分配。重新配置的一个实例是分配ALU 850的执行次序。重新配置的另一实例是,如 果确定数据获取级对于某一时间处理任务来说是不需要的,就对数据获取级830设旁路。 作为重新配置的又一实例,可能需要改变数据获取级830耦合到ALU的次序。作为另一 实例,可能需要对数据写入级855再排序。作为说明性实例,可能存在在数据获取之前 对纹理坐标进行操作是更有效的情况,在此情况下,数据流经配置以使数据获取级830 在ALU 850执行纹理操作之后接收像素包。因此,可重新配置管线的一个好处在于,软 件应用程序可重新配置可编程图形处理器205以增加效率。
再次参看图5,如先前论述,光栅级310产生像素包的行510用于处理。可将行510 进一步配置为行的群组520,例如四个行510的序列,所述行经传递以用于连续时钟周 期中的处理。然而,可对像素包的行510执行的某些操作可能需要像素包的另一行的算 术操作的结果。因此,在一个实施例中,光栅级310将像素包配置在行的群组520中以 考虑数据依赖性。作为说明性实例,如果对一个像素包的纹理操作需要一个行中另一像 素包的结果,就配置群组520以使得具有依赖性纹理操作的像素包被置于后行中。
参看图9,在一个实施例中,光栅级310将像素交替分配为奇数或偶数。将像素的 每一行的对应寄存器(R0、R1、R2和R3)对应分配为偶数或奇数。接着利用一个或一 个以上规则使偶数像素的像素包的偶数行905和奇数像素的奇数行910交错,以避免数 据依赖性。隔行交错提供一额外的时钟周期以考虑ALU等待时间。因此,如果偶数像素 的第0行需要两个时钟周期来产生偶数像素的第1行所需的结果,奇数像素的第0行的 交错提供ALU等待时间所需的时间的额外时钟周期。作为说明性实例,考虑一多纹理操 作,其中偶数像素的第0行为混合操作,且同一像素的第1行对应于需要第一混合操作 的结果与第二纹理的混合。如果第一操作的ALU等待时间为两个时钟周期,那么交错允 许混合操作的结果可用于具有混合操作的纹理。
在交错的实施例中,优选包括边频带信息以协调交错的数据流。举例来说,在一个 实施例,每一像素包中的边频带信息包括一偶数/奇数字段以区别偶数与奇数行。每一 ALU 350还可包括对应于用于偶数像素和奇数像素的临时寄存器的两组临时寄存器,以 为偶数/奇数像素包提供适当的临时值。偶数/奇数字段用于选择适当组的临时寄存器,例 如,为奇数像素选择偶数临时寄存器,而为偶数像素选择一组奇数临时寄存器。在一个 实施例中,偶数与奇数像素共享常数寄存器以减少用于偶数与奇数像素的常数值的存储 需要总量。在一个实施例中,软件主机可将临时寄存器设置在常数值持续一延长的时间 段以模拟常数寄存器。虽然两个像素的交错是一种建构方案,但将了解,如果(例如) ALU等待时间相当于两个以上时钟周期,那么交错可进一步延长以使两个以上像素交错。 使光栅级310交错像素包的一个好处在于,硬件考虑了ALU等待时间,从而减少了软件 考虑假如(例如)光栅级310未交错像素那么将会发生的ALU等待时间的负担。
如先前讨论,在可配置管线中,可配置ALU 350中的数据流。举例来说,在硬件中, 每一ALU 350可大体上相同。然而,特定ALU可经配置以在数据流中具有多于一个位 置,例如一不同的执行次序。因此,在每一ALU 350中需要提供一识别符以指示其在数 据流中的位置。可通过每一ALU 350的直接寄存器写入技术将识别符(例如)提供到每 一ALU 350。然而,此方法具有需要显著的软件开销的缺点。因此,在一个实施例中, 利用包技术触发需要配置信息的元件以发现所述元件在处理流中的相对位置并将对应的 识别符写入局部寄存器中。
参看图10,在一个实施例中,ALU 350的寄存器地址空间可使用包初始化技术进行 软件配置以将一识别(ID)发送到使用数据包的每一ALU 350。每一ALU 350可(例如) 包括用于接收和转发数据包的常规网络模块。在一个实施例中,由软件应用程序起始ID 包1010。ID包1010含有一初始ID码,例如一数字。将ID包1010注入图形管线中需要 ID码的元件之前的一点处,接着将其传递到由当前管线配置界定的处理流的随后元件。 在一个实施例中,第一ALU 350中的配置寄存器1020接收ID包,将ID码的当前值写 入配置寄存器,并接着在将所述ID包传递到下一ALU之前增加所述ID包的ID码。继 续此过程,其中每一随后的ALU 350将ID码的当前值写入其配置寄存器,并接着将具 有递增的ID码的ID包传递到下一ALU。将了解,沿着数据流路径的其他级也可具有以 类似方式设置的配置寄存器。举例来说,配置流中的元件也可包括数据获取级或数据写 入级,所述级也具有通过读取ID包而设置的配置寄存器,且在将具有增加ID的ID包传 递到配置流中的下一元件之前增加ID码。此形式的寄存器配置的一个好处在于,其要求 在ALU 350单元之间没有硬件差异,从而允许对通过管线的数据流进行软件重新配置。 因此举例来说,在一个实施例中,图形处理器管理应用程序280仅需要(例如)通过经 由主机接口220发出一由ID包产生器1030接收的产生ID包1010的命令来产生初始ID 包1010。
在替代实施例中,使用广播包技术将ID码写入配置寄存器以触发需要被写入配置寄 存器以发现其ID的元件。在此实施例中,元件(例如ALU 350)可使用网络协议来发现 其ID。广播包技术可用于(例如)其中管线被分支以允许管线的分支并行处理像素的实 施例。
图11说明包括诊断监视能的实施例。在一个实施例中,沿着图形处理器205的元 件存在分接的序列,例如关于每一ALU 350和数据获取级330的分接。其他级同样也可 包括分接。可配置测试点选择器1105适于允许响应于软件命令(例如来自图形处理器管 理应用程序280的软件命令)来监视选定的分接,例如两个分接1120和1130。可(例如) 使用多工器来建构可配置测试点选择器1105。在一个实施例中,包括至少一个路由器1110 以用于每一选定的测试点的统计数字收集。在一个实施例中,由软件产生的仪表数据包 提供关于要监视的分接的信息,并实现选定测试点的计数。另外,可包括仪器寄存器以 基于管线的操作模式以选通统计数字收集的开和关(例如,可提供仪表寄存器以允许软 件可实现特定类型图形操作的计数,例如当α混合操作发生时实现统计计数)。可配置测 试点选择器1105的一个好处在于,其允许软件(例如图形处理器管理应用程序280)具 有仅针对关注的测试点而收集的统计数据,从而降低了硬件复杂性和成本,同时仍允许 软件分析可编程处理器205的特性的任何部分。可(例如)选择关注的测试点以收集与 处理特定种类数据相关联的那些ALU 350(例如处理纹理数据的ALU 350)的统计数字。 另外,对于例如α混合的特定图形操作,可实现统计数字收集。
在一个实施例中,可配置测试点选择器1105利用三线(three-wire)协议。具有有效 的有效负载数据的每一元件(例如ALU 350-0)产生一有效信号,所述有效信号可(例 如)向下流到下一元件(例如ALU 350-1)。准备接收有效负载的元件产生一就绪信号, 所述就绪信号可(例如)向上流到前一元件。然而,如果一元件没有准备接收有效负载, 所述元件就产生未就绪信号,所述未就绪信号可(例如)对应于未声明就绪信号。启用 信号对应于为了(例如)通过经由对邻近正被监视的点而存储的监视启用控制位的管线 式寄存器写入的软件控制进行监视而启用的元件。信号可经直接分接而远离产生所述信 号的元件或接收这些信号的元件。
选定的分接点处的有效、就绪和未就绪信号可用于确定操作状态。转移状态对应于 具有用于流向下游的数据的有效的有效负载(即,有效位设置)的时钟报时信号,和来 自接收数据的下游区块中的一下游区块的就绪信号(例如在分接点1120处来自ALU-0 的有效信号和在分接点1130处来自ALU-1的就绪信号)。等待状态对应于具有一有效的 有效负载的时钟报时信号,因为下方的区块未准备接收数据,所以所述有效的有效负载 被阻断(例如在分接点1120处来自ALU-0的有效信号和在分接点1130处来自ALU-1 的未就绪信号)。在此实施例中,例如可通过对检测到转移状态和等待状态的时钟周期的 数目进行计数来收集与选定的分接点相关的统计数字。
本发明的实施例提供有用于嵌入式图形处理器核心250的多种好处。在紧凑的低功 率手持系统290的系统中,功率、空间和CPU能力可能相对有限。在一个实施例中,当 不需要处理时,对ALU 350进行时钟选通(例如通过检测取消位),从而减少处理功率 要求。另外,光栅级310仅需要产生进行处理的像素数据的子集的像素包,从而也减少 了功率要求。可编程ALU级340比具有用于执行专用图形功能的专用级的常规管线需要 更小的芯片面积,从而降低了成本。可将可编程处理器205建构为可由软件配置的区块, 从而提供改进的效率。测试监视可经配置以测试测试点的子集,从而减少软件的带宽和 分析要求。这些和其他先前描述的特征使得关注的可编程图形处理器205可用于嵌入式 图形处理器核心250。
出于解释的目的,上述描述使用特定术语来提供本发明的彻底理解。然而所属领域 的技术人员将了解,为实践本发明,特定细节是不需要的。因此,出于说明和描述的目 的而提出本发明的特定实施例的上述描述。不希望它们是详尽的或将本发明限于所揭示 的精确形式;显然,根据以上教示,许多修改和变化是可能的。为最好地解释本发明的 原理及其实践应用而选择和描述实施例,因而它们使所属领域的其他技术人员可最好地 利用本发明和具有适于预期特定用途的各种修改的各种实施例。希望随附权利要求书及 其等效物界定本发明的范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈