用於區分狀態信息與讀數據的存儲接口協議的製作方法
2023-04-23 06:59:51 2
專利名稱:用於區分狀態信息與讀數據的存儲接口協議的製作方法
背景
圖1說明由電氣和電子工程師學會(IEEE)作為標準提出的、非正式地稱作RamLink的先有技術存儲系統。此標準命名為IEEE Std1596.4-1996,並且正式地稱作基於可縮放相干接口(SCI)的高帶寬存儲接口信令技術(RamLink)的IEEE標準。圖1的系統包括存儲控制器10和一個或多個存儲模塊12。存儲控制器10通常內置於處理器中或者在處理器的伴隨晶片組上製作。各存儲模塊12具有從接口14,該接口具有一個鏈路輸入端和一個鏈路輸出端。這些組件通過組件之間的單向鏈路16安排成稱作RingLink的RamLink信令拓撲。各模塊上的控制接口18使從接口14與存儲裝置20接口。在圖1所示的系統中,稱作SyncLink的另一種RamLink信令拓撲用於從接口與存儲裝置之間。
RamLink系統的目的是為處理器提供對存儲裝置的高速存取。數據在存儲控制器與模塊之間通過沿RingLink傳播的包進行傳送。控制器負責產生所有請求包以及調度從接口響應包的返回。
當控制器向特定模塊發送包含命令、地址、時間和數據的請求包時,發起寫事務。該包從模塊到模塊傳遞,直到它到達預期從接口,從接口則把數據傳遞給存儲裝置之一供存儲。從接口則發送響應包,該包從模塊到模塊傳遞,直到它到達控制器,確認寫事務完成。
當控制器向模塊發送包含命令、地址和時間的請求包時,發起讀事務。那個模塊上的從接口從存儲裝置之一中檢索所請求數據,並在響應包中將其返回給控制器,響應包又從模塊到模塊傳遞,直到它到達控制器。
圖2說明先有技術RamLink從接口電路。在圖2的電路中,源同步選通用於對入局數據信號定時。也就是說,伴隨入局數據信號的選通信號用於對入局數據抽樣。圖2的電路採用鎖相環(PLL),從分配給其它從接口電路的參考時鐘信號中產生穩定的本地時鐘信號。本地時鐘信號用於對出局數據信號重新定時,從而避免當數據沿下遊傳遞時的累積抖動。
附圖簡介圖1說明先有技術的RamLink存儲系統。
圖2說明先有技術的RamLink從接口電路。
圖3說明根據本專利的發明原理的存儲接口系統的一個實施例。
圖4說明根據本專利的發明原理的存儲模塊的一個實施例。
圖5說明根據本專利的發明原理的存儲模塊的另一個實施例以及存儲緩衝器的一個實施例。
圖6說明根據本專利的發明原理的存儲系統、存儲模塊以及存儲緩衝器的其它示例實施例。
圖7說明根據本專利的發明原理的存儲緩衝器的另一個示例實施例。
圖8說明根據本專利的發明原理的再驅動電路的一個實施例。
圖9說明根據本專利的發明原理的I/O單元的一個實施例。
圖10說明根據本專利的發明原理的I/O單元的另一個實施例。
圖11說明根據本專利的發明原理的I/O單元的另一個實施例。
圖12說明根據本專利的發明原理的I/O單元的另一個實施例。
圖13說明根據本專利的發明原理的故障在線恢復電路的一個實施例。
圖14說明根據本專利的發明原理、以正常模式工作的故障在線恢復電路的另一個實施例。
圖15說明根據本專利的發明原理、以故障在線恢復模式工作的故障在線恢復電路的另一個實施例。
圖16說明根據本專利的發明原理、具有位通道故障在線恢復功能的存儲緩衝器的一個實施例。
圖17說明根據本專利的發明原理、具有位通道故障在線恢復功能的存儲控制器的一個實施例。
圖18說明根據本專利的發明原理實現置換狀態模式的方法的一個實施例。
圖19說明根據本專利的發明原理的置換模式發生器的一個實施例。
圖20至圖23說明根據本專利的發明原理的狀態模式的示例實施例。
圖24說明根據本專利的發明原理的存儲代理的一個實施例。
圖25說明根據本專利的發明原理的輪詢操作的一個實施例。
詳細描述本專利包含具有獨立實用性的眾多發明。在一些情況下,當原理中的一些在各種相互組合中應用時,實現額外的益處,從而產生附加的發明。這些原理可在各種實施例中實現。雖然為了說明發明原理而給出一些具體細節,但是,根據本專利的發明原理,也可設計其它許多方案。因此,這些發明原理不限於本文所公開的具體細節。
圖3說明根據本專利的發明原理的存儲接口系統的一個實施例。圖3的系統包括存儲控制器50以及通過由單向鏈路構成的信道進行通信的一個或多個存儲模塊52。信道具有包括一個或多個出站鏈路54的出站通路以及包括一個或多個入站鏈路56的入站通路。各模塊可以能夠在出站通路上以及在入站通路上從鏈路到鏈路再驅動信號。例如,如果模塊檢測到它是最外面的模塊,或者響應來自存儲控制器的命令,各模塊還可以能夠有選擇地禁用任何再驅動特徵。
各模塊包括設置成向和/或從通路中的一個或多個傳送數據的一個或多個存儲裝置58。例如,模塊可經過設置,使得來自出站通路的數據被傳送到存儲裝置,而來自存儲裝置的數據則被傳送到入站通路。一個或多個緩衝器可設置在一個或多個存儲裝置與通路中的一個或多個之間。模塊和控制器不限於任何特定的機械裝置。例如,模塊可在與系統的其它部分分開的襯底上製作,它們可在與控制器和鏈路公共的襯底上製作,或者它們可在其它任何機械裝置中實現。模塊也不限於任何特定類型的存儲裝置,例如只讀存儲器(ROM)、動態隨機存取存儲器(DRAM)、閃速存儲器等。
圖4說明根據本專利的發明原理的存儲模塊的一個實施例。圖4的模塊包括兩個再驅動電路60和62,分別接收單向鏈路54A和56A上的信號以及將信號再驅動到單向鏈路54B和56B上。一個或多個存儲裝置58設置成向和/或從再驅動電路中的一個或多個傳送數據。
圖4的模塊不限於單向鏈路的任何特定布置或者向和/或從再驅動電路傳送數據的任何特定布置。如果圖4的模塊要用於例如圖3所示的存儲系統,則再驅動電路60可被指定為出站再驅動電路,並設置成接收和再驅動包括鏈路54A和54B的出站通路上的信號,而另一個再驅動電路62則可被指定為入站再驅動電路,並設置成接收和再驅動包括鏈路56A和56B的入站通路上的信號。在這個實例中,一個或多個存儲裝置58可經過設置,使得數據從出站再驅動電路60傳送到存儲裝置,以及從存儲裝置傳送到入站再驅動電路62。
模塊可以能夠檢測它是否為信道上最外面的模塊,並且相應地選擇性地禁用任何再驅動特徵。例如,如果圖4的模塊將用於如圖3所示的存儲系統,以及模塊檢測到它是最外面的模塊,則出站再驅動電路接收鏈路54A上的入局信號,但不對它們再驅動。同樣,入站再驅動電路僅採用對應於從存儲裝置接收的數據的信號和/或可由模塊內部產生的其它信號來驅動鏈路56B。或者,即使模塊檢測到它不是最外面的模塊,它也可經過構建,使得它能夠好像它是最外面模塊一樣工作(例如響應來自存儲控制器的命令),在這種情況下,它可忽略在入站鏈路56A上接收的信號,並且它可能不把信號再驅動到出站鏈路54B。
圖5說明根據本專利的發明原理的存儲模塊的另一個實施例以及存儲緩衝器的一個實施例。圖5的模塊包括具有兩個再驅動電路60和62的存儲緩衝器64,分別接收單向鏈路54A、56A上的信號以及將信號再驅動到單向鏈路54B、56B上。存儲緩衝器還包括設置成向和從一個或多個存儲裝置58傳送數據的存儲接口66。緩衝器可以能夠檢測它是否為信道上的最後一個代理,並且相應地有選擇地禁用任何再驅動特徵。即使緩衝器不是最後一個代理,它也可以能夠好像它是信道上的最後一個代理那樣工作,例如響應來自存儲控制器的命令。本文所使用的代理表示與信道接口的任何存儲控制器(又稱作主控制器)、模塊、緩衝器等。
圖5的模塊和緩衝器不限於單向鏈路的任何特定布置或者用於在存儲接口與再驅動電路之間傳送的任何特定布置。如果圖5的模塊要用於例如圖3所示的存儲系統,則再驅動電路60可能被指定為出站再驅動電路,並設置成接收和再驅動包括鏈路54A和54B的出站通路上的信號,而另一個再驅動電路62則可被指定為入站再驅動電路,並設置成接收和再驅動包括鏈路56A和56B的入站通路上的信號。在這個實例中,存儲接口可配置成從出站再驅動電路60接收數據以及向入站再驅動電路62發送數據。
各種機械布置可用來實現圖4和圖5的存儲模塊和/或緩衝器。例如,存儲裝置58、再驅動電路60和62、以及緩衝器64均可實現為安裝在公共電路板或者在分開的電路板上的分開的集成電路。組件的各種組合可在公共集成電路上製作在一起,或者它們都可製作在單個集成電路上。一個或多個電路板(若有的話)可以能夠插入主板上的插槽、與主板製作在一起、或者以另外任何方式來設置。例如,如果組件作為多晶片模塊的組成部分來製作,則可能沒有電路板。根據本專利的發明原理的存儲緩衝器可用於將不同於存儲裝置的裝置與信道接口。例如,根據本專利的發明原理的存儲緩衝器可用於將I/O控制器或橋與信道接口。
參照「入站」和「出站」通路、鏈路、再驅動電路等來描述根據本專利的發明原理的設備的其它實施例,以幫助理解該設備可如何用於例如圖3所示的實施例的存儲系統。但是,這些設備不限於單向鏈路的任何特定布置、用於在鏈路與其它電路之間傳送數據所示的特定布置或者所示的實現詳細情況的任一個。
圖6說明根據本專利的發明原理的存儲系統、存儲模塊以及存儲緩衝器的其它示例實施例。參照圖6,一個或多個存儲模塊52基於具有沿一側面的兩邊的接觸片的印刷電路板,以便創建可插入固定系統的其它元件的另一個電路板上的連接器中的雙列直插式存儲模塊(DIMM)。現有形狀因數可用於此模塊,例如用於雙數據速率II(DDR2)動態隨機存取存儲器(DRAM)模塊的DIMM形狀因數。
模塊裝載了存儲裝置58,例如商品型DRAM、如DDR2DRAM。各模塊上的存儲緩衝器64隔離存儲裝置與將模塊和存儲控制器50接口的信道,存儲控制器50又稱作主控制器。信道以點到點布置與包括出站鏈路54的出站通路連接以及與包括入站鏈路56的入站通路連接。鏈路可採用低電壓差動信號通過並行單向位通道來實現。
在圖6的實施例中,沒有附加信號線用於諸如命令、重置、初始化等功能。而是,這些功能直接在通過信道發送的數據中編碼。然而,作為選擇,任何數量的附加信號線可用來實現這類功能。
參考時鐘信號REF CLK由時鐘合成器76來產生,也許通過時鐘緩衝器78分配給主控制器和模塊。這有助於準異步定時方案,其中,本地產生的時鐘信號用於對入局數據抽樣和再驅動。由於公共參考時鐘在各代理處可得到,因此數據信號可被定時而沒有任何頻率跟蹤。或者,本地時鐘信號可與任何參考時鐘無關地產生。作為另一個備選方案,可採用同步定時方案、如源同步選通。
在一個可能的實施例中,主控制器通過向出站通路上最裡面的模塊-也許採用包或幀(這些術語在這裡可互換使用)-發送數據來發起數據傳遞。最裡面的模塊接收該數據並再驅動到出站通路上的下一個模塊。各模塊接收並再驅動出站數據,直到出站數據到達最外面的模塊。雖然最外面的模塊可嘗試把數據再驅動到「不存在的」出站鏈路,但各模塊可以能夠檢測(或被指示)它是最外面的模塊,並禁用任何再驅動電路以降低不必要的功耗、噪聲等。在這個實施例中,朝主控制器的方向、即入站的數據傳遞由最外面的模塊發起。各模塊接收入站數據並將它沿入站通路再驅動,直到它到達主控制器。
在物理信道上可使用任何適當的通信協議。例如,可指定主控制器來發起和調度所有入站及出站數據傳遞。或者,可允許任何代理來發起數據傳遞。數據幀可配置成攜帶命令、讀數據、寫數據、狀態信息、錯誤信息、初始化數據、空閒模式等或者它們的任何組合。協議可實現成,當主控制器沿出站通路向目標模塊發送命令幀時,目標模塊通過立即沿入站通路向主控制器發迴響應幀來進行響應。在這種實施例中,目標模塊不在出站通路上再驅動命令幀。
在一個備選實施例中,目標模塊接收命令幀,然後在出站通路上再驅動命令幀。當最外面的模塊接收命令幀時,它在入站通路上發起響應幀(也許只是空閒幀)。目標模塊等待,直到響應幀到達其入站接收器。然後目標模塊例如通過用目標模塊的真實響應幀取代最外面的模塊所發送的響應幀,將其響應合併到入站數據流中。
圖7說明根據本專利的發明原理的存儲緩衝器的另一個示例實施例。圖7的存儲緩衝器包括接收和再驅動包括鏈路54A、54B的出站通路上的信號的出站再驅動電路60以及接收和再驅動包括鏈路56A、56B的入站通路上的信號的入站再驅動電路62。存儲接口66將緩衝器與一個或多個存儲裝置接口,這可通過存儲總線68進行。存儲接口可包括讀和/或寫緩衝器、如FIFO緩衝器。來自出站通路的數據耦合到存儲接口,這可通過消除在出站通路具有不止一個位通道時數據位之間的偏斜的偏斜消除電路70來進行。模式發生器72可用於例如在緩衝器正好是信道上最外面的代理時產生要傳送到入站通路上的狀態模式,在這種情況下,在入局入站鏈路56A上可能沒有接收到信號。復用器74有選擇地把來自存儲接口或模式發生器的數據耦合到入站再驅動電路。
存儲接口不限於任何特定布置,並且它可與標準存儲裝置、尤其是商品存儲裝置、如DDR2 DRAM兼容。整個存儲緩衝器可在單個集成電路上集成,可集成到一個或多個存儲裝置中,其組成元件可集成到分開的組件中,或者可採用其它任何機械布置。圖7所示的實施例僅作為示範,根據本專利的發明原理,其它實施例是可行的。例如,圖7的實施例採用從出站再驅動電路流動到存儲接口以及從存儲接口流動到入站再驅動電路的單向數據來表示。但是,這種數據流可以是雙向的,並且考慮其它布置。即使圖7的實施例要用於其中存儲接口的數據只需要按圖7所示流動的信道系統中,它也仍然可採用具有全雙向數據訪問的再驅動電路來實現,因為這可有助於例如內置自檢(BIST)功能的實現,在這種情況下,用於對來自入站通路的數據進行偏斜消除的第二偏斜消除電路可能會有幫助。
圖8說明根據本專利的發明原理的再驅動電路的一個實施例。圖8的電路包括一個或多個輸入/輸出(I/O)單元74,其中的每個接收可再驅動為輸出數據信號TX的輸入數據信號RX。或者,I/O單元可將讀數據信號RDX替換或合併到輸出數據信號中。寫數據信號WDX可在輸入數據信號被再驅動為輸出數據信號之前或者之後從其中提取。
上述信號名稱的任一個中的「X」表明它可能是取決於再驅動電路中的I/O單元的數量的多個相似信號其中之一。例如,具有九個位通道的再驅動電路將包括具有命名為R0、R1...R8的輸入數據信號的九個I/O單元。在僅具有單個I/O單元的再驅動電路中,數據輸入信號是R0或只是R。術語RX用於一般表示輸入數據信號的任一個或全部。
為了方便起見,術語「寫數據」用來表示從通過I/O單元傳播的數據流中提取的任何數據。但是,這並不意味著寫數據必須針對存儲接口或存儲裝置。同樣,「讀數據」表示輸入到I/O單元的任何數據,但讀數據可來自任何源,而不只是存儲裝置或存儲接口。
再參照圖8,時鐘發生器80響應參考時鐘信號REF CLK而產生多個相位時鐘信號PCX和發送時鐘信號TC。時鐘發生器包括產生作為參考時鐘信號REF CLK的倍數的發送時鐘TC的鎖相環(PLL)82以及相位時鐘發生器84。在一個可能的實施例中,存在間隔90度且從發送時鐘TC得到的四個相位時鐘信號PC0、PC1、PC2和PC3。I/O單元中的每個可採用TC和PCX時鐘信號中的一個或多個來對數據信號抽樣和/或再驅動,和/或產生附加的本地時鐘信號。在這個實施例中,相位時鐘和發送時鐘信號在它們不隨輸入數據信號RX中任一個的相位而調整的意義上是穩定信號。
圖9說明根據本專利的發明原理的I/O單元的一個實施例。接收器86設置成接收數據信號RX,並響應抽樣時鐘信號SC而將它再驅動為數據信號TX。抽樣時鐘信號由抽樣時鐘發生器88產生,抽樣時鐘發生器88能夠響應數據信號RX而調整抽樣時鐘信號。寫數據信號WDX可從接收器86的輸入或輸出中提取。如果如圖9所示從接收器的輸出中提取,則抽樣時鐘信號SC可用作或者用於導出寫數據的選通信號。對抽樣時鐘發生器的輸入可從與圖9所示的接收器的輸入不同的點提取。例如,它也可從接收器的輸出中提取。
圖10說明根據本專利的發明原理的I/O單元的另一個實施例。在圖10的實施例中,抽樣時鐘發生器88採用內插器90和接收器跟蹤單元(RTU)92來實現。內插器通過響應來自接收器跟蹤單元的跟蹤信號而在多個相位時鐘信號PCX(在本例中為90度異相的四個信號)之間內插來產生抽樣時鐘信號。接收器跟蹤單元觀察數據信號RX並調整跟蹤信號,使得抽樣時鐘信號使接收器在適當時間對數據信號進行抽樣和再驅動。這樣,抽樣時鐘信號可動態跟蹤數據信號。
在一個可能的實施例中,接收器跟蹤單元通過對數據信號過抽樣並調整抽樣時鐘信號來觀察數據信號RX中的轉變,從而在數據眼圖的中心、即在數據信號中轉變之間的中間點對數據信號進行抽樣和再驅動。抽樣時鐘發生器88可包括環路濾波器,它測量若干位單元,並且可最終確定它應當調整抽樣時鐘信號的相位以捕捉更接近數據眼圖位置的中心的數據。對抽樣時鐘發生器的輸入可從與圖10所示的接收器的輸入不同的點提取。例如,它也可從接收器的輸出中提取。
根據本專利的發明原理的I/O單元的一個實施例可與訓練I/O單元以動態跟蹤數據信號的方案配合使用。例如,如果圖10的I/O單元用作圖3所示的存儲模塊之一,則主控制器可定期把訓練幀發送到出站通路上。這些訓練幀的邊沿密度足以保證接收器跟蹤單元觀察數據信號中的足夠轉變,從而能夠調整抽樣時鐘信號。同樣,圖3中最外面的模塊可定期把訓練幀發送到入站通路上。
圖11說明根據本專利的發明原理的I/O單元的另一個實施例。圖11的實施例與圖9類似,只是在數據信號通路中增加了緩衝器94。緩衝器94可以是補償電壓和溫度引發效應的防抖動或漂移補償緩衝器。緩衝器使數據信號TX與發送時鐘信號TC再同步。發送時鐘信號在其相位不象抽樣時鐘信號SC那樣隨數據信號而調整的意義上是穩定的。
在圖11的實施例中,緩衝器能夠響應模式信號而以通過模式或者再驅動模式工作。在通過模式中,信號沒有被抽樣和再驅動就通過。在再驅動模式中,信號響應時鐘信號而被抽樣和再驅動。這使I/O單元能夠以不同的再驅動模式工作。在一個可能的實施例中,緩衝器在模式信號被斷言時以通過模式工作。這稱作再抽樣模式,並且可產生更短的等待時間,因為數據信號由用於對數據抽樣的相同時鐘來再驅動。當模式信號未被斷言時,緩衝器以再驅動模式工作,因此數據與發送時鐘再同步。這稱作再同步模式,並且可產生更長的等待時間但可減小抖動。I/O單元可設計到具有用於接收模式信號的輸入端的存儲緩衝器或模塊中。如果存儲緩衝器或模塊要在其中到下一個代理存在較簡訊號通路的系統中使用,則輸入可被斷言(或不被斷言,取決於極性),從而使I/O單元以再抽樣模式工作,因為在簡訊號通路上可容許更大抖動。另一方面,如果存儲緩衝器或模塊要在其中到下一個代理存在較長信號通路的系統中使用,則輸入可被取消斷言,以便使I/O單元以再同步模式工作,因為這減小抖動,雖然可能的代價是較長的等待時間。或者,已登記標誌可用於存儲緩衝器或模塊、或者再驅動電路或I/O單元本身中來控制模式信號。
圖12說明根據本專利的發明原理的I/O單元的另一個實施例。在圖12的實施例中,接收和發送數據信號RX及TX為差動信號,並表示為穿過在其中可製作I/O單元的集成電路管芯的一邊。接收器86包括抽樣單元96和端接單元98。抽樣單元響應由內插器90響應來自抽樣時鐘發生器的相位時鐘信號而產生的抽樣時鐘信號SC而對入局數據信號抽樣。端接單元提供差動端接,並把差動數據信號轉換為單端信號。防抖動或漂移補償緩衝器94響應抽樣時鐘信號SC或穩定的發送時鐘信號TC而對數據定時。復用器100有選擇地將來自緩衝器94或串行化器102的數據信號耦合到發送鎖存器104。讀數據信號RDX
在串行化器102上的I/O單元被接收。另一個復用器可設置在緩衝器94與發送鎖存器104之間,發送鎖存器104的一個輸入端連接到緩衝器,另一個輸入端連接到內插器的輸出端。
當I/O單元需要將讀數據合併到數據流時,復用器選擇其耦合到串行化器的輸入端,使得發送鎖存器響應發送時鐘信號TC而對來自I/O單元的讀數據定時。否則,復用器選擇來自緩衝器的數據信號,該數據信號然後由發送鎖存器再驅動。發送數據信號在被驅動到下一個單向鏈路上之前由發送器106重新轉換為差動信號。寫信號從發送鎖存器的輸出中提取,在解串器108中被收集,然後被路由到偏斜消除電路、位通道故障在線恢復裝置或其它電路。解串器還可提供位線時鐘信號BLC,它可從抽樣時鐘信號中得到,以便表明寫數據WDX
何時是有效的。
本專利的發明原理的一部分涉及與再驅動通路分離的偏斜消除信號。再驅動通路由信號在被接收和再驅動時傳播所通過的一個或多個組件來定義。例如,在圖9和圖10的實施例中,再驅動通路包括接收器86。在圖11的實施例中,再驅動通路包括接收器86和緩衝器94。在圖12的實施例中,再驅動通路包括抽樣單元96、端接單元98、緩衝器94、復用器100、發送鎖存器104以及發送器106。
根據本專利的發明原理的一部分,偏斜消除電路可集成到再驅動電路中,使得偏斜消除電路的各個位通道包含在再驅動通路中。因此,位通道上的信號可在沿通路被再驅動時在每個再驅動電路中消除偏斜。但是,作為選擇,根據本專利的發明原理的偏斜消除電路可與再驅動通路分離。例如,在圖7的實施例中,偏斜消除電路表示為不僅與再驅動電路60中的再驅動通路分離,而且與整個再驅動電路分離。或者,根據本專利的發明原理的偏斜消除電路可集成到再驅動電路中,但仍然與再驅動通路分離。例如,在圖12的實施例中,一個或多個偏斜消除鎖存器可設置在串行化器102的輸出端和/或解串器108的輸入端。
如上所述用於對與再驅動通路分離的信號進行偏斜消除的方法及設備的實施例僅作為示範,並不限於這些具體實例。此外,根據本專利、涉及對與再驅動通路分離的信號進行偏斜消除的原理與本專利的其它發明原理無關。例如,正如圖9-12所示的再驅動電路的實施例不限於用於具有分開的出站和入站通路的存儲系統中那樣,根據本專利、涉及用於對與再驅動通路分離的信號進行偏斜消除的原理也可與利用單向鏈路的其它類型的存儲體系結構配合使用,例如利用鏈路的環型布置、如RamLink的體系結構。
本專利的發明原理的一部分涉及處理故障位通道。例如,圖3、4、5、6或7的實施例中所示的任何代理之間的單向鏈路的任一個可具有一個以上位通道。根據本專利的發明原理,一個或多個信號可在位通道上重定向,以便避免不良位通道。諸如存儲控制器(主控制器)、模塊、緩衝器等任何代理可以能夠在多個位通道上重定向一個或多個信號。信號可在鏈路的任一端或兩端重定向。任何代理可以能夠自動地或者通過另一個代理的協助來檢測故障位通道,以及任何代理可以能夠響應來自另一個代理的命令而重定向信號。
圖13說明根據本專利的發明原理的故障在線恢復電路的一個實施例。僅為了說明,圖13的故障在線恢復電路110表示為與再驅動電路112的實施例一起,但發明原理不限於與任何特定再驅動電路配合使用,故障在線恢復電路也不限於圖13所示的具體細節。再驅動電路112包括設置成接收和再驅動單向鏈路上的信號的多個位通道。每個位通道被實現為具有接收器116和發送器118的I/O單元114。
故障在線恢復電路表示能夠重定向送往或來自多個位通道的一個或多個信號的電路。在圖13的實施例中,故障在線恢復電路實現為具有一個或多個復用器開關120的復用器。每個開關具有耦合到一個位通道的第一輸入端以及耦合到相鄰位通道的第二輸入端,使得它可將來自任一個位通道的信號重定向到其輸出端。圖13所示的實施例表示為具有六個開關,為六個位通道提供服務,但是可使用任何數量的開關和位通道,以及開關可設置成不同於所示的相鄰位通道配置的各種配置。
在正常操作模式中,開關的每個把來自其第一輸入端的信號送往其輸出端,如圖14所示,使得寫數據信號WD0、WD1、WD2、WD3、WD4和WD5分別送往輸出端OUT0、OUT1、OUT2、OUT3、OUT4和OUT5。在這種實施例中,位通道之一、例如與WD5對應的位通道可用於對其它位通道上的數據進行檢錯。
如果檢測到不良位通道,則復用器可按照故障在線恢復模式工作,其中操作開關中的一個或多個以標出不良位通道。例如,如果與WD3關聯的位通道沒有正確工作,則復用器開關可分別將寫數據信號WD4和WD5重定向到輸出端OUT3和OUT4,如圖15所示。在這種模式中,一個位通道的信號容量丟失。如果指定了位通道之一用於檢錯,則原本要發往不良位通道的信號可通過檢錯通道重新路由,以及檢錯功能可被禁用。
故障在線恢復電路的輸出可耦合到存儲接口、存儲裝置或者其它電路。在圖13的實施例中,故障在線恢復電路表示為與再驅動電路分離,但它也可集成到再驅動電路中。根據本專利的發明原理的故障在線恢復電路可採用如圖所示的簡單復用器來實現,但其它布置、如全交叉開關也是可行的。
圖13所示的故障在線恢復電路的實施例設置成將來自位通道的寫數據耦合到其輸出端。或者,根據本專利的發明原理的故障在線恢復電路的一個實施例可設置成朝相反方向傳遞數據,在這種情況下,輸出端OUTX將成為接收讀數據的輸入端,復用器開關可稱作分用器開關,以及I/O單元的每個可在接收器與發送器之間具有復用器,將來自故障在線恢復電路的讀數據合併到位通道中。這樣,復用器表示復用器和分用器。作為另一個備選方案,根據本專利的發明原理的故障在線恢復電路的一個實施例可設置成用於位通道與存儲裝置、存儲接口或其它電路之間的雙向數據流。
根據本專利的發明原理,存儲緩衝器、存儲模塊、存儲控制器(主控制器)或具有位通道故障在線恢復功能的其它代理也可具有用於檢測故障位通道、重定向信號、標出不良位通道等的各種功能。例如,具有圖13所示的故障在線恢復電路的實施例的代理可經過設計,使得它可例如通過觀察另一個代理髮送的測試數據模式並重定向信號以標出故障位通道,來檢測故障位通道。或者,代理可經過設計,使得它可響應來自另一個代理、例如指示存儲信道上的一個或多個代理的存儲控制器的命令而標出故障位通道。或者,該代理可具有兩種功能。
圖16說明根據本專利的發明原理、具有位通道故障在線恢復功能的存儲緩衝器的一個實施例。圖16的實施例與圖7相似,但還包括耦合在偏斜消除電路70與存儲接口66之間的故障在線恢復電路122。備選實施例是可行的。例如,故障在線恢復電路可設置在再驅動電路60與偏斜消除電路之間,或者它可集成到再驅動電路中。圖16的實施例還包括另一個故障在線恢復電路124,它表示為耦合在復用器74與再驅動電路62之間,但它也可集成到再驅動電路中,或者以其它方式設置。圖16的存儲緩衝器或者也可體現為存儲模塊,在這種情況下,存儲接口被存儲裝置取代。
圖17說明根據本專利的發明原理、具有位通道故障在線恢復功能的存儲控制器的一個實施例。圖17的控制器包括出站和入站單向鏈路接口126、128,它們具有在這個實施例中分別包括多個發送器和多個接收器的多個位通道。故障在線恢復電路130和132分別耦合到接口126、128中的位通道。在圖17的實施例中,故障在線恢復電路表示為與鏈路接口分離,但它們也可與這些接口結合。控制器可以能夠檢測故障位通道,在這種情況下,故障在線恢復電路可標出故障位通道。作為補充或替代,控制器可以能夠發送指導代理標出故障位通道的命令。
現在將在包括根據本專利的發明原理的存儲控制器(主控制器)、存儲模塊和存儲緩衝器的其它實施例的完整存儲信道系統的一個示範實施例的上下文中描述根據本專利的發明原理的另外的故障在線恢復方法及設備。但是,沒有任何組件局限於這個示範系統或者本文所述的任何細節。
該示範系統包括具有諸如參照圖17所述的那些功能的故障在線恢復功能的主控制器的一個實施例以及具有具備諸如參照圖16所述的那些功能的故障在線恢復功能的緩衝器的一個或多個存儲模塊的實施例。在這個實例中,主控制器和模塊設置在具有例如圖7所示的出站和入站通路的信道配置中,可是該系統可能只包括一個模塊。
在這個實例中,主控制器和模塊與作為用來管理系統中組件的串行總線系統、稱作「SMBus」的系統管理總線互連。但是,SMBus的使用不是本專利的發明原理所必需的,以及可採用組件之間的其它通信形式,其中包括存儲信道通路本身。
根據本專利的發明原理、用於在示範系統中檢測和標出故障位通道的方法的一個實施例如下所述。主控制器在出站通路的各位通道上發送測試模式。測試模式由各模塊上的緩衝器接收並沿出站通路再驅動,直到它到達最外面的模塊。最外面的模塊則在入站通路的各位通道上發送測試模式。測試模式由各模塊上的緩衝器接收並沿入站通路再驅動,直到它到達主控制器。主控制器和模塊上的緩衝器觀察入站和/或出站通路的各位通道上的測試模式,以便檢查正確的位通道操作。入站和出站通路上的位通道可同時被測試。
通過經由SMBus向主控制器發送結果和/或通過經由信道向主控制器傳送結果幀,來報告故障位通道。這種結果幀可由最外面的模塊在入站通路上發起,以及其它模塊(若有的話)可將它們的結果信息合併到入站通路中的數據中。如果來自各模塊的結果在一個以上位通道上以冗餘方式傳送,則故障位通道不可能干擾報告結果。
一旦主控制器接收到結果,它可通過SMBus、通過信道或者通過其它任何形式的通信向模塊發出配置命令。配置命令向模塊指示哪些(若有的話)位信道是不良的且應當被標出。模塊通過操作一個或多個故障在線恢復電路以繞過不良位通道(若有的話)重定向信號,並且重新配置任何內部功能性以適應位通道的丟失,來響應該配置命令。例如,如果一個位通道被指定用於對數據進行檢錯,則緩衝器或模塊可禁用檢錯功能。
以上所述的故障在線恢復方法及設備的實施例僅作為示範,並且本專利的發明原理不限於這些具體實例。參照具有例如圖3的實施例的分開的入站和出站通路的存儲系統描述了根據本專利的故障在線恢復方法及設備的原理,但這些原理還可適用於採用單向鏈路的任何存儲體系結構,例如利用鏈路的環型布置、如RamLink的體系結構。
本專利的發明原理的一部分涉及置換狀態模式。在其中存儲器讀和寫數據在存儲代理之間傳遞的、例如以上參照圖1和圖3所述的那些存儲系統中,在存儲代理之間發送狀態信息、如空閒模式、告警模式及其它狀態信息可能也是有用的。這可通過在連接存儲代理的一個或多個相同鏈路上發送數據模式和狀態模式來實現。根據本專利的發明原理,狀態模式可隨時間而置換。
例如,參照圖3,存儲控制器50可向模塊52中的一個或多個發送具有數據模式、如讀命令的幀,模塊52中的一個或多個可通過向控制器發回具有數據模式、如讀數據的幀來響應。例如,如果模塊不能夠足夠快地從存儲裝置58中檢索讀數據,則讓模塊中的一個或多個向存儲控制器發回具有空閒模式的幀可能是有用的。可指定預定數據模式為空閒模式,使得如果存儲控制器接收到空閒模式,它知道不是在接收讀數據。但是,如果實際讀數據模式正好匹配指定的空閒模式,則這可能產生問題。
根據本專利的發明原理,存儲控制器和一個或多個模塊均可以能夠以可預測方式置換空閒模式,使得空閒模式隨時間而改變。例如,每當空閒幀被發送和/或接收時,存儲控制器和模塊可按照預定順序來改變空閒模式。根據本專利的發明原理的這種方法的一個實施例如圖18所示。這樣,如果存儲控制器發送讀命令幀(158)並接收具有當前空閒模式(162)的響應幀(160),則它可重發相同的讀命令(164)。如果第二響應幀(166)包含與第一個相同的模式(168),則它將該模式解釋為實際讀數據(170)。但是,如果第二響應幀中的模式匹配置換空閒模式(168),則存儲控制器知道,第一響應幀為空閒幀(172)。
根據本專利的發明原理,狀態模式中發送的狀態信息可能是空閒模式、告警模式以及其它狀態信息,例如來自模塊的命令錯誤信息、來自模塊的熱過載信息以及表明模塊檢測到存儲信道的出站通路上另一個模塊的存在的信息。一些類型的狀態模式可實現為互補模式。例如,告警模式(可用於向代理通知錯誤狀況)可實現為空閒模式的邏輯互補。這可通過例如允許存儲代理對空閒和告警模式使用相同的模式發生器來簡化實現。即使沒有使用置換模式,互補狀態模式的使用也可能是有益的。
根據本專利的發明原理的存儲代理還可以能夠在狀態模式中故意產生錯誤、如循環冗餘校驗(CRC)錯誤。這種技術作為區分數據模式與狀態模式的替代或補充方式可能是有用的。例如,在一些存儲系統中,各幀與用於檢驗幀中數據的完整性的CRC代碼一起被發送。
根據本專利的發明原理,存儲代理可故意隨包含狀態模式的幀一起發送錯誤的CRC代碼。接收代理則可把該幀解釋為狀態幀而不是數據幀。一些存儲系統可利用具有額外位通道的一個或多個通路來傳送CRC數據。如果這種系統能夠以故障在線恢復模式工作,則一個或多個代理在沒有以故障在線恢復模式工作時可以僅利用故意CRC錯誤。本文所使用的術語「CRC」不僅表示循環冗餘校驗,而且還表示用於檢驗幀或模式的完整性的其它任何類型的檢錯方案。
雖然根據本專利的發明原理的狀態模式置換和處理的原理適用於任何類型的存儲代理並且與本專利的其它發明原理無關,但將針對例如圖7所示的實施例的存儲緩衝器以及在例如圖6所示的實施例的系統的上下文中描述一些附加方面。參照圖6,如果存儲緩衝器64是存儲信道上最外面的代理,則每當它沒有發送主控制器從接到存儲接口68的任何存儲裝置請求的數據時,它可以能夠在入站鏈路56B上不斷傳送置換空閒狀態幀。
圖19說明根據本專利的發明原理的置換模式發生器的一個實施例。圖19的實施例是具有多項式x12+x7+x4+x3+1的12位線性反饋移位寄存器(LFSR)。初始狀態可設置為000000000001,以及LFSR在模式重複之前循環通過212-1種狀態(4095幀)。LFSR的每個位可映射到數據通路上的鏈路中的位通道,以及每個位可用於在整個幀期間在相應位通道上出現的所有傳遞。例如,在具有在各鏈路中帶12個位通道的數據通路的系統中,來自LFSR的每級的輸出可映射到位通道之一。通過利用來自延遲一幀的LFSR的最低有效位的值,可容納附加通道、例如第13個位通道。
圖20說明圖19的置換模式發生器產生的第一狀態模式的一個實例。在這個實例中,幀為12個傳遞長。圖21-22分別說明第二、第三和第四狀態模式。通過在整個幀期間使用各位通道上的相同值,電磁幹擾(EMI或噪聲)可減小。
這裡所述的13位通道×12位傳遞幀是作為實例,本專利的發明原理不限於這些細節,也不限於上述置換模式發生器的具體實施例。例如,根據本專利的發明原理的置換模式發生器不需要採用專用邏輯電路、如上述LFSR來實現。作為選擇,它可採用可編程邏輯、或作為處理器中的算法或者可用來監視和/或實現存儲接口中邏輯或利用置換狀態模式的緩衝器或其它存儲代理的其它功能性的其它可編程狀態機來實現。
本專利的一些附加發明原理涉及利用一個以上位通道來檢測存儲鏈路上是否存在存儲代理。例如,在圖7所示的存儲緩衝器的實施例中,緩衝器可以能夠檢測是否存在耦合到出站鏈路54B的另一個存儲代理。這可通過利用鏈路中的單個位通道測試另一個存儲代理的存在來實現。但是,如果鏈路中存在一個以上位通道,則根據本專利的發明原理,位通道中不止一個可用來檢測另一個存儲代理的存在。這可防止不良位通道的存在幹擾存在檢測操作。
為了方便,涉及利用一個以上位通道來檢測存儲代理的存在的本專利的發明原理將單獨和統一地稱作冗餘存在檢測。冗餘存在檢測可適用於具有與多個位通道的鏈路接口的任何類型的存儲代理。例如,圖13的實施例中所示的發送器118中的任何兩個或兩個以上可看作是鏈路接口,在本例中為發送鏈路接口。同樣,圖13所示的接收器116中的任何兩個或兩個以上可看作是鏈路接口,在本例中為接收鏈路接口。冗餘存在檢測可適用於這些鏈路接口中任一個以及圖17的實施例所示的鏈路接口126和128中任一個。
再回到圖7的實施例作為實例,當存在檢測事件、如重置出現時,存儲緩衝器可將其入站發送鏈路56B上的三個位通道驅動到預定存在檢測邏輯電平、例如一,從而向另一個緩衝器發信號通知其存在。同樣在存在檢測事件中,在信道上位於第一緩衝器的入站處的第二個這種存儲緩衝器可將其入站接收鏈路56A上相應的三個位通道配置成檢測第一緩衝器的存在。在這個實例中,第一存儲緩衝器將稱作外部代理,而第二緩衝器則稱作內部代理。
將位通道配置成檢測另一個代理的存在的技術的一個實例將讓那個位通道的接收器嘗試把偏置電流施加到位通道上,從而迫使該位通道與存在檢測邏輯電平相反。如果另一個存儲代理在存在檢測事件期間耦合到該位通道,則它在那個位通道上的發送器將迫使位通道達到存在檢測邏輯電平。
如果內部代理檢測到三個位通道中的兩個上的存在檢測邏輯電平,則它知道外部代理存在,並且它可讓其外部埠的全部或一部分被啟用。(在這個實例中,外部埠包括用於出站鏈路54B的鏈路接口和用於入站鏈路56A的鏈路接口。)如果內部代理無法檢測到三個位通道中的至少兩個上的存在檢測邏輯電平,則它可判定外部代理不存在,並且它可禁用其外部埠的全部或一部分。內部代理可以能夠響應狀態檢查命令而向另一個代理、例如向存儲控制器報告外部代理是否存在。
利用冗餘存在檢測的代理還可以能夠向另一個代理髮信號通知存在檢測事件。例如,如果重置事件在出站通路上通過重置命令傳遞到圖7的緩衝器,則這個命令可由再驅動電路60轉發給外部代理(若有的話)。這可將兩個代理設置為存在檢測模式。
根據本專利的發明原理的冗餘存在檢測不限於上述具體實施例。例如,只有兩個位通道可用於存在檢測而不是以上實例中的三個,在這種情況下,內部代理只需要檢測單個位通道上的存在檢測邏輯電平以推斷外部代理存在。同樣,冗餘存在檢測可適用於利用其它各種類型的存儲體系結構的系統和組件,例如利用鏈路的環型布置、如RamLink的體系結構。
根據本專利的一些附加發明原理涉及組件從存儲信道中熱插和/或熱拔—即在存儲信道正工作時增加和/或移去組件。圖24說明根據本專利的發明原理的存儲代理134的一個實施例。圖24的實施例可以是存儲模塊、存儲緩衝器、存儲控制器等。代理包括第一埠136和第二埠138。只是為了說明,如果假定代理為存儲模塊、例如圖6的實施例中的模塊52之一,則第一埠可指定為內部埠,因為它可設置成與存儲信道上更接近存儲控制器的其它代理進行通信。同樣,第二埠可指定為外部埠,因為它可設置成與存儲信道上遠離存儲控制器的代理進行通信。這些指定只是用於說明,並且這些發明原理不限於存儲代理的這些細節,也不限於圖6所示的存儲信道的具體情況。這些原理還可適用於其它存儲信道體系結構,如圖1所示的RamLink體系結構。
根據本專利的發明原理的存儲代理的每個埠具有一個或多個鏈路接口。在圖24的實施例中,每個埠具有接收鏈路接口和發送鏈路接口。內部埠136具有可能是屬於再驅動電路60的一部分的一個或多個接收器的接收鏈路接口140以及可能是屬於另一個再驅動電路62的一部分的一個或多個發送器的發送鏈路接口142。外部埠分別具有同樣分別是再驅動電路62、60的組成部分的接收和發送鏈路接口144、146。鏈路接口140、146可分別耦合到出站鏈路54A、54B,以及鏈路接口142、144可分別耦合到入站鏈路56B、56A。鏈路接口的每個可具有一個或多個位通道,以及位通道和接口可採用這個術語的任何組件來表示。例如,接口142中的位通道可表示為入站發送或入站Tx位通道。接口144中的位通道可表示為入站接收或入站Rx位通道。
圖24的實施例僅作為示範,以及存儲代理和埠可按照不同方式來實施。例如,鏈路接口不一定是再驅動電路的組成部分。這種情況在圖17所示的存儲控制器的實施例中說明,其中,埠可包括不屬於再驅動電路的組成部分的鏈路接口126和128。鏈路接口可以僅包括一個或者任何數量的位通道,以及埠可以僅具有一個接收鏈路接口或發送接口。
根據本專利的發明原理的存儲代理可以能夠檢測其埠之一上的另一個存儲代理的存在,並且它可以能夠根據另一個存儲代理是否存在來採取各種動作。例如,圖24的存儲代理可以能夠當另一個存儲代理在其外部埠上不存在時禁用該埠的全部或一部分。它可以能夠通過其內部埠向另一個代理、例如向存儲控制器報告外部代理是否存在。圖24的存儲代理可以能夠執行存在檢測操作,它可包括向外部埠上潛在的外部代理髮信號通知存在檢測事件。它還可以能夠執行快速重置操作。
將在存儲系統的一個示例實施例的上下文中描述根據本專利申請、可幫助熱添加/移去的一些附加發明原理。將在例如圖6的實施例的存儲系統的上下文中,參照圖24的存儲代理來描述該示例實施例。在這個示例實施例中,假定圖24的存儲代理用來實現作為具有存儲裝置的模塊的一部分的圖6的緩衝器的一個或多個。但是,所有這些細節只是用於說明,以及發明原理不限於這些細節。
在示例系統中,存儲代理可以能夠執行快速重置操作、完全重置操作和/或各種輪詢或存在檢測操作。在示例系統中,最小數量的時鐘轉變可能是使各位通道上的導出時鐘保持鎖定到數據流所必需的。因此,存儲控制器(或主控制器)可通過在預定時間周期在出站通路中的位通道中一個或多個上發送一或零的連續流來發起重置操作。由於數據由通路上的各緩衝器再驅動,因此所有緩衝器接收重置命令或事件。在示例系統中,三個最低有效位(LSB)通道可用來發送重置操作的信號。接收代理可通過在三個LSB中任何兩個上檢測零或一的流來檢測重置事件。這可保證一個故障位通道的存在不幹擾重置操作,但甚至不要求多於一個位通道的發明原理不限於這樣一種實現。
在示例系統中,例如在主控制器通過外部條件保持為重置時,主控制器可發送零的連續流,使信道上的所有代理(在這個實例中為具有緩衝器的模塊)無限地保持第一重置狀態。主控制器則可在第一時間量、例如兩個幀周期發送一的流,然後重新發送零,以便發信號通知其它代理執行快速重置操作。或者,主控制器可在第二時間量、例如不止兩個幀周期發送一的流,以便發信號通知其它緩衝器執行完全重置操作。完全重置可包括各種內部校準操作,例如鏈路上的阻抗匹配、任何接收器或驅動電路中的電流源校準、接收器偏移抵消等。在執行校準操作之後,主控制器則可發信號通知緩衝器轉變到快速重置操作。
快速重置操作可繞過完全重置過程中執行的某些操作、如校準操作。快速重置操作可從存在檢測操作開始。在存在檢測操作過程中,信道上的各緩衝器可在三個LSB入站Rx位通道上施加電流,從而迫使這些位在沒有連接到外部代理時為零。另外在存在檢測操作過程中,各緩衝器還可把三個LSB入站Tx位通道驅動到一。每個緩衝器則可檢查其三個LSB入站Rx位通道,以及如果它檢測到三個通道其中兩個上的一,則可讓其外部埠保持啟用,並相應地更新狀態寄存器。如果緩衝器沒有檢測到兩個一,則它可假定沒有外部代理,禁用其外部埠的全部或一部分,將其本身配置成執行信道上最外面的代理的功能,和/或相應地更新狀態寄存器。主控制器可按照類似的存在檢測操作來確定任何代理是否處於信道上。緩衝器可響應來自主控制器的狀態請求而在狀態幀中把狀態信息轉發給主控制器。
在存在檢測操作之後,示例系統中的緩衝器可在快速重置過程中經過其它各種操作,例如訓練緩衝器上的本地時鐘以鎖定到數據流的時鐘訓練狀態、對準信道上發送的幀的幀訓練狀態、檢查所有位通道的操作並在緩衝器具有這種功能時將其設置到故障在線恢復模式的位通道測試等。另外,一旦主控制器知道其它代理連接到信道的方式,它可調整幀大小、定時等,以接納所有代理。
在示例系統中,存儲代理還可以或者備選地能夠執行各種輪詢操作,以便檢測信道上新增代理的存在。例如,各緩衝器在作為確定是否已經向信道添加新代理的最外面緩衝器時可以能夠對其外部埠執行輪詢操作。圖25說明根據本專利的發明原理的這種輪詢操作的一個實施例。
在148,代理可禁用其外部埠的全部或一部分。如果代理是緩衝器或模塊,則可等待來自主控制器的輪詢命令以便轉變到150的熱重置操作。如果代理為主控制器,則它可禁用其外部埠的全部或一部分,並等待來自系統環境的喚醒命令。在接收到喚醒命令時,它可轉到啟用其外部埠的全部或一部分,並轉變到重置狀態。
在150,代理可啟用其外部埠,並把零驅動到三個LSB出站Tx位通道,以便向其外部埠上潛在的新代理髮送重置。代理則可轉變到152的熱校準操作。
在152,代理可把一驅動到三個LSB出站Tx位通道,以便迫使潛在的新代理通過包括校準操作的完全重置,因為新檢測的代理可能需要被校準。然後,代理可轉變到154的熱檢測操作。
在154,代理可將零驅動到三個LSB出站Tx位通道,並且在三個LSB入站Rx位通道上施加偏置電流,從而迫使這些位在沒有連接到外部代理時為零。代理則可檢查三個LSB入站Rx位通道,以及如果它檢測到至少兩個一,則它可在155判定外部代理存在,並轉變到156的熱代理存在操作。否則,代理可在155判定外部代理不存在,並重新轉變到148的睡眠操作。
在156,代理可更新狀態寄存器以表明它已經檢測到外部代理,然後例如響應狀態請求而把這個信息轉發給主控制器,或者採取一些其它動作把信息轉發給主控制器或其它代理。代理也可等待接收信道重置。
主控制器可通過定期狀態請求或其它技術變為知道新檢測的代理,並發起快速重置,以便用信道上的新代理對整個信道重新初始化並適應信道定時。
下面是根據本專利的發明原理的熱增加/移去程序的一些附加實施例。還參照圖6所示的存儲系統的實施例,在採用圖6的存儲系統的更大系統、如具有用戶界面和系統固件的伺服器的上下文中描述這些附加實施例。但是,這些附加實施例所述的發明原理不限於本文所述的具體細節。
根據本專利的發明原理的熱增加程序可在用戶把新代理附加到存儲信道上、例如最外面代理的外部埠上時開始。用戶可通知系統固件已經附加代理。固件則可使電力施加到附加代理上,並通過喚醒命令通知主控制器已經附加代理。主控制器則可向先前的最外面代理髮送輪詢命令,先前的最外面代理則可循環進行例如以上參照圖25所述的輪詢操作。在輪詢操作之後,先前的最外面代理可報告新的外部代理的存在。主控制器則可檢測新代理的存在,並發出快速重置命令以便使新代理投入運行,並對整個信道重新定時。在新代理可工作之後,主控制器可中斷系統固件以報告新代理是可工作的。或者,主控制器可等待系統固件查詢主控制器以確定新代理是否可工作。然後,系統固件可把主控制器配置成適應新代理提供的任何新硬體、如新的存儲裝置,它在代理為存儲模塊或緩衝器時可能存在。
根據本專利的發明原理的熱移去程序可在用戶通知系統要移去存儲信道上的特定代理時開始。系統可從系統圖中消除相應的主控制器地址範圍。如果系統使用鏡像,則系統可能把主控制器地址範圍重新映射到代理鏡像。然後,如果還沒有鏡像,則系統可從主控制器地址範圍中把數據複製或移動到其它位置。系統則可進行輪詢,直到完成所有未決事務。然後,系統可使主控制器向要移走的代理內部的代理髮送命令,使這個代理認為它是信道上最外面的代理,從而使它禁用其外部埠,並在後續快速重置過程中承擔最外面代理的功能。(完全重置將忽略這個命令。)然後,系統可發起快速重置以關閉所選代理以及附加到所選代理的組件的任何信道接口。然後,系統可斷開所選代理的電力,並通知用戶已經移去該代理。
根據本專利的發明原理的熱替換程序可在上述熱移去程序完成時開始。用戶可添加新代理來取代移去的代理,然後通知系統固件已經添加新代理。正運行的系統則可為新替換組件預備主控制器,並向新組件供電。然後,系統固件可使主控制器向先前的最外面代理髮送命令,讓它知道它應當不再認為它是最外面的代理。這可使先前的最外面代理響應下一個重置而啟用其外部埠,並等待輪詢命令。固件則可指示主控制器向先前的最外面代理髮送輪詢命令,先前的最外面代理則可執行例如以上參照圖25所述的輪詢操作,從而初始化新的代理。然後,先前的最外面代理可報告新的外部代理的存在。主控制器則可檢測新代理的存在,並發出快速重置命令以使新代理投入運行,並對整個信道重新定時。在新代理可工作之後,主控制器可中斷系統固件以報告新代理是可工作的。或者,主控制器可等待系統固件查詢主控制器以確定新代理是否可工作。
可在設置和細節方面對本文所述的實施例進行修改,而沒有背離發明原理。因此,這類變更和修改被視作落入以下權利要求的範圍之內。
權利要求
1.一種存儲代理,包括產生狀態模式的模式發生器;其中所述模式發生器能夠置換所述狀態模式。
2.如權利要求1所述的存儲代理,其特徵在於,所述模式發生器能夠產生具有CRC錯誤的狀態模式。
3.如權利要求2所述的存儲代理,其特徵在於,如果所述存儲代理正以故障在線恢復模式工作,所述模式發生器能夠產生沒有CRC錯誤的狀態模式。
4.如權利要求1所述的存儲代理,其特徵在於,所述存儲代理能夠將具有CRC錯誤的狀態模式解釋為狀態模式。
5.如權利要求4所述的存儲代理,其特徵在於,所述存儲代理能夠將沒有CRC錯誤的狀態模式解釋為不同於狀態模式的模式。
6.如權利要求1所述的存儲代理,其特徵在於,所述存儲代理包括存儲緩衝器。
7.如權利要求1所述的存儲代理,其特徵在於,所述存儲代理包括存儲模塊。
8.如權利要求1所述的存儲代理,其特徵在於,所述存儲代理包括存儲控制器。
9.如權利要求1所述的存儲代理,其特徵在於,如果所接收模式匹配所述狀態模式,所述存儲代理能夠重試命令。
10.如權利要求9所述的存儲代理,其特徵在於,如果第二所接收模式匹配所置換狀態模式,所述存儲代理能夠將所述第二所接收模式解釋為狀態模式。
11.如權利要求9所述的存儲代理,其特徵在於,如果第二所接收模式不匹配所置換狀態模式,所述存儲代理能夠將所述第二所接收模式解釋為不同於狀態模式的模式。
12.如權利要求1所述的存儲代理,其特徵在於,所述模式發生器包括專用邏輯電路。
13.如權利要求12所述的存儲代理,其特徵在於,所述專用邏輯電路包括反饋移位寄存器。
14.如權利要求1所述的存儲代理,其特徵在於,所述狀態模式為空閒模式。
15.如權利要求1所述的存儲代理,其特徵在於,所述狀態模式為告警模式。
16.如權利要求1所述的存儲代理,其特徵在於,第一類型的狀態模式是第二類型的狀態模式的互補物。
17.如權利要求16所述的存儲代理,其特徵在於所述第一類型的狀態模式為空閒模式;以及所述第二類型的狀態模式為告警模式。
18.一種系統,包括第一存儲代理;以及通過鏈路耦合到所述第一存儲代理的第二存儲代理;其中所述第一存儲代理能夠在所述鏈路上發送數據模式和狀態模式;其中所述第二存儲代理能夠在所述鏈路上接收數據模式和狀態模式;以及所述第一存儲代理能夠置換所述狀態模式。
19.如權利要求18所述的系統,其特徵在於,所述第二存儲代理能夠解釋所置換的狀態模式。
20.如權利要求19所述的系統,其特徵在於所述第一存儲代理包括存儲模塊;以及所述第二存儲代理包括存儲控制器。
21.如權利要求19所述的系統,其特徵在於所述第一存儲代理包括存儲緩衝器;以及所述第二存儲代理包括存儲控制器。
22.如權利要求19所述的系統,其特徵在於,如果所接收模式匹配狀態模式,所述第二存儲代理能夠重試命令。
23.如權利要求22所述的系統,其特徵在於,如果第二所接收模式匹配所置換狀態模式,所述第二存儲代理能夠將所述第二所接收模式解釋為狀態模式。
24.如權利要求22所述的系統,其特徵在於,如果第二所接收模式不匹配所置換狀態模式,所述第二存儲代理能夠將所述第二所接收模式解釋為數據模式。
25.一種方法,包括在鏈路上從存儲代理髮送數據模式;在所述鏈路上從所述存儲代理髮送狀態模式;以及置換所述狀態模式。
26.如權利要求25所述的方法,其特徵在於,還包括產生具有CRC錯誤的狀態模式。
27.如權利要求26所述的方法,其特徵在於,還包括如果所述存儲代理正以故障在線恢復模式工作,則產生沒有CRC錯誤的狀態模式。
全文摘要
存儲設備及方法利用置換狀態模式。存儲器讀和寫數據與狀態信息在相同鏈路上傳送。為了區分數據與狀態信息,按照預定順序改變狀態模式,即置換。存儲代理可包括能夠產生置換狀態模式的模式發生器。系統可包括在相同鏈路上發送數據和置換狀態模式的第一和第二存儲代理。
文檔編號G06F13/42GK1799039SQ200480014921
公開日2006年7月5日 申請日期2004年5月20日 優先權日2003年6月3日
發明者P·D·福格特, J·S·亞歷山大 申請人:英特爾公司