專利名稱:提供具有總線中繼器的串行化存儲接口的系統(tǒng)和方法
技術領域:
本發(fā)明涉及一種存儲子系統(tǒng),并尤其涉及提供一種具有總線中繼器的串行化存儲接口。
背景技術:
計算機存儲子系統(tǒng)已發(fā)展了多年,但是仍保留許多一貫的屬性。20世紀80年代早期的計算機存儲子系統(tǒng),例如與本申請共同轉讓的LeVallee等人的美國專利No.4475194中公開的計算機存儲子系統(tǒng),包括一存儲控制器,具有陣列器件、緩沖器、端接器和附屬定時及控制功能的存儲組件(被發(fā)明人同時稱為基本存儲模塊(BSM)),以及一些點到點總線,以允許每個存儲組件與該存儲控制器經由其自身的點到點地址和數據總線進行通信。圖1示出這個20世紀80年代早期的計算機存儲子系統(tǒng)的示例,該子系統(tǒng)包括兩個BSM、一存儲控制器、一維護控制臺、和連接BSM和存儲控制器的點到點地址及數據總線。
來自與本申請共同轉讓的Dell等人的美國專利No.5513135的圖2示出一種早期的同步存儲模塊,該模塊包括同步動態(tài)隨機存取存儲器(DRAM)8、緩沖設備12、一優(yōu)化的引腳排列、一互連、以及一電容解耦方法以便利操作。該專利還說明了使用例如鎖相環(huán)(PLL)的設備在該模塊上使用時鐘再驅動。
來自共同轉讓的Grundon等人的美國專利No.6510100的圖3示出存儲子系統(tǒng)10的簡圖和說明,該子系統(tǒng)在傳統(tǒng)的多點短截線(stub)總線通道上包括最多四個帶寄存器的雙列直插存儲模塊(DIMM)40。該子系統(tǒng)包括一存儲控制器20、一外部時鐘緩沖器30、帶寄存器的DIMM 40、地址總線50、控制總線60和數據總線70,在地址總線50和數據總線70上具有端接器95。
圖4示出20世紀90年代的存儲子系統(tǒng),該子系統(tǒng)是從圖1中的結構發(fā)展而來的,并且包括一存儲控制器402,一個或多個高速點到點通道404,每個該通道與一總線到總線轉換器芯片406相連接,并且每個通道具有一同步存儲接口408,該接口使得能夠與一個或多個帶寄存器的DIMM 410相連接。在此實現中,該高速、點到點通道404以兩倍的DRAM數據速率工作,使得該總線到總線轉換器芯片406能夠以完全的DRAM數據速率操作一個或兩個帶寄存器的DIMM存儲通道。每個帶寄存器的DIMM包括一PLL、寄存器、DRAM、一電可擦可編程只讀存儲器(EEPROM)和端接器、以及其他無源元件。
如圖5中所示,存儲子系統(tǒng)經常通過一存儲控制器與單個存儲模塊或在“短截線”總線上互連的兩個或更多存儲模塊相連接構成。圖5是一多點短截線總線存儲器結構的簡圖,該結構與圖3中所示的結構類似。此結構在成本、性能、可靠性和升級能力之間實現了合理的折衷,但是對可連接在該短截線總線上的模塊的數量有固有的限制??蛇B接在短截線總線上的模塊的數量的極限與在總線上傳送的信息的數據傳輸率直接相關。隨著數據傳輸率增加,必須減小短截線的數量和長度以確保穩(wěn)健的存儲操作。提高總線的速度通常會導致總線上的模塊的數量減小,最優(yōu)的電接口是其中單個模塊直接連接在單個控制器上的接口,或一具有很少的(如果有的話)將導致反射和阻抗不連續(xù)的短截線的點到點接口。因為大多數存儲模塊的數據寬度為64或72位,所以此結構也需要大量的引腳以傳送地址、命令和數據。作為代表性的引腳數,圖5中示出120個引腳。
來自與本申請共同轉讓的Petty的美國專利No.4723120的圖6涉及在多點通信結構中應用菊花鏈結構,否則該結構將需要多個端口,每個端口經由點到點接口與單獨的設備相連接。通過采用菊花鏈機構,可形成具有較少端口(或通道)的控制站,并且通道上的每個設備可利用標準的上行和下行協(xié)議,而與它們在該菊花鏈結構中的位置無關。
圖7示出根據美國專利No.4723120的教導實現的菊花鏈存儲總線。存儲控制器111連接在存儲總線315上,該總線進一步連接在模塊310a上。模塊310a上的緩沖器將總線315上的信息再驅動到模塊310b上,模塊310b進一步將總線315再驅動到被指示為310n的模塊位置。每個模塊310a包括DRAM 311a和緩沖器320a??偩€315可被描述為具有菊花鏈結構,每個總線在性質上是點到點的。
使用菊花鏈總線的缺陷是會提高故障使得沿該總線的多個存儲模塊受影響的可能性。例如,如果第一模塊不起作用,則總線上的第二和隨后的模塊也將不起作用。使用菊花鏈總線的另一個缺陷,該菊花鏈上的每個存儲模塊的存儲等待時間將根據該模塊在該菊花鏈上的位置而改變。
發(fā)明內容
本發(fā)明的示例性實施例包括一種封包化的(packetized)級聯(lián)存儲系統(tǒng),該系統(tǒng)包括多個存儲組件、一包括多個段的存儲總線、一總線中繼器模塊和一段級備用模塊。該總線中繼器模塊經由該存儲總線與兩個或更多個存儲組件通信。在發(fā)生段故障時,該段級備用模塊為存儲總線提供段級備用。
另外的示例性實施例包括一種用于提供存儲接口的方法。該方法包括在總線中繼器模塊中接收輸入信號,該來自存儲總線的輸入信號包括多個段。確定與總線中繼器模塊相關聯(lián)的模式。響應于位之一與故障段相關聯(lián),重新設置輸入信號中的位的位置。然后響應于該模式,經由存儲總線將輸入信號傳送給一個或多個存儲組件。
另外的示例性實施例包括一種用于提供存儲接口的存儲介質。該存儲介質用機器可讀的計算機程序代碼編碼,并包括用于使計算機執(zhí)行一種方法的指令。該方法包括在總線中繼器模塊中接收輸入信號,該來自存儲總線的輸入信號包括多個段。確定與總線中繼器模塊相關聯(lián)的模式。響應于位之一與故障段相關聯(lián),重新設置輸入信號中的位的位置。然后響應于該模式,經由存儲總線將輸入信號傳送給一個或多個存儲組件。
另外的示例性實施例包括一封包化的級聯(lián)通信系統(tǒng)。該系統(tǒng)包括多個通信組件、一通信總線、一總線中繼器模塊和一段級備用模塊。該通信總線包括多個段。該總線中繼器模塊經由該通信總線與兩個或更多個通信組件通信,并且在發(fā)生段故障時,該段級備用模塊為通信總線提供段級備用。
另外的示例性實施例包括一種用于提供通信接口的方法。該方法包括在總線中繼器模塊中接收輸入信號,該來自通信總線的輸入信號包括多個段。確定與總線中繼器模塊相關聯(lián)的模式。響應于位之一與故障段相關聯(lián),重新設置輸入信號中的位的位置。然后響應于該模式,經由通信總線將輸入信號傳送給一個或多個通信組件。
另外的示例性實施例包括一種用于提供通信接口的存儲介質。該存儲介質用機器可讀的計算機程序代碼編碼,并包括用于使計算機執(zhí)行一種方法的指令。該方法包括在總線中繼器模塊中接收輸入信號,該來自通信總線的輸入信號包括多個段。確定與總線中繼器模塊相關聯(lián)的模式。響應于位之一與故障段相關聯(lián),重新設備輸入信號中的位的位置。然后響應于該模式,經由通信總線將輸入信號傳送給一個或多個通信組件。
下面說明附圖,其中在各圖中同樣的元件使用同樣的標號圖1示出現有技術的經由分離的點到點鏈路與兩個帶緩沖的存儲組件相連接的存儲控制器;圖2示出現有技術的具有緩沖設備的同步存儲模塊;圖3示出現有技術的使用帶寄存器的DIMM的存儲子系統(tǒng);圖4示出現有技術的具有點到點通道、帶寄存器的DIMM以及一2∶1總線倍速器的存儲子系統(tǒng);圖5示出現有技術的使用多點存儲器“短截線”總線的存儲器結構;圖6示出現有技術的在多點通信結構中的菊花鏈結構,該多點通信結構否則將需要多個端口;圖7示出現有技術的在存儲控制器和存儲模塊之間的菊花鏈連接;圖8示出可被本發(fā)明的示例性實施例利用的級聯(lián)存儲器結構;
圖9示出可被本發(fā)明的示例性實施例利用的具有級聯(lián)存儲模塊、單向總線以及一總線中繼器的存儲器結構;圖10是在本發(fā)明的示例性實施例中可由總線中繼器模塊實現的1∶4重供動力模式和4∶1多路復用模式的框圖;圖11是在本發(fā)明的示例性實施例中可由總線中繼器模塊實現的1∶2重供動力模式和2∶1多路復用模式的框圖;圖12是被本發(fā)明的示例性實施例利用的總線中繼器模塊高級邏輯流程的框圖。
具體實施例方式
本發(fā)明的示例性實施例提供了一種靈活、高速和高可靠性的存儲系統(tǒng)體系結構和互連結構,該結構包括在任何兩個高速互連接口之間的單端(single-ended)、點到點互連。根據希望的屬性例如可靠性、性能、密度、空間、成本、元件重用和其他因素,該存儲子系統(tǒng)可在若干結構之一中實現。本發(fā)明的示例性實施例包括一存儲控制器、存儲模塊和一位于該存儲控制器和存儲模塊之間(或位于兩個或更多個存儲模塊之間)的總線中繼器。使用總線中繼器模塊(也被稱為總線中繼器芯片),通過具有到和從存儲模塊的直接點到點連接,允許增加該存儲控制器和存儲模塊之間的最大操作長度,同時減小平均存儲等待時間。通過利用點到點總線結構,單個存儲模塊中的錯誤不會影響存儲子系統(tǒng)中的其他存儲模塊的功能。該總線中繼器模塊包括多種交換模式,并且適合于帶緩沖的存儲模塊和/或經由具有提高的可靠性特性的封包化的、多傳輸的接口直接連接在一存儲控制器上。另外,該總線中繼器模塊可結合等效總線上相同的緩沖設備與無緩沖的和/或帶寄存器的存儲模塊一起使用,該緩沖設備被編程為以一種與為這些模塊類型定義的存儲接口一致的方式操作。
圖8示出一種級聯(lián)存儲器結構,當帶緩沖的存儲模塊806(例如,緩沖設備包含在存儲模塊806中)與緩沖控制器802通信時可使用該結構。此存儲器結構包括一存儲控制器802,該存儲控制器經由一高速點到點總線804與一個或多個存儲模塊806通信。圖8中所示的示例性實施例中的每個總線804包括大約50條用于傳送地址、命令、數據和時鐘的高速線。通過使用上述現有技術中所述的點到點總線,可能優(yōu)化該總線設計以便可顯著地提高數據傳輸率,以及通過在多個周期上傳送數據來降低總線引腳數。圖4示出這樣一種存儲子系統(tǒng),其中任何一條將存儲控制器與一個總線轉換器相連接的總線上的數據傳輸率(例如達每個引腳1066Mb/s)與任何一條在該總線轉換器與一個或多個存儲模塊之間的總線上的數據傳輸率(例如達每個引腳533Mb/s)的比率是2∶1,而如圖8所示的本發(fā)明的示例性實施例提供了4∶1的總線速度比率,以使總線效率最高而引腳數最小。
盡管點到點互連允許較高的數據傳輸率,但是必須通過使每個通道保持合理數量的存儲模塊806和存儲設備(歷史上為每個通道四個存儲模塊,每個存儲模塊具有4到36個芯片,但是最高為每個通道8個存儲模塊,最低為每個通道一個存儲模塊)來使整個存儲子系統(tǒng)具有效率。使用點到點總線要求在每個存儲模塊上必須有一總線再驅動功能,以便存儲模塊可級聯(lián),從而每個存儲模塊與其他存儲模塊以及存儲控制器802互連。
圖9示出本發(fā)明的示例性實施例利用的具有存儲模塊、單向總線以及一總線中繼器模塊的存儲器結構。圖9包括一與存儲控制器802連接的總線中繼器模塊906。利用該總線中繼器模塊906將存儲總線上的信號傳遞給該存儲器結構中的存儲模塊806和/或從存儲模塊806傳遞信號。圖10和11中示出可由總線中繼器模塊906實現的工作模式的示例性實施例。圖9還在兩個存儲總線(下行存儲總線904和上行存儲總線902)的每一個上包括四個存儲模塊806a、806b、806c和806d,每個存儲模塊都以點到點的方式連接在總線中繼器模塊906上。
本發(fā)明的一示例性實施例包括兩個位于存儲控制器802和總線中繼器模塊906之間的單向總線??偩€中繼器模塊906轉而直接連接在存儲模塊806a-d(“DIMM#1”、“DIMM#2”、“DIMM#3”、“DIMM#4”)存儲器結構上。下行存儲總線904包含22個單端信號(包括一個用于備用位的信號)和一差分時鐘對。下行存儲總線904用于從存儲控制器802將地址、控制、數據和誤碼校正(ECC)位下行傳送給總線中繼器906(在幾個時鐘周期上),并且然后傳送給安裝在該級聯(lián)存儲通道內的一個或多個存儲模塊806。上行存儲總線902包含23個單端信號(包括一個用于備用位的信號)和一差分時鐘對,并用于經由總線中繼器906從源存儲模塊806將總線級數據和ECC位上行傳送給存儲控制器802。存儲總線包括多個段(例如在總線中繼器模塊906和存儲模塊806a-d之間的每個線或信號;以及在存儲控制器802和總線中繼器模塊906之間的每個線或信號)。使用此存儲器結構,以及在DRAM數據傳輸率(例如,每個引腳400到800Mb/s)和單向存儲總線數據傳輸率(例如,每個引腳1.6到3.2Gb/s)之間的4∶1數據傳輸率倍增,可將每個存儲通道的存儲控制器802信號引腳數從大約120個引腳減小到大約50個引腳。
使用圖9中所示的存儲器結構,每個存儲模塊806的等待時間是對稱的,因為每個存儲模塊806以點到點的方式與總線中繼器906連接。相反,與圖9中的結構相比,對于設置在遠離存儲控制器802兩個站之上的任何存儲模塊806,圖8所示的級聯(lián)存儲器結構提供了增加的等待時間。當發(fā)生無法校正的存儲模塊806故障時,由于圖8中所示的級聯(lián)總線結構,該故障模塊下游的任何通信都是不可能的。相反,圖9中所示的包括總線中繼器模塊906的存儲器結構可防止有故障的存儲模塊806影響剩余存儲模塊806的繼續(xù)操作。
此外,圖9中所示的存儲器結構允許支持存儲器鏡像(對兩個存儲模塊806而不是一個存儲模塊的并行寫操作和讀操作,并且如果發(fā)現第一個存儲模塊806具有無法改正的錯誤,則從第二個存儲模塊806進行讀操作),而不必利用兩個存儲模塊806之間的非對稱的存儲等待時間。這是可能的,因為總線中繼器模塊906直接連接在每個存儲模塊806上。此外,圖9中所示的存儲器結構,有總線中繼器906插在存儲控制器802和存儲模塊806之間,增加了最大總線長度,以便可支持距離存儲控制器802更遠的存儲模塊806。此增加是允許的,因為每個通道段可具有通道設計允許的最大長度,并且可經由總線中繼器模塊906組合多個段以獲得所需的總長度。
總線中繼模塊906不必與存儲控制器802通信。在本發(fā)明的其他示例性實施例中,總線中繼器906可位于級聯(lián)存儲器結構中的兩個存儲模塊之間(例如806a和806b、806b和806c、以及806c和806d),而不位于存儲控制器802和每個存儲模塊806a-d之間。另外,總線中繼模塊906可位于一個存儲模塊806(例如806a)和多個其他存儲模塊806(例如806b-d)之間。此外,總線中繼器模塊906可如圖9中所示實現為單個部件,或實現為多個物理部件。當與存儲系統(tǒng)一起實現總線中繼模塊906時,其他配置也是可能的。例如,存儲系統(tǒng)可包括具有總線中繼器模塊906的圖9中所示的下行總線904,和一使用圖8中所示的級聯(lián)存儲總線804實現的上行總線902(即沒有總線中繼器模塊906)。在另一示例中,存儲系統(tǒng)包括具有總線中繼器模塊906的圖9中所示的上行總線902,和一使用圖8中所示的級聯(lián)存儲總線804實現的下行總線904(即,沒有總線中繼器模塊906)。
在本發(fā)明的其他示例性實施例中,可使用一通信組件(例如,通信控制器)替換圖9中的存儲控制器802,使用通信媒介(例如,一個或多個通信總線)代替上行總線902和下行總線904,并使用通信組件代替存儲模塊806a-d??墒褂美绨l(fā)送器(例如由通信控制器實現的)的通信組件代替存儲控制器802??衫迷摪l(fā)送器來編碼并經由該通信媒介發(fā)送信息。通信媒介可由電纜、電線、語音和/或任何其他的傳送方法實現。存儲模塊806a-d可用接收器(例如,由通信控制器實現的)代替。可利用該接收器來接收來自通信媒介的信息,并隨后對該信息解碼。在其他示例性實施例中,發(fā)送器也起到接收器的作用,并且接收器也起到發(fā)送器的作用。
圖10的框圖示出在本發(fā)明的示例性實施例中可由總線中繼器模塊906實現的1∶4重供動力模式1002和多路復用模式1004。參照該1∶4重供動力模式1002,存儲控制器802經由下行總線904啟動對位于存儲控制器802下游的一個或多個存儲模塊806的操作。然后,下行總線904被總線中繼器906重供動力到下行數據總線904的四個相同的拷貝(datao0、datao1、datao2和datao3)。所有下游存儲模塊806將監(jiān)視下行數據總線904,來查看數據是以該模塊為目標。目標存儲模塊806將接收信息并作用于該接收到的信息,而剩余的存儲模塊806將忽略該數據,一旦錯誤檢驗和命令譯碼指示存取并不是針對它們。因為所有存儲模塊806都具有與總線中繼器906的直接點到點連接,所以此模式在所有存儲模塊806之間提供了一致的存儲等待時間。當在一個或多個存儲模塊806中發(fā)生無法改正的錯誤時,剩余的存儲模塊806由于該點到點連接而仍將操作。
參照4∶1多路復用模式1004,存儲模塊806提供數據(datai0、datai1、datai2和datai3),并且總線中繼器906將該數據多路復用到朝向存儲控制器802的一個上行總線902(datao0)。同樣,所有存儲模塊806的存儲等待時間是一致的。當在一個或多個存儲模塊806中發(fā)生無法改正的錯誤時,假設所有存儲模塊806與總線中繼器906點到點連接,則剩余的存儲模塊806仍將起作用。1∶4重供動力模式和4∶1多路復用模式的使用是互補的,因為系統(tǒng)通常將同時使用這兩種操作模式來創(chuàng)建一具有讀和寫能力的存儲系統(tǒng)。
圖11是在本發(fā)明的示例性實施例中可由總線中繼器模塊實現的1∶2重供動力模式和2∶1多路復用模式的框圖。參照1∶2重供動力模式1102,物理上存在兩個獨立的1∶2重供動力功能。與傳統(tǒng)模式中僅有一個下行總線904(datai0)相比,此結構允許存儲控制器802操作兩倍的下行總線904(datai0和datai1)。此模式還可通過使存儲控制器802將同樣的數據源(分別為datai0和datai1)提供給兩個存儲模塊806來擔當一存儲器鏡像解決方案,從而將數據在datao0、datao1、datao2和datao3中復制。在另一實施例中。在另一實施例中,存儲控制器802可提供兩個不同的數據源(datai0和datai1不相同),對于datai0重供動力到datao0、datao1上,對于datai1重供動力到datao2、datao3上。當在一個或多個存儲模塊806中發(fā)生無法改正的錯誤時,假設所有存儲模塊806與總線中繼器906點到點連接,則剩余的存儲模塊806仍將起作用。
參照圖11中所示的2∶1多路復用模式1104,存儲模塊806提供被多路復用到datao0上的datai0和datai1,而datai2和datai3被多路復用到datao1上。這與4∶1多路復用模式相比增加了帶寬,而朝向存儲控制器802的存儲等待時間同樣一致。可在此結構中使用存儲器鏡像,而存儲控制器802將從datao0和datao1中選擇。當在一個或多個存儲模塊806中發(fā)生無法改正的錯誤時,假設所有存儲模塊806與總線中繼器906點到點連接,則剩余的存儲模塊806仍將起作用。圖10和11中的全部四種交換模式都可用于數據鏡像和/或增加存儲總線帶寬。文中所述的鏡像方案和方式旨在是示例性的,本發(fā)明的示例性實施例可使用其他的鏡像方案。例如,參照圖10,存儲器鏡像可通過將單個數據源復制成四個同樣的拷貝以為選擇的使命關鍵性應用提供四重冗余來實現。
圖12是可被本發(fā)明的示例性實施例使用以提供段級備用和/或其他增強的功能的總線中繼器模塊的高級邏輯流程的框圖??偩€中繼器模塊906可如前文所述位于存儲模塊806上,和/或位于系統(tǒng)板或卡上。在圖的左下部和右下部的塊(1224、1228、1239、1234)與接收或驅動該高速總線804相關?!吧闲小笔侵缚偩€902在存儲控制器802的方向上傳送信息,而“下行”是指總線904在離開存儲控制器802的方向上傳送信息。
參照圖12,將來自上游存儲組件(即存儲模塊806)、存儲控制器802和/或總線中繼器模塊906的數據、命令、地址、ECC和時鐘信號從下行存儲總線904接收到接收器組件1224。接收器功能塊1224向下行存儲總線904提供宏和支持邏輯,并且在本發(fā)明的一示例性實施例中支持一22位、高速、從屬接收器總線。接收器功能塊1224將時鐘信號傳送給一時鐘邏輯和分配功能塊1218(例如,以產生4∶1時鐘信號)。時鐘邏輯和分配功能塊1218還接收來自遍布和雜項信號1210的數據輸入。這些信號通常包括用于時鐘分配PLL的控制和建立信息、用于BIST(內置的自檢測)模式的檢測輸入、可編程時間設置等。接收器功能塊1224將數據、命令、ECC和地址信號傳送給總線備用邏輯塊1226,以在從前面的存儲組件傳送期間使用備用線的情況下,當可應用時,重新設置數據的位設置。在本發(fā)明的示例性實施例中,總線備用邏輯塊1226由多路復用器實現以在需要時移動信號位置。接下來,將原信號或重新排序的信號輸入另一個總線備用邏輯塊1236,以在必要時修改或重新排序信號位置,以考慮可能存在于當前的存儲組件和下游存儲組件之間的任何有缺陷的互連。然后,將該原信號或重新排序的信號輸入到驅動器功能塊1228,以便經由下行存儲總線904將該信號傳送給鏈中的下一個存儲模塊806。在本發(fā)明的示例性實施例中,使用多路復用器來實現總線備用邏輯1236。驅動器功能塊1228為下行存儲總線904提供宏和支持邏輯,并且在本發(fā)明的一示例性實施例中,支持一22位、高速、低等待時間的級聯(lián)總線驅動器。
除了將原信號或重新排序的信號輸入總線備用邏輯1236之外,總線備用邏輯1226還將原信號或重新排序的信號輸入下行總線ECC功能塊1220,以對幀進行錯誤檢測和校正。下行總線ECC功能塊1220作用于從下行存儲總線904通過總線中繼器模塊906接收或傳遞的任何信息,以判定是否存在總線錯誤。下行總線ECC功能塊1220分析總線信號,以判定該些信號是否有效。接下來,下行總線ECC功能塊1220將已校正的信號傳送給命令狀態(tài)機1214。命令狀態(tài)機1214將與命令譯碼或沖突相關聯(lián)的錯誤標志輸入到遍布和雜項功能塊1210。下游和上游模塊也將錯誤標志和/或錯誤數據(如果有的話)呈現給該遍布和雜項功能塊1210,以能夠將這些錯誤報告給存儲控制器、處理器、服務處理器或其他錯誤管理部件。
參照圖12,該遍布和雜項功能塊1210將錯誤標志和/或錯誤數據傳送給存儲控制器802。通過從此結構中的每個存儲模塊806收集錯誤標志和/或錯誤數據,存儲控制器802將能夠識別故障段,而不必啟動進一步診斷,即使在本設計的一些實施例中可進行其他的診斷。另外,一旦達到故障數量或故障類型的安裝選擇的閾值(例如1、2、10或20),則通常響應于來自存儲控制器802的輸入,遍布和雜項功能塊1210可用備用線替代故障段。在本發(fā)明的一示例性實施例中,為每組四個傳送進行錯誤檢測和校正,從而允許在接收到構成一幀的八個傳送的一半之后譯碼和啟動操作。對來自下行存儲總線904的通過存儲模塊806的所有信號進行錯誤檢測和校正,而不管該些信號是否將被特定的存儲模塊806處理。下行總線ECC功能塊1220將來自已校正信號的數據位輸入到寫數據緩沖器1212。
命令狀態(tài)機1214還判定該些已校正的信號(包括數據、命令和地址信號)是否指向存儲模塊806并應當由其處理。如果已校正信號指向存儲模塊806,則命令狀態(tài)機1214確定采取什么行動,并且可啟動DRAM行動、寫緩沖器行動、讀緩沖器行動或它們的組合。根據存儲模塊806的類型(帶緩沖的、無緩沖的、帶寄存器的),命令狀態(tài)機1214選擇合適的驅動特性、定時和定時關系。與DRAM規(guī)范一致地,寫數據緩沖器1212將數據信號傳送給存儲數據接口1206,而命令狀態(tài)機1214將相關聯(lián)的地址和命令信號傳送給存儲命令接口1208。存儲數據接口1206從存儲設備讀取存儲數據1242,并將存儲數據寫入存儲設備。數據與命令的定時關系根據存儲模塊806的類型的不同而不同。例如,當存儲數據接口1206向帶寄存器的DIMM存儲模塊804發(fā)送一命令時,與發(fā)送給無緩沖的DIMM存儲模塊806的命令相比,此命令占用一個額外的時鐘周期。另外,存儲命令接口1208在12條線上輸出6個不同的時鐘。為了支持使用無緩沖的和帶寄存器的存儲模塊806兩者,可根據存儲模塊806的類型邏輯地配置來自存儲命令接口1208的存儲a輸出1204和存儲b輸出1202。例如,當多模式存儲設備與兩個無緩沖的DIMM存儲模塊806通信時,存儲a輸出1204可指向第一無緩沖的DIMM存儲模塊806,而存儲b輸出1202可指向第二無緩沖的DIMM存儲模塊806。
在存儲模塊806執(zhí)行一命令例如讀命令之后,與存儲設備“讀”定時一致地,要傳送給存儲控制器802的數據信號可臨時存儲在讀數據緩沖器1216內。讀數據緩沖器1216將讀數據傳送到上行總線ECC功能塊1222中。上行總線ECC功能塊1222為讀數據緩沖器1216中的信號生成校驗位。該些校驗位和來自讀數據緩沖器1216的信號被輸入到上行數據多路復用功能塊1232。該上行數據多路復用功能塊1232通過總線備用邏輯1238和驅動器功能塊1230將數據合并到上行存儲總線902上。如果需要的話,總線備用邏輯1238可重定向該些信號以考慮當前的存儲模塊806和上游接收模塊(或存儲控制器)之間的有缺陷的段。驅動器功能塊1230經由上行存儲總線902將原信號或重新排序的信號傳送給鏈中的下一個存儲組件(即存儲模塊806)或存儲控制器802。在本發(fā)明的一示例性實施例中,使用多路復用器實現總線備用邏輯1238以將信號移位。驅動器功能塊1230為上行存儲總線902提供宏和支持邏輯,并且在本發(fā)明的一示例性實施例中支持一23位、高速、低等待時間的級聯(lián)驅動器總線。
上行存儲總線902中的數據、時鐘和ECC信號還被任何上游存儲模塊806中的任何上游總線中繼器模塊906接收。這些信號需要被上行傳遞到達下一個存儲模塊806或存儲控制器802。參照圖12,來自下游存儲組件(即,存儲組件806)的數據、ECC和時鐘信號在上行存儲總線902上被接收到接收器功能塊1234中。接收器功能塊1234為上行存儲總線902提供宏和支持邏輯,并且在本發(fā)明的一示例性實施例中支持一23位、高速、從屬接收器總線。接收器功能塊1234將數據和ECC信號通過總線備用功能塊1240傳遞到上行數據多路復用功能塊1232,并然后傳遞到總線備用邏輯塊1238。信號經由驅動器功能塊1230傳送給上行存儲總線902。
除了將數據和ECC信號傳遞到上行數據多路復用功能塊1232之外,總線備用功能塊1240還將原始的或重新排序的數據和ECC信號輸入到上行總線ECC功能塊1222,以對幀進行錯誤檢測和校正。上行總線ECC功能塊1222在從總線中繼器906接收或通過的來自上行存儲總線902任何信息上進行操作,以判定是否存在總線錯誤。上行總線ECC功能塊1222分析該數據和ECC信號,以判定該數據是否有效。接下來,上行總線ECC功能塊1222將任何錯誤標志和/或錯誤數據傳送給遍布和雜項功能塊1210,以便傳送給存儲控制器802。另外,一旦達到預先確定的故障數量或類型的閾值,則通常響應于存儲控制器802的指示,遍布和雜項功能塊1210可用備用段替代故障段。
圖12中的框圖是可被本發(fā)明的示例性實施例利用的總線中繼器模塊906的一個實現。圖12中所示的總線中繼器模塊906提供段級備用和總線級ECC。在不背離本發(fā)明的范圍的情況下還可有其他的實現。
如上所述,本發(fā)明的實施例可體現為計算機實現的過程和用于實現這些過程的裝置的形式。本發(fā)明的實施例還可體現為包括指令的計算機程序代碼的形式,該些指令包含在有形的介質例如軟盤、CD-ROM、硬盤驅動器或任何其他的計算機可讀存儲介質中,其中,當該計算機程序代碼加載到計算機中并被計算機執(zhí)行時,該計算機變?yōu)閷崿F本發(fā)明的裝置。本發(fā)明還可體現為這樣的計算機程序代碼的形式,即例如存儲在一存儲介質中,加載到計算機中和/或被計算機執(zhí)行,或在一些傳送介質上傳遞例如在電線或電纜上傳遞,通過光纖或經由電磁輻射傳遞,其中,當該計算機程序代碼加載到計算機中并被計算機執(zhí)行時,該計算機變?yōu)閷崿F本發(fā)明的裝置。當實現于通用微處理器上時,計算機程序代碼段配置該微處理器以創(chuàng)建特定的邏輯電路。
盡管已參照示例性實施例說明了本發(fā)明,但是本技術領域內的技術人員應理解,可進行多種變型或用等效物替代本發(fā)明的部件,而不會偏離本發(fā)明的范圍。另外,可進行多種修改以使特定的環(huán)境或材料適應于本發(fā)明的教導,而不會偏離本發(fā)明的實質范圍。因此,本發(fā)明并不是要局限于所公開的作為執(zhí)行本發(fā)明的最好方式的特定實施例,而是本發(fā)明將包括所有落在所附權利要求的范圍內的實施例。此外,術語第一、第二等的使用并不是指示任何順序或重要性,而是使用術語第一、第二等將一個部件與其他部件區(qū)分開。
權利要求
1.一種封包化的級聯(lián)存儲系統(tǒng),包括多個存儲組件;包括多個段的存儲總線;總線中繼器模塊,該總線中繼器模塊經由該存儲總線與兩個或更多個該存儲組件通信;以及段級備用模塊,在發(fā)生段故障時,該段級備用模塊為該存儲總線提供段級備用。
2.根據權利要求1的存儲系統(tǒng),其中,所述總線中繼器模塊和一存儲組件之間的段可用備用段代替。
3.根據權利要求1的存儲系統(tǒng),其中,所述存儲組件以存儲組件數據傳輸率操作,而所述存儲總線以四倍的該存儲組件數據傳輸率操作。
4.根據權利要求1的存儲系統(tǒng),還包括總線級誤碼故障檢測和校正模塊,以提供總線級誤碼故障檢測和校正。
5.根據權利要求1的存儲系統(tǒng),其中,所述存儲組件之一是存儲控制器。
6.根據權利要求1的存儲系統(tǒng),其中,所述存儲組件之一是帶緩沖的存儲模塊。
7.根據權利要求1的存儲系統(tǒng),其中,所述存儲組件之一是無緩沖的存儲模塊。
8.根據權利要求1的存儲系統(tǒng),其中,所述存儲組件之一是帶寄存器的存儲模塊。
9.根據權利要求1的存儲系統(tǒng),其中,所述總線中繼器將所述存儲總線上的數據的相同的拷貝再驅動到兩個或更多個存儲組件上。
10.一種用于提供存儲接口的方法,該方法包括在總線中繼器模塊中接收輸入信號,該輸入信號來自包括多個段的存儲總線;確定與該總線中繼器模塊相關聯(lián)的模式;響應于該輸入信號中的位之一與故障段相關聯(lián),重新設置該輸入信號中的位;以及響應于該模式,經由該存儲總線將該輸入信號傳送給一個或多個存儲組件。
11.根據權利要求10的方法,其中,所述模式是1∶4重供動力模式,并且所述總線中繼器模塊將所述輸入信號的四個相同的拷貝傳送給四個所述存儲組件。
12.根據權利要求10的方法,其中,所述模式是4∶1多路復用模式,并且所述總線中繼器模塊將四個輸入信號多路復用成一個信號以便傳送給一存儲組件。
13.根據權利要求10的方法,其中,所述模式是1∶2重供動力模式,并且所述總線中繼器模塊將所述輸入信號的兩個相同的拷貝傳送給兩個所述存儲組件。
14.根據權利要求13的方法,其中,所述1∶2重供動力模式實現鏡像功能。
15.根據權利要求10的方法,其中,所述模式是2∶1多路復用模式,并且所述總線中繼器模塊將兩個輸入信號多路復用成一個信號以便傳送給一存儲組件。
16.根據權利要求15的方法,其中,所述2∶1多路復用模式實現鏡像功能。
17.根據權利要求10的方法,還包括實現總線級錯誤檢測和校正功能。
18.一種以用于提供存儲接口的機器可讀計算機程序代碼編碼的存儲介質,該存儲介質包括用于使計算機執(zhí)行一方法的指令,該方法包括在總線中繼器模塊中接收輸入信號,該輸入信號來自包括多個段的存儲總線;確定與該總線中繼器模塊相關聯(lián)的模式;響應于該輸入信號中的位之一與故障段相關聯(lián),重新設置該輸入信號中的位;以及響應于該模式,經由該存儲總線將該輸入信號傳送給一個或多個存儲組件。
19.根據權利要求18的存儲介質,其中,所述模式是1∶4重供動力模式,并且所述總線中繼器模塊將所述輸入信號的四個相同的拷貝傳遞給四個所述存儲組件。
20.根據權利要求18的存儲介質,其中,所述模式是一4∶1多路復用模式,并且所述總線中繼器模塊將四個輸入信號多路復用成一個信號以便傳遞給一存儲組件。
21.根據權利要求18的存儲介質,其中,所述模式是1∶2重供動力模式,并且所述總線中繼器模塊將所述輸入信號的兩個相同的拷貝傳送給兩個所述存儲組件。
22.根據權利要求18的存儲介質,其中,所述模式是2∶1多路復用模式,并且所述總線中繼器模塊將兩個輸入信號多路復用成一個信號以便傳送給一存儲組件。
23.根據權利要求18的存儲介質,其中,所述2∶1多路復用模式實現鏡像功能。
24.根據權利要求18的存儲介質,其中所述方法還包括實現總線級錯誤檢測和校正功能。
25.一種封包化的級聯(lián)通信系統(tǒng),包括多個通信組件;包括多個段的通信總線;總線中繼器模塊,該總線中繼器模塊經由該通信總線與兩個或更多個該通信組件通信;以及段級備用模塊,在發(fā)生段故障時,該段級備用模塊為該通信總線提供段級備用。
26.根據權利要求25的通信系統(tǒng),其中,所述總線中繼器模塊和一通信組件之間的段可用備用段代替。
27.根據權利要求25的通信系統(tǒng),其中,所述通信組件以通信組件數據傳輸率操作,而所述通信總線以四倍的該通信組件數據傳輸率操作。
28.根據權利要求25的通信系統(tǒng),還包括總線級誤碼故障檢測和校正模塊,以提供總線級誤碼故障檢測和校正。
29.根據權利要求25的通信系統(tǒng),其中,一個或多個所述通信組件是通信控制器。
30.根據權利要求25的通信系統(tǒng),其中,一個或多個所述通信組件包括接收器。
31.根據權利要求25的通信系統(tǒng),其中,一個或多個所述通信組件包括發(fā)送器。
32.根據權利要求25的通信系統(tǒng),其中,一個或多個所述通信組件包括接收器和發(fā)送器。
33.根據權利要求25的通信系統(tǒng),其中,所述總線中繼器將所述通信總線上的數據的相同的拷貝再驅動到兩個或更多個所述通信組件上。
34.一種用于提供通信接口的方法,該方法包括在總線中繼器模塊中接收輸入信號,該輸入信號來自包括多個段的通信總線;確定與該總線中繼器模塊相關聯(lián)的模式;響應于該輸入信號中的位之一與故障段相關聯(lián),重新設置該輸入信號中的位;以及響應于該模式,經由該通信總線將該輸入信號傳送給一個或多個通信組件。
35.根據權利要求34的方法,其中,所述模式是1∶4重供動力模式,并且所述總線中繼器模塊將所述輸入信號的四個相同的拷貝傳送給四個所述通信組件。
36.根據權利要求34的方法,其中,所述模式是4∶1多路復用模式,并且所述總線中繼器模塊將四個輸入信號多路復用成一個信號以便傳送給一通信組件。
37.根據權利要求34的方法,其中,所述模式是1∶2重供動力模式,并且所述總線中繼器模塊將所述輸入信號的兩個相同的拷貝傳送給兩個所述通信組件。
38.根據權利要求37的方法,其中,所述1∶2重供動力模式實現鏡像功能。
39.根據權利要求34的方法,其中,所述模式是2∶1多路復用模式,并且所述總線中繼器模塊將兩個輸入信號多路復用成一個信號以便傳送給一通信組件。
40.根據權利要求39的方法,其中,所述2∶1多路復用模式實現鏡像功能。
41.根據權利要求34的方法,還包括實現總線級錯誤檢測和校正功能。
42.一種以用于提供通信接口的機器可讀的計算機程序代碼編碼的存儲介質,該存儲介質包括用于使計算機執(zhí)行一方法的指令,該方法包括在總線中繼器模塊中接收輸入信號,該輸入信號來自包括多個段的通信總線;確定與該總線中繼器模塊相關聯(lián)的模式;響應于該輸入信號中的位之一與故障段相關聯(lián),重新設置該輸入信號中的位;以及響應于該模式,經由該通信總線將該輸入信號傳送給一個或多個通信組件。
43.根據權利要求42的存儲介質,其中,所述模式是1∶4重供動力模式,并且所述總線中繼器模塊將所述輸入信號的四個相同的拷貝傳送給四個所述通信組件。
44.根據權利要求42的存儲介質,其中,所述模式是4∶1多路復用模式,并且所述總線中繼器模塊將四個輸入信號多路復用成一個信號以便傳送給一通信組件。
45.根據權利要求42的存儲介質,其中,所述模式是1∶2重供動力模式,并且所述總線中繼器模塊將所述輸入信號的兩個相同的拷貝傳送給兩個所述通信組件。
46.根據權利要求45的存儲介質,其中,所述1∶2重供動力模式實現鏡像功能。
47.根據權利要求42的存儲介質,其中,所述模式是2∶1多路復用模式,并且所述總線中繼器模塊將兩個輸入信號多路復用成一個信號以便傳送給一通信組件。
48.根據權利要求47的存儲介質,其中,所述2∶1多路復用模式實現鏡像功能。
49.根據權利要求42的存儲介質,還包括實現總線級錯誤檢測和校正功能。
全文摘要
一種封包化的級聯(lián)存儲系統(tǒng),包括多個存儲組件、包括多個段的一存儲總線、一總線中繼器模塊和一段級備用模塊。該總線中繼器模塊經由該存儲總線與兩個或更多個存儲組件通信。在發(fā)生段故障時,該段級備用模塊為存儲總線提供段級備用。
文檔編號G06F11/20GK1728074SQ200510087310
公開日2006年2月1日 申請日期2005年7月28日 優(yōu)先權日2004年7月30日
發(fā)明者K·C·高爾, K·W·卡克, M·W·凱洛格, W·E·莫爾 申請人:國際商業(yè)機器公司