[發(fā)明專(zhuān)利]命令同步有效
| 申請(qǐng)?zhí)枺?/td> | 200880101426.9 | 申請(qǐng)日: | 2008-07-31 |
| 公開(kāi)(公告)號(hào): | CN101802786A | 公開(kāi)(公告)日: | 2010-08-11 |
| 發(fā)明(設(shè)計(jì))人: | R·帕爾默 | 申請(qǐng)(專(zhuān)利權(quán))人: | 諾基亞公司 |
| 主分類(lèi)號(hào): | G06F9/46 | 分類(lèi)號(hào): | G06F9/46 |
| 代理公司: | 北京市金杜律師事務(wù)所 11256 | 代理人: | 吳立明 |
| 地址: | 芬蘭*** | 國(guó)省代碼: | 芬蘭;FI |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 命令 同步 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及用于確定由進(jìn)程向一個(gè)或多個(gè)硬件處理單元發(fā)布的 命令應(yīng)當(dāng)執(zhí)行的順序的方法。本發(fā)明還涉及用于執(zhí)行此方法的計(jì)算 設(shè)備。
背景技術(shù)
多數(shù)計(jì)算設(shè)備包括圖形用戶(hù)接口(GUI),運(yùn)行在計(jì)算設(shè)備上的 應(yīng)用通過(guò)圖形用戶(hù)接口向用戶(hù)顯示內(nèi)容。某些應(yīng)用可以顯示在圖形 上密集的圖像,這需要大量的處理能力。有鑒于此,計(jì)算設(shè)備通常 包括專(zhuān)門(mén)設(shè)計(jì)用于執(zhí)行基于圖形的進(jìn)程的硬件。
對(duì)于任何硬件/軟件接口,客戶(hù)端應(yīng)用一般不被布置為直接指示 硬件。相反,操作系統(tǒng)通常包括用于圖形繪制的一個(gè)或多個(gè)硬件抽 象層(HAL),其向客戶(hù)端應(yīng)用提供應(yīng)用編程接口(API)。以此方 式,可以對(duì)將客戶(hù)端應(yīng)用進(jìn)行編寫(xiě)以與單個(gè)HAL接口連接,由此允 許客戶(hù)端應(yīng)用與不同的圖形硬件結(jié)合使用,而無(wú)需重寫(xiě)應(yīng)用的接口 代碼。工業(yè)標(biāo)準(zhǔn)HAL的兩個(gè)示例是OpenGL?ES和OpenVG。
在某些情況下,單個(gè)HAL映射到單個(gè)硬件單元,并且計(jì)算設(shè)備 可以包括多個(gè)HAL/硬件配對(duì)。備選地,單個(gè)硬件單元可以與多個(gè)不 同的HAL相關(guān)聯(lián),每個(gè)HAL被布置用于執(zhí)行不同的圖形功能。然 而,HAL被映射,該映射對(duì)于最終用戶(hù)而言是透明的。
在使用多個(gè)HAL時(shí),操作系統(tǒng)必須實(shí)現(xiàn)確保它們之間同步的機(jī) 制。例如,如果利用OpenVG?HL來(lái)繪制2D圖像以便隨后在使用 OpenGL?ES?HAL的3D環(huán)境中使用,則OpenVG?HAL必須在OpenGL ES?HAL使用所繪制的圖像之前,完成對(duì)2D圖像的繪制。如果系統(tǒng) 沒(méi)有適當(dāng)?shù)赝紿AL過(guò)程,則應(yīng)用可能致使損壞的圖像被顯示,由 此導(dǎo)致不良的用戶(hù)體驗(yàn)。而且,實(shí)際的圖形環(huán)境可能比僅僅兩個(gè)順 序過(guò)程的情況要復(fù)雜得多,因此,在沒(méi)有同步的情況下計(jì)算設(shè)備可 能是不可用的。
可以對(duì)HAL操作進(jìn)行同步的一種方式允許操作系統(tǒng)使用系統(tǒng)存 儲(chǔ)器作為緩沖區(qū)來(lái)控制HAL同步。然而,這通常是不適當(dāng)?shù)模驗(yàn)? 硬件操作對(duì)于用戶(hù)和操作系統(tǒng)而言應(yīng)當(dāng)是透明的。此外,多數(shù)硬件 具有其自己的緩沖區(qū)和串行化軟件,如果操作系統(tǒng)接管同步操作的 控制,則這些緩沖區(qū)和串行化軟件將是冗余的。優(yōu)選的是由硬件來(lái) 處理多個(gè)HAL操作的同步,因?yàn)檫@將允許操作系統(tǒng)關(guān)注于更為一般 的處理需求。這種方法的有益結(jié)果還可以是:線(xiàn)程可以持續(xù)發(fā)布繪 制命令,而無(wú)需等待相關(guān)HAL完成之前的命令。這將提高CPU正 在處理的操作系統(tǒng)進(jìn)程與圖形硬件之間的并行度。
在現(xiàn)有技術(shù)中,通過(guò)優(yōu)化HAL特定的同步對(duì)象來(lái)提供硬件特定 的同步是已知的。在這種方法中,將用戶(hù)線(xiàn)程繪制命令直接傳遞到 硬件驅(qū)動(dòng)器,這些命令在其中拖延,直到所有之前的命令已經(jīng)執(zhí)行 之時(shí)。這消除了操作系統(tǒng)使用戶(hù)線(xiàn)程在發(fā)布其命令之前進(jìn)行等待的 需要,并且較好地利用了由圖形硬件提供的硬件資源。該系統(tǒng)可以 使用排隊(duì)來(lái)確保正確的順序。然而,此類(lèi)硬件特定同步的問(wèn)題在于: 其不支持多個(gè)HAL之間的同步。
提供可以在多個(gè)HAL之間共享的同步對(duì)象,這也是已知的。這 種對(duì)象允許HAL等待以執(zhí)行由特定線(xiàn)程發(fā)布的命令,直到另一HAL 完成了由另一線(xiàn)程命令的繪制任務(wù)。然而,這種透明HAL對(duì)象不支 持由上述備選系統(tǒng)提供的硬件特定同步。
上文描述的問(wèn)題不限于用于圖形繪制的HAL;需要一種用于一 般硬件單元的HAL之間的同步的改進(jìn)機(jī)制。
發(fā)明內(nèi)容
在第一方面中,本發(fā)明提供一種用于確定由進(jìn)程向一個(gè)或多個(gè) 硬件處理單元發(fā)布的命令應(yīng)當(dāng)執(zhí)行的順序的方法,所述方法包括: 確定所發(fā)布的命令是涉及僅僅一個(gè)硬件處理單元還是涉及多于一個(gè) 硬件處理單元;當(dāng)僅向一個(gè)硬件處理單元發(fā)布命令時(shí),允許該硬件 處理單元來(lái)確定其執(zhí)行順序;以及當(dāng)向不止一個(gè)硬件處理單元發(fā)布 命令時(shí),在硬件處理單元外部確定其執(zhí)行順序。
在第二方面中,本發(fā)明提供用于執(zhí)行上述方法的計(jì)算機(jī)可讀指 令。所述計(jì)算機(jī)可讀指令可以描述操作系統(tǒng)。
在第四方面中,本發(fā)明提供一種配置用于執(zhí)行上述方法的計(jì)算 設(shè)備。
附圖說(shuō)明
現(xiàn)在,將參考附圖,僅以示例的方式來(lái)描述本發(fā)明的實(shí)施方式。 在附圖中:
圖1示出了一種數(shù)據(jù)處理系統(tǒng),在該系統(tǒng)中已選擇將在硬件圖 形設(shè)備中執(zhí)行命令同步。
圖2示出了一種數(shù)據(jù)處理系統(tǒng),在該系統(tǒng)中已選擇將使用系統(tǒng) 存儲(chǔ)器來(lái)執(zhí)行命令同步。
具體實(shí)施方式
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于諾基亞公司,未經(jīng)諾基亞公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.17sss.com.cn/pat/books/200880101426.9/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)





