本公開一般涉及電子領(lǐng)域。更具體地,本發(fā)明的一些實(shí)施例一般涉及例如在基于網(wǎng)絡(luò)的存儲系統(tǒng)中為電子設(shè)備進(jìn)行存儲節(jié)點(diǎn)的基于證據(jù)的故障轉(zhuǎn)移。
背景技術(shù):
在數(shù)據(jù)中心和基于云的部署中,存儲服務(wù)器通常配置有多個(gè)存儲節(jié)點(diǎn),其中之一用作主要存儲節(jié)點(diǎn),并且其中的兩個(gè)或更多個(gè)用作次級存儲節(jié)點(diǎn)。在主要存儲節(jié)點(diǎn)故障的情況下,次要存儲節(jié)點(diǎn)之一承擔(dān)起主要存儲節(jié)點(diǎn)的角色,該過程通常在業(yè)內(nèi)稱作“故障轉(zhuǎn)移”。
一些現(xiàn)有的故障轉(zhuǎn)移過程利用選舉過程來選擇哪個(gè)節(jié)點(diǎn)將承擔(dān)主要節(jié)點(diǎn)的角色。不考慮潛在后繼者的可靠性來執(zhí)行該選舉過程,這可能導(dǎo)致假的后續(xù)故障轉(zhuǎn)移和系統(tǒng)不穩(wěn)定性。
因此,改善存儲服務(wù)器中的故障轉(zhuǎn)移過程的技術(shù)可能是實(shí)用的。
附圖說明
參考附圖提供詳細(xì)描述。在不同附圖中使用相同的附圖標(biāo)記表示類似或相同的項(xiàng)目。
圖1是根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的聯(lián)網(wǎng)環(huán)境的示意性框圖。
圖2是根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的存儲器架構(gòu)的示意性框圖。
圖3是示出根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的架構(gòu)的示意性框圖。
圖4是示出根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的電子設(shè)備的架構(gòu)的示意性框圖。
圖5是示出根據(jù)本文討論的各種實(shí)施例實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的方法的操作的流程圖。
圖6-10是根據(jù)本文討論的各種實(shí)施例可以適于實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的電子設(shè)備的示意性框圖。
具體實(shí)施方式
在后續(xù)描述中,闡述了多個(gè)具體細(xì)節(jié)以便提供對各種實(shí)施例的透徹理解。然而,可以在沒有特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明的各種實(shí)施例。在其它實(shí)例中,并未詳細(xì)描述已知的方法、過程、部件和電路,以免模糊本發(fā)明的特定實(shí)施例。此外,可以利用各種單元,例如,集成半導(dǎo)體電路(“硬件”)、組織為一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀指令(“軟件”)或者硬件和軟件的一些組合,來執(zhí)行本發(fā)明的實(shí)施例的各個(gè)方面。出于本公開的目的,提及“邏輯”將表示硬件、軟件或者其一些組合。
圖1是根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的聯(lián)網(wǎng)環(huán)境的示意性框圖。參考圖1,電子設(shè)備110可以經(jīng)由網(wǎng)絡(luò)140耦合到一個(gè)或多個(gè)存儲節(jié)點(diǎn)130、132、134。在一些實(shí)施例中,電子設(shè)備110可以實(shí)現(xiàn)為移動(dòng)電話、平板計(jì)算機(jī)、PDA或其它移動(dòng)計(jì)算設(shè)備,如參考電子設(shè)備110在下文所描述的。網(wǎng)絡(luò)140可以實(shí)現(xiàn)為公共通信網(wǎng)絡(luò),例如,互聯(lián)網(wǎng),或者作為私有通信網(wǎng)絡(luò)或者其組合。
存儲節(jié)點(diǎn)130、132、134可以實(shí)現(xiàn)為基于計(jì)算機(jī)的存儲系統(tǒng)。圖2是可以用于實(shí)現(xiàn)存儲節(jié)點(diǎn)130、132或134的基于計(jì)算機(jī)的存儲系統(tǒng)200的示意性圖示。在一些實(shí)施例中,系統(tǒng)200包括計(jì)算設(shè)備208以及一個(gè)或多個(gè)伴隨輸入/輸出設(shè)備,包括具有屏幕204的顯示器202、一個(gè)或多個(gè)揚(yáng)聲器206、鍵盤210、一個(gè)或多個(gè)其它I/O設(shè)備212、以及鼠標(biāo)214。其它I/O設(shè)備212可以包括觸摸屏、語音激活輸入設(shè)備、軌跡球、以及允許系統(tǒng)200從用戶接收輸入的任意其它設(shè)備。
計(jì)算設(shè)備208包括系統(tǒng)硬件220和存儲器230,其可以實(shí)現(xiàn)為隨機(jī)訪問存儲器和/或只讀存儲器。文件存儲280可以通信地耦合到計(jì)算設(shè)備208。文件存儲280可以在計(jì)算設(shè)備208的內(nèi)部,例如,一個(gè)或多個(gè)硬驅(qū)動(dòng)、CD-ROM驅(qū)動(dòng)、DVD-ROM驅(qū)動(dòng)、或其它類型的存儲設(shè)備。文件存儲280還可以是計(jì)算機(jī)208外部的,例如,一個(gè)或多個(gè)外部硬驅(qū)動(dòng)、網(wǎng)絡(luò)附接存儲設(shè)備、或單獨(dú)的存儲網(wǎng)絡(luò)。
系統(tǒng)硬件220可以包括一個(gè)或多個(gè)處理器222、視頻控制器224、網(wǎng)絡(luò)接口226以及總線結(jié)構(gòu)228。在一個(gè)實(shí)施例中,處理器222可以實(shí)現(xiàn)為從Intel Corporation,Santa Clara,California,USA獲得的Pentium處理器、或者Intel處理器。如本文使用的,術(shù)語“處理器”表示任意類型的計(jì)算元件,例如但不限于,微處理器、微控制器、復(fù)雜指令集計(jì)算(CISC)微處理器、精簡指令集(RISC)微處理器、超長指令字(VLIW)微處理器、或任意其它類型的處理器或處理電路。
圖形控制器224可以用作添加處理器,其管理圖形和/或視頻操作。圖形控制器224可以集成到計(jì)算系統(tǒng)200的母板上或者經(jīng)由擴(kuò)展槽耦合到母板上。
在一個(gè)實(shí)施例中,網(wǎng)絡(luò)接口226可以是有線接口,例如以太網(wǎng)接口(例如,參見,Institute of Electrical and Electronics Engineers/IEEE 802.3-2002)或者是無線接口,例如IEEE 802.11a、b或g兼容接口(例如,參見,IEEE Standard for IT-Telecommunications and information exchange between systems LAN/MAN—Part II:Wireless LAN Medium Access Control(MAC)and Physical Layer(PHY)specifications Amendment 4:Further Higher Data Rate Extension in the 2.4GHz Band,802.11G-2003)。
總線結(jié)構(gòu)228連接系統(tǒng)硬件228的各種部件。在一個(gè)實(shí)施例中,總線結(jié)構(gòu)228可以是若干類型的總線結(jié)構(gòu)中的一個(gè)或多個(gè),包括存儲器總線、外圍總線或外部總線和/或本地總線,其使用任意多種可用總線架構(gòu),包括但不限于,11-位總線、工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)、微通道架構(gòu)(MSA)、擴(kuò)展ISA(EISA)、智能驅(qū)動(dòng)電子件(IDE)、VESA本地總線(VLB)、外圍部件互聯(lián)(PCI)、通用串行總線(USB)、高級圖形端口(AGP)、個(gè)人計(jì)算機(jī)存儲器卡國際協(xié)會總線(PCMCIA)以及小型計(jì)算機(jī)系統(tǒng)接口(SCSI)。
存儲器230可以包括操作系統(tǒng)240,用于管理計(jì)算設(shè)備208的操作。存儲器230可以包括可靠性寄存器232,其可以用于存儲在電子設(shè)備200操作期間收集到的可靠性信息。在一個(gè)實(shí)施例中,操作系統(tǒng)240包括硬件接口模塊254,其向系統(tǒng)硬件220提供接口。另外,操作系統(tǒng)240可以包括管理在計(jì)算設(shè)備208的操作中使用的文件的文件系統(tǒng)250以及管理在計(jì)算設(shè)備208上執(zhí)行的過程的過程控制子系統(tǒng)252。
操作系統(tǒng)240可以包括(或管理)一個(gè)或多個(gè)通信接口,其可以結(jié)合系統(tǒng)硬件220操作以從遠(yuǎn)程源收發(fā)數(shù)據(jù)分組和/或數(shù)據(jù)流。操作系統(tǒng)240還可以包括系統(tǒng)調(diào)用接口模塊242,其提供在操作系統(tǒng)240和駐留在存儲器230中的一個(gè)或多個(gè)應(yīng)用模塊之間的接口。操作系統(tǒng)240可以實(shí)現(xiàn)為UNIX操作系統(tǒng)或任意其衍生物(例如,Linux、Solaris等)或?qū)崿F(xiàn)為商標(biāo)操作系統(tǒng)、或者其它操作系統(tǒng)。
圖3是示出根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的架構(gòu)的示意性框圖。在一些例子中,存儲節(jié)點(diǎn)可以被劃分為主要存儲節(jié)點(diǎn)和兩個(gè)或更多次級存儲節(jié)點(diǎn)。在圖3中描繪的例子中,存儲節(jié)點(diǎn)被劃分為主要存儲節(jié)點(diǎn)310和兩個(gè)次級存儲節(jié)點(diǎn)312、314。在操作中,在主要節(jié)點(diǎn)310中接收來自主機(jī)設(shè)備的寫入操作。然后從主要節(jié)點(diǎn)310將寫入操作復(fù)制到次級節(jié)點(diǎn)312、314。本領(lǐng)域技術(shù)人員將理解的是,可以添加額外的次級節(jié)點(diǎn)。在圖3中描繪的例子描繪了兩個(gè)額外的次級節(jié)點(diǎn)316、318。
在一些例子中,一個(gè)或多個(gè)存儲節(jié)點(diǎn)130、132、134可以并入一個(gè)或多個(gè)可靠性監(jiān)視器,其從存儲節(jié)點(diǎn)中的存儲設(shè)備的至少一個(gè)部件(例如,磁盤驅(qū)動(dòng)、固態(tài)驅(qū)動(dòng)、RAID陣列、雙列直插式存儲器模塊(DIMM)等)處接收可靠性信息,以及可靠性監(jiān)視引擎,其接收由可靠性監(jiān)視器收集到的可靠性信息并根據(jù)可靠性信息為存儲節(jié)點(diǎn)130、132、134生成一個(gè)或多個(gè)可靠性指示符??煽啃灾甘痉缓罂梢员徊⑷氲竭x舉過程用于故障轉(zhuǎn)移例程。
圖4是示出根據(jù)本文討論的各種例子可以實(shí)現(xiàn)基于證據(jù)替代存儲節(jié)點(diǎn)的電子設(shè)備的架構(gòu)的示意性框圖。參考圖4,在一些實(shí)施例中,中央處理單元(CPU)封裝400可以包括一個(gè)或多個(gè)處理器410,其耦合到控制中心420和本地存儲器430。控制中心420包括存儲器控制器422和存儲器接口424。本地存儲器430可以包括類似于寄存器232的可靠性寄存器432,其可以用于存儲在電子設(shè)備400的操作期間收集到的可靠性信息。在一些例子中,可靠性寄存器可以實(shí)現(xiàn)在非易失性硬件寄存器中。
存儲器接口424通過通信總線460耦合到遠(yuǎn)程存儲器440。在一些例子中,通信總線460可以實(shí)現(xiàn)為印刷電路板、具有銅線的電纜、光纖電纜、連接插座或上述組合上的跡線。存儲器440可以包括控制器442以及一個(gè)或多個(gè)存儲器設(shè)備450。在各種實(shí)施例中,可以利用易失性存儲器(例如,靜態(tài)隨機(jī)存取存儲器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲器(DRAM))、非易失存儲器或非易失性存儲器(例如,相變存儲器、NAND(閃速)存儲器、鐵電隨機(jī)存取存儲器(FeRAM)、基于納米線的非易失性存儲器、并入憶阻器技術(shù)的存儲器、三維(3D)交叉點(diǎn)存儲器(例如,相變存儲器(PCM))、自旋轉(zhuǎn)移力矩存儲器(STT-RAM)或NAND閃速存儲器)實(shí)現(xiàn)至少一些存儲器列450。在存儲器440中的存儲器設(shè)備450的具體配置不重要。
在圖4描繪的例子中,可靠性監(jiān)視器(RM)邏輯446被并入到控制器446中。類似地,可靠性監(jiān)視引擎(RME)邏輯412被并入到處理器410中。在操作中,可靠性監(jiān)視器446和可靠性監(jiān)視引擎412合作以從電子設(shè)備的各種部件處收集可靠性信息,并為電子設(shè)備生成至少一個(gè)可靠性指示符。
將結(jié)合圖4和圖5描述用于電子設(shè)備的基于證據(jù)選舉替換存儲節(jié)點(diǎn)的方法的一個(gè)例子。參考圖5,在操作510處,一個(gè)或多個(gè)可靠性監(jiān)視器446可以收集可靠性信息,包括但不限于存儲設(shè)備的故障計(jì)數(shù)(或故障率)或者存儲設(shè)備的故障計(jì)數(shù)(或故障率)。如本文使用的,術(shù)語“錯(cuò)誤”指的是存儲設(shè)備的任意類型的錯(cuò)誤事件,包括在存儲設(shè)備的存儲器中的讀取或?qū)懭脲e(cuò)誤或者在存儲設(shè)備的部件中的硬件錯(cuò)誤。術(shù)語“故障”指的是影響存儲設(shè)備的正確功能的錯(cuò)誤。
可靠性監(jiān)視器446還可以收集屬于存儲設(shè)備在渦輪模式花費(fèi)的時(shí)間量或存儲設(shè)備在空閑模式花費(fèi)的時(shí)間量的信息。如本文使用的,短語“渦輪模式”指的是這樣的操作模式:當(dāng)存在可用電力并且可用的足夠熱余量(headroom)來支持操作速度的增加時(shí),設(shè)備增加電壓和/或操作頻率。相比之下,短語“空閑模式”指的是這樣的操作模式:在未使用存儲設(shè)備的時(shí)間段期間,降低電壓和/或操作速度。
可靠性監(jiān)視器446還收集屬于存儲設(shè)備的電壓信息的信息。例如,可靠性監(jiān)視器446可以收集在高電壓(即,Vmax)處花費(fèi)的時(shí)間量、在低電壓(Vmin)處花費(fèi)的時(shí)間量、以及電壓偏移(例如,隨著時(shí)間變化電流改變(dI/dT)事件)、電壓柱狀圖、預(yù)定時(shí)間段的平均電壓等。
可靠性監(jiān)視器446還收集存儲設(shè)備的溫度信息。溫度信息的例子可以包括最大溫度、最小溫度、以及特定時(shí)間段的平均溫度、溫度周期信息(例如,非常短的時(shí)間段的min/max和平均溫度)。超過特定閾值的溫度差別可以是熱應(yīng)力的指示符。
在其它例子中,可以使用來自機(jī)器檢查寄存器的、用于記錄來自所有芯片的校正后的和未校正的錯(cuò)誤信息的信息來確定系統(tǒng)是否經(jīng)歷高頻的校正或未校正錯(cuò)誤,作為可靠性問題的另一可能指示。存儲設(shè)備的校正和未校正錯(cuò)誤信息可以包括錯(cuò)誤校正代碼(ECC)校正的/未校正的錯(cuò)誤、在固態(tài)驅(qū)動(dòng)(SSD)上檢測到的錯(cuò)誤、循環(huán)冗余代碼(CRC)校驗(yàn)等。
在其它例子中,電壓/熱傳感器可以用于監(jiān)視電壓下降,即,在驅(qū)動(dòng)負(fù)載時(shí)輸出電壓的下降。電壓下降現(xiàn)象能夠?qū)е露〞r(shí)延遲以及可能導(dǎo)致功能故障/不正確輸出(即,錯(cuò)誤)的速度路徑。電路被設(shè)計(jì)為考慮特定量的下降,并且健壯的電路和功率輸送系統(tǒng)減輕或忍受特定量的下降。然而,特定數(shù)據(jù)模式或同時(shí)或并發(fā)活動(dòng)的模式可以創(chuàng)建下降事件超過設(shè)計(jì)的耐受水平并導(dǎo)致問題。監(jiān)視下降事件特性(例如,幅度和持續(xù)時(shí)間)可以給予與部件的可靠性相關(guān)的信息。
在操作515處,通過可靠性監(jiān)視器446收集到的可靠性數(shù)據(jù)例如經(jīng)由通信總線460被轉(zhuǎn)發(fā)到可靠性監(jiān)視引擎412。
在操作520處,可靠性監(jiān)視引擎412從可靠性監(jiān)視器446處接收可靠性數(shù)據(jù);并且在操作525處,將所述數(shù)據(jù)存儲在存儲器中,例如,在本地存儲器430中。
在操作530處,可靠性監(jiān)視引擎412利用從可靠性監(jiān)視器446接收到的可靠性信息生成存儲設(shè)備的一個(gè)或多個(gè)可靠性指示符。在一些例子中,可靠性監(jiān)視引擎412可以將權(quán)重因子應(yīng)用于可靠性信息的一個(gè)或多個(gè)元素上。例如,可以對錯(cuò)誤事件分配比故障事件高的權(quán)重??蛇x地,在操作535處,可靠性監(jiān)視引擎412可以使用可靠性存儲預(yù)測存儲設(shè)備130、132、134的故障的可能性。
在操作540處,針對故障轉(zhuǎn)移例程,在選舉過程中使用一個(gè)或多個(gè)可靠性指示符。例如,參考圖3,在一些例子中,可靠性指示符可以在節(jié)點(diǎn)之間交換,或者可以與遠(yuǎn)程設(shè)備(例如,服務(wù)器)共享。在主要節(jié)點(diǎn)310離線或者變?yōu)榇渭壒?jié)點(diǎn)的故障轉(zhuǎn)移過程期間,可以在選舉過程中使用可靠性指示符來確定次級節(jié)點(diǎn)312、314、316、318中的哪個(gè)將承擔(dān)主要節(jié)點(diǎn)的角色。
因?yàn)樵S多可靠性數(shù)據(jù)隨著時(shí)間累積,所以單個(gè)故障或甚至實(shí)際檢測硬件中的周期可靠性問題將不會實(shí)質(zhì)地影響部件的最終積累評估。而是,這種問題可以顯示為各種可靠性檢測機(jī)構(gòu)中的異常。選擇算法可以使用來自這些源中的每個(gè)的評估的組合來確定最可靠的系統(tǒng)。可以以復(fù)雜的方式進(jìn)行該組合,考慮異常的幅度以及觀察到的問題的頻率、退化趨勢的滯后等,或者可以簡單地是基于關(guān)于應(yīng)該將哪些可靠性問題視為比其它的嚴(yán)重的系統(tǒng)默認(rèn)或用戶偏好加權(quán)的最近累積的行為的加權(quán)平均。
在一些例子中,每個(gè)次級節(jié)點(diǎn)312、314、316、318可以查詢來自所有其它次級節(jié)點(diǎn)312、314、316、318的可靠性信息,并獨(dú)立地確定可用的最可靠的次級節(jié)點(diǎn)312、314、316、318。只要該算法在每個(gè)次級節(jié)點(diǎn)312、314、316、318上相同,則每個(gè)次級節(jié)點(diǎn)312、314、316、318應(yīng)該獨(dú)立選擇相同的次級節(jié)點(diǎn)312、314、316、318作為選擇用于承擔(dān)新的主要節(jié)點(diǎn)的角色的最佳的、最可靠的候選。在任意一個(gè)次級節(jié)點(diǎn)312、314、316、318上的選舉算法中錯(cuò)誤或故障的情況下,可以采用多數(shù)表決方案,從而通過池中的大多數(shù)選擇的次級節(jié)點(diǎn)312、314、316、318作為最可靠的,其將是被選作新的主要節(jié)點(diǎn)。
如上所述,在一些實(shí)施例中,電子設(shè)備可以實(shí)現(xiàn)為計(jì)算機(jī)系統(tǒng)。圖6示出了根據(jù)本發(fā)明實(shí)施例的計(jì)算系統(tǒng)600的框圖。計(jì)算系統(tǒng)600可以包括一個(gè)或多個(gè)中央處理單元(CPU)602或處理器,其經(jīng)由互連網(wǎng)絡(luò)(或總線)604進(jìn)行通信。處理器602可以包括通用處理器、網(wǎng)絡(luò)處理器(其處理通過計(jì)算機(jī)網(wǎng)絡(luò)603通信的存儲)、或其它類型的處理器(包括精簡指令集計(jì)算機(jī)(RISC)處理器或復(fù)雜指令集計(jì)算機(jī)(CISC))。此外,處理器602可以具有單個(gè)或多個(gè)核心設(shè)計(jì)。具有多個(gè)核心設(shè)計(jì)的處理器602可以在相同集成電路(IC)管芯上集成不同類型的處理器核心。并且,具有多個(gè)核心設(shè)計(jì)的處理器602可以實(shí)現(xiàn)為對稱或非對稱多處理器。在實(shí)施例中,一個(gè)或多個(gè)處理器602可以與圖1的處理器102相同或類似。例如,一個(gè)或多個(gè)處理器602可以包括控制單元120,如結(jié)合圖1-3討論的。另外,可以通過系統(tǒng)600的一個(gè)或多個(gè)部件執(zhí)行結(jié)合圖3-5討論的操作。
芯片組606還可以與互連網(wǎng)絡(luò)604通信。芯片組606可以包括存儲器控制中心(MCH)608。MCH 608可以包括存儲器控制器610,其與存儲器612(其與圖1的存儲器130類似或相同)進(jìn)行通信。存儲器412可以存儲可以由CPU 602或計(jì)算系統(tǒng)600中包含的任意其它設(shè)備執(zhí)行的數(shù)據(jù)(包括指令序列)。在本發(fā)明的一個(gè)實(shí)施例中,存儲器612可以包括一個(gè)或多個(gè)易失性存儲(或存儲器)設(shè)備,例如,隨機(jī)存取存儲器(RAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM(SDRAM)、靜態(tài)RAM(SRAM)或其它類型的存儲設(shè)備。還可以使用非易失性存儲器,例如,硬盤或固態(tài)驅(qū)動(dòng)(SSD)。額外的設(shè)備可以經(jīng)由互聯(lián)網(wǎng)絡(luò)604通信,例如,多個(gè)CPU和/或多個(gè)系統(tǒng)存儲器。
MCH 608還可以包括圖形接口614,其與顯示設(shè)備616通信。在本發(fā)明的一個(gè)實(shí)施例中,圖形接口614可以經(jīng)由加速圖形端口(AGP)與顯示設(shè)備616通信。在本發(fā)明的實(shí)施例中,顯示器616(例如,平板顯示器)可以與圖形接口614例如通過單個(gè)轉(zhuǎn)換器進(jìn)行通信,所述單個(gè)轉(zhuǎn)換器可以將存儲于存儲設(shè)備(例如,視頻存儲器或系統(tǒng)存儲器)中的圖像的數(shù)字表示轉(zhuǎn)換為由顯示器616解釋和顯示的顯示信號。由顯示設(shè)備產(chǎn)生的顯示信號可以在被顯示器616解釋并隨后顯示在顯示器616上之前經(jīng)過各種控制設(shè)備。
中心接口618可以允許MCH 608和輸入/輸出控制中心(ICH)620進(jìn)行通信。ICH 620可以向I/O設(shè)備提供與計(jì)算系統(tǒng)600通信的接口。ICH 620可以通過外圍橋(或控制器)624與總線622進(jìn)行通信,所述外圍橋624例如是外圍部件互聯(lián)(PCI)橋、通用串行總線(USB)控制器、或者其它類型的外圍橋或控制器。橋624可以在CPU 602和外圍設(shè)備之間提供數(shù)據(jù)路徑??梢允褂闷渌愋偷耐?fù)洹A硗?,多個(gè)總線可以例如通過多個(gè)橋或控制器與ICH 620通信。此外,在本發(fā)明的各個(gè)實(shí)施例中,與ICH 620通信的其它外圍部件可以包括集成驅(qū)動(dòng)電子件(IDE)或小型計(jì)算機(jī)系統(tǒng)接口(SCSI)硬驅(qū)動(dòng)、USB端口、鍵盤、鼠標(biāo)、并行端口、串行端口、軟盤驅(qū)動(dòng)、數(shù)字輸出支持(例如,數(shù)字視頻接口(DVI))或其它設(shè)備。
總線622可以與音頻設(shè)備626、一個(gè)或多個(gè)磁盤驅(qū)動(dòng)628以及網(wǎng)絡(luò)接口設(shè)備630(其與計(jì)算機(jī)網(wǎng)絡(luò)603通信)進(jìn)行通信。其它設(shè)備可以經(jīng)由總線622進(jìn)行通信。另外,在本發(fā)明的一些實(shí)施例中,各種部件(例如,網(wǎng)絡(luò)接口設(shè)備630)可以與MCH 608進(jìn)行通信。此外,處理器602和本文討論的一個(gè)或多個(gè)其它部件可以組合以形成單個(gè)芯片(例如,以提供片上系統(tǒng)(SOC))。此外,在本發(fā)明的其它實(shí)施例中,圖形加速器616可以包含于MCH 608中。
此外,計(jì)算系統(tǒng)600可以包括易失性和/或非易失性存儲器(或存儲設(shè)備)。例如,非易失性存儲器可以包括以下中的一個(gè)或多個(gè):只讀存儲器(ROM)、可編程ROM(PROM)、可擦除PROM(EPROM)、電EPROM(EEPROM)、磁盤驅(qū)動(dòng)(例如,628)、軟盤、壓縮盤ROM(CD-ROM)、數(shù)字通用盤(DVD)、閃存、磁光盤、或能夠存儲電子存儲(例如,包括指令)的其它類型的非易失性機(jī)器可讀介質(zhì)。
圖7示出了根據(jù)本發(fā)明實(shí)施例的計(jì)算系統(tǒng)700的框圖。系統(tǒng)700可以包括一個(gè)或多個(gè)處理器702-1到702-N(一般在本文中稱作“多個(gè)處理器702”或“處理器702”)。處理器702可以經(jīng)由互連網(wǎng)絡(luò)或總線704進(jìn)行通信。每個(gè)處理器可以包括各種部件,為了清晰起見其中一些部件僅結(jié)合處理器702-1進(jìn)行討論。因此,每個(gè)剩余的處理器702-2到702-N可以包括結(jié)合處理器702-1討論的相同或類似部件。
在實(shí)施例中,處理器702-1可以包括一個(gè)或多個(gè)處理器核心706-1到706-M(在本文稱作“多個(gè)核心706”或更一般地稱作“核心706”)、共享高速緩存708、路由器710和/或處理器控制邏輯或單元720。處理器核心706可以實(shí)現(xiàn)于單個(gè)集成電路(IC)芯片上。此外,芯片可以包括一個(gè)或多個(gè)共享和/或私有高速緩存(例如,高速緩存708)、總線或互連(例如,總線或互連網(wǎng)絡(luò)712)、存儲器控制器或其它部件。
在一個(gè)實(shí)施例中,路由器710可以用于在處理器702-1和/或系統(tǒng)700的各個(gè)部件之間進(jìn)行通信。此外,處理器702-1可以包括多于一個(gè)路由器710。此外,多個(gè)路由器710可以進(jìn)行通信以支持在處理器702-1內(nèi)或外的各個(gè)部件之間的數(shù)據(jù)路由。
共享高速緩存708可以存儲由處理器702-1的一個(gè)或多個(gè)部件(例如,核心706)使用的數(shù)據(jù)(例如,包括指令)。例如,共享高速緩存708可以本地緩存存儲于存儲器714的數(shù)據(jù)用于由處理器702的部件進(jìn)行更快的訪問。在實(shí)施例子中,高速緩存708可以包括中級高速緩存(例如,級別2(L2)、級別3(L3)、級別4(L4)或其它級別的高速緩存)、最后一級高速緩存(LLC)和/或其組合。此外,處理器702-1的各種部件可以直接、通過總線(例如,總線712)和/或存儲器控制器或中心與共享高速緩存708進(jìn)行通信。如圖7所示,在一些實(shí)施例中,一個(gè)或多個(gè)核心706可以包括級別1(L1)高速緩存716-1(通常在本文中稱作“L1高速緩存716”)。在一個(gè)實(shí)施例中,控制單元720可以包括用于實(shí)現(xiàn)結(jié)合圖2中的存儲器控制器122在上面描述的操作的邏輯。
圖8示出了根據(jù)本發(fā)明的實(shí)施例的計(jì)算系統(tǒng)的處理器核心706和其它部件的部分的框圖。在一個(gè)實(shí)施例中,在圖8中示出的箭頭示出了通過核心706的指示的流方向。一個(gè)或多個(gè)處理器核心(例如,處理器核心706)可以實(shí)現(xiàn)在單個(gè)集成電路芯片(或管芯)上,例如結(jié)合圖7所描述的。此外,芯片可以包括一個(gè)或多個(gè)共享和/或私有高速緩存(例如,圖7的高速緩存708)、互連(例如,圖7的互連704和/或112)、控制單元、存儲器控制器、或其它部件。
如圖8所示,處理器核心706可以包括取得單元802以取得用于由核心706執(zhí)行的指令(包括具有條件分支的指令)??梢詮娜我獯鎯υO(shè)備(例如,存儲器714)取得指令。核心706還可以包括解碼單元804來對取得的指令進(jìn)行解碼。例如,解碼單元804可以將取得的指令解碼為多個(gè)uop(微操作)。
另外,核心706可以包括調(diào)度單元806。調(diào)度單元806可以執(zhí)行與存儲解碼指令(例如,從解碼單元804接收到的)相關(guān)聯(lián)的各種操作,直到指令準(zhǔn)備好用于派遣,例如,直到解碼指令的所有源值變得可用。在一個(gè)實(shí)施例中,調(diào)度單元806可以調(diào)度和/或發(fā)布(或派遣)解碼指令到執(zhí)行單元808用于執(zhí)行。執(zhí)行單元808可以在指令被(例如解碼單元804)解碼和(例如由調(diào)度單元806)派遣之后執(zhí)行派遣的指令。在實(shí)施例中,執(zhí)行單元808可以包括多于一個(gè)執(zhí)行單元。執(zhí)行單元808還可以執(zhí)行各種算法運(yùn)算,例如,加、減、乘和/或除,并可以包括一個(gè)或多個(gè)算法邏輯單元(ALU)。在實(shí)施例中,協(xié)處理器(未示出)可以結(jié)合執(zhí)行單元808執(zhí)行各種算法運(yùn)算。
此外,執(zhí)行單元808可以無序執(zhí)行指令。因此,在一個(gè)實(shí)施例中,處理器核心706可以是無序處理器核心。核心706還可以包括引退單元810。引退單元810可以在提交了指令之后將執(zhí)行的指令引退。在實(shí)施例中,引退執(zhí)行的指令可能導(dǎo)致處理器狀態(tài)從指令的執(zhí)行提交、指令使用的物理寄存器被解除分配等。
核心706還可以包括總線單元714,以支持經(jīng)由一個(gè)或多個(gè)總線(例如,總線804和/或812)在處理器核心706的部件和其它部件(例如,結(jié)合圖8所討論的部件)之間的通信。核心706還可以包括一個(gè)或多個(gè)寄存器816,以存儲通過核心706的各種部件訪問的數(shù)據(jù)(例如,與功率消耗狀態(tài)設(shè)置相關(guān)的值)。
此外,即使圖7示出控制單元720經(jīng)由互連812耦合到核心706,在各種實(shí)施例中,控制單元720可以位于其它地方,例如,在核心706內(nèi)部、經(jīng)由總線704耦合到核心等。
在一些實(shí)施例中,本文討論的一個(gè)或多個(gè)部件可以實(shí)現(xiàn)為片上系統(tǒng)(SOC)設(shè)備。圖9示出了根據(jù)實(shí)施例的SOC封裝的框圖。如圖9所示,SOC 902包括一個(gè)或多個(gè)中央處理單元(CPU)核心920、一個(gè)或多個(gè)圖形處理器單元(GPU)核心930、輸入/輸出(I/O)接口940以及存儲器控制器942。SOC封裝902的各種部件可以耦合到互連或總線上,例如結(jié)合其它圖在本文中討論的。另外,SOC封裝902可以包括更多或更少的部件,例如在本文中結(jié)合其它附圖討論的。此外,SOC封裝902的每個(gè)部件可以包括一個(gè)或多個(gè)其它部件,例如,如在本文中結(jié)合其它附圖討論的。在一個(gè)實(shí)施例中,在一個(gè)或多個(gè)集成電路(IC)管芯上設(shè)置SOC封裝902(及其部件),例如,其被封裝到單個(gè)半導(dǎo)體設(shè)備中。
如圖9所示,SOC封裝902經(jīng)由存儲器控制器942耦合到存儲器960上(其可以與結(jié)合其它附圖在本文中討論的存儲器相同或類似)。在實(shí)施例中,存儲器960(或其一部分)可以集成到SOC封裝902上。
I/O接口940例如可以經(jīng)由在本文中結(jié)合其它附圖討論的互連和/或總線耦合到一個(gè)或多個(gè)I/O設(shè)備970上。I/O設(shè)備970可以包括一個(gè)或多個(gè)鍵盤、鼠標(biāo)、觸摸板、顯示器、圖像/視頻捕捉設(shè)備(例如,攝像機(jī)或攝錄像機(jī)/視頻記錄器)、觸摸屏、揚(yáng)聲器等。
圖10示出了根據(jù)本發(fā)明的實(shí)施例在點(diǎn)對點(diǎn)(PtP)配置中布置的計(jì)算系統(tǒng)1000。特別地,圖10示出了通過多個(gè)點(diǎn)對點(diǎn)接口互連處理器、存儲器和輸入/輸出設(shè)備的系統(tǒng)。可以通過系統(tǒng)1000的一個(gè)或多個(gè)部件執(zhí)行結(jié)合圖2討論的操作。
如圖10所示,系統(tǒng)1000可以包括若干處理器,為了清晰起見只示出了兩個(gè)處理器—處理器1002和1004。處理器1002和1004中的每個(gè)可以包括本地存儲器控制器中心(MCH)1006和1008,以支持與存儲器1010和1012的通信。在一些實(shí)施例中,MCH 1006和1008可以包括圖1的存儲器控制器120和/或邏輯125。
在實(shí)施例中,處理器1002和1004可以是結(jié)合圖7討論的處理器702之一。處理器1002和1004可以經(jīng)由點(diǎn)對點(diǎn)(PtP)接口1014分別利用PtP接口電路1016和1018交換數(shù)據(jù)。另外,處理器1002和1004中的每個(gè)可以經(jīng)由單獨(dú)的PtP接口1022和1024利用點(diǎn)對點(diǎn)接口電路1026、1028、1030和1032與芯片組1020交換數(shù)據(jù)。芯片組1020還可以經(jīng)由高性能圖形接口1036例如利用PtP接口電路1037與高性能圖形電路1034交換數(shù)據(jù)。
如圖10所示,圖1的一個(gè)或多個(gè)核心106和/或高速緩存108可以位于處理器902和904中。然而,本發(fā)明的其它實(shí)施例可以存在于圖9的系統(tǒng)900內(nèi)的其它電路、邏輯單元或設(shè)備中。此外,本發(fā)明的其它實(shí)施例可以分布遍及圖9所示的若干電路、邏輯單元或設(shè)備中。
芯片組920可以使用PtP接口電路941與總線940進(jìn)行通信。總線940可以具有與其通信的一個(gè)或多個(gè)設(shè)備,例如總線橋942和I/O設(shè)備943。經(jīng)由總線944,總線橋943可以與其它設(shè)備進(jìn)行通信,所述其它設(shè)備例如是鍵盤/鼠標(biāo)945、通信設(shè)備946(例如,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口設(shè)備、或可以與計(jì)算機(jī)網(wǎng)絡(luò)803通信的其它通信設(shè)備)、音頻I/O設(shè)備、和/或存儲設(shè)備948。存儲設(shè)備948(其可以是硬盤驅(qū)動(dòng)或基于NAND閃速的固態(tài)驅(qū)動(dòng))可以存儲可以由處理器902和/或904執(zhí)行的代碼949。
后續(xù)例子屬于其它實(shí)施例。
例子1是一種包括邏輯的控制器,其至少部分地包括硬件邏輯,被配置為:從耦合到控制器的存儲設(shè)備的至少一個(gè)部件接收可靠性信息;在通信地耦合到控制器上的存儲器中存儲可靠性信息;生成用于存儲設(shè)備的至少一個(gè)可靠性指示符;以及將所述可靠性指示符轉(zhuǎn)發(fā)到選舉模塊。
在例子2中,例子1的主題可以可選地包括以下布置:其中,所述可靠性信息包括以下中的至少一個(gè):用于存儲設(shè)備的故障計(jì)數(shù);用于存儲設(shè)備的故障率;用于存儲設(shè)備的錯(cuò)誤率;存儲設(shè)備在渦輪模式中花費(fèi)的時(shí)間量;存儲設(shè)備在空閑模式中花費(fèi)的時(shí)間量;用于存儲設(shè)備的電壓信息;或者用于存儲設(shè)備的溫度信息。
在例子3中,例子1-2中任一個(gè)的主題可以可選地包括以下布置:其中,生成用于存儲設(shè)備的可靠性指示符的邏輯還包括用于以下的邏輯:向可靠性信息施加加權(quán)因子。
在例子4中,例子1-3中任一項(xiàng)的主題可以可選的包括用于基于所述可靠性信息預(yù)測故障的可能性的邏輯。
在例子5中,例子1-4中任一項(xiàng)的主題可以可選地包括以下布置:其中,所述選舉模塊包括用于以下的邏輯:接收所述可靠性指示符;以及在選舉過程中使用所述可靠性指示符來從多個(gè)次級存儲節(jié)點(diǎn)中選擇主要存儲節(jié)點(diǎn)候選。
例子6是一種電子設(shè)備,包括:處理器;以及存儲器,包括:存儲器設(shè)備;以及控制器,其耦合到所述存儲器設(shè)備上并包括用于以下的邏輯:從耦合到控制器的存儲設(shè)備的至少一個(gè)部件接收可靠性信息;在通信地耦合到控制器上的存儲器中存儲可靠性信息;生成用于存儲設(shè)備的至少一個(gè)可靠性指示符;以及將所述可靠性指示符轉(zhuǎn)發(fā)到選舉模塊。
在例子7中,例子6的主題可以可選地包括以下布置:其中,所述可靠性信息包括以下中的至少一個(gè):用于存儲設(shè)備的故障計(jì)數(shù);用于存儲設(shè)備的故障率;用于存儲設(shè)備的錯(cuò)誤率;存儲設(shè)備在渦輪模式中花費(fèi)的時(shí)間量;存儲設(shè)備在空閑模式中花費(fèi)的時(shí)間量;用于存儲設(shè)備的電壓信息;或者用于存儲設(shè)備的溫度信息。
在例子8中,例子6-7中任一項(xiàng)的主題可以可選地包括以下布置:其中,生成用于存儲設(shè)備的可靠性指示符的邏輯還包括用于以下的邏輯:向可靠性信息施加加權(quán)因子。
在例子9中,例子6-8中任一項(xiàng)的主題可以可選地包括用于基于所述可靠性信息預(yù)測故障的可能性的邏輯。
在例子10中,例子6-9中任一項(xiàng)的主題可以可選地包括以下布置:其中,所述選舉模塊包括用于以下的邏輯:接收所述可靠性指示符;以及在選舉過程中使用所述可靠性指示符來從多個(gè)次級存儲節(jié)點(diǎn)中選擇主要存儲節(jié)點(diǎn)候選。
例子11是一種包括存儲于非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)上的邏輯指令的計(jì)算機(jī)程序產(chǎn)品,當(dāng)被耦合到存儲器設(shè)備的控制器執(zhí)行時(shí),所述指令將控制器配置用于:從耦合到控制器的存儲設(shè)備的至少一個(gè)部件接收可靠性信息;在通信地耦合到控制器上的存儲器中存儲可靠性信息;生成用于存儲設(shè)備的至少一個(gè)可靠性指示符;以及將所述可靠性指示符轉(zhuǎn)發(fā)到選舉模塊。
在例子12中,例子11的主題可以可選地包括以下布置:其中,所述可靠性信息包括以下中的至少一個(gè):用于存儲設(shè)備的故障計(jì)數(shù);用于存儲設(shè)備的故障率;用于存儲設(shè)備的錯(cuò)誤率;存儲設(shè)備在渦輪模式中花費(fèi)的時(shí)間量;存儲設(shè)備在空閑模式中花費(fèi)的時(shí)間量;用于存儲設(shè)備的電壓信息;或者用于存儲設(shè)備的溫度信息。
在例子13中,例子11-12中任一項(xiàng)的主題可以可選地包括以下布置:其中,生成用于存儲設(shè)備的可靠性指示符的邏輯還包括用于以下的邏輯:向可靠性信息施加加權(quán)因子。
在例子14中,例子11-13中任一項(xiàng)的主題可以可選地包括基于所述可靠性信息預(yù)測故障的可能性的邏輯。
在例子15中,例子11-14中任一項(xiàng)的主題可以可選地包括以下布置:其中,所述選舉模塊包括用于以下的邏輯:接收所述可靠性指示符;以及在選舉過程中使用所述可靠性指示符來從多個(gè)次級存儲節(jié)點(diǎn)中選擇主要存儲節(jié)點(diǎn)候選。
例子16是一種控制器實(shí)現(xiàn)的方法,包括:從耦合到控制器的存儲設(shè)備的至少一個(gè)部件接收可靠性信息;在通信地耦合到控制器上的存儲器中存儲可靠性信息;生成用于存儲設(shè)備的至少一個(gè)可靠性指示符;以及將所述可靠性指示符轉(zhuǎn)發(fā)到選舉模塊。
在例子17中,例子16的主題可以可選地包括以下布置:其中,所述可靠性信息包括以下中的至少一個(gè):針對存儲設(shè)備的故障計(jì)數(shù);針對存儲設(shè)備的故障率;針對存儲設(shè)備的錯(cuò)誤率;存儲設(shè)備在渦輪模式中花費(fèi)的時(shí)間量;存儲設(shè)備在空閑模式中花費(fèi)的時(shí)間量;針對存儲設(shè)備的電壓信息;或者針對存儲設(shè)備的溫度信息。
在例子18中,例子16-17中任一項(xiàng)的主題可以可選地包括:向可靠性信息施加加權(quán)因子。
在例子19中,例子16-18中任一項(xiàng)的主題可以可選地包括:基于所述可靠性信息預(yù)測故障的可能性。
在例子20中,例子16-19中任一項(xiàng)的主題可以可選地包括:從多個(gè)次級存儲節(jié)點(diǎn)中選擇主要存儲節(jié)點(diǎn)候選。
在本發(fā)明的各種實(shí)施例中,例如結(jié)合圖1-10在本文討論的操作可以實(shí)現(xiàn)為硬件(例如,電路)、軟件、固件、微碼、或其組合,其可以設(shè)置為計(jì)算機(jī)程序產(chǎn)品,例如,包括有形(例如,非瞬態(tài))機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì),其存儲有指令(或軟件程序)用于將計(jì)算機(jī)編程以執(zhí)行本文討論的過程。另外,術(shù)語“邏輯”可以例如包括軟件、硬件或者軟件和硬件的組合。機(jī)器可讀介質(zhì)可以包括存儲設(shè)備,例如本文討論的那些。
在說明書中提及“一個(gè)實(shí)施例”或“實(shí)施例”表示結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性可以至少包含于實(shí)現(xiàn)方式中。在說明書中各處出現(xiàn)的短語“在一個(gè)實(shí)施例中”可以都指的是或不都指的是相同的實(shí)施例。
另外,在說明書和權(quán)利要求中,可以使用術(shù)語“耦合”和“連接”及其衍生詞。在本發(fā)明的一些實(shí)施例中,“連接”可以用于表示兩個(gè)或更多元件彼此直接物理或電接觸?!榜詈稀笨梢员硎緝蓚€(gè)或更多元件直接物理或電接觸。然而,“耦合”還可以表示兩個(gè)或更多元件彼此不直接接觸,但仍彼此合作或交互。
因此,雖然以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語言描述了本發(fā)明的實(shí)施例,但是可以理解的是,所要求保護(hù)的主題可以不限于所描述的特定特征或動(dòng)作。而是,將特定特征和動(dòng)作公開為實(shí)現(xiàn)所要求保護(hù)主題的樣本形式。