本申請要求2015年8月31日提交的第10-2015-0122353號韓國專利申請的優(yōu)先權(quán),該韓國申請的公開內(nèi)容通過引用整體并入于此。
技術(shù)領(lǐng)域
本發(fā)明構(gòu)思實施例涉及一種操作中央處理單元(CPU)的方法,并且更具體地,涉及一種操作能夠調(diào)整CPU的服務(wù)質(zhì)量(QoS)的CPU的方法以及一種操作包括該CPU的系統(tǒng)的方法。
背景技術(shù):
微處理器,具體地,移動應(yīng)用處理器使用動態(tài)地改變操作頻率的技術(shù),例如,動態(tài)頻率調(diào)節(jié)(DFS)技術(shù)或動態(tài)電壓和頻率調(diào)節(jié)(DVFS)技術(shù),以滿足對于性能和低功率兩者的需求。微處理器使用用于調(diào)整操作時鐘信號的頻率的各種策略。移動環(huán)境可能對要被使用的功率的量施加限制并且可能產(chǎn)生對于熱的易損性,以及因此,策略對微處理器的性能進行約束并且微處理器被設(shè)計為使得功率消耗和熱生成最小化。
在現(xiàn)有技術(shù)的微處理器中所使用的DVFS的DVFS調(diào)節(jié)器(governor)針對限制在微處理器中所消耗的功率而優(yōu)化,使得即使特定的任務(wù)連續(xù)地使用微處理器的最大可用性能,微處理器的操作頻率也不立即提高到最大操作頻率。
技術(shù)實現(xiàn)要素:
本發(fā)明構(gòu)思的技術(shù)目的是提供一種操作CPU的方法,該CPU能夠當迫切地需要高性能時自動感測,并且能夠根據(jù)感測結(jié)果自動地設(shè)置QoS最小值,以及一種操作包括該CPU的系統(tǒng)的方法。
本發(fā)明構(gòu)思的示例實施例針對一種操作CPU的方法,該CPU包括用于存儲第一負載追蹤器和增強器(booster)的第一存儲器以及用于運行第一負載追蹤器和增強器的第一核心,其中,該方法包括:通過第一負載追蹤器來確定在第一核心中是否運行第一空閑任務(wù);通過第一負載追蹤器來生成與確定結(jié)果相對應(yīng)的第一事件;通過第一負載追蹤器來向增強器廣播所生成的第一事件;以及通過增強器來基于第一事件設(shè)置第一核心的服務(wù)質(zhì)量(QoS)最小值。
操作CPU的方法可以進一步包括:當CPU被初始化時,通過第一負載追蹤器將空閑起始工作線程回調(diào)和空閑終止工作線程回調(diào)注冊到空閑模塊中;以及當CPU被初始化時,通過第一負載追蹤器生成空閑起始工作線程和空閑終止工作線程。
操作CPU的方法可以進一步包括:當CPU被初始化時,通過增強器來設(shè)置空閑起始工作線程的第一過期時間和空閑終止工作線程的第二過期時間。
所述方法可以進一步包括:當?shù)谝豢臻e任務(wù)被運行時,通過空閑模塊調(diào)用空閑起始工作線程回調(diào);以及當?shù)谝豢臻e任務(wù)終止時,通過空閑模塊調(diào)用空閑終止工作線程回調(diào)。
所述方法可以進一步包括:當運行第一空閑任務(wù)時,通過空閑起始工作線程回調(diào)來調(diào)度空閑起始工作線程;以及當運行第一空閑任務(wù)時,通過空閑終止工作線程回調(diào)來調(diào)度空閑終止工作線程。
所述方法可以進一步包括:當?shù)谝豢臻e任務(wù)被運行時,通過空閑起始工作線程回調(diào)取消在工作序列中存在的前一個空閑終止工作線程的調(diào)度。
通過第一負載追蹤器生成第一事件可以包括:當?shù)谝贿^期時間經(jīng)過時,通過空閑起始工作線程生成指令QoS最小值降低的第一事件;以及當?shù)诙^期時間經(jīng)過時,通過空閑終止工作線程來取消空閑起始工作線程的調(diào)度,并且生成指令QoS最小值提高的第一事件。
操作CPU的方法可以進一步包括:通過所述增強器基于設(shè)置的QoS最小值來向QoS控制器輸出用于第一核心的動態(tài)電壓頻率調(diào)節(jié)(DVFS)的控制信號;以及通過所述QoS控制器響應(yīng)于所述控制信號來生成與第一核心的操作時鐘信號的頻率控制有關(guān)的頻率控制信號和與第一核心的操作電壓的控制有關(guān)的電壓控制信號。
所述CPU進一步包括用于存儲第二負載追蹤器的第二存儲器以及用于運行第二負載追蹤器的第二核心,并且操作CPU的所述方法可以進一步包括:通過所述第二負載追蹤器來確定在所述第二核心中是否運行第二空閑任務(wù);通過所述第二負載追蹤器來生成與所述確定結(jié)果相對應(yīng)的第二事件;通過所述第二負載追蹤器來向在所述第一核心中所運行的增強器廣播所生成的第二事件;以及通過所述增強器來基于所述第一事件和所述第二事件設(shè)置所述第一核心的QoS最小值和所述第二核心的QoS最小值。
操作CPU的所述方法可以進一步包括:基于所述第一核心的設(shè)置的QoS最小值和所述第二核心的設(shè)置的QoS最小值,將被指派給所述第一核心的任務(wù)強制地指派給所述第二核心。
本發(fā)明構(gòu)思的示例實施例針對一種操作片上系統(tǒng)的方法,該片上系統(tǒng)包括:CPU,具有用于存儲第一負載追蹤器、增強器和QoS控制器的第一存儲器,并且進一步具有用于運行第一負載追蹤器、增強器和QoS控制器的第一核心;時鐘管理單元;以及功率管理單元。操作片上系統(tǒng)的方法包括:通過第一負載追蹤器來確定在第一核心中是否運行第一空閑任務(wù);通過第一負載追蹤器來生成與確定結(jié)果相對應(yīng)的第一事件;通過第一負載追蹤器來向增強器廣播所生成的第一事件;通過增強器來基于第一事件設(shè)置第一核心的服務(wù)質(zhì)量(QoS)最小值;通過QoS控制器來生成頻率控制信號和電壓控制信號;通過時鐘管理單元來響應(yīng)于頻率控制信號控制被供給到第一核心的第一時鐘信號的第一頻率;以及通過功率管理單元響應(yīng)于電壓控制信號來生成用于控制功率管理IC的控制信號,以用于將第一操作電壓供給到第一核心。
操作片上系統(tǒng)的方法可以進一步包括:當CPU被初始化時,通過第一負載追蹤器將空閑起始工作線程回調(diào)和空閑終止工作線程回調(diào)注冊到空閑模塊中;以及當CPU被初始化時,通過第一負載追蹤器生成空閑起始工作線程和空閑終止工作線程。
所述方法可以進一步包括:當?shù)谝豢臻e任務(wù)被運行時,通過空閑模塊調(diào)用空閑起始工作線程回調(diào);以及當?shù)谝豢臻e任務(wù)終止時,通過空閑模塊調(diào)用空閑終止工作線程回調(diào)。
所述方法可以進一步包括:當?shù)谝豢臻e任務(wù)被運行時,通過空閑起始工作線程回調(diào)取消在工作序列中存在的前一個空閑終止工作線程的調(diào)度;通過空閑起始工作線程回調(diào)確定空閑起始工作線程的調(diào)度前提;以及當滿足所述調(diào)度前提時,通過所述空閑起始工作線程回調(diào)來調(diào)度所述空閑起始工作線程。所述調(diào)度前提可以包括其中所述空閑起始工作線程或所述空閑終止工作線程均沒有待決的情況,以及其中所述空閑起始工作線程未待決并且所述第一核心被增強的情況。
所述方法可以進一步包括:當所述第一空閑任務(wù)被終止時,通過所述空閑終止工作線程回調(diào)來確定所述空閑終止工作線程的調(diào)度前提;以及當滿足所述調(diào)度前提時,通過所述空閑終止工作線程回調(diào)來調(diào)度所述空閑終止工作線程。所述調(diào)度前提包括其中所述空閑終止工作線程未待決并且所述空閑工作起始線程待決的情況,以及其中所述空閑終止工作線程未待決并且所述第一核心未被增強的情況。
所述CPU進一步包括用于存儲第二負載追蹤器的第二存儲器以及用于運行第二負載追蹤器的第二核心,并且所述方法進一步包括:通過所述第二負載追蹤器來確定在所述第二核心中是否運行第二空閑任務(wù);通過所述第二負載追蹤器來生成與所述確定結(jié)果相對應(yīng)的第二事件;通過所述第二負載追蹤器來向在所述第一核心中運行的所述增強器廣播所生成的第二事件;通過所述增強器來基于所述第一事件和所述第二事件設(shè)置所述第一核心的設(shè)置的QoS最小值和所述第二核心的設(shè)置的QoS最小值;通過所述QoS控制器來基于所述第一核心的設(shè)置的QoS最小值和所述第二核心的設(shè)置的QoS最小值輸出頻率控制信號和電壓控制信號;通過所述時鐘管理單元來響應(yīng)于所述頻率控制信號控制被供給到所述第一核心的第一時鐘信號的第一頻率和被供給到所述第二核心的第二時鐘信號的第二頻率;以及通過所述功率管理單元響應(yīng)于所述電壓控制信號來輸出用于控制所述功率管理IC的控制信號,以用于將第一操作電壓供給到所述第一核心和第二操作電壓供給到所述第二核心。
本發(fā)明構(gòu)思的示例實施例針對一種操作計算系統(tǒng)的方法,該計算系統(tǒng)包括:CPU,具有用于存儲第一負載追蹤器、增強器和QoS控制器的第一存儲器,并且進一步具有用于運行第一負載追蹤器、增強器和QoS控制器的第一核心;時鐘管理單元;功率管理單元;以及功率管理IC,而所述方法包括:通過第一負載追蹤器來確定在第一核心中是否運行第一空閑任務(wù);通過第一負載追蹤器來生成與確定結(jié)果相對應(yīng)的第一事件;通過第一負載追蹤器來向增強器廣播所生成的第一事件;通過增強器來基于第一事件設(shè)置第一核心的QoS最小值;通過QoS控制器基于所設(shè)置的QoS最小值來生成第一頻率控制信號和第一電壓控制信號;通過時鐘管理單元來響應(yīng)于第一頻率控制信號控制被供給到第一核心的第一時鐘信號的第一頻率;通過功率管理單元來響應(yīng)于第一電壓控制信號將第一控制信號輸出到功率管理IC;以及通過功率管理IC來響應(yīng)于第一控制信號控制被供給到第一核心的第一操作電壓。
操作計算系統(tǒng)的方法可以進一步包括:當CPU被初始化時,通過第一負載追蹤器將空閑起始工作線程回調(diào)和空閑終止工作線程回調(diào)注冊到空閑模塊中;以及當CPU被初始化時,通過第一負載追蹤器生成空閑起始工作線程和空閑終止工作線程。
所述CPU進一步包括用于存儲第二負載追蹤器的第二存儲器以及用于運行第二負載追蹤器的第二核心,并且操作計算系統(tǒng)的方法進一步包括:通過所述第二負載追蹤器來確定在所述第二核心中是否運行第二空閑任務(wù);通過所述第二負載追蹤器來生成與所述確定結(jié)果相對應(yīng)的第二事件;通過所述第二負載追蹤器來向在所述第一核心中運行的所述增強器廣播所生成的第二事件;通過所述增強器來基于所述第一事件和所述第二事件設(shè)置所述第一核心的設(shè)置的QoS最小值和所述第二核心的設(shè)置的QoS最小值;通過所述QoS控制器來基于所述第一核心的設(shè)置的QoS最小值和所述第二核心的設(shè)置的QoS最小值生成第二頻率控制信號和第二電壓控制信號;通過所述時鐘管理單元來響應(yīng)于所述第二頻率控制信號控制被供給到所述第一核心的第一時鐘信號的第一頻率和被供給到所述第二核心的第二時鐘信號的第二頻率;通過所述功率管理單元響應(yīng)于所述第二電壓控制信號來向所述功率管理IC輸出第二控制信號;以及通過所述功率管理IC響應(yīng)于所述第二控制信號控制被供給到所述第一核心的第一操作電壓和被供給到所述第二核心的第二操作電壓。
本發(fā)明構(gòu)思的示例性實施例涉及如下方法,所述方法包括:中央處理單元(CPU)監(jiān)視CPU的第一核心的第一空閑任務(wù)的狀態(tài);至少部分地基于CPU的第一核心的第一空閑任務(wù)的監(jiān)視狀態(tài)來設(shè)置CPU的增強等級;以及通過時鐘管理單元響應(yīng)于所述增強等級來控制第一核心的第一操作信號的第一頻率。
所述方法還包括:中央處理單元(CPU)監(jiān)視CPU的第二核心的第二空閑任務(wù)的狀態(tài);至少部分地基于CPU的第一核心的第一空閑任務(wù)的監(jiān)視狀態(tài)和CPU的第二核心的第二空閑任務(wù)的監(jiān)視狀態(tài)來設(shè)置CPU的增強等級;以及通過時鐘管理單元響應(yīng)于所述增強等級來控制第一核心的第一操作時鐘信號的第一頻率和第二核心的第二操作時鐘信號的第二頻率。
所述方法還可以包括:基于CPU的第一核心的第一空閑任務(wù)的監(jiān)視狀態(tài)來設(shè)置第一核心的服務(wù)質(zhì)量(QoS)最小值;以及響應(yīng)于第一核心的QoS最小值來控制被供給到第一核心的第一操作電壓。
所述方法還可以包括:中央處理單元(CPU)監(jiān)視CPU的第二核心的第二空閑任務(wù)的狀態(tài);基于CPU的第二核心的第二空閑任務(wù)的監(jiān)視狀態(tài)來設(shè)置CPU的第二核心的服務(wù)質(zhì)量(QoS)最小值;以及響應(yīng)于第二核心的QoS最小值來控制被供給到第二核心的第二操作電壓。
計算機可以包括所述CPU、用于與至少一個存儲器設(shè)備進行通信的至少一個存儲器接口、以及輸入/輸出接口。在該種情況下,所述方法還可以包括響應(yīng)于增強等級來調(diào)整存儲器接口的存儲器接口時鐘的頻率以及I/O接口的I/O時鐘的頻率中的至少一個。
附圖說明
結(jié)合附圖,從實施例的以下描述中,本發(fā)明一般構(gòu)思的這些和/或其他方面和優(yōu)點將變得顯而易見和更加容易理解,在附圖中:
圖1是根據(jù)本發(fā)明構(gòu)思的示例性實施例的計算機系統(tǒng)的框圖。
圖2示出了圖1中所示的CPU的示例性實施例。
圖3示出了由圖1中所示的CPU所運行的軟件組件。
圖4是用于描述根據(jù)本發(fā)明構(gòu)思的示例性實施例的增強的概念圖。
圖5是描述通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的流程圖。
圖6是描述通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的示例性實施例的流程圖。
圖7和圖8是描述通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的示例性實施例的流程圖。
圖9示出了圖2中所示的QoS控制器的示例性實施例。
圖10示出了圖1中所示的CPU的示例性實施例。
圖11是描述使用圖10中所示的CPU所執(zhí)行的控制增強等級的方法的概念圖。
圖12是描述使用圖10中所示的CPU所執(zhí)行的控制增強等級的方法的概念圖。
圖13是描述使用圖10中所示的CPU所運行的軟件組件來控制QoS最小值的方法的概念圖。
圖14、圖15和圖16是描述使用圖10中所示的CPU所運行的軟件組件來控制QoS最小值的方法的示例性實施例的流程圖。
圖17是用于描述在圖3中所示的空閑模塊中注冊空閑工作線程(worker)回調(diào)的處理的程序代碼的示例性實施例。以及
圖18是用于描述在圖3中所示的空閑模塊中所注冊的空閑工作線程回調(diào)中的空閑起始工作線程和空閑終止工作線程的調(diào)度處理和取消處理的程序代碼的示例性實施例。
具體實施方式
現(xiàn)在將詳細參考本發(fā)明一般構(gòu)思的實施例,其示例在所附附圖中示出,其中,在整個附圖中,相同的參考標號表示相同的元件。以下描述實施例以通過參考附圖來解釋本發(fā)明的一般構(gòu)思。
根據(jù)本發(fā)明構(gòu)思的示例性實施例涉及提高中央處理單元(CPU)的性能的方法。根據(jù)示例性實施例,CPU可以包括一個或多個核心。根據(jù)示例性實施例,核心中的每個可以共享一個半導體基板(或一個半導體芯片),并且可以被例示為不同的半導體芯片。這里,核心可以指代處理器或處理器核心
在本文中,根據(jù)是否運行空閑任務(wù)來設(shè)置CPU或包括CPU的計算機系統(tǒng)的服務(wù)質(zhì)量(QoS)最小值可以指代提高CPU或計算機系統(tǒng)的性能的操作。在本文中,QoS最小值的設(shè)置可以包括設(shè)置CPU或包括CPU的計算機系統(tǒng)的增強等級。這里,設(shè)置可以包括特定值的程序或特定值的改變。當調(diào)用調(diào)度器時,如果不存在處于就緒狀態(tài)中的任務(wù),則可以運行空閑任務(wù)。這里,QoS可以指代動態(tài)電壓和頻率調(diào)節(jié)(DVFS),并且QoS最小值可以指代DVFS的最小操作頻率和最小操作電壓中的至少一個。
DVFS調(diào)節(jié)器可以通過操作系統(tǒng)(OS)運行來作為改變CPU(或核心)的操作頻率的模塊(例如,軟件或軟件組件)。增強可以指代下述操作:忽略DVFS調(diào)節(jié)器的管理或DVFS調(diào)節(jié)器的默認值,并且快速地提高CPU(或核心)的操作頻率和/或操作電壓。
因此,增強的核心可以以DVFS的最大操作頻率(或與最大操作頻率相對應(yīng)的操作頻率)和/或最大操作電壓(或與最大操作電壓相對應(yīng)的操作電壓)來進行操作。例如,當CPU運行基準點(benchmark)程序時,可能需要用于CPU的增強。
在本文中,增強可以包括調(diào)度器增強和異構(gòu)多處理器架構(gòu)(HMP)增強。調(diào)度器增強可以指代通過改變調(diào)度器的一個或多個參數(shù)來使得CPU的吞吐量最大化的操作。例如,調(diào)度器的(一個或多個)參數(shù)可以包括nice、均衡區(qū)間以及HZ;然而其不限于此。例如,nice可以指代以修改的調(diào)度優(yōu)先級來運行程序,均衡區(qū)間可以指代通過在CPU或核心之間進行任務(wù)重新指派來進行負載均衡的區(qū)間,以及HZ可以指代每秒時鐘周期的數(shù)目。
HMP增強可以指代將被指派給低功率核心(例如,小核)的任務(wù)強制地指派給高性能核心(例如,大核)的操作。
根據(jù)本發(fā)明構(gòu)思的示例性實施例的增強器可以接收從至少一個負載追蹤器所輸出的事件,并且基于所接收的事件來控制增強操作的起始和終止、增強等級的改變和/或與增強有關(guān)的依賴于處理器(或由處理器所運行的OS)的操作。
在本文中,調(diào)度可以指代在工作序列中寫入超時值和起始地址的操作,并且調(diào)度的取消可以指代擦除在工作序列中所寫入的超時值和起始地址的操作。
圖1是根據(jù)本發(fā)明構(gòu)思的示例性實施例的計算機系統(tǒng)100的框圖。參考圖1,計算機系統(tǒng)100可以包括控制電路200、功率管理IC(PMIC)270、第一存儲器設(shè)備280以及第二存儲器設(shè)備290。
計算機系統(tǒng)100可以被例示為個人計算機(PC)或移動設(shè)備。例如,移動設(shè)備可以被例示為膝上型計算機、移動電話、智能電話、平板式PC、個人數(shù)字助理(PDA)、企業(yè)數(shù)字助理(EDA)、數(shù)字靜態(tài)相機、數(shù)字視頻相機、便攜式多媒體播放器(PMP)、個人導航設(shè)備或便攜式導航設(shè)備(PND)、手持式游戲控制臺、移動互聯(lián)網(wǎng)設(shè)備(MID)、可穿戴計算機、物聯(lián)網(wǎng)(IoT)設(shè)備、萬物網(wǎng)(IoE)設(shè)備、無人機或電子書。然而,其不限于此。
控制電路200可以控制功率管理IC 270、第一存儲器設(shè)備280以及第二存儲器設(shè)備290的操作??刂齐娐?00可以被例示為集成電路(IC)、母版、片上系統(tǒng)(SoC)、微處理器、應(yīng)用處理器(AP)、移動AP、芯片集、半導體芯片的集合;然而,其不限于此。
控制電路200可以包括總線201、CPU 210、時鐘控制或時鐘管理單元(CMU)220、功率管理單元(PMU)230、圖形處理單元(GPU)240、第一存儲器接口250、第二存儲器接口260以及輸入/輸出(I/O)接口265。
配置元件210、240、250、260以及265可以通過總線201向彼此傳送數(shù)據(jù)或者從彼此接收數(shù)據(jù)??偩€201可以被例示為高級微控制器總線架構(gòu)(AMBA)、高級高性能總線(AHB)、高級外圍總線(APB)、高級可擴展接口(AXI)、高級系統(tǒng)總線(ASB)、AXI一致性擴展(ACE)或這些的組合;然而,其不限于此。
CPU 210可以包括一個或多個核心。CPU 210可以使用第一操作電壓PW1和第一時鐘信號CLK1來進行操作。CPU 210可以運行要在本文中描述的軟件組件,例如,負載追蹤器、增強器以及QoS控制器。根據(jù)示例性實施例,負載追蹤器、增強器以及QoS控制器可以被例示為硬件組件。根據(jù)示例性實施例,負載追蹤器、增強器以及QoS控制器可以被存儲在CPU 210的存儲器(例如,指令緩存)中。
CPU 210可以使用軟件組件(或硬件組件)來生成時鐘控制信號CTR_C和功率控制信號CTR_P,以及向CMU 220輸出時鐘控制信號CTR_C并且向PMU 230輸出功率控制信號CTR_P。功率控制信號CTR_P可以被稱為電壓控制信號。
CMU 220可以使用時鐘控制信號CTR_C來控制相應(yīng)的時鐘信號CLK1至CLK5的頻率。相應(yīng)的時鐘信號CLK1至CLK5的頻率可以彼此相同或彼此不同。
PMU 230可以使用功率控制信號CTR_P來生成控制信號CTR,并且將控制信號CTR輸出到PMIC 270。PMIC 270可以使用控制信號CTR來控制相應(yīng)的操作電壓PW1至PW6的電平。相應(yīng)的操作電壓PW1至PW6的電平可以彼此相同或彼此不同。PMIC 270可以使用控制信號CTR來控制被供給到配置元件200、280以及290中的每個的操作電壓的電平。頻率控制或電平控制可以包括增加、維持或降低。控制信號CTR_C、CTR_P以及CTR中的每個可以包括一個或多個信號(例如,模擬信號或數(shù)字信號)。
根據(jù)CMU 220和PMU 230的控制,可以針對計算機系統(tǒng)100來執(zhí)行(或控制)動態(tài)電壓調(diào)節(jié)(DVS)、動態(tài)頻率調(diào)節(jié)(DFS)或動態(tài)電壓和頻率調(diào)節(jié)(DVFS)。
GPU 240可以使用第二操作電壓PW2和第二時鐘信號CLK2來對圖形數(shù)據(jù)進行處理。圖形數(shù)據(jù)可以包括2D圖形數(shù)據(jù)和/或3D圖形數(shù)據(jù)。
第一存儲器接口250可以使用第三操作電壓PW3和第三時鐘信號CLK3來對在總線201與第一存儲器設(shè)備280之間所傳送的或接收的數(shù)據(jù)進行處理(或連接(interface))。第一存儲器接口250可以用作存儲器控制器。第一存儲器設(shè)備280可以被例示為隨機存取存儲器(RAM)、動態(tài)RAM(DRAM)或靜態(tài)RAM(SRAM);然而,其不限于此。
第二存儲器接口260可以使用第四操作電壓PW4和第四時鐘信號CLK4來對在總線201與第二存儲器設(shè)備290之間所傳送的或接收的數(shù)據(jù)進行處理(或連接)。第二存儲器接口260可以用作存儲器控制器。第二存儲器設(shè)備290可以被例示為非易失性存儲器設(shè)備。非易失性存儲器設(shè)備可以被例示為基于閃存的存儲裝置;然而,其不限于此。例如,基于閃存的存儲裝置可以被例示為固態(tài)驅(qū)動器或固態(tài)盤(SSD)、嵌入式SSD(eSSD)、通用閃速存儲裝置(UFS)、多媒體卡(MMC)、嵌入式MMC(eMMC)或管理型NAND;然而,其不限于此。
輸入/輸出接口265可以使用第五操作電壓PW5和第五時鐘信號CLK5來向外部設(shè)備傳送數(shù)據(jù)或從外部設(shè)備接收數(shù)據(jù)。輸入/輸出接口265可以被例示為串行外圍接口(SPI)、集成電路間通信(I2C)、串行高級技術(shù)附件(SATA)、快速SATA(SATA express,SATAe)、串行附接小型計算機系統(tǒng)接口(SCSI)(SAS)或能夠支持外圍組件快速互聯(lián)(PCIe)或移動工業(yè)處理器接口的接口;然而,其不限于此。
圖2示出了可以為圖1中所示的CPU 210的示例性實施例的CPU 210A。根據(jù)圖1中所示的CPU 210的示例性實施例的CPU 210A可以包括一個核心210以及第一存儲器設(shè)備213和第二存儲器設(shè)備215。核心211可以控制第一存儲器設(shè)備213和第二存儲器設(shè)備215中的每個的操作。第一存儲器設(shè)備213可以包括指令緩存213,并且第二存儲器設(shè)備215可以包括數(shù)據(jù)緩存215。盡管在圖2中示出了等級一的緩存213和215,但是緩存213和215中的每個可以被例示為等級二的緩存。
另外,在圖2中示出了根據(jù)本發(fā)明構(gòu)思的示例性實施例的QoS控制模塊300。QoS控制模塊300可以包括負載追蹤器310、增強器330和QoS控制器340。QoS控制模塊300可以進一步包括圖3中所示的配置元件337、350和380。
QoS控制模塊300可以調(diào)整CPU 210A的QoS,而不校正DFS策略和DVFS策略,在上述DFS策略和DVFS策略中,當迫切地需要高性能時——諸如,當運行基準點程序時——通過自動地感測基準點程序的運行來優(yōu)化功率,并且提高CPU 210/210A、控制電路200或計算機系統(tǒng)100的性能。該策略可以被稱為調(diào)節(jié)器。
QoS控制模塊300可以基于中斷來感測負載或任務(wù)的發(fā)生,而不依賴于周期性的輪詢。可以通過對計算機系統(tǒng)100的用戶輸入、計時器的輸出以及從另一核心所輸出的信號來生成中斷。QoS控制模塊300可以基于中斷來感測核心211進行操作而未停止(rest)的時間以及核心211停止的時間,而不進行輪詢。
圖3示出了由圖1中所示的CPU 210所運行的軟件組件。如上所示,QoS控制模塊300可以包括負載追蹤器310、增強器330以及QoS控制器340—在圖3中示出了上述所有。根據(jù)示例性實施例,QoS控制模塊300可以進一步包括QoS相關(guān)系統(tǒng)文件337、空閑模塊350以及工作序列380—其也在圖3中示出。負載追蹤器310可以確定在核心211中是否執(zhí)行空閑任務(wù)370,生成與確定結(jié)果相對應(yīng)的事件EVENT1或EVENT2以及向增強器330廣播事件EVENT1或EVENT2。增強器330可以基于事件EVENT1或EVENT2來設(shè)置核心211的QoS最小值。
圖4是用于描述根據(jù)本發(fā)明構(gòu)思的示例性實施例的增強的概念圖。
參考圖4,附圖標記301指代不需要增強的任務(wù),并且附圖標記303指代需要增強的任務(wù)。就增強而言,STH代表增強起始閾值時間,并且ETH代表增強終止閾值時間。就空閑任務(wù)而言,STH代表空閑終止工作線程超時時間或空閑終止工作線程時間,并且ETH代表空閑起始工作線程超時時間或空閑起始工作線程過期時間。
如圖4所示,當核心211運行不需要增強的任務(wù)301時,核心211為被增強。然而,當空閑時間短時(例如,當時間短于STH時),即使核心211進入空閑狀態(tài),則也可以維持核心211的增強。即,當核心211被增強時,QoS控制模塊300可以設(shè)置QoS最小值。
圖5是描述通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的示例性實施例的流程圖。參考圖3至圖5,通過核心211所運行的QoS控制模塊300,例如,負載追蹤器310,可以確定是否運行空閑任務(wù)370(S110)。
當運行空閑任務(wù)370(圖3的370或S110中的是)時,則負載追蹤器310可以生成指令增強終止或降低增強等級的降低指令事件EVENT1(S112)。當未運行空閑任務(wù)370時(S110中的否),例如,當空閑任務(wù)370被完成時(圖3的S375),則負載追蹤器310可以生成指令增強起始或提高增強等級的提高指令事件EVENT2(S114)。
QoS控制模塊300,例如,增強器330可以響應(yīng)于降低指令事件EVENT1或提高指令事件EVENT2來設(shè)置用于控制增強(或增強等級)的增強控制值或QoS最小值(S116)。即,增強器330可以解析降低指令事件EVENT1或提高指令事件EVENT2,并且將與解析結(jié)果相對應(yīng)的(一個或多個)值存儲在QoS相關(guān)系統(tǒng)文件337中。QoS控制器340可以基于在QoS相關(guān)系統(tǒng)文件337中所存儲的增強控制值或QoS最小值,來生成用于增強控制或QoS最小值控制的控制信號(S118)。例如,控制信號可以包括頻率控制信號CTR_C和功率控制信號CTR_P。QoS相關(guān)系統(tǒng)文件337可以指代用于存儲與解析結(jié)果相對應(yīng)的性能相關(guān)參數(shù)或(一個或多個)值的計算機文件。
圖6是描述可以通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的示例性實施例的流程圖。參考圖3和圖6,負載追蹤器310可以確定空閑任務(wù)370是否起始(S210)。
當空閑任務(wù)370起始時(圖3的371或S210中的是),則在空閑模塊350中所存儲的空閑起始工作線程回調(diào)351可以取消在工作序列380中所存儲的前一個空閑終止工作線程的調(diào)度(或計時器的超時時間或過期時間)(S220)。然而,當在工作序列380中不存在前一個空閑終止工作線程時,則處理220可以被省略(或跳過)。
空閑起始工作線程回調(diào)351可以調(diào)度空閑起始工作線程311(S222)。因此,與空閑起始工作線程311相對應(yīng)的空閑起始工作線程381可以被調(diào)度或列隊在工作序列380中。例如,空閑起始工作線程回調(diào)351可以設(shè)置閑起始工作線程311或381的計時器的超時時間或過期時間。
工作序列380可以確定在空閑起始工作線程381中所設(shè)置的過期時間是否過期(或經(jīng)過)(S224)。當過期時間未過期或經(jīng)過時(S224中的否),則工作序列380可以重復或連續(xù)地運行處理S224。然而,當過期時間過期或經(jīng)過時(S224中的是),則空閑起始工作線程311或381可以生成指令增強終止或降低增強等級的降低指令事件EVENT1,并且向增強器S330廣播降低指令事件EVENT1(S226)。
增強器330可以響應(yīng)于降低指令事件EVENT1來設(shè)置用于控制增強(或增強等級)的增強控制值或QoS最小值(S240)。即,增強器330可以解析降低指令事件EVENT1,并且將與解析結(jié)果相對應(yīng)的(一個或多個)值存儲在QoS相關(guān)系統(tǒng)文件337中。QoS控制器340可以基于在QoS相關(guān)系統(tǒng)文件337中所存儲的增強控制值或QoS最小值,來生成用于增強控制或QoS最小值控制的控制信號(S242)。例如,控制信號可以包括頻率控制信號CTR_C和功率控制信號CTR_P。
當終止空閑狀態(tài)373中的空閑任務(wù)370時(圖3的375或S210中的否),則在空閑模塊350中所存儲的空閑終止工作線程回調(diào)353可以調(diào)度空閑終止工作線程313(S230)。因此,與空閑終止工作線程313相對應(yīng)的空閑終止工作線程383可以被調(diào)度或列隊在工作序列380中。例如,空閑終止工作線程回調(diào)353可以設(shè)置閑終止工作線程381的計時器的超時時間或過期時間。
工作序列380可以確定在空閑終止工作線程381中所設(shè)置的過期時間是否過期(或經(jīng)過)(S232)。當過期時間未過期或經(jīng)過時(S232中的否),則工作序列380可以重復或連續(xù)地運行處理S232。
然而,當過期時間過期或經(jīng)過時(S232中的是),則空閑終止工作線程313或383可以取消空閑起始工作線程311或381的調(diào)度(或定時器的超時值或過期時間)(S234)??臻e起始工作線程313或383可以生成指令增強起始或提高增強等級的提高指令事件EVENT2,并且向增強器S330廣播提高指令事件EVENT2(S236)。
增強器330可以響應(yīng)于提高指令事件EVENT2來設(shè)置用于控制增強(或增強等級)的增強控制值或QoS最小值(S240)。即,增強器330可以解析提高指令事件EVENT2,并且將與解析結(jié)果相對應(yīng)的(一個或多個)值存儲在QoS相關(guān)系統(tǒng)文件337中。QoS控制器340可以基于在QoS相關(guān)系統(tǒng)文件337中所存儲的增強控制值或QoS最小值,來生成用于增強控制或QoS最小值控制的控制信號(S242)。例如,控制信號可以包括頻率控制信號CTR_C和功率控制信號CTR_P。
圖7和圖8是描述可以通過圖3中所示的軟件組件所執(zhí)行的控制QoS最小值的方法的示例性實施例的流程圖。
參考圖1、圖3、圖7和圖8,當計算機系統(tǒng)100被初始化或啟動時(S310),則負載追蹤器310可以將空閑回調(diào)(例如,空閑起始工作線程回調(diào)351和空閑終止工作線程回調(diào)353)注冊在空閑模塊350中(S312)。在啟動期間(S310),負載追蹤器310可以生成空閑起始工作線程311和空閑終止工作線程313。在啟動(S310)期間,增強器330可以設(shè)置由負載追蹤器310所生成的空閑起始工作線程311和空閑終止工作線程313中的每個的超時時間或過期時間。
當運行空閑任務(wù)370時(圖3的371或圖7的S314),則空閑模塊350可以感測通過空閑任務(wù)370的運行371所生成的中斷INT1,并且調(diào)用空閑起始工作線程回調(diào)351(S316)。
當列隊的空閑終止工作線程存在于工作隊列中380時,空閑起始工作線程回調(diào)351可以取消或擦除空閑終止工作線程的調(diào)度(在定時器中所設(shè)置的超時時間或過期時間)(S318)。空閑起始工作線程回調(diào)351可以確定空閑起始工作線程311或381的調(diào)度前提(S320),并且滿足前提時,則空閑起始工作線程回調(diào)351可以調(diào)度空閑起始工作線程311或381(S322)。
例如:(1)當在工作序列380中空閑起始工作線程未待決并且在工作序列380中空閑終止工作線程未待決時,或(2)當在工作序列380中空閑起始工作線程未待決并且核心210增強時,則空閑起始工作線程回調(diào)351可以調(diào)度空閑起始工作線程311或381(S322)。
工作序列380可以確定在空閑起始工作線程381中所設(shè)置的過期時間是否過期(或經(jīng)過)(S324)。當過期時間未過期或經(jīng)過時(S324中的否),則工作序列380可以執(zhí)行處理S324。然而,當過期時間過期或經(jīng)過時(S324中的是),則空閑起始工作線程311或381可以生成指令增強終止或降低增強等級的降低指令事件EVENT1,并且向增強器S330廣播降低指令事件EVENT1(S326)。
增強器330的事件接收器331可以響應(yīng)于降低指令事件EVENT1來調(diào)用增強終止器335(S328)。例如,增強器330可以解析降低指令事件EVENT1并且根據(jù)解析的結(jié)果調(diào)用增強終止器335(S328)。增強終止器335可以如預(yù)先定義地在QoS相關(guān)系統(tǒng)文件337中設(shè)置QoS相關(guān)參數(shù)(S330)。QoS控制器340可以基于在QoS相關(guān)系統(tǒng)文件337中所存儲的增強控制值或QoS最小值,來生成用于增強控制或QoS最小值控制的控制信號(S332)。例如,控制信號可以包括頻率控制信號CTR_C和/或功率控制信號CTR_P。當空閑任務(wù)370被運行時,計算機系統(tǒng)100可以維持空閑任務(wù)370的空閑(或空閑狀態(tài))(圖3的373)。當空閑任務(wù)370終止時(圖3的375或圖7的340),則空閑模塊350可以感測通過空閑任務(wù)370的終止(圖3的375)所生成的中斷INT2,并且調(diào)用空閑終止工作線程回調(diào)335(S342)。
空閑終止工作線程回調(diào)353可以確定空閑終止工作線程313或383的調(diào)度前提(S344),并且當滿足前提時,則空閑終止工作線程回調(diào)353可以調(diào)度空閑終止工作線程313或383(S346)。
例如:(1)當在工作序列380中空閑終止工作線程未待決并且在工作序列380中空閑起始工作線程待決時,或(2)當在工作序列380中空閑終止工作線程未待決并且核心210未增強時,則空閑終止工作線程回調(diào)353可以調(diào)度空閑終止工作線程313或383(S346)。
工作序列380可以確定在空閑終止工作線程383中所設(shè)置的過期時間是否過期(或經(jīng)過)(S348)。當過期時間未過期或經(jīng)過時(S348中的否),則工作序列380可以重復或連續(xù)地運行處理S348。
然而,當過期時間過期或經(jīng)過時(S348中的是),則當空閑起始工作線程被列隊在工作序列380中時,空閑終止工作線程313或383可以取消或擦除空閑起始工作線程的調(diào)度(或在定時器中所設(shè)置的超時時間或過期時間)(S350)。
空閑終止工作線程313可以生成指令增強起始或提高增強等級的提高指令事件EVENT2,并且向增強器330廣播提高指令事件EVENT2(S352)。
增強器330的事件接收器331可以響應(yīng)于提高指令事件EVENT2來調(diào)用增強起始器333(S328)。例如,增強器330可以解析提高指令事件EVENT2并且根據(jù)解析的結(jié)果調(diào)用增強起始器333(S328)。增強起始器335可以如預(yù)先定義地在QoS相關(guān)系統(tǒng)文件337中設(shè)置QoS相關(guān)參數(shù)(S330)。QoS控制器340可以基于在QoS相關(guān)系統(tǒng)文件337中所存儲的增強控制值或QoS最小值,來生成用于增強控制或QoS最小值控制的控制信號(S332)。例如,控制信號可以包括頻率控制信號CTR_C和/或功率控制信號CTR_P。
圖9示出了可以作為圖2中所示的QoS控制器340的示例性實施例的QoS控制器340A。根據(jù)圖2中的QoS控制器340的示例性實施例的QoS控制器340A可以被例示為DVFS程序。QoS控制器340A可以包括DVFS調(diào)節(jié)器341、CMU驅(qū)動器343、以及PMU驅(qū)動器345。
DVFS調(diào)節(jié)器341可以從QoS相關(guān)系統(tǒng)文件337中讀取并且分析增強控制值或QoS最小值,并且將與分析結(jié)果相對應(yīng)的(一個或多個)分析值傳送到CMU驅(qū)動器343和PMU驅(qū)動器345。CMU驅(qū)動器343可以基于(一個或多個)分析值生成頻率控制信號CTR_C并且將頻率控制信號CTR_C傳送到CMU 220。PMU 345可以基于(一個或多個)分析值生成功率控制信號CTR_P并且將功率控制信號CTR_P傳送到PMU 230。
圖10示出了可以作為圖1中所示的CPU 210的示例性實施例的CPU 210B。參考圖10,假定CPU 210B包括四個核心:分別地為第一核心210-1、第二核心210-2、第三核心210-3以及第四核心210-4。然而,本發(fā)明構(gòu)思的技術(shù)構(gòu)思不限于在CPU 210B中所包括的核心的數(shù)目。假定CPU 210B包括與核心210-1、210-2、210-3以及210-4中的每個有關(guān)的指令緩存I-Cache和數(shù)據(jù)緩存D-Cache,其中,I-Cache和D-Cache包括CPU 210B的存儲器。
第一核心210-1可以包括(或運行)第一負載追蹤器310-1、增強器330、QoS相關(guān)系統(tǒng)文件337、QoS控制器340、空閑模塊350-1以及工作序列380-1。第一核心210-1可以使用時鐘信號CLK1_1和操作電壓PW1_1來進行操作。例如,配置元件310-1、330、337、340、350-1以及380-1中的每個可以被存儲在第一核心210-1的指令緩存I-Cache(即,存儲器)中,并且配置元件310-1、330、337、340、350-1以及380-1中的每個可以被第一核心210-1運行。
當計算機系統(tǒng)100被初始化(或啟動)時,則第一負載追蹤器310-1可以將用于第一核心210-1的第一空閑起始工作線程回調(diào)和第一空閑終止工作線程回調(diào)注冊在第一空閑模塊350-1中,并且生成用于第一核心210-1的第一空閑起始工作線程和第一空閑終止工作線程。當計算機系統(tǒng)100被初始化時,則增強器330可以設(shè)置第一空閑起始工作線程和第一空閑終止工作線程中的每個的過期時間。
當在第一核心210-1中運行第一空閑任務(wù)時,則第一空閑模塊350-1可以調(diào)用在第一空閑模塊350-1中所注冊的第一空閑起始工作線程回調(diào)。當在第一核心210-1中執(zhí)行第一空閑任務(wù)時,則第一空閑起始工作線程回調(diào)可以取消已經(jīng)存在于第一工作序列380-1中的(一個或多個)空閑起始工作線程的調(diào)度。
當:(1)在第一工作序列380-1中空閑起始工作線程未待決并且在第一工作序列380-1中空閑終止工作線程未待決時,或(2)在第一工作序列380-1中空閑起始工作線程未待決并且第一核心210-1增強時,則第一空閑起始工作線程回調(diào)可以調(diào)度第一空閑起始工作線程。
第一工作序列380-1可以確定第一空閑起始工作線程的過期時間是否過期(或經(jīng)過)。在第一空閑起始工作線程的過期時間過期(或經(jīng)過)后,第一空閑起始工作線程可以將用于第一核心210-1的繁忙核心計數(shù)降低1,并且向增強器330傳送降低指令事件EVENT1。
當在第一核心210-1中終止第一空閑任務(wù)的運行時,則第一空閑模塊350-1可以調(diào)用在第一空閑模塊350-1中所注冊的第一空閑終止工作線程回調(diào)。
當:(1)在第一工作序列380-1中空閑終止工作線程未待決并且在第一工作序列380-1中空閑起始工作線程待決時,或(2)在第一工作序列380-1中空閑終止工作線程未待決并且第一核心210-1未增強時,則第一空閑終止工作線程回調(diào)可以調(diào)度第一空閑終止工作線程。
第一工作序列380-1可以確定第一空閑終止工作線程的過期時間是否過期(或經(jīng)過)。在第一空閑終止工作線程的過期時間過期(或經(jīng)過)后,第一空閑終止工作線程可以取消在第一工作序列380-1中所調(diào)度的空閑起始工作線程的調(diào)度,將用于第一核心210-1的繁忙核心計數(shù)增加1,以及向增強器330傳送提高指令事件EVENTA。
第二核心210-2可以包括(或運行)第二負載追蹤器310-2、空閑模塊350-2以及工作序列380-2。第二核心210-2可以使用時鐘信號CLK1_2和操作電壓PW1_2來進行操作。例如,配置元件310-2、350-2以及380-2中的每個可以被存儲在第二核心210-2的指令緩存I-Cache(即,存儲器)中,并且配置元件310-2、350-2以及380-2中的每個可以被第二核心210-2運行,如圖10中所示。
當計算機系統(tǒng)100被初始化(或啟動)時,則第二負載追蹤器310-2可以將用于第二核心210-2的第二空閑起始工作線程回調(diào)和第二空閑終止工作線程回調(diào)注冊在第二空閑模塊350-2中,并且生成用于第二核心210-2的第二空閑起始工作線程和第二空閑終止工作線程。當計算機系統(tǒng)100被初始化時,則第一核心210-1的增強器330可以設(shè)置第二空閑起始工作線程和第二空閑終止工作線程中的每個的過期時間。
當在第二核心210-2中運行第二空閑任務(wù)時,則第二空閑模塊350-2可以調(diào)用在第二空閑模塊350-2中所注冊的第二空閑起始工作線程回調(diào)。當在第二核心210-2中執(zhí)行第二空閑任務(wù)時,則第二空閑起始工作線程回調(diào)可以取消已經(jīng)存在于第二工作序列380-2中的(一個或多個)空閑起始工作線程的調(diào)度。
當:(1)在第二工作序列380-2中空閑起始工作線程未待決并且在第二工作序列380-2中空閑終止工作線程未待決時,或(2)在第二工作序列380-2中空閑起始工作線程未待決并且第二核心210-2增強時,則第二空閑起始工作線程回調(diào)可以調(diào)度第二空閑起始工作線程。
第二工作序列380-2可以確定第二空閑起始工作線程的過期時間是否過期(或經(jīng)過)。在第二空閑起始工作線程的過期時間過期(或經(jīng)過)后,第二空閑起始工作線程可以將用于第二核心210-2的繁忙核心計數(shù)降低1,并且向增強器330傳送降低指令事件EVENTB。
當在第二核心210-2中終止第二空閑任務(wù)的運行時,第二空閑模塊350-2可以調(diào)用在第二空閑模塊350-2中所注冊的第二空閑終止工作線程回調(diào)。
當:(1)在第二工作序列380-2中空閑終止工作線程未待決并且在第二工作序列380-2中空閑起始工作線程待決時,或(2)在第二工作序列380-2中空閑終止工作線程未待決并且第二核心210-2未增強時,則第二空閑終止工作線程回調(diào)可以調(diào)度第二空閑終止工作線程。
第二工作序列380-2可以確定第二空閑終止工作線程的過期時間是否過期(或經(jīng)過)。在第二空閑終止工作線程的過期時間過期(或經(jīng)過)后,第二空閑終止工作線程可以取消在第二工作序列380-2中所調(diào)度的空閑起始工作線程的調(diào)度,將用于第二核心210-2的繁忙核心計數(shù)增加1,以及向增強器330傳送提高指令事件EVENTB。
第三核心210-3可以包括(或運行)第三負載追蹤器310-3、空閑模塊350-3以及工作序列380-3。第三核心210-3可以使用時鐘信號CLK1_3和操作電壓PW1_3來進行操作。例如,配置元件310-3、350-3以及380-3中的每個可以被存儲在第三核心210-3的指令緩存I-Cache(即,存儲器)中,并且配置元件310-3、350-3以及380-3中的每個可以被第三核心210-3運行,如圖10中所示。
當計算機系統(tǒng)100被初始化(或啟動)時,則第三負載追蹤器310-3可以將用于第三核心210-3的第三空閑起始工作線程回調(diào)和第三空閑終止工作線程回調(diào)注冊在第三空閑模塊350-3中,并且生成用于第三核心210-3的第三空閑起始工作線程和第三空閑終止工作線程。當計算機系統(tǒng)100被初始化時,則增強器330可以設(shè)置第三空閑起始工作線程和第三空閑終止工作線程中的每個的過期時間。
當在第三核心210-3中運行第三空閑任務(wù)時,則第三空閑模塊350-3可以調(diào)用在第三空閑模塊350-3中所注冊的第三空閑起始工作線程回調(diào)。當在第三核心210-3中執(zhí)行第三空閑任務(wù)時,則第三空閑起始工作線程回調(diào)可以取消已經(jīng)存在于第三工作序列380-3中的(一個或多個)空閑起始工作線程的調(diào)度。
當在第三工作序列380-3中空閑起始工作線程未待決并且在第三工作序列380-3中空閑終止工作線程未待決時,或(2)在第三工作序列380-3中空閑起始工作線程未待決并且第三核心210-3增強時,則第三空閑起始工作線程回調(diào)可以調(diào)度第三空閑起始工作線程。
第三工作序列380-3可以確定第三空閑起始工作線程的過期時間是否過期(或經(jīng)過)。在第三空閑起始工作線程的過期時間過期(或經(jīng)過)后,第三空閑起始工作線程可以將用于第三核心210-3的繁忙核心計數(shù)降低1,并且向增強器330傳送降低指令事件EVENTC。
當在第三核心210-3中終止第三空閑任務(wù)的運行時,第三空閑模塊350-3可以調(diào)用在第三空閑模塊350-3中所注冊的第三空閑終止工作線程回調(diào)。
當:(1)在第三工作序列380-3中空閑終止工作線程未待決并且在第三工作序列380-3中空閑起始工作線程待決時,或(2)在第三工作序列380-3中空閑終止工作線程未待決并且第三核心210-3未增強時,則第三空閑終止工作線程回調(diào)可以調(diào)度第三空閑終止工作線程。
第三工作序列380-3可以確定第三空閑終止工作線程的過期時間是否過期(或經(jīng)過)。在第三空閑終止工作線程的過期時間過期(或經(jīng)過)后,第三空閑終止工作線程可以取消在第三工作序列380-3中所調(diào)度的空閑起始工作線程的調(diào)度,將第三核心210-3的繁忙核心計數(shù)增加1,以及向增強器330傳送提高指令事件EVENTC。
第四核心210-4可以包括(或運行)第四負載追蹤器310-4、空閑模塊350-4以及工作序列380-4。第四核心210-4可以使用時鐘信號CLK1_4和操作電壓PW1_4來進行操作。例如,配置元件310-4、350-4以及380-4中的每個可以被存儲在第四核心210-4的指令緩存I-Cache(即,存儲器)中,并且配置元件310-4、350-4以及380-4中的每個可以被第四核心210-4運行,如圖10中所示。
當計算機系統(tǒng)100被初始化(或啟動)時,則第四負載追蹤器310-4可以將用于第四核心210-4的第四空閑起始工作線程回調(diào)和第四空閑終止工作線程回調(diào)注冊在第四空閑模塊350-4中,并且生成用于第四核心210-4的第四空閑起始工作線程和第四空閑終止工作線程。當計算機系統(tǒng)100被初始化時,則增強器330可以設(shè)置第四空閑起始工作線程和第四空閑終止工作線程中的每個的過期時間。
當在第四核心210-4中運行第四空閑任務(wù)時,則第四空閑模塊350-4可以調(diào)用在第四空閑模塊350-4中所注冊的第四空閑起始工作線程回調(diào)。當在第四核心210-4中執(zhí)行第四空閑任務(wù)時,則第四空閑起始工作線程回調(diào)可以取消已經(jīng)存在于第四工作序列380-4中的(一個或多個)空閑起始工作線程的調(diào)度。
當:(1)在第四工作序列380-4中空閑起始工作線程未待決并且在第四工作序列380-4中空閑終止工作線程未待決時,或(2)在第四工作序列380-4中空閑起始工作線程未待決并且第四核心210-4增強時,則第四空閑起始工作線程回調(diào)可以調(diào)度第四空閑起始工作線程。
第四工作序列380-4可以確定第四空閑起始工作線程的過期時間是否過期(或經(jīng)過)。在第四空閑起始工作線程的過期時間過期(或經(jīng)過)后,第四空閑起始工作線程可以將用于第四核心210-4的繁忙核心計數(shù)降低1,并且向增強器330傳送降低指令事件EVENTD。
當在第四核心210-4中終止第四空閑任務(wù)的運行時,第四空閑模塊350-4可以調(diào)用在第四空閑模塊350-4中所注冊的第四空閑終止工作線程回調(diào)。
當:(1)在第四工作序列380-4中空閑終止工作線程未待決并且在第四工作序列380-4中空閑起始工作線程待決時,或(2)在第四工作序列380-4中空閑終止工作線程未待決并且第四核心210-4未增強時,則第四空閑終止工作線程回調(diào)可以調(diào)度第四空閑終止工作線程。
第四工作序列380-4可以確定第四空閑終止工作線程的過期時間是否過期(或經(jīng)過)。在第四空閑終止工作線程的過期時間過期(或經(jīng)過)后,則第四空閑終止工作線程可以取消在第四工作序列380-4所調(diào)度的空閑起始工作線程的調(diào)度,將用于第四核心210-4的繁忙核心計數(shù)增加1,以及向增強器330傳送提高指令事件EVENTD。
當事件EVENTA、EVENTB、EVENTC以及EVENTD中的至少一個被廣播給增強器330時,則在待機狀態(tài)中的線程被內(nèi)核系統(tǒng)調(diào)用API喚醒,并且增強器330可以解析至少一個所接收的事件。當至少一個事件被解析時,則增強器330可以檢查(或確定)核心210-1、210-2、210-3以及210-4中的每個的繁忙核心計數(shù)。增強器330可以設(shè)置(或?qū)懭?與總共的繁忙核心計數(shù)相對應(yīng)的QoS最小值,該總共的繁忙核心計數(shù)與QoS相關(guān)系統(tǒng)文件337中的檢查的結(jié)果相對應(yīng)。QoS控制器340可以基于從QoS相關(guān)系統(tǒng)文件337所輸出的QoS最小值來生成用于控制核心210-1、210-2、210-3以及210-4中的每個的QoS最小值的控制信號CTR_C和CTR_P。
第一時鐘信號CLK1整體地表示時鐘信號CLK1_1至CLK1_4,并且第一操作電壓PW1整體地表示操作電壓PW1_1至PW1_4。然而,CMU 220可以基于頻率控制信號CTR_C來控制時鐘信號CLK1_1至CLK1_4中的每個的頻率。此外,PMU 230可以基于功率控制信號CTR_P來生成用于控制操作電壓PW1_1至PW1_4中的每個的電平的控制信號CTR,并且將控制信號CTR輸出到PMIC 270。
事件EVENTA、EVENTB、EVENTC以及EVENTD中的每個可以表示如參考圖3描述的降低指令事件EVENT1或提高指令事件EVENT2。
核心210-1、210-2、210-3以及210-4中的每個的負載追蹤器310-1、310-2、310-3以及310-4中的每個在結(jié)構(gòu)和功能上與參考圖3至圖9描述的負載追蹤器310相同或相似。核心210-1、210-2、210-3以及210-4中的每個的空閑模塊350-1、350-2、350-3以及350-4中的每個在結(jié)構(gòu)和功能上與參考圖3至圖9描述的空閑模塊350相同或相似。核心210-1、210-2、210-3以及210-4中的每個的工作序列380-1、380-2、380-3以及380-4中的每個在結(jié)構(gòu)和功能上與參考圖3至圖9描述的工作序列380相同或相似。
圖11是描述使用圖10中所示的CPU 210B所執(zhí)行的控制增強等級的方法的概念圖。參考圖10和圖11,核心210-1、210-2、210-3以及210-4中的每個的相應(yīng)的負載追蹤器310-1、310-2、310-3以及310-4的空閑起始工作線程可以執(zhí)行降低繁忙核心計數(shù)的操作,并且相應(yīng)的負載追蹤器310-1、310-2、310-3以及310-4的空閑終止工作線程可以執(zhí)行增加繁忙核心計數(shù)的操作。這里,繁忙核心計數(shù)表示要被增強的核心的數(shù)目。
例如,當在核心210-1、210-2、210-3以及210-4中的每個中運行空閑任務(wù)時,用于核心210-1、210-2、210-3以及210-4中的每個的繁忙核心計數(shù)可以降低;并且當在核心210-1、210-2、210-3以及210-4中的每個中終止空閑任務(wù)時,用于核心210-1、210-2、210-3以及210-4中的每個的繁忙核心計數(shù)可以增加。
在第一核心210-1中所運行的增強器330可以解析事件EVENTA、EVENTB、EVENTC以及EVENTD中的每個,并且根據(jù)解析結(jié)果來計算用于CPU 210B總共的繁忙核心計數(shù)
如圖11中所示,當僅第三核心CORE3(210-3)在第一時間T1運行需要增強的任務(wù)時,第三核心CORE3(210-3)的第三負載追蹤器310-3向增強器330傳送提高指令事件EVENTC=EVENT2,并且因此,由增強器330所計算的總共的繁忙核心計數(shù)為1。
當?shù)谝缓诵腃ORE1 210-1在第二時間T2執(zhí)行需要增強的任務(wù)時,第一核心CORE1 210-1的第一負載追蹤器310-1向增強器330傳送提高指令事件EVENTA=EVENT2,并且從而,由增強器330所計算的總共的繁忙核心計數(shù)為2。
當?shù)诙诵腃ORE2 210-2在第二時間T3執(zhí)行需要增強的任務(wù)時,第二核心CORE2 210-2的第二負載追蹤器310-2向增強器330傳送提高指令事件EVENTB=EVENT2,并且從而,由增強器330所計算的總共的繁忙核心計數(shù)為3。在第四時間T4處,由增強器330所計算的總共的繁忙核心計數(shù)仍然為3。
當如參考圖4所描述地ETH未過期或經(jīng)過時,即使第二核心CORE2 210-2在第五時間T5終止需要增強的任務(wù),由增強器330所計算的總共的繁忙核心計數(shù)可以被維持為3。因為在ETH過期或經(jīng)過后,第二核心CORE2 210-2的第二負載追蹤器310-2在第六時間T6向增強器330傳送降低指令事件EVENTB=EVENT1。響應(yīng)于此,由增強器330所計算的總共的繁忙核心計數(shù)可以從3降低到2。
在第三核心CORE3 210-3終止需要增強的任務(wù)并且ETH在第七時間T7過期或經(jīng)過之后,第三核心CORE3 210-3的第三負載追蹤器310-3向增強器330傳送降低指令事件EVENTC=EVENT1,并且從而,由增強器330所計算的總共的繁忙核心計數(shù)可以從2降低到1。
在第八時間T8,即,在第一核心CORE1終止需要增強的任務(wù)并且ETH過期或經(jīng)過之后,第一核心CORE1的第一負載追蹤器310-1向增強器330傳送降低指令事件EVENTA=EVENT1,并且從而,由增強器330所計算的總共的繁忙核心計數(shù)可以從1降低到0。圖11中所示的STH和ETH中的每個可以與參考圖4所描述的STH和ETH中的每個相同。
圖12是描述使用圖10中所示的CPU 210B所執(zhí)行的控制增強等級的方法的示例性實施例的概念圖。參考圖4、圖10、圖11以及圖12,假定當總共的繁忙核心計數(shù)為1或2時的增強等級是等級-1(LV1),而當總共的繁忙核心計數(shù)為3或4時的增強等級是等級-2(LV2)。
假定圖10中所示的第一核心210-1和第二核心210-2中的每個是小核,并且第三核心210-3和第四核心210-4中的每個是大核。在圖12中,假定MIF是圖1中所示的存儲器接口250和260中的至少一個,并且INT是圖1中所示的輸入/輸出接口265。如參考圖10和圖11所描述地,由第一核心210-1所運行的增強器330可以基于從核心210-1、210-2、210-3以及210-4中的每個所輸出的事件EVENTA、EVENTB、EVENTC以及EVENTD中的每個來計算總共的繁忙核心計數(shù)。
第一核心210-1的增強器330可以基于所計算的總共的繁忙核心計數(shù)來在QoS相關(guān)系統(tǒng)文件337中設(shè)置QoS最小值。因此,QoS控制器340可以生成用于控制QoS最小值的控制信號CTR_C和CTR_P。CMU 220可以響應(yīng)于頻率控制信號CTR_C來控制時鐘信號CLK1_1、CLK1_2、CLK1_3、CLK1_4、CLK2、CLK3、CLK4以及CLK5當中的至少一個時鐘信號的頻率。
例如,當增強等級是等級-1(LV1)時,則CMU 220可以將被供給到大核的時鐘信號的頻率調(diào)整為1.5GHz并且將被供給到小核的時鐘信號的頻率調(diào)整為1.5GHz,將被供給到INT的時鐘信號的頻率調(diào)整為500MHz,將被供給到MIF的時鐘信號的頻率調(diào)整為1.5GHz,以及開啟HMP增強。當HMP增強開啟時,被指派給小核的任務(wù)可以強制地被指派給大核。
例如,當增強等級是等級-2(LV2)時,則CMU 220可以將被供給到大核的時鐘信號的頻率調(diào)整為2.0GHz并且將被供給到小核的時鐘信號的頻率調(diào)整為1.5GHz,將被供給到INT的時鐘信號的頻率調(diào)整為600MHz,將被供給到MIF的時鐘信號的頻率調(diào)整為1.6GHz,以及開啟HMP增強。
圖13是描述使用圖10中所示的CPU 210B所執(zhí)行的軟件組件來控制QoS最小值的方法的示例性實施例的概念圖;以及圖14、圖15和圖16是描述使用圖10中所示的CPU 210B所執(zhí)行的軟件組件來控制QoS最小值的方法的示例性實施例的流程圖。
參考圖1至圖3以及圖13至圖16,當計算機系統(tǒng)100被初始化(或啟動)時(S410),則負載追蹤器310、310-1、310-2、310-3或310-4(整體地,310A)可以將用于相對應(yīng)的核心210-1、210-2、210-3或210-4的空閑工作線程回調(diào),例如,空閑起始工作線程回調(diào)351和空閑終止工作線程回調(diào)353,注冊在空閑模塊350、350-1、350-2、350-3或350-4(整體地,350A)中(S412)。
負載追蹤器310A可以生成用于相對應(yīng)的核心210-1、210-2、210-3或210-4的空閑起始工作線程311和空閑終止工作線程313(S414)。
當計算機系統(tǒng)100被初始化時,則增強器330可以從第二存儲器設(shè)備290讀取配置文件382(S416),并且通過繁忙核心計數(shù)或通過總共的繁忙核心計數(shù),通過系統(tǒng)文件330-2來將在調(diào)度器384和/或DVFS(或DFS)中要設(shè)置的參數(shù)330-3加載到存儲器設(shè)備215或280(S418)。例如,配置文件382可以是圖12中示意性地示出的增強等級配置。然而,其不限于此。圖13中所示的增強器330可以包括主回路(main loop)330-1,并且主回路330-1可以包括增強器330A,增強器330A包括事件接收器331、增強起始器333以及增強終止器335。例如,增強器330和增強器330A可以包括數(shù)據(jù)流;然而,增強器330的功能可以與增強器330A的功能相同。
增強器330可以設(shè)置由負載追蹤器310A所生成的空閑起始工作線程311和空閑終止工作線程313中的每個的過期時間(S420)。例如,增強器330可以設(shè)置圖4中所示的過期時間STH和ETH中的每個。
增強器330可以打開通信應(yīng)用編程接口(API)以用于接收或監(jiān)聽來自內(nèi)核或內(nèi)核區(qū)域的事件EVENT1、EVENT2、EVENTA、EVENTB、EVENTC和/或EVENTD(整體地,為EVENT)(S422)。通信API可以指代套接口(socket)。通信API或套接口可以指代用于傳送或接收包括繁忙核心計數(shù)的事件EVENT的通信信道。
增強器330可以打開通信API,以及可以調(diào)用通信API的內(nèi)核系統(tǒng)調(diào)用API,并且進入待機狀態(tài)(S424)。
當空閑任務(wù)370起始時(S510),則空閑模塊350A可以調(diào)用空閑起始工作線程回調(diào)351(S512)。
空閑起始工作線程回調(diào)351可以取消存在于工作序列380、380-1、380-2、380-3和/或380-4(整體地,380)中的空閑終止工作線程的調(diào)度(或定時器的過期時間)(S514)。如上所述,當要被取消的空閑終止工作線程不存在于工作序列380中時,處理S514將被省略或跳過。
當:(1)在工作序列380中空閑起始工作線程未待決并且在工作序列380中空閑終止工作線程未待決時,或(2)在工作序列380中空閑起始工作線程未待決并且相對應(yīng)的核心210-1、210-2、210-3或210-4增強時(S516),則空閑起始工作線程回調(diào)351可以調(diào)度空閑起始工作線程311(S518)。
工作序列380可以確定空閑起始工作線程311的過期時間是否過期(或經(jīng)過)(S520)。當空閑起始工作線程311的過期時間過期(或經(jīng)過)(S520中的是)時,空閑起始工作線程311可以將相對應(yīng)的核心211、210-1、210-2、210-3或210-4的繁忙核心計數(shù)降低1,并且向增強器330廣播指令增強終止或增強等級降低的降低指令事件EVENT(S522)。
當降低指令事件EVENT被廣播到增強器330時,則在待機狀態(tài)中的線程可以被增強器330的內(nèi)核系統(tǒng)調(diào)用API(例如,epoll)喚醒(S524)。例如,主回路330-1的事件接收器331可以接收從負載追蹤器310A所傳送的降低指令事件EVENT,解析降低指令事件EVENT(S526),以及根據(jù)解析結(jié)果調(diào)用增強終止器335。
增強終止器335可以根據(jù)解析結(jié)果將與QoS最小值相對應(yīng)的(一個或多個)參數(shù)寫入在QoS相關(guān)系統(tǒng)文件337中(S528)。QoS控制器340可以從QoS相關(guān)系統(tǒng)文件337讀取與QoS最小值相對應(yīng)的(一個或多個)參數(shù),使用(一個或多個)參數(shù)生成相對應(yīng)的核心211、210-1、210-2、210-3或210-4的QoS相關(guān)的控制信號CTR_C和CTR_P,以及輸出控制信號CTR_C和CTR_P(S530)。
控制電路200可以根據(jù)基于控制信號CTR_C和CTR_P進行操作的CMU 220和PMU 230的控制來控制控制電路200的QoS或QoS最小值(S532)。即,CMU 220可以基于頻率控制信號CTR_C來調(diào)整時鐘信號CLK1、CLK2、CLK3、CLK4以及CLK5中的至少一個的頻率。PMIC 270可以基于與功率控制信號CTR_P有關(guān)的控制信號CTR來調(diào)整操作電壓PW1、PW2、PW3、PW4、PW5以及PW6中的至少一個的電平。
如以上參考圖10所描述地,CMU 220可以基于頻率控制信號CTR_C來調(diào)整時鐘信號CLK1_1、CLK1_2、CLK1_3以及CLK1_4中的至少一個的頻率。PMIC 270可以基于與功率控制信號CTR_P有關(guān)的控制信號CTR來調(diào)整操作電壓PW1_1、PW1_2、PW1_3以及PW1_4中的至少一個的電平。繼續(xù)參考圖13、圖14和圖16,當終止空閑任務(wù)370的運行時(S610),則空閑模塊350A可以調(diào)用空閑終止工作線程回調(diào)358(S612)。
當:(1)在工作序列380中空閑終止工作線程未待決并且在工作序列380中空閑起始工作線程待決時,或(2)在工作序列380中空閑終止工作線程未待決并且相對應(yīng)的核心211、210-1、210-2、210-3或210-4未增強時(S614),則空閑終止工作線程回調(diào)353可以調(diào)度空閑終止工作線程313(S615)。
工作序列380可以確定空閑終止工作線程313的過期時間是否過期(或經(jīng)過)(S616)。當空閑終止工作線程的過期時間過期(或經(jīng)過)(S616中的是)時,則空閑終止工作線程313可以取消或擦除用于相對應(yīng)的核心211、210-1、210-2、210-3或210-4的空閑起始工作線程的調(diào)度(定時器的過期時間)(S618)。
空閑終止工作線程313可以將用于相對應(yīng)的核心211、210-1、210-2、210-3或210-4的繁忙核心計數(shù)增加1,并且向增強器330廣播指令增強起始或提高增強等級的提高指令事件EVENT(S620)。
當提高指令事件EVENT被廣播到增強器330時,則在待機狀態(tài)中的線程可以被增強器330的內(nèi)核系統(tǒng)調(diào)用API(例如,epoll)喚醒(S524)。例如,主回路330-1的事件接收器331可以接收從負載追蹤器310A所傳送的提高指令事件EVENT,解析提高指令事件EVENT(S526),以及根據(jù)解析結(jié)果調(diào)用增強起始器333。
增強起始器333可以根據(jù)解析結(jié)果將與QoS最小值相對應(yīng)的(一個或多個)參數(shù)寫入在QoS相關(guān)系統(tǒng)文件337中(S528)。QoS控制器340可以從QoS相關(guān)系統(tǒng)文件337讀取與QoS最小值相對應(yīng)的(一個或多個)參數(shù),使用(一個或多個)參數(shù)生成相對應(yīng)的核心211、210-1、210-2、210-3或210-4的QoS相關(guān)的控制信號CTR_C和CTR_P,以及輸出控制信號CTR_C和CTR_P(S530)。
控制電路200可以根據(jù)基于控制信號CTR_C和CTR_P進行操作的CMU 220和PMU 230的控制來控制控制電路200的QoS或QoS最小值(S532)。即,CMU 220可以基于頻率控制信號CTR_C來調(diào)整時鐘信號CLK1、CLK2、CLK3、CLK4以及CLK5中的至少一個的頻率。PMIC 270可以基于與功率控制信號CTR_P有關(guān)的控制信號CTR來調(diào)整操作電壓PW1、PW2、PW3、PW4、PW5以及PW6中的至少一個的電平。如以上參考圖10所描述地,CMU 220可以基于頻率控制信號CTR_C來調(diào)整時鐘信號CLK1_1、CLK1_2、CLK1_3以及CLK1_4中的至少一個的頻率。PMIC 270可以基于與功率控制信號CTR_P有關(guān)的控制信號CTR來調(diào)整操作電壓PW1_1、PW1_2、PW1_3以及PW1_4中的至少一個的電平。
圖17是用于描述在圖3中所示的空閑模塊中注冊空閑工作線程回調(diào)的處理的程序代碼的示例性實施例。參考圖17,在圖17中示例性地示出的程序代碼表示用于在空閑模塊中注冊空閑工作線程回調(diào),例如,空閑起始工作線程回調(diào)和空閑終止工作線程回調(diào)的代碼的一部分。
圖18是用于描述在圖3中所示的空閑模塊中所注冊的空閑工作線程回調(diào)中的空閑起始工作線程和空閑終止工作線程的調(diào)度處理和取消處理的程序代碼的示例性實施例。參考圖18,在圖18中示例性地示出的程序代碼表示其中空閑起始工作線程回調(diào)調(diào)度并且取消空閑起始工作線程的代碼的一部分,以及其中空閑終止工作線程回調(diào)調(diào)度并且取消空閑終止工作線程的代碼的一部分。
如參考圖1至圖18所描述地,在其中當核心未進行操作時運行空閑任務(wù)的CPU 210或包括CPU 210的計算機系統(tǒng)100中,當運行空閑任務(wù)時調(diào)度空閑起始工作線程,并且當終止空閑任務(wù)的運行時調(diào)度空閑終止工作線程。
當運行空閑任務(wù)時,則取消空閑終止工作線程的調(diào)度。當未取消所調(diào)度的空閑起始工作線程和所調(diào)度的空閑終止工作線程中的每個的調(diào)度,并且所調(diào)度的空閑起始工作線程的過期時間過期或經(jīng)過,或者所調(diào)度的空閑終止工作線程過期或經(jīng)過時,則可以執(zhí)行針對所調(diào)度的空閑起始工作線程所指定的操作,或者可以執(zhí)行針對所調(diào)度的空閑終止工作線程所指定的操作。
針對空閑起始工作線程所指定的操作要向增強器330廣播降低增強等級的事件,并且針對空閑終止工作線程所指定的操作要向增強器330廣播提高增強等級的事件。增強器330實時地監(jiān)聽事件。當增強器330接收事件時,執(zhí)行針對所接收的事件預(yù)先定義的操作。預(yù)先定義的操作可以包括增強的起始、增強的終止、增強等級的改變、與增強有關(guān)的外圍設(shè)備240、250、260以及265中的至少一個的操作的控制、和/或依賴于通過計算機系統(tǒng)100所運行的OS的操作。
根據(jù)本發(fā)明構(gòu)思的示例性實施例來操作CPU的方法可以當迫切地需要高性能時自動感測,并且根據(jù)感測結(jié)果自動地設(shè)置QoS最小值。根據(jù)本發(fā)明構(gòu)思的示例性實施例來操作CPU的方法可以檢基于中斷來檢測負載的發(fā)生,而不周期性地輪詢CPU的負載。
盡管已經(jīng)示出并且描述了本一般性發(fā)明構(gòu)思的一些實施例,但是本領(lǐng)域技術(shù)人員將意識到在這些實施例中可以進行改變,而不脫離一般性發(fā)明構(gòu)思的原理和精神,該一般性發(fā)明構(gòu)思的范圍在所附的權(quán)利要求書及其等同形式中被定義。