分布式图形处理器分级中的系统一致性的制作方法

文档序号:9235929阅读:473来源:国知局
分布式图形处理器分级中的系统一致性的制作方法
【专利说明】
【背景技术】
[0001]诸如游戏和媒体播放器的某些应用可以使用嵌入式设计、图形处理单元等等,以便处理计算密集型工作负荷。在这样的情况中,中央处理单元(CPU)可以例如以一个或多个命令的形式将工作负荷派遣到GPU,其中GPU可以对于所述一个或多个命令做出响应而在内部执行包含多个工作项目的工作组。为了维持GPU上的工作项目和工作组之间的序列一致性,可以使用诸如屏障命令(“屏障”)、存储器篱障和未排序原子操作(“原子”)的解决方案。然而,这样的解决方案会是粗粒度的并且不能够控制具体的存储器存取顺序。而且,传统解决方案可能不能够确保在GPU和CPU上的存储器一惯性(例如,一致性),除非使用硬件刷新和软件栈调用,其中刷新和栈调用会对性能具有负面影响。
【附图说明】
[0002]通过阅读下面的说明书和所附权利要求书,并且通过参照下面的附图,实施例的各种优点对于本领域技术人员将变得显而易见,在附图中:
[0003]图1A是根据实施例的计算架构的示例的方框图;
[0004]图1B是根据实施例的计算切片的示例的方框图;
[0005]图2是根据实施例的操作图形处理器的方法的示例的流程图;
[0006]图3A到3E是根据实施例的一致性协议表的示例的说明;
[0007]图4是根据实施例的具有导航控制器的系统的示例的方框图;并且
[0008]图5是根据实施例的具有小形状因子的系统的示例的方框图。
【具体实施方式】
[0009]图1A和IB示出了可以通常作为计算平台的一部分的计算架构10,该计算平台例如以智能电话、平板电脑、移动互联网设备(MID)、智能电视(TV)、媒体播放器、笔记本电脑、桌面型计算机、服务器、可佩戴设备等等为例。如在图1A中最佳示出的,系统高速缓存12 (例如,静态随机存取存储器/SRAM、探听过滤器)可以耦合到具有专用高速缓存16(16a-16c,例如SRAM)的多个主机处理器14(14a_14c)。系统高速缓存12也可以耦合到系统存储器18 (例如,动态随机存取存储器/DRAM,“主存储器”),该系统存储器用于存储针对架构10的各种组件的数据、指令等等。每一个主机处理器14可以是能够执行与视觉内容的呈现相关联的硬件、脚本等等并且经由图形接口 22将相关联的工作负荷发出到图形处理器20的中央处理单元(CPU)。系统高速缓存12可以通常跟踪与那些工作负荷相关联的存储器行(例如,高速缓存行或者其它数据结构)的存在,并且提供探听过滤服务,其中图形接口 22可以评估从系统高速缓存12接收到的探听请求并且将它们发送到图形处理器20上的合适的高速缓存目的地用于进一步评估。
[0010]图形处理器20可以通常处理计算密集型工作负荷,例如以像素颜色值计算、直方图计算等等为例,以便支持和/或促进视觉内容(例如,三维/3D图形、非3D图像等等)的呈现。更具体地说,所说明的图形处理器20包括用于执行多个工作项目的计算切片24(24a-24d)的物理分布的集合,以及用于维持与多个工作项目相关联的一个或多个存储器行(例如,系统定义的尺寸)在图形处理器20、系统存储器18和主机处理器14上的一致性的高速缓存结构。如下面将更加详细讨论的,高速缓存结构可以提供维持工作项目和工作组之间的序列一致性、控制特定的存储器存取顺序并且确保存储器一惯性(例如,一致性)的细粒度方案。
[0011]如在图1B中最佳示出的,高速缓存结构可以包括多个第一级(LI)高速缓存26 ( “Ll$”),每一个LI高速缓存26专用于计算切片24的执行块28。因此,在由高速缓存结构跟踪存储器行的同时,多个LI高速缓存26可以提供相对高的带宽和低的时延存储。每一个执行块28可以包括用于执行工作项目的执行单元(EU) 34的阵列以及用于执行在寻址存储器中的数据操作数时涉及的有效地址计算(例如,使用整数算法)的地址生成单元(AGU)36 ο
[0012]高速缓存结构也可以包括物理分布的共享高速缓存结构30,其中在多个LI高速缓存26和共享高速缓存结构30之间维持一个或多个存储器行的一致性。将共享高速缓存结构30配置为物理分布的实体可以能够使共享高速缓存结构30的尺寸最大化,同时满足每一个执行块28的带宽需求。在所说明的示例中,共享高速缓存结构30被配置为具有多个排的第二级高速缓存(“L2$”)。在这样的情况下,共享高速缓存结构30可以使存储器行在多个排上形成散列,以便确保数据在共享高速缓存结构30上的均匀分布。所说明的方案可以提供较大的并且更加可调节的高速缓存,具有最小的探听惩罚(例如,对于处理探听请求的相对小的性能影响),在跨计算切片业务方面具有潜在的增加。可选地,共享高速缓存结构30可以被配置为多个独立的第二级(L2)高速缓存31,其中,每一个L2高速缓存31专用于计算切片。这样的方案可以提供执行块28的本地存储,同时最小化跨计算业务。这两个实现选择可以使用相同的探听跟踪逻辑实现一致性。
[0013]可选地,高速缓存结构可以包括用于跟踪一个或多个存储器行的多个交叉节点32 (例如,高速缓存桥),每一个交叉节点32专用于计算切片24。交叉节点32可以将源自系统高速缓存12的探听请求分布到共享高速缓存结构30和LI高速缓存26。此外,交叉节点32可以从共享高速缓存结构30和多个LI高速缓存26收集一个或多个探听结果,并且将收集到的探听结果经由图形接口 22传送到系统高速缓存12。如下面将更加详细讨论的,高速缓存结构可以使用修改、独占、共享、无效(MEDSI)协议来维持一个或多个存储器行的一致性。
[0014]所说明的架构10因此使用图形处理器20的高速缓存结构、主机处理器14的专用高速缓存16、系统高速缓存12和系统存储器18来实现能够维持图形工作项目和工作组之间的序列一致性、控制特定的存储器存取顺序并且确保整个架构10上的一致性的存储器/高速缓存分级。这样的细粒度方案相对于依赖于屏障、存储器篱障、未排序原子、硬件刷新和软件栈调用的传统方案会尤其有利。
[0015]例如,加载(例如,读取操作)和存储(例如,写入操作)跟踪可以开始于执行块28的级,其中系统存储器18的读取可以返回有效数据并且存储器分级中的较高级可以跟踪受影响的存储器行的存在,用于该分级中的下一个较低级。可以允许分级中的低级默默地丢弃它们的存储器行用于更换,除非修改了逐出行(例如,由于更换而被逐出的存储器行)。写入跟踪会是更加限制的,其中每一个写入的发起者可以基于该写入相对于存储器行的尺寸来在该发起者更新它的LI高速缓存26之前实现目的地地址的所有权。出于简化的目的,可以实现策略,其中仅允许修改的存储器行的一个拷贝存在于整个高速缓存结构上。这样的策略可以规定在相对精确地进行数据交换的同时跟踪存储器行的最新拷贝。
[0016]现在转到图2,示出了操作图形处理器的方法38。方法38可以被实现在可执行软件中作为存储在存储器的计算机或者计算机可读存储介质中的逻辑指令的集合,该存储器例如是随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等等,可以被实现在可配置逻辑中,该可配置逻辑例如以可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)为例,可以被使用电路技术实现在固定功能逻辑硬件中,该电路技术例如以专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或者晶体管-晶体管逻辑(TTL)技术或者其任意组合为例。
[0017]所说明的处理块40规定由计算切片的物理分布的集合来执行多个工作项目。块42可以由高速缓存结构维持与多个工作项目相关联的一个或多个存储器行在图形处理器、系统存储器和一个或多个主机处理器上的一致性。块42可以涉及由多个交叉节点跟踪一个或多个存储器行,其中,在多个LI高速缓存和物理分布的高速缓存结构上维持一个或多个存储器行的一致性,每一个LI高速缓存专用于计算切片的执行块并且每一个交叉节点专用于计算切片。而且,共享高速缓存结构可以或者使用多个独立的L2高速缓存来跟踪一个或多个存储器行,或者使该一个或多个存储器行中的至少一个在L2高速缓存的多个排上形成散列。在独立的L2高速缓存的情况下,每一个L2高速缓存可以专用于计算切片。
[0018]块42也可以涉及由多个交叉节点将源自耦合到一个或多个主机处理器的系统高速缓存的一个或多个探听请求分布到共享高速缓存结构和多个LI高速缓存。此外,块42可以规定由多个交叉节点从共享高速缓存结构和多个LI高速缓存收集一个或多个探听结果,并且由多个交叉节点将所述一个或多个探听结果传送到耦合到一个或多个主机处理器的系统高速缓存。块42也可以包括由高速缓存结构使用MESI协议来维持一个或多个存储器行的一致性。
[0019]图3A到3E通常示出了实现一致性协议的方案,其中每一个存储器行被标记有MESI (修改、独占、共享、无效)状态中的一个。具体地说,当存储器行仅存在于当前高速缓存中并且是“玷污”的(例如,存储器行已经从系统存储器中的值改变)时,可以使用修改状态。如果特定的高速缓存具有处于修改状态中的存储器行,则在允许将该存储器行从系统存储器读取之前,可以要求该高速缓存将与该存储器行相对应的数据写回到系统存储器。这样的“写回”会导致存储器行被改变到高速缓存中的独占状态。
[0020]当存储器行仅存在于当前高速缓存中并且是“干净”的(例如,存储器行与系统存储器中的值匹配)时,可以使用独占状态。在这样的情况下,响应于到高速缓存的读取请求,可以将存储器行改变到共享状态。存储器行也可以响应于到高速缓存的写入请求而改变到修改状态。共享状态可以指示存储器行是干净的并且其可以被存储在系统的其它高速缓存中。也可以在任意时间丢弃共享存储器行(例如,改变到无效状态)。无效状态可以用于指示存储器行未被使用(例如,被从高速缓存逐出)。如已经注意到的,高速缓存结构可以使用MESI协议来在图形处理器、系统存储器和主机处理器的专用高速缓存上维持存储器一致性。从特定的LI高速缓存(“发出的Ll$”)的角度来采取图3A到3E中示出的示例。
[0021]例如,图3A示出了针对涉及特定的LI高速缓存的读取操作的一致性协议表44。在所说明的示例中,“原始请求”列45指示关于特定的存储器行执行的操作类型,“L2$”列47指示当操作被请求时L2高速缓存中的存储器行的状态,“其它Ll$”列49指示当操作被请求时其它LI高速缓存中的存储器行的状态,“发出的Ll$”51列指示当操作被请求时正在讨论的LI高速缓冲中的存储器行的状态,第一 “Ll$有效(SSV) ”列53指示当操作被请求时子切片有效(SSV)高速缓存的数量(例如,针对存储器行具有有效数据的LI高速缓存的数量),“L2$状态”列55指示在操作被执行之后L2高速
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1