欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

仿真os隔離定序器上的用戶(hù)級(jí)多線程處理的機(jī)制的制作方法

文檔序號(hào):6357784閱讀:181來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):仿真os隔離定序器上的用戶(hù)級(jí)多線程處理的機(jī)制的制作方法
技術(shù)領(lǐng)域
本公開(kāi)內(nèi)容一般涉及信息處理系統(tǒng),并且更具體地,涉及在其中一個(gè)或多個(gè)定序 器可與操作系統(tǒng)隔離的多定序器系統(tǒng)上的多線程處理。
背景技術(shù)
為提高信息處理系統(tǒng)、諸如包括微處理器的那些信息處理系統(tǒng)的性能,采用了硬 件和軟件技術(shù)。在硬件方面,提高微處理器性能的微處理器設(shè)計(jì)方案包括了更快的時(shí)鐘速 度、流水線技術(shù)、分支預(yù)測(cè)、超標(biāo)量執(zhí)行、無(wú)序執(zhí)行和高速緩存。許多此類(lèi)方案使得晶體管數(shù) 量增加,并且在一些情況下,甚至導(dǎo)致晶體管數(shù)量增加率大于性能提高率。其他性能增強(qiáng)涉及軟件技術(shù),而不是尋求完全通過(guò)增加晶體管來(lái)提高性能。一種 已用于提高處理器性能的軟件方案稱(chēng)為“多線程處理”。在軟件多線程處理中,指令流可分 成可以并行執(zhí)行的多個(gè)指令流?;蛘?,多個(gè)獨(dú)立的軟件流可并行執(zhí)行。在一個(gè)稱(chēng)為時(shí)間片多線程處理或時(shí)間復(fù)用(“TMUX”)多線程處理的方案中,單個(gè) 處理器在固定時(shí)間段后在線程之間切換。在還有的另一方案中,在發(fā)生例如長(zhǎng)等待時(shí)間高 速緩存缺失的觸發(fā)事件時(shí),單個(gè)處理器在線程之間切換。在稱(chēng)為基于事件切換的多線程處 理(“SoEMT”)的此后一方案中,在給定時(shí)間最多只有一個(gè)線程是活動(dòng)的。在硬件方面,越來(lái)越支持多線程處理。例如,在一個(gè)方案中,在諸如芯片多處理器 (“CMP”)系統(tǒng)(單個(gè)芯片封裝上多個(gè)處理器)和對(duì)稱(chēng)多線程處理(“SMP”)系統(tǒng)(多個(gè)芯 片上多個(gè)處理器)等多處理器系統(tǒng)中的處理器各自可并發(fā)對(duì)多個(gè)軟件線程之一起作用。在 稱(chēng)為同時(shí)多線程處理(“SMT”)的另一方案中,單個(gè)物理處理器變得對(duì)操作系統(tǒng)和用戶(hù)程 序好像是多個(gè)邏輯處理器。對(duì)于SMT,多個(gè)軟件線程可以是活動(dòng)的,并同時(shí)在單個(gè)處理器上 執(zhí)行而無(wú)需切換。也就是說(shuō),每個(gè)邏輯處理器維護(hù)一套完整的架構(gòu)狀態(tài),但共享諸如高速緩 存、執(zhí)行單元、分支預(yù)測(cè)器、控制邏輯和總線等物理處理器的許多其他資源。對(duì)于SMT,來(lái)自 多個(gè)軟件線程的指令因而在每個(gè)邏輯處理器上并發(fā)執(zhí)行。對(duì)于支持軟件線程并發(fā)執(zhí)行的系統(tǒng),如SMT、SMP和/或CMP系統(tǒng),操作系統(tǒng)(“OS”) 應(yīng)用可控制軟件線程的調(diào)度和執(zhí)行。然而,一般情況下,操作系統(tǒng)控制不能良好地?cái)U(kuò)展;操 作系統(tǒng)應(yīng)用調(diào)度線程而對(duì)性能沒(méi)有負(fù)面影響的能力通常只限于較少量的線程。附圖簡(jiǎn)述可參照下面的附圖理解本發(fā)明的實(shí)施例,其中,類(lèi)似的要素用類(lèi)似的標(biāo)號(hào)表示。 這些圖形無(wú)意于限制,而是用于說(shuō)明在多定序器系統(tǒng)上執(zhí)行用戶(hù)級(jí)多線程處理的設(shè)備、系 統(tǒng)和方法的選定實(shí)施例,其中,經(jīng)OS透明的抽象層提供在OS隔離定序器上的用戶(hù)級(jí)纖程 (shred)控制。

圖1是方框圖,示出多定序器系統(tǒng)的一般并行編程方案的圖形表示。圖2是方框圖,示出在用戶(hù)級(jí)多線程處理的至少一個(gè)實(shí)施例的線程和纖程之間的共享存儲(chǔ)器和狀態(tài)。圖3是方框圖,示出多定序器系統(tǒng)的各個(gè)實(shí)施例。圖4是方框圖,示出多定序器多線程處理系統(tǒng)的軟件機(jī)制的至少一個(gè)實(shí)施例。圖5是方框圖,示出包括作為虛擬機(jī)監(jiān)視器一部分的纖程處理仿真層的多定序器 處理系統(tǒng)。圖6是方框圖,示出一個(gè)或多個(gè)定序器隔離的至少一個(gè)實(shí)施例。圖7是流程圖,示出用于啟動(dòng)包括纖程處理仿真層的軟件層的方法的至少一個(gè)實(shí) 施例。圖8是方框圖,示出在操作系統(tǒng)和虛擬機(jī)監(jiān)視器啟動(dòng)后的示范多定序器系統(tǒng)的隔 離定序器和OS可見(jiàn)定序器的狀態(tài)。圖9是控制流程圖,示出用于定序器重定向的方法的至少一個(gè)實(shí)施例的方法和控 制流。圖10是控制流程圖,示出用于纖程創(chuàng)建的方法的至少一個(gè)實(shí)施例的方法和控制流。圖11是控制流程圖,示出由于環(huán)過(guò)渡原因纖程暫停的至少一個(gè)實(shí)施例。圖12是控制流程圖,示出在處理環(huán)過(guò)渡后纖程恢復(fù)的至少一個(gè)實(shí)施例。圖13是控制流程圖,示出代理執(zhí)行機(jī)制的至少一個(gè)實(shí)施例。圖14是流程圖,示出代理執(zhí)行方法的至少一個(gè)實(shí)施例。圖15是方框圖,示出能夠執(zhí)行公開(kāi)技術(shù)的系統(tǒng)的至少一個(gè)實(shí)施例。詳細(xì)說(shuō)明下面的論述描述了允許用戶(hù)級(jí)應(yīng)用程序在多定序器多線程處理系統(tǒng)中創(chuàng)建和控 制與OS無(wú)關(guān)的執(zhí)行線程(稱(chēng)為“纖程”)的方法、系統(tǒng)和機(jī)制的選定實(shí)施例。以完全的操作 系統(tǒng)透明度創(chuàng)建、調(diào)度和執(zhí)行用戶(hù)級(jí)纖程。執(zhí)行公開(kāi)技術(shù)的多定序器系統(tǒng)的硬件不必支持 架構(gòu)纖程控制指令。相反,可通過(guò)OS透明的軟件或固件仿真層提供此類(lèi)功能??山Y(jié)合單核或多核多線程處理系統(tǒng)來(lái)利用本文所述機(jī)制。在下面的說(shuō)明中,陳述 了如下的許多特定的細(xì)節(jié)以更透徹地理解本發(fā)明,如處理器類(lèi)型、多線程處理環(huán)境、系統(tǒng)配 置、多定序器系統(tǒng)中定序器的數(shù)量和拓?fù)洹⑽⒓軜?gòu)結(jié)構(gòu)及指令名稱(chēng)和參數(shù)。然而,本領(lǐng)域的 技術(shù)人員將理解,可無(wú)需此類(lèi)特定細(xì)節(jié)來(lái)實(shí)現(xiàn)本發(fā)明。另外,未詳細(xì)示出一些熟知的結(jié)構(gòu)、 電路及諸如此類(lèi)以免不必要地混淆本發(fā)明。下述的圖1和圖2示出包括用戶(hù)控制的“纖程”的共享存儲(chǔ)器多處理范例,這些纖 程是在隔離在操作系統(tǒng)視野和控制外的定序器上執(zhí)行的指令序列。此類(lèi)OS隔離定序器有 時(shí)稱(chēng)為“OS不可見(jiàn)”定序器。圖3和圖15示出可實(shí)施此類(lèi)范例的處理器和/或系統(tǒng)的示范 實(shí)施例。圖4概括示出稱(chēng)為纖程處理仿真層的抽象層的至少一個(gè)實(shí)施例,該層可在定序器 硬件不支持架構(gòu)纖程處理指令的多定序器系統(tǒng)上提供用戶(hù)級(jí)纖程處理功能。最后,圖5-14 示出纖程處理仿真層的特定方法和系統(tǒng)實(shí)施例。共享存儲(chǔ)器多處理范例可在稱(chēng)為并行編程的方案中使用。根據(jù)此方案,應(yīng)用程序 員可將有時(shí)稱(chēng)為“應(yīng)用”或“進(jìn)程”的軟件程序分成要并發(fā)運(yùn)行的多個(gè)任務(wù)以便表示軟件程 序的并行性。同一軟件程序(“進(jìn)程”)的所有線程共享共同的存儲(chǔ)器邏輯視圖。圖1是方框圖,示出在多定序器多線程處理系統(tǒng)上的并行編程方案的圖形表示。圖1示出操作系統(tǒng)140可見(jiàn)的進(jìn)程100、120。這些進(jìn)程100、120可以是不同的軟件應(yīng)用程 序,如字處理程序和電子郵件管理程序。通常,每個(gè)進(jìn)程在不同的地址空間中操作。操作系統(tǒng)(“OS”)140 —般負(fù)責(zé)為諸如圖1所示進(jìn)程120等進(jìn)程管理用戶(hù)創(chuàng)建的 任務(wù)。相應(yīng)地,操作系統(tǒng)140可為與進(jìn)程120相關(guān)聯(lián)的每個(gè)用戶(hù)定義的任務(wù)創(chuàng)建獨(dú)特的線 程125、126,并可將線程125、126映射到線程執(zhí)行資源。(在圖1中未示出線程執(zhí)行資源, 但下面有詳細(xì)論述。)0S 140 —般負(fù)責(zé)調(diào)度這些線程125、126以在執(zhí)行資源上執(zhí)行。與單 個(gè)進(jìn)程相關(guān)聯(lián)的線程一般具有相同的存儲(chǔ)器視圖,并共享相同的虛擬地址空間。由于OS 140負(fù)責(zé)創(chuàng)建、映射和調(diào)度線程,因此,線程125、1沈是OS 140可見(jiàn)的。另 外,本發(fā)明的實(shí)施例包含OS 140不可見(jiàn)的另外的線程130-136。也說(shuō)是說(shuō),OS 140并不創(chuàng) 建、管理或以其他方式確認(rèn)或控制這些另外的線程130-136。這些非OS 140創(chuàng)建或控制的 另外的線程在本文有時(shí)稱(chēng)為“纖程” 130-136,以便區(qū)分它們與OS可見(jiàn)的線程。由用戶(hù)級(jí)程 序創(chuàng)建和管理這些纖程,并調(diào)度這些纖程以在與操作系統(tǒng)隔離的定序器上運(yùn)行。OS隔離定 序器共享與OS可見(jiàn)定序器相同的環(huán)0狀態(tài)。纖程130-136因而共享為與同一進(jìn)程1 相 關(guān)聯(lián)的線程125、1沈創(chuàng)建的同一執(zhí)行環(huán)境(地址映射)。術(shù)語(yǔ)“線程”和“纖程”在本文中使用時(shí)至少包括與進(jìn)程的其他線程和/或纖程并 發(fā)執(zhí)行的指令流獨(dú)立執(zhí)行的概念。線程和“纖程”術(shù)語(yǔ)均包含該想法,因此,包含軟件指令流 的執(zhí)行與相關(guān)聯(lián)的處理器狀態(tài)。均為指令流的線程(由OS控制)與纖程(操作系統(tǒng)不可 見(jiàn)并由用戶(hù)控制)之間的區(qū)分因素在本文中使用時(shí)指如何管理線程和纖程指令流的執(zhí)行 的差異。響應(yīng)對(duì)OS的系統(tǒng)調(diào)用而生成線程。OS生成該線程并分配資源以運(yùn)行該線程。為 線程分配的此類(lèi)資源可包括操作系統(tǒng)用于控制和調(diào)度線程的數(shù)據(jù)結(jié)構(gòu)。與此相反,經(jīng)用戶(hù)級(jí)軟件指令生成纖程的至少一個(gè)實(shí)施例,該指令調(diào)用軟件庫(kù)或 其他與OS無(wú)關(guān)的機(jī)制以生成OS不知道的纖程。因此可響應(yīng)用戶(hù)級(jí)軟件庫(kù)調(diào)用而生成纖 程。軟件庫(kù)調(diào)用可在由軟件庫(kù)維護(hù)的纖程工作隊(duì)列(未示出)中創(chuàng)建條目。此類(lèi)纖程工 作隊(duì)列可為調(diào)度以在OS隔離定序器上運(yùn)行的每個(gè)纖程保存條目。要了解纖程工作隊(duì)列的 至少一個(gè)實(shí)施例的進(jìn)一步論述,請(qǐng)參閱題為“在無(wú)操作系統(tǒng)干預(yù)的情況下在OS隔離定序器 上調(diào)度線禾呈的機(jī)制,,(Mechanism to Schedule Threads on OS-Sequestered Sequencers without Operating System Intervention)的同時(shí)待審的美國(guó)專(zhuān)利申請(qǐng)(代理人案號(hào) 42390. P20205)。圖2是方框圖,以圖形形式示出有關(guān)上述的聲明即同一軟件程序或進(jìn)程的所有線 程共享共同的存儲(chǔ)器邏輯視圖的其他細(xì)節(jié)。對(duì)于本發(fā)明的實(shí)施例,此聲明在與進(jìn)程100、120 相關(guān)聯(lián)的纖程方面同樣適用。也說(shuō)是說(shuō),多個(gè)纖程130-136可與單個(gè)OS管理的線程125相 關(guān)聯(lián)。由線程125初始化以運(yùn)行與該線程125相關(guān)聯(lián)的纖程的所有定序器(定序器1-定 序器4)共享由操作系統(tǒng)為該線程構(gòu)建的同一虛擬存儲(chǔ)器視圖。在本文中參照?qǐng)D1論述圖2。圖2采用圖1所示進(jìn)程120、線程125、126及纖程 130-136的圖形表示。然而,此類(lèi)表示不應(yīng)視為限制。本發(fā)明的實(shí)施例無(wú)需對(duì)與進(jìn)程相關(guān)聯(lián) 的線程或纖程的數(shù)量強(qiáng)加上限或下限。在下限方面,圖1示出,在給定時(shí)間運(yùn)行的每個(gè)進(jìn)程 根本無(wú)需一定與一些線程或纖程相關(guān)聯(lián)。例如,圖1所示的進(jìn)程0 100示為在圖1所示的 特殊時(shí)間運(yùn)行,既無(wú)線程,也無(wú)纖程。然而,如圖1所示,另一進(jìn)程120可與一個(gè)或多個(gè)線程125、1沈相關(guān)聯(lián)。另外,進(jìn)程120還可另外與一個(gè)或多個(gè)纖程130-136相關(guān)聯(lián)。進(jìn)程120的兩個(gè)線程125、1沈和四個(gè) 纖程130-136的表示只是為了說(shuō)明,不應(yīng)視為限制。與進(jìn)程相關(guān)聯(lián)的OS可見(jiàn)線程的數(shù)量可 受OS程序的限制。然而,對(duì)于至少一個(gè)實(shí)施例,與進(jìn)程相關(guān)聯(lián)的纖程的累計(jì)數(shù)量的上限只 受在執(zhí)行期間的特殊時(shí)間可用的線程執(zhí)行資源的數(shù)量的限制。圖2示出,與進(jìn)程120相關(guān) 聯(lián)的第二線程126可具有和第一線程125不同數(shù)量(η)的線程與其相關(guān)聯(lián)。(N對(duì)于線程 125、1沈任意之一或兩者均可為0。)圖2示出,特殊的存儲(chǔ)器邏輯視圖200由與特殊進(jìn)程120相關(guān)聯(lián)的所有線程125、 1 共享。圖2示出,每個(gè)線程125、1 分別具有其自己的應(yīng)用和系統(tǒng)狀態(tài)20h、202b。圖 2示出,線程125、126的應(yīng)用和系統(tǒng)狀態(tài)202由與特殊線程相關(guān)聯(lián)的所有纖程(例如,纖程 130-136)共享。相應(yīng)地,圖2示出,本發(fā)明至少一個(gè)實(shí)施例的系統(tǒng)可支持在諸如線程125的OS可 見(jiàn)線程和與該線程相關(guān)聯(lián)的(OS不可見(jiàn))纖程130-136之間的1對(duì)多關(guān)系。纖程是OS (參 見(jiàn)圖1中的140)不“可見(jiàn)的”指是應(yīng)用程序員而不是OS可采用用戶(hù)級(jí)技術(shù)創(chuàng)建、同步和以 其他方式管理和控制纖程的操作。雖然OS 140知道并管理線程125、126,但OS 140不知道 也不管理或控制纖程。因此,不依賴(lài)操作系統(tǒng)管理線程單元硬件與纖程之間的映射,而理想的是可由用 戶(hù)級(jí)應(yīng)用直接控制此類(lèi)映射,并直接操縱與纖程執(zhí)行相關(guān)聯(lián)的控制和狀態(tài)轉(zhuǎn)移。為便于此 類(lèi)直接控制和操縱,線程單元架構(gòu)的用戶(hù)可見(jiàn)的特性可包括至少一套規(guī)范的指令,這些指 令允許用戶(hù)級(jí)應(yīng)用程序指引線程單元硬件的操縱和控制。對(duì)于至少一個(gè)實(shí)施例,理想的是可在多纖程處理系統(tǒng)中實(shí)施任一或所有以下功 能。此類(lèi)功能各自可由實(shí)現(xiàn)功能的單獨(dú)的架構(gòu)指令支持。或者,可由更高級(jí)別的原語(yǔ)或軟 件庫(kù)函數(shù)實(shí)施這些功能,這些原語(yǔ)或函數(shù)基于一小套規(guī)范的纖程創(chuàng)建和控制指令。在題為 “在多個(gè)指令定序器上的基于指令集的線程執(zhí)行機(jī)制”(A Mechanism For Instructions Set-Based Thread Execution on a Plurality of Instruction Sequencers)白勺同時(shí)待審 的美國(guó)專(zhuān)利申請(qǐng)(代理人案號(hào)42390. P19770)中可找到有關(guān)規(guī)范的架構(gòu)用戶(hù)級(jí)纖程處理 指令硬件實(shí)施的進(jìn)一步論述??勺鳛橛脩?hù)級(jí)纖程處理編程范例的一部分提供到程序員的功能可包括任一或所 有以下功能中的一個(gè)或多個(gè)功能1.將定序器隔離以免受OS控制2.實(shí)現(xiàn)定序器間控制轉(zhuǎn)移的定序器算術(shù)3.環(huán)過(guò)渡檢測(cè)和用戶(hù)級(jí)異常處理4. OS可見(jiàn)定序器的“代理執(zhí)行”以支持隔離定序器的特權(quán)操作處理下面將更詳細(xì)地論述這些功能中的每個(gè)功能。理想的是可在從硬件架構(gòu)上不支持以上所列的用戶(hù)級(jí)纖程處理功能的系統(tǒng)上提 供用戶(hù)級(jí)纖程創(chuàng)建和控制功能。相應(yīng)地,纖程創(chuàng)建、控制和同步指令的功能可改為由抽象層 仿真。下面大部分論述和權(quán)利要求書(shū)談到的正是此用戶(hù)級(jí)纖程處理仿真。如上所述,此類(lèi) 仿真可在基礎(chǔ)線程單元不支持用于用戶(hù)級(jí)纖程創(chuàng)建、映射、控制和同步的架構(gòu)指令的系統(tǒng) 中實(shí)施。然而,本文中所述的軟件仿真機(jī)制的實(shí)施例并不限于此類(lèi)系統(tǒng)。可在一個(gè)或多個(gè) 線程單元不支持架構(gòu)纖程指令的系統(tǒng)上實(shí)現(xiàn)這些實(shí)施例。
線程單元在本文也可互換地稱(chēng)為“定序器”,在本文中使用時(shí)可以是能夠執(zhí)行線程 或纖程的任一物理或邏輯單元。它可包括為給定線程或纖程確定要執(zhí)行的下一指令的下一 指令指針邏輯。例如,圖2所示的OS線程125可在未示出的定序器上執(zhí)行,而每個(gè)活動(dòng)纖 程130-136可分別在其他定序器即“SEQ 1"- "SEQ 4”上執(zhí)行。定序器可以是邏輯線程單 元或物理線程單元。圖3中示出了邏輯線程單元與物理線程單元之間的此類(lèi)不同。圖3是方框圖,示出能夠執(zhí)行公開(kāi)技術(shù)的多定序器系統(tǒng)的實(shí)施例310、350的選定 硬件特性。圖3示出SMT多定序器多線程處理環(huán)境310的選定硬件特性。圖3還示出其中 每個(gè)定序器是單獨(dú)的物理處理器核的多核多線程處理環(huán)境350的選定硬件特性。在SMT環(huán)境310中,單個(gè)物理處理器304變得對(duì)操作系統(tǒng)和用戶(hù)程序好像是多個(gè) 邏輯處理器(未示出),這些邏輯處理器在本文中稱(chēng)為L(zhǎng)P1到LPn。每個(gè)邏輯處理器LP1到LPn 分別維護(hù)一套完整的架構(gòu)狀態(tài)AS1-ASn。對(duì)于至少一個(gè)實(shí)施例,架構(gòu)狀態(tài)包括數(shù)據(jù)寄存器、 段寄存器、控制寄存器、調(diào)試寄存器和大多數(shù)模型特定的寄存器。邏輯處理器LP1-LPn共享 物理處理器304的大部分其他資源,如高速緩存、執(zhí)行單元、分支預(yù)測(cè)器、控制邏輯和總線。 雖然此類(lèi)特性可共享,但多線程處理環(huán)境310中的每個(gè)線程上下文可獨(dú)立生成下一指令地 址(并執(zhí)行例如從指令高速緩存、執(zhí)行指令高速緩存或跟蹤高速緩存的取出(fetch))。因此,處理器304包括邏輯上獨(dú)立的下一指令指針和取出邏輯320,以便即使可在 單個(gè)物理取出/解碼單元322中實(shí)施多個(gè)邏輯定序器,也可為每個(gè)線程上下文取出指令。對(duì) 于SMT或?qū)嵤├?,術(shù)語(yǔ)“定序器”至少包含線程上下文的下一指令指針和取出邏輯320以及 該線程上下文的相關(guān)聯(lián)的架構(gòu)狀態(tài)AS中的至少一些。應(yīng)注意的是,SMT系統(tǒng)310的定序器 無(wú)需對(duì)稱(chēng)。例如,同一物理核的兩個(gè)SMT定序器可在它們各自維護(hù)的架構(gòu)狀態(tài)信息量方面 不同。因此,對(duì)于至少一個(gè)實(shí)施例,多定序器系統(tǒng)310是支持并發(fā)多線程處理的單核處 理器304。對(duì)于此類(lèi)實(shí)施例,每個(gè)定序器是具有其自己的指令下一指令指針和取出邏輯320 及其自己的架構(gòu)狀態(tài)信息AS的邏輯處理器,但同一物理處理器核304執(zhí)行所有線程指令。 對(duì)于此類(lèi)實(shí)施例,邏輯處理器維護(hù)其自己版本的架構(gòu)狀態(tài),但可在并發(fā)執(zhí)行的線程之間共 享單個(gè)處理器核的執(zhí)行資源。圖3還示出多核多線程處理環(huán)境350的至少一個(gè)實(shí)施例。此類(lèi)環(huán)境350包括兩個(gè) 或更多個(gè)單獨(dú)的物理處理器3(Ma-304n,每個(gè)處理器能夠執(zhí)行不同的線程/纖程,使得至少 部分不同線程/纖程的執(zhí)行可同時(shí)進(jìn)行。每個(gè)處理器304a到304n包括物理上獨(dú)立的取出 單元322,以取出其相應(yīng)線程或纖程的指令信息。在其中每個(gè)處理器3(Ma-3(Mn執(zhí)行單個(gè)線 程/纖程的實(shí)施例中,取出/解碼單元322實(shí)施單個(gè)下一指令指針和取出邏輯320。然而, 在其中每個(gè)處理器304a-3(Mn支持多個(gè)線程上下文的實(shí)施例中,取出/解碼單元322為每 個(gè)支持的線程上下文實(shí)施獨(dú)特的下一指令指針和取出邏輯320。在圖3中由虛線表示多處 理器環(huán)境350中另外的下一指令指針和取出邏輯320的可選本質(zhì)。因此,對(duì)于圖3所示的多核系統(tǒng)350的至少一個(gè)實(shí)施例,每個(gè)定序器可以是處理器 核304,多個(gè)核3(Ma-3(Mn位于單個(gè)芯片封裝360中。每個(gè)核3(Ma_3(Mn可以是單線程或多 線程的處理器核。在圖3中用虛線表示芯片封裝360,以指示多核系統(tǒng)350的所示單芯片實(shí) 施例只用于說(shuō)明。對(duì)于其他實(shí)施例,多核系統(tǒng)350的處理器核3(Ma-3(Mn可位于不同芯片 上。
對(duì)于至少一個(gè)實(shí)施例,以上所列的用戶(hù)級(jí)纖程創(chuàng)建、控制和同步功能并不由如圖3 中所示的基礎(chǔ)定序器硬件的架構(gòu)指令集來(lái)提供。然而,理想的是程序員能夠編寫(xiě)調(diào)用用戶(hù) 級(jí)纖程處理功能的代碼。對(duì)于此類(lèi)系統(tǒng),可經(jīng)固件或軟件抽象層來(lái)仿真用戶(hù)級(jí)纖程處理功 能,這樣,程序員可透明地編寫(xiě)代碼,就好像基礎(chǔ)硬件支持纖程指令一樣。軟件或固件層可 用于提供抽象層,從而實(shí)現(xiàn)在OS隔離定序器上與OS無(wú)關(guān)的執(zhí)行纖程的用戶(hù)級(jí)創(chuàng)建、控制和 同步。圖4是方框圖,示出包括可隔離在操作系統(tǒng)140的視野和控制外的一個(gè)或多個(gè)定 序器的多定序器多線程處理系統(tǒng)400的抽象層402的至少一個(gè)實(shí)施例。抽象層402提供一 種機(jī)制來(lái)為其中在隔離定序器上不支持用戶(hù)級(jí)纖程處理的架構(gòu)指令的系統(tǒng)實(shí)現(xiàn)用戶(hù)級(jí)線 程控制。相應(yīng)地,對(duì)于圖4所示的實(shí)施例,假設(shè)多個(gè)定序器43h-432n中的一個(gè)或多個(gè)定序 器并不提供對(duì)與OS無(wú)關(guān)的執(zhí)行纖程的用戶(hù)級(jí)創(chuàng)建和控制的架構(gòu)硬件支持,并且假設(shè)相同 的定序器可隔離在OS的視野和控制外。圖4示出抽象402是邏輯上位于多定序器硬件430頂部的抽象層。操作系統(tǒng)140 可至少比抽象層高一層操作,抽象層有時(shí)在本文中稱(chēng)為纖程處理仿真層(“SEL”)。圖4示出SEL 420可包括執(zhí)行各種纖程函數(shù)的模塊。圖4示出SEL 420可包括定 序器隔離模塊404、代理執(zhí)行模塊406、定序器算術(shù)模塊408和過(guò)渡檢測(cè)模塊410。SEL 420 的功能模塊404、406、408、410的此類(lèi)邏輯表示不應(yīng)視為限制。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí) 到,這些模塊旨在表示執(zhí)行指定函數(shù)的邏輯。邏輯可以是軟件、硬件、固件或其任一組合。另 外,多個(gè)模塊404、406、408、410的功能可一起實(shí)施為更大的函數(shù)或邏輯模塊?;蛘?,一個(gè)或 多個(gè)特殊模塊的邏輯可再分成更小的子模塊。此外,一個(gè)或多個(gè)模塊可與一個(gè)或多個(gè)其他 模塊共享邏輯,如共享的函數(shù)調(diào)用或其他共享的邏輯,而不是包括冗余的邏輯副本。對(duì)于至少一個(gè)實(shí)施例,SEL 402可以是獨(dú)立的邏輯模塊。對(duì)于至少另一實(shí)施例,SEL 402可以實(shí)施為對(duì)現(xiàn)有邏輯模塊的修改。例如,SEL 402可實(shí)施為對(duì)現(xiàn)有軟件抽象層的一組 修改。下述某些實(shí)施例包括作為對(duì)虛擬機(jī)監(jiān)視器(“VMM”)的一組修改的SEL 402。同樣 地,提供此類(lèi)實(shí)施例只是為了在特定實(shí)施環(huán)境的上下文中更詳細(xì)地說(shuō)明SEL 402的選定特 性。然而,下面對(duì)有關(guān)VMM實(shí)施例的此類(lèi)細(xì)節(jié)的論述不應(yīng)視為限制。SEL 402可獨(dú)立實(shí)施, 或者可實(shí)施為在操作系統(tǒng)與定序器硬件之間提供接口的任何其他抽象層的一部分。然而, 為闡明可實(shí)施為對(duì)現(xiàn)有VMM的修改的SEL 402的那些實(shí)施例,下面對(duì)圖5的論述提供有關(guān) 所示VVM實(shí)施例的另外的信息。圖5是方框圖,示出包括作為VMM 506的一部分的SEL 402的多定序器處理系統(tǒng) 500。系統(tǒng)500包括硬件資源520,而硬件資源包括處理器資源530。處理器資源530可包 括多個(gè)定序器53加-53211。定序器53加-53211可以是非對(duì)稱(chēng)的。圖5所示的說(shuō)明性系統(tǒng)500還可包括被單獨(dú)忽略以免混淆本文所述其他特性的其 他硬件資源526。此類(lèi)其他硬件資源5 例如可包括但不限于內(nèi)存、外圍裝置、芯片組、存 儲(chǔ)器及諸如此類(lèi)。圖5示出,除上面剛論述的硬件資源520外,系統(tǒng)500還可包括軟件資源。此類(lèi)軟 件資源可包括虛擬機(jī)監(jiān)視器506。VMM 506能夠以一種允許一個(gè)或多個(gè)操作系統(tǒng)503a-503n 在同一系統(tǒng)500上并發(fā)執(zhí)行的方式對(duì)處理系統(tǒng)500的硬件資源進(jìn)行分區(qū)和管理。每個(gè) 0S503a-503n可在稱(chēng)為分區(qū)或虛擬機(jī)(VM) 510a_510n的基本上獨(dú)立的軟件環(huán)境內(nèi)操作。對(duì)于圖5所示的示范實(shí)施例,VMM 506支持多個(gè)虛擬機(jī)510a-510n,每個(gè)虛擬機(jī)分別運(yùn)行其自 己獨(dú)立的客戶(hù)0S503a-503n。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,本文中所述的實(shí)施例可在支持單 個(gè)VM 510的系統(tǒng)中采用。在圖5中用虛線表示另外的VM 510以指示它們是可選的。對(duì)于至少一個(gè)實(shí)施例,通過(guò)諸如微內(nèi)核512和服務(wù)OS 513等軟件或固件組件的執(zhí) 行來(lái)實(shí)施VMM 506。微內(nèi)核512可包括用于諸如指令調(diào)度等系統(tǒng)管理任務(wù)的少量指令。服 務(wù)OS 513可包括用于創(chuàng)建和維護(hù)虛擬機(jī)的裝置驅(qū)動(dòng)程序和環(huán)境虛擬化軟件。相應(yīng)地,對(duì)于圖5所示系統(tǒng)500的至少一個(gè)實(shí)施例,VMM軟件506可保持對(duì)硬件資 源520的控制,并可在非特權(quán)模式運(yùn)行客戶(hù)0S503a-503n作為VMM 506的客戶(hù)。某些客戶(hù)事 件、指令和情況可陷入VMM 506,并且VMM 506然后可處理此類(lèi)事件、指令和/或情況。VMM 506因此為客戶(hù)OS軟件503a-503n提供處理器抽象。在本文中使用時(shí),從客戶(hù)OS 503a-503n到VMM 506的陷阱(trap)在本文中稱(chēng)為 VMEXITo從VMM 506控制回到客戶(hù)OS 503a_503n的過(guò)渡在本文中稱(chēng)為VMENTER。VMM 506 與客戶(hù)OS軟件503a-503n之間的過(guò)渡可由稱(chēng)為虛擬機(jī)控制結(jié)構(gòu)(VMCS) 560的硬件結(jié)構(gòu)控 制。VMCS 560可在進(jìn)入和離開(kāi)VMM 506控制的此類(lèi)過(guò)渡發(fā)生時(shí)存儲(chǔ)客戶(hù)(如503a_503n) 狀態(tài)、VMM 506狀態(tài)和各種控制寄存器的狀態(tài)??刂萍拇嫫髦悼芍甘灸男┛蛻?hù)事件應(yīng)陷入 VMM 506并且指示在VMEXIT和VMENTER過(guò)渡時(shí)載入和存儲(chǔ)什么狀態(tài)。對(duì)于至少一個(gè)實(shí)施例,VMM 506為VMEXIT和VMENTER過(guò)渡執(zhí)行以下處理。對(duì)于 VMEXIT,將生成過(guò)渡事件的客戶(hù)OS 503的狀態(tài)信息存儲(chǔ)到VMCS 560的客戶(hù)狀態(tài)區(qū)。對(duì)于 VMENTER,從VMCS560的客戶(hù)狀態(tài)區(qū)還原客戶(hù)狀態(tài)。對(duì)于至少一個(gè)實(shí)施例,VMM 506可利用 在本文中分別稱(chēng)為VMREAD和VMWRITE的專(zhuān)用讀和寫(xiě)指令來(lái)讀寫(xiě)VMCS 560的字段。VMCS 560和VMM 506的基本功能可用于將SEL 402實(shí)施為VMM 506的一部分的系 統(tǒng)的至少一個(gè)實(shí)施例。下面陳述了 VMM 506可如何用于仿真特定的用戶(hù)級(jí)纖程創(chuàng)建、控制 和同步功能的特定示例。定序器隔離。術(shù)語(yǔ)定序器隔離在本文中使用時(shí),用于表示多定序器多線程處理系 統(tǒng)的一個(gè)或多個(gè)定序器已過(guò)渡到隔離狀態(tài)或狀況。此類(lèi)隔離狀態(tài)或狀況的特征在于OS不 為此類(lèi)狀態(tài)或狀況中的定序器調(diào)度指令。相應(yīng)地,對(duì)于在給定時(shí)間具有在隔離狀態(tài)的一個(gè) 或多個(gè)定序器的系統(tǒng),我們說(shuō)只有非隔離定序器才是OS “可見(jiàn)的”。在任一給定時(shí)間,視一 個(gè)或多個(gè)定序器是否被隔離而定,OS可看到比平臺(tái)上確實(shí)可用的更少的定序器。只有“可 見(jiàn)的”非隔離定序器才可用于OS控制的線程執(zhí)行??身憫?yīng)用戶(hù)級(jí)指令在隔離(即,“OS不 可見(jiàn)”)定序器上執(zhí)行纖程。圖6是方框圖,示出定序器隔離的至少一個(gè)實(shí)施例。應(yīng)注意的是,隔離定序器可以 但不必是彼此對(duì)稱(chēng)或與OS可見(jiàn)定序器對(duì)稱(chēng)。對(duì)于至少一個(gè)實(shí)施例,可在諸如虛擬機(jī)中的客 戶(hù)OS等操作系統(tǒng)603的引導(dǎo)期間實(shí)現(xiàn)一個(gè)或多個(gè)定序器622、624、626的隔離。對(duì)于此類(lèi) 實(shí)施例,OS 603的引導(dǎo)參數(shù)650可位于存儲(chǔ)器中,如在文件(例如,boot, ini)中??稍谝?導(dǎo)前配置引導(dǎo)參數(shù)650,使得只有系統(tǒng)600的全部定序器的子集(例如,定序器620)是OS 603可見(jiàn)的。(對(duì)于至少一個(gè)實(shí)施例,引導(dǎo)參數(shù)可由具有重新配置操作系統(tǒng)設(shè)置的根特權(quán)的 系統(tǒng)管理員配置。)對(duì)于至少一個(gè)實(shí)施例,可在OS 603已完成其引導(dǎo)進(jìn)程后啟動(dòng)VMM 506?;蛘撸蔀槠渲性贠S 603之前啟動(dòng)VMM 506的實(shí)施例實(shí)現(xiàn)一個(gè)或多個(gè)定序器622、 624、626的隔離。例如,此類(lèi)實(shí)施例可經(jīng)BIOS(基本輸入/輸出系統(tǒng))或EFI (可擴(kuò)展固件接口)或充當(dāng)硬件與操作系統(tǒng)603之間接口的其他固件啟動(dòng)VMM 506??稍谇袚Q到OS 603 之前由此類(lèi)固件啟動(dòng)VMM 506??赏ㄟ^(guò)由操作系統(tǒng)603利用的ACPI (高級(jí)配置和電源接口) 表中的值來(lái)控制向OS 603暴露的定序器數(shù)量,而不是利用OS的引導(dǎo)參數(shù)文件實(shí)現(xiàn)隔離。 (同樣地,ACPI可由系統(tǒng)管理員或由引導(dǎo)管理器(BIOS、EFI等)的供應(yīng)商編程。)雖然圖6中只示出一個(gè)OS可見(jiàn)定序器620,但此類(lèi)圖示只是為了說(shuō)明,而不應(yīng)視為 限制。系統(tǒng)600的任意數(shù)量的定序器可以是操作系統(tǒng)603可見(jiàn)的。操作系統(tǒng)603有效處理 大量并發(fā)線程的能力限制可告知有關(guān)系統(tǒng)600中全部定序器中多少定序器應(yīng)是OS 603可 見(jiàn)的與多少定序器應(yīng)是隔離的判定。圖6示出VMM 506可控制系統(tǒng)600的所有定序器620、622、624、626,包括OS 603 可見(jiàn)的定序器620。隔離定序器622、624、6沈雖然是操作系統(tǒng)603不可見(jiàn)的,但在VMM 506 的直接控制下操作。VMM506可為可見(jiàn)定序器620在客戶(hù)模式運(yùn)行OS 603。定序器隔離模塊404可執(zhí)行初始化隔離定序器622、624、626的處理,以讓它們準(zhǔn) 備執(zhí)行如用戶(hù)級(jí)指令指引的線程。在VMM啟動(dòng)后,定序器隔離模塊404可發(fā)送初始化指令 到每個(gè)隔離定序器622、624、626。由于它們是OS 603不可見(jiàn)的,因此,隔離定序器不執(zhí)行要求操作系統(tǒng)603的特權(quán) 環(huán)服務(wù)的特權(quán)代碼。對(duì)于至少一個(gè)實(shí)施例,可通過(guò)下面更詳細(xì)論述的透明代理機(jī)制向程序 員屏蔽特殊定序器無(wú)法執(zhí)行特權(quán)指令(如系統(tǒng)調(diào)用和缺頁(yè)故障處理)。圖7是流程圖,示出用于啟動(dòng)包括如圖4所示SEL 402等纖程處理仿真層的軟件 層的方法700的至少一個(gè)實(shí)施例。對(duì)于至少一個(gè)實(shí)施例,SEL 402可作為諸如VMM等更綜 合的軟件模塊的一部分啟動(dòng)??捎蒓S可見(jiàn)定序器上的啟動(dòng)驅(qū)動(dòng)程序來(lái)啟動(dòng)方法700。圖7示出方法700從塊702開(kāi)始,并繼續(xù)到塊704。在塊704,將軟件層的圖像載 入系統(tǒng)的存儲(chǔ)器中。對(duì)于至少一個(gè)實(shí)施例,圖像可由啟動(dòng)驅(qū)動(dòng)程序載入。處理隨后繼續(xù)到 塊706。在塊706,調(diào)用軟件層。結(jié)果是控制從啟動(dòng)驅(qū)動(dòng)程序轉(zhuǎn)移到在塊704載入的SEL圖 像。圖7示出,響應(yīng)在塊706的調(diào)用,SEL可執(zhí)行某些處理724-732。當(dāng)然,將理解,處理 724-732無(wú)需一定按所示順序執(zhí)行,并且一些塊可組合在一起作為更大的宏塊執(zhí)行,或者可 分解成更小的子塊。對(duì)于至少一個(gè)實(shí)施例,圖7所示的處理724-732可由諸如VMM等已修改為包括SEL 420的軟件層執(zhí)行。圖7示出在塊724,方法700執(zhí)行初始化。初始化7M可包括VMXON指 令的執(zhí)行,這會(huì)啟用定序器中可用的VMX(虛擬機(jī)擴(kuò)展)特性。初始化7M還可包括設(shè)置 VMM要執(zhí)行時(shí)所在的單獨(dú)虛擬地址空間。從塊724,處理繼續(xù)到塊726。在塊726,方法700控制與OS隔離的定序器。對(duì)于至少一個(gè)實(shí)施例,經(jīng)將啟動(dòng)處 理器間中斷(或SIPI)發(fā)送到每個(gè)隔離定序器而斷定此類(lèi)控制。處理隨后從塊7 繼續(xù)到 728。在塊728,將每個(gè)隔離定序器置于等待狀態(tài)以等待來(lái)自調(diào)度程序的工作。在此之 后,可由纖程調(diào)度程序(未示出)在隔離定序器上調(diào)度工作。纖程調(diào)度程序例如可作為運(yùn)行 庫(kù)(未示出)的一部分操作?;蛘撸w程調(diào)度程序可作為SEL(參見(jiàn)圖4的420)的一部分操 作。在題為“在無(wú)操作系統(tǒng)干預(yù)的情況下在OS隔離定序器上調(diào)度線程的機(jī)制”(Mechanism to Schedule Threads on OS-Sequestered Sequencers without Operating SystemIntervention)的同時(shí)待審的美國(guó)專(zhuān)利申請(qǐng)(代理人案號(hào)42390. P20205)中,可找到有關(guān)纖 程調(diào)度程序的至少一個(gè)實(shí)施例的另外的細(xì)節(jié)。從塊728,處理可繼續(xù)到塊730。在塊730,方法700為OS可見(jiàn)定序器設(shè)置虛擬存 儲(chǔ)器控制結(jié)構(gòu)(VMCQ??刹倏v在塊730設(shè)置的VMCS值以每次在OS可見(jiàn)定序器上發(fā)生異常 時(shí)造成到VMM的陷阱。處理隨后可繼續(xù)到塊732。在塊732,方法700可執(zhí)行VMENTER以將控制返回給最初啟動(dòng)SEL的驅(qū)動(dòng)程序(參 見(jiàn)塊706)。對(duì)于OS可見(jiàn)定序器,轉(zhuǎn)移732有效地將控制轉(zhuǎn)給OS。對(duì)于至少一個(gè)實(shí)施例,在 啟動(dòng)時(shí)執(zhí)行此第一 VMENTER后,對(duì)于OS可見(jiàn)定序器,操作系統(tǒng)可作為VMM頂部的客戶(hù)以非 特權(quán)模式(下述的“0D”)運(yùn)行。在塊708,客戶(hù)OS隨后可繼續(xù)執(zhí)行正常處理。方法700的 處理隨后可在塊710結(jié)束。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可以用維持本文中所述一般功能的多種替代順序執(zhí) 行圖7的塊。例如,在塊7 后,可在執(zhí)行塊7 前執(zhí)行塊730和732。圖8是方框圖,示出在VMM 806和OS 803啟動(dòng)后的示范多定序器系統(tǒng)800的隔離 定序器Sl和OS可見(jiàn)定序器SO的狀態(tài)。圖8所示的示例包括兩個(gè)定序器SO和Si。對(duì)于至 少一個(gè)實(shí)施例,每個(gè)定序器so、Sl是SMT多線程處理器800的邏輯處理器。對(duì)于至少一個(gè) 替代實(shí)施例,定序器SO、Sl可以是能夠?yàn)槎嗪硕嗑€程處理系統(tǒng)800并發(fā)執(zhí)行線程的獨(dú)立處 理器核。對(duì)于本文中所述的所有實(shí)施例,還可在包括比圖中所示更多或更少定序器的系統(tǒng) 上執(zhí)行公開(kāi)的技術(shù)。圖8示出第一定序器SO是OS 803可見(jiàn)的,并可在OS 803的指引和控制下執(zhí)行線 程。OS 803調(diào)度要由定序器SO執(zhí)行的工作。然而,由于OS 803作為VMM 806的客戶(hù)操作, 因此,VMM 806控制兩個(gè)定序器SO、Si。也就是說(shuō),對(duì)于至少一個(gè)實(shí)施例,VMM 806控制所有 定序器S0、Si,并且將OS可見(jiàn)定序器SO虛擬化到OS 803。當(dāng)定序器SO嘗試執(zhí)行特權(quán)操 作時(shí),例如如果在OS 803上運(yùn)行的應(yīng)用806嘗試訪問(wèn)控制寄存器,則VMM 808可操縱向OS 803暴露的控制值。在OS 803的頂部運(yùn)行的應(yīng)用808在OS 803的環(huán)3上以非特權(quán)模式運(yùn)行。此類(lèi)應(yīng) 用808的非特權(quán)環(huán)3操作模式在圖8中由名稱(chēng)“3D”表示??蛻?hù)OS 803的內(nèi)核和驅(qū)動(dòng)程序 812在操作系統(tǒng)803的環(huán)0中運(yùn)行,但為非特權(quán)模式。操作系統(tǒng)803的非特權(quán)環(huán)0操作模式 在圖8中由名稱(chēng)“0D”表示。圖8示出與OS 803隔離的定序器Sl在VMM 806控制下操作。圖8還示出VMM 806 以特權(quán)環(huán)0模式PO操作。如果嘗試由OS可見(jiàn)定序器SO執(zhí)行某些特權(quán)操作,則這些特權(quán)操 作可能導(dǎo)致到VMM806的VMEXIT。下面結(jié)合圖9-圖13更詳細(xì)地描述了此類(lèi)VMEXIT處理的 SEL 802處理的進(jìn)一步說(shuō)明。定序器算術(shù)。術(shù)語(yǔ)定序器算術(shù)在本文中使用時(shí)用于表示在兩個(gè)隔離定序器之間的 用戶(hù)級(jí)控制轉(zhuǎn)移。對(duì)于SEL(參見(jiàn)圖4的402)的至少一個(gè)實(shí)施例,提供了同步和異步的定 序器間控制轉(zhuǎn)移功能。當(dāng)然,對(duì)于替代實(shí)施例,可分別提供僅同步或僅異步定序器間控制轉(zhuǎn) 移功能??捎蒘EL提供同步和/或異步用戶(hù)級(jí)定序器間控制轉(zhuǎn)移功能,而不論基礎(chǔ)定序器 硬件是否提供對(duì)此類(lèi)功能的架構(gòu)支持。通常,SEL的同步控制轉(zhuǎn)移特性可由用戶(hù)級(jí)指令調(diào)用,該指令在由第一定序器執(zhí)行 時(shí)使信號(hào)發(fā)送到第二定序器。對(duì)于至少一個(gè)實(shí)施例,在本文中稱(chēng)為VMCALL的新用戶(hù)級(jí)指令可由程序員用于調(diào)用SEL的定序器算術(shù)功能。VMCALL指令的參數(shù)可由用戶(hù)級(jí)應(yīng)用操縱以便 實(shí)現(xiàn)各種類(lèi)型的定序器間控制轉(zhuǎn)移方案。(下面表1中陳述了此類(lèi)定序器間控制轉(zhuǎn)移方案 的說(shuō)明性采樣。)利用新VMCALL指令的用戶(hù)級(jí)應(yīng)用在本文中稱(chēng)為“纖程感知的”應(yīng)用。新VMCALL指令的至少一個(gè)實(shí)施例允許纖程感知的客戶(hù)軟件強(qiáng)制從客戶(hù)軟件到 VMM的VMEXIT。VMM隨后管理到隔離定序器的信令。表1陳述了可由用戶(hù)級(jí)應(yīng)用對(duì)VMCALL 指令的使用啟動(dòng)且可由VMM處理的信令方案的各種示范實(shí)施例。由于VMCALL造成退出客 戶(hù)軟件控制,因此,表1中所列的方案在本文中稱(chēng)為“出口方案”。對(duì)于其他實(shí)施例,可實(shí)施 另外的或不同的出口方案。表1-從OS可見(jiàn)定序器轉(zhuǎn)移到隔離定序器的同步定序器間控制轉(zhuǎn)移的出口方案
權(quán)利要求
1.一種由處理器執(zhí)行的方法,包括執(zhí)行一組操作以使隔離定序器上的執(zhí)行暫停;其中,響應(yīng)于OS可見(jiàn)定序器上的環(huán)過(guò)渡 由抽象層執(zhí)行所述一組操作;以及發(fā)出一個(gè)或多個(gè)線程控制信號(hào),以獨(dú)立于操作系統(tǒng)OS而控制隔離定序器上的用戶(hù)級(jí) 線程的操作。
2.如權(quán)利要求1所述的方法,其中,所述一個(gè)或多個(gè)線程控制信號(hào)還包括使所述隔離 定序器開(kāi)始執(zhí)行指令序列的信號(hào)。
3.如權(quán)利要求2所述的方法,其中所述一個(gè)或多個(gè)線程控制信號(hào)還包括使所述隔離 定序器開(kāi)始執(zhí)行在修改的指令指針地址的指令序列的信號(hào)。
4.如權(quán)利要求1所述的方法,還包括在第一OS可見(jiàn)定序器上并發(fā)執(zhí)行由所述操作系統(tǒng) 調(diào)度的第一指令序列;其中,所述第一指令序列包括用戶(hù)生成的指令;同時(shí)在所述隔離定 序器上執(zhí)行第二指令序列。
5.如權(quán)利要求1所述的方法,還包括為所述隔離定序器生成執(zhí)行環(huán)境;其中,由所述用 戶(hù)級(jí)軟件庫(kù)執(zhí)行所述生成。
6.如權(quán)利要求1所述的方法,其中,所述線程控制信號(hào)還包括中斷所述隔離定序器上 的執(zhí)行的信號(hào)。
7.如權(quán)利要求6所述的方法,其中,所述線程控制信號(hào)還包括中斷信號(hào)。
8.如權(quán)利要求1所述的方法,還包括執(zhí)行一組操作以使OS可見(jiàn)定序器代表所述隔離 定序器觸發(fā)事件處理例程的執(zhí)行,其中,由所述用戶(hù)級(jí)軟件庫(kù)執(zhí)行所述一組操作。
9.一種OS隔離定序器上用戶(hù)級(jí)多線程處理的系統(tǒng),包括處理器,執(zhí)行一組操作以使隔離定序器上的執(zhí)行暫停,其中,響應(yīng)于OS可見(jiàn)定序器上 的環(huán)過(guò)渡由抽象層執(zhí)行所述一組操作;耦合到所述定序器的存儲(chǔ)器;所述處理器發(fā)出一個(gè)或多個(gè)線程控制信號(hào),以獨(dú)立于操作系統(tǒng)OS而控制隔離定序器 上的用戶(hù)級(jí)線程的操作。
10.如權(quán)利要求9所述的系統(tǒng),還包括多個(gè)定序器,其中所述多個(gè)定序器中的至少之一 相對(duì)于其他定序器中的一個(gè)或多個(gè)是計(jì)算上非對(duì)稱(chēng)的。
11.如權(quán)利要求9所述的系統(tǒng),還包括多個(gè)定序器和耦合到所述多個(gè)定序器的用戶(hù)級(jí) 軟件庫(kù)以獨(dú)立于操作系統(tǒng)而調(diào)度線程到所述定序器中的一個(gè)或多個(gè)隔離的定序器,其中, 所述用戶(hù)級(jí)軟件庫(kù)還包括隔離所述一個(gè)或多個(gè)定序器的定序器隔離模塊。
12.如權(quán)利要求9所述的系統(tǒng),其中所述存儲(chǔ)器是DRAM。
13.如權(quán)利要求9所述的系統(tǒng),其中還包括多個(gè)定序器和用戶(hù)級(jí)軟件庫(kù),其中所述用戶(hù) 級(jí)軟件庫(kù)還包括隔離所述多個(gè)定序器中的一個(gè)或多個(gè)的定序器隔離模塊。
14.如權(quán)利要求9所述的系統(tǒng),其中還包括多個(gè)定序器和用戶(hù)級(jí)軟件庫(kù),其中所述用戶(hù) 級(jí)軟件庫(kù)還包括為所述多個(gè)隔離定序器調(diào)用操作系統(tǒng)服務(wù)的代理執(zhí)行模塊。
15.如權(quán)利要求9所述的系統(tǒng),其中還包括多個(gè)定序器和用戶(hù)級(jí)軟件庫(kù),其中所述用戶(hù) 級(jí)軟件庫(kù)還包括在所述多個(gè)定序器中的至少兩個(gè)之間提供信令的定序器算術(shù)模塊。
全文摘要
仿真OS隔離定序器上的用戶(hù)級(jí)多線程處理的機(jī)制。本文公開(kāi)了經(jīng)抽象層為包括與操作系統(tǒng)控制隔離的一個(gè)或多個(gè)定序器的系統(tǒng)提供OS不可見(jiàn)執(zhí)行“纖程”的用戶(hù)級(jí)創(chuàng)建、控制和同步的方法、設(shè)備和系統(tǒng)實(shí)施例。對(duì)于至少一個(gè)實(shí)施例,抽象層提供隔離邏輯、代理執(zhí)行邏輯、過(guò)渡檢測(cè)和纖程暫停邏輯及定序器算術(shù)邏輯。本文還描述和聲明了其他實(shí)施例。
文檔編號(hào)G06F9/48GK102147749SQ20111008858
公開(kāi)日2011年8月10日 申請(qǐng)日期2005年12月28日 優(yōu)先權(quán)日2004年12月30日
發(fā)明者A·阿加瓦爾, B·V·帕特爾, B·比比, G·欽亞, H·王, J·L·賴(lài)德, J·P·赫爾德, J·沈, P·塞蒂, R·A·漢金斯, S·考施克, T·迪普, X·鄒 申請(qǐng)人:英特爾公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
晋中市| 叶城县| 天水市| 阿拉善左旗| 黄平县| 西和县| 防城港市| 阿勒泰市| 宁阳县| 桑植县| 五台县| 翁牛特旗| 桃江县| 扶沟县| 广水市| 拉萨市| 内江市| 怀集县| 萍乡市| 新宁县| 苍山县| 盐边县| 肥西县| 买车| 安图县| 玛纳斯县| 固始县| 泸定县| 浮山县| 永吉县| 逊克县| 宾川县| 高清| 军事| 依安县| 台东市| 上饶县| 丰镇市| 大渡口区| 常州市| 邓州市|