分離地示出以指示軟件710的哪個(gè)部分與錯(cuò)誤信息722關(guān)聯(lián)。
[0066]在一個(gè)實(shí)施例中,模塊718可使得處理器704從存儲(chǔ)器702請(qǐng)求錯(cuò)誤信息。例如,存儲(chǔ)器702可產(chǎn)生錯(cuò)誤信息。在稍后的時(shí)間,處理器704可通過通信路徑708發(fā)送對(duì)錯(cuò)誤信息的請(qǐng)求。存儲(chǔ)器702可配置為通過通信路徑708用錯(cuò)誤信息響應(yīng)于所述請(qǐng)求。
[0067]圖8是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有錯(cuò)誤檢測(cè)和糾正模塊。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)800包括與圖7的存儲(chǔ)器702、處理器704、通信路徑706和708以及具有對(duì)信息720和722響應(yīng)的模塊718的軟件710相似的存儲(chǔ)器802、處理器804、通信路徑806和808以及具有對(duì)信息820和822響應(yīng)的模塊818的軟件810。然而,在該實(shí)施例中,軟件810還包括錯(cuò)誤檢測(cè)和糾正(EDAC)模塊824。
[0068]在一個(gè)實(shí)施例中,EDAC模塊824可配置為管理來自存儲(chǔ)器、高速緩存、輸入/輸出(I/O)裝置、外圍裝置、總線和/或數(shù)據(jù)系統(tǒng)800的其它方面的錯(cuò)誤信息,并且可配置為將這種信息暴露于更高的功能層,諸如應(yīng)用層。具體地說,EDAC模塊824可配置為從模塊818接收錯(cuò)誤信息。EDAC模塊824可配置為將錯(cuò)誤信息與其它信息組合,以使得其它模塊、應(yīng)用等可訪問錯(cuò)誤信息。
[0069]圖9是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有聚合模塊。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)900包括與圖7的存儲(chǔ)器702、處理器704、通信路徑706和708以及具有對(duì)信息720和722響應(yīng)的模塊718的軟件710相似的存儲(chǔ)器902、處理器904、通信路徑906和908以及具有對(duì)信息920和922響應(yīng)的第一模塊918的軟件910。然而,在該實(shí)施例中,軟件910還包括第二模塊926。第二模塊926配置為接收信息920。具體地說,這些其它信息920可包括與存儲(chǔ)器902的錯(cuò)誤無關(guān)的信息。其它信息920的至少一部分921可被第一模塊918接收。第一模塊918可配置為將錯(cuò)誤信息922與來自第二模塊926的其它信息920中的一些或全部組合。第一模塊918可配置為將組合的信息提供給單個(gè)接口。例如,第一模塊918可配置為將組合的信息提供給EDAC模塊,諸如圖8的EDAC模塊824。
[0070]圖10是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有從存儲(chǔ)器控制體系結(jié)構(gòu)模塊聚合信息的錯(cuò)誤糾正模塊。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)1000包括與圖9的存儲(chǔ)器902、處理器904、通信路徑906和908以及具有對(duì)信息920和922響應(yīng)的模塊918和926的軟件910相似的存儲(chǔ)器1002、處理器1004、通信路徑1006和1008以及具有對(duì)信息1020和1022響應(yīng)的模塊1018和1026的軟件1010。然而,在該實(shí)施例中,模塊1018是錯(cuò)誤糾正(EC)模塊1018,第二模塊1026是MCA模塊1026。[0071 ] MCA模塊1026配置為控制對(duì)諸如圖4的MCA寄存器452的MCA寄存器的訪問。信息1020表示來自MCA寄存器的這種信息。EC模塊1018配置為訪問MCA模塊1026以檢索這種信息1020。EC模塊1018可將來自MCA模塊1026的信息1020與錯(cuò)誤信息1022組合,并且將組合的信息提供給單個(gè)接口。
[0072]具體地說,EC模塊1018可提供與處理器1004能夠糾正錯(cuò)誤的MCA模塊1026的接口相似或相同的接口。例如,如果處理器1004配置為糾正從存儲(chǔ)器1002讀取的數(shù)據(jù)中的錯(cuò)誤,并且這種錯(cuò)誤信息是可獲得的,則可通過MCA模塊1026獲得信息。然而,如果處理器1004不配置為糾正從存儲(chǔ)器1002讀取的數(shù)據(jù)中的錯(cuò)誤,或者處理器1004配置為糾正錯(cuò)誤,但上由于錯(cuò)誤已在存儲(chǔ)器1002中糾正而從不通過由MCA模塊1026監(jiān)控的通信路徑接收錯(cuò)誤信息,則MCA模塊1026將不能提供錯(cuò)誤信息。不管怎樣,EC模塊1018可將MCA模塊1026信息1020與通過通信路徑1008獲得的錯(cuò)誤信息1022組合,并且提供與處理器1004配置為糾正從存儲(chǔ)器1002讀取的數(shù)據(jù)中的錯(cuò)誤時(shí)MCA模塊1026將提供的信息或者錯(cuò)誤信息是MCA模塊1026可獲得的信息相似或相同的組合的信息。隨后,軟件可使用相同或相似的接口,而不管是否存在具有錯(cuò)誤糾正的處理器1004。換句話說,對(duì)于依賴錯(cuò)誤信息以充分操作的軟件而言,能夠進(jìn)行錯(cuò)誤糾正的處理器1004不是必要的。結(jié)果,可通過使用不具有錯(cuò)誤糾正的便宜的處理器1004降低成本。
[0073]圖11是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有共享接口的多個(gè)模塊。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)1100包括與圖7的存儲(chǔ)器702、處理器704、通信路徑706和708以及對(duì)信息720和722響應(yīng)的軟件710相似的存儲(chǔ)器1102、處理器1104、通信路徑1106和1108以及對(duì)信息1120和1122響應(yīng)的軟件1110。然而,在該實(shí)施例中,軟件1110包括第一模塊1118、第二模塊1128和接口模塊1130ο
[0074]第一模塊1118與圖7的模塊718相似。然而,第一模塊1118配置為通過接口模塊1130從存儲(chǔ)器1102接收錯(cuò)誤信息。接口模塊1130是配置為向通信路徑1108提供接口的模塊。例如,接口模塊1130可為配置為允許通過ΙΡΜΙ總線的訪問的模塊。
[0075]諸如第二模塊1128的其它模塊也可配置為利用接口模塊1130通信。例如,第二模塊1128可配置為訪問附接至ΙΡΜΙ總線的其它裝置、訪問存儲(chǔ)器1102的其它方面(諸如熱或功率信息)等。錯(cuò)誤信息和其它信息二者可為通過接口模塊1130轉(zhuǎn)移的信息1122的一部分。換句話說,可沿著整個(gè)路徑利用專用軟件轉(zhuǎn)移錯(cuò)誤信息,但是也可與相關(guān)或不相關(guān)的信息和/或源共享模塊、接口、總線等。
[0076]圖12是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有共享接口的可糾正的錯(cuò)誤模塊和串行存在檢測(cè)/記錄時(shí)鐘驅(qū)動(dòng)器模塊。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)1200包括與圖11的存儲(chǔ)器1102、處理器1104、通信路徑1106和1108以及具有對(duì)信息1120和1122響應(yīng)的模塊1118、1128和1130的軟件1110相似的存儲(chǔ)器1202、處理器1204、通信路徑1206和1208以及具有對(duì)信息1220和1222響應(yīng)的模塊1218、1228和1230的軟件1210。然而,在該實(shí)施例中,第一模塊1218是已糾正的錯(cuò)誤(CE)模塊1218,第二模塊1228是串行存在檢測(cè)(SH))/記錄時(shí)鐘驅(qū)動(dòng)器(RCD)模塊1228。
[0077]具體地說,SPD/RCD模塊1228配置為訪問與串行存在檢測(cè)系統(tǒng)和/或記錄時(shí)鐘驅(qū)動(dòng)器系統(tǒng)相關(guān)的信息。SPD/RCD模塊1228可配置為訪問這些系統(tǒng)之一或二者。所述信息是通過第二通信路徑1208訪問的。因此,在一個(gè)實(shí)施例中,可通過與SPD/RCD相關(guān)的信息相同的通信路徑1208訪問來自存儲(chǔ)器1202的錯(cuò)誤信息。
[0078]圖13是根據(jù)實(shí)施例的具有以下存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)的數(shù)據(jù)系統(tǒng)的示意圖,所述存儲(chǔ)器系統(tǒng)體系結(jié)構(gòu)具有DRAM內(nèi)錯(cuò)誤糾正。在該實(shí)施例中,數(shù)據(jù)系統(tǒng)1300包括與圖10的存儲(chǔ)器1002、處理器1004和具有對(duì)信息1020和1022響應(yīng)的EC模塊1018和MCA模塊1026的軟件1010相似的存儲(chǔ)器1302、處理器1304、具有對(duì)信息1320和1322響應(yīng)的EC模塊1318和MCA模塊1326的核心1310。然而,在該實(shí)施例中,存儲(chǔ)器1302中的每一個(gè)是糾錯(cuò)碼(ECC)雙列直插存儲(chǔ)器模塊(DIMM)。每個(gè)ECC DIMM 1302配置為存儲(chǔ)數(shù)據(jù)和至少糾正存儲(chǔ)的數(shù)據(jù)中的錯(cuò)誤。在該實(shí)施例中,ECC DMM 1302各自通過對(duì)應(yīng)的通信路徑1364連接至處理器1304的存儲(chǔ)器控制器(MC) 1350。通信路徑1364包括與圖5的通信路徑506相似的至少用于數(shù)據(jù)信號(hào)和數(shù)據(jù)選通信號(hào)等的線。ECC DIMM 1302各自通過包括與圖3的總線312、BMC314和總線316相似的總線1312、BMC 1314和總線1316的通信路徑1308連接至處理器1304。
[0079]在一個(gè)實(shí)施例中,ECC DIMM 1302可配置為糾正從ECC DIMM 1302讀取的數(shù)據(jù)中的一個(gè)或多個(gè)錯(cuò)誤。錯(cuò)誤糾正技術(shù)可包括單錯(cuò)誤糾正-雙錯(cuò)誤檢測(cè)(SEC-DEC)技術(shù)、單芯片chipkill技術(shù)、雙芯片chipkill技術(shù)等。可使用任何錯(cuò)誤糾正技術(shù)。
[0080]在該實(shí)施例中,存儲(chǔ)器控制器(MC) 1350不配置為執(zhí)行錯(cuò)誤糾正,或者可替換地,不配置為從ECC DMM 1302接收錯(cuò)誤信息。由于從ECC DMM 1302傳遞的數(shù)據(jù)已被糾正,MC 1350甚至可不接收表示可糾正的錯(cuò)誤的任何信息。然而,錯(cuò)誤信息,具體地說,已糾正的錯(cuò)誤信息可通過通信路徑1308(即,通過總線1312和1316以及BMC 1314)發(fā)送至處理器1304。
[0081]在一個(gè)實(shí)施例中,處理器1304可為本來不能執(zhí)行錯(cuò)誤糾正但具有能夠連接至總線1316的接口的現(xiàn)有處理器。然而,一旦通過核心1310(具體地說,EC模塊1318)配置處理器1304,整個(gè)數(shù)據(jù)系統(tǒng)1300就可配置為與具有能夠進(jìn)行錯(cuò)誤糾正的處理器的系統(tǒng)相似地執(zhí)行錯(cuò)誤糾正。
[0082]在一個(gè)實(shí)施例中,EC模塊1318可生成具有ECC接口的虛擬存儲(chǔ)器控制器。例如,如上所述,EC模塊1318可配置為從MCA模塊1326接收信息。該信息可為具有ECC接口的實(shí)際存儲(chǔ)器控制器可提供的去除一部分或全部錯(cuò)誤信息后的信息。EC模塊1318可用錯(cuò)誤信息補(bǔ)充來自MCA模塊1326的信息,以產(chǎn)生期望來自具有ECC接口的存儲(chǔ)器控制器的一組完整的信息。結(jié)果,可使用EDAC模塊1324、存儲(chǔ)器ECC后臺(tái)程序1358、其它應(yīng)用1360等,而無需從那些利用具有錯(cuò)誤糾正的處理器的模塊進(jìn)行改變。例如,EDAC模塊1324可配置為針對(duì)存儲(chǔ)器ECC信息輪詢EC模塊1318。反過來,EC模塊1318可返回通過第二通信路徑1308接收的錯(cuò)誤信息。存儲(chǔ)器ECC后臺(tái)程序1358,在與EDAC模塊1324通信時(shí),可針對(duì)錯(cuò)誤信息輪詢EDAC模塊1324。存儲(chǔ)器ECC后臺(tái)程序1358隨后可在應(yīng)用水平根據(jù)錯(cuò)誤信息采取行動(dòng)。這些行動(dòng)可包括頁面退出、管理錯(cuò)誤以保持?jǐn)?shù)據(jù)系統(tǒng)1300運(yùn)行、保持可靠性水平、建議停止等的其它行為。
[0083]如上所述,可檢測(cè)到不可糾正的錯(cuò)誤??赏ㄟ^MC 1350、MCA寄存器1352和MCA模塊1326將不可糾正的錯(cuò)誤信息傳達(dá)至EC模塊1318。例如,可通過MCA模塊1326由不可屏蔽中斷、異常等來傳達(dá)不可糾正的錯(cuò)誤。在特定示例中,存儲(chǔ)器控制器1350可響應(yīng)于不可糾正的錯(cuò)誤產(chǎn)生硬件異常,而不管該不可糾正的錯(cuò)誤如何傳達(dá)至存儲(chǔ)器控制器1350。MCA模塊1326可攔截該異常,并且將其傳遞至EC模塊1318。EC模塊1318隨后可將該異常傳達(dá)至EDAC模塊1324。除如上所述地傳達(dá)不可糾正的錯(cuò)誤信息以外或作為替代,可通過通信路徑1308傳達(dá)不可糾正的錯(cuò)誤信息。
[0084]在一個(gè)實(shí)施例中,ECC DIMM 1302可配置為將已糾正的數(shù)據(jù)提供至處理器1304。然而,數(shù)據(jù)在ECC DIMM 1302與MC 1350之間可變得出錯(cuò)。因此,可在ECC DIMM 1302與處理器1304或MC 1350之間執(zhí)行一些形式的錯(cuò)誤糾正。例如,可通過旨在檢測(cè)在通信鏈路1364上發(fā)生的錯(cuò)誤的糾錯(cuò)碼對(duì)從ECC DIMM 1302發(fā)送的數(shù)據(jù)進(jìn)行編碼。通過這種錯(cuò)誤糾正,可對(duì)從ECC DIMM 1302中的存儲(chǔ)元件至處理器的基本整個(gè)路徑利用錯(cuò)誤糾正進(jìn)行保護(hù)。
[0085]圖1