使图形处理单元之间的高效切换更容易的制作方法

文档序号:6351968阅读:145来源:国知局
专利名称:使图形处理单元之间的高效切换更容易的制作方法
技术领域
公开的实施例涉及计算机系统中的图形处理单元(GPU)之间的切换技术。更具体地说,公开的实施例涉及“预热” GPU以使GPU的快速转换更容易的技术。
背景技术
计算性能的进步已使计算机系统能够在较高的传输速率下,有效地处理大量的图形数据。例如,计算机系统通常用于渲染视频游戏的复杂场景,和处理视频流和数字照片。 为了使这种图形数据的快速处理更容易,计算机系统一般包括驱动图形显示设备,比如计算机系统监视器的专用图形处理器(称为“图形处理单元”(GPU))。不幸的是,强大的GPU消耗大量的电力,并会引起散热问题。这种问题的一种解决方案是通过从提供较高性能的高功率GPU切换到性能较低的低功率GPU,在低活性时期内节省电力。不过,作为切换操作的准备,初始化GPU的处理包括相当大量的配置操作,这会消耗相当大量的时间。例如,在初始化GPU的处理过程中,需要初始化GPU的模式设置,需要填充颜色查找表,并且需要重新配置相关的驱动器。这些配置操作会导致相当大的计算机系统响应延迟,这会使用户感到烦恼。因此,需要一种不存在上述问题的便于在GPU之间进行高效切换的技术。

发明内容
公开的实施例提供一种使驱动显示器的图形处理单元(GPU)之间的无缝切换更容易的系统。在操作中,所述系统接收从使用第一 GPU切换到使用第二 GPU以驱动显示器的请求。响应所述请求,系统使用在后台运行的内核线程来配置第二 GPU,以为驱动显示器作准备。在内核线程配置第二 GPU的时候,用户线程继续运行窗口管理器,窗口管理器进行与服务用户请求相关的操作。当第二 GPU的配置完成时,系统把显示器的信号源从第一 GPU切换到第二 GPU。在一些实施例中,配置第二GPU包括首先使第二GPU加电,以及随后执行关于第二GPU的硬件配置操作。在一些实施例中,进行硬件配置操作包括重新初始化第二 GPU的驱动器;进行显示器探测操作以确定显示器的特性;把模式设置从第一 GPU复制到第二 GPU ;和把至少一个颜色查找表(CLUT)从第一 GPU复制到第二 GPU。在一些实施例中,在把信号源从第一 GPU切换到第二 GPU之前,用户线程执行精简代码路径,所述精简代码路径进行软件配置操作,以初始化与窗口管理器和第二 GPU相关的应用可视数据结构,以及还为第二 GPU呈现第一图像。在一些实施例中,执行精简代码路径包括重复内核线程先前进行的一些操作以配置第二 GPU,其中重复的操作将已由内核线程完成,或者将访问高速缓存的值,从而会更快地执行。在一些实施例中,在信号源被切换之后,系统使用内核线程拆除(tear down)第一GPU的配置。所述拆除处理可包括除去与窗口管理器和第一 GPU相关的应用可视数据结构;除去与第一 GPU相关的驱动器状态信息;和从第一 GPU去除电力。 在一个实施例中,第一 GPU是被集成到处理器芯片集中的低功率GPU,而第二 GPU是驻留在离散GPU芯片上的高功率GPU,或者反之亦然。在另一个实施例中,第一 GPU和第二 GPU具有大体相同的电路和大体相似的能力。在另一个实施例中,第一 GPU是运行图形代码的通用处理器,而第二 GPU是专用图形处理器,或者反之亦然。另一个实施例还提供一种从使用第一 GPU切换成使用第二 GPU以驱动显示器的系统。在操作中,在线程配置第二GPU以驱动显示器的时候,所述系统从第一GPU驱动显示器。之后,在第二 GPU的配置完成之后,所述系统把驱动显示器的信号源从第一 GPU切换到第二GPU。


图I图解说明按照一个实施例,能够在驱动相同显示器的不同图形源之间切换的计算机系统。图2图解说明按照一个实施例的图形多路复用器的结构。图3表示图解说明按照一个实施例,在GPU之间切换时涉及的操作的流程图。图4表示按照一个实施例,在GPU之间切换时涉及的操作的时间表。图5表示图解说明按照一个实施例,由内核线程进行的硬件配置操作的流程图。图6表示图解说明按照一个实施例,由用户线程进行的软件配置操作的流程图。图7表示图解说明按照一个实施例,在拆除GPU的配置时涉及的操作的流程图。图8表示按照一个实施例,在GPU之间切换的处理的高级流程图。
具体实施例方式概述在支持多个GPU的现有计算机系统中,当决定切换GPU时,系统一般使用通用重新配置机制来初始化新的GPU。所述通用重新配置机制执行当插入新的外部监视器时执行的相同代码路径。不过,和新的外部监视器的情况不同,GPU切换不涉及改变显示器。在所述实施例中,这个事实使系统能够“预热”新的GPU,这涉及进行许多配置假设,和在把切换通知窗口管理器之前,在GPU之间复制一些配置信息(例如,颜色配置文件/信息)。为了向用户隐瞒这些配置操作的效果,配置操作可由在后台运行的内核线程进行。在内核线程在后台进行配置操作的时候,窗口管理器可继续在前台正常运行。这允许系统在“预热”过程中,继续与用户交互。由于内核线程预先把GPU配置成彼此非常接近,因此进行实际的GPU切换涉及执行更简单的“精简代码路径”,所述更简单的“精简代码路径”被调整以便进行切换。例如,在预热过程中,内核线路能够高速缓存关于当前运行的GPU的数据(例如,视频卡的种类、支持的模式)。这允许精简代码路径随后访问高速缓存的数据,而不是向当前运行的GPU询问所述数据。注意高速缓存指示GPU支持哪些模式的信息是有利的,因为系统需要知道如何设置新的GPU中的模式,以匹配当前运行的GPU中的模式。这可防止停转,因为系统不会在新的GPU在加电的时候,尝试访问新的GPU。图形驱动器也已被改变,以使用该操作是GPU切换的事实,从而消除当插入新的外部监视器时需要的,但是在GPU切换期间不需要的某些初始化操作。通过使用“预热”过程和精简代码路径来进行GPU切换,不再需要使这两个GPU持续一定长度的时间(例如,2-4秒)处于镜像状态,在所述一定长度的时间内,客户端应用实际上能够觉察镜像状态,以及用户能够感觉对所驱动的显示器和与窗口管理器的交互时的干扰。注意一些公开的实施例实际上确实使GPU处于镜像状态,不过仅仅持续显示第一图像和切换所需的时间(例如,大约16毫秒)。此外,在这段时间内,系统封锁客户端,从而客户端决不会注意到镜像状态。由于在一些实施例中,客户端仅仅被封锁大约16毫秒,因此用户几乎感觉不到对显示器或者用户与窗口管理器的交互时的干扰。相反,在现有系统中,在GPU切换期间,窗口管理器会被阻断2-4秒。下面更详细地说明这种新的更高效的GPU切换处理,不过我们首先说明一些相关的计算机系统硬件。
计算机系统图I图解说明按照一个实施例,能够在驱动显示器的两个图形源之间切换的计算机系统100。参见图1,所述两个图形源包括都能够独立驱动显示器114的(I)离散GPU110,和⑵嵌入式GPU 118。驱动显示器114的图形源由在这两个图形源之间进行选择的GPU多路复用器(GMUX) 120确定。因此,计算机系统100可以使用GMUX 120根据当前操作条件选择图形源。在操作中,来自离散GPU 110的显示流122,和来自嵌入式GPU118的显示流124都馈送到GMUX 120的数据输入端。源选择信号126馈送到GMUX 120的选择输入端,并确定这两个图形源中的哪一个将驱动显示器114。在图解说明的实施例中,源选择信号126由桥接芯片104产生,桥接芯片104包括用于生成源选择信号126的特定逻辑电路(注意,源选择信号126也可用除桥接芯片104以外的逻辑块生成。例如,源选择信号126可由一个或多个处理单元102产生)。来自选择的图形源的显示流随后馈送到显示器114中。在一个实施例中,离散GPU 110和嵌入式GPU 118通过数据路径128通信,以使它们的显示流同步。注意使显示流同步可涉及使各自的定时信号和各自的数据信号同步。在一个实施例中,离散GPU 110是相对于嵌入式GPU118(消耗少量电力的低性能GPU),消耗相当大量的电力的高性能GPU。在这个实施例中,当图形处理负载较轻时,系统从使用离散GPU 110切换成使用嵌入式GPU 118来驱动显示器114,以及随后使离散GPU 110断电,从而节省电力。另一方面,当图形处理负载重新变重时,系统把图形源从嵌入式GPU118切换回离散GPU 110。虽然我们说明了包括离散GPU和集成GPU的系统,不过公开的技术通常可在包含两个或更多个GPU (其中每个GPU能够独立驱动显示器)的任何计算机系统中起作用。此夕卜,这些多个GPU可具有不同的操作特性和功耗水平。因此,公开的技术并不局限于图I中图解说明的具体实施例。另外注意,在图形源之间切换的上述处理不涉及关闭或重新初始化计算机系统。结果,与如果需要重新初始化的情况相比,切换处理花费相当少的时间。从而,公开的技术使图形源之间的快速和频繁切换更容易。图形多路复用器
图2图解说明按照一个实施例的图形多路复用器120(以上参考图I所述)的内部结构。参见图2,来自离散GPU 110的显示流122,和来自嵌入式GPU 118的显示流124分别馈送到数据时钟捕获部件205和210。数据时钟捕获部件205和210去串行化(de-serialize)显示流122和124,以及还提取相应的数据时钟信号221和222。这些数据时钟信号221和222馈送到时钟MUX 225,时钟MUX225选择数据块221和222之一,以便转发给显示流组装器240。在一个实施例中,GMUX控制器235向时钟MUX225提供选择信号。另一方面,选择信号236可由其它源提供,诸如由一个或多个处理器单元102中的处理器,或者另一个控制器提供。之后,在数据时钟被分离的情况下,显示流 122和124分别馈送到数据缓冲器215和220。数据缓冲器215和220检查显示流122和124,以确定消隐间隔何时出现,并产生各自的消隐间隔信号233和234。数据缓冲器215和220还产生馈送到数据MUX 230的输出数据流。消隐间隔信号233和234馈送到GMUX控制器235,GMUX控制器235比较消隐间隔信号233和234,以确定在显示流122和124的消隐间隔之间存在多少重叠(如果有的话)(注意,消隐间隔信号233和234可指示垂直或水平消隐间隔)。如果GMUX控制器235确定消隐间隔信号233和234具有足够数量的重叠,那么当消隐间隔开始重叠时,GMUX控制器235把选择信号236置为高电平。这使时钟MUX225和数据MUX 230在显示流122和124的消隐间隔重叠的时期内,在显示流122和124之间进行切换。由于切换发生在消隐间隔期间,因此在显示器114上,切换处理将不明显。最后,数据MUX 230的输出和选择的数据时钟223馈送到显示流组装器240,显示流组装器240使数据流重新串行化,之后把数据流发送给显示器114。切换处理图3提供按照一个实施例,在GPU之间切换时涉及的操作的概况。首先,操作系统接收从使用第一 GPU切换到使用第二 GPU作为驱动显示器的信号源的请求(步骤302)。根据图形工作负载的增大(或减少),可以发起该请求。所述请求可由操作系统生成,或者由监测图形工作负载的后台进程生成。响应所述请求,操作系统产生(或者启动)在后台运行以进行关于第二 GPU的硬件配置操作,从而把第二 GPU准备成驱动显示器的内核线程(步骤304)。系统还继续用第一 GPU驱动显示器。注意,在内核线程配置第二 GPU的时候,操作系统继续运行用户线程以运行窗口管理器,所述窗口管理器进行与服务用户请求相关的操作(步骤306)。之后,在内核线程已执行关于第二GPU的硬件配置操作之后,用户线程执行精简代码路径,所述精简代码路径进行关于第二 GPU的软件配置操作(步骤308)。随后,操作系统把驱动显示器的信号源从第一 GPU切换到第二 GPU (步骤310)。最后,在信号源被切换之后,操作系统使用内核线程拆除第一 GPU的配置(步骤312)。在图4中所示的时间表中,更详细地图解说明了上述这些配置操作。图4中的左列图解说明在前台执行计算机系统的窗口管理器的用户线程402的动作。相反,图4中的右列图解说明在后台执行配置和拆除操作的内核线程404的动作。如上所述,当接收到切换请求时,操作系统使用内核线程404为各种硬件配置操作408作预检(preflight)。参见在图5中图解说明的流程图,这些硬件配置操作可涉及使第二 GPU加电(步骤502),以及重新初始化第二 GPU的驱动器(步骤504)。内核线程404还进行“显示器探测”操作,以确定正被驱动的监视器的特性(步骤506)。之后,内核线程404把各种类型的配置信息从第一 GPU复制到第二 GPU。例如,内核线程404可把模式设置从第一 GPU复制到第二 GPU (步骤508),这些模式设置能够指定显示器的分辨率和深度。内核线程504还可把颜色查找表(CLUT)的内容从第一 GPU复制到第二 GPU(步骤510)。在内核线程404配置 第二 GPU的时候,用户线程402继续执行窗口管理器(对视窗系统来说),窗口管理器进行与服务用户请求406相关的操作。在正在进行硬件配置操作的时候,这允许用户不中断地与视窗系统交互。当内核线程404完成硬件配置操作时,它向窗口管理器发送中断409。中断409使窗口管理器执行精简代码路径,所述精简代码路径进行各种软件配置操作410。参见图6中图解说明的流程图,这些软件配置操作可涉及初始化包含第二 GPU的状态信息的应用可视数据结构(步骤602)。所述系统还为第二 GPU呈现第一图像(步骤604)。注意这些软件配置操作中的一些操作(不涉及访问用户空间中的数据结构)可能可由内核线程404进行。注意在GPU之间切换时进行的配置操作不同于在插入新的监视器之后进行的通用配置操作,因为在切换操作期间,新的帧缓冲器是看不见的,直到发生切换之后为止。这使一些费时的通用配置操作能够被省略。例如,由于新的帧缓冲器最初是不可见的,因此不必擦除该帧缓冲器的内容。也不必进行颜色查找表(CLUT)渐消操作,从而逐渐渐弱和渐强显不器。系统还可省略向第一 GPU呈递最后一巾贞,因为在切换过程中,第一 GPU的输出将被冻结在倒数第二帧上。之后,系统从使用第一GPU切换到使用第二GPU作为驱动显示器的信号源。在一个实施例中,在选择的消隐间隔内,第一 GPU的输出被保持固定,以及选择的消隐间隔被“伸长”,直到第二GPU进入消隐间隔为止,此时发生切换操作。这确保切换操作只持续一帧(约16毫秒)冻结显示器,对用户来说,这几乎是觉察不到的。之后,在切换完成之后,窗口管理器向内核线程404回送中断412。响应中断412,内核线路404进行许多操作,以“拆除”第一 GPU414的配置。注意,在进行这些拆除操作的时候,窗口管理器继续进行与服务用户请求416相关的操作。参见在图7中图解说明的流程图,在拆除操作中,内核线程404除去包含与第一GPU相关的状态信息的应用可视数据结构(步骤702),以及除去与第一 GPU相关的驱动器状态(步骤704)。内核线程404还暂停与第一 GPU相关的加速器(步骤706)和音频处理(步骤708)。随后,内核线程404停止并等待应用从第一 GPU移除状态信息(步骤710)。最后,内核线程404去除第一 GPU的电力(步骤712)。出现在图4的右侧的垂直时间线图解说明在一个实施例中,使用内核线程404如何能有效地向用户隐瞒切换GPU时涉及的配置操作。首先,在窗口管理器继续服务用户请求406的时候,内核线程404进行预检(也称为“预热”)硬件配置操作408约1000毫秒。之后,窗口管理器执行精简代码路径,所述精简代码路径进行软件配置操作410约130毫秒。在该少量时间(约1/8秒)内,与用户的交互会受到影响,不过这几乎察觉不到。另外,如上所述,切换操作只需要约16毫秒,对用户来说,这不可能察觉得到。最后,内核线程完成拆除处理414需要约400毫秒。不过,在这段时间内,窗口管理器能够服务用户请求。高级说明图8表示图解说明按照一个实施例,在GPU之间切换的处理的高级流程图。在操作中,在线程配置第二 GPU以驱动显示器的时候,系统从第一 GPU驱动显示器(步骤802)。之后,在完成第二 GPU的配置之后,系统把驱动显示器的信号源从第一 GPU切换到第二GPU (步骤 804)。只是出于举例说明的目的,提供了实施例的上述说明。所述说明并不是详尽的,也不意图把本说明局限于公开的形式。因而,对本领域的技术人员来说,许多修改和变化是显而易见的。另外,以上的公开并不意图限制本说明。本说明的范围由附加的权利要求限定。此外,提供的上述说明是为了使本领域的技术人员能够实现和使用公开的实施例,并且上述说明是在特定应用及其要求的上下文中提供的。对本领域的技术人员来说,对所公开实施例的各种修改将是显而易见的,这里定义的一般原理可以适用于其它实施例和应用,而不脱离所公开实施例的精神和范围。因此,公开的实施例并不局限于所示的实施例,相反应被赋予与这里公开的原理和特征一致的最宽广范围。在本详细说明中描述的数据结构和代码一般保存在计算机可读存储介质上,所述计算机可读存储介质可以是能够保存供计算机系统使用的代码和/或数据的任何装置或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储装 置,比如磁盘驱动器、磁带、⑶(光盘)、DVD (数字通用盘或数字视频盘),或者目前已知或以后开发的能够保存代码和/或数据的其它介质。本详细说明中描述的方法和处理可被具体体现成能够保存在如上所述的计算机可读存储介质中的代码和/或数据。当计算机系统读取和执行保存在计算机可读存储介质上的代码和/或数据时,计算机系统执行具体体现成数据结构和代码,并保存在计算机可读存储介质内的方法和处理。此外,下面说明的方法和处理可包含在硬件模块中。例如,硬件模块可包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、和目前已知或以后开发的其它可编程逻辑器件。当硬件模块被启动时,硬件模块执行包含在硬件模块内的方法和处理。
权利要求
1.一种从使用第一图形处理单元(GPU)切换到使用第二 GPU来驱动显示器的方法,包括 使用第一线程来运行窗口管理器,所述窗口管理器进行与服务用户请求相关的操作; 接收从使用第一 GPU切换到使用第二 GPU作为驱动显示器的信号源的请求;和 响应所述请求, 使用第二线程来配置第二 GPU,以为驱动显示器作准备, 在第二线程配置第二 GPU的时候,继续使用第一线程来运行窗口管理器,以服务用户请求,和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
2.按照权利要求I所述的方法,其中,第二线程是在后台运行的基于内核的线程。
3.按照权利要求I所述的方法,其中,使用第二线程来配置第二GPU包括 使第二 GPU加电;和 进行硬件配置操作,以配置第二 GPU的硬件。
4.按照权利要求3所述的方法,其中,进行硬件配置操作包括下述中的一个或多个 重新初始化第二 GPU的驱动器; 进行显示器探测操作,以确定显示器的特性; 把模式设置从第一 GPU复制到第二 GPU ;和 把至少一个颜色查找表(CLUT)从第一 GPU复制到第二 GPU。
5.按照权利要求I所述的方法,其中,在把信号源从第一GPU切换到第二 GPU之前,所述方法还包括使用第一线程来执行代码路径,所述代码路径 进行软件配置操作,以初始化与窗口管理器和第二 GPU相关的应用可视数据结构;和 进行第一组呈现操作,以便为第二 GPU呈现第一图像。
6.按照权利要求5所述的方法,其中,使用第一线程来执行代码路径包括重复第二线程先前为配置第二 GPU而进行的一些操作。
7.按照权利要求6所述的方法,其中,重复的操作访问高速缓存的值。
8.按照权利要求I所述的方法,其中,在信号源被切换之后,所述方法还包括使用第二线程来拆除第一 GPU的配置。
9.按照权利要求8所述的方法,其中,拆除第一GPU的配置包括 除去与窗口管理器和第一 GPU相关的应用可视数据结构; 除去与第一 GPU相关的驱动器状态;和 从第一 GPU除去电力。
10.按照权利要求I所述的方法,其中,第一GPU被集成到处理器芯片集中,而第二 GPU驻留在尚散GPU芯片上。
11.按照权利要求I所述的方法,其中,第一GPU和第二 GPU具有大体相同的电路和相似的能力。
12.按照权利要求I所述的方法,其中,第一GPU是运行图形代码的通用处理器,而第二GPU是专用图形处理器。
13.—种从第一图形处理单元(GPU)切换到第二GPU以驱动显示器的计算机系统,所述系统包括第一 GPU ; 第二 GPU ;和 操作系统,其中当接收到从使用第一 GPU切换到使用第二 GPU作为驱动显示器的信号源的请求时,所述操作系统被配置成 使用第一线程来运行窗口管理器,所述窗口管理器进行与服务用户请求相关的操作; 使用第二线程来配置第二 GPU,使第二 GPU为驱动显示器作准备, 在第二线程配置第二 GPU的时候,使用第一线程来继续运行窗口管理器,以服务用户请求,和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
14.按照权利要求13所述的计算机系统,其中,第二线程是在后台运行的基于内核的线程。
15.按照权利要求13所述的计算机系统,其中,在配置第二GPU的时候,第二线程被配置成 使第二 GPU加电;和 进行硬件配置操作,以配置第二 GPU的硬件。
16.按照权利要求15所述的计算机系统,其中,在进行硬件配置操作的时候,第二线程被配置成进行下述操作中的一个或多个操作 重新初始化第二 GPU的驱动器; 进行显示器探测操作,以确定显示器的特性; 把模式设置从第一 GPU复制到第二 GPU ;和 把至少一个颜色查找表(CLUT)从第一 GPU复制到第二 GPU。
17.按照权利要求13所述的计算机系统,其中,在把信号源从第一GPU切换到第二 GPU之前,第一线程被配置成执行代码路径,所述代码路径 进行软件配置操作,以初始化与窗口管理器和第二 GPU相关的应用可视数据结构;和 进行第一组呈现操作,以便为第二 GPU呈现第一图像。
18.按照权利要求17所述的计算机系统,其中,在执行代码路径的时候,第一线程被配置成重复第二线程先前为配置第二 GPU而进行的一些操作。
19.按照权利要求18所述的计算机系统,其中,重复的操作将已完成或者将访问高速缓存的值,从而会更快地执行。
20.按照权利要求13所述的计算机系统,其中,在信号源被切换之后,第二线程被配置成拆除第一 GPU。
21.按照权利要求20所述的计算机系统,其中,在拆除第一GPU的时候,第二线程被配置成 除去与窗口管理器和第一 GPU相关的应用可视数据结构; 除去与第一 GPU相关的驱动器状态;和 从第一 GPU除去电力。
22.—种保存指令的计算机可读存储介质,当被计算机执行时,所述指令使计算机完成从使用第一图形处理单元(GPU)切换到使用第二 GPU来驱动显示器的方法,所述方法包括使用第一线程来运行窗口管理器,所述窗口管理器进行与服务用户请求相关的操作; 接收从使用第一 GPU切换到使用第二 GPU作为驱动显示器的信号源的请求;和 响应所述请求, 使用第二线程来配置第二 GPU,以为驱动显示器作准备, 在第二线程配置第二 GPU的时候,继续使用第一线程来运行窗口管理器,以服务用户请求,和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
23.按照权利要求22所述的计算机可读存储介质,其中,第二线程是在后台运行的基于内核的线程。
24.按照权利要求22所述的计算机可读存储介质,其中,使用第二线程来配置第二GPU包括 使第二 GPU加电;和 进行硬件配置操作,以配置第二 GPU的硬件。
25.按照权利要求24所述的计算机可读存储介质,其中,进行硬件配置操作包括下述中的一个或多个 重新初始化第二 GPU的驱动器; 进行显示器探测操作,以确定显示器的特性; 把模式设置从第一 GPU复制到第二 GPU ;和 把至少一个颜色查找表(CLUT)从第一 GPU复制到第二 GPU。
26.按照权利要求22所述的计算机可读存储介质,其中,在把信号源从第一GPU切换到第二 GPU之前,所述方法还包括使用第一线程来执行代码路径,所述代码路径 进行软件配置操作,以初始化与窗口管理器和第二 GPU相关的应用可视数据结构;和 进行第一组呈现操作,以便为第二 GPU呈现第一图像。
27.按照权利要求26所述的计算机可读存储介质,其中,使用第一线程来执行代码路径包括重复第二线程先前为配置第二 GPU而进行的一些操作。
28.按照权利要求27所述的计算机可读存储介质,其中,重复的操作将已完成或者将访问高速缓存的值,从而会更快地执行。
29.按照权利要求22所述的计算机可读存储介质,其中,在信号源被切换之后,所述方法还包括使用第二线程来拆除第一 GPU的配置。
30.按照权利要求29所述的计算机可读存储介质,其中,拆除第一GPU的配置包括 除去与窗口管理器和第一 GPU相关的应用可视数据结构; 除去与第一 GPU相关的驱动器状态;和 从第一 GPU除去电力。
31.一种从使用第一图形处理单元(GPU)切换到使用第二GPU来驱动显示器的方法,包括 在线程配置第二 GPU以驱动显示器的时候,从第一 GPU驱动显示器;和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
32.—种保存指令的计算机可读存储介质,当被计算机执行时,所述指令使计算机完成从使用第一图形处理单元(GPU)切换到使用第二 GPU来驱动显示器的方法,所述方法包括 在线程配置第二 GPU以驱动显示器的时候,从第一 GPU驱动显示器;和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
33.一种从第一图形处理单元(GPU)切换到第二 GPU以驱动显示器的计算机系统,包括第一 GPU ; 第二 GPU ;和 操作系统,其中当接收到从使用第一 GPU切换成使用第二 GPU作为驱动显示器的信号源的请求时,所述操作系统被配置成, 在线程配置第二 GPU以驱动显示器的时候,从第一 GPU驱动显示器;和 在完成第二 GPU的配置之后,把驱动显示器的信号源从第一 GPU切换到第二 GPU。
全文摘要
本发明涉及使图形处理单元之间的高效切换更容易。公开的实施例提供一种使驱动显示器的图形处理单元(GPU)之间的无缝切换更容易的系统。在一个实施例中,所述系统接收从使用第一GPU切换到使用第二GPU来驱动显示器的请求。响应所述请求,系统使用在后台运行的内核线程来配置第二GPU,以使第二GPU为驱动显示器作准备。在内核线程配置第二GPU的时候,系统继续使用第一GPU来驱动显示器,且用户线程继续运行窗口管理器,窗口管理器进行与服务用户请求相关的操作。当第二GPU的配置完成时,系统把显示器的信号源从第一GPU切换到第二GPU。
文档编号G06F9/445GK102763082SQ201080063786
公开日2012年10月31日 申请日期2010年12月22日 优先权日2010年1月6日
发明者D·J·雷德曼, S·M·道格拉斯, T·W·寇斯塔 申请人:苹果公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1