技術(shù)領(lǐng)域
本公開涉及控制系統(tǒng)中的功耗,尤其涉及控制存儲系統(tǒng)中的功耗。
背景技術(shù):
裝置的功耗正成為商業(yè)和消費者市場的度量標(biāo)準(zhǔn)。例如,在商業(yè)數(shù)據(jù)中心內(nèi),冷卻成本可以占用總成本的三分之一。此外,現(xiàn)代數(shù)據(jù)中心服務(wù)器已經(jīng)開始采用高性能的固態(tài)驅(qū)動器(SSD),諸如,高速NVM(NVMe,NVM Express)裝置。相比于其他SSD,NVMe裝置通常包括更高性能CPU和大的動態(tài)隨機存取存儲器(DRAM)以提供更高的性能。這種高性能裝置會消耗更多的電力,這些電力在數(shù)據(jù)中心配置中甚至?xí)蔀楹艽罅康墓摹n愃频?,諸如膝上型計算機的消費移動裝置已經(jīng)開始采用更高性能的SSD。功耗類似地成為在移動裝置不插電時的因素。
SSD可以包括最大熱設(shè)計功率(TDP)。然而,TDP是在設(shè)計期間設(shè)定的針對最大功耗的規(guī)格以防止對裝置的損害。如果超過TDP,則性能被節(jié)流以保持在TDP之下。
技術(shù)實現(xiàn)要素:
實施例包括一種系統(tǒng),該系統(tǒng)包括:處理器;多個存儲器;以及控制電路,結(jié)合到處理器和存儲器并且被配置為:接收功率限制;測量處理器和存儲器的功耗;以及迭代地改變處理器和存儲器的多個操作參數(shù),以使與系統(tǒng)相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于功率限制的操作狀態(tài)。
實施例包括一種方法,該方法包括:接收控制電路中的功率限制;通過控制電路來測量處理器和多個存儲器的功耗;以及通過控制電路來迭代地改變處理器和存儲器的多個操作參數(shù),以使與處理器和存儲器相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于功率限制的操作狀態(tài)。
實施例包括一種系統(tǒng),該系統(tǒng)包括:多個裝置;以及控制電路,結(jié)合到所述裝置并且被配置為:接收功率限制;測量所述裝置的功耗;以及迭代地改變所述裝置的多個操作參數(shù),以使與系統(tǒng)相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于功率限制的操作狀態(tài)。
附圖說明
圖1A是根據(jù)實施例的系統(tǒng)的示意圖。
圖1B是根據(jù)實施例的控制電路的示意圖。
圖2A-圖2F是根據(jù)各種實施例的迭代的示意圖。
圖3是根據(jù)另一個實施例的具有易失性和非易失性存儲器的系統(tǒng)的示意圖。
圖4是根據(jù)另一個實施例的具有功率計的系統(tǒng)的示意圖。
圖5是根據(jù)另一個實施例的系統(tǒng)的示意圖。
圖6是根據(jù)另一個實施例的系統(tǒng)的示意圖。
圖7是根據(jù)實施例的迭代的方法的流程圖。
圖8是根據(jù)實施例的迭代的方法的流程圖。
圖9是根據(jù)實施例的服務(wù)器的示意圖。
圖10是根據(jù)實施例的服務(wù)器系統(tǒng)的示意圖。
圖11是根據(jù)實施例的數(shù)據(jù)中心的示意圖。
具體實施方式
實施例涉及控制系統(tǒng)中的功耗。給出以下描述使得本領(lǐng)域的普通技術(shù)人員能夠作出并且使用該實施例,并且在專利申請及其需要的語境中提供以下描述。對實施例的各種修改以及這里描述的一般原理和特征將是容易理解的。主要按照特定方法和特定的實施方式中提供的系統(tǒng)來描述實施例。
然而,方法和系統(tǒng)將在其他實施方式中有效地操作。諸如“實施例”、“一個實施例”和“另一個實施例”的術(shù)語可以表示相同或不同的實施例以及多個實施例。將相對于具有某些組件的系統(tǒng)和/或裝置來描述實施例。然而,系統(tǒng)和/或裝置可以包括比示出的組件更多或更少的組件,在不脫離本公開的范圍的情況下,可以進(jìn)行組件的布置和類型的變化。也將在具有某些步驟的特定方法的上下文中描述實施例。然而,方法和系統(tǒng)可以根據(jù)具有不同和/或附加步驟以及按照與實施例不一致的不同順序的步驟的其他方法來操作。因此,實施例并不意圖限制示出的特定實施例,而是符合與這里描述的原理和特征一致的最寬范圍。
在具有某些組件的特定系統(tǒng)的上下文中描述實施例。本領(lǐng)域普通技術(shù)人員將容易地認(rèn)識到,實施例與具有其他和/或附加組件和/或其他特征的系統(tǒng)的使用一致。然而,本領(lǐng)域普通技術(shù)人員將容易地認(rèn)識到,方法和系統(tǒng)與其他結(jié)構(gòu)一致。也可以在單個組件的上下文中描述方法和系統(tǒng)。然而,本領(lǐng)域普通技術(shù)人員將容易地認(rèn)識到,方法和系統(tǒng)與具有多個組件的存儲系統(tǒng)架構(gòu)的使用一致。
本領(lǐng)域技術(shù)人員將理解,通常,這里使用的術(shù)語,尤其在所附權(quán)利要求中(例如,所附權(quán)利要求的主體)的術(shù)語一般意為“開放”術(shù)語(例如,術(shù)語“包含”應(yīng)當(dāng)解釋為“包含但不限于”,術(shù)語“具有”應(yīng)當(dāng)解釋為“至少具有”,術(shù)語“包括”應(yīng)當(dāng)解釋為“包括但不限于”等)。本領(lǐng)域中的技術(shù)人員還將理解,如果意圖引用特定數(shù)量的介紹的權(quán)利要求,這種意圖將在權(quán)利要求中明確地引用,在缺少這種引用的情況下,不存在這種意圖。例如,為了幫助理解,以下所附權(quán)利要求可以包括引導(dǎo)術(shù)語“至少一個”和“一個或更多個”的使用,以介紹引用的權(quán)利要求。然而,這種術(shù)語的使用不應(yīng)當(dāng)解釋為暗示,由不定冠詞“a”或“an”引用的權(quán)利要求的介紹將包括這種引用介紹的權(quán)利要求的任何特定權(quán)利要求限制為僅包括一個這種引用的示例,即使在同一個權(quán)利要求包括引導(dǎo)術(shù)語“一個或更多個”或“至少一個”以及諸如“a”或“an”的不定冠詞(例如,“a”和/或“an”應(yīng)當(dāng)介紹為意味著“至少一個”或“一個或更多個”)時;對用于介紹權(quán)利要求引用的定冠詞的使用同樣適用。此外,在使用類似于“A、B或C等的至少一個”的慣例的這種情況下,一般這種慣例意在本領(lǐng)域技術(shù)人員將理解的慣例的意思(例如,“具有A、B或C的至少一個的系統(tǒng)”將包括但不限于具有單獨A、單獨B、單獨C、A和B一起、A和C一起、B和C一起、和/或A、B和C一起等的系統(tǒng))。本領(lǐng)域中的技術(shù)人員還將理解,事實上表示兩個或更多個選擇性術(shù)語的任何分隔的詞和/或術(shù)語,不論在說明書、權(quán)利要求書或附圖中,應(yīng)當(dāng)理解為意圖包括術(shù)語的一個、兩個術(shù)語中的一個、或兩個術(shù)語全部的可能性。例如,術(shù)語“A或B”將理解為包括“A”或“B”或“A和B”的可能性。
圖1A是根據(jù)示例實施例的系統(tǒng)的示意圖。在該實施例中,系統(tǒng)100結(jié)合到主機102。系統(tǒng)100包括處理器104、多個存儲器106和控制電路108。
在一些實施例中,系統(tǒng)100可包括存儲系統(tǒng)。例如,存儲系統(tǒng)可以配置為通過通信接口(諸如串行附設(shè)的SCSI(SAS)、串行ATA(SATA)、高速NVM(NVMe)、光纖通道、以太網(wǎng)、遠(yuǎn)程直接存儲器存取(RDMA)等)結(jié)合到主機102。然而,在其他實施例中,系統(tǒng)100可以不同于存儲系統(tǒng)。如這里將描述的,系統(tǒng)100可以是具有組件的任意系統(tǒng),所述組件具有多個操作參數(shù),這些操作參數(shù)對系統(tǒng)的功耗和至少另一個方面有影響。
處理器104可以是通用處理器、數(shù)字信號處理器(DSP)、專用集成電路、微控制器、可編程邏輯裝置、分立電路、這些裝置的組合等。處理器104可以包括諸如寄存器、高速緩沖存儲器、處理核心等的內(nèi)部部分,也可以包括諸如地址和數(shù)據(jù)總線接口、中斷接口等的外部接口。雖然僅示出一個處理器104,但是可以存在多個處理器。此外,其他接口裝置(諸如邏輯芯片組、集線器、存儲器控制器、通信接口等)可以是系統(tǒng)100的部件,以將處理器104連接到內(nèi)部組件和外部組件。
存儲器106可以是能夠存儲數(shù)據(jù)的任何裝置。這里,示出了兩個存儲器106;然而,系統(tǒng)100中可以包括大于1的任意數(shù)量的存儲器106。存儲器106的示例包括:動態(tài)隨機存取存儲器(DRAM)模塊、根據(jù)諸如DDR、DDR2、DDR3、DDR4的各種標(biāo)準(zhǔn)的雙數(shù)據(jù)速率同步動態(tài)隨機存取存儲器(DDRSDRAM)、靜態(tài)隨機存取存儲器(SRAM)、非易失性存儲器(諸如閃存、自旋轉(zhuǎn)移力矩磁阻式隨機存取存儲器(STT-MRAM)、或相變RAM)等。
控制電路108是結(jié)合到處理器104和存儲器106的電路??刂齐娐?08可以類似于處理器104而包括通用處理器、數(shù)字信號處理器(DSP)、專用集成電路、微控制器、可編程邏輯裝置、分立電路等。如下面將進(jìn)一步詳細(xì)描述的,控制電路108可以在處理器104中實施;然而,在該實施例中,控制電路108與處理器104分開。
控制電路108可以包括與處理器104和存儲器106接口連接的電路。例如,控制電路108可以與處理器104和存儲器106結(jié)合到公共總線。在其他實施例中,控制電路108可以包括連接到處理器104和存儲器106的相應(yīng)輸入和輸出、連接到中間裝置等的輸入和輸出。例如,控制電路108可以被配置為控制一個或更多個穩(wěn)壓器(voltage regulator),其中,所述穩(wěn)壓器被配置為將電源電壓供應(yīng)給存儲器106和處理器104中的一個或更多個。在另一個示例中,控制電路108可以包括至處理器104和存儲器106的相應(yīng)通信接口的接口,諸如I2C接口。在又一個示例中,控制電路108可以直接連接到處理器104和存儲器106的輸入和輸出。
不管怎樣,控制電路108可以被配置為與處理器104和/或存儲器106相互作用。具體地,控制電路108可以被配置為從處理器104和存儲器106接收功率信息,并且影響處理器104和存儲器106的多個操作參數(shù)。例如,控制電路108可以被配置為測量處理器104和/或存儲器106的功耗。此外,控制電路108可以被配置為迭代地改變處理器104和存儲器106的多個操作參數(shù),以使與系統(tǒng)相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于功率限制的操作狀態(tài)。
圖1B是根據(jù)示例實施例的控制電路的示意圖。參照圖1A和圖1B,在該實施例中,控制電路108被配置為接收功率測量110。功率測量110表示處理器104和/或存儲器106的功耗的測量。例如,功率測量110可以包括對于處理器104和每個存儲器106的功耗的測量。控制電路108可以以各種方式接收功率測量110。例如,控制電路108可以使用通信接口、至處理器104和存儲器106的直接連接件等,來讀取處理器104和存儲器106的功率、溫度、電流和/或電壓計(meter)。在另一個示例中,控制電路108可以包括算法邏輯單元或其他電路,它們被配置為計算存儲器106和處理器104中的一個或更多個的功耗的估計。
控制電路108還被配置為接收功率限制112。例如,如果控制電路108包括單獨的微控制器,則該微控制器可以通過通信總線來接收表示特定功率水平(level)的通信??梢詮奶幚砥?04、系統(tǒng)100外部的裝置等接收這樣的通信。然而,可以根據(jù)控制電路108的特定電路而以其他方式來接收功率限制112。在實施例中,在主機102上運行的軟件可以被配置為:發(fā)布系統(tǒng)調(diào)用(system call),諸如IOTCL調(diào)用,或者被與系統(tǒng)100相關(guān)聯(lián)的API暴露的其他調(diào)用。通過該調(diào)用,主機102可發(fā)送包括功率限制的命令。例如,命令可以包括功率限制的值。在另一個示例中,命令可以包括將時間信息或時鐘信息與功率預(yù)算或功率限制相關(guān)聯(lián)起來的一組規(guī)則、時間表等。此外,命令中還可以包括目標(biāo)函數(shù)和/或其他元(meta)。在特定實施例中,命令可以包括多個項(entry),每個項包括時間、功率限制和目標(biāo)函數(shù)。因此,主機102可以控制系統(tǒng)100的功率限制、建立系統(tǒng)100所遵循的規(guī)則或時間表、設(shè)定目標(biāo)函數(shù)等。
控制電路108被配置為輸出操作參數(shù)114。該操作參數(shù)114表示處理器104和/或存儲器106的參數(shù),可以改變這些參數(shù)來改變處理器104和存儲器106的操作。例如,操作參數(shù)114可以包括處理器104和存儲器106的可被控制以影響性能和/或功耗的任意參數(shù)。在特定示例中,控制電路108可以被配置為向處理器104和/或存儲器106的寄存器寫入。在另一個示例中,控制電路108可以將控制信號發(fā)送給穩(wěn)壓器,以使穩(wěn)壓器向處理器104和存儲器106中的一個或更多個輸出不同的電壓。
如上所述,控制電路108可以被配置為迭代地改變處理器104和存儲器106的多個操作參數(shù)以使目標(biāo)函數(shù)最優(yōu)化。具體地,可以執(zhí)行該最優(yōu)化使得使用操作參數(shù)的最優(yōu)狀態(tài)的系統(tǒng)100的操作小于或等于功率限制112。該最優(yōu)化可以在運行時間(run time)執(zhí)行。因此,目標(biāo)函數(shù)可以在特定功率預(yù)算的約束下最優(yōu)化。
該目標(biāo)函數(shù)可以表示將要被最優(yōu)化的各種條件。例如,目標(biāo)函數(shù)可以表示系統(tǒng)100的性能、系統(tǒng)100的耐久力、系統(tǒng)100的可靠性等。在其他示例中,目標(biāo)函數(shù)可以表示系統(tǒng)100的輸入和輸出的數(shù)量、帶寬、延遲、容量或其他方面。目標(biāo)函數(shù)可以表示比全部系統(tǒng)100少的方面。例如,目標(biāo)函數(shù)可以僅表示存儲器106的性能或其他方面??梢詫⑾到y(tǒng)100的任意度量標(biāo)準(zhǔn)用作目標(biāo)函數(shù)或用作目標(biāo)函數(shù)的一部分。
在示例實施例中,操作參數(shù)可包括處理器104的至少一個操作參數(shù)、存儲器106中的第一存儲器的至少一個操作參數(shù)以及存儲器106中的第二存儲器的至少一個操作參數(shù)。即,操作參數(shù)包括來自處理器104和每個存儲器106的操作參數(shù)。結(jié)果,處理器104和每個存儲器106的操作狀態(tài)可以改變以影響目標(biāo)函數(shù)和功耗。然而,在其他實施例中,可以使用比全部處理器104和存儲器106少的操作參數(shù)進(jìn)行迭代。例如,在一些實施例中,處理器104和少于全部存儲器106的操作參數(shù)可以被迭代。在其他實施例中,處理器104和每個存儲器106均可以具有可被迭代的多個操作參數(shù)。
不管怎樣,可以迭代多個操作參數(shù)。具體地,由于可以改變多個以及有可能是許多個操作參數(shù),所以發(fā)現(xiàn)解會是困難的。具體地,發(fā)現(xiàn)解可以是NP困難(NP-hard)。因此,操作參數(shù)可以被迭代地改變?yōu)樵谳^短的時間內(nèi)達(dá)到基本最優(yōu)解。即,雖然在一些實施例中,操作狀態(tài)可以是最優(yōu)狀態(tài),但是在其他實施例中,操作狀態(tài)不會是針對給定目標(biāo)函數(shù)的最優(yōu)狀態(tài);然而,可以在較小量的時間內(nèi)達(dá)到并可以在運行時間發(fā)現(xiàn)該操作狀態(tài)。由于較少的時間發(fā)現(xiàn)最優(yōu)解,所以在一些實施例中,系統(tǒng)100可以在操作期間并在這些功率限制112內(nèi)對改變功率限制112進(jìn)行響應(yīng),目標(biāo)函數(shù)可以被最優(yōu)化。
在特定示例中,可以將功率限制112設(shè)定為10W。諸如活動處理器104的數(shù)量較少或者存儲器106的尺寸較小的較低的并行性(parallelism)可以實現(xiàn)較低的功率限制112。此外,存儲器106的不同的操作狀態(tài)(諸如單級單元(SLC)編程)也可以實現(xiàn)功率限制112。目標(biāo)函數(shù)可以表示應(yīng)當(dāng)使用哪個方法。例如,如果目標(biāo)函數(shù)是為了最好的性能,則可以降低容量而使用SLC編程配置。然而,可以不改變活動處理器104的數(shù)量或存儲器106的其他方面以降低并行性,因此不會降低性能。在另一個示例中,目標(biāo)函數(shù)可以表示較高的容量,因此可以使用較低的并行性配置。
在一些實施例中,目標(biāo)函數(shù)可以不表示使用或指定特定操作參數(shù)或可改變的參數(shù)的特定方法。使用上述示例之一,目標(biāo)函數(shù)不需要指定應(yīng)當(dāng)使用SLC編程。相反,目標(biāo)函數(shù)可以僅表示應(yīng)在功率限制112內(nèi)使性能最大化。通過操作參數(shù)(包括表示要使用的特定單元級編程方法的操作參數(shù))的迭代,可以實現(xiàn)功率限制112內(nèi)的最優(yōu)性能。雖然在一些實例中,操作參數(shù)可以表示應(yīng)當(dāng)使用SLC編程,但是在其他實例中,通過改變其他操作參數(shù)而不改變至SLC編程可以節(jié)省足夠量的功率,同時仍然使性能最大化。
在特定實施例中,控制電路108可以被配置為以第一功率限制112操作之后接收不同的第二功率限制112。然后,控制電路108可以被配置為迭代地改變處理器104和存儲器106的操作參數(shù),以將與系統(tǒng)100相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于第二功率限制的操作狀態(tài)。
在實施例中,可以在運行時間執(zhí)行目標(biāo)函數(shù)的最優(yōu)化。即,控制電路108可以被配置為在系統(tǒng)100運行時迭代操作參數(shù)114。當(dāng)接收到新的功率限制112時,控制電路108可以被配置為在系統(tǒng)100運行的同時迭代操作參數(shù)以將系統(tǒng)100的操作狀態(tài)改變?yōu)榧仍谛碌墓β氏拗?12內(nèi)又再次使目標(biāo)函數(shù)最優(yōu)化。因此,在運行時間,功率限制112可以動態(tài)地改變,作為響應(yīng),可以改變系統(tǒng)100的操作以滿足新的功率限制112。
在一些實施例中,控制電路108可以被配置為連續(xù)地迭代操作參數(shù)。例如,控制電路108可以被配置為周期性地(periodically)(諸如每毫秒)執(zhí)行最優(yōu)化序列(optimization sequence)。即,控制電路108可以被配置為每毫秒迭代操作參數(shù)以發(fā)現(xiàn)最優(yōu)狀態(tài)。盡管已經(jīng)用毫秒作示例,但是也可以按照期望而使用其他的時間幀。例如,如果發(fā)現(xiàn)最優(yōu)解的預(yù)期時間為10ms,則可以每隔20ms重復(fù)最優(yōu)化序列。因此,當(dāng)設(shè)定新的功率限制112時,控制電路108可以繼續(xù)迭代,但是,是在新的功率限制112之內(nèi)迭代。
在其他實施例中,控制電路108可以被配置為響應(yīng)于特定條件而進(jìn)行迭代。例如,控制電路108可以被配置為在下列條件開始迭代:在啟動(startup)時、在從睡眠狀態(tài)返回之后、在接收到新的功率限制112之后、在特定時間段之后等。
在一些實施例中,功率限制112的影響如果沒有被消除則會減小。例如,系統(tǒng)100可以在下列條件下操作,即,將有可能實現(xiàn)功率限制112不存在或被設(shè)置為高于系統(tǒng)100的值。因此,這里描述的最優(yōu)化可以不受功率限制112的約束。結(jié)果,可以單獨使用操作參數(shù)來優(yōu)化目標(biāo)函數(shù)。操作參數(shù)可以跨越這些操作參數(shù)的全范圍來迭代。在特定示例中,目標(biāo)函數(shù)可以與壽命最大化相關(guān)聯(lián),而不考慮功耗。得到的操作參數(shù)的集合(set)可以不同于會使性能最優(yōu)化而不考慮功耗的操作參數(shù)的集合。雖然已經(jīng)將壽命最優(yōu)化用作可以被不考慮功耗地最優(yōu)化的目標(biāo)函數(shù)的示例,但是可以使用任何目標(biāo)函數(shù)。
圖2A-圖2F是根據(jù)各種實施例的迭代的示意圖。在一些實施例中,可以使用不同的迭代方法來迭代操作參數(shù)??梢允褂玫牡椒ǖ氖纠∟elder-Mead方法和坐標(biāo)下降方法;然而,在其他實施例中,可以使用其他迭代方法。Nelder-Mead方法將用作示例。Nelder-Mead方法是可以相對快速地收斂的迭代方法。在一些實施例中,作為啟發(fā)式算法,Nelder-Mead方法不會一直提供操作參數(shù)的最優(yōu)集合,但是其提供的操作參數(shù)可以是在相對較短的時間段內(nèi)獲得的足夠好的解。
Nelder-Mead方法以具有n+1個頂點的初始單純形開始,其中,n為操作參數(shù)的數(shù)量。頂點表示操作參數(shù)的集合。然后,該方法根據(jù)中間搜索的頂點來迭代步長(step)。在搜索開始時,操作參數(shù)的初始集合可以部分地基于之前的最優(yōu)解以減少需要收斂的時間,然而,在其他實施例中,可以增加操作參數(shù)的新集合和/或隨機集合,以避免局部最優(yōu)(local optima)。在一個實施例中,一個集合可以被初始化為之前的最優(yōu)解,其他集合可以被初始化為隨機集合。在另一個實施例中,兩個或更多個集合可以被初始化為之前的最優(yōu)解,同時其余集合被設(shè)定為隨機集合。
參照圖2A,使用兩個操作參數(shù)的最優(yōu)化將用作示例;然而,可以使任意數(shù)量的操作參數(shù)最優(yōu)化。由于兩個操作參數(shù)要被最優(yōu)化,對操作參數(shù)的三個集合200、202和204計算目標(biāo)函數(shù)。除了計算目標(biāo)函數(shù)的結(jié)果外,還可以對三個集合200、202和204測量功耗。
在圖2B中,發(fā)現(xiàn)最差的集合。這里,最差的集合是集合200。可以計算其余集合202和204的重心206。在圖2C中,最差的集合200可以關(guān)于重心206被反射以產(chǎn)生新集合208。可以對新集合208計算目標(biāo)函數(shù),并且可以測量新的功耗。
在圖2D中,新集合208可以是最差的集合。如果這樣,可以產(chǎn)生更接近重心206的新集合210。再一次,可以對新集合210計算目標(biāo)函數(shù)并可以測量新的功耗。可選擇地,在圖2E中,如果新集合208具有由目標(biāo)函數(shù)得到的更優(yōu)化的結(jié)果,則可以在與重心206相反的方向上產(chǎn)生新集合212。再一次,可以對新集合212計算目標(biāo)函數(shù)并可以測量新的功耗。
在圖2F中,可以產(chǎn)生集合220、222和224的初始組(group),可以對集合220、222和224計算目標(biāo)函數(shù)并可以測量新的功耗。這里,集合220和222的從目標(biāo)函數(shù)得到的最優(yōu)結(jié)果可以小于集合224的從目標(biāo)函數(shù)得到的最優(yōu)結(jié)果。因此,可以產(chǎn)生更接近集合224的新集合226和228。再一次,可以對集合226和228計算目標(biāo)函數(shù)并可以測量新的功耗。
盡管以上已經(jīng)描述了選擇新集合的特定方法,但是可以以不同的順序使用其他方法。上述示例僅是示出操作參數(shù)的迭代的示例。
此外,雖然已經(jīng)在確定是否使用或拋棄特定集合時使用了從目標(biāo)函數(shù)得到的結(jié)果,但是也可以使用這些集合的功率測量。例如,如果針對特定集合的功率測量大于當(dāng)前功率限制,則該集合可以認(rèn)為是最差集合。在另一個示例中,如果所有集合具有大于當(dāng)前功率限制的功率測量,則可以使用功率測量代替目標(biāo)函數(shù)的結(jié)果來確定操作參數(shù)的新集合。即,具有最高功率測量的集合可以是被新集合替換的集合。
在另一個實施例中,控制電路108可以被配置為具有針對各種功率限制的預(yù)定操作參數(shù)。雖然這些預(yù)定操作參數(shù)可以得到比相關(guān)聯(lián)的功率限制低的功耗,但是預(yù)定操作參數(shù)不會是給定目標(biāo)函數(shù)的最優(yōu)操作參數(shù)。因此,預(yù)定操作參數(shù)可以用作迭代的起始點,以在功率限制內(nèi)使目標(biāo)函數(shù)最優(yōu)化。
回到圖1A和圖1B,在實施例中,處理器104可以被配置為接收與迭代有關(guān)的命令。例如,主機102可以將命令發(fā)送到處理器104。命令可以與系統(tǒng)100的與功耗和這里描述的最優(yōu)化有關(guān)的各種操作相關(guān)聯(lián)。命令可以表示在迭代地改變操作參數(shù)時使用的迭代方法。
在另一個示例中,命令可以表示要最優(yōu)化的目標(biāo)函數(shù)。在實施例中,在已經(jīng)發(fā)現(xiàn)操作參數(shù)的最優(yōu)狀態(tài)之后,目標(biāo)函數(shù)可以響應(yīng)于命令而改變。迭代可以以新的目標(biāo)函數(shù)來繼續(xù)。因此,即使在同一功率限制112下,操作參數(shù)也可以因目標(biāo)函數(shù)的改變而改變至不同的最優(yōu)狀態(tài)。
在又一個示例中,命令可以包括以上描述的功率限制112??梢栽诿钪薪邮张c迭代有關(guān)的任何方面。然而,在一些實施例中,可以預(yù)先確定諸如迭代方法、目標(biāo)函數(shù)等的一些方面。
雖然主機102將命令發(fā)送到處理器104已經(jīng)用作示例,但是在其他實施例中,可以以不同的方式傳達(dá)命令。例如,系統(tǒng)100可以將至控制電路108的接口提供給主機102。結(jié)果,主機102可以更直接地將命令傳達(dá)給控制電路108。
圖3是根據(jù)另一個實施例的具有易失性和非易失性存儲器的系統(tǒng)的示意圖。在該實施例中,系統(tǒng)100a可以類似于圖1A的系統(tǒng)100。然而,存儲器106包括非易失性存儲器120和易失性存儲器122。在特定實施例中,系統(tǒng)100a可以作為非易失性存儲器120是大容量存儲介質(zhì)的SSD來操作。
在實施例中,易失性存儲器122可以包括動態(tài)隨機存取存儲器(dynamic random access memory,DRAM)。DRAM可以具有如下操作參數(shù):諸如功率門控參數(shù)、自刷新參數(shù)、排的數(shù)量(a number of ranks)和通道的數(shù)量(a number of channels)。這些參數(shù)中的每個可以在DRAM對目標(biāo)函數(shù)結(jié)果的貢獻(xiàn)和功耗兩方面具有影響。
非易失性存儲器120可以包括諸如NAND閃存、自旋轉(zhuǎn)移力矩磁RAM、相變存儲器(PCM)等的非易失性隨機存取存儲器(NVRAM)。NVRAM可以具有如下操作參數(shù):諸如讀取重試參數(shù)、單級/多級單元模式開關(guān)、擦除電壓和編程電壓。
具體地,NAND閃存介質(zhì)具有不對稱的延遲和功耗特性。NAND單元在寫入(編程)/擦除時會比在讀取時花費更長的時間。此外,讀取使用較低的電壓操作(例如,5V),但是編程或其擦除需要較高的電壓(例如,20V用于編程,-20V用于擦除)。此外,與讀取時在每個NAND單元上方的感測過程不同的是,編程或擦除需要將電荷注入到浮置柵極,或者從浮置柵極中去除電荷。Fowler-Nordheim(FN)隧穿花費更長時間,結(jié)果,編程和擦除可以比讀取慢幾個數(shù)量級。
NAND閃存介質(zhì)可以使用多級單元(MLC),每個NAND單元存儲多個狀態(tài)。由于每個存儲單元的信息密度較高,使得MLC在給定的存儲器中提供較大的邏輯容量。然而,MLC引進(jìn)了復(fù)雜的讀取/編程/擦除機制。MLC編程由兩個階段構(gòu)成;LSB(最低有效位)和MSB(最高有效位)編程。編程利用ISPP(遞增步長脈沖編程,Incremental Step Pulse Programming),通過以步長大小(step sizes)遞增地注入電荷而對閾值電壓進(jìn)行精細(xì)控制。此外,MLCNAND引進(jìn)另一個不對稱特性:MSB編程因更多的閾值電平(3相比于SLC中的1)而比LSB編程花費更長的時間,因此使用精細(xì)控制以適當(dāng)?shù)卦O(shè)定閾值電壓。在許多的NAND芯片中,MSB編程可以比LSB慢十倍。
FN隧穿使得能通過令閾值電壓Vth移位來表示邏輯“1”和“0”。其正比于存儲電荷Q。因此,一旦適當(dāng)電荷注入浮置柵極或從浮置柵極斥出,則能夠限定給定單元的邏輯狀態(tài)。浮置柵極中的電荷量確定Vth,因此,對Vth進(jìn)行讀取可以被配置或編程。
然而,因為浮置柵極與基底之間的氧化物內(nèi)部的電荷捕獲,所以會發(fā)生單元Vth退化。結(jié)果,氧化物內(nèi)部的電荷防止了適當(dāng)?shù)碾姾勺⑷牒团懦狻F浣Y(jié)果是,從控制柵極測量的Vth在兩個狀態(tài)下都比較高。因此,利用智能編程/擦除機制,擦除/編程操作會隨著每個單元的退化而花費更長時間。
除了這些不對稱特性之外,NAND介質(zhì)和其組織還可以引進(jìn)并行性以在編程和擦除中隱藏NAND的較高延遲,該并行性包括多重平面(multi-plane)操作、交織交錯(interleave)操作和多通道(multi-channel)操作。由于該并行性,意味著可以同時執(zhí)行多個NAND操作,所以可應(yīng)用異構(gòu)并行性來滿足功率約束。
以上描述了非易失性存儲器120的各種不同特性。這些特性中的每個特性可以是可配置的。非易失性存儲器120可以具有與上述操作有關(guān)的各種操作參數(shù)。
處理器104可以具有各種操作參數(shù)。例如,操作參數(shù)可以包括處理器104的動態(tài)電壓及頻率縮放(DVFS)參數(shù)和功率門控參數(shù)。在另一個示例中,處理器可以具有多個核。在又一個實施例中,多個處理器104可以呈現(xiàn)為具有一定數(shù)量的可變化的活動處理器104。
在特定示例中,處理器104可以在各種電源電壓下是可操作的。電源電壓可以是第一操作參數(shù)。處理器104可以包括多個核,每個核可以被啟用或禁用。操作核的數(shù)量可以是第二操作參數(shù)。易失性存儲器122可以包括可被啟用或禁用的排的數(shù)量(a number of ranks)和可變化的電源電壓,形成了兩個附加的操作參數(shù)。非易失性存儲器120可以在單級單元模式或多級單元模式下是可操作的。非易失性存儲器120也可以包括可變化的編程電壓。單元模式和編程電壓可以是兩個附加的操作參數(shù)。
如上所述,對于給定的功率限制,可以迭代操作參數(shù)以使目標(biāo)函數(shù)最優(yōu)化。解的示例包括:1.35V電源電壓的處理器104、被啟用的四個處理器104核中的兩個、被啟用的易失性存儲器122的16排之外的10排、電源電壓1.1V的易失性存儲器122、非易失性存儲器120的單級單元模式以及非易失性存儲器120的10V編程電壓。
在特定實施例中,系統(tǒng)100可以是包括多個處理器104、多個非易失性存儲器120以及多個易失性存儲器122的SSD。處理器104可以消耗高性能SSD的總功耗的較大部分,因此,可以將處理器104視為要降低其功耗的候選者。類似地,DRAM和NVM介質(zhì)可以是降低功率的獨立候選者。這些組件可以聯(lián)合操作以在隱藏非易失性存儲器120的較低寫入特性和FTL開銷的同時提供高性能。這種系統(tǒng)可以是相對復(fù)雜的,因此,在控制每個組件時預(yù)測性能影響會相對地困難。結(jié)果,以將要獲得最佳省電效果同時又示出最小性能劣化的方式來改變組件或多個組件的操作參數(shù)的方法不會是容易想到的。因SSD的復(fù)雜性,導(dǎo)致解決該問題會是困難并且耗時的。如這里描述的將操作參數(shù)迭代可以在可接受的時間幀內(nèi)允許有更多的最優(yōu)解。
在實施例中,控制電路108可以被配置為在至少兩個連續(xù)的最優(yōu)序列之中識別具有保持不變的狀態(tài)的操作參數(shù),并且為了至少一個未來的最優(yōu)序列而從操作參數(shù)中去除所識別的操作參數(shù)。例如,控制電路108可以包括存儲器,該存儲器被配置為存儲從之前的最優(yōu)序列得到的結(jié)果,即,針對最優(yōu)解的操作參數(shù)的狀態(tài)。
結(jié)束多個最優(yōu)循環(huán),可以發(fā)現(xiàn)多個最優(yōu)解并將其存儲在存儲器中。以下表1列出了三個示例最優(yōu)解的操作參數(shù)的狀態(tài),每個示例最優(yōu)解是在最優(yōu)化序列之后的優(yōu)化結(jié)果。
表1
在該示例中,在每個最優(yōu)序列之后的多個最優(yōu)解中的每個最優(yōu)解中的存儲器排(memory rank)的數(shù)量是相同的。存儲器排可以被識別為保持不變的操作參數(shù)。作為將存儲器排識別為保持不變的操作參數(shù)的結(jié)果,為了至少一些的未來的迭代,可以從被迭代的操作參數(shù)的組中去除該存儲器排。在該示例中,新的操作參數(shù)集合從5個操作參數(shù)減少到4個操作參數(shù)。結(jié)果,進(jìn)一步的最優(yōu)化可以因減少了維度而更快速地達(dá)到最優(yōu)解。雖然已經(jīng)使用這些特定操作參數(shù)作為示例,但是可以分析任何操作參數(shù),以確定一個或更多個操作參數(shù)是否已經(jīng)在足夠多量的最優(yōu)化循環(huán)內(nèi)保持不變以成為用于去除的候選者。
在實施例中,控制電路108可以能夠把各種操作參數(shù)設(shè)定為離散值。控制電路108可以被配置為將離散值寫入寄存器、將離散值傳達(dá)到另一個組件等以設(shè)定操作參數(shù)。例如,排(rank)的數(shù)量可以是僅可設(shè)定為整數(shù)。在另一個示例中,處理器電壓可以是可設(shè)定為非整數(shù)值,但是僅在一定范圍內(nèi)的離散步長(discrete steps)中。因此,如果離散值沒有改變,則操作參數(shù)可以被控制電路108確定為不變的。
在實施例中,控制電路108可以被配置為將被去除的操作參數(shù)恢復(fù)到操作參數(shù)的集合。例如,如果功率限制被改變、經(jīng)過了預(yù)定量的時間、系統(tǒng)100a的使用已經(jīng)改變等,則去除的參數(shù)可以通過在控制電路108的存儲器中設(shè)定表示要迭代哪一個操作參數(shù)的標(biāo)記(flag)而返還。可改變系統(tǒng)100a的操作的任何事件可以用作觸發(fā)器,以返還被去除的操作參數(shù)。
圖4是根據(jù)另一個實施例的具有功率計(meter)的系統(tǒng)的示意圖。在實施例中,處理器104和存儲器106中的至少一個包括被配置為測量功率的功率計電路(PM)130。在該實施例中,處理器104和存儲器106均包括功率計電路130。
功率計電路130可以采取各種形式。例如,熱傳感器或功率傳感器可以出現(xiàn)在特定裝置中。放大器、模數(shù)轉(zhuǎn)換器、緩沖器、寄存器等可以是功率計電路130的部分,以將物理效應(yīng)轉(zhuǎn)換為可以被控制電路108使用的數(shù)字化的值。例如,信號可以由傳感器所感測、被數(shù)字化并且存儲在寄存器中。寄存器可以被控制電路108讀取,被處理器104讀取并與控制電路108通信等以從功率計電路130讀取功率。
來自這些功率計電路130的讀數(shù)可以被歸一化(normalized)并且被組合為功耗值。因此,當(dāng)操作時,控制電路108可以接收當(dāng)前操作參數(shù)的集合的功率測量。當(dāng)使用操作參數(shù)的新集合時,可以執(zhí)行另一個功率測量。
返回圖1A,在實施例中,控制電路108可以被配置為基于一個或更多個操作參數(shù)來估計處理器104和存儲器106的至少一者的功耗。例如,可以從操作參數(shù)來估計功耗。此外,可以從處理器104和存儲器106的使用來估計功耗。在特定示例中,間隔之內(nèi)的請求或活動的數(shù)量可以被計數(shù)。系統(tǒng)的操作參數(shù)和其他各方面的測量可以單獨或結(jié)合起來使用以建立功率測量。在一些實施例中,功耗的估計可以用于系統(tǒng)100的一些裝置,同時可以在其他裝置中使用與圖4的功率計電路130類似的功率計。不管怎樣,可以將功率測量組合為針對給定迭代的功率測量。
圖5是根據(jù)另一個實施例的系統(tǒng)的示意圖。在該實施例中,控制電路108是處理器104的一部分。例如,可以通過處理器104上運行的程序來執(zhí)行上述控制電路108的操作。例如,處理器104可以包括一個或更多個存儲器總線接口,這些存儲器總線接口被配置為使得處理器104能夠與存儲器106進(jìn)行通信。通過存儲器總線接口,處理器104可以被配置為設(shè)定存儲器的操作參數(shù)。此外,處理器104上運行的程序可以訪問處理器104的寄存器,訪問處理器104的電源系統(tǒng)等,以在迭代期間改變處理器104的操作參數(shù)。
圖6是根據(jù)另一實施例的系統(tǒng)的示意圖。在該實施例中,系統(tǒng)100d類似圖1A的系統(tǒng)100。然而,在該實施例中,系統(tǒng)100d包括多個裝置107。每個裝置107具有可以被控制電路108改變的一個或更多個操作參數(shù)。控制電路108可以被配置為接收功率限制、測量裝置的功耗并且迭代地改變裝置的操作參數(shù),以使與系統(tǒng)100d相關(guān)聯(lián)的目標(biāo)函數(shù)最優(yōu)化至功耗小于或等于功率限制的操作狀態(tài)。換言之,這里描述的相對于存儲器106的功率限制內(nèi)的最優(yōu)化也可以應(yīng)用于所提供的普通裝置,這些裝置具有可配置的操作參數(shù)。
圖7是根據(jù)實施例的迭代方法的流程圖。參照圖1A、圖1B和圖7,在該實施例中,在600中,將操作參數(shù)設(shè)定為特定狀態(tài)。例如,控制電路108可以設(shè)定處理器104的電源電壓、第一存儲器106的排的數(shù)量和另一個存儲器106的編程電壓??刂齐娐?08可以被配置為與一個或更多個穩(wěn)壓器通信以設(shè)定各種電壓并與第一存儲器106通信以設(shè)定排的數(shù)量。
在602中,可以測量功耗。例如,控制電路108可以與處理器104和存儲器106通信以讀取功率寄存器、溫度寄存器等。然后,控制電路108可以將來自處理器104和存儲器106的值組合為功耗測量。
在604中,可以計算操作參數(shù)的當(dāng)前狀態(tài)的目標(biāo)函數(shù)。例如,控制電路108可以與處理器104和存儲器106通信,以確定可以對目標(biāo)函數(shù)作出貢獻(xiàn)的值。例如,處理器104可以隨著時間的推移追蹤讀取/寫入請求、這種請求的延遲等。數(shù)據(jù)的收集可以通過處理器104和存儲器106來執(zhí)行、通過控制電路108來執(zhí)行、或者通過這種組件的組合來執(zhí)行。不管怎樣,控制電路108可以獲得針對目標(biāo)函數(shù)的值。
在606中,控制電路108確定是否已經(jīng)針對足夠數(shù)量的操作參數(shù)的集合進(jìn)行了測量。如果否,則選擇操作參數(shù)的另一個集合并且在600中設(shè)定,如上所述在602和604中進(jìn)行測量。例如,如果當(dāng)使用Nelder-Mead方法時被改變的操作參數(shù)的數(shù)量為10,則可以由控制電路108重復(fù)針對操作參數(shù)狀態(tài)的11個集合的測量。
當(dāng)已經(jīng)測量了足夠數(shù)量的集合時,控制電路108可以在608中進(jìn)行最優(yōu)狀態(tài)的確定。例如,控制電路108可以確定迭代是否收斂至最優(yōu)狀態(tài)。如果否,則可以根據(jù)當(dāng)前迭代方法執(zhí)行新的迭代,以對操作參數(shù)狀態(tài)的一個或更多個其他集合進(jìn)行測量。
在610中,在已經(jīng)識別出操作參數(shù)狀態(tài)的最優(yōu)集合之后,可以設(shè)定針對另一個最優(yōu)序列的初始集合的最優(yōu)參數(shù)。例如,控制電路108可以將操作參數(shù)狀態(tài)的初始集合中的一個設(shè)定為之前的最優(yōu)集合中的狀態(tài),并且將其他初始集合設(shè)定為隨機集合。如上所述,操作參數(shù)可以被再次迭代。
圖8是根據(jù)實施例的迭代方法的流程圖。參照圖1A、圖1B和圖8,在該實施例中,該方法可以類似于圖7的方法。然而,在608中發(fā)現(xiàn)操作參數(shù)的最優(yōu)集合之后,分析該集合與操作參數(shù)的之前的最優(yōu)集合以確定一個或更多個操作參數(shù)是否已經(jīng)在足夠數(shù)量的操作序列中保持不變。如果這樣,在612中為了未來的迭代,從操作參數(shù)的集合中去除那些參數(shù)。例如,控制電路108可以把要去除的操作參數(shù)標(biāo)志為在控制電路108的存儲器中存儲的數(shù)據(jù)結(jié)構(gòu)中去除。如上所述,在608中迭代可以繼續(xù)。
返回圖1A和圖1B,在實施例中,系統(tǒng)100可以考慮主機102的新控制機制。例如,主機102可以改變系統(tǒng)100的功耗。主機102可以改變裝置的目標(biāo)函數(shù)。在主機102上運行的系統(tǒng)管理軟件可以運行新的系統(tǒng)調(diào)用或擴展的系統(tǒng)調(diào)用,以改變系統(tǒng)100的這些參數(shù)。如上所述,系統(tǒng)100可以接收與這些參數(shù)有關(guān)的命令。通過這些系統(tǒng)調(diào)用,主機102可以生成命令并且將命令發(fā)送到系統(tǒng)100。
圖9是根據(jù)實施例的服務(wù)器的示意圖。在該實施例中,服務(wù)器900可以包括單機服務(wù)器、機架式安裝服務(wù)器、刀片服務(wù)器等。服務(wù)器900包括系統(tǒng)902和處理器904。處理904結(jié)合到系統(tǒng)902。雖然僅示出一個系統(tǒng)902,但是可以存在任意數(shù)量的系統(tǒng)902。系統(tǒng)902可以是上述相應(yīng)的系統(tǒng)(諸如系統(tǒng)100、100a、100b、100c、100d等)中的任意一個。例如,系統(tǒng)902可以是SSD。SSD可以對服務(wù)器900提供數(shù)據(jù)存儲。
圖10是根據(jù)實施例的服務(wù)器系統(tǒng)的示意圖。在該實施例中,服務(wù)器系統(tǒng)1000包括多個服務(wù)器1002-1至1002-N。多個服務(wù)器1002各自結(jié)合到管理器1004。一個或更多個服務(wù)器1002可以類似于上述服務(wù)器900。
管理器1004被配置為管理服務(wù)器系統(tǒng)1000的服務(wù)器1002和其他組件。在實施例中,管理器1004可以被配置為管理服務(wù)器1002的功耗。例如,由于每個服務(wù)器1002可以包括如上所述的諸如系統(tǒng)100、100a、100b、100c、100d等的系統(tǒng),所以管理器1004可以與這些系統(tǒng)通信以設(shè)定功率限制。在特定示例中,管理器1004可以被管理員配置為降低服務(wù)器系統(tǒng)1000的功耗,但是維持性能的特定水平。利用僅SSD的TDP,管理器1004可以在睡眠或其他不工作的狀態(tài)下僅具有放置服務(wù)器1002的系統(tǒng)的選擇。然而,利用根據(jù)實施例的系統(tǒng),可以實現(xiàn)功率限制和操作狀態(tài)的更細(xì)的粒度。例如,管理器1004可以與服務(wù)器1002的處理器通信以將命令發(fā)送到服務(wù)器1002的系統(tǒng)來設(shè)定功率限制,并且將目標(biāo)函數(shù)設(shè)定為最優(yōu)性能。結(jié)果,服務(wù)器系統(tǒng)1000的系統(tǒng)可以迭代地改變操作參數(shù),以在由管理器1004設(shè)定的特定功率限制內(nèi)使性能最優(yōu)化。
圖11是根據(jù)實施例的數(shù)據(jù)中心的示意圖。在該實施例中,數(shù)據(jù)中心1100包括多個服務(wù)器系統(tǒng)1102-1至1102-N。服務(wù)器系統(tǒng)1102可以類似于以上圖10中描述的服務(wù)器系統(tǒng)1000。服務(wù)器系統(tǒng)1102結(jié)合到諸如因特網(wǎng)的網(wǎng)絡(luò)1104。因此,服務(wù)器系統(tǒng)1102可以通過網(wǎng)絡(luò)1104與各種節(jié)點1106-1至1106-M進(jìn)行通信。例如,節(jié)點1106可以是客戶端計算機、其他服務(wù)器、遠(yuǎn)程數(shù)據(jù)中心、存儲系統(tǒng)等。
盡管已經(jīng)根據(jù)特定實施例描述了結(jié)構(gòu)、方法和系統(tǒng),但是本領(lǐng)域普通技術(shù)人員將容易認(rèn)識到,對公開的實施例的許多變化是可能的,因此,任何變化應(yīng)當(dāng)認(rèn)為在這里公開的設(shè)備、方法和系統(tǒng)的精神和范圍內(nèi)。因此,在不脫離所附權(quán)利要求的精神和范圍的情況下,本領(lǐng)域普通技術(shù)人員可以進(jìn)行許多修改。