首页> 中国专利> 控制图形处理器操作模式的方法及图形处理器

控制图形处理器操作模式的方法及图形处理器

摘要

本发明公开一种图形处理器操作模式的控制方法及图形处理器,该控制方法应用于一计算机系统的一图形处理器,且图形处理器具有多个串流处理器,包括下列步骤:根据计算机系统的一运行状况,决定图形处理器操作于一正常模式或一节能模式;当图形处理器操作于正常模式时,计算机系统开启图形处理器的全部串流处理器;以及,当图形处理器操作于节能模式时,计算机系统开启图形处理器的部分串流处理器。由以上可知,借由使用者手动的设定或是计算机系统自动的检测,本发明的图形处理器可开启全部的串流处理器使其操作于正常模式,或是关闭部分的串流处理器使其操作于节能模式,而达成本发明的图形处理器具有动态节能功能。

著录项

  • 公开/公告号CN101281639A

    专利类型发明专利

  • 公开/公告日2008-10-08

    原文格式PDF

  • 申请/专利权人 华硕电脑股份有限公司;

    申请/专利号CN200810099877.5

  • 发明设计人 范盛玄;钟礼钧;

    申请日2008-05-30

  • 分类号G06T1/00(20060101);G06T1/20(20060101);

  • 代理机构72003 隆天国际知识产权代理有限公司;

  • 代理人陈晨

  • 地址 中国台湾台北市

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-06-09

    授权

    授权

  • 2008-12-03

    实质审查的生效

    实质审查的生效

  • 2008-10-08

    公开

    公开

说明书

技术领域

本发明涉及一种图形处理器(Graphic Processing Unit,GPU)的控制方法,尤其涉及一种控制图形处理器操作模式的方法。

背景技术

在现今的计算机系统中,不论是从操作系统、3D应用、游戏、多媒体等角度来看,计算机系统中的视觉应用都将成为主流,并且这些所有的视觉应用,都取决于计算机系统中的显卡;其中,图形处理器(GPU)就是显卡的“心脏”。过去使用者在购买计算机的时候,中央处理器(CPU)是首要考虑要素。但目前的情况是,不断升级的中央处理器(CPU)在提升计算机系统整体性能方面所得到的回报越来越小,中央处理器(CPU)已经不再是制约计算机系统性能的关键。

随着使用者对3D游戏或3D多媒体使用的越来越多,使用者对图形处理器(GPU)的要求也越来越高。图形处理器(GPU)是相对于中央处理器(CPU)的一个概念,在现今的计算机系统中,图形的处理变得越来越重要,需要一个专门的核心处理器来处理大量的图形数据。图形处理器(GPU)决定了显卡的性能和处理图形数据的能力,同时也是2D显卡和3D显卡的区别依据。在过去,2D显示芯片在处理3D图像和特效时主要依赖中央处理器(CPU)的处理能力,称为“软件加速”。而如今,3D图像和特效处理功能则集中在3D显示芯片内,也即所谓的“硬件加速”功能。

现在市场上的显卡大多采用NVIDIA和ATI两家公司的图形处理器(GPU)。图形处理器(GPU)诞生于1999年。当时,NVIDIA发布了首款GeForce系列图形处理器(GPU)。在此之前,计算机系统的核心处理器结构一直受控于INTEL。按照INTEL的规划,计算机系统的所有功能都应被集中至一个单一平台上,由主管计算的中央处理器(CPU)来完成所有数据处理工作。然而,图形处理器(GPU)的出现则打破了过去计算机系统的结构,这相当于为计算机系统额外设置了一个除了中央处理器(CPU)之外、专管图像数据处理的“大脑”。由于图形处理器(GPU)可以有效地执行多种运算,从物理运算到图像编译码的处理,如果说过去的3D软件加速是中央处理器(CPU)做了图形处理器(GPU)的工作,那如今的3D硬件加速则是图形处理器(GPU)做了中央处理器(CPU)的工作。因此在可预见的将来,图形处理器(GPU)不仅仅作为绘图引擎,而是会成为计算机系统的主要计算引擎。

当计算机系统的运算能力达到一定水平,各式的应用都将不再有太多的问题后,相信会有越来越多的人会将眼光放在能源节约的问题上,毕竟随着地球资源的逐渐消耗殆尽,能源价格的问题将会越来越严重,因此如何能够将每瓦电源发挥最大效益,便可说是新一代绿色电子产品业者最为关切的议题,毕竟不是每个人随时都需要最大的效能,而是如何能够最适切的在效能与能源损耗上做一平衡,才是业者必须努力的方向。

过去,显卡的节能主要是采用降低图形处理器(GPU)的工作频率(Clock)或操作电压,使得图形处理器(GPU)的工作速度变慢,进而减少功率的消耗。因此,图形处理器(GPU)大厂NVIDIA推出Hybird Power技术,便是为了达到效能与节能最佳平衡而设计的一项解决方案。所谓的Hybird Power技术,简单来说就是能够依据使用者目前对于效能的需求状态,手动切换与调整选择,是否要使用内建的绘图核心,或是以外接的图形处理器(GPU)来进行运算;其中最大的关键,便是在于主机板芯片组与显卡上皆多了一组SMBUS总线,来作为传送外接图形处理器(GPU)的开启或是关闭指令之用。请参阅图1,其所示为一具有NVIDIA Hybird Power技术图形处理器(GPU)的计算机系统示意图。该具有NVIDIA Hybird Power技术图形处理器(GPU)的计算机系统主要包含:一主机板11、一中央处理器13(CPU)、一内建绘图核心15、与一外接图形处理器17(GPU);其中该主机板11通过一SMBUS总线作为传送该外接图形处理器17(GPU)的开启或是关闭指令之用。首先,当使用者察觉到目前计算机系统所操作的各项应用程序,对于绘图效能并不属于重度的需求,便可通过手动或是系统自动设定的方式,让驱动程序有关Hybird Power的细部选项与专属SMBUS传递相关的指令启动,使显卡上的图形处理器17(GPU)暂停运行,而改由芯片组内建的绘图核心15来进行相关的运算;在这样的节能模式下,外接图形处理器17(GPU)几乎等于是完全不耗用任何电力,以目前高阶显卡耗电量来说,大约可以减少将近70~90Watt的功耗,因此将可有效节约系统整体的电力损耗。而当系统有重度的3D绘图效能需求时,也能再次通过驱动程序的设定与SMBUS传递相关的指令来唤醒外接图形处理器17(GPU)进行相关的绘图运算;因此,在这样一来一往的过程中,便可在兼顾效能的情况下,达成节约能源的理想。

此外,图形处理器(GPU)大厂ATI则推出具有动态电压控制的Power-On-Demand技术,其允许操作电压在图形处理器(GPU)的负载支配下进行动态调整。ATI宣称具有Power-On-Demand技术的图形处理器(GPU),就算只受供0.95伏特的低电压也能提供稳定的操作,这让它在节能模式下大幅降低功耗。借由在同个设计中综合运用不同电压的晶体管,图形处理器(GPU)得以搭配改良式数据路径,持续在较低的频率下运行,并因此省下电力。

发明内容

本发明为一种图形处理器操作模式的控制方法,应用于一计算机系统的一图形处理器,且图形处理器具有多个串流处理器,包括下列步骤:根据计算机系统的一运行状况,决定图形处理器操作于一正常模式或一节能模式;当图形处理器操作于正常模式时,计算机系统开启图形处理器的全部串流处理器;以及,当图形处理器操作于节能模式时,计算机系统开启图形处理器的部分串流处理器。

本发明还提出一种图形处理器,包括:一输入组合单元,接收一绘图数据,并区分为多个执行线程;一执行线程管理器,根据所接收该些执行线程,输出一控制信号;多个串流处理器,连接该执行线程管理器以接收该些执行线程,并接受该控制信号来控制开启串流处理器的数目;多个平行数据高速缓存,连接相对应的该些串流处理器用以暂存该些串流处理器处理输出的多个数据;一存储/下载单元,接收该些数据;以及一图框内存,连接该存储/下载单元。

由以上可知,借由使用者手动的设定或是计算机系统自动的检测,本发明的图形处理器(GPU)可开启全部的串流处理器(Stream Processor)使其操作于正常模式,或是关闭部分的串流处理器(Stream Processor)使其操作于节能模式,而达成本发明的图形处理器(GPU)具有动态节能功能。

附图说明

图1所示为一具有NVIDIA Hybird Power技术图形处理器(GPU)的计算机系统示意图。

图2所示为一图形处理器(GPU)的结构示意图(以NEVIDA G92为例)。

图3所示为本发明图形处理器操作模式的控制方法。

具体实施方式

不同于过去显卡的节能主要是采用降低图形处理器(GPU)的工作频率(Clock)或操作电压,本发明的具有动态节能功能的图形处理器(GPU)操作于节能模式时,采用关闭图形处理器(GPU)内部分串流处理器(StreamProcessor),如此将可使图形处理器(GPU)操作于节能模式时减少电力的消耗。

以下,将以图形处理器(GPU)绘制一3D游戏画面为例,来介绍图形处理器(GPU)的演进过程和图形处理器(GPU)内部的工作流程。

3D游戏画面是属于3D“实时绘图”(Realtime Rendering)的领域,它不像工业设计、动画电影那样需要超高分辨率和精确度,游戏的3D画面只要快,一秒至少要画出30张,打电玩的人才不会觉得延迟,所以娱乐用的图形处理器(GPU)采用很多图形处理的技术。而拆解到最简单,3D绘图可分成“建立骨架”、“贴图”和“输出画面”三个步骤。

现今3D绘图是以三角形或多边形(Polygon)为基础来建构物体的外型,游戏里所有的物体都是由一片片三角形堆栈出来的,而每个三角形都是由三个顶点(Vertex)构成,这也是为什么早期游戏的物体都让人觉得棱棱角角的,因为需要大量的三角形才能组成近似圆弧状的物体,若显卡效能不够强大就没办法处理大量多边形,只用少量的多边形建构外型,就会出现棱棱角角的对象。

用三角形建立出物体的骨架之后,物体就有线条式的骨架了,但如果要让人知道它到底是什么,一定要贴上一层皮,也就是材质贴图(Texture),其实材质就是图片,由一点一点的像素(Pixel)构成,贴上之后原来的骨架就会变成实际的场景了。但以上两个步骤运算完会得到一个真正3D的场景,但因为使用者屏幕只有2D平面,所以图形处理器(GPU)最后一步就是把这个3D的场景,依照使用者所看到的视角(摄影机视野),投射成一张2D的画面,并输出到屏幕上。

假设在一张实际2D画面,画面中有两个部分彼此其实没什么关联,它们根本就是两组多边形的骨架,也有各自的贴图,在游戏中这两个部分也不会互动,如果能把这两个部分的运算分离开来,图形处理器(GPU)内装两组运算单元,那就可以同时运算画面的这两个不同部分,进而加快运算速度了。事实上,无论3D或2D画面,会彼此相关的通常只有紧接相邻的部分,大范围来看,其实很多地方都是可以各自独立运算的,也因为如此,图形处理器(GPU)最基本的运算方式就是将画面上各个像素做独立运算,很像现在双核心CPU的处理方式,但图形处理器(GPU)至少都数十或上百个核心,所以平行运算(Parallel Processing)会更彻底。

因此,平行运算是图形处理器(GPU)最基本的运算概念,最新的图形处理器(GPU)已经高度平行化到数百个运算单元(可模拟成有数百个简单核心)。由于3D画面上不同区域的彼此关联性不高,在过去,图形处理器(GPU)就开始在内部平行拆成好几个部分,就好像有好几个核心在一起运算,过去大家常说的“管线”(Pipeline)就是有多少条平行化的部分,从多边形组合、贴图到输出画面,这样的3D画面产生过程可能有四组或八组同时运行,越多当然就越快。

但现在新的图形处理器(GPU)已经不是管线的结构了,从DirectX 8.0开始引进着色器(Shader)运算的概念之后,现在图形处理器(GPU)的运算几乎全部集中在着色器(Shader)处理上。着色器(Shader)是多边形组合或贴图之后,图形处理器(GPU)再对多边形与材质做进一步的处理,简单的说就是各种数学公式,依照不同的算法技巧,原本静态的贴图或多边形就会变成动态的特效,比如大家现在在游戏中常看到水面起伏和物体的反光/凹凸效果,就是利用着色器(Shader)调整顶点的位置或像素的颜色。

过去,图形处理器(GPU)内部都还有区分处理顶点和像素的着色器(Shader)运算单元,但现今NVIDIA和ATI都统一成串流处理器(StreamProcessor),串流处理器(Stream Processor)不管顶点或像素着色器(Shader),通通都可以运算。图形处理器(GPU)做成串流处理器(Stream Processor),串流处理器(Stream Processor)就相当于非常简化的图形处理器(GPU)核心,负责着色器(Shader)里的数学运算,现在图形处理器(GPU)的串流处理器(StreamProcessor)数量从数十到数百不等,依显卡的定位价格不同,数量越多,平行化越彻底,速度自然就越快。

现在新的图形处理器(GPU)都采用Unified着色器(Shader)(统一着色器(Shader))结构,不再分像素或顶点,这样不管画面是多边形或是复杂的像素特效,图形处理器(GPU)内的着色器(Shader)运算单元都能保持在满载状态,不会造成系统资源的浪费。

请参阅图2,其所示为一图形处理器(GPU)的结构示意图(以NEVIDAG92为例)。该图形处理器100中包括一输入组合单元(input assembler)102、一执行线程管理单元(thread execution managing unit)104、多个串流处理器(Stream Processor)110~11n、多个平行数据高速缓存(parallel data cache)120~12n、一存储/下载(load/store unit)单元130、与一图框内存(framebuffer)132。

由图中可知,当图形处理器100接收到任何的绘图命令与相对应的绘图数据后,输入组合单元102会区分为不同的执行线程(thread)并给予一执行线程编号(thread ID)。再者,执行线程管理单元104中可将接收的多个执行线程区分成为属于端点执行线程(Vtx thread issue)、属于几何坐标执行线程(Geom thread issue)、与属于像素执行线程(Pixel thread issue),并输出一控制信号到多个串流处理器110~11n。之后,执行线程管理单元104即可将相对应的执行线程分配至多个多个串流处理器110~11n来进行数据的平行处理,在此执行线程管理单元104根据所接收到执行线程数量与类别,以控制信号决定多个串流处理器110~11n开启数量。而多个串流处理器110~11n处理完成后的数据即暂存于相对应的平行数据高速缓存120~12n。

再者,存储于数据高速缓存120~12n中的数据可再次提供执行线程管理单元104来分配。

或者,存储于数据高速缓存120~12n中的数据可输出至存储/下载(load/store unit)单元130,最后送至图框内存(frame buffer)132。

图3所示为本发明图形处理器操作模式的控制方法。首先,根据计算机系统的一运行状况,决定图形处理器操作于一正常模式或一节能模式,如步骤S10。接着判断计算机系统是否操作于正常模式,如步骤S20。当图形处理器操作于正常模式时,计算机系统开启该图形处理器的全部串流处理器,如步骤S30。反之,当图形处理器操作于节能模式时,计算机系统开启图形处理器的部分串流处理器,如步骤S40。

根据本发明的实施例,由于现今的图形处理器(GPU)采用大量的串流处理器(Stream Processor),串流处理器(Stream Processor)就相当于非常简化的图形处理器(GPU)核心,因此,本发明的具有动态节能功能的图形处理器(GPU)即利用操作于节能模式时,关闭图形处理器(GPU)内部分串流处理器(StreamProcessor)的数目,也即仅开启部分串流处理器,如此将可使图形处理器(GPU)操作于节能模式时减少电力的消耗。

也就是说,当目前计算机系统所操作的各项应用程序,对于绘图效能并不属于重度的需求,便可通过手动或是系统自动设定的方式,经由更改图形处理器(GPU)内部缓存器(Register)的设定,来关闭部分的串流处理器(StreamProcessor),避免不必要的电力消耗。

在使用者手动设定串流处理器(Stream Processor)数量方面,假设使用者仅利用计算机系统做些文书处理,此时显卡不需处理大量3D画面等高负载的运算,因此使用者可通过一使用者界面,来关闭部分的串流处理器(StreamProcessor),使图形处理器(GPU)进入节能模式,进而避免不必要的电力消耗。举例来说,NVIDIA GeForce 9600GT的图形处理器(GPU)内的串流处理器(Stream Processor)数量为64,当使用者仅利用计算机系统做些文书处理时,此时这64个同时开启的串流处理器(Stream Processor)会消耗大量的电力,但是却对使用者文书处理效能的提升没有太大的帮助,此时使用者可通过一使用者界面,来关闭部分的串流处理器(Stream Processor),例如仅开启32个串流处理器(Stream Processor)而关闭32个串流处理器(Stream Processor)而使图形处理器(GPU)进入节能模式。也就是说,使用者可以设定一串流处理器使用数目(例如32),如此一来,节能模式下的显卡对使用者进行的文书处理工作几乎不会产生任何影响,但是却可省下可观的电力消耗。相反的,当使用者结束文书处理转而使用3D多媒体时,此时由于节能模式下的图形处理器(GPU)只剩32个串流处理器(Stream Processor)在工作,这会使得显卡对3D多媒体工作的负担过重,此时使用者可通过一使用者界面,来重新开启原本被关掉的串流处理器(Stream Processor),例如使用者可以再次设定一串流处理器使用数目(例如62),重新开启原本关闭掉的32个串流处理器(StreamProcessor)而使图形处理器(GPU)进入正常模式,如此一来,将可使图形处理器(GPU)重新发挥全部的效能。

在计算机系统自动设定串流处理器(Stream Processor)数量方面,计算机系统可通过一些机制,来决定图形处理器(GPU)内串流处理器(StreamProcessor)的工作数量。举例来说,当计算机系统检测出使用者在使用3D多媒体状态下,此时计算机系统会自动开启图形处理器(GPU)内所有64个串流处理器(Stream Processor)而让图形处理器(GPU)进入正常模式,使得图形处理器(GPU)发挥全部的效能。当计算机系统检测出使用者在非使用3D多媒体状态下,此时计算机系统会自动关闭图形处理器(GPU)内部分的串流处理器(Stream Processor),例如关闭32个串流处理器(Stream Processor)而使图形处理器(GPU)进入节能模式,如此一来,在不影响显卡处理数据的效能下,可省下可观的电力消耗。此外,由于图形处理器(GPU)与中央处理器(CPU)在某些方面的合作是十分紧密的,因此计算机系统可根据中央处理器(CPU)的工作负载来决定图形处理器(GPU)内串流处理器(Stream Processor)的工作数量。举例来说,当计算机系统检测出中央处理器(CPU)处于高负载的状态下,此时计算机系统会自动开启图形处理器(GPU)内所有64个串流处理器(StreamProcessor)而让图形处理器(GPU)进入正常模式,使得图形处理器(GPU)发挥全部的效能,用以分担中央处理器(CPU)的负载。当计算机系统检测出中央处理器(CPU)处于低负载的状态下,此时计算机系统会自动关闭图形处理器(GPU)内部分的串流处理器(Stream Processor),例如关闭32个串流处理器(Stream Processor)而使图形处理器(GPU)进入节能模式,如此一来,在不影响显卡处理数据的效能下,可省下可观的电力消耗。此外,计算机系统可根据图形处理器(GPU)的温度来决定图形处理器(GPU)内串流处理器(StreamProcessor)的工作数量。举例来说,当计算机系统检测出图形处理器(GPU)的温度高于某一特定值,表示此时图形处理器(GPU)处于高负载的状况,此时计算机系统会自动开启图形处理器(GPU)内所有64个串流处理器(StreamProcessor)而让图形处理器(GPU)进入正常模式,使得图形处理器(GPU)发挥全部的效能。当计算机系统检测出图形处理器(GPU)的温度低于某一特定值,表示此时图形处理器(GPU)处于低负载的状况,此时计算机系统会自动关闭图形处理器(GPU)内部分的串流处理器(Stream Processor),例如关闭32个串流处理器(Stream Processor)而使图形处理器(GPU)进入节能模式,如此一来,在不影响显卡处理数据的效能下,可省下可观的电力消耗。

由以上可知,借由使用者手动的设定或是计算机系统自动的检测,本发明的图形处理器(GPU)可开启全部的串流处理器(Stream Processor)使其操作于正常模式,或是关闭部分的串流处理器(Stream Processor)使其操作于节能模式,而达成本发明的图形处理器(GPU)具有动态节能功能。

此外,本发明虽以计算机系统是否正处理3D多媒体程序、中央处理器(CPU)是否处于高负载、或是图形处理器(GPU)的温度是否高于一特定值为例,作为图形处理器(GPU)是否进入节能模式的机制,但并不限于此三种机制,其它现有用以判定图形处理器(GPU)是否进入节能模式的机制,也可适用于本发明。

此外,本发明的图形处理器(GPU)所采用的动态节能技术,若能与其它现有的节能方法(如降低图形处理器的工作频率或操作电压)搭配,将更能降低显卡的电力消耗。

综上所述,虽然本发明已以优选实施例公开如上,然而其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作各种更动与润饰,因此本发明的保护范围当视权利要求所界定的范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号