專利名稱:用于存儲系統(tǒng)中功率分配的方法和設(shè)備的制作方法
用于存儲系統(tǒng)中功率分配的方法和設(shè)備
背景技術(shù):
在各種電子系統(tǒng)中,在公共控制單元的控制下使用共用電源為該系統(tǒng)中的多個裝 置供電。例如,在存儲系統(tǒng)中,存儲控制器可以可控制地調(diào)整從電源向多個存儲裝置中的每 一個的功率施加。具體來說,每個存儲裝置可以例如是旋轉(zhuǎn)盤驅(qū)動器。這種裝置在最初被 應(yīng)用時可以使用最小的功率,但是隨后當(dāng)該盤驅(qū)動器的電機開始旋轉(zhuǎn)該盤驅(qū)動器內(nèi)的轉(zhuǎn)動 存儲介質(zhì)時該裝置可能消耗相當(dāng)大的功率。盡管當(dāng)該電機達到期望的轉(zhuǎn)速時(即,處于穩(wěn) 定態(tài)操作中),該盤驅(qū)動器消耗較少的功率,但是對于短促的時間,該盤驅(qū)動器可能要求相 當(dāng)大的功率來起動并完成其初始化。在包括例如SCSI架構(gòu)(包括串行連接SCSI-SAS)系統(tǒng)的所許多當(dāng)前的存儲系統(tǒng) 中,與存儲裝置耦合的控制裝置可以使用命令結(jié)構(gòu)和/或協(xié)議原語/序列以在其控制下對 每個存儲裝置的“起轉(zhuǎn)(spin-up)”進行控制和排序。這種控制裝置可以例如包括存儲控制 器(例如,SCSI、SAS或SATA控制器)、SAS擴展器、SATA端口倍增器等。該控制裝置可以例 如限制在任意給定的時間點被起轉(zhuǎn)的SCSI盤驅(qū)動器的數(shù)量,直到最后所有盤驅(qū)動器都被 啟動并旋轉(zhuǎn)。因此SCSI/SAS存儲控制器可以在其控制下限制多個盤驅(qū)動器的起轉(zhuǎn)功率需 要。然而,該存儲控制器不知道SCSI盤驅(qū)動器可能需要附加的功率多久來完成初始化。因 此,目前的SCSI/SAS存儲控制器假定允許最長可能持續(xù)時間用于與其耦合的每個SCSI盤 驅(qū)動器初始化的最壞情形。該方案可能在存儲系統(tǒng)的初始化時引起顯著的不必要的延遲, 并且因此延遲了所附加的主系統(tǒng)對該存儲系統(tǒng)的訪問。在一些存儲系統(tǒng)環(huán)境中,存儲裝置可以耦合到多個控制裝置,或者可以自動改 變它們的功率消耗狀態(tài)。此外,控制裝置甚至可以不以相同的功率域(power domain) 耦合以使得它能夠知道存儲裝置的可用功率狀態(tài)。在這種情況下,簡單的命令結(jié)構(gòu)可 能不足以容許控制裝置對存儲裝置的功率消耗進行調(diào)整和排序。在串行高級技術(shù)附件 (Serial Advanced Technology Attachment, SATA)盤驅(qū)動器的情況下這些問題被進一 步加劇。盡管SCSI/SAS和SATA標準提供了容許耦合到適應(yīng)的(compliant)控制裝置的 盤驅(qū)動器的受控啟動的命令結(jié)構(gòu),但是SATA協(xié)議沒有提供非面向命令技術(shù)(non-command orientedtechnique)以容許控制裝置調(diào)整裝置的功率消耗。因此作為控制裝置的SATA控 制器和端口倍增器可能缺乏有效地調(diào)整向與其耦合的SATA存儲裝置施加功率的能力。因 此當(dāng)前使用SATA盤驅(qū)動器的存儲系統(tǒng)典型地提供顯著過大(過剩容量)的功率供應(yīng)以容 許所有SATA時的最壞情況的功率消耗。這種過大功率供應(yīng)增加了存儲系統(tǒng)的成本/復(fù)雜 性。因此,在多個包括在初始化期間需要功率突發(fā)(burst)的裝置的系統(tǒng)中管理功率 分配是一個現(xiàn)實挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明通過提供用于在控制器的控制下管理從共用電源到多個裝置的功率分配 的方法和系統(tǒng)解決了上述及其它問題,從而使該實用技術(shù)的狀態(tài)得以前進。該控制器和裝置交換消息以控制對多個裝置的功率分配。裝置將功率請求消息發(fā)送給控制器??刂破鞅?持來自電源的當(dāng)前可利用的功率容量的指示器。如果當(dāng)前可利用的功率容量足以準許裝置 的請求,則從控制器向請求裝置發(fā)送功率準許消息(powergrant message),并且更新當(dāng)前 可利用的功率容量以反映該分配。在一些實施例中,可以從裝置向控制器發(fā)送表示該裝置 功率消耗變化的功率狀態(tài)消息。例如,當(dāng)裝置完成其附加功率的使用時,可以向控制器發(fā)送 功率狀態(tài)消息以指示不再需要先前分配的附加功率。在一個示例性實施例中,該控制器可以是SAS/SATA控制器并且該裝置可以是 SAS/SATA存儲裝置,如轉(zhuǎn)動盤驅(qū)動器。當(dāng)存儲裝置需要附加功率時(例如,用于轉(zhuǎn)動存儲介 質(zhì)的電機的起轉(zhuǎn)),它向控制器請求附加功率。當(dāng)控制器準許該附加功率時,存儲裝置可以 隨后使該電機起轉(zhuǎn)。在一些示例性實施例中,當(dāng)不再需要該附加功率時(例如,轉(zhuǎn)動存儲介 質(zhì)已經(jīng)達到穩(wěn)態(tài)轉(zhuǎn)速),該裝置可以將功率狀態(tài)消息發(fā)送給控制器以允許控制器重新分配 被釋放的附加功率容量。在一些示例性實施例中,交換的消息可以是SAS/SATA幀和/或原 語(primitive)。在本發(fā)明的一個方面,在包括控制器和與該控制器耦合的多個裝置的系統(tǒng)中提供 一種方法。該方法管理施加到與該控制器可通信地耦合的多個裝置中每一個的功率。該 方法包括在控制器內(nèi)向所述多個裝置中的每一個分配初始功率量并且在控制器中接收來 自裝置的功率請求消息。該方法然后在控制器內(nèi)確定當(dāng)前是否有足夠的功率容量可以利 用。響應(yīng)于確定出當(dāng)前有足夠的功率容量可以利用,該方法然后包括在控制器內(nèi)將附加功 率分配給該裝置,并且從控制器向該裝置發(fā)送功率準許消息以準許該裝置使用分配的附加 功率。本發(fā)明的另一個方面提供一種用于在存儲系統(tǒng)中管理功率分配的方法。該存儲系 統(tǒng)包括使用通信介質(zhì)和協(xié)議耦合到多個存儲裝置的存儲控制器。該方法可以在存儲控制器 中操作。該方法包括確定總的可利用功率容量,向所述多個存儲裝置中的每一個分配初始 功率量,并基于分配給所述多個存儲裝置中的每一個的初始功率量的總和調(diào)節(jié)所述總的可 利用功率容量。該方法然后從所述多個裝置中的請求裝置接收請求附加功率量的功率請求 消息。該方法然后確定所述總的可利用功率容量是否足以提供所請求的附加功率量。響應(yīng) 于確定出所述總的可利用功率容量足以提供所請求的附加功率量,該方法然后包括向所述 請求裝置分配所請求的附加功率量,發(fā)送功率準許消息給所述請求裝置,并基于所請求的 附加功率量調(diào)節(jié)所述總的可利用功率容量。本發(fā)明的另一方面提供一種系統(tǒng),該系統(tǒng)包括電源;多個裝置,每個裝置被耦合 為從該電源接收功率并且每個裝置適于在操作期間要求變化的功率量;以及與所述多個裝 置中的每一個可通信地耦合的SAS控制器。該控制器適于與所述多個裝置中的一個或多個 裝置交換SAS信息以管理由所述一個或多個裝置消耗的電源功率的消耗。
圖1是根據(jù)本發(fā)明的特征和方面的適于管理對耦合到共用控制器和共用電源的 多個裝置的功率分配的示例性系統(tǒng)的框圖。圖2是描述根據(jù)本發(fā)明的特征和方面的用于管理對耦合到控制器的多個裝置的 功率分配的示例性方法的流程圖。
5
圖3是描述根據(jù)本發(fā)明的特征和方面的用于管理對耦合到控制器的多個裝置的 功率分配的另一個示例性方法的流程圖。
具體實施例方式圖1是根據(jù)本發(fā)明的特征和方面而改進的系統(tǒng)100的框圖,該系統(tǒng)用于管理由耦 合到控制器的一個或多個裝置106. 1至106. 4的功率消耗。系統(tǒng)100可以包括電源108、 SAS控制器102以及一個或多個裝置106. 1至106. 4 (每一個裝置與電源108耦合并與SAS 控制器102耦合)。每一個裝置106. 1至106. 4可以經(jīng)由信號路徑152從電源108接收一 個或多個電壓電平。SAS控制器102可以包括功率管理模塊104,功率管理模塊104被耦合 為經(jīng)由路徑150與SAS裝置106. 1至106. 4通信。盡管在本文中被稱為“SAS”控制器,但 是存儲控制器102可以是任何適當(dāng)?shù)目刂蒲b置,包括例如SAS/SATA存儲控制器,SAS擴展 器、SATA端口倍增器等。在一個示例性實施例中,裝置106. 1至106. 4可以是SAS/SATA裝置,如盤驅(qū)動器 或其它存儲裝置。在這種實施例中,通信路徑150代表適應(yīng)SAS或SATA標準的任何適當(dāng)?shù)?通信介質(zhì)。功率管理模塊104與裝置106. 1至106. 4通信以管理共享電源108的共用功 率源的所述裝置中的每一個的功率消耗。更具體來說,功率管理模塊104與裝置106. 1至 106. 4交換信息(例如,控制和狀態(tài)信息)以管理由裝置106. 1至106. 4中的任意一個消耗 的功率量以及/或者各裝置106. 1至106. 4的功率消耗的定時或順序。SAS控制器102可以是作為與一個或多個SAS/SATA裝置106. 1至106. 4通信的 SAS控制器的任何適當(dāng)?shù)挠嬎阊b置。在一個示例性實施例中,SAS控制器102可以是SAS啟 動器(initiator)。在其它實施例中,SAS控制器102可以是SAS擴展器。在一些示例性實 施例中,功率管理模塊104可以是由SAS控制器102內(nèi)的通用或?qū)S锰幚砥鲌?zhí)行的適當(dāng)程 序化的指令。在其它實施例中,功率管理模塊104可以作為定制的電路和/或定制的電路與 適當(dāng)程序化的指令的組合來實施。因此功率管理模塊104代表用于與裝置106. 1至106. 4 相互作用以管理各裝置的功率消耗的任何適當(dāng)?shù)目刂平Y(jié)構(gòu)。在圖1的示例性實施例中,在功率管理模塊104和各裝置106. 1至106. 4之間交換 的信息可以是SAS幀、SAS原語和/或SATA幀。如下文中進一步討論的,如此交換的SAS/ SATA信息可以包括從裝置106. 1至106. 4引導(dǎo)到SAS控制器102內(nèi)的功率管理模塊104的 用于請求為該裝置分配功率的請求消息。在一個示例性實施例中,該請求消息可以指示該 裝置需要的附加功率量。例如,在轉(zhuǎn)動盤驅(qū)動器的起轉(zhuǎn)操作期間,在轉(zhuǎn)動介質(zhì)達到穩(wěn)態(tài)的受 控速度之前該盤驅(qū)動器需要附加功率。在這種情況下,該裝置會向SAS控制器102的功率 管理模塊104發(fā)出用于請求為該裝置的操作分配附加功率的請求消息。盡管SAS控制器102的功率管理模塊104不(一定)物理控制從電源108經(jīng)由路 徑152向裝置106. 1至106. 4的功率施加,但是請求裝置依然會等待接收來自SAS控制器 102的功率管理模塊104的準許消息。當(dāng)確定出當(dāng)前有足夠的功率容量可以利用來滿足請 求裝置的功率請求消息時,可以從SAS控制器102發(fā)送準許消息。在一個示例性實施例中, 如果當(dāng)前只有小于所請求的量可以利用,則該準許消息可以指示分配給該請求裝置的具體 功率量。在其它實施例中,該準許消息可以指示請求裝置可以使用所分配的附加功率的持 續(xù)時間。另外的其它實施例可以使用準許消息來指示可以從電源108獲得的多個電壓電平
6中的每一個的附加功率的具體量和/或附加功率的持續(xù)時間。在另外的其它示例性實施例中,可以由裝置106. 1至106. 4產(chǎn)生功率狀態(tài)消息并 且該消息可以被發(fā)送回到SAS控制器102。這種功率狀態(tài)消息可以指示例如對應(yīng)的裝置關(guān) 于其功率消耗的狀態(tài)變化。例如,當(dāng)先前請求的并且被準許的附加功率不再被需要時,可以 從該裝置向存儲控制器發(fā)送功率狀態(tài)消息。在這種情況下,存儲控制器可以將先前分配的 功率容量返回到可能分配給其它裝置的可利用功率容量的累計總和。圖1的系統(tǒng)100和上述等同結(jié)構(gòu)通過使得SAS控制器102能夠(通過其功率管理 模塊104)更準確和迅速地對耦合到SAS控制器102的多個存儲裝置106. 1至106. 4中的 每一個的加電(起轉(zhuǎn))處理進行排序來改進現(xiàn)有技術(shù)??刂破?02可以在每個裝置準備好 起轉(zhuǎn)處理時接收來自該裝置的請求,然后可以對準許給每個請求裝置的功率進行排序,以 便使電源108的可利用功率的使用最大化,同時確保永遠不準許超過可利用容量的功率容 量。此外,控制器從裝置106. 1至106. 4接收到的功率狀態(tài)消息可以允許SAS控制器更緊 密地控制多個盤驅(qū)動器(裝置106. 1至106.4)的起轉(zhuǎn)順序的定時。存儲控制器在認為該 裝置已經(jīng)完成其起轉(zhuǎn)處理之前不需要像當(dāng)前實踐中那樣等待最大延遲。在這種示例性實施 例中,存儲控制器102可以在從完成其起轉(zhuǎn)處理的前面裝置的功率狀態(tài)消息得知完成時立 即允許另一個裝置開始起轉(zhuǎn)處理。在一個示例性實施例中,功率管理模塊104的功率分配管理可以通過使用控制器 102的功率管理模塊104中的計數(shù)器功能/結(jié)構(gòu)來實現(xiàn)??梢猿跏蓟@種計數(shù)器以指示最 大可利用功率。還可以初始化多個計數(shù)器以代表由電源108提供的多個電壓電平中的每一 個可利用的最大功率。可以在制造系統(tǒng)100時將(電源108提供的每個電壓電平的)初始 最大可利用功率配置為控制器102中的參數(shù),也可以由系統(tǒng)100的管理用戶動態(tài)地配置該 初始最大可利用功率,或者可以通過控制器102和電源108之間的適當(dāng)數(shù)據(jù)路徑(未示出) 在二者之間的交換來動態(tài)地確定該初始最大可利用功率。當(dāng)功率被分配給裝置時,計數(shù)器減去準許給裝置的功率量。當(dāng)該裝置完成了對分 配功率的使用時(或者指示其功率消耗狀態(tài)的變化),計數(shù)器可以適當(dāng)遞增以指示減少的 功率消耗并且因此使得當(dāng)前可利用的功率能夠被分配給其它裝置,而不等待裝置使用附加 功率的最大超時。因此,響應(yīng)于所交換的各種消息,計數(shù)器被更新,以保持對電源108的當(dāng) 前可利用功率的記錄。對于本領(lǐng)域的技術(shù)人員來說,圖1的完全功能系統(tǒng)100中的多個附加和等同模塊 以及元件是顯而易見的。為了討論的簡化和簡短,在本文中省略了這些等同和附加特征。具 體來說,本領(lǐng)域的技術(shù)人員容易想到可以將任意數(shù)量的裝置106耦合到SAS控制器102。因 此對四個示例性裝置的描述只是意圖提出多個裝置106與SAS控制器102耦合的系統(tǒng)100 的一種可能的配置。此外,本領(lǐng)域的技術(shù)人員容易想到電源108可以提供多種施加到裝置 106. 1至106. 4的電壓電平。每種電壓電平可以與對應(yīng)的當(dāng)前可利用容量計數(shù)器相關(guān)聯(lián),并 且因此在SAS控制器102和裝置106. 1至106. 4之間交換的請求和準許信息可以包括對所 請求和所準許的一個或多個具體電壓電平的標記。圖2是描述根據(jù)本發(fā)明的特征和方面的示例性實施例的流程圖,其允許對耦合到 共用電源和存儲控制器的多個裝置的功率分配的改進管理。例如,可以在諸如圖1的系統(tǒng) 100的系統(tǒng)中操作圖2的方法。更具體來說,可以由可在圖1所例舉的系統(tǒng)的存儲控制器內(nèi)操作的功率管理模塊執(zhí)行圖2的方法。首先,步驟200考慮從總的可利用功率容量對每個附接裝置的初始功率分配。在 一個示例性實施例中,可以將計數(shù)器初始化為代表來自電源的總的可利用功率。對于由電 源產(chǎn)生的每個可利用電壓電平可以具有一個計數(shù)器??梢匀缟纤鲱A(yù)先確定和預(yù)先配置 (例如每個電壓電平的)總的可利用功率容量,并且/或者可以通過與電源的通信來動態(tài) 地確定總的可利用功率容量。對每個裝置的初始功率分配考慮了使得每個裝置的控制電子 器件能夠開始處理從而允許與控制器進行通信的每個裝置的最小功率需求。就耦合到控制 器的盤驅(qū)動器裝置而言,初始功率分配典型地不包括使轉(zhuǎn)動盤介質(zhì)起轉(zhuǎn)所需的附加功率容 量。相反,初始功率分配可以只考慮控制該裝置以使其能夠與存儲控制器進行最小限度通 信的計算邏輯,或者只考慮初始起轉(zhuǎn)之后該裝置的正常穩(wěn)態(tài)操作。然后,步驟202從附接裝置接收功率請求消息。如上面指出的,該消息可以被編碼 為SAS/SATA幀和/或原語。在一個示例性實施例中,功率請求消息可以表示分配標準功率 量的標準請求,并且不需要指定所要求的特定功率量??梢杂上到y(tǒng)設(shè)計者/制造者或者由 管理用戶預(yù)先確定并預(yù)先配置該標準功率量。在其它示例性實施例中,功率請求消息可以 指定該裝置的進一步操作所要求的附加功率量。在更進一步的示例性實施例中,功率請求 消息可以指示對由電源提供的多個電壓電平中的每一個所需的具體功率量。然后,步驟204確定當(dāng)前是否有足夠的可利用的功率容量來滿足從附接裝置接收 到的附加功率請求。如上面指出的,在功率請求消息指示來自多個可利用電壓電平中的每 一個的特定功率量的情況下,步驟204確定所請求的附加容量是否可以從所有確定的電壓 電平獲得。如果不是,則處理繼續(xù)在步驟204循環(huán),直到恢復(fù)了足夠的可利用的容量??梢?作為線程編程范例(thread programming paradigm)實現(xiàn)步驟204的處理,其中在可以滿 足其它線程中處理的其它請求的同時(例如,因為它們需要較少功率),特定的請求可以等 待足夠的可利用的功率。因此,本領(lǐng)域的技術(shù)人員將理解步驟204中例舉的簡單循環(huán)結(jié)構(gòu) 代表這樣的簡單循環(huán)結(jié)構(gòu)以及更普通的多線程或者多任務(wù)編程范例或?qū)嵤┓绞?。?dāng)已經(jīng)確定出足夠的可利用的功率容量時,步驟206分配由請求裝置請求的附加 功率。如上面指出的,在功率請求消息確定功率容量的具體量以及/或者與每個被請求的 容量相關(guān)聯(lián)的具體的電壓電平的情況下,步驟206的分配可以考慮對一個或多個電壓電平 中的每一個的功率分配(例如,如上所述,適當(dāng)?shù)挠嫈?shù)器遞減)。此外,在準許的附加功率容 量用于有限持續(xù)時間的情況下,步驟206的處理還可以指出該附加功率的使用期滿的預(yù)期 時間。步驟206的處理一般需要記錄當(dāng)前分配給多個裝置中每一個的功率容量和/或準許 特定水平的功率分配的持續(xù)時間??刂破鞯墓β使芾砟K內(nèi)的適當(dāng)?shù)谋砀窠Y(jié)構(gòu)可以用于這 種記錄目的。因此,控制器不一定需要物理控制指定功率容量的施加和使用,而是僅考慮或 記錄對多個裝置中的每一個的功率分配以及電源的當(dāng)前可利用容量。然后步驟208向請求裝置發(fā)送功率準許消息,指示所請求的附加功率量已經(jīng)被準 許。在被準許的量不同于原始請求量的情況下(或者在其它適當(dāng)?shù)那闆r下),功率準許消息 可以指示準許給請求裝置的功率容量的具體量。類似地,功率準許消息可以包括被分配的 功率容量可以被使用的持續(xù)時間。此外,功率準許消息可以指示與電源提供的多個電壓電 平中的每一個相關(guān)聯(lián)的功率的量和/或持續(xù)時間。在一個示例性實施例中,分配給請求裝置的附加功率容量可以被自動分配并且在預(yù)定的固定時間段之后被自動恢復(fù)以用于隨后的重新分配。例如,該預(yù)定的固定時間段可 以是從控制器發(fā)送到請求裝置的功率準許消息中指示的持續(xù)時間?;蛘撸?,在另一個示 例性實施例中,該持續(xù)時間可以是任何一個裝置可能需要使用所請求的附加功率的固定最 大時間。在下面本文中進一步討論的其它實施例中,裝置可以向控制器發(fā)送消息,除了其它 指示以外,該消息還指示該裝置什么時候完成了對分配給它的任何附加功率的使用。圖3是描述根據(jù)本發(fā)明的特征和方面的用于管理耦合到控制器并共享共用電源 的多個裝置當(dāng)中的功率容量分配的另一個示例性方法的流程圖。例如可以在諸如圖1的系 統(tǒng)100的系統(tǒng)內(nèi)執(zhí)行圖3的方法。首先步驟300確定與多個裝置耦合的電源提供的所有可利用電壓電平的總的可 利用功率容量。如上面指出的,可以通過存儲在控制器中的工廠定義或者管理用戶定義的 配置參數(shù)來確定總的可利用功率容量,或者在可選擇的實施例中,可以通過詢問與電源相 關(guān)聯(lián)的數(shù)據(jù)端口來確定總的可利用功率容量。然后步驟302從確定出的總的可利用功率容量分配每個附接裝置的初始功率分 配。如上面指出的,初始功率分配是裝置開始初始化到允許與所連接的控制器通信的點所 需要的最小功率。例如,在轉(zhuǎn)動盤驅(qū)動器存儲裝置的情況下,初始功率分配可以是初始化到 除了頭執(zhí)行器機構(gòu)致動和/或啟動用于轉(zhuǎn)動存儲介質(zhì)的電機以外的程度所需要的功率量。 該最小初始功率分配量是足以能夠在轉(zhuǎn)動盤驅(qū)動器存儲裝置和管理功率分配的存儲控制 器之間通信的功率量??梢詤⒖加纱鎯ο到y(tǒng)的制造商提供的靜態(tài)配置信息來確定多個裝置 中的每一個需要的初始功率分配量,或者也可以通過管理用戶輸入來確定該初始功率分配 量,該管理用戶輸入用于配置耦合到控制器的每個裝置所需要的初始功率分配。此外,在一 些實施例中,控制器可以詢問每個裝置以確定例如最初需要的功率分配量等特征。步驟302還基于對多個裝置中每一個的初始功率分配通過減少剩余的當(dāng)前可利 用功率容量來適當(dāng)?shù)卣{(diào)節(jié)總的可利用功率容量。如上面指出的,可以將計數(shù)器用于電源提 供的每個電壓電平。針對每個裝置的啟動所需的每個電壓電平的初始功率分配調(diào)節(jié)(例 如,遞減)所述計數(shù)器。接下來步驟306接收來自附接裝置的功率請求消息。如上面指出的,該消息可以 被編碼為SAS/SATA消息,例如包括SAS/SATA幀和/或原語。另外,控制器從裝置接收到 的功率請求消息可以包括請求裝置需要的附加功率量的指示。此外,該功率請求消息可以 指示由耦合到裝置的電源提供的多個電壓電平中的每一個所需要的附加功率量。例如,轉(zhuǎn) 動盤驅(qū)動器存儲裝置可能需要+12伏的功率和+/_5伏的功率,用于裝置內(nèi)的不同目的和應(yīng) 用。然后步驟308確定(例如,多個電壓電平中的每一個的)當(dāng)前可利用的功率容量 是否足以滿足請求。在功率請求消息指示需要多個電壓電平中的每一個的功率的情況下, 步驟308的測試可以確定對于多個電壓電平中的每一個是否都有足夠的功率可以利用。如 果當(dāng)前沒有足夠的功率可以利用以滿足該請求,則步驟310代表用于等待所需要的附加功 率變得可以利用的處理。在一個示例性實施例中,控制器可以確定出先前對裝置分配的附 加功率在從準許該分配開始經(jīng)過預(yù)定的時間量之后再次可以利用。在本文中下面進一步討 論的其它示例性實施例中,從裝置接收到的消息可用于指示該裝置不再需要先前分配的附 加功率。此外,本領(lǐng)域的技術(shù)人員容易想到,可以使用多線程/任務(wù)編程范例實現(xiàn)步驟308
9和310的處理,使得滿足特定功率請求消息的處理可以暫停,同時使用與圖3相同方法的其 它請求(在另一個線程/任務(wù)中)可以繼續(xù)進行。此外,本領(lǐng)域的技術(shù)人員容易想到,添加 或修改圖3的方法以確保在處理多個接收到的功率請求消息時分配功率的公平性,并且確 保對多個請求的處理不會在針對多個裝置的線程/任務(wù)處理請求當(dāng)中產(chǎn)生死鎖情形。當(dāng)如步驟308和310所確定的,認為有足夠的功率可以利用以滿足接收到的功率 請求消息時,接下來步驟312為請求裝置分配所請求的附加功率。如上所述,該分配可以包 括使一個或多個計數(shù)器遞減以指示在一個或多個電壓域中對裝置的功率分配。步驟314向請求裝置發(fā)送指示可以利用附加功率的功率準許消息。該功率準許消 息還可以被編碼為SAS/SATA消息,所述SAS/SATA消息例如包括SAS/SATA幀和/或原語。 此外,該功率準許消息可以包括所分配的供裝置使用的功率量和/或允許該裝置使用所分 配的附加功率的持續(xù)時間的指示。在一個示例性實施例中,該方法可以繼續(xù),使得步驟318接收來自該裝置的功率 狀態(tài)消息。如上所述,該功率狀態(tài)消息可以被編碼為SAS/SATA消息,所述SAS/SATA消息例 如包括SAS/SATA幀和/或原語。一般來說,該功率狀態(tài)消息可以指示發(fā)送裝置關(guān)于功率使 用或消耗的任意狀態(tài)變化。在一個具體的示例性實施例中,該功率狀態(tài)消息可以指示該裝 置不再需要使用先前分配的附加功率。響應(yīng)于接收到這樣的功率狀態(tài)消息,隨后步驟320 基于指示該裝置不再需要先前分配的附加功率的功率狀態(tài)消息調(diào)節(jié)當(dāng)前可利用的功率容 量。如上面關(guān)于功率準許消息所述的,該功率狀態(tài)消息還可以提供該裝置不再需要的具體 功率量的指示。因此該裝置可以分階段減小其對被分配的附加功率的使用,在遇到每個減 小功率消耗的階段時通知控制器。此外,功率狀態(tài)消息可以指示該裝置不再需要的多個電
壓水平中的每一個的具體功率量。因此步驟320根據(jù)從發(fā)送裝置接收到的功率狀態(tài)消息7
的信息調(diào)節(jié)當(dāng)前可利用的功率容量。本領(lǐng)域的技術(shù)人員容易想到上述圖2和圖3的方法中的多個附加和等同步驟。為 了本討論的簡化和簡短,在本文中省略了這種附加和等同步驟。盡管已經(jīng)在附圖和上述說明中示出和描述了本發(fā)明,但是這種示出和描述被認為 在性質(zhì)上是示例性的而不是限定性的。已經(jīng)示出并描述了本發(fā)明的一個實施例及其微小變 體。具體來說,作為示例性軟件或固件實施例示出和描述的特征可以等同地作為定制的邏 輯電路來實施,反之亦然。落在本發(fā)明的精神內(nèi)的所有變化和修改都期望被保護。本領(lǐng)域 的技術(shù)人員將理解落入本發(fā)明的范圍內(nèi)的上述實施例的變體。因此,本發(fā)明不局限于上述 特定的例子和圖解,而是由所附權(quán)利要求及其等同物來限定。
權(quán)利要求
一種用于管理存儲系統(tǒng)中的功率分配的方法,該存儲系統(tǒng)包括使用通信介質(zhì)和協(xié)議耦合到多個存儲裝置的存儲控制器,該方法可在該存儲控制器中操作,該方法包括確定總的可利用功率容量;向所述多個存儲裝置中的每一個分配初始功率量;基于分配給所述多個存儲裝置中的每一個的所述初始功率量的總和調(diào)節(jié)所述總的可利用功率容量;從所述多個裝置中的請求裝置接收功率請求消息,該功率請求消息請求附加功率量;確定所述總的可利用功率容量是否足以提供所請求的附加功率量;以及響應(yīng)于確定出所述總的可利用功率容量足以提供所請求的附加功率量,進行以下步驟為所述請求裝置分配所請求的附加功率量;向所述請求裝置發(fā)送功率準許消息;以及基于所請求的附加功率量調(diào)節(jié)所述總的可利用功率容量。
2.根據(jù)權(quán)利要求1所述的方法,還包括從所述請求裝置接收功率狀態(tài)消息,該功率狀態(tài)消息指示先前分配的附加功率量被所 述請求裝置釋放;以及基于功率釋放消息調(diào)節(jié)所述總的可利用功率容量。
3.根據(jù)權(quán)利要求2所述的方法,其中所述存儲控制器是串行連接SCSI(SAS)存儲控制器,并且其中所述多個裝置中的 每一個是SAS裝置,其中所述功率請求消息、所述功率準許消息和所述功率狀態(tài)消息中的每一個是SAS幀 或SAS原語中的一個。
4.根據(jù)權(quán)利要求2所述的方法,其中所述存儲控制器是串行高級技術(shù)附件(SATA)存儲控制器或SATA端口倍增器,并 且其中所述多個裝置中的每一個是SATA裝置,其中所述功率請求消息、所述功率準許消息和所述功率狀態(tài)消息中的每一個是SATA 幀或SATA原語中的一個。
5.根據(jù)權(quán)利要求1所述的方法,其中所述存儲控制器是串行高級技術(shù)附件(SATA)控制器、SATA端口倍增器、SAS控制 器或SAS擴展器中的一個。
6.根據(jù)權(quán)利要求1所述的方法, 其中所述發(fā)送步驟還包括發(fā)送所述功率準許消息,其中所述功率準許消息包括分配給所述請求裝置的所述附加 功率量的指示。
7.根據(jù)權(quán)利要求1所述的方法, 其中所述發(fā)送步驟還包括發(fā)送功率準許消息,其中所述功率準許消息包括所述請求裝置可以使用所請求的附加 功率量的持續(xù)時間的指示。
8.根據(jù)權(quán)利要求1所述的方法,還包括從所述請求裝置接收功率狀態(tài)消息,該功率狀態(tài)消息指示所述請求裝置的功率消耗的變化。
9.根據(jù)權(quán)利要求8所述的方法,還包括響應(yīng)于所述請求裝置的功率消耗的變化調(diào)節(jié)分配給所述系統(tǒng)中的其它裝置的功率。
10.根據(jù)權(quán)利要求1的方法,其中接收所述功率請求消息的步驟還包括接收包括多個電壓電平中的每一個的附加 功率量的功率請求消息。
11.一種系統(tǒng)包括 電源(108);多個裝置(106. 1至106. 4),每個裝置被耦合為從所述電源接收功率,并且每個裝置適 于在操作期間需要變化的功率量;與所述多個裝置中的每一個可通信地耦合的存儲控制器(102),該控制器適于與所述 多個裝置中的一個或多個裝置交換信息,以管理由所述一個或多個裝置消耗的來自所述電 源的功率消耗。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述存儲控制器是串行連接SCSI (SAS)控制器或者SAS擴展器,并且 其中所述多個裝置中的至少一個是SAS裝置。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述存儲控制器是串行高級技術(shù)附件(SATA)控制器或SATA端口倍增器,并且 其中所述多個裝置中的至少一個是SATA裝置。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中交換的信息包括下列中的一個或多個裝置向所述控制器請求分配的功率量、所 述控制器向裝置分配的功率量、裝置可以使用所述控制器分配給它的功率的持續(xù)時間、以 及給所述控制器關(guān)于裝置功率消耗變化的指示。
全文摘要
用于在與控制器耦合的多個裝置中對功率分配改進管理的方法和系統(tǒng)??刂破?102)和裝置(106.1至106.4)交換消息以請求,準許和釋放來自共用電源(108)的功率分配。在一些實施例中,該控制器可以是SAS/SATA控制器,交換的消息可以是SAS/SATA幀和/或原語。在示例性實施例中,該消息可以請求/準許由電源提供的一個或多個電壓電平中的每一個的具體功率量。在其它示例性實施例中,該消息可以指定請求裝置可使用所分配的功率的持續(xù)時間。從裝置發(fā)送到控制器的功率狀態(tài)消息可以指示裝置功率消耗的變化。響應(yīng)于功率狀態(tài)消息,控制器可以重新分配先前分配給裝置的、已經(jīng)完成其使用的功率。
文檔編號G06F1/26GK101986241SQ20101000380
公開日2011年3月16日 申請日期2010年1月13日 優(yōu)先權(quán)日2009年7月28日
發(fā)明者B·A·戴, B·D·貝斯默 申請人:Lsi公司