專利名稱:利用批調(diào)度的線程調(diào)度的制作方法
利用批調(diào)度的線程調(diào)度相關(guān)申請(qǐng)的引用本申請(qǐng)與下述共同待審申請(qǐng)相關(guān)2009年7月22日提交的申請(qǐng)序列號(hào) 12/507,696(代理案卷號(hào) VXZ01-012-US),題為 “Batch Scheduling With Segregation"; 以及2009年7月22日提交的申請(qǐng)序列號(hào)12/507,671(代理案卷號(hào)BBV01-014-US),題為 "Application Selection of Memory Request Scheduling,,。
背景技術(shù):
在芯片多處理器(CMP)系統(tǒng)中,在內(nèi)核之間共享DRAM系統(tǒng)。在共享DRAM系統(tǒng)中, 來(lái)自一個(gè)線程的請(qǐng)求不但通過(guò)引起組(bank)沖突、總線沖突或行緩沖器沖突來(lái)延遲來(lái)自其他線程的請(qǐng)求,而且還破壞其他線程的DRAM組級(jí)別并行性。具有延遲的請(qǐng)求(否則,這些請(qǐng)求會(huì)交疊)實(shí)際上成為串行的。結(jié)果,公平性和系統(tǒng)吞吐量都會(huì)劣化,并且一些線程可能在較長(zhǎng)時(shí)段上處于饑餓狀態(tài)。一種提供公平和高性能存儲(chǔ)器調(diào)度的方法是使用稱為并行性意識(shí)批調(diào)度 (PAR-BS)的調(diào)度算法,如 Onur Mutlu禾口 Thomas Moscibroda 的"Parallelism—Aware Batch Scheduling :Enhancing both Performance and Fairness of Shared DRAM Systems,,, ISCA, pp. 63-74,2008 (2008International Symposium on Computer Architecture)中所示,其全部?jī)?nèi)容(除了其中與本申請(qǐng)不一致的內(nèi)容)通過(guò)參考合并在此。PAR-BS設(shè)計(jì)基于兩個(gè)思想(1)請(qǐng)求分批;以及(2)并行性意識(shí)存儲(chǔ)器調(diào)度。首先,PAR-BS成批地處理DRAM 請(qǐng)求,以提供公平性和避免請(qǐng)求饑餓。其次,為優(yōu)化系統(tǒng)吞吐量,PAR-BS采用并行性意識(shí) DRAM調(diào)度策略,該策略旨在在DRAM組中并行處理來(lái)自線程的請(qǐng)求,從而減少線程經(jīng)歷的存儲(chǔ)器有關(guān)滯延時(shí)間。PAR-BS結(jié)合了對(duì)系統(tǒng)級(jí)線程優(yōu)先級(jí)的支持,并能夠向具有不同優(yōu)先級(jí)的線程提供不同的服務(wù)級(jí)別,包括純機(jī)會(huì)主義的服務(wù)。
發(fā)明內(nèi)容
在第一方面,本公開(kāi)大體描述了一種計(jì)算機(jī)系統(tǒng)中執(zhí)行線程的方法,包括將線程隔離成第一線程類型和第二線程類型;形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。在第二方面,本公開(kāi)大體描述了一種計(jì)算機(jī)程序產(chǎn)品,具有在計(jì)算機(jī)可讀介質(zhì)中編碼的軟件,用于在計(jì)算機(jī)系統(tǒng)中執(zhí)行線程。該軟件包括在執(zhí)行時(shí)可操作用于如下的指令 將線程隔離成第一線程類型和第二線程類型;形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。在第三方面,本公開(kāi)大體描述了一種計(jì)算機(jī)系統(tǒng),具有多個(gè)內(nèi)核、以及可操作性耦合至所述多個(gè)內(nèi)核的計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)可執(zhí)行指令,當(dāng)由計(jì)算機(jī)系統(tǒng)執(zhí)行時(shí),計(jì)算機(jī)可執(zhí)行指令將計(jì)算機(jī)系統(tǒng)配置為將線程隔離成第一線程類型和第二線程類型;形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。
以上發(fā)明內(nèi)容僅僅是說(shuō)明性的,而絕不是限制性的。除了上述示例性的各方案、 各實(shí)施例和各特征之外,參照附圖和以下詳細(xì)說(shuō)明,將清楚其他方案、其他實(shí)施例和其他特征。
在本說(shuō)明書(shū)的總結(jié)部分特別指出并明確要求保護(hù)主題。根據(jù)以下說(shuō)明和所附權(quán)利要求,結(jié)合附圖,本公開(kāi)的前述和其他特征將更加清楚。在認(rèn)識(shí)到這些附圖僅僅示出了根據(jù)本公開(kāi)的一些示例且因此不應(yīng)被認(rèn)為是限制本公開(kāi)范圍的前提下,通過(guò)使用附圖更加具體和詳細(xì)地描述本公開(kāi),附圖中圖1示出了計(jì)算機(jī)系統(tǒng);圖2示出了由操作系統(tǒng)執(zhí)行應(yīng)用程序;圖3示出了將應(yīng)用程序劃分成線程的示意表示,包括圖3A中存儲(chǔ)器控制器的調(diào)度器的詳細(xì)視圖,其中線程發(fā)布發(fā)送給存儲(chǔ)器控制器的請(qǐng)求;圖4示出了方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖示例;以及圖5示出了全部根據(jù)本公開(kāi)的至少一些實(shí)施例的成批地布置來(lái)自線程的請(qǐng)求的
不意表不。
具體實(shí)施例方式下面描述給出了多種示例以及具體細(xì)節(jié),以提供對(duì)所要求保護(hù)的主題的充分理解。然而,本領(lǐng)域技術(shù)人員將理解,可以在沒(méi)有本文公開(kāi)的一些或更多具體細(xì)節(jié)的情況下實(shí)施要求保護(hù)的主題。此外,在一些情況下,不詳細(xì)描述已知的方法、過(guò)程、系統(tǒng)、部件和/或電路,以避免不必要地模糊要求保護(hù)的主題。在以下詳細(xì)說(shuō)明中,參考了作為詳細(xì)說(shuō)明的一部分的附圖。在附圖中,類似符號(hào)通常表示類似部件,除非上下文另行指明。
具體實(shí)施方式
部分、附圖和權(quán)利要求書(shū)中記載的示例性實(shí)施例并不是限制性的。在不脫離在此所呈現(xiàn)主題的精神或范圍的情況下,可以利用其他實(shí)施例,且可以進(jìn)行其他改變。應(yīng)當(dāng)理解,在此一般性記載以及附圖中圖示的本公開(kāi)的各方案可以多種不同配置來(lái)設(shè)置、替換、組合和設(shè)計(jì), 它們?nèi)慷荚诒竟_(kāi)中明確考慮并形成本公開(kāi)一部分。在以下描述中,可以提供對(duì)例如計(jì)算機(jī)和/或計(jì)算系統(tǒng)存儲(chǔ)器等計(jì)算系統(tǒng)內(nèi)存儲(chǔ)的數(shù)據(jù)比特和/或二進(jìn)制數(shù)字信號(hào)的操作的算法和/或符號(hào)表示。一般將算法看作引導(dǎo)至所需結(jié)果的自相一致的操作序列和/或類似處理,其中操作可以包括對(duì)物理量的物理操縱,物理量可以采用電、磁和/或電磁信號(hào)的形式,能夠被存儲(chǔ)、傳送、組合、比較和/或以其他方式操縱。在多種情況下,這種信號(hào)可以稱為比特、數(shù)據(jù)、值、元素、符號(hào)、字符、項(xiàng)、數(shù)、數(shù)值等。然而本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,這些術(shù)語(yǔ)可以用于暗指物理量。因此,當(dāng)在本說(shuō)明書(shū)中使用例如“存儲(chǔ)”、“處理”、“獲取”、“計(jì)算”、“確定”等術(shù)語(yǔ)時(shí),這些術(shù)語(yǔ)可以指例如計(jì)算機(jī)或類似電子計(jì)算設(shè)備(例如蜂窩電話)等計(jì)算平臺(tái)的動(dòng)作,該計(jì)算平臺(tái)在計(jì)算機(jī)平臺(tái)的處理器、存儲(chǔ)器、寄存器等內(nèi)操縱和/或變換表示為物理量(包括電子和/或磁量)的數(shù)據(jù)。本公開(kāi)尤其涉及與通過(guò)批調(diào)度的線程調(diào)度有關(guān)的方法、裝置、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。本公開(kāi)利用如下發(fā)現(xiàn)基于特定準(zhǔn)則,將線程分組成批??梢园凑斩喾N方式將線程分組成批,例如(1)基于線程被設(shè)計(jì)與并行處理器一起使用的良好程度,分為好設(shè)計(jì)線程和差設(shè)計(jì)線程;(2)基于線程與其他線程一起工作的高效程度,分為合作線程和不合作線程; (3)基于線程所發(fā)源的應(yīng)用程序,分為第一應(yīng)用、第二應(yīng)用和第三應(yīng)用線程;(4)基于線程發(fā)布的對(duì)于存儲(chǔ)器中數(shù)據(jù)的請(qǐng)求的相對(duì)數(shù)目,分為大請(qǐng)求線程、中等請(qǐng)求線程(可選的)、 以及小請(qǐng)求線程,例如大請(qǐng)求線程可以發(fā)布平均數(shù)目的請(qǐng)求或更多請(qǐng)求,小請(qǐng)求線程可以發(fā)布小于平均數(shù)目的個(gè)數(shù)的請(qǐng)求。用于將線程分組成批的其他準(zhǔn)則可以包括向每個(gè)線程分配重要度,例如高重要度或低重要度,或者分配重要度值并將具有類似或相同重要度值的線程一起成批。用于將線程分組成批的其他準(zhǔn)則可以包括基于先前執(zhí)行線程時(shí)收集的過(guò)去的兼容性數(shù)據(jù),利用與每個(gè)線程關(guān)聯(lián)的重影頁(yè)面中存儲(chǔ)的數(shù)據(jù),來(lái)進(jìn)行分組;或者該數(shù)據(jù)可以存儲(chǔ)在冷凍干燥的重影頁(yè)面中,該冷凍干燥的重影頁(yè)面作為發(fā)布該線程的應(yīng)用程序的一部分而提供,該冷凍干燥的重影頁(yè)面包含以該應(yīng)用程序提供的線程的兼容性數(shù)據(jù)。在一些示例中,描述了對(duì)計(jì)算機(jī)系統(tǒng)中運(yùn)行的線程進(jìn)行隔離的方法。計(jì)算機(jī)系統(tǒng)可以包括操作系統(tǒng)。所述的一些方法可以包括基于線程的效率將線程隔離成好線程和差線程。在一些示例中,可以并行地從存儲(chǔ)器組中提取數(shù)據(jù)的線程可以認(rèn)為是好線程,不可以從存儲(chǔ)器組中提取數(shù)據(jù)的線程可以認(rèn)為是差線程。方法還可以包括形成第一批線程,主要包括好線程;以及形成第二批線程,主要包括差線程。在一些其他示例中,描述了對(duì)計(jì)算機(jī)系統(tǒng)中運(yùn)行的線程進(jìn)行隔離的方法。計(jì)算機(jī)系統(tǒng)可以包括操作系統(tǒng)。示例方法可以包括確定哪些線程彼此之間高效地操作以及哪些線程彼此之間不高效地操作。彼此之間高效操作的線程可以從不同存儲(chǔ)器組中提取數(shù)據(jù)。彼此之間不高效操作的線程從相同存儲(chǔ)器組中提取數(shù)據(jù)。示例方法還可以包括形成第一批線程,主要包括彼此之間高效操作的線程;以及形成第二批請(qǐng)求,主要包括彼此之間不高效操作的線程。在另外的示例中,描述了對(duì)計(jì)算機(jī)系統(tǒng)中運(yùn)行的線程進(jìn)行隔離的方法。計(jì)算機(jī)系統(tǒng)可以包括操作系統(tǒng)。示例方法可以包括基于準(zhǔn)則將線程隔離成第一和第二線程類型。示例方法還可以包括形成第一批,第一批請(qǐng)求包括主要是第一線程類型的線程;以及形成第二批,第二批包括主要是第二線程類型的線程。圖1示出了根據(jù)本公開(kāi)至少一些實(shí)施例布置的計(jì)算機(jī)系統(tǒng)。圖1示出了計(jì)算機(jī) 100包括處理器110、存儲(chǔ)器120和一個(gè)或多個(gè)驅(qū)動(dòng)130。驅(qū)動(dòng)130及其關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)可以為計(jì)算機(jī)100提供對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲(chǔ)。驅(qū)動(dòng)130可以包括操作系統(tǒng)140、應(yīng)用程序150、程序模塊160和數(shù)據(jù)庫(kù)180。操作系統(tǒng)140 和/或應(yīng)用程序150例如可以包括使計(jì)算機(jī)100執(zhí)行圖4所示的功能和/或操作的程序指令,例如批調(diào)度應(yīng)用154。計(jì)算機(jī)100可以包括用戶輸入設(shè)備190,通過(guò)用戶輸入設(shè)備190, 用戶可以輸入命令和數(shù)據(jù)。輸入設(shè)備可以包括電子數(shù)字化儀、麥克風(fēng)、鍵盤(pán)和指定設(shè)備(指定設(shè)備通常稱為鼠標(biāo)、軌跡球或觸摸板)。其他輸入設(shè)備可以包括操縱桿、游戲板、圓盤(pán)衛(wèi)星天線、掃描儀等。上述和其他輸入設(shè)備可以通過(guò)用戶輸入接口耦接至處理器110,用戶輸入接口可以耦接至系統(tǒng)總線,或者可以通過(guò)其他接口或總線結(jié)構(gòu)(例如并行端口、游戲端口或通用串行總線(USB)等)連接。計(jì)算機(jī)100可以包括外圍輸出設(shè)備,例如揚(yáng)聲器、打印機(jī)或顯示器202,外圍輸出設(shè)備可以通過(guò)輸出外圍接口 194等連接。計(jì)算機(jī)100可以配置為在使用至一個(gè)或多個(gè)計(jì)算機(jī)(例如連接至網(wǎng)絡(luò)接口 196的遠(yuǎn)程計(jì)算機(jī))的邏輯連接的聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是個(gè)人計(jì)算機(jī)(PC)、服務(wù)器、 路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),并且可以包括上述相對(duì)于計(jì)算機(jī)100所述的元件中的許多或者全部。聯(lián)網(wǎng)環(huán)境可以包括辦公室、企業(yè)廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、內(nèi)聯(lián)網(wǎng)和互聯(lián)網(wǎng)。在一個(gè)示例中,計(jì)算機(jī)100可以是數(shù)據(jù)從其遷出的源機(jī)器,而遠(yuǎn)程計(jì)算機(jī)可以包括目的地機(jī)器,反之亦然。源和目的地機(jī)器可以不通過(guò)網(wǎng)絡(luò)108或任何其他手段連接,而是數(shù)據(jù)可以經(jīng)由任何能夠由源平臺(tái)寫(xiě)入并由目的地平臺(tái)讀取的介質(zhì)來(lái)遷出。在LAN或WLAN聯(lián)網(wǎng)環(huán)境中, 計(jì)算機(jī)100可以通過(guò)網(wǎng)絡(luò)接口 196或適配器連接至LAN或WAN。在WAN聯(lián)網(wǎng)環(huán)境中,計(jì)算機(jī) 100可以包括調(diào)制解調(diào)器或用于通過(guò)例如互聯(lián)網(wǎng)或網(wǎng)絡(luò)108等WAN建立通信的其他手段。 可以使用在計(jì)算機(jī)之間建立通信鏈接的其他手段。計(jì)算機(jī)外圍設(shè)備可以包括通過(guò)系統(tǒng)總線耦接至計(jì)算機(jī)100的處理器110和存儲(chǔ)器 120的任何設(shè)備。計(jì)算機(jī)外圍設(shè)備可以包括與輸出外圍接口連接的任何設(shè)備,包括顯示器 202、打印機(jī)、揚(yáng)聲器、驅(qū)動(dòng)130、用戶輸入設(shè)備190以及網(wǎng)絡(luò)接口 196,用戶輸入設(shè)備190例如包括鍵盤(pán)、鼠標(biāo)和麥克風(fēng)。計(jì)算機(jī)外圍設(shè)備的部件可以包括計(jì)算機(jī)外圍設(shè)備內(nèi)的任何設(shè)備,該設(shè)備可以使用電能并且可以是任何設(shè)備,例如揚(yáng)聲器、照明元件(例如發(fā)光二極管或用于為顯示器提供照明的背光)、顯示元件(例如IXD、LED、OLED、CRT或等離子體顯示器)、 或者半導(dǎo)體芯片(例如中央處理器(CPU)、圖像處理單元(GPU)、存儲(chǔ)器)。圖2示出了根據(jù)本公開(kāi)至少一些實(shí)施例的由操作系統(tǒng)執(zhí)行應(yīng)用程序。如圖2所示, 操作系統(tǒng)140可以執(zhí)行來(lái)自驅(qū)動(dòng)130的應(yīng)用程序150。操作系統(tǒng)140和/或應(yīng)用程序150 可以包括用于使計(jì)算機(jī)100執(zhí)行圖4所指定的功能和/或操作的程序指令。應(yīng)用程序150 可以是可由多處理器111中的操作系統(tǒng)140執(zhí)行的任何應(yīng)用、程序、程序部分或線程。應(yīng)用程序150可以使用存儲(chǔ)器控制器210將數(shù)據(jù)230加載到存儲(chǔ)器120中以及從存儲(chǔ)器120存取數(shù)據(jù)。應(yīng)用程序150可以運(yùn)行多個(gè)子應(yīng)用調(diào)用的線程220,以完成任務(wù),例如使用一個(gè)或多個(gè)請(qǐng)求226向存儲(chǔ)器120的存儲(chǔ)器組122加載數(shù)據(jù)230和從存儲(chǔ)器120的存儲(chǔ)器組122 存取數(shù)據(jù)230。線程220可以由應(yīng)用程序150執(zhí)行。應(yīng)用程序150可以按照應(yīng)用程序的需求將任務(wù)的執(zhí)行劃分成多個(gè)線程220來(lái)完成該任務(wù)。例如,如果應(yīng)用程序150是針對(duì)具有多頁(yè)的文檔的word處理程序,并且應(yīng)用程序150配置為完成每頁(yè)文檔的拼寫(xiě)檢查任務(wù),則應(yīng)用程序150可以將文檔拼寫(xiě)檢查任務(wù)劃分成多個(gè)線程220,使得每個(gè)線程220可以對(duì)文檔的一部分進(jìn)行拼寫(xiě)檢查??梢詫⒚總€(gè)線程220發(fā)送給多處理器111以便執(zhí)行。當(dāng)在多處理器111內(nèi)執(zhí)行時(shí),每個(gè)線程220可以產(chǎn)生對(duì)存儲(chǔ)器120內(nèi)數(shù)據(jù)230的請(qǐng)求226??梢詫⒄?qǐng)求 226發(fā)送至存儲(chǔ)器控制器210,存儲(chǔ)器控制器210可以對(duì)請(qǐng)求2 進(jìn)行組織,使得多處理器 111可以配置為高效操作。在一些實(shí)施例中,如圖2所示,多處理器111可以包括可以同時(shí)執(zhí)行多于一個(gè)線程 220的處理器。多處理器111可以包括稱作內(nèi)核412和512的多個(gè)處理器,或者包括稱為多線程處理器的可以同時(shí)運(yùn)行多個(gè)線程220的單個(gè)處理器(只有412和512之一)。圖2示出了包括兩個(gè)內(nèi)核412和512的示例多處理器111,但是不限于任何具體的內(nèi)核數(shù)目。術(shù)語(yǔ) “內(nèi)核”可以用在本文中指可以處理單個(gè)線程的任何裝置,并且可以指可以處理單個(gè)線程的處理器或處理器內(nèi)的一部分。多線程處理器可以指具有多個(gè)內(nèi)核的處理器。包括多個(gè)處理器的計(jì)算機(jī)100在本文中可以稱為具有多個(gè)內(nèi)核的計(jì)算機(jī)100。
圖3示出了根據(jù)本公開(kāi)至少一些實(shí)施例的將應(yīng)用程序劃分成線程的示意表示,其中線程可以發(fā)布發(fā)送給存儲(chǔ)器控制器的請(qǐng)求。如圖3所示,應(yīng)用150可以劃分成多個(gè)線程 220a-220n,其中η可以表示線程220的數(shù)目,并且每個(gè)線程可以執(zhí)行應(yīng)用150的任務(wù),并可以在例如圖2的多處理器111上執(zhí)行每個(gè)線程。多處理器可以配置為從應(yīng)用程序150單獨(dú)地或同時(shí)接收并執(zhí)行多個(gè)線程220a-220n。在多處理器上執(zhí)行的每個(gè)線程220可以與每個(gè)其他線程220相獨(dú)立地執(zhí)行,并且可以發(fā)布對(duì)于存儲(chǔ)器120中存儲(chǔ)的數(shù)據(jù)230的多個(gè)請(qǐng)求 220al-220n。,其中第一索引(a... η)表示與請(qǐng)求2 關(guān)聯(lián)的線程220,第二索引(1. . . ο)表示與具體線程220關(guān)聯(lián)的請(qǐng)求226的數(shù)目。每個(gè)線程220可以發(fā)布對(duì)于存儲(chǔ)器120中存儲(chǔ)的數(shù)據(jù)230的請(qǐng)求226,在一個(gè)示例中,請(qǐng)求2 是對(duì)于存儲(chǔ)器120內(nèi)存儲(chǔ)器組122^12 中存儲(chǔ)的數(shù)據(jù)230的請(qǐng)求,其中索引(a,b...m)可以表示存儲(chǔ)器組122的數(shù)目。存儲(chǔ)器120可以包括多個(gè)存儲(chǔ)器組12 到 122m,多個(gè)存儲(chǔ)器組122a到12 可以如果多個(gè)未決存儲(chǔ)器請(qǐng)求2 尋求來(lái)自不同存儲(chǔ)器組的數(shù)據(jù)230,則允許這些請(qǐng)求2 并行進(jìn)行。由此,在接收到對(duì)于數(shù)據(jù)230的請(qǐng)求2 時(shí),存儲(chǔ)器控制器210可以并發(fā)地訪問(wèn)第一存儲(chǔ)器組122a和第二存儲(chǔ)器12\。每個(gè)存儲(chǔ)器組122可以是二維陣列,包括列Cl到Ci以及行Rl到Rj,其中索引 (1. . . i)可以表示列數(shù),索引(1. .. j)可以表示行數(shù)。行可以在連續(xù)存儲(chǔ)位置中存儲(chǔ)數(shù)據(jù), 并且大小可以例如是近似1-2千字節(jié)(KB)??梢詮淖疃喟恍械男芯彌_器&訪問(wèn)存儲(chǔ)器組122中的數(shù)據(jù)230。在一個(gè)示例中,每個(gè)存儲(chǔ)器組122可以包含一個(gè)行緩沖器&。對(duì)每個(gè)數(shù)據(jù)230請(qǐng)求2 進(jìn)行服務(wù)所需的時(shí)間可以依據(jù)每個(gè)行緩沖器&的狀態(tài),并且可以落入三個(gè)類別之一。第一類別可以是行命中,其中請(qǐng)求2 針對(duì)每個(gè)行緩沖器&中當(dāng)前開(kāi)啟的行,這允許存儲(chǔ)器控制器210只發(fā)布至相應(yīng)存儲(chǔ)器組122的讀或?qū)懨睿斐山M訪問(wèn)等待時(shí)間ta。第二類別可以是行關(guān)閉,其中行緩沖器&可能沒(méi)有開(kāi)啟的行,從而存儲(chǔ)器控制器 210需要首先發(fā)布開(kāi)啟所需行的激活命令,然后發(fā)布讀/寫(xiě)命令,造成總等待時(shí)間tKm+ta, tKD是針對(duì)激活命令的等待時(shí)間,是針對(duì)讀/寫(xiě)命令的等待時(shí)間。第三類別可以是行沖突,其中請(qǐng)求2 針對(duì)與相應(yīng)行緩沖器&中的當(dāng)前行不同的行,從而存儲(chǔ)器控制器210需要首先發(fā)布預(yù)充電命令并開(kāi)啟所需行(通過(guò)激活該行),并發(fā)布針對(duì)所需行中數(shù)據(jù)的讀/寫(xiě)命令。這些訪問(wèn)導(dǎo)致最大的總等待時(shí)間、^、^+{…{砠是針對(duì)行預(yù)充電(以關(guān)閉該行)的等待時(shí)間,tECD是針對(duì)激活命令的等待時(shí)間,tCL是針對(duì)讀/寫(xiě)命令的等待時(shí)間。存儲(chǔ)器控制器210可以布置為與存儲(chǔ)器120和多處理器通信,并且可以位于沿系統(tǒng)的任何位置,包括在多處理器內(nèi)。存儲(chǔ)器控制器210可以包括存儲(chǔ)器請(qǐng)求緩沖器211,存儲(chǔ)器請(qǐng)求緩沖器211可以布置為在請(qǐng)求2 等待被服務(wù)時(shí)緩沖請(qǐng)求2 和數(shù)據(jù)230。存儲(chǔ)器控制器210可以包括請(qǐng)求調(diào)度器212,請(qǐng)求調(diào)度器212可以配置為選擇要被服務(wù)的下一請(qǐng)求226。在一些實(shí)施例中,請(qǐng)求調(diào)度器212可以具有兩級(jí)。當(dāng)選擇要被服務(wù)的下一請(qǐng)求226 時(shí),請(qǐng)求調(diào)度器212可以配置為考慮存儲(chǔ)器組122a-12\的狀態(tài)、將存儲(chǔ)器控制器210與每個(gè)存儲(chǔ)器組122連接的存儲(chǔ)器總線214a-214m的狀態(tài)、以及請(qǐng)求2 的狀態(tài)。如果針對(duì)請(qǐng)求 226的存儲(chǔ)器命令的調(diào)度不引起任何資源(例如存儲(chǔ)器組122^12 和地址/數(shù)據(jù)/系統(tǒng)總線)沖突,并且不違反任何存儲(chǔ)器時(shí)序制約,則請(qǐng)求調(diào)度器212可以調(diào)度該針對(duì)請(qǐng)求226 的存儲(chǔ)器命令。可以認(rèn)為不引起任何沖突的存儲(chǔ)器命令準(zhǔn)備好了。
存儲(chǔ)器控制器210包括請(qǐng)求調(diào)度器212,請(qǐng)求調(diào)度器212包括請(qǐng)求調(diào)度算法,請(qǐng)求調(diào)度算法具有請(qǐng)求分批算法、以及請(qǐng)求批內(nèi)調(diào)度算法或請(qǐng)求并行性意識(shí)批內(nèi)調(diào)度算法。備選地,請(qǐng)求調(diào)度算法可以采用請(qǐng)求批內(nèi)調(diào)度算法或請(qǐng)求并行性意識(shí)批內(nèi)調(diào)度算法兩者。圖3A包括操作系統(tǒng)140的詳細(xì)視圖,示出了線程調(diào)度算法300的各部分,包括線程分批算法302、以及線程批內(nèi)調(diào)度算法或線程并行性意識(shí)批內(nèi)調(diào)度算法350。應(yīng)用程序可以包含線程調(diào)度算法。備選地,線程調(diào)度算法可以采用線程批內(nèi)調(diào)度算法和線程并行性意識(shí)批內(nèi)調(diào)度算法兩者。再次參照?qǐng)D3,為提高來(lái)自線程220a_220n的請(qǐng)求226al_2^n。的調(diào)度效率,存儲(chǔ)器控制器210和特別是請(qǐng)求調(diào)度器212可以適配為使用請(qǐng)求調(diào)度算法,這可以考慮到線程組內(nèi)并行性,并且可以向每個(gè)線程220a-220n提供服務(wù)質(zhì)量OioS)。服務(wù)質(zhì)量可以看作是向不同220a-220n提供不同優(yōu)先級(jí)的能力,和/或在執(zhí)行線程220a-220n時(shí)提供基本等級(jí)性能的能力。請(qǐng)求調(diào)度算法可以設(shè)計(jì)為為公平性、QoS和高CMP系統(tǒng)吞吐量提供可配置的基礎(chǔ)。請(qǐng)求分批算法可以適配為將多個(gè)未決存儲(chǔ)器請(qǐng)求226al-2^5n。分組成多個(gè)批。請(qǐng)求調(diào)度算法可以適配為確保屬于當(dāng)前批的所有請(qǐng)求226al-2^5n。在后續(xù)批形成之前受到服務(wù)。請(qǐng)求分批算法可以配置為同時(shí)形成多個(gè)批,其中可以使用本文描述的特定準(zhǔn)則來(lái)形成每個(gè)批。請(qǐng)求分批算法可以布置為將存儲(chǔ)器請(qǐng)求緩沖器中的未決請(qǐng)求分組成請(qǐng)求集合,稱為請(qǐng)求批。存儲(chǔ)器調(diào)度器可以通過(guò)使屬于當(dāng)前請(qǐng)求批的請(qǐng)求比其他請(qǐng)求優(yōu)先,來(lái)避免在請(qǐng)求批之間進(jìn)行請(qǐng)求重排序。一旦請(qǐng)求批中的所有請(qǐng)求都被服務(wù)了,例如,當(dāng)請(qǐng)求批完成時(shí), 可以對(duì)下一請(qǐng)求批進(jìn)行服務(wù),該下一請(qǐng)求批可以包括存儲(chǔ)器請(qǐng)求緩沖器中未包括在上一請(qǐng)求批中的未決請(qǐng)求。同時(shí)形成多個(gè)請(qǐng)求批可以允許對(duì)請(qǐng)求批內(nèi)的請(qǐng)求進(jìn)行重排序。請(qǐng)求分批算法可以如下工作。存儲(chǔ)器請(qǐng)求緩沖器中的每個(gè)請(qǐng)求可以具有關(guān)聯(lián)比特,該比特指示該請(qǐng)求屬于當(dāng)前請(qǐng)求批中的哪個(gè)請(qǐng)求批。例如,如果請(qǐng)求屬于第一請(qǐng)求批, 則關(guān)聯(lián)比特可以設(shè)定為指示該請(qǐng)求屬于第一請(qǐng)求批,并且可以認(rèn)為該請(qǐng)求是被標(biāo)記的??梢曰诒疚拿枋龅奶囟?zhǔn)則,形成多個(gè)請(qǐng)求批,其中將每個(gè)請(qǐng)求標(biāo)記以指示該請(qǐng)求要放置在多個(gè)請(qǐng)求批的哪一個(gè)請(qǐng)求批中,或者是多個(gè)請(qǐng)求批中哪一個(gè)請(qǐng)求批的一部分。當(dāng)存儲(chǔ)器請(qǐng)求緩沖器中沒(méi)有未標(biāo)記的請(qǐng)求留下時(shí),例如當(dāng)已經(jīng)完全服務(wù)了來(lái)自當(dāng)前請(qǐng)求批的所有請(qǐng)求時(shí),可以形成新的請(qǐng)求批。在一些實(shí)施例中,當(dāng)形成請(qǐng)求批時(shí),請(qǐng)求分批算法可以針對(duì)每個(gè)線程,對(duì)每個(gè)存儲(chǔ)器組的未決請(qǐng)求進(jìn)行標(biāo)記,一直標(biāo)記到設(shè)定數(shù)目,即標(biāo)記上限;這些請(qǐng)求可以形成請(qǐng)求批。 可以利用標(biāo)記上限作為系統(tǒng)參數(shù),該系統(tǒng)參數(shù)可以限制能夠成為請(qǐng)求批的一部分的由線程針對(duì)某一組發(fā)布的請(qǐng)求的數(shù)目。例如,如果標(biāo)記上限是5,并且線程具有針對(duì)存儲(chǔ)器組的7 個(gè)未決請(qǐng)求,則請(qǐng)求分批算法可以標(biāo)記5個(gè)最早的請(qǐng)求(或者,如果存在少于5個(gè)請(qǐng)求,則標(biāo)記更少的請(qǐng)求)。示例包括2、3、5、7、10、20、50或更大的標(biāo)記上限。此外,對(duì)于不同類型的批,如本文所述,標(biāo)記上限可以不同。在一些示例中,當(dāng)未設(shè)定標(biāo)記上限時(shí),可以在形成一個(gè)或多個(gè)批時(shí)標(biāo)記所有的未決請(qǐng)求。請(qǐng)求分批算法可以布置為在給定存儲(chǔ)器組中使標(biāo)記的請(qǐng)求(成批的請(qǐng)求)比未標(biāo)記的請(qǐng)求優(yōu)先。如果沒(méi)有針對(duì)給定存儲(chǔ)器組的標(biāo)記的請(qǐng)求,則可以針對(duì)該組調(diào)度未決的未標(biāo)記請(qǐng)求??梢圆捎萌魏维F(xiàn)有或新的存儲(chǔ)器調(diào)度算法,例如FR-FCFS,在兩個(gè)標(biāo)記的或兩個(gè)未標(biāo)記的請(qǐng)求中進(jìn)行選擇。
可以發(fā)起用于形成一個(gè)或多個(gè)線程請(qǐng)求批的請(qǐng)求調(diào)度方法,其中每一請(qǐng)求批包括一個(gè)或多個(gè)請(qǐng)求。在發(fā)起該方法之后,可以將線程隔離成(標(biāo)識(shí)為)線程類型,例如第一線程類型和第二線程類型,或者第一、第二和第三線程類型??梢孕纬梢粋€(gè)或多個(gè)請(qǐng)求批, 每一請(qǐng)求批可以包含從類似或相同線程類型的線程發(fā)布的請(qǐng)求。在形成一個(gè)或多個(gè)請(qǐng)求批 (每一請(qǐng)求批可以包含一個(gè)或多個(gè)請(qǐng)求)之后,可以由存儲(chǔ)器控制器執(zhí)行這一個(gè)或多個(gè)請(qǐng)求批。可以一次執(zhí)行這一個(gè)或多個(gè)請(qǐng)求批中的一個(gè),或者如果計(jì)算機(jī)具有能力,可以一次執(zhí)行多個(gè)??梢曰诙鄠€(gè)不同準(zhǔn)則中的任意準(zhǔn)則,進(jìn)行線程隔離(標(biāo)識(shí))以及對(duì)來(lái)自不同線程類型的請(qǐng)求進(jìn)行分批。例如,可以將線程隔離成(1)基于線程設(shè)計(jì)用于并行處理器的良好程序,分為好設(shè)計(jì)線程和差設(shè)計(jì)線程(2)基于線程與其他線程一起工作的效率,分為合作線程和非合作線程;(3)基于程序所發(fā)源的應(yīng)用程序,分為第一應(yīng)用、第二應(yīng)用和第三應(yīng)用線程;(4)基于線程發(fā)出的請(qǐng)求的相對(duì)個(gè)數(shù),分為大請(qǐng)求線程、可選的中等請(qǐng)求線程、以及小請(qǐng)求線程,例如大請(qǐng)求線程可以發(fā)出平均個(gè)數(shù)或更多的請(qǐng)求,小請(qǐng)求線程可以發(fā)出個(gè)數(shù)少于平均個(gè)數(shù)的請(qǐng)求。許多其他變體也是可能的。因此,依據(jù)所選的準(zhǔn)則,可以有第一線程類型、第二線程類型、可選的第三線程類型、可選的第四線程類型等。下面是使用可以產(chǎn)生兩個(gè)線程類型的準(zhǔn)則的示例;如上所述,依據(jù)所選的準(zhǔn)則,可以存在多于兩個(gè)的線程類型??梢詫⒕€程隔離成第一線程類型和第二線程類型。然后可以將每種線程類型發(fā)布的請(qǐng)求(例如從第一線程類型發(fā)布的第一請(qǐng)求,以及從第二線程類型發(fā)布的第二請(qǐng)求)形成一個(gè)或多個(gè)線程請(qǐng)求批。每個(gè)請(qǐng)求批可以包括一種線程類型的請(qǐng)求,例如,第一請(qǐng)求批可以只包括第一請(qǐng)求,最末批可以包括第二請(qǐng)求。在另一示例中,每個(gè)請(qǐng)求批可以主要包含來(lái)自第一線程類型的第一請(qǐng)求,或者主要包含來(lái)自第二線程類型的第二請(qǐng)求。以這種方式,請(qǐng)求批可以形成為對(duì)于來(lái)自每個(gè)線程類型的請(qǐng)求是同質(zhì)的或主要是同質(zhì)的??梢砸淮螆?zhí)行這一個(gè)或多個(gè)請(qǐng)求批中的一個(gè),或者如果計(jì)算機(jī)具有能力,可以一次執(zhí)行多個(gè)。本文所用的術(shù)語(yǔ)“主要”可以是多于大致50%、多于大致80%、多于大致95%或者多于大致99%。一旦形成了一個(gè)或多個(gè)請(qǐng)求批,請(qǐng)求調(diào)度算法可以布置為采用請(qǐng)求批內(nèi)調(diào)度算法或請(qǐng)求并行性意識(shí)批內(nèi)調(diào)度算法,對(duì)請(qǐng)求批內(nèi)的請(qǐng)求服務(wù)進(jìn)行調(diào)度??梢允褂萌魏握?qǐng)求批內(nèi)調(diào)度算法,例如FR-FCFS。在請(qǐng)求批內(nèi),請(qǐng)求并行性意識(shí)批內(nèi)調(diào)度算法可以布置為首先優(yōu)先考慮行命中請(qǐng)求。其次,相比于來(lái)自較低等級(jí)的線程的請(qǐng)求,可以優(yōu)先考慮來(lái)自較高等級(jí)的線程的請(qǐng)求。 最后,所有其他請(qǐng)求都是平等的,可以相比于較新的請(qǐng)求,優(yōu)先考慮較早的請(qǐng)求。請(qǐng)求并行性意識(shí)批內(nèi)調(diào)度算法可以布置為在請(qǐng)求批內(nèi)使用基于等級(jí)的線程優(yōu)先化方案。當(dāng)形成新的請(qǐng)求批時(shí),存儲(chǔ)器調(diào)度器可以布置為在具有該新請(qǐng)求批中的請(qǐng)求的所有線程之間計(jì)算等級(jí)排列。當(dāng)處理該新請(qǐng)求批時(shí),所計(jì)算的等級(jí)排列可以保持相同,相比于來(lái)自等級(jí)較低線程的請(qǐng)求,可以優(yōu)先考慮來(lái)自等級(jí)較高線程的請(qǐng)求。基于等級(jí)的調(diào)度的效果在于,可以在所有存儲(chǔ)器組中按照相同次序設(shè)置不同線程的優(yōu)先級(jí),從而所有組并行地服務(wù)每個(gè)線程的請(qǐng)求的可能性更大。雖然可以使用任何基于等級(jí)排列的方案,但是具體的等級(jí)排列過(guò)程可以對(duì)CMP吞吐量和公平性具有顯著影響。好的等級(jí)排列方案可以有效地在存儲(chǔ)器密集和非密集線程(以及具有較高組并行性的線程)之間進(jìn)行區(qū)分。在一些實(shí)施方式中,可以采用符合最短工作優(yōu)先原則的等級(jí)排列方案可以將非密集線程的等級(jí)排列得比密集線程的等級(jí)高。再次參照?qǐng)D3和圖3A,為提高來(lái)自應(yīng)用程序150或操作系統(tǒng)140的線程220a_220n 的調(diào)度效率,應(yīng)用程序150或操作系統(tǒng)140可以布置為線程分組成線程批。線程分批算法 302可以布置為將多個(gè)未決線程220a-220n分組成線程批。線程分批算法302還可以布置為確保屬于當(dāng)前線程批的線程220a-220n在后續(xù)線程批形成之前受到服務(wù)。線程分批算法 302可以布置為同時(shí)形成多個(gè)線程批,其中可以使用本文描述的特定準(zhǔn)則來(lái)形成每個(gè)線程批。線程分批算法可以布置為將未決線程分組成線程集合,稱為批。應(yīng)用程序或操作系統(tǒng)通過(guò)使屬于當(dāng)前線程批的線程比其他線程優(yōu)先,來(lái)避免在線程批之間進(jìn)行線程重排序。一旦線程批中的線程被服務(wù)了,例如,當(dāng)線程批完成時(shí),可以對(duì)下一線程批進(jìn)行服務(wù),該下一線程批可以包括未包括在上一線程批中的未決線程。同時(shí)形成多個(gè)線程批可以允許對(duì)線程批內(nèi)的線程進(jìn)行重排序。示例線程分批算法可以如下工作。每個(gè)線程可以具有關(guān)聯(lián)比特,該比特指示該線程屬于當(dāng)前線程批中的哪個(gè)線程批。例如,如果線程屬于第一線程批,則關(guān)聯(lián)比特可以設(shè)定為指示該線程屬于第一線程批,并且可以認(rèn)為該線程是被標(biāo)記的??梢曰诒疚拿枋龅奶囟?zhǔn)則,形成多個(gè)線程批,其中將每個(gè)線程標(biāo)記以指示該線程要放置在多個(gè)線程批的哪一個(gè)線程批中,或者是多個(gè)線程批中哪一個(gè)線程批的一部分。當(dāng)沒(méi)有未標(biāo)記的線程留下時(shí),例如當(dāng)已經(jīng)完全服務(wù)了來(lái)自當(dāng)前線程批的所有線程時(shí),可以形成新的線程批。在一些實(shí)施例中,當(dāng)形成線程批時(shí),線程分批算法可以針對(duì)每個(gè)應(yīng)用程序,對(duì)每個(gè)內(nèi)核的未決線程進(jìn)行標(biāo)記,一直標(biāo)記到設(shè)定數(shù)目,即標(biāo)記上限;這些線程可以形成線程批。 可以利用標(biāo)記上限作為系統(tǒng)參數(shù),該系統(tǒng)參數(shù)可以限制能夠成為線程批的一部分的由應(yīng)用程序針對(duì)某一內(nèi)核發(fā)布的線程的數(shù)目。例如,如果標(biāo)記上限是5,并且應(yīng)用程序具有7個(gè)未決線程,則線程分批算法可以僅標(biāo)記5個(gè)最早的線程(或者,如果存在少于5個(gè)線程,則標(biāo)記更少的線程)。示例包括2、3、5、7、10、20、50或更大的標(biāo)記上限。此外,對(duì)于不同類型的線程批,如本文所述,標(biāo)記上限可以不同。在一些示例中,如果未設(shè)定標(biāo)記上限,可以在形成一個(gè)或多個(gè)線程批時(shí)標(biāo)記未決線程。線程分批算法可以布置為在使標(biāo)記的線程(成批的線程)比未標(biāo)記的線程優(yōu)先。 如果沒(méi)有標(biāo)記的線程,則可以調(diào)度未決的未標(biāo)記線程??梢圆捎萌魏维F(xiàn)有或新的線程調(diào)度算法,在兩個(gè)標(biāo)記的或兩個(gè)未標(biāo)記的線程中進(jìn)行選擇。圖4是示出了根據(jù)本公開(kāi)至少一些實(shí)施例布置的方法、設(shè)備(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖。將理解,可以通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)圖4所示流程圖的每個(gè)塊、以及圖4所示流程圖的塊的組合。可以將這些計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、處理器或者其他可編程數(shù)據(jù)處理設(shè)備,以產(chǎn)生機(jī)器,使得在計(jì)算機(jī)、處理器或其他可編程數(shù)據(jù)處理設(shè)備上運(yùn)行的指令創(chuàng)建用于實(shí)現(xiàn)流程圖塊或多塊中指定的功能的裝置。這些計(jì)算機(jī)程序指令也可以存儲(chǔ)在存儲(chǔ)設(shè)備中,存儲(chǔ)設(shè)備可以引導(dǎo)計(jì)算機(jī)、處理器或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作或操作,使得存儲(chǔ)設(shè)備中存儲(chǔ)的指令產(chǎn)生制造品,該制造品包括用于實(shí)現(xiàn)流程圖塊或多塊中指定的功能或操作的指令裝置。也可以將這些計(jì)算機(jī)程序指令加載到計(jì)算機(jī)、處理器或者其他可編程數(shù)據(jù)處理設(shè)備,以引起要在計(jì)算機(jī)、處理器或者其他可編程數(shù)據(jù)處理設(shè)備上執(zhí)行的一系列操作步驟,從而產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,使得在計(jì)算機(jī)、處理器或者其他可編程數(shù)據(jù)處理設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)流程圖塊或多塊中指定的功能和/ 或操作的步驟。相應(yīng)地,圖4所示流程圖的塊支持用于執(zhí)行指定功能的裝置的組合、或者用于執(zhí)行指定功能的步驟與用于執(zhí)行指定功能和/或操作的程序指令的組合。將理解,可以通過(guò)專用的基于硬件的計(jì)算機(jī)系統(tǒng)或者專用硬件和計(jì)算機(jī)指令的組合,來(lái)實(shí)現(xiàn)圖4所示流程圖的每個(gè)塊或者圖4所示流程圖的塊的組合,其中專用的基于硬件的計(jì)算機(jī)系統(tǒng)執(zhí)行指定功能/操作/動(dòng)作或步驟。這種計(jì)算機(jī)指令可以固定在有形介質(zhì)上,例如在計(jì)算機(jī)可讀介質(zhì)(例如,軟盤(pán)、 ⑶-R0M、R0M或硬盤(pán))上,或者是經(jīng)由調(diào)制解調(diào)器或其他接口設(shè)備(例如通過(guò)介質(zhì)連接至網(wǎng)絡(luò)的通信適配器)可傳輸至計(jì)算機(jī)系統(tǒng)的。介質(zhì)可以是有形介質(zhì)(例如光或模擬通信線路),或者以無(wú)線技術(shù)(例如,微波、紅外線或其他傳輸技術(shù))實(shí)現(xiàn)的介質(zhì)。計(jì)算機(jī)指令序列具體體現(xiàn)了在前相對(duì)于系統(tǒng)描述的全部功能性或其中一部分。本領(lǐng)域技術(shù)人員應(yīng)該理解,這種計(jì)算機(jī)程序可以多種編程語(yǔ)言來(lái)編寫(xiě),以與許多計(jì)算機(jī)架構(gòu)或操作系統(tǒng)一起使用。此外,這種指令可以存儲(chǔ)在任何存儲(chǔ)器設(shè)備中,例如半導(dǎo)體、磁、光或其他存儲(chǔ)器設(shè)備,并且可以使用任何通信技術(shù)來(lái)傳輸,例如光、紅外線、微波或其他傳輸技術(shù)。預(yù)期的是這種計(jì)算機(jī)程序產(chǎn)品可以作為可移除介質(zhì)連同印刷或電子的文檔 (例如,收縮包裝的軟件)一起分發(fā),預(yù)加載到計(jì)算機(jī)系統(tǒng)(例如,系統(tǒng)上ROM或硬盤(pán)),或者通過(guò)網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)或萬(wàn)維網(wǎng))從服務(wù)器或電子公告板分發(fā)。如圖4所示,可以在塊601發(fā)起用于形成一個(gè)或多個(gè)線程批的方法600,每個(gè)線程批包括一個(gè)或多個(gè)線程。在發(fā)起方法600之后,在塊602,可以將線程隔離成(標(biāo)識(shí)為)線程類型,例如第一線程類型和第二線程類型,或者第一、第二和第三線程類型。可以在塊604 形成一個(gè)或多個(gè)線程批,每一線程批可以包含從應(yīng)用程序或操作系統(tǒng)發(fā)布的具有類似或相同線程類型的線程。在形成一個(gè)或多個(gè)線程批(每一線程批可以包含一個(gè)或多個(gè)線程)之后,在塊606,可以由內(nèi)核執(zhí)行這一個(gè)或多個(gè)線程批??梢砸淮螆?zhí)行這一個(gè)或多個(gè)線程批中的一個(gè),或者如果計(jì)算機(jī)具有能力,可以一次執(zhí)行多個(gè)??梢曰诙鄠€(gè)不同準(zhǔn)則中的任意準(zhǔn)則,進(jìn)行線程隔離(標(biāo)識(shí))以及對(duì)不同線程類型的線程進(jìn)行分批。例如,可以將線程隔離成(1)基于線程設(shè)計(jì)用于并行處理器的良好程序,分為好設(shè)計(jì)線程和差設(shè)計(jì)線程(2)基于線程與其他線程一起工作的效率,分為合作線程和非合作線程;(3)基于程序所發(fā)源的應(yīng)用程序,分為第一應(yīng)用、第二應(yīng)用和第三應(yīng)用線程;(4)基于線程發(fā)出的請(qǐng)求的相對(duì)個(gè)數(shù),分為大請(qǐng)求線程、可選的中等請(qǐng)求線程、以及小請(qǐng)求線程,例如大請(qǐng)求線程可以發(fā)出平均個(gè)數(shù)或更多的請(qǐng)求,小請(qǐng)求線程可以發(fā)出個(gè)數(shù)少于平均個(gè)數(shù)的請(qǐng)求。許多其他變體也是可能的。因此,依據(jù)所選的準(zhǔn)則,可以有第一線程類型、第二線程類型、可選的第三線程類型、可選的第四線程類型等。用于將線程分組成批的其他準(zhǔn)則可以包括向每個(gè)線程分配重要度,例如高重要度或低重要度,或者分配重要度值并將具有類似或相同重要度值的線程一起成批。用于將線程分組成批的其他準(zhǔn)則可以包括基于先前執(zhí)行線程時(shí)收集的過(guò)去的兼容性數(shù)據(jù),利用與每個(gè)線程關(guān)聯(lián)的重影頁(yè)面中存儲(chǔ)的數(shù)據(jù),來(lái)進(jìn)行分組;或者該數(shù)據(jù)可以存儲(chǔ)在冷凍干燥的重影頁(yè)面中,該冷凍干燥的重影頁(yè)面作為發(fā)布該線程的應(yīng)用程序的一部分而提供,該冷凍干燥的重影頁(yè)面包含以該應(yīng)用程序提供的線程的兼容性數(shù)據(jù)。許多其他變體也是可能的。因此,依據(jù)所選的準(zhǔn)則,可以有第一線程類型、第二線程類型、可選的第三線程類型、可選的第四線程類型等。圖5示出了根據(jù)本公開(kāi)的至少一些實(shí)施例以線程批布置的線程的示意表示。示出了使用可以產(chǎn)生兩個(gè)線程類型的準(zhǔn)則的示例;如上所述,依據(jù)所選的準(zhǔn)則,可以存在多于兩個(gè)的線程類型。可以將線程220a-220n隔離成第一線程類型250和第二線程類型251。然后可以將每個(gè)應(yīng)用程序或操作系統(tǒng)的線程(例如第一線程類型250的第一線程,以及第二線程類型251的第二線程)形成一個(gè)或多個(gè)線程批332a-332x。每個(gè)線程批可以只包括一種線程類型的線程,如圖所示,例如第一線程批332a可以只包括第一線程類型250的第一線程,最末線程批33 可以只包括第二線程類型251的第二線程。在另一示例中,每個(gè)線程批332a-33&可以主要包含第一線程類型250的第一線程,或者主要包含第二線程類型251 的第二線程。以這種方式,線程批332a-33&可以形成為對(duì)于每個(gè)線程類型的線程而言是同質(zhì)的或主要是同質(zhì)的??梢砸淮螆?zhí)行這一個(gè)或多個(gè)線程批中的一個(gè),或者如果計(jì)算機(jī)具有能力,可以一次執(zhí)行多個(gè)。本文所用的術(shù)語(yǔ)“主要”可以是多于大致50%、多于大致80%、 多于大致95%或者多于大致99%。一旦形成了一個(gè)或多個(gè)線程批,線程調(diào)度算法可以采用線程批內(nèi)調(diào)度算法或線程并行性意識(shí)批內(nèi)調(diào)度算法,對(duì)線程批內(nèi)的線程的服務(wù)進(jìn)行調(diào)度。線程并行性意識(shí)批內(nèi)調(diào)度算法可以在線程批內(nèi)使用基于等級(jí)的線程優(yōu)先化方案。 當(dāng)形成新的線程批時(shí),存儲(chǔ)器調(diào)度器可以布置為在該新批中的所有線程之間計(jì)算等級(jí)排列。當(dāng)處理該新批時(shí),所計(jì)算的等級(jí)排列可以保持相同,相比于等級(jí)較低的線程,可以優(yōu)先考慮等級(jí)較高的線程。雖然可以使用任何基于等級(jí)排列的方案,但是具體的等級(jí)排列過(guò)程可以具有顯著影響。好的等級(jí)排列方案可以有效地在存儲(chǔ)器密集和非密集線程(以及具有較高組并行性的線程)之間進(jìn)行區(qū)分。在一些實(shí)施方式中,可以采用符合最短工作優(yōu)先原則的等級(jí)排列方案可以將執(zhí)行速度快的線程的等級(jí)排列得比執(zhí)行速度慢的線程高。要求保護(hù)的主題內(nèi)容在范圍上不限于本文描述的具體實(shí)施方式
。例如,一些實(shí)施方式可以是硬件形式,例如用于在例如設(shè)備或設(shè)備的組合上操作,而其他實(shí)施方式可以是軟件和/或固件形式。類似地,雖然在這方面要求保護(hù)的主題內(nèi)容在范圍上不受限,但是一些實(shí)施方式可以包括一個(gè)或多個(gè)物品,例如存儲(chǔ)介質(zhì)或存儲(chǔ)媒介。存儲(chǔ)介質(zhì)例如CD-ROM、計(jì)算機(jī)盤(pán)、閃速存儲(chǔ)器等,其上可以存儲(chǔ)有指令,當(dāng)由計(jì)算機(jī)系統(tǒng)、計(jì)算平臺(tái)或其他系統(tǒng)之類的系統(tǒng)執(zhí)行時(shí),可以使處理器根據(jù)要求保護(hù)的主題內(nèi)容來(lái)執(zhí)行,例如上述實(shí)施方式之一。一個(gè)可能方式是計(jì)算平臺(tái)可以包括一個(gè)或多個(gè)處理單元或處理器、一個(gè)或多個(gè)輸入/輸出設(shè)備(例如顯示器、鍵盤(pán)和/或鼠標(biāo))、以及一個(gè)或多個(gè)存儲(chǔ)器(例如靜態(tài)隨機(jī)存取存儲(chǔ)器、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器、閃速存儲(chǔ)器、和/或硬驅(qū))。說(shuō)明書(shū)所述的“實(shí)施方式”、“ 一個(gè)實(shí)施方式”、“ 一些實(shí)施方式”或者“其他實(shí)施方式”可以表示與一個(gè)或多個(gè)實(shí)施方式相結(jié)合描述的具體特征、結(jié)構(gòu)或特點(diǎn)可以包括在至少一些實(shí)施方式中,但是不一定在所有實(shí)施方式中。在以上描述中出現(xiàn)的多個(gè)“實(shí)施方式”、 “一個(gè)實(shí)施方式”或“一些實(shí)施方式”不一定全部是指相同的實(shí)施方式。此外,當(dāng)本文或所附權(quán)利要求中使用例如“耦接”或“響應(yīng)”或“響應(yīng)于”或“與...通信”等術(shù)語(yǔ)或短語(yǔ)時(shí),這些術(shù)語(yǔ)應(yīng)該被廣義地解釋。例如,適合于短語(yǔ)所用的上下文,短語(yǔ)“耦接至”可以指通信性地、電和/或操作性地耦合。在以上描述中,描述了要求保護(hù)的主題內(nèi)容的多個(gè)方面。為了說(shuō)明目的,記載了具體數(shù)字、系統(tǒng)和/或配置,以提供對(duì)要求保護(hù)的主題內(nèi)容的透徹理解。然而,對(duì)于受益于本公開(kāi)的本領(lǐng)域技術(shù)人員而言,應(yīng)該顯而易見(jiàn)的是,可以在不具有這些具體細(xì)節(jié)的情況下實(shí)施要求保護(hù)的主題內(nèi)容。在其他情況下,可以省略和/或簡(jiǎn)化已知特征,以避免模糊要求保護(hù)的主題內(nèi)容。雖然本文示出了和/或描述了特定特征,但是許多修改、替換、改變和/或等同物目前或在將來(lái)是本領(lǐng)域技術(shù)人員可設(shè)想到的。因此,要理解,所附權(quán)利要求旨在覆蓋落入要求保護(hù)的主題內(nèi)容的真實(shí)精神內(nèi)的所有這些修改和/或改變。在系統(tǒng)方案的硬件和軟件實(shí)現(xiàn)方式之間存在一些小差別;硬件或軟件的使用一般 (但并非總是,因?yàn)樵谔囟ㄇ闆r下硬件和軟件之間的選擇可能變得很重要)是一種體現(xiàn)成本與效率之間權(quán)衡的設(shè)計(jì)選擇。可以各種手段(例如,硬件、軟件和/或固件)來(lái)實(shí)施這里所描述的工藝和/或系統(tǒng)和/或其他技術(shù),并且優(yōu)選的工藝將隨著所述工藝和/或系統(tǒng)和 /或其他技術(shù)所應(yīng)用的環(huán)境而改變。例如,如果實(shí)現(xiàn)方確定速度和準(zhǔn)確性是最重要的,則實(shí)現(xiàn)方可以選擇主要為硬件和/或固件的手段;如果靈活性是最重要的,則實(shí)現(xiàn)方可以選擇主要是軟件的實(shí)施方式;或者,同樣也是可選地,實(shí)現(xiàn)方可以選擇硬件、軟件和/或固件的特定組合。以上的詳細(xì)描述通過(guò)使用方框圖、流程圖和/或示例,已經(jīng)闡述了設(shè)備和/或工藝的眾多實(shí)施例。在這種方框圖、流程圖和/或示例包含一個(gè)或多個(gè)功能和/或操作的情況下,本領(lǐng)域技術(shù)人員應(yīng)理解,這種方框圖、流程圖或示例中的每一功能和/或操作可以通過(guò)各種硬件、軟件、固件或?qū)嵸|(zhì)上它們的任意組合來(lái)單獨(dú)和/或共同實(shí)現(xiàn)。在一個(gè)實(shí)施例中, 本公開(kāi)所述主題的若干部分可以通過(guò)專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、數(shù)字信號(hào)處理器(DSP)、或其他集成格式來(lái)實(shí)現(xiàn)。然而,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,這里所公開(kāi)的實(shí)施例的一些方面在整體上或部分地可以等同地實(shí)現(xiàn)在集成電路中,實(shí)現(xiàn)為在一臺(tái)或多臺(tái)計(jì)算機(jī)上運(yùn)行的一個(gè)或多個(gè)計(jì)算機(jī)程序(例如,實(shí)現(xiàn)為在一臺(tái)或多臺(tái)計(jì)算機(jī)系統(tǒng)上運(yùn)行的一個(gè)或多個(gè)程序),實(shí)現(xiàn)為在一個(gè)或多個(gè)處理器上運(yùn)行的一個(gè)或多個(gè)程序(例如,實(shí)現(xiàn)為在一個(gè)或多個(gè)微處理器上運(yùn)行的一個(gè)或多個(gè)程序),實(shí)現(xiàn)為固件,或者實(shí)質(zhì)上實(shí)現(xiàn)為上述方式的任意組合,并且本領(lǐng)域技術(shù)人員根據(jù)本公開(kāi),將具備設(shè)計(jì)電路和/或?qū)懭胲浖?或固件代碼的能力。此外,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,本公開(kāi)所述主題的機(jī)制能夠作為多種形式的程序產(chǎn)品進(jìn)行分發(fā),并且無(wú)論實(shí)際用來(lái)執(zhí)行分發(fā)的信號(hào)承載介質(zhì)的具體類型如何,本公開(kāi)所述主題的示例性實(shí)施例均適用。信號(hào)承載介質(zhì)的示例包括但不限于可記錄型介質(zhì),如軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器、緊致盤(pán)(CD)、數(shù)字通用盤(pán)(DVD)、數(shù)字磁帶、計(jì)算機(jī)存儲(chǔ)器等;以及傳輸型介質(zhì),如數(shù)字和/或模擬通信介質(zhì)(例如,光纖光纜、波導(dǎo)、有線通信鏈路、無(wú)線通信鏈路
寸乂 O本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,上文詳細(xì)描述了設(shè)備和/或工藝,此后使用工程實(shí)踐來(lái)將所描述的設(shè)備和/或工藝集成到數(shù)據(jù)處理系統(tǒng)中是本領(lǐng)域的常用手段。也即,這里所述的設(shè)備和/或工藝的至少一部分可以通過(guò)合理數(shù)量的試驗(yàn)而被集成到數(shù)據(jù)處理系統(tǒng)中。 本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,典型的數(shù)據(jù)處理系統(tǒng)一般包括以下各項(xiàng)中的一項(xiàng)或多項(xiàng)系統(tǒng)單元外殼;視頻顯示設(shè)備;存儲(chǔ)器,如易失性和非易失性存儲(chǔ)器;處理器,如微處理器和數(shù)字信號(hào)處理器;計(jì)算實(shí)體,如操作系統(tǒng)、驅(qū)動(dòng)程序、圖形用戶接口、以及應(yīng)用程序;一個(gè)或多個(gè)交互設(shè)備,如觸摸板或屏幕;和/或控制系統(tǒng),包括反饋環(huán)和控制電機(jī)(例如,用于感測(cè)位置和/或速度的反饋;用于移動(dòng)和/或調(diào)節(jié)成分和/或數(shù)量的控制電機(jī))。典型的數(shù)據(jù)處理系統(tǒng)可以利用任意合適的商用部件(如數(shù)據(jù)計(jì)算/通信和/或網(wǎng)絡(luò)計(jì)算/通信系統(tǒng)中常用的部件)予以實(shí)現(xiàn)。本公開(kāi)所述的主題有時(shí)說(shuō)明不同部件包含在不同的其他部件內(nèi)或者不同部件與不同的其他部件相連。應(yīng)當(dāng)理解,這樣描述的架構(gòu)只是示例,事實(shí)上可以實(shí)現(xiàn)許多能夠?qū)崿F(xiàn)相同功能的其他架構(gòu)。在概念上,有效地“關(guān)聯(lián)”用以實(shí)現(xiàn)相同功能的部件的任意設(shè)置,從而實(shí)現(xiàn)所需功能。因此,這里組合實(shí)現(xiàn)具體功能的任意兩個(gè)部件可以被視為彼此“關(guān)聯(lián)”從而實(shí)現(xiàn)所需功能,而無(wú)論架構(gòu)或中間部件如何。同樣,任意兩個(gè)如此關(guān)聯(lián)的部件也可以看作是彼此“可操作地連接”或“可操作地耦合”以實(shí)現(xiàn)所需功能,且能夠如此關(guān)聯(lián)的任意兩個(gè)部件也可以被視為彼此“能可操作地耦合”以實(shí)現(xiàn)所需功能。能可操作地耦合的具體示例包括但不限于物理上可配對(duì)和/或物理上交互的部件,和/或無(wú)線交互和/或可無(wú)線交互的部件,和/或邏輯交互和/或可邏輯交互的部件。至于本文中任何關(guān)于多數(shù)和/或單數(shù)術(shù)語(yǔ)的使用,本領(lǐng)域技術(shù)人員可以從多數(shù)形式轉(zhuǎn)換為單數(shù)形式,和/或從單數(shù)形式轉(zhuǎn)換為多數(shù)形式,以適合具體環(huán)境和/或應(yīng)用。為清楚起見(jiàn),在此明確聲明單數(shù)形式/多數(shù)形式可互換。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,一般而言,所使用的術(shù)語(yǔ),特別是所附權(quán)利要求中(例如,在所附權(quán)利要求的主體部分中)使用的術(shù)語(yǔ),一般地應(yīng)理解為“開(kāi)放”術(shù)語(yǔ)(例如,術(shù)語(yǔ) “包括”應(yīng)解釋為“包括但不限于”,術(shù)語(yǔ)“具有”應(yīng)解釋為“至少具有”等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,如果意在所引入的權(quán)利要求中標(biāo)明具體數(shù)目,則這種意圖將在該權(quán)利要求中明確指出,而在沒(méi)有這種明確標(biāo)明的情況下,則不存在這種意圖。例如,為幫助理解,所附權(quán)利要求可能使用了引導(dǎo)短語(yǔ)“至少一個(gè)”和“一個(gè)或多個(gè)”來(lái)引入權(quán)利要求中的特征。然而, 這種短語(yǔ)的使用不應(yīng)被解釋為暗示著由不定冠詞“一”或“一個(gè)”引入的權(quán)利要求特征將包含該特征的任意特定權(quán)利要求限制為僅包含一個(gè)該特征的實(shí)施例,即便是該權(quán)利要求既包括引導(dǎo)短語(yǔ)“一個(gè)或多個(gè)”或“至少一個(gè)”又包括不定冠詞如“一”或“一個(gè)”(例如,“一”和 /或“一個(gè)”應(yīng)當(dāng)被解釋為意指“至少一個(gè)”或“一個(gè)或多個(gè)”);在使用定冠詞來(lái)引入權(quán)利要求中的特征時(shí),同樣如此。另外,即使明確指出了所引入權(quán)利要求特征的具體數(shù)目,本領(lǐng)域技術(shù)人員應(yīng)認(rèn)識(shí)到,這種列舉應(yīng)解釋為意指至少是所列數(shù)目(例如,不存在其他修飾語(yǔ)的短語(yǔ)“兩個(gè)特征”意指至少兩個(gè)該特征,或者兩個(gè)或更多該特征)。另外,在使用類似于“A、B和C等中至少一個(gè)”這樣的表述的情況下,一般來(lái)說(shuō)應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來(lái)予以解釋(例如,“具有A、B和C中至少一個(gè)的系統(tǒng)”應(yīng)包括但不限于單獨(dú)具有A、單獨(dú)具有B、單獨(dú)具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統(tǒng)等)。在使用類似于“A、B或C等中至少一個(gè)”這樣的表述的情況下,一般來(lái)說(shuō)應(yīng)該按照本領(lǐng)域技術(shù)人員通常理解該表述的含義來(lái)予以解釋(例如,“具有A、B或C中至少一個(gè)的系統(tǒng)”應(yīng)包括但不限于單獨(dú)具有A、單獨(dú)具有B、單獨(dú)具有 C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系統(tǒng)等)。本領(lǐng)域技術(shù)人員還應(yīng)理解,實(shí)質(zhì)上任意表示兩個(gè)或更多可選項(xiàng)目的轉(zhuǎn)折連詞和/或短語(yǔ),無(wú)論是在說(shuō)明書(shū)、權(quán)利要求書(shū)還是附圖中,都應(yīng)被理解為給出了包括這些項(xiàng)目之一、這些項(xiàng)目任一方、或兩個(gè)項(xiàng)目的可能性。例如,短語(yǔ)“A或B”應(yīng)當(dāng)被理解為包括“A”或“B”、或“A和B”的可能性。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng)中執(zhí)行線程的方法,包括 將線程隔離成第一線程類型和第二線程類型;形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。
2.根據(jù)權(quán)利要求1所述的方法,還包括形成第二批,每一個(gè)第二批主要包括第二線程類型的線程;以及執(zhí)行每一個(gè)第二批的線程;其中在執(zhí)行每一個(gè)第二批的線程之前,執(zhí)行每一個(gè)第一批的線程。
3.根據(jù)前述權(quán)利要求之一所述的方法,其中在形成第二批之前,執(zhí)行每一個(gè)第一批的線程。
4.根據(jù)前述權(quán)利要求之一所述的方法,其中執(zhí)行每一個(gè)第一批的線程包括在執(zhí)行任意另一個(gè)第一批的線程之前,執(zhí)行選定的第一批中的所有線程。
5.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括將第一線程類型的線程分組成第一組,將第二線程類型的線程分組成第二組,以及將第三線程類型的線程分組成第三組。
6.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括基于從先前執(zhí)行線程所收集的過(guò)去兼容性數(shù)據(jù),來(lái)進(jìn)行隔離。
7.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括基于線程被設(shè)計(jì)與并行處理器一起使用的良好程度,來(lái)進(jìn)行隔離。
8.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括基于線程與其他線程一起工作的高效程度,來(lái)進(jìn)行隔離。
9.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括基于線程所發(fā)源的應(yīng)用程序, 來(lái)進(jìn)行隔離。
10.根據(jù)前述權(quán)利要求之一所述的方法,其中隔離包括 基于每個(gè)線程發(fā)布的存儲(chǔ)器請(qǐng)求的相對(duì)數(shù)目,來(lái)進(jìn)行隔離。
11.一種計(jì)算機(jī)程序產(chǎn)品,包括在計(jì)算機(jī)可讀介質(zhì)中編碼的軟件,用于在計(jì)算機(jī)系統(tǒng)中執(zhí)行線程,軟件包括指令,當(dāng)被執(zhí)行時(shí)可操作為將線程隔離成第一線程類型和第二線程類型; 形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。
12.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,還包括指令,當(dāng)被執(zhí)行時(shí)可操作為形成第二批,每一個(gè)第二批主要包括第二線程類型的線程;以及執(zhí)行每一個(gè)第二批的線程;其中所述指令執(zhí)行每一個(gè)第一批的線程,然后執(zhí)行每一個(gè)第二批的線程。
13.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,其中所述指令執(zhí)行每一個(gè)第一批的線程,然后形成第二批。
14.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,其中執(zhí)行每一個(gè)第一批的線程的指令包括如下指令執(zhí)行選定的第一批中的所有線程,然后執(zhí)行任意另一個(gè)第一批的線程。
15.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,其中用于隔離的指令包括如下指令將線程分組成三個(gè)組,三個(gè)組分別包括來(lái)自第一線程類型、第二線程類型以及第三線程類型的線程。
16.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,其中用于隔離的指令包括如下指令基于從先前執(zhí)行線程所收集的過(guò)去兼容性數(shù)據(jù),來(lái)進(jìn)行隔離。
17.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)程序產(chǎn)品,其中用于隔離的指令包括如下指令基于線程被設(shè)計(jì)與并行處理器一起使用的良好程度,來(lái)進(jìn)行隔離。
18.一種計(jì)算機(jī)系統(tǒng),包括 多個(gè)內(nèi)核;計(jì)算機(jī)可讀介質(zhì),操作性耦接至所述多個(gè)內(nèi)核,其中計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)可執(zhí)行指令,當(dāng)由計(jì)算機(jī)系統(tǒng)執(zhí)行時(shí),計(jì)算機(jī)可執(zhí)行指令將計(jì)算機(jī)系統(tǒng)配置為 將線程隔離成第一線程類型和第二線程類型; 形成第一批,每一個(gè)第一批主要包括第一線程類型的線程;以及執(zhí)行每一個(gè)第一批的線程。
19.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)系統(tǒng),其中計(jì)算機(jī)系統(tǒng)進(jìn)一步配置為執(zhí)行選定的第一批的所有線程,然后執(zhí)行任意另一個(gè)第一批的線程。
20.根據(jù)前述權(quán)利要求之一所述的計(jì)算機(jī)系統(tǒng),其中計(jì)算機(jī)系統(tǒng)進(jìn)一步配置為基于從先前執(zhí)行線程所收集的過(guò)去兼容性數(shù)據(jù),來(lái)隔離線程。
全文摘要
根據(jù)公開(kāi)的主題,提供了對(duì)計(jì)算機(jī)系統(tǒng)中運(yùn)行的線程進(jìn)行隔離,并根據(jù)該分類來(lái)執(zhí)行線程的方法。
文檔編號(hào)G06F9/46GK102473109SQ201080032472
公開(kāi)日2012年5月23日 申請(qǐng)日期2010年6月25日 優(yōu)先權(quán)日2009年7月23日
發(fā)明者塞達(dá)·奧格倫吉·梅米奇, 格克汗·梅米奇, 比爾·曼焦內(nèi)-史密斯 申請(qǐng)人:英派爾科技開(kāi)發(fā)有限公司