專利名稱:存儲控制器數(shù)據(jù)的再分配的制作方法
技術領域:
該發(fā)明涉及到一種企業(yè)方法,關于軟件和/或硬件技術的技術領域,并涉及到一個具體實施例中存儲控制器數(shù)據(jù)的再分配。
背景技術:
一個存儲控制器可與一個附加存儲控制器(例如,雙控制器,鏡像控制器)來操作存儲設備。存儲控制器可獲取一個主機系統(tǒng)的信息(例如,數(shù)據(jù)集,一個I/O寫入等)。該信息可能寫入(例如,存儲)到一個存儲控制器的內(nèi)存中(例如,一個RAM,一個DRAM,一個 SDRAM,等等),并轉(zhuǎn)移到附加的存儲控制器。信息的傳輸可包括閱讀存儲控制器內(nèi)存的信息,傳輸?shù)礁郊哟鎯刂破鳎⑺4嬖谝粋€附加存儲控制器的內(nèi)存中。閱讀存儲控制器的信息可能需要用到內(nèi)存帶寬,使用電源和/或存儲控制器的系統(tǒng)硬件。信息的閱讀可產(chǎn)生熱量,這可能降低電子硬件的壽命和/或需要附加的冷卻機制 (例如,風扇,散熱片,熱管,水冷系統(tǒng)等)。而該附加的冷卻機制可能增加設備成本和/或電源成本(例如,風扇用電,電力成本等)。閱讀存儲控制器的信息也可能消耗一段時間,這可能推遲后續(xù)存儲控制器的活動(例如,接收和/或處理其它信息,傳輸一個寫入完成信號到主機系統(tǒng)等)。因此,信息的閱讀可能增加系統(tǒng)成本,造成延誤和/或其它的低效率。改善存儲控制器性能的方法可包括增加存儲控制器內(nèi)存的數(shù)量和/或速度。但是添加附加存儲控制器內(nèi)存會增加內(nèi)存成本從而可能超過所帶來的經(jīng)濟效益。其結(jié)果是,添加附加存儲控制器內(nèi)存可使成本過高。
發(fā)明內(nèi)容
公開了一種存儲控制器數(shù)據(jù)再分配的方法、設備和系統(tǒng)。一方面,所述方法包括獲取一個存儲控制器的數(shù)據(jù)集,在存儲該數(shù)據(jù)集到一個存儲控制器儲存模塊之前,生成一個附加數(shù)據(jù)集,并在該數(shù)據(jù)集存儲到存儲控制器儲存模塊之前傳輸該附加數(shù)據(jù)集到一個附加存儲控制器,將該數(shù)據(jù)集存儲到存儲控制器的儲存模塊內(nèi),將附加數(shù)據(jù)集存儲到附加存儲控制器的儲存模塊內(nèi)。該附加數(shù)據(jù)集可通過創(chuàng)建一個單獨的具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包生成。該單獨的存儲寫入數(shù)據(jù)包可用一個PCIe交換器創(chuàng)建。附加數(shù)據(jù)集存到附加存儲控制器可避免內(nèi)存的讀操作。通過避免內(nèi)存的讀操作,該存儲控制器的數(shù)據(jù)再分配方法可減少存儲控制器內(nèi)存帶寬的負載。可以創(chuàng)建任意數(shù)量的附加數(shù)據(jù)集。附加數(shù)據(jù)集可經(jīng)由一傳輸模塊傳遞到所述的附加存儲控制器。傳輸模塊可耦接到存儲控制器和附加存儲控制器。存儲控制器數(shù)據(jù)的再分配方法可包括在數(shù)據(jù)集在存儲控制器儲存模塊的存儲完成之前,開始附加數(shù)據(jù)集的存儲。此外,該方法也可包括產(chǎn)生一個補充數(shù)據(jù)集,傳輸該補充數(shù)據(jù)集到補充存儲控制器,并存儲該補充數(shù)據(jù)集到一個補充存儲控制器的儲存模塊中。在存儲數(shù)據(jù)集到存儲控制器的儲存模塊之前,通過將附加數(shù)據(jù)集傳輸?shù)礁郊哟鎯刂破鳎摲椒蓪崿F(xiàn)早期寫入信號到給主控制器傳輸?shù)募铀?。在加速的早期寫入信號送往主控制器之前,這些數(shù)據(jù)集(例如,所述數(shù)據(jù)集和附加數(shù)據(jù)集)可能需要存儲在兩個或附加存儲控制器內(nèi)存中。早期寫入信號可以通過消除存儲控制器內(nèi)存的讀操作來加速,該讀操作可推遲隨后在附加存儲控制器內(nèi)存中的寫入操作。早期寫入信號的加速也可以通過同時在多個存儲控制器內(nèi)存進行內(nèi)存寫入操作實現(xiàn),但如果一個附加的寫入操作要等到最初寫入操作完成后才可以開始,這可能是不可能的。加快早期寫入信號可通過降低寫入狀態(tài)的延遲從而允許主機系統(tǒng)更有效地運作。 減少寫入狀態(tài)的延遲可允許主機系統(tǒng)繼續(xù)正常運作,同時需要比其它情況更少的時間。該存儲控制器的數(shù)據(jù)集,可被主機模塊和存儲控制器內(nèi)存之間的再分配模塊獲取。該方法可包括一個亦可含再分配模塊的存儲控制器。另一方面,該發(fā)明公開了一種存儲控制器的數(shù)據(jù)再分配系統(tǒng),該系統(tǒng)包括一個再分配模塊,以獲取存儲控制器的數(shù)據(jù)集,并在數(shù)據(jù)集存儲到存儲控制器儲存模塊之前產(chǎn)生一個附加數(shù)據(jù)集;一個通信模塊,在存儲數(shù)據(jù)集到存儲控制器的儲存模塊之前,將附加數(shù)據(jù)集傳輸?shù)礁郊哟鎯刂破?,還包括所述的存儲控制器,以存儲數(shù)據(jù)集,以及一個附加存儲控制器的儲存模塊來存儲附加的數(shù)據(jù)集。該附加數(shù)據(jù)集可通過創(chuàng)建一個單獨的具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包生成。該單獨的存儲寫入數(shù)據(jù)包可用一個PCIe交換器創(chuàng)建。一個存儲控制器數(shù)據(jù)再分配系統(tǒng)可傳輸附加數(shù)據(jù)集到一個附加存儲控制器,從而可避免內(nèi)存的讀操作。該系統(tǒng)可包括一個內(nèi)存的讀操作,可以減少存儲控制器的內(nèi)存帶寬負載。附加數(shù)據(jù)集可通過總線傳輸?shù)礁郊哟鎯刂破饔谩T摽偩€可耦接到存儲控制器和附加存儲控制器。另一方面,該方法包括形成一個再分配模塊,以獲取存儲控制器的數(shù)據(jù)集并在該數(shù)據(jù)集存儲到存儲控制器的儲存模塊之前生成附加數(shù)據(jù)集,建立一個耦接到再分配模塊的通信模塊,以在該數(shù)據(jù)集存儲到存儲控制器的儲存模塊之前將附加數(shù)據(jù)集傳輸?shù)礁郊哟鎯刂破?,放置一個存儲控制器儲存模塊與該存儲控制器中的再分配模塊耦接用來存儲數(shù)據(jù)集,并放置一個附加存儲控制器的儲存模塊與附加存儲控制器的通信模塊耦接來存儲附加數(shù)據(jù)集。附加數(shù)據(jù)集可由創(chuàng)建至少一個具有一個相同數(shù)據(jù)有效載荷的獨特存儲寫入數(shù)據(jù)包來生成。該獨特的存儲寫入數(shù)據(jù)包可用一個PCIe交換器創(chuàng)建。該發(fā)明公開的這些方法,系統(tǒng)和設備,可以透過任何方式執(zhí)行以致實現(xiàn)各個方面, 并可以一種機器可讀介質(zhì)的形式執(zhí)行,該介質(zhì)含一套指令集,當由機器執(zhí)行時,可使其執(zhí)行指令集所公開的任何操作。對于該發(fā)明的其它特性,結(jié)合附圖及詳細描述,對熟悉本技術的人員是顯而易見的。
所有實施例經(jīng)由范例予以說明演示而非由附圖中圖式的限制,其中相同指定事項代表相同元素,其中根據(jù)一具體實施例,圖1是之間互相通信的存儲控制器,主機模塊和多個存儲設備的系統(tǒng)視圖。根據(jù)一具體實施例,圖2是一擴展圖以展示存儲控制器,主機模塊和通信模塊。
根據(jù)一具體實施例,圖3是一系統(tǒng)圖,展示多個存儲控制器,與主機模塊和多個存儲設備模塊通信的通信模塊。根據(jù)一具體實施例,圖4A是獲取,生成以及存儲數(shù)據(jù)集到存儲控制器儲存模塊中的流程圖。根據(jù)一具體實施例,圖4B是圖4A流程圖的延續(xù),展示附加數(shù)據(jù)集的附件操作。根據(jù)一具體實施例,圖5是一個流程圖,展示形成再分配模塊和其它模塊以獲取, 生成,并存儲一個附加數(shù)據(jù)集到一個存儲控制器的儲存模塊中。結(jié)合附圖及如下的詳細描述,該些具體實施例的其它特性將是顯而易見的。
具體實施例方式該發(fā)明公開了一種存儲控制器數(shù)據(jù)再分配的方法,設備和系統(tǒng)。雖然目前實施方案已參照具體實施例來進行描述,但在沒有偏離這些不同具體實施例更廣泛的意旨和范圍之內(nèi),對其進行各種修改和變更是顯而易見的。在一個實施例中,一個I/O寫入數(shù)據(jù)可被鏡像到兩個存儲控制器106A-B,可以消除一個存儲控制器的內(nèi)存讀操作需要。在第一個內(nèi)存寫入之前,通過在存儲控制器和一個附加存儲控制器之間再分配信息,再分配模塊100A-B可分裂數(shù)據(jù)集成兩個不同內(nèi)存寫入操作。該再分配可以通過使用群播(例如,雙播,分叉等)。群播,可通過在每個存儲控制器106A-B上的主機I/O設備(如主機模塊208)和儲存模塊104A-B之間添加PCIe交換器 212實現(xiàn)。在另一實施例中,兩個存儲控制器106A-B可通過PCIe總線連接在一起。PCIe總線可連接兩個PCIe交換器,而每一個交換器可包含在一個存儲控制器中。當I/O寫入以PCIe 內(nèi)存寫入包的形式通過PCIe交換器212的時候,PCI Express(PCIe)基礎2. 0的規(guī)格的群播ECN中定義的群播功能,可允許該數(shù)據(jù)包分成兩個單獨的、含相同數(shù)據(jù)有效載荷的PCIe 內(nèi)存寫入包。一包可生成一個有效載荷的內(nèi)存寫入到存儲控制器的儲存模塊104A中。另一數(shù)據(jù)包可通過連接兩個存儲控制器106A-B的PCIe總線214傳輸?shù)酱鎯刂破?06B中。 另一數(shù)據(jù)包可被寫入到存儲控制器的儲存模塊104B中。通過再分配(如群播,鏡像等)該內(nèi)存寫入包,從而在向儲存模塊104B中寫入信息之前可以不需要執(zhí)行儲存模塊104A的讀操作來獲取信息。避免了該此讀操作,存儲控制器106A-B上的內(nèi)存帶寬負載因此可減少。在一個實施例中,一種方法包括獲取存儲控制器(圖1之存儲控制器106A)的數(shù)據(jù)集(例如,一個存儲寫入數(shù)據(jù)包)。該方法還包括在存儲設該數(shù)據(jù)集到一個存儲控制器的儲存模塊(例如,圖1的儲存模塊104A)中之前生成一個或多個附加的數(shù)據(jù)集。該方法還包括在存儲數(shù)據(jù)集到存儲控制器的儲存模塊104A及/或104B中之前,傳輸該附加數(shù)據(jù)集(例如,一個具有與原始數(shù)據(jù)包有效載荷相同的單獨的存儲寫入數(shù)據(jù)包)到一個附加存儲控制器106B中。該方法還包括存儲數(shù)據(jù)集到存儲控制器的儲存模塊104A中,以及存儲附加數(shù)據(jù)集到一個附加存儲控制器的內(nèi)存模塊104B中。在另一實施例中,一種存儲控制器數(shù)據(jù)再分配系統(tǒng)包括一個再分配模塊(例如, 再分配模塊100A,200)以獲取存儲控制器的數(shù)據(jù)集(例如,106A-B,206,306A-N的存儲控制器)以及在存儲該數(shù)據(jù)集到存儲控制器的儲存模塊(例如,儲存模塊104A-B,204)之前產(chǎn)生一個附加數(shù)據(jù)集。該系統(tǒng)還包括一個通信模塊(例如,通信模塊102,202,302A-B)以在存儲該數(shù)據(jù)集到存儲控制器的儲存模塊(例如,儲存模塊104A-B,204)中之前,將該附加數(shù)據(jù)集傳輸?shù)揭粋€附加存儲控制器(例如,存儲控制器106A-B,206,306A-N)中。該系統(tǒng)還包括存儲控制器的儲存模塊(例如,儲存模塊104A)來存儲數(shù)據(jù)集以及一個附加存儲控制器的儲存模塊(例如,儲存模塊的第104B)來存儲附加數(shù)據(jù)集。在另一具體實施例,該方法包括形成一個再分配模塊(例如,圖1的再分配模塊 100A-B)來獲取存儲控制器的數(shù)據(jù)集(例如,圖1的存儲控制器106A),并在存儲數(shù)據(jù)集到一個存儲控制器儲存模塊之前(例如,圖1的儲存模塊104A)產(chǎn)生一個附加的數(shù)據(jù)存儲,創(chuàng)建一個與再分配模塊100A-B耦接的通信模塊102,在將該數(shù)據(jù)集存儲在一個存儲控制器的儲存模塊(例如,圖1的儲存模塊104B)-之前,以將該附加數(shù)據(jù)集傳輸?shù)酱鎯刂破?06B 中,將與該再分配模塊100A耦接的存儲控制器儲存模塊104A放置于存儲控制器106A中以存儲數(shù)據(jù)集,并把一個與該再通信模塊102耦接的存儲控制器儲存模塊104B放置于附加存儲控制器106B中來存儲附加數(shù)據(jù)集。圖1是一個存儲控制器的系統(tǒng)視圖,根據(jù)一個具體實施例,主機模塊和一組存儲設備互相通信。特別是,根據(jù)一個具體實施例,圖1說明了一個再分配模塊100A-B,一個通信模塊102,儲存模塊104A-B,一個存儲控制器106A-B,一個主機模塊108和一個存儲設備模塊 11OA-N。一個數(shù)據(jù)集(例如,存儲寫入數(shù)據(jù)包)可以是封包計算器網(wǎng)絡承載的格式化數(shù)據(jù)單元。不支持數(shù)據(jù)包的計算器通信鏈路,例如傳統(tǒng)的點至點通信連接,傳送數(shù)據(jù)可能只是一系列字節(jié),字符或僅字節(jié)本身。附加數(shù)據(jù)集(例如,一個附加的存儲寫入數(shù)據(jù)包)可包括一個單獨的存儲寫入數(shù)據(jù)包和一個與原始數(shù)據(jù)數(shù)據(jù)有效載荷相同的數(shù)據(jù)有效載荷。附加數(shù)據(jù)集,可通過群播,鏡像,分裂存儲寫入數(shù)據(jù)包,和/或復制存儲寫入數(shù)據(jù)包產(chǎn)生。該原始數(shù)據(jù)集可被發(fā)送和/或存儲。此外,亦可會產(chǎn)生兩個或多個新存儲寫入數(shù)據(jù)包并儲存在存儲控制器中(例如,存儲控制器106A-B)。再分配模塊100A-B使用群播(例如,雙播,分叉等)可分裂數(shù)據(jù)集成兩個單獨的內(nèi)存寫入操作以獲取存儲控制器106A-B的數(shù)據(jù)集。在存儲數(shù)據(jù)集到一個存儲控制器儲存模塊104A-B中之前,再分配模塊可生成一個附加數(shù)據(jù)集。再分配模塊(例如,圖1的再分配模塊100A-B)可包括一個PCIe交換器(例如,PCIe交換器21 。該PCIe交換器可按照 PCI Express(PCIe)基礎2. 0的規(guī)格的群播ECN定義的群播特征來分裂一個存儲寫入數(shù)據(jù)包。該PCIe交換器可通過一根PCIe總線通信,該總線可連接兩個或多個存儲控制器。該 PCIe交換器可傳輸一個群播存儲寫入數(shù)據(jù)包到一個附加存儲控制器。該通信模塊(例如,通信模塊102,202,302A_B)可包括一個用于連接外圍設備到處理單元(例如,主機系統(tǒng),計算機主板等)的計算器總線。在數(shù)據(jù)集存儲在存儲控制器儲存模塊104A及/或104B中之前,該通信模塊102可傳輸附加數(shù)據(jù)集到一個附加存儲控制器中。該附加數(shù)據(jù)集可在存儲寫入數(shù)據(jù)包在儲存模塊104A及/或104B中的存儲過程開始和/或完成之前傳輸。在存儲數(shù)據(jù)集到存儲控制器的儲存模塊之前,可經(jīng)由傳輸附加數(shù)據(jù)集到一個附加存儲控制器來加速一個早期寫入信號到主控制器的傳輸。在加速的早期寫入信號發(fā)送到主控制器之前,這些數(shù)據(jù)集(例如,數(shù)據(jù)集和附加數(shù)據(jù)集)可能需要存儲在兩個或附加存儲控制器內(nèi)存中。早期寫入信號可通過消除存儲控制器內(nèi)存的一個讀操作來加速,該讀操作可推遲隨后的在附加存儲控制器內(nèi)存中的寫入操作。該早期寫入信號也可通過同時在多個存儲控制器內(nèi)存上進行內(nèi)存寫入操作來加速,但如果一個附加寫入操作后只能在初步的寫入操作完成后才可以開始,這種方法可能是不可能的。加快早期寫入信號可通過降低寫入狀態(tài)的延遲使主機系統(tǒng)的運作更有效。減少寫狀態(tài)的延遲可允許主機系統(tǒng)在比其它情況所需更少的時間下繼續(xù)正常運作。減少寫狀態(tài)的延遲可允許主機系統(tǒng)比其它情況所需更少的時間下重試運行和/或創(chuàng)建一個系統(tǒng)故障。儲存模塊104A-B可在磁介質(zhì)(例如,閃存,硬盤驅(qū)動器)和/或任何其它存儲格式(如光學,機械,易失性存儲器,非易失性存儲器等)中存儲數(shù)據(jù)。一個附加存儲控制器的儲存模塊可以存儲附加數(shù)據(jù)集(例如,鏡像數(shù)據(jù),群播數(shù)據(jù),再分配模塊所產(chǎn)生的數(shù)據(jù)集等)。儲存模塊104A-B可耦接到存儲控制器106A-B的再分配模塊100A-B。存儲控制器(例如,存儲控制器106A-B,206,306A-N)可成對地用在冗余配置中以防止數(shù)據(jù)丟失。如一個控制器發(fā)生故障時,主機系統(tǒng)(例如,主機模塊108)以及相關的存儲控制器仍然可以訪問所有的存儲設備(例如,存儲設備模塊110A-N,210A-B,310A-N)的。 主機模塊108可包括一個處理單元,可與各種設備(例如,存儲控制器106A-B,存儲設備模塊110A-N)通過。主機模塊可下載或上傳程序,從而影響其與存儲控制器和/或存儲設備模塊的操作。存儲設備模塊110A-N可以存儲及/或處理信息。存儲設備模塊110A-N可以包括一記錄介質(zhì)來存儲信息以及一個數(shù)據(jù)存儲設備來處理信息。該存儲設備模塊110A-N可以訪問一個可存儲和提取信息的單獨的便攜式記錄介質(zhì)和/或固定設備。在一個具體實施例中,存儲控制器106A-B可包括再分配模塊100A-B和儲存模塊 104A-B。儲存模塊104A-B和存儲控制器106A-B可通過通信模塊102通信。主機模塊108 可通過存儲控制器106A-B與存儲設備模塊110A-B通信。根據(jù)一個具體實施例,圖2是一個存儲控制器的擴展視圖,也展示了主機模塊和通信模塊。特別地,根據(jù)一個具體實施例,圖2展示了一個再分配模塊200,一個通信模塊202,一個儲存模塊204,一個存儲控制器206,一個主機模塊208,一個存儲設備模塊 21OA-B, 一個PCIe交換器212,一個PCIe總線214,一個輸入I/O模塊216,一輸出I/O模塊 218,一個控制器模塊220,一個處理器模塊222。再分配模塊200可包括一個PCIe交換器,通過使用群播(例如,雙鑄造,分叉等) 可在第一個內(nèi)存寫入之前將數(shù)據(jù)集分裂成兩個單獨的內(nèi)存寫入操作。群播可以通過在每個存儲控制器(例如,存儲控制器模塊106A-B)的主機I/O設備(如,輸入I/O模塊216)和內(nèi)存控制器(例如,控制器模塊220)之間添加一個PCIe交換器(如PCIe交換器212)實現(xiàn)。通信模塊202可以包括一個PCIe總線214以連接兩個存儲控制器206A-B與兩個PCIe交換器。儲存模塊204可耦接到存儲控制器206的再分配模塊200,儲存模塊204 可存儲數(shù)據(jù)集。存儲控制器206可為主機系統(tǒng)(例如,主機模塊208)提供輸入輸出寫入。 主機模塊208可以是冗余配置系統(tǒng)中的一個控制處理單元用以存儲信息到存儲設備模塊 210A-B中。主機模塊可以包括一個服務器來控制一個獨立磁盤冗余數(shù)組(RAID)。另外,主機模塊可包括微型計算器以控制可程序邏輯控制器(PLC),該PLC與一組硬盤和/或其它電子裝置協(xié)同運作。 該存儲設備模塊(例如,存儲設備模塊110A-N,210A-B,310A_N)可保存信息。該存儲設備模塊可與其它存儲設備模塊通信。該存儲設備模塊可與存儲控制器(例如,存儲控制器106A-B,206,306A-N)通信。該存儲設備模塊可與一個輸出I/O模塊(例如,輸出I/ 0模塊218),內(nèi)存模塊104A-B和/或主機模塊(例如,主機模塊108,208,和/或308)通PCIe交換器212可產(chǎn)生單獨的存儲寫入數(shù)據(jù)包。當I/O寫入數(shù)據(jù)以PCIe存儲寫入數(shù)據(jù)包的形式通過PCIe交換器時,按照PCI Express (PCIe)基礎2. 0規(guī)格的群播ECN定義的群播特征,可允許數(shù)據(jù)包分成兩個單獨的、含有相同數(shù)據(jù)有效載荷的PCIe存儲寫入數(shù)據(jù)包。其中一個數(shù)據(jù)包可生成一個數(shù)據(jù)有效載荷的內(nèi)存寫入到存儲控制器206中。PCIe總線214可包括在202通信模塊中,可連接兩個存儲控制器(例如,存儲控制器106A-B, 206,306A-N)和/或存儲控制器106A的PCIe交換器。該PCIe總線214可與 PCIe交換器212,再分配模塊200和/或存儲控制器206通信。輸入I/O模塊216可以是一個駐留在存儲控制器206中的主機I/O設備。輸入I/ 0模塊216可在主機模塊208以及再分配模塊200中的PCIe交換器之間相互通信。輸出 I/O模塊218可以駐留在存儲控制器206中,可與控制器模塊220和存儲設備模塊210A-B 通信??刂破髂K220可控制處理器模塊222和儲存模塊204之間的內(nèi)存寫入操作。處理器模塊222可以處理存儲在存儲設備模塊210A-B中的數(shù)據(jù)集。在一個具體實施例中,存儲控制器206可包括輸入I/O模塊216,再分配模塊200, 儲存模塊204,控制器模塊220,處理器模塊222,以及輸出I/O模塊218。再分配模塊200 可包括一個PCIe交換器212。通信模塊202可包括PCIe總線214。PCIe交換器212可連接到PCIe總線214。輸出I/O模塊218可連接存儲設備模塊210A-B。該具體實施例中的這些模塊可以互相通信。根據(jù)一個具體實施例,圖3是一個系統(tǒng)圖,含多個存儲控制器和與主機通信模塊和多個存儲設備模塊通信的多個通信模塊。特別地,根據(jù)一個具體實施例,圖3展示了一個通信模塊302A-N,一個存儲控制器306A-N,一個主機模塊308和一個存儲設備模塊310A-N 的。通信模塊302A-N可在存儲控制器306A-N之間互通信息。通信模塊302A-N可包括PCIe總線214。存儲控制器306A-N可連接成一個數(shù)組。存儲控制器306A-N可以在主機模塊308 和存儲設備模塊310A-N之間傳遞信息。此外,存儲控制器306A-N可以通過附加的PCIe總線互相連接,該PCIe總線也可連接到PCIe交換器。當I/O寫入數(shù)據(jù)以PCIe存儲寫入數(shù)據(jù)包的形式通過PCIe交換器時,按照PCI Express (PCIe)基礎2. 0規(guī)格的群播ECN定義的群播特征,可允許數(shù)據(jù)包分裂為兩個單獨的、含有相同數(shù)據(jù)包有效載荷的PCIe存儲寫入數(shù)據(jù)包。一個存儲寫入數(shù)據(jù)包可被發(fā)送到存儲控制器的內(nèi)存,第二個存儲寫入數(shù)據(jù)包可被傳遞給一個附加存儲控制器。利用可容納數(shù)據(jù)集和/或鏡像數(shù)據(jù)的存儲設備模塊310A-N,主機模塊308可以傳輸要存儲和/或提取的信息。存儲控制器306A-N可以處理要存儲在存儲設備模塊310A-N 中的信息,關于由主機模塊308傳輸?shù)男畔?,存儲控制器可再分?例如,群播,鏡像)信息到一個附加存儲控制器。存儲控制器306A-N可以與通信模塊302A-N,存儲設備模塊310A-N 和主機模塊308溝通。根據(jù)一個具體實施例,圖4A是一個采集,生成并存儲數(shù)據(jù)集在一個存儲控制器儲存模塊中的流程圖。在操作402,存儲控制器的數(shù)據(jù)集(例如,圖2的存儲控制器206)可被采集(例如,使用圖2的再分配模塊200)。在操作404,在數(shù)據(jù)集存儲在一個存儲控制器儲存模塊(例如,圖2中存儲控制器的儲存模塊204)中之前,可產(chǎn)生附加數(shù)據(jù)集(例如,使用圖2的再分配模塊200)。在操作406,在數(shù)據(jù)集存儲到存儲控制器的儲存模塊之前,附加數(shù)據(jù)集可以被傳輸?shù)?例如,使用圖1的通信模塊10 附加存儲控制器。在操作408,在數(shù)據(jù)集存儲在存儲控制器儲存模塊104A-B之前,通過傳輸該附加數(shù)據(jù)集到一個附加存儲控制器(例如,圖1的存儲控制器106A-B)可以加速早期寫入信號到主機控制器的傳輸。在加速初期寫入信號發(fā)送到主控制器之前,這些數(shù)據(jù)集(例如,數(shù)據(jù)集和附加數(shù)據(jù)集)可能需要存儲在兩個或多個附加存儲控制器的內(nèi)存之中(例如,圖1的存儲控制器儲存模塊104A-B)。早期寫入信號可通過消除存儲控制器的內(nèi)存的讀操作來加速,該讀操作可推遲在隨后的附加存儲控制器內(nèi)存中的寫入操作。早期寫入信號的加速也可以通過同時在多個存儲控制器內(nèi)存進行內(nèi)存寫入操作實現(xiàn),但如果一個附加的寫入操作后要等到最初寫入操作完成后才可以開始,這可能是不可能的。在操作410,數(shù)據(jù)集可以存儲在存儲控制器的儲存模塊104A-B。根據(jù)一個具體實施例,圖4B是圖4A流程圖的一個延續(xù),展示了附加數(shù)據(jù)集的其它操作。在操作412,可以在完成數(shù)據(jù)集存儲在存儲控制器的儲存模塊104A-B中之前,開始附加存儲數(shù)據(jù)集的存儲。在操作414,附加數(shù)據(jù)集可存儲在一個附加存儲控制器的儲存模塊 104A-B中。通過創(chuàng)建一個單獨的、具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包,可以產(chǎn)生附加數(shù)據(jù)集(例如,使用圖2的再分配模塊200)。利用一個PCIe交換器212可以創(chuàng)建單獨的存儲寫入數(shù)據(jù)包。附加數(shù)據(jù)集可傳達給附加存儲控制器,可避免內(nèi)存讀操作。在操作 416,通過避免內(nèi)存讀操作可減少存儲控制器206的內(nèi)存帶寬負載。利用一個傳輸模塊,附加數(shù)據(jù)集可以被傳輸?shù)?例如,使用通信模塊302A-N)附加存儲控制器306A-N。此外,該傳輸模塊可耦接到存儲控制器306A-N和附加存儲控制器306A-N。在操作418,可生成一個補充數(shù)據(jù)集(例如,使用圖1的再分配模塊100A-B),傳輸該補充數(shù)據(jù)集到補充存儲控制器106A-B,以及存儲該補充數(shù)據(jù)集在補充存儲控制器儲存模塊106A-B中。存儲控制器106A-B的數(shù)據(jù)集可被位于主機模塊(例如,圖1的主機模塊108) 和存儲控制器的儲存模塊(例如,圖1的存儲控制器儲存模塊104A-B)之間的再分配模塊采集(例如,圖1的再分配模塊100A-B)。存儲控制器106A-B可包括再分配模塊100A-B。根據(jù)一個具體實施例,圖5是一個說明形成再分配模塊和其它模塊以獲取,生成, 并存儲附加數(shù)據(jù)集到存儲控制器儲存模塊中的流程圖。在操作502,在存儲數(shù)據(jù)集到一個存儲控制器的儲存模塊(例如,圖2的儲存模塊204)中之前,可形成再分配模塊(例如,圖2 的再分配模塊200)以獲得一個存儲控制器的數(shù)據(jù)集,并可能產(chǎn)生附加數(shù)據(jù)集。在操作504, 可創(chuàng)建通信模塊202,可耦接到再分配模塊200,在存儲數(shù)據(jù)集到一個存儲控制器儲存模塊 204之前,該再分配模塊200可將附加數(shù)據(jù)傳輸?shù)揭粋€附加存儲控制器。在操作506,可配設一個存儲控制器儲存模塊204與可存儲數(shù)據(jù)集的存儲控制器 206中的再分配模塊200耦接,以存儲該數(shù)據(jù)集。在操作508,可配設一個附加存儲控制器的儲存模塊(例如,圖2的儲存模塊204)與該附加存儲控制器306A-N中的通信模塊302A-N 耦接,以存儲附加數(shù)據(jù)集。通過創(chuàng)建一個單獨的、具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包,可以生成該附加數(shù)據(jù)集。使用一個PCIe交換器,可以創(chuàng)建該單獨的存儲寫入數(shù)據(jù)包。
雖然目前的實施方案僅參照具體實施例來進行描述,但在沒有偏離這些不同具體實施例更廣泛的意旨和范圍之內(nèi),對其進行的各種修改和變更是顯而易見的。例如,此處所述的各種設備,模塊,分析儀,發(fā)生器等設備可能使用硬件電路(例如,基于CMOS的邏輯電路),固件,軟件和/或任何組合的硬件,固件和/或軟件(例如,收錄在一個機器可讀介質(zhì)中)來啟用和操作。例如,也涵蓋了使用晶體管,邏輯門和電子電路(例如,專用集成電路(ASIC)和/或數(shù)字信號處理器(DSP)電路)各種電路的結(jié)構(gòu)和方法。
特別地,圖1中的再分配模塊100A-B,通信模塊102,儲存模塊104A-B,存儲控制器 106A-B,主機模塊108,存儲設備模塊110A-N,圖2中的再分配模塊200,通信模塊202,儲存模塊204,存儲控制器206,主機模塊208,存儲設備模塊210A-B,PCIe交換器212,PCIe總線 214,輸入I/O模塊216,輸出I/O模塊218,控制器模塊220,以及圖3中的通信模塊302A-N, 存儲控制器306A-N,主機模塊308,和存儲設備模塊310A-N,可以使用再分配電路,通信電路,內(nèi)存電路,存儲控制電路,主機電路,存儲設備電路,PCIe控制器電路,輸入I/O電路,輸出I/O電路,控制電路以及其它電路來啟用。 此外,熟悉本領域技術的人員可以預見,在此公開的各種操作,流程和方法可以收錄于一種可機讀介質(zhì)和/或與數(shù)據(jù)處理系統(tǒng)(例如,計算器系統(tǒng))兼容的機器可訪問介質(zhì)中,并也可按任何順序執(zhí)行(例如,包括使用可實現(xiàn)此各種操作的方法)。因此,本說明書和圖紙只應看作是本發(fā)明的說明而非限制。
權(quán)利要求
1.一種存儲控制器數(shù)據(jù)再分配方法,包括 獲取一個存儲控制器的數(shù)據(jù)集;在該數(shù)據(jù)集存儲到一個存儲控制器的儲存模塊中之前,生成至少一個附加數(shù)據(jù)集; 在該數(shù)據(jù)集存儲到該存儲控制器的儲存模塊中之前,傳輸該所述的至少一個附加數(shù)據(jù)集到一個附加存儲控制器中;存儲該數(shù)據(jù)集到該存儲控制器的儲存模塊;和存儲該至少一個附加數(shù)據(jù)集到該附加存儲控制器的儲存模塊。
2.根據(jù)權(quán)利要求1所述的方法,其中該至少一個附加數(shù)據(jù)集是通過創(chuàng)建至少一個單獨的、具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包生成。
3.根據(jù)權(quán)利要求2所述的方法,其中該至少一個單獨的存儲寫入數(shù)據(jù)包是使用一個 PCIe交換器創(chuàng)建的。
4.根據(jù)權(quán)利要求1所述的方法,其中傳輸該附加數(shù)據(jù)集到所述附加存儲控制器避免了內(nèi)存的讀操作。
5.根據(jù)權(quán)利要求4所述的方法,進一步包括通過避免內(nèi)存的讀操作減少該存儲控制器內(nèi)存帶寬的負載。
6.根據(jù)權(quán)利要求5所述的方法,其中所述附加數(shù)據(jù)集通過一個傳輸模塊傳輸?shù)剿龈郊哟鎯刂破鳎渲兴鰝鬏斈K耦接到所述存儲控制器和所述附加存儲控制器。
7.根據(jù)權(quán)利要求5所述的方法,進一步包括在完成所述數(shù)據(jù)集在所述存儲控制器儲存模塊中的存儲之前,啟動一個所述附加數(shù)據(jù)集的存儲。
8.根據(jù)權(quán)利要求7所述的方法,進一步包括生成一個補充數(shù)據(jù)集,傳輸該補充設置到一個補充存儲控制器,和存儲該補充數(shù)據(jù)集到一個補充存儲控制器儲存模塊。
9.根據(jù)權(quán)利要求1所述的方法,進一步包括在存儲所述數(shù)據(jù)集到所述存儲控制器儲存模塊之前,通過傳輸所述附加數(shù)據(jù)集到一個附加存儲控制器,加速一個早期寫入信號到主控制器。
10.根據(jù)權(quán)利要求1所述的方法,其中該存儲控制器的所述數(shù)據(jù)集是通過位于一個主機模塊和一個存儲控制器內(nèi)存之間的再分配模塊獲取的。
11.根據(jù)權(quán)利要求10所述的方法,其中該存儲控制器模塊包括所述再分配模塊。
12.—種存儲控制器數(shù)據(jù)再分配系統(tǒng),包括一個再分配模塊,以在存儲一個數(shù)據(jù)集到一個存儲控制器儲存模塊中之前,獲取該存儲控制器的該數(shù)據(jù)集并生成一個附加數(shù)據(jù)集;一個通信模塊,以在存儲該數(shù)據(jù)集到該存儲控制器儲存模塊中之前,將該附加數(shù)據(jù)集傳輸?shù)揭粋€附加存儲控制器;一個用來存儲該數(shù)據(jù)集的存儲控制器儲存模塊;和一個用來存儲該附加數(shù)據(jù)集的附加存儲控制器儲存模塊。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中該至少一個附加數(shù)據(jù)集是通過創(chuàng)建至少一個單獨的、具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包生成。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中該至少一個單獨的存儲寫入數(shù)據(jù)包是使用一個 PCIe交換器創(chuàng)建的。
15.根據(jù)權(quán)利要求12所述的系統(tǒng),其中傳輸該附加數(shù)據(jù)集到所述附加存儲控制器避免了內(nèi)存的讀操作。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中避免內(nèi)存的讀操作減少了該存儲控制器內(nèi)存帶寬的負載。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中該附加數(shù)據(jù)集通過一個總線傳輸?shù)剿龈郊哟鎯刂破鳎渲性摽偩€耦接到該存儲控制器和該附加存儲控制器。
18.一種方法,包括在存儲一個數(shù)據(jù)集到一個存儲控制器儲存模塊中之前,形成一個再分配模塊以獲取該存儲控制器的該數(shù)據(jù)集并生成至少一個附加數(shù)據(jù)集;在存儲該數(shù)據(jù)集到該存儲控制器儲存模塊中之前,創(chuàng)建一個與該再分配模塊耦接的通信模塊,傳輸該至少有一個附加數(shù)據(jù)集到一個附加存儲控制器;在該存儲控制器中放置一個與該再分配模塊耦接的存儲控制器儲存模塊以存儲該數(shù)據(jù)集;和在該附加存儲控制器中放置一個與該通信模塊耦接的附加存儲控制器儲存模塊以存儲該至少一個附加數(shù)據(jù)集。
19.根據(jù)權(quán)利要求18所述的方法,其中該至少一個附加數(shù)據(jù)集是通過創(chuàng)建至少一個單獨的、具有一個相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包生成。
20.根據(jù)權(quán)利要求19所述的方法,其中該至少一個單獨的存儲寫入數(shù)據(jù)包是使用一個 PCIe交換器創(chuàng)建的。
全文摘要
本發(fā)明公開了一種存儲控制器數(shù)據(jù)再分配的方法,設備和系統(tǒng)。在一個實施例公開的方法中,包括獲取存儲控制器的數(shù)據(jù)集,在該數(shù)據(jù)集存儲到一個存儲控制器的儲存模塊中之前,生成至少一個附加數(shù)據(jù)集,在該數(shù)據(jù)集存儲到該存儲控制器的儲存模塊中之前,傳輸該所述的至少一個附加數(shù)據(jù)集到一個附加存儲控制器中,存儲該數(shù)據(jù)集到該存儲控制器的儲存模塊,以及存儲該至少一個附加數(shù)據(jù)集到該附加存儲控制器的儲存模塊。該附加數(shù)據(jù)集可通過創(chuàng)建一個單獨的、具有相同數(shù)據(jù)有效載荷的存儲寫入數(shù)據(jù)包來生成。該單獨的存儲寫入數(shù)據(jù)包可使用一個PCIe交換器創(chuàng)建。該附加數(shù)據(jù)集到附加存儲控制器的傳輸可避免內(nèi)存的讀操作。
文檔編號G06F12/00GK102203744SQ200880131818
公開日2011年9月28日 申請日期2008年10月30日 優(yōu)先權(quán)日2008年10月30日
發(fā)明者約翰·R·克羅普訥, 莫哈末·El-巴塔爾 申請人:Lsi公司