首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

使用预取的图形数据执行基于图块的渲染的装置和方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:三星电子株式会社

摘要:一种图形处理单元GPU,被配置为使用预取的图形数据执行基于图块的渲染,包括:图块器,被配置为对当前帧执行分仓binning,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块相同;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为使用预取的所述第二图形数据来渲染所述当前帧。

主权项:1.一种图形处理单元GPU,被配置为使用预取的图形数据执行基于图块的渲染,所述GPU包括:图块器,被配置为对当前帧执行分仓,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块具有与所述第一图块相同的图块ID;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为使用预取的第二图形数据来渲染所述当前帧,其中,所述分仓相关器还被配置为:当在所述第一分仓比特流中包括的比特总和与在所述第二分仓比特流中包括的比特总和之间的差小于或等于阈值时,确定所述第一图块和所述第二图块彼此相似。

全文数据:使用预取的图形数据执行基于图块的渲染的装置和方法相关申请的交叉引用本申请要求2017年12月26日在韩国知识产权局递交的韩国专利申请No.10-2017-0179801的优先权,其全部公开内容通过引用合并于此。技术领域本发明构思的示例性实施例涉及一种用于执行基于图块的渲染的装置和方法,更具体地,涉及一种用于使用预取的图形数据来高效地执行基于图块的渲染的装置和方法。背景技术三维3D图形应用编程接口API标准包括开放图形库OpenGL、用于嵌入式系统的OpenGLOpenGLES、Direct3等。API标准包括对每个帧执行渲染并显示图像的方法。当对每个帧执行渲染时,可能执行大量计算,并且可能消耗大量功率。发明内容根据本发明构思的示例性实施例,一种图形处理单元GPU,被配置为使用预取的图形数据执行基于图块的渲染,包括:图块器,被配置为对当前帧执行分仓binning,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块相同;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为通过使用预取的所述第二图形数据来渲染所述当前帧。根据本发明构思的示例性实施例,一种在图形处理单元GPU中使用预取的图形数据执行基于图块的渲染的方法,所述方法包括:对当前帧执行分仓,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块的图块ID相同;当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及使用预取的第二图形数据来渲染所述当前帧。根据本发明构思的示例性实施例,一种片上系统SoC包括:中央处理单元CPU,用于通过控制所述SoC的操作来执行应用;以及图形处理单元GPU,用于使用预取的图形数据执行基于图块的渲染。所述GPU包括:图块器,被配置为对当前帧执行分仓binning,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块相同;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为通过使用预取的所述第二图形数据来渲染所述当前帧。附图说明通过参照附图详细描述本发明构思的示例性实施例,本发明构思的以上和其他特征将变得被更清楚地理解。图1是根据本发明构思的示例性实施例的用于说明设备之间的连接关系的图。图2是根据本发明构思的示例性实施例的用于说明图1的渲染设备的操作的图。图3是根据本发明构思的示例性实施例的图形处理单元GPU的框图。图4是根据本发明构思的示例性实施例的用于说明通过使用分仓比特流来确定图块之间的相似性的过程的表。图5示出了根据本发明构思的示例性实施例的用于渲染在图块中包括的图元的图形数据的示例。图6示出了根据本发明构思的示例性实施例的存储纹理数据的存储器的布局。图7示出了根据本发明构思的示例性实施例的图3的预取器使用图形数据的地址信息和大小信息来跟踪图形数据的过程。图8是根据本发明构思的示例性实施例的用于执行基于图块的渲染的系统的框图。图9是根据本发明构思的示例性实施例的片上系统SoC的框图。图10是根据本发明构思的示例性实施例的使用预取的图形数据执行基于图块的渲染的方法的流程图。具体实施方式本发明构思的示例性实施例提供了一种用于使用预取的图形数据执行基于图块的渲染的图形处理单元GPU。另外,本发明构思的示例性实施例提供了一种通过使用预取的图形数据执行基于图块的渲染来改善渲染性能的方法。此外,本发明构思的示例性实施例提供了一种片上系统SoC,其包括中央处理单元CPU和用于使用预取的图形数据执行基于图块的渲染的GPU。在下文中,将参考附图详细描述本发明构思的示例性实施例。在本申请中,类似的附图标记表示类似的元件。图1是根据本发明构思的示例性实施例的用于说明设备之间的连接关系的图。应用100是被设计为执行特定功能的程序。应用100将关于图像处理的命令发送到设备驱动器110。应用100可以向设备驱动器110发送各种类型的命令。设备驱动器110根据从应用100接收的命令来向渲染设备120输出图形渲染作业。渲染设备120执行图形处理。例如,渲染设备120可以是图形处理单元GPU。例如,渲染设备120可以是图3的GPU300、图8的GPU800或图9的GPU930。渲染设备120根据从设备驱动器110接收的图形渲染作业,生成图像并将生成的图像输出到应用100。渲染设备120可以以图块为单位执行渲染。基于图块的渲染方法是将帧分割成多个图块并以图块为单位生成图像的方法。帧缓冲器130存储帧的图像。帧缓冲器130是一种存储器。帧缓冲器130存储由渲染设备120生成的图像。根据本发明构思的示例性实施例的渲染设备120可以通过以下方式来高效地执行基于图块的渲染:在对当前帧的任意图块执行渲染时,预取用于渲染前一帧的图块的至少一些图形数据,所述前一帧的图块的图块ID与所述任意图块相同。图2是根据本发明构思的示例性实施例的用于说明图1的渲染设备的操作的图。参考图2,渲染设备120可以通过参考前一帧来对当前帧执行渲染。在下文中,将当前帧称为N帧,并且将前一帧称为N-1帧。由于很可能在N-1帧和N帧中对类似图像或相同图像执行渲染,因此渲染设备120可以通过参考N-1帧来渲染N帧。例如,当在当前帧N帧的图块中存在与前一帧N-1帧的图块相同或相似的图块时,渲染设备120可以基于对N-1帧执行渲染的结果来对N帧执行渲染。更详细地说,图2示出了N-1帧和N帧,并且N-1帧是在对N帧执行渲染之前完成渲染的帧。N-1帧和N帧各自可以总共分割成20个图块。然而,图块的数量例如,20仅是示例,N-1帧和N帧可以各自被分割成任意数量的图块。具有相同图块编号的图块位于相同位置。例如,N-1帧的图块7与N帧的图块7位于相同的位置。位于不同帧中的相同位置处的图块可以具有相同的图块ID。参考N-1帧,在图块0、图块1、图块2、图块5、图块6和图块7上显示第一三角形图元P0,在图块12、图块13、图块17和图块18上显示第二三角形图元P1。参考N帧,在图块0、图块1、图块2、图块5、图块6和图块7上显示第一三角形图元P0,在图块8、图块9、图块13和图块14上显示第二三角形图元P1。在N-1帧和N帧中每一帧的20个图块中,在图块0-7、10、11、15和16上显示相同的图像,而在图块8、9、12-14和17-19上显示不同的图像。类似的图像可以显示在N-1帧和N帧的图块13上,因为图块13包括相同的图元。渲染设备120可以使用在对前一帧例如,N-1帧的图块执行渲染时生成的至少一些图形数据,以便对当前帧例如,N帧的图块中与该前一帧的图块具有相同图像或相似图像的当前帧的图块执行渲染。例如,渲染设备120可以在用于渲染N-1帧的图块13而生成的多条图形数据中预取关于图元P1的数据,以便渲染N帧的图块13。因此,尽管前一帧和当前帧的图块不完全相同,但是如果它们彼此相似,则渲染设备120可以预取用于渲染前一帧的图块的至少一些图形数据,因而可以改善对当前帧的渲染的性能。图3是根据本发明构思的示例性实施例的GPU的框图。参考图3,GPU300可以包括图块器310、分仓相关器320、预取器330和至少一个处理器340。图3示出了GPU300仅包括与本示例性实施例相关的组件。然而,除了图3中所示的组件之外,图3的GPU300还可以包括其他通用组件。例如,GPU300还可以包括调度器、L1高速缓存、L2高速缓存等。图块器310可以对当前帧执行分仓binning,因此可以获得在当前帧中包括的图块中的第一图块的第一分仓比特流。图块器310可以将当前帧分成至少一个图块,并且可以对该至少一个图块执行分仓。分仓可以是检查要处理的每个图块的图元primitive列表的过程。例如,图块器310可以将编号或ID分配给图元,以便将包括在图块中的图元彼此区分开。另外,图块器310可以接收由图1的设备驱动器110生成的图元编号或图元ID。通过对第一图块执行分仓而获得的第一分仓比特流可以包括关于在第一图块中包括的图元的信息。例如,第一分仓比特流可以包括关于哪些图元被包括在第一图块中的信息。图块器310可以将对当前帧执行分仓的结果存储在存储器中。例如,图块器310可以将第一分仓比特流存储在存储器中。存储器是读取或写入数据的半导体器件。存储器可以快速读取或写入数据,并且可以是易失性存储器,诸如静态随机存取存储器SRAM、动态随机存取存储器DRAM、锁存器、触发器或寄存器。然而,本发明构思不限于此。例如,存储器可以是非易失性存储器,诸如NAND闪存、垂直NANDVNAND闪存、NOR闪存、电阻随机存取存储器RRAM、相变存储器PRAM、磁阻随机存取存储器MRAM、铁电随机存取存储器FRAM或自旋转移力矩随机存取存储器STT-RAM。分仓相关器320可以通过使用第一分仓比特流和与第一图块具有相同的图块ID的前一帧的第二图块的第二分仓比特流,来确定第一图块和第二图块是否彼此相似。具有相同的图块ID可以指示第一图块和第二图块在不同的帧中处于相同的位置。第二图块的第二分仓比特流可以是在对前一帧执行分仓时生成的,并且可以预先存储在存储器中。第二分仓比特流可以包括关于在第二图块中包括的图元的信息。所述分仓相关器320可以当在所述第一分仓比特流中包括的比特总和与在所述第二分仓比特流中包括的比特总和之间的差小于或等于阈值时,确定所述第一图块和所述第二图块彼此相似。在下文中,将参考图4更详细地描述通过使用分仓比特流来确定图块之间的相似性的过程。图4是根据本发明构思的示例性实施例的用于说明通过使用分仓比特流来确定图块之间的相似性的过程的表。图4示出了前一帧例如,图2的N-1帧和当前帧例如,图2的N帧中每一帧的图块的分仓比特流、包括在每个分仓比特流中的比特总和以及确定相似性的结果。参考图4的表,当N帧的第一图块和N-1帧的第二图块的图块ID是图块0时,并且当第一三角形的图元ID是P0且第二三角形的图元ID是P1时,第一图块的第一分仓比特流是“10”,第二图块的第二分仓比特流也是“10”。在分仓比特流中包括的每个比特可以指示与每个比特相对应的图元是否被包括在图块中。例如,“1”可以指示图元被包括在图块中,并且“0”可以指示图元没有被包括在图块中。由于第一图块仅包括第一三角形P0,因此与第一三角形P0相对应的比特可以是“1”,并且与第二三角形P1相对应的比特可以是“0”。当包括在第一分仓比特流中的比特总和与包括在第二分仓比特流中的比特总和之间的差小于或等于阈值时,可以指示第一图块和第二图块包括相同数量的图元或相似数量的图元。通过考虑对前一帧和当前帧的类似图像执行渲染的高可能性,当第一图块和第二图块包括相同数量的图元或相似数量的图元时,可以预测到第一图块和第二图块彼此足够相似,以确保用于渲染第二图块的至少一些图形数据可以用于渲染第一图块。例如,N帧中图块ID为图块0的第一图块的第一分仓比特流中包括的比特总和是1+0=1,并且N-1帧中图块ID为图块0的第二图块的第二分仓比特流中包括的比特总和也是1+0=1。因此,包括在第一分仓比特流中的比特总和与包括在第二分仓比特流中的比特总和之间的差为1-1=0。例如,当阈值为0时,由于在第一分仓比特流中包括的比特总和与在第二分仓比特流中包括的比特总和之间的差小于或等于阈值,因此可以确定第一图块和第二图块彼此相似。如图2中可以看出,第一图块和第二图块是在相同位置处包括相同图元并指示相同图像的图块。作为另一示例,N帧中图块ID为图块13的第三图块的第三分仓比特流是“01”,并且N-1帧中图块ID为图块13的第四图块的第四分仓比特流是“01”。由于包括在第三分仓比特流中的比特总和0+1=1与包括在第四分仓比特流中的比特总和0+1=1之间的差1-1=0小于或等于阈值,所以可以确定第三图块和第四图块彼此相似。如图2中可以看出,尽管第三图块和第四图块不指示完全相同的图像,但是第三图块和第四图块包括相同的图元,因此,可以理解第三图块和第四图块彼此足够相似,以确保用于渲染第四图块的至少一些图形数据可以用于渲染第三图块。根据本发明构思的示例性实施例,尽管由在前一帧中包括的图块指示的图像与由在当前帧中包括的图块指示的图像不完全相同,但是可以确定前一帧和当前帧的图块彼此相似。例如,尽管与前一帧的图块相比,在当前帧的图块中包括的图元的位置稍微改变,但是用于渲染前一帧的图块的至少一些图形数据可以用于渲染当前帧的图块。在这种情况下,由于预取了用于渲染前一帧的图块的至少一些图形数据,因此可以高效地执行基于图块的渲染。在图4的示例中假设阈值为0,但是,阈值可以设置为任意数。另外,图2和图4示出了每帧中包括的图元的数量是2,但图元的数量不限于此。图元的数量可能根据情况而有所不同。此外,随着帧中包括的图元的数量不同,可以调整分仓比特流的长度。返回参考图3,在本发明构思的示例性实施例中,可以基于对应用进行仿真的结果,将阈值确定为固定值。在本发明构思的示例性实施例中,可以基于从在GPU300中包括的L1高速缓存和L2高速缓存中的至少一个接收的高速缓存命中率,来动态调整阈值。例如,当接收的高速缓存命中率较高时,可以增加阈值,但是当接收的高速缓存命中率较低时,可以减小阈值。然而,本发明构思不限于此。当确定第一图块和第二图块彼此相似时,分仓相关器320可以将相似性确定结果发送到调度器。调度器是硬件组件,其以在GPU300中包括的处理核为单位调度基于图块的图形渲染作业。当将基于图块的图形渲染作业分配给某个处理核时,调度器可以将图块ID发送到在该处理核中包括的预取器330。预取器330可以使用图块ID来预取用于渲染第二图块的第二图形数据。图形数据可以包括顶点属性数据、纹理数据和图形状态Gstate数据中的至少一个,所有这些数据都用于渲染图块。顶点属性可以是顶点的位置或方向、纹理的坐标或连接信息等。纹理可以是当对3D图像上的3D对象进行渲染以便将其显示为2D图像时应用于对象的图像。这样的纹理可以包含与3D对象的具体形状、纹理、颜色等有关的信息。图形状态可以包括与纹理的属性有关的信息。预取器330可以基于与图块ID匹配的第二图形数据的第二地址信息和第二大小信息来预取第二图形数据。在渲染前一帧时用于渲染第二图块的第二图形数据的第二地址信息和第二大小信息可以与图块ID相匹配并且可以是预先存储的。第二地址信息可以包括与读取地址的起始地址和最后地址中的至少一个有关的信息,其中向存储器请求读取地址以读取前一帧中的第二图形数据,并且第二大小信息可以是基于最后地址和起始地址之间的差来确定的。预取器330可以包括地址跟踪器,其用于跟踪第二图形数据的第二地址信息和第二大小信息。在下文中,参考图5至图7,将更详细地描述以下过程:预取器330在渲染前一帧时跟踪第二图形数据的第二地址信息和第二大小信息,将第二地址信息和第二大小信息与图块ID相匹配,并对其进行存储。图5示出了根据本发明构思的示例性实施例的用于渲染在图块中包括的图元的图形数据的示例。图5示出了用于渲染在前一帧的特定图块例如,图块0中包括的图元的图形数据中的纹理数据的示例。图块ID为图块0的图块包括指示第一三角形的图元P0。图元P0是使用第一纹理510和第二纹理520渲染的图元。图元P0的具体形状、纹理、颜色等可以由第一纹理510和第二纹理520确定。当关于图块ID为图块0的图块的作业被分配给在GPU300中包括的某个处理核时,该处理核可以向存储器发送对用于渲染图元P0的第一纹理510的数据和第二纹理520的数据的请求。在下文中,将参考图6更详细地描述存储纹理数据的存储器的布局。图6示出了根据本发明构思的示例性实施例的存储纹理数据的存储器的布局。图6示出了在高速缓存存储器600中存储用于渲染图元P0的第一纹理数据的位置以及存储用于渲染图元P1的第二纹理数据的位置。参考图6,当处理核对图元P0执行渲染时,随机地请求与存储第一纹理数据和第二纹理数据的位置相对应的读取地址。例如,第一纹理数据存储在高速缓存存储器600的读取地址0x0800_0000至0x0800_01b0中,但是当处理核对图元P0执行渲染时,随机地请求读取地址0x0800_0000至0x0800_01b0,而不是顺序地请求。因此,必须跟踪存储第一纹理数据的位置,以确保在对后续帧执行渲染时预取器330准确地预取第一纹理数据。在下文中,将参考图7更详细地描述预取器330使用图形数据的地址信息和大小信息以便跟踪图形数据的过程。图7示出了根据本发明构思的示例性实施例的图3的预取器使用图形数据的地址信息和大小信息来跟踪图形数据的过程。预取器330可以持续更新所请求的读取地址中的第一地址和最后地址,以获取图形数据的地址信息和大小信息。预取器330可以在某个周期的范围内或在所有周期的范围内更新在执行作业时向存储器请求的读取地址。预取器330可以包括至少一个寄存器,其更新所请求的读取地址中的第一地址和最后地址中的每一个。当作业完成时,可以停止更新所请求的读取地址中的第一地址和最后地址,并且可以确定与存储第一纹理数据的位置相对应的起始地址710和最后地址720。起始地址710可以与更新第一地址的寄存器图6和7的历史地址#1第一寄存器最后存储的值相对应,且最后地址720可以与更新最后地址的寄存器图6和7的历史地址#1最后寄存器最后存储的值相对应。另外,预取器330可以基于最后地址720与起始地址710之间的差来确定第一纹理数据的大小730。例如,第一纹理数据的大小730可以被确定为0x0800_01b0-0x0800_0000=0x0000_01b0,其是0x0800_01b0最后地址720与0x0800_0000起始地址710之间的差。预取器330可以存储第一纹理数据的起始地址710和大小730,并且当在对后续帧执行渲染时使用第一纹理510时,预取器330可以通过使用第一纹理数据的起始地址710和大小730来预取所述第一纹理数据。例如,预取器330可以通过预取从第一纹理数据的起始地址710起到第一纹理数据的大小730为止的读取地址,来预取第一纹理数据。可以在预定义大小的范围内跟踪第一纹理数据。例如,可以在0x0000_0200的大小内跟踪第一纹理数据。由于在预定义大小的范围内跟踪图形数据,因此可以对第一纹理数据和第二纹理数据进行分类和跟踪。要跟踪的图形数据的大小范围可以由图1的设备驱动器110设置,并且可以存储在映射到位于GPU300内的存储器的寄存器中。然而,本发明构思不限于此。尽管上面描述了第一纹理数据,但是关于第一纹理数据执行的处理可以类似地应用于第二纹理数据。另外,尽管已经描述了图形数据中的纹理数据作为示例,但是关于纹理数据执行的处理可以类似地应用于其他类型的图形数据。返回参考图3,至少一个处理器340可以通过使用预取的第二图形数据对当前帧执行渲染。至少一个处理器340可以包括图形状态管理器、输入汇编器、剪辑视口CCV、光栅化器、颜色深度光栅操作CZROP、着色器核、纹理单元等。可以根据诸如OpenGL、OpenGLES或Direct3的3D图形API标准,来定义图形状态管理器、输入汇编器、CCV、光栅化器、CZROP、着色器核、纹理单元等。将参考图8更详细地描述至少一个处理器340的操作。预取器330可以将用于渲染当前帧中的第一图块的第一图形数据的第一地址信息和第一大小信息与图块ID相匹配,并且可以存储第一地址信息和第一大小信息。可以使用与图块ID相匹配并被存储的第一图形数据的第一地址信息和第一大小信息来渲染下一帧。参考图5至图7提供的描述可以应用于以下过程:预取器330将用于渲染当前帧中的第一图块的第一图形数据的第一地址信息和第一大小信息与图块ID相匹配,并且存储第一地址信息和第一大小信息。图3的图块器310、分仓相关器320、预取器330和至少一个处理器340可以由一个或多个处理器实现。例如,图3的图块器310、分仓相关器320和至少一个处理器340可以实现为多个逻辑门的阵列,或者可以实现为通用微处理器和存储可由该微处理器执行的程序的存储器的组合。例如,预取器330可以实现为至少一个寄存器,其包括用于存储图形数据的地址信息和大小信息的存储空间。CPU300可以通过以下方式来高效地执行基于图块的渲染:在对当前帧的任意图块执行渲染时,预取用于渲染前一帧的图块的至少一些图形数据,所述前一帧的图块的图块ID与所述任意图块相同。具体地,尽管前一帧的图块与当前帧的图块不完全相同,但是如果前一帧的图块与当前帧的图块相似,则GPU300可以预取用于渲染前一帧的图块的至少一些图形数据,因而可以改善渲染性能。图8是根据本发明构思的示例性实施例的用于执行基于图块的渲染的系统的框图。参考图8,用于执行基于图块的渲染的系统可以包括GPU800和DRAM840。GPU800可以包括处理核GPU核#0和GPU核#1至GPU核#N、调度器820和L2高速缓存830。除了图3的图块器310、分仓相关器320和预取器330以外,处理核GPU核#0和GPU核#1至GPU核#N中的每一个还可以包括图形状态管理器811、输入汇编器812、CCV813、光栅化器814、CZROP815、帧缓冲器816、着色器核817、纹理单元818和L1高速缓存819。图8的图形状态管理器811、输入汇编器812、CCV813、光栅化器814、CZROP815、着色器核817和纹理单元818可以对应于图3的至少一个处理器340。参考图3提供的描述将不再重复。图形状态管理器811可以是管理与纹理的属性等有关的信息的模块。输入汇编器812可以是执行渲染流水线的第一处理的模块,可以读取从应用接收的顶点缓冲器或索引缓冲器的数据,并且可以向渲染流水线的下一个处理发送通过组合包括点、线、三角形等在内的图元而生成的数据。CCV813可以是通过移除将不在最后渲染的屏幕上显示的图元来防止出现不必要的光栅化和片段着色的模块。图块器310图8的图块分仓可以是如下的模块,该模块通过将哪个图块包括要在基于图块的渲染期间显示在屏幕上的图元指示作为分仓矢量或分仓比特流,来确定渲染特定图块所需的图元。分仓相关器320可以基于前一帧的图块的分仓比特流和当前帧的图块的分仓比特流,来确定前一帧的图块是否类似于当前帧的图块。具体地,当在当前帧的图块的分仓比特流中包括的比特总和与在前一帧的图块的分仓比特流中包括的比特总和之间的差小于或等于阈值时,分仓相关器320可以确定当前帧的图块与前一帧的图块相似。当确定当前帧的图块与前一帧的图块相似时,分仓相关器320可以将相似性确定结果发送到调度器820。调度器820可以是以在GPU800中包括的处理核GPU核#0和GPU核#1至GPU核#N为单位调度基于图块的图形渲染作业的模块。当基于图块的图形渲染作业被分配给特定处理核例如,GPU核#0时,调度器820可以将基于图块的图形渲染作业和与其对应的图块ID发送到在该特定处理核中包括的预取器330。预取器330可以包括地址跟踪器,其跟踪用于渲染前一帧的图块的图形数据的地址信息和大小信息。在对当前帧的图块执行渲染时,预取器330可以使用图块ID来预取用于渲染前一帧的图块的图形数据。预取器330可以顺序地检索L1高速缓存819、L2高速缓存830和DRAM840以预取图形数据。光栅化器814可以是固定功能模块,其执行扫描线转换以将诸如点、线或三角形的矢量基本形式转换为光栅图像。由于光栅化,图元的顶点可以被转换为具有相同形式的剪辑空间。来自光栅化器814的输出可以被映射到着色器核817。CZROP815可以是如下的模块,该模块将存储有颜色、深度、模板等的缓冲器的现有数据与新渲染的像素的效果进行组合,并在帧缓冲器816中存储作为上述组合的结果而生成的新数据。帧缓冲器816可以是存储单元,其临时存储要以光栅扫描方法在屏幕上显示的图像的信息。着色器核817可以是基于与顶点和顶点的材料属性有关的信息来确定像素的颜色值的模块。纹理单元818可以是将2D图像应用于多边形的表面其是图形或面的单元并因此三维地显示3D对象的模块。L1高速缓存819和L2高速缓存830均可以是DRAM840与GPU800之间的高速缓冲存储器。图形状态管理器811、输入汇编器812、CCV813、光栅化器814、CZROP815、着色器核817、纹理单元818和调度器820可以实现为一个或多个处理器。例如,图形状态管理器811、输入汇编器812、CCV813、光栅化器814、CZROP815、着色器核817、纹理单元818和调度器820可以实现为逻辑门阵列,或者可以实现为通用微处理器和存储可由该微处理器执行的程序的存储器的组合。图9是根据本发明构思的示例性实施例的片上系统SoC的框图。参考图9,SoC900可包括中央处理单元CPU910、存储器控制单元920、GPU930、调制解调器处理器940、IP块950以及总线960,总线960将CPU910、存储器控制单元920、GPU930、调制解调器处理器940和IP块950彼此连接。SoC900将执行各种功能的复杂系统集成到一个芯片中。例如,SoC900可以与在移动设备作为一种渲染系统中包括的应用处理器相对应。移动设备可以包括应用处理器和存储器。CPU910可以通过控制SoC900的操作来执行应用。例如,CPU910可以控制要显示以执行应用的图像数据。为此,CPU910可以从存储图像数据的帧缓冲器中读取数据。尽管帧缓冲器可以与位于SoC900外部的DRAM相对应,但是它可以嵌入在SoC900中。GPU930可以将图像数据提供给帧缓冲器。GPU930可以是图3的GPU300或图8的GPU800。GPU930可以使用预取的图形数据执行基于图块的渲染。IP块950可以执行用于执行应用的特定操作。例如,IP块950可以执行视频编码或处理3D图形。CPU910和GPU930也可以称为IP块。因为应用处理器执行调制解调器通信功能,应用处理器可以被称为ModAP,因此,SoC900也可以被称为ModAP,这是因为SoC900也通过使用调制解调器处理器940来执行调制解调器通信功能。具有某些总线标准的协议可以应用于总线960。高级RISC机器ARM高级微控制器总线架构AMBA协议可以用作总线960的标准。AMBA协议总线可以包括高级高性能总线AHB、高级外围总线APB、高级可扩展接口AXI、AXI4、AXI一致性扩展ACE等。备选地,可以使用其他类型的协议,例如,SONIC的uNetwork、IBM的CoreConnect、OCP-IP的开放核心协议等。如上所述,图9的SoC900可以通过以下方式来高效地执行基于图块的渲染:在对当前帧的任意图块执行渲染时,预取用于渲染前一帧的图块的至少一些图形数据,所述前一帧的图块的图块ID与所述任意图块相同。图10是根据本发明构思的示例性实施例的使用预取的图形数据执行基于图块的渲染的方法的流程图。参考图10,该方法包括由图3、图8或图9的GPU300、800或930按时间顺序执行的操作。因此,参考图1至图9提供的GPU300、800或930的描述可以应用于图10的方法。在操作1010中,GPU可以对当前帧执行分仓,因此可以获得包括在当前帧中的图块中的第一图块的第一分仓比特流。在操作1020中,GPU可以使用第一分仓比特流和前一帧的第二图块的第二分仓比特流以确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块相同。具体地,当在第一分仓比特流中包括的比特总和与在第二分仓比特流中包括的比特总和之间的差小于或等于阈值时,GPU可以确定第一图块和第二图块彼此相似。根据本发明构思的示例性实施例,可以基于对应用进行仿真的结果,将阈值确定为固定值。根据本发明构思的示例性实施例,可以基于从在GPU中包括的L1高速缓存和L2高速缓存中的至少一个接收的高速缓存命中率,来动态调整该阈值。所述第一分仓比特流和所述第二分仓比特流中的每一个可以包括关于在所述第一图块和所述第二图块中的每一个中包括的图元的信息。在操作1030中,当确定所述第一图块和所述第二图块彼此相似时,GPU可以使用所述图块ID来预取用于渲染所述第二图块的第二图形数据。GPU可以顺序地检索L1高速缓存、L2高速缓存和DRAM以便预取第二图形数据。具体地,GPU可以使用与所述图块ID相匹配的所述第二图形数据的第二地址信息和第二大小信息,从而预取所述第二图形数据。第二地址信息可以包括与读取地址的起始地址和最后地址中的至少一个有关的信息,其中向存储器请求读取地址以读取前一帧中的第二图形数据,并且第二大小信息可以是基于最后地址和起始地址之间的差来确定的。在操作1040中,CPU可以使用预取的所述第二图形数据来渲染所述当前帧。由于预取了渲染当前帧的图块所需的至少一些图形数据,因此可以提高GPU对当前帧执行渲染的性能。GPU可以将用于渲染所述当前帧的所述第一图块的第一图形数据的第一地址信息和第一大小信息与所述图块ID相匹配,并且可以存储这些信息。当对包括与当前帧的第一图块相同的图块或相似的图块在内的下一帧执行渲染时,可以将与图块ID相匹配并被存储的第一图形数据的第一地址信息和第一大小信息用于预取第一图形数据。本发明构思的示例性实施例可以被编写为计算机程序,并且可以在使用非暂时性计算机可读记录介质执行所述程序的通用数字计算机中实现。可以以各种方式将在本发明构思的示例性实施例中描述的数据结构记录在非暂时性计算机可读记录介质中。非暂时性计算机可读记录介质的示例包括:磁存储介质例如,ROM、软盘、硬盘等、光记录介质例如,CD-ROM或DVD等。尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是将理解,在不脱离所附权利要求所限定的本发明构思的精神和范围的情况下,可以进行形式和细节上的多种改变。

权利要求:1.一种图形处理单元GPU,被配置为使用预取的图形数据执行基于图块的渲染,所述GPU包括:图块器,被配置为对当前帧执行分仓,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块的图块ID相同;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为使用预取的第二图形数据来渲染所述当前帧。2.根据权利要求1所述的GPU,其中,所述分仓相关器还被配置为:当在所述第一分仓比特流中包括的比特总和与在所述第二分仓比特流中包括的比特总和之间的差小于或等于阈值时,确定所述第一图块和所述第二图块彼此相似。3.根据权利要求2所述的GPU,其中,基于对应用进行仿真的结果,将所述阈值确定为固定值。4.根据权利要求2所述的GPU,其中,使用从在所述GPU中包括的L1高速缓存和L2高速缓存中的至少一个高速缓存接收的高速缓存命中率,来动态调整所述阈值。5.根据权利要求1所述的GPU,其中,所述第一分仓比特流和所述第二分仓比特流中的每一个包括关于在所述第一图块和所述第二图块中的每一个中包括的多个图元的信息。6.根据权利要求1所述的GPU,其中,所述预取器还被配置为使用所述第二图形数据的第二地址信息和第二大小信息来预取所述第二图形数据,以及所述第二地址信息和所述第二大小信息与所述图块ID相匹配。7.根据权利要求6所述的GPU,其中,所述第二地址信息包括关于读取地址的起始地址和最后地址中的至少一个的信息,其中向存储器请求所述读取地址以便读取所述前一帧中的所述第二图形数据,以及所述第二大小信息是基于所述起始地址与所述最后地址之间的差来确定的。8.根据权利要求1所述的GPU,其中,所述预取器还被配置为:将用于渲染所述当前帧中的所述第一图块的第一图形数据的第一地址信息和第一大小信息与所述图块ID相匹配,并且存储所述第一地址信息和所述第一大小信息。9.根据权利要求8所述的GPU,其中,所述第一图形数据和所述第二图形数据中的每一个包括顶点属性数据、纹理数据或图形状态数据中的至少一个。10.一种在图形处理单元GPU中使用预取的图形数据执行基于图块的渲染的方法,所述方法包括:对当前帧执行分仓,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块的图块ID相同;当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及使用预取的第二图形数据来渲染所述当前帧。11.根据权利要求10所述的方法,其中,所述确定包括:当在所述第一分仓比特流中包括的比特总和与在所述第二分仓比特流中包括的比特总和之间的差小于或等于阈值时,确定所述第一图块和所述第二图块彼此相似。12.根据权利要求11所述的方法,其中,基于对应用进行仿真的结果,将所述阈值确定为固定值。13.根据权利要求11所述的方法,其中,使用从在所述GPU中包括的L1高速缓存和L2高速缓存中的至少一个高速缓存接收的高速缓存命中率,来动态调整所述阈值。14.根据权利要求10所述的方法,其中,所述第一分仓比特流和所述第二分仓比特流中的每一个包括关于在所述第一图块和所述第二图块中的每一个中包括的多个图元的信息。15.根据权利要求10所述的方法,其中,所述预取包括使用所述第二图形数据的第二地址信息和第二大小信息来预取所述第二图形数据,以及所述第二地址信息和所述第二大小信息与所述图块ID相匹配。16.根据权利要求15所述的方法,其中,所述第二地址信息包括关于读取地址的起始地址和最后地址中的至少一个的信息,其中向存储器请求所述读取地址以便读取所述前一帧中的所述第二图形数据,以及所述第二大小信息是基于所述最后地址与所述起始地址之间的差来确定的。17.根据权利要求10所述的方法,还包括:将用于渲染所述当前帧中的所述第一图块的第一图形数据的第一地址信息和第一大小信息与所述图块ID相匹配;以及存储所述第一地址信息和所述第一大小信息。18.根据权利要求17所述的方法,其中,所述第一图形数据和所述第二图形数据中的每一个包括顶点属性数据、纹理数据或图形状态数据中的至少一个。19.根据权利要求10所述的方法,其中,所述预取包括顺序地检索L1高速缓存、L2高速缓存和动态随机存取存储器DRAM以预取所述第二图形数据。20.一种片上系统SoC,包括:中央处理单元CPU,被配置为通过控制所述SoC的操作来执行应用;以及图形处理单元GPU,被配置为使用预取的图形数据来执行基于图块的渲染,其中,所述GPU包括:图块器,被配置为对当前帧执行分仓,并获得所述当前帧的多个图块中的第一图块的第一分仓比特流;分仓相关器,被配置为通过使用所述第一分仓比特流和前一帧的第二图块的第二分仓比特流,来确定所述第一图块和所述第二图块是否彼此相似,其中所述第二图块的图块ID与所述第一图块的图块ID相同;预取器,被配置为当确定所述第一图块和所述第二图块彼此相似时,通过使用所述图块ID来预取用于渲染所述第二图块的第二图形数据;以及至少一个处理器,被配置为通过使用预取的第二图形数据来渲染所述当前帧。

百度查询: 三星电子株式会社 使用预取的图形数据执行基于图块的渲染的装置和方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。