相關(guān)案例
本申請(qǐng)是基于2015年2月6日提交的美國臨時(shí)申請(qǐng)?zhí)?2/113,337的非臨時(shí)申請(qǐng),并且要求保護(hù)該臨時(shí)申請(qǐng)的優(yōu)先權(quán)的權(quán)益。據(jù)此通過引用并入該臨時(shí)申請(qǐng)。
本發(fā)明的實(shí)施例一般涉及存儲(chǔ)器管理,并且更特別地涉及動(dòng)態(tài)改變鎖步配置。
版權(quán)聲明/許可
該專利文檔的公開的部分可能包含受到版權(quán)保護(hù)的材料。版權(quán)所有人不反對(duì)任何人對(duì)該專利文檔或?qū)@_的復(fù)制,如它出現(xiàn)在專利與商標(biāo)局專利文件或記錄中一樣,但是以其他方式保留任何所有版權(quán)權(quán)利。版權(quán)聲明應(yīng)用于如下文以及在其附圖中描述的所有數(shù)據(jù)以及下文描述的任何軟件:版權(quán)?2015(copyright?2015),英特爾公司,保留所有權(quán)利。
背景技術(shù):
某些類型的存儲(chǔ)器資源相比于大多數(shù)其他平臺(tái)部件具有高故障率。例如,ddr(雙倍數(shù)據(jù)速率)存儲(chǔ)器設(shè)備經(jīng)歷比作為計(jì)算平臺(tái)或服務(wù)器環(huán)境的部分的大多數(shù)其他部件(諸如處理器、儲(chǔ)存器、接口部件和/或其他)更高的故障率。長期儲(chǔ)存器部件也經(jīng)歷顯著的故障率??紤]到存儲(chǔ)器設(shè)備的故障引起停機(jī)時(shí)間并且要求對(duì)系統(tǒng)進(jìn)行維護(hù),所以更高的平臺(tái)ras(可靠性、可用性和可維護(hù)性)是優(yōu)選的。
傳統(tǒng)地存在被采用以幸免于硬dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)故障或硬錯(cuò)誤的多種不同備用技術(shù),它們可以推出維護(hù)要求。硬錯(cuò)誤指的是阻止物理設(shè)備正確讀取和/或?qū)懭氲年P(guān)于該物理設(shè)備的錯(cuò)誤,并且區(qū)別于作為間歇性故障的瞬時(shí)錯(cuò)誤。已知用于sddc(單設(shè)備數(shù)據(jù)校正)和dddc(雙設(shè)備數(shù)據(jù)校正)以解決硬故障的技術(shù)。然而,盡管有用于推出存儲(chǔ)器子系統(tǒng)的維護(hù)的技術(shù),但是故障率仍然比期望的更高,尤其對(duì)于較大的存儲(chǔ)器配置。
附圖說明
下面的描述包括具有作為本發(fā)明的實(shí)施例的實(shí)施方式的示例給出的圖示的圖的討論。繪圖應(yīng)該作為示例而不是作為限制來理解。如本文中所使用的,對(duì)一個(gè)或多個(gè)“實(shí)施例”的引用要被理解為描述包括在本發(fā)明的至少一個(gè)實(shí)施方式中的特定特征、結(jié)構(gòu)和/或特性。因此,在本文中出現(xiàn)的諸如“在一個(gè)實(shí)施例中”或“在替換實(shí)施例中”的短語描述本發(fā)明的各種實(shí)施例以及實(shí)施方式,并且未必所有都指的是同一實(shí)施例。然而,它們也未必互相排斥。
圖1a是在其中實(shí)施動(dòng)態(tài)鎖步管理的在各通道之間分配高速緩存線的系統(tǒng)的實(shí)施例的框圖。
圖1b是圖示存儲(chǔ)器結(jié)構(gòu)和鎖步邏輯的圖1a的系統(tǒng)的實(shí)施例的框圖。
圖2是用于在其中實(shí)施動(dòng)態(tài)鎖步管理的系統(tǒng)中的自適應(yīng)雙設(shè)備數(shù)據(jù)校正(adddc)實(shí)施方式的狀態(tài)機(jī)的實(shí)施例的框圖。
圖3是對(duì)于圖4a-9i的圖例,其圖示圖2中標(biāo)識(shí)的狀態(tài)的邏輯表示。
圖4a是初始存儲(chǔ)體(bank)故障的邏輯表示。
圖4b是用來響應(yīng)于初始存儲(chǔ)體故障而在區(qū)0中產(chǎn)生adddc狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖5a是不同存儲(chǔ)器設(shè)備中的不同存儲(chǔ)體故障的邏輯表示。
圖5b是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的附加存儲(chǔ)體故障而在區(qū)1中產(chǎn)生adddc狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖5c是當(dāng)處于具有區(qū)0和區(qū)1中的故障的adddc狀態(tài)時(shí)不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障的邏輯表示。
圖5d是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障而提升至adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖5e是當(dāng)處于具有附加區(qū)0故障的adddc+1狀態(tài)時(shí)不同存儲(chǔ)器設(shè)備中的附加同一存儲(chǔ)體故障的邏輯表示。
圖5f是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的附加同一存儲(chǔ)體故障而提升至具有區(qū)0和區(qū)1中的故障的adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖6a是當(dāng)處于具有區(qū)0中的故障的adddc狀態(tài)時(shí)不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障的邏輯表示。
圖6b是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的附加同一存儲(chǔ)體故障而提升至具有區(qū)0中的故障的adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖7a是當(dāng)處于adddc狀態(tài)時(shí)同伴(buddy)區(qū)中的同一存儲(chǔ)體故障的邏輯表示。
圖7b是用來提升至具有主要區(qū)和同伴區(qū)二者中的同一存儲(chǔ)體中的故障的adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖7c是用來重新指定鎖步伙伴關(guān)系以保持在具有在共同排(rank)內(nèi)映射的同伴區(qū)的adddc狀態(tài)中的鎖步動(dòng)作的邏輯表示。
圖8a是當(dāng)處于adddc狀態(tài)時(shí)同一設(shè)備不同存儲(chǔ)體故障的邏輯表示。
圖8b是用來響應(yīng)于同一設(shè)備附加存儲(chǔ)體故障而在區(qū)1中產(chǎn)生adddc狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖8c是當(dāng)處于具有區(qū)0和區(qū)1的同一存儲(chǔ)體中的故障的adddc狀態(tài)時(shí)不同設(shè)備不同存儲(chǔ)體故障的邏輯表示。
圖8d是當(dāng)處于具有區(qū)0和區(qū)1的同一存儲(chǔ)體中的故障的adddc狀態(tài)時(shí)不同設(shè)備同一存儲(chǔ)體故障的邏輯表示。
圖8e是初始設(shè)備故障的邏輯表示。
圖9a是用來響應(yīng)于初始設(shè)備故障而在同伴排中產(chǎn)生adddc狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖9b是當(dāng)處于adddc狀態(tài)時(shí)故障排中的附加設(shè)備故障的邏輯表示。
圖9c是當(dāng)故障排處于adddc狀態(tài)中時(shí)不同設(shè)備的附加存儲(chǔ)體故障的邏輯表示。
圖9d是用來響應(yīng)于附加設(shè)備故障而產(chǎn)生adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖9e是當(dāng)處于adddc狀態(tài)時(shí)同伴排中的同一設(shè)備故障的邏輯表示。
圖9f是當(dāng)處于adddc狀態(tài)時(shí)同伴排中的同一設(shè)備中的新存儲(chǔ)體故障的邏輯表示。
圖9g是用來響應(yīng)于同伴排中的附加設(shè)備故障而產(chǎn)生adddc+1狀態(tài)的鎖步動(dòng)作的邏輯表示。
圖9h是用來響應(yīng)于同伴區(qū)中的同一設(shè)備故障而重新指定鎖步伙伴關(guān)系以保持在具有映射到新排的同伴區(qū)的adddc狀態(tài)中的鎖步動(dòng)作的邏輯表示。
圖9i是響應(yīng)于同伴區(qū)的同一設(shè)備中的新存儲(chǔ)體故障而重新指定鎖步伙伴關(guān)系以保持在具有對(duì)于具有故障設(shè)備的排的新同伴排以及先前同伴排之內(nèi)的同伴排的adddc狀態(tài)中的鎖步動(dòng)作的邏輯表示。
圖10是用于動(dòng)態(tài)管理鎖步配置的過程的實(shí)施例的流程圖。
圖11是在其中可以實(shí)施動(dòng)態(tài)鎖步管理的計(jì)算系統(tǒng)的實(shí)施例的框圖。
圖12是在其中可以實(shí)施動(dòng)態(tài)鎖步管理的移動(dòng)設(shè)備的實(shí)施例的框圖。
接著是某些細(xì)節(jié)和實(shí)施方式的描述,包括圖的描述,其可描繪下文描述的實(shí)施例的一些或所有,以及討論本文中呈現(xiàn)的發(fā)明的概念的其他潛在實(shí)施例或?qū)嵤┓绞健?/p>
具體實(shí)施方式
如在本文中描述的,存儲(chǔ)器子系統(tǒng)錯(cuò)誤管理實(shí)現(xiàn)動(dòng)態(tài)改變鎖步伙伴關(guān)系。鎖步指的是在多個(gè)存儲(chǔ)器資源上分配錯(cuò)誤校正以補(bǔ)償一個(gè)存儲(chǔ)器資源中的硬故障,其阻止對(duì)故障存儲(chǔ)器資源的確定的數(shù)據(jù)訪問。鎖步伙伴關(guān)系指的是在其上分配或共享錯(cuò)誤檢查和校正的兩個(gè)存儲(chǔ)器部分。存儲(chǔ)器子系統(tǒng)在第一存儲(chǔ)器部分中檢測硬錯(cuò)誤,在這里該第一存儲(chǔ)器部分被設(shè)置在與第二存儲(chǔ)器部分的鎖步伙伴關(guān)系中以在該對(duì)存儲(chǔ)器資源上散布錯(cuò)誤校正。響應(yīng)于檢測到硬錯(cuò)誤,存儲(chǔ)器子系統(tǒng)可以顛倒第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系并且設(shè)置新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,響應(yīng)于在第二存儲(chǔ)器部分中檢測到故障或硬錯(cuò)誤而形成鎖步伙伴關(guān)系。該存儲(chǔ)器子系統(tǒng)可以在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。當(dāng)改變伙伴關(guān)系時(shí)該存儲(chǔ)器子系統(tǒng)還可以被配置成改變鎖步伙伴關(guān)系的粒度(granularity)。
鎖步伙伴關(guān)系的動(dòng)態(tài)改變可以被應(yīng)用于鎖步的任何應(yīng)用。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器包括表示存儲(chǔ)器的各部分之間的鎖步關(guān)系的鎖步表。部分尺寸可以被配置用于鎖步的實(shí)施方式。在一個(gè)實(shí)施例中,諸如在dddc(雙設(shè)備數(shù)據(jù)校正)的實(shí)施方式中,鎖步關(guān)系可以被預(yù)先配置。因此,檢測到的錯(cuò)誤導(dǎo)致在所標(biāo)識(shí)的鎖步伙伴之間共享錯(cuò)誤校正。如在本文中描述的,鎖步伙伴關(guān)系可以被動(dòng)態(tài)地顛倒和重新指定。在一個(gè)實(shí)施例中,諸如在adddc(自適應(yīng)雙設(shè)備數(shù)據(jù)校正)的實(shí)施方式中,鎖步關(guān)系沒有被限定直到檢測到第一錯(cuò)誤。對(duì)于這樣的實(shí)施方式,鎖步伙伴的第一指派可以被顛倒和重新指定。僅為了說明的目的,下面的描述和圖中的大部分指的是adddc的實(shí)施方式。將理解,可以在應(yīng)用鎖步伙伴關(guān)系的任何系統(tǒng)上執(zhí)行動(dòng)態(tài)鎖步伙伴關(guān)系改變或鎖步配置的動(dòng)態(tài)改變,該鎖步伙伴關(guān)系可以被配置成被顛倒和重新指定。因此,與adddc有關(guān)的示例將僅被理解為示例,并且不是限制性的。
圖1a是在其中實(shí)施動(dòng)態(tài)鎖步管理的在各通道之間分配高速緩存線的系統(tǒng)的實(shí)施例的框圖。系統(tǒng)102圖示存儲(chǔ)器子系統(tǒng)的元件。處理器110表示系統(tǒng)102中的執(zhí)行代碼并生成訪問存儲(chǔ)在存儲(chǔ)器120中的數(shù)據(jù)和/或代碼的請(qǐng)求的硬件處理資源。處理器110可以包括中央處理單元(cpu)、圖形處理單元(gpu)、專用處理器、外圍處理器和/或可以生成從存儲(chǔ)器120讀取和/或向存儲(chǔ)器120寫入的請(qǐng)求的其他處理器。處理器110可以是或者包括單核處理器和/或多核處理器。處理器110通過執(zhí)行代碼來生成從存儲(chǔ)器120讀取數(shù)據(jù)和/或?qū)?shù)據(jù)寫入到存儲(chǔ)器120的請(qǐng)求。該代碼可以包括本地存儲(chǔ)到處理器110的代碼和/或存儲(chǔ)在存儲(chǔ)器120中的代碼。
存儲(chǔ)器控制器130表示系統(tǒng)102中的管理對(duì)存儲(chǔ)器120的訪問的邏輯。對(duì)于由處理器110生成的訪問請(qǐng)求,存儲(chǔ)器控制器130生成一個(gè)或多個(gè)存儲(chǔ)器訪問命令以發(fā)送到存儲(chǔ)器120來服務(wù)該請(qǐng)求。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130可以是由處理器110和存儲(chǔ)器120共享的邏輯平臺(tái)上的獨(dú)立部件。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130是處理器110的部分。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130是與處理器110分離的芯片或管芯,并且與處理器管芯/芯片一起集成在共同基板上作為片上系統(tǒng)(soc)。在一個(gè)實(shí)施例中,存儲(chǔ)器120的一個(gè)或多個(gè)存儲(chǔ)器資源可以與處理器110和/或存儲(chǔ)器控制器130一起集成在soc中。存儲(chǔ)器控制器130管理存儲(chǔ)器120的配置和狀態(tài),這與管理對(duì)存儲(chǔ)器資源的訪問有關(guān)。存儲(chǔ)器控制器130可以被配置成生成命令并且以期望最大化存儲(chǔ)器120的帶寬利用的方式來管理對(duì)數(shù)據(jù)資源的訪問。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130將存儲(chǔ)器120作為可擴(kuò)展存儲(chǔ)器緩沖器或在那里系統(tǒng)102在多個(gè)通道140之間分配高速緩存線的其他存儲(chǔ)器配置來管理。例如,存儲(chǔ)器120被圖示為具有兩個(gè)通道140-0和140-1。將理解,可跨更多通道140來應(yīng)用描述的技術(shù)。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130通過在通道140-0的dimm(雙內(nèi)聯(lián)存儲(chǔ)器模塊)142-0上定位高速緩存線的一半并且在通道140-1的dimm140-1上定位高速緩存線的另一半來在分離的通道140之間分配高速緩存線。更多通道的使用可以提供相同的益處,盡管用來實(shí)施高速緩存線在多個(gè)通道之間的分離的邏輯可能需要被修改。跨通道140以鎖步模式運(yùn)行存儲(chǔ)器通道具有能夠應(yīng)用dddc(雙設(shè)備數(shù)據(jù)校正)的優(yōu)點(diǎn)。鎖步模式指的是在其中鎖步伙伴關(guān)系被設(shè)置并且鎖步伙伴共享錯(cuò)誤校正數(shù)據(jù)的操作狀態(tài)。每個(gè)通道140都包括一個(gè)或多個(gè)dimm142。每個(gè)dimm都包括多個(gè)存儲(chǔ)器設(shè)備144。在一個(gè)實(shí)施例中,每個(gè)存儲(chǔ)器設(shè)備144都是dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)芯片或設(shè)備。將理解,在更簡單的系統(tǒng)配置中,可通過將存儲(chǔ)器設(shè)備126分到通道140中來實(shí)現(xiàn)相似的益處,而不一定需要將存儲(chǔ)器設(shè)備126進(jìn)一步分到dimm142中。
在一個(gè)示例配置中,考慮到系統(tǒng)102包括兩個(gè)通道140,為了該示例的目的每一個(gè)通道都具有一個(gè)dimm142,其中每個(gè)dimm有16個(gè)存儲(chǔ)器設(shè)備126,加上一個(gè)存儲(chǔ)器設(shè)備126每一個(gè)都用于crc(循環(huán)冗余校驗(yàn))且用于奇偶性。如果一個(gè)存儲(chǔ)器設(shè)備126出故障,則可以利用單設(shè)備數(shù)據(jù)校正(sddc)來重構(gòu)其數(shù)據(jù)。對(duì)于dddc,系統(tǒng)102可以經(jīng)由存儲(chǔ)器控制器130組合來自兩個(gè)dimm142的兩個(gè)存儲(chǔ)器設(shè)備126,每對(duì)dimm142使用四個(gè)存儲(chǔ)器設(shè)備126。此類技術(shù)提供32個(gè)“數(shù)據(jù)”設(shè)備,兩個(gè)設(shè)備用于crc(循環(huán)冗余校驗(yàn))、一個(gè)設(shè)備用于奇偶性,以及一個(gè)備用設(shè)備。如果存儲(chǔ)器設(shè)備126之一出故障,則備用設(shè)備可以取代故障設(shè)備。在一個(gè)存儲(chǔ)器設(shè)備126的故障之后,可以采用傳統(tǒng)的sddc。因此,dddc允許從dimm142上的兩個(gè)連續(xù)dram故障恢復(fù),以及從dimm142上的后續(xù)的單個(gè)位軟錯(cuò)誤恢復(fù)。
系統(tǒng)102可以實(shí)施adddc(自適應(yīng)雙設(shè)備數(shù)據(jù)校正)來管理硬錯(cuò)誤或硬故障。adddc提供鎖步來為存儲(chǔ)器設(shè)備126提供錯(cuò)誤校正。adddc可以在遇到硬故障時(shí)使用鎖步來為備用設(shè)備開拓空間。系統(tǒng)102可以用備用設(shè)備替代鎖步排/存儲(chǔ)體中的第一存儲(chǔ)器設(shè)備故障。關(guān)于存儲(chǔ)器120的排和存儲(chǔ)體架構(gòu)的更多細(xì)節(jié)可以根據(jù)圖1b的系統(tǒng)104的細(xì)節(jié)。在adddc的情況下,鎖步排/存儲(chǔ)體內(nèi)的第二故障傳統(tǒng)地將觸發(fā)維護(hù)事件。因此,通常同一區(qū)內(nèi)的第二故障將觸發(fā)維護(hù)請(qǐng)求。在一個(gè)實(shí)施例中,在用以動(dòng)態(tài)改變鎖步配置的能力的情況下,一般來說如果兩個(gè)故障在鎖步伙伴關(guān)系的分離的各半中,則鎖步伙伴關(guān)系中的第二故障不導(dǎo)致維護(hù)請(qǐng)求。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130包括用來管理錯(cuò)誤響應(yīng)的錯(cuò)誤邏輯132,包括鎖步配置。在一個(gè)實(shí)施例中,邏輯132可以動(dòng)態(tài)改變鎖步伙伴關(guān)系。更具體地,邏輯132可以使得存儲(chǔ)器控制器能夠首先設(shè)置或創(chuàng)建鎖步伙伴關(guān)系以在一對(duì)存儲(chǔ)器資源上散布錯(cuò)誤校正,然后在檢測到鎖步伙伴關(guān)系中的附加錯(cuò)誤時(shí)取消或顛倒鎖步伙伴關(guān)系。在顛倒鎖步伙伴關(guān)系之后,存儲(chǔ)器控制器130響應(yīng)于附加錯(cuò)誤可以經(jīng)由錯(cuò)誤邏輯132創(chuàng)建或設(shè)置一個(gè)或多個(gè)新鎖步伙伴關(guān)系以阻止生成維護(hù)請(qǐng)求事件。動(dòng)態(tài)顛倒鎖步伙伴關(guān)系并且設(shè)置一個(gè)或多個(gè)新鎖步伙伴關(guān)系可以擴(kuò)展adddc處置對(duì)于至少一個(gè)多個(gè)附加硬錯(cuò)誤的錯(cuò)誤校正的能力。
圖1b是圖示存儲(chǔ)器結(jié)構(gòu)和鎖步邏輯的圖1a的系統(tǒng)的實(shí)施例的框圖。系統(tǒng)104是圖1b的系統(tǒng)102的一個(gè)實(shí)施例。為了簡單起見消除處理器110,但是將理解,處理資源生產(chǎn)對(duì)存儲(chǔ)器120的數(shù)據(jù)訪問請(qǐng)求。存儲(chǔ)器120被更詳細(xì)地圖示,從而示出存儲(chǔ)器資源的配置。一個(gè)或多個(gè)存儲(chǔ)器設(shè)備126被分組在排128中。在一個(gè)實(shí)施例中,系統(tǒng)102的dimm142可以包括一個(gè)或多個(gè)排128。在一個(gè)實(shí)施例中,排128可以包括跨物理板或基板的存儲(chǔ)器設(shè)備。每個(gè)存儲(chǔ)器設(shè)備126都包括多個(gè)存儲(chǔ)體124,其是行122或高速緩存線的可尋址組。在一個(gè)實(shí)施例中,行122包括多個(gè)高速緩存線。在一個(gè)實(shí)施例中,每個(gè)行122包括一頁高速緩存線。每個(gè)存儲(chǔ)體124都可以包括多個(gè)行122。
再次參考adddc的實(shí)施方式,系統(tǒng)104(以及圖1a的系統(tǒng)102)可以通過動(dòng)態(tài)改變鎖步伙伴來提供改進(jìn)的adddc。通過動(dòng)態(tài)改變鎖步伙伴,系統(tǒng)104可以經(jīng)由存儲(chǔ)器控制器130阻止傳統(tǒng)地將要求維護(hù)請(qǐng)求的許多情況中的維護(hù)請(qǐng)求。因此,adddc可以進(jìn)一步通過提供用以幸免于鎖步對(duì)中的附加硬故障的能力來改進(jìn)維護(hù)速率達(dá)顯著的裕量。鎖步伙伴指的是在鎖步中工作的存儲(chǔ)體124或排128或者其他存儲(chǔ)器部分的對(duì)。將理解,存儲(chǔ)體124和/或排128可以跨存儲(chǔ)器120的dimm和/或通道以鎖步伙伴關(guān)系來合作。在一個(gè)實(shí)施例中,除了存儲(chǔ)體或排之外的其他粒度等級(jí)可以被采用來進(jìn)行鎖步操作。因此,關(guān)于存儲(chǔ)體或排等級(jí)粒度的描述應(yīng)該被理解為示例性的,并且不是限制性的。
大多數(shù)ras改進(jìn)具有相關(guān)聯(lián)的容量或性能成本。然而,動(dòng)態(tài)改變鎖步伙伴可以在沒有任何設(shè)計(jì)、性能或容量成本的情況下與現(xiàn)有adddc實(shí)施方式一起工作并且顯著改進(jìn)現(xiàn)有adddc實(shí)施方式。因此,動(dòng)態(tài)改變鎖步伙伴可以被采用以用于服務(wù)器環(huán)境(諸如獨(dú)立的服務(wù)器和/或在其中部件是安裝在服務(wù)器底盤中的刀片的服務(wù)器系統(tǒng))中的adddc。此外,改變鎖步伙伴可以應(yīng)用于具有設(shè)計(jì)更新的舊有dddc。
將理解,傳統(tǒng)adddc實(shí)施方式應(yīng)用虛擬鎖步來每個(gè)鎖步區(qū)映射出達(dá)到兩個(gè)連續(xù)dram設(shè)備故障。在傳統(tǒng)的adddc實(shí)施方式中,存儲(chǔ)器120將以非鎖步配置開始直到第一設(shè)備故障為止。在第一設(shè)備故障之后,存儲(chǔ)器控制器130可以應(yīng)用備用引擎(未被具體示出,但是可以被視為錯(cuò)誤管理器134的部分)來將故障區(qū)轉(zhuǎn)換成虛擬鎖步。在虛擬鎖步中,高速緩存線變得跨兩個(gè)存儲(chǔ)器位置存儲(chǔ)。在一個(gè)實(shí)施例中,兩個(gè)存儲(chǔ)器位置可以被稱為主要位置和同伴位置。將在本文中使用這樣的術(shù)語,但是將理解可在不影響改變鎖步伙伴的技術(shù)的情況下使用其他術(shù)語??梢酝ㄟ^移動(dòng)到adddc+1模式來映射出被鎖步伙伴關(guān)系覆蓋的區(qū)中的第二連續(xù)故障。在傳統(tǒng)adddc的情況下,第二連續(xù)故障觸發(fā)對(duì)取代故障存儲(chǔ)器的維護(hù)請(qǐng)求的需要。
可以看到,采用本文中描述的動(dòng)態(tài)鎖步伙伴關(guān)系改變的存儲(chǔ)器子系統(tǒng)能夠幸免于影響鎖步排/存儲(chǔ)體的第二故障中的近似50%。通過提供用以幸免于甚至鎖步對(duì)中的第二故障事件的能力,用于存儲(chǔ)器子系統(tǒng)的ras顯著改進(jìn)。經(jīng)改進(jìn)的用于存儲(chǔ)器子系統(tǒng)的ras可以顯著降低維護(hù)成本。可以看到,對(duì)于大的配置,傳統(tǒng)adddc可以改進(jìn)維護(hù)速率達(dá)10倍的因子。將理解,大的配置將具有大量配置參數(shù),并且因此維護(hù)速率和維護(hù)速率改進(jìn)的確切數(shù)字對(duì)于每個(gè)系統(tǒng)將基于其具體配置而變化。動(dòng)態(tài)改變鎖步伙伴關(guān)系的使用可以常常允許系統(tǒng)幸免于附加的硬故障(例如,近似50%的時(shí)間)。因此,預(yù)期動(dòng)態(tài)改變鎖步伙伴可以提供另外5倍的改進(jìn)。估計(jì)是近似的并且可以基于存儲(chǔ)器配置而具有寬的變化。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130包括錯(cuò)誤管理器134,其可以是圖1a的系統(tǒng)102的錯(cuò)誤邏輯132的部分。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器130還包括鎖步映射136作為錯(cuò)誤管理器134的部分和/或錯(cuò)誤邏輯132的部分。在一個(gè)實(shí)施例中,鎖步映射136是錯(cuò)誤管理器134的部分,但是不一定將它們組合。錯(cuò)誤管理器134使得存儲(chǔ)器控制器130能夠檢測錯(cuò)誤并且確定用以應(yīng)用來處置對(duì)錯(cuò)誤的錯(cuò)誤校正的adddc狀態(tài)。下面參考圖2直到9i描述不同adddc狀態(tài)。鎖步映射136提供存儲(chǔ)器的哪些部分當(dāng)前被關(guān)聯(lián)或設(shè)置為鎖步伙伴的映射。錯(cuò)誤管理器134包括用來確定錯(cuò)誤校正的當(dāng)前等級(jí)或當(dāng)前鎖步映射136是否足以管理已知硬錯(cuò)誤的確定邏輯。錯(cuò)誤管理器134包括用來確定什么時(shí)候以及如何改變鎖步伙伴關(guān)系來對(duì)可能在現(xiàn)有鎖步伙伴關(guān)系中出現(xiàn)的附加錯(cuò)誤進(jìn)行響應(yīng)的確定邏輯。
在一個(gè)實(shí)施例中,錯(cuò)誤管理器134應(yīng)用使用虛擬鎖步伙伴的adddc的實(shí)施方式來處置錯(cuò)誤校正。在一個(gè)實(shí)施例中,錯(cuò)誤管理器134用不是虛擬鎖步伙伴的鎖步伙伴來應(yīng)用錯(cuò)誤校正。在任一種情況下,錯(cuò)誤管理器134包括用以使鎖步伙伴關(guān)系顛倒并且建立新鎖步伙伴關(guān)系的邏輯。將理解,針對(duì)錯(cuò)誤管理器134和/或本文中描述的其他部件而提及的“邏輯”可以指代硬件和/或軟件(包括固件)邏輯。邏輯配置元件來執(zhí)行操作以完成所描述的內(nèi)容。
在一個(gè)實(shí)施例中,錯(cuò)誤管理器136可以動(dòng)態(tài)改變鎖步映射136中的鎖步伙伴的配置。在傳統(tǒng)鎖步系統(tǒng)中,伙伴關(guān)系是一次固定設(shè)置的。因此,在鎖步伙伴關(guān)系的設(shè)置之后出現(xiàn)的錯(cuò)誤傳統(tǒng)地將要求用以取代部分的維護(hù)請(qǐng)求。如本文中描述的,鎖步伙伴關(guān)系可以被撤銷或者顛倒,然后設(shè)置新鎖步伙伴關(guān)系。存儲(chǔ)器控制器130可以例如經(jīng)由錯(cuò)誤管理器134而執(zhí)行正向和逆向備用操作兩者來設(shè)置和清除鎖步伙伴關(guān)系。
具有備用邏輯的存儲(chǔ)器控制器傳統(tǒng)地能夠在正向方向上備用,并且典型地以單個(gè)固定粒度來執(zhí)行正向備用。在逆向備用的情況下,存儲(chǔ)器控制器能夠以多個(gè)粒度諸如位、設(shè)備、高速緩存線、行、列、存儲(chǔ)體、子排、排、和雙內(nèi)聯(lián)存儲(chǔ)器模塊(dimm)進(jìn)行存儲(chǔ)器備用。逆向備用允許存儲(chǔ)器控制器顛倒或撤銷先前執(zhí)行的備用操作,這可以允許鎖步伙伴關(guān)系的改變和/或故障狀態(tài)的粒度的改變。逆向備用指的是向后移動(dòng)故障狀態(tài),諸如從n+1故障狀態(tài)移動(dòng)到n故障狀態(tài)。
如本文中所使用的,“正向備用”可以指的是物理地移動(dòng)來自存儲(chǔ)器的故障區(qū)的數(shù)據(jù)并且將其存儲(chǔ)在新位置中,在這種情況下對(duì)該數(shù)據(jù)的后續(xù)訪問將從新位置而不是故障位置檢索。“逆向備用”可以指的是將來自新位置的數(shù)據(jù)物理地移動(dòng)回到原始故障位置。典型地,將在對(duì)另一部分的后續(xù)正向備用的意圖下以相同粒度或不同粒度完成逆向備用。存儲(chǔ)器控制器130可以使用ecc(錯(cuò)誤校正編碼)技術(shù)來校正逆向備用和后續(xù)正向備用操作之間的臨時(shí)錯(cuò)誤。
將理解,存儲(chǔ)器120可以具有下面的架構(gòu):帶有高速緩存線、列、行、存儲(chǔ)體、子排、排、dimm和通道,可尋址區(qū)尺寸從最小到最大。每個(gè)存儲(chǔ)器可能被看作具有1)受到影響的特定區(qū)或區(qū)段或部分;以及2)受到影響的寬度(位數(shù)目)。存儲(chǔ)器設(shè)備126包括地址解碼器或解碼邏輯來將所接收到的命令地址翻譯為關(guān)于存儲(chǔ)器的物理位置。
如上文提到的,在一個(gè)實(shí)施例中,錯(cuò)誤管理器134可以包括被配置成在正向方向和逆向方向二者上執(zhí)行存儲(chǔ)器備用操作的存儲(chǔ)器備用邏輯。例如,存儲(chǔ)器備用邏輯可最初響應(yīng)于檢測到存儲(chǔ)器故障以第一粒度等級(jí)(諸如存儲(chǔ)體等級(jí))執(zhí)行正向備用操作,將故障狀態(tài)從n移動(dòng)到n+1。如果錯(cuò)誤管理器134檢測到另一部分中的(例如以更高的粒度等級(jí)和/或鎖步伙伴關(guān)系的另一部分中的)故障狀況,則它可以執(zhí)行逆向備用操作,將故障等級(jí)從n+1移動(dòng)回到n,然后執(zhí)行正向備用以將故障等級(jí)或錯(cuò)誤等級(jí)從n移動(dòng)回到具有不同粒度和/或具有不同鎖步伙伴關(guān)系的n+1。
對(duì)存儲(chǔ)器設(shè)備的參考可以應(yīng)用于不同存儲(chǔ)器類型。存儲(chǔ)器設(shè)備一般指的是易失性存儲(chǔ)器技術(shù)。易失性存儲(chǔ)器是如果到該設(shè)備的電源被中斷則其狀態(tài)(以及因此存儲(chǔ)在其上的數(shù)據(jù))不確定的存儲(chǔ)器。非易失性存儲(chǔ)器指的是即使到該設(shè)備的電源被中斷則其狀態(tài)也是確定的存儲(chǔ)器。動(dòng)態(tài)易失性存儲(chǔ)器要求刷新存儲(chǔ)在設(shè)備中的數(shù)據(jù)以維持狀態(tài)。動(dòng)態(tài)易失性存儲(chǔ)器的一個(gè)示例包括dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ))、或者某一變體諸如同步dram(sdram)。如在本文中描述的存儲(chǔ)器子系統(tǒng)可以與許多存儲(chǔ)器技術(shù)以及基于此類規(guī)范的衍生物或擴(kuò)展的技術(shù)兼容,所述許多存儲(chǔ)器技術(shù)諸如ddr3(雙倍數(shù)據(jù)速率版本3,由jedec(電子設(shè)備工程聯(lián)合委員會(huì))在2007年6月27日的原始發(fā)布,目前處在發(fā)布21)、ddr4(ddr版本4,由jedec在2012年9月中公布的初始規(guī)范)、lpddr3(低功率ddr版本3,jesd209-3b,由jedec在2013年8月公布)、lpddr4(低功率雙倍數(shù)據(jù)速率(lpddr)版本4,jesd209-4,由jedec在2014年8月原始公布)、wio2(寬i/o2(wideio2),jesd229-2,由jedec在2014年8月原始公布)、hbm(高帶寬存儲(chǔ)器dram,jesd235,由jedec在2013年10月原始公布)、ddr5(ddr版本5,目前在jedec的討論中)、lpddr5(目前在jedec的討論中)、wio3(寬i/o3,目前在jedec的討論中)、hbm2(hbm版本2),目前在jedec的討論中)、和/或其他。
除了易失性存儲(chǔ)器之外或作為易失性存儲(chǔ)器的替換方案,在一個(gè)實(shí)施例中,對(duì)存儲(chǔ)器設(shè)備的參考可以指的是即使到該設(shè)備的電源被中斷則其狀態(tài)也是確定的非易失性存儲(chǔ)器設(shè)備。在一個(gè)實(shí)施例中,非易失性存儲(chǔ)器設(shè)備是塊可尋址存儲(chǔ)器設(shè)備,諸如與非或者或非技術(shù)。因此,存儲(chǔ)器設(shè)備還可以包括未來一代非易失性設(shè)備諸如三維交叉點(diǎn)存儲(chǔ)器設(shè)備,或者其他字節(jié)可尋址非易失性存儲(chǔ)器設(shè)備。在一個(gè)實(shí)施例中,存儲(chǔ)器設(shè)備可以是或者包括多閾值等級(jí)與非閃速存儲(chǔ)器、或非閃速存儲(chǔ)器、單個(gè)級(jí)或多等級(jí)相變存儲(chǔ)器(pcm)、電阻式存儲(chǔ)器、納米線存儲(chǔ)器、鐵電晶體管隨機(jī)存取存儲(chǔ)器(fetram)、結(jié)合憶阻器技術(shù)的磁阻式隨機(jī)存取存儲(chǔ)器(mram)存儲(chǔ)器、或自旋轉(zhuǎn)移力矩(stt)-mram、或以上任一個(gè)的組合、或者其他存儲(chǔ)器。
圖2是用于在其中實(shí)施動(dòng)態(tài)鎖步管理的系統(tǒng)中的自適應(yīng)雙設(shè)備數(shù)據(jù)校正(adddc)實(shí)施方式的狀態(tài)機(jī)的實(shí)施例的框圖。將理解,狀態(tài)圖200僅是任何數(shù)目的可能狀態(tài)流的一個(gè)示例。在圖4a-9i中列舉利用圖200中的標(biāo)簽表示的示例狀態(tài)。
在一個(gè)實(shí)施例中,在狀態(tài)cb1(存儲(chǔ)體故障的實(shí)例1)處開始,并且繼續(xù)進(jìn)行到ab1(對(duì)于存儲(chǔ)體故障cb1的動(dòng)作1)。自ab1,若干附加故障場景是可能的。以較簡單的實(shí)例開始,狀態(tài)可以從ab1繼續(xù)進(jìn)行到cb4(存儲(chǔ)體故障的實(shí)例4)以用于類型cb4的后續(xù)錯(cuò)誤,然后繼續(xù)進(jìn)行到ab4(對(duì)于存儲(chǔ)體故障cb4的動(dòng)作4)。一旦ab4已經(jīng)被執(zhí)行,后續(xù)故障就將導(dǎo)致維護(hù)請(qǐng)求。將理解,在每個(gè)實(shí)例中,將由與經(jīng)歷標(biāo)識(shí)的硬故障的存儲(chǔ)器設(shè)備相關(guān)聯(lián)的存儲(chǔ)器控制來執(zhí)行從一個(gè)狀態(tài)到另一個(gè)的移動(dòng)。狀態(tài)可以替換地從ab1繼續(xù)進(jìn)行到cb5(存儲(chǔ)體故障的實(shí)例5)以用于類型cb5的后續(xù)錯(cuò)誤。存儲(chǔ)器控制器可以執(zhí)行響應(yīng)于cb5的兩個(gè)動(dòng)作中的一個(gè),被標(biāo)識(shí)為ab5(對(duì)于存儲(chǔ)體故障cb5的動(dòng)作5)和ab6(對(duì)于存儲(chǔ)體故障cb5的動(dòng)作5)。一旦ab5或者ab6已被執(zhí)行,后續(xù)故障就將導(dǎo)致維護(hù)請(qǐng)求。
狀態(tài)可以替換地從ab1繼續(xù)進(jìn)行到cb3(存儲(chǔ)體故障的實(shí)例3)以用于類型cb3的后續(xù)錯(cuò)誤。存儲(chǔ)器控制器可以執(zhí)行錯(cuò)誤校正ab3(對(duì)于存儲(chǔ)體故障cb3的動(dòng)作3)。在狀態(tài)ab3的后續(xù)錯(cuò)誤可以導(dǎo)致cb7(存儲(chǔ)體故障的實(shí)例7),響應(yīng)于其存儲(chǔ)器控制器可以執(zhí)行錯(cuò)誤校正動(dòng)作ab7(對(duì)于存儲(chǔ)體故障cb7的動(dòng)作7)。自狀態(tài)ab7,后續(xù)錯(cuò)誤可以導(dǎo)致維護(hù)請(qǐng)求(這取決于錯(cuò)誤類型),或者可以導(dǎo)致后續(xù)錯(cuò)誤狀態(tài)cb8(存儲(chǔ)體故障的實(shí)例8)。響應(yīng)于狀態(tài)cb8,存儲(chǔ)器控制器可以執(zhí)行錯(cuò)誤校正的狀態(tài)ab8(對(duì)于存儲(chǔ)體故障cb8的動(dòng)作8)。在狀態(tài)ab8之后,后續(xù)故障將導(dǎo)致維護(hù)請(qǐng)求。
狀態(tài)可以替換地從ab1繼續(xù)進(jìn)行到cb2(存儲(chǔ)體故障的實(shí)例2)以用于類型cb2的后續(xù)錯(cuò)誤。存儲(chǔ)器控制器可以執(zhí)行兩個(gè)不同錯(cuò)誤校正動(dòng)作中的一個(gè),或者ab2(對(duì)于存儲(chǔ)體故障cb2的動(dòng)作2)或者ar1(對(duì)于排故障的動(dòng)作1)。將可以看到,狀態(tài)可以從存儲(chǔ)體故障改變?yōu)閷?duì)于類型cb2的后續(xù)錯(cuò)誤的排故障。如在示意圖200中看到的,作為類型cr1(排故障的實(shí)例1)的初始排錯(cuò)誤的結(jié)果,存儲(chǔ)器控制器可以替換地達(dá)到狀態(tài)ar1。
返回到狀態(tài)ab2,后續(xù)錯(cuò)誤可以導(dǎo)致兩個(gè)后續(xù)錯(cuò)誤狀態(tài)中的一個(gè),這取決于錯(cuò)誤類型。因此,自ab2,狀態(tài)可以移動(dòng)到cb10(存儲(chǔ)體故障的實(shí)例10),對(duì)于此存儲(chǔ)器控制器可以執(zhí)行以上提到的錯(cuò)誤校正ar1。替換地,狀態(tài)可以從ab2移動(dòng)到cb6(存儲(chǔ)體故障的實(shí)例6)。存儲(chǔ)器控制器可以響應(yīng)于狀態(tài)cb6執(zhí)行錯(cuò)誤校正ar2(對(duì)于排故障的動(dòng)作2)。如在圖200中看到的,存在對(duì)于狀態(tài)ar1后續(xù)的故障的四個(gè)潛在錯(cuò)誤狀態(tài)。那些故障狀態(tài)中的兩個(gè)是cr2(排故障的實(shí)例2)和cb11(存儲(chǔ)體故障的實(shí)例11),響應(yīng)于此存儲(chǔ)器控制器可以執(zhí)行以上提到的錯(cuò)誤校正的狀態(tài)ar2。
作為移動(dòng)到cr2或cb11的替換,ar1后續(xù)的錯(cuò)誤可以導(dǎo)致狀態(tài)移動(dòng)到cb9(存儲(chǔ)體故障的實(shí)例9)或cr3(排故障的實(shí)例3),這取決于錯(cuò)誤。如果錯(cuò)誤導(dǎo)致狀態(tài)cr3,則存儲(chǔ)器控制器可以執(zhí)行錯(cuò)誤校正ar3(對(duì)于排故障的動(dòng)作3)或ar4(對(duì)于排故障的動(dòng)作4)。如果狀態(tài)移動(dòng)到ar3,則后續(xù)錯(cuò)誤將導(dǎo)致維護(hù)請(qǐng)求。響應(yīng)于狀態(tài)cb9,存儲(chǔ)器控制器可以移動(dòng)到ar3或ar4,或者執(zhí)行錯(cuò)誤校正ab9(對(duì)于存儲(chǔ)體故障cb9的動(dòng)作9)。
圖3是對(duì)于圖4a-9i的圖例,其圖示圖2中標(biāo)識(shí)的狀態(tài)的邏輯表示。表300圖示空白框(沒有陰影或交叉影線)用于存儲(chǔ)器的正常區(qū)。存儲(chǔ)器的這樣的區(qū)段不經(jīng)歷任何故障,并且不是鎖步伙伴關(guān)系的部分。最深等級(jí)的陰影(幾乎黑色)示出新故障。最淺等級(jí)的陰影(最淺灰色)表示adddc區(qū)0的狀態(tài)。因此,最淺灰色圖示對(duì)于第一硬故障的adddc狀態(tài)的主要區(qū)和同伴區(qū)。
灰色的下一等級(jí)表示adddc區(qū)1的狀態(tài)。adddc區(qū)1指的是當(dāng)存儲(chǔ)器已經(jīng)處于故障狀態(tài)adddc時(shí)由于后續(xù)故障而合作的主要區(qū)和同伴區(qū)。下面兩個(gè)較深等級(jí)的陰影分別表示adddc+1區(qū)0和adddc+1區(qū)1。因此,它們分別表示對(duì)于后續(xù)錯(cuò)誤的提升的adddc狀態(tài)的主要區(qū)和同伴區(qū)。單線交叉影線表示聲明為區(qū)中的第一故障(故障0)的存儲(chǔ)器的部分。雙線交叉影線表示聲明為該區(qū)中的第二故障(故障1)的存儲(chǔ)器的部分。
圖4a是初始存儲(chǔ)體故障(被表示為狀態(tài)cb1)的邏輯表示。所表示的狀態(tài)中的每一個(gè)都示出指示18個(gè)存儲(chǔ)器設(shè)備(例如dram)的d[17:0]和指示每個(gè)設(shè)備的16個(gè)存儲(chǔ)體的b[15:0]。為了邏輯表示的目的,存儲(chǔ)體故障是示例中考慮的最細(xì)小的粒度,盡管可以在遵循這些示例中描述的相同技術(shù)的某些實(shí)施方式中配置其他故障粒度。因此,雖然圖表示每一個(gè)都具有18個(gè)設(shè)備的排,每個(gè)設(shè)備都具有16個(gè)存儲(chǔ)體,但是示例是非限制性的。因此,不同配置是可能的。兩個(gè)排(排a和排b)被示出為用于鎖步伙伴關(guān)系部分的主要排和同伴排的示例。cb1示出排a的設(shè)備0的存儲(chǔ)體0中的初始故障。
圖4b是用來響應(yīng)于初始存儲(chǔ)體故障產(chǎn)生區(qū)0中的adddc狀態(tài)(被表示為狀態(tài)ab1)的鎖步動(dòng)作的邏輯表示。存儲(chǔ)器控制器通過將排b的存儲(chǔ)體0創(chuàng)建為對(duì)于排a的存儲(chǔ)體0(主要區(qū))的同伴區(qū)來生成狀態(tài)ab1。在鎖步伙伴關(guān)系的情況下,存儲(chǔ)器子系統(tǒng)處于第一adddc狀態(tài)。
圖5a是不同存儲(chǔ)器設(shè)備中的不同存儲(chǔ)體故障(被表示為狀態(tài)cb3)的邏輯表示。狀態(tài)cb3圖示當(dāng)系統(tǒng)已經(jīng)處于adddc狀態(tài)時(shí)的后續(xù)存儲(chǔ)體故障。因此,排a的設(shè)備0的存儲(chǔ)體0被示出為故障0,并且排的設(shè)備1的存儲(chǔ)體1被示出為當(dāng)前檢測到的錯(cuò)誤。cb3的錯(cuò)誤因此是同一(主要)排中的不同設(shè)備中的不同存儲(chǔ)體。
圖5b是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的附加存儲(chǔ)體故障而在區(qū)1中產(chǎn)生adddc狀態(tài)(被表示為狀態(tài)ab3)的鎖步動(dòng)作的邏輯表示。在狀態(tài)ab3中,存儲(chǔ)器控制器產(chǎn)生具有存儲(chǔ)體0中的故障0和存儲(chǔ)體1中的故障1的adddc狀態(tài),二者都在排a和同伴排b之間共享以用于錯(cuò)誤校正的目的??梢酝ㄟ^上文關(guān)于正向備用所述的錯(cuò)誤校正技術(shù)來處置對(duì)此類錯(cuò)誤部分的讀取。
圖5c是當(dāng)處于具有區(qū)0和區(qū)1中的故障的adddc狀態(tài)(被表示為狀態(tài)cb7)時(shí)在不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb7中,后續(xù)錯(cuò)誤出現(xiàn)在排a的設(shè)備2的存儲(chǔ)體0中。將理解,因?yàn)榇鎯?chǔ)體0已經(jīng)受到利用adddc的錯(cuò)誤校正,所以第二錯(cuò)誤是可以通過已知錯(cuò)誤校正技術(shù)處置的大部分錯(cuò)誤。后續(xù)錯(cuò)誤是主要排中的同一存儲(chǔ)體不同設(shè)備錯(cuò)誤。
圖5d是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障而提升至adddc+1狀態(tài)(被表示為狀態(tài)ab7)的鎖步動(dòng)作的邏輯表示。在狀態(tài)ab7中,存儲(chǔ)器控制器將存儲(chǔ)體0的狀態(tài)提升到具有存儲(chǔ)體0中的故障0和故障1的adddc+1。后續(xù)故障不可以被處置,所以因此可以生成維護(hù)請(qǐng)求。
圖5e是當(dāng)處于具有附加區(qū)0故障的adddc+1狀態(tài)(被表示為狀態(tài)cb8)時(shí)不同存儲(chǔ)器設(shè)備中的附加同一存儲(chǔ)體故障的邏輯表示。如果代替后續(xù)故障是存儲(chǔ)體1中的故障1(諸如同一存儲(chǔ)體1不同設(shè)備3中的錯(cuò)誤),則可以使用另一錯(cuò)誤校正狀態(tài)。
圖5f是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的附加同一存儲(chǔ)體故障而提升到具有區(qū)0和區(qū)1中的故障的adddc+1狀態(tài)(被表示為ab8)的鎖步動(dòng)作的邏輯表示。在ab8中,將存儲(chǔ)體1的狀態(tài)提升到adddc+1。在adddc+1中的存儲(chǔ)體0和adddc+1中的存儲(chǔ)體1二者的情況下,不可以處置后續(xù)故障并且因此可以生成維護(hù)請(qǐng)求。
圖6a是當(dāng)處于具有區(qū)0中的故障的adddc狀態(tài)(被表示狀態(tài)cb4)時(shí)不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb4中,存儲(chǔ)體0具有排a的設(shè)備0中的故障0,并且在不同設(shè)備1的同一存儲(chǔ)體0中檢測到后續(xù)故障。
圖6b是用來響應(yīng)于不同存儲(chǔ)器設(shè)備中的同一存儲(chǔ)體故障而提升至具有區(qū)0中的故障的adddc+1狀態(tài)(被表示為ab4)的鎖步動(dòng)作的邏輯表示。存儲(chǔ)器控制器將存儲(chǔ)體0提升到adddc+1,在其中看到具有兩個(gè)故障區(qū):區(qū)0和區(qū)1。同一存儲(chǔ)體0中的后續(xù)錯(cuò)誤將不能被處置,并且因此存儲(chǔ)器控制器可能發(fā)布維護(hù)請(qǐng)求。不同存儲(chǔ)體中的后續(xù)錯(cuò)誤可以將附加存儲(chǔ)體提升到adddc。
圖7a是當(dāng)處于adddc狀態(tài)(被表示為狀態(tài)cb5)時(shí)同伴區(qū)中的同一存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb5中,已經(jīng)存在一個(gè)錯(cuò)誤。cb5中的后續(xù)錯(cuò)誤是排b的設(shè)備0中的同一存儲(chǔ)體0。因此,排a和b兩者都具有存儲(chǔ)體0設(shè)備0中的硬錯(cuò)誤。
圖7b是用來提升到具有主要區(qū)和同伴區(qū)二者中的同一存儲(chǔ)體中的故障的adddc+1狀態(tài)(被表示為ab5)的鎖步動(dòng)作的邏輯表示。在狀態(tài)ab5中,歸因于作為鎖步伙伴關(guān)系的主題的存儲(chǔ)體中的兩個(gè)錯(cuò)誤,存儲(chǔ)器控制器將存儲(chǔ)體0的狀態(tài)從adddc提升到adddc+1。
圖7c是用來重新指定鎖步伙伴關(guān)系以保持在具有在共同排之內(nèi)映射的同伴區(qū)的adddc狀態(tài)(被表示為狀態(tài)ab6)中的鎖步動(dòng)作的邏輯表示。作為對(duì)狀態(tài)ab5的替換,在一個(gè)實(shí)施例中,響應(yīng)于在狀態(tài)cb5中檢測到后續(xù)錯(cuò)誤,存儲(chǔ)器控制器顛倒存儲(chǔ)體0排a和存儲(chǔ)體0排b之間的鎖步伙伴關(guān)系,并且重新指定鎖步伙伴關(guān)系。更具體地,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器可以使排a的存儲(chǔ)體15成為排a的存儲(chǔ)體0的同伴部分或同伴區(qū),并且相似地可以使排b的存儲(chǔ)體15成為排b的存儲(chǔ)體0的同伴部分或同伴區(qū)。存儲(chǔ)體15是示例,并且可以選擇另一存儲(chǔ)體。不一定需要在各排中的每一個(gè)中選擇同一存儲(chǔ)體。在重新指定鎖步伙伴關(guān)系之后,狀態(tài)ab6導(dǎo)致具有單個(gè)錯(cuò)誤的adddc中的排a的存儲(chǔ)體0和15,以及具有單個(gè)錯(cuò)誤的adddc中的排b的存儲(chǔ)體0和15,與處在adddc+1的兩個(gè)排中的存儲(chǔ)體0相對(duì)。因此,動(dòng)態(tài)改變鎖步伙伴關(guān)系可以降低adddc等級(jí),并且允許系統(tǒng)在保持同一鎖步伙伴關(guān)系期間忍受添加后續(xù)錯(cuò)誤。
圖8a是當(dāng)處于adddc狀態(tài)(被表示為狀態(tài)cb2)時(shí)同一設(shè)備不同存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb2中,排a的設(shè)備0的存儲(chǔ)體0已經(jīng)處于故障中,并且存儲(chǔ)體0處于跨排a和b的狀態(tài)adddc中。所檢測到的后續(xù)故障是設(shè)備0的存儲(chǔ)體1中的不同存儲(chǔ)體相同設(shè)備故障。
圖8b是用來響應(yīng)于同一設(shè)備、附加存儲(chǔ)體故障而在區(qū)1中產(chǎn)生adddc狀態(tài)(被表示為狀態(tài)ab2)的鎖步動(dòng)作的邏輯表示。在狀態(tài)ab2中,存儲(chǔ)器控制器可以將存儲(chǔ)體1提升到adddc,其中存儲(chǔ)體1在主要排a和同伴排b中共享。
圖8c是當(dāng)處于具有區(qū)0和區(qū)1的同一存儲(chǔ)體中的故障的adddc狀態(tài)(被表示為狀態(tài)cb6)時(shí)的不同設(shè)備不同存儲(chǔ)體故障的邏輯表示。在cb6中,所檢測到的后續(xù)錯(cuò)誤是不同存儲(chǔ)體不同設(shè)備錯(cuò)誤,其中該錯(cuò)誤在設(shè)備1的存儲(chǔ)體2中。此類錯(cuò)誤可以導(dǎo)致維護(hù)請(qǐng)求,因?yàn)榇鎯?chǔ)體0和存儲(chǔ)體1已經(jīng)處于adddc。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器可以顛倒存儲(chǔ)體0的排a和排b之間的鎖步伙伴關(guān)系以及存儲(chǔ)體1的排a和排b之間的鎖步伙伴關(guān)系。存儲(chǔ)器控制器可以隨后創(chuàng)建設(shè)備0的排a和排b之間的鎖步伙伴關(guān)系和設(shè)備1的排a和排b之間的鎖步伙伴關(guān)系?;锇殛P(guān)系可以兩者都處于adddc。此類動(dòng)作沒有被圖示,但是通過顛倒鎖步伙伴關(guān)系并改變鎖步的粒度,這是可能的。
圖8d是當(dāng)處于具有區(qū)0和區(qū)1的同一存儲(chǔ)體中的故障的adddc狀態(tài)(被表示為狀態(tài)cb10)時(shí)同一設(shè)備不同存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb10中,在同一設(shè)備0不同存儲(chǔ)體2中檢測到后續(xù)錯(cuò)誤。
圖8e是初始設(shè)備故障(被表示為狀態(tài)cr1)的邏輯表示。在狀態(tài)cr1中,錯(cuò)誤是排a的設(shè)備0的所有。將可以看到,如何可以通過聲明整個(gè)設(shè)備0在cb10中的錯(cuò)誤中來使得狀態(tài)cb10的錯(cuò)誤與cr1的錯(cuò)誤匹配。因此,對(duì)于cb10和cr1的錯(cuò)誤校正動(dòng)作可以是相同的。
圖9a是用來響應(yīng)于初始設(shè)備故障而在同伴排中產(chǎn)生adddc狀態(tài)(被表示為狀態(tài)ar1)的鎖步動(dòng)作的邏輯表示。存儲(chǔ)器控制器可以生成狀態(tài)ar1作為對(duì)狀態(tài)cb10和cr1的錯(cuò)誤校正。存儲(chǔ)器控制器創(chuàng)建排b作為對(duì)于排a的同伴區(qū),在這里整個(gè)排是受到影響的區(qū),如由處于狀態(tài)adddc的每個(gè)完整的排所圖示的。故障部分是排a的設(shè)備0。
圖9b是當(dāng)處于adddc狀態(tài)(被表示為狀態(tài)cr2)時(shí)故障排中的附加設(shè)備故障的邏輯表示。狀態(tài)cr2之前的狀態(tài)是排a和排b由于設(shè)備0中的故障而處于鎖步伙伴關(guān)系時(shí)。檢測到的后續(xù)錯(cuò)誤是具有故障設(shè)備0的排a的設(shè)備1。
圖9c是當(dāng)故障排處于adddc狀態(tài)(被表示為狀態(tài)cb11)中時(shí)不同設(shè)備的附加存儲(chǔ)體故障的邏輯表示。狀態(tài)cb11之前的狀態(tài)是排a和排b由于設(shè)備0中的故障而處于鎖步伙伴關(guān)系時(shí)。檢測到的后續(xù)錯(cuò)誤是具有故障設(shè)備0的排a的設(shè)備1的存儲(chǔ)體0中的故障。將可以看到,后續(xù)故障具有與故障0不同的粒度(更細(xì)小的粒度)。然而,即使對(duì)于如在cb11中表示的此類故障,處于更粗的排粒度的adddc狀態(tài)也可被保持。
圖9d是用來響應(yīng)于附加設(shè)備故障而產(chǎn)生adddc+1狀態(tài)(被表示為狀態(tài)ar2)的鎖步動(dòng)作的邏輯表示。將可以看到,狀態(tài)ar2可以被用來對(duì)狀態(tài)cb11或狀態(tài)cr2進(jìn)行響應(yīng)。在狀態(tài)ar2中,設(shè)備1被聲明為故障的,并且排a和b被提升到adddc+1。在一個(gè)實(shí)施例中,可以通過將排a和b中的錯(cuò)誤散布到處于不同(已改變)鎖步伙伴關(guān)系中的其他排(諸如在圖9h中表示的那些)來顛倒?fàn)顟B(tài)ar2。
圖9e是當(dāng)處于adddc狀態(tài)(被表示為狀態(tài)cr3)時(shí)同伴排中的同一設(shè)備故障的邏輯表示。在狀態(tài)cr3中,當(dāng)排a和排b已經(jīng)處于adddc中的鎖步伙伴關(guān)系時(shí)排b的設(shè)備0被檢測為后續(xù)故障。因此,排b的設(shè)備0是故障1并且排a的設(shè)備0是故障0。
圖9f是當(dāng)處于adddc狀態(tài)(被表示為狀態(tài)cb9)時(shí)同伴排中的同一設(shè)備中的新存儲(chǔ)體故障的邏輯表示。在狀態(tài)cb9中,設(shè)備0的存儲(chǔ)體0的故障是同伴排b中的同一設(shè)備故障。狀態(tài)cb9可以被看作等同于故障cr3的邏輯,即使故障具有不同的粒度(存儲(chǔ)體故障比對(duì)設(shè)備故障)。
圖9g是用來響應(yīng)于同伴排中的附加故障產(chǎn)生adddc+1狀態(tài)(被表示為狀態(tài)ar3)的鎖步動(dòng)作的邏輯表示。狀態(tài)ar3表示對(duì)于狀態(tài)cr3或?qū)τ跔顟B(tài)cb9的典型錯(cuò)誤校正動(dòng)作,在其中存儲(chǔ)器控制器映射出排b的設(shè)備0為故障設(shè)備。典型地,存儲(chǔ)器控制器也將發(fā)起維護(hù)請(qǐng)求,因?yàn)楣收蠀^(qū)不能處置第三設(shè)備故障。
圖9h是用來響應(yīng)于同伴區(qū)中的同一設(shè)備故障而重新指定鎖步伙伴關(guān)系以保持在關(guān)于映射到新排的同伴區(qū)的adddc狀態(tài)(被表示為狀態(tài)ar4)中的鎖步動(dòng)作的邏輯表示。代替采取ar3的傳統(tǒng)動(dòng)作,在一個(gè)實(shí)施例中,當(dāng)存儲(chǔ)器控制器響應(yīng)于后續(xù)故障找到對(duì)于鎖步對(duì)的每一半的新鎖步伙伴時(shí),該系統(tǒng)可以延遲維護(hù)請(qǐng)求。代替映射出同一鎖步區(qū)中的第二設(shè)備以及將故障提升到adddc+1,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器在其他排中找到新鎖步伙伴。在一個(gè)實(shí)施例中,系統(tǒng)采用將區(qū)逆向備用回到非鎖步配置,之后是兩個(gè)正向備用操作。
在一個(gè)實(shí)施例中,在顛倒鎖步伙伴關(guān)系之后(例如經(jīng)由逆向備用),存儲(chǔ)器控制器將具有原始故障0的排a設(shè)置為具有可用非故障排c的新鎖步伙伴。此外,具有原始故障1的排b被匹配為關(guān)于非故障排d的鎖步伙伴??吹脚舃和排d現(xiàn)在是鎖步伙伴,排b中的設(shè)備0的故障現(xiàn)在是故障0。兩個(gè)鎖步伙伴關(guān)系現(xiàn)在處于adddc。因此,ar4創(chuàng)建兩個(gè)adddc區(qū),每一個(gè)都具有一個(gè)被映射出的設(shè)備,而不是具有兩個(gè)被映射出的設(shè)備的單個(gè)adddc+1區(qū)。ar4因此可以延遲對(duì)后續(xù)故障的維護(hù)請(qǐng)求。
圖9i是用來響應(yīng)于同伴區(qū)的同一設(shè)備中的新存儲(chǔ)體故障而重新指定鎖步伙伴關(guān)系以保持在關(guān)于對(duì)于具有故障設(shè)備的排的新同伴排以及先前同伴排之內(nèi)的同伴存儲(chǔ)體的adddc狀態(tài)(被表示為狀態(tài)ab9)的鎖步動(dòng)作的邏輯表示。在狀態(tài)ab9中,如同狀態(tài)ar4,當(dāng)存儲(chǔ)器控制器響應(yīng)于后續(xù)故障找到對(duì)于鎖步對(duì)的每一半的新鎖步伙伴時(shí),該系統(tǒng)可以延遲維護(hù)請(qǐng)求。在ab9中尋址的故障是同伴排或同伴區(qū)中的后續(xù)存儲(chǔ)體故障。因此,存儲(chǔ)器控制器不需要將整個(gè)排b映射到新非故障排,而是可以簡單地重新映射對(duì)于故障存儲(chǔ)體0的鎖步伙伴關(guān)系。
在一個(gè)實(shí)施例中,在顛倒鎖步伙伴關(guān)系之后(例如經(jīng)由逆向備用),存儲(chǔ)器控制器將具有原始故障0的排a設(shè)置為關(guān)于可用非故障排c的新鎖步伙伴。此外,具有原始故障1的排b的存儲(chǔ)體0被匹配為關(guān)于排b的非故障存儲(chǔ)體15(或其他存儲(chǔ)體)的鎖步伙伴。看到排b的存儲(chǔ)體0和存儲(chǔ)體15是新的鎖步伙伴,排0的故障現(xiàn)在是故障0。兩個(gè)鎖步伙伴關(guān)系現(xiàn)在處于adddc。因此,像ar4那樣,狀態(tài)ab9創(chuàng)建兩個(gè)adddc區(qū),每一個(gè)都具有一個(gè)被映射出的設(shè)備,而不是具有兩個(gè)被映射出的設(shè)備的單個(gè)adddc+1區(qū)。ab9因此可以延遲對(duì)后續(xù)故障的維護(hù)請(qǐng)求。
圖10是用于動(dòng)態(tài)管理鎖步配置的過程的實(shí)施例的流程圖。過程1000可以由存儲(chǔ)器控制器(諸如存儲(chǔ)器控制器的錯(cuò)誤引擎和/或其他鎖步管理邏輯)來執(zhí)行,以管理系統(tǒng)中的鎖步伙伴關(guān)系以用于錯(cuò)誤校正。存儲(chǔ)器控制器的錯(cuò)誤檢測邏輯在存儲(chǔ)器的第一部分中檢測硬錯(cuò)誤,1002。第一部分可以具有由錯(cuò)誤檢測邏輯監(jiān)控的任何粒度。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器在存儲(chǔ)器的第一部分和第二部分之間設(shè)置鎖步伙伴關(guān)系以在鎖步伙伴上散布錯(cuò)誤校正,1004。在一個(gè)實(shí)施例中,鎖步伙伴關(guān)系被預(yù)先配置。將理解,當(dāng)提到在“第一部分”中檢測錯(cuò)誤時(shí),未必整個(gè)第一部分都是故障的,只是在該部分內(nèi)存在故障。例如,該第一部分可以是跨排中的所有設(shè)備的整個(gè)存儲(chǔ)體,在這里在一個(gè)具體設(shè)備的僅一個(gè)存儲(chǔ)體中檢測錯(cuò)誤。該第一部分被匹配為關(guān)于相同尺寸的第二部分的鎖步伙伴。
在生成鎖步伙伴關(guān)系以散布錯(cuò)誤校正之后,或者在應(yīng)用預(yù)先配置的鎖步伙伴關(guān)系之后,錯(cuò)誤檢測邏輯檢測鎖步伙伴關(guān)系中的另一硬錯(cuò)誤,1006。如上文描述的,后續(xù)錯(cuò)誤可以是許多不同錯(cuò)誤中的任一個(gè)。鎖步伙伴關(guān)系之外的存儲(chǔ)器的一部分中的后續(xù)錯(cuò)誤可以利用被創(chuàng)建的不同伙伴關(guān)系或利用維護(hù)請(qǐng)求來處置。然而,在一個(gè)實(shí)施例中,可以通過鎖步伙伴關(guān)系中的改變來處置包括在鎖步伙伴關(guān)系中的一部分中的后續(xù)錯(cuò)誤。在一個(gè)實(shí)施例中,如果與第一錯(cuò)誤相比,第二錯(cuò)誤出現(xiàn)在鎖定伙伴關(guān)系的另一半中,則可以在沒有維護(hù)請(qǐng)求的情況下處置后續(xù)錯(cuò)誤。因此,在一個(gè)實(shí)施例中,存儲(chǔ)器控制器取消或顛倒或清除鎖步伙伴關(guān)系,1008。
在一個(gè)實(shí)施例中,當(dāng)?shù)诙糠止收蠜]有在與現(xiàn)有映射出的設(shè)備相同的鎖步半上并且存在足夠的非故障存儲(chǔ)器來支持添加新虛擬鎖步對(duì)時(shí),存儲(chǔ)器控制器改變鎖步伙伴。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器動(dòng)態(tài)改變支持虛擬鎖步(諸如adddc)的系統(tǒng)中的鎖步伙伴。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器動(dòng)態(tài)改變采用鎖步但是不是虛擬鎖步(諸如dddc)的系統(tǒng)中的鎖步伙伴。可以以不同粒度應(yīng)用鎖步機(jī)制和用于改變鎖步伙伴的機(jī)制。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器確定是否以與先前伙伴關(guān)系相同的粒度來創(chuàng)建或設(shè)置新鎖步伙伴關(guān)系,或者是否使用不同粒度的一個(gè)或多個(gè)新伙伴關(guān)系,1010。在一個(gè)實(shí)施例中,如果要使用同一粒度,1012的是分支,則存儲(chǔ)器控制器在存儲(chǔ)器的第一部分和第三非故障部分之間設(shè)置新鎖步伙伴關(guān)系,1014。存儲(chǔ)器控制器可以保持存儲(chǔ)器的所有部分的狀態(tài)日志,并且可以因此確定一個(gè)部分是故障的還是非故障的。在響應(yīng)于檢測到的后續(xù)錯(cuò)誤而評(píng)估鎖步伙伴關(guān)系時(shí),存儲(chǔ)器控制器可以評(píng)估存儲(chǔ)器部分的狀態(tài)來確定是否存在非故障部分來用作替換鎖步伙伴。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器在存儲(chǔ)器的第二部分和第四部分之間設(shè)置新鎖步伙伴關(guān)系,1016。再次看到,使用同一粒度,將理解第三和第四部分具有與第一和第三部分相同的尺寸。
在一個(gè)實(shí)施例中,存儲(chǔ)器控制器確定改變鎖步伙伴關(guān)系中的粒度,1012的否分支。在一個(gè)實(shí)施例中,當(dāng)改變粒度時(shí),存儲(chǔ)器控制器以新粒度在第一部分或第二部分與不同粒度的第三部分之間設(shè)置新鎖步伙伴關(guān)系,1018。存儲(chǔ)器控制器然后可以為其他受到影響的部分設(shè)置新鎖步伙伴關(guān)系,1020。該其他新鎖步伙伴關(guān)系可以具有與第一部分和第二部分相同的粒度,或者也可以具有不同粒度。
在一個(gè)實(shí)施例中,改變粒度的確定可以包括確定:可以通過調(diào)整到更高或更粗的粒度以及以更粗的粒度在各部分之間設(shè)置新鎖步伙伴關(guān)系來將后續(xù)錯(cuò)誤與一個(gè)或多個(gè)先前錯(cuò)誤一起分組。因此,例如,對(duì)于已經(jīng)具有至少一個(gè)故障存儲(chǔ)體的同一dram中的后續(xù)存儲(chǔ)體故障,存儲(chǔ)器控制器可以確定整個(gè)dram都出現(xiàn)故障。然后,存儲(chǔ)器控制器可以基于通過將整個(gè)dram的數(shù)據(jù)映射出來使故障dram與非故障dram合作而設(shè)置新伙伴關(guān)系。
圖11是可以在其中實(shí)施動(dòng)態(tài)鎖步管理的計(jì)算系統(tǒng)的實(shí)施例的框圖。系統(tǒng)1100表示根據(jù)本文中描述的任何實(shí)施例的計(jì)算設(shè)備,并且可以是膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、服務(wù)器、游戲或娛樂控制系統(tǒng)、掃描儀、復(fù)印機(jī)、印刷機(jī)、路由或交換設(shè)備、或其他電子設(shè)備。系統(tǒng)1100包括處理器1120,其為系統(tǒng)1100提供指令的處理、操作管理和執(zhí)行。處理器1120可以包括任何類型的微處理器、中央處理單元(cpu)、處理核、或用來為系統(tǒng)1100提供處理的其他處理硬件。處理器1120控制系統(tǒng)1100的總體操作,并且可以是或包括一個(gè)或多個(gè)可編程通用或?qū)S梦⑻幚砥鳌?shù)字信號(hào)處理器(dsp)、可編程控制器、專用集成電路(asic)、可編程邏輯設(shè)備(pld)等、或此類設(shè)備的組合。
存儲(chǔ)器子系統(tǒng)1130表示系統(tǒng)1100的主存儲(chǔ)器,并且為要由處理器1120執(zhí)行的代碼或要在執(zhí)行例程時(shí)使用的數(shù)據(jù)值提供暫時(shí)存儲(chǔ)。存儲(chǔ)器子系統(tǒng)1130可以包括一個(gè)或多個(gè)存儲(chǔ)器設(shè)備,諸如只讀存儲(chǔ)器(rom)、閃速存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(ram)的一個(gè)或多個(gè)變體、或其他存儲(chǔ)器設(shè)備、或此類設(shè)備的組合。存儲(chǔ)器子系統(tǒng)1130除了其他許多東西之外還存儲(chǔ)和托管用以為系統(tǒng)1100中指令的執(zhí)行提供軟件平臺(tái)的操作系統(tǒng)(os)1136。此外,其他指令1138被存儲(chǔ)并從存儲(chǔ)器子系統(tǒng)1130執(zhí)行以提供系統(tǒng)1100的邏輯和處理。由處理器1120來執(zhí)行os1136和指令1138。存儲(chǔ)器子系統(tǒng)1130包括存儲(chǔ)器設(shè)備1132,在那里其存儲(chǔ)數(shù)據(jù)、指令、程序或其他項(xiàng)。在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)包括存儲(chǔ)器控制器1134,其是用來生成命令并將命令發(fā)布給存儲(chǔ)器設(shè)備1132的存儲(chǔ)器控制器。將理解,存儲(chǔ)器控制器1134可以是處理器1120的物理部分。
處理器1120和存儲(chǔ)器子系統(tǒng)1130被耦合至總線/總線系統(tǒng)1110。總線1110是表示由適當(dāng)?shù)臉蚪悠?、適配器和/或控制器連接的任何一個(gè)或多個(gè)分離的物理總線、通信線/接口、和/或點(diǎn)對(duì)點(diǎn)連接的抽象。因此,總線1110可以包括例如系統(tǒng)總線、外圍部件互連(pci)總線、超傳輸或工業(yè)標(biāo)準(zhǔn)體系架構(gòu)(isa)總線、小計(jì)算機(jī)系統(tǒng)接口(scsi)總線、通用串行總線(usb)或電氣與電子工程師協(xié)會(huì)(ieee)標(biāo)準(zhǔn)1394總線(通常被稱為“火線”)中的一個(gè)或多個(gè)??偩€1110的各總線也可以對(duì)應(yīng)于網(wǎng)絡(luò)接口1150中的接口。
系統(tǒng)1100還包括耦合至總線1110的一個(gè)或多個(gè)輸入/輸出(i/o)接口1140、網(wǎng)絡(luò)接口1150、一個(gè)或多個(gè)內(nèi)部大容量存儲(chǔ)設(shè)備1160、和外圍接口1170。i/o接口1140可以包括用戶通過其與系統(tǒng)1100交互的一個(gè)或多個(gè)接口部件(例如視頻、音頻和/或字母數(shù)字接口連接)。網(wǎng)絡(luò)接口1150為系統(tǒng)1100提供通過一個(gè)或多個(gè)網(wǎng)絡(luò)與遠(yuǎn)程設(shè)備(例如服務(wù)器、其他計(jì)算設(shè)備)通信的能力。網(wǎng)絡(luò)接口1150可以包括以太網(wǎng)適配器、無線互連部件、usb(通用串行總線)、或其他基于有線或無線標(biāo)準(zhǔn)或?qū)S械慕涌凇?/p>
儲(chǔ)存器1160可以是或包括用于以非易失性方式存儲(chǔ)大量數(shù)據(jù)的任何常規(guī)介質(zhì),諸如一個(gè)或多個(gè)基于磁性、固態(tài)、或光學(xué)的盤、或組合。儲(chǔ)存器1160以持久狀態(tài)保持代碼或指令和數(shù)據(jù)1162(即,值被保留,盡管到系統(tǒng)1100的電源中斷)。儲(chǔ)存器1160一般可以被視為“存儲(chǔ)器”,盡管存儲(chǔ)器1130是用來向處理器1120提供指令的執(zhí)行或操作存儲(chǔ)器。然而儲(chǔ)存器1160是非易失性的,存儲(chǔ)器1130可以包括易失性存儲(chǔ)器(即,數(shù)據(jù)的值或狀態(tài)為不確定的,如果到系統(tǒng)1100的電源被中斷的話)。
外圍接口1170可以包括上文沒有具體提到的任何硬件接口。外設(shè)通常指的是依賴性地連接至系統(tǒng)1100的設(shè)備。相關(guān)連接是在那里系統(tǒng)1100提供軟件和/或硬件平臺(tái)的連接,操作在所述軟件和/或硬件平臺(tái)上執(zhí)行并且用戶與所述軟件和/或硬件平臺(tái)交互。
在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)1130包括鎖步管理器1180,其可以是根據(jù)本文中描述的任何實(shí)施例的存儲(chǔ)器管理。在一個(gè)實(shí)施例中,鎖步管理器1180是存儲(chǔ)器控制器1134的部分。管理器1180可以執(zhí)行正向和逆向備用。特別地,管理器1180可以采用逆向備用來顛倒鎖步伙伴關(guān)系指派并且將鎖步伙伴中的一個(gè)或二者重新指定給新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,系統(tǒng)1100是在底盤系統(tǒng)中包括多個(gè)服務(wù)器板或服務(wù)器刀片的服務(wù)器系統(tǒng)。每個(gè)刀片都可以包括多個(gè)處理器1170,和許多存儲(chǔ)器設(shè)備1132。在一個(gè)實(shí)施例中,鎖步管理器1180可以動(dòng)態(tài)改變對(duì)于設(shè)備1132的部分的鎖步伙伴關(guān)系。
圖12是在其中可以實(shí)施動(dòng)態(tài)鎖步管理的移動(dòng)設(shè)備的實(shí)施例的框圖。設(shè)備1200表示移動(dòng)計(jì)算設(shè)備,諸如計(jì)算平板電腦、移動(dòng)電話或智能電話、無線使能電子閱讀器、可穿戴計(jì)算設(shè)備、或其他移動(dòng)設(shè)備。將理解,籠統(tǒng)地示出部件中的某些,并且不是此類設(shè)備的所有部件都在設(shè)備1200中示出。
設(shè)備1200包括處理器1210,其執(zhí)行設(shè)備1200的主要處理操作。處理器1210可以包括一個(gè)或多個(gè)物理設(shè)備,諸如微處理器、應(yīng)用處理器、微控制器、可編程邏輯設(shè)備、或其他處理裝置。由處理器1210執(zhí)行的處理操作包括操作平臺(tái)或操作系統(tǒng)的執(zhí)行,在所述操作平臺(tái)或操作系統(tǒng)上執(zhí)行應(yīng)用程序和/或設(shè)備功能。處理操作包括與關(guān)于人類用戶或關(guān)于其他設(shè)備的i/o(輸入/輸出)有關(guān)的操作,與電源管理有關(guān)的操作、和/或與將設(shè)備1200連接到另一設(shè)備有關(guān)的操作。處理操作還可以包括與音頻i/o和/或顯示i/o有關(guān)的操作。
在一個(gè)實(shí)施例中,設(shè)備1200包括音頻子系統(tǒng)1220,其表示與向計(jì)算設(shè)備提供音頻功能相關(guān)聯(lián)的硬件(例如音頻硬件和音頻電路)和軟件(例如驅(qū)動(dòng)程序、編解碼器)部件。音頻功能可以包括揚(yáng)聲器和/或耳機(jī)輸出以及麥克風(fēng)輸入。用于此類功能的設(shè)備可以被集成到設(shè)備1200中,或者連接到設(shè)備1200。在一個(gè)實(shí)施例中,用戶通過提供被處理器1210接收并處理的音頻命令來與設(shè)備1200交互。
顯示子系統(tǒng)1230表示為用戶提供視覺和/或觸覺顯示以便與計(jì)算設(shè)備交互的硬件(例如顯示設(shè)備)和軟件(例如驅(qū)動(dòng)程序)部件。顯示子系統(tǒng)1230包括顯示接口1232,其包括用來向用戶提供顯示的特定屏幕或硬件設(shè)備。在一個(gè)實(shí)施例中,顯示接口1232包括與處理器1210分離、用以執(zhí)行與顯示有關(guān)的至少一些處理的邏輯。在一個(gè)實(shí)施例中,顯示子系統(tǒng)1230包括向用戶提供輸出和輸入二者的觸摸屏設(shè)備。在一個(gè)實(shí)施例中,顯示子系統(tǒng)1230包括向用戶提供輸出的高清晰度(hd)顯示器。高清晰度可以指的是具有近似100ppi(每英寸的像素)或更大的像素密度的顯示器,并且可以包括諸如全hd(例如1080p)、視網(wǎng)膜顯示器、4k(超高清晰度或uhd)、或其他的形式。
i/o控制器1240表示與同用戶的交互有關(guān)的硬件設(shè)備和軟件部件。i/o控制器1240可以操作用來管理作為音頻子系統(tǒng)1220和/或顯示子系統(tǒng)1230的部分的硬件。此外,i/o控制器1240圖示用于連接至設(shè)備1200的附加設(shè)備的連接點(diǎn),用戶可能通過所述附加設(shè)備來與系統(tǒng)交互。例如,可以被附接至設(shè)備1200的設(shè)備可能包括麥克風(fēng)設(shè)備、揚(yáng)聲器或立體聲系統(tǒng)、視頻系統(tǒng)或其他顯示設(shè)備、鍵盤或小鍵盤設(shè)備、或供具體應(yīng)用(諸如讀卡器或其他設(shè)備)使用的其他i/o設(shè)備。
如上文提到的,i/o控制器1240可以與音頻子系統(tǒng)1220和/或顯示子系統(tǒng)1230交互。例如,通過麥克風(fēng)或其他音頻設(shè)備的輸入可以為設(shè)備1200的一個(gè)或多個(gè)應(yīng)用程序或功能提供輸入或命令。此外,代替顯示輸出或除了顯示輸出之外,可以提供音頻輸出。在另一示例中,如果顯示子系統(tǒng)包括觸摸屏,則顯示設(shè)備還充當(dāng)輸入設(shè)備,其可以至少部分由i/o控制器1240管理。在設(shè)備1200上還可以存在由i/o控制器1240管理的附加按鈕或開關(guān)以提供i/o功能。
在一個(gè)實(shí)施例中,i/o控制器1240管理設(shè)備諸如加速度計(jì)、相機(jī)、光傳感器或其他環(huán)境傳感器、陀螺儀、全球定位系統(tǒng)(gps)或可以被包括在設(shè)備1200中的其他硬件。輸入可以是直接用戶交互的部分,以及向系統(tǒng)提供環(huán)境輸入以影響其操作(諸如對(duì)噪聲進(jìn)行濾波、調(diào)整顯示以進(jìn)行亮度檢測、向相機(jī)應(yīng)用閃光、或其他特征)。在一個(gè)實(shí)施例中,設(shè)備1200包括電源管理1250,其管理電池電源使用、電池的充電、和與省電操作有關(guān)的特征。
存儲(chǔ)器子系統(tǒng)1260包括用于將信息存儲(chǔ)在設(shè)備1200中的(一個(gè)或多個(gè))存儲(chǔ)器設(shè)備1262。存儲(chǔ)器子系統(tǒng)1260可以包括非易失性(狀態(tài)不改變,如果到存儲(chǔ)器設(shè)備的電源被中斷的話)和/或易失性(狀態(tài)不確定,如果到存儲(chǔ)器設(shè)備的電源被中斷的話)存儲(chǔ)器設(shè)備。存儲(chǔ)器1260可以存儲(chǔ)應(yīng)用數(shù)據(jù)、用戶數(shù)據(jù)、音樂、照片、文檔或其他數(shù)據(jù)、以及與系統(tǒng)1200的應(yīng)用程序和功能的執(zhí)行有關(guān)的系統(tǒng)數(shù)據(jù)(不管長期的還是臨時(shí)的)。在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)1260包括存儲(chǔ)器控制器1264(其還可以被視為系統(tǒng)1200的控制的部分,并且可以被潛在地視為處理器1210的部分)。存儲(chǔ)器控制器1264包括用來生成命令并向存儲(chǔ)器設(shè)備1262發(fā)布命令的調(diào)度器。
連通性1270包括用來使得設(shè)備1200能夠與外部設(shè)備通信的硬件設(shè)備(例如無線和/或有線連接器和通信硬件)和軟件部件(例如驅(qū)動(dòng)程序、協(xié)議棧)。外部設(shè)備可以是分離的設(shè)備諸如其他計(jì)算設(shè)備、無線接入點(diǎn)或基站,以及外設(shè)諸如耳機(jī)、印刷機(jī)或其他設(shè)備。
連通性1270可以包括多個(gè)不同類型的連通性。概括來說,設(shè)備1200被圖示為具有蜂窩連通性1272和無線連通性1274。蜂窩連通性1272通常指的是由無線載波提供的蜂窩網(wǎng)絡(luò)連通性,諸如經(jīng)由gsm(全球移動(dòng)通信系統(tǒng))或變化或衍生物、cdma(碼多分址)或變化或衍生物、tdm(時(shí)分復(fù)用)或變化或衍生物、lte(長期演進(jìn)——也被稱為“4g”)、或其他蜂窩服務(wù)標(biāo)準(zhǔn)提供的蜂窩網(wǎng)絡(luò)連通性。無線連通性1274指的是非蜂窩的無線連通性,并且可以包括個(gè)域網(wǎng)(諸如藍(lán)牙)、局域網(wǎng)(諸如wifi)、和/或廣域網(wǎng)(諸如wimax)、或其他無線通信。無線通信指的是通過調(diào)制電磁輻射的使用數(shù)據(jù)經(jīng)過非固體介質(zhì)的傳送。有線通信通過固體通信介質(zhì)發(fā)生。
外圍連接1280包括硬件接口和連接器,以及軟件部件(例如驅(qū)動(dòng)程序、協(xié)議棧)來獲得外圍連接。將理解,設(shè)備1200可以既是到其他計(jì)算設(shè)備的外圍設(shè)備(“去到”1282),又具有連接到其的外圍設(shè)備(“來自”1284)。設(shè)備1200通常具有“對(duì)接”連接器,其用以連接到其他計(jì)算設(shè)備以用于諸如管理(例如下載和/或上傳、改變、同步)設(shè)備1200上的內(nèi)容的目的。此外,對(duì)接連接器可以允許設(shè)備1200連接到某些外設(shè),其允許設(shè)備1200來控制例如到視聽或其他系統(tǒng)的內(nèi)容輸出。
除了專有對(duì)接連接器或其他外圍連接硬件之外,設(shè)備1200可以經(jīng)由常用或基于標(biāo)準(zhǔn)的連接器來獲得外圍連接1280。常用類型可以包括通用串行總線(usb)連接器(其可以包括許多不同硬件接口中的任一個(gè))、包括迷你顯示端口(mdp)的顯示端口、高清晰度多媒體接口(hdmi)、火線或其他類型。
在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)1260包括鎖步管理器1266,其可以是根據(jù)本文中描述的任何實(shí)施例的存儲(chǔ)器管理。在一個(gè)實(shí)施例中,鎖步管理器1266是存儲(chǔ)器控制器1264的部分。管理器1266可以執(zhí)行正向和逆向備用。特別地,管理器1266可以采用逆向備用來顛倒鎖步伙伴關(guān)系指派并且將鎖步伙伴中的一個(gè)或二者重新指定給新鎖步伙伴關(guān)系。
在一個(gè)方面中,一種用于管理存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤的方法包括:在鎖步伙伴關(guān)系中設(shè)置為關(guān)于第二存儲(chǔ)器部分的鎖步伙伴的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤,其中錯(cuò)誤校正要被散布在鎖步伙伴上;響應(yīng)于檢測到硬錯(cuò)誤,取消第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系;在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系;以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。
在一個(gè)實(shí)施例中,檢測硬錯(cuò)誤包括檢測鎖步伙伴關(guān)系中的第二硬錯(cuò)誤。在一個(gè)實(shí)施例中,該鎖步伙伴關(guān)系包括其中硬錯(cuò)誤被映射到備用存儲(chǔ)器部分的虛擬鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的排。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的存儲(chǔ)體。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)設(shè)備。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括在分離的排中的dram設(shè)備。在一個(gè)實(shí)施例中,第三存儲(chǔ)器部分和第四存儲(chǔ)器部分包括在不同排中的dram設(shè)備。在一個(gè)實(shí)施例中,在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系或者在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系中的至少一個(gè)包括改變鎖步伙伴關(guān)系的粒度等級(jí)。在一個(gè)實(shí)施例中,在第一存儲(chǔ)器部分中檢測硬錯(cuò)誤包括以不同粒度等級(jí)在可以與第一存儲(chǔ)器部分一起分組的存儲(chǔ)器部分中檢測硬錯(cuò)誤,并且其中創(chuàng)建新鎖步伙伴關(guān)系包括以該不同粒度等級(jí)在第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,創(chuàng)建新鎖步伙伴關(guān)系包括動(dòng)態(tài)改變鎖步表中的鎖步伙伴關(guān)系條目。在一個(gè)實(shí)施例中,檢測硬錯(cuò)誤包括檢測第二硬錯(cuò)誤,并且進(jìn)一步包括:在檢測第二硬錯(cuò)誤之前,在第一存儲(chǔ)器部分或第二存儲(chǔ)器部分中檢測第一硬錯(cuò)誤;響應(yīng)于檢測到第一硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置原始鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,檢測硬錯(cuò)誤包括在設(shè)置于與第二存儲(chǔ)器部分的預(yù)定鎖步伙伴關(guān)系中的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤。
在一個(gè)方面中,一種用來管理相關(guān)聯(lián)存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤的存儲(chǔ)器管理設(shè)備,包括:錯(cuò)誤檢測邏輯,其用來在存儲(chǔ)器子系統(tǒng)的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤,其中第一存儲(chǔ)器部分在鎖步伙伴關(guān)系中被設(shè)置為關(guān)于第二存儲(chǔ)器部分的鎖步伙伴,其中錯(cuò)誤校正要被散布在鎖步伙伴上;以及錯(cuò)誤校正邏輯,其用來響應(yīng)于在第一存儲(chǔ)器部分中檢測到硬錯(cuò)誤而取消第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系,并且在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。
在一個(gè)方面中,該存儲(chǔ)器管理設(shè)備被包括在存儲(chǔ)器子系統(tǒng)的存儲(chǔ)器控制器中,該存儲(chǔ)器子系統(tǒng)包括多個(gè)dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器設(shè)備),其均包括存儲(chǔ)器陣列,其中該存儲(chǔ)器陣列是根據(jù)多個(gè)不同粒度等級(jí)可尋址的;其中該存儲(chǔ)器控制器包括:錯(cuò)誤檢測邏輯,其用來在存儲(chǔ)器子系統(tǒng)的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤,其中該第一存儲(chǔ)器部分在鎖步伙伴關(guān)系中被設(shè)置為關(guān)于第二存儲(chǔ)器部分的鎖步伙伴,其中錯(cuò)誤校正要被散布在鎖步伙伴上;以及錯(cuò)誤校正邏輯,其用來響應(yīng)于在第一存儲(chǔ)器部分中檢測到硬錯(cuò)誤而取消第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系,并且在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系;并且其中存儲(chǔ)器子系統(tǒng)被結(jié)合到底盤系統(tǒng)中以耦合到刀片服務(wù)器。
在一個(gè)實(shí)施例中,該鎖步伙伴關(guān)系包括其中硬錯(cuò)誤被映射到備用存儲(chǔ)器部分的虛擬鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的排、存儲(chǔ)器的存儲(chǔ)體或dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)設(shè)備之一。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括在分離的排中的dram設(shè)備。在一個(gè)實(shí)施例中,第三存儲(chǔ)器部分和第四存儲(chǔ)器部分包括在不同排中的dram設(shè)備。在一個(gè)實(shí)施例中,該錯(cuò)誤校正邏輯用來當(dāng)在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系或者在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系時(shí)改變至少一個(gè)鎖步伙伴關(guān)系的粒度等級(jí)。在一個(gè)實(shí)施例中,該錯(cuò)誤檢測邏輯用來以不同粒度等級(jí)在可以與第一存儲(chǔ)器部分一起分組的存儲(chǔ)器部分中檢測硬錯(cuò)誤,并且其中該錯(cuò)誤校正邏輯用來以該不同粒度等級(jí)在第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該錯(cuò)誤校正邏輯用來通過動(dòng)態(tài)改變鎖步表中的鎖步伙伴關(guān)系條目來創(chuàng)建新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,錯(cuò)誤檢測邏輯用于第二硬錯(cuò)誤,并且進(jìn)一步包括:在檢測第二硬錯(cuò)誤之前,該錯(cuò)誤檢測邏輯用來在第一存儲(chǔ)器部分或第二存儲(chǔ)器部分中檢測第一硬錯(cuò)誤;并且錯(cuò)誤校正邏輯用來響應(yīng)于檢測到第一硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置原始鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該錯(cuò)誤檢測邏輯用來在設(shè)置于與第二存儲(chǔ)器部分的預(yù)定鎖步伙伴關(guān)系中的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤。
在一個(gè)方面中,一種用于管理存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤的設(shè)備,包括:用于在鎖步伙伴關(guān)系中設(shè)置為關(guān)于第二存儲(chǔ)器部分的鎖步伙伴的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤的裝置,其中錯(cuò)誤校正要被散布在鎖步伙伴上;用于響應(yīng)于檢測到硬錯(cuò)誤取消第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系的裝置;用于在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系的裝置;以及用于在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系的裝置。該設(shè)備可以包括用于執(zhí)行根據(jù)如上文闡述的方法的任何實(shí)施例的操作的裝置。
在一個(gè)方面中,一種包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的制品,該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)具有存儲(chǔ)在其上的內(nèi)容,該內(nèi)容當(dāng)被訪問時(shí)使機(jī)器執(zhí)行包括以下各項(xiàng)的操作:在鎖步伙伴關(guān)系中設(shè)置為關(guān)于第二存儲(chǔ)器部分的鎖步伙伴的第一存儲(chǔ)器部分中檢測硬錯(cuò)誤,其中錯(cuò)誤校正要被散布在鎖步伙伴上;響應(yīng)于檢測到硬錯(cuò)誤,取消第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系;在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系;以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間創(chuàng)建新鎖步伙伴關(guān)系。該制品可以包括用于執(zhí)行根據(jù)如上文闡述的方法的任何實(shí)施例的操作的內(nèi)容。
在一個(gè)方面中,一種用于管理存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤的方法,包括:在第一存儲(chǔ)器部分中檢測硬錯(cuò)誤;在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置鎖步伙伴關(guān)系,其中錯(cuò)誤校正被散布在第一存儲(chǔ)器部分和第二存儲(chǔ)器部分上;在第二存儲(chǔ)器部分中檢測硬錯(cuò)誤;響應(yīng)于在第二存儲(chǔ)器部分中檢測到硬錯(cuò)誤,顛倒第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系;在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系;以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系。
在一個(gè)實(shí)施例中,檢測硬錯(cuò)誤包括檢測鎖步伙伴關(guān)系中的第二硬錯(cuò)誤。在一個(gè)實(shí)施例中,該鎖步伙伴關(guān)系包括其中硬錯(cuò)誤被映射到備用存儲(chǔ)器部分的虛擬鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的排。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的存儲(chǔ)體。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)設(shè)備。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括在分離的排中的dram設(shè)備。在一個(gè)實(shí)施例中,第三存儲(chǔ)器部分和第四存儲(chǔ)器部分包括在不同排中的dram設(shè)備。在一個(gè)實(shí)施例中,在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系或者在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系中的至少一個(gè)包括改變鎖步伙伴關(guān)系的粒度等級(jí)。在一個(gè)實(shí)施例中,在第一存儲(chǔ)器部分中檢測硬錯(cuò)誤包括以不同粒度等級(jí)在可以與第一存儲(chǔ)器部分一起分組的存儲(chǔ)器部分中檢測硬錯(cuò)誤,并且其中設(shè)置新鎖步伙伴關(guān)系包括以該不同粒度等級(jí)在第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,設(shè)置新鎖步伙伴關(guān)系包括動(dòng)態(tài)改變鎖步表中的鎖步伙伴關(guān)系條目。在一個(gè)實(shí)施例中,在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置原始鎖步伙伴關(guān)系包括實(shí)施自適應(yīng)雙設(shè)備數(shù)據(jù)校正(adddc)操作。
在一個(gè)方面中,一種用來管理相關(guān)聯(lián)的存儲(chǔ)器子系統(tǒng)中的錯(cuò)誤的存儲(chǔ)器管理設(shè)備包括:錯(cuò)誤檢測邏輯,其用來在存儲(chǔ)器子系統(tǒng)的第一存儲(chǔ)器部分中檢測第一硬錯(cuò)誤,并且隨后檢測第二硬錯(cuò)誤;以及錯(cuò)誤校正邏輯,其用來響應(yīng)于檢測到第一硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置鎖步伙伴關(guān)系,用來在第一存儲(chǔ)器部分和第二存儲(chǔ)器部分上散布錯(cuò)誤校正,以及用來響應(yīng)于隨后檢測到第二硬錯(cuò)誤而顛倒第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系,以及用來響應(yīng)于隨后檢測到第二硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系。
在一個(gè)方面中,該存儲(chǔ)器管理設(shè)備被包括在存儲(chǔ)器子系統(tǒng)的存儲(chǔ)器控制器中,該存儲(chǔ)器子系統(tǒng)包括多個(gè)dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器設(shè)備),其均包括存儲(chǔ)器陣列,其中該存儲(chǔ)器陣列是根據(jù)多個(gè)不同粒度等級(jí)可尋址的;其中該存儲(chǔ)器控制器包括:錯(cuò)誤檢測邏輯,其用來在存儲(chǔ)器子系統(tǒng)的第一存儲(chǔ)器部分中檢測第一硬錯(cuò)誤,并且隨后檢測第二硬錯(cuò)誤;以及錯(cuò)誤校正邏輯,其用來響應(yīng)于檢測到第一硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置鎖步伙伴關(guān)系,用來在第一存儲(chǔ)器部分和第二存儲(chǔ)器部分上散布錯(cuò)誤校正,以及用來響應(yīng)于隨后檢測到第二硬錯(cuò)誤而顛倒第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間的鎖步伙伴關(guān)系,以及用來響應(yīng)于隨后檢測到第二硬錯(cuò)誤而在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間以及在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系;并且其中存儲(chǔ)器子系統(tǒng)被結(jié)合到底盤系統(tǒng)中以耦合到刀片服務(wù)器。
在一個(gè)實(shí)施例中,該鎖步伙伴關(guān)系包括其中硬錯(cuò)誤被映射到備用存儲(chǔ)器部分的虛擬鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括存儲(chǔ)器的排、存儲(chǔ)器的存儲(chǔ)體或dram(動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器)設(shè)備之一。在一個(gè)實(shí)施例中,第一存儲(chǔ)器部分和第二存儲(chǔ)器部分包括在分離的排中的dram設(shè)備。在一個(gè)實(shí)施例中,第三存儲(chǔ)器部分和第四存儲(chǔ)器部分包括在不同排中的dram設(shè)備。在一個(gè)實(shí)施例中,該錯(cuò)誤校正邏輯用來當(dāng)在作為鎖步伙伴的第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系或者在作為鎖步伙伴的第二存儲(chǔ)器部分和第四存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系時(shí)改變至少一個(gè)鎖步伙伴關(guān)系的粒度等級(jí)。在一個(gè)實(shí)施例中,該錯(cuò)誤檢測邏輯用來以不同粒度等級(jí)在可以與第一存儲(chǔ)器部分一起分組的存儲(chǔ)器部分中檢測硬錯(cuò)誤,并且其中該錯(cuò)誤校正邏輯用來以該不同粒度等級(jí)在第一存儲(chǔ)器部分和第三存儲(chǔ)器部分之間設(shè)置新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該錯(cuò)誤校正邏輯用來通過動(dòng)態(tài)改變鎖步表中的鎖步伙伴關(guān)系條目來設(shè)置新鎖步伙伴關(guān)系。在一個(gè)實(shí)施例中,該錯(cuò)誤校正邏輯用來將在作為鎖步伙伴的第一存儲(chǔ)器部分和第二存儲(chǔ)器部分之間設(shè)置原始鎖步伙伴關(guān)系作為自適應(yīng)雙設(shè)備數(shù)據(jù)校正(adddc)實(shí)施方式的操作。
如本文中圖示的流程圖提供各種過程動(dòng)作序列的示例。該流程圖可以指示要由軟件或固件例程執(zhí)行的操作、以及物理操作。在一個(gè)實(shí)施例中,流程圖可以圖示有限狀態(tài)機(jī)(fsm)的狀態(tài),其可以實(shí)施在硬件和/或軟件中。盡管以特定序列或次序來示出,但是除非以其他方式規(guī)定,否則動(dòng)作的次序可以被修改。因此,所圖示的實(shí)施例應(yīng)該僅被理解為示例,并且可以以不同次序執(zhí)行該過程,并且可以并行地執(zhí)行一些動(dòng)作。此外,一個(gè)或多個(gè)動(dòng)作在各種實(shí)施例中可以被省略;因此,不是所有的動(dòng)作在每一個(gè)實(shí)施例中都需要。其他過程流程是可能的。
就在本文中描述各種操作或功能來說,它們可以被描述或限定為軟件代碼、指令、配置和/或數(shù)據(jù)。內(nèi)容可以是直接可執(zhí)行的(“對(duì)象”或“可執(zhí)行”形式)、源代碼、或差分代碼(“增量”或“補(bǔ)丁”代碼)??梢越?jīng)由一種具有在其上存儲(chǔ)的內(nèi)容的制品、或經(jīng)由一種操作通信接口來經(jīng)由通信接口發(fā)送數(shù)據(jù)的方法來提供本文中描述的實(shí)施例的軟件內(nèi)容。一種機(jī)器可讀存儲(chǔ)介質(zhì)可以使機(jī)器執(zhí)行描述的功能或操作,并且包括以由機(jī)器(例如計(jì)算設(shè)備、電子系統(tǒng)、等等)可訪問的形式存儲(chǔ)信息的任何機(jī)構(gòu),諸如可記錄/不可記錄介質(zhì)(例如只讀存儲(chǔ)器(rom)、隨機(jī)存取存儲(chǔ)器(ram)、磁盤存儲(chǔ)介質(zhì)、光學(xué)存儲(chǔ)介質(zhì)、閃速存儲(chǔ)器設(shè)備、等等)。通信接口包括接口連接到硬連線、無線、光學(xué)、等等介質(zhì)中的任一個(gè)以到另一設(shè)備通信的任何機(jī)構(gòu),諸如存儲(chǔ)器總線接口、處理器總線接口、因特網(wǎng)連接、盤控制器等等??梢酝ㄟ^提供配置參數(shù)和/或發(fā)送信號(hào)來配置通信接口以便使通信接口準(zhǔn)備好提供描述軟件內(nèi)容的數(shù)據(jù)信號(hào)??梢越?jīng)由發(fā)送至通信接口的一個(gè)或多個(gè)命令或信號(hào)來訪問通信接口。
本文中描述的各種部件可以是用于執(zhí)行描述的操作或功能的裝置。本文中描述的每個(gè)部件都包括軟件、硬件或這些的組合。該部件可以被實(shí)施為軟件模塊、硬件模塊、專用硬件(例如專用硬件、專用集成電路(asic)、數(shù)字信號(hào)處理器(dsp)等等)、嵌入式控制器、硬連線電路等等。
除了本文中描述的那些之外,可以在不脫離本發(fā)明的范圍的情況下對(duì)本發(fā)明的公開的實(shí)施例和實(shí)施方式做出各種修改。因此,應(yīng)該以說明而非限制的意義來解釋本文中的圖示和示例。應(yīng)該僅僅通過對(duì)所附權(quán)利要求的參考來度量本發(fā)明的范圍。