当前位置: 首页 > 专利查询>英特尔公司专利>正文

确保跨绘制调用的共享资源数据一致性的高效硬件机制制造技术

技术编号:14754130 阅读:94 留言:0更新日期:2017-03-02 11:58
系统和方法可以提供:从与诸如例如乱序访问视图(UAV)之类的共享资源相关联的软件模块接收多个信号。所述多个信号包括指示绘制调用是否访问共享资源的第一信号、指示是否已经达到绘制调用的边界的第二信号和指示绘制调用是否具有一致性要求的第三信号。附加地,可以基于所述多个信号来在着色器启用中选择性地分派对应于绘制调用的工作量。

【技术实现步骤摘要】
【国外来华专利技术】相关申请的交叉引用本申请要求2014年6月26日提交的美国非临时专利申请No.14/315,597的优先权权益。
技术介绍
图形管线可以促进内容在计算系统上的视觉输出。在一个示例中,图形管线被表示为一系列级,包括各种“着色器”级(例如,涡流、壳体、域、几何形状和/或像素着色器级),其建立用于构建最终图像的像素、顶点和/或纹理的位置、色调、饱和度、明亮度和对比度。乱序访问视图(UAV)可以由着色器级使用以在将最终图像转移到经由显示器/屏幕输出的渲染目标之前缓冲/存储中间表面信息。在操作期间,给定着色器级可能经由一个或多个绘制调用来向UAV写入和/或从UAV读取。因为UAV可以在多个着色器级之间共享,所以在完成来自另一个着色器级的“生产者”绘制调用之前,担心与来自访问UAV中的信息的一个着色器级的“消费者”绘制调用相关联的写入后读取(RAW)危险。为了防范这样的危险,常规解决方案可以使用在应用编程接口(API)级别处运行于中央处理单元(CPU)上的软件模块以在检测到绘制调用依赖性时冲洗出整个图形管线。这样的方案可能向管线中插入相对大的“气泡”且继而对效率、性能、功耗和/或电池寿命具有负面影响。附图说明实施例的各种优点将通过阅读以下说明书和随附权利要求且通过参照以下附图而对本领域技术人员来说变得明显,在附图中:图1是根据实施例的图形管线架构的示例的框图;图2是根据实施例的操作着色器级分派模块的方法的示例的流程图;图3是根据实施例的防止写入后读取(RAW)危险的方法的示例的流程图;图4是根据实施例的维持全局计数器的方法的示例的流程图;图5是根据实施例的填充先入先出(FIFO)缓冲器的方法的示例的流程图;图6是根据实施例的维持线程计数器的方法的示例的流程图;图7是根据实施例的全局观察绘制调用的方法的示例的流程图;图8是根据实施例的着色器分派模块的示例的框图;图9是根据实施例的系统的示例的框图;以及图10是根据实施例的具有小形状因子的系统的示例的框图。具体实施方式图1示出了架构20,其中诸如例如应用编程接口(API)、操作系统(OS)组件、用户模式驱动器(UMD)等等之类的软件模块32向具有一系列级的图形管线22发布绘制调用33(33a、33b)。在所图示的示例中,这些级包括多个着色器启用(invocation)24(24a、24b,例如在图形处理器、计算引擎/切片、执行单元或其它图形硬件中),其一般可以建立用于构建最终图像的像素、顶点和/或纹理的位置、色调、饱和度、明亮度和对比度。该多个着色器启用24可以包括例如具有对应着色器分派模块26(26a、26b,例如在图形硬件中)的上游着色器24a和下游着色器24b,着色器分派模块26根据绘制调用33向其相应的着色器启用24分派工作量(例如,以线程和/或线程群组的形式)。着色器启用24可以经由软件模块32向共享资源30(例如,DIRECTX乱序访问视图/UAV、OPENGL图像、通用缓冲器、暂时存储器等)发布访问28(28a、28b)。访问28一般可以在将最终图像转移给经由显示器/屏幕(未示出)输出的渲染目标之前在共享资源30中缓冲/存储视觉信息(例如,中间表面信息、暂时存储器数据)。更特别地,所图示的上游着色器24a向共享资源30发布第一访问28a(“共享资源访问#1”),其中第一访问28a对应于第一绘制调用33a(“绘制调用#1”)。类似地,所图示的下游着色器24b向共享资源30发布第二访问28b(“共享资源访问#2”),其中第二访问28b对应于第二绘制调用33b(“绘制调用#2”)。第一访问28a可能从例如一个或多个线程发布,该一个或多个线程涉及相对于图像的特定区(例如,由十六个线程的群组在其上操作的4x4像素块)的涡流、壳体、域和/或几何形状着色器操作,而第二访问28b可能从例如一个或多个线程发布,该一个或多个线程涉及相对于图像的相同区的像素着色器操作。因而,如果第一访问28a写入由第二访问28b消费的数据,则生产者-消费者关系可以在绘制调用33之间且跨着色器启用24而存在。在所图示的示例中,软件模块32利用第一绘制调用33a发布第一多个信号34并利用第二绘制调用33b发布第二多个信号35,而不是在第一绘制调用33a之后发布管线冲洗且在发布第二绘制调用33b之前等待冲洗以自始至终行进通过管线22。如将更详细讨论的,所图示的信号34、35使得一个或多个分派模块26能够在管线级别处内部追踪绘制调用33的状态并确定生产者-消费者关系是否存在。相应地,对应于下游着色器24b的分派模块26b可以基于第二多个信号35选择性地分派对应于第二绘制调用28b的工作量。要特别注意到,可以准许对应于第二绘制调用33b的工作量前进通过管线22的较早级,而不是等待整个管线22被冲洗。这样的方案可以大幅减少管线22中气泡的存在,并继而可以改进效率和性能,降低功耗和/或延长电池寿命。信号34、35可以被格式化为命令/指令位的集合,其传送关于每一个绘制调用33是否访问共享资源30、是否已经达到每一个绘制调用33的边界(例如,开头、结尾)、每一个绘制调用33是否具有一致性要求(例如,是否是相对于较早绘制调用的消费者)等等的信息。下表I示出了用于信号34、35的协议的一个示例。共享资源标记共享资源边界共享资源一致性要求含义和行为0XX当所标记的共享资源为零时,忽略边界和一致性位110绘制调用的开头,并且该新绘制调用不具有关于先前绘制调用的一致性要求111绘制调用的开头,并且该新绘制调用具有关于先前绘制调用的一致性要求10X绘制调用的结尾,忽略一致性位表I。因而,随着引起访问28的绘制调用33由软件模块32发布给图形管线22,信号34、35可以由特定着色器启用24的分派模块26(诸如例如下游着色器24b(例如,像素着色器)的分派模块26b)检查。分派模块26继而可以使用信号34、35以追踪绘制调用33和相关联的线程/线程群组,并确定是将随后的工作量分派给着色器启用还是扣留那些工作量直到例如一个或多个生产者绘制调用已经完成。图2示出了操作着色器分派模块(诸如例如已经讨论的分派模块26b(图1))的方法40。方法40可以在一个或多个模块中被实现为:存储在诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、闪速存储器等之类的机器或计算机可读存储介质中的逻辑指令的集合;可配置逻辑,诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD);使用电路技术的固定功能逻辑硬件,该电路技术诸如是例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术;或者其任何组合。例如,实施方法40中所示的操作的计算机程序代码可以以一个或多个编程语言的任何组合而编写,该一个或多个编程语言包括:面向对象的编程语言,诸如C++等等;以及常规过程编程语言,诸如“C”编程语言或类似编程语言。此外,方法40可以使用本文提及的电路技术中的任一个而实现。所图示的处理块42提供:从与共享资源相关联的软件模块接收多个信号。该多个信号可以包括例如指示绘制调用是否访问共享资源的第一信号(例如,对应于表I本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201580027624.html" title="确保跨绘制调用的共享资源数据一致性的高效硬件机制原文来自X技术">确保跨绘制调用的共享资源数据一致性的高效硬件机制</a>

【技术保护点】
一种输出视觉内容的系统,包括:接收内容的无线电装置;共享资源;执行与共享资源相关联的软件模块的主机处理器;以及着色器分派模块,包括:接口,从软件模块接收多个信号,其中所述多个信号包括指示与内容相关联的绘制调用是否访问共享资源的第一信号、指示是否已经达到绘制调用的边界的第二信号、以及指示绘制调用是否具有一致性要求的第三信号,以及绘制调用管理器,基于所述多个信号来在着色器启用中选择性地分派对应于绘制调用的工作量;以及在视觉上呈现内容的显示器。

【技术特征摘要】
【国外来华专利技术】2014.06.26 US 14/3155971.一种输出视觉内容的系统,包括:接收内容的无线电装置;共享资源;执行与共享资源相关联的软件模块的主机处理器;以及着色器分派模块,包括:接口,从软件模块接收多个信号,其中所述多个信号包括指示与内容相关联的绘制调用是否访问共享资源的第一信号、指示是否已经达到绘制调用的边界的第二信号、以及指示绘制调用是否具有一致性要求的第三信号,以及绘制调用管理器,基于所述多个信号来在着色器启用中选择性地分派对应于绘制调用的工作量;以及在视觉上呈现内容的显示器。2.根据权利要求1所述的系统,其中绘制调用管理器包括:待决的全局观察的绘制调用的全局计数器;以及一致性单元,仅在以下情况下才对着色器启用扣留工作量:第一信号指示绘制调用访问共享资源,第二信号指示已经达到绘制调用的开头,并且第三信号指示绘制调用具有一致性要求,其中工作量被扣留直到全局计数器已经达到零。3.根据权利要求2所述的系统,其中绘制调用管理器进一步包括:递增单元,响应于第二信号指示已经达到绘制调用的结尾而使全局计数器递增;以及递减单元,响应于来自下游图形组件的确认而使全局计数器递减。4.根据权利要求1所述的系统,其中绘制调用管理器包括:群组标识符先入先出(FIFO)缓冲器;分配器,在第一信号指示绘制调用向共享资源写入并且第二信号指示已经达到绘制调用的开头的情况下分配用于线程群组的群组标识符;以及推送单元,将群组标识符添加到FIFO缓冲器。5.根据权利要求1所述的系统,其中绘制调用管理器包括:线程计数器;递增单元,针对与绘制调用相关联的线程群组中的每一个线程使线程计数器递增;发动单元,将线程群组中的线程分派给着色器启用;以及递减单元,响应于线程群组中的每一个线程的引退使线程计数器递减。6.根据权利要求1-5中任一项所述的系统,其中绘制调用管理器包括:群组标识符先入先出(FIFO)缓冲器;以及全局观察单元,响应于FIFO缓冲器中的顶部条目具有带有为零的线程计数器的群组标识符并且全局计数器大于零而张贴全局观察的通知,其中线程计数器追踪与绘制调用相关联的线程群组中的每一个线程,并且全局计数器追踪待决的全局观察的绘制调用。7.一种操作着色器分派模块的方法,包括:从与共享资源相关联的软件模块接收多个信号,其中所述多个信号包括指示绘制调用是否访问共享资源的第一信号、指示是否已经达到绘制调用的边界的第二信号和指示绘制调用是否具有一致性要求的第三信号;以及基于所述多个信号来在着色器启用中选择性地分派对应于绘制调用的工作量。8.根据权利要求7所述的方法,其中选择性地分派工作量包括:仅在以下情况下才对着色器启用扣留工作量:第一信号指示绘制调用访问共享资源,第二信号指示已经达到绘制调用的开头,并且第三信号指示绘制调用具有一致性要求,其中工作量被扣留直到待决的全局观察的绘制调用的全局计数器已经达到零。9.根据权利要求8所述的方法,进一步包括:响应于第二信号指示已经达到绘制调用的结尾而使全局计数器递增;以及响应于来自下游图形组件的确认而使全局计数器递减。10.根据权利要求7所述的方法,进一步包括:如果第一信号指示绘制调用向共享资源写入并且第二信号指示已经达到绘制调用的开头,则分配用于线程群组的群组标识符;以及将群组标识符添加到先入先出缓冲器。11.根据权利要求7所述的方法,进一步包括:使与绘制调用相关联的线程群组中的每一个线程的线程计数器递增;将线程群组中的线程分派给着色器启用;以及响应于线程群组中的每一个线程的引退而使线程计数器递减。12.根据权利要求7-11中任一项所述的方法,进一步包括:响应于先入先出缓冲器中的顶部条目具有带有为零的线程计数器的群组标识符并且全局计数器大于零而张贴全局观察的通知,其中线程计数器追踪与绘制调用相关联的线程群组中的每一个线程,并且群组计数器追踪待决的全局观察的绘制调用。13.至少一个计算机可读存储介质,其包括指令集,所述指令集在由计算设备的着色器分派模块执行时使着色器分派模块:从与共享资源相关联的软件模块接收多个信号,其中所述多个信号包括指示绘制调用是否访问共享资源的第一信号、指示是否已经...

【专利技术属性】
技术研发人员:P·叙尔蒂A·纳瓦尔J·S·波尔斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1