專利名稱:優(yōu)化存儲控制器高速緩存卸載電路性能和可靠性的系統(tǒng)的制作方法
技術領域:
本發(fā)明大體涉及存儲控制器,且更具體地,涉及用于優(yōu)化存儲 控制器高速緩存卸載電路的性能和可靠性的方法和/或設備。
背景技術:
一旦AC電源有功率損耗,傳統(tǒng)存儲控制器就被迫使用來自儲 量有限的電池備用單元的功率來盡可能快且可靠地將高速緩沖內 容從高速緩沖存儲器卸載到本地持久性存儲裝置。該持久性存儲裝 置(i)通常是本地的以避免依賴于要被加電的遠程裝置,以及(ii) 利用非常少量的功率來避免大的電池。非常少的功率導致持久性存 儲裝置具有有限的訪問帶寬。大的電池非常昂貴且具有隨著時間而 降低的可靠性。
發(fā)明內容
本發(fā)明涉及用于對高速緩沖存儲器進行卸載的方法。該方法大 體包括以下步驟(A)響應于信號的認定(assert)對高速緩沖存 儲器的多條高速緩存線中的所有高速緩存線進行讀取,以對高速緩 沖存儲器進行卸載,(B )根據RAID配置通過對各高速緩存線進行 分割來產生多個塊,以及(C)將這些塊寫入RAID配置中的多個 非易失性存儲器中,其中,每個非易失性存儲器都具有小于高速緩 沖存儲器的讀取帶寬的寫入帶寬。本發(fā)明的目的、特征和優(yōu)點包括提供用于優(yōu)化存儲器控制器 高速緩存卸載電路的性能和可靠性的方法和/或設備,該方法和/或 設備可以(i)在RAID配置中布置多個非易失性存儲器,(ii)基本 上同時地對兩個或更多的非易失性存儲器進行寫入,(iii )使得能夠 通過添加更多的存儲器電路來進行非易失性存儲器的容量擴展, (iv)相比于傳統(tǒng)方法允許更小的電池備用單元大小,和/或(v) 允許使用超電容器技術作為傳統(tǒng)電池單元的替代。
本發(fā)明的這些和其他目的、特;f正和優(yōu)點將乂人下面的詳細描述和
所附片又利要求以及附圖中變得顯而易見,附圖中 圖1是根據本發(fā)明優(yōu)選實施例的系統(tǒng)的框圖; 圖2是非易失性存儲器電路的示例性實現的示圖; 圖3是用于對高速緩沖存儲器進行卸載的示例性方法的流程
圖4是示例性RAID 0配置的示圖; 圖5是示例性RAID 1配置的示圖;以及 圖6是示例性RAID 5配置的示圖。
具體實施例方式
本發(fā)明大體實現了并行使用多個非易失性驅動器的快速高速 緩存卸載架構。這些非易失性驅動器可以被安排在RAID配置中, 諸如RAID 0配置、RAID 1配置、或RAID 5配置。還可以實現其4也的RAID配置以滿足特定應用的標準。相比于傳統(tǒng)4支術,多個 RAID配置的并行寫入特性通常考慮了高速緩存卸載接口上更高的 性能和更高的可靠性。
參照圖1,示出了才艮據本發(fā)明一個優(yōu)選實施例的系統(tǒng)100的框 圖。該系統(tǒng)(或設備)100可以實現為一個基于高速緩存的處理系 統(tǒng)。該系統(tǒng)100通常包括電路(或模塊)102、電路(或模塊) 104、電路(或模塊)106、電路(或模塊)108、電路(或模塊) 110、和電i 各(或模塊)112。可以通過電路110接收信號(例如, PWR)??梢杂呻娐?10產生一個信號(例如,OFFLOAD )并將其 4是供給電if各104。接口 114可以4吏得電^各102和電路104能夠;f皮此 進行通信。電^各104可以通過接口 116與電路106進行通信。接口 118可以允許電3各104與電3各108進4亍通信。電^各104可以通過4妄 口 120與電路112進行通信。
電路102可以實現為處理器電路。電路102可以用于通過執(zhí)行 軟件程序來執(zhí)行各種功能。電路102可以通過電3各104從電路106、 108和112讀取軟件程序的指令和/或數據,以及將軟件程序的指令 和/或數據寫入電^各106、 108和112。
電路104可以實現為存儲器控制器電路。電路104可以用于控 制電^各106、電^各108和電路112。電路104可以通過處理器接口 114與電路102交換軟件程序的指令和數據。這些數據和指令可以 (i)通過高速緩存接口 116在電路104和電路106之間、(ii)通過 閃存接口 118在電路104和電路108之間、以及通過存儲器接口 120 在電路104和電路112之間進行交換。電路104可以進一步用于響 應于信號OFFLOAD的認定狀態(tài)(例如,邏輯低)來通過接口 118 將存儲在電路106中的所有信息(例如,數據和指令)卸載到電路 108中(見箭頭128)。
8電路106可以實現為易失性存儲器。具體地,電路106可以被 實現為易失性高速緩沖存儲器。電路106通常可用于緩沖由在電流 102中執(zhí)行的軟件產生和使用的數據和指令。存儲在電路106中的 信息可以被安排為高速緩存線124a-124n。高速緩存線124a-124n 中的每一個都可以基于高速緩存命中和高速緩存未命中來與電路 112進行交換。這些高速緩存線可以被以第一讀取帶寬從電路106 -故讀耳又,而以第一寫入帶寬^皮寫入。電路108可以實現為非易失性存儲器126a-126d的陣列。存儲 器(或部件)126a-126d可以4皮安排在RAID(獨立》茲盤的冗余陣列) 配置中。在一些實施例中,電路108的每個存儲器"磁盤,,126a-126d 都可以實現為閃存。還可以實現其他的非易失性存儲器技術來滿足 特定應用的標準。信息可以以第二寫入帶寬^皮寫入到存儲器 126a-126d中的每一個,以及以第二讀取帶寬^皮讀取。電路110可以實現為備用功率單元。電路110可以用于將在信 號PWR中接收到的電功率存儲、變換、調整和/或濾波成適于電路 102、 104、 106、 108和112^f吏用的一個或多個功率網絡。電^各110 還可用于在有限的時間內提供電功率,以適于4吏電路104、 106和 108至少工作足夠的時間以^4言息乂人電路106卸載到電路108中。 此外,電路110可以監(jiān)控通過信號PWR流入的功率狀況,以及響 應于信號PWR中功率的嚴重下降和/或完全損失來i人定信號 OFFLINE。在一些實施例中,電路110可以實現為一個或多個電池。 在至少一個實施例中,電路110可以實現為一個或多個超電容器或 超級電容器(super-capacitor或ultra-capacitor )。電路112可以實現為主存儲器電路。具體地,電路112可以實 現為易失性隨機存取存儲器。電路112可以用于存儲在電路102上 執(zhí)行的軟件的指令和數據。如由電路104所確定的,電路112可以 為電路106提供高速緩存線以及接收來自電路106的高速緩存線。參照圖2,示出了電路108的示例性實現的示圖。除了存々者器 部件126a-126d以外,電路108還可以包括多個插口 130a-130d。 這些插口 (或端口) 130a-130d中的每一個都通常被安排為連接至 單個的存^f諸器126a-126d。該連4妄可以包4舌物理連4妻、電功率連4妄 和通信連4妄。在系統(tǒng)100的至少一個配置中,插口 130a-130d可以 由單個存《諸器部4牛(,W口, 126a)總、裝(populate )。在系纟克100的 其4也配置中,兩個或更多的存^f諸器126a-126d可以^皮安裝在插口 130a誦130d中。參照圖3,示出了用于對電路106進行卸載的示例性方法140 的流程圖。該方法140大體實現了將數據從電路106移至電路108 的快速卸載方法。方法140大體包括步驟(或塊)142、步驟(或 塊)144、可選步驟(或塊)146和步驟(或塊)148。該方法140可以利用信號OFFLOAD的認定來觸發(fā)。諸如來自 電路102的命令的其他觸發(fā)也可以啟動該方法140。在步驟142中, 一旦4企測到4言號PWR中的電功率損失,則電if各110可^人定〗言號 OFFLOAD。信號OFFLOAD的i人定可以由電路104感測。作為響 應,在步艱《144中,電路104可以讀取(卸載)來自電路106的高 速緩存線124a-124n。信息從電路106到電路104的傳送速度可以 由電路106的讀取帶寬控制。才艮據在電路108中實現的具體RAID配置,在步驟146中,電 路104可以/不可以對高速緩存線124a-124n中的信息分條(stripe )。 之后在步驟148中,信息塊/信息條以及誤差校正信息(如果有的話) 可以由電路104寫入到存儲器126a-126d中。這些塊/條從電路104 到電路108的傳送速度可以由存儲器126a-126d的寫入帶寬確定。由于信息可以被基本同時地沿多條并行路徑從電路104寫入到 存儲器126a-126d,因此到存^f諸器126a-126d的組合寫入帶寬可以大于(快于)從電路106的讀取帶寬。相比于傳統(tǒng)技術,更高的組 合寫入帶寬通常減少執(zhí)4亍傳送所井毛費的時間。系統(tǒng)100的架構可以 以低成本利用可移動非易失性存儲器部件126a-126d。示例性的存 儲器部件126a-126d可以包括但不限于安全數字(SD )閃存卡和 USB閃存驅動器。近年來,用于電路106的用戶指定的高速緩存大小已經變得很 大。因此,由于較慢的寫入時間和更小的容量,低成本的非易失性 存儲器選擇通常是不可用的。本發(fā)明通常使用多個非易失性存儲 器,從而可以使用RAID技術建立比單個普通非易失性存儲器元件 更大且更快的虛擬非易失性存儲器(電路108),來提高非易失性存 儲器的容量和速度。通過使用多個存儲器126a-126d,電路104和電路108可以與由用戶定制的高速緩存的數量成比例的縮放。例如,電路104可以 支持電路106中的8十億字節(jié)(GB)、 16十億字節(jié)(GB)和32十 億字節(jié)(GB)的高速緩存大小選項。電路104可以被配置為控制電 路108中的多個(例如,四個)存儲器部件126a-126d,這些部件 中的每一個都為8 GB大小。如此,8 GB的高速緩存系統(tǒng)100可以 利用單個8GB的存儲器(例如,126a)來構建。16GB的高速緩存 系統(tǒng)100可以利用兩個8 GB的存儲器(例如,126a和126b )來構 建。32GB的高速緩存系統(tǒng)可以利用四個8 GB的存儲器(例如, 126a畫126d)來構建。考慮了存卡者器126a-126d中的每一個都具有20兆字節(jié)每秒 (MB/sec)的示例性寫速度。8GB高速《爰存系鄉(xiāng)充100可以4吏用約 8GB/(20 MB/sec)=400秒將8GB易失性電路106卸載至8GB的非易 失性電路108。對于16GB的高速緩存系統(tǒng)100,由于使用了 RAID 才支術來配置兩個存+者器(例4。, 126a和126b),到電路108的寫入 帶寬通常被加倍。用于將信息從16GB電路106移出的全部卸載時間可以為16GB/(2 x 20MB/sec)=400秒。32GB的高速纟爰存系統(tǒng)100 可以使用四個存儲器元件126a-126d,來提供4x20 MB/sec=80 MB/sec的有-爻帶寬。專交大的寫入帶寬可以允i午32 GB/(4 x 20MB/sec)=400秒的高速緩存卸載時間。在所有的三個實例中,高 速緩存卸載時間都可以保持在約400秒。較大數量的存儲器部件 126a-126d可以用于減少卸載時間,允許更大的高速緩存大小和/或 實i見其j也的RAID配置。參照圖4,示出了示例性RAIDO配置的示圖。RAIDO配置可 以實J見由存4諸器部^f牛126a-126d構成的條陣列。電路104可以爿夸乂人 電^各106讀取的高速緩存線124a-124n分組成多個塊(例如,A-H )。 各塊A-H中的每一個都可以被寫至單個存儲器126a-126d,其中多 個塊被基本同時地沿并行路徑150a-150d寫入。例如,電路104可 以并行或以交錯起始順序將塊A寫至存儲器126a,將塊B寫至存 儲器126b,將塊C寫至存儲器126c,將塊D寫至存儲器126d。在 交錯起始序列中,電路104可以開始對塊A進行寫入,同時仍然從 高速緩存線124a-124n來組裝塊B。 一旦塊B準備好,電路104就 可以開始對塊B進4于寫入,繼續(xù)塊A的寫入以及開始組裝塊C。 RAIDO配置通常以存儲器126a-126d中的至少兩個實現。參照圖5,示出了 RAID 1配置的示圖。RAID 1配置通常4吏用 多個(例如,8個)存儲器126a-126h來實現鏡像對的雙工。電路 104可以將從電路106讀取的高速緩存線124a-124n分組成多個塊 A-H。各塊A-H中的每一個都可以被寫至存儲器126a-126h中的兩 個,其中多個塊^皮基本同時地沿并行路徑150a-150h寫入。例如, 塊A可以被寫至存儲器126a和126b兩者,塊B可以;故寫至存儲 器126c和126d兩者,等等。RAID 1配置通常提供所存信息的容 錯。對于每個存儲器對,即使這些存儲器部件之一失效,寫入到該對中的塊也可以被恢復。RAID 1配置以存^f諸器126a-126h中的至少四個實現。參照圖6,示出了示例性RAID5配置的才匡圖。RAID5配置可 以實現具有分布式奇偶校驗(parity)的數據條。如前所述,電路 104可以響應于信號OFFLOAD的認定讀取來自電路106的高速緩 存線124a-124n。讀取的信息可以-陂組裝成塊A-H。然后塊A-H中 的每一個都可以^皮形成條。例如,塊A可以變成條AO、 A1和A2,塊B可以變成條BO、 B1和B3,塊C可以變成條CO、 C2和C3, 塊D可以變成條D1、 D2和D3等等。給定塊的各條可以祐^安順序 寫至單個存4諸器126a-126d。可以由電3各104以相同的等級只于所有的條計算奇偶4交-驗條,然 后將其寫入到單個存j諸器126a-126d中。例如,0級奇偶才交-驗(例 如,0 PARITY)可以由條A0、條B0和條C0產生,并一皮寫入到存 儲器126d中。第一級奇偶校驗(例如,1 PARITY)可以用條A1、 條B1和條D1計算,并被寫入到存儲器126c中。在寫入每個新的 級時都可以繼續(xù)奇偶;^瞼計算。RAID 5配置通常提供在單個存々者 器部件126a-126d失效的情況下恢復所存信息的能力。分布式奇偶 沖交-驗的4吏用可以允許存儲器126a-126d的有效4吏用。RAID 5配置可 以以存儲器126a-126d中的三個或更多個來實現??梢栽陔奮各108 中實現其4也的RAID配置來滿足特定應用的標準。由圖1和圖3的示圖執(zhí)行的功能可以使用根據本說明書的教導 編程的傳統(tǒng)的通用數字計算機實現,這對本領域技術人員將是顯而 易見的。有經驗的程序員基于本公開的教導可以容易地制備適當的 軟件代碼,這對于本領域i支術人員也將是顯而易見的。本發(fā)明還可以通過制備ASIC、 FPGA,或通過將傳統(tǒng)部件電^各 的適當網絡進行互聯來實現,如在本文中所述,其改進對于本領域 4支術人員也是顯而易見的。因此,本發(fā)明還可以包括計算才幾產品,該計算機產品可以是存 儲介質,該存儲介質包括可以被用于對計算機進行編程以執(zhí)行根據 本發(fā)明的過程的指令。存儲介質可以包括但不限于任何類型的磁 盤,包4舌專欠》茲盤、光盤、CD-ROM 、》茲光盤、ROM、 RAM、 EPROM、 EEPROM、閃存、磁或光卡、或適于存儲電子指令的任何類型的介 質。如在本文中使用的,術語"同時"是指描述共享一些公共時間 _敬的一些事件,^f旦是該術i吾不意p木著限制于以同一時間點開始、以同一時間點結束、或具有相同的持續(xù)時間的事件。盡管已經參照優(yōu)選實施例具體示出并描述了本發(fā)明,但是應該 理解,在不背離本發(fā)明范圍的條件下,本領域技術人員可以進行形 式和細節(jié)上的各種改變。
權利要求
1.一種用于對高速緩沖存儲器進行卸載的方法,包括以下步驟(A)響應于信號的認定,對來自所述高速緩沖存儲器的多條高速緩存線中的所有高速緩存線進行讀取,以對所述高速緩沖存儲器進行卸載;(B)根據RAID配置,通過對所述高速緩存線進行分割來產生多個塊;以及(C)將所述塊寫入所述RAID配置中的多個非易失性存儲器之中,其中,每個所述非易失性存儲器均具有小于所述高速緩沖存儲器的讀取帶寬的寫入帶寬。
2. 根據權利要求1所述的方法,其中,所述塊中的至少兩個塊被 基本上同時地寫入所述非易失性存儲器。
3. 根據權利要求1所述的方法,還包括以下步驟通過將所述塊分成條來產生多個條。
4. 根據權利要求3所述的方法,其中,所述步驟(C)包括以下 子步驟將所述條寫入所述非易失性存儲器之中。
5. 根據權利要求4所述的方法,其中,所述條中的至少兩個條被 基本上同時地寫入所述非易失性存儲器。
6. 根據權利要求1所述的方法,其中,所述信號的所述認定表示 功率的損耗。
7. 根據權利要求1所述的方法,其中,(i)每個所述非易失性存 儲器均具有第一存儲容量,(ii)所述高速緩沖存儲器具有第 二存儲容量,以及(iii)全部的所述第一存儲容量至少與所述 第二存儲容量一樣大。
8. 根據權利要求1所述的方法,其中,全部的所述寫入帶寬至少與所述讀:f又帶寬一樣大。
9. 根據權利要求1所述的方法,其中,以最接近所述讀取帶寬的最大帶寬從所述高速緩沖存儲器讀取所述高速緩存線。
10. 才艮據4又利要求9所述的方法,其中,以最接近所述寫入帶寬的 最大帶寬將所述塊寫入所述非易失性存儲器。
11. 一種系統(tǒng),包4舌高速緩沖存儲器,具有讀取帶寬并配置為存儲多條高速 緩存線;多個非易失性存儲器,其中每一個均具有小于所述讀取 帶寬的寫入帶寬;以及控制器,配置為(i)響應于信號的認定對來自所述高速 緩沖存儲器的多條高速緩存線中的所有高速緩存線進行讀取, 以對所述高速緩沖存儲器進行卸載;(ii )根據RAID配置通過 對所述高速緩存線進行分割來產生多個塊;以及(iii)將所述 塊寫入所述RAID配置中的多個非易失性存儲器之中。
12. 根據權利要求11所述的系統(tǒng),其中,所述塊中的至少兩個塊 被基本上同時地寫入所述非易失性存儲器。
13. 根據權利要求11所述的系統(tǒng),還包括處理器,所述處理器配 置為通過所述控制器與所述高速緩沖存儲器交換數據。
14. 根據權利要求11所述的系統(tǒng),還包括功率電路,所述功率電 路配置為i人定所述信號。
15. 根據權利要求14所述的系統(tǒng),其中,所述信號的所述認定表 示流入到所述功率電路的功率的損耗。
16. 根據權利要求14所述的系統(tǒng),其中,所述功率電路包括超電 容器和超級電容器中的至少一個,以在源功率釋放之后傳送功率。
17. 根據權利要求11所述的系統(tǒng),還包括至少四個插口,每個所 述插口均配置為連接至一個所述非易失性存儲器。
18. 根據權利要求17所述的系統(tǒng),其中,至少一個所述插口在所 述系統(tǒng)的至少一種配置中為空。
19. 根據權利要求17所述的系統(tǒng),其中,所述RAID配置包括以 下各項之一(i)RAIDO西己置,(ii) RAID 1西己置,以及(iii) RAID 5配置。
20. —種系鄉(xiāng)克,包4舌用于易失性存儲的裝置,具有讀取帶寬且配置為存儲多 條高速緩存線;用于非易失性存儲的多個裝置,其中每一個均具有小于 所述讀取帶寬的寫入帶寬;以及用于以下各項的裝置,(i)響應于信號的認定對來自所述 用于易失性存儲的裝置的多條高速緩存線中的所有高速緩存線進行讀取,以對所述用于易失性存儲的裝置進行卸載;(ii) 根據RAID配置通過對所述高速緩存線進行分割來產生多個 塊;以及(iii)將所述塊寫入所述RAID配置中的多個非易失 性存儲器之中。
全文摘要
公開了一種用于對高速緩沖存儲器進行卸載的方法(140)。該方法大體包括以下步驟(A)響應于信號的認定對高速緩沖存儲器的多條高速緩存線中的所有高速緩存線進行讀取,以對高速緩沖存儲器進行卸載(144),(B)根據RAID配置通過對各高速緩存線進行分割來產生多個塊(146),以及(C)將這些塊寫入RAID配置中的多個非易失性存儲器中,其中,每個非易失性存儲器均具有小于高速緩沖存儲器的讀取帶寬的寫入帶寬(148)。
文檔編號G06F12/00GK101542449SQ200780043925
公開日2009年9月23日 申請日期2007年10月9日 優(yōu)先權日2006年11月27日
發(fā)明者基思·霍爾特, 查爾斯·尼科爾斯, 穆罕默德·埃爾-巴塔勒, 約翰·舍曼, 詹森·斯圖爾薩茨 申請人:Lsi公司