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

處理器指令發(fā)布扼制的制作方法

文檔序號:6377929閱讀:163來源:國知局
專利名稱:處理器指令發(fā)布扼制的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算系統(tǒng),并且更具體地,涉及通過扼制對所選擇的有問題的指令的發(fā)布來有效地降低功耗。
背景技術(shù)
每一代半導(dǎo)體處理器核心上的器件和金屬路線的幾何尺寸越來越小。因此,在片上基板面的給定面積內(nèi)提供越來越多功能。結(jié)果,諸如膝上型計算機(jī)、平板計算機(jī)、智能電話、視頻相機(jī)之類的移動裝置越來越流行。通常,這些移動裝置從一個或多個電池單元接收電力。因為電池具有有限的容量,所以它們需要被定時地連接到外部充電器來充電。這些移動裝置的一個關(guān)鍵問題是功率消耗。當(dāng)功率消耗增大時,這些裝置的電池壽命縮短并且再充電的頻率增大。由于片上的集成電路的密度隨著多個流水線、更大的緩存和更復(fù)雜的邏輯而增多,可以每時鐘周期地切換的節(jié)點和總線的數(shù)目也顯著增多。因此,功率消耗增加。另外,軟件應(yīng)用可能運行使得硬件達(dá)到高功率耗散值的特定計算機(jī)程序代碼。這樣的代碼可能不是故意地或故意地(例如,功率病毒)這樣做。功率耗散可能由于程序代碼內(nèi)多次發(fā)生給定指令類型而爬升。該功率耗散值可能達(dá)到或超過芯片的熱設(shè)計功率(TDP)或甚至最大芯片功率耗散。除了以上所述以外,移動裝置的冷卻系統(tǒng)可能是針對給定熱設(shè)計功率(TDP)或熱設(shè)計點設(shè)計的。冷卻系統(tǒng)在不超過半導(dǎo)體芯片的最高結(jié)溫的情況下可以能夠耗散TDP值。然而,給定指令類型的多次發(fā)生可能使得功率耗散超過半導(dǎo)體芯片的TDP。此外,存在電源的電流限制,該電流限制也可能被超過。如果功率模式不改變芯片的工作模式或關(guān)斷芯片內(nèi)的特定模塊,則電池可能被很快放電。另外,物理損壞可能發(fā)生。盡管管理峰值功率耗散的一種方式可以是簡單地限制指令發(fā)布以使得其不會超過特定閾值,但是,這可能導(dǎo)致整體性能的不可接受的降低。鑒于以上所述,期望通過扼制所選擇的指令的發(fā)布來降低功率消耗的高效方法和機(jī)制。

發(fā)明內(nèi)容
構(gòu)想到用于通過扼制所選擇的指令的發(fā)布來降低功率消耗的方法和機(jī)制。在一個實施例中,一種處理器包括功率扼制單元。該功率扼制單元可以在與調(diào)度器相同的流水線級內(nèi)使用。該功率扼制單元維護(hù)一種或多種指令類型的一個或多個指令發(fā)布計數(shù)。所述指令類型可以是由處理器內(nèi)的運行核心運行的所支持的指令類型的子集。指令類型可以是基于用于這些類型的指令處理的高功率消耗估計值來選定的。例如,浮點(FP)單指令多數(shù)據(jù)(SMD)指令類型可以具有寬數(shù)據(jù)通道以用于在多周期潛伏期期間處理矢量元素。在維護(hù)指令發(fā)布計數(shù)時的同時,功率扼制單元可以確定給定指令發(fā)布計數(shù)超過給定閾值。作為響應(yīng),功率扼制單元可以選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率。
對一種或多種指令類型的選擇可以基于功率狀態(tài)估計??商鎿Q地,該選擇可以基于用戶經(jīng)由軟件作出的改變。功率扼制單元可以為所選擇的一種或多種候選指令類型中的每一種候選指令類型選定發(fā)布比率。對發(fā)布比率的該選定還可以基于特定控制寄存器的軟件更新或功率狀態(tài)估計。功率扼制單元可以使所選擇的一種或多種候選指令類型中的每一種候選指令類型的相關(guān)聯(lián)的發(fā)布比率限制為相應(yīng)的選定發(fā)布比率。因此,發(fā)布比率限制可以改變或者是可編程的。參考以下描述和附圖將進(jìn)一步理解這些和其它實施例。


圖1是執(zhí)行無序運行的處理器核心的一個實施例的一般框圖。圖2是用于半導(dǎo)體芯片的功率管理的一個實施例的一般框圖。圖3是圖示出功率扼制單元的一個實施例的一般框圖。圖4是圖示出用于控制特定指令類型的指令發(fā)布比率的方法的一個實施例的一般框圖。圖5是圖不出扼制表的一個實施例的一般框圖。圖6是圖示出限制指令發(fā)布比率的一個實施例的一般框圖。圖7是圖示出限制指令發(fā)布比率的另一實施例的一般框圖。圖8是圖示出限制指令發(fā)布比率的又一實施例的一般框圖。圖9是用于控制特定指令類型的指令發(fā)布比率的方法的一個實施例的一般框圖。盡管本發(fā)明容易有各種修改和替代形式,但是其具體實施例將在附圖中通過示例方式示出并且將在這里進(jìn)行詳細(xì)描述。然而,應(yīng)當(dāng)理解,附圖以及對其的詳細(xì)描述并不旨在將本發(fā)明限制于所公開的具體形式,而是相反,本發(fā)明要涵蓋落在在本發(fā)明的由權(quán)利要求書限定的精神和范圍以內(nèi)的所有修改例、等同例和替換例。如貫穿本申請所使用的,詞語“可以”以許可含義(即,意味著有可能)使用,而不是以強制含義(即,意味著必須)使用。類似地,詞語“包括”意味著包括但不限于。各種單元、電路或其它組件可以描述為“被配置為”執(zhí)行一個或多個任務(wù)。在這樣的上下文中,“被配置為”是對結(jié)構(gòu)的廣義描述,一般是指“具有”在操作期間執(zhí)行所述一個或多個任務(wù)的“電路”。因此,單元/電路/組件能夠被配置為執(zhí)行任務(wù),即便該單元/電路/組件當(dāng)前并沒有在工作。總之,構(gòu)成與“被配置為”的結(jié)構(gòu)的電路可以包括硬件電路。同樣地,在說明中為了方便起見,各種單元/電路/組件可以被描述為執(zhí)行一個或多個任務(wù)。這樣的說明應(yīng)當(dāng)被理解為包括短語“被配置為”。對被配置為執(zhí)行一個或多個任務(wù)的單元/電路/組件的描述明確地不意圖調(diào)用該單元/電路/組件援用美國專利法第112條第6款解釋。
具體實施例方式在以下描述中,闡述了大量具體細(xì)節(jié)以提供對本發(fā)明的透徹理解。然而本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識到,本發(fā)明可以在沒有這些具體細(xì)節(jié)的情況下實施。在一些實例中,沒有詳細(xì)示出公知的電路、結(jié)構(gòu)和技術(shù)以避免模糊本發(fā)明。參考圖1,示出圖示出執(zhí)行無序運行的處理器核心100的一個實施例的一般框圖。處理器100可以利用多級流水線來處理指令。指令緩存104可以存儲用于軟件應(yīng)用的指令??梢詮闹噶罹彺?04取回用由地址選擇邏輯102遞送的地址指示的一個或多個指令。如果不存在指令緩存失中的話,每個時鐘周期可以從指令緩存104取回多個指令。下一取回預(yù)測器106可以遞增地址。分支方向預(yù)測器108可以耦合到下一取回預(yù)測器106和后面流水級中的控制流評估邏輯110中的每一個。預(yù)測器106可以預(yù)測使指令流的流從運行下一后續(xù)指令改變的指令的信息。解碼單元110可以對由多個取回的指令組成的操作碼(opcode)進(jìn)行解碼??商鎿Q地,所述指令可以被分割成多個微指令,或微操作碼(micro-op)。這里使用的術(shù)語“指令”和“微操作碼”可互換使用,因為本發(fā)明可以用于利用任一種實施方式的體系架構(gòu)。解碼單元110可以分配分派隊列114中的條目。在一個實施例中,控制流評估模塊112可以更改地址選擇器102中的指令取回。例如,與非條件分支操作碼相關(guān)聯(lián)的絕對地址值可以被發(fā)送至地址選擇器102。分派隊列114中的指令具有相關(guān)聯(lián)的操作數(shù)和由重命名器陣列118重新命名的目的地標(biāo)識符。重命名器陣列118可以從自由列表分配器120接收候選名稱。依賴性融合模塊122可以為接收的指令生成依賴性矢量。在之前的流水線級中選擇的經(jīng)重新命名的標(biāo)識符可以用來尋找和指示指令之間的依賴性。依賴性融合模塊122可以向調(diào)度器124提供所述指令及相關(guān)聯(lián)的經(jīng)重新命名的標(biāo)識符、程序計數(shù)器(PC)值、依賴性矢量等。調(diào)度器124可以對指令進(jìn)行調(diào)度以供在運行核心130中運行。當(dāng)操作數(shù)可用并且硬件資源也是可用的時,指令可以被從調(diào)度器124無序地發(fā)布給運行核心130內(nèi)的功能單元中的一個功能單元。調(diào)度器124可以從體系架構(gòu)的寄存器文件(未示出)或從操作數(shù)旁路邏輯讀取其源操作數(shù)。源操作數(shù)可以被提供給運行核心130.
運行核心130可以檢測指令運行期間的各種事件,這些事件可以被報告給調(diào)度器124。兩個示例包括錯誤預(yù)測的分支指令和重放的加載/存儲指令??梢詸z測各種異常。兩個示例包括針對存儲器訪問或針對以無特權(quán)的模式運行有特權(quán)的指令的保護(hù)異常和針對無地址轉(zhuǎn)譯的異常。這些異??梢允沟脤?yīng)的異常處理例程通過例如微代碼116而被運行。運行核心可以包括加載/存儲單元140。加載/存儲單元140可以包括用于存儲與存儲指令對應(yīng)的地址的存儲緩沖器,用于存儲與存儲指令對應(yīng)的存儲數(shù)據(jù)的存儲隊列以及用于存儲針對存儲指令的地址和數(shù)據(jù)兩者的加載緩沖器。加載/存儲單元140可以連接至數(shù)據(jù)緩存(未示出)。處理器100可以包括用于指令緩存104和數(shù)據(jù)緩存中的每一個的轉(zhuǎn)譯后備緩沖器(TLB),以避免在執(zhí)行緩存訪問時執(zhí)行完全存儲器轉(zhuǎn)譯的成本。運行核心130可以包括執(zhí)行至少加、減、偏移、按位邏輯運算、循環(huán)和/或其它功能的若干計算單元。在所示示例中,運行核心130包括整數(shù)算術(shù)邏輯單元(ALU) 132、整數(shù)ALU和分支解析邏輯134的組合、具有浮點加減和單指令多數(shù)據(jù)(SIMD)計算邏輯的浮點單元136,以及具有浮點乘和SIMD計算邏輯的浮點單元138。SIMD指令可以在多個數(shù)據(jù)通道中執(zhí)行相同的運算。SMD指令可以利用與指令集體系架構(gòu)(ISA)中由其它指令使用的體系架構(gòu)寄存器文件分離的寄存器文件。所述SIMD指令的寄存器可以用作相同數(shù)據(jù)類型的元素的矢量。SIMD指令可以用來支持媒體加速、信號處理和圖形。處理器100可以支持有符號和無符號的單精度和雙精度浮點運算。這些SMD指令中的一個或多個可以具有多周期潛伏期(latency )。由于繁重的處理和漫長的潛伏期,特定指令的運行可能從電源汲取可觀的電流量。相應(yīng)地,這些識別的指令消耗顯著的功率。這些高功率指令可以稱為有問題的指令??梢曰跁r鐘周期來改變這些有問題的指令的發(fā)布比率,以便在芯片上保持給定水平的功率消耗。例如,功率扼制150可以監(jiān)視有問題的指令的發(fā)布比率。當(dāng)合格條件出現(xiàn)時,功率扼制可以使有問題的指令的發(fā)布比率限制到可編程的降低比率。現(xiàn)在參見圖2,不出圖不出半導(dǎo)體芯片的功率管理系統(tǒng)200的一個實施例的一般框圖。在不同實施例中,處理器100可以被配置為使用功率扼制單元150來限制特定指令類型的發(fā)布比率。功率扼制單元150可以用軟件或硬件控制。在一個實施例中,處理器100內(nèi)的選定硬件配置寄存器270內(nèi)的特定比特字段可以由軟件層260利用扼制代碼來更新。功率扼制單元可以使用扼制代碼來確定特定指令類型的指令發(fā)布比率限制。軟件層260可以是用戶程序、操作系統(tǒng)中的內(nèi)核或其它軟件。在可替代實施例中,其它參數(shù)值而不是扼制代碼可以用來設(shè)置特定指令類型的指令發(fā)布比率的限制。以下進(jìn)一步描述這些其它參數(shù)。在又一些其它實施例中,功率管理器210可以調(diào)節(jié)由功率扼制單元150用來設(shè)置特定指令類型的指令發(fā)布比率的限制的扼制代碼或其它參數(shù)。處理器100可以是任何集成電路(IC)。在各個實施例中,處理器100可以包括一個或多個核心,每個核心具有片上指令和數(shù)據(jù)緩存。處理器100可以是具有單個流水線或多個流水線的超標(biāo)量體系架構(gòu)處理器。在另一實施例中,處理器100可以是專用IC (ASIC)。在又一實施例中,處理器100可以包括片上系統(tǒng)(SOC)上的一個或多個計算模塊。任何晶體管族可以用來實現(xiàn)處理器100。示例包括金屬氧化物半導(dǎo)體場效應(yīng)晶體管(MOSFET)和雙極性晶體管(BJT)。在一個實施例中,軟件層260可以利用扼制代碼來更新處理器100內(nèi)的硬件配置寄存器270。在一個實施例中,處理器100上的輸入/輸出(I/O)引腳可以提供對硬件配置寄存器的訪問。可替換地,來自用戶軟件程序或操作系統(tǒng)的內(nèi)核的特定指令可以由處理器100的硬件運行并且利用指定的值更新配置寄存器。在一個示例中,配置寄存器270是具有保留雜項位字段的監(jiān)管級別異常處理寄存器。雜項位字段的指定部分可以被謹(jǐn)慎地用于存儲扼制代碼。也可以使用用戶級別和監(jiān)管級別配置寄存器的其他示例。另外,其它值也可以存儲在硬件配置寄存器270中,其它值的示例可以包括指令發(fā)布比率限制。其它示例包括以下描述的用來維護(hù)指令計數(shù)和生成指令發(fā)布比率限制的遞增值和遞減值??商鎿Q地,硬件邏輯可以用來執(zhí)行如下所述的這些步驟。在一個實施例中,功率管理器狀態(tài)機(jī)220可以用來從處理器100收集數(shù)據(jù)。在運行一個或多個應(yīng)用時,處理器100的所估計的實時功率消耗可以被遞送給功率管理器狀態(tài)機(jī)220。各種技術(shù)中的任何技術(shù)都可以用來確定處理器100的功率消耗。在一個實施例中,片上電流傳感器可以將汲取電流的估計值提供給功率管理器狀態(tài)表230。在另一實施例中,數(shù)據(jù)可以包括所選擇的經(jīng)采樣的控制和數(shù)據(jù)信號的二進(jìn)制邏輯值或數(shù)字加權(quán)值。在收集數(shù)據(jù)之后,功率管理器狀態(tài)機(jī)220可以估計處理器100的功率消耗并確定對處理器100的操作參數(shù)的改變。在各個實施例中,功率目標(biāo)可以被指派給處理器100。功率目標(biāo)可以例如是熱設(shè)計功率值。熱設(shè)計功率(TDP)也可以稱為熱設(shè)計點,代表冷卻系統(tǒng)能夠為處理器100有效耗散的最大功率量。如果在處理器100上運行高功率應(yīng)用或病毒,則功率管理器狀態(tài)機(jī)220可以調(diào)節(jié)工作電壓、工作頻率或兩者。一般而言,功率消耗與處理器100的工作頻率和工作電壓成比例。響應(yīng)于從處理器100接收到更新的功率估計數(shù)據(jù),功率管理器狀態(tài)機(jī)220可以從若干可能的功率性能狀態(tài)中選擇功率性能狀態(tài)。所選擇的功率性能狀態(tài)可以介于最大性能狀態(tài)和最小功率狀態(tài)之間。最大性能狀態(tài)可以對應(yīng)于最大工作頻率并且最小功率狀態(tài)可以對應(yīng)于最小工作頻率。介于這兩個狀態(tài)之間的中間的離散的功率性能狀態(tài)可以包括針對工作頻率和工作電壓的組合的給定折合值(scaled value)。由功率管理器狀態(tài)機(jī)220選擇的功率性能狀態(tài)可以用給定的功率狀態(tài)代碼指示。該功率狀態(tài)代碼可以用來對功率狀態(tài)表230進(jìn)行索引。在一個實施例中,功率狀態(tài)表230包括多個條目240a-240g,每個條目包括多個字段242-248。字段242可以包括功率狀態(tài)代碼。從功率管理器狀態(tài)機(jī)發(fā)送的功率狀態(tài)代碼可以被與每個條目240a-240g的字段242中所存儲的值相比較。條目240a-240g中具有匹配的功率狀態(tài)代碼的給定條目可以用來將存儲在其它字段244-248中的一個或多個值提供給處理器100。字段244可以存儲與由存儲在字段242中的功率狀態(tài)代碼指示的功率性能狀態(tài)相關(guān)聯(lián)的工作頻率。類似地,字段246可以存儲與由存儲在字段242中的功率狀態(tài)代碼指示的功率性能狀態(tài)相關(guān)聯(lián)的工作電壓。字段248可以存儲功率扼制代碼。功率扼制代碼可以與由處理器100處理的指令類型的特定子集相關(guān)聯(lián)。指令類型的特定子集可以稱為候選指令類型。功率扼制代碼可以指示候選指令類型的指令發(fā)布限制。在一個示例中,給定功率扼制代碼可以指示用百分比表示的指令發(fā)布限制。該百分比可以定義為在給定數(shù)目的時鐘周期內(nèi)允許發(fā)布候選指令類型的指令的時鐘周期的最大數(shù)目。例如,50%的百分比可以指示對于每兩個時鐘周期最多在一個時鐘周期中發(fā)布候選指令類型的指令供運行。66%的百分比可以指示對于每3個時鐘周期可以在最多2個時鐘周期中發(fā)布候選指令類型的指令供運行。其它發(fā)布比率限制百分比是可能的并且被如以下討論的那樣構(gòu)想到。隨著功率性能狀態(tài)在處理器100上的應(yīng)用的運行期間改變,功率扼制代碼也可以改變來或者提供更多性能或者降低功率消耗。給定候選指令類型組可以包括已經(jīng)被確定或估計為在運行期間消耗可觀功率的一種或多種指令類型。例如,單指令多數(shù)據(jù)(SIMD)指令通常具有寬數(shù)據(jù)通道以用于同時處理多個矢量元素。另外,一個或多個SMD指令可以具有可觀的潛伏期。對于顯著數(shù)目的數(shù)據(jù)通道具有8到12個時鐘周期或更多時鐘周期的潛伏期的指令會在指令運行期間從電源汲取可觀數(shù)量的電流。所識別的高功率消耗指令類型的一些示例包括SMD浮點(FP)乘加、SIMD FP乘、SIMD FP加、SMD FP平方根、SMD倒數(shù)平方、SMD加等等。其它高功率消耗指令是可能的并且可構(gòu)想到。給定候選指令類型組可以包括所識別的指令類型中的一種或多種指令類型。給定候選指令類型組可以大于第二組并且,當(dāng)與高的功率消耗降低相關(guān)聯(lián)的給定功率扼制代碼被從功率狀態(tài)表230選擇時,被與更強的指令發(fā)布比率限制相關(guān)聯(lián),現(xiàn)在參見圖3,示出圖示出功率扼制單元300的一個實施例的一般框圖。在一個實施例中,功率扼制單元300位于處理器100內(nèi)并且在與調(diào)度器124同一流水線級內(nèi)使用。功率扼制單元300可以包括扼制表310。在一個實施例中,扼制表310包括多個條目320a-320j,每個條目包括多個字段322-328。字段322可以存儲功率扼制代碼。扼制表310可以用功率扼制代碼值來索引。在一個實施例中,功率扼制代碼值可以存儲在諸如狀態(tài)控制寄存器之類的配置寄存器中。此特定配置寄存器可以由軟件更新,所述軟件諸如是由設(shè)計者寫出的軟件應(yīng)用,操作系統(tǒng)或其它。在另一實施例中,功率扼制代碼可以是從如圖2所示的功率狀態(tài)表230發(fā)送的。用于維護(hù)功率扼制代碼的其它機(jī)制是可能的并且可構(gòu)想到。所維護(hù)的功率扼制代碼可被與每個條目320a-320g中的字段322中所存儲的值相比較。條目320a-320g中具有匹配的功率扼制代碼的給定條目可以用來將存儲在其它字段324-328中的值提供給扼制邏輯340。功率扼制表310中的字段324可以存儲與存儲在字段322中的功率扼制代碼相關(guān)聯(lián)的候選指令類型的一個或多個標(biāo)識符。字段326可以存儲與存儲在字段324中的候選指令類型和存儲在字段322中的功率扼制代碼兩者都相關(guān)聯(lián)的閾值指令發(fā)布計數(shù)。字段326可以可替換地存儲指令發(fā)布比率的閾值值而不是指令發(fā)布計數(shù)的閾值值??梢允褂门c由處理器100為了運行所識別的候選指令類型的指令所執(zhí)行的處理量相對應(yīng)的其它測量值。存儲在字段326中的閾值值可以被扼制邏輯340用來確定何時限制所識別的候選指令類型的指令比率。扼制邏輯340可以使該指令比率限制為存儲在字段328中的限制值。監(jiān)視單元330可以維護(hù)針對一種或多種候選指令類型的指令發(fā)布計數(shù)。該計數(shù)值可以每個時鐘周期地并依據(jù)給定候選指令類型的指令是否被發(fā)布給處理器100內(nèi)的運行核心130而被更新。在一個實施例中,可以為每個候選指令類型維護(hù)個別的計數(shù)。在另一實施例中,可以為一組兩種或更多種候選指令類型維護(hù)一個計數(shù)。給定的候選指令類型可以被包括在一個候選指令類型組或多個候選指令類型組中。在一個實施例中,針對給定候選指令類型的指令被發(fā)布給運行核心130的每個時鐘周期,針對給定候選指令類型的計數(shù)器可以被遞增I。針對沒有給定候選指令類型的指令被發(fā)布給運行核心130的每個時鐘周期,該計數(shù)器可以被遞減I。如稍后進(jìn)一步描述的,在這樣的實施例中,發(fā)布比率限制為50%。一般,發(fā)布比率限制可以對應(yīng)于遞增值與遞增值和遞減值的和的比。在其它實施例中,可以使用I以外的其它值來作為遞增和遞減的數(shù)量來實現(xiàn)不同的發(fā)布比率限制。類似地,遞增值可以不同于遞減值。例如,可以通過針對給定候選指令類型的指令被發(fā)布給運行核心130的每個時鐘周期而將遞增值設(shè)置為2并針對沒有給定候選指令類型的指令被發(fā)布給運行核心130的每個時鐘周期而將遞減值設(shè)置為3,實現(xiàn)60%的發(fā)布比率限制。在各種其它實施例中,遞增值和遞減值中的每一個都可以是可編程的。在一個實施例中,當(dāng)該計數(shù)器內(nèi)的值達(dá)到或超過存儲在表310的條目320a-320j的所選擇的條目的字段326中的值時,扼制邏輯340可以開始向調(diào)度器124發(fā)送控制信號以阻止由存儲在字段324中的標(biāo)識符識別的候選指令類型的指令的發(fā)布。在一個示例中,SMD FP乘加指令類型可以由表310中的條目320a_320j中的所選擇的條目中的字段324識別。閾值計數(shù)值128可以存儲在字段326中。監(jiān)視單元330可以具有如在以上描述中那樣按I遞增和遞減的計數(shù)器。當(dāng)監(jiān)視單元330檢測到為128的計數(shù)值時,監(jiān)視單元330可以通知扼制邏輯340。表310中的同一所選擇的條目中的字段328可以存儲為50%的發(fā)布比率限制。扼制邏輯可以向調(diào)度器124發(fā)送控制信號以阻止在下一時鐘周期中發(fā)布任何SMD FP乘加指令類型的指令。作為阻止的結(jié)果,計數(shù)值可以被遞減到127。在下一時鐘周期中,由于計數(shù)低于閾值,所以扼制邏輯340可以改變控制信號以消除任何阻止。SMD FP乘加指令類型的指令可以被發(fā)布。計數(shù)可以被再次遞增至128??刂菩盘栐俅伪话l(fā)送給調(diào)度器124來防止發(fā)布任何該指令類型的指令。因此,針對SMD FP乘加的最大發(fā)布比率被設(shè)置為50%。在一個實施例中,當(dāng)達(dá)到存儲在字段326中的預(yù)置值時,可以改變遞增量和遞減量。接著以上示例,如果字段328存儲了為66%的發(fā)布比率限制,則遞減量可以改為2。當(dāng)SIMD FP乘加指令類型的指令被扼制邏輯340阻止時,相關(guān)聯(lián)的計數(shù)值被從128遞減為126,而不是127。因此,在對于一個時鐘周期被再次阻止之前,準(zhǔn)許對于兩個時鐘周期發(fā)布該特定指令類型的指令。SMD FP乘加的最大發(fā)布比率被設(shè)置為66%??梢赃x擇其它遞增量和遞減量來滿足其它指定的發(fā)布比率限制。例如,可以通過將遞增量改為2并使遞減量保持為I來達(dá)到33%的發(fā)布比率限制。在一個實施例中,可以有多個存儲在字段326中的閾值值。在這樣的實施例中,選擇一種或多種候選指令類型來限制相應(yīng)的發(fā)布比率并且為所選擇的一種或多種候選指令類型中的每種候選指令類型選定發(fā)布比率可以還基于哪個指令發(fā)布計數(shù)超過了存儲在字段326中的相應(yīng)閾值。繼續(xù)以上實施例,可以在字段324中識別兩個或更多個候選指令類型組。兩個或更多個閾值值可以存儲在與字段324中所識別的組相關(guān)聯(lián)的字段326中。不是限制所述兩個或更多個候選指令類型組中每一個候選指令類型組的發(fā)布比率,而是可以基于所述兩個或更多個組中的給定組的相應(yīng)的指令發(fā)布計數(shù)超過了其閾值來選擇所述兩個或更多個組中的給定組以限制相應(yīng)的發(fā)布比率。這樣的實施例可以限制功率扼制代碼的大小并且在定義功率扼制代碼時提供更多靈活性?,F(xiàn)在參見圖4,示出用于控制特定指令類型的指令發(fā)布比率的方法400的一個實施例的一般流程圖。方法400可以被本領(lǐng)域技術(shù)人員修改以便導(dǎo)出可替換實施例。此外,該實施例中的步驟是按照順次順序示出的。但是,在另一實施例中,一些步驟可以以與所示出的不同的順序發(fā)生,并且一些步驟可以被并行地執(zhí)行,一些步驟可以與其它步驟組合,并且可以沒有一些步驟。在框402中,給定指令類型可以被選擇作為要扼制的候選指令類型。例如,與運行期間相對較高功率消耗相關(guān)聯(lián)的指令類型可以被選擇供扼制。在各個實施例中,浮點SIMD指令、加載/存儲指令及其它可以是候選。在框404中,可以選定遞增值A(chǔ)和遞減值B兩者以便為候選指令類型確定發(fā)布比率限制。例如,在一個實施例中,發(fā)布比率限制可以對應(yīng)于比B/(A+B)。因此,表示為發(fā)布候選類型指令的周期與總周期數(shù)的百分比的給定限制可以被選擇。例如,為了將功率扼制單元和調(diào)度器設(shè)置到或“撥到”60%的限制,可以選定遞增值2和遞減值3。這些選定值產(chǎn)生等于3/(2+3)或60%的比。在一個實施例中,所選定的A和B可以是由用戶軟件選擇的,該用戶軟件更新特定硬件配置寄存器。功率扼制單元可以讀取該特定硬件配置寄存器。如之前所述,處理器100的輸入/輸出(I/o)引腳可以提供對硬件配置寄存器的訪問??商鎿Q地,來自用戶軟件程序或操作系統(tǒng)內(nèi)核的特定指令可以通過處理器100的硬件被運行并且利用指定值來更新配置寄存器的特定位字段。在又一些其它實施例中,硬件控制邏輯可以選擇遞增值和遞減值。在一些實施例中,硬件控制邏輯可以基于至少功率性能狀態(tài)值來選擇這些值。在圖4的框406中,可以為所發(fā)布的候選類型指令的計數(shù)選擇閾值。該閾值也可以被存儲在硬件配置寄存器中的用于所選擇的遞增值和遞減值的特定位字段中。在框408中,當(dāng)前未被阻止的類型的指令從調(diào)度器被發(fā)布給運行單元。如果在該時鐘周期中發(fā)布了任何候選類型指令(條件框410),則在框412中,候選類型指令發(fā)布計數(shù)被遞增遞增值。如果該計數(shù)值超過所選擇的閾值(條件框414),則在框416中,針對發(fā)布與閾值相對應(yīng)的候選類型指令設(shè)置阻止。此后,方法400的控制流返回到框408。另一方面,如果在該時鐘周期中沒有發(fā)布候選類型指令(條件框410),則在框418中,候選類型指令發(fā)布計數(shù)被遞減遞減值。在各個實施例中,計數(shù)可以具有為零的最小值。如果候選類型指令被阻止(條件框420)并且如果該計數(shù)值低于所選擇的閾值(條件框422),則在框424中,消除或重置對發(fā)布候選類型指令的阻止。之后,方法400的控制流返回到框408。由于阻止的消除,候選類型指令可以被選擇以供發(fā)布。如果候選類型指令未被阻止(條件框420)或如果計數(shù)值在所選擇的閾值以上(條件框422),則方法400的控制流返回框408。以上對框404和406的描述描述了對遞減值、遞增值和閾值值的各個選擇??商鎿Q地,這些值的特定組合可以被存儲在表中。可以利用前述的軟件和硬件機(jī)制來執(zhí)行通過選擇該表中的特定條目來選擇特定組合。以下描述這樣的表的其它實施方式。現(xiàn)在參考圖5,示出扼制表500的一個實施例的一般框圖。如圖所示,功率扼制代碼可以被存儲為二進(jìn)制值。潛伏期可以用來區(qū)分功耗的可觀差異。候選指令類型可以基于運行對應(yīng)指令的估計功率消耗被分組到一起。這里,SMD FP指令類型用潛伏期被分組。例如,當(dāng)‘bOOO的功率扼制代碼被選擇時,僅具有8時鐘周期和12時鐘周期的潛伏期的SIMDFP指令類型被選定以供可能的指令發(fā)布扼制。當(dāng)扼制開始時,為66%的發(fā)布比率限制可以被用于所識別的具有8時鐘周期和12時鐘周期的潛伏期的指令類型。在另一實施例中,用于確定何時開始指令發(fā)布扼制的閾值值可以是實際發(fā)布比率而不是指令發(fā)布計數(shù)。例如,當(dāng)調(diào)度器124已經(jīng)在Y個時鐘周期內(nèi)發(fā)布了所識別的候選指令類型的X個指令時,則扼制邏輯340可以每Z個時鐘周期阻止相關(guān)聯(lián)的指令??梢员3肿詈骙個時鐘周期的移動窗口,其指示對于這Y個時鐘周期中的每個時鐘周期,相關(guān)聯(lián)的指令是否已經(jīng)被發(fā)布。在一個實施例中,可以使用Y比特大小的移位寄存器來保持最后Y個時鐘周期的移動窗口,其中,Y是整數(shù)。計數(shù)X可以針對相關(guān)聯(lián)的候選指令類型的指令被發(fā)布給運行核心130的每個時鐘周期而被遞增。一旦Y個時鐘周期過去,則當(dāng)在給定時鐘周期期間,沒有候選指令類型的指令被發(fā)布給運行核心時,計數(shù)X也可以被遞減,其中,給定時鐘周期在當(dāng)前時鐘周期之前出現(xiàn)了 Y個時鐘周期。再次參見扼制表310,用于給定功率扼制代碼的每個字段324-328都可以是可編程的。這些值在程序運行已經(jīng)開始之后可以從它們的初始值被更改。類似地,表500中用于給定功率扼制代碼的每個字段都可以是可編程的。從功率管理器狀態(tài)機(jī)220發(fā)送的功率狀態(tài)代碼與功率扼制代碼之間的相互關(guān)系也可以是可編程的。經(jīng)由軟件,用戶可以更新存儲與表310或表500內(nèi)的條目相對應(yīng)的值的特定控制寄存器?,F(xiàn)在參考圖6,示出限制指令發(fā)布比率的一個實施例的一般框圖。如圖所示,在該示例中,使用計數(shù)閾值3??梢赃x擇任何計數(shù)閾值。為了易于圖解,使用計數(shù)閾值3。在命中閾值之前,遞增量和遞減量中的每一個具有值I。選擇為50%的發(fā)布比率限制。因此,在該示例中,在達(dá)到閾值之后,遞增量和遞減量仍然為I。
在時鐘周期(CC) I中,所識別候選指令類型的有問題的指令被發(fā)布給運行核心130。因此,計數(shù)從O遞增至I。類似地,在CC 2中,有問題的指令被發(fā)布并且計數(shù)遞增。此時,計數(shù)遞增至2。在CC 3中,可能由于在調(diào)度器124內(nèi)沒有有問題的指令可用或者調(diào)度器124內(nèi)的選擇邏輯選擇了其它指令供發(fā)布,所以沒有有問題的指令被選擇供發(fā)布。相應(yīng)地,計數(shù)從2遞減為I。在CC 4和CC 5的每個中,有問題的指令被發(fā)布并且計數(shù)遞增。在CC 5中,計數(shù)達(dá)到閾值值3。因此,扼制邏輯340可以發(fā)送控制信號給調(diào)度器124以阻止所識別候選指令類型的任何有問題的指令的發(fā)布。在CC 6中,沒有有問題的指令被發(fā)布而產(chǎn)生阻止,并且計數(shù)從3遞減為2。由于計數(shù)低于閾值,所以阻止消除。在CC 7中,有問題的指令被發(fā)布并且計數(shù)遞增。在CC 7中,計數(shù)再次達(dá)到閾值值3。在CC 8和CC 9中,像在CC 6和CC 7中一樣發(fā)生阻止和發(fā)布。有問題的指令的發(fā)布比率已經(jīng)達(dá)到每兩個時鐘周期發(fā)布一個指令或者時間的50%的最大限制?,F(xiàn)在參見圖7,示出限制指令發(fā)布比率的又一實施例的一般框圖。如圖所示,在該示例中,再次使用計數(shù)閾值3。在命中閾值之前,遞增量為I并且遞減量具有為I的值。選擇為66%的發(fā)布比率限制。因此,在該示例中,在達(dá)到閾值之后,遞減量改變?yōu)?。在CC I到CC 4中,基于調(diào)度器124內(nèi)的選擇邏輯和可用性,有問題的指令被發(fā)布給運行核心130。計數(shù)被維護(hù)但是扼制邏輯不阻止有問題的指令的發(fā)布直到在CC 5中達(dá)到閾值。這里,計數(shù)現(xiàn)在被遞減2而不是I。在CC 6到CC 8中,有問題的指令被發(fā)布給運行核心130而計數(shù)遞增I。在CC 8中,再次達(dá)到閾值。在CC 9中,有問題的指令被阻止發(fā)布并且計數(shù)現(xiàn)在遞減2而不是I。有問題的指令的發(fā)布比率已經(jīng)達(dá)到每三個時鐘周期發(fā)布兩個指令或時間的66%的最大限制?,F(xiàn)在參考圖8,示出發(fā)布比率限制的示例的又一實施例的一般框圖。如圖所示,在該示例中,再次使用計數(shù)閾值3。在命中閾值之前,遞增量為I并且遞減量具有為I的值。選擇33%的發(fā)布比率限制。因此,在該示例中,在達(dá)到閾值之后,遞增量變?yōu)?。在CC I到CC 4中,基于調(diào)度器124內(nèi)的選擇邏輯和可用性,有問題的指令被發(fā)布給運行核心130。計數(shù)被維護(hù)但是扼制邏輯不阻止有問題的指令的發(fā)布直到在CC 5中達(dá)到閾值。這里,計數(shù)仍然遞減I。在CC 7中,由于計數(shù)低于閾值,所以有問題的指令被發(fā)布給運行核心130。然而,計數(shù)現(xiàn)在遞增2而不是I。計數(shù)從2變?yōu)?。閾值被抑制,所以扼制邏輯340發(fā)送控制信號給調(diào)度器124以阻止發(fā)布有問題的指令。在CC 8中,仍然達(dá)到閾值,因此,有問題的指令仍被阻止。有問題的指令的發(fā)布比率已經(jīng)達(dá)到每三個時鐘周期發(fā)布一個指令或時間的33%的最大限制?,F(xiàn)在參見圖9,示出用于控制特定指令類型的指令發(fā)布比率的方法900的一個實施例的一般流程圖。方法900可以被本領(lǐng)域技術(shù)人員修改以得出可替換實施例。此外,該實施例中的步驟被按照順次順序示出。然而,在另一實施例中,一些步驟可以以與所示出的不同的順序發(fā)生,一些步驟可以被并行地執(zhí)行,一些步驟可以與其它步驟組合,并且可以沒
有一些步驟。在所示出的實施例中,在框902中,給定指令類型可以被選擇作為要扼制的候選指令類型。與執(zhí)行期間的高功率消耗相關(guān)聯(lián)的指令類型可以被選擇。相關(guān)聯(lián)的高功率消耗可能是由于在顯著潛伏期期間執(zhí)行的可觀處理量引起的。浮點SMD指令、加載/存儲指令和其它可以是候選。一個或多個候選指令類型組可以被選擇。在框904中,可以在一個或多個軟件應(yīng)用的運行期間確定功率扼制代碼。在一個實施例中,可以基于在一個或多個軟件應(yīng)用的運行期間估計的功率性能狀態(tài)來選擇功率扼制代碼。在另一實施例中,可以從由用戶經(jīng)由軟件寫出的狀態(tài)控制寄存器讀取功率扼制代碼??梢詾楣β识笾拼a選擇給定值以便選擇給定候選類型指令組和發(fā)布比率限制。在一個實施例中,可以基于功率扼制代碼來選擇指令發(fā)布計數(shù)的給定閾值。在可替換實施例中,可以基于功率扼制代碼來選擇指令發(fā)布比率而不是指令發(fā)布計數(shù)的給定閾值。在框906中,在程序運行期間維護(hù)所選擇的一種或多種指令類型的組中的每個組的指令發(fā)布計數(shù)。該計數(shù)可以按照在程序運行之前確定的常量被遞增和遞減。在可替換實施例中,該計數(shù)可以按照從諸如功率扼制表310之類的表讀取的數(shù)量被遞增和遞減。在又一實施例中,可以維護(hù)指令發(fā)布比率而不是之前所述的計數(shù)。如果所維護(hù)的計數(shù)或比率超過給定閾值(條件框908),則在框910中,候選指令類型中的一種或多種指令類型的一個或多個組被選擇為可能要扼制。發(fā)布扼制的數(shù)量可以至少基于功率扼制代碼。在框912中,針對所選擇的一個或多個組的發(fā)布比率限制基于至少功率扼制代碼被選定。在框914中,所選擇的一個或多個組的(一個或多個)指令發(fā)布比率被限制到(一個或多個)相關(guān)聯(lián)的選定發(fā)布比率。如果功率扼制代碼不改變(條件框916),則方法900的控制流返回框906。否則,在框918中,指令發(fā)布計數(shù)的閾值可以基于改變的功率扼制代碼被更新。在另一實施例中,指令發(fā)布比率的閾值可以基于改變的功率扼制代碼被更新。方法900的控制流隨后從框918移動到框906。根據(jù)一個實施例,提供一種降低功率消耗的設(shè)備,包括:用于維護(hù)針對一種或多種指令類型的一個或多個指令發(fā)布計數(shù)的裝置,以及用于確定所述一個或多個指令發(fā)布計數(shù)中的給定指令發(fā)布計數(shù)超過給定閾值的裝置;用于響應(yīng)于所述確定,選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率,為所選擇的一種或多種指令類型中的每種指令類型選定發(fā)布比率,以及使所選擇的一種或多種指令類型中的每種指令類型的相關(guān)聯(lián)的發(fā)布比率限制為相應(yīng)的選定發(fā)布比率的裝置。根據(jù)一個實施例,該設(shè)備還包括用于基于用軟件寫出的功率扼制代碼來執(zhí)行所述選擇和所述選定的裝置。根據(jù)一個實施例,該設(shè)備還包括用于基于處理器的工作功率狀態(tài)來執(zhí)行所述選擇和所述選定的裝置。根據(jù)一個實施例,該設(shè)備還包括用于基于所述處理器的工作功率狀態(tài)來為所述一種或多種指令類型中的每種指令類型選擇相應(yīng)的閾值的裝置。根據(jù)一個實施例,該設(shè)備還包括用于還基于哪個指令發(fā)布計數(shù)超過了相應(yīng)的閾值來執(zhí)行所述選擇和所述選定的裝置。根據(jù)一個實施例,用于維護(hù)給定指令發(fā)布計數(shù)的裝置包括:用于針對相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞增第一數(shù)量的裝置;以及用于針對沒有相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞減第二數(shù)量的裝置。根據(jù)一個實施例,該設(shè)備還包括用于響應(yīng)于所述確定來改變所述第一數(shù)量和所述第二數(shù)量中的一者或多者的裝置。
根據(jù)一個實施例,所述指令類型包括單指令多數(shù)據(jù)(SMD)指令。根據(jù)一個實施例,提供一種處理器,包括如上所述的功率扼制單元。根據(jù)一個實施例,提供一種電子設(shè)備,包括如上所述的處理器。盡管已經(jīng)相當(dāng)詳細(xì)地描述了以上實施例,但是一旦本領(lǐng)域技術(shù)人員完全明白了以上公開,則大量變形例和修改例對于本領(lǐng)域技術(shù)人員將變得顯而易見。權(quán)利要求書旨在被解釋為涵蓋所有這樣的變形例和修改例。
權(quán)利要求
1.一種處理器,包括: 調(diào)度器,所述調(diào)度器被配置為選擇和發(fā)布指令; 運行核心,所述運行核心被配置為接收和運行所發(fā)布的指令;以及 功率扼制單元,其中,所述功率扼制單元被配置為: 維護(hù)針對一種或多種指令類型的一個或多個指令發(fā)布計數(shù),以及 響應(yīng)于確定所述一個或多個指令計數(shù)中的給定指令發(fā)布計數(shù)超過閾值: 針對限制的指令發(fā)布比率來選擇所述一種或多種指令類型中的至少一種指令類型,以及 為所述至少一種指令類型選定新的發(fā)布比率。
2.按權(quán)利要求1所述的處理器,其中,所述功率扼制單元還被配置為基于用軟件寫出的功率扼制代碼來執(zhí)行所述選擇和所述選定。
3.按權(quán)利要求1所述的處理器,其中,所述功率扼制單元還被配置為基于所述處理器的工作功率狀態(tài)來執(zhí)行所述選擇和所述選定。
4.按權(quán)利要求3所述的處理器,其中,所述功率扼制單元還被配置為基于所述處理器的工作功率狀態(tài)來為所述一種或多種指令類型中的每種指令類型選擇相應(yīng)的閾值。
5.按權(quán)利要求3所 述的處理器,其中,所述功率扼制單元還被配置為進(jìn)一步基于哪個指令發(fā)布計數(shù)超過了相應(yīng)的閾值來執(zhí)行所述選擇和所述選定。
6.按權(quán)利要求3所述的處理器,其中,維護(hù)給定指令發(fā)布計數(shù)包括: 針對相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞增第一數(shù)量;以及 針對沒有相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞減第二數(shù)量。
7.按權(quán)利要求6所述的處理器,其中,所述功率扼制單元還被配置為響應(yīng)于所述確定來改變所述第一數(shù)量和所述第二數(shù)量中的一者或多者。
8.按權(quán)利要求6所述的處理器,其中,所述指令類型包括單指令多數(shù)據(jù)(SMD)指令。
9.一種降低功率消耗的方法,包括: 維護(hù)針對一種或多種指令類型的一個或多個指令發(fā)布計數(shù),以及 確定所述一個或多個指令發(fā)布計數(shù)中的給定指令發(fā)布計數(shù)超過給定閾值; 響應(yīng)于所述確定: 選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率; 為所選擇的一種或多種指令類型中的每種指令類型選定發(fā)布比率;以及使所選擇的一種或多種指令類型中的每種指令類型的相關(guān)聯(lián)的發(fā)布比率限制為相應(yīng)的選定發(fā)布比率。
10.按權(quán)利要求9所述的方法,還包括基于用軟件寫出的功率扼制代碼來執(zhí)行所述選擇和所述選定。
11.按權(quán)利要求9所述的方法,還包括基于處理器的工作功率狀態(tài)來執(zhí)行所述選擇和所述選定。
12.按權(quán)利要求11所述的方法,還包括基于所述處理器的工作功率狀態(tài)來為所述一種或多種指令類型中的每種指令類型選擇相應(yīng)的閾值。
13.按權(quán)利要求11所述的方法,還包括進(jìn)一步基于哪個指令發(fā)布計數(shù)超過了相應(yīng)的閾值來執(zhí)行所述選擇和所述選定。
14.按權(quán)利要求9所述的方法,維護(hù)給定指令發(fā)布計數(shù)包括: 針對相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期,使所述給定指令發(fā)布計數(shù)遞增第一數(shù)量;以及 針對沒有相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞減第二數(shù)量。
15.按權(quán)利要求14所述的方法,還包括響應(yīng)于所述確定來改變所述第一數(shù)量和所述第二數(shù)量中的一者或多者。
16.按權(quán)利要求14所述的方法,其中,所述指令類型包括單指令多數(shù)據(jù)(SMD)指令。
17.一種功率扼制單兀,包括: 與調(diào)度器的第一接口,所述調(diào)度器被配置為選擇和發(fā)布指令; 與運行核心的第二接口,所述運行核心被配置為接收和運行所發(fā)布的指令; 扼制控制邏輯器,其中,所述扼制控制邏輯器被配置為: 基于經(jīng)由所述第二接口檢測到所發(fā)布的指令來維護(hù)針對一種或多種指令類型的一個或多個指令發(fā)布比率,其中,所述指 令類型是由所述運行核心運行的所支持的指令類型的子集; 確定所述一個或多個指令發(fā)布比率中的給定指令發(fā)布比率超過給定閾值; 響應(yīng)于所述確定: 選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率; 為所選擇的一種或多種指令類型中的每種指令類型選定發(fā)布比率;以及經(jīng)由所述第一接口發(fā)送防止所選擇的一種或多種指令類型中的每種指令類型的相關(guān)聯(lián)的發(fā)布比率超過相應(yīng)的選定發(fā)布比率的控制信號。
18.按權(quán)利要求17所述的功率扼制單元,其中,所述扼制控制邏輯器還被配置為基于用軟件寫出的功率扼制代碼來執(zhí)行所述選擇和所述選定。
19.按權(quán)利要求17所述的功率扼制單元,其中,所述扼制控制邏輯器還被配置為基于處理器的工作功率狀態(tài)來執(zhí)行所述選擇和所述選定。
20.一種電子設(shè)備,包括: 調(diào)度器,所述調(diào)度器被配置為選擇和發(fā)布指令; 與運行核心的接口,所述運行核心被配置為接收和運行所發(fā)布的指令; 功率管理器,所述功率管理器被配置為基于所述設(shè)備內(nèi)的活動來確定功率狀態(tài)代碼;以及 控制邏輯器; 其中,所述功率管理器還被配置為將功率扼制代碼遞送給所述控制邏輯器,其中,所述功率扼制代碼與當(dāng)前功率狀態(tài)代碼相關(guān)聯(lián);并且其中,所述控制邏輯器被配置為: 基于所述功率扼制代碼選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率; 基于所述功率扼制代碼為所選擇的一種或多種指令類型中的每種指令類型選定發(fā)布比率;以及響應(yīng)于確定滿足合格條件,使所選擇的一種或多種指令類型中的每種指令類型的相關(guān)聯(lián)的發(fā)布比率限制為相應(yīng)的選定發(fā)布比率。
21.一種電子設(shè)備,包括如權(quán)利要求1 一 8中任一項所述的處理器。
22.一種降低功率消耗的設(shè)備,包括: 用于維護(hù)針對一種或多種指令類型的一個或多個指令發(fā)布計數(shù)的裝置,以及 用于確定所述一個或多個指令發(fā)布計數(shù)中的給定指令發(fā)布計數(shù)超過給定閾值的裝置; 用于響應(yīng)于所述確定,選擇一種或多種指令類型來限制相應(yīng)的發(fā)布比率,為所選擇的一種或多種指令類型中的每種指令類型選定發(fā)布比率,以及使所選擇的一種或多種指令類型中的每種指令類型的相關(guān)聯(lián)的發(fā)布比率限制為相應(yīng)的選定發(fā)布比率的裝置。
23.按權(quán)利要求22所述的設(shè)備,還包括用于基于用軟件寫出的功率扼制代碼來執(zhí)行所述選擇和所述選定的裝置。
24.按權(quán)利要求22所述的設(shè)備,還包括用于基于處理器的工作功率狀態(tài)來執(zhí)行所述選擇和所述選定的裝置。
25.按權(quán)利要求24所述的設(shè)備,還包括用于基于所述處理器的工作功率狀態(tài)來為所述一種或多種指令類型中的每種指令類型選擇相應(yīng)的閾值的裝置。
26.按權(quán)利要求24所述的設(shè)備,還包括用于進(jìn)一步基于哪個指令發(fā)布計數(shù)超過了相應(yīng)的閾值來執(zhí)行所述選擇和所述選定的裝置。
27.按權(quán)利要求22所述的設(shè)備,用于維護(hù)給定指令發(fā)布計數(shù)的裝置包括: 用于針對相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞增第一數(shù)量的裝置;以及 用于針對沒有相關(guān)聯(lián)的指令類型的指令被發(fā)布給所述運行核心的每個時鐘周期使所述給定指令發(fā)布計數(shù)遞減第二數(shù)量的裝置。
28.按權(quán)利要求27所述的設(shè)備,還包括用于響應(yīng)于所述確定來改變所述第一數(shù)量和所述第二數(shù)量中的一者或多者的裝置。
29.按權(quán)利要求27所述的設(shè)備,其中,所述指令類型包括單指令多數(shù)據(jù)(SIMD)指令。
30.一種處理器,包括如權(quán)利要求17至19中任一項所述的功率扼制單元。
31.一種電子設(shè)備,包括如權(quán)利要求30所述的處理器。
全文摘要
本發(fā)明涉及處理器指令發(fā)布扼制。一種用于通過扼制所選擇的有問題的指令的發(fā)布來降低功率消耗的系統(tǒng)和方法。處理器內(nèi)的功率扼制單元維護(hù)針對相關(guān)聯(lián)的指令類型的指令發(fā)布計數(shù)。指令類型可以是由處理器內(nèi)的運行核心運行的所支持的指令類型的子集。指令類型可以是基于用于這些類型的指令處理的高功率消耗估計值來選定的。功率扼制單元可以確定給定指令發(fā)布計數(shù)超過給定閾值。作為響應(yīng),功率扼制單元可以選擇給定指令類型來限制相應(yīng)的發(fā)布比率。功率扼制單元可以為所選擇的給定指令類型中的每種指令類型選定發(fā)布比率并使相關(guān)聯(lián)的發(fā)布比率限制為選定發(fā)布比率。對給定指令類型和相關(guān)聯(lián)的發(fā)布比率限制的選擇是可編程的。
文檔編號G06F1/32GK103092320SQ20121036689
公開日2013年5月8日 申請日期2012年9月28日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者丹尼爾·C·穆雷, A·J·保蒙-史密斯, J·H·米里爾斯, P·J·巴儂, 高柳俊成, 政郁曹 申請人:蘋果公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
孝昌县| 通河县| 汉中市| 桦川县| 扬中市| 佛学| 伊宁县| 宽甸| 宁陵县| 宜川县| 曲松县| 格尔木市| 措美县| 瓮安县| 柘荣县| 连南| 项城市| 昌黎县| 攀枝花市| 平南县| 泸州市| 乌拉特后旗| 富民县| 邮箱| 苍南县| 喀喇沁旗| 沙洋县| 建瓯市| 乡城县| 利津县| 鱼台县| 奇台县| 拉孜县| 余干县| 泸水县| 碌曲县| 尼玛县| 视频| 阿拉善右旗| 成武县| 五河县|