图形处理单元和包括其的装置的制造方法_3

文档序号:9889013阅读:来源:国知局
储器310-1和310-2的帧缓冲器中存储处理(或渲 染)过的图形数据。
[0076] 图2是图1中示出的CPU 210和GPU 260的框图。参照图2,硬件组件205、CPU 210和 GPU 260可以经由总线201彼此通信。在一些实施例中,硬件组件205、CPU 210和GPU 260可 以集成到母板或SoC中或者可以实施为安装在母板上的图形卡中。在图13中示出的计算装 置100A中13,硬件组件205可以实施在母板或图形卡中。
[0077] CPU 210可以包括一个或多个应用(例如,软件应用)211、图形API 213、GPU驱动器 215、以及OS 217XPU 210可以运行或执行组件211、213、215和217。
[0078] 应用211可以包括用于显示图形数据的指令和/或将要在GPU260中执行的指令。例 如,应用211可以估计(即,计算或测量)计算装置100的至少一个属性或特征的至少一个,并 且可以基于该估计(即,计算或测量)的结果发送与模型相关的一个地址或与多个模型或相 关的多个地址到GPU 260。此时,应用211可以使用、处理和/或参考硬件组件205的输出信 号。
[0079] 在一些实施例中,应用程序211输出到图形API 213的指令。图形API 213可以将从 应用程序211接收到的指令转换为由GPU驱动程序215使用的格式。
[0080] GPU驱动程序215可以通过图形API 213接收指令,并可以控制GPU 260的操作使得 指令由GPU 260执行。例如,GPU驱动程序215可以通过0S 217发送命令到GPU 260,或者可以 发送命令到可以由GPU 260存取的一个或多个存储器310-1和310-2APU 260可以包括命令 解码器(或指令引擎)251、存取电路252、以及一个或多个处理单元253。
[0081 ] 命令解码器251可以从CPU 210接收命令或通过一个或多个存储器310-1和310-2 接收命令,并且可以控制GPU 260执行命令,或根据命令控制GPU 260。例如,命令解码器251 可以从CPU 210接收与多个模型之一相关的地址或与多个模型相关的多个地址,并且可以 发送该地址或多个地址到存取电路252。存取电路252可以使用从CPU 210发送的地址或者 从处理单元253中的一个发送来的地址从第一存储器310-1读出模型,并且可以发送已经读 取到图形管线(例如,图3中的260A)的模型。
[0082] 处理单元253可以包括可编程处理单元、固定功能处理单元、以及估计(即,计算或 测量)计算装置100的至少一个属性和特征中的至少一个并发送估计结果到存取电路252的 估计单元。例如,可编程处理单元可以是能够执行至少一个着色器程序的可编程着色器单 元。可编程着色器单元可从CPU 210下载到GPU 260。运行在处理单元253中的可编程着色单 元可以包括一个或多个顶点着色器单元、外壳着色器器单元、域着色器单元、几何着色器单 元、像素着色器单元(或片段着色器单元)、和/或统一着色器单元。
[0083]固定功能处理单元可以包括诸如在此描述的硬件单元205的硬件组件。硬件组件 可以是用于执行给定功能的硬连线。例如,在处理单元253中的固定功能的处理单元可包括 执行光栅操作的处理单元。例如,处理单元253可以形成三维图形管线。例如,三维图形管线 可能符合OpenGL API、0pen GL ES API,DirectX API,Renderscript API,WebGL API或 Open VG? API。
[0084]图3是用于说明根据本发明构思的一些实施例的、图1所示的GPU 260的图形管线 260A的概念图。可在GPU 260中执行的图形管线260A可对应于彳敫Hg^DirectX 11图形管 线。
[0085]图形管线260A可以包括在图2所示的一个或多个处理单元253和资源块263中执行 的多个处理级。处理级(或处理单元253)可以包括但不限于输入集成器261-1、顶点着色器 261-2、外壳着色器261-3、曲面细分器261-4、域着色器261-5、几何着色器261-6、光栅化器 261-7、像素着色器261-8、以及输出合并261-9中的一些或全部。
[0086] 外壳着色器261-3、曲面细分器261-4、以及域着色器261-5可以形成图形管线260A 的细分级。因此,细分级可以执行细分(或细分操作)。像素着色器261-8可以称为片段着色 器。例如,输入组合器261-1、曲面细分器261-4、光栅化器261-7以及输出合并器261-9是固 定功能级。顶点着色器261-2、外壳着色器261-3、域着色器261-5、几何着色器261-6、以及像 素着色器261-8是可编程级。
[0087]可编程级具有在其中可以执行特定类型的着色器程序的结构。例如,顶点着色器 261-2可以执行顶点着色器程序,外壳着色器261-3可以执行外壳着色器程序,域着色器 261-5可以执行域着色器程序,几何着色器261-6可以执行几何着色器程序,以及像素着色 器261-8可以执行像素着色器程序。每个着色器程序可在适当的时间在GPU 260的着色器单 元中执行。
[0088] 不同的着色器程序可以在GPU 260的通用着色器(或通用着色单元)中执行。例如, 通用着色器可以是统一着色器。在其他实施例中,至少一个专用着色器可以专门地执行至 少一种特定类型的着色器程序。
[0089] 输入集成器261-1、顶点着色器261-2、外壳着色器261-3、域着色器261-5、几何着 色器261-6、像素着色器261-8、以及输出合并261-9可以经由一个或多个连接器或接口直接 或间接地与资源数据块263进行通信。因此,输入集成器261-1、顶点着色器261-2、外壳着色 器261-3、域着色器261-5、几何着色器261-6、像素着色器261-8、以及输出合并261-9可以从 资源块263检索或接收输入数据。几何着色器261-6以及输出合并261-9可以分别包括输出, 用于将输出数据写到资源块263。
[0090] 图3中示出的从部件261-1到261-9的每一个和资源块263之间的通信只是例子,并 且可以以各种方式修改。因此,除了本发明构思的实施例的组件(例如,261-1和261-4)的操 作,组件261-1到261-9的操作是与微软的DirectX 11所限定的图形管线基本相同或相似 的。因此,详细的说明因而将省略。
[0091] 输入集成器261-1提供用于图形管线260A的图形相关的数据(例如,三角形、线和/ 或点)。由存取电路252读取的模型可以提供给输入集成器261-1。输入集成器261-1从资源 块263读取数据(例如,三角形、线和/或点)并将数据组合到可以在其他的处理级中使用的 图元中。输入集成器261-1集成顶点到不同类型的图元(例如,线列表、三角形条带或者带有 临街信息的图元)。
[0092] 顶点着色器261-2处理(例如,执行转换、表面变换(skinning)、变形以及诸如逐顶 点照明的对每个顶点的操作)从输入集成器261-1输出的组装的顶点。顶点着色器261-2采 用或操作单独的输入顶点,并生成单独的输出顶点。
[0093]外壳着色器261-3转换从顶点着色器261-2输出的输入控制点,并将低阶表面定义 为构成块的输出控制点。外壳着色器261-3可以执行对每个块的计算以为曲面细分器261-4 和域着色器261-5提供数据。
[0094]例如,外壳着色器261-3可以从顶点着色器261-2接收输入的控制点、生成输出控 制点(可以与输入控制点相同)、块恒定数据、以及细分因子数量无关的细分因子,输出输出 控制点和细分因子到曲面细分器261-4,并输出块恒定数据和细分因子到域着色器261-5以 进行处理。
[0095]曲面细分器261-4可以使用输出控制点和细分因子将域(例如,四边形、三角形、或 边)细分为更小的物体(如三角形、点或线)。域着色器261-5计算从外壳着色器261-3输出的 输出控制点的顶点位置以及从曲面细分器261-4输出的块的细分点的顶点位置。
[0096]图4是图1中示出的计算装置100的第一存储器310-1的结构图。参照图1和图4,第 一存储器310-1可以由GPU 260存取,并包括多个存储区域MEM1到MEM5。在渲染操作之前,分 别具有不同复杂度的模型MOD 1到M0D5分别存储在存储区域MEM1到MEM5。存储区域MEM1到 MEM5可以分别通过地址ADD1到ADD5来选择或定义。这里,术语"模型"可以是对象的上位概 念。
[0097]图5是具有不同复杂度的模型MODI到M0D5的概念图。参照图4和图5,假定与第一模 型MODI具有最低的复杂度以及第五模型M0D5具有最高的复杂度。换句话说,第二模型M0D2 的复杂度比第一模型MODI的更高,第三模型M0D3的复杂度比第二模型M0D2的更高,第四模 型M0D4的复杂度比第三个模型M0D3的更高,以及第五模型M0D5的复杂度比第四模型M0D4的 更高。模型M0D1-M0D5可能需要不同量的例如图形处理所需要的计算能力,并取决于不同复 杂度。
[0098] 虽然在图4和图5中示出了具有不同复杂度的五种模型MODI到M0D5,但是这些只是 例子。在其它实施例中,至少一个模型可以对应于两个模型MODI及M0D2、M0D2和M0D3、M0D3 和M0D4、或M0D4和M0D5之间存在。
[0099] 参考图1至图5,CPU 210可以估计(即,计算或测量)计算装置100的一个或多个属 性或特征中的至少一个,根据估计(即,计算或测量)结果选择分别对应于存储模型MODI到 M0D5的第一存储器310-1的存储区域MEM1到MEM5的地址ADD1到ADD5,并将所选择的地址发 送到GPU 260。
[0100] 如上所述,一个或多个属性或特征可以包括GPU 260和存储器310-1之间的频带、 GPU 260的计算能力、GPU 260的最大功耗、根据GPU 260的DVFS确定的电压和频率、和/或 GPU的260的温度,等等。
[0101] 例如,在计算装置100是台式计算机或计算机工作站的实施例中,CPU 210可以根 据估计(即计算或测量)结果,将与存储具有最高的复杂度的第五模型M0D5的第五存储区域 MEM5相应的第五地址ADD5发送至GPU 260。
[0102] 然而,当计算装置100是像智能电话的便携式电子装置时,CPU 210可以根据估计 (即计算或测量)结果,将与存储具有最低复杂度的第一模型MODI的第一存储器区MEM1的第 一地址ADD1到GPU 260。在其中计算装置100是包括电池203的便携式电子装置的实施例中, 计算装置100的属性或特征可以包括电池203的剩余值,其在一些实施例中可被显示。
[0103] 因此,当电池203的剩余值是第一值时,CPU 210可以发送与第二模型M0D2对应的 第二地址ADD2到GPU 260,并且当电池203的剩余值是第二值时,可以发送与第一模型MODI 对应的第一地址ADD1到GPU 260。此时,第一值可以比第二值更高。
[0104] GPU 260可以从CPU 210接收地址,使用该地址从存储区域MEM1到MEM5中的一个读 取模型,使用模型的几何信息计算模型的复杂度,将参考复杂度和所计算的复杂度进行比 较,并根据该比较结果确定是否要对模型执行细分。
[0105] 可替代地,CPU 210可以发送分别与分别存储模型MODI到M0D5的存储区域MEM1到 MEM5对应的地址列表ADD1到ADD5给GPU 260XPU 260可以从CPU 210接收地址ADD1到ADD5, 估计(即,计算或测量)计算装置100的一个或多个属性或特征中的至少一个,并且可以根据 估计(即计算或测量)结果,选择与模型MODI到M0D5相关的地址ADD1到ADD5之一。
[0106] 如上所述,所选择的地址可以发送到存取电路252APU 260,更
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1