亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于確定處理器核上的工作布置的系統(tǒng)、方法和設(shè)備與流程

文檔序號(hào):11677256閱讀:735來(lái)源:國(guó)知局
用于確定處理器核上的工作布置的系統(tǒng)、方法和設(shè)備與流程

本公開涉及處理器效率并且更具體地涉及確定處理器核上的工作布置。



背景技術(shù):

本文中所提供的背景描述用于總地呈現(xiàn)本公開的上下文的目的。除非在本文中另有指示,本部分中描述的材料不是本申請(qǐng)中的權(quán)利要求的現(xiàn)有技術(shù),并且不因?yàn)榘诒静糠种卸怀姓J(rèn)為現(xiàn)有技術(shù)。

為了管理制造多核處理器期間的制造變化同時(shí)保持質(zhì)量和可靠性,在測(cè)試期間采用保守的保護(hù)帶,并且基于設(shè)備的速度和功率特性對(duì)它們“揀選”或分類。常規(guī)的速度揀選通過(guò)將單獨(dú)的相關(guān)速度和最小操作電壓作為整體分配給處理器來(lái)將多核處理器視為單核設(shè)備。額定的速度和最小電壓通常反映最慢核的速度和具有最差的最小電壓的核的最小電壓。

附圖簡(jiǎn)述

通過(guò)下列具體實(shí)施方式結(jié)合附圖,將容易理解實(shí)施例。為了便于該描述,相同的附圖標(biāo)記指示相同的結(jié)構(gòu)元件。在附圖中,通過(guò)示例而非限制地說(shuō)明實(shí)施例。

圖1示出了根據(jù)各實(shí)施例的配備有用于確定處理器核上的工作布置的技術(shù)的示例系統(tǒng)。

圖2示出了根據(jù)各實(shí)施例的包括用于確定處理器核上的工作布置的驅(qū)動(dòng)程序的圖1的系統(tǒng)的示例。

圖3a示出了根據(jù)各實(shí)施例的可由圖2的應(yīng)用線程跟蹤器執(zhí)行的示例操作。

圖3b示出了可由圖2的監(jiān)視回路執(zhí)行的示例操作。

圖3c示出了根據(jù)各實(shí)施例的可由圖2的關(guān)聯(lián)(affinitization)控制回路執(zhí)行的示例操作。

圖4a-b示出了根據(jù)各實(shí)施例的用于實(shí)現(xiàn)圖1的系統(tǒng)的功率控制單元(pcu)的模塊的偽代碼的示例。

圖5示出了根據(jù)各實(shí)施例的可由圖1的模塊執(zhí)行的示例過(guò)程。

圖6示出了根據(jù)各實(shí)施例的可由圖1的模塊執(zhí)行的另一過(guò)程。

圖7示出了根據(jù)各實(shí)施例的可采用本文中所描述的裝置和/或方法的示例計(jì)算設(shè)備。

具體實(shí)施方式

本文中公開了與包括對(duì)處理器核上的工作布置的確定的計(jì)算相關(guān)聯(lián)的裝置、方法和存儲(chǔ)介質(zhì)。在實(shí)施例中,裝置可包括一個(gè)或多個(gè)用于標(biāo)識(shí)處理器核中的優(yōu)選核的處理器、設(shè)備和/或電路。一個(gè)或多個(gè)處理器、設(shè)備和/或電路可配置為確定是否將線程遷移到或遷移出優(yōu)選核。在一些實(shí)施例中,確定可以是通過(guò)由驅(qū)動(dòng)程序執(zhí)行的執(zhí)行過(guò)程和/或處理器的功率控制單元執(zhí)行的過(guò)程。

在以下詳細(xì)描述中,參考形成本文一部分的附圖,其中相同的標(biāo)記指示全文中相同的部分,并且其中通過(guò)說(shuō)明示出了可以實(shí)現(xiàn)的實(shí)施例。應(yīng)理解,可利用其它實(shí)施例并作出結(jié)構(gòu)或邏輯改變而不背離本公開的范圍。因此,以下詳細(xì)描述不旨在作為限制,并且實(shí)施例的范圍由所附權(quán)利要求及其等效方案來(lái)限定。

所附說(shuō)明書公開了公開的方面。可以設(shè)計(jì)本公開的替代實(shí)施例及其等效物而不背離本公開的精神或范圍。應(yīng)當(dāng)注意,下文公開的相同的元件由附圖中相同的附圖標(biāo)記指示。

可以按在理解要求保護(hù)的主題中最有幫助的方式輪流將各操作描述為多個(gè)分立動(dòng)作或操作。然而,不應(yīng)將描述的順序解釋為意味著這些操作必然取決于順序。具體而言,可以不按照呈現(xiàn)的順序執(zhí)行這些操作??梢砸圆煌诿枋龅膶?shí)施例的順序執(zhí)行描述的操作。在附加的實(shí)施例中,可以執(zhí)行各種附加操作和/或可以省略描述的操作。

對(duì)于本公開的目的,短語(yǔ)“a和/或b”意思是(a)、(b)或(a和b)。對(duì)于本公開的目的,短語(yǔ)“a、b和/或c”意思是(a)、(b)、(c)、(a和b)、(a和c)、(b和c)或(a、b和c)。

說(shuō)明書可使用短語(yǔ)“在一個(gè)實(shí)施例中”或“在多個(gè)實(shí)施例中”,其每一個(gè)可指代相同或不同實(shí)施例中的一個(gè)或多個(gè)。此外,相對(duì)于本公開的實(shí)施例使用的術(shù)語(yǔ)“包含”、“包括”、“具有”等同義。

如本文中所使用的,術(shù)語(yǔ)“電路”可指代一部分或包括專用集成電路(asic)、電子電路、執(zhí)行一個(gè)或多個(gè)軟件或固件程序的處理器(共享的、專用的、或組)和/或存儲(chǔ)器(共享的、專用的、或組)、組合邏輯電路和/或提供所描述的功能的其他合適的部件。

可以將處理器核(下文中也可簡(jiǎn)單地稱為核)暴露至操作系統(tǒng),通常經(jīng)由固件接口(例如,高級(jí)配置和電源接口(acpi))。根據(jù)操作系統(tǒng)的調(diào)度器策略,隨著一個(gè)或多個(gè)邏輯處理器與每一個(gè)處理器核相關(guān)聯(lián),操作系統(tǒng)可創(chuàng)建邏輯處理器列表并且在這些邏輯處理器上布置工作。由此,操作系統(tǒng)可確定處理器封裝中的軟件線程(下文中“線程”)的物理布置,例如線程在哪個(gè)核/邏輯處理器上運(yùn)行。由于各種原因,例如制造變化,所有核不是被創(chuàng)造為相等的,例如,盡管核可能是邏輯上相同的(例如,架構(gòu)上相同的),但可能具有不同的物理特性。能夠在更高的性能水平(例如,比處理器封裝的頻率/電壓帶更高的頻率或更低的電壓)操作的核可以被稱為優(yōu)選核。由此,在核上布置工作而不考慮制造變化和/或優(yōu)選核能導(dǎo)致更高功率和/或更低性能。

本公開提出了用于在操作系統(tǒng)在軟件水平(例如,驅(qū)動(dòng)程序水平)在優(yōu)選核上布置工作的控制過(guò)程以及用于在不同水平上(例如,硬件(偽代碼)水平)在優(yōu)選核上布置工作的控制過(guò)程。

用于在優(yōu)選核上布置工作的示例過(guò)程可以在操作系統(tǒng)軟件(例如,驅(qū)動(dòng)程序)中實(shí)現(xiàn)??梢杂?jì)算需求線程(例如,軟件線程)的數(shù)量(由于超過(guò)可編程閾值的每線程利用率),并且可以將其分配為在優(yōu)選核的按順序的列表上運(yùn)行(例如使用強(qiáng)制緊密度)。此外,隨著情況改變,可以對(duì)分配到核的工作負(fù)載作出動(dòng)態(tài)調(diào)節(jié)。根據(jù)提供的列表順序或憑借處于“在關(guān)注中”(可配置的)的應(yīng)用,應(yīng)用的線程可以是優(yōu)先的。

用于在優(yōu)選核上布置工作的另一示例過(guò)程可包括通過(guò)檢查核利用(例如依據(jù)其c狀態(tài)和p狀態(tài)駐留)經(jīng)由動(dòng)態(tài)核遷移(dcm)用于在優(yōu)選核上布置工作的偽代碼過(guò)程。

當(dāng)調(diào)度器在不超過(guò)需要的數(shù)量的核上實(shí)施調(diào)度時(shí),首先利用優(yōu)選核可提供性能和/或功率的益處,因?yàn)閮?yōu)選核可以既是最高性能核又是最低電壓核。

圖1示出了根據(jù)各實(shí)施例的配備有用于確定處理器核上的工作布置的技術(shù)的示例系統(tǒng)。

在至少一個(gè)實(shí)施例中,系統(tǒng)100可包括具有核區(qū)120和非核122的處理器101。在一些實(shí)施例中,核區(qū)120可包括多個(gè)處理核102-1至102-n,但公開的功能可應(yīng)用于多處理器系統(tǒng)中的單核處理器。在一些實(shí)施例中,處理器101可包括第一處理核102-1、第二處理核102-2等等到第n處理核102-n。

在一些實(shí)施例中,處理核102可包括提供總功能的不同方面的子元件或集群。在一些實(shí)施例中,處理核102可包括前端104、執(zhí)行流水線106和核外圍128。核外圍128可包括第一級(jí)(l1)數(shù)據(jù)高速緩存108、諸如c-6存儲(chǔ)130(例如,對(duì)應(yīng)于acpi狀態(tài)c-6)的存儲(chǔ)以及高級(jí)可編程中斷控制器(apic)132。在至少一個(gè)實(shí)施例中,前端104可用于從指令高速緩存(未示出)獲取指令并且調(diào)度獲取的指令用于執(zhí)行。在一些實(shí)施例中,執(zhí)行流水線106可結(jié)合寄存器組(未示出)和l1數(shù)據(jù)高速緩存108解碼和執(zhí)行各種數(shù)學(xué)的、邏輯的、存儲(chǔ)器訪問(wèn)和流控制指令。因此,在一些實(shí)施例中,前端104可負(fù)責(zé)確保穩(wěn)定的指令流被饋送到執(zhí)行流水線106,而執(zhí)行流水線106可負(fù)責(zé)執(zhí)行指令和處理結(jié)果。在一些實(shí)施例中,執(zhí)行流水線106可包括兩個(gè)或多個(gè)并行的算術(shù)流水線、兩個(gè)或多個(gè)并行的存儲(chǔ)器訪問(wèn)或負(fù)載/存儲(chǔ)流水線以及兩個(gè)或多個(gè)流控制或分支流水線。在至少一個(gè)實(shí)施例中,執(zhí)行流水線106可進(jìn)一步包括一個(gè)或多個(gè)浮點(diǎn)流水線。在一些實(shí)施例中,執(zhí)行流水線106可包括用于亂序執(zhí)行指令、推測(cè)地執(zhí)行指令或兩者皆有的寄存器和邏輯資源。在實(shí)施例中,從核102-1到102-n的每個(gè)核可以是超標(biāo)量核或超線程核。超標(biāo)量核能并行地執(zhí)行兩個(gè)或多個(gè)指令。超線程核能并行地執(zhí)行兩個(gè)或多個(gè)指令上下文或指令流。

核外圍128能包括支持前端104和執(zhí)行流水線106的邏輯,包括管理存儲(chǔ)和中斷。核外圍128能包括l1數(shù)據(jù)高速緩存108、c6存儲(chǔ)130和高級(jí)可編程中斷控制器(apic)132。當(dāng)處理核102轉(zhuǎn)變至低功率狀態(tài)(例如c6狀態(tài))時(shí),c6存儲(chǔ)130能夠存儲(chǔ)處理核102的軟件上下文和身份(或核狀態(tài))。外圍控制器(例如,apic132)能為處理核102管理中斷,包括標(biāo)識(shí)哪些中斷應(yīng)用于相關(guān)聯(lián)的處理核102和管理能用于標(biāo)識(shí)相關(guān)聯(lián)的核的apicid。

在至少一個(gè)實(shí)施例中,在執(zhí)行存儲(chǔ)器訪問(wèn)指令期間,執(zhí)行流水線106可通過(guò)訪問(wèn)適用存儲(chǔ)器地址的副本來(lái)嘗試執(zhí)行指令,該副本駐留在可包括兩個(gè)或多個(gè)安排在分層配置中的高速緩存存儲(chǔ)器的高速緩存存儲(chǔ)器子系統(tǒng)的最低級(jí)高速緩存存儲(chǔ)器中。在至少一個(gè)實(shí)施例中,高速緩存存儲(chǔ)器子系統(tǒng)可包括l1數(shù)據(jù)高速緩存108和非核122中的末級(jí)高速緩存(llc)118。在至少一個(gè)實(shí)施例中,高速緩存存儲(chǔ)器子系統(tǒng)的其他元件可包括結(jié)合前端104操作的用于每個(gè)核的指令高速緩存(未示出)和用于每個(gè)核的一個(gè)或多個(gè)中間高速緩存(未示出)。在至少一個(gè)實(shí)施例中,用于處理器101的高速緩存存儲(chǔ)器子系統(tǒng)可包括用于每個(gè)核的l1數(shù)據(jù)和指令高速緩存以及用于每個(gè)核的包括指令和數(shù)據(jù)的中間或l2高速緩存存儲(chǔ)器。包括指令和數(shù)據(jù)的llc118可在多個(gè)處理核102中共享。在一些實(shí)施例中,如果存儲(chǔ)器訪問(wèn)指令在l1數(shù)據(jù)高速緩存108中未命中,對(duì)適用程序或線程的執(zhí)行可能停止或變慢,而高速緩存存儲(chǔ)器子系統(tǒng)訪問(wèn)各種高速緩存存儲(chǔ)器直到發(fā)現(xiàn)適用存儲(chǔ)器地址的副本。

在至少一個(gè)實(shí)施例中,處理器101、第一處理核102-1、第二處理核102-2和處理核102-n可經(jīng)由交叉開關(guān)112通信,其可支持?jǐn)?shù)據(jù)排隊(duì)、點(diǎn)到點(diǎn)協(xié)議和多核對(duì)接。處理器101的其他實(shí)施例可采用共享的總線互連或直接核到核互連和協(xié)議。在至少一個(gè)實(shí)施例中,交叉開關(guān)112可用作將處理核102與llc118互連的非核控制器。在一些實(shí)施例中,非核122可包括配置為實(shí)現(xiàn)高速緩存一致性策略并且結(jié)合存儲(chǔ)器控制器(未示出)來(lái)保持系統(tǒng)存儲(chǔ)器(未示出)和各種高速緩存存儲(chǔ)器之間的一致性的高速緩存控制器117。

在至少一個(gè)實(shí)施例中,系統(tǒng)100還可包括用于確定處理器核102上的工作布置的模塊99(例如優(yōu)選核模塊)。在一個(gè)示例中,核102可以是多個(gè)邏輯上相同的核,例如架構(gòu)上相同的核。多個(gè)核中的第一核可具有第一物理特性,而多個(gè)核中的第二核可具有與第一物理特性不同的第二物理特性。模塊99可配置為標(biāo)識(shí)第一和第二核中的一個(gè)核相對(duì)于第一和第二核中的另一個(gè)核為優(yōu)選的,例如,憑借它們?cè)谖锢硖匦灾械牟煌?,例如它們的操作頻率和/或電壓。模塊99可配置為查明是否將線程遷移到或遷移出被標(biāo)識(shí)的核。在一個(gè)示例中,模塊99可配置為控制對(duì)線程遷移到或遷移出被標(biāo)識(shí)的核,例如,輸出信號(hào)到布置控制器124。

在一些實(shí)施例中,模塊99可以是功率控制單元(pcu)124的部件,例如,pcu124的布置控制器134的部件。然而,在其他實(shí)施例中,模塊99可以是從pcu124和/或布置控制器134的部件分離的部件。例如,在一些實(shí)施例中,模塊99可以是與操作系統(tǒng)相關(guān)聯(lián)的驅(qū)動(dòng)程序(圖2示出了包括驅(qū)動(dòng)程序299的實(shí)施例)。在這種情況下,模塊99的輸出(例如對(duì)工作布置的確定)可被輸入到操作系統(tǒng)(例如系統(tǒng)100的計(jì)算設(shè)備的操作系統(tǒng))的調(diào)度器中。

功率控制單元可以是消耗來(lái)自cpu上的部件的功率相關(guān)的遙測(cè)(有時(shí)連續(xù)地)的微控制器或可編程狀態(tài)機(jī)以管理部件的功率、頻率和溫度。系統(tǒng)100(例如布置控制器134和/或部件99)能監(jiān)視處理核102的工作負(fù)載并且確定哪些工作能夠被移動(dòng)到不同的核以提高效率。能夠在熱輸出、功率使用和/或完成的工作中測(cè)量效率。例如,能夠通過(guò)由于管芯內(nèi)變化(更低的熱輸出、降低的功率使用、終身使用管理或執(zhí)行更多工作)而在不同的核之間移動(dòng)線程來(lái)提高效率。能夠通過(guò)保持核的低電壓操作來(lái)提高效率,通過(guò)不提供高于閾值的工作負(fù)載(即,在核之間移動(dòng)線程以阻止核在閾值之上操作,其也被稱為對(duì)核“加壓力”)來(lái)保持核的低電壓操作。能夠通過(guò)將多個(gè)線程結(jié)合在單個(gè)超線程核上提高效率,其節(jié)省多核開銷的功率。能夠通過(guò)將線程布置在物理上分離以使能處理器管芯上的更大的熱擴(kuò)散的核上來(lái)提高效率。能夠通過(guò)將線程按順序從物理處理器移動(dòng)到物理處理器以加熱處理器管芯的不同部分來(lái)擴(kuò)散熱量而提高效率。能夠通過(guò)當(dāng)指令將不使用算術(shù)單元時(shí)使用具有失效的算術(shù)單元的核和/或當(dāng)指令將使用失效的算術(shù)單元時(shí)將線程在核之間遷移來(lái)提高效率。能夠通過(guò)執(zhí)行用于終身使用管理和/或熱管理的負(fù)載平衡來(lái)提高效率。

在一些實(shí)施例中,因?yàn)楹吮皇褂煤?或用于執(zhí)行大的工作負(fù)載,核的效率可能降低。效率降低可能是由于更大的操作電壓和/或更大的熱輸出。在一些實(shí)施例中,能夠管理核的終身使用,并且能夠在核之間轉(zhuǎn)移工作負(fù)載以擴(kuò)展核的終身使用。在一個(gè)實(shí)施例中,處理器會(huì)報(bào)告比實(shí)際上在處理器上可用的核計(jì)數(shù)低的核計(jì)數(shù)。工作負(fù)載能夠在核中被擴(kuò)展以增加核的總壽命和效率,超過(guò)在沒有額外的未報(bào)告的核的情形下將是可能的核的總壽命和效率。在一些實(shí)施例中,線程能夠被轉(zhuǎn)移出核以隔離核。被隔離的核能夠被測(cè)試和/或確定核的性能特性。在一個(gè)實(shí)施例中,能結(jié)合虛擬機(jī)管理者方案使用核隔離。在其他實(shí)施例中,被隔離的核能用于支持其他專用隱藏執(zhí)行裝置。

在一些實(shí)施例中,硬件pcu124能決定核和可用的流水線資源中的線程布置。核的邏輯處理器可枚舉到os。然而,邏輯處理器的數(shù)量可以少于處理器支持的物理核和/或同時(shí)線程的數(shù)量(即,可以有比枚舉到os的更多的處理器資源)。os可在對(duì)其可見的邏輯處理器上布置工作,并且處理器(例如,pcu124)可在之后的時(shí)刻將線程遷移到不同的資源。例如,pcu124能發(fā)起節(jié)省核的上下文、將上下文重新存儲(chǔ)到不同的核以及將先前核的本地apicid重定向到新核的序列。該遷移能在核或線程水平發(fā)生。可替代地,硬件能通過(guò)操作系統(tǒng)接口126向os提供遷移暗示,并且os能將工作從一個(gè)核或線程移動(dòng)到另一個(gè)。

在至少一個(gè)實(shí)施例中,除了處理核102,核區(qū)120還可包括用于每個(gè)核處理器102的電壓調(diào)節(jié)器/時(shí)鐘發(fā)生器(vrcg)電路114。在一些實(shí)施例中,結(jié)合pcu124生成的并且提供給每個(gè)處理核102的用于每個(gè)核的電源電壓信號(hào)和時(shí)鐘頻率信號(hào),vrcg電路114通過(guò)將由適用電源電壓信號(hào)和時(shí)鐘頻率信號(hào)指示的功率狀態(tài)應(yīng)用于適用處理核102以及非核122來(lái)支持每核功率狀態(tài)。

在一些實(shí)施例中,當(dāng)?shù)诙幚砗?02-2的性能特性使得第二處理核102-2比第一處理核102-1更好地適于達(dá)到期望的效率目標(biāo)時(shí),pcu124進(jìn)一步用于為執(zhí)行特定線程選擇處理核102以及將線程和其對(duì)應(yīng)的性能目標(biāo)或上下文信息從第一核(例如,第一處理核102-1)遷移到第二核(例如,第二處理核102-2)。參見例如圖2和3來(lái)得到對(duì)遷移的更詳細(xì)的描述。

在一些實(shí)施例中,處理器101可包括對(duì)核的混合分類,除了處理核102,還包括圖形核和其他類型的核邏輯。在這些混合核實(shí)施例中,pcu124可確定最佳的或期望的功率狀態(tài),不僅是為了處理核102,還為了核區(qū)120中的其他類型的核元件。類似地,在至少一個(gè)實(shí)施例中,處理器101可包括為非核122提供功率狀態(tài)的vrcg電路114-u,并且在該實(shí)施例中,pcu124可為非核122確定最佳的或優(yōu)選的功率狀態(tài)。在一些實(shí)施例中,處理器101可支持用于每個(gè)處理核102、核區(qū)120中的任何其他類型的核和非核122的獨(dú)立的功率狀態(tài)。其他實(shí)施例可為整個(gè)核區(qū)120支持一個(gè)功率狀態(tài)以及為非核122支持一個(gè)功率狀態(tài)。

pcu124還可以包括操作系統(tǒng)接口126。在一些實(shí)施例中,pcu124能為工作布置或通過(guò)操作系統(tǒng)接口126遷移到操作系統(tǒng)提供推薦。操作系統(tǒng)然后能執(zhí)行核之間的線程遷移。例如,操作系統(tǒng)可能不具有足夠的信息以識(shí)別兩個(gè)邏輯處理器實(shí)際上與一個(gè)超線程核相關(guān)聯(lián)。pcu124能向操作系統(tǒng)推薦在兩個(gè)邏輯處理器上整合兩個(gè)線程,其能消除多核開銷。

圖2示出了根據(jù)各實(shí)施例的包括用于確定處理器核上的工作布置的驅(qū)動(dòng)程序的圖1的系統(tǒng)的示例。

在一些實(shí)施例中,驅(qū)動(dòng)程序299可包括三個(gè)功能塊,即應(yīng)用線程跟蹤器211、監(jiān)視回路214和關(guān)聯(lián)控制回路217。應(yīng)用線程跟蹤器211可配置為跟蹤在系統(tǒng)上用于不同應(yīng)用的所有運(yùn)行線程。給定應(yīng)用能具有一個(gè)以上線程。當(dāng)應(yīng)用在運(yùn)行時(shí),其可創(chuàng)建新的線程和/或破壞先前創(chuàng)建的線程。應(yīng)用線程跟蹤器211保持所有正在運(yùn)行的線程的列表。從保持的列表中,驅(qū)動(dòng)程序299可周期性地或連續(xù)地計(jì)算所有被跟蹤的線程的處理器核需求水平。圖3a示出了可由應(yīng)用線程跟蹤器211執(zhí)行的操作,下文將更完整地描述。

再次參見圖2,在一個(gè)示例中,周期的需求計(jì)算可以由監(jiān)視回路213根據(jù)可配置的間隔執(zhí)行。在間隔中,監(jiān)視回路213的應(yīng)用線程需求檢查器216可計(jì)算對(duì)每個(gè)處理器核的利用,例如,基于通過(guò)分配的線程或多個(gè)線程的核利用的從0到100的百分比。如果需求大于可編程閾值,例如,百分之90,則線程/多個(gè)線程可受益于優(yōu)選核。驅(qū)動(dòng)程序299可根據(jù)與可編程閾值的比較將當(dāng)前被跟蹤的線程的子集標(biāo)識(shí)為“需求”線程。監(jiān)視回路213可包括用于與操作系統(tǒng)205的注冊(cè)表206通信的注冊(cè)表監(jiān)視器214、應(yīng)用線程需求檢查器216以及用于與cpu222的消息收發(fā)接口223(例如,超頻郵箱(overclockingmailbox))通信的硬件配置監(jiān)視器215。圖3b示出了可由監(jiān)視回路213執(zhí)行的操作,下文將更完整地描述。

再次參見圖2,關(guān)聯(lián)控制回路217可配置為通過(guò)使用操作系統(tǒng)暴露的接口(例如,緊密度接口、acpi接口等等,或其組合)將線程關(guān)聯(lián)到被選擇的核(例如,優(yōu)選核列表中的核)。圖3c示出了可由關(guān)聯(lián)控制回路217執(zhí)行的操作,下文將更完整地描述。

再次參見圖2,應(yīng)用201可配置有用戶接口以允許用戶選擇將在優(yōu)選核上運(yùn)行的應(yīng)用(用戶選擇的應(yīng)用的線程可以被關(guān)聯(lián)到優(yōu)選核)。在一個(gè)示例中可以是最高睿頻加速應(yīng)用的應(yīng)用201可包括前臺(tái)應(yīng)用檢測(cè)回路202以檢查新的用戶選擇和/或確定操作系統(tǒng)中哪個(gè)應(yīng)用在關(guān)注中。在其他實(shí)施例中,前臺(tái)應(yīng)用檢測(cè)回路202可存在于驅(qū)動(dòng)程序299中,取決于操作系統(tǒng)要求。

處理器222可包括消息收發(fā)接口223,例如郵箱接口。消息收發(fā)接口可支持讀取優(yōu)選核列表的命令,其可以是為給定核指定代碼id(或索引)的排序列表。優(yōu)選核列表可以偶爾被讀取以確定每個(gè)核屬于優(yōu)選核列表中的哪里。核索引零可以是最高優(yōu)選核,而對(duì)應(yīng)于n個(gè)核的核索引n可對(duì)應(yīng)于最低優(yōu)選核。驅(qū)動(dòng)程序299可使用消息收發(fā)接口223的該命令以讀取核列表。在其他實(shí)施例中,驅(qū)動(dòng)程序299可直接讀取每個(gè)核的模型專用寄存器(msr)(例如,軟件可見寄存器)以確定一個(gè)核是否是優(yōu)選核。

在一些實(shí)施例中,可提供熔斷器221。熔斷器221可包括在制造期間被編程的只讀存儲(chǔ)器來(lái)為每個(gè)核分別指示核的屬性,例如其操作頻率、其電壓水平。熔斷器221存儲(chǔ)該核信息,其可由驅(qū)動(dòng)程序299讀取以確定一個(gè)核是否是優(yōu)選核(優(yōu)選核的性能操作頻率/電壓比其中該核是處理器的成員的該處理器的頻率/電壓更高)。

消息收發(fā)接口223可與bios207通信。bios207可包括用戶界面以使得系統(tǒng)管理員能管理性能配置,例如,超頻、降頻、升電壓(overvolting)、降電壓(undervolting)等等,或其組合。

圖3a示出了根據(jù)各實(shí)施例的可由圖2的應(yīng)用線程跟蹤器執(zhí)行的示例操作。

驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)可向操作系統(tǒng)注冊(cè)以得到諸如“驅(qū)動(dòng)程序初始化”功能塊301中示出的那些通知,例如,應(yīng)用負(fù)載通知、過(guò)程創(chuàng)建/刪除通知、線程創(chuàng)建/刪除通知。驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)可初始化空的線程驅(qū)動(dòng)程序列表。

功能塊302示出可由驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)在應(yīng)用運(yùn)行期間執(zhí)行的過(guò)程。例如,當(dāng)應(yīng)用啟動(dòng)時(shí),操作系統(tǒng)可通知驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)。

驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)可響應(yīng)于如菱形305和306所示的接收通知來(lái)執(zhí)行過(guò)濾以確定是否跟蹤應(yīng)用。驅(qū)動(dòng)程序(例如應(yīng)用線程跟蹤器211)可在菱形305中確定應(yīng)用是否是可執(zhí)行的。在菱形306中,如果啟動(dòng)的應(yīng)用在操作系統(tǒng)文件夾(例如文件夾)中不是可執(zhí)行的,則應(yīng)用可以是用戶模式應(yīng)用,并且由此,應(yīng)用將被跟蹤。

在框307中,線程跟蹤器列表可以被更新。線程跟蹤器可通過(guò)應(yīng)用名稱和os調(diào)度器使用的其內(nèi)部標(biāo)識(shí)符(過(guò)程id或“pid”和線程id或“tid”,其獨(dú)特地標(biāo)識(shí)該應(yīng)用的每條可執(zhí)行代碼)存儲(chǔ)來(lái)自應(yīng)用啟動(dòng)(過(guò)濾后保持)的每個(gè)感興趣的應(yīng)用。

示出的“互斥”功能308指代相互排斥的目標(biāo)以阻止數(shù)據(jù)結(jié)構(gòu)破壞(使得在時(shí)間上的任何給定點(diǎn)只有一條代碼能訪問(wèn)跟蹤列表)。

對(duì)應(yīng)于應(yīng)用執(zhí)行(啟動(dòng)后)的通知也在圖3a中示出,并且這些事件也能導(dǎo)致在框307中線程被添加到線程跟蹤器列表。

圖3b示出了可由圖2的監(jiān)視回路執(zhí)行的示例操作。

在框310中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可根據(jù)可配置間隔(假設(shè)n秒的間隔)檢查用戶是否改變了關(guān)于優(yōu)選核過(guò)程的偏好。例如,具有用戶接口的應(yīng)用使得用戶能選擇哪些應(yīng)用可以使用優(yōu)選核,并且這些設(shè)置可以由用戶在任何時(shí)刻改變。例如,優(yōu)選核的排序可以基于性能定制由用戶改變,例如,超頻、降頻、升電壓、降電壓等等,或其組合。在一些實(shí)施例中,框310中的檢查監(jiān)視經(jīng)由應(yīng)用和用戶接口的任何參數(shù)改變,例如任何優(yōu)選核參數(shù)。

如果檢測(cè)到參數(shù)變化,在菱形311中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可檢查注冊(cè)表是否已經(jīng)被改變。如果檢測(cè)到變化,可以執(zhí)行驅(qū)動(dòng)程序狀態(tài)機(jī)的重置,如框313所示。在一些實(shí)施例中,重置可包括線程利用重新計(jì)算(例如,根據(jù)需要重新計(jì)算每線程利用率)、解關(guān)聯(lián)(unaffinitizition)(例如,根據(jù)需要解關(guān)聯(lián)所有線程)、檢查硬件優(yōu)選核狀態(tài)變化(例如,優(yōu)選核列表,是否使能改變)、檢查關(guān)聯(lián)是否使能改變(例如,檢查關(guān)聯(lián)是否使能改變)、注冊(cè)表更新、關(guān)聯(lián)計(jì)時(shí)器重啟和/或停止等等,或其組合。

圖3c示出了根據(jù)各實(shí)施例的可由圖2的關(guān)聯(lián)控制回路執(zhí)行的示例操作。

在框320中,關(guān)聯(lián)計(jì)時(shí)器事件可能發(fā)生(其可能是基于諸如注冊(cè)表中的估算間隔參數(shù)的可配置間隔)。在菱形322中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可確定是否所有線程(在跟蹤器列表中)已經(jīng)使需求被檢查了。如果否,對(duì)于跟蹤器列表中的剩余線程,驅(qū)動(dòng)程序(例如監(jiān)視回路213)在框323中可計(jì)算利用(例如,處理器和/或核利用率),并且在菱形324中可確定利用率是否大于閾值,例如確定利用率是否大于或等于參數(shù)“利用閾值百分比”,其在一個(gè)實(shí)施例中可以是90%。如果在菱形325中線程在用于優(yōu)選核的前臺(tái)應(yīng)用或包含列表中,則在框326中線程可被標(biāo)志為需求線程(感興趣的),并且可以增加需求線程計(jì)數(shù)器的數(shù)量。

在菱形327中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可確定多個(gè)需求線程計(jì)數(shù)器中的一個(gè)計(jì)數(shù)器是否不大于物理核的計(jì)數(shù)。如果該計(jì)數(shù)器大于物理核的計(jì)數(shù),則在框328中驅(qū)動(dòng)程序(例如監(jiān)視回路213)可解關(guān)聯(lián)任何先前被驅(qū)動(dòng)程序關(guān)聯(lián)的線程。

在框329中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可對(duì)在跟蹤器列表中的需求線程排序,例如,對(duì)線程排序。排序可以是基于線程是否是用戶選擇的應(yīng)用(從具有用戶接口的應(yīng)用的列表中)和/或在關(guān)注中(例如,也在關(guān)注中的用戶選擇的應(yīng)用可以被排序?yàn)楦哂诓辉陉P(guān)注中的用戶選擇的應(yīng)用)。

在菱形331中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可確定是否所有需求線程被關(guān)聯(lián)到優(yōu)選核。如果否,在框332中,驅(qū)動(dòng)程序(例如監(jiān)視回路213)可從跟蹤器列表中得到下一需求線程,并且在框333中從優(yōu)選核列表中得到下一優(yōu)選核。在框334中,驅(qū)動(dòng)程序(例如,監(jiān)視回路213)可將線程關(guān)聯(lián)到核。

圖4a-b示出了根據(jù)各實(shí)施例的用于實(shí)現(xiàn)圖1的系統(tǒng)的功率控制單元(pcu)的模塊的偽代碼的示例。

pcu執(zhí)行的軟件可稱為p代碼???01-410示出了用于確定處理器核上的工作布置的p代碼的模塊的示例偽代碼的部分。

框401示出了示例定義?,F(xiàn)在可以是當(dāng)前時(shí)間戳,并且進(jìn)入延遲、退出延遲和循環(huán)延遲可以是能夠被設(shè)定的參數(shù)。進(jìn)入延遲可以是操作系統(tǒng)通過(guò)核分派工作以進(jìn)行任何遷移之后等待的時(shí)間。退出延遲可以是遷移之后進(jìn)行另一遷移之前等待的時(shí)間。這些可以阻止抖動(dòng)(thrashing)。循環(huán)延遲可以是用于新調(diào)度的輪詢之間等待的時(shí)間。

框402可以是確定是否滿足循環(huán)延遲的檢查。在一個(gè)示例中,p代碼最慢輪詢約為一毫秒。該循環(huán)默認(rèn)每一毫秒可執(zhí)行一次,但如果需要,循環(huán)延遲計(jì)時(shí)器可用于指定比那個(gè)更長(zhǎng)的時(shí)間。如果正運(yùn)行的核的數(shù)量沒有變化,或當(dāng)前活躍的正運(yùn)行的核沒有變化,則過(guò)程可等待直到下一輪循環(huán)。

框403示出了在過(guò)程中使用的信息的賦值。值“r”可以是當(dāng)前在其上調(diào)度了某些事務(wù)的運(yùn)行核的數(shù)量。快堆??梢允亲羁斓膔個(gè)核的堆棧,核中最快的在堆棧的頂部,例如,基于變化具有最高頻率的核在堆棧的頂部。

框404可以是基于是否為操作系統(tǒng)啟用了為特定的工作項(xiàng)請(qǐng)求特定水平的性能或功率的能力的條件。例如,第一預(yù)定模式是否是可用的(在第一預(yù)定模式中,操作系統(tǒng)能夠?yàn)楣ぷ黜?xiàng)從硬件請(qǐng)求每個(gè)核的特定水平的性能)。該能力在本文中可被稱為“hwp”,或變速技術(shù)(speedshifttechnology)。在一個(gè)示例中,條件檢查可以是預(yù)定模式(例如hwp)是否存在。如果該能力存在,例如,如果硬件p存在,實(shí)際上運(yùn)行的核的慢堆??梢员粍?chuàng)造,隨著核被排序?yàn)閷?duì)于在堆棧頂部的核的工作具有最高請(qǐng)求性能的核和對(duì)于在堆棧底部的核的工作具有最低請(qǐng)求性能的核。如果預(yù)定模式存在,條件是快堆棧的成員是否與慢堆棧的成員相同,并且按照相同的順序。

框405可以是基于預(yù)定模式是否存在的另一條件。在沒有該能力的情形下,例如,對(duì)于第二不同模式,慢堆棧被定義為在堆棧頂部最慢的實(shí)際上運(yùn)行的核的堆棧。如果預(yù)定模式不存在,條件可以是快堆棧的成員是否與慢堆棧的成員相同,而不論堆棧上的順序如何。

框406可以從快堆棧中彈出核。如果被彈出的核保持空閑,并且滿足超時(shí),則可能將工作從慢堆棧遷移到較快的核。被遷移的工作可以是在最慢的可用核上運(yùn)行的工作。如果快堆棧的被彈出的核已經(jīng)在運(yùn)行并且預(yù)定模式不是可用的,則過(guò)程可為快堆棧的下一最頂部核重復(fù)另一迭代。如果預(yù)定模式是可用的,該過(guò)程可考慮排序。類似地,如果不滿足超時(shí),例如,核的上一遷移時(shí)刻加上退出延遲大于當(dāng)前,該過(guò)程可移動(dòng)到快堆棧中的下一核。

在框407中,當(dāng)選擇的核不在運(yùn)行時(shí),并且當(dāng)慢堆棧不是空的時(shí),核可能彈出離開慢堆棧。該核可被稱為受害核,因?yàn)樗侨员豢紤]的最慢的核(即,在該核上的工作是在慢核上的受害者)。如果預(yù)定模式是可用的,該過(guò)程可確定遷移是否將實(shí)現(xiàn)比工作負(fù)載請(qǐng)求的性能更高的性能。如果候選核的性能水平大于已經(jīng)被彈出離開慢堆棧的核的請(qǐng)求的性能水平,則遷移可以被繞過(guò)。換言之,如果遷移的目標(biāo)核對(duì)應(yīng)于比操作系統(tǒng)為給定工作請(qǐng)求的性能更高的性能,則遷移可能不會(huì)被執(zhí)行。類似地,如果遷移將在已經(jīng)在運(yùn)行其他工作的核上,并且工作交換到目標(biāo)核將導(dǎo)致比操作系統(tǒng)為該工作請(qǐng)求的性能更低的性能,遷移可能不會(huì)被執(zhí)行。類似地,在框408中,如果核生產(chǎn)率低于表明值得遷移的閾值,遷移可能不會(huì)被執(zhí)行。

在框409中,遷移可以被執(zhí)行,例如,可以將工作從已經(jīng)被從慢堆棧彈出離開的核遷移到目標(biāo)。如果遷移將導(dǎo)致將受害者工作分配到較低性能核,遷移被繞開。如果預(yù)定模式是可用的,并且目標(biāo)核當(dāng)前在運(yùn)行工作,遷移實(shí)際上是兩個(gè)核之間工作的交換,而不是僅僅將工作遷移到空閑核。

圖5示出了根據(jù)各實(shí)施例的可由圖1的模塊執(zhí)行的示例過(guò)程。

在框5001中,模塊(其可以是一個(gè)實(shí)施例中的驅(qū)動(dòng)程序)可將處理器的一個(gè)核相對(duì)于處理器的另一個(gè)核標(biāo)識(shí)為優(yōu)選的。在一個(gè)示例中,核可以是架構(gòu)上相同的,但關(guān)于處理器的制造具有的不同的物理特性。優(yōu)選核可能比另一核每秒有更多指令、可能有更好的指令每瓦特性能、可能有更低電壓、可能是更降電壓的(運(yùn)行時(shí)有較低功率使用)等等,或其結(jié)合。

在框5002中,模塊可確定對(duì)應(yīng)于操作系統(tǒng)和/或處理器的線程的需求是否大于閾值。在框5003中,如果線程還未被關(guān)聯(lián)到優(yōu)選核,模塊可將線程關(guān)聯(lián)到被標(biāo)識(shí)的核。在一個(gè)示例中,關(guān)聯(lián)使用操作系統(tǒng)的緊密度接口。

在一個(gè)示例中,模塊可確定具有大于閾值的需求的線程的第一數(shù)量是否大于處理器的運(yùn)行核的第二數(shù)量。模塊可響應(yīng)于確定第一數(shù)量大于第二數(shù)量解關(guān)聯(lián)線程-核關(guān)聯(lián),例如,可解關(guān)聯(lián)所有線程-核關(guān)聯(lián),例如對(duì)應(yīng)于至少被標(biāo)識(shí)的核的所有線程-核關(guān)聯(lián)。

在一個(gè)示例中,模塊可響應(yīng)于確定線程的需求大于閾值將線程添加到跟蹤器列表。模塊可基于用戶接口接收的包含列表或用戶請(qǐng)求中的至少一個(gè)對(duì)跟蹤器列表的線程排序。

在一個(gè)示例中,模塊可執(zhí)行被排序的跟蹤器列表的初始線程到優(yōu)選核列表中的初始條目的核的第一關(guān)聯(lián)。模塊可執(zhí)行被排序的跟蹤器列表的下一線程到優(yōu)選核列表中的下一條目的核的第二關(guān)聯(lián)。模塊可重復(fù)第二關(guān)聯(lián)直到被排序的跟蹤器列表的所有線程被關(guān)聯(lián)到優(yōu)選核列表的核的相應(yīng)一個(gè)。

圖6示出了根據(jù)各實(shí)施例的可由圖1的模塊執(zhí)行的另一過(guò)程。

在框6001中,模塊(其可以是處理器的功率控制單元的)可確定是否將與操作系統(tǒng)和/或處理器相關(guān)聯(lián)的線程的候選線程遷移到或遷移出處理器的核的候選者。在一個(gè)示例中,核可以是架構(gòu)上相同的,但關(guān)于處理器的制造具有不同的物理特性。優(yōu)選核可能比另一核每秒有更多指令、可能有更好的指令每瓦特性能、可能有更低電壓、可能是更降電壓的(運(yùn)行時(shí)有較低功率使用)等等,或其結(jié)合。

在框6002中,模塊可查明操作系統(tǒng)是否包括預(yù)定模式。在一個(gè)示例中,預(yù)定模式可以是hwp(硬件p)。在一個(gè)示例中,預(yù)定模式可以是使操作系統(tǒng)能為特定的工作項(xiàng)請(qǐng)求特定水平的性能或功率的模式。

在框6003中,模塊可基于查明的結(jié)果選擇處理器的核的候選者。

在一個(gè)示例中,如果操作系統(tǒng)包括預(yù)定模式,模塊可基于核的不同物理特性生成第一組核的第一排序,或者如果操作系統(tǒng)不包括預(yù)定模式,模塊可基于核的不同物理特性生成第二組核的第二不同排序。模塊可從與第一或第二排序相關(guān)聯(lián)的堆棧的頂部選擇核中的候選核。

在一個(gè)示例中,模塊可選擇核的第一子集,其中第一子集的每個(gè)核具有不同于(例如,大于)閾值物理特性的對(duì)應(yīng)的物理特性。核的第二子集可包括余下的核。模塊可響應(yīng)于標(biāo)識(shí)正在運(yùn)行并且與在第一時(shí)刻調(diào)度的工作相關(guān)聯(lián)的第一子集的核之一,在該第一時(shí)刻標(biāo)識(shí)第一或第二組。

在一個(gè)示例中,模塊可響應(yīng)于標(biāo)識(shí)正在運(yùn)行并且與在第一時(shí)刻調(diào)度的工作相關(guān)聯(lián)的第二子集的核之一,在第二時(shí)刻標(biāo)識(shí)第三組。僅當(dāng)操作系統(tǒng)不包括預(yù)定模式并且第二組的成員與第三組的成員相同時(shí),模塊可在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核,或僅當(dāng)操作系統(tǒng)不包括預(yù)定模式并且第一排序的成員與第三組的排序的成員相同并且按相同順序時(shí),模塊可在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核。

圖7示出了根據(jù)各實(shí)施例的可采用本文中所描述的裝置和/或方法的示例計(jì)算設(shè)備。

根據(jù)各實(shí)施例,示例計(jì)算設(shè)備500可采用本文中所描述的裝置和/或方法。如所示,計(jì)算設(shè)備500可包括大量部件,例如一個(gè)或多個(gè)處理器504(示出一個(gè))和至少一個(gè)通信芯片506。

在各實(shí)施例中,一個(gè)或多個(gè)處理器504的每一個(gè)可包括一個(gè)或多個(gè)處理器核。在各實(shí)施例中,至少一個(gè)通信芯片506可以是物理地或電地耦合到一個(gè)或多個(gè)處理器504。在進(jìn)一步的實(shí)現(xiàn)中,通信芯片506可以是一個(gè)或多個(gè)處理器504的一部分。在各實(shí)施例中,計(jì)算設(shè)備500可包括印刷電路板(pcb)502。對(duì)于這些實(shí)施例,可以將一個(gè)或多個(gè)處理器504和通信芯片506設(shè)置在其上。在替代實(shí)施例中,可以在不采用pcb502的情形下耦合各種部件。

取決于其應(yīng)用,計(jì)算設(shè)備500可包括可能或可能不物理地或電地耦合到pcb502的其他部件。這些其他部件包括但不限于存儲(chǔ)器控制器(未示出)、易失性存儲(chǔ)器(例如,動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)520)、諸如只讀存儲(chǔ)器(rom)524的非易失性存儲(chǔ)器、閃存522、i/o控制器(未示出)、數(shù)字信號(hào)處理器(未示出)、密碼協(xié)處理器(未示出)、圖形處理器530、一個(gè)或多個(gè)天線528、顯示器(未示出)、觸摸屏顯示器532、觸摸屏控制器546、電池536、音頻編解碼器(未示出)、視頻編解碼器(未示出)、全球定位系統(tǒng)(gps)設(shè)備540、羅盤542、加速度計(jì)(未示出)、陀螺儀(未示出)、揚(yáng)聲器550、相機(jī)552和大容量存儲(chǔ)設(shè)備(例如硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器、壓縮盤(cd)、數(shù)字多功能盤(dvd))(未示出)等等。

在一些實(shí)施例中,響應(yīng)于由一個(gè)或多個(gè)處理器504執(zhí)行編程指令,一個(gè)或多個(gè)處理器504、閃存522和/或存儲(chǔ)設(shè)備(未示出)可包括配置為使能計(jì)算設(shè)備500的存儲(chǔ)編程指令的相關(guān)聯(lián)的固件(未示出),以實(shí)施本文中所描述的方法的所有或被選擇的方面。例如,編程指令可參考圖1-6的相應(yīng)一個(gè)實(shí)現(xiàn)先前描述的驅(qū)動(dòng)程序。在各實(shí)施例中,這些方面可以被附加地或可替代地使用從一個(gè)或多個(gè)處理器504、閃存512或存儲(chǔ)設(shè)備511分離的硬件來(lái)實(shí)現(xiàn)。例如,替代硬件可參考圖1-6的相應(yīng)一個(gè)包括配備有代碼的先前描述的功率控制單元以執(zhí)行先前描述的操作。

通信芯片506可使能有線和/或無(wú)線通信以將數(shù)據(jù)轉(zhuǎn)移到或轉(zhuǎn)移出計(jì)算設(shè)備500。術(shù)語(yǔ)“無(wú)線”和其衍生物可用于描述可使用通過(guò)非固態(tài)介質(zhì)調(diào)制的電磁輻射來(lái)傳遞數(shù)據(jù)的電路、設(shè)備、系統(tǒng)、方法、技術(shù)、通信信道等。術(shù)語(yǔ)不意指相關(guān)聯(lián)的設(shè)備不含有任何線,盡管在一些實(shí)施例中它們可能不含有任何線。通信芯片506可實(shí)現(xiàn)大量無(wú)線標(biāo)準(zhǔn)或協(xié)議的任何一個(gè),包括但不限于ieee702.20、長(zhǎng)期演進(jìn)(lte)、lte高級(jí)(lte-a)、通用分組無(wú)線服務(wù)(gprs)、演進(jìn)數(shù)據(jù)最優(yōu)化(ev-do)、演進(jìn)型高速分組接入(hspa+)、演進(jìn)型高速下行鏈路分組接入(hsdpa+)、演進(jìn)型高速上行鏈路分組接入(hsupa+)、全球移動(dòng)通信系統(tǒng)(gsm)、gsm演進(jìn)增強(qiáng)型數(shù)據(jù)速率(edge)、碼分多址(cdma)、時(shí)分多址(tdma)、數(shù)字增強(qiáng)型無(wú)繩電信(dect)、全球微波互聯(lián)接入(wimax)、藍(lán)牙、其衍生物和稱為3g、4g、5g以及進(jìn)一步的任何其他無(wú)線協(xié)議。計(jì)算設(shè)備500可包括多個(gè)通信芯片506。例如,第一通信芯片506可專用于諸如wi-fi和藍(lán)牙的較短距離無(wú)線通信,而第二通信芯片506可專用于諸如gps、edge、gprs、cdma、wimax、lte、ev-do及其他的較長(zhǎng)距離無(wú)線通信。

在各實(shí)施例中,計(jì)算設(shè)備500可以是膝上型計(jì)算機(jī)、上網(wǎng)本、筆記本、超極本、智能電話、計(jì)算平板、個(gè)人數(shù)字助理(pda)、超移動(dòng)pc、移動(dòng)電話、臺(tái)式計(jì)算機(jī)、服務(wù)器、打印機(jī)、掃描儀、監(jiān)視器、機(jī)頂盒、娛樂控制單元(例如,游戲控制臺(tái)或自動(dòng)娛樂單元)、數(shù)碼相機(jī)、家電、便攜式音樂播放器或數(shù)字錄像機(jī)。在進(jìn)一步的實(shí)現(xiàn)中,計(jì)算設(shè)備500可以是處理數(shù)據(jù)的任何其他電子設(shè)備。

可以利用一個(gè)或多個(gè)計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是,例如但不限于,電、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更具體的示例(非窮舉的列表)將包括下列:具有一條或多條線的電連接件、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、可擦除可編程只讀存儲(chǔ)器(eprom或閃存)、光纖、便攜式壓縮盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)設(shè)備、諸如支持因特網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)的傳輸介質(zhì)或磁存儲(chǔ)設(shè)備。注意,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)甚至可以是其上打印有程序的紙張或另一合適的介質(zhì),因?yàn)槌绦蚩梢越?jīng)由例如對(duì)紙張或其他介質(zhì)的光學(xué)掃描而被電子地捕獲,隨后如有必要被編譯、解釋,或以其他合適的方式處理,并隨后存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器中。在本文檔的上下文中,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是可包含、存儲(chǔ)、通信、傳播、或傳輸程序以供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或結(jié)合指令執(zhí)行系統(tǒng)、裝置或設(shè)備一起使用的任何介質(zhì)。計(jì)算機(jī)可用介質(zhì)可包括被傳播的數(shù)據(jù)信號(hào),隨其體現(xiàn)在基帶中或作為載波的一部分的計(jì)算機(jī)可用程序代碼??梢允褂萌魏魏线m的介質(zhì)傳送計(jì)算機(jī)可用程序代碼,包括但不限于無(wú)線、有線、光纖纜線、rf等等。

用于執(zhí)行本公開的操作的計(jì)算機(jī)程序代碼可以一種或多種編程語(yǔ)言的任意組合來(lái)編寫,包括面向?qū)ο缶幊陶Z(yǔ)言(例如java、smalltalk、c++等等)以及常規(guī)程序化編程語(yǔ)言(諸如“c”編程語(yǔ)言或類似的編程語(yǔ)言)。該程序代碼可作為部分地在用戶的計(jì)算機(jī)上并且部分地在遠(yuǎn)程計(jì)算機(jī)上或完全地在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上的獨(dú)立的軟件包完全地在用戶的計(jì)算機(jī)上、部分地在用戶的計(jì)算機(jī)上執(zhí)行。在后一場(chǎng)景中,可通過(guò)任意類型的網(wǎng)絡(luò)(包括局域網(wǎng)(lan)或廣域網(wǎng)(wan))將遠(yuǎn)程計(jì)算機(jī)連接至用戶的計(jì)算機(jī),或可作出至外部計(jì)算機(jī)的該連接(例如,通過(guò)使用因特網(wǎng)服務(wù)提供商的因特網(wǎng))。

示例

示例1提供了用于計(jì)算的裝置,所述計(jì)算包括對(duì)處理器核工作布置的確定。該裝置可包括處理器,處理器封裝括:多個(gè)架構(gòu)上相同的核,其中多個(gè)架構(gòu)上相同的核中的第一核具有第一物理特性并且多個(gè)架構(gòu)上相同的核中的第二核具有與第一物理特性不同的第二物理特性;以及由處理器操作的優(yōu)選核模塊。該優(yōu)選核模塊可用于:標(biāo)識(shí)第一和第二核中的一個(gè)核相對(duì)于第一和第二核中的另一個(gè)核為優(yōu)選的;確定線程的需求是否大于閾值;以及響應(yīng)于確定線程的需求大于閾值,如果線程還未被關(guān)聯(lián)到優(yōu)選核,則將線程關(guān)聯(lián)到被標(biāo)識(shí)的核。

示例2包括示例1的主題,并且第一和第二物理特性中的與所述優(yōu)選核相對(duì)應(yīng)的一個(gè)物理特性包括第一電壓,所述第一電壓低于第一和第二物理特性中的另一個(gè)物理特性的第二電壓。

示例3包括示例1-2的任一項(xiàng)的主題,并且第一和第二核與相同的操作頻率相關(guān)聯(lián)。

示例4包括示例1-2的任一項(xiàng)的主題,并且第一和第二核與不同的操作頻率相關(guān)聯(lián)。

示例5包括示例1-4任一項(xiàng)的主題,并且優(yōu)選核對(duì)應(yīng)于經(jīng)由用戶接口的用戶選擇輸入。

示例6包括示例1-5任一項(xiàng)的主題,并且優(yōu)選核對(duì)應(yīng)于熔斷器表的數(shù)據(jù)。

示例7包括示例1-6任一項(xiàng)的主題,并且優(yōu)選核模塊用于:確定具有大于閾值的需求的線程的第一數(shù)量是否大于處理器的運(yùn)行核的第二數(shù)量;以及響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)線程-核關(guān)聯(lián)。

示例8包括示例1-7任一項(xiàng)的主題,并且優(yōu)選核模塊用于:響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)對(duì)應(yīng)于至少被標(biāo)識(shí)的核的所有線程-核關(guān)聯(lián)。

示例9包括示例1-8任一項(xiàng)的主題,并且優(yōu)選核模塊用于:響應(yīng)于確定線程的需求大于閾值,將線程添加到跟蹤器列表;基于用戶接口接收的包含列表或用戶請(qǐng)求中的至少一個(gè),對(duì)跟蹤器列表的線程排序。

示例10包括示例1-9任一項(xiàng)的主題,并且優(yōu)選核模塊用于:執(zhí)行被排序的跟蹤器列表的初始線程到優(yōu)選核列表中的初始條目的核的第一關(guān)聯(lián);執(zhí)行被排序的跟蹤器列表的下一線程到優(yōu)選核列表中的下一條目的核的第二關(guān)聯(lián);以及重復(fù)第二關(guān)聯(lián)直到被排序的跟蹤器列表的所有線程被關(guān)聯(lián)到優(yōu)選核列表的核的相應(yīng)核。

示例11是用于計(jì)算的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算包括對(duì)處理器核工作布置的確定,響應(yīng)于處理設(shè)備的執(zhí)行,在其上存儲(chǔ)使得處理設(shè)備執(zhí)行操作的指令的指令,用于:標(biāo)識(shí)處理器的多個(gè)核中的一個(gè)核相對(duì)于多個(gè)核中的另一個(gè)核為優(yōu)選的;確定對(duì)應(yīng)于處理器的線程的需求是否大于閾值;以及響應(yīng)于確定線程的需求大于閾值,如果線程還未被關(guān)聯(lián)到優(yōu)選核,則將線程關(guān)聯(lián)到被標(biāo)識(shí)的核。

示例12包括示例11的主題,并且操作進(jìn)一步用于:確定具有大于閾值的需求的線程的第一數(shù)量是否大于處理器的運(yùn)行核的第二數(shù)量;以及響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)線程-核關(guān)聯(lián)。

示例13包括示例11-12任一項(xiàng)的主題,并且操作進(jìn)一步用于:響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)對(duì)應(yīng)于至少被標(biāo)識(shí)的核的所有線程-核關(guān)聯(lián)。

示例14包括示例11-13任一項(xiàng)的主題,并且操作進(jìn)一步用于:響應(yīng)于確定線程的需求大于閾值,將線程添加到跟蹤器列表;以及基于用戶接口接收的包含列表或用戶請(qǐng)求中的至少一個(gè),對(duì)跟蹤器列表的線程排序。

示例15包括示例11-14任一項(xiàng)的主題,并且操作進(jìn)一步用于:執(zhí)行被排序的跟蹤器列表的初始線程到優(yōu)選核列表中的初始條目的核的第一關(guān)聯(lián);執(zhí)行被排序的跟蹤器列表的下一線程到優(yōu)選核列表中的下一條目的核的第二關(guān)聯(lián);以及重復(fù)第二關(guān)聯(lián)直到被排序的跟蹤器列表的所有線程被關(guān)聯(lián)到優(yōu)選核列表的核的相應(yīng)核。

示例16是一種用于計(jì)算的裝置,所述計(jì)算包括對(duì)確定與操作系統(tǒng)相關(guān)聯(lián)的線程的處理器核工作布置的確定,該裝置包括:多個(gè)核,其中多個(gè)核中的第一核具有第一物理特性并且多個(gè)核中的第二核具有與第一物理特性不同的第二物理特性;以及功率控制單元,用于:確定是否將線程中的候選線程遷移到或遷移出多個(gè)核中的候選者;查明操作系統(tǒng)是否包括預(yù)定模式;以及基于查明的結(jié)果選擇多個(gè)核中的候選者。

示例17包括示例16的主題,并且功率控制單元進(jìn)一步用于:如果操作系統(tǒng)包括預(yù)定模式,則基于多個(gè)核的不同物理特性生成多個(gè)核的第一組的第一排序;如果操作系統(tǒng)不包括預(yù)定模式,則基于多個(gè)核的不同物理特性生成多個(gè)核的第二組的第二排序,其中第二排序與第一排序不同;以及從第一或第二排序的頂部選擇多個(gè)核中的候選核。

示例18包括示例16-17任一項(xiàng)的主題,并且功率控制單元進(jìn)一步用于:選擇多個(gè)核的第一子集,其中第一子集的每個(gè)核具有大于閾值物理特性的對(duì)應(yīng)的物理特性;以及其中多個(gè)核的第二子集包括余下的核;響應(yīng)于標(biāo)識(shí)正在運(yùn)行并且與第一時(shí)刻調(diào)度的工作相關(guān)聯(lián)的第一子集的核中的一個(gè)核,在第一時(shí)刻形成第一或第二組。

示例19包括示例16-18任一項(xiàng)的主題,并且功率控制單元進(jìn)一步用于:響應(yīng)于標(biāo)識(shí)在第一時(shí)刻正在運(yùn)行的第二子集的核中的一個(gè)核,在第二時(shí)刻形成第三組。

示例20包括示例16-19任一項(xiàng)的主題,并且功率控制單元進(jìn)一步用于:僅當(dāng)操作系統(tǒng)不包括預(yù)定模式并且第二組的成員與第三組的成員相同時(shí),在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核;以及僅當(dāng)操作系統(tǒng)包括預(yù)定模式并且第一排序的成員與第三組的排序的成員相同并且按相同順序,在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核。

示例21是一種方法,用于計(jì)算包括相對(duì)于多個(gè)架構(gòu)上相同的核對(duì)與操作系統(tǒng)相關(guān)聯(lián)的線程的處理器核工作布置的確定,該方法包括:確定是否將線程中的候選線程遷移到或遷移出多個(gè)架構(gòu)上相同的核中的候選者;查明操作系統(tǒng)是否包括預(yù)定模式;并且基于查明的結(jié)果選擇多個(gè)架構(gòu)上相同的核中的候選者。

示例22包括示例21的主題,并且如果操作系統(tǒng)包括預(yù)定模式,則基于多個(gè)架構(gòu)上相同的核的不同物理特性生成多個(gè)架構(gòu)上相同的核的第一組的第一排序;如果操作系統(tǒng)不包括預(yù)定模式,則基于多個(gè)架構(gòu)上相同的核的不同物理特性生成多個(gè)架構(gòu)上相同的核的第二組的第二排序,其中第二排序與第一排序不同;以及從第一或第二排序的頂部選擇多個(gè)架構(gòu)上相同的核中的候選核。

示例23包括示例20-21任一項(xiàng)的主題,選擇多個(gè)架構(gòu)上相同的核的第一子集,其中第一子集的每個(gè)核具有大于閾值物理特性的對(duì)應(yīng)的物理特性;以及其中多個(gè)架構(gòu)上相同的核的第二子集包括余下的核;響應(yīng)于標(biāo)識(shí)正在運(yùn)行并且與第一時(shí)刻調(diào)度的工作相關(guān)聯(lián)的第一子集的核中的一個(gè)核,在第一時(shí)刻形成第一或第二組。

示例24包括示例21-23任一項(xiàng)的主題,并且響應(yīng)于標(biāo)識(shí)在第一時(shí)刻正在運(yùn)行的第二子集的核中的一個(gè)核,在第二時(shí)刻形成第三組;僅當(dāng)操作系統(tǒng)不包括預(yù)定模式并且第二組的成員與第三組的成員相同時(shí),在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核;以及僅當(dāng)操作系統(tǒng)包括預(yù)定模式并且第一排序的成員與第三組的排序的成員相同并且按相同順序時(shí),在對(duì)應(yīng)于第一和第二時(shí)刻的迭代遷移檢查過(guò)程的迭代期間標(biāo)識(shí)候選線程和候選核。

示例25包括示例21-24任一項(xiàng)的主題,其中預(yù)定模式是使操作系統(tǒng)能為特定的工作項(xiàng)請(qǐng)求特定水平的性能或功率的模式。

示例26是一種確定處理器核工作布置的設(shè)備,該設(shè)備包括:用于將處理器的多個(gè)核中的一個(gè)核相對(duì)于多個(gè)核中的另一個(gè)核標(biāo)識(shí)為優(yōu)選的的裝置;用于確定對(duì)應(yīng)于處理器的線程的需求是否大于閾值的裝置;以及用于響應(yīng)于確定線程的需求大于閾值,如果線程還未被關(guān)聯(lián)到優(yōu)選核,將線程關(guān)聯(lián)到被標(biāo)識(shí)的核的裝置。

示例27包括示例26的主題,以及用于確定具有大于閾值的需求的線程的第一數(shù)量是否大于處理器的運(yùn)行核的第二數(shù)量的裝置;以及用于響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)線程-核關(guān)聯(lián)的裝置。

示例28包括示例26-27任一項(xiàng)的主題,以及用于響應(yīng)于確定第一數(shù)量大于第二數(shù)量,解關(guān)聯(lián)對(duì)應(yīng)于至少被標(biāo)識(shí)的核的所有線程-核關(guān)聯(lián)的裝置。

示例29包括示例26-28任一項(xiàng)的主題,并且響應(yīng)于確定線程的需求大于閾值,將線程添加到跟蹤器列表;以及基于用戶接口接收的包含列表或用戶請(qǐng)求中的至少一個(gè),對(duì)跟蹤器列表的線程排序。

示例30包括示例26-29任一項(xiàng)的主題,并且執(zhí)行被排序的跟蹤器列表的初始線程到優(yōu)選核列表中的初始條目的核的第一關(guān)聯(lián);執(zhí)行被排序的跟蹤器列表的下一線程到優(yōu)選核列表中的下一條目的核的第二關(guān)聯(lián);以及重復(fù)第二關(guān)聯(lián)直到被排序的跟蹤器列表的所有線程被關(guān)聯(lián)到優(yōu)選核列表的核的相應(yīng)核。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1