專利名稱:后處理內(nèi)核的動(dòng)態(tài)鏈接和加載的制作方法
后處理內(nèi)核的動(dòng)態(tài)鏈接和加載背景技術(shù)計(jì)算機(jī)系統(tǒng)通常包括處理設(shè)備、存儲(chǔ)設(shè)備、接口設(shè)備、以及輸入輸出(1/0)設(shè)備。在處理視頻信號(hào)時(shí),計(jì)算機(jī)系統(tǒng)可以執(zhí)行后處理(post-processing) 功能,例如影片模式檢測(cè)、去交錯(cuò)、ProcAmp控制調(diào)整、視頻縮放、alpha 混合、以及色彩空間轉(zhuǎn)換??梢蚤_發(fā)多個(gè)獨(dú)立內(nèi)核(kemel),其中每一個(gè)可 以包括上面列出的一個(gè)或多個(gè)后處理功能。所述多個(gè)內(nèi)核中的每一個(gè)可以 占用存儲(chǔ)器中專用的存儲(chǔ)單元來讀取輸入數(shù)據(jù)以及寫入結(jié)果。然而,通過 存儲(chǔ)器來在不同的后處理功能之間傳遞數(shù)據(jù)可能消耗較高的處理器周期。
在附圖中,以示例而非限制的方式說明了本文所述的發(fā)明。為了說明 的簡(jiǎn)單和清楚,圖中示出的元件不必按比例繪制。例如,為了清楚, 一些 單元的尺寸可能相對(duì)于其它元件被夸大。此外,在認(rèn)為適當(dāng)?shù)牡胤?,在這 些圖中重復(fù)參考標(biāo)記以便表示相應(yīng)或類似的元件。圖l示出了計(jì)算機(jī)系統(tǒng)的一實(shí)施例。圖2示出了圖1的圖形存儲(chǔ)器控制中心(GMCH)的一實(shí)施例。 圖3示出了圖2的代碼補(bǔ)丁生成器(code patch generator)的一實(shí)施例的 操作。圖4示出了圖2的代碼管理器的一實(shí)施例的操作。圖5示出了圖2的內(nèi)核構(gòu)造器(kemel composer)的一實(shí)施例的操作。
具體實(shí)施方式
下述說明書描述了用于動(dòng)態(tài)地鏈接和加載后處理內(nèi)核的系統(tǒng)。在下述 說明書中,闡述了許多具體細(xì)節(jié),例如邏輯實(shí)現(xiàn)、資源劃分、或共享、或 重復(fù)實(shí)現(xiàn)、系統(tǒng)組件的類型和相互關(guān)系、以及邏輯劃分或集成選擇,以便 提供對(duì)本發(fā)明更透徹的理解。然而,本領(lǐng)域技術(shù)人員明白,可以無需這些具體細(xì)節(jié)來實(shí)現(xiàn)本發(fā)明。在其它實(shí)例中,并未詳細(xì)示出控制結(jié)構(gòu)、門級(jí)電 路以及完整的軟件指令序列,以免使本發(fā)明難于理解。利用本說明書,本 領(lǐng)域技術(shù)人員將能夠?qū)崿F(xiàn)適當(dāng)?shù)墓δ苄远鵁o需過度實(shí)驗(yàn)。在說明書中對(duì)"一個(gè)實(shí)施例"、"一實(shí)施例"、"一示例性實(shí)施例"的引 用表示,所述的實(shí)施例可以包括特定的特征、結(jié)構(gòu)或特性,但是每個(gè)實(shí)施 例并不是必須包括該特定的特征、結(jié)構(gòu)或特性。此外,這樣的短語并不必 然是指同一個(gè)實(shí)施例。此外,當(dāng)結(jié)合一實(shí)施例描述特定的特征、結(jié)構(gòu)或特 性時(shí),應(yīng)當(dāng)認(rèn)為,不管是否明確說明,結(jié)合其它實(shí)施例來調(diào)整這樣的特征、 結(jié)構(gòu)或特性,這都屬于本領(lǐng)域技術(shù)人員的認(rèn)識(shí)范圍。本發(fā)明的實(shí)施例可以用硬件、固件、軟件或其任意組合來實(shí)現(xiàn)。本發(fā) 明的實(shí)施例也可被實(shí)現(xiàn)為存儲(chǔ)在機(jī)器可讀介質(zhì)上、可由一個(gè)或多個(gè)處理器 讀取和執(zhí)行的指令。機(jī)器可讀介質(zhì)可以包括用于以機(jī)器(例如,計(jì)算設(shè)備) 可讀的形式存儲(chǔ)或傳輸信息的任意機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括只讀存儲(chǔ)器(ROM);隨機(jī)存取存儲(chǔ)器 (RAM);磁盤存儲(chǔ)媒介;光存儲(chǔ)媒介;閃存設(shè)備;電、光、聲或其它形式 的傳播信號(hào)(例如,載波、紅外信號(hào)以及數(shù)字信號(hào))。此外,固件、軟件、 例程以及指令在本文中可被描述為執(zhí)行某些動(dòng)作。然而,應(yīng)該明白,這樣 的描述僅僅是為了方便,并且這樣的動(dòng)作實(shí)際上是計(jì)算設(shè)備、處理器、控 制器以及其它設(shè)備執(zhí)行該固件、軟件、例程以及指令的結(jié)果。圖1中示出了計(jì)算機(jī)系統(tǒng)100的一實(shí)施例。計(jì)算系統(tǒng)100可以包括處 理器110、存儲(chǔ)器120、芯片組130、 一個(gè)或多個(gè)I/0設(shè)備160、視頻圖形 陣列(VGA)接口 170以及加速圖形端口(AGP)接口 180。處理器110可以管理計(jì)算機(jī)系統(tǒng)100中的各種資源和處理過程,還可 以執(zhí)行軟件指令。處理器110例如可以包括英特爾⑧微處理器的Pentium 或Itanium⑧系列中的一個(gè)或多個(gè)微處理器。處理器110可以與芯片組130 通過接口進(jìn)行連接以從存儲(chǔ)器120取得數(shù)據(jù)和將數(shù)據(jù)存儲(chǔ)到存儲(chǔ)器120中。存儲(chǔ)器120可以存儲(chǔ)數(shù)據(jù)和指令,可以包括一個(gè)或多個(gè)不同類型的存 儲(chǔ)設(shè)備,例如DRAM (動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)設(shè)備、SDRAM (同步DRAM) 設(shè)備、DDR(雙倍數(shù)據(jù)速率)、或者在計(jì)算機(jī)中使用的其它易失性和非易失 性存儲(chǔ)設(shè)備。I/O設(shè)備160可以包括許多設(shè)備,例如鍵盤、鼠標(biāo)、網(wǎng)絡(luò)接口設(shè)備、 以及某些其它設(shè)備。數(shù)據(jù)單元可以通過總線在芯片組130和I/O設(shè)備160 之間傳輸,其中所述總線包括外圍組件互連(PCI)、串行高級(jí)技術(shù)附件 (SATA)、少針腳型(LPC)、集成設(shè)備電路(IDE)、以及某些其它互連技術(shù)。
芯片組DO可以包括耦合了處理器110、存儲(chǔ)器120、 I/O設(shè)備160、 VGA接口 170以及AGP接口 180的一個(gè)或多個(gè)集成電路或芯片。芯片組 130可以是英特爾⑧芯片組系列中的一個(gè)。在一個(gè)實(shí)施例中,芯片組130 可以包括存儲(chǔ)器控制中心143、圖形和存儲(chǔ)器控制中心(GMCH) 145和I/O 控制中心(ICH) 150。 ICH 150可以提供在耦合到ICH 150的I/O設(shè)備160 與處理器110和存儲(chǔ)器120之間的接口。例如,ICH 150可以支持例如硬 盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、CD驅(qū)動(dòng)器、調(diào)制解調(diào)器、鍵盤、打印機(jī)、鼠標(biāo)、 端點(diǎn)、以太網(wǎng)和SCSI設(shè)備。MCH 143可以提供在處理器IIO和存儲(chǔ)器130 之間的接口。
在一個(gè)實(shí)施例中,GMCH145可以處理事務(wù),并在存儲(chǔ)器120、ICH150、 處理器110、以及耦合到VGA接口 170和AGP接口 180的設(shè)備之間傳輸 相應(yīng)的數(shù)據(jù)。在一個(gè)實(shí)施例中,GMCH145可以支持后處理內(nèi)核的動(dòng)態(tài)鏈 接和加載。在一個(gè)實(shí)施例中,視頻后處理內(nèi)核可以包括有序的兩個(gè)或更多 后處理功能,例如影片模式檢測(cè)、去交錯(cuò)、ProcAmp控制調(diào)整、視頻縮放、 alpha混合以及色彩空間轉(zhuǎn)換。
例如,第一組合內(nèi)核(combinedkernel)Kl可以包括相同次序的諸如影 片模式檢測(cè)、去交錯(cuò)、以及alpha混合這樣的后處理功能。第二組合內(nèi)核 K2可以包括相同次序的諸如影片模式檢測(cè)、去交錯(cuò)、視頻縮放、以及色彩 空間轉(zhuǎn)換這樣的后處理功能。在一個(gè)實(shí)施例中,組合內(nèi)核K1和K2可以在 相應(yīng)內(nèi)核要被調(diào)用之前被構(gòu)造。結(jié)果,可以避免用來存儲(chǔ)每個(gè)靜態(tài)構(gòu)造的 內(nèi)核所需的專用空間。在一個(gè)實(shí)施例中,形成組合內(nèi)核所需的后處理功能 可以在編譯時(shí)被識(shí)別并且這些后處理功能可以在運(yùn)行時(shí)被動(dòng)態(tài)鏈接在一起 以形成組合內(nèi)核。
圖2中描述了支持后處理內(nèi)核的動(dòng)態(tài)鏈接和加載的GMCH 145的一實(shí) 施例。在一個(gè)實(shí)施例中,GMCH 145可以包括應(yīng)用程序210、編程接口 220、 代碼補(bǔ)丁生成器230、驅(qū)動(dòng)程序250、以及圖形硬件280。在一個(gè)實(shí)施例中,圖形硬件280可以與驅(qū)動(dòng)程序250通過接口迸行連接,以便執(zhí)行由驅(qū)動(dòng)程 序250所指示的功能。在一個(gè)實(shí)施例中,圖形硬件280可以包括英特爾⑧ 集成圖形控制器系列中的一個(gè)。
在一個(gè)實(shí)施例中,應(yīng)用程序210可以包括多媒體應(yīng)用程序,計(jì)算機(jī)系 統(tǒng)IOO的用戶可以與其進(jìn)行交互。在一個(gè)實(shí)施例中,編程接口 220可以包 括一個(gè)或多個(gè)例程,應(yīng)用程序210可以使用所述例程來與由底層操作系統(tǒng) 提供的低級(jí)服務(wù)進(jìn)行交互。
在一個(gè)實(shí)施例中,編程接口 220可以提供在應(yīng)用程序210和代碼補(bǔ)丁 生成器230以及驅(qū)動(dòng)程序250之間的編程接口。在一個(gè)實(shí)施例中,編程接 口 220可以基于從應(yīng)用程序210接收到的輸入值,向驅(qū)動(dòng)程序250提供后 處理功能請(qǐng)求。在一個(gè)實(shí)施例中,編程接口 220可以包括微軟⑧DxVA (Direct X視頻加速)編程接口 。
在一個(gè)實(shí)施例中,代碼補(bǔ)丁生成器230可以將每個(gè)組件內(nèi)核 (component kemel)靜態(tài)地編譯成二進(jìn)制代碼(binaiy)、以及可幫助在運(yùn)行時(shí) 進(jìn)行動(dòng)態(tài)鏈接的輔助代碼補(bǔ)丁。在驅(qū)動(dòng)程序250建立時(shí),所述二進(jìn)制代碼 和輔助代碼補(bǔ)丁可以被加載到驅(qū)動(dòng)程序250的內(nèi)核構(gòu)造器258中。在一個(gè) 實(shí)施例中,代碼補(bǔ)丁生成器230可以指定I/O區(qū),其中第一組件內(nèi)核可以 使用該I/0區(qū)來讀取和寫入數(shù)據(jù)。然而,代碼補(bǔ)丁生成器230可以不指定 可以與第一組件內(nèi)核被鏈接在一起的其它組件內(nèi)核,并且這樣的組件內(nèi)核
鏈接可以發(fā)生在運(yùn)行時(shí)。
驅(qū)動(dòng)程序250可以將諸如應(yīng)用程序210這樣的上層通過接口連接到圖 形硬件280。在一個(gè)實(shí)施例中,驅(qū)動(dòng)程序250可以包括代碼管理器254和 代碼構(gòu)造器258。在一個(gè)實(shí)施例中,驅(qū)動(dòng)程序250可以包括英特爾⑧圖形
驅(qū)動(dòng)程序系列中的一個(gè)。
在一個(gè)實(shí)施例中,代碼管理器254可以從編程接口 220接收要求取得 指定的組合內(nèi)核的取得請(qǐng)求。代碼管理器254可以確定指定的組合內(nèi)核是 否存在于由代碼管理器254支持的數(shù)據(jù)庫中。如果指定的內(nèi)核存在于該數(shù) 據(jù)庫中,則代碼管理器254可以向編程接口 220發(fā)送信號(hào),以指示指定的 組合內(nèi)核的存在性。如果指定的組合內(nèi)核不存在,則代碼管理器254可以 向代碼構(gòu)造器258發(fā)送要求構(gòu)造該指定的內(nèi)核的請(qǐng)求。在一個(gè)實(shí)施例中,代碼管理器254也可以確定構(gòu)造該指定的組合內(nèi)核所需的若干組件內(nèi)核。
在一個(gè)實(shí)施例中,響應(yīng)于接收到為新構(gòu)造的指定的組合內(nèi)核分配空間 的請(qǐng)求,代碼管理器254可以分配空間以存儲(chǔ)新構(gòu)造的指定的組合內(nèi)核。 在一個(gè)實(shí)施例中,響應(yīng)于接收到指示新構(gòu)造的指定的組合內(nèi)核已被構(gòu)造的 信號(hào),代碼管理器254可以存儲(chǔ)該新構(gòu)造的指定的組合內(nèi)核并且還可以分 配唯一標(biāo)識(shí)符給該新構(gòu)造的指定的組合內(nèi)核。在一個(gè)實(shí)施例中,代碼管理 器254還可以通過刪除壽命過久的組合內(nèi)核來管理用于存儲(chǔ)組合內(nèi)核的空 間。
在一個(gè)實(shí)施例中,代碼構(gòu)造器258可以接收要求構(gòu)造指定的組合內(nèi)核 的信號(hào)。代碼管理器258也可以接收構(gòu)造該指定的組合內(nèi)核所需的組件內(nèi) 核。在一個(gè)實(shí)施例中,代碼構(gòu)造器258可以確定存儲(chǔ)新構(gòu)造的指定的組合 內(nèi)核可能需要的空間,并且可以發(fā)送要求分配該空間的請(qǐng)求。
在一個(gè)實(shí)施例中,代碼構(gòu)造器258可以通過確定指定用于每個(gè)組件內(nèi) 核的I/O寄存器區(qū)來構(gòu)造組合內(nèi)核。在一個(gè)實(shí)施例中,代碼構(gòu)造器258可 以取得組件內(nèi)核的二進(jìn)制文件并將其復(fù)制到所分配的空間。代碼構(gòu)造器 258也可以應(yīng)用相關(guān)聯(lián)的代碼補(bǔ)丁來修補(bǔ)二進(jìn)制文件,以便從輸入寄存器 區(qū)讀取數(shù)據(jù)并將輸出寫到輸出寄存器區(qū)。代碼構(gòu)造器258可以發(fā)送指示所 指定的組合內(nèi)核已被構(gòu)造的信號(hào)。
圖3中示出了代碼補(bǔ)丁生成器230的操作的一實(shí)施例。在方框310, 代碼補(bǔ)丁生成器230可以對(duì)組件內(nèi)核進(jìn)行編譯以生成二進(jìn)制文件、以及可 幫助在運(yùn)行時(shí)進(jìn)行鏈接的輔助代碼補(bǔ)丁。在一個(gè)實(shí)施例中,代碼補(bǔ)丁生成 器230可以包括Gen4匯編程序(assembler),其可以使用'.declare'句法。 在一個(gè)實(shí)施例中,Gen4匯編程序使用'.declare'句法來標(biāo)識(shí)從前一個(gè)內(nèi) 核讀取數(shù)據(jù)的指令以及向后一個(gè)內(nèi)核寫入數(shù)據(jù)的指令。在一個(gè)實(shí)施例中, 對(duì)于輸入和輸出區(qū)的\declare,句法可以等于
.declareINBase=r4,Elementsize=4,Type=d,Width(8;),Height(;4)PP—IN .declareOUTBase=r8,Elementsize=4,Type=d,Width(8),Height(;4) PP—OUT 在一個(gè)實(shí)施例中,PP—IN和PP一OUT指示,'.declare'被用來訪問前 一個(gè)內(nèi)核所生成的數(shù)據(jù)以及寫數(shù)據(jù)區(qū),以用于寫入可由后一個(gè)內(nèi)核讀取的 輸出數(shù)據(jù)。直到運(yùn)行時(shí)之前,PPJN和PPJ)UT的內(nèi)容可以被設(shè)置為默認(rèn)值。在運(yùn)行時(shí)確定的實(shí)值可以被用于配置PP一IN和PP一OUT的內(nèi)容。在一 個(gè)實(shí)施例中,Gen4匯編程序可以在生成輔助代碼補(bǔ)丁之前跟蹤帶有PP—IN 和PP—OUT的'.declare'。
在方框350,代碼補(bǔ)丁生成器230可以將二進(jìn)制代碼和輔助代碼補(bǔ)丁 加載到驅(qū)動(dòng)程序250。
圖4中示出了代碼管理器254的操作的一實(shí)施例。在方框410,代碼 管理器254可以接收要求取得組合內(nèi)核K的第一請(qǐng)求。在方框420,代碼 管理器254可以檢查組合內(nèi)核K是否存在,如果組合內(nèi)核K存在,則控制 傳到方框425,否則傳到方框430。
在方框425,代碼管理器可以增加所有現(xiàn)存組合內(nèi)核的壽命。這樣的 方法可以使得能夠識(shí)別出最近使用的組合內(nèi)核。在一個(gè)實(shí)施例中,具有較 小壽命值的組合內(nèi)核是最近使用的組合內(nèi)核。
在方框430,代碼管理器254可以確定是否要收回內(nèi)核空間,如果要 收回給內(nèi)核空間,則控制傳到方框435,否則傳到方框440。
在方框435,代碼管理器254可以壽命大于門限壽命值的組合內(nèi)核。 在一個(gè)實(shí)施例中,代碼管理器254可以將每個(gè)組合內(nèi)核的壽命與門限壽命 值進(jìn)行比較,以確定組合內(nèi)核的壽命是否大于門限壽命值。
在方框440,代碼管理器254可以確定生成組合內(nèi)核K所需的選定的 組件內(nèi)核。在方框450,代碼管理器254可以發(fā)送要求構(gòu)造組合內(nèi)核K的 第二請(qǐng)求以及所選定的組件內(nèi)核。在一個(gè)實(shí)施例中,代碼管理器可以以布 爾數(shù)組的方式將第二請(qǐng)求發(fā)送給代碼構(gòu)造器258。例如,該布爾數(shù)組可以 等于bool component—kernels[list of component kernels]。如果組件內(nèi)核布爾
值為真,則可選定相應(yīng)的組件內(nèi)核。
在方框460,響應(yīng)于接收到來自代碼構(gòu)造器258的第一信號(hào),代碼管 理器254可以分配空間以存儲(chǔ)組合內(nèi)核K。在方框470,代碼管理器254 可以發(fā)送第二信號(hào),其指示用于存儲(chǔ)組合內(nèi)核K的空間已被分配。
在方框480,代碼管理器254可以檢查是否接收到指示該組合內(nèi)核已 被構(gòu)造的第三信號(hào),如果組合內(nèi)核K已被構(gòu)造,則控制傳到方框490,否 則傳到方框480。
在方框490,代碼管理器254可以緩存或存儲(chǔ)組合內(nèi)核K以及分配給該組合內(nèi)核K的唯一標(biāo)識(shí)符。圖5中示出了代碼構(gòu)造器258的操作的一實(shí)施例。在方框510中,代 碼構(gòu)造器258可以接收要求生成組合內(nèi)核K的第一請(qǐng)求。在方框520,代 碼構(gòu)造器258可以確定存儲(chǔ)組合內(nèi)核K所需的空間。在方框530,代碼構(gòu)造器258可以發(fā)送要求為組合內(nèi)核K分配空間的 第一信號(hào)。在方框540,在接收到第二信號(hào)后,代碼構(gòu)造器258可以確定 為生成組合內(nèi)核K而選定的組件內(nèi)核的次序,其中,所述第二信號(hào)指示存 儲(chǔ)組合內(nèi)核K所需的空間已被分配。在方框550,代碼構(gòu)造器258可以確定所選定的組件內(nèi)核使用的輸入 和輸出寄存器區(qū)。在方框560,代碼構(gòu)造器258可以取得所選定的組件內(nèi) 核的二進(jìn)制代碼。在方框570,代碼構(gòu)造器258可以將二進(jìn)制代碼復(fù)制到所分配的空間。 在方框580,代碼構(gòu)造器258可以應(yīng)用代碼補(bǔ)丁來修補(bǔ)二進(jìn)制代碼,以便 從輸入寄存器區(qū)讀取輸入數(shù)據(jù)以及將輸出數(shù)據(jù)寫入輸出寄存器區(qū)。在方框590,代碼構(gòu)造器258可以發(fā)送第三信號(hào),該信號(hào)指示組合內(nèi) 核K已被構(gòu)造。這樣的信號(hào)可以被發(fā)送到代碼管理器254。已經(jīng)參照示例性實(shí)施例描述了本發(fā)明的特定特征。然而,本說明書并 不是要被限制性地進(jìn)行解釋。示例性實(shí)施例的各種變型以及本發(fā)明的其它 實(shí)施例,對(duì)于本發(fā)明所屬領(lǐng)域的技術(shù)人員來說都是顯而易見的,它們均被 認(rèn)為是落入本發(fā)明的實(shí)質(zhì)和范圍之內(nèi)。
權(quán)利要求
1、一種方法,包括在代碼補(bǔ)丁生成器中生成多個(gè)組件內(nèi)核,其中,所述多個(gè)組件內(nèi)核將要在運(yùn)行時(shí)被鏈接,確定一組合內(nèi)核是否存在于代碼管理器中,以及如果所述組合內(nèi)核不存在于所述代碼管理器中,則在代碼構(gòu)造器中創(chuàng)建所述組合內(nèi)核,其中,所述組合內(nèi)核是根據(jù)所述多個(gè)組件內(nèi)核中選定的組件內(nèi)核來創(chuàng)建的。
2、 如權(quán)利要求l所述的方法,其中,生成所述多個(gè)組件內(nèi)核還包括 編譯所述多個(gè)組件內(nèi)核,以生成二進(jìn)制代碼以及代碼補(bǔ)丁,所述代碼補(bǔ)丁在運(yùn)行時(shí)從前一個(gè)內(nèi)核讀取數(shù)據(jù)并向后一個(gè)內(nèi)核寫入數(shù)據(jù),以及 將所述二進(jìn)制代碼和所述代碼補(bǔ)丁加載到驅(qū)動(dòng)程序中。
3、 如權(quán)利要求2所述的方法,其中,創(chuàng)建所述組合內(nèi)核還包括 確定存儲(chǔ)所述組合內(nèi)核所需的存儲(chǔ)器,標(biāo)識(shí)由所述多個(gè)組件內(nèi)核中所選定的組件內(nèi)核使用的輸入和輸出寄存 器區(qū),以及應(yīng)用所述代碼補(bǔ)丁,以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取 數(shù)據(jù)以及向所述輸出寄存器區(qū)寫入數(shù)據(jù)。
4、 如權(quán)利要求3所述的方法,其中,確定用于存儲(chǔ)所述組合內(nèi)核的存 儲(chǔ)器還包括向所述代碼管理器發(fā)送信號(hào),以及確定生成所述組合內(nèi)核所需的所述組件內(nèi)核的次序。
5、 如權(quán)利要求3所述的方法,其中,創(chuàng)建所述組合內(nèi)核還包括 取得所述組件內(nèi)核的二進(jìn)制代碼, 將所述二進(jìn)制代碼復(fù)制到所述空間,以及在應(yīng)用所述代碼補(bǔ)丁以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取 數(shù)據(jù)以及向所述輸出寄存器區(qū)寫入數(shù)據(jù)之后,指示所述組合內(nèi)核已被構(gòu)造。
6、 如權(quán)利要求4所述的方法,其中,確定所述組合內(nèi)核是否存在還包括如果所述組合內(nèi)核還不存在,則向所述代碼構(gòu)造器發(fā)送請(qǐng)求,以要求 生成所述組合內(nèi)核。
7、 如權(quán)利要求5所述的方法,還包括接收由所述代碼構(gòu)造器發(fā)送的信號(hào),其中,所述信號(hào)將要使所述代碼 管理器分配用于存儲(chǔ)所述組合內(nèi)核的存儲(chǔ)器,分配存儲(chǔ)所述組合內(nèi)核所需的所述存儲(chǔ)器,以及在所述組合內(nèi)核由所述代碼構(gòu)造器創(chuàng)建之后,存儲(chǔ)所述組合內(nèi)核和與 所述組合內(nèi)核相關(guān)聯(lián)的唯一標(biāo)識(shí)符。
8、 一種裝置,包括代碼補(bǔ)丁生成器,用于生成多個(gè)組件內(nèi)核,其中,所述多個(gè)組件內(nèi)核 將要在運(yùn)行時(shí)被鏈接,耦合到所述代碼補(bǔ)丁生成器的代碼管理器,其中,所述代碼管理器用 于確定一組合內(nèi)核是否存在于所述代碼管理器中,以及耦合到所述代碼管理器的代碼構(gòu)造器,用于創(chuàng)建所述組合內(nèi)核,其中, 如果所述組合內(nèi)核不存在于所述代碼管理器中,則根據(jù)所述多個(gè)組件內(nèi)核 中選定的組件內(nèi)核來創(chuàng)建所述組合內(nèi)核。
9、 如權(quán)利要求8所述的裝置,其中,所述代碼補(bǔ)丁生成器用于編譯所述多個(gè)組件內(nèi)核以生成二進(jìn)制代碼以及代碼補(bǔ)丁,并將所述二進(jìn)制代碼和 所述代碼補(bǔ)丁加載到驅(qū)動(dòng)程序中,所述代碼補(bǔ)丁在運(yùn)行時(shí)從前一個(gè)內(nèi)核讀 取數(shù)據(jù)并向后一個(gè)內(nèi)核寫入數(shù)據(jù)。
10、 如權(quán)利要求9所述的裝置,其中,所述代碼構(gòu)造器用于確定存儲(chǔ)所述組合內(nèi)核所需的存儲(chǔ)器,標(biāo)識(shí)由所述多個(gè)組件內(nèi)核中所選定的組件內(nèi)核使用的輸入和輸出寄存 器區(qū),以及應(yīng)用所述代碼補(bǔ)丁,以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取 數(shù)據(jù)以及向所述輸出寄存器區(qū)寫入數(shù)據(jù)。
11、 如權(quán)利要求io所述的裝置,其中,所述代碼構(gòu)造器用于向所述代碼管理器發(fā)送信號(hào)以及確定生成所述組合內(nèi)核所需的所述組件內(nèi)核的次 序。
12、 如權(quán)利要求10所述的裝置,其中,所述代碼構(gòu)造器用于取得所述 組件內(nèi)核的二進(jìn)制代碼,將所述二進(jìn)制代碼復(fù)制到所述空間,以及在應(yīng)用 所述代碼補(bǔ)丁以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取數(shù)據(jù)以及向 所述輸出寄存器區(qū)寫入數(shù)據(jù)之后,指示所述組合內(nèi)核已被構(gòu)造。
13、 如權(quán)利要求ll所述的裝置,其中,所述代碼管理器用于如果所述 組合內(nèi)核還不存在,則向所述代碼構(gòu)造器發(fā)送請(qǐng)求,以要求生成所述組合 內(nèi)核。
14、 如權(quán)利要求12所述的裝置,其中,所述代碼管理器用于在接收到 由所述代碼構(gòu)造器發(fā)送的信號(hào)之后分配用于存儲(chǔ)所述組合內(nèi)核的所述存儲(chǔ) 器,以及在所述組合內(nèi)核由所述代碼構(gòu)造器創(chuàng)建之后,存儲(chǔ)所述組合內(nèi)核 和與所述組合內(nèi)核相關(guān)聯(lián)的唯一標(biāo)識(shí)符。
15、 一種包括多個(gè)指令的機(jī)器可讀介質(zhì),所述指令響應(yīng)于被執(zhí)行而使 計(jì)算設(shè)備在代碼補(bǔ)丁生成器中生成多個(gè)組件內(nèi)核,其中,所述多個(gè)組件內(nèi)核將 要在運(yùn)行時(shí)被鏈接,確定一組合內(nèi)核是否存在于代碼管理器中,以及 如果所述組合內(nèi)核不存在于所述代碼管理器中,則在代碼構(gòu)造器中創(chuàng)建所述組合內(nèi)核,其中,所述組合內(nèi)核是根據(jù)所述多個(gè)組件內(nèi)核中選定的 組件內(nèi)核來創(chuàng)建的。
16、 如權(quán)利要求15所述的機(jī)器可讀介質(zhì),其中,生成所述多個(gè)組件內(nèi)核還包括編譯所述多個(gè)組件內(nèi)核,以生成二進(jìn)制代碼以及代碼補(bǔ)丁,所述代碼 補(bǔ)丁在運(yùn)行時(shí)從前一個(gè)內(nèi)核讀取數(shù)據(jù)并向后一個(gè)內(nèi)核寫入數(shù)據(jù),以及 將所述二進(jìn)制代碼和所述代碼補(bǔ)丁加載到驅(qū)動(dòng)程序中。
17、 如權(quán)利要求16所述的機(jī)器可讀介質(zhì),其中,創(chuàng)建所述組合內(nèi)核還包括確定存儲(chǔ)所述組合內(nèi)核所需的存儲(chǔ)器,標(biāo)識(shí)由所述多個(gè)組件內(nèi)核中所選定的組件內(nèi)核使用的輸入和輸出寄存 器區(qū),以及應(yīng)用所述代碼補(bǔ)丁,以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取 數(shù)據(jù)以及向所述輸出寄存器區(qū)寫入數(shù)據(jù)。
18、 如權(quán)利要求n所述的機(jī)器可讀介質(zhì),其中,確定用于存儲(chǔ)所述組合內(nèi)核的存儲(chǔ)器還包括-向所述代碼管理器發(fā)送信號(hào),以及 確定生成所述組合內(nèi)核所需的所述組件內(nèi)核的次序。
19、 如權(quán)利要求17所述的機(jī)器可讀介質(zhì),其中,創(chuàng)建所述組合內(nèi)核還 包括取得所述組件內(nèi)核的二進(jìn)制代碼, 將所述二進(jìn)制代碼復(fù)制到所述空間,以及 在應(yīng)用所述代碼補(bǔ)丁以指派所述二進(jìn)制代碼從所述輸入寄存器區(qū)讀取 數(shù)據(jù)以及向所述輸出寄存器區(qū)寫入數(shù)據(jù)之后,指示所述組合內(nèi)核已被構(gòu)造。
20、 如權(quán)利要求19所述的機(jī)器可讀介質(zhì),還包括接收由所述代碼構(gòu)造器發(fā)送的信號(hào),其中,所述信號(hào)將要使所述代碼 管理器分配用于存儲(chǔ)所述組合內(nèi)核的存儲(chǔ)器,分配存儲(chǔ)所述組合內(nèi)核所需的所述存儲(chǔ)器,以及在所述組合內(nèi)核由所述代碼構(gòu)造器創(chuàng)建之后,存儲(chǔ)所述組合內(nèi)核和與 所述組合內(nèi)核相關(guān)聯(lián)的唯一標(biāo)識(shí)符。
全文摘要
計(jì)算機(jī)系統(tǒng)可以生成多個(gè)組件內(nèi)核,這些組件內(nèi)核將在運(yùn)行時(shí)被鏈接。響應(yīng)于要求取得組合內(nèi)核K的第一請(qǐng)求,系統(tǒng)可以確定是否存在該組合內(nèi)核K。如果組合內(nèi)核K還不存在,則系統(tǒng)可以在運(yùn)行時(shí)根據(jù)多個(gè)組件內(nèi)核中選定的若干組件內(nèi)核來構(gòu)造該組合內(nèi)核。
文檔編號(hào)G06F9/445GK101320332SQ20081011038
公開日2008年12月10日 申請(qǐng)日期2008年6月4日 優(yōu)先權(quán)日2007年6月5日
發(fā)明者G-Y·魯, J·H·洪, M·盧基揚(yáng)諾夫, N·Y·楊, P·劉, X·何, X·張 申請(qǐng)人:英特爾公司