光栅化的方法和系统的制作方法

文档序号:6609321阅读:269来源:国知局
专利名称:光栅化的方法和系统的制作方法
技术领域
本发明涉及半导体制造的领域。明确地说,本发明涉及一种用于动态地配置集成电路内的功能组件的操作特征的系统和方法。
背景技术
电子系统和电路已为现代社会的进步作出了显著贡献,且用于许多应用中以实现有利的结果。例如数字计算机、计算器、音频装置、视频设备和电话系统的许多电子技术已促进了生产力增加以及分析和传递大多数商业、科研、教育和娱乐领域的数据的成本降低。提供这些有利结果的电子系统通常包含集成电路。需要利用具有非常高可靠度的特征的集成电路来防止错误的结果。然而,设计和构建具有各种功能性和性能特征的集成电路具有挑战性。另外,构建集成电路的制造过程非常复杂且资源密集。
制造集成电路是一项昂贵的、资源密集的活动,其中在单一集成电路单元中包含许多计算组件。通常需要计算组件能够以非常高的可靠度来执行多种任务。各种应用通常需要不同的性能水平和功能性。传统上,用提供设定的功能性的预定数量的适当运作的组件来制造每一电路小片。然而,以可接受的可靠度提供适当且有效的功能性通常较困难。举例来说,许多传统的方法需要集成电路中包含有极少或没有具有缺陷的组件。
按照惯例,在包括许多电路小片的晶片中制造集成电路,其中每一电路小片包括具有许多功能组件的集成电路。来自给定晶片的功能上可接受的电路小片的数目称为晶片的良率。需要维持相对较高的良率以便消除浪费、节省成本并加速给定数目的电路小片的有效制造时间。具有拥有大量组件的高性能电路小片的晶片的良率可能非常低。
存储器芯片制造者所使用的一种减轻集成电路小片内出现有缺陷组件的影响的方法是,产生具有比所需多的组件(例如,存储器单元)的电路小片。如果存在有缺陷的组件,那么将所述有缺陷的组件断开连接并利用“剩余”组件中的一者。此方法通常导致浪费相当多的宝贵的电路小片面积和资源来制造即使在替换有缺陷的组件之后也仍有“剩余”的组件。这些剩余的组件对于功能性和/或操作上的生产力并无帮助。大量电路小片结果是,有具有极佳操作能力的许多“剩余”的组件未被利用。
解决有缺陷的组件的另一传统尝试是,如果与特定功能相关联的一个功能组件有缺陷,那么去除功能能力。举例来说,如果处理器的浮点加速组件有缺陷,那么使用常规修复技术来去除或禁用浮点加速功能性,且处理器变为非浮点加速处理器。另外,最终结果是,具有有限能力且不提供全范围的功能性(例如,不能够执行浮点运算)的可用的集成电路。
发明内容本发明系统和方法实现集成电路中功能组件的配置。本发明系统和方法可基于多种因素来灵活地改变集成电路小片中功能组件的操作特征,所述多种因素包含制造缺陷、兼容性特征、性能要求和系统健康状况(例如,适当操作的组件的数目)。在一个实施例中,本发明配置系统包含功能组件、分配组件、功能组件配置控制器,且视需要包含收集组件。功能组件执行处理操作(例如,图形处理操作、浮点运算等)。分配组件将工作流程信息(例如,图形处理信息、浮点处理信息等)分配到功能组件。功能组件配置控制器配置功能组件的操作特征。收集组件从功能组件“收集”输出或结果,并聚集操作的结果以用于实现共同目标。
在一个示范性实施方案中,使对功能组件的操作特征的变化与对其它功能组件的变化协调。还基于对功能组件的操作特征的变化来调节工作流程进度安排和分配。举例来说,功能组件配置控制器改变操作特征设置并将改变的指示提供给工作流程分配组件。工作流程分配组件基于操作特征设置来改变工作流程进度表。举例来说,将工作流程转向特定功能组件或使其转移离开特定功能组件。
在一个实施例中,本发明系统和方法使具有有缺陷功能组件的集成电路芯片能够得以废物利用,并促进集成电路制造过程中的晶片良率增加。传统上,具有有缺陷功能组件的集成电路将另外被丢弃,从而导致生产晶片的成本被分派给较少的可接受的电路小片。在一个实施例中,本发明系统和方法以维持芯片的基本功能性的方式禁用电路小片中有缺陷的功能组件。
在本发明的一个实施例中,结合芯片测试来执行集成电路废物利用。测试芯片(例如,根据内置自测试),并识别芯片的有缺陷的功能组件。对有缺陷的功能组件是否是不具有包含在电路小片中的另一类似的功能组件的功能组件进行判定。在一个实施例中,对当禁用有缺陷的功能组件时电路小片是否不具有可处理工作流程的另一功能组件进行区分。如果识别出此有缺陷的功能组件,那么由于电路小片不能提供完全的功能性而可将所述电路小片丢弃。如果存在可用于执行有缺陷的组件的功能性的其它功能组件,那么基于测试的结果对芯片执行功能组件配置过程(例如,功能组件配置过程400)。
在本发明的一个实施例中,功能组件配置过程禁用包含在芯片中的有缺陷的功能组件。接收有缺陷的功能组件识别的指示。对有缺陷的功能组件是否是多个类似功能组件中的一者进行判定。在本发明的一个实施例中,将识别出的有缺陷的组件(例如,像素遮影器、顶点处理器、浮点组件等)与可提供相同功能性的其它类似组件的列表进行比较。在一个示范性实施方案中,检查其它类似组件以判定其是否是有缺陷的功能组件的并行组件。如果有缺陷的功能组件是多个类似功能组件中的一者且另一组件可处理原本会被分派给有缺陷的组件的工作流程,那么禁用所述有缺陷的功能组件。在本发明的一个实施例中,也可禁用与有缺陷的组件相关联的功能组件(例如,以维持产品差别化)。使工作流程转移离开被禁用的组件。
在一个实施例中,通过向一组件提供禁用通知来实现工作流程的转向,所述组件另外将信息传递给有缺陷的功能组件。举例来说,禁用组件向分配器组件提供指示(例如,位图),且分配器组件不将信息提供给有缺陷的功能组件。事实上,使工作流程转向其它类似的功能组件。
在本发明废物利用方法的一个实施例中,包含了针对特定性能水平的电路小片特征的定义,且相应地对电路小片进行标记。在一个示范性实施方案中,测试包含指示每一性能水平内什么样的缺陷是许可的。举例来说,测试可包含可禁用第一多个并行功能组件的第一性能水平,和可禁用第二多个并行功能组件的第二性能水平。本发明还可有助于基于性能水平,作为测试程序的一部分而将电路小片自动装仓(binning)。
在一个实施例中,集中式资源用于远端集成电路的配置中。远端功能组件配置结构有助于配置包含在定位在远端的集成电路小片中的功能组件。在一个示范性实施方案中,进行电路小片功能组件再配置请求过程,其中系统请求来自远端资源的再配置代码。所述代码请求包含再配置代码许可指示符,其指示请求者经授权以接收再配置代码(例如,请求者已进行了必需的支付,具有授权的系统等)。执行再配置代码产生过程,其中接收对于再配置代码和许可指示符的请求,分析许可指示符的有效性,并提供再配置代码。当电路小片接收到适当的再配置代码时,对所述电路小片执行电路小片功能组件再配置过程。
具体实施方式
现将具体参照本发明的优选实施例,附图中说明所述实施例的实例。虽然将结合优选实施例描述本发明,但将了解,不希望其将本发明限于这些实施例。相反,本发明希望涵盖可包含在如所附权利要求书界定的本发明的精神和范围内的替代形式、修改和等效物。此外,在本发明的以下具体实施方式
中,陈述了大量特定细节以便提供对本发明的全面理解。然而,所属领域的一般技术人员将了解,可在没有这些特定细节的情况下实践本发明。在其它例子中,未详细描述众所周知的方法、程序、组件和电路,以便不会不必要地混淆本发明的各方面。
依据对计算机存储器内数据位的操作的程序、逻辑区块、处理和其它符号表示来呈现以下具体实施方式
的一些部分。这些描述和表示是数据处理领域的技术人员通常用来有效地将其工作的主旨传达给所属领域的其他技术人员的手段。此处,通常将程序、逻辑区块、过程等理解为产生所需结果的步骤或指令的自相容序列。所述步骤包含对物理量进行物理操纵。通常(尽管不一定),这些量采取能够在计算机系统中被存储、传递、组合、比较和以另外的方式操纵的电、磁、光或量子信号的形式。已证明有时(主要由于一般用途的原因)将这些信号称为位、值、元素、符号、字符、项目、数字等是便利的。
然而,应牢记,所有这些和类似术语与适当的物理量相关联,且仅仅是施加于这些量的便利的标志。从以下论述内容了解,除非另外明确规定,否则将了解,在本申请案中,利用例如“处理”、“计算”、“判定”、显示”等术语的论述内容指代计算机系统或类似的处理装置(例如,电、光或量子计算装置)的动作和处理,所述类似的处理装置操纵并变换表示为物理(例如,电子)量的数据。所述术语表示将计算机系统的组件(例如,寄存器、存储器、其它此类信息存储、传输或显示装置等)内的物理量操纵或变换为类似地表示为其它组件内的物理量的其它数据的处理装置的动作和处理。


图13A是根据本发明一个实施例的集成电路100的方框图。集成电路100包括分配组件110、功能组件配置控制器120、收集组件140以及功能组件131、132、133和134。
分配组件110耦合到功能组件131、132、133和134,功能组件131、132、133和134耦合到收集组件140。功能组件配置控制器120耦合到分配组件110、功能组件131、132、133和134,以及收集组件140。在本发明的一个实施例中,集成电路100的组件包含在单一电路小片中。集成电路100的组件协同操作以执行信息处理(例如,数据操纵)。在一个示范性实施方案中,集成电路100的组件执行与共同目标有关的信息处理(例如,与产生图像相关联的图形管线处理)。
分配组件110将信息选择性地分配到功能组件131-134(例如,启用的功能组件)。应了解,分配组件110可分配多种信息。举例来说,分配组件110可分配工作流程信息。工作流程信息可以是用于与共同目标相关联进行处理的信息或数据。举例来说,工作流程信息可以是图形相关信息(例如,单一信息流,其中信息流的各个部分包含针对图像的依次配置的像素的像素信息)。在一个示范性实施方案中,分配组件110接收单一工作流程信息或数据(例如,图形数据)流,并将工作流程信息分配到功能组件131-134。举例来说,单一信息流可包含与第一像素、第二像素和第三像素有关的信息。分配组件110接收单一像素信息流(例如,包序列)并将与第一像素有关的信息(例如,作为个别包)分配到功能组件131,将与第二像素有关的信息分配到功能组件132,并将与第三像素有关的信息分配到功能组件133。在另一示范性实施方案中,分配组件110接收与浮点计算有关的单一信息流,并将与第一浮点计算相关联的信息分配到功能组件131,将与第二浮点计算相关联的信息分配到功能组件132,并将与第三浮点计算相关联的信息分配到功能组件133。在一个实施例中,分配组件110也可接收多个信息流并将信息分配到功能组件131-134。应了解,分配组件110可实施在多种实施例中,包含其中分配组件110除了分配工作流程信息外还提供功能或执行任务的实施例。
功能组件131-134可包含多种实施方案,其中功能组件131-134执行不同的功能操作或任务。在一个实施例中,功能组件131-134提供类似功能性(例如,执行并行操作)。举例来说,在一个实施例中,功能组件131-134可执行与图形处理有关的任务(例如,遮影、纹理化、遮挡剔除等)。在另一实施例中,功能组件131-134可执行与浮点有关的处理。
收集组件140从功能组件131-134“收集”输出或结果。在一个实施例中,收集组件140联系或聚集操作的结果以用于实现共同目标。举例来说,收集组件140可聚集结果以供传递到图形缓冲器。在另一实施例中,收集组件140是图形缓冲器。在又一实施例中,收集组件140可聚集浮点计算的结果。
集成电路100的组件还协同操作以灵活地配置功能组件操作特征(例如,启用/禁用功能组件、改变时钟速度、改变操作电压等)。功能组件配置控制器120控制对功能组件131-134中的一者或一者以上的操作特征(例如,禁用/启用等)的调节,且可将关于所述调节的信息提供给分配组件110和收集组件140。举例来说,功能组件配置控制器120可禁用或启用功能组件(例如,禁用或启用功能组件132)。功能组件配置控制器120可告知分配组件110功能组件132操作特征的变化(例如,功能组件中的哪一功能组件被启用、禁用等)。
分配组件110可使用关于功能组件132的操作特征的信息来分配工作流程信息。在一个实施例中,分配组件110可将功能组件的配置分解为将信息(例如,包含用于处理的数据的工作流程)分配到功能组件。如果处理器功能组件中的一者被禁用(例如,因为其有缺陷),那么分配组件110将信息分配到其它剩余的处理器功能组件以处理所述“工作流程”。举例来说,如果功能组件132被功能组件配置控制器120禁用,那么告知分配组件110功能组件132被禁用,且分配组件110可将工作流程路由到其它功能组件(例如,131、133和/或134)。如果功能组件132被功能组件配置控制器120启用,那么告知分配组件110功能组件132被启用,且分配组件110可将工作流程路由到功能组件132。分配组件110也可基于功能组件的性能配置(例如,时钟速度)将信息分配到剩余的启用的功能组件。在一个示范性实施方案中,具有较大性能需求的任务(例如,关键任务)被路由到具有较强性能特征或能力(例如,较快)的功能组件。举例来说,三维(3D)图形信息可路由到高性能(例如,高速)图形管线,且二维(2D)图形信息可路由到较低性能(例如,较慢速度)图形管线。在一个实施例中,根据记分板算法(scoreboardingalgorithm)来分配信息。
在本发明的一个实施例中,功能组件配置控制器120引导对功能组件131-134的操作特征的改变。操作特征可影响功能组件131-134的性能。举例来说,功能组件配置控制器120可改变功能组件131-134的操作特征状态(例如,启用或禁用功能组件)。在一个示范性实施方案中,功能组件配置控制器120可改变功能组件操作的速度(例如,通过改变时钟频率)和/或功能组件所消耗的功率(例如,通过改变供应到功能组件的电压)。举例来说,功能组件配置控制器120可引导时钟源137改变供应到功能组件131-134的时钟信号的频率,和/或引导电源138改变供应到功能组件131-134的功率信号的电压。
应了解,本发明容易地适用于与多种功能组件一起利用。功能组件131-134可以是提供多种不同功能(例如,浮点、像素遮影、向量遮影、存储、缓冲等)的功能单元。在一个示范性实施方案中,功能组件可在大体上相同时间(例如,并行同时)执行类似操作。在本发明的一个实施例中,功能组件是主动功能组件。
在一个实施例中,功能组件是包含在处理单元中的处理器组件(例如,浮点组件、像素遮影器组件、顶点处理器组件等)。应了解,本发明可容易地实施在多种处理单元中,所述处理单元包含中央处理单元(CPU)、图形处理单元(GPU)和/或内嵌的处理单元。在一个示范性实施方案中,处理单元包含记分板算法以便将任务配给到处理器功能组件(例如,浮点组件)。当处理器功能组件处理结果时,记分板跟踪处理器功能组件需要哪一个操作数并调度所述操作数。可对来自个别处理器功能组件的结果进行组合以提供总体结果。记分板可将功能组件配置分解为任务的调度。举例来说,如果处理器功能组件中的一者被禁用(例如,因为其有缺陷),那么记分板重新调度其它剩余的处理器功能组件来处理所述处理工作流程。
本发明可实施在管线型(例如,向量型、线程型等)处理环境中。图13B是根据本发明一个实施例的管线集成电路150的方框图。管线集成电路150是功能组件为管线的集成电路100的实施方案。集成电路150包括分配组件151、功能组件配置控制器152、收集组件154以及管线171、172、173和174。管线171、172、173和174执行管线操作(例如,提取、解码和执行指令)。功能组件配置控制器152控制管线171到174的操作特征,并且还将关于管线171到174的操作特征的信息(例如,关于功能组件中的哪一功能组件被禁用和/或启用的信息)提供给分配组件151和收集组件154。可以不同的粒度执行对操作特征的控制。举例来说,管线可在每一管线内包含多个个别功能组件(未图示),所述多个个别功能组件也可以个别功能组件为基础进行配置(例如,启用、禁用等)。
管线集成电路150的组件类似于集成电路100的组件进行操作。举例来说,以类似方式转向或路由工作流程信息。功能组件配置控制器152将关于功能组件171-174的操作特征的信息(例如,被禁用、被启用、速度、电压等)提供给分配组件151。分配组件151部分基于操作特征信息而将信息分配到管线171-174(例如,将工作流程信息分配到启用的功能组件而不是禁用的功能组件)。收集组件140“收集”(例如,联系或聚集)管线171-174的输出(例如,联系或聚集结果以存储在图形缓冲器中)。在一个实施例中,功能组件配置控制器152可引导时钟源175改变供应到功能组件171-174的时钟信号的频率,和/或引导电源177改变供应到功能组件171-174的功率信号的电压。
本发明集成电路可以多种集成水平(例如,多种电路小片层级和结构)实施。图13C是多处理器集成电路190的方框图,其为本发明电路小片层级的另一实施例。多处理器集成电路190的组件类似于集成电路100,只是功能组件为处理器。多处理器集成电路190包括分配组件191、功能组件配置控制器192、收集组件194以及处理器195、197、198和199。在一个实施例中,处理器195、197、198和199包含在单一电路小片中并耦合到共同高速缓冲存储器。功能组件配置控制器192可引导对处理器195-199中的一者或一者以上的操作特征调节(例如,禁用/启用),且将指示处理器195-199的操作特征(例如,指示处理器是否被禁用/启用)的操作特征信息提供给分配组件191和收集组件194。在一个示范性实施方案中,即使功能组件配置控制器192禁用处理器(例如,195、197、198或199),集成电路190仍提供完整的功能性。
多处理器集成电路190的组件类似于集成电路100的组件进行操作。举例来说,以类似方式转向或路由工作流程信息。功能组件配置控制器192将关于功能组件的操作特征的信息(例如,被禁用、被启用、速度、电压等)提供给分配组件191。分配组件191将信息(例如,工作流程数据)分配到处理器195-199。所述分配部分基于操作特征信息(例如,将工作流程信息分配到启用的功能组件而不是禁用的功能组件)。在一个示范性实施方案中,收集组件194是“收集”或存储处理器195-199的输出的存储器(例如,共同高速缓冲存储器)。在一个实施例中,功能组件配置控制器192可引导时钟源181改变供应到功能组件195-199的时钟信号的频率,和/或引导电源182改变供应到功能组件195-199的功率信号的电压。
在本发明一个实施例中将性能与功能性进行区分。在一些情况下,尽管可以不同的性能水平实现特定类型的功能或任务,但从所述功能或任务仍能够被执行的意义上来说,本发明并不限制改变操作特征时的功能性。在一个实施例中,功能组件配置控制器不禁用所有能够并行地执行任务的功能组件。举例来说,如果电路小片具有一处理器中的两个并行浮点功能组件且功能组件配置改变浮点功能组件中的一者的启用特征或状态(例如,禁用),那么将工作流程“重新路由”到剩余的启用的浮点功能组件。浮点活动的性能水平可变化(例如,减缓),因为工作流程正由一个浮点功能组件而不是两个浮点功能组件处理。然而,电路小片仍具有提供相同功能性或任务(例如,执行浮点功能)的能力。
在本发明的一个实施例中,集成电路(例如,集成电路100、集成电路150、集成电路190等)被标记了对应于性能能力的性能指示符(例如,被启用和/或禁用的功能组件的数目)。所述标记可以是电子可读标记和/或墨水标记(例如,在电路小片上)。所述标记可以是集成电路的质量评价的指示符。所述标记也可对应于与集成电路相关联的性能度量(例如,处理速度、带宽等)。
应了解,功能组件配置控制器120、152和/或192可根据多种目标来引导功能组件变化。举例来说,功能组件配置控制器可基于良率问题、兼容性问题、性能问题、系统“健康状况”问题等来改变功能组件的操作特征。还应了解,功能组件配置控制器120、152和/或192可包含多种实施方案以实现目标(包含软件可编程寄存器或掩码、硬编码掩码等)。
在一个实施例中,功能组件配置控制器(例如,120、152和/或192)引导功能组件的操作特征的改变以解决良率问题。本发明具有促进集成电路制造过程中晶片良率增加的益处。本发明系统和方法使具有一些有缺陷功能组件的集成电路能够得以废物利用。传统上,具有有缺陷功能组件的电路小片被丢弃,从而导致生产晶片的成本被分派给较少的可接受的电路小片。尽管禁用有缺陷的组件可能影响性能,但本发明允许使用某一具有有缺陷功能单元的电路小片来执行相同类型的功能且藉此维持功能性。增加晶片上有用的电路小片的数目允许晶片的生产成本被分派给较大数目的可接受的电路小片。尽管运作不良的电路小片可能以较低价格出售,但通过允许将固定的晶片生产成本分派给较大数目的电路小片,可减少每电路小片的成本。
尽管电路小片的某些部分可能以不同性能水平操作,但本发明促进了对电路小片的“废物利用”。在一个示范性实施方案中,从电路小片执行相同类型的任务的意义上来说,原本会被丢弃的电路小片能够提供相同的功能性。举例来说,具有能够执行浮点运算的并行浮点功能组件的处理器仍能够执行浮点运算,因为在一个实施例中,本发明不禁用所有并行浮点组件,且将工作流程从被禁用的并行浮点组件“重新路由”到剩余的浮点组件。具有较多被禁用的组件的电路小片可以不同水平(例如,较慢)执行任务,因为一些并行组件被禁用。然而,电路小片仍具有提供相同功能性(例如,执行相同任务)的能力。
在一个实施例中,功能组件配置控制器(例如,120、152和/或192)在制造测试期间引导对功能组件的操作特征改变(例如,启用、禁用等)。举例来说,如果测试指示功能组件有缺陷,那么功能组件配置控制器(例如,120、152或192)禁用所述功能组件(例如,分别为132、173或198),且如果测试指示功能组件没有缺陷,那么功能组件配置控制器(例如,120、152或192)启用所述功能组件(例如,分别为131、174、197)。
在本发明的一个实施例中,功能组件配置控制器(例如,120、152和/或192)引导功能组件的操作特征的改变以解决“自我健康状况(self health)”问题。在一个示范性实施方案中,功能组件控制器“现场”或在从制造商初始装运之后解决自我健康状况问题。在一个示范性实施方案中,集成电路能够在现场“自我健康状况”测试中运作。举例来说,如果“自我健康状况”测试结果是有缺陷的功能组件的指示,那么功能组件配置控制器(例如,120、152和/或192)禁用所述有缺陷的功能组件,并向分配组件(例如,110、150或191)提供功能组件被禁用的指示。在本发明的一个实施例中,自我健康状况测试与国际电气和电子工程(IEEE)标准1149.1(也称为连结任务行动小组(Joint TaskAction Group,JTAG)测试)兼容。在替代实施例中,自我健康状况测试是用于检查系统的操作完整性的专有测试。在又一实施例中,如果现场的“自我健康状况”测试指示功能组件没有缺陷,那么启用所述功能组件。
在又一实施例中,如果与有缺陷功能组件执行类似类型的任务或功能的未启用的无缺陷功能组件可用,那么当有缺陷组件被禁用时启用所述未启用的无缺陷功能组件。举例来说,图13A的集成电路100可初始载有启用的功能组件131和132,以及尽管无缺陷但(例如,由于市场分割原因等)还是被禁用的功能组件133和134。如果现场自我健康状况测试稍后指示功能组件132变得有缺陷,那么功能组件控制器120可禁用功能组件132并启用功能组件133,且原本已流动到功能组件132(如果其未被禁用)的工作流程被(例如,通过分配组件110)分配到功能组件133。因此,禁用功能组件132实际上去除了与功能组件132中的缺陷相关联的问题,而启用先前被禁用的功能组件133允许以相同性能水平对工作流程执行相同类型的功能性或任务,且藉此系统有效地“自行修复(self healing)”。
在本发明的一个实施例中,功能组件配置控制器(例如,120、152和/或192)引导功能组件的操作特征的改变以解决兼容性问题。在一个实施例中,包含在图形加速器中的功能组件控制器能够分辨与图形加速器的特性兼容的芯片集,并相应地改变图形加速器的操作特征。举例来说,如果功能组件配置控制器正在控制图形管线的操作特征,那么当芯片集支持且与较高数目的图形管线的利用兼容时,功能组件配置控制器可启用较高数目的图形管线。举例来说,图形加速器和芯片集由同一制造商制造,且包含在图形加速器中的功能组件控制器可接收将包含在同一系统中的芯片集识别为图形加速器的信号。在本发明的一个实施例中,驱动器建立兼容性,且功能组件控制器相应地引导对功能组件的操作特征的改变。
在本发明的一个实施例中,功能组件配置控制器(例如,120、152和/或192)引导功能组件的操作特征的改变以解决性能问题。在一个实施例中,性能掩码40基于性能问题提供对功能组件的操作特征的指示。举例来说,运行特定应用,且启用所需的支持的功能组件操作特征。如果所述应用是图形应用,那么可启用额外图形管线,且/或可增加现有图形应用管线的时钟速度。在本发明的一个实施例中,可将系统的类型分解为性能操作变化,例如,在移动装置中,可调节性能以节省功率。
应了解,存在多种用于根据不同目标实施功能组件改变的功能组件配置控制器实施例。图13D是根据本发明一个实施例由功能组件控制器用来控制不同目标的掩码阵列10的方框图。掩码阵列中每一掩码可对应于特定操作目标。在一个示范性实施方案中,掩码阵列10包括良率掩码20、兼容性掩码30、性能掩码40和自行修复掩码50。在一个示范性实施方案中,每一列11到18与八个功能组件中的一者相关联。每一单元(例如,单元99)包含操作特征设定值。举例来说,逻辑1的操作特征设定值可对应于启用功能组件、组件的高时钟速度、组件的高电压电平等。相反,逻辑0的操作特征设定值可对应于禁用功能组件、组件的低时钟速度、组件的低电压电平等。应了解,本发明容易地适用于具有不同粒度增量的操作特征设定值(例如,非常高速、高速、中等速度、低速、非常低速)。在一个示范性实施方案中,掩码阵列10实施在寄存器阵列中。
可向不同目标或掩码分派优先权。举例来说,良率掩码20可比性能掩码40分派到更高优先权。在此实例中,单元98中的操作特征设定值控制单元97中的操作特征设定值。如果单元98中的设定值指示与列12相关联的功能组件被禁用,那么不管单元97中的设定值如何均禁用所述功能组件。掩码阵列10中的值也可用于多种算法中,所述算法在判定由功能组件配置控制器实施的操作特征设定时估计多种考虑因素。
良率掩码20提供对由于良率问题(例如,缺陷)的缘故而被禁用的功能组件的指示。举例来说,良率掩码20包含当功能组件具有制造缺陷时促使禁用所述功能组件的操作特征设定值。在一个示范性实施方案中,如果存在另一可处理工作流程的操作的功能组件,那么允许禁用一功能组件。
兼容性掩码30基于兼容性问题提供对功能组件的操作特征的指示。举例来说,特定处理器和芯片集可彼此交换身份识别,且基于身份识别的交换,可启用兼容的所支持的功能组件操作特征。在本发明的一个实施例中,驱动器建立兼容性,且在兼容性掩码30中输入相应的操作特征设定值。
性能掩码40基于性能问题提供对功能组件的操作特征的指示。举例来说,运行特定应用,且将一值输入到性能掩码40中,从而启用相应的所需的被支持的功能组件操作特征。如果所述应用是图形应用,那么可启用额外图形管线,且/或可增加现有图形应用管线的时钟速度。在本发明的一个实施例中,可将系统的类型分解为性能操作变化,例如,在移动装置中,输入性能掩码40中的值可引导性能调节以节省功率。举例来说,引导对功能组件的操作特征的改变,包含禁用/启用功能组件、调节速度、电压等。
自行修复掩码50基于现场测试问题提供对功能组件的操作特征的指示。举例来说,利用测试操作的结果来判定功能组件的操作特征的变化。在一个示范性实施方案中,现场测试指示启用的第一功能组件有缺陷。改变自行修复掩码单元中与第一功能组件相关联的操作特征设定值以指示第一功能组件被禁用,且改变自行修复掩码单元中与被禁用的第二功能组件相关联的操作特征设定值以指示第二功能组件被启用。通过改变第一和第二功能组件的各自的操作特征设定值,禁用有缺陷的第一组件并防止其产生更多问题,且启用被禁用的第二功能组件允许第二功能组件执行原本会被路由到第一功能组件的工作流程,且因此系统实际上自行修复,因为仍能够在无缺陷的情况下执行相同的工作流程。
图14是计算机系统200的方框图,其为可在上面实施本发明实施例的计算机系统的一个实施例。计算机系统200包含中央处理器单元201、主存储器202(例如,随机存取存储器)、具有北桥209和南桥205的芯片集203、可移除数据存储装置204、输入装置207、信号通信端口208,和耦合到显示器220的图形子系统210。计算机系统200包含若干用于通信地耦合计算机系统200的组件的总线。通信总线291(例如,前侧总线)将芯片集203的北桥209耦合到中央处理器单元201。通信总线292(例如,主存储器总线)将芯片集203的北桥209耦合到主存储器202。通信总线292(例如,高级图形端口接口)将芯片集203的北桥耦合到图形子系统210。通信总线294-297(例如,PCI总线)将芯片集203的南桥205分别耦合到可移除数据存储装置204、输入装置207、信号通信端口208。图形子系统210包含图形处理器211和图形缓冲器215。
计算机系统200的组件协同操作以提供多方面的功能性和性能。包含在计算机系统200中的功能组件的操作特征可动态地变化。在一个示范性实施方案中,尽管包含在计算机系统200中的功能组件中的一些可能有缺陷,但计算机系统200的组件协同操作以提供预定类型的功能性。通信总线291、292、293、294、295和297传递信息。中央处理器201处理信息。主存储器202为中央处理器201存储信息和指令。可移除数据存储装置204也存储信息和指令(例如,充当较大的信息贮存器)。输入装置206提供用于输入信息和/或用于在显示器220上指向或突出显示信息的机制。信号通信端口208提供到达外部装置的通信接口(例如,与网络的接口)。显示装置220根据存储在帧缓冲器215中的数据来显示信息。图形处理器211处理来自中央处理器201的图形命令,并将所得数据提供给图形缓冲器215以供由显示监视器220存储和检索。
包含在计算机系统200中的功能组件的操作配置可灵活地适用于满足多种目标。举例来说,包含在计算机系统200中的功能组件的操作配置是可配置的,以即使在功能组件中的一些被禁用时仍维持执行一种类型的功能。在一个示范性实施方案中,尽管功能组件中的一些(例如,浮点组件、像素遮影器组件、存储器单元组件等)被禁用,但中央处理器201和图形处理器211仍能够执行相同类型的处理功能且主存储器202存储信息。在一个实施例中,处理器包含多个用于执行处理操作的功能组件。可改变功能组件的操作特征。在一个实施例中,处理器包含多个用于执行处理操作的功能组件,其中包含在所述多个功能组件中的有缺陷的功能组件被禁用。处理器还包含用于将工作流程分配到启用的处理组件并防止将工作流程分配到禁用的有缺陷的组件的工作流程控制组件。在一个示范性实施方案中,尽管可以减小的性能水平(例如,较慢)提供功能性,但计算机系统200可继续提供完全的功能性。
应了解,本发明可实施在多种实施例中。在一个示范性实施方案中,本发明可利用在用于提供包含视频游戏的多种图形应用的处理系统中。举例来说,本发明可用于禁用游戏控制台、个人计算机、个人数字助理、手机或任何数目的用于实施视频游戏的平台中的有缺陷的组件。还应了解,对于视频游戏应用实施方案的引用是示范性的,且本发明不限于这些实施方案。
图15是根据本发明一个实施例的图形管线300的方框图。图形管线300(例如,像素处理管线)包括管线输入310、顶点处理器311到314、光栅器320、像素遮影器321到324、预光栅操作(ROP)组件330、光栅操作组件331到334、管线输出340,以及功能组件配置控制器350。功能组件配置控制器350耦合到管线输入310、顶点处理器311到314、光栅器320、像素遮影器321到324、预光栅操作(ROP)组件330、光栅操作组件331到334,以及管线输出340。管线输入310耦合到顶点处理器311到314,顶点处理器311到314耦合到光栅器320。光栅器320耦合到像素遮影器321到324,像素遮影器321到324耦合到预光栅操作组件330。预光栅操作(ROP)组件330耦合到光栅操作组件331到334,光栅操作组件331到334耦合到管线输出340。在一个实施例中,图形管线300类似于管线集成电路150。举例来说,管线151可包含顶点处理器311、像素遮影器321和ROP 331;管线152可包含顶点处理器312、像素遮影器322和ROP 332;管线153可包含顶点处理器313、像素遮影器323和ROP 333;且管线154可包含顶点处理器314、像素遮影器324和ROP 334,其中管线输入310、光栅器320、预ROP 330和管线输出340对于管线151-154来说是共同的。
即使管线中的功能组件的操作特征中的一些改变(例如,被禁用/启用),图形管线300的组件也协同操作以执行图形管线操作。功能组件配置控制器350可改变顶点处理器311到314、像素遮影器321到324和/或光栅操作组件331到334的操作特征。功能组件配置控制器350可对操作特征作出多种改变,包含启用/禁用功能组件、改变功能组件的时钟速度和/或增加对于功能组件的电压供应。功能组件配置控制器350可出于多种原因而作出所述改变,所述原因包含良率问题(例如,功能组件有缺陷和/或与有缺陷的组件相关联)、兼容性问题、性能问题和/或系统“健康状态”问题。功能组件配置控制器350还提供关于对管线输入310、光栅器320、预光栅操作(ROP)组件330和管线输出340的操作特征改变的信息。管线输入组件310接收图形管线信息并将相应的分包图形管线信息分配给保持启用的顶点处理器311到314。顶点处理器311到314对各自接收到的图形管线信息执行向量遮影,并将所得信息转发给光栅器320。光栅器320判定应对哪些像素进行遮影,并将分包的向量遮影图形管线信息分配给像素遮影器321到324。像素遮影器321到323对分包的向量遮影图形管线信息执行像素遮影计算,并将结果转发给预光栅操作(ROP)组件330。
在一个实施例中,像素遮影器321到324也可执行纹理操作。纹理操作可由纹理遮影器组件(例如,对应于像素遮影器)执行。预光栅操作(ROP)组件330搜集向量遮影信息并将分包的像素遮影信息分配给光栅操作组件331到334。光栅操作组件331到334对分包的像素遮影信息执行额外光栅化处理(例如,执行颜色结合和Z缓冲器处理),并将结果转发给管线输出340。管线输出340将图形管线信息聚集为单一输出流。或者,功能组件配置控制器350可实施为定位在管线中的功能组件的各自阶层之间的纵横开关(cross bar)或多路复用器结构。
本发明也可应用于帧缓冲器接口的分裂为多个分区的若干部分。在一个示范性实施方案中,帧缓冲器接口包含多个类似的模块,其作为与存储器(例如,组成帧缓冲器的DRAM的一部分)通信的功能组件而操作。如果所述模块中的一者有缺陷,那么其可被禁用,且将有缺陷的模块的工作负荷再分派到另一模块(例如,基于存储器地址的与所述模块相关联的部分)。举例来说,帧缓冲器接口模块到存储器地址的映射被重新映射,使得整个存储器对于芯片仍是可用的。
图16是根据本发明一个实施例的功能组件配置过程400的流程图。功能组件配置过程400有助于集成电路中功能组件的灵活配置。举例来说,功能组件配置过程400引导对集成电路中功能组件的操作特征的改变(例如,启用、禁用、改变速度、改变电压等)。应了解,功能组件配置过程400可用于根据多种目标(例如,增加良率、提供灵活的性能、促进自行修复等)来再配置功能组件的操作特征。在一个实施例中,功能组件配置过程400还有助于有效的信息处理工作流程管理。
在步骤410中,接收功能组件配置(例如,操作特征)改变触发事件的指示。在本发明的一个实施例中,功能组件控制器(例如,120等)接收对改变触发事件的指示。所述指示可包含对将作出的配置变化(例如,禁用、启用、增加/减小速度和/或电压等)的指示。在一个实施例中,从集成电路的内部组件(例如,内部测试系统、驱动器、应用程序等)接收功能组件配置改变触发事件。也可从集成电路外部的组件(例如,外部测试系统、因特网、集中式配置系统等)接收对功能组件配置改变触发事件的指示。
应了解,所述指示和配置改变触发事件可与多种操作目标(例如,应用、按使用计费、市场分割等)相关联。改变触发事件可与良率问题相关联。举例来说,事件可与检测有缺陷的功能组件的测试操作相关联,且(例如,通过功能组件控制器)接收识别所述有缺陷的功能组件的指示。在本发明的一个实施例中,从测试系统接收关于有缺陷的功能组件的指示。举例来说,国际电气和电子工程(IEEE)标准1149.1(也称为连结任务行动小组(JTAG)测试)兼容的测试系统和/或专有操作整体性测试(例如,专有扫描测试机构)。改变触发事件可与兼容性问题相关联。举例来说,接收指示组件具有预定兼容性的信号。改变触发事件可与性能问题相关联。举例来说,接收一信号,其指示正加载新的和/或不同的应用,准予按使用计费授权,和/或集成电路包含在需要功率节省的移动装置中。改变触发事件也可与自测试和修复问题相关联。
在步骤420中,作出所指示的功能组件配置改变(例如,操作特征改变)是否有效的判定。举例来说,作出对功能组件的经授权操作特征的判定。在一个实施例中,步骤410中接收到的指示是编码位流。对所述位流进行解码,且检查所得值,确定是否经有效授权以触发功能组件配置改变。在本发明的一个实施例中,分析经编码的指示符。所述分析包含对指示符进行解码,和将其与功能组件的不同的可能操作特征设定值的预定列表进行比较。举例来说,将经解码指示符的值与经授权触发指示或值的预定列表中的值进行比较,其中列表中的值与特定的操作特征设定值相关联。
在本发明的一个实施例中,还检查功能组件配置改变动作以确定有效性。举例来说,当执行与良率和自行修复问题相关联的功能组件禁用时,在一个实施例中,作出是否存在可对原本将到达有缺陷功能组件的工作流程信息执行类似功能的第二功能组件(例如,并行的)的判定。举例来说,作出有缺陷功能组件是否是多个类似功能组件中的一者的判定。在本发明的一个实施例中,将有缺陷组件的类型与提供类似功能的多个组件的列表进行比较。举例来说,识别出有缺陷组件(例如,像素遮影器、顶点处理器、浮点组件等),且将识别出的功能组件与可提供相同功能性的其它类似组件的列表进行比较。在一个示范性实施方案中,检查其它类似组件以判定其是否是有缺陷功能组件的并行组件。如果存在可执行工作流程的第二功能组件,那么可禁用第一功能组件(例如,如果所述第一功能组件有缺陷)。
在步骤430中,引导功能组件配置改变。在本发明的一个实施例中,由功能组件控制器(例如,120、152、192等)引导功能组件配置改变(例如,操作特征改变)。在本发明的一个实施例中,通过对控制功能组件的配置(例如,操作特征)的值(例如,在寄存器中)进行编程来实现功能组件配置改变(例如,禁用、启用等)。基于寄存器中的值,将改变组件的配置(例如,禁用、启用等)的信号发送到功能组件。在一个示范性实施方案中,在掩码(例如,掩码10)中配置所述值。应了解,存在多种改变功能组件的配置(例如,改变操作特征)的本发明方法。举例来说,可通过将通信线路结合到有缺陷的功能组件来实现有缺陷的功能组件的禁用。也可以确保有缺陷的功能组件不产生假通信量的方式禁用有缺陷的功能组件。也可告知接收组件有缺陷的组件,并对所述接收组件进行编程以忽略来自有缺陷的功能组件的信息。也可通过软编码方法来改变功能组件配置。
在一个实施例中,可监视功能组件的进行中的操作并将其分解为步骤430的配置操作。举例来说,检查或测试系统“健康状态”,且利用结果来判定对操作特征的改变。举例来说,如果第一功能组件未通过自诊断测试,那么可禁用所述功能组件。如果第二功能组件可用,那么可将其激活以“代替”第一功能组件。举例来说,如果第二功能组件运作极佳但先前由于某一其它原因而被禁用,那么可将其启用以代替未通过测试的功能组件。在一个示范性实施方案中,监视应用程序激活,且相应地改变功能组件的操作特征。举例来说,如果激活高性能图形应用程序,那么可增加功能组件的操作特征(例如,较快的时钟设定),且/或可启用或禁用额外的功能组件(例如,额外的图形管线)。
也可监视系统中组件的改变(例如,添加新的组件),且改变操作特征以适应组件改变。举例来说,如果特定类型的图形处理器耦合到特定类型的芯片集,那么可传递身份识别指示,且可相应地改变功能组件的操作特征。身份识别允许预先判定兼容性并支持增强的特征。在一个实施例中,对身份识别进行编码。所述编码防止对操作特征设定值进行恶意窜改。举例来说,编码防止不适当地减小功能组件的操作特征和/或在不保证兼容性的情况下增加操作特征的企图,所述企图可能会另外潜在地引起难以识别的复杂的错误。
在本发明的一个实施例中,在功能组件之间协调操作特征改变。举例来说,也可改变与已改变的功能组件(例如,在同一管线、线程等中)紧密相关联的适当操作的功能组件。在一个示范性实施方案中,在功能组件之间协调操作改变以维持产品差别化。举例来说,如果将较低性能芯片规定为少一个像素遮影组件且少一个顶点遮影组件,那么可禁用像素遮影组件和顶点遮影组件两者以维持产品差别化。
在步骤440中,根据对功能组件的改变而使工作流程转向。举例来说,工作流程可转向到其它类似的功能组件。在一个实施例中,通过向一组件提供配置改变(例如,启用、禁用等)的通知来实现工作流程的转向,所述组件另外将信息传递给经改变的功能组件。举例来说,功能组件控制器(例如,120等)向分配组件(例如,110等)提供功能组件配置改变(例如,操作特征的变化)的指示,且分配组件相应地路由工作流程信息。举例来说,如果启用第一功能组件,那么路由或调度工作流程并将其转发到第一功能组件。如果第一功能组件被禁用,那么将工作流程路由或调度到另一启用的功能组件。
在一个示范性实施方案中,使工作流程转向或路由到较快或较慢的功能组件。举例来说,分析工作流程内容,并将工作流程的与较高性能活动相关联的部分路由到较快的功能组件(例如,以较高时钟速率操作的功能组件),且将工作流程的与较低性能活动相关联的部分路由到较慢的功能组件。图形图像区域中正快速变化的像素(例如,朝向显示器中心的像素)可路由到较快的功能组件(例如,高时钟控制的遮影器),且图形图像区域中正缓慢变化的像素(例如,朝向显示器边缘的像素)可路由到较慢的功能组件(例如,低时钟控制的遮影器)。
可以减少对其它组件的影响的方式协调功能组件操作特征变化(例如,禁用等)。在一个实施例中,可对适当操作的功能组件进行编程或再配置以便容忍被禁用的组件的输出上可能的无用信息(例如,非法信号组合)。举例来说,可引导适当操作的功能组件以忽略来自被禁用的组件的信息。也可告知接收组件(例如,收集组件140)功能组件的操作特征变化,且对所述接收组件进行编程以相应地作出反应。举例来说,如果功能组件的速度降低,那么可将接收组件编程为当等待来自功能组件的信息时不闲置而是稍后核对功能组件是否被禁用以忽略来自功能组件的信息。如果功能组件被禁用,那么可对接收组件进行编程以忽略来自功能组件的信号。
图17是根据本发明一个实施例的减小性能的电路废物利用方法500的流程图。减小性能的电路废物利用方法500有助于对原本会被丢弃的电路小片的补救。在一个实施例中,减小性能的电路废物利用方法500测试电路小片并以确保维持电路小片的功能性的方式禁用有缺陷的功能组件。
在步骤510中,准备芯片以进行测试。将芯片放置在测试系统中,并使测试系统初始化。在本发明的一个实施例中,将扫描测试的初始状态输入扫描测试单元中。举例来说,可根据国际电气和电子工程(IEEE)标准1149.1(也称为连结任务行动小组(JTAG)测试)准备芯片以进行测试。在本发明的一个实施例中,利用与芯片的测试能力兼容的定制类型的测试(例如,专有和/或非JTAG兼容的测试)。
在步骤520中,测试芯片。在本发明的一个实施例中,所述测试包括识别芯片的有缺陷的功能组件。在本发明的一个示范性实施方案中,执行内置自测试(BIST)。举例来说,将扫描测试包含在BIST中,其中施加测试向量以激励电路的某些方面(例如,功能逻辑组件),并俘获来自电路的所得输出。扫描测试链经设计以经由扫描测试链将扫描测试信息(例如,测试向量)扫描或移动到电路中的功能组件,促使功能组件对扫描测试信息执行操作,俘获所得信息并接着经由扫描测试链的扫描测试单元而移出所得信息。接着分析所得信息中是否有错误(例如,与预定的正确结果进行比较)。可由自动化测试图案产生(ATPG)工具提供测试向量图案。
在本发明的一个实施例中,识别有缺陷的特定功能组件。在一个示范性实施方案中,扫描测试的输出结果提供关于哪些功能组件有缺陷的指示。举例来说,分析测试图案结果,并识别出有缺陷的功能组件。本发明可判定有缺陷的功能组件是否是不具有包含在电路小片中的另一类似的功能组件的功能组件。在一个实施例中,对有缺陷的功能组件是否关键和/或当禁用有缺陷的功能组件时电路小片是否不具有可处理工作流程的另一功能组件进行区分。如果识别出此功能组件,那么在本发明的一个实施例中,由于电路小片不能提供完全的功能性而将所述电路小片丢弃。
在本发明的一个实施例中,利用禁用组件帮助识别有缺陷的组件。在一个示范性实施方案中,多个类似的功能组件(例如,像素遮影器321到324)执行测试向量操作。如果存在错误结果,那么执行进一步测试。由禁用组件禁用多个功能组件中的第一者(例如,像素遮影器321),且由剩余的功能组件来执行测试向量操作。或者,在测试过程中,可利用软件激励来激励对功能组件的禁用。举例来说,禁用像素遮影器321,且像素遮影器322到324执行测试向量操作,并分析结果。如果不存在错误结果,那么将第一功能组件识别为有缺陷的组件。如果继续存在错误结果,那么由禁用组件禁用多个功能组件中的第二者(例如,像素遮影器321),且由剩余的功能组件来执行测试向量操作。如果不存在错误结果,那么将第二功能组件识别为有缺陷的组件。排除过程继续,直到识别出有缺陷的组件为止。
在步骤530中,基于测试的结果对芯片执行功能组件配置过程(例如,功能组件配置过程400)。在本发明的一个实施例中,如果功能组件有缺陷,那么功能组件配置过程禁用芯片的多个同质功能组件(例如,执行组件)中的一者或一者以上。举例来说,向有缺陷的功能组件发布禁用信号。
在一个实施例中,减小性能的电路废物利用方法500包含可编程地再配置芯片以允许其它功能组件执行被禁用的功能组件的功能。举例来说,将识别被禁用的功能组件的掩码编程到分配组件中,且可在剩余的功能组件之间分配工作流程。可将其编程为在测试时间执行的软件可加载寄存器或硬编码的掩码型程序。存在多种可利用的技术,包含可编程非易失性存储器、熔断器、线结合条带等。
在减小性能的电路废物利用方法500的一个实施例中,测试器中的程序包含针对特定性能水平的电路小片特征的定义。在一个示范性实施方案中,测试器包含对每一性能水平中哪些缺陷是可容许的指示。举例来说,测试器可包含可禁用第一多个并行功能组件的第一性能水平,和可禁用第二多个并行功能组件的第二性能水平。性能水平也可对应于启用的功能组件的数目。本发明还可有助于基于性能水平,作为测试程序的一部分而将电路小片自动装仓。
图18是测试环境600的方框图,其为根据本发明一个实施例的测试环境。测试环境600包含电路小片610和测试系统650。电路小片610包括测试接口633、分配器631以及功能组件611到614,其中每一功能组件和分配器631分别包含扫描测试单元621到625。电路小片废物利用测试系统650包括测试模块680和有缺陷组件解析模块670,所述有缺陷组件解析模块670包含功能性维持模块671、相应的组件检测模块672、禁用模块673以及电路小片拒绝模块674。
电路小片废物利用测试系统650测试电路小片610。测试模块680向测试接口633提供测试向量,测试接口633将测试向量向前传递到扫描测试单元621到625。将扫描测试单元621到625中的信息馈入到功能组件611到614以及分配器631中,功能组件611到614以及分配器631对扫描测试信息执行操作。结果也由扫描测试单元621到625俘获并传递到测试接口633,测试接口633将其传递到测试系统650以进行分析。测试模块680分析结果并向缺陷解析模块670提供关于有缺陷的功能组件的指示。缺陷解析模块670判定电路小片是否可通过禁用功能组件而废物利用。
功能性维持模块671判定识别出的功能组件是否包含在允许被禁用的群组中。在一个实施例中,功能性维持模块671判定是否存在可处理识别出(例如,有缺陷)的功能组件的工作流程的其它功能组件。举例来说,可将工作流程转移或重新路由到另一功能组件。在一个示范性实施方案中,功能性维持模块671对照着允许被禁用的组件的预定列表来检查识别出的功能组件(例如,其它组件可处理所述工作流程)。
相应的组件检测模块672判定是否存在应被禁用的相关功能组件。所述相关功能组件可以是适当运作的组件。在本发明的一个实施例中,识别出与有缺陷的功能组件紧密相关联的功能组件(例如,在同一管线、线程等中)。举例来说,如果所述功能组件在有缺陷的组件下游,那么可禁用(例如,断电)适当运作的组件以防止切换活动和相应的功率消耗。在一个示范性实施方案中,可禁用功能组件以维持产品差别化。如果识别出应被禁用的其它功能组件,那么将这些组件的身份反馈到功能性维持模块671中以判定禁用它们是否会影响功能性。
禁用模块673引导功能组件禁用(例如,功能组件611、612、613或614的禁用)。在本发明的一个实施例中,禁用模块673经由测试接口633直接向功能组件发送禁用信号。在替代实施例中,禁用模块673向电路小片610中的禁用组件(未图示)发送信号。如果功能性维持模块671提供可允许禁用组件(例如,其将不会消除功能性)的指示,那么禁用模块673禁用功能组件。在一个示范性实施方案中,即使禁用功能组件会减小性能,但只要其不会减小功能性,功能性维持模块671仍允许禁用模块673禁用功能组件。
电路小片标记模块674对电路小片进行标记。在本发明的一个实施例中,电路小片标记模块674基于性能标准对电路小片进行标记。电路小片标记模块674还提供电路小片是否被拒绝的标记或指示。可能拒绝电路小片是因为,功能性维持模块671提供不应禁用有缺陷的功能组件和/或电路小片的性能降低到预定水平以下的指示。在一个示范性实施方案中,基于被禁用的功能组件对电路小片进行标记。举例来说,如果预定数目和/或类型的功能组件被禁用,那么相应地对电路小片进行标记。
在本发明的一个实施例中,电路小片标记模块674还对电路小片所处的晶片进行标记。在本发明的一个实施例中,电路小片标记模块674基于良率标准对晶片进行标记。
可针对不同的性能水平对良率标准进行分段。举例来说,良率标记可指示晶片中某一数目或百分比的电路小片不具有被禁用的功能组件,某一数目或百分比的电路小片具有固定数目的被禁用的功能组件,以及某一数目的电路小片被拒绝或无法废物利用。
图19是电路小片分类过程700的流程图,其为根据本发明一个实施例的电路小片分类过程的一个实施例。电路小片分类过程700涉及以差别化性能水平用类似配置对电路小片进行制造和分类。在一个示范性实施方案中,基于不同的性能水平对在同一制造过程中制造的电路小片进行分类。举例来说,电路小片具有相同数目的功能组件(例如,晶体管),但一些功能组件以不防止执行功能但可能影响性能的方式被禁用。电路小片分类过程700有助于以相同功能性和不同的性能水平对电路小片进行分类和分配。
在步骤710中,制造多个具有类似配置的电路小片。在本发明的一个实施例中,在单一晶片上制造多个电路小片。在本发明的一个实施例中,类似配置使多个电路小片中的每一者能够执行预定类型的功能性。在一个示范性实施方案中,利用相同的光刻工艺步骤来制造多个电路小片。在一个实施例中,可通过阅读关于电路小片的数据单表信息来确定类似配置。举例来说,数据单表信息可包含电路小片尺寸(例如,晶体管的数目)、功能性指示符和/或性能指示符,和/或关于电路小片所关联的生产线的信息(例如,通过判定电路小片的出售价格)。如果电路小片具有大体上相同的制造成本,那么也可指示类似配置。
在步骤720中,在不消除电路小片执行与组件相关联的功能的能力的情况下,防止所述组件参与多个电路小片中的一者内的生产性贡献。在本发明的一个实施例中,去除组件生产力可能影响性能但不会消除所述类型的功能性。在一个示范性实施方案中,通过禁用组件来防止组件参与生产性贡献。可将被禁用的组件的工作流程重新导向其它组件。在一个实施例中,可通过分析数据单表信息来检测防止组件参与生产性贡献。举例来说,电路小片是否具有适用于以不同的性能水平提供相同类型的功能性的生产线的产品单表。或者,关于是否防止组件参与生产性贡献的另一指示是,是否直到执行测试之后才作出哪一数据单表信息适用于电路小片的判定(例如,数据单表信息的选择对应于基于测试的结果对电路小片组件作出的改变)。在步骤730中,基于针对功能性的差别化性能水平对多个电路小片中的每一者进行分类。在一个示范性实施方案中,将电路小片包含在相关于提供功能性所处的性能水平而以不同价格分配或出售的产品中。在本发明的一个实施例中,以不同的性能水平(例如,不同速度、带宽等)分配具有相同设计的电路小片。
图20是根据本发明一个实施例的处理单元800的方框图。在本发明的一个实施例中,处理单元800包含在基于计算机的系统(例如,计算机系统200)中。在一个示范性实施方案中,处理单元800类似于中央处理单元201和/或图形处理单元211。处理单元800包括配给组件810、性能管理状态组件820和操作组件831到834。在一个实施例中,配给组件810类似于分配组件110,性能管理状态组件820类似于功能组件控制器120,且操作组件831-834类似于功能组件131-134。操作组件831到834中的每一者执行与各种任务相关联的处理操作(例如,浮点计算、图形数据操纵等)。在一个实施例中,操作组件831-834执行类似的任务或功能。性能管理组件820选择性地管理操作组件831到834中的每一者的操作特征的变化(例如,启用、禁用等)。配给组件810耦合到操作组件831到834以及性能管理组件820。配给组件810将信息配给到启用的功能组件831到834中的每一者。举例来说,如果操作组件被启用,那么配给组件810将处理工作流程信息配给(例如,分配)到操作组件831到834。在一个实施例中,性能管理状态组件820和操作组件831到834类似于功能组件控制器120和功能组件831-834。
性能管理组件820接收指示对操作组件的改变的信息。举例来说,测试结果指示操作组件有缺陷。性能管理组件820识别所述信息所应用的操作组件831到834的子集。举例来说,操作组件的子集有缺陷,且所述子集不被启用而使用。在一个示范性实施方案中,启用无缺陷的子集。举例来说,如果测试结果指示操作组件831和834有缺陷,那么操作组件820启用操作组件832和833但不启用操作组件831和834。如果启用操作组件831和834,那么性能管理组件820对其进行禁用。性能管理组件820还向配给组件810提供操作特征状态指示。举例来说,操作特征状态指示指示功能组件中的哪一者被启用以及哪一者被禁用。启用的操作组件中的每一者能够执行原本将由未被启用的操作组件执行的类似功能。
图21是根据本发明一个实施例的晶片良率优化方法900的流程图。晶片良率优化方法900增加来自晶片的可用电路小片的良率。在一个示范性实施方案中,晶片良率优化方法900有助于废物利用具有原本将从晶片中丢弃以增加晶片的总体良率的有缺陷组件的电路小片。
在步骤910中,制造晶片。晶片包含多个电路小片,且所述多个电路小片中的每一者具有能够使用多个功能子组件并行执行多个子任务的功能组件。举例来说,每一电路小片可包含通过功能子组件(例如,遮影器、光栅器等)执行多种图形子任务(例如,遮影、纹理化、混叠、光栅化等)的管线。在本发明的一个实施例中,使用光刻工艺制造晶片。
在步骤920中,针对每一电路小片,识别出可操作的多个功能子组件中的每一者和不可操作的多个功能子组件中的每一者。在一个实施例中,作为常规电路测试过程的一部分而识别可操作的和不可操作的功能子组件。举例来说,将预定输入馈入到功能子组件中,并检查所得输出。检查输出信息中是否有错误(例如,将输出与预定的正确结果进行比较)。如果输出信息包含错误(例如,如果输出不与预定的正确结果匹配),那么将功能子组件识别为不可操作的。
在步骤930中,禁用识别为不可操作的所述多个功能子组件中的每一者的操作。在一个实施例中,可启用识别为可操作的所述多个功能子组件中的每一者。在一个实施例中,通过硬“编码”机制禁用不可操作的功能子组件和启用可操作的功能子组件。举例来说,利用铸造激光修整位(foundry laser trim bit)来配置或禁用功能子组件。在另一实施例中,利用软件可编程信息来配置(例如,禁用或启用)功能子组件。
在步骤940中,基于可操作状态(例如,在步骤930中组件被识别为可操作的或不可操作的)将多个电路小片中的每一者分类到一性能等级中。举例来说,可将电路小片分类到其中全部或较大百分比的功能子组件可操作并被启用的高性能等级中。可将电路小片分类到其中较少的功能子组件保持被启用的中等性能范围等级中。可将这些性能范围指定为可废物利用的。也可能存在其中电路小片不满足一最小值且被丢弃(或经受某一其它校正动作以尽可能解决所述问题)的性能等级。
在步骤950中,废物利用被分类在指定为可废物利用的性能等级中的电路小片。举例来说,使用具有某些被禁用的功能子组件的电路小片来执行处理任务,但执行所述任务的速度减小。
图22是根据本发明一个实施例的功能组件远端配置结构1100的方框图。功能组件远端配置结构1100有助于配置包含在集成电路小片中的功能组件。举例来说,从外部或远端系统对配置进行控制。功能组件远端配置结构1100提供可以安全且受控方式改变功能组件的操作特征以实现许多所需实施方案的结构。
远端配置环境1100包含集成电路小片1110和远端配置控制模块1150。集成电路小片1110包括配置模块1133、分配组件1131和功能组件1111到1114,其中每一功能组件和分配组件1131分别包含操作特征寄存器1121到1125。远端配置控制器模块1150包括编码模块1180和配置解析模块1170。
远端配置控制器模块1150控制集成电路小片1110中功能组件的配置。在一个实施例中,远端配置控制器模块1150在芯片外(例如,在驱动器中)。配置解析模块1170判定集成电路小片1110的功能组件的操作特征设定值。在一个示范性实施方案中,配置解析模块1170参与自动化功能性协商过程(例如,容量按需(capacity on demand)),在所述协商过程中关于升级的操作特征达成协议,并作为功能性协商过程的一部分而动态地改变功能性指示符。在一个示范性实施方案中,设定操作特征以维持产品差别化。配置解析模块1 170将操作特征指示符值转发到编码模块1180。编码模块1180对操作特征指示符值进行编码(例如,用密钥、散列值等)并将经编码的操作特征指示符值转发到配置模块1133。
配置模块1133引导功能组件配置。举例来说,配置模块1133基于从编码模块1 180接收的经编码的操作特征设定值来引导对功能组件操作特征设定值的改变(例如,针对功能组件1111、1112、1113或1114)。配置模块1133可对功能组件操作特征指示符值进行解码。配置模块1133将解码值转发到功能性跟踪模块1137以与相应的操作特征设定值进行比较。
功能性跟踪模块1137引导对于功能组件操作特征的维护。在一个示范性实施方案中,功能性跟踪模块1137提供经解码的功能性指示符值与特定的操作特征设定值之间的相关性。举例来说,功能性跟踪模块1137对照着操作特征设定值的预定相关性列表来检查功能性指示符。功能性跟踪模块1137还可判定是否存在可处理识别出的功能组件的工作流程的其它功能组件。
图23是根据本发明一个实施例的远端再配置方法1200的流程图。远端再配置方法1200提供一种用于维持对再配置操作的远端控制的机制。在一个示范性实施方案中,远端再配置方法1200用于按使用计费过程中,其中利用某些配置特征需要额外支付。举例来说,如果用户希望激活额外的功能组件(例如,额外的图形管线、浮点组件等),那么用户必须进行额外支付。
在步骤1210中,进行电路小片功能组件再配置请求过程,其中系统请求来自远端资源的再配置代码。在一个实施例中,再配置请求过程包含请求并接收电路小片功能组件再配置代码。在一个示范性实施方案中,功能组件控制器(例如,120等)利用电路小片再配置代码来再配置功能组件。应了解,可经由多种通信系统来传递电路小片功能组件再配置代码的请求和接收。举例来说,可经由因特网来传递所述请求和电路小片功能组件再配置代码。在一个实施例中,所述请求包含再配置代码许可指示符,其指示请求者经授权以接收再配置代码(例如,请求者已进行必需的支付、具有授权的系统等)。
在一个实施例中,电路小片功能组件再配置请求过程包含再配置代码许可指示符请求过程以获得再配置代码许可指示符。在一个示范性实施方案中,再配置代码许可指示符请求过程包括转发对许可指示符的支付和请求,以及接收对于对许可指示符的请求和支付的响应。举例来说,消费者或用户经由因特网向远端中央资源进行电子支付,并接收返回的许可指示符(例如,位流代码)。
在步骤1220中,执行再配置代码产生过程。在一个示范性实施方案中,远端资源处理对于再配置代码的请求。在一个实施例中,再配置代码产生过程包括接收对于再配置代码和许可指示符的请求,分析许可指示符的有效性,和当许可指示符有效时提供再配置代码。举例来说,远端资源接收增加系统中激活的图形管线的数目的请求。远端资源分析请求者是否已进行必需的支付。如果已进行必需的支付,那么远端资源转发再配置代码以便增加系统中激活的图形管线的数目。
在一个实施例中,再配置代码产生过程包含进行再配置代码许可指示符响应过程以响应获取再配置代码许可指示符的请求过程。在一个示范性实施方案中,再配置代码许可指示符响应过程包含接收对于许可指示符的支付,和响应于接收到支付而转发许可指示符。
在步骤1230中,当系统接收到再配置代码(例如,从远端资源接收)时,执行电路小片功能组件再配置过程。电路小片功能组件再配置过程包含根据再配置代码再配置电路小片功能组件(例如,功能组件131、132、133、134等)。在一个实施例中,电路小片功能组件再配置过程类似于功能组件配置过程400。
因此,本发明实现了集成电路小片的灵活的操作配置并增强了产品差别化。电路小片可用于具有多个性能水平的生产线中。本发明还有助于制造能够经动态地配置以执行高性能任务或低性能任务从而允许功率节省和经济差别化的单一电路小片。本发明还有助于节省制造资源和废物利用具有有缺陷组件的电路小片。
作为简要概述,本文已揭示以下内容。
概念1.一种减小性能的电路废物利用方法,其包括准备芯片以进行测试;测试所述芯片;以及基于所述测试的结果对所述芯片执行功能组件配置过程。
概念2.根据概念1所述的减小性能的电路废物利用方法,其中所述测试包括识别有缺陷的功能组件;判定所述集成电路中是否包含有无缺陷的功能组件,其中所述无缺陷的功能组件与所述有缺陷的功能组件执行类似功能;
如果所述无缺陷的组件包含在所述集成电路中,那么指定所述有缺陷的功能组件不被使用;以及如果执行所述类似功能的所述无缺陷的组件不包含在所述集成电路中,那么将所述集成电路标记为有缺陷的。
概念3.根据概念1所述的减小性能的电路废物利用方法,其中禁用或启用所述芯片的多个同质执行组件中的一者。
概念4.根据概念1所述的减小性能的电路废物利用方法,其进一步包括再配置所述芯片以允许其它功能组件执行所述被禁用的功能组件的功能。
概念5.根据概念1所述的减小性能的电路废物利用方法,其中所述功能组件配置过程包括接收关于有缺陷的功能组件的指示;判定所述有缺陷的功能组件是否是多个类似功能组件中的一者;如果所述有缺陷的功能组件是所述多个类似功能组件中的一者,那么禁用所述有缺陷的功能组件;启用一个或一个以上无缺陷的功能组件;以及向一组件提供所述禁用和所述启用的通知,所述组件另外将信息传递给所述有缺陷的功能组件。
概念6.根据概念1所述的减小性能的电路废物利用方法,其中从测试系统接收所述关于有缺陷的功能组件的指示。
概念7.一种电路小片分类过程,其包括制造多个具有类似配置的电路小片;在不消除所述多个电路小片中的一者执行与一组件相关联的功能的能力的情况下,防止所述组件参与所述多个电路小片中的所述一者内的生产性贡献;以及基于针对所述功能性的差别化性能水平对所述多个电路小片进行分类。
概念8.根据概念7所述的电路小片分类过程,其中在单一晶片上制造所述多个电路小片。
概念9.根据概念7所述的电路小片分类过程,其中通过阅读关于所述多个电路小片的数据单表信息来判定类似配置。
概念10.根据概念7所述的电路小片分类过程,其中如果电路小片具有大体上相同的制造成本,那么判定类似配置。
概念11.根据概念7所述的电路小片分类过程,其中通过禁用所述组件来防止所述组件参与生产性贡献。
概念12.根据概念7所述的电路小片分类过程,其中直到执行测试之后才作出哪一数据单表信息适用于所述多个电路小片中包含的电路小片的判定。
概念13.根据概念7所述的电路小片分类过程,其中将所述多个电路小片中包含的第一电路小片和第二电路小片包含在相关于提供功能性所处的性能水平而以不同价格出售的不同产品中。
概念14.根据概念7所述的电路小片分类过程,其中以相同的设计制造所述多个电路小片中的每一者,并以不同的性能水平分配所述多个电路小片中的每一者。
概念15.一种增加来自晶片的可用电路小片的良率的方法,其包括制造晶片,其中所述晶片包含多个电路小片,且其中所述多个电路小片中的每一者具有能够使用多个功能子组件并行执行多个子任务的功能组件;识别出可操作的和不可操作的所述多个功能子组件中的每一者;禁用识别为不可操作的所述多个功能子组件中的每一者的操作;启用识别为可操作的所述多个功能子组件中的每一者的选择性操作;基于所述功能子组件的可操作状态将所述多个电路小片中的所述每一者分类到一性能等级中;以及如果所述多个所述电路小片中的具有不可操作的功能子组件的一者被分类到指定为可废物利用的性能等级中,那么废物利用所述多个所述电路小片中的所述一者。
概念16.根据概念15所述的方法,其中所述子任务包含图形子任务。
概念17.根据概念15所述的方法,其中作为测试过程的一部分来识别所述不可操作的功能子组件。
概念18.根据概念15所述的方法,其中所述废物利用所述多个所述电路小片中的一者包含用对应于所述多个所述电路小片中的所述一者的性能能力的性能指示符来标记所述电路小片。
概念19.根据概念15所述的方法,其中所述多个所述电路小片中的所述一者包含图形处理管线功能组件。
概念20.根据概念15所述的方法,其进一步包括丢弃所述多个所述电路小片中的不提供完全功能性的一者。
下文揭示一种具有经配置以使用嵌套交错书写图案来遍历屏幕区域的光栅组件的GPU。
技术领域本发明大体上涉及硬件加速的图形计算机系统。
背景技术
计算机性能的新近进步已使图形系统能够使用个人计算机、家庭视频游戏计算机、手提式装置等提供更逼真的图形图像。在这些图形系统中,执行许多程序以将图形图元“渲染”或绘画到系统屏幕上。“图形图元”是例如顶点、多边形等图形图片的基本组成部分。所渲染的图像由这些图形图元的组合形成。可利用许多程序来执行3-D图形渲染。
已开发出专门的图形处理单元(例如,GPU等)来优化执行图形渲染程序所需的计算。GPU经配置以用于高速操作,且通常并入有一个或一个以上渲染管线。每一管线包含许多经优化以用于图形指令/数据的高速执行的基于硬件的功能单元,其中所述指令/数据被馈入到管线的前端且所计算的结果出现在管线的后端处。GPU的基于硬件的功能单元、高速缓冲存储器、固件等经优化以对低阶层图形图元(例如,包括“点”、“线”、“三角形”等)进行操作并产生实时渲染的3-D图像。
实时渲染的3-D图像是使用光栅显示技术产生的。光栅显示技术广泛用于计算机图形系统中,且通常是指图形图元影响构成图像的多个像素的栅格所借助的机制。对于每一图元,典型的光栅化系统通常逐个像素地步进,并依据图元的贡献确定是否将给定像素“渲染”或写入到帧缓冲器或像素地图中。这进而确定如何将表示每一像素的数据写入到显示缓冲器。
已开发出各种遍历算法来以覆盖图元内的所有像素的方式逐个像素进行移动。举例来说,一些解决方案涉及以单向方式产生像素。这些传统的单向解决方案涉及在恒定方向上逐行产生像素。这需要序列在图元的相对侧的位置处完成时,越过图元移动到图元的第一侧的启始位置。每次执行此移动时,存储没有定位在预先立即被处理的像素或纹理值附近的像素或纹理值。因此,这些相隔较远的像素或纹理值有较大可能性属于不同的存储器存取区块,从而使此类存取效率低下。
因此,需要一种可确保所需的图形渲染数据(例如,纹理值、标准图等)可维持在存储器中以供由GPU进行有效存取的光栅化过程。
发明内容本发明实施例提供一种用于确保所需的图形渲染数据(例如,纹理值、标准图等)可维持在低等待时间存储器中以供由GPU进行有效存取的方法和系统。本发明实施例通过增加高速缓冲存储器存取的效率并通过限制由于存取较高等待时间存储器而产生的性能损失,来提供快速且有效的实时3-D图形渲染。
在一个实施例中,本发明实施为经配置以遍历一区域的像素的GPU结构。GPU包含用于产生多边形描述的设置单元和耦合到所述设置单元用于对多边形描述进行光栅化的光栅器单元。光栅器单元经配置以使用第一交错书写图案沿着主轴遍历图像的多个像素,且在使用第一交错书写图案进行遍历期间,使用第二交错书写图案遍历图像的多个像素,其中第二交错书写图案嵌套在第一交错书写图案内。
在一个实施例中,第一交错书写图案和第二交错书写图案由GPU的光栅单元内的粗略光栅器组件实施。在一个实施例中,GPU将图像的多个像素分组为若干瓦片,且使用第一交错书写图案和第二交错书写图案遍历所述瓦片。
在一个实施例中,每瓦片的像素数目是可编程的,且根据图形渲染操作的要求,可指定为4×4、8×8、16×16、32×32、64×64、128×128等,包含矩形以及正方形阵列。类似地,可根据GPU的高速缓冲存储器的尺寸编程每瓦片的像素数目,且第一交错书写图案和/或第二交错书写图案的主轴是可编程的。
具体实施方式
现将具体参照本发明的优选实施例,附图中说明所述实施例的实例。虽然将结合优选实施例描述本发明,但将了解,不希望其将本发明限于这些实施例。相反,本发明希望涵盖可包含在如所附权利要求书界定的本发明的精神和范围内的替代形式、修改和等效物。此外,在本发明实施例的以下具体实施方式
中,陈述了大量特定细节以便提供对本发明的全面理解。然而,所属领域的一般技术人员将了解,可在没有这些特定细节的情况下实践本发明。在其它例子中,未详细描述众所周知的方法、程序、组件和电路,以便不会不必要地混淆本发明实施例的各方面。
符号和术语依据对计算机存储器内数据位的操作的程序、步骤、逻辑区块、处理和其它符号表示来呈现以下具体实施方式
的一些部分。这些描述和表示是数据处理领域的技术人员用来最有效地将其工作的主旨传达给所属领域的其他技术人员的手段。此处,通常将程序、计算机执行的步骤、逻辑区块、过程等理解为产生所需结果的步骤或指令的自相容序列。所述步骤是那些需要对物理量进行物理操纵的步骤。通常(尽管不一定),这些量采取能够在计算机系统中被存储、传递、组合、比较和以另外的方式操纵的电或磁信号的形式。已证明有时(主要由于一般用途的原因)将这些信号称为位、值、元素、符号、字符、项目、数字等是便利的。
然而,应牢记,所有这些和类似术语应与适当的物理量相关联,且仅仅是施加于这些量的便利的标志。从以下论述内容了解,除非另外明确规定,否则将了解,在本发明中,利用例如“处理”或“存取”或“执行”或“存储”或“渲染”等术语的论述内容指代计算机系统(例如,图1的计算机系统100)或类似的电子计算装置的动作和处理,所述类似的电子计算装置将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的其它数据。
计算机系统平台图1展示根据本发明一个实施例的计算机系统100。计算机系统100描绘根据本发明实施例的基本计算机系统的组件,其提供执行平台以获得某种基于硬件的和基于软件的功能性。大体上来说,计算机系统100包括至少一个CPU 101、系统存储器115,和至少一个图形处理器单元(GPU)110。CPU 101可经由桥接器组件/存储器控制器(未图示)耦合到系统存储器115,或可经由CPU 101内部的存储器控制器(未图示)直接耦合到系统存储器115。GPU 110耦合到显示器112。一个或一个以上额外GPU可视需要耦合到系统100以进一步增加其计算能力。GPU 110耦合到CPU 101和系统存储器115。系统100可实施为(例如)台式计算机系统或服务器计算机系统,其具有耦合到专门图形渲染GPU 110的功能强大的通用CPU 101。在此实施例中,可包含添加外围总线、专门图形存储器、IO装置等的组件。类似地,系统100可实施为手提式装置(例如,手机等)或置顶视频游戏控制台装置,例如可从美国华盛顿州雷蒙德市Microsoft公司购得的Xbox,或可从日本东京的Sony Computer Entertainment公司购得的PlayStation3。
应了解,GPU 110可实施为离散组件、经设计以经由连接器(例如,AGP插槽、PCI-Express插槽等)耦合到计算机系统100的离散图形卡、离散集成电路小片(例如,直接安装在母板上),或作为包含在计算机系统芯片集组件(未图示)的集成电路小片内的集成GPU。另外,可为GPU 110包含本地图形存储器114以实现高带宽图形数据存储。
实施例图2展示描绘根据本发明一个实施例以交错书写图案光栅化的像素栅格的图200。如图2所描绘,交错书写图案由虚线221指示。
在一个实施例中,如图2的图表200中所描绘,以线221所指示的次序遍历像素栅格的每一像素。线221展示遍历的交错书写图案,其中术语“交错书写”表示通过在每一通过沿着正交轴不断前进时沿着一个轴来回扫描(非常类似于农民犁地或收割庄稼)而访问2D区域上的所有像素的遍历图案。术语交错书写通常意味着如在(例如)田地里一样“如同牛犁地”。
因此,如图2所描绘,此交错书写光栅化表示沿着主轴来回折叠的蜿蜒图案。在图2实例中,主轴是水平的。举例来说,水平交错书写序列可产生图元三角形内的处于从左向右的一行上的所有像素,并接着产生从右向左的下一行,等等。此折叠路径确保从所产生的像素到先前新近产生的像素的平均距离相对较小。
仍参看图2,用于访问当使大图元(例如,三角形等)光栅化时所覆盖的屏幕区域的交错书写图案的优点是,维持相关数据的高速缓冲存储,以及减少帧缓冲器和纹理存取所需的存储器请求。举例来说,当新近像素群组和/或其相应的纹理值保持在有限尺寸的存储器中时,产生在新近产生的像素附近的像素较为重要。
一个此类存储器是高速缓冲存储器。高速缓冲存储器经优化以实现高速、低等待时间存取。然而,GPU可用的高速缓冲存储器的量通常比所需的总帧缓冲器存储器少得多。因此,交错书写序列更经常发现像素或纹理值已载入高速缓冲存储器中,且因此避免对较慢帧缓冲器存储器(例如,本地图形存储器112)或慢得多的系统存储器(例如,存储器115)进行代价较高的高等待时间存取。
应注意,在一个实施例中,代替于实施像素栅格的交错书写图案遍历,可在瓦片栅格上实施交错书写图案遍历。在此实施例中,每一瓦片包括像素区块。瓦片的尺寸(例如,每瓦片的像素数目)通常根据GPU的渲染能力和/或高速缓冲存储器或帧缓冲器存储器的尺寸来进行调整。在一个实施例中,瓦片的尺寸是可编程的,且可动态地选择为(例如)4×4、8×8、16×16、32×32、64×64、128×128等,每瓦片包含像素或子像素的任何矩形(以及正方形)阵列。
图24展示描绘根据本发明一个实施例在瓦片栅格上的第一交错书写图案和嵌套于第一交错书写图案内部的第二交错书写图案的图300。
如上所述,水平交错书写图案(例如,水平主轴)表示沿着水平轴来回折叠的蜿蜒图案。在本实施例中,第二交错书写图案内嵌于此第一水平交错书写图案内。如图24所描绘,第二交错书写图案是垂直交错书写图案。此由沿着垂直轴来回折叠的线321指示。垂直交错书写图案在沿着成拱形的水平交错书写图案的水平轴行进时沿着垂直轴来回折叠。一旦垂直交错书写图案已行进到上行瓦片(例如,其中所述行为8个瓦片高)的右手侧,其就越过其自身水平地折回,并朝向下行瓦片的左手侧往回行进。当垂直交错书写图案从下行瓦片的右手侧行进到左手侧时,可看见其自始至终沿着下行上下折叠。
以此方式,本发明实施例可将第二垂直交错书写图案内嵌到第一水平交错书写图案中。将第二交错书写图案内嵌到第一交错书写图案中用于进一步局部化数据存取并限制高速缓冲存储器漏失。举例来说,多个内嵌的交错书写图案可经配置以与GPU的高速缓冲存储器的尺寸和配置(例如,高速缓冲存储器线尺寸等)精密地对准。此特征帮助维持相对于高速缓冲存储器存取的位置。多个内嵌的交错书写图案还可经配置以维持相对于帧缓冲器存储器112的存储库存取的位置,其中多个DRAM库(未图示)构成帧缓冲器存储器112。此外,多个交错书写图案可经配置以与用于存取存储器的预取过程对准,其中预取过程依赖于可预测的存储器存取模式,使得其可进行预见以从存储器将数据取至GPU的高速缓冲存储器中。
图25展示根据本发明一个实施例的更复杂的多个嵌套交错书写图案遍历过程。如图25所描绘,展示子瓦片411和子瓦片412。子瓦片411-412是较大瓦片(例如,图24所示的瓦片350)的子瓦片。线451展示第三水平交错书写图案和第四垂直交错书写图案可相对于水平轴421和垂直轴422而进一步嵌套在上文图24所描述的第一水平交错书写图案和第二垂直交错书写图案内的方式。以此方式,本发明实施例可将多个交错书写图案内嵌到第一交错书写图案中,这用于局部化数据存取并将高速缓冲存储器漏失限制到更加精细的程度。
应注意,如上所述,除了像素瓦片外,本发明实施例还可对个别像素进行操作,且可根据特定应用的需要来定制瓦片的尺寸(例如,可由图形驱动器编程等)。另外,应注意,可根据特定应用的需要来定制交错书写图案的配置(例如,可由图形驱动器编程等)。举例来说,第一和第二交错书写图案可以是垂直与水平的、水平与垂直的,等等。
图26展示根据本发明一个实施例的GPU 110的内部组件的图500。如图26所示,GPU 110包含设置引擎501和光栅器单元502。在本实施例中,本发明的功能性实施在光栅器单元502的硬件和软件内。通常,光栅器单元502的作用是将从设置引擎501接收的基于顶点的描述转换为基于边描述的描述。光栅器单元502随后将这些边描述转换为包括实际像素描述(例如,像素区域、像素子样本等)的填充区域。随后将像素描述向前传递到GPU 110内的其它单元以进行进一步处理和渲染。
在一个实施例中,光栅器单元502包含精细光栅组件503和粗略光栅组件504。粗略光栅组件504实施如上所述的基于瓦片的交错书写图案光栅化,此时其快速地搜索瓦片栅格以识别所关注的瓦片(例如,被图元覆盖的瓦片)。一旦识别出所关注的瓦片,精细光栅组件503就个别地识别被图元覆盖的像素。因此,在此实施例中,粗略光栅组件504通过使用瓦片来快速地搜索像素栅格,且精细光栅组件503使用由粗略光栅组件504产生的信息,并通过个别地识别被图元覆盖的像素来实施精细粒度光栅化。在两种情况下,粗略光栅组件504和精细光栅组件503在其光栅化期间均可利用一个或一个以上交错书写图案(例如,嵌套的或非嵌套的)。
仍参看图26,GPU 110进一步包含高速缓冲存储器521,其作用是针对最频繁使用的图形渲染数据实施高速低等待时间存储。此数据通常包括纹理信息、顶点信息、颜色等。展示高速缓冲存储器521耦合到本地图形存储器112。高速缓冲存储器521利用一个或一个以上高速缓冲存储维持机制来维持与本地图形存储器112的一致性。箭头540展示GPU 110与系统存储器(例如,图1所示的存储器115)之间的通信路径。与系统存储器115的通信通常甚至比与本地图形存储器112的通信慢得多。因此,本发明实施例的存储器存取局部化属性通过使所发生的高速缓冲存储器漏失的数目最小化而大大减少了由于存取本地图形存储器112和系统存储器115而招致的损失。
作为简要概述,本文已揭示以下内容。
概念1.一种GPU(图形处理器单元),其包括设置单元,其用于产生多边形描述;光栅器单元,其耦合到所述设置单元,用于对所述多边形描述进行光栅化,其中所述光栅器单元经配置以使用第一交错书写图案沿着主轴遍历图像的多个像素,且在使用第一交错书写图案进行遍历期间,使用第二交错书写图案遍历图像的多个像素,其中第二交错书写图案嵌套在第一交错书写图案内。
概念2.根据概念1所述的GPU,其中第一交错书写图案和第二交错书写图案由光栅单元内的粗略光栅器组件实施。
概念3.根据概念1所述的GPU,其中将图像的多个像素分组为若干瓦片,且使用第一交错书写图案和第二交错书写图案遍历所述瓦片。
概念4.根据概念3所述的GPU,其中每瓦片的像素数目是可编程的,且可指定为像素或子像素样本的正方形或矩形阵列。
概念5.根据概念3所述的GPU,其中每瓦片的像素数目可根据GPU的高速缓冲存储器的尺寸编程。
概念6.根据概念1所述的GPU,其中第一交错书写图案的主轴是可编程的。
概念7.根据概念6所述的GPU,其中第一交错书写图案的主轴是水平轴,且其中第二交错书写图案沿着垂直轴。
概念8.根据概念6所述的GPU,其中第一交错书写图案的主轴是垂直轴,且其中第二交错书写图案沿着水平轴。
概念9.根据概念6所述的GPU,其中第二交错书写图案的配置是可编程的。
概念10.根据概念1所述的GPU,其中第一交错书写图案和第二交错书写图案经配置以维持相对于高速缓冲存储器存取的位置。
概念11.根据概念1所述的GPU,其中第一交错书写图案和第二交错书写图案经配置以与用于存取存储器的预取过程对准。
概念12.根据概念1所述的GPU,其中第一交错书写图案和第二交错书写图案经配置以维持相对于耦合到GPU的帧缓冲器存储器的存储库存取的位置。
概念13.一种GPU(图形处理器单元),其包括设置单元,其用于产生多边形描述;光栅器单元,其耦合到所述设置单元,用于对所述多边形描述进行光栅化;粗略光栅组件,其在所述光栅单元内,其中所述粗略光栅器组件经配置以使用第一交错书写图案沿着主轴遍历图像的多个像素,且在使用第一交错书写图案进行遍历期间,使用第二交错书写图案遍历图像的多个像素,其中第二交错书写图案嵌套在第一交错书写图案内,且其中将图像的多个像素分组为若干瓦片,且使用第一交错书写图案和第二交错书写图案遍历所述瓦片。
概念14.根据概念13所述的GPU,其中每瓦片的像素数目可根据GPU的高速缓冲存储器的尺寸编程。
概念15.根据概念13所述的GPU,其中第一交错书写图案的主轴是可编程的。
概念16.根据概念15所述的GPU,其中第一交错书写图案的主轴是水平轴,且其中第二交错书写图案沿着垂直轴。
概念17.根据概念16所述的GPU,其中第二交错书写图案的配置是可编程的。
概念18.根据概念13所述的GPU,其中第一交错书写图案和第二交错书写图案经配置以维持相对于高速缓冲存储器存取的位置。
概念19.一种计算机系统,其包括系统存储器;中央处理器单元,其耦合到所述系统存储器;以及图形处理器单元,其通信地耦合到所述中央处理器单元;
设置单元,其在所述图形处理器单元内,用于产生多边形描述;光栅器单元,其在所述图形处理器单元内且耦合到所述设置单元,用于对所述多边形描述进行光栅化;以及粗略光栅组件,其在所述光栅单元内,其中所述粗略光栅器组件经配置以使用第一交错书写图案沿着主轴遍历图像的多个像素,且在使用第一交错书写图案进行遍历期间,使用第二交错书写图案遍历图像的多个像素,其中第二交错书写图案嵌套在第一交错书写图案内,且其中将图像的多个像素分组为若干瓦片,且使用第一交错书写图案和第二交错书写图案遍历所述瓦片。
概念20.根据概念19所述的GPU,其中每瓦片的像素数目可根据GPU的高速缓冲存储器的尺寸编程,且其中第一交错书写图案的配置和第二交错书写图案的配置是可编程的。
下文揭示一种在图形管线的光栅级中对非矩形瓦片群组进行光栅化的方法。
技术领域本文大体上涉及硬件加速的图形计算机系统。本文至少揭示一种在图形管线的光栅级中对非矩形瓦片群组进行光栅化的方法。
背景技术
计算机性能的新近进步已使图形系统能够使用个人计算机、家庭视频游戏计算机、手提式装置等提供更逼真的图形图像。在这些图形系统中,执行许多程序以将图形图元“渲染”或绘画到系统屏幕上。“图形图元”是例如顶点、多边形等图形图片的基本组成部分。所渲染的图像由这些图形图元的组合形成。可利用许多程序来执行3-D图形渲染。
已开发出专门的图形处理单元(例如,GPU等)来优化执行图形渲染程序所需的计算。GPU经配置以用于高速操作,且通常并入有一个或一个以上渲染管线。每一管线包含许多经优化以用于图形指令/数据的高速执行的基于硬件的功能单元,其中所述指令/数据被馈入到管线的前端且所计算的结果出现在管线的后端处。GPU的基于硬件的功能单元、高速缓冲存储器、固件等经优化以对低阶层图形图元(例如,包括“点”、“线”、“三角形”等)进行操作并产生实时渲染的3-D图像。
实时渲染的3-D图像是使用光栅显示技术产生的。光栅显示技术广泛用于计算机图形系统中,且通常是指图形图元影响构成图像的多个像素的栅格所借助的机制。对于每一图元,典型的光栅化系统通常逐个像素地步进,并依据图元的贡献确定是否将给定像素“渲染”或写入到帧缓冲器或像素地图中。这进而确定如何将表示每一像素的数据写入到显示缓冲器。
已开发出各种遍历算法(traversal algorithm)和各种光栅化方法用于以覆盖包括给定3-D场景的图元内的所有像素的方式,从基于图形图元的描述计算为基于像素的描述(例如,每图元逐个像素进行光栅化)。举例来说,一些解决方案涉及以单向方式产生像素。这些传统的单向解决方案涉及在恒定方向上逐行产生像素。这需要序列在图元的相对侧的位置处完成时,越过图元移动到图元的第一侧的启始位置。
其它传统的方法涉及利用每像素估计(per pixel evaluation)技术来精密地估计构成显示内容的像素中的每一者,并确定哪些像素被哪些图元覆盖。每像素估计涉及在显示内容的像素上进行扫描以确定哪些像素被图形图元的边缘触及/覆盖。
一旦图元被光栅化为其组成像素,那么这些像素就在光栅化级之后的管线级中经受处理,其中渲染操作在所述管线级中执行。通常,这些渲染操作根据包括场景的图元的覆盖程度向显示内容的像素中的每一者指派一颜色。还根据指派到图元的纹理贴图信息、光照信息等来确定每一像素的颜色。
然而,存在的问题在于现有技术3-D渲染结构缩放以处理现今应用的日益复杂的3-D场景的能力。计算机屏幕现通常具有1920×1200像素或更大的屏幕分辨率。增加3-D渲染性能的传统方法(例如,增加时钟速度)具有例如增加功率消耗和增加GPU集成电路小片产生的热量的消极副作用。增加性能的其它方法(例如,并入大量并行执行单元以并行地执行GPU操作)具有例如增加集成电路小片尺寸、减小GPU制造过程的良率、增加功率需求等消极副作用。
因此,需要这样一种光栅化过程,其可根据图形应用需求的要求进行缩放,并提供增加的性能而不会招致例如功率消耗增加和/或制造良率减小的损失。
发明内容本文的实施例提供一种用于光栅化过程的方法和系统,所述光栅化过程可根据图形应用需求的要求进行缩放,并在使例如功率消耗增加和/或制造良率减小的损失最小化的同时提供增加的性能。
在一个实施例中,本发明实施为一种在图形管线的光栅级中对非矩形瓦片群组进行光栅化的方法。所述方法包含接收图形图元以便在图形处理器单元(例如,GPU)的光栅级中进行光栅化。通过产生包括与图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化。接着,通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化。光栅级随后输出所述被覆盖像素以便在GPU的后续级中进行渲染操作。
在一个实施例中,所述在所述第一阶层处的光栅化和所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。可实施两部分光栅级,使得第一阶层光栅化实施在粗略光栅单元中,且第二阶层处的光栅化实施在精细光栅单元中。
在一个实施例中,可根据图形图元的形状来调节由光栅级切割出的非矩形印迹的尺寸。举例来说,可调节非矩形印迹的尺寸(例如,x数目的瓦片宽乘y数目的瓦片长)以优化构成所述印迹的被覆盖像素的数目,例如当针对伸长的三角形规定非矩形印迹的尺寸(例如,通过模板阴影操作等)来优化被覆盖像素的数目时的情况。
具体实施方式
现将具体参照本文的优选实施例,附图中说明所述实施例的实例。虽然将结合优选实施例描述本发明,但将了解,不希望其将本发明限于这些实施例。相反,本发明希望涵盖可包含在如所附权利要求书界定的本发明的精神和范围内的替代形式、修改和等效物。此外,在本发明实施例的以下具体实施方式
中,陈述了大量特定细节以便提供对本发明的全面理解。然而,所属领域的一般技术人员将了解,可在没有这些特定细节的情况下实践本发明。在其它例子中,未详细描述众所周知的方法、程序、组件和电路,以便不会不必要地混淆本发明实施例的各方面。
符号和术语依据对计算机存储器内数据位的操作的程序、步骤、逻辑区块、处理和其它符号表示来呈现以下具体实施方式
的一些部分。这些描述和表示是数据处理领域的技术人员用来最有效地将其工作的主旨传达给所属领域的其他技术人员的手段。此处,通常将程序、计算机执行的步骤、逻辑区块、过程等理解为产生所需结果的步骤或指令的自相容序列。所述步骤是那些需要对物理量进行物理操纵的步骤。通常(尽管不一定),这些量采取能够在计算机系统中被存储、传递、组合、比较和以另外的方式操纵的电或磁信号的形式。已证明有时(主要由于一般用途的原因)将这些信号称为位、值、元素、符号、字符、项目、数字等是便利的。
然而,应牢记,所有这些和类似术语应与适当的物理量相关联,且仅仅是施加于这些量的便利的标志。从以下论述内容了解,除非另外明确规定,否则将了解,在本发明中,利用例如“处理”或“存取”或“执行”或“存储”或“渲染”等术语的论述内容指代计算机系统(例如,图1的计算机系统100)或类似的电子计算装置的动作和处理,所述类似的电子计算装置将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵并变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的其它数据。
计算机系统平台图1展示根据本发明一个实施例的计算机系统100。计算机系统100描绘根据本发明实施例的基本计算机系统的组件,其提供执行平台以获得某种基于硬件的和基于软件的功能性。大体上来说,计算机系统100包括至少一个CPU 101、系统存储器115,和至少一个图形处理器单元(GPU)110。CPU 101可经由桥接器组件/存储器控制器(未图示)耦合到系统存储器115,或可经由CPU 101内部的存储器控制器(未图示)直接耦合到系统存储器115。GPU 110耦合到显示器112。一个或一个以上额外GPU可视需要耦合到系统100以进一步增加其计算能力。GPU 110耦合到CPU 101和系统存储器115。系统100可实施为(例如)台式计算机系统或服务器计算机系统,其具有耦合到专门图形渲染GPU 110的功能强大的通用CPU 101。在此实施例中,可包含添加外围总线、专门图形存储器、IO装置等的组件。类似地,系统100可实施为手提式装置(例如,手机等)或置顶视频游戏控制台装置,例如可从美国华盛顿州雷蒙德市Microsoft公司购得的Xbox,或可从日本东京的Sony Computer Entertainment公司购得的PlayStation3。
应了解,GPU 110可实施为离散组件、经设计以经由连接器(例如,AGP插槽、PCI-Express插槽等)耦合到计算机系统100的离散图形卡、离散集成电路小片(例如,直接安装在母板上),或作为包含在计算机系统芯片集组件(未图示)的集成电路小片内的集成GPU。另外,可为GPU 110包含本地图形存储器114以实现高带宽图形数据存储。
实施例本发明实施例实施一种在图形管线的光栅级中使非矩形瓦片群组光栅化的方法和系统。通常,非矩形瓦片群组处于除(例如)正方形(例如,4×4、8×8、16×16瓦片等)或矩形(例如,4×8、8×16瓦片等)以外的配置中。所述方法包含接收图形图元(例如,三角形多边形)以便在图形处理器(例如,图1的GPU 110)的光栅级中进行光栅化。本发明实施例可实施多阶层光栅化过程。
在一个实施例中,通过产生包括与图形图元有关的一组像素(例如,覆盖图元的瓦片群组)的非矩形印迹而在第一阶层处使所述图形图元光栅化。接着通过存取所述组像素(例如,覆盖图元的瓦片群组)并从所述组中确定被覆盖的像素而在第二阶层处使所述图形图元光栅化。举例来说,尽管瓦片群组可覆盖图元,但并非构成每一瓦片的所有像素均可覆盖图形图元或驻留在图形图元内。此两个阶层光栅化的结果是覆盖图形图元或驻留在图形图元内的像素。光栅级随后输出被覆盖像素以便在图形处理器的后续级中进行渲染操作。
图2展示描绘根据本发明一个实施例以交错书写图案光栅化的像素栅格的图。
在一个实施例中,如图2所描绘,GPU 110的光栅级利用交错书写图案来遍历图形图元。如图2所描绘,交错书写图案由虚线221指示。在此实施例中,以线221所指示的次序遍历像素栅格的每一像素或像素区块。线221展示遍历的交错书写图案,其中术语“交错书写”表示通过在每一通过沿着正交轴不断前进时沿着一个轴来回扫描(非常类似于农民犁地或收割庄稼)而访问2D区域上的所有像素的遍历图案。术语交错书写通常意味着如在(例如)田地里一样“如同牛犁地”。
因此,如图2所描绘,此交错书写光栅化表示沿着主轴来回折叠的蜿蜒图案。在图2实例中,主轴是水平的。举例来说,水平交错书写序列可产生图元三角形内的处于从左向右的一行上的所有像素,并接着产生从右向左的下一行,等等。此折叠路径确保从所产生的像素到先前新近产生的像素的平均距离相对较小。
仍参看图2,用于访问当使大图元(例如,三角形等)光栅化时所覆盖的屏幕区域的交错书写图案的优点是,维持相关数据的高速缓冲存储,以及减少帧缓冲器和纹理存取所需的存储器请求。举例来说,当新近像素群组和/或其相应的纹理值保持在有限尺寸的存储器(例如,高速缓冲存储器等)中时,产生在新近产生的像素附近的像素较为重要。
关于光栅化的交错书写图案的额外细节可参阅Franklin C.Crow等人的2005年12月15日申请的第11/304,904号美国专利申请案“A GPU HAVING RASTER COMPONENTSCONFIGURED FOR USING NESTED BOUSTROPHEDONIC PATTERNS TO TRAVERSESCREEN AREAS”,所述专利申请案全文并入本文中。
应注意,尽管在交错书写光栅化的情境下描述本发明实施例,但可使用其它类型的光栅化图案。举例来说,本文描述的用于使非矩形瓦片群组光栅化的算法和GPU级可容易地应用于传统的从左向右、逐行光栅化图案。
图3展示根据本发明一个实施例三角形多边形301(例如,三角形301)靠着GPU 110的光栅单元的光栅化图案321的图。
如上所述,线321展示遍历的交错书写图案,其中光栅单元通过在每一通过沿着正交轴不断前进时沿着一个轴进行扫描来访问三角形301的2D区域上的所有像素。在图3实施例中,在第一阶层处或在粗略光栅化阶层处执行此初始光栅化图案。GPU 110的粗略光栅单元遍历三角形301,并切割出覆盖三角形301的瓦片群组。在三角形301与瓦片群组的尺寸相比较大且粗略光栅单元正使完全处于三角形301内部的像素光栅化的那些情况下,这些瓦片群组可对称(例如,正方形、矩形等)。在三角形301与瓦片群组的尺寸相比较小且粗略光栅单元正使在三角形301的伸长点(例如,点302)附近的像素光栅化的那些情况下,这些瓦片群组也可为非矩形。通常,非矩形瓦片群组处于除(例如)正方形(例如,4×4、8×8、16×16瓦片等)或矩形(例如,4×8、8×16瓦片等)以外的配置中。如本文所使用,应注意,术语“非矩形群组”表示使得在光栅级中光栅化的瓦片群组不限于矩形或正方形阵列的属性。非矩形瓦片群组可处于任意配置中。举例来说,在一个实施例中,非矩形瓦片群组可包含甚至彼此不相邻的瓦片。
图4展示根据本发明一个实施例三角形301靠着当瓦片由第一阶层光栅化过程检查时的瓦片栅格的图。图4中,所说明的正方形中的每一者表示包括像素的瓦片(例如,8×8、16×16等)。图4展示第一阶层光栅化产生各包括四个瓦片的粗略光栅化瓦片群组(例如,示范性瓦片群组401)的情况。
如上所述,在一个实施例中,第一阶层光栅化产生包括与图形图元有关的一组像素(例如,覆盖图元的瓦片群组)的瓦片群组或印迹(例如,印迹401)。通常,第一阶层光栅化希望快速确定屏幕区域的哪些像素与给定的图形图元有关。因此,每次检查相对较大的像素群组(例如,瓦片)以便快速找到那些与图元有关的像素。可将所述过程比作侦查,借此粗略光栅单元快速扫描屏幕区域并找到覆盖三角形301的瓦片群组。因此,可比传统的现有技术过程快得多地发现与三角形301有关的像素,传统的现有技术过程利用单一阶层的光栅化且以较细粒的方式每次检查的像素数目少很多。
在图4实施例中,第一阶层光栅化利用四瓦片印迹(例如,印迹401),其中每一瓦片群组或印迹包含四个瓦片。因此,第一阶层光栅化将切割出四瓦片印迹,其中每一印迹具有至少一个被三角形301覆盖的像素。因此,第一阶层光栅化由于每次检查较大的像素群组而被称为粗略光栅化。
图5展示描绘根据本发明一个实施例由粗略光栅单元切割出的多个瓦片群组的图。展示示范性瓦片群组501和502。
图5实施例展示粗略光栅级产生非矩形瓦片群组以便优化三角形301的覆盖程度的方式。如上所述,非矩形印迹可用于较有效地确定屏幕区域的哪些瓦片与给定图形图元有关。接着通过存取所产生的瓦片群组并从这些瓦片群组中确定被覆盖的像素而在第二阶层处使所述图形图元光栅化。举例来说,尽管瓦片群组可覆盖图元,但并非构成每一瓦片的所有像素均可覆盖图形图元或驻留在图形图元内。
图5展示示范性非矩形瓦片群组501和502。瓦片群组或印迹501-502是非矩形的,因为其组成瓦片不是以盒形或矩形样式配置的。在印迹501-502的情况下,如图所示以“L”形图案切割出其组成瓦片。此非矩形图案优化了印迹501-502内被覆盖像素的数目。
图5还展示瓦片511-518。视其覆盖程度而定,根据本发明一个实施例的光栅级可将瓦片515-518切割为单一矩形瓦片群组(例如,沿着三角形301的上边),并将瓦片511-514切割为类似的矩形瓦片群组(例如,沿着三角形301的下边)。以此方式,四个瓦片的群组可组装成聚集体,不管其对称性如何。聚集体可为L形、直线形、正方形等。调节瓦片的聚集体的尺寸以便优化聚集体内被覆盖像素的数目。
应注意,可在第一阶层粗略光栅化过程中实施不同数目的瓦片。举例来说,与每印迹四个瓦片不同,可利用六个、八个或更多瓦片。在此类较大印迹的情况下,可将瓦片组合成多种不同形状和组合成多种不同图案以便最佳地覆盖给定的图形图元。
以此方式,可根据图形图元(例如,三角形301)的形状来调节由光栅级切割出的非矩形印迹(例如,印迹501)的尺寸。举例来说,可调节非矩形印迹的尺寸(例如,x数目的瓦片宽乘y数目的瓦片长)以优化构成所述印迹的被覆盖像素的数目。在所渲染的图元格外长且狭窄的那些情况下,此属性尤其有用。此类长且狭窄的三角形通常出现在例如模板阴影算法(stencil shadow algorithm)的应用中。举例来说,在三角形301是非常长且狭窄的三角形的情况下,可优化构成每一瓦片的像素的数目和构成印迹的瓦片的数目以便切割出具有高比例的被覆盖像素的印迹。这在使三角形的点(例如,点302)附近的像素光栅化时尤其有用。
图6说明根据本发明一个实施例使用第二阶层光栅化过程光栅化的印迹501。如上所述,粗略光栅化之后,接着通过存取印迹501的所述组像素(例如,构成瓦片群组501的像素)并从所述组中确定被覆盖像素而在第二阶层处使三角形501光栅化。举例来说,尽管印迹501覆盖三角形301,但并非构成每一瓦片的所有像素均可覆盖图形图元或驻留在图形图元内。
第二阶层光栅化或精细光栅化现切割出印迹501的个别被覆盖像素。精细光栅化过程检查构成印迹501的像素并确定那些像素中的哪些像素被三角形301覆盖。这在图6中展示为构成印迹501的每一瓦片的16个像素(例如,4×4)的栅格。靠着三角形301的边估计每一瓦片的16个像素中的每一者。视所需的精确程度而定,估计过程中可使用每一像素的多个取样点。估计的结果是印迹501的被多边形301覆盖的像素的指定。接着从精细光栅化单元输出被覆盖像素以便在GPU 110的后续级内进行进一步处理。
图7展示根据本发明一个实施例GPU 110的内部组件的图。如图7所示,GPU 110包含设置引擎701和光栅器单元702。在本实施例中,本发明的功能性实施在光栅器单元702的硬件和软件内。设置单元701的作用是将基于顶点的描述转换为基于边描述的描述。光栅器单元702随后将这些边描述转换为包括实际像素描述(例如,像素区域、像素子样本等)的填充区域。随后将像素描述向前传递到GPU 110内的其它单元以进行进一步处理和渲染。
在本实施例中,光栅器单元702包含粗略光栅组件703和精细光栅组件704。粗略光栅组件703实施如上所述的非矩形瓦片群组光栅化过程,此时其快速地搜索瓦片栅格以识别所关注的瓦片(例如,被图元覆盖的瓦片)。一旦识别出所关注的瓦片群组,精细光栅组件704就个别地识别被图元覆盖的像素。因此,在此实施例中,粗略光栅组件703通过使用瓦片来快速地搜索像素栅格,且精细光栅组件704使用由粗略光栅组件703产生的信息,并通过个别地识别被图元覆盖的像素来实施精细粒度光栅化。在两种情况下,粗略光栅组件703和精细光栅组件704在其光栅化期间均可利用一个或一个以上交错书写图案。
仍参看图7,GPU 110进一步包含高速缓冲存储器721,其作用是针对最频繁使用的图形渲染数据实施高速低等待时间存储。此数据通常包括纹理信息、顶点信息、颜色等。展示高速缓冲存储器721耦合到本地图形存储器114。高速缓冲存储器721利用一个或一个以上高速缓冲存储维持机制来维持与本地图形存储器114的一致性。箭头740展示GPU110与系统存储器(例如,图1所示的存储器115)之间的通信路径。
在一个实施例中,包括光栅单元702的硬件经优化而以每时钟为基础进行操作。举例来说,为了提供高处理量并藉此维持高渲染帧速率,粗略光栅组件703和精细光栅组件704包括经设计而以每时钟周期为基础实施第一阶层光栅化和第二阶层光栅化的硬件。可实施光栅器单元702使得在粗略光栅组件703中实施第一阶层光栅化,粗略光栅组件703在单一时钟周期内“切割出”覆盖给定图元的瓦片群组(例如,包含非矩形瓦片群组)。随后,在精细光栅组件704中实施第二阶层处的光栅化,精细光栅组件704在单一时钟周期内切割出瓦片群组的被覆盖像素。因此,举例来说,可每时钟处理64个像素的硬件将使用64像素印迹(例如,四个各16个像素的瓦片),而可每时钟处理128个像素的硬件将使用128像素印迹(例如,八个各16个像素的瓦片、四个各32个像素的瓦片等)。如上所述,这些瓦片可排列成各种不同聚集体(例如,长而瘦削的印迹、正方形印迹、矩形印迹、斜纹印迹、“L”形印迹等)。
作为简要概述,本文已揭示以下内容。
概念1.一种用于在图形管线的光栅级中对非矩形瓦片群组进行光栅化的方法,其包括接收图形图元以便在图形处理器的光栅级中进行光栅化;通过产生包括与图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化;以及通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化;以及输出所述被覆盖像素以便在图形处理器的后续级中进行渲染操作。
概念2.根据概念1所述的方法,其中所述在所述第一阶层处的光栅化是以每时钟周期为基础实施的。
概念3.根据概念1所述的方法,其中所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
概念4.根据概念1所述的方法,其中在所述第一阶层处的光栅化在粗略光栅单元中实施,且在所述第二阶层处的光栅化在精细光栅单元中实施。
概念5.根据概念1所述的方法,其中所述粗略光栅单元经配置以使用交错书写图案遍历图像的多个像素。
概念6.根据概念1所述的方法,其中可根据图形图元的形状来调节非矩形印迹的尺寸。
概念7.根据概念6所述的方法,其中可调节非矩形印迹的尺寸以优化构成所述非矩形印迹的所述组像素中的被覆盖像素的数目。
概念8.根据概念7所述的方法,其中针对伸长的三角形图形图元规定非矩形印迹的尺寸,以优化构成所述非矩形印迹的被覆盖像素的数目。
概念9.一种GPU(图形处理器单元),其包括设置单元,其用于产生多边形描述;光栅器单元,其耦合到所述设置单元,用于对所述多边形描述进行光栅化;粗略光栅单元,其在所述光栅器单元内,用于通过产生包括与图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化;以及精细光栅单元,其在所述光栅器单元内,用于通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化。
概念10.根据概念9所述的GPU,其中所述在所述第一阶层处的光栅化是以每时钟周期为基础实施的。
概念11.根据概念9所述的GPU,其中所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
概念12.根据概念9所述的GPU,其中在所述第一阶层处的光栅化在粗略光栅单元中实施,且在所述第二阶层处的光栅化在精细光栅单元中实施。
概念13.根据概念9所述的GPU,其中所述粗略光栅单元经配置以使用交错书写图案遍历图像的多个像素。
概念14.根据概念9所述的GPU,其中所述非矩形印迹的尺寸可根据所述图形图元的形状进行调节。
概念15.根据概念14所述的GPU,其中可调节所述非矩形印迹的尺寸以优化构成所述非矩形印迹的所述组像素中的被覆盖像素的数目。
概念16.根据概念15所述的GPU,其中针对伸长的三角形图形图元规定所述非矩形印迹的尺寸,以优化构成所述非矩形印迹的被覆盖像素的数目。
概念17.一种计算机系统,其包括系统存储器;中央处理器单元,其耦合到所述系统存储器;以及图形处理器单元,其通信地耦合到所述中央处理器单元;设置单元,其在所述图形处理器单元内,用于产生多边形描述;光栅器单元,其在所述图形处理器单元内且耦合到所述设置单元,用于对所述多边形描述进行光栅化;以及粗略光栅组件,其在所述光栅单元内,其中所述粗略光栅器组件经配置以从所述设置单元接收用于光栅化的图形图元,通过产生包括与所述图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化,通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化,并输出所述被覆盖像素以便在所述图形处理器单元的后续级中进行渲染操作。
概念18.根据概念17所述的计算机系统,其中所述在所述第一阶层处的光栅化和所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
概念19.根据概念17所述的计算机系统,其中可调节所述非矩形印迹的尺寸以优化构成所述非矩形印迹的所述组像素中的被覆盖像素的数目。
概念20.根据概念17所述的计算机系统,其中针对伸长的三角形图形图元规定所述非矩形印迹的尺寸,以优化构成所述非矩形印迹的被覆盖像素的数目。
概括来说,本文揭示一种进行并行精细光栅化的方法。所述方法包含接收图形图元以便在图形处理器的光栅级中进行光栅化。可在第一阶层处使所述图形图元光栅化以产生多个像素瓦片。随后在第二阶层处通过将所述瓦片配给到并行的第二阶层光栅化单元阵列而使所述瓦片光栅化,以产生被覆盖像素。接着可输出所述被覆盖像素以便在所述图形处理器的后续级中进行渲染操作。本文还概括地揭示用于通过灵活地改变集成电路小片中功能组件的操作特征来促进电路小片良率增加的系统和方法。本发明系统和方法可使具有有缺陷功能组件的集成电路芯片能够得以废物利用。以维持芯片的基本功能性的方式禁用电路小片中有缺陷的功能组件。测试芯片,且可基于测试的结果对芯片执行功能组件配置过程。如果接收到关于有缺陷的功能组件的指示,那么禁用所述功能组件。可使工作流程从被禁用的功能组件转向启用的功能组件。本文还概括地揭示一种经配置以遍历一区域的像素的GPU。所述GPU包含用于产生多边形描述的设置单元和耦合到所述设置单元用于对多边形描述进行光栅化的光栅器单元。光栅器单元可经配置以使用第一交错书写图案沿着主轴遍历图像的多个像素,且在使用第一交错书写图案进行遍历期间,使用第二交错书写图案遍历图像的多个像素,其中第二交错书写图案可嵌套在第一交错书写图案内。本文还概括地揭示一种对非矩形瓦片群组进行光栅化的方法。所述方法包含接收图形图元以便在图形处理器的光栅级中进行光栅化。可通过产生包括与图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化。接着,可通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化。光栅级随后可输出所述被覆盖像素以便在图形处理器的后续级中进行渲染操作。
结论已出于说明和描述的目的呈现了对本发明特定实施例的以上描述。不希望其为详尽的或将本发明限于所揭示的精确形式,且鉴于以上教示,可能作出许多修改和变化。选择并描述所述实施例是为了最佳地阐释本发明的原理及其实践应用,藉此使所属领域的其他技术人员能够最佳地利用本发明和具有适于所预期的特定用途的各种修改的各种实施例。希望本发明的范围由所附权利要求书及其等效物界定。
权利要求
1.一种GPU(图形处理器单元),其包括设置单元,其用于产生多边形描述;光栅器单元,其耦合到所述设置单元,用于对所述多边形描述进行光栅化;粗略光栅单元,其在所述光栅器单元内,用于通过产生包括与图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化;以及精细光栅单元,其在所述光栅器单元内,用于通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化。
2.根据权利要求1所述的GPU,其中所述在所述第一阶层处的光栅化是以每时钟周期为基础实施的。
3.根据权利要求1所述的GPU,其中所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
4.根据权利要求1所述的GPU,其中在所述第一阶层处的光栅化在粗略光栅单元中实施,且在所述第二阶层处的光栅化在精细光栅单元中实施。
5.根据权利要求1所述的GPU,其中所述粗略光栅单元经配置以使用交错书写图案遍历图像的多个像素。
6.根据权利要求1所述的GPU,其中可根据所述图形图元的形状来调节所述非矩形印迹的尺寸。
7.根据权利要求6所述的GPU,其中可调节所述非矩形印迹的尺寸以优化构成所述非矩形印迹的所述组像素中的被覆盖像素的数目。
8.根据权利要求7所述的GPU,其中针对伸长的三角形图形图元规定所述非矩形印迹的尺寸,以优化构成所述非矩形印迹的被覆盖像素的数目。
9.一种计算机系统,其包括系统存储器;中央处理器单元,其耦合到所述系统存储器;以及图形处理器单元,其通信地耦合到所述中央处理器单元;设置单元,其在所述图形处理器单元内,用于产生多边形描述;光栅器单元,其在所述图形处理器单元内且耦合到所述设置单元,用于对所述多边形描述进行光栅化;以及粗略光栅组件,其在所述光栅单元内,其中所述粗略光栅器组件经配置以从所述设置单元接收用于光栅化的图形图元,通过产生包括与所述图形图元有关的一组像素的非矩形印迹而在第一阶层处使所述图形图元光栅化,通过存取所述组像素并从所述组像素中确定被覆盖像素而在第二阶层处使所述图形图元光栅化,并输出所述被覆盖像素以便在所述图形处理器单元的后续级中进行渲染操作。
10.根据权利要求9所述的计算机系统,其中所述在所述第一阶层处的光栅化和所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
11.根据权利要求9所述的计算机系统,其中可调节所述非矩形印迹的尺寸以优化构成所述非矩形印迹的所述组像素中的被覆盖像素的数目。
12.根据权利要求9所述的计算机系统,其中针对伸长的三角形图形图元规定所述非矩形印迹的尺寸,以优化构成所述非矩形印迹的被覆盖像素的数目。
13.一种GPU(图形处理器单元),其包括设置单元,其用于产生多边形描述;光栅器单元,其耦合到所述设置单元,用于对所述多边形描述进行光栅化;粗略光栅单元,其在所述光栅器单元内,用于通过产生与图形图元有关的多个像素瓦片而在第一阶层处使所述图形图元光栅化;以及并行精细光栅单元阵列,其在所述光栅器单元内,用于在第二阶层处使所述瓦片光栅化,其中将所述瓦片配给到所述并行的第二阶层光栅化单元以产生被覆盖像素,且其中输出所述被覆盖像素以便在所述GPU的后续级中进行渲染操作。
14.根据权利要求13所述的GPU,其中所述在所述第一阶层处的光栅化是以每时钟周期为基础实施的。
15.根据权利要求13所述的GPU,其中所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
16.根据权利要求13所述的GPU,其中所述并行的第二阶层光栅化单元阵列能够进行选择性功能组件停用。
17.根据权利要求13所述的GPU,其中将所述多个瓦片配给到所述并行的第二阶层光栅化单元阵列以在所述第二阶层光栅化单元之间平衡工作负荷。
18.根据权利要求13所述的GPU,其中所述并行的第二阶层光栅化单元中的至少一者被停用。
19.根据权利要求13所述的GPU,其中所述并行的第二阶层光栅化单元中的至少一者是提供冗余第二阶层光栅化能力的冗余光栅化单元。
20.一种计算机系统,其包括系统存储器;中央处理器单元,其耦合到所述系统存储器;以及图形处理器单元,其通信地耦合到所述中央处理器单元;设置单元,其在所述图形处理器单元内,用于产生多边形描述;光栅器单元,其在所述图形处理器单元内且耦合到所述设置单元,用于对所述多边形描述进行光栅化;以及粗略光栅单元,其在所述光栅器单元内,用于通过产生与图形图元有关的多个像素瓦片而在第一阶层处使所述图形图元光栅化;以及并行精细光栅单元阵列,其在所述光栅器单元内,用于在第二阶层处使所述瓦片光栅化,其中将所述瓦片配给到所述并行的第二阶层光栅化单元以产生被覆盖像素,且其中输出所述被覆盖像素以便在所述GPU的后续级中进行渲染操作。
21.根据权利要求20所述的系统,其中所述在所述第一阶层处的光栅化和所述在所述第二阶层处的光栅化是以每时钟周期为基础实施的。
22.根据权利要求20所述的系统,其中所述并行的第二阶层光栅化单元阵列能够进行选择性功能组件激活/停用。
全文摘要
本发明揭示一种在图形处理器的光栅级中进行并行精细光栅化的方法。所述方法包含接收图形图元以便在图形处理器的光栅级中进行光栅化。所述图形图元可在第一阶层处经光栅化以产生多个像素瓦片。随后在第二阶层处通过将所述瓦片配给到并行的第二阶层光栅化单元阵列而使所述瓦片光栅化,以产生被覆盖像素。接着可输出所述被覆盖像素以便在所述图形处理器的后续级中进行渲染操作。
文档编号G06T15/00GK101093578SQ200710106789
公开日2007年12月26日 申请日期2007年6月22日 优先权日2006年6月23日
发明者沃尔特·R·斯坦纳, 富兰克林·C·克罗, 克雷格·M·威滕布林克, 罗杰·L·艾伦, 道格拉斯·A·沃里斯 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1