若干視頻圖像的無縫顯示遷移的制作方法
【專利摘要】本申請(qǐng)公開了若干視頻圖像的無縫顯示遷移。描述了用于將發(fā)送到顯示設(shè)備的用戶可視顯示流從一個(gè)渲染顯示流無縫地遷移到另一個(gè)渲染顯示流的方法、裝置與系統(tǒng)的示例實(shí)施例。對(duì)于一種實(shí)施例,從第一圖形處理單元(GPU)和第二GPU兩者接收鏡像視頻顯示流,而且將發(fā)送到顯示設(shè)備的視頻顯示流從來自第一GPU的視頻顯示流切換到來自第二GPU的視頻顯示流,其中切換是在與用于第二GPU的消隱間隔交疊的用于第一GPU的消隱間隔期間發(fā)生的。
【專利說明】若干視頻圖像的無縫顯示遷移
[0001]本申請(qǐng)是申請(qǐng)日為2009年10月13日申請(qǐng)?zhí)枮?00980145376.9 (國(guó)際申請(qǐng)?zhí)?PCT/US2009/060550)發(fā)明名稱為“若干視頻圖像的無縫顯示遷移”的發(fā)明專利申請(qǐng)的分案申請(qǐng)。
【技術(shù)領(lǐng)域】
[0002]在此所述的各種實(shí)施例涉及用于將用戶可視顯示流從一個(gè)渲染(render)的顯示流無縫地遷移(migrate)到另一個(gè)渲染的顯示流的裝置、系統(tǒng)和方法。
【背景技術(shù)】
[0003]圖形處理單元(GPU)—般是用于個(gè)人計(jì)算機(jī)、工作站、游戲控制臺(tái)、移動(dòng)計(jì)算設(shè)備(例如,智能電話、PDA或者其它手持式計(jì)算設(shè)備)、或者其它視頻硬件的專用圖形渲染設(shè)備。GPU可以直接集成到設(shè)備的主板中,或者GPU可以駐留在耦接到所述主板的單獨(dú)視頻卡中,作為外部GPU。許多計(jì)算機(jī)都有集成的GPU,集成GPU可能沒有它們的插件對(duì)應(yīng)物即外部GPU那么強(qiáng)大。例如,為視頻游戲?qū)で蟾咝阅軋D形的用戶將常常為帶現(xiàn)有集成GPU的系統(tǒng)添加外部GPU。此外,也可以使諸如中央處理單元(CPU)或者多核CPU內(nèi)核的處理單元能夠渲染圖形。
[0004]添加外部GPU可以覆蓋集成GPU的功能??蛇x地,兩個(gè)或更多個(gè)GPU可以共擔(dān)渲染圖像用于顯示的工作量:兩個(gè)相同的圖形卡耦接到主板并且以主-從配置設(shè)置。然后,這兩個(gè)GPU通過劃分顯示的內(nèi)容或者通過渲染交替的幀來分割工作量。對(duì)于劃分顯示的內(nèi)容,從GPU可以渲染畫面的一部分并將其發(fā)送到主GPU。同時(shí),主GPU渲染畫面的剩余部分并將其與來自從GPU的經(jīng)渲染部分相組合,然后將其發(fā)送到顯示設(shè)備。
[0005]隨著系統(tǒng)中GPU的處理能力和個(gè)數(shù)的增加,也增加了對(duì)電力的需求。許多應(yīng)用不需要外部GPU的處理能力。此外,用戶可能想省電(例如,當(dāng)靠電池運(yùn)行設(shè)備時(shí)),并且用戶愿意犧牲一些GPU處理能力來換取能量節(jié)約。鑒于以上所述,期望有一種裝置、系統(tǒng)或者方法,將顯示從第一 GPU遷移到第二 GPU并在第一 GPU不使用的時(shí)候減少其汲取的電力。還期望無縫地遷移顯示而基本上不中斷到顯示設(shè)備的顯示流。
【發(fā)明內(nèi)容】
[0006]描述了用于將用戶可視顯示流從一個(gè)渲染顯示流無縫地遷移到另一個(gè)渲染顯示流的方法、裝置和系統(tǒng)的示例性實(shí)施例。對(duì)于一個(gè)實(shí)施例,從第一圖形處理單元(GPU)和第二 GPU兩者接收鏡像視頻顯示流,而且發(fā)送到顯示設(shè)備的視頻顯示流從來自第一 GPU的視頻顯示流切換到來自第二 GPU的視頻顯示流,其中切換是在與第二 GPU的消隱間隔(消隱間隔)交疊的第一 GPU的消隱間隔期間發(fā)生的。
【專利附圖】
【附圖說明】
[0007]本發(fā)明是通過例子來例示的,而且不受附圖的限制,附圖中相似的標(biāo)號(hào)指示相似的元件,附圖中:[0008]圖1例示了根據(jù)一種實(shí)施例可以執(zhí)行無縫顯示遷移的示例計(jì)算機(jī)系統(tǒng)。[0009]圖2例示了根據(jù)一種實(shí)施例、如在圖1中所例示的示例顯示控制器,其包括第一和 第二圖形處理單元(GPU)和圖形復(fù)用器(GMUX),其中GMUX用于將顯示流從一個(gè)GPU無縫地 遷移到另一個(gè)GPU。[0010]圖3例示了根據(jù)一種實(shí)施例、如在圖2中所例示的示例GMUX。[0011]圖4是根據(jù)一種實(shí)施例的例示顯示遷移的示例方法的流程圖。[0012]圖5是根據(jù)一種可選實(shí)施例的例示顯示遷移的示例方法的流程圖。[0013]圖6是根據(jù)一種實(shí)施例的顯示第一 GPU和第二 GPU之間切換所涉及并受其影響的 信號(hào)的示例時(shí)序圖。[0014]圖7是根據(jù)一種可選實(shí)施例的顯示第一 GPU和第二 GPU之間切換所涉及并受其影 響的信號(hào)的示例時(shí)序圖。【具體實(shí)施方式】[0015]本發(fā)明的各種實(shí)施例和方面將參考以下討論的細(xì)節(jié)來描述,而且附圖將例示各種 實(shí)施例。以下描述和附圖是用于例示本發(fā)明而不應(yīng)當(dāng)被解釋為限制本發(fā)明。描述大量具體 的細(xì)節(jié)是為了提供對(duì)本發(fā)明各種實(shí)施例的透徹理解。然而,在某些例子中,為了提供對(duì)本發(fā) 明實(shí)施例的簡(jiǎn)潔討論,沒有描述眾所周知或者常規(guī)的細(xì)節(jié)。[0016]圖1例示了可以例如執(zhí)行參考圖2-7所描述的無縫顯示遷移的示例計(jì)算機(jī)系統(tǒng) 100,也稱為數(shù)據(jù)處理系統(tǒng)。對(duì)于一種實(shí)施例,在本公開的附圖中所描述和示出的操作、處 理、模塊、方法和系統(tǒng)是要在一個(gè)或多個(gè)示例計(jì)算機(jī)系統(tǒng)100上作為指令集(例如,軟件)(也 稱為計(jì)算機(jī)實(shí)現(xiàn)的方法)運(yùn)行。示例計(jì)算機(jī)系統(tǒng)100通常代表個(gè)人或者客戶端計(jì)算機(jī)、移 動(dòng)設(shè)備(例如,移動(dòng)蜂窩設(shè)備、PDA、衛(wèi)星電話、移動(dòng)VoIP設(shè)備)和服務(wù)器。移動(dòng)設(shè)備還將常 常具有天線和微芯片,用來運(yùn)行用于通信信號(hào)的射頻接收和發(fā)送的協(xié)議。示例計(jì)算機(jī)系統(tǒng) 100至少包括經(jīng)一條或多條總線125彼此通信的處理器105 (例如,中央處理單元(CPU)、圖 形處理單元(GPU)、多核處理器的內(nèi)核或者其組合)、只讀存儲(chǔ)器(ROM)llO、隨機(jī)存取存儲(chǔ)器 (RAM) 115和大型儲(chǔ)存器120 (例如,硬驅(qū)動(dòng)器)。[0017]示例計(jì)算機(jī)系統(tǒng)100還包括可以在其中實(shí)現(xiàn)一種實(shí)施例的顯示控制器130。顯示 控制器130可以包括一個(gè)或多個(gè)GPU及用于在它們之間切換的裝置和用于創(chuàng)建它們各自視 頻流的組合的裝置??蛇x地,顯示控制器130可以與計(jì)算機(jī)系統(tǒng)100中的各種其它部件合 作,來實(shí)現(xiàn)一種實(shí)施例。[0018]計(jì)算機(jī)系統(tǒng)100還包括顯示設(shè)備135 (例如,液晶顯示器(IXD)或者陰極射線管 (CRT)或者觸摸屏、等離子體顯示器、發(fā)光二極管(LED)、有機(jī)發(fā)光二極管(0LED),等等)、1/0 控制器140及I/O設(shè)備145(例如,鼠標(biāo)、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口、CD驅(qū)動(dòng)器,等等)。在 移動(dòng)設(shè)備的情況下,網(wǎng)絡(luò)接口設(shè)備可以是無線的,用于傳送到無線網(wǎng)絡(luò)(例如,蜂窩、W1-Fi, 等等)。移動(dòng)設(shè)備可以包括一個(gè)或多個(gè)信號(hào)輸入設(shè)備(例如,傳聲器、照相機(jī)、指紋掃描儀,等 等),這些都沒有示出。[0019]儲(chǔ)存器單元120包括機(jī)器可讀的存儲(chǔ)介質(zhì),在其上存儲(chǔ)體現(xiàn)任何一個(gè)或者多個(gè)方 法或者功能的一個(gè)或多個(gè)指令集(例如,軟件)。軟件在其被計(jì)算機(jī)系統(tǒng)100執(zhí)行的過程中,還可以完全或者至少部分地駐留在RAMl 15或者ROMllO中和/或在處理器105中,RAMl 15、R0M110和處理器105還構(gòu)成機(jī)器可讀的存儲(chǔ)介質(zhì)。軟件還可以經(jīng)網(wǎng)絡(luò)接口設(shè)備140在網(wǎng)絡(luò)(未示出)上發(fā)送或者接收。
[0020]圖2例示了包括第一 GPU205和第二 GPU210及圖形復(fù)用器(GMUX)215的示例顯示控制器130,其中GMUX215用于將到達(dá)顯示設(shè)備135的顯示流從一個(gè)GPU無縫地改變到另一個(gè)GPU。對(duì)于一種實(shí)施例,第一 GPU205和第二 GPU210是具有不同能力的GPU,例如,集成的GPU和外部GPU。貫穿本說明書,對(duì)GPU的引用都可以包括專用圖形處理單元、中央處理單元、多核處理單元的一個(gè)或多個(gè)內(nèi)核,或者本領(lǐng)域中已知的使得能夠渲染顯示流的其它處理單元或控制器。為了簡(jiǎn)化,本說明書的剩余部分將渲染顯示流的單元統(tǒng)稱為GPU。
[0021]對(duì)于一種實(shí)施例,微處理器(CPU) 105與軟件應(yīng)用合作,將原始顯示數(shù)據(jù)發(fā)送到工作的第一 GPU205。該第一 GPU205渲染顯示流,該顯示流被傳遞到GMUX215。GMUX215接收指示第一 GPU205是工作的選擇和控制信號(hào),并將來自第一 GPU205的輸出傳遞到顯示設(shè)備135。所述選擇和控制信號(hào)可以源自軟件或者固件中的驅(qū)動(dòng)器、窗口服務(wù)器、CPU105、計(jì)算機(jī)系統(tǒng)100中的其它控制器或者其組合。對(duì)于一種實(shí)施例,第一 GPU205和第二 GPU210顯示流是低壓差分信號(hào)(LVDS)顯示流。
[0022]在操作中,CPU105可以作出從第一 GPU205切換到第二 GPU210的決定。這種決定可以是電源變化的結(jié)果一例如,膝上型計(jì)算機(jī)拔去了電源而且現(xiàn)在靠電池電力或者其它預(yù)定的電力設(shè)施運(yùn)行??蛇x地,這種決定可以是用戶輸入的結(jié)果,例如軟件切換。在又一種實(shí)施例中,這種決定是認(rèn)識(shí)到軟件應(yīng)用程序與特定GPU不兼容、能利用特定GPU最優(yōu)地執(zhí)行或者有效運(yùn)行的結(jié)果。例如,開始特定應(yīng)用程序可以啟動(dòng)GPU切換。這種決定可以是為別的目的而請(qǐng)求使用工作的GPU的結(jié)果。對(duì)于一種實(shí)施例,切換是作為以上所述的一個(gè)或多個(gè)決定或者其它已知技術(shù)的組合的結(jié)果啟動(dòng)的??蛇x地,識(shí)別出與第二 GPU210不兼容或者與切換不兼容的工作程序通??梢宰瓒粢陨蠜Q定中的一個(gè),來切換或者延遲所述切換,直到不兼容的程序終止。
[0023]對(duì)于一種實(shí)施例,一旦作出了從第一 GPU205遷移到第二 GPU210的決定,饋送到第一GPU205的原始顯示數(shù)據(jù)就鏡像到第二GPU210。對(duì)于一種實(shí)施例,CPU105、控制器、操作系統(tǒng)軟件或者其組合創(chuàng)建鏡像的原始顯示數(shù)據(jù)。第一 GPU205和第二 GPU210都基于在計(jì)算機(jī)系統(tǒng)100中的鏡像原始顯示數(shù)據(jù)來渲染顯示流,但只有來自一個(gè)GPU (例如,第一 GPU205)的輸出經(jīng)GMUX215被發(fā)送到顯示設(shè)備135。對(duì)于一種實(shí)施例,由第一 GPU205和第二 GPU210中每一個(gè)生成的輸出不僅包含應(yīng)用顯示數(shù)據(jù),還包含所有的顯示數(shù)據(jù),其包括但不限于背光數(shù)據(jù)、輸出使能,等等。
[0024]對(duì)于一種實(shí)施例,GMUX215接收兩個(gè)顯示流都是工作的控制信號(hào),并等待交疊的消隱間隔來將到顯示設(shè)備135的輸出從第一 GPU205的輸出切換到第二 GPU210的輸出。參考圖3-7詳細(xì)描述在這個(gè)消隱間隔中切換的實(shí)施例。
[0025]對(duì)于一種實(shí)施例,第一 GPU205可通信耦接到第二 GPU210。第一 GPU205和第二GPU210可以共擔(dān)渲染用來顯示的圖像的工作量。對(duì)于一種實(shí)施例,兩個(gè)GPU以主-從關(guān)系合作,而且從GPU將顯示流的渲染部分轉(zhuǎn)發(fā)給主GPU。主GPU渲染顯示流的剩余部分,并將其與從GPU的渲染部分相組合,然后將合成的輸出發(fā)送到顯示設(shè)備135。
[0026]圖3例示了圖2中的示例GMUX215。對(duì)于一種實(shí)施例,來自第一 GPU205和第二GPU210的顯示流輸入到各自的數(shù)據(jù)時(shí)鐘捕捉塊305和310。數(shù)據(jù)時(shí)鐘捕捉塊305和310從 GI3U顯示流提取視頻時(shí)序信號(hào),因此GMUX215可以同步GPU之間的切換。第一數(shù)據(jù)時(shí)鐘和第 二數(shù)據(jù)時(shí)鐘被分開并發(fā)送到時(shí)鐘MUX (復(fù)用器)325。[0027]對(duì)于一種實(shí)施例,時(shí)鐘MUX325是接收確定哪個(gè)數(shù)據(jù)時(shí)鐘要傳遞到顯示設(shè)備135上 的選擇信號(hào)的復(fù)用器。可選地,也可以使用可以配置成選擇一個(gè)數(shù)據(jù)時(shí)鐘的其它類型的選 擇電路。對(duì)于一種實(shí)施例,GMUX控制器335將選擇信號(hào)提供給時(shí)鐘MUX325,以便協(xié)調(diào)所選 的數(shù)據(jù)時(shí)鐘與所選的數(shù)據(jù)流。可選地,選擇信號(hào)是由驅(qū)動(dòng)器、CPU105、其它控制器或者本領(lǐng) 域中已知的其它技術(shù)生成的。[0028]將數(shù)據(jù)時(shí)鐘分開的顯示流分別輸入到數(shù)據(jù)緩沖器315和數(shù)據(jù)緩沖器320。對(duì)于一 種實(shí)施例,在數(shù)據(jù)緩沖器315和數(shù)據(jù)緩沖器320中比較兩個(gè)顯示流的消隱間隔。對(duì)于一種 可選實(shí)施例,GMUX控制器335接收用于第一和第二數(shù)據(jù)流的每個(gè)消隱間隔。在比較消隱間 隔時(shí),如果兩個(gè)顯示流之間存在任何交疊,則GMUX控制器335確定在兩個(gè)顯示流之間存在 多少交疊。對(duì)于一種實(shí)施例,交疊是由消隱間隔的交疊期間的顯示行周期的量來測(cè)量的。 當(dāng)在消隱間隔的交疊期間存在預(yù)定量的顯示行周期時(shí),GMUX控制器335確定可以進(jìn)行切 換。對(duì)于一種實(shí)施例,消隱間隔是垂直的消隱間隔。對(duì)于可選實(shí)施例,消隱間隔是水平的消 隱間隔。在其它實(shí)施例中,消隱間隔可以是垂直的或者水平的消隱間隔。如果GMUX控制器 335確定數(shù)據(jù)顯示流具有帶足夠交疊量的消隱間隔,則GMUX控制器335向時(shí)鐘MUX325和數(shù) 據(jù)MUX330發(fā)送選擇信號(hào),以便在消隱間隔的交疊期間遷移發(fā)送到顯示設(shè)備135的顯示流數(shù) 據(jù)。[0029]在消隱間隔期間,顯示設(shè)備135不顯示來自選定顯示流的數(shù)據(jù)。刷新率是一秒鐘 之內(nèi)顯示硬件繪制其接收到的數(shù)據(jù)的次數(shù)。例如,如果顯示設(shè)備135有慢的刷新率,則消隱 間隔會(huì)被當(dāng)作屏幕閃爍看到。相反,對(duì)于一種實(shí)施例,顯示設(shè)備135的刷新率每秒鐘繪制顯 示流多次,使得在實(shí)踐中消隱間隔是用戶察覺不到的一例如,60Hz。因此,在消隱間隔內(nèi)完 成的從一個(gè)GPU到另一個(gè)的遷移可以不中斷可視顯示流地執(zhí)行。[0030]一旦交疊的消隱間隔已經(jīng)結(jié)束且遷移已經(jīng)完成,則來自第二 GPU210的顯示流可 以使用鏡像顯示來無縫地繼續(xù)來自第一 GPU205的顯示流。對(duì)于一種實(shí)施例,GMUX控制器 335將指示成功切換的控制信號(hào)發(fā)送到處理器、操作系統(tǒng)、固件控制器、GPU或者用于GPU的 其它硬件或軟件控制器。然后,發(fā)送到第一 GPU205的鏡像的原始顯示數(shù)據(jù)可以終止,而且 由第一 GPU205汲取的電力可以減少。對(duì)于一種實(shí)施例,第一 GPU205可以完全斷電。[0031]對(duì)于一種實(shí)施例,從第一 GPU205到第二 GPU210遷移的過程在第二 GPU210開始 渲染鏡像顯示數(shù)據(jù)之后針對(duì)第一 GPU205的選擇消隱間隔內(nèi)開始。對(duì)于一種實(shí)施例,所選 的消隱間隔是一旦第二 GPU210開始渲染鏡像顯示數(shù)據(jù)起用于第一 GPU205的第一個(gè)消隱 間隔。如果用于第一 GPU205和第二 GPU210的消隱間隔在所選的消隱間隔內(nèi)不交疊,則 GMUX215的輸出在來自第一 GPU205的最后一幀完成時(shí),即,在所選的消隱間隔內(nèi)保持,直到 第二 GPU210進(jìn)入消隱間隔。對(duì)于一種實(shí)施例,通過將GMUX215的輸出與第一 GPU205的輸 出的下一幀解耦并在所選的消隱間隔內(nèi)保持顯示流裝配器340達(dá)比所接收到的所選消隱 間隔長(zhǎng)的時(shí)間,來自第一 GPU205的顯示流在消隱間隔內(nèi)保持。對(duì)于一種實(shí)施例,GMUX控制 器335向顯示流裝配器340發(fā)送控制信號(hào),以便在所選的消隱間隔內(nèi)保持發(fā)送到顯示設(shè)備 135的輸出顯示流。對(duì)于一種實(shí)施例,一旦GMUX215的輸出被保持,就在針對(duì)第一 GPU205的所選消隱間隔期間進(jìn)行從第一 GPU205到第二 GPU210的輸出的切換。對(duì)于可選實(shí)施例,一旦GMUX215的輸出被保持,在所選消隱間隔之間的任何時(shí)間并且當(dāng)?shù)诙?GPU210進(jìn)入消隱間隔時(shí),完成從第一 GPU的輸出到第二 GPU的輸出的切換。一旦第二 GPU210進(jìn)入消隱間隔,GMUX215的輸出就可以耦接到來自第二 GPU210的輸出。
[0032]依賴于顯示設(shè)備和造成交疊所需的延遲量,顯示設(shè)備的刷新將被延遲,有可能造成所顯示圖像的某種褪色(fade) —例如,朝白色褪色或者朝黑色褪色。不管怎樣,延遲最長(zhǎng)將是輸出一幀所需的時(shí)間。例如,幀可以每16毫秒刷新一次,因此最長(zhǎng)延遲將是16毫秒。因此,切換的發(fā)生基本上不會(huì)中斷可視顯示。
[0033]對(duì)于一種實(shí)施例,對(duì)可視顯示流的實(shí)質(zhì)中斷是由于失去對(duì)顯示器鎖相環(huán)(PLL)的鎖定而產(chǎn)生的,這造成顯示設(shè)備135變成一片空白,直到PLL重新鎖定??蛇x地,對(duì)可視顯示流的實(shí)質(zhì)中斷是由于幀撕裂產(chǎn)生的,其中來自第一 GPU205的顯示流和來自第二 GPU210的顯示流都發(fā)送到顯示設(shè)備135,而沒有協(xié)調(diào)合成的顯示流。對(duì)可視顯示流的更多中斷可以是顯示圖像的劣化質(zhì)量和本領(lǐng)域中已知的其它假象。
[0034]對(duì)于可選實(shí)施例,GPU之間的切換是不對(duì)可視顯示流有任何中斷地執(zhí)行的,包括對(duì)顯示圖像的任何可能褪色。如果GPU在預(yù)定的時(shí)間量中經(jīng)歷交疊的消隱間隔,則GPU的輸出之間的切換是無中斷地或者無需對(duì)任何一個(gè)GPU進(jìn)行操縱地執(zhí)行的??蛇x地,如果第一GPU205和第二 GPU210的時(shí)鐘以相似的速率操作(但不是相同和同步的速率),則交疊的消隱間隔要花比預(yù)定時(shí)間量多的時(shí)間來發(fā)生。對(duì)于一種實(shí)施例,如果GMUX控制器335在預(yù)定的時(shí)間量中沒有遇到交疊的消隱間隔,則GMUX控制器335發(fā)送改變第二 GPU210時(shí)鐘速率的信號(hào)。發(fā)送到第二 GPU210的鏡像原始顯示數(shù)據(jù)被暫時(shí)終止,第二 GPU210的時(shí)鐘重新設(shè)置成新的速率,原始顯示數(shù)據(jù)再次鏡像到第二 GPU210,而且GMUX控制器335重新比較兩個(gè)消隱間隔,來搜索在預(yù)定時(shí)間量期滿之前的交疊。
[0035]在請(qǐng)求GPU遷移時(shí),計(jì)算機(jī)系統(tǒng)100可能正在運(yùn)行與第二 GPU210不兼容的程序,而且如果不終止該不兼容的程序,就不能完成到第二 GPU210的簡(jiǎn)單遷移。應(yīng)用程序可能知道有一個(gè)工作的GPU和一個(gè)或多個(gè)非工作的GPU的事實(shí)。此外,應(yīng)用程序可以與系統(tǒng)100通信,以便宣傳它們與各種GPU的兼容性。與切換到第二 GPU210兼容的那些應(yīng)用程序知道用于第二GPU210的能力和對(duì)應(yīng)設(shè)置,因此可以在工作時(shí)為無縫切換作準(zhǔn)備。例如,當(dāng)在GPU之間進(jìn)行切換時(shí),應(yīng)用程序?qū)⒉恍枰獜念^開始創(chuàng)建新的顯示環(huán)境。這可以影響到變量的確定,其中的變量例如是繪制顏色、觀看與投射變換、照明特性、材料屬性,等等。另一方面,如果應(yīng)用程序與切換到第二 GPU210不兼容,則操作系統(tǒng)、驅(qū)動(dòng)器、CPU105、其它控制器或者本領(lǐng)域中已知的其它技術(shù)保護(hù)該應(yīng)用程序不受系統(tǒng)中與其不兼容的任何GPU存在的影響。例如,與第一 GPU205兼容但與第二 GPU210不兼容的應(yīng)用程序?qū)⒅恢赖谝?GPU205。
[0036]對(duì)于一種實(shí)施例,在給第二 GPU210加電和啟動(dòng)切換之前,需要確定工作程序與第二 GPU210兼容并與切換兼容。可選地,可以不管工作的不兼容程序如何都進(jìn)行切換。對(duì)于一種實(shí)施例,第一 GPU將用于不兼容程序的渲染顯示流直接發(fā)送到第二 GPU,同時(shí)繼續(xù)向GMUX215發(fā)送完整的顯示流。盡管第二 GPU已加電而且其它原始顯示數(shù)據(jù)鏡像到兩個(gè)GPU,但是所述不兼容程序繼續(xù)運(yùn)行,就好象第一 GPU205是唯一的渲染實(shí)體一樣。第二 GPU210將從來自第一 GPU205的渲染數(shù)據(jù)與由第二 GPU210渲染的顯示流剩余部分的組合來創(chuàng)建合成輸出。第二 GPU210將合成的輸出發(fā)送到GMUX215。如上所述,從第一 GPU205顯示流到第二GPU210顯示流的遷移在交疊的消隱間隔中發(fā)生。GMUX控制器335向操作系統(tǒng)、固件控制 器、GPU或者其它用于GPU的控制器發(fā)送指示成功切換的控制信號(hào)。[0037]對(duì)于一種實(shí)施例,在成功切換之后,發(fā)送到第一 GPU205的鏡像的原始顯示數(shù)據(jù)終 止,但是用于不兼容程序的原始顯示數(shù)據(jù)繼續(xù)發(fā)送到第一 GPU205。相應(yīng)地,當(dāng)?shù)诙?GPU210 依賴于第一 GPU205來渲染用于不兼容程序的顯示數(shù)據(jù)時(shí),第一 GPU205可以停止向GMUX215 發(fā)送完整的顯示流,但仍保持工作。一旦不兼容程序已經(jīng)終止,則確定對(duì)第一 GPU205的依 賴終止。于是,由第一 GPU205汲取的電力可以減少。[0038]對(duì)于可選實(shí)施例,如果對(duì)第一 GPU205的依賴還沒有終止,則系統(tǒng)可以切換回只有 第一 GPU205,類似于以上所述的切換。對(duì)于一種實(shí)施例,響應(yīng)于切換到第二 GPU210之后預(yù) 定的時(shí)間量期滿,確定切換回第一 GPU205。例如,如果進(jìn)行切換最初是為了省電,則同時(shí)運(yùn) 行兩個(gè)GPU的延長(zhǎng)時(shí)段可能比只是繼續(xù)單獨(dú)運(yùn)行更高功率處理器消耗更多的電力。[0039]對(duì)于一種實(shí)施例,數(shù)據(jù)MUX330是復(fù)用器,該復(fù)用器接收確定哪個(gè)數(shù)據(jù)顯示流傳遞 到顯示設(shè)備135上的選擇信號(hào)??蛇x地,也可以使用可以配置成選擇一個(gè)數(shù)據(jù)顯示流的其 它類型的選擇電路。對(duì)于一種實(shí)施例,GMUX控制器335向時(shí)鐘MUX325提供協(xié)調(diào)所選數(shù)據(jù) 時(shí)鐘與所選數(shù)據(jù)流的選擇信號(hào)??蛇x地,選擇信號(hào)是由驅(qū)動(dòng)器、CPU105、其它控制器或者本 領(lǐng)域中已知的其它技術(shù)生成的。[0040]對(duì)于一種實(shí)施例,顯示流裝配器340接收被選的數(shù)據(jù)時(shí)鐘與被選的數(shù)據(jù)流,將它 們組裝到單個(gè)顯示流中,并將被選的顯示流發(fā)送到顯示設(shè)備135。對(duì)于可選實(shí)施例,被選的 數(shù)據(jù)時(shí)鐘和被選的數(shù)據(jù)流不組合,而是單獨(dú)地發(fā)送到顯示設(shè)備135。[0041]圖4是例不如參考圖1_3所述的顯不遷移的不例方法的流程圖。在塊405檢測(cè)將 顯示設(shè)備135從第一 GPU205遷移到第二 GPU210的請(qǐng)求。對(duì)于一種實(shí)施例,在塊410,該方 法可以要求所有的工作程序都與切換到第二 GPU210兼容。如果不是所有的工作程序都與 切換到第二 GPU210兼容,則該方法在不兼容的程序終止之前將不會(huì)繼續(xù)。可選地,該方法 可以跳過塊410。在塊415,對(duì)第二 GPU210加電。在塊420,將原始顯示數(shù)據(jù)鏡像并發(fā)送到 第二 GPU210。如果與第二 GPU210不兼容的程序在運(yùn)行,則在塊420,第一 GPU205將用于不 兼容程序的渲染顯示數(shù)據(jù)發(fā)送到第二 GPU210。在塊425,一旦兩個(gè)GPU都輸出渲染顯示流, 則確定這兩個(gè)顯示流在針對(duì)第一 GPU205的選擇消隱間隔期間是否有足以遷移顯示流的交 疊消隱間隔。對(duì)于一種實(shí)施例,所選的消隱間隔是一旦第二 GPU210開始渲染鏡像的顯示數(shù) 據(jù)起用于第一 GPU205的第一個(gè)消隱間隔。[0042]如果出現(xiàn)足夠的交疊消隱間隔,則在塊430,在該交疊的消隱間隔中切換所選的顯 示流。當(dāng)成功切換時(shí),在塊435到第一 GPU205的原始數(shù)據(jù)饋送終止。如果與第二 GPU210 不兼容的程序在運(yùn)行,則與該不兼容程序相關(guān)的原始數(shù)據(jù)饋送繼續(xù)到第一 GPU205,而不管 鏡像是否終止。在塊440,該方法確定由于不兼容程序造成的對(duì)第一 GPU205的依賴是否保 持。如果沒有不兼容的程序在運(yùn)行,則在塊445,減少由第一 GPU205汲取的電力。[0043]對(duì)于一種實(shí)施例,如果不兼容的程序在運(yùn)行而且因此對(duì)第一 GPU205的依賴還沒 有終止,則在塊445減少對(duì)第一 GPU205的電力之前,在塊450該方法等待該程序終止。在 可選實(shí)施例中,如果對(duì)第一 GPU205的依賴還沒有終止,則在塊455該方法可選地切換回第 一GPU205。對(duì)于一種實(shí)施例,該方法可以在成功切換之后等待預(yù)定的時(shí)間量到期,以確定對(duì) 第一 GPU205的依賴還沒有終止并切換回第一 GPU205。[0044]如果在針對(duì)第一 GPU205的選擇消隱間隔內(nèi)沒有出現(xiàn)足夠的交疊消隱間隔,則在塊460,在針對(duì)第一GPU205的選擇消隱間隔內(nèi)保持GMUX215的輸出,直到第二GPU進(jìn)入消隱間隔。然后,在塊430,在所選的消隱間隔和用于第二GPU210的消隱間隔的交疊期間切換所選的顯示流,流程如上所述繼續(xù)。
[0045]圖5是例示如參考圖1-3所述的顯示遷移的可選示例方法的流程圖。在塊505檢測(cè)將顯示設(shè)備135從第一 GPU205遷移到第二 GPU210的請(qǐng)求。對(duì)于一種實(shí)施例,在塊510,該方法可以要求所有的工作程序都與切換到第二 GPU210兼容。如果不是所有的工作程序都與切換到第二 GPU210兼容,則該方法在不兼容的程序終止之前將不會(huì)繼續(xù)??蛇x地,該方法可以跳過塊510。在塊515,給第二 GPU210加電。在塊520,將原始顯示數(shù)據(jù)鏡像并發(fā)送到第二 GPU210。如果與第二 GPU210不兼容的程序在運(yùn)行,則第一 GPU205將用于不兼容程序的渲染顯示數(shù)據(jù)發(fā)送到第二 GPU210。在塊525,一旦兩個(gè)GPU都輸出渲染顯示流,則確定這兩個(gè)顯示流在預(yù)定的時(shí)間量到期之前是否有足以遷移顯示流的交疊消隱間隔。
[0046]如果出現(xiàn)足夠的交疊消隱間隔,則在塊530,在該交疊的消隱間隔期間切換所選的顯示流。當(dāng)成功切換時(shí),在塊535終止到第一 GPU205的原始數(shù)據(jù)饋送。如果與第二 GPU210不兼容的程序在運(yùn)行,則與不兼容程序相關(guān)的原始數(shù)據(jù)饋送繼續(xù)到第一 GPU205,而不管鏡像是否終止。在塊540,該方法確定由于不兼容程序造成的對(duì)第一 GPU205的依賴是否保持。如果沒有不兼容的程序在運(yùn)行,則在塊545,減少由第一 GPU205汲取的電力。
[0047]對(duì)于一種實(shí)施例,如果不兼容的程序在運(yùn)行而且因此對(duì)第一 GPU205的依賴還沒有終止,則在塊545減少對(duì)第一 GPU205的電力之前,在塊550該方法等待該程序終止。在可選實(shí)施例中,如果對(duì)第一 GPU205的依賴還沒有終止,則在塊555該方法可選地切換回第一GPU205。對(duì)于一種實(shí)施例,該方法可以在成功切換之后等待預(yù)定的時(shí)間量到期,以確定對(duì)第一 GPU205的依賴還沒有終止并切換回第一 GPU205。
[0048]如果在預(yù)定的時(shí)間量?jī)?nèi)沒有出現(xiàn)足夠的交疊消隱間隔,則在塊560,終止到第二GPU210的原始數(shù)據(jù)饋送。在塊565改變第二 GPU的時(shí)鐘速率并且該方法在塊520繼續(xù)。
[0049]圖6是顯示根據(jù)一種實(shí)施例在第一 GPU和第二 GPU之間的切換所涉及并受其影響的信號(hào)的示例時(shí)序圖。圖6示出了第一消隱間隔610和第二消隱間隔620的比較,及在第一 GPU205和第二 GPU210之間切換的GMUX選擇信號(hào)630。GMUX輸出640反映了與第一消隱間隔610相關(guān)的輸出,直到切換完成,然后它將反映與第二消隱間隔620相關(guān)的輸出。在這個(gè)例子中,所選的消隱間隔是在兩個(gè)GPU都渲染鏡像的顯示流之后針對(duì)第一 GPU205的第一次出現(xiàn)的消隱間隔。GMUX輸出640在這個(gè)消隱間隔內(nèi)保持,直到第二GPU210進(jìn)入其下一個(gè)消隱間隔。對(duì)于一種實(shí)施例,對(duì)消隱間隔狀態(tài)的確定在GMUX控制器335中發(fā)生。在保持GMUX輸出640和用于第二 GPU210的消隱間隔中的任何時(shí)候,GMUX選擇630可以改變,例如從邏輯零變成邏輯一,以便將顯示流從第一 GPU205切換到第二 GPU210。對(duì)于一種實(shí)施例,GMUX選擇630發(fā)送到數(shù)據(jù)MUX330和時(shí)鐘MUX325兩者,以便切換獨(dú)立的數(shù)據(jù)和時(shí)鐘流。
[0050]圖7是顯示根據(jù)可選實(shí)施例在第一 GPU和第二 GPU之間的切換所涉及并受其影響的信號(hào)的示例時(shí)序圖。圖7示出了第一消隱間隔710和第二消隱間隔720的比較,及在消隱間隔740交疊期間在第一 GPU205和第二 GPU210之間切換的GMUX選擇信號(hào)730。對(duì)于一種實(shí)施例,消隱間隔的比較在GMUX控制器335中發(fā)生。對(duì)于一種實(shí)施例,一旦兩個(gè)GPU都渲染了顯示流,就確定何時(shí)兩個(gè)顯示流具有足以將顯示從第一顯示流遷移到第二顯示流的交疊消隱間隔740。在交疊消隱間隔740期間,GMUX選擇信號(hào)730改變,例如從邏輯零變成 邏輯一,以便將顯示流從第一 GPU205切換到第二 GPU210。GMUX輸出750反映與第一消隱 間隔710相關(guān)的輸出,直到GMUX選擇730切換了顯示流。在切換之后,GMUX輸出750反映 與第二消隱間隔720相關(guān)的輸出。對(duì)于一種實(shí)施例,GMUX選擇730發(fā)送到數(shù)據(jù)MUX330和 時(shí)鐘MUX325兩者,以便切換獨(dú)立的數(shù)據(jù)和時(shí)鐘流。[0051]在以上所述的說明書中,已經(jīng)參考具體的示例實(shí)施例對(duì)本發(fā)明進(jìn)行了描述。很顯 然,在不背離如以下權(quán)利要求所述本發(fā)明的更廣泛主旨與范圍的情況下,可以對(duì)其進(jìn)行各 種修改。一件制造品可以用于存儲(chǔ)以上所述實(shí)施例的至少一些功能的程序代碼。存儲(chǔ)程序 代碼的制造品可以體現(xiàn)為但不限于,一種或多種存儲(chǔ)器(例如,一種或多種閃速存儲(chǔ)器、隨 機(jī)存取存儲(chǔ)器-靜態(tài)、動(dòng)態(tài)或者其它)、光盤、CD-ROM、DVD-ROM、EPROM、EEPR0M、磁或光卡或 者其它類型適于存儲(chǔ)電子指令的機(jī)器可讀介質(zhì)。此外,本發(fā)明的實(shí)施例可以在,但不限于, 利用FPGA、ASIC、處理器、計(jì)算機(jī)或者包括網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的硬件或固件中實(shí)現(xiàn)。硬件或 軟件實(shí)現(xiàn)的模塊和部件可以分開或者組合,而不顯著改變本發(fā)明的實(shí)施例。相應(yīng)地,本說明 書與附圖應(yīng)當(dāng)從例示的意義上而不是從約束的意義上來理解。
【權(quán)利要求】
1.一種視頻顯不系統(tǒng),包括: 第一和第二圖形處理單元GPU ; 視頻切換器,其可操作地耦接到第一 GPU和第二 GPU ; 視頻流組裝單元,其被配置為從視頻切換器接收一個(gè)視頻信號(hào)并至少部分基于所述一個(gè)視頻信號(hào)來提供視頻輸出顯示流;以及控制單元,其被配置為 分別從第一 GPU和第二 GPU接收第一輸入視頻顯示流和第二輸入視頻顯示流, 至少部分基于第一輸入視頻顯示流從視頻流組裝單元提供第一輸出視頻顯示流,確定第一輸入視頻顯示流的第一消隱間隔與第二輸入視頻顯示流的第二消隱間隔重疊少于指定量, 繼續(xù)從視頻流組裝單元提供第一輸出視頻顯示流, 在視頻流組裝單元繼續(xù)提供第一輸出視頻顯示流之后,確定第二輸入視頻顯示流已經(jīng)進(jìn)入消隱間隔,以及 在第二輸入視頻顯示流已經(jīng)進(jìn)入消隱間隔之后,至少部分基于第二輸入視頻顯示流來從視頻流組裝單元提供第二輸出視頻顯示流。
2.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元進(jìn)一步被配置為在視頻流組裝單元提供第二輸出視頻顯示流之后降低給第一 GPU的電力。
3.如權(quán)利要求2所述的視頻顯示系統(tǒng),其中,控制單元進(jìn)一步被配置為:降低給第一GPU的時(shí)鐘速率,以降低給第一 GPU的電力。
4.如權(quán)利要求2所述的視頻顯示系統(tǒng),其中,控制單元進(jìn)一步被配置為:關(guān)斷給第一GPU的電力,以降低給第一 GPU的電力。
5.如權(quán)利要求1所述的視頻顯示系統(tǒng),還包括: 第一接收器,其被配置為接收第一輸入視頻顯示流以及從第一輸入視頻顯示流生成第一視頻數(shù)據(jù)信號(hào)和第一視頻時(shí)鐘信號(hào),其中,第一視頻數(shù)據(jù)信號(hào)被可操作地耦接到視頻切換器的第一輸入端; 第二接收器,其被配置為接收第二輸入視頻顯示流以及從第二輸入視頻顯示流生成第二視頻數(shù)據(jù)信號(hào)和第二視頻時(shí)鐘信號(hào),其中,第二視頻數(shù)據(jù)信號(hào)被可操作地耦接到視頻切換器的第二輸入端;以及 時(shí)鐘切換器,其被配置為接收第一和第二視頻時(shí)鐘信號(hào)。
6.如權(quán)利要求5所述的視頻顯示系統(tǒng),其中,控制單元在提供第一輸出視頻顯示流時(shí)被進(jìn)一步配置為: 將第一視頻時(shí)鐘信號(hào)從時(shí)鐘切換器路由至視頻流組裝單元;以及 將第一視頻數(shù)據(jù)信號(hào)從視頻切換器路由至視頻流組裝單元。
7.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元在確定第二輸入視頻顯示流已經(jīng)進(jìn)入消隱間隔時(shí)被進(jìn)一步配置為:確定第二輸入視頻顯示流已經(jīng)進(jìn)入指定的消隱間隔。
8.如權(quán)利要求7所述的視頻顯示系統(tǒng),其中,控制單元在確定第二輸入視頻顯示流已經(jīng)進(jìn)入指定的消隱間隔時(shí)被進(jìn)一步配置為:確定第二輸入視頻顯示流已經(jīng)進(jìn)入指定的垂直消隱間隔.
9.如權(quán)利要求7所述的視頻顯示系統(tǒng),其中,控制單元在確定第二輸入視頻顯示流已經(jīng)進(jìn)入指定的消隱間隔時(shí)被進(jìn)一步配置為:在第二 GPU開始供應(yīng)第二輸入視頻顯示流之后,確定第二輸入視頻顯示流已經(jīng)進(jìn)入第一消隱間隔。
10.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元在確定第一輸入視頻顯示流的第一消隱間隔與第二輸入視頻顯示流的第二消隱間隔重疊少于指定量時(shí)被進(jìn)一步配置為改變第二 GPU的時(shí)鐘速率。
11.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元在從第二GPU接收第二輸入視頻顯示流時(shí)被進(jìn)一步配置為:從請(qǐng)求方接收從使用第一 GPU切換到第二 GPU的請(qǐng)求;以及確定請(qǐng)求方與第二 GPU兼容。
12.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,第二輸入視頻顯示流是第一輸入視頻顯示流的鏡像。
13.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元進(jìn)一步被配置為在從視頻流組裝單元提供第二輸出視頻顯示流之后:確定第二 GPU不可兼容用于生成第二輸出視頻顯示流;在確定第二 GPU不兼容之后,從視頻流組裝單元提供第一輸出視頻顯示流;以及在已經(jīng)第二次從視頻流組裝單元提供第一輸出視頻顯示流之后降低給第二 GPU的電力。
14.如權(quán)利要求1所述的視頻顯示系統(tǒng),其中,控制單元在從視頻流組裝單元提供第二輸出視頻顯示流時(shí)被進(jìn)一步配置為將第二輸出視頻顯示流的視頻信號(hào)部分和時(shí)鐘信號(hào)部分作為單獨(dú)的信號(hào)提供。
【文檔編號(hào)】G09G5/36GK103559874SQ201310476545
【公開日】2014年2月5日 申請(qǐng)日期:2009年10月13日 優(yōu)先權(quán)日:2008年10月13日
【發(fā)明者】M·紐金特, T·克斯塔, E·布拉斯菲爾德, D·里德曼, A·拉納, T·米爾特, G·斯塔爾, A·夏帕德, I·亨德利, I·艾加恩, K·C·迪科, C·聶德爾奧爾, M·卡伯特 申請(qǐng)人:蘋果公司