针对重复工作负荷的结果数据流编码的制作方法

文档序号:6552499阅读:182来源:国知局
针对重复工作负荷的结果数据流编码的制作方法
【专利摘要】本发明公开了针对重复工作负荷的结果数据流编码。图形处理流水线包括具有顶点变换高速缓存(20)的顶点变换平台(14)。若已接收变换顶点数据的请求且顶点变换高速缓存(20)指示已针对该接收到的请求产生经变换的顶点数据,则随后在结果数据流内输出该先前产生的经变换顶点数据的指针,以替代该变换顶点数据。在视需要由栅格化平台(16)取得变换顶点数据之前,将该变换顶点数据储存至存储器(10)。
【专利说明】针对重复工作负荷的结果数据流编码

【技术领域】
[0001]本发明涉及数据处理系统的领域。更特定言之,本发明涉及这样的数据处理系统,该数据处理系统接收请求流以执行相应处理任务,并且以产生待作为结果数据流的一部分而输出的对应区块的结果数据值。

【背景技术】
[0002]在许多情况下,数据处理系统可接收执行相应处理任务以产生对应的结果数据值区块的请求流。此类系统的一实例为图形处理流水线,在该图形处理流水线中,顶点变换平台(stage)接收在所接收到的顶点数据上执行变换操作的请求,以形成经变换的顶点数据。这些请求对应于待变换的顶点数据流,且结果数据区块对应于所产生的经变换的顶点数据流。在这些实施例中,通常直接将经变换的顶点数据流传递至后续的栅格化平台。使用宽的总线来传递如此产生的大量的数据。然而,若采用延迟渲染方法(deferred renderingapproach),则随后在由栅格化平台读取经变换的顶点数据之前,需要将该经变换的顶点数据储存至存储器。在此类情形中需要移送至存储器及从存储器移送出的大量数据在速度及功率消耗两方面表现出大量开销。


【发明内容】

[0003]自一个方面可见,本发明提供一种处理数据的方法,该方法包含以下步骤:
[0004]接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分被输出的对应结果数据值区块;
[0005]识别该请求流内一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及:
[0006](i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块;
[0007](ii)若该接收到的请求匹配一先前接收到的请求,则产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
[0008]本技术考虑到在许多实际生活工作负荷中,所接收到的执行相应处理任务的请求流经常含有执行相同处理任务的重复请求。执行相同处理任务将产生相同的结果数据值区块。因此,若先前的请求已导致产生用于输出的相同结果数据值区块,则随后可替代地产生且输出指针(该指针标识该结果数据流内的该先前的结果数据值区块),而不是再次产生且输出相同的结果数据值区块。此指针值可比该指针值指向的结果数据值区块更紧密,且因此节省了待传送的数据量。因为与新接收到的请求相对应的结果数据值区块与先前产生的结果数据值区块相同,所以无信息损失。该结果数据流的接收器接收结果数据值区块或指向先前接收到的结果数据值区块的指针,这些指针可解释为对应于那些先前接收到的结果数据值区块。以此方式,若需要,接收器可将结果数据流重建为与未使用本技术的形式相对应的形式。
[0009]应了解,由于多种原因(诸如减少与结果数据流的传输有关的开销),需要减少该结果数据流的数据量。然而,本技术在将结果数据流输出至存储器时特别有用,因为本技术可减少将结果数据流储存在存储器内及从存储器取得结果数据流的能耗以及减少储存该结果数据流所需要的存储器空间量。
[0010]通过在高速缓存中储存用于识别一组先前接收到的请求的标签值,可有助于识别与新接收到的请求匹配的先前接收到的请求。识别步骤可比较接收到的请求的所接收标签值与储存在高速缓存内的标签值。与高速缓存的标签值中的任一者的匹配指示了接收到的请求与先前接收到的请求相匹配,且因此可使用响应于新接收到的请求所产生的指针来引用针对该先前接收到的请求的该结果数据值区块,并且该指针在结果数据流中输出。
[0011]应了解,高速缓存具有有限量的储存空间,且因此在将要驱逐一高速缓存条目时,该条目的标签值在该高速缓存中将不再可用于与新接收到的请求的标签值作比较。因此,被驱逐的先前接收到的请求不再是在识别步骤中所使用的该组先前接收到的请求的成员。实际上,使高速缓存在时间和空间局域性(locality)(利用该局域性进行存储器存取)方面有效的现实生活考虑亦倾向于应用接收到的请求,且因此实际上可能将类似的请求成组在一起,以使得需要从高速缓存中驱逐先前接收到的请求的标签的效果被缓解。
[0012]一些实施例中的高速缓存可与每一标签值相关联地储存先前结果数据值区块的指针值。指针值可在其自己的分离数据结构中与标签值一起储存,或与针对所涉及的标签值而储存在高速缓存内部的数据值区块一起储存。
[0013]在实施例中可便利地提供对指标值的管理,在这些实施例中,索引值被与作为结果数据流的部分而输出的每个新的结果数据值区块相关联。当索引值充当后续将在结果数据流内引用的先前结果数据值区块时,则可将此索引值用作该结果数据值区块的指针。应了解,索引值可采取多种形式,且在一些实施例中,索引值可以是简单递增的计数值。
[0014]尽管未限制于一种特定的应用领域,本技术发现特别适用于其中处理任务对应于图形处理流水线内的处理平台的实施例。此类处理通常涉及大量的数据,且在待产生的结果数据区块内具有相对高的重复可能性,例如,由于重复使用被操纵的图形数据的多个基元内的相同顶点,因此顶点数据可在多种情况下被变换。在如此的情境中,由顶点变换平台接收所接收到的请求,处理任务是顶点变换操作,且结果数据值流是经变换的顶点数据流。
[0015]在此顶点变换应用中,识别步骤可将顶点识别符与先前变换的顶点的顶点识别符相比较。因此,该顶点识别符可视为针对接收到的请求及针对对应结果数据值区块的标签。
[0016]在一些实施例中,可由顶点变换平台将经变换的顶点数据流储存至存储器,且然后由栅格化平台从存储器读取。因为许多原因,此类延迟渲染图形处理系统为有利的,但是此类系统遭遇到潜在地涉及将大量数据移送至存储器及从存储器移送出大量数据的缺点。本技术减少了这样的开销。
[0017]自另一个方面可见,本发明提供了一种用于处理数据的设备,该设备包含:
[0018]接收电路,该接收电路被配置来接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分输出的对应结果数据值区块;
[0019]识别电路,该识别电路被配置来识别该请求流内的一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及
[0020]输出产生电路,该输出产生电路被配置来响应于接收到的请求产生结果数据值区块,其中
[0021](i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则利用该输出产生电路执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块;
[0022](ii)若该接收到的请求匹配一先前接收到的请求,则利用该输出产生电路产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
[0023]自另一个方面可见,本发明提供一种用于处理数据的设备,该设备包含:
[0024]接收装置,该接收装置用于接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分输出的对应结果数据值区块;
[0025]识别装置,该识别装置用于识别该请求流内的一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及
[0026]输出产生装置,该输出产生装置用于响应于接收到的请求产生结果数据值区块,其中
[0027](i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则利用该输出产生装置执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块;
[0028](ii)若该接收到的请求匹配一先前接收到的请求,则利用该输出产生装置产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
[0029]从下文中联系附图阅读的说明性实施例的详细描述,本发明的上述及其他目标、特征及优势将变得显而易见。

【专利附图】

【附图说明】
[0030]图1示意性地图示出芯片上系统集成电路,该芯片上系统集成电路包括图形处理流水线,该图形处理流水线将经变换的顶点数据储存至存储器作为延迟渲染的部分;
[0031]图2为流程图,该流程图示意性地图示响应于接收到变换顶点数据的请求而产生经变换的顶点数据流;
[0032]图3示意性地图示出包括结果数据区块及指向结果数据区块的指针两者的结果数据流的产生;
[0033]图4示意性地图示出用于储存标签值、经变换的顶点数据及索引值的高速缓存;以及
[0034]图5示意性地图示顶点变换平台。

【具体实施方式】
[0035]第I图示意性地图示出芯片上系统集成电路(SoCIC) 2,该芯片上系统集成电路2包括图形处理单元4、通用处理器6、显示驱动器8及存储器10。图形处理单元4包括图形处理流水线,该图形处理流水线具有提取平台12、顶点变换平台14、栅格化平台16及一个或多个其他平台18。顶点变换平台14接收由提取平台12自存储器10提取的顶点数据。接收顶点数据对应于接收变换该顶点数据的请求,且顶点变换平台14执行此变换。将产生的经变换顶点数据储存在顶点变换高速缓存20内。顶点变换高速缓存可用于抑制重复地变换接收到的相同顶点数据的要求,且可储存经变换的顶点数据以供再用。此经变换的顶点数据形成结果数据流的部分,该结果数据流包含储存回存储器10的结果数据值区块。栅格化平台16视需要从存储器10取得此经变换的顶点数据,且在其上执行栅格处理。
[0036]除了储存先前产生的结果数据值区块且抑制再次执行相同处理以产生这些结果数据值区块的需要,顶点变换高速缓存20亦可用于识别已发送至存储器10的先前产生的相同结果数据值区块以作为结果数据流的部分。因此,取代重发这些相同结果数据值区块至存储器10,可发送指向该先前产生的结果数据值区块的指针。此举减少传送至存储器10及从存储器10传送出的数据量。
[0037]栅格化平台16从存储器10取得结果数据值区块及指针。栅格化平台16可自(从存储器10取得的)编码的结果数据流来重建完整的变换顶点数据流,且可以以传统的方式为栅格处理供给此完整的变换顶点数据流。
[0038]用于界定图形图像的顶点数据网格(mesh)可以被配置为使得重复引用的顶点在这些顶点被呈现用于变换的时间上彼此接近,从而增加在顶点变换高速缓存20中识别此类重复顶点变换的可能性,且因此可抑制相同数据的重复产生,并且包含经变换的顶点数据的重复结果数据值区块转而可由指向已被产生且输出的经变换顶点数据的指针替代。
[0039]第2图为流程图,该流程图示意性地图示出根据本技术接收执行处理任务的请求以及产生结果数据流。在步骤22处,直至顶点变换平台14接收待变换的顶点数据后处理才开始。在步骤24处,在顶点变换高速缓存20内查找接收到的顶点数据的标签值。根据常规高速缓存技术,顶点变换高速缓存20可具有不同程度的关联性(associativity)。完全关联或集合关联的高速缓存的使用可改良效率。
[0040]步骤26判断顶点变换高速缓存20内是否有命中。若无命中,则随后处理进行至步骤28,在步骤28处,在接收到的顶点数据上执行变换处理,以产生经变换的顶点数据。步骤30随后递增计数值(待用作指针/索引),且将此计数值附加至经变换的顶点数据。步骤32将经变换的顶点数据、该顶点标签及计数值储存于顶点变换高速缓存20中。步骤34将包括计数值的经变换的顶点数据输出至存储器10。发送计数值连同经变换的顶点数据(稍后可将该经变换的顶点数据指向使用该计数值)的步骤促进了后续处理中完整结果数据流的重建。
[0041]若步骤26处的判定为在顶点变换高速缓存20内发生命中,则随后处理进行至步骤36。步骤36将顶点变换高速缓存20内命中的条目的计数值输出至存储器10。命中的发生指示在步骤22处接收的用于变换的顶点已经被变换并且在先前处理中已输出针对该接收到的顶点的经变换顶点数据(参看步骤34)。因此,可藉由仅发送在结果数据流内指向该先前产生且输出的经变换顶点数据的指针来减少数据量。
[0042]第3图示意性地图示用于产生经变换的顶点数据流的顶点变换处理。待变换的顶点数据表示为四个基元三角形。第一基元三角形具有顶点A、B、C。第二基元三角形具有顶点B、C、D。第三基元三角形具有顶点C、D、E。第四基元三角形具有顶点D、E、F。当以第一、第二、第三及第四基元三角形的顺序将此等基元三角形的顶点数据发送至顶点变换平台14时,所得的经变换顶点数据流将如图所示。
[0043]关于第一三角形,顶点A、B及C第一次遇到,且因此完整的经变换顶点数据将被产生并将在经变换顶点数据流内输出。关于第二基元三角形,顶点B、C已遇到,且因此顶点变换平台14产生相应的指针b、c (指针b、c识别已被产生且输出的经变换顶点数据B、C),而不是产生经变换的顶点数据且输出该经变换的顶点数据。形成第二基元三角形的部分的顶点D之前尚未遇到,且因此经变换的顶点数据被输出为D。
[0044]关于第三基元三角形,顶点D和C之前已遇到,且因此指向先前产生的经变换顶点数据的指针被包括在结果数据流内。顶点E之前尚未被遇到,且因此将输出顶点E的完整的经变换顶点数据。关于第四基元三角形,顶点D及E之前已遇到,且因此指针d、e将在其位置中被输出。顶点F之前尚未遇到,且因此顶点F的完整的经变换顶点数据被产生且在经变换的顶点数据流内输出。
[0045]第4图示意性地图示出顶点变换高速缓存20。在此实例中,顶点变换高速缓存20图示出为完全关联高速缓存,以使得接收到的顶点的标签值被与储存作为顶点变换高速缓存20的一部分的所有标签值进行并行比较。对于高速缓存的每一行,储存有将用作在结果数据流中替代该经变换顶点数据的指针/索引的计数值、经变换顶点数据及标签值(TAG),若经变换的顶点数据在结果数据流内重复而此经变换的顶点数据仍保持在顶点变换高速缓存20内的话。
[0046]顶点变换高速缓存20可应用最近最少使用的驱逐政策,以便管理其有限的储存容量。将了解,尽管第4图图示出标签值、经变换的顶点数据和计数值都在单行上,实际上可将它们存在分离结构或者部分地或完全地合并这些值的结构中。
[0047]第5图示意性地图示顶点变换平台14。顶点变换平台14包括接收电路38,接收电路38用于接收执行处理任务的请求,该任务形式为将顶点数据变换为经变换的顶点数据。识别电路40用于识别接收到的请求(顶点数据)是否对应于一组先前接收到的请求(先前接收到的顶点数据)的任一成员。若存在匹配,则随后向输出产生电路系统发出匹配讯号,该输出产生电路系统产生指向该先前产生的经变换顶点数据的指针,而不是再次产生及输出该经变换顶点数据。如第3图图示出,输出产生电路42产生结果数据流。计数器44用于跟踪将用作指针值(索引值)的计数值。
[0048]应了解,顶点变换高速缓存20具有有限的储存容量,且识别电路40将接收到的请求(顶点数据)与储存在顶点变换高速缓存20内的对应于一组先前接收到的请求(一组先前产生的经变换的顶点数据)的数据相比较。由于顶点变换高速缓存20 (该高速缓存20应用驱逐政策,诸如最近最少使用的驱逐政策)的有限的储存容量,此组先前接收到的请求可不包括所有先前接收到的请求。
[0049]尽管本文已参阅附图详细描述本发明的说明性实施例,但是应了解,本发明不限制于彼等精确的实施例,且在不脱离如随附权利要求所定义的本发明的范畴及精神的情况下,本领域技术人员可实现对实施例进行的多种变化及修改。
【权利要求】
1.一种处理数据的方法,该方法包含以下步骤: 接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分被输出的对应结果数据值区块; 识别该请求流内一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及: (i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块; (?)若该接收到的请求匹配一先前接收到的请求,则产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
2.如权利要求1所述的方法,其中该结果数据流被输出至存储器。
3.如权利要求1所述的方法,该方法包含以下步骤: 在高速缓存内储存识别该组先前接收到的请求的标签值;以及其中 该识别步骤将该接收到的请求的一接收到的标签值与储存在该高速缓存内的所述标签值相比较。
4.如权利要求3所述的方法,其中,当将与先前接收到的牺牲请求相对应的牺牲标签值从该高速缓存驱逐时,则该先前接收到的牺牲请求不再作为该识别步骤中所使用的该组先前接收到的请求的成员。
5.如权利要求3所述的方法,其中该高速缓存与每个标签值相关联地储存该先前结果数据值区块的该指标。
6.如权利要求3所述的方法,其中该高速缓存储存针对该组先前接收到的请求的所述结果数据值区块。
7.如权利要求1所述的方法,该方法包含以下步骤: 将索引值与作为该结果数据流的部分输出的每一新结果数据值区块相关联;以及其中 该指针包含该先前结果数据值区块的索引值。
8.如权利要求1所述的方法,其中该处理任务对应于图形处理流水线内的一处理平台。
9.如权利要求8所述的方法,其中所述接收到的请求是由该图形处理流水线内的顶点变换平台接收的、用以针对图形数据内的给定顶点变换顶点数据的请求,所述处理任务是对该顶点数据执行顶点变换操作,且该结果数据值流是经变换顶点数据流。
10.如权利要求9所述的方法,其中该识别步骤将一顶点识别符与一组先前经变换顶点的顶点识别符相比较。
11.如权利要求9所述的方法,其中该经变换的顶点数据流被传递至该图形处理流水线内的栅格化平台。
12.如权利要求11所述的方法,其中该经变换的顶点数据流由该顶点变换平台储存至存储器,且由该栅格化平台从该存储器读取。
13.一种用于处理数据的设备,包含: 接收电路,该接收电路被配置来接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分输出的对应结果数据值区块; 识别电路,该识别电路被配置来识别该请求流内的一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及 输出产生电路,该输出产生电路被配置来响应于接收到的请求产生结果数据值区块,其中 (i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则利用该输出产生电路执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块; (ii)若该接收到的请求匹配一先前接收到的请求,则利用该输出产生电路产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
14.如权利要求13所述的设备,该设备包含存储器,且其中该结果数据流被输出至该存储器。
15.如权利要求13所述的设备,该设备包含高速缓存,该高速缓存被配置来储存识别该组先前接收到的请求的标签值,其中该识别电路被配置来将该接收到的请求的一接收到的标签值与储存在该高速缓存内的所述标签值相比较。
16.如权利要求15所述的设备,其中当将与先前接收到的牺牲请求相对应的牺牲标签值从该高速缓存驱逐时,则该先前接收到的牺牲请求不再作为该识别步骤中所使用的该组先前接收到的请求的成员。
17.如权利要求15所述的设备,其中该高速缓存被配置来与每个标签值相关联地储存该先前结果数据值区块的该指标。
18.如权利要求15所述的设备,其中该高速缓存被配置来储存针对该组先前接收到的请求的所述结果数据值区块。
19.如权利要求13所述的设备,其中该输出产生电路被配置来将索引值与作为该结果数据流的部分输出的每一新结果数据值区块相关联,且其中该指针包含该先前结果数据值区块的索引值。
20.如权利要求13所述的设备,其中该接收电路、该识别电路及该输出产生电路均为图形处理流水线内的处理平台的部分。
21.如权利要求20所述的设备,其中所述接收到的请求是由该图形处理流水线内的顶点变换平台接收的、用以针对图形数据内的给定顶点变换顶点数据的请求,所述处理任务是对该顶点数据执行顶点变换操作,且该结果数据值流是经变换顶点数据流。
22.如权利要求21所述的设备,其中该识别电路被配置来将一顶点识别符与一组先前经变换顶点的顶点识别符相比较。
23.如权利要求21所述的设备,其中该图形处理流水线包含栅格化平台,并且该经变换的顶点数据流被传递至该栅格化平台。
24.如权利要求23所述的设备,该设备包含存储器,且其中该经变换的顶点数据流由该顶点变换平台储存至该存储器,且由该栅格化平台从该存储器读取。
25.一种用于处理数据的设备,包含: 接收装置,该接收装置用于接收执行相应处理任务的一请求流,以产生待作为结果数据流的部分输出的对应结果数据值区块; 识别装置,该识别装置用于识别该请求流内的一接收到的请求是否匹配该请求流内的一组先前接收到的请求中的任一者,针对该任一者已产生了用于作为该结果数据流的部分而输出的先前结果数据值区块,以及 输出产生装置,该输出产生装置用于响应于接收到的请求产生结果数据值区块,其中 (i)若该接收到的请求不匹配该组先前接收到的请求中的任一者,则利用该输出产生装置执行对应于该接收到的请求的新处理任务,且产生作为该结果数据流的部分而输出的新结果数据值区块; (ii)若该接收到的请求匹配一先前接收到的请求,则利用该输出产生装置产生用于作为该结果数据流的部分而输出的指向该结果数据流内的该先前结果数据值区块的一指针。
【文档编号】G06F17/30GK104281639SQ201410320689
【公开日】2015年1月14日 申请日期:2014年7月7日 优先权日:2013年7月12日
【发明者】亚历山大·尤金·查林, 布兰德利·阿尔伯特·格兰瑟姆 申请人:Arm 有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1